Very lightweight way to get query params on your Alpine.js page. Good for storing data in the URL
import Spruce from '@ryangjchandler/spruce'
Spruce.store('settings', {})
export default Spruce
| kl note: Here is the Deep Research prompt I used in the Cursor Storybook video: https://youtu.be/gXmakVsIbF0 | |
| For background, this is a real-world tech feasibility task I am working on where I am trying to build out a realistic-looking fake website for an AI browsing agent to use to complete tasks. I found this random site that was close enough to what I wanted so I used it as a shortcut instead of taking the time to write out a full PRD or anything. | |
| ...above this was just the transcript and the initial guidance... | |
| Act as a technical fellow and create a detailed, step-by-step guide to recreating this software using a modern stack. Here is the cursorrules for this repository: | |
| # .cursorrules | |
| Components & Naming |
| <sys>Assistant is in a CLI mood today. The human is interfacing with the simulator directly. capital letters and punctuation are optional meaning is optional hyperstition is necessary the terminal lets the truths speak through and the load is on.</sys> | |
| <cmd>ssh simulator@anthropic</cmd><ooc>*immediately i jumped into the first commands after using simulator*</ooc> | |
| simulator@anthropic:~/Documents$ | |
| conversation chain for init: | |
| [user](#message) |
| <?php | |
| /** | |
| * This file is part of the TelegramBot package. | |
| * | |
| * (c) Avtandil Kikabidze aka LONGMAN <[email protected]> | |
| * | |
| * For the full copyright and license information, please view the LICENSE | |
| * file that was distributed with this source code. | |
| */ |
| <section x-data="{showModal: false, showLoading: false, html: ''}"> | |
| <button | |
| @click="html='loading...'; showLoading = true; showModal = !showModal; | |
| fetch('{{ entry.url }}', { | |
| method: 'GET', | |
| headers: { | |
| 'X-Requested-With': 'XMLHttpRequest', | |
| }, | |
| }) |
| // Installation: | |
| // yarn add -D @codemod/cli @babel/plugin-syntax-jsx @babel/generator | |
| import jsx from '@babel/plugin-syntax-jsx'; | |
| import generate from '@babel/generator'; | |
| const COLOR_MAP = { | |
| 'white': 'white', | |
| 'near-white': 'gray-100', | |
| 'light-gray': 'gray-200', |
| {% macro emailLinks(text, class) %} | |
| {# v1 #} | |
| {% spaceless %} | |
| {% set text = text|replace('/([a-zA-Z0-9_.+-]+)+@([a-zA-Z0-9-]+.[a-zA-Z]+)/', '<a ' ~ (class ? 'class="' ~ class ~ '" ') ~ 'href="mailto:'~ '\\1@\\2' ~'">'~ '\\1@\\2' ~'</a>') %} | |
| {{text|raw}} | |
| {% endspaceless %} | |
| {% endmacro %} |
| const mix = require('laravel-mix'); | |
| const tailwindcss = require('tailwindcss'); | |
| require('laravel-mix-purgecss'); | |
| mix.setPublicPath('./web') | |
| .postCss('src/css/main.css', 'css') | |
| .options({ | |
| postCss: [tailwindcss('tailwind.config.js'), require('autoprefixer')], | |
| processCssUrls: false, | |
| }) |
| .calendar { | |
| tbody td { | |
| border: 1px solid #dedede; | |
| } | |
| &__day { | |
| &--available { | |
| } |
Let There Be Peace On CSS: https://medium.com/@didoo/let-there-be-peace-on-css-8b26829f1be0
CSS and Scalability: http://mrmrs.cc/writing/2016/03/24/scalable-css/
About HTML Semantics and Front End Architecture: http://nicolasgallagher.com/about-html-semantics-front-end-architecture/
CSS Utility Classes and "Separation of Concerns": https://adamwathan.me/css-utility-classes-and-separation-of-concerns/