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
package/package.json CHANGED
@@ -1,8 +1,26 @@
1
1
  {
2
2
  "name": "base-themes",
3
3
  "private": false,
4
- "version": "0.1.2",
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
+ }
@@ -0,0 +1,101 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "avatar",
4
+ "type": "registry:ui",
5
+ "title": "Avatar",
6
+ "description": "A compact identity primitive with fallback initials and grouped presentation.",
7
+ "dependencies": [
8
+ "@base-ui/react",
9
+ "clsx",
10
+ "lucide-react"
11
+ ],
12
+ "files": [
13
+ {
14
+ "path": "src/components/ui/Avatar.tsx",
15
+ "type": "registry:ui",
16
+ "target": "@/components/ui/Avatar.tsx"
17
+ },
18
+ {
19
+ "path": "src/components/ui/Avatar.css",
20
+ "type": "registry:file",
21
+ "target": "@/components/ui/Avatar.css"
22
+ }
23
+ ],
24
+ "categories": [
25
+ "base-ui",
26
+ "component",
27
+ "feedback"
28
+ ],
29
+ "meta": {
30
+ "baseThemes": {
31
+ "source": "package-and-source-copy",
32
+ "docsRoute": "/components/avatar",
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 Avatar when a React UI needs a compact identity primitive with fallback initials and grouped presentation.",
71
+ "whenToUse": [
72
+ "Feedback",
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 { Avatar } from 'base-themes'"
80
+ ],
81
+ "sourceCopy": [
82
+ "fetch /registry/items/avatar.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 { Avatar } from 'base-themes'",
91
+ "or fetch /registry/items/avatar.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
+ }