base-themes 0.1.1 → 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 (282) 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 +324 -5
  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/public/previews/base-themes-bauhaus.png +0 -0
  86. package/public/previews/base-themes-bento.png +0 -0
  87. package/public/previews/base-themes-calm.png +0 -0
  88. package/public/previews/base-themes-cyberpunk.png +0 -0
  89. package/public/previews/base-themes-data-dense.png +0 -0
  90. package/public/previews/base-themes-editorial.png +0 -0
  91. package/public/previews/base-themes-enterprise.png +0 -0
  92. package/public/previews/base-themes-fluent.png +0 -0
  93. package/public/previews/base-themes-glass.png +0 -0
  94. package/public/previews/base-themes-linear.png +0 -0
  95. package/public/previews/base-themes-luxury.png +0 -0
  96. package/public/previews/base-themes-material.png +0 -0
  97. package/public/previews/base-themes-minimal.png +0 -0
  98. package/public/previews/base-themes-mono.png +0 -0
  99. package/public/previews/base-themes-neo-brutalism.png +0 -0
  100. package/public/previews/base-themes-playful.png +0 -0
  101. package/public/previews/base-themes-retro.png +0 -0
  102. package/public/previews/base-themes-shadcn.png +0 -0
  103. package/public/previews/base-themes-soft-ui.png +0 -0
  104. package/public/previews/base-themes-terminal.png +0 -0
  105. package/registry/items/accordion.json +101 -0
  106. package/registry/items/alert-dialog.json +107 -0
  107. package/registry/items/autocomplete.json +106 -0
  108. package/registry/items/avatar.json +101 -0
  109. package/registry/items/block-auth-card.json +105 -0
  110. package/registry/items/block-command-palette.json +99 -0
  111. package/registry/items/block-dashboard-shell.json +101 -0
  112. package/registry/items/block-data-table.json +99 -0
  113. package/registry/items/block-pricing-panel.json +99 -0
  114. package/registry/items/block-settings-form.json +107 -0
  115. package/registry/items/block-team-activity-feed.json +99 -0
  116. package/registry/items/block-theme-showcase-card.json +99 -0
  117. package/registry/items/button.json +102 -0
  118. package/registry/items/checkbox-group.json +106 -0
  119. package/registry/items/checkbox.json +102 -0
  120. package/registry/items/collapsible.json +101 -0
  121. package/registry/items/combobox.json +101 -0
  122. package/registry/items/context-menu.json +106 -0
  123. package/registry/items/csp-provider.json +96 -0
  124. package/registry/items/dialog.json +102 -0
  125. package/registry/items/direction-provider.json +101 -0
  126. package/registry/items/drawer.json +101 -0
  127. package/registry/items/field.json +101 -0
  128. package/registry/items/fieldset.json +101 -0
  129. package/registry/items/form.json +101 -0
  130. package/registry/items/input.json +102 -0
  131. package/registry/items/menu.json +101 -0
  132. package/registry/items/menubar.json +106 -0
  133. package/registry/items/meter.json +101 -0
  134. package/registry/items/navigation-menu.json +101 -0
  135. package/registry/items/number-field.json +101 -0
  136. package/registry/items/otp-field.json +101 -0
  137. package/registry/items/popover.json +102 -0
  138. package/registry/items/preview-card.json +101 -0
  139. package/registry/items/progress.json +101 -0
  140. package/registry/items/radio-group.json +102 -0
  141. package/registry/items/radio.json +101 -0
  142. package/registry/items/scroll-area.json +101 -0
  143. package/registry/items/select.json +102 -0
  144. package/registry/items/separator.json +101 -0
  145. package/registry/items/slider.json +102 -0
  146. package/registry/items/switch.json +102 -0
  147. package/registry/items/tabs.json +101 -0
  148. package/registry/items/theme-bauhaus.json +107 -0
  149. package/registry/items/theme-bento.json +107 -0
  150. package/registry/items/theme-calm.json +107 -0
  151. package/registry/items/theme-cyberpunk.json +108 -0
  152. package/registry/items/theme-data-dense.json +107 -0
  153. package/registry/items/theme-editorial.json +107 -0
  154. package/registry/items/theme-enterprise.json +108 -0
  155. package/registry/items/theme-fluent.json +107 -0
  156. package/registry/items/theme-glass.json +107 -0
  157. package/registry/items/theme-linear.json +107 -0
  158. package/registry/items/theme-luxury.json +107 -0
  159. package/registry/items/theme-material.json +107 -0
  160. package/registry/items/theme-minimal.json +107 -0
  161. package/registry/items/theme-mono.json +107 -0
  162. package/registry/items/theme-neo-brutalism.json +107 -0
  163. package/registry/items/theme-playful.json +107 -0
  164. package/registry/items/theme-retro.json +107 -0
  165. package/registry/items/theme-shadcn.json +107 -0
  166. package/registry/items/theme-soft-ui.json +107 -0
  167. package/registry/items/theme-terminal.json +107 -0
  168. package/registry/items/toast.json +106 -0
  169. package/registry/items/toggle-group.json +101 -0
  170. package/registry/items/toggle.json +101 -0
  171. package/registry/items/toolbar.json +101 -0
  172. package/registry/items/tooltip.json +102 -0
  173. package/registry/registry.json +564 -49
  174. package/registry/shadcn-registry.json +415 -0
  175. package/research/telemetry-fixtures/analytics-events.jsonl +9 -0
  176. package/research/telemetry-fixtures/bundle-report.json +44 -0
  177. package/research/telemetry-fixtures/community-proof.csv +5 -0
  178. package/research/telemetry-fixtures/registry-access.jsonl +10 -0
  179. package/research/telemetry-fixtures/search-console-export.csv +4 -0
  180. package/scripts/registry-plan.mjs +434 -0
  181. package/scripts/render-launch-actions.mjs +405 -0
  182. package/scripts/render-launch-status.mjs +373 -0
  183. package/scripts/render-release-announcement.mjs +329 -0
  184. package/scripts/verify-launch-readiness.mjs +415 -0
  185. package/scripts/verify-telemetry-fixtures.mjs +85 -0
  186. package/scripts/verify-telemetry-report.mjs +89 -0
  187. package/skills/base-themes/SKILL.md +156 -43
  188. package/src/blocks/AuthCard.tsx +29 -0
  189. package/src/blocks/Blocks.css +182 -0
  190. package/src/blocks/CommandPaletteBlock.tsx +32 -0
  191. package/src/blocks/DashboardShell.tsx +36 -0
  192. package/src/blocks/DataTableBlock.tsx +44 -0
  193. package/src/blocks/PricingPanel.tsx +28 -0
  194. package/src/blocks/SettingsForm.tsx +37 -0
  195. package/src/blocks/TeamActivityFeed.tsx +38 -0
  196. package/src/blocks/ThemeShowcaseCard.tsx +32 -0
  197. package/src/blocks/index.ts +8 -0
  198. package/src/components/ui/Accordion.css +42 -0
  199. package/src/components/ui/Accordion.tsx +41 -0
  200. package/src/components/ui/AlertDialog.css +40 -0
  201. package/src/components/ui/AlertDialog.tsx +52 -0
  202. package/src/components/ui/Autocomplete.css +3 -0
  203. package/src/components/ui/Autocomplete.tsx +50 -0
  204. package/src/components/ui/Avatar.css +45 -0
  205. package/src/components/ui/Avatar.tsx +36 -0
  206. package/src/components/ui/Button.css +79 -0
  207. package/src/components/ui/Button.tsx +20 -0
  208. package/src/components/ui/Checkbox.css +37 -0
  209. package/src/components/ui/Checkbox.tsx +32 -0
  210. package/src/components/ui/CheckboxGroup.tsx +21 -0
  211. package/src/components/ui/Collapsible.css +34 -0
  212. package/src/components/ui/Collapsible.tsx +29 -0
  213. package/src/components/ui/Combobox.css +75 -0
  214. package/src/components/ui/Combobox.tsx +53 -0
  215. package/src/components/ui/ContextMenu.css +9 -0
  216. package/src/components/ui/ContextMenu.tsx +47 -0
  217. package/src/components/ui/CspProvider.tsx +10 -0
  218. package/src/components/ui/Dialog.css +41 -0
  219. package/src/components/ui/Dialog.tsx +45 -0
  220. package/src/components/ui/DirectionProvider.tsx +17 -0
  221. package/src/components/ui/Drawer.css +77 -0
  222. package/src/components/ui/Drawer.tsx +56 -0
  223. package/src/components/ui/Field.css +19 -0
  224. package/src/components/ui/Field.tsx +24 -0
  225. package/src/components/ui/Fieldset.css +16 -0
  226. package/src/components/ui/Fieldset.tsx +19 -0
  227. package/src/components/ui/Form.css +5 -0
  228. package/src/components/ui/Form.tsx +12 -0
  229. package/src/components/ui/Input.css +50 -0
  230. package/src/components/ui/Input.tsx +62 -0
  231. package/src/components/ui/Menu.css +59 -0
  232. package/src/components/ui/Menu.tsx +50 -0
  233. package/src/components/ui/Menubar.css +26 -0
  234. package/src/components/ui/Menubar.tsx +42 -0
  235. package/src/components/ui/Meter.css +45 -0
  236. package/src/components/ui/Meter.tsx +37 -0
  237. package/src/components/ui/NavigationMenu.css +103 -0
  238. package/src/components/ui/NavigationMenu.tsx +64 -0
  239. package/src/components/ui/NumberField.css +38 -0
  240. package/src/components/ui/NumberField.tsx +28 -0
  241. package/src/components/ui/OtpField.css +28 -0
  242. package/src/components/ui/OtpField.tsx +24 -0
  243. package/src/components/ui/Popover.css +25 -0
  244. package/src/components/ui/Popover.tsx +37 -0
  245. package/src/components/ui/PreviewCard.css +33 -0
  246. package/src/components/ui/PreviewCard.tsx +43 -0
  247. package/src/components/ui/Progress.css +33 -0
  248. package/src/components/ui/Progress.tsx +28 -0
  249. package/src/components/ui/Radio.tsx +22 -0
  250. package/src/components/ui/RadioGroup.css +42 -0
  251. package/src/components/ui/RadioGroup.tsx +29 -0
  252. package/src/components/ui/ScrollArea.css +42 -0
  253. package/src/components/ui/ScrollArea.tsx +22 -0
  254. package/src/components/ui/Select.css +86 -0
  255. package/src/components/ui/Select.tsx +39 -0
  256. package/src/components/ui/Separator.css +14 -0
  257. package/src/components/ui/Separator.tsx +12 -0
  258. package/src/components/ui/Slider.css +39 -0
  259. package/src/components/ui/Slider.tsx +21 -0
  260. package/src/components/ui/Switch.css +45 -0
  261. package/src/components/ui/Switch.tsx +29 -0
  262. package/src/components/ui/Tabs.css +72 -0
  263. package/src/components/ui/Tabs.tsx +44 -0
  264. package/src/components/ui/Toast.css +75 -0
  265. package/src/components/ui/Toast.tsx +48 -0
  266. package/src/components/ui/Toggle.tsx +12 -0
  267. package/src/components/ui/ToggleGroup.css +35 -0
  268. package/src/components/ui/ToggleGroup.tsx +30 -0
  269. package/src/components/ui/Toolbar.css +60 -0
  270. package/src/components/ui/Toolbar.tsx +36 -0
  271. package/src/components/ui/Tooltip.css +14 -0
  272. package/src/components/ui/Tooltip.tsx +31 -0
  273. package/src/components/ui/index.ts +83 -0
  274. package/src/components/ui/useDirection.ts +1 -0
  275. package/src/components/ui/useToastManager.ts +11 -0
  276. package/src/docs/blockMeta.json +66 -0
  277. package/src/docs/componentMeta.json +322 -0
  278. package/src/docs/staticPageMeta.json +143 -0
  279. package/src/docs/themeMeta.json +22 -0
  280. package/src/styles/tokenContract.json +61 -0
  281. package/workers/analytics-receiver.mjs +170 -0
  282. package/wrangler.analytics.jsonc +12 -0
