base-themes 0.1.2 → 0.1.3

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.
Files changed (262) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/CODE_OF_CONDUCT.md +22 -0
  3. package/CONTRIBUTING.md +98 -0
  4. package/LICENSE +21 -0
  5. package/README.md +316 -3
  6. package/RELEASE.md +80 -0
  7. package/SECURITY.md +49 -0
  8. package/bin/base-themes.mjs +143 -0
  9. package/dist/base-themes.css +1 -1
  10. package/dist/base-themes.js +857 -302
  11. package/dist/llms-full.txt +288 -0
  12. package/dist/llms.txt +79 -0
  13. package/dist/types/blocks/AuthCard.d.ts +2 -0
  14. package/dist/types/blocks/CommandPaletteBlock.d.ts +2 -0
  15. package/dist/types/blocks/DashboardShell.d.ts +2 -0
  16. package/dist/types/blocks/DataTableBlock.d.ts +2 -0
  17. package/dist/types/blocks/PricingPanel.d.ts +2 -0
  18. package/dist/types/blocks/SettingsForm.d.ts +2 -0
  19. package/dist/types/blocks/TeamActivityFeed.d.ts +2 -0
  20. package/dist/types/blocks/ThemeShowcaseCard.d.ts +2 -0
  21. package/dist/types/blocks/index.d.ts +8 -0
  22. package/dist/types/components/ui/Input.d.ts +3 -0
  23. package/dist/types/components/ui/index.d.ts +1 -1
  24. package/dist/types/lib.d.ts +1 -0
  25. package/docs/adoption-dashboard.md +149 -0
  26. package/docs/analytics-setup.md +145 -0
  27. package/docs/community-gallery-proposal.md +64 -0
  28. package/docs/community-proof-telemetry.md +47 -0
  29. package/docs/contributor-issue-seeds.md +240 -0
  30. package/docs/registry-access-telemetry.md +87 -0
  31. package/docs/release-announcement-kit.md +229 -0
  32. package/docs/search-console-setup.md +111 -0
  33. package/docs/theme-token-contract.md +113 -0
  34. package/examples/dashboard/README.md +24 -0
  35. package/examples/dashboard/index.html +12 -0
  36. package/examples/dashboard/package-lock.json +1212 -0
  37. package/examples/dashboard/package.json +24 -0
  38. package/examples/dashboard/src/App.tsx +115 -0
  39. package/examples/dashboard/src/main.tsx +11 -0
  40. package/examples/dashboard/src/styles.css +129 -0
  41. package/examples/dashboard/src/vite-env.d.ts +4 -0
  42. package/examples/dashboard/tsconfig.app.json +23 -0
  43. package/examples/dashboard/tsconfig.json +7 -0
  44. package/examples/dashboard/tsconfig.node.json +15 -0
  45. package/examples/dashboard/vite.config.ts +6 -0
  46. package/examples/next/README.md +29 -0
  47. package/examples/next/app/base-themes-demo.tsx +70 -0
  48. package/examples/next/app/layout.tsx +16 -0
  49. package/examples/next/app/page.tsx +9 -0
  50. package/examples/next/app/styles.css +106 -0
  51. package/examples/next/next-env.d.ts +6 -0
  52. package/examples/next/next.config.ts +5 -0
  53. package/examples/next/package-lock.json +1199 -0
  54. package/examples/next/package.json +27 -0
  55. package/examples/next/tsconfig.json +36 -0
  56. package/examples/registry-copy/README.md +73 -0
  57. package/examples/registry-copy/plan-copy.mjs +130 -0
  58. package/examples/theme-customization/README.md +26 -0
  59. package/examples/theme-customization/index.html +12 -0
  60. package/examples/theme-customization/package-lock.json +1212 -0
  61. package/examples/theme-customization/package.json +24 -0
  62. package/examples/theme-customization/src/App.tsx +138 -0
  63. package/examples/theme-customization/src/main.tsx +11 -0
  64. package/examples/theme-customization/src/styles.css +138 -0
  65. package/examples/theme-customization/src/vite-env.d.ts +4 -0
  66. package/examples/theme-customization/tsconfig.app.json +23 -0
  67. package/examples/theme-customization/tsconfig.json +7 -0
  68. package/examples/theme-customization/tsconfig.node.json +15 -0
  69. package/examples/theme-customization/vite.config.ts +6 -0
  70. package/examples/vite/README.md +32 -0
  71. package/examples/vite/index.html +12 -0
  72. package/examples/vite/package-lock.json +1200 -0
  73. package/examples/vite/package.json +24 -0
  74. package/examples/vite/src/App.tsx +101 -0
  75. package/examples/vite/src/main.tsx +11 -0
  76. package/examples/vite/src/styles.css +125 -0
  77. package/examples/vite/src/vite-env.d.ts +4 -0
  78. package/examples/vite/tsconfig.app.json +23 -0
  79. package/examples/vite/tsconfig.json +7 -0
  80. package/examples/vite/tsconfig.node.json +15 -0
  81. package/examples/vite/vite.config.ts +6 -0
  82. package/llms-full.txt +288 -0
  83. package/llms.txt +79 -0
  84. package/package.json +157 -14
  85. package/registry/items/accordion.json +101 -0
  86. package/registry/items/alert-dialog.json +107 -0
  87. package/registry/items/autocomplete.json +106 -0
  88. package/registry/items/avatar.json +101 -0
  89. package/registry/items/block-auth-card.json +105 -0
  90. package/registry/items/block-command-palette.json +99 -0
  91. package/registry/items/block-dashboard-shell.json +101 -0
  92. package/registry/items/block-data-table.json +99 -0
  93. package/registry/items/block-pricing-panel.json +99 -0
  94. package/registry/items/block-settings-form.json +107 -0
  95. package/registry/items/block-team-activity-feed.json +99 -0
  96. package/registry/items/block-theme-showcase-card.json +99 -0
  97. package/registry/items/button.json +102 -0
  98. package/registry/items/checkbox-group.json +106 -0
  99. package/registry/items/checkbox.json +102 -0
  100. package/registry/items/collapsible.json +101 -0
  101. package/registry/items/combobox.json +101 -0
  102. package/registry/items/context-menu.json +106 -0
  103. package/registry/items/csp-provider.json +96 -0
  104. package/registry/items/dialog.json +102 -0
  105. package/registry/items/direction-provider.json +101 -0
  106. package/registry/items/drawer.json +101 -0
  107. package/registry/items/field.json +101 -0
  108. package/registry/items/fieldset.json +101 -0
  109. package/registry/items/form.json +101 -0
  110. package/registry/items/input.json +102 -0
  111. package/registry/items/menu.json +101 -0
  112. package/registry/items/menubar.json +106 -0
  113. package/registry/items/meter.json +101 -0
  114. package/registry/items/navigation-menu.json +101 -0
  115. package/registry/items/number-field.json +101 -0
  116. package/registry/items/otp-field.json +101 -0
  117. package/registry/items/popover.json +102 -0
  118. package/registry/items/preview-card.json +101 -0
  119. package/registry/items/progress.json +101 -0
  120. package/registry/items/radio-group.json +102 -0
  121. package/registry/items/radio.json +101 -0
  122. package/registry/items/scroll-area.json +101 -0
  123. package/registry/items/select.json +102 -0
  124. package/registry/items/separator.json +101 -0
  125. package/registry/items/slider.json +102 -0
  126. package/registry/items/switch.json +102 -0
  127. package/registry/items/tabs.json +101 -0
  128. package/registry/items/theme-bauhaus.json +107 -0
  129. package/registry/items/theme-bento.json +107 -0
  130. package/registry/items/theme-calm.json +107 -0
  131. package/registry/items/theme-cyberpunk.json +108 -0
  132. package/registry/items/theme-data-dense.json +107 -0
  133. package/registry/items/theme-editorial.json +107 -0
  134. package/registry/items/theme-enterprise.json +108 -0
  135. package/registry/items/theme-fluent.json +107 -0
  136. package/registry/items/theme-glass.json +107 -0
  137. package/registry/items/theme-linear.json +107 -0
  138. package/registry/items/theme-luxury.json +107 -0
  139. package/registry/items/theme-material.json +107 -0
  140. package/registry/items/theme-minimal.json +107 -0
  141. package/registry/items/theme-mono.json +107 -0
  142. package/registry/items/theme-neo-brutalism.json +107 -0
  143. package/registry/items/theme-playful.json +107 -0
  144. package/registry/items/theme-retro.json +107 -0
  145. package/registry/items/theme-shadcn.json +107 -0
  146. package/registry/items/theme-soft-ui.json +107 -0
  147. package/registry/items/theme-terminal.json +107 -0
  148. package/registry/items/toast.json +106 -0
  149. package/registry/items/toggle-group.json +101 -0
  150. package/registry/items/toggle.json +101 -0
  151. package/registry/items/toolbar.json +101 -0
  152. package/registry/items/tooltip.json +102 -0
  153. package/registry/registry.json +564 -49
  154. package/registry/shadcn-registry.json +415 -0
  155. package/research/telemetry-fixtures/analytics-events.jsonl +9 -0
  156. package/research/telemetry-fixtures/bundle-report.json +44 -0
  157. package/research/telemetry-fixtures/community-proof.csv +5 -0
  158. package/research/telemetry-fixtures/registry-access.jsonl +10 -0
  159. package/research/telemetry-fixtures/search-console-export.csv +4 -0
  160. package/scripts/registry-plan.mjs +434 -0
  161. package/scripts/render-launch-actions.mjs +405 -0
  162. package/scripts/render-launch-status.mjs +373 -0
  163. package/scripts/render-release-announcement.mjs +329 -0
  164. package/scripts/verify-launch-readiness.mjs +415 -0
  165. package/scripts/verify-telemetry-fixtures.mjs +85 -0
  166. package/scripts/verify-telemetry-report.mjs +89 -0
  167. package/skills/base-themes/SKILL.md +151 -47
  168. package/src/blocks/AuthCard.tsx +29 -0
  169. package/src/blocks/Blocks.css +182 -0
  170. package/src/blocks/CommandPaletteBlock.tsx +32 -0
  171. package/src/blocks/DashboardShell.tsx +36 -0
  172. package/src/blocks/DataTableBlock.tsx +44 -0
  173. package/src/blocks/PricingPanel.tsx +28 -0
  174. package/src/blocks/SettingsForm.tsx +37 -0
  175. package/src/blocks/TeamActivityFeed.tsx +38 -0
  176. package/src/blocks/ThemeShowcaseCard.tsx +32 -0
  177. package/src/blocks/index.ts +8 -0
  178. package/src/components/ui/Accordion.css +42 -0
  179. package/src/components/ui/Accordion.tsx +41 -0
  180. package/src/components/ui/AlertDialog.css +40 -0
  181. package/src/components/ui/AlertDialog.tsx +52 -0
  182. package/src/components/ui/Autocomplete.css +3 -0
  183. package/src/components/ui/Autocomplete.tsx +50 -0
  184. package/src/components/ui/Avatar.css +45 -0
  185. package/src/components/ui/Avatar.tsx +36 -0
  186. package/src/components/ui/Button.css +79 -0
  187. package/src/components/ui/Button.tsx +20 -0
  188. package/src/components/ui/Checkbox.css +37 -0
  189. package/src/components/ui/Checkbox.tsx +32 -0
  190. package/src/components/ui/CheckboxGroup.tsx +21 -0
  191. package/src/components/ui/Collapsible.css +34 -0
  192. package/src/components/ui/Collapsible.tsx +29 -0
  193. package/src/components/ui/Combobox.css +75 -0
  194. package/src/components/ui/Combobox.tsx +53 -0
  195. package/src/components/ui/ContextMenu.css +9 -0
  196. package/src/components/ui/ContextMenu.tsx +47 -0
  197. package/src/components/ui/CspProvider.tsx +10 -0
  198. package/src/components/ui/Dialog.css +41 -0
  199. package/src/components/ui/Dialog.tsx +45 -0
  200. package/src/components/ui/DirectionProvider.tsx +17 -0
  201. package/src/components/ui/Drawer.css +77 -0
  202. package/src/components/ui/Drawer.tsx +56 -0
  203. package/src/components/ui/Field.css +19 -0
  204. package/src/components/ui/Field.tsx +24 -0
  205. package/src/components/ui/Fieldset.css +16 -0
  206. package/src/components/ui/Fieldset.tsx +19 -0
  207. package/src/components/ui/Form.css +5 -0
  208. package/src/components/ui/Form.tsx +12 -0
  209. package/src/components/ui/Input.css +50 -0
  210. package/src/components/ui/Input.tsx +62 -0
  211. package/src/components/ui/Menu.css +59 -0
  212. package/src/components/ui/Menu.tsx +50 -0
  213. package/src/components/ui/Menubar.css +26 -0
  214. package/src/components/ui/Menubar.tsx +42 -0
  215. package/src/components/ui/Meter.css +45 -0
  216. package/src/components/ui/Meter.tsx +37 -0
  217. package/src/components/ui/NavigationMenu.css +103 -0
  218. package/src/components/ui/NavigationMenu.tsx +64 -0
  219. package/src/components/ui/NumberField.css +38 -0
  220. package/src/components/ui/NumberField.tsx +28 -0
  221. package/src/components/ui/OtpField.css +28 -0
  222. package/src/components/ui/OtpField.tsx +24 -0
  223. package/src/components/ui/Popover.css +25 -0
  224. package/src/components/ui/Popover.tsx +37 -0
  225. package/src/components/ui/PreviewCard.css +33 -0
  226. package/src/components/ui/PreviewCard.tsx +43 -0
  227. package/src/components/ui/Progress.css +33 -0
  228. package/src/components/ui/Progress.tsx +28 -0
  229. package/src/components/ui/Radio.tsx +22 -0
  230. package/src/components/ui/RadioGroup.css +42 -0
  231. package/src/components/ui/RadioGroup.tsx +29 -0
  232. package/src/components/ui/ScrollArea.css +42 -0
  233. package/src/components/ui/ScrollArea.tsx +22 -0
  234. package/src/components/ui/Select.css +86 -0
  235. package/src/components/ui/Select.tsx +39 -0
  236. package/src/components/ui/Separator.css +14 -0
  237. package/src/components/ui/Separator.tsx +12 -0
  238. package/src/components/ui/Slider.css +39 -0
  239. package/src/components/ui/Slider.tsx +21 -0
  240. package/src/components/ui/Switch.css +45 -0
  241. package/src/components/ui/Switch.tsx +29 -0
  242. package/src/components/ui/Tabs.css +72 -0
  243. package/src/components/ui/Tabs.tsx +44 -0
  244. package/src/components/ui/Toast.css +75 -0
  245. package/src/components/ui/Toast.tsx +48 -0
  246. package/src/components/ui/Toggle.tsx +12 -0
  247. package/src/components/ui/ToggleGroup.css +35 -0
  248. package/src/components/ui/ToggleGroup.tsx +30 -0
  249. package/src/components/ui/Toolbar.css +60 -0
  250. package/src/components/ui/Toolbar.tsx +36 -0
  251. package/src/components/ui/Tooltip.css +14 -0
  252. package/src/components/ui/Tooltip.tsx +31 -0
  253. package/src/components/ui/index.ts +83 -0
  254. package/src/components/ui/useDirection.ts +1 -0
  255. package/src/components/ui/useToastManager.ts +11 -0
  256. package/src/docs/blockMeta.json +66 -0
  257. package/src/docs/componentMeta.json +322 -0
  258. package/src/docs/staticPageMeta.json +143 -0
  259. package/src/docs/themeMeta.json +22 -0
  260. package/src/styles/tokenContract.json +61 -0
  261. package/workers/analytics-receiver.mjs +170 -0
  262. package/wrangler.analytics.jsonc +12 -0
