bsmnt 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -18
- package/dist/configs/animations.d.ts +25 -0
- package/dist/configs/animations.d.ts.map +1 -0
- package/dist/configs/animations.js +29 -0
- package/dist/configs/animations.js.map +1 -0
- package/dist/helpers/add/hooks-config.d.ts +22 -0
- package/dist/helpers/add/hooks-config.d.ts.map +1 -0
- package/dist/helpers/add/hooks-config.js +37 -0
- package/dist/helpers/add/hooks-config.js.map +1 -0
- package/dist/helpers/add/index.d.ts +18 -0
- package/dist/helpers/add/index.d.ts.map +1 -0
- package/dist/helpers/add/index.js +152 -0
- package/dist/helpers/add/index.js.map +1 -0
- package/dist/helpers/create/copy-template.d.ts +11 -0
- package/dist/helpers/create/copy-template.d.ts.map +1 -0
- package/dist/helpers/create/copy-template.js +19 -0
- package/dist/helpers/create/copy-template.js.map +1 -0
- package/dist/helpers/create/index.d.ts +22 -0
- package/dist/helpers/create/index.d.ts.map +1 -0
- package/dist/helpers/create/index.js +81 -0
- package/dist/helpers/create/index.js.map +1 -0
- package/dist/helpers/create/install.d.ts +8 -0
- package/dist/helpers/create/install.d.ts.map +1 -0
- package/dist/helpers/create/install.js +20 -0
- package/dist/helpers/create/install.js.map +1 -0
- package/dist/helpers/create/rename-files.d.ts +10 -0
- package/dist/helpers/create/rename-files.d.ts.map +1 -0
- package/dist/helpers/create/rename-files.js +17 -0
- package/dist/helpers/create/rename-files.js.map +1 -0
- package/dist/helpers/create/setup-agent.d.ts +21 -0
- package/dist/helpers/create/setup-agent.d.ts.map +1 -0
- package/dist/helpers/create/setup-agent.js +65 -0
- package/dist/helpers/create/setup-agent.js.map +1 -0
- package/dist/helpers/create/setup-sanity.d.ts +23 -0
- package/dist/helpers/create/setup-sanity.d.ts.map +1 -0
- package/dist/helpers/create/setup-sanity.js +354 -0
- package/dist/helpers/create/setup-sanity.js.map +1 -0
- package/dist/helpers/create/update-package.d.ts +20 -0
- package/dist/helpers/create/update-package.d.ts.map +1 -0
- package/dist/helpers/create/update-package.js +87 -0
- package/dist/helpers/create/update-package.js.map +1 -0
- package/dist/helpers/integrate/index.d.ts +13 -0
- package/dist/helpers/integrate/index.d.ts.map +1 -0
- package/dist/helpers/integrate/index.js +204 -0
- package/dist/helpers/integrate/index.js.map +1 -0
- package/dist/helpers/integrate/merge-config.d.ts +21 -0
- package/dist/helpers/integrate/merge-config.d.ts.map +1 -0
- package/dist/helpers/integrate/merge-config.js +38 -0
- package/dist/helpers/integrate/merge-config.js.map +1 -0
- package/dist/helpers/integrate/merge-orchestrator.d.ts +10 -0
- package/dist/helpers/integrate/merge-orchestrator.d.ts.map +1 -0
- package/dist/helpers/integrate/merge-orchestrator.js +188 -0
- package/dist/helpers/integrate/merge-orchestrator.js.map +1 -0
- package/dist/helpers/integrate/sanity/config.d.ts +14 -0
- package/dist/helpers/integrate/sanity/config.d.ts.map +1 -0
- package/dist/helpers/integrate/sanity/config.js +38 -0
- package/dist/helpers/integrate/sanity/config.js.map +1 -0
- package/dist/helpers/integrate/sanity/mergers/check-integration-merger.d.ts +13 -0
- package/dist/helpers/integrate/sanity/mergers/check-integration-merger.d.ts.map +1 -0
- package/dist/helpers/integrate/sanity/mergers/check-integration-merger.js +84 -0
- package/dist/helpers/integrate/sanity/mergers/check-integration-merger.js.map +1 -0
- package/dist/helpers/integrate/sanity/mergers/layout-merger.d.ts +23 -0
- package/dist/helpers/integrate/sanity/mergers/layout-merger.d.ts.map +1 -0
- package/dist/helpers/integrate/sanity/mergers/layout-merger.js +161 -0
- package/dist/helpers/integrate/sanity/mergers/layout-merger.js.map +1 -0
- package/dist/helpers/integrate/sanity/mergers/sitemap-merger.d.ts +13 -0
- package/dist/helpers/integrate/sanity/mergers/sitemap-merger.d.ts.map +1 -0
- package/{packages/create-basement-app/src → dist/helpers/integrate/sanity}/mergers/sitemap-merger.js +33 -45
- package/dist/helpers/integrate/sanity/mergers/sitemap-merger.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +337 -0
- package/dist/index.js.map +1 -0
- package/dist/paths.d.ts +14 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +24 -0
- package/dist/paths.js.map +1 -0
- package/dist/utils/detect-project.d.ts +40 -0
- package/dist/utils/detect-project.d.ts.map +1 -0
- package/dist/utils/detect-project.js +69 -0
- package/dist/utils/detect-project.js.map +1 -0
- package/dist/utils/format-results.d.ts +24 -0
- package/dist/utils/format-results.d.ts.map +1 -0
- package/dist/utils/format-results.js +27 -0
- package/dist/utils/format-results.js.map +1 -0
- package/index.js +25 -0
- package/package.json +25 -12
- package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/package.json +1 -1
- package/src/templates/next-webgl/lib/renderer.ts +7 -0
- package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/package.json +1 -1
- package/.changeset/README.md +0 -10
- package/.changeset/config.json +0 -16
- package/.github/workflows/ci.yml +0 -37
- package/.github/workflows/release.yml +0 -56
- package/.tldr/cache/call_graph.json +0 -7
- package/.tldr/languages.json +0 -6
- package/.tldr/status +0 -1
- package/.tldrignore +0 -84
- package/.vscode/settings.json +0 -98
- package/CHANGELOG.md +0 -68
- package/CLAUDE.md +0 -156
- package/biome.json +0 -45
- package/bun.lock +0 -496
- package/changelog/04-02-26.md +0 -86
- package/changelog/05-02-26.md +0 -101
- package/changelog/09-02-26.md +0 -83
- package/docs/architecture.drawio +0 -250
- package/docs/architecture.mermaid +0 -85
- package/docs/fix-studio-hydration.md +0 -46
- package/docs/plans/2026-01-29-sanity-smart-merge-design.md +0 -196
- package/docs/plans/2026-01-29-sanity-smart-merge-implementation.md +0 -695
- package/docs/sanity-setup-steps.md +0 -199
- package/packages/cli/bin/index.js +0 -259
- package/packages/cli/package.json +0 -16
- package/packages/cli/src/commands/add-integration.js +0 -310
- package/packages/cli/src/commands/create.js +0 -409
- package/packages/cli/src/commands/setup-sanity.js +0 -426
- package/packages/cli/src/commands/worktree.js +0 -805
- package/packages/create-basement-app/integrations/sanity/config.js +0 -46
- package/packages/create-basement-app/integrations/sanity/files/app/api/draft-mode/disable/route.ts +0 -7
- package/packages/create-basement-app/integrations/sanity/files/app/api/draft-mode/enable/route.ts +0 -21
- package/packages/create-basement-app/integrations/sanity/files/app/api/revalidate/route.ts +0 -37
- package/packages/create-basement-app/integrations/sanity/files/app/layout.tsx +0 -111
- package/packages/create-basement-app/integrations/sanity/files/app/sitemap.ts +0 -80
- package/packages/create-basement-app/integrations/sanity/files/app/studio/[[...tool]]/page.tsx +0 -8
- package/packages/create-basement-app/integrations/sanity/files/app/studio/layout.tsx +0 -7
- package/packages/create-basement-app/integrations/sanity/files/components/ui/sanity-image/index.tsx +0 -37
- package/packages/create-basement-app/integrations/sanity/files/lib/integrations/README.md +0 -58
- package/packages/create-basement-app/integrations/sanity/files/lib/integrations/check-integration.ts +0 -62
- package/packages/create-basement-app/integrations/sanity/files/lib/integrations/sanity/README.md +0 -144
- package/packages/create-basement-app/integrations/sanity/files/lib/integrations/sanity/client.ts +0 -30
- package/packages/create-basement-app/integrations/sanity/files/lib/integrations/sanity/components/disable-draft-mode.tsx +0 -29
- package/packages/create-basement-app/integrations/sanity/files/lib/integrations/sanity/components/rich-text.tsx +0 -73
- package/packages/create-basement-app/integrations/sanity/files/lib/integrations/sanity/env.ts +0 -38
- package/packages/create-basement-app/integrations/sanity/files/lib/integrations/sanity/live/index.tsx +0 -34
- package/packages/create-basement-app/integrations/sanity/files/lib/integrations/sanity/queries.ts +0 -99
- package/packages/create-basement-app/integrations/sanity/files/lib/integrations/sanity/sanity.cli.ts +0 -20
- package/packages/create-basement-app/integrations/sanity/files/lib/integrations/sanity/sanity.config.ts +0 -94
- package/packages/create-basement-app/integrations/sanity/files/lib/integrations/sanity/sanity.types.ts +0 -337
- package/packages/create-basement-app/integrations/sanity/files/lib/integrations/sanity/schema.json +0 -1850
- package/packages/create-basement-app/integrations/sanity/files/lib/integrations/sanity/schemas/article.ts +0 -132
- package/packages/create-basement-app/integrations/sanity/files/lib/integrations/sanity/schemas/example.ts +0 -203
- package/packages/create-basement-app/integrations/sanity/files/lib/integrations/sanity/schemas/index.ts +0 -37
- package/packages/create-basement-app/integrations/sanity/files/lib/integrations/sanity/schemas/link.ts +0 -127
- package/packages/create-basement-app/integrations/sanity/files/lib/integrations/sanity/schemas/metadata.ts +0 -68
- package/packages/create-basement-app/integrations/sanity/files/lib/integrations/sanity/schemas/navigation.ts +0 -39
- package/packages/create-basement-app/integrations/sanity/files/lib/integrations/sanity/schemas/page.ts +0 -77
- package/packages/create-basement-app/integrations/sanity/files/lib/integrations/sanity/schemas/richText.ts +0 -59
- package/packages/create-basement-app/integrations/sanity/files/lib/integrations/sanity/structure.ts +0 -5
- package/packages/create-basement-app/integrations/sanity/files/lib/integrations/sanity/utils/image.ts +0 -11
- package/packages/create-basement-app/integrations/sanity/files/lib/integrations/sanity/utils/link.ts +0 -61
- package/packages/create-basement-app/integrations/sanity/files/lib/scripts/copy-sanity-mcp.ts +0 -23
- package/packages/create-basement-app/integrations/sanity/files/lib/scripts/generate-page.ts +0 -310
- package/packages/create-basement-app/integrations/sanity/files/lib/utils/metadata.ts +0 -190
- package/packages/create-basement-app/integrations/sanity/mergers/check-integration-merger.js +0 -105
- package/packages/create-basement-app/integrations/sanity/mergers/layout-merger.js +0 -223
- package/packages/create-basement-app/integrations/sanity/mergers/sitemap-merger.js +0 -121
- package/packages/create-basement-app/package.json +0 -10
- package/packages/create-basement-app/src/configs/animations.js +0 -28
- package/packages/create-basement-app/src/index.js +0 -15
- package/packages/create-basement-app/src/mergers/check-integration-merger.js +0 -105
- package/packages/create-basement-app/src/mergers/config.js +0 -109
- package/packages/create-basement-app/src/mergers/index.js +0 -346
- package/packages/create-basement-app/src/mergers/layout-merger.js +0 -223
- package/packages/create-basement-app/templates/experiment/.cursor/rules/README.md +0 -184
- package/packages/create-basement-app/templates/experiment/.cursor/rules/architecture.mdc +0 -437
- package/packages/create-basement-app/templates/experiment/.cursor/rules/components.mdc +0 -436
- package/packages/create-basement-app/templates/experiment/.cursor/rules/integrations.mdc +0 -447
- package/packages/create-basement-app/templates/experiment/.cursor/rules/main.mdc +0 -278
- package/packages/create-basement-app/templates/experiment/.cursor/rules/styling.mdc +0 -433
- package/packages/create-basement-app/templates/experiment/.github/PULL_REQUEST_TEMPLATE.md +0 -14
- package/packages/create-basement-app/templates/experiment/.vscode/extensions.json +0 -20
- package/packages/create-basement-app/templates/experiment/app/page.tsx +0 -275
- package/packages/create-basement-app/templates/webgl/.biome/plugins/README.md +0 -21
- package/packages/create-basement-app/templates/webgl/.biome/plugins/no-anchor-element.grit +0 -12
- package/packages/create-basement-app/templates/webgl/.biome/plugins/no-relative-parent-imports.grit +0 -10
- package/packages/create-basement-app/templates/webgl/.biome/plugins/no-unnecessary-forwardref.grit +0 -9
- package/packages/create-basement-app/templates/webgl/.cursor/rules/README.md +0 -184
- package/packages/create-basement-app/templates/webgl/.cursor/rules/architecture.mdc +0 -437
- package/packages/create-basement-app/templates/webgl/.cursor/rules/components.mdc +0 -436
- package/packages/create-basement-app/templates/webgl/.cursor/rules/integrations.mdc +0 -447
- package/packages/create-basement-app/templates/webgl/.cursor/rules/main.mdc +0 -278
- package/packages/create-basement-app/templates/webgl/.cursor/rules/styling.mdc +0 -433
- package/packages/create-basement-app/templates/webgl/.github/PULL_REQUEST_TEMPLATE.md +0 -14
- package/packages/create-basement-app/templates/webgl/.github/workflows/lighthouse-to-slack.yml +0 -136
- package/packages/create-basement-app/templates/webgl/.vscode/extensions.json +0 -20
- package/packages/create-basement-app/templates/webgl/.vscode/settings.json +0 -105
- package/packages/create-basement-app/templates/webgl/app/favicon.ico +0 -0
- package/packages/create-basement-app/templates/webgl/app/layout.tsx +0 -104
- package/packages/create-basement-app/templates/webgl/app/robots.ts +0 -15
- package/packages/create-basement-app/templates/webgl/app/sitemap.ts +0 -16
- package/packages/create-basement-app/templates/webgl/components/layout/footer/index.tsx +0 -27
- package/packages/create-basement-app/templates/webgl/components/layout/header/index.tsx +0 -11
- package/packages/create-basement-app/templates/webgl/components/layout/theme/index.tsx +0 -66
- package/packages/create-basement-app/templates/webgl/components/layout/wrapper/index.tsx +0 -65
- package/packages/create-basement-app/templates/webgl/components/ui/README.md +0 -77
- package/packages/create-basement-app/templates/webgl/components/ui/image/README.md +0 -37
- package/packages/create-basement-app/templates/webgl/components/ui/image/index.tsx +0 -224
- package/packages/create-basement-app/templates/webgl/components/ui/link/index.tsx +0 -146
- package/packages/create-basement-app/templates/webgl/lib/integrations/.gitkeep +0 -0
- package/packages/create-basement-app/templates/webgl/public/fonts/geist/Geist-Mono.woff2 +0 -0
- package/tasks/.last-branch +0 -1
- package/tasks/CLAUDE.md +0 -104
- package/tasks/archive/2026-02-09-next-starter-dynamic-layers/prd.json +0 -153
- package/tasks/archive/2026-02-09-next-starter-dynamic-layers/progress.txt +0 -115
- package/tasks/prd-next-starter-dynamic-layers.md +0 -184
- package/tasks/prd-project-restructure.md +0 -375
- package/tasks/prd.json +0 -289
- package/tasks/progress.txt +0 -309
- package/tasks/ralph.sh +0 -113
- /package/{packages/create-basement-app/plugins → plugins}/no-anchor-element.grit +0 -0
- /package/{packages/create-basement-app/plugins → plugins}/no-relative-parent-imports.grit +0 -0
- /package/{packages/create-basement-app/plugins → plugins}/no-unnecessary-forwardref.grit +0 -0
- /package/{packages/create-basement-app → src}/template-hooks/config.js +0 -0
- /package/{packages/create-basement-app → src}/template-hooks/use-battery.ts +0 -0
- /package/{packages/create-basement-app → src}/template-hooks/use-device-perf.ts +0 -0
- /package/{packages/create-basement-app → src}/template-hooks/use-intersection-observer.ts +0 -0
- /package/{packages/create-basement-app → src}/template-hooks/use-media.ts +0 -0
- /package/{packages/create-basement-app → src/templates/next-default/.biome}/plugins/README.md +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/.editorconfig +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/.env.example +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/.gitattributes +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/README.md +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/_gitignore +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/biome.json +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/components/basement.svg +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/README.md +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/hooks/index.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/hooks/use-device-detection.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/hooks/use-media-breakpoint.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/hooks/use-prefetch.ts +0 -0
- /package/{.github/workflows → src/templates/next-default/lib/integrations}/.gitkeep +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-default}/lib/renderer.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/scripts/dev.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/scripts/generate-component.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/scripts/generate-page.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/scripts/generate.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/scripts/utils.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/store/app.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/store/index.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/styles/README.md +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/styles/cn.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/styles/colors.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/styles/config.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/styles/css/global.css +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/styles/css/index.css +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/styles/css/reset.css +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/styles/css/root.css +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/styles/css/tailwind.css +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/styles/easings.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/styles/fonts.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/styles/index.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/styles/layout.mjs +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/styles/scripts/README.md +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/styles/scripts/generate-root.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/styles/scripts/generate-tailwind.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/styles/scripts/postcss-functions.mjs +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/styles/scripts/setup-styles.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/styles/scripts/utils.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/styles/typography.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/utils/README.md +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/utils/css.d.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/utils/easings.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/utils/fetch.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/utils/math.test.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/utils/math.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/utils/metadata.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/utils/strings.test.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/utils/strings.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/utils/types.d.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/utils/viewport.test.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/lib/utils/viewport.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/next.config.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/package.json +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/postcss.config.mjs +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-default}/tsconfig.json +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-experiments}/.biome/plugins/README.md +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-experiments}/.biome/plugins/no-anchor-element.grit +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-experiments}/.biome/plugins/no-relative-parent-imports.grit +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-experiments}/.biome/plugins/no-unnecessary-forwardref.grit +0 -0
- /package/{.cursor → src/templates/next-experiments/.cursor}/rules/README.md +0 -0
- /package/{.cursor → src/templates/next-experiments/.cursor}/rules/architecture.mdc +0 -0
- /package/{.cursor → src/templates/next-experiments/.cursor}/rules/components.mdc +0 -0
- /package/{.cursor → src/templates/next-experiments/.cursor}/rules/integrations.mdc +0 -0
- /package/{.cursor → src/templates/next-experiments/.cursor}/rules/main.mdc +0 -0
- /package/{.cursor → src/templates/next-experiments/.cursor}/rules/styling.mdc +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/.editorconfig +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/.env.example +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/.gitattributes +0 -0
- /package/{.github → src/templates/next-experiments/.github}/PULL_REQUEST_TEMPLATE.md +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-experiments}/.github/workflows/lighthouse-to-slack.yml +0 -0
- /package/{.vscode → src/templates/next-experiments/.vscode}/extensions.json +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-experiments}/.vscode/settings.json +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/README.md +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/_gitignore +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-experiments}/app/favicon.ico +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-experiments}/app/layout.tsx +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-experiments}/app/page.tsx +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-experiments}/app/robots.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-experiments}/app/sitemap.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/biome.json +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/components/basement.svg +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-experiments}/components/layout/footer/index.tsx +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/components/layout/header/index.tsx +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/components/layout/navigation-menu.tsx +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-experiments}/components/layout/theme/index.tsx +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-experiments}/components/layout/wrapper/index.tsx +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-experiments}/components/ui/README.md +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-experiments}/components/ui/image/README.md +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-experiments}/components/ui/image/index.tsx +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-experiments}/components/ui/link/index.tsx +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/README.md +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/constants.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/hooks/index.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/hooks/use-device-detection.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/hooks/use-media-breakpoint.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/hooks/use-prefetch.ts +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-experiments}/lib/integrations/.gitkeep +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/scripts/dev.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/scripts/generate-component.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/scripts/generate-page.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/scripts/generate.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/scripts/utils.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/store/app.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/store/index.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/styles/README.md +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/styles/cn.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/styles/colors.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/styles/config.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/styles/css/global.css +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/styles/css/index.css +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/styles/css/reset.css +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/styles/css/root.css +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/styles/css/tailwind.css +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/styles/easings.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/styles/fonts.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/styles/index.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/styles/layout.mjs +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/styles/scripts/README.md +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/styles/scripts/generate-root.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/styles/scripts/generate-tailwind.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/styles/scripts/postcss-functions.mjs +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/styles/scripts/setup-styles.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/styles/scripts/utils.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/styles/typography.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/utils/README.md +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/utils/css.d.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/utils/easings.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/utils/fetch.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/utils/math.test.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/utils/math.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/utils/metadata.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/utils/strings.test.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/utils/strings.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/utils/types.d.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/utils/viewport.test.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/lib/utils/viewport.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/next.config.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/postcss.config.mjs +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-experiments}/public/fonts/geist/Geist-Mono.woff2 +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-experiments}/tsconfig.json +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-webgl}/.biome/plugins/README.md +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-webgl}/.biome/plugins/no-anchor-element.grit +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-webgl}/.biome/plugins/no-relative-parent-imports.grit +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-webgl}/.biome/plugins/no-unnecessary-forwardref.grit +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-webgl}/.cursor/rules/README.md +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-webgl}/.cursor/rules/architecture.mdc +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-webgl}/.cursor/rules/components.mdc +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-webgl}/.cursor/rules/integrations.mdc +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-webgl}/.cursor/rules/main.mdc +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-webgl}/.cursor/rules/styling.mdc +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/.editorconfig +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/.env.example +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/.gitattributes +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-webgl}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-webgl}/.github/workflows/lighthouse-to-slack.yml +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-webgl}/.vscode/extensions.json +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-webgl}/.vscode/settings.json +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/README.md +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/_gitignore +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-webgl}/app/favicon.ico +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-webgl}/app/layout.tsx +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/app/page.tsx +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-webgl}/app/robots.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-webgl}/app/sitemap.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/biome.json +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/components/basement.svg +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-webgl}/components/layout/footer/index.tsx +0 -0
- /package/{packages/create-basement-app/templates/default → src/templates/next-webgl}/components/layout/header/index.tsx +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-webgl}/components/layout/theme/index.tsx +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-webgl}/components/layout/wrapper/index.tsx +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-webgl}/components/ui/README.md +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-webgl}/components/ui/image/README.md +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-webgl}/components/ui/image/index.tsx +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-webgl}/components/ui/link/index.tsx +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/components/webgl/canvas/dynamic.tsx +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/components/webgl/canvas/index.tsx +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/components/webgl/components/scene/index.tsx +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/README.md +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/hooks/index.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/hooks/use-device-detection.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/hooks/use-media-breakpoint.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/hooks/use-prefetch.ts +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-webgl}/lib/integrations/.gitkeep +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/scripts/dev.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/scripts/generate-component.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/scripts/generate-page.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/scripts/generate.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/scripts/utils.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/store/app.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/store/index.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/styles/README.md +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/styles/cn.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/styles/colors.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/styles/config.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/styles/css/global.css +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/styles/css/index.css +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/styles/css/reset.css +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/styles/css/root.css +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/styles/css/tailwind.css +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/styles/easings.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/styles/fonts.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/styles/index.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/styles/layout.mjs +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/styles/scripts/README.md +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/styles/scripts/generate-root.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/styles/scripts/generate-tailwind.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/styles/scripts/postcss-functions.mjs +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/styles/scripts/setup-styles.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/styles/scripts/utils.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/styles/typography.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/utils/README.md +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/utils/css.d.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/utils/easings.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/utils/fetch.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/utils/math.test.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/utils/math.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/utils/metadata.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/utils/strings.test.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/utils/strings.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/utils/types.d.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/utils/viewport.test.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/lib/utils/viewport.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/next.config.ts +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/postcss.config.mjs +0 -0
- /package/{packages/create-basement-app/templates/experiment → src/templates/next-webgl}/public/fonts/geist/Geist-Mono.woff2 +0 -0
- /package/{packages/create-basement-app/templates/webgl → src/templates/next-webgl}/tsconfig.json +0 -0
package/changelog/04-02-26.md
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
## [Unreleased] - Worktree Management
|
|
4
|
-
|
|
5
|
-
### Added
|
|
6
|
-
|
|
7
|
-
#### Git Worktree Management (`-w`, `--worktree`)
|
|
8
|
-
|
|
9
|
-
A new CLI mode for managing git worktrees, enabling isolated development environments for parallel feature work.
|
|
10
|
-
|
|
11
|
-
**New Commands:**
|
|
12
|
-
|
|
13
|
-
| Flag | Long Flag | Description |
|
|
14
|
-
|------|-----------|-------------|
|
|
15
|
-
| `-w` | `--worktree` | Interactive worktree menu |
|
|
16
|
-
| `-wc` | `--worktree-create` | Create new worktree(s) |
|
|
17
|
-
| `-wl` | `--worktree-list` | List all worktrees for current project |
|
|
18
|
-
| `-ws` | `--worktree-switch` | Get cd command to switch to a worktree |
|
|
19
|
-
| `-wr` | `--worktree-remove` | Remove a worktree |
|
|
20
|
-
| `-wp` | `--worktree-prune` | Clean up stale worktrees |
|
|
21
|
-
|
|
22
|
-
**Options:**
|
|
23
|
-
|
|
24
|
-
| Flag | Description |
|
|
25
|
-
|------|-------------|
|
|
26
|
-
| `-b=<name>` | Specify branch name (supports comma-separated for multiple) |
|
|
27
|
-
| `-db`, `--delete-branch` | Delete branch when removing worktree |
|
|
28
|
-
| `-f`, `--force` | Skip confirmation prompts |
|
|
29
|
-
|
|
30
|
-
**Features:**
|
|
31
|
-
|
|
32
|
-
- **Multiple worktree creation**: Create several worktrees at once via interactive prompts or comma-separated flag values
|
|
33
|
-
- **Auto-dependency installation**: Detects and installs dependencies based on lock files:
|
|
34
|
-
- `bun.lock` / `bun.lockb` → `bun install`
|
|
35
|
-
- `pnpm-lock.yaml` → `pnpm install`
|
|
36
|
-
- `yarn.lock` → `yarn install`
|
|
37
|
-
- `package.json` (no lock) → `npm install`
|
|
38
|
-
- `Cargo.toml` → `cargo build`
|
|
39
|
-
- `requirements.txt` → `pip install -r requirements.txt`
|
|
40
|
-
- `pyproject.toml` → `poetry install` or `pip install -e .`
|
|
41
|
-
- `go.mod` → `go mod download`
|
|
42
|
-
- **Smart directory structure**: Worktrees stored in `~/.claude/worktrees/<project>/<branch>`
|
|
43
|
-
- **Branch name sanitization**: Converts `feature/auth` to `feature-auth` for directory names
|
|
44
|
-
- **Prune command**: Cleans up stale git references and orphaned directories
|
|
45
|
-
|
|
46
|
-
**Examples:**
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
# Interactive worktree management
|
|
50
|
-
basement -w
|
|
51
|
-
|
|
52
|
-
# Create single worktree
|
|
53
|
-
basement -wc -b=feature/auth
|
|
54
|
-
|
|
55
|
-
# Create multiple worktrees at once
|
|
56
|
-
basement -wc -b=feature/auth,feature/dashboard,fix/bug-123
|
|
57
|
-
|
|
58
|
-
# List all worktrees
|
|
59
|
-
basement -wl
|
|
60
|
-
|
|
61
|
-
# Remove worktree and delete branch
|
|
62
|
-
basement -wr -b=feature/auth -db -f
|
|
63
|
-
|
|
64
|
-
# Clean up stale worktrees
|
|
65
|
-
basement -wp
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
### Files Added
|
|
69
|
-
|
|
70
|
-
- `src/commands/worktree.js` - Worktree command implementation
|
|
71
|
-
|
|
72
|
-
### Files Modified
|
|
73
|
-
|
|
74
|
-
- `bin/index.js` - Added worktree mode, flags, routing, and help text
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
## Previous Releases
|
|
79
|
-
|
|
80
|
-
### Sanity Integration Branch
|
|
81
|
-
|
|
82
|
-
- Added `add-integration` command (`-a`, `--add`)
|
|
83
|
-
- Sanity CMS integration with revalidate API
|
|
84
|
-
- Support for Next.js projects with `src/` directory structure
|
|
85
|
-
- Layout merging for Sanity integration
|
|
86
|
-
- Updated sitemap paths for Sanity content
|
package/changelog/05-02-26.md
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
# Changelog — February 5, 2026
|
|
2
|
-
|
|
3
|
-
## Sanity Integration Overhaul
|
|
4
|
-
|
|
5
|
-
### Added
|
|
6
|
-
|
|
7
|
-
#### Automated Sanity Project Setup (`setup-sanity.js`)
|
|
8
|
-
|
|
9
|
-
A new 8-step automated setup flow that provisions a Sanity project without leaving the CLI.
|
|
10
|
-
|
|
11
|
-
**Steps performed automatically:**
|
|
12
|
-
1. Verify Sanity CLI is available
|
|
13
|
-
2. Check user authentication (prompts `sanity login` if needed)
|
|
14
|
-
3. Create Sanity project via `sanity projects create`
|
|
15
|
-
4. Create an API read token via the Sanity Management API
|
|
16
|
-
5. Write credentials to `.env.local`
|
|
17
|
-
6. Deploy a CORS origin for `localhost:3000`
|
|
18
|
-
7. Create an initial dataset (`production`)
|
|
19
|
-
8. Display a summary with project ID, dataset, and Studio URL
|
|
20
|
-
|
|
21
|
-
Wired into both `create.js` (step 5.5) and `add-integration.js` (step 7) — if auto-setup is skipped or fails, the CLI falls back to manual credential instructions.
|
|
22
|
-
|
|
23
|
-
#### `add-integration` Command (`-a`, `--add`)
|
|
24
|
-
|
|
25
|
-
Post-scaffold command to inject a CMS integration into an existing Next.js project.
|
|
26
|
-
|
|
27
|
-
- Validates the target is a Next.js App Router project
|
|
28
|
-
- Supports Sanity and BaseHub integrations
|
|
29
|
-
- Automatically injects dependencies, scripts, and CMS files
|
|
30
|
-
- Registers the Sanity MCP server (`claude mcp add`) when Claude Code is detected
|
|
31
|
-
- Installs `sanity-io/agent-toolkit` skills for AI-assisted workflows
|
|
32
|
-
- Conditional next-steps messaging based on whether auto-setup succeeded
|
|
33
|
-
|
|
34
|
-
#### Smart Merge System (`src/mergers/`)
|
|
35
|
-
|
|
36
|
-
CMS-specific file mergers that intelligently inject integration code into existing project files instead of blindly overwriting them.
|
|
37
|
-
|
|
38
|
-
| Merger | File | What it does |
|
|
39
|
-
|--------|------|--------------|
|
|
40
|
-
| `layout-merger.js` | `app/layout.tsx` | Injects Sanity providers, draft-mode components, and imports |
|
|
41
|
-
| `sitemap-merger.js` | `app/sitemap.ts` | Adds Sanity content routes to the sitemap generator |
|
|
42
|
-
| `check-integration-merger.js` | `lib/integrations/check-integration.ts` | Registers Sanity in the integration check map |
|
|
43
|
-
| `config.js` | — | File classification config (merge vs. copy vs. skip) |
|
|
44
|
-
| `index.js` | — | Orchestrator: detects `src/` prefix, resolves mergers, handles fallbacks |
|
|
45
|
-
|
|
46
|
-
**Key features:**
|
|
47
|
-
- Auto-detects `src/` directory structure and adjusts all paths accordingly
|
|
48
|
-
- Downloads integration files from a dedicated branch (`#sanity-integration`)
|
|
49
|
-
- Falls back to direct copy when no merger is defined for a file
|
|
50
|
-
|
|
51
|
-
#### Sanity MCP Server & Agent Toolkit
|
|
52
|
-
|
|
53
|
-
- Registers `https://mcp.sanity.io` as an MCP server during setup (Claude Code projects)
|
|
54
|
-
- Installs `sanity-io/agent-toolkit` skills via `bunx skills add`
|
|
55
|
-
|
|
56
|
-
#### Integration Files (moved to `integrations/sanity/`)
|
|
57
|
-
|
|
58
|
-
Sanity CMS files are now centralized under `integrations/sanity/` instead of being duplicated across all four templates:
|
|
59
|
-
|
|
60
|
-
- `app/studio/[[...tool]]/page.tsx` — Embedded Sanity Studio route
|
|
61
|
-
- `app/studio/layout.tsx` — Studio layout (passthrough, no nested `<html>`)
|
|
62
|
-
- `app/api/revalidate/route.ts` — On-demand ISR revalidation webhook
|
|
63
|
-
- `app/api/draft-mode/{enable,disable}/route.ts` — Draft mode toggle
|
|
64
|
-
- `app/layout.tsx` — Layout with Sanity providers
|
|
65
|
-
- `app/sitemap.ts` — Sitemap with Sanity content routes
|
|
66
|
-
- `lib/integrations/sanity/` — Client, schemas, queries, types, structure
|
|
67
|
-
- `lib/integrations/check-integration.ts` — Integration checker
|
|
68
|
-
- `lib/scripts/generate-page.ts` — Page scaffolding with Sanity schema support
|
|
69
|
-
- `lib/utils/metadata.ts` — Sanity-aware metadata helpers
|
|
70
|
-
- `components/ui/sanity-image/` — Sanity image component
|
|
71
|
-
|
|
72
|
-
### Fixed
|
|
73
|
-
|
|
74
|
-
#### Studio Hydration Errors
|
|
75
|
-
|
|
76
|
-
`app/studio/layout.tsx` previously rendered its own `<html>` and `<body>` tags, causing React hydration mismatches when nested inside the root layout. The layout now passes `children` through directly.
|
|
77
|
-
|
|
78
|
-
### Changed
|
|
79
|
-
|
|
80
|
-
- **Templates cleaned up** — Removed duplicated Sanity files from `template/{default,webgl,webgpu,experiment}/`. Sanity is now injected at build time via the merger system.
|
|
81
|
-
- **Removed `sanity:mcp` script** — The `copy-sanity-mcp.ts` script and its `package.json` entry were removed in favor of direct MCP registration via `claude mcp add`.
|
|
82
|
-
- **`create.js` updated** — Sanity auto-setup (step 5.5), MCP registration (step 5.6), and conditional next-steps messaging added.
|
|
83
|
-
- **`CLAUDE.md` updated** — Added guidance that nested layouts must not render `<html>` or `<body>` tags.
|
|
84
|
-
|
|
85
|
-
### Files Added
|
|
86
|
-
|
|
87
|
-
- `src/commands/setup-sanity.js`
|
|
88
|
-
- `src/commands/add-integration.js`
|
|
89
|
-
- `src/mergers/index.js`
|
|
90
|
-
- `src/mergers/config.js`
|
|
91
|
-
- `src/mergers/layout-merger.js`
|
|
92
|
-
- `src/mergers/sitemap-merger.js`
|
|
93
|
-
- `src/mergers/check-integration-merger.js`
|
|
94
|
-
- `integrations/sanity/` (all CMS files)
|
|
95
|
-
|
|
96
|
-
### Files Modified
|
|
97
|
-
|
|
98
|
-
- `bin/index.js` — Added `--add` / `-a` flag routing
|
|
99
|
-
- `src/commands/create.js` — Sanity auto-setup, MCP registration, agent toolkit
|
|
100
|
-
- `CLAUDE.md` — Nested layout guidance
|
|
101
|
-
- `package.json` — Updated dependencies
|
package/changelog/09-02-26.md
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
# Changelog — February 9, 2026
|
|
2
|
-
|
|
3
|
-
## Dynamic Layer Architecture (next-starter migration)
|
|
4
|
-
|
|
5
|
-
Replaced the duplicated full-template system with a layer-based architecture. The CLI now clones `basementstudio/next-starter` as the base for all project types and overlays technology-specific layers on top, eliminating ~27,000 lines of duplicated code.
|
|
6
|
-
|
|
7
|
-
### Added
|
|
8
|
-
|
|
9
|
-
#### Layer Configuration System (`src/mergers/config.js`)
|
|
10
|
-
|
|
11
|
-
Centralized configuration that defines per-layer dependencies, scripts, and dev dependencies.
|
|
12
|
-
|
|
13
|
-
**Supported layers:**
|
|
14
|
-
|
|
15
|
-
| Layer | Key Dependencies |
|
|
16
|
-
|-------|-----------------|
|
|
17
|
-
| `default` | (base next-starter, no extra deps) |
|
|
18
|
-
| `webgl` | `@react-three/fiber`, `@react-three/drei`, `three`, `@types/three` |
|
|
19
|
-
| `webgpu` | `three` (WebGPU renderer) |
|
|
20
|
-
| `experiment` | (navigation/header components, no extra deps) |
|
|
21
|
-
|
|
22
|
-
Each layer config specifies `dependencies`, `devDependencies`, and `scripts` that get injected into `package.json` during project hydration.
|
|
23
|
-
|
|
24
|
-
#### Layer Files (`layers/`)
|
|
25
|
-
|
|
26
|
-
Technology-specific files extracted from the old full templates into minimal overlay directories:
|
|
27
|
-
|
|
28
|
-
- `layers/webgl/` — Custom `app/page.tsx`, WebGL canvas, and scene components
|
|
29
|
-
- `layers/webgpu/` — `.gitkeep` placeholder (deps-only layer)
|
|
30
|
-
- `layers/experiment/` — Header component, navigation menu, and constants
|
|
31
|
-
|
|
32
|
-
#### Layer Injection Function (`src/mergers/index.js`)
|
|
33
|
-
|
|
34
|
-
New `injectLayer()` function that copies layer-specific files on top of the cloned next-starter base. Handles file overlay with proper path resolution.
|
|
35
|
-
|
|
36
|
-
#### Config-Driven Package Hydration
|
|
37
|
-
|
|
38
|
-
`package.json` hydration now reads dependencies from `LAYER_CONFIG` instead of hardcoding them per template. The `hydratePackageJson()` function in `create.js` merges layer-specific deps, scripts, and devDeps into the base `package.json`.
|
|
39
|
-
|
|
40
|
-
### Changed
|
|
41
|
-
|
|
42
|
-
- **`create.js` — Clone source changed**: All template types now clone from `basementstudio/next-starter#main` instead of per-type template directories. Layer injection happens as a post-clone step.
|
|
43
|
-
- **`create.js` — Template directory deleted after injection**: The CLI cleans up the local `layers/` artifacts from the generated project after overlay.
|
|
44
|
-
- **`bin/index.js` — Command renamed**: Updated CLI command name.
|
|
45
|
-
- **`src/commands/worktree.js`** — Minor update.
|
|
46
|
-
- **`src/mergers/config.js`** — Added `LAYER_CONFIG` export with per-layer dependency maps.
|
|
47
|
-
- **`src/mergers/index.js`** — Added `injectLayer()` alongside existing merger functions.
|
|
48
|
-
|
|
49
|
-
### Removed
|
|
50
|
-
|
|
51
|
-
- **`template/` directory** — Deleted all four full template directories (`default/`, `webgl/`, `webgpu/`, `experiment/`), removing ~27,000 lines of duplicated boilerplate. Each template previously contained a full copy of the next-starter codebase.
|
|
52
|
-
|
|
53
|
-
### Files Added
|
|
54
|
-
|
|
55
|
-
- `layers/webgl/app/page.tsx`
|
|
56
|
-
- `layers/webgl/components/webgl/canvas/dynamic.tsx`
|
|
57
|
-
- `layers/webgl/components/webgl/canvas/index.tsx`
|
|
58
|
-
- `layers/webgl/components/webgl/components/scene/index.tsx`
|
|
59
|
-
- `layers/webgpu/.gitkeep`
|
|
60
|
-
- `layers/experiment/components/layout/header/index.tsx`
|
|
61
|
-
- `layers/experiment/components/layout/navigation-menu.tsx`
|
|
62
|
-
- `layers/experiment/lib/constants.ts`
|
|
63
|
-
- `tasks/prd-next-starter-dynamic-layers.md`
|
|
64
|
-
- `tasks/prd.json`
|
|
65
|
-
- `tasks/progress.txt`
|
|
66
|
-
|
|
67
|
-
### Files Modified
|
|
68
|
-
|
|
69
|
-
- `bin/index.js`
|
|
70
|
-
- `src/commands/create.js`
|
|
71
|
-
- `src/commands/worktree.js`
|
|
72
|
-
- `src/mergers/config.js`
|
|
73
|
-
- `src/mergers/index.js`
|
|
74
|
-
- `CLAUDE.md`
|
|
75
|
-
- `README.md`
|
|
76
|
-
- `package.json`
|
|
77
|
-
|
|
78
|
-
### Files Deleted
|
|
79
|
-
|
|
80
|
-
- `template/default/` (all files)
|
|
81
|
-
- `template/webgl/` (all files)
|
|
82
|
-
- `template/webgpu/` (all files)
|
|
83
|
-
- `template/experiment/` (all files)
|
package/docs/architecture.drawio
DELETED
|
@@ -1,250 +0,0 @@
|
|
|
1
|
-
<mxfile host="app.diagrams.net" modified="2026-02-12T00:00:00.000Z" agent="Claude Code" version="24.0.0" type="device">
|
|
2
|
-
<diagram id="architecture" name="Project Structure">
|
|
3
|
-
<mxGraphModel dx="1422" dy="794" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1600" pageHeight="1200" math="0" shadow="0">
|
|
4
|
-
<root>
|
|
5
|
-
<mxCell id="0" />
|
|
6
|
-
<mxCell id="1" parent="0" />
|
|
7
|
-
|
|
8
|
-
<!-- ROOT -->
|
|
9
|
-
<mxCell id="root" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1a1a2e;strokeColor=#e94560;arcSize=8;" vertex="1" parent="1">
|
|
10
|
-
<mxGeometry x="20" y="20" width="1560" height="1160" as="geometry" />
|
|
11
|
-
</mxCell>
|
|
12
|
-
<mxCell id="root_label" value="<b>basement-starter-cli</b> (root)" style="text;html=1;align=left;verticalAlign=top;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=#e94560;fontSize=16;" vertex="1" parent="1">
|
|
13
|
-
<mxGeometry x="40" y="30" width="250" height="30" as="geometry" />
|
|
14
|
-
</mxCell>
|
|
15
|
-
|
|
16
|
-
<!-- Root files -->
|
|
17
|
-
<mxCell id="root_pkg" value="package.json
workspaces: [packages/*]" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#2d2d44;strokeColor=#e94560;fontColor=#fff;fontSize=10;align=center;" vertex="1" parent="1">
|
|
18
|
-
<mxGeometry x="40" y="70" width="160" height="40" as="geometry" />
|
|
19
|
-
</mxCell>
|
|
20
|
-
<mxCell id="root_biome" value="biome.json
shared linting" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#2d2d44;strokeColor=#e94560;fontColor=#fff;fontSize=10;align=center;" vertex="1" parent="1">
|
|
21
|
-
<mxGeometry x="210" y="70" width="120" height="40" as="geometry" />
|
|
22
|
-
</mxCell>
|
|
23
|
-
<mxCell id="root_changeset" value=".changeset/
versioning" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#2d2d44;strokeColor=#e94560;fontColor=#fff;fontSize=10;align=center;" vertex="1" parent="1">
|
|
24
|
-
<mxGeometry x="340" y="70" width="120" height="40" as="geometry" />
|
|
25
|
-
</mxCell>
|
|
26
|
-
<mxCell id="root_ci" value=".github/workflows/
release pipeline" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#2d2d44;strokeColor=#e94560;fontColor=#fff;fontSize=10;align=center;" vertex="1" parent="1">
|
|
27
|
-
<mxGeometry x="470" y="70" width="140" height="40" as="geometry" />
|
|
28
|
-
</mxCell>
|
|
29
|
-
|
|
30
|
-
<!-- CLI PACKAGE -->
|
|
31
|
-
<mxCell id="cli" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#16213e;strokeColor=#0f3460;arcSize=6;" vertex="1" parent="1">
|
|
32
|
-
<mxGeometry x="40" y="140" width="360" height="420" as="geometry" />
|
|
33
|
-
</mxCell>
|
|
34
|
-
<mxCell id="cli_label" value="<b>packages/cli</b>
@basementstudio/cli" style="text;html=1;align=left;verticalAlign=top;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=#4da6ff;fontSize=14;" vertex="1" parent="1">
|
|
35
|
-
<mxGeometry x="55" y="150" width="200" height="40" as="geometry" />
|
|
36
|
-
</mxCell>
|
|
37
|
-
|
|
38
|
-
<mxCell id="cli_bin" value="<b>bin/index.js</b>
CLI entry point
'basement' command
arg parsing + routing" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1e3a5f;strokeColor=#4da6ff;fontColor=#fff;fontSize=10;align=center;" vertex="1" parent="1">
|
|
39
|
-
<mxGeometry x="60" y="200" width="150" height="70" as="geometry" />
|
|
40
|
-
</mxCell>
|
|
41
|
-
|
|
42
|
-
<mxCell id="cli_create" value="<b>src/commands/create.js</b>
Orchestrates scaffolding
Calls create-basement-app" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1e3a5f;strokeColor=#4da6ff;fontColor=#fff;fontSize=10;align=center;" vertex="1" parent="1">
|
|
43
|
-
<mxGeometry x="60" y="285" width="160" height="60" as="geometry" />
|
|
44
|
-
</mxCell>
|
|
45
|
-
|
|
46
|
-
<mxCell id="cli_add" value="<b>src/commands/
add-integration.js</b>
Add CMS to existing project" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1e3a5f;strokeColor=#4da6ff;fontColor=#fff;fontSize=10;align=center;" vertex="1" parent="1">
|
|
47
|
-
<mxGeometry x="230" y="285" width="155" height="60" as="geometry" />
|
|
48
|
-
</mxCell>
|
|
49
|
-
|
|
50
|
-
<mxCell id="cli_worktree" value="<b>src/commands/
worktree.js</b>
Git worktree mgmt" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1e3a5f;strokeColor=#4da6ff;fontColor=#fff;fontSize=10;align=center;" vertex="1" parent="1">
|
|
51
|
-
<mxGeometry x="60" y="360" width="130" height="55" as="geometry" />
|
|
52
|
-
</mxCell>
|
|
53
|
-
|
|
54
|
-
<mxCell id="cli_sanity" value="<b>src/commands/
setup-sanity.js</b>
Sanity project setup" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1e3a5f;strokeColor=#4da6ff;fontColor=#fff;fontSize=10;align=center;" vertex="1" parent="1">
|
|
55
|
-
<mxGeometry x="200" y="360" width="140" height="55" as="geometry" />
|
|
56
|
-
</mxCell>
|
|
57
|
-
|
|
58
|
-
<mxCell id="cli_pkg" value="<b>package.json</b>
deps: fs-extra, ora, picocolors,
prompts, dotenv" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1e3a5f;strokeColor=#4da6ff;fontColor=#fff;fontSize=10;align=center;" vertex="1" parent="1">
|
|
59
|
-
<mxGeometry x="60" y="430" width="200" height="50" as="geometry" />
|
|
60
|
-
</mxCell>
|
|
61
|
-
|
|
62
|
-
<mxCell id="cli_dep_label" value="depends on
create-basement-app
(workspace:*)" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=#ff6b6b;fontSize=10;fontStyle=2;" vertex="1" parent="1">
|
|
63
|
-
<mxGeometry x="60" y="490" width="130" height="50" as="geometry" />
|
|
64
|
-
</mxCell>
|
|
65
|
-
|
|
66
|
-
<!-- CREATE-BASEMENT-APP PACKAGE -->
|
|
67
|
-
<mxCell id="cba" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#0f3460;strokeColor=#533483;arcSize=4;" vertex="1" parent="1">
|
|
68
|
-
<mxGeometry x="420" y="140" width="1140" height="1020" as="geometry" />
|
|
69
|
-
</mxCell>
|
|
70
|
-
<mxCell id="cba_label" value="<b>packages/create-basement-app</b>
@basementstudio/create-basement-app" style="text;html=1;align=left;verticalAlign=top;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=#b388ff;fontSize=14;" vertex="1" parent="1">
|
|
71
|
-
<mxGeometry x="440" y="150" width="350" height="40" as="geometry" />
|
|
72
|
-
</mxCell>
|
|
73
|
-
|
|
74
|
-
<!-- SRC -->
|
|
75
|
-
<mxCell id="cba_src" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1a2744;strokeColor=#533483;arcSize=6;" vertex="1" parent="1">
|
|
76
|
-
<mxGeometry x="440" y="200" width="520" height="200" as="geometry" />
|
|
77
|
-
</mxCell>
|
|
78
|
-
<mxCell id="cba_src_label" value="<b>src/</b> — scaffolding logic" style="text;html=1;align=left;verticalAlign=top;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=#b388ff;fontSize=12;" vertex="1" parent="1">
|
|
79
|
-
<mxGeometry x="450" y="205" width="180" height="25" as="geometry" />
|
|
80
|
-
</mxCell>
|
|
81
|
-
|
|
82
|
-
<mxCell id="cba_index" value="<b>index.js</b>
Public API
barrel export" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#2a3f5f;strokeColor=#b388ff;fontColor=#fff;fontSize=10;align=center;" vertex="1" parent="1">
|
|
83
|
-
<mxGeometry x="455" y="235" width="100" height="55" as="geometry" />
|
|
84
|
-
</mxCell>
|
|
85
|
-
|
|
86
|
-
<mxCell id="cba_mergers" value="<b>mergers/</b>
index.js — injectLayer, injectIntegration
config.js — CMS_CONFIG, LAYER_CONFIG" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#2a3f5f;strokeColor=#b388ff;fontColor=#fff;fontSize=10;align=center;" vertex="1" parent="1">
|
|
87
|
-
<mxGeometry x="570" y="235" width="250" height="55" as="geometry" />
|
|
88
|
-
</mxCell>
|
|
89
|
-
|
|
90
|
-
<mxCell id="cba_configs" value="<b>configs/</b>
animations.js
GSAP + Motion deps" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#2a3f5f;strokeColor=#b388ff;fontColor=#fff;fontSize=10;align=center;" vertex="1" parent="1">
|
|
91
|
-
<mxGeometry x="835" y="235" width="110" height="55" as="geometry" />
|
|
92
|
-
</mxCell>
|
|
93
|
-
|
|
94
|
-
<mxCell id="cba_pkg" value="<b>package.json</b> — deps: fs-extra, picocolors" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#2a3f5f;strokeColor=#b388ff;fontColor=#fff;fontSize=10;align=center;" vertex="1" parent="1">
|
|
95
|
-
<mxGeometry x="455" y="310" width="280" height="30" as="geometry" />
|
|
96
|
-
</mxCell>
|
|
97
|
-
|
|
98
|
-
<!-- TEMPLATES -->
|
|
99
|
-
<mxCell id="templates" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#3d1f6d;strokeColor=#e94560;arcSize=6;" vertex="1" parent="1">
|
|
100
|
-
<mxGeometry x="440" y="420" width="520" height="280" as="geometry" />
|
|
101
|
-
</mxCell>
|
|
102
|
-
<mxCell id="templates_label" value="<b>templates/</b> — full standalone Next.js projects" style="text;html=1;align=left;verticalAlign=top;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=#ff6b9d;fontSize=12;" vertex="1" parent="1">
|
|
103
|
-
<mxGeometry x="450" y="425" width="330" height="25" as="geometry" />
|
|
104
|
-
</mxCell>
|
|
105
|
-
|
|
106
|
-
<mxCell id="t_default" value="<b>default/</b>
84 files
Base next-starter

next 16.1.4
react 19.2.4
tailwindcss v4
zustand
biome" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#4a2080;strokeColor=#ff6b9d;fontColor=#fff;fontSize=10;align=center;" vertex="1" parent="1">
|
|
107
|
-
<mxGeometry x="455" y="460" width="110" height="130" as="geometry" />
|
|
108
|
-
</mxCell>
|
|
109
|
-
|
|
110
|
-
<mxCell id="t_webgl" value="<b>webgl/</b>
87 files
default + R3F

@react-three/fiber
@react-three/drei
three ^0.182.0
+ canvas/scene" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#4a2080;strokeColor=#ff6b9d;fontColor=#fff;fontSize=10;align=center;" vertex="1" parent="1">
|
|
111
|
-
<mxGeometry x="580" y="460" width="115" height="130" as="geometry" />
|
|
112
|
-
</mxCell>
|
|
113
|
-
|
|
114
|
-
<mxCell id="t_webgpu" value="<b>webgpu/</b>
84 files
default + alpha R3F

fiber 10.0.0-alpha
drei ^11.0.0-alpha
(deps only,
no extra files)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#4a2080;strokeColor=#ff6b9d;fontColor=#fff;fontSize=10;align=center;" vertex="1" parent="1">
|
|
115
|
-
<mxGeometry x="710" y="460" width="115" height="130" as="geometry" />
|
|
116
|
-
</mxCell>
|
|
117
|
-
|
|
118
|
-
<mxCell id="t_experiment" value="<b>experiment/</b>
86 files
default + nav

Radix NavMenu
CVA styling
+ header/nav
+ constants.ts" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#4a2080;strokeColor=#ff6b9d;fontColor=#fff;fontSize=10;align=center;" vertex="1" parent="1">
|
|
119
|
-
<mxGeometry x="840" y="460" width="110" height="130" as="geometry" />
|
|
120
|
-
</mxCell>
|
|
121
|
-
|
|
122
|
-
<mxCell id="t_note" value="Each template is independently runnable:
cd templates/webgl && bun install && bun dev" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=#ff6b9d;fontSize=10;fontStyle=2;" vertex="1" parent="1">
|
|
123
|
-
<mxGeometry x="455" y="605" width="280" height="35" as="geometry" />
|
|
124
|
-
</mxCell>
|
|
125
|
-
|
|
126
|
-
<!-- INTEGRATIONS -->
|
|
127
|
-
<mxCell id="integrations" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#5c1a1a;strokeColor=#ff4d4d;arcSize=6;" vertex="1" parent="1">
|
|
128
|
-
<mxGeometry x="980" y="200" width="560" height="310" as="geometry" />
|
|
129
|
-
</mxCell>
|
|
130
|
-
<mxCell id="int_label" value="<b>integrations/</b> — CMS overlays (applied on top of any template)" style="text;html=1;align=left;verticalAlign=top;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=#ff6b6b;fontSize=12;" vertex="1" parent="1">
|
|
131
|
-
<mxGeometry x="990" y="205" width="400" height="25" as="geometry" />
|
|
132
|
-
</mxCell>
|
|
133
|
-
|
|
134
|
-
<!-- Sanity -->
|
|
135
|
-
<mxCell id="sanity" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#6b2020;strokeColor=#ff4d4d;arcSize=8;" vertex="1" parent="1">
|
|
136
|
-
<mxGeometry x="995" y="240" width="340" height="250" as="geometry" />
|
|
137
|
-
</mxCell>
|
|
138
|
-
<mxCell id="sanity_label" value="<b>sanity/</b>" style="text;html=1;align=left;verticalAlign=top;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=#ff8a8a;fontSize=11;" vertex="1" parent="1">
|
|
139
|
-
<mxGeometry x="1005" y="245" width="70" height="22" as="geometry" />
|
|
140
|
-
</mxCell>
|
|
141
|
-
|
|
142
|
-
<mxCell id="s_config" value="<b>config.js</b>
Single source of truth
deps: @sanity/*, next-sanity
devDeps: sanity
scripts: extract, typegen
additivePaths: 9
mergeFiles: 3" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#7a2a2a;strokeColor=#ff8a8a;fontColor=#fff;fontSize=9;align=center;" vertex="1" parent="1">
|
|
143
|
-
<mxGeometry x="1010" y="270" width="150" height="100" as="geometry" />
|
|
144
|
-
</mxCell>
|
|
145
|
-
|
|
146
|
-
<mxCell id="s_files" value="<b>files/</b>
35 Sanity files
app/ components/
lib/integrations/sanity/" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#7a2a2a;strokeColor=#ff8a8a;fontColor=#fff;fontSize=9;align=center;" vertex="1" parent="1">
|
|
147
|
-
<mxGeometry x="1175" y="270" width="145" height="70" as="geometry" />
|
|
148
|
-
</mxCell>
|
|
149
|
-
|
|
150
|
-
<mxCell id="s_mergers" value="<b>mergers/</b>
layout-merger.js
sitemap-merger.js
check-integration-merger.js" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#7a2a2a;strokeColor=#ff8a8a;fontColor=#fff;fontSize=9;align=center;" vertex="1" parent="1">
|
|
151
|
-
<mxGeometry x="1175" y="355" width="145" height="70" as="geometry" />
|
|
152
|
-
</mxCell>
|
|
153
|
-
|
|
154
|
-
<!-- HOOKS -->
|
|
155
|
-
<mxCell id="hooks" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1a3a4a;strokeColor=#4ecdc4;arcSize=6;" vertex="1" parent="1">
|
|
156
|
-
<mxGeometry x="980" y="530" width="560" height="170" as="geometry" />
|
|
157
|
-
</mxCell>
|
|
158
|
-
<mxCell id="hooks_label" value="<b>template-hooks/</b> — optional hooks copied during scaffolding" style="text;html=1;align=left;verticalAlign=top;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=#4ecdc4;fontSize=12;" vertex="1" parent="1">
|
|
159
|
-
<mxGeometry x="990" y="535" width="380" height="25" as="geometry" />
|
|
160
|
-
</mxCell>
|
|
161
|
-
|
|
162
|
-
<mxCell id="h_config" value="<b>config.js</b>
Hook metadata
+ npm deps per hook" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1e4a5a;strokeColor=#4ecdc4;fontColor=#fff;fontSize=10;align=center;" vertex="1" parent="1">
|
|
163
|
-
<mxGeometry x="1000" y="570" width="120" height="55" as="geometry" />
|
|
164
|
-
</mxCell>
|
|
165
|
-
|
|
166
|
-
<mxCell id="h_battery" value="use-battery.ts
deps: lodash-es" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1e4a5a;strokeColor=#4ecdc4;fontColor=#fff;fontSize=9;align=center;" vertex="1" parent="1">
|
|
167
|
-
<mxGeometry x="1135" y="570" width="100" height="40" as="geometry" />
|
|
168
|
-
</mxCell>
|
|
169
|
-
|
|
170
|
-
<mxCell id="h_perf" value="use-device-perf.ts
deps: detect-gpu,
react-device-detect, zustand" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1e4a5a;strokeColor=#4ecdc4;fontColor=#fff;fontSize=9;align=center;" vertex="1" parent="1">
|
|
171
|
-
<mxGeometry x="1250" y="570" width="130" height="55" as="geometry" />
|
|
172
|
-
</mxCell>
|
|
173
|
-
|
|
174
|
-
<mxCell id="h_observer" value="use-intersection-
observer.ts
(no deps)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1e4a5a;strokeColor=#4ecdc4;fontColor=#fff;fontSize=9;align=center;" vertex="1" parent="1">
|
|
175
|
-
<mxGeometry x="1395" y="570" width="100" height="50" as="geometry" />
|
|
176
|
-
</mxCell>
|
|
177
|
-
|
|
178
|
-
<mxCell id="h_media" value="use-media.ts
(no deps)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1e4a5a;strokeColor=#4ecdc4;fontColor=#fff;fontSize=9;align=center;" vertex="1" parent="1">
|
|
179
|
-
<mxGeometry x="1135" y="625" width="100" height="35" as="geometry" />
|
|
180
|
-
</mxCell>
|
|
181
|
-
|
|
182
|
-
<!-- PLUGINS -->
|
|
183
|
-
<mxCell id="plugins" value="<b>plugins/</b>
no-anchor-element.grit
no-unnecessary-forwardref.grit
no-relative-parent-imports.grit" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#2a3a2a;strokeColor=#66bb6a;fontColor=#fff;fontSize=10;align=center;" vertex="1" parent="1">
|
|
184
|
-
<mxGeometry x="980" y="720" width="220" height="70" as="geometry" />
|
|
185
|
-
</mxCell>
|
|
186
|
-
|
|
187
|
-
<!-- ARROWS: CLI -> CBA -->
|
|
188
|
-
<mxCell id="arrow1" value="" style="endArrow=block;endFill=1;html=1;strokeColor=#ff6b6b;strokeWidth=2;entryX=0;entryY=0.5;exitX=1;exitY=0.5;" edge="1" parent="1" source="cli_create" target="cba_index">
|
|
189
|
-
<mxGeometry relative="1" as="geometry" />
|
|
190
|
-
</mxCell>
|
|
191
|
-
<mxCell id="arrow1_label" value="imports" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontColor=#ff6b6b;fontSize=10;" vertex="1" connectable="0" parent="arrow1">
|
|
192
|
-
<mxGeometry x="-0.2" relative="1" as="geometry">
|
|
193
|
-
<mxPoint as="offset" />
|
|
194
|
-
</mxGeometry>
|
|
195
|
-
</mxCell>
|
|
196
|
-
|
|
197
|
-
<!-- ARROW: CLI create -> templates -->
|
|
198
|
-
<mxCell id="arrow2" value="" style="endArrow=block;endFill=1;html=1;strokeColor=#ff6b9d;strokeWidth=2;dashed=1;exitX=1;exitY=1;entryX=0;entryY=0;" edge="1" parent="1" source="cli_create" target="templates">
|
|
199
|
-
<mxGeometry relative="1" as="geometry" />
|
|
200
|
-
</mxCell>
|
|
201
|
-
<mxCell id="arrow2_label" value="fs.copy" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontColor=#ff6b9d;fontSize=10;" vertex="1" connectable="0" parent="arrow2">
|
|
202
|
-
<mxGeometry x="-0.2" relative="1" as="geometry">
|
|
203
|
-
<mxPoint as="offset" />
|
|
204
|
-
</mxGeometry>
|
|
205
|
-
</mxCell>
|
|
206
|
-
|
|
207
|
-
<!-- ARROW: CLI create -> integrations -->
|
|
208
|
-
<mxCell id="arrow3" value="" style="endArrow=block;endFill=1;html=1;strokeColor=#ff4d4d;strokeWidth=2;dashed=1;exitX=1;exitY=0.3;entryX=0;entryY=0.5;" edge="1" parent="1" source="cli" target="integrations">
|
|
209
|
-
<mxGeometry relative="1" as="geometry" />
|
|
210
|
-
</mxCell>
|
|
211
|
-
<mxCell id="arrow3_label" value="merge + copy" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontColor=#ff4d4d;fontSize=10;" vertex="1" connectable="0" parent="arrow3">
|
|
212
|
-
<mxGeometry x="-0.3" relative="1" as="geometry">
|
|
213
|
-
<mxPoint as="offset" />
|
|
214
|
-
</mxGeometry>
|
|
215
|
-
</mxCell>
|
|
216
|
-
|
|
217
|
-
<!-- ARROW: mergers -> sanity mergers -->
|
|
218
|
-
<mxCell id="arrow4" value="" style="endArrow=block;endFill=1;html=1;strokeColor=#ff8a8a;strokeWidth=1;dashed=1;" edge="1" parent="1" source="cba_mergers" target="s_mergers">
|
|
219
|
-
<mxGeometry relative="1" as="geometry" />
|
|
220
|
-
</mxCell>
|
|
221
|
-
<mxCell id="arrow4_label" value="imports" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontColor=#ff8a8a;fontSize=9;" vertex="1" connectable="0" parent="arrow4">
|
|
222
|
-
<mxGeometry x="-0.2" relative="1" as="geometry">
|
|
223
|
-
<mxPoint as="offset" />
|
|
224
|
-
</mxGeometry>
|
|
225
|
-
</mxCell>
|
|
226
|
-
|
|
227
|
-
<!-- DATA FLOW LEGEND -->
|
|
228
|
-
<mxCell id="legend" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1a1a2e;strokeColor=#555;arcSize=8;" vertex="1" parent="1">
|
|
229
|
-
<mxGeometry x="440" y="730" width="500" height="110" as="geometry" />
|
|
230
|
-
</mxCell>
|
|
231
|
-
<mxCell id="legend_title" value="<b>Data Flow</b>" style="text;html=1;align=left;verticalAlign=top;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=#fff;fontSize=11;" vertex="1" parent="1">
|
|
232
|
-
<mxGeometry x="455" y="735" width="80" height="22" as="geometry" />
|
|
233
|
-
</mxCell>
|
|
234
|
-
<mxCell id="legend1" value="1. User runs <b>basement</b> → CLI parses args, prompts for choices" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=#4da6ff;fontSize=10;" vertex="1" parent="1">
|
|
235
|
-
<mxGeometry x="455" y="758" width="340" height="22" as="geometry" />
|
|
236
|
-
</mxCell>
|
|
237
|
-
<mxCell id="legend2" value="2. CLI copies selected <b>template</b> to target dir (instant, no network)" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=#ff6b9d;fontSize=10;" vertex="1" parent="1">
|
|
238
|
-
<mxGeometry x="455" y="778" width="380" height="22" as="geometry" />
|
|
239
|
-
</mxCell>
|
|
240
|
-
<mxCell id="legend3" value="3. CLI applies CMS <b>integration</b> via merge + copy (if selected)" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=#ff4d4d;fontSize=10;" vertex="1" parent="1">
|
|
241
|
-
<mxGeometry x="455" y="798" width="350" height="22" as="geometry" />
|
|
242
|
-
</mxCell>
|
|
243
|
-
<mxCell id="legend4" value="4. CLI hydrates package.json from <b>config manifests</b> (zero hardcoded deps)" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=#b388ff;fontSize=10;" vertex="1" parent="1">
|
|
244
|
-
<mxGeometry x="455" y="818" width="420" height="22" as="geometry" />
|
|
245
|
-
</mxCell>
|
|
246
|
-
|
|
247
|
-
</root>
|
|
248
|
-
</mxGraphModel>
|
|
249
|
-
</diagram>
|
|
250
|
-
</mxfile>
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
graph TD
|
|
2
|
-
subgraph ROOT["basement-starter-cli (root)"]
|
|
3
|
-
PKG_ROOT["package.json<br/><i>workspaces: packages/*</i>"]
|
|
4
|
-
BIOME["biome.json<br/><i>shared linting</i>"]
|
|
5
|
-
CHANGESET[".changeset/<br/><i>versioning</i>"]
|
|
6
|
-
CI[".github/workflows/<br/><i>release pipeline</i>"]
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
subgraph CLI["packages/cli — @basementstudio/cli"]
|
|
10
|
-
CLI_BIN["bin/index.js<br/><i>CLI entry point</i><br/><i>basement command</i>"]
|
|
11
|
-
CLI_CREATE["src/commands/create.js<br/><i>orchestrates scaffolding</i>"]
|
|
12
|
-
CLI_ADD["src/commands/add-integration.js<br/><i>add CMS to existing project</i>"]
|
|
13
|
-
CLI_WORKTREE["src/commands/worktree.js<br/><i>git worktree management</i>"]
|
|
14
|
-
CLI_SANITY["src/commands/setup-sanity.js<br/><i>automated Sanity setup</i>"]
|
|
15
|
-
CLI_PKG["package.json<br/><i>depends on create-basement-app</i>"]
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
subgraph CBA["packages/create-basement-app — @basementstudio/create-basement-app"]
|
|
19
|
-
CBA_INDEX["src/index.js<br/><i>public API barrel export</i>"]
|
|
20
|
-
|
|
21
|
-
subgraph MERGERS["src/mergers/"]
|
|
22
|
-
MERGER_INDEX["index.js<br/><i>injectLayer, injectIntegration</i>"]
|
|
23
|
-
MERGER_CONFIG["config.js<br/><i>CMS_CONFIG, LAYER_CONFIG</i>"]
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
subgraph CONFIGS["src/configs/"]
|
|
27
|
-
ANIM_CONFIG["animations.js<br/><i>GSAP, Motion deps</i>"]
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
subgraph TEMPLATES["templates/ — standalone Next.js projects"]
|
|
31
|
-
T_DEFAULT["default/<br/><i>84 files, base starter</i>"]
|
|
32
|
-
T_WEBGL["webgl/<br/><i>87 files, R3F + canvas</i>"]
|
|
33
|
-
T_WEBGPU["webgpu/<br/><i>84 files, alpha R3F deps</i>"]
|
|
34
|
-
T_EXPERIMENT["experiment/<br/><i>86 files, nav components</i>"]
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
subgraph INTEGRATIONS["integrations/ — CMS overlays"]
|
|
38
|
-
subgraph SANITY["sanity/"]
|
|
39
|
-
S_CONFIG["config.js<br/><i>deps, scripts, paths</i>"]
|
|
40
|
-
S_FILES["files/<br/><i>35 Sanity files</i>"]
|
|
41
|
-
S_MERGERS["mergers/<br/><i>layout, sitemap, check</i>"]
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
subgraph HOOKS["template-hooks/"]
|
|
46
|
-
H_CONFIG["config.js<br/><i>hook metadata + deps</i>"]
|
|
47
|
-
H_BATTERY["use-battery.ts"]
|
|
48
|
-
H_PERF["use-device-perf.ts"]
|
|
49
|
-
H_OBSERVER["use-intersection-observer.ts"]
|
|
50
|
-
H_MEDIA["use-media.ts"]
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
PLUGINS["plugins/<br/><i>3 Biome Grit rules</i>"]
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
%% Dependencies
|
|
57
|
-
CLI_BIN --> CLI_CREATE
|
|
58
|
-
CLI_BIN --> CLI_ADD
|
|
59
|
-
CLI_BIN --> CLI_WORKTREE
|
|
60
|
-
CLI_CREATE --> CBA_INDEX
|
|
61
|
-
CLI_CREATE --> S_CONFIG
|
|
62
|
-
CLI_CREATE --> H_CONFIG
|
|
63
|
-
CLI_ADD --> CBA_INDEX
|
|
64
|
-
CLI_ADD --> S_CONFIG
|
|
65
|
-
CBA_INDEX --> MERGER_INDEX
|
|
66
|
-
CBA_INDEX --> ANIM_CONFIG
|
|
67
|
-
MERGER_INDEX --> MERGER_CONFIG
|
|
68
|
-
MERGER_INDEX --> S_MERGERS
|
|
69
|
-
CLI_CREATE --> TEMPLATES
|
|
70
|
-
CLI_CREATE --> CLI_SANITY
|
|
71
|
-
|
|
72
|
-
%% Styling
|
|
73
|
-
classDef root fill:#1a1a2e,stroke:#e94560,color:#fff
|
|
74
|
-
classDef cli fill:#16213e,stroke:#0f3460,color:#fff
|
|
75
|
-
classDef cba fill:#0f3460,stroke:#533483,color:#fff
|
|
76
|
-
classDef template fill:#533483,stroke:#e94560,color:#fff
|
|
77
|
-
classDef integration fill:#e94560,stroke:#fff,color:#fff
|
|
78
|
-
classDef hook fill:#0f3460,stroke:#e94560,color:#fff
|
|
79
|
-
|
|
80
|
-
class ROOT root
|
|
81
|
-
class CLI cli
|
|
82
|
-
class CBA cba
|
|
83
|
-
class TEMPLATES,T_DEFAULT,T_WEBGL,T_WEBGPU,T_EXPERIMENT template
|
|
84
|
-
class INTEGRATIONS,SANITY integration
|
|
85
|
-
class HOOKS hook
|