package/package.json CHANGED
@@ -1,8 +1,26 @@
1
1
  {
2
2
  "name": "base-themes",
3
3
  "private": false,
4
- "version": "0.1.1",
5
- "description": "Themeable Base UI React components with Bento, shadcn, neo brutalism, and expressive product UI styles.",
4
+ "version": "0.1.3",
5
+ "description": "Accessible Base UI React components with 20 themes, registry metadata, and agent-friendly workflows.",
6
+ "keywords": [
7
+ "base-ui",
8
+ "base-ui-theme",
9
+ "react-components",
10
+ "react-ui",
11
+ "component-library",
12
+ "themes",
13
+ "css-variables",
14
+ "design-tokens",
15
+ "design-system",
16
+ "shadcn",
17
+ "shadcn-ui",
18
+ "registry",
19
+ "copy-paste",
20
+ "agent-friendly",
21
+ "typescript",
22
+ "accessibility"
23
+ ],
6
24
  "type": "module",
7
25
  "license": "MIT",
8
26
  "repository": {
@@ -12,7 +30,10 @@
12
30
  "bugs": {
13
31
  "url": "https://github.com/markbang/base-themes/issues"
14
32
  },
15
- "homepage": "https://github.com/markbang/base-themes#readme",
33
+ "homepage": "https://base-themes.bangwu.me",
34
+ "publishConfig": {
35
+ "access": "public"
36
+ },
16
37
  "sideEffects": [
17
38
  "**/*.css"
18
39
  ],
@@ -20,10 +41,83 @@
20
41
  "dist/base-themes.js",
21
42
  "dist/base-themes.css",
22
43
  "dist/types",
44
+ "src/components/ui",
45
+ "!src/components/ui/*.test.tsx",
46
+ "!src/components/ui/*.test.ts",
47
+ "src/blocks",
48
+ "src/docs/blockMeta.json",
49
+ "src/docs/componentMeta.json",
50
+ "src/docs/staticPageMeta.json",
51
+ "src/docs/themeMeta.json",
52
+ "src/styles/tokenContract.json",
23
53
  "public/previews",
24
54
  "registry",
55
+ "llms-full.txt",
56
+ "llms.txt",
25
57
  "skills/base-themes/SKILL.md",
26
- "README.md"
58
+ "README.md",
59
+ "CHANGELOG.md",
60
+ "CODE_OF_CONDUCT.md",
61
+ "CONTRIBUTING.md",
62
+ "RELEASE.md",
63
+ "SECURITY.md",
64
+ "LICENSE",
65
+ "docs/adoption-dashboard.md",
66
+ "docs/analytics-setup.md",
67
+ "docs/community-gallery-proposal.md",
68
+ "docs/community-proof-telemetry.md",
69
+ "docs/contributor-issue-seeds.md",
70
+ "docs/release-announcement-kit.md",
71
+ "docs/registry-access-telemetry.md",
72
+ "docs/search-console-setup.md",
73
+ "docs/theme-token-contract.md",
74
+ "research/telemetry-fixtures",
75
+ "bin/base-themes.mjs",
76
+ "workers/analytics-receiver.mjs",
77
+ "wrangler.analytics.jsonc",
78
+ "scripts/render-release-announcement.mjs",
79
+ "scripts/render-launch-actions.mjs",
80
+ "scripts/registry-plan.mjs",
81
+ "scripts/verify-launch-readiness.mjs",
82
+ "scripts/render-launch-status.mjs",
83
+ "scripts/verify-telemetry-report.mjs",
84
+ "scripts/verify-telemetry-fixtures.mjs",
85
+ "examples/dashboard/README.md",
86
+ "examples/dashboard/index.html",
87
+ "examples/dashboard/package.json",
88
+ "examples/dashboard/package-lock.json",
89
+ "examples/dashboard/src",
90
+ "examples/dashboard/tsconfig.app.json",
91
+ "examples/dashboard/tsconfig.json",
92
+ "examples/dashboard/tsconfig.node.json",
93
+ "examples/dashboard/vite.config.ts",
94
+ "examples/theme-customization/README.md",
95
+ "examples/theme-customization/index.html",
96
+ "examples/theme-customization/package.json",
97
+ "examples/theme-customization/package-lock.json",
98
+ "examples/theme-customization/src",
99
+ "examples/theme-customization/tsconfig.app.json",
100
+ "examples/theme-customization/tsconfig.json",
101
+ "examples/theme-customization/tsconfig.node.json",
102
+ "examples/theme-customization/vite.config.ts",
103
+ "examples/registry-copy/README.md",
104
+ "examples/registry-copy/plan-copy.mjs",
105
+ "examples/next/README.md",
106
+ "examples/next/app",
107
+ "examples/next/next-env.d.ts",
108
+ "examples/next/next.config.ts",
109
+ "examples/next/package.json",
110
+ "examples/next/package-lock.json",
111
+ "examples/next/tsconfig.json",
112
+ "examples/vite/README.md",
113
+ "examples/vite/index.html",
114
+ "examples/vite/package.json",
115
+ "examples/vite/package-lock.json",
116
+ "examples/vite/src",
117
+ "examples/vite/tsconfig.app.json",
118
+ "examples/vite/tsconfig.json",
119
+ "examples/vite/tsconfig.node.json",
120
+ "examples/vite/vite.config.ts"
27
121
  ],
28
122
  "exports": {
29
123
  ".": {
@@ -32,47 +126,96 @@
32
126
  },
33
127
  "./styles.css": "./dist/base-themes.css",
34
128
  "./registry.json": "./registry/registry.json",
129
+ "./shadcn-registry.json": "./registry/shadcn-registry.json",
130
+ "./registry/items/*.json": "./registry/items/*.json",
131
+ "./block-meta.json": "./src/docs/blockMeta.json",
132
+ "./component-meta.json": "./src/docs/componentMeta.json",
133
+ "./static-page-meta.json": "./src/docs/staticPageMeta.json",
134
+ "./theme-meta.json": "./src/docs/themeMeta.json",
135
+ "./token-contract.json": "./src/styles/tokenContract.json",
136
+ "./llms-full.txt": "./llms-full.txt",
137
+ "./llms.txt": "./llms.txt",
35
138
  "./skill": "./skills/base-themes/SKILL.md"
36
139
  },
140
+ "bin": {
141
+ "base-themes": "./bin/base-themes.mjs"
142
+ },
37
143
  "types": "./dist/types/lib.d.ts",
38
144
  "module": "./dist/base-themes.js",
39
145
  "scripts": {
40
146
  "dev": "vite",
41
147
  "build": "npm run build:docs && npm run build:types && npm run build:lib",
42
- "build:docs": "tsc -b && vite build",
148
+ "build:docs": "tsc -b && vite build && node scripts/generate-seo.mjs",
43
149
  "build:types": "tsc -p tsconfig.lib.json",
44
150
  "build:lib": "vite build --config vite.lib.config.ts",
151
+ "bundle:report": "node scripts/report-bundle-size.mjs",
45
152
  "lint": "eslint .",
153
+ "test": "vitest run",
154
+ "registry:generate": "node scripts/generate-standard-registry.mjs",
46
155
  "registry:check": "node scripts/validate-registry.mjs",
156
+ "tokens:check": "node scripts/verify-token-contract.mjs",
157
+ "seo:check": "node scripts/verify-seo-coverage.mjs",
158
+ "telemetry:collect": "node scripts/collect-telemetry.mjs",
159
+ "telemetry:check": "node scripts/verify-telemetry-report.mjs",
160
+ "telemetry:fixtures": "node scripts/verify-telemetry-fixtures.mjs",
161
+ "launch:check": "node scripts/verify-launch-readiness.mjs",
162
+ "launch:status": "node scripts/render-launch-status.mjs",
163
+ "launch:actions": "node scripts/render-launch-actions.mjs",
164
+ "launch:campaign": "node scripts/render-launch-actions.mjs --live --write",
165
+ "release:announce": "node scripts/render-release-announcement.mjs",
166
+ "analytics:check": "node scripts/verify-analytics-receiver.mjs",
167
+ "community:check": "node scripts/verify-community-workflow.mjs",
168
+ "community:issues": "node scripts/render-contributor-issues.mjs",
47
169
  "previews:generate": "node scripts/generate-theme-previews.mjs",
170
+ "previews:check": "node scripts/verify-theme-previews.mjs",
48
171
  "themes:e2e": "node scripts/verify-themes-e2e.mjs",
49
- "prepack": "npm run registry:check && npm run lint && npm run build",
50
- "preview": "vite preview"
172
+ "package:smoke": "node scripts/verify-package-smoke.mjs",
173
+ "example:next:build": "npm --prefix examples/next ci && npm --prefix examples/next run build",
174
+ "example:vite:build": "npm --prefix examples/vite ci && npm --prefix examples/vite run build",
175
+ "example:dashboard:build": "npm --prefix examples/dashboard ci && npm --prefix examples/dashboard run build",
176
+ "example:theme-customization:build": "npm --prefix examples/theme-customization ci && npm --prefix examples/theme-customization run build",
177
+ "example:registry-copy": "node examples/registry-copy/plan-copy.mjs",
178
+ "prepack": "npm run registry:check && npm run tokens:check && npm run lint && npm run test && npm run build && npm run seo:check && npm run telemetry:fixtures && npm run launch:check && npm run bundle:report && npm run package:smoke",
179
+ "preview": "npm run build:docs && wrangler dev",
180
+ "deploy": "npm run build:docs && wrangler deploy"
51
181
  },
52
182
  "peerDependencies": {
53
183
  "@base-ui/react": "^1.5.0",
54
- "react": "^19.0.0",
55
- "react-dom": "^19.0.0"
184
+ "react": "^18.2.0 || ^19.0.0",
185
+ "react-dom": "^18.2.0 || ^19.0.0"
56
186
  },
57
187
  "dependencies": {
58
188
  "clsx": "^2.1.1",
59
189
  "lucide-react": "^1.16.0"
60
190
  },
61
191
  "devDependencies": {
192
+ "@base-ui/react": "^1.5.0",
193
+ "@cloudflare/vite-plugin": "^1.39.0",
62
194
  "@eslint/js": "^10.0.1",
195
+ "@gsap/react": "^2.1.2",
196
+ "@testing-library/jest-dom": "^6.9.1",
197
+ "@testing-library/react": "^16.3.2",
198
+ "@testing-library/user-event": "^14.6.1",
199
+ "@types/jest-axe": "^3.5.9",
63
200
  "@types/node": "^24.12.3",
64
- "@types/react": "^19.2.14",
65
- "@types/react-dom": "^19.2.3",
201
+ "@types/react": "^18.3.27",
202
+ "@types/react-dom": "^18.3.7",
66
203
  "@vitejs/plugin-react": "^6.0.1",
67
- "@base-ui/react": "^1.5.0",
68
204
  "eslint": "^10.3.0",
69
205
  "eslint-plugin-react-hooks": "^7.1.1",
70
206
  "eslint-plugin-react-refresh": "^0.5.2",
71
207
  "globals": "^17.6.0",
208
+ "gsap": "^3.15.0",
209
+ "jest-axe": "^10.0.0",
210
+ "jsdom": "^29.1.1",
211
+ "pixelmatch": "^7.2.0",
212
+ "pngjs": "^7.0.0",
213
+ "react": "^19.2.6",
214
+ "react-dom": "^19.2.6",
72
215
  "typescript": "~6.0.2",
73
216
  "typescript-eslint": "^8.59.2",
74
217
  "vite": "^8.0.12",
75
- "react": "^19.2.6",
76
- "react-dom": "^19.2.6"
218
+ "vitest": "^4.1.7",
219
+ "wrangler": "^4.95.0"
77
220
  }
78
221
  }