@@ -0,0 +1,102 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "slider",
4
+ "type": "registry:ui",
5
+ "title": "Slider",
6
+ "description": "A range input with Base UI keyboard handling and tokenized track styling.",
7
+ "dependencies": [
8
+ "@base-ui/react",
9
+ "clsx",
10
+ "lucide-react"
11
+ ],
12
+ "files": [
13
+ {
14
+ "path": "src/components/ui/Slider.tsx",
15
+ "type": "registry:ui",
16
+ "target": "@/components/ui/Slider.tsx"
17
+ },
18
+ {
19
+ "path": "src/components/ui/Slider.css",
20
+ "type": "registry:file",
21
+ "target": "@/components/ui/Slider.css"
22
+ }
23
+ ],
24
+ "categories": [
25
+ "base-ui",
26
+ "component",
27
+ "inputs",
28
+ "form"
29
+ ],
30
+ "meta": {
31
+ "baseThemes": {
32
+ "source": "package-and-source-copy",
33
+ "docsRoute": "/components/slider",
34
+ "supportsStyles": [
35
+ "bento",
36
+ "shadcn",
37
+ "neo-brutalism",
38
+ "minimal",
39
+ "enterprise",
40
+ "linear",
41
+ "glass",
42
+ "terminal",
43
+ "material",
44
+ "fluent",
45
+ "retro",
46
+ "cyberpunk",
47
+ "editorial",
48
+ "calm",
49
+ "data-dense",
50
+ "playful",
51
+ "luxury",
52
+ "soft-ui",
53
+ "bauhaus",
54
+ "mono"
55
+ ],
56
+ "styleContract": [
57
+ "data-style",
58
+ "data-theme",
59
+ "src/index.css",
60
+ "src/styles/tokens.css",
61
+ "src/styles/themes.css",
62
+ "src/styles/shadcn.css",
63
+ "src/styles/neo-brutalism.css",
64
+ "src/styles/cyberpunk.css",
65
+ "src/styles/terminal.css",
66
+ "src/styles/material.css",
67
+ "src/styles/glass.css"
68
+ ]
69
+ },
70
+ "agent": {
71
+ "summary": "Use Slider when a React UI needs a range input with base ui keyboard handling and tokenized track styling.",
72
+ "whenToUse": [
73
+ "Inputs",
74
+ "Base UI wrapper",
75
+ "CSS token theme support"
76
+ ],
77
+ "packageInstall": [
78
+ "npm install base-themes @base-ui/react react react-dom",
79
+ "import base-themes/styles.css once",
80
+ "import { Slider } from 'base-themes'"
81
+ ],
82
+ "sourceCopy": [
83
+ "fetch /registry/items/slider.json",
84
+ "copy every files[].path to files[].target",
85
+ "copy every registry.style.files entry once",
86
+ "install dependencies from dependencies[]"
87
+ ],
88
+ "installPlan": [
89
+ "npm install base-themes @base-ui/react react react-dom",
90
+ "import base-themes/styles.css once",
91
+ "import { Slider } from 'base-themes'",
92
+ "or fetch /registry/items/slider.json for source-copy"
93
+ ],
94
+ "verify": [
95
+ "npm run registry:check",
96
+ "npm run tokens:check",
97
+ "npm run lint",
98
+ "npm run build"
99
+ ]
100
+ }
101
+ }
102
+ }
@@ -0,0 +1,102 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "switch",
4
+ "type": "registry:ui",
5
+ "title": "Switch",
6
+ "description": "A binary setting control for immediate on/off preferences.",
7
+ "dependencies": [
8
+ "@base-ui/react",
9
+ "clsx",
10
+ "lucide-react"
11
+ ],
12
+ "files": [
13
+ {
14
+ "path": "src/components/ui/Switch.tsx",
15
+ "type": "registry:ui",
16
+ "target": "@/components/ui/Switch.tsx"
17
+ },
18
+ {
19
+ "path": "src/components/ui/Switch.css",
20
+ "type": "registry:file",
21
+ "target": "@/components/ui/Switch.css"
22
+ }
23
+ ],
24
+ "categories": [
25
+ "base-ui",
26
+ "component",
27
+ "inputs",
28
+ "form"
29
+ ],
30
+ "meta": {
31
+ "baseThemes": {
32
+ "source": "package-and-source-copy",
33
+ "docsRoute": "/components/switch",
34
+ "supportsStyles": [
35
+ "bento",
36
+ "shadcn",
37
+ "neo-brutalism",
38
+ "minimal",
39
+ "enterprise",
40
+ "linear",
41
+ "glass",
42
+ "terminal",
43
+ "material",
44
+ "fluent",
45
+ "retro",
46
+ "cyberpunk",
47
+ "editorial",
48
+ "calm",
49
+ "data-dense",
50
+ "playful",
51
+ "luxury",
52
+ "soft-ui",
53
+ "bauhaus",
54
+ "mono"
55
+ ],
56
+ "styleContract": [
57
+ "data-style",
58
+ "data-theme",
59
+ "src/index.css",
60
+ "src/styles/tokens.css",
61
+ "src/styles/themes.css",
62
+ "src/styles/shadcn.css",
63
+ "src/styles/neo-brutalism.css",
64
+ "src/styles/cyberpunk.css",
65
+ "src/styles/terminal.css",
66
+ "src/styles/material.css",
67
+ "src/styles/glass.css"
68
+ ]
69
+ },
70
+ "agent": {
71
+ "summary": "Use Switch when a React UI needs a binary setting control for immediate on/off preferences.",
72
+ "whenToUse": [
73
+ "Inputs",
74
+ "Base UI wrapper",
75
+ "CSS token theme support"
76
+ ],
77
+ "packageInstall": [
78
+ "npm install base-themes @base-ui/react react react-dom",
79
+ "import base-themes/styles.css once",
80
+ "import { Switch } from 'base-themes'"
81
+ ],
82
+ "sourceCopy": [
83
+ "fetch /registry/items/switch.json",
84
+ "copy every files[].path to files[].target",
85
+ "copy every registry.style.files entry once",
86
+ "install dependencies from dependencies[]"
87
+ ],
88
+ "installPlan": [
89
+ "npm install base-themes @base-ui/react react react-dom",
90
+ "import base-themes/styles.css once",
91
+ "import { Switch } from 'base-themes'",
92
+ "or fetch /registry/items/switch.json for source-copy"
93
+ ],
94
+ "verify": [
95
+ "npm run registry:check",
96
+ "npm run tokens:check",
97
+ "npm run lint",
98
+ "npm run build"
99
+ ]
100
+ }
101
+ }
102
+ }
@@ -0,0 +1,101 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "tabs",
4
+ "type": "registry:ui",
5
+ "title": "Tabs",
6
+ "description": "A tablist for switching between related panels without navigating away.",
7
+ "dependencies": [
8
+ "@base-ui/react",
9
+ "clsx",
10
+ "lucide-react"
11
+ ],
12
+ "files": [
13
+ {
14
+ "path": "src/components/ui/Tabs.tsx",
15
+ "type": "registry:ui",
16
+ "target": "@/components/ui/Tabs.tsx"
17
+ },
18
+ {
19
+ "path": "src/components/ui/Tabs.css",
20
+ "type": "registry:file",
21
+ "target": "@/components/ui/Tabs.css"
22
+ }
23
+ ],
24
+ "categories": [
25
+ "base-ui",
26
+ "component",
27
+ "navigation"
28
+ ],
29
+ "meta": {
30
+ "baseThemes": {
31
+ "source": "package-and-source-copy",
32
+ "docsRoute": "/components/tabs",
33
+ "supportsStyles": [
34
+ "bento",
35
+ "shadcn",
36
+ "neo-brutalism",
37
+ "minimal",
38
+ "enterprise",
39
+ "linear",
40
+ "glass",
41
+ "terminal",
42
+ "material",
43
+ "fluent",
44
+ "retro",
45
+ "cyberpunk",
46
+ "editorial",
47
+ "calm",
48
+ "data-dense",
49
+ "playful",
50
+ "luxury",
51
+ "soft-ui",
52
+ "bauhaus",
53
+ "mono"
54
+ ],
55
+ "styleContract": [
56
+ "data-style",
57
+ "data-theme",
58
+ "src/index.css",
59
+ "src/styles/tokens.css",
60
+ "src/styles/themes.css",
61
+ "src/styles/shadcn.css",
62
+ "src/styles/neo-brutalism.css",
63
+ "src/styles/cyberpunk.css",
64
+ "src/styles/terminal.css",
65
+ "src/styles/material.css",
66
+ "src/styles/glass.css"
67
+ ]
68
+ },
69
+ "agent": {
70
+ "summary": "Use Tabs when a React UI needs a tablist for switching between related panels without navigating away.",
71
+ "whenToUse": [
72
+ "Navigation",
73
+ "Base UI wrapper",
74
+ "CSS token theme support"
75
+ ],
76
+ "packageInstall": [
77
+ "npm install base-themes @base-ui/react react react-dom",
78
+ "import base-themes/styles.css once",
79
+ "import { Tabs } from 'base-themes'"
80
+ ],
81
+ "sourceCopy": [
82
+ "fetch /registry/items/tabs.json",
83
+ "copy every files[].path to files[].target",
84
+ "copy every registry.style.files entry once",
85
+ "install dependencies from dependencies[]"
86
+ ],
87
+ "installPlan": [
88
+ "npm install base-themes @base-ui/react react react-dom",
89
+ "import base-themes/styles.css once",
90
+ "import { Tabs } from 'base-themes'",
91
+ "or fetch /registry/items/tabs.json for source-copy"
92
+ ],
93
+ "verify": [
94
+ "npm run registry:check",
95
+ "npm run tokens:check",
96
+ "npm run lint",
97
+ "npm run build"
98
+ ]
99
+ }
100
+ }
101
+ }
@@ -0,0 +1,107 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "theme-bauhaus",
4
+ "type": "registry:theme",
5
+ "title": "Bauhaus Theme",
6
+ "description": "Geometric composition with primary colors and strong graphic contrast.",
7
+ "files": [
8
+ {
9
+ "path": "src/index.css",
10
+ "type": "registry:file",
11
+ "target": "@/styles/base-themes/index.css"
12
+ },
13
+ {
14
+ "path": "src/styles/tokens.css",
15
+ "type": "registry:file",
16
+ "target": "@/styles/base-themes/tokens.css"
17
+ },
18
+ {
19
+ "path": "src/styles/themes.css",
20
+ "type": "registry:file",
21
+ "target": "@/styles/base-themes/themes.css"
22
+ },
23
+ {
24
+ "path": "src/styles/shadcn.css",
25
+ "type": "registry:file",
26
+ "target": "@/styles/base-themes/shadcn.css"
27
+ },
28
+ {
29
+ "path": "src/styles/neo-brutalism.css",
30
+ "type": "registry:file",
31
+ "target": "@/styles/base-themes/neo-brutalism.css"
32
+ },
33
+ {
34
+ "path": "src/styles/cyberpunk.css",
35
+ "type": "registry:file",
36
+ "target": "@/styles/base-themes/cyberpunk.css"
37
+ },
38
+ {
39
+ "path": "src/styles/terminal.css",
40
+ "type": "registry:file",
41
+ "target": "@/styles/base-themes/terminal.css"
42
+ },
43
+ {
44
+ "path": "src/styles/material.css",
45
+ "type": "registry:file",
46
+ "target": "@/styles/base-themes/material.css"
47
+ },
48
+ {
49
+ "path": "src/styles/glass.css",
50
+ "type": "registry:file",
51
+ "target": "@/styles/base-themes/glass.css"
52
+ }
53
+ ],
54
+ "categories": [
55
+ "theme",
56
+ "base-themes"
57
+ ],
58
+ "meta": {
59
+ "preview": {
60
+ "light": "/previews/base-themes-bauhaus.png"
61
+ },
62
+ "baseThemes": {
63
+ "style": "bauhaus",
64
+ "label": "Bauhaus",
65
+ "defaultMode": "light",
66
+ "supportsModes": [
67
+ "light",
68
+ "dark"
69
+ ],
70
+ "dataAttributes": {
71
+ "style": "bauhaus",
72
+ "theme": "light"
73
+ }
74
+ },
75
+ "agent": {
76
+ "summary": "Use the Bauhaus theme when the user wants geometric composition with primary colors and strong graphic contrast.",
77
+ "whenToUse": [
78
+ "Bauhaus",
79
+ "CSS variable theme",
80
+ "Base Themes visual style"
81
+ ],
82
+ "avoidWhen": [
83
+ "The user needs a fully custom brand system before trying token overrides"
84
+ ],
85
+ "packageInstall": [
86
+ "npm install base-themes @base-ui/react react react-dom",
87
+ "import base-themes/styles.css once",
88
+ "set data-style=\"bauhaus\"",
89
+ "set data-theme=\"light\" or data-theme=\"dark\""
90
+ ],
91
+ "sourceCopy": [
92
+ "fetch /registry/items/theme-bauhaus.json",
93
+ "copy every files[].path to files[].target",
94
+ "copy src/styles/tokenContract.json when generating overrides"
95
+ ],
96
+ "installPlan": [
97
+ "import base-themes/styles.css once",
98
+ "set data-style=\"bauhaus\"",
99
+ "set data-theme=\"light\" or data-theme=\"dark\"",
100
+ "or fetch /registry/items/theme-bauhaus.json for source-copy"
101
+ ],
102
+ "prompts": [
103
+ "Create a React settings screen using Base Themes with data-style=\"bauhaus\"."
104
+ ]
105
+ }
106
+ }
107
+ }
@@ -0,0 +1,107 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "theme-bento",
4
+ "type": "registry:theme",
5
+ "title": "Bento Theme",
6
+ "description": "Warm modular product cards with soft depth and teal controls.",
7
+ "files": [
8
+ {
9
+ "path": "src/index.css",
10
+ "type": "registry:file",
11
+ "target": "@/styles/base-themes/index.css"
12
+ },
13
+ {
14
+ "path": "src/styles/tokens.css",
15
+ "type": "registry:file",
16
+ "target": "@/styles/base-themes/tokens.css"
17
+ },
18
+ {
19
+ "path": "src/styles/themes.css",
20
+ "type": "registry:file",
21
+ "target": "@/styles/base-themes/themes.css"
22
+ },
23
+ {
24
+ "path": "src/styles/shadcn.css",
25
+ "type": "registry:file",
26
+ "target": "@/styles/base-themes/shadcn.css"
27
+ },
28
+ {
29
+ "path": "src/styles/neo-brutalism.css",
30
+ "type": "registry:file",
31
+ "target": "@/styles/base-themes/neo-brutalism.css"
32
+ },
33
+ {
34
+ "path": "src/styles/cyberpunk.css",
35
+ "type": "registry:file",
36
+ "target": "@/styles/base-themes/cyberpunk.css"
37
+ },
38
+ {
39
+ "path": "src/styles/terminal.css",
40
+ "type": "registry:file",
41
+ "target": "@/styles/base-themes/terminal.css"
42
+ },
43
+ {
44
+ "path": "src/styles/material.css",
45
+ "type": "registry:file",
46
+ "target": "@/styles/base-themes/material.css"
47
+ },
48
+ {
49
+ "path": "src/styles/glass.css",
50
+ "type": "registry:file",
51
+ "target": "@/styles/base-themes/glass.css"
52
+ }
53
+ ],
54
+ "categories": [
55
+ "theme",
56
+ "base-themes"
57
+ ],
58
+ "meta": {
59
+ "preview": {
60
+ "light": "/previews/base-themes-bento.png"
61
+ },
62
+ "baseThemes": {
63
+ "style": "bento",
64
+ "label": "Bento",
65
+ "defaultMode": "light",
66
+ "supportsModes": [
67
+ "light",
68
+ "dark"
69
+ ],
70
+ "dataAttributes": {
71
+ "style": "bento",
72
+ "theme": "light"
73
+ }
74
+ },
75
+ "agent": {
76
+ "summary": "Use the Bento theme when the user wants warm modular product cards with soft depth and teal controls.",
77
+ "whenToUse": [
78
+ "Bento",
79
+ "CSS variable theme",
80
+ "Base Themes visual style"
81
+ ],
82
+ "avoidWhen": [
83
+ "The user needs a fully custom brand system before trying token overrides"
84
+ ],
85
+ "packageInstall": [
86
+ "npm install base-themes @base-ui/react react react-dom",
87
+ "import base-themes/styles.css once",
88
+ "set data-style=\"bento\"",
89
+ "set data-theme=\"light\" or data-theme=\"dark\""
90
+ ],
91
+ "sourceCopy": [
92
+ "fetch /registry/items/theme-bento.json",
93
+ "copy every files[].path to files[].target",
94
+ "copy src/styles/tokenContract.json when generating overrides"
95
+ ],
96
+ "installPlan": [
97
+ "import base-themes/styles.css once",
98
+ "set data-style=\"bento\"",
99
+ "set data-theme=\"light\" or data-theme=\"dark\"",
100
+ "or fetch /registry/items/theme-bento.json for source-copy"
101
+ ],
102
+ "prompts": [
103
+ "Create a React settings screen using Base Themes with data-style=\"bento\"."
104
+ ]
105
+ }
106
+ }
107
+ }
@@ -0,0 +1,107 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "theme-calm",
4
+ "type": "registry:theme",
5
+ "title": "Calm Theme",
6
+ "description": "Low-saturation wellness palette with relaxed controls and readable contrast.",
7
+ "files": [
8
+ {
9
+ "path": "src/index.css",
10
+ "type": "registry:file",
11
+ "target": "@/styles/base-themes/index.css"
12
+ },
13
+ {
14
+ "path": "src/styles/tokens.css",
15
+ "type": "registry:file",
16
+ "target": "@/styles/base-themes/tokens.css"
17
+ },
18
+ {
19
+ "path": "src/styles/themes.css",
20
+ "type": "registry:file",
21
+ "target": "@/styles/base-themes/themes.css"
22
+ },
23
+ {
24
+ "path": "src/styles/shadcn.css",
25
+ "type": "registry:file",
26
+ "target": "@/styles/base-themes/shadcn.css"
27
+ },
28
+ {
29
+ "path": "src/styles/neo-brutalism.css",
30
+ "type": "registry:file",
31
+ "target": "@/styles/base-themes/neo-brutalism.css"
32
+ },
33
+ {
34
+ "path": "src/styles/cyberpunk.css",
35
+ "type": "registry:file",
36
+ "target": "@/styles/base-themes/cyberpunk.css"
37
+ },
38
+ {
39
+ "path": "src/styles/terminal.css",
40
+ "type": "registry:file",
41
+ "target": "@/styles/base-themes/terminal.css"
42
+ },
43
+ {
44
+ "path": "src/styles/material.css",
45
+ "type": "registry:file",
46
+ "target": "@/styles/base-themes/material.css"
47
+ },
48
+ {
49
+ "path": "src/styles/glass.css",
50
+ "type": "registry:file",
51
+ "target": "@/styles/base-themes/glass.css"
52
+ }
53
+ ],
54
+ "categories": [
55
+ "theme",
56
+ "base-themes"
57
+ ],
58
+ "meta": {
59
+ "preview": {
60
+ "light": "/previews/base-themes-calm.png"
61
+ },
62
+ "baseThemes": {
63
+ "style": "calm",
64
+ "label": "Calm",
65
+ "defaultMode": "light",
66
+ "supportsModes": [
67
+ "light",
68
+ "dark"
69
+ ],
70
+ "dataAttributes": {
71
+ "style": "calm",
72
+ "theme": "light"
73
+ }
74
+ },
75
+ "agent": {
76
+ "summary": "Use the Calm theme when the user wants low-saturation wellness palette with relaxed controls and readable contrast.",
77
+ "whenToUse": [
78
+ "Calm",
79
+ "CSS variable theme",
80
+ "Base Themes visual style"
81
+ ],
82
+ "avoidWhen": [
83
+ "The user needs a fully custom brand system before trying token overrides"
84
+ ],
85
+ "packageInstall": [
86
+ "npm install base-themes @base-ui/react react react-dom",
87
+ "import base-themes/styles.css once",
88
+ "set data-style=\"calm\"",
89
+ "set data-theme=\"light\" or data-theme=\"dark\""
90
+ ],
91
+ "sourceCopy": [
92
+ "fetch /registry/items/theme-calm.json",
93
+ "copy every files[].path to files[].target",
94
+ "copy src/styles/tokenContract.json when generating overrides"
95
+ ],
96
+ "installPlan": [
97
+ "import base-themes/styles.css once",
98
+ "set data-style=\"calm\"",
99
+ "set data-theme=\"light\" or data-theme=\"dark\"",
100
+ "or fetch /registry/items/theme-calm.json for source-copy"
101
+ ],
102
+ "prompts": [
103
+ "Create a React settings screen using Base Themes with data-style=\"calm\"."
104
+ ]
105
+ }
106
+ }
107
+ }