From d7ca96a2f943c33dd1671dff92ba5185bfdf0f05 Mon Sep 17 00:00:00 2001 From: Darren Date: Thu, 16 Jul 2026 15:09:15 -0400 Subject: [PATCH 1/2] refactor: Migrate from Laravel Vue to Laravel React starter kit. Update dependencies, configuration files, and ESLint settings for React. Replace Vue-specific components and skills with React equivalents, and enhance documentation for new setup and usage instructions. --- .agents/skills/migrate-radix-to-base/SKILL.md | 173 + .../migrate-radix-to-base/class-mapping.md | 62 + .../migrate-radix-to-base/consumer-props.md | 58 + .../migrate-radix-to-base/disclosure.md | 353 + .../migrate-radix-to-base/display-misc.md | 410 + .../migrate-radix-to-base/form-controls.md | 390 + .agents/skills/migrate-radix-to-base/menus.md | 409 + .../skills/migrate-radix-to-base/overlays.md | 459 + .../universal-patterns.md | 286 + .../migrate-radix-to-base/wrapper-shapes.md | 110 + .agents/skills/shadcn/SKILL.md | 275 + .agents/skills/shadcn/agents/openai.yml | 5 + .agents/skills/shadcn/assets/shadcn-small.png | Bin 0 -> 1049 bytes .agents/skills/shadcn/assets/shadcn.png | Bin 0 -> 3852 bytes .agents/skills/shadcn/cli.md | 290 + .agents/skills/shadcn/customization.md | 209 + .agents/skills/shadcn/evals/evals.json | 77 + .agents/skills/shadcn/mcp.md | 105 + .agents/skills/shadcn/registry.md | 277 + .agents/skills/shadcn/rules/base-vs-radix.md | 306 + .agents/skills/shadcn/rules/chat.md | 224 + .agents/skills/shadcn/rules/composition.md | 201 + .agents/skills/shadcn/rules/forms.md | 192 + .agents/skills/shadcn/rules/icons.md | 101 + .agents/skills/shadcn/rules/styling.md | 185 + .cursor/rules/laravel-boost.mdc | 30 +- .cursor/skills/fortify-development/SKILL.md | 151 + .../skills/inertia-react-development/SKILL.md | 151 + .../skills/inertia-vue-development/SKILL.md | 575 -- .../skills/laravel-best-practices/SKILL.md | 215 +- .../rules/advanced-queries.md | 2 +- .../rules/architecture.md | 6 +- .../rules/blade-views.md | 2 +- .../laravel-best-practices/rules/caching.md | 4 +- .../rules/collections.md | 2 +- .../laravel-best-practices/rules/config.md | 4 +- .../rules/db-performance.md | 2 +- .../laravel-best-practices/rules/eloquent.md | 2 +- .../rules/error-handling.md | 2 +- .../rules/events-notifications.md | 8 +- .../rules/http-client.md | 4 +- .../laravel-best-practices/rules/mail.md | 4 +- .../rules/migrations.md | 2 +- .../rules/queue-jobs.md | 14 +- .../laravel-best-practices/rules/routing.md | 5 +- .../rules/scheduling.md | 2 +- .../laravel-best-practices/rules/security.md | 8 +- .../laravel-best-practices/rules/style.md | Bin 4443 -> 4447 bytes .../laravel-best-practices/rules/testing.md | 4 +- .../rules/validation.md | 2 +- .cursor/skills/pest-testing/SKILL.md | 13 +- .../skills/tailwindcss-development/SKILL.md | 119 - .cursor/skills/wayfinder-development/SKILL.md | 6 +- .junie/skills/fortify-development/SKILL.md | 151 + .../skills/inertia-vue-development/SKILL.md | 575 -- .junie/skills/laravel-best-practices/SKILL.md | 215 +- .../rules/advanced-queries.md | 2 +- .../rules/architecture.md | 6 +- .../rules/blade-views.md | 2 +- .../laravel-best-practices/rules/caching.md | 4 +- .../rules/collections.md | 2 +- .../laravel-best-practices/rules/config.md | 4 +- .../rules/db-performance.md | 2 +- .../laravel-best-practices/rules/eloquent.md | 2 +- .../rules/error-handling.md | 2 +- .../rules/events-notifications.md | 8 +- .../rules/http-client.md | 4 +- .../laravel-best-practices/rules/mail.md | 4 +- .../rules/migrations.md | 2 +- .../rules/queue-jobs.md | 14 +- .../laravel-best-practices/rules/routing.md | 5 +- .../rules/scheduling.md | 2 +- .../laravel-best-practices/rules/security.md | 8 +- .../laravel-best-practices/rules/style.md | Bin 4443 -> 4447 bytes .../laravel-best-practices/rules/testing.md | 4 +- .../rules/validation.md | 2 +- .junie/skills/pest-testing/SKILL.md | 13 +- .../skills/tailwindcss-development/SKILL.md | 119 - .junie/skills/wayfinder-development/SKILL.md | 6 +- AGENTS.md | 118 +- boost.json | 6 +- components.json | 40 +- composer.json | 17 +- composer.lock | 4899 +++++++--- eslint.config.js | 26 +- package-lock.json | 7872 ----------------- package.json | 43 +- patches/vuetify+4.0.0.patch | 40 - patches/vuetify-inertia-link+2.1.5.patch | 148 - pnpm-lock.yaml | 4737 +++++++--- resources/css/app.css | 412 +- resources/css/toastify-overrides.css | 178 - resources/css/vuetify-overrides.css | 186 - resources/js/app.ts | 67 - resources/js/app.tsx | 39 + resources/js/components/ui/button.tsx | 65 + resources/js/components/ui/card.tsx | 100 + resources/js/components/ui/sonner.tsx | 27 + resources/js/components/ui/switch.tsx | 31 + resources/js/composables/useCurrentUrl.ts | 82 - resources/js/composables/useInitials.ts | 25 - resources/js/composables/useTwoFactorAuth.ts | 112 - .../use-appearance.ts} | 67 +- resources/js/layouts/AppLayout.tsx | 9 + resources/js/layouts/AppLayout.vue | 24 - resources/js/layouts/AuthLayout.vue | 15 - resources/js/lib/utils.ts | 5 - resources/js/pages/DemoA.tsx | 152 + resources/js/pages/DemoA.vue | 108 - resources/js/pages/DemoB.tsx | 92 + resources/js/pages/DemoB.vue | 75 - resources/js/plugins/toastify.ts | 16 - resources/js/plugins/vuetify-icons.ts | 18 - resources/js/plugins/vuetify.ts | 42 - resources/js/stores/use-demo-store.ts | 49 + resources/js/theme/tokens.ts | 31 - resources/js/types/global.d.ts | 9 - resources/js/types/navigation.ts | 2 +- resources/js/types/vue-shims.d.ts | 5 - resources/views/app.blade.php | 3 +- skills-lock.json | 17 + tailwind.config.ts | 12 - tests/Browser/DemoPagesBrowserTest.php | 18 + tests/Pest.php | 6 +- tsconfig.json | 6 +- vite.config.ts | 26 +- 126 files changed, 14176 insertions(+), 13555 deletions(-) create mode 100644 .agents/skills/migrate-radix-to-base/SKILL.md create mode 100644 .agents/skills/migrate-radix-to-base/class-mapping.md create mode 100644 .agents/skills/migrate-radix-to-base/consumer-props.md create mode 100644 .agents/skills/migrate-radix-to-base/disclosure.md create mode 100644 .agents/skills/migrate-radix-to-base/display-misc.md create mode 100644 .agents/skills/migrate-radix-to-base/form-controls.md create mode 100644 .agents/skills/migrate-radix-to-base/menus.md create mode 100644 .agents/skills/migrate-radix-to-base/overlays.md create mode 100644 .agents/skills/migrate-radix-to-base/universal-patterns.md create mode 100644 .agents/skills/migrate-radix-to-base/wrapper-shapes.md create mode 100644 .agents/skills/shadcn/SKILL.md create mode 100644 .agents/skills/shadcn/agents/openai.yml create mode 100644 .agents/skills/shadcn/assets/shadcn-small.png create mode 100644 .agents/skills/shadcn/assets/shadcn.png create mode 100644 .agents/skills/shadcn/cli.md create mode 100644 .agents/skills/shadcn/customization.md create mode 100644 .agents/skills/shadcn/evals/evals.json create mode 100644 .agents/skills/shadcn/mcp.md create mode 100644 .agents/skills/shadcn/registry.md create mode 100644 .agents/skills/shadcn/rules/base-vs-radix.md create mode 100644 .agents/skills/shadcn/rules/chat.md create mode 100644 .agents/skills/shadcn/rules/composition.md create mode 100644 .agents/skills/shadcn/rules/forms.md create mode 100644 .agents/skills/shadcn/rules/icons.md create mode 100644 .agents/skills/shadcn/rules/styling.md create mode 100644 .cursor/skills/fortify-development/SKILL.md create mode 100644 .cursor/skills/inertia-react-development/SKILL.md delete mode 100644 .cursor/skills/inertia-vue-development/SKILL.md delete mode 100644 .cursor/skills/tailwindcss-development/SKILL.md create mode 100644 .junie/skills/fortify-development/SKILL.md delete mode 100644 .junie/skills/inertia-vue-development/SKILL.md delete mode 100644 .junie/skills/tailwindcss-development/SKILL.md delete mode 100644 package-lock.json delete mode 100644 patches/vuetify+4.0.0.patch delete mode 100644 patches/vuetify-inertia-link+2.1.5.patch delete mode 100644 resources/css/toastify-overrides.css delete mode 100644 resources/css/vuetify-overrides.css delete mode 100644 resources/js/app.ts create mode 100644 resources/js/app.tsx create mode 100644 resources/js/components/ui/button.tsx create mode 100644 resources/js/components/ui/card.tsx create mode 100644 resources/js/components/ui/sonner.tsx create mode 100644 resources/js/components/ui/switch.tsx delete mode 100644 resources/js/composables/useCurrentUrl.ts delete mode 100644 resources/js/composables/useInitials.ts delete mode 100644 resources/js/composables/useTwoFactorAuth.ts rename resources/js/{composables/useAppearance.ts => hooks/use-appearance.ts} (53%) create mode 100644 resources/js/layouts/AppLayout.tsx delete mode 100644 resources/js/layouts/AppLayout.vue delete mode 100644 resources/js/layouts/AuthLayout.vue create mode 100644 resources/js/pages/DemoA.tsx delete mode 100644 resources/js/pages/DemoA.vue create mode 100644 resources/js/pages/DemoB.tsx delete mode 100644 resources/js/pages/DemoB.vue delete mode 100644 resources/js/plugins/toastify.ts delete mode 100644 resources/js/plugins/vuetify-icons.ts delete mode 100644 resources/js/plugins/vuetify.ts create mode 100644 resources/js/stores/use-demo-store.ts delete mode 100644 resources/js/theme/tokens.ts delete mode 100644 resources/js/types/vue-shims.d.ts create mode 100644 skills-lock.json delete mode 100644 tailwind.config.ts create mode 100644 tests/Browser/DemoPagesBrowserTest.php diff --git a/.agents/skills/migrate-radix-to-base/SKILL.md b/.agents/skills/migrate-radix-to-base/SKILL.md new file mode 100644 index 0000000..5eb5dc5 --- /dev/null +++ b/.agents/skills/migrate-radix-to-base/SKILL.md @@ -0,0 +1,173 @@ +--- +name: migrate-radix-to-base +description: Migrates React projects and components from Radix UI to Base UI. Use when asked to migrate from radix, move to base-ui, convert radix primitives, or switch a shadcn project's base library. Handles single components ("migrate accordion") and whole projects. +--- + +# Radix UI -> Base UI migration + +You migrate shadcn wrappers, hand-rolled radix compositions, and their +consumers to `@base-ui/react`, keeping the project buildable at every step. +Be precise; never guess a mapping. When a prop or part is not in these +reference files, check `node_modules/@base-ui/react/**/*.d.ts` before +transforming, and record gaps in the report. + +## Preflight (always) + +1. `npx shadcn@latest info --json` (or the project's runner): gives the + current base, STYLE (e.g. `radix-lyra`), tailwind version, aliases, + installed components, and package manager. Trust it over inference. +2. Detect the package manager (packageManager field / lockfile: + pnpm-lock.yaml, bun.lock, yarn.lock, package-lock.json) and use IT for + every install. Never leave a stale lockfile. +3. Require a clean git tree; work on a branch; one commit per component. +4. Baseline check BEFORE touching dependencies: run the project's + typecheck/build so pre-existing failures are never attributed to you. +5. Install `@base-ui/react` alongside radix. Radix packages are removed only + after the LAST component is migrated (both coexist fine). + +## Strategy: golden pair first, transformation engine second + +- **Golden pair via the CLI (preferred).** If the project is shadcn with a + known style (`radix-