@@ -0,0 +1,101 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "accordion",
4
+ "type": "registry:ui",
5
+ "title": "Accordion",
6
+ "description": "Stacked disclosure panels for related sections of content.",
7
+ "dependencies": [
8
+ "@base-ui/react",
9
+ "clsx",
10
+ "lucide-react"
11
+ ],
12
+ "files": [
13
+ {
14
+ "path": "src/components/ui/Accordion.tsx",
15
+ "type": "registry:ui",
16
+ "target": "@/components/ui/Accordion.tsx"
17
+ },
18
+ {
19
+ "path": "src/components/ui/Accordion.css",
20
+ "type": "registry:file",
21
+ "target": "@/components/ui/Accordion.css"
22
+ }
23
+ ],
24
+ "categories": [
25
+ "base-ui",
26
+ "component",
27
+ "disclosure"
28
+ ],
29
+ "meta": {
30
+ "baseThemes": {
31
+ "source": "package-and-source-copy",
32
+ "docsRoute": "/components/accordion",
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 Accordion when a React UI needs stacked disclosure panels for related sections of content.",
71
+ "whenToUse": [
72
+ "Disclosure",
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 { Accordion } from 'base-themes'"
80
+ ],
81
+ "sourceCopy": [
82
+ "fetch /registry/items/accordion.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 { Accordion } from 'base-themes'",
91
+ "or fetch /registry/items/accordion.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": "alert-dialog",
4
+ "type": "registry:ui",
5
+ "title": "Alert Dialog",
6
+ "description": "A confirmation modal for actions that need explicit acknowledgement.",
7
+ "dependencies": [
8
+ "@base-ui/react",
9
+ "clsx",
10
+ "lucide-react"
11
+ ],
12
+ "files": [
13
+ {
14
+ "path": "src/components/ui/AlertDialog.tsx",
15
+ "type": "registry:ui",
16
+ "target": "@/components/ui/AlertDialog.tsx"
17
+ },
18
+ {
19
+ "path": "src/components/ui/AlertDialog.css",
20
+ "type": "registry:file",
21
+ "target": "@/components/ui/AlertDialog.css"
22
+ },
23
+ {
24
+ "path": "src/components/ui/Button.css",
25
+ "type": "registry:file",
26
+ "target": "@/components/ui/Button.css"
27
+ }
28
+ ],
29
+ "categories": [
30
+ "base-ui",
31
+ "component",
32
+ "disclosure",
33
+ "overlay"
34
+ ],
35
+ "meta": {
36
+ "baseThemes": {
37
+ "source": "package-and-source-copy",
38
+ "docsRoute": "/components/alertdialog",
39
+ "supportsStyles": [
40
+ "bento",
41
+ "shadcn",
42
+ "neo-brutalism",
43
+ "minimal",
44
+ "enterprise",
45
+ "linear",
46
+ "glass",
47
+ "terminal",
48
+ "material",
49
+ "fluent",
50
+ "retro",
51
+ "cyberpunk",
52
+ "editorial",
53
+ "calm",
54
+ "data-dense",
55
+ "playful",
56
+ "luxury",
57
+ "soft-ui",
58
+ "bauhaus",
59
+ "mono"
60
+ ],
61
+ "styleContract": [
62
+ "data-style",
63
+ "data-theme",
64
+ "src/index.css",
65
+ "src/styles/tokens.css",
66
+ "src/styles/themes.css",
67
+ "src/styles/shadcn.css",
68
+ "src/styles/neo-brutalism.css",
69
+ "src/styles/cyberpunk.css",
70
+ "src/styles/terminal.css",
71
+ "src/styles/material.css",
72
+ "src/styles/glass.css"
73
+ ]
74
+ },
75
+ "agent": {
76
+ "summary": "Use Alert Dialog when a React UI needs a confirmation modal for actions that need explicit acknowledgement.",
77
+ "whenToUse": [
78
+ "Disclosure",
79
+ "Base UI wrapper",
80
+ "CSS token theme support"
81
+ ],
82
+ "packageInstall": [
83
+ "npm install base-themes @base-ui/react react react-dom",
84
+ "import base-themes/styles.css once",
85
+ "import { AlertDialog } from 'base-themes'"
86
+ ],
87
+ "sourceCopy": [
88
+ "fetch /registry/items/alert-dialog.json",
89
+ "copy every files[].path to files[].target",
90
+ "copy every registry.style.files entry once",
91
+ "install dependencies from dependencies[]"
92
+ ],
93
+ "installPlan": [
94
+ "npm install base-themes @base-ui/react react react-dom",
95
+ "import base-themes/styles.css once",
96
+ "import { AlertDialog } from 'base-themes'",
97
+ "or fetch /registry/items/alert-dialog.json for source-copy"
98
+ ],
99
+ "verify": [
100
+ "npm run registry:check",
101
+ "npm run tokens:check",
102
+ "npm run lint",
103
+ "npm run build"
104
+ ]
105
+ }
106
+ }
107
+ }
@@ -0,0 +1,106 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "autocomplete",
4
+ "type": "registry:ui",
5
+ "title": "Autocomplete",
6
+ "description": "A text input with filtered suggestions and inline selection behavior.",
7
+ "dependencies": [
8
+ "@base-ui/react",
9
+ "clsx",
10
+ "lucide-react"
11
+ ],
12
+ "files": [
13
+ {
14
+ "path": "src/components/ui/Autocomplete.tsx",
15
+ "type": "registry:ui",
16
+ "target": "@/components/ui/Autocomplete.tsx"
17
+ },
18
+ {
19
+ "path": "src/components/ui/Autocomplete.css",
20
+ "type": "registry:file",
21
+ "target": "@/components/ui/Autocomplete.css"
22
+ },
23
+ {
24
+ "path": "src/components/ui/Combobox.css",
25
+ "type": "registry:file",
26
+ "target": "@/components/ui/Combobox.css"
27
+ }
28
+ ],
29
+ "categories": [
30
+ "base-ui",
31
+ "component",
32
+ "inputs"
33
+ ],
34
+ "meta": {
35
+ "baseThemes": {
36
+ "source": "package-and-source-copy",
37
+ "docsRoute": "/components/autocomplete",
38
+ "supportsStyles": [
39
+ "bento",
40
+ "shadcn",
41
+ "neo-brutalism",
42
+ "minimal",
43
+ "enterprise",
44
+ "linear",
45
+ "glass",
46
+ "terminal",
47
+ "material",
48
+ "fluent",
49
+ "retro",
50
+ "cyberpunk",
51
+ "editorial",
52
+ "calm",
53
+ "data-dense",
54
+ "playful",
55
+ "luxury",
56
+ "soft-ui",
57
+ "bauhaus",
58
+ "mono"
59
+ ],
60
+ "styleContract": [
61
+ "data-style",
62
+ "data-theme",
63
+ "src/index.css",
64
+ "src/styles/tokens.css",
65
+ "src/styles/themes.css",
66
+ "src/styles/shadcn.css",
67
+ "src/styles/neo-brutalism.css",
68
+ "src/styles/cyberpunk.css",
69
+ "src/styles/terminal.css",
70
+ "src/styles/material.css",
71
+ "src/styles/glass.css"
72
+ ]
73
+ },
74
+ "agent": {
75
+ "summary": "Use Autocomplete when a React UI needs a text input with filtered suggestions and inline selection behavior.",
76
+ "whenToUse": [
77
+ "Inputs",
78
+ "Base UI wrapper",
79
+ "CSS token theme support"
80
+ ],
81
+ "packageInstall": [
82
+ "npm install base-themes @base-ui/react react react-dom",
83
+ "import base-themes/styles.css once",
84
+ "import { Autocomplete } from 'base-themes'"
85
+ ],
86
+ "sourceCopy": [
87
+ "fetch /registry/items/autocomplete.json",
88
+ "copy every files[].path to files[].target",
89
+ "copy every registry.style.files entry once",
90
+ "install dependencies from dependencies[]"
91
+ ],
92
+ "installPlan": [
93
+ "npm install base-themes @base-ui/react react react-dom",
94
+ "import base-themes/styles.css once",
95
+ "import { Autocomplete } from 'base-themes'",
96
+ "or fetch /registry/items/autocomplete.json for source-copy"
97
+ ],
98
+ "verify": [
99
+ "npm run registry:check",
100
+ "npm run tokens:check",
101
+ "npm run lint",
102
+ "npm run build"
103
+ ]
104
+ }
105
+ }
106
+ }