decantr 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (382) hide show
  1. package/AGENTS.md +868 -0
  2. package/CHANGELOG.md +255 -0
  3. package/CLAUDE.md +178 -0
  4. package/LICENSE +21 -0
  5. package/README.md +229 -0
  6. package/cli/art.js +127 -0
  7. package/cli/commands/a11y.js +61 -0
  8. package/cli/commands/audit.js +225 -0
  9. package/cli/commands/build.js +38 -0
  10. package/cli/commands/dev.js +18 -0
  11. package/cli/commands/doctor.js +197 -0
  12. package/cli/commands/figma-sync.js +48 -0
  13. package/cli/commands/figma-tokens.js +55 -0
  14. package/cli/commands/generate.js +26 -0
  15. package/cli/commands/init.js +116 -0
  16. package/cli/commands/lint.js +209 -0
  17. package/cli/commands/mcp.js +530 -0
  18. package/cli/commands/migrate.js +175 -0
  19. package/cli/commands/test.js +38 -0
  20. package/cli/commands/validate.js +354 -0
  21. package/cli/index.js +113 -0
  22. package/package.json +95 -0
  23. package/reference/atoms.md +517 -0
  24. package/reference/behaviors.md +384 -0
  25. package/reference/build-tooling.md +275 -0
  26. package/reference/color-guidelines.md +965 -0
  27. package/reference/component-lifecycle.md +137 -0
  28. package/reference/compound-spacing.md +95 -0
  29. package/reference/decantation-process.md +499 -0
  30. package/reference/dev-server-routes.md +93 -0
  31. package/reference/form-system.md +253 -0
  32. package/reference/i18n.md +336 -0
  33. package/reference/icons.md +576 -0
  34. package/reference/llm-primer.md +953 -0
  35. package/reference/plugins.md +252 -0
  36. package/reference/registry-consumption.md +76 -0
  37. package/reference/router.md +217 -0
  38. package/reference/shells.md +116 -0
  39. package/reference/spatial-guidelines.md +541 -0
  40. package/reference/ssr.md +234 -0
  41. package/reference/state-data.md +215 -0
  42. package/reference/state-patterns.md +166 -0
  43. package/reference/state.md +194 -0
  44. package/reference/style-system.md +110 -0
  45. package/reference/tokens.md +460 -0
  46. package/src/app.js +19 -0
  47. package/src/chart/_animate.js +266 -0
  48. package/src/chart/_base.js +109 -0
  49. package/src/chart/_data.js +209 -0
  50. package/src/chart/_format.js +106 -0
  51. package/src/chart/_interact.js +364 -0
  52. package/src/chart/_palette.js +105 -0
  53. package/src/chart/_renderer.js +52 -0
  54. package/src/chart/_scene.js +262 -0
  55. package/src/chart/_shared.js +371 -0
  56. package/src/chart/index.js +637 -0
  57. package/src/chart/layouts/_layout-base.js +328 -0
  58. package/src/chart/layouts/cartesian.js +148 -0
  59. package/src/chart/layouts/hierarchy.js +562 -0
  60. package/src/chart/layouts/polar.js +101 -0
  61. package/src/chart/renderers/canvas.js +179 -0
  62. package/src/chart/renderers/svg.js +256 -0
  63. package/src/chart/renderers/webgpu.js +715 -0
  64. package/src/chart/types/_type-base.js +26 -0
  65. package/src/chart/types/area.js +134 -0
  66. package/src/chart/types/bar.js +173 -0
  67. package/src/chart/types/box-plot.js +125 -0
  68. package/src/chart/types/bubble.js +63 -0
  69. package/src/chart/types/candlestick.js +115 -0
  70. package/src/chart/types/chord.js +85 -0
  71. package/src/chart/types/combination.js +108 -0
  72. package/src/chart/types/funnel.js +68 -0
  73. package/src/chart/types/gauge.js +163 -0
  74. package/src/chart/types/heatmap.js +98 -0
  75. package/src/chart/types/histogram.js +71 -0
  76. package/src/chart/types/line.js +111 -0
  77. package/src/chart/types/org-chart.js +93 -0
  78. package/src/chart/types/pie.js +81 -0
  79. package/src/chart/types/radar.js +96 -0
  80. package/src/chart/types/radial.js +68 -0
  81. package/src/chart/types/range-area.js +55 -0
  82. package/src/chart/types/range-bar.js +61 -0
  83. package/src/chart/types/sankey.js +73 -0
  84. package/src/chart/types/scatter.js +66 -0
  85. package/src/chart/types/sparkline.js +81 -0
  86. package/src/chart/types/sunburst.js +69 -0
  87. package/src/chart/types/swimlane.js +88 -0
  88. package/src/chart/types/treemap.js +62 -0
  89. package/src/chart/types/waterfall.js +100 -0
  90. package/src/components/_base.js +1658 -0
  91. package/src/components/_behaviors.js +1140 -0
  92. package/src/components/_primitives.js +534 -0
  93. package/src/components/_qr-encoder.js +539 -0
  94. package/src/components/accordion.js +207 -0
  95. package/src/components/affix.js +62 -0
  96. package/src/components/alert-dialog.js +75 -0
  97. package/src/components/alert.js +47 -0
  98. package/src/components/aspect-ratio.js +24 -0
  99. package/src/components/avatar-group.js +55 -0
  100. package/src/components/avatar.js +38 -0
  101. package/src/components/back-top.js +75 -0
  102. package/src/components/badge.js +74 -0
  103. package/src/components/banner.js +68 -0
  104. package/src/components/breadcrumb.js +162 -0
  105. package/src/components/button.js +115 -0
  106. package/src/components/calendar.js +131 -0
  107. package/src/components/card.js +192 -0
  108. package/src/components/carousel.js +98 -0
  109. package/src/components/cascader.js +261 -0
  110. package/src/components/checkbox.js +80 -0
  111. package/src/components/chip.js +81 -0
  112. package/src/components/code-block.js +82 -0
  113. package/src/components/collapsible.js +50 -0
  114. package/src/components/color-palette.js +438 -0
  115. package/src/components/color-picker.js +314 -0
  116. package/src/components/combobox.js +181 -0
  117. package/src/components/command.js +174 -0
  118. package/src/components/comment.js +206 -0
  119. package/src/components/context-menu.js +76 -0
  120. package/src/components/data-table.js +724 -0
  121. package/src/components/date-picker.js +217 -0
  122. package/src/components/date-range-picker.js +244 -0
  123. package/src/components/datetime-picker.js +271 -0
  124. package/src/components/descriptions.js +68 -0
  125. package/src/components/drawer.js +179 -0
  126. package/src/components/dropdown.js +88 -0
  127. package/src/components/empty.js +41 -0
  128. package/src/components/float-button.js +90 -0
  129. package/src/components/form.js +106 -0
  130. package/src/components/hover-card.js +49 -0
  131. package/src/components/icon.js +87 -0
  132. package/src/components/image.js +97 -0
  133. package/src/components/index.js +117 -0
  134. package/src/components/input-group.js +75 -0
  135. package/src/components/input-number.js +155 -0
  136. package/src/components/input-otp.js +178 -0
  137. package/src/components/input.js +91 -0
  138. package/src/components/kbd.js +36 -0
  139. package/src/components/label.js +25 -0
  140. package/src/components/list.js +118 -0
  141. package/src/components/masked-input.js +236 -0
  142. package/src/components/mentions.js +165 -0
  143. package/src/components/menu.js +259 -0
  144. package/src/components/message.js +80 -0
  145. package/src/components/modal.js +147 -0
  146. package/src/components/navigation-menu.js +166 -0
  147. package/src/components/notification.js +84 -0
  148. package/src/components/pagination.js +104 -0
  149. package/src/components/placeholder.js +132 -0
  150. package/src/components/popconfirm.js +70 -0
  151. package/src/components/popover.js +58 -0
  152. package/src/components/progress.js +61 -0
  153. package/src/components/qrcode.js +251 -0
  154. package/src/components/radiogroup.js +120 -0
  155. package/src/components/range-slider.js +176 -0
  156. package/src/components/rate.js +186 -0
  157. package/src/components/resizable.js +83 -0
  158. package/src/components/result.js +57 -0
  159. package/src/components/scroll-area.js +43 -0
  160. package/src/components/segmented.js +97 -0
  161. package/src/components/select.js +165 -0
  162. package/src/components/separator.js +31 -0
  163. package/src/components/shell.js +407 -0
  164. package/src/components/skeleton.js +39 -0
  165. package/src/components/slider.js +141 -0
  166. package/src/components/sortable-list.js +176 -0
  167. package/src/components/space.js +42 -0
  168. package/src/components/spinner.js +112 -0
  169. package/src/components/splitter.js +147 -0
  170. package/src/components/statistic.js +136 -0
  171. package/src/components/steps.js +99 -0
  172. package/src/components/switch.js +95 -0
  173. package/src/components/table.js +44 -0
  174. package/src/components/tabs.js +216 -0
  175. package/src/components/tag.js +115 -0
  176. package/src/components/textarea.js +82 -0
  177. package/src/components/time-picker.js +153 -0
  178. package/src/components/time-range-picker.js +170 -0
  179. package/src/components/timeline.js +226 -0
  180. package/src/components/toast.js +71 -0
  181. package/src/components/toggle.js +213 -0
  182. package/src/components/tooltip.js +57 -0
  183. package/src/components/tour.js +159 -0
  184. package/src/components/transfer.js +163 -0
  185. package/src/components/tree-select.js +274 -0
  186. package/src/components/tree.js +141 -0
  187. package/src/components/typography.js +136 -0
  188. package/src/components/upload.js +118 -0
  189. package/src/components/visually-hidden.js +20 -0
  190. package/src/components/watermark.js +124 -0
  191. package/src/core/index.js +539 -0
  192. package/src/core/lifecycle.js +69 -0
  193. package/src/css/atoms.js +651 -0
  194. package/src/css/components.js +940 -0
  195. package/src/css/derive.js +1296 -0
  196. package/src/css/index.js +265 -0
  197. package/src/css/runtime.js +268 -0
  198. package/src/css/styles/addons/bioluminescent.js +93 -0
  199. package/src/css/styles/addons/clay.js +70 -0
  200. package/src/css/styles/addons/clean.js +57 -0
  201. package/src/css/styles/addons/command-center.js +143 -0
  202. package/src/css/styles/addons/dopamine.js +83 -0
  203. package/src/css/styles/addons/editorial.js +80 -0
  204. package/src/css/styles/addons/glassmorphism.js +99 -0
  205. package/src/css/styles/addons/liquid-glass.js +105 -0
  206. package/src/css/styles/addons/prismatic.js +100 -0
  207. package/src/css/styles/addons/retro.js +63 -0
  208. package/src/css/styles/auradecantism.js +96 -0
  209. package/src/css/theme-registry.js +444 -0
  210. package/src/data/entity.js +281 -0
  211. package/src/data/index.js +13 -0
  212. package/src/data/persist.js +225 -0
  213. package/src/data/query.js +839 -0
  214. package/src/data/realtime.js +299 -0
  215. package/src/data/url.js +177 -0
  216. package/src/data/worker.js +134 -0
  217. package/src/explorer/archetypes.js +243 -0
  218. package/src/explorer/atoms.js +228 -0
  219. package/src/explorer/charts.js +497 -0
  220. package/src/explorer/components.js +129 -0
  221. package/src/explorer/foundations.js +949 -0
  222. package/src/explorer/icons.js +178 -0
  223. package/src/explorer/patterns.js +247 -0
  224. package/src/explorer/recipes.js +194 -0
  225. package/src/explorer/shared/pattern-examples.js +1337 -0
  226. package/src/explorer/shared/showcase-renderer.js +958 -0
  227. package/src/explorer/shared/spec-table.js +41 -0
  228. package/src/explorer/shared/usage-links.js +87 -0
  229. package/src/explorer/shell-config.js +10 -0
  230. package/src/explorer/shells.js +551 -0
  231. package/src/explorer/styles.js +161 -0
  232. package/src/explorer/tokens.js +262 -0
  233. package/src/explorer/tools.js +525 -0
  234. package/src/form/index.js +804 -0
  235. package/src/i18n/index.js +251 -0
  236. package/src/icons/essential.js +479 -0
  237. package/src/icons/index.js +53 -0
  238. package/src/plugins/index.js +282 -0
  239. package/src/registry/archetypes/content-site.json +71 -0
  240. package/src/registry/archetypes/docs-explorer.json +23 -0
  241. package/src/registry/archetypes/ecommerce.json +104 -0
  242. package/src/registry/archetypes/financial-dashboard.json +77 -0
  243. package/src/registry/archetypes/index.json +41 -0
  244. package/src/registry/archetypes/portfolio.json +82 -0
  245. package/src/registry/archetypes/recipe-community.json +159 -0
  246. package/src/registry/archetypes/saas-dashboard.json +86 -0
  247. package/src/registry/architect/cross-cutting.json +45 -0
  248. package/src/registry/architect/domains/ecommerce.json +294 -0
  249. package/src/registry/architect/domains/financial-services.json +302 -0
  250. package/src/registry/architect/index.json +26 -0
  251. package/src/registry/architect/traits.json +379 -0
  252. package/src/registry/atoms.json +16 -0
  253. package/src/registry/chart-showcase.json +160 -0
  254. package/src/registry/chart.json +136 -0
  255. package/src/registry/components.json +8616 -0
  256. package/src/registry/core.json +216 -0
  257. package/src/registry/css.json +319 -0
  258. package/src/registry/data.json +135 -0
  259. package/src/registry/foundations.json +11 -0
  260. package/src/registry/icons.json +463 -0
  261. package/src/registry/index.json +101 -0
  262. package/src/registry/patterns/activity-feed.json +37 -0
  263. package/src/registry/patterns/article-content.json +27 -0
  264. package/src/registry/patterns/auth-form.json +37 -0
  265. package/src/registry/patterns/author-card.json +20 -0
  266. package/src/registry/patterns/card-grid.json +127 -0
  267. package/src/registry/patterns/category-nav.json +26 -0
  268. package/src/registry/patterns/chart-grid.json +36 -0
  269. package/src/registry/patterns/chat-interface.json +37 -0
  270. package/src/registry/patterns/checklist-card.json +55 -0
  271. package/src/registry/patterns/comparison-panel.json +27 -0
  272. package/src/registry/patterns/component-showcase.json +24 -0
  273. package/src/registry/patterns/contact-form.json +31 -0
  274. package/src/registry/patterns/cta-section.json +20 -0
  275. package/src/registry/patterns/data-table.json +37 -0
  276. package/src/registry/patterns/detail-header.json +83 -0
  277. package/src/registry/patterns/detail-panel.json +27 -0
  278. package/src/registry/patterns/explorer-shell.json +22 -0
  279. package/src/registry/patterns/filter-bar.json +33 -0
  280. package/src/registry/patterns/filter-sidebar.json +27 -0
  281. package/src/registry/patterns/form-sections.json +110 -0
  282. package/src/registry/patterns/goal-tracker.json +27 -0
  283. package/src/registry/patterns/hero.json +107 -0
  284. package/src/registry/patterns/index.json +47 -0
  285. package/src/registry/patterns/kpi-grid.json +36 -0
  286. package/src/registry/patterns/media-gallery.json +20 -0
  287. package/src/registry/patterns/order-history.json +20 -0
  288. package/src/registry/patterns/pagination.json +19 -0
  289. package/src/registry/patterns/photo-to-recipe.json +36 -0
  290. package/src/registry/patterns/pipeline-tracker.json +28 -0
  291. package/src/registry/patterns/post-list.json +27 -0
  292. package/src/registry/patterns/pricing-table.json +32 -0
  293. package/src/registry/patterns/scorecard.json +28 -0
  294. package/src/registry/patterns/search-bar.json +20 -0
  295. package/src/registry/patterns/specimen-grid.json +19 -0
  296. package/src/registry/patterns/stat-card.json +55 -0
  297. package/src/registry/patterns/stats-bar.json +55 -0
  298. package/src/registry/patterns/steps-card.json +55 -0
  299. package/src/registry/patterns/table-of-contents.json +19 -0
  300. package/src/registry/patterns/testimonials.json +21 -0
  301. package/src/registry/patterns/timeline.json +27 -0
  302. package/src/registry/patterns/token-inspector.json +21 -0
  303. package/src/registry/patterns/wizard.json +27 -0
  304. package/src/registry/recipe-auradecantism.json +69 -0
  305. package/src/registry/recipe-clean.json +65 -0
  306. package/src/registry/recipe-command-center.json +78 -0
  307. package/src/registry/router.json +73 -0
  308. package/src/registry/schema/README.md +197 -0
  309. package/src/registry/skeletons.json +259 -0
  310. package/src/registry/state.json +137 -0
  311. package/src/registry/tokens.json +40 -0
  312. package/src/router/hash.js +17 -0
  313. package/src/router/history.js +18 -0
  314. package/src/router/index.js +598 -0
  315. package/src/ssr/index.js +922 -0
  316. package/src/state/arrays.js +181 -0
  317. package/src/state/devtools.js +647 -0
  318. package/src/state/index.js +498 -0
  319. package/src/state/middleware.js +288 -0
  320. package/src/state/scheduler.js +206 -0
  321. package/src/state/store.js +300 -0
  322. package/src/tags/index.js +19 -0
  323. package/src/tannins/auth.js +396 -0
  324. package/src/test/dom.js +352 -0
  325. package/src/test/index.js +62 -0
  326. package/src/test/state.js +306 -0
  327. package/tools/a11y-audit.js +487 -0
  328. package/tools/analyzer.js +315 -0
  329. package/tools/audit.js +706 -0
  330. package/tools/builder.js +1422 -0
  331. package/tools/css-extract.js +188 -0
  332. package/tools/dev-server.js +316 -0
  333. package/tools/dts-gen.js +1260 -0
  334. package/tools/figma-components.js +329 -0
  335. package/tools/figma-patterns.js +516 -0
  336. package/tools/figma-plugin/code.js +453 -0
  337. package/tools/figma-plugin/manifest.json +14 -0
  338. package/tools/figma-plugin/ui.html +268 -0
  339. package/tools/figma-render.js +293 -0
  340. package/tools/figma-tokens.js +712 -0
  341. package/tools/figma-upload.js +318 -0
  342. package/tools/generate.js +738 -0
  343. package/tools/icons.js +133 -0
  344. package/tools/init-templates.js +265 -0
  345. package/tools/install-hooks.sh +5 -0
  346. package/tools/migrations/0.5.0.js +53 -0
  347. package/tools/migrations/0.6.0.js +95 -0
  348. package/tools/minify.js +170 -0
  349. package/tools/pre-commit +4 -0
  350. package/tools/registry.js +662 -0
  351. package/tools/reset-playground.js +61 -0
  352. package/tools/starter-templates/content-site/app.js +49 -0
  353. package/tools/starter-templates/content-site/essence.js +19 -0
  354. package/tools/starter-templates/content-site/pages.js +31 -0
  355. package/tools/starter-templates/ecommerce/app.js +50 -0
  356. package/tools/starter-templates/ecommerce/essence.js +19 -0
  357. package/tools/starter-templates/ecommerce/pages.js +31 -0
  358. package/tools/starter-templates/landing-page/app.js +38 -0
  359. package/tools/starter-templates/landing-page/essence.js +18 -0
  360. package/tools/starter-templates/landing-page/pages.js +21 -0
  361. package/tools/starter-templates/portfolio/app.js +45 -0
  362. package/tools/starter-templates/portfolio/essence.js +19 -0
  363. package/tools/starter-templates/portfolio/pages.js +33 -0
  364. package/tools/starter-templates/saas-dashboard/app.js +70 -0
  365. package/tools/starter-templates/saas-dashboard/essence.js +19 -0
  366. package/tools/starter-templates/saas-dashboard/pages.js +31 -0
  367. package/tools/verify-pack.js +203 -0
  368. package/types/chart.d.ts +77 -0
  369. package/types/components.d.ts +587 -0
  370. package/types/core.d.ts +89 -0
  371. package/types/css.d.ts +149 -0
  372. package/types/data.d.ts +238 -0
  373. package/types/form.d.ts +164 -0
  374. package/types/i18n.d.ts +51 -0
  375. package/types/icons.d.ts +27 -0
  376. package/types/index.d.ts +13 -0
  377. package/types/router.d.ts +116 -0
  378. package/types/ssr.d.ts +102 -0
  379. package/types/state.d.ts +83 -0
  380. package/types/tags.d.ts +62 -0
  381. package/types/tannins.d.ts +63 -0
  382. package/types/test.d.ts +48 -0
@@ -0,0 +1,379 @@
1
+ {
2
+ "$schema": "https://decantr.ai/schemas/traits.v1.json",
3
+ "description": "Compositional trait graph for dynamic archetype generation. Each trait maps to patterns, skeletons, and co-occurring traits with affinity weights. The LLM uses this to reason about any domain dynamically, composing custom archetypes from traits instead of relying on pre-built templates.",
4
+ "usage": "1. User describes intent → match keywords to trait triggers. 2. Activate matching traits. 3. Follow co-occurs edges (weighted) to pull in related traits. 4. Map activated traits to patterns and skeletons. 5. Compose essence structure from resolved patterns.",
5
+ "traits": {
6
+ "sidebar-nav": {
7
+ "description": "Persistent sidebar navigation with collapsible toggle. Primary navigation pattern for multi-page apps.",
8
+ "triggers": ["dashboard", "admin", "portal", "workspace", "management", "settings", "console"],
9
+ "skeleton": "sidebar-main",
10
+ "patterns": [],
11
+ "co-occurs": {
12
+ "header-bar": 0.95,
13
+ "content-area": 0.9,
14
+ "search-global": 0.7
15
+ }
16
+ },
17
+ "top-nav": {
18
+ "description": "Horizontal navigation bar. Primary pattern for public-facing sites.",
19
+ "triggers": ["website", "landing", "storefront", "blog", "marketing", "portfolio", "docs"],
20
+ "skeleton": "top-nav-main",
21
+ "patterns": [],
22
+ "co-occurs": {
23
+ "header-bar": 0.9,
24
+ "content-area": 0.85,
25
+ "footer-section": 0.8
26
+ }
27
+ },
28
+ "header-bar": {
29
+ "description": "Page-level header with title, breadcrumbs, and action buttons.",
30
+ "triggers": ["detail", "page", "view"],
31
+ "skeleton": null,
32
+ "patterns": ["detail-header"],
33
+ "co-occurs": {
34
+ "sidebar-nav": 0.85,
35
+ "top-nav": 0.8
36
+ }
37
+ },
38
+ "content-area": {
39
+ "description": "Scrollable main content region.",
40
+ "triggers": [],
41
+ "skeleton": null,
42
+ "patterns": [],
43
+ "co-occurs": {}
44
+ },
45
+ "widget-grid": {
46
+ "description": "Dashboard grid with KPI cards and summary metrics.",
47
+ "triggers": ["dashboard", "overview", "metrics", "kpi", "summary", "analytics", "monitor"],
48
+ "skeleton": null,
49
+ "patterns": ["kpi-grid"],
50
+ "co-occurs": {
51
+ "chart-area": 0.85,
52
+ "data-table-view": 0.75,
53
+ "sidebar-nav": 0.8,
54
+ "activity-stream": 0.65
55
+ }
56
+ },
57
+ "chart-area": {
58
+ "description": "Data visualization with charts (line, bar, pie, area, etc.).",
59
+ "triggers": ["chart", "graph", "visualization", "analytics", "trends", "report", "metrics"],
60
+ "skeleton": null,
61
+ "patterns": ["chart-grid"],
62
+ "co-occurs": {
63
+ "widget-grid": 0.85,
64
+ "filter-controls": 0.75,
65
+ "data-table-view": 0.7
66
+ }
67
+ },
68
+ "data-table-view": {
69
+ "description": "Sortable, filterable data table with toolbar.",
70
+ "triggers": ["table", "list", "records", "data", "logs", "inventory", "orders", "users", "transactions"],
71
+ "skeleton": null,
72
+ "patterns": ["data-table"],
73
+ "co-occurs": {
74
+ "filter-controls": 0.85,
75
+ "pagination-controls": 0.8,
76
+ "header-bar": 0.7,
77
+ "detail-view": 0.65
78
+ }
79
+ },
80
+ "filter-controls": {
81
+ "description": "Filter bar or sidebar for narrowing data views.",
82
+ "triggers": ["filter", "search", "refine", "sort", "category"],
83
+ "skeleton": null,
84
+ "patterns": ["filter-bar", "filter-sidebar", "search-bar"],
85
+ "co-occurs": {
86
+ "data-table-view": 0.85,
87
+ "product-catalog": 0.8,
88
+ "chart-area": 0.65
89
+ }
90
+ },
91
+ "pagination-controls": {
92
+ "description": "Page navigation for paginated content.",
93
+ "triggers": [],
94
+ "skeleton": null,
95
+ "patterns": ["pagination"],
96
+ "co-occurs": {
97
+ "data-table-view": 0.9,
98
+ "product-catalog": 0.8,
99
+ "blog-list": 0.75
100
+ }
101
+ },
102
+ "detail-view": {
103
+ "description": "Entity detail panel with tabs, descriptions, and actions.",
104
+ "triggers": ["detail", "profile", "view", "record", "info"],
105
+ "skeleton": null,
106
+ "patterns": ["detail-panel", "detail-header"],
107
+ "co-occurs": {
108
+ "data-table-view": 0.7,
109
+ "header-bar": 0.85,
110
+ "activity-stream": 0.6
111
+ }
112
+ },
113
+ "hero-section": {
114
+ "description": "Full-width hero with headline, subtext, and CTAs.",
115
+ "triggers": ["landing", "hero", "homepage", "marketing", "launch", "product"],
116
+ "skeleton": null,
117
+ "patterns": ["hero"],
118
+ "co-occurs": {
119
+ "cta-block": 0.8,
120
+ "testimonial-block": 0.7,
121
+ "top-nav": 0.85,
122
+ "pricing-block": 0.6
123
+ }
124
+ },
125
+ "cta-block": {
126
+ "description": "Call-to-action section with headline and buttons.",
127
+ "triggers": ["cta", "conversion", "signup", "trial"],
128
+ "skeleton": null,
129
+ "patterns": ["cta-section"],
130
+ "co-occurs": {
131
+ "hero-section": 0.8,
132
+ "pricing-block": 0.65,
133
+ "testimonial-block": 0.6
134
+ }
135
+ },
136
+ "testimonial-block": {
137
+ "description": "Customer testimonials or social proof grid.",
138
+ "triggers": ["testimonial", "review", "social proof", "customer", "quote"],
139
+ "skeleton": null,
140
+ "patterns": ["testimonials", "author-card"],
141
+ "co-occurs": {
142
+ "hero-section": 0.7,
143
+ "cta-block": 0.65,
144
+ "pricing-block": 0.55
145
+ }
146
+ },
147
+ "pricing-block": {
148
+ "description": "Pricing tier comparison table.",
149
+ "triggers": ["pricing", "plans", "tier", "subscription", "billing"],
150
+ "skeleton": null,
151
+ "patterns": ["pricing-table"],
152
+ "co-occurs": {
153
+ "cta-block": 0.75,
154
+ "hero-section": 0.6,
155
+ "auth-flow": 0.5
156
+ }
157
+ },
158
+ "auth-flow": {
159
+ "description": "Authentication forms: login, register, forgot password.",
160
+ "triggers": ["login", "signin", "signup", "register", "auth", "password"],
161
+ "skeleton": "centered",
162
+ "patterns": ["auth-form"],
163
+ "co-occurs": {
164
+ "sidebar-nav": 0.3,
165
+ "top-nav": 0.3
166
+ }
167
+ },
168
+ "product-catalog": {
169
+ "description": "Product grid with cards, images, prices, and add-to-cart.",
170
+ "triggers": ["product", "catalog", "shop", "store", "ecommerce", "marketplace", "merchandise"],
171
+ "skeleton": null,
172
+ "patterns": ["product-grid", "category-nav"],
173
+ "co-occurs": {
174
+ "filter-controls": 0.85,
175
+ "pagination-controls": 0.8,
176
+ "detail-view": 0.7,
177
+ "cart-checkout": 0.65
178
+ }
179
+ },
180
+ "cart-checkout": {
181
+ "description": "Shopping cart and checkout wizard flow.",
182
+ "triggers": ["cart", "checkout", "payment", "order", "purchase"],
183
+ "skeleton": "minimal-header",
184
+ "patterns": ["wizard", "order-history"],
185
+ "co-occurs": {
186
+ "product-catalog": 0.7,
187
+ "form-wizard": 0.8
188
+ }
189
+ },
190
+ "form-wizard": {
191
+ "description": "Multi-step form with progress indicator.",
192
+ "triggers": ["wizard", "onboarding", "multi-step", "setup", "registration"],
193
+ "skeleton": null,
194
+ "patterns": ["wizard", "form-sections"],
195
+ "co-occurs": {
196
+ "progress-indicator": 0.9,
197
+ "auth-flow": 0.5
198
+ }
199
+ },
200
+ "progress-indicator": {
201
+ "description": "Step progress or timeline visualization.",
202
+ "triggers": ["progress", "steps", "timeline", "milestone"],
203
+ "skeleton": null,
204
+ "patterns": ["timeline"],
205
+ "co-occurs": {
206
+ "form-wizard": 0.85,
207
+ "pipeline-view": 0.7
208
+ }
209
+ },
210
+ "activity-stream": {
211
+ "description": "Chronological activity feed with avatars and timestamps.",
212
+ "triggers": ["activity", "feed", "log", "history", "timeline", "notifications"],
213
+ "skeleton": null,
214
+ "patterns": ["activity-feed"],
215
+ "co-occurs": {
216
+ "widget-grid": 0.65,
217
+ "sidebar-nav": 0.6,
218
+ "detail-view": 0.55
219
+ }
220
+ },
221
+ "blog-list": {
222
+ "description": "Blog post list with excerpts, categories, and authors.",
223
+ "triggers": ["blog", "posts", "articles", "content", "news", "journal"],
224
+ "skeleton": null,
225
+ "patterns": ["post-list", "category-nav"],
226
+ "co-occurs": {
227
+ "article-view": 0.85,
228
+ "pagination-controls": 0.8,
229
+ "top-nav": 0.75
230
+ }
231
+ },
232
+ "article-view": {
233
+ "description": "Long-form article with typography, author card, and table of contents.",
234
+ "triggers": ["article", "post", "read", "content", "documentation"],
235
+ "skeleton": null,
236
+ "patterns": ["article-content", "author-card", "table-of-contents"],
237
+ "co-occurs": {
238
+ "blog-list": 0.8,
239
+ "top-nav": 0.7
240
+ }
241
+ },
242
+ "gallery-grid": {
243
+ "description": "Image/media gallery with lightbox.",
244
+ "triggers": ["gallery", "photos", "images", "media", "portfolio", "showcase"],
245
+ "skeleton": null,
246
+ "patterns": ["media-gallery"],
247
+ "co-occurs": {
248
+ "filter-controls": 0.65,
249
+ "hero-section": 0.5,
250
+ "top-nav": 0.7
251
+ }
252
+ },
253
+ "pipeline-view": {
254
+ "description": "Stage-based pipeline or funnel tracker.",
255
+ "triggers": ["pipeline", "funnel", "stages", "deals", "crm", "sales", "kanban"],
256
+ "skeleton": null,
257
+ "patterns": ["pipeline-tracker"],
258
+ "co-occurs": {
259
+ "widget-grid": 0.75,
260
+ "data-table-view": 0.7,
261
+ "chart-area": 0.65
262
+ }
263
+ },
264
+ "goal-tracking": {
265
+ "description": "Goal/OKR progress cards with targets and status.",
266
+ "triggers": ["goal", "okr", "target", "kpi", "scorecard", "performance"],
267
+ "skeleton": null,
268
+ "patterns": ["goal-tracker", "scorecard"],
269
+ "co-occurs": {
270
+ "widget-grid": 0.8,
271
+ "chart-area": 0.7,
272
+ "sidebar-nav": 0.65
273
+ }
274
+ },
275
+ "comparison-view": {
276
+ "description": "Side-by-side metric comparison panel.",
277
+ "triggers": ["compare", "comparison", "benchmark", "versus", "period"],
278
+ "skeleton": null,
279
+ "patterns": ["comparison-panel"],
280
+ "co-occurs": {
281
+ "widget-grid": 0.75,
282
+ "chart-area": 0.7
283
+ }
284
+ },
285
+ "contact-page": {
286
+ "description": "Contact form with fields and submission.",
287
+ "triggers": ["contact", "support", "inquiry", "feedback", "message"],
288
+ "skeleton": null,
289
+ "patterns": ["contact-form"],
290
+ "co-occurs": {
291
+ "top-nav": 0.7,
292
+ "hero-section": 0.4
293
+ }
294
+ },
295
+ "search-global": {
296
+ "description": "Global search with command palette (Cmd+K) style.",
297
+ "triggers": ["search", "find", "command palette", "global search"],
298
+ "skeleton": null,
299
+ "patterns": ["search-bar"],
300
+ "co-occurs": {
301
+ "sidebar-nav": 0.75,
302
+ "top-nav": 0.7
303
+ }
304
+ },
305
+ "footer-section": {
306
+ "description": "Page footer with links, branding, and legal.",
307
+ "triggers": [],
308
+ "skeleton": null,
309
+ "patterns": [],
310
+ "co-occurs": {
311
+ "top-nav": 0.85,
312
+ "hero-section": 0.6
313
+ }
314
+ },
315
+ "full-bleed-hero": {
316
+ "description": "Full-viewport hero-first layout with floating nav. Portfolio/creative style.",
317
+ "triggers": ["portfolio", "creative", "agency", "artist", "photographer"],
318
+ "skeleton": "full-bleed",
319
+ "patterns": ["hero", "media-gallery"],
320
+ "co-occurs": {
321
+ "gallery-grid": 0.8,
322
+ "testimonial-block": 0.6,
323
+ "cta-block": 0.65
324
+ }
325
+ }
326
+ },
327
+ "composites": {
328
+ "dashboard": {
329
+ "description": "Data dashboard with navigation, KPIs, charts, and tables.",
330
+ "traits": ["sidebar-nav", "header-bar", "widget-grid", "chart-area", "data-table-view", "activity-stream"],
331
+ "suggested_vintage": { "style": "auradecantism", "mode": "dark" }
332
+ },
333
+ "landing": {
334
+ "description": "Marketing landing page with hero, features, and CTAs.",
335
+ "traits": ["top-nav", "hero-section", "cta-block", "testimonial-block", "pricing-block", "footer-section"],
336
+ "suggested_vintage": { "style": "clean", "mode": "light" }
337
+ },
338
+ "ecommerce": {
339
+ "description": "Online store with catalog, cart, and checkout.",
340
+ "traits": ["top-nav", "product-catalog", "filter-controls", "cart-checkout", "auth-flow", "detail-view"],
341
+ "suggested_vintage": { "style": "clean", "mode": "light" }
342
+ },
343
+ "portfolio": {
344
+ "description": "Creative portfolio with hero, gallery, and about.",
345
+ "traits": ["full-bleed-hero", "gallery-grid", "testimonial-block", "contact-page"],
346
+ "suggested_vintage": { "style": "auradecantism", "mode": "dark" }
347
+ },
348
+ "admin": {
349
+ "description": "Admin panel with tables, forms, and settings.",
350
+ "traits": ["sidebar-nav", "header-bar", "data-table-view", "filter-controls", "form-wizard", "detail-view"],
351
+ "suggested_vintage": { "style": "clean", "mode": "light" }
352
+ },
353
+ "crm": {
354
+ "description": "CRM with pipeline, contacts, and deal tracking.",
355
+ "traits": ["sidebar-nav", "header-bar", "pipeline-view", "widget-grid", "data-table-view", "detail-view", "activity-stream"],
356
+ "suggested_vintage": { "style": "auradecantism", "mode": "dark" }
357
+ },
358
+ "blog": {
359
+ "description": "Blog or content site with articles and categories.",
360
+ "traits": ["top-nav", "blog-list", "article-view", "search-global", "footer-section"],
361
+ "suggested_vintage": { "style": "clean", "mode": "light" }
362
+ },
363
+ "saas": {
364
+ "description": "SaaS product with dashboard, settings, and billing.",
365
+ "traits": ["sidebar-nav", "header-bar", "widget-grid", "chart-area", "data-table-view", "form-wizard", "auth-flow", "goal-tracking"],
366
+ "suggested_vintage": { "style": "auradecantism", "mode": "dark" }
367
+ },
368
+ "financial": {
369
+ "description": "Financial dashboard with scorecards, pipelines, and comparisons.",
370
+ "traits": ["sidebar-nav", "header-bar", "widget-grid", "chart-area", "goal-tracking", "comparison-view", "pipeline-view", "data-table-view"],
371
+ "suggested_vintage": { "style": "command-center", "mode": "dark" }
372
+ },
373
+ "docs": {
374
+ "description": "Documentation site with sidebar, search, and article content.",
375
+ "traits": ["sidebar-nav", "search-global", "article-view"],
376
+ "suggested_vintage": { "style": "clean", "mode": "auto" }
377
+ }
378
+ }
379
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$schema": "https://decantr.ai/schemas/atoms.v1.json",
3
+ "description": "Atomic CSS utility classes",
4
+ "categories": {
5
+ "layout": { "label": "Layout", "prefixes": ["_flex", "_grid", "_block", "_inline", "_relative", "_absolute", "_fixed", "_sticky", "_none", "_invisible"] },
6
+ "spacing": { "label": "Spacing", "prefixes": ["_p", "_m", "_gap", "_sp"] },
7
+ "sizing": { "label": "Sizing", "prefixes": ["_w", "_h", "_min", "_max"] },
8
+ "typography": { "label": "Typography", "prefixes": ["_text", "_heading", "_body", "_caption", "_label", "_overline", "_fw", "_lh", "_ls", "_font"] },
9
+ "color": { "label": "Color", "prefixes": ["_fg", "_bg", "_bc"] },
10
+ "border": { "label": "Border", "prefixes": ["_border", "_b1", "_radius", "_r0", "_r1", "_r2", "_r3", "_r4", "_r5", "_r6", "_r7", "_r8", "_rfull", "_rounded"] },
11
+ "effects": { "label": "Effects", "prefixes": ["_shadow", "_opacity", "_blur", "_overflow"] },
12
+ "interaction": { "label": "Interaction", "prefixes": ["_pointer", "_select", "_cursor", "_transition"] },
13
+ "alignment": { "label": "Alignment", "prefixes": ["_aic", "_jcc", "_jcsb", "_jcsa", "_jcse", "_ais", "_aie", "_center", "_tc", "_tl", "_tr"] },
14
+ "responsive": { "label": "Responsive", "prefixes": ["_sm:", "_md:", "_lg:", "_xl:"] }
15
+ }
16
+ }
@@ -0,0 +1,160 @@
1
+ {
2
+ "$schema": "https://decantr.ai/schemas/chart-showcase.v1.json",
3
+ "description": "Chart groups, type metadata, and variation specs for the Decantation Explorer",
4
+ "groups": {
5
+ "cartesian": { "label": "Cartesian", "description": "X/Y axis charts for trends, comparisons, and distributions", "types": ["line", "bar", "area", "combination", "histogram", "waterfall"] },
6
+ "circular": { "label": "Circular", "description": "Radial charts for proportions and multi-dimensional data", "types": ["pie", "radar", "radial", "gauge", "funnel"] },
7
+ "statistical": { "label": "Statistical", "description": "Data analysis and financial charts", "types": ["scatter", "bubble", "box-plot", "candlestick", "range-bar", "range-area"] },
8
+ "hierarchical": { "label": "Hierarchical", "description": "Relationships, flows, and organizational structures", "types": ["treemap", "sunburst", "sankey", "chord", "org-chart", "swimlane"] },
9
+ "micro": { "label": "Micro", "description": "Compact inline and dense visualization charts", "types": ["sparkline", "heatmap"] }
10
+ },
11
+ "types": {
12
+ "line": { "label": "Line", "description": "Track trends over categories or time" },
13
+ "bar": { "label": "Bar", "description": "Compare values across categories" },
14
+ "area": { "label": "Area", "description": "Show volume and trends with filled regions" },
15
+ "combination": { "label": "Combination", "description": "Mix chart types on shared axes" },
16
+ "histogram": { "label": "Histogram", "description": "Visualize frequency distribution of values" },
17
+ "waterfall": { "label": "Waterfall", "description": "Show cumulative effect of sequential values" },
18
+ "pie": { "label": "Pie", "description": "Show proportions of a whole" },
19
+ "radar": { "label": "Radar", "description": "Compare multi-dimensional data on radial axes" },
20
+ "radial": { "label": "Radial", "description": "Display values as radial bars" },
21
+ "gauge": { "label": "Gauge", "description": "Show a single metric against a range" },
22
+ "funnel": { "label": "Funnel", "description": "Show progressive reduction through stages" },
23
+ "scatter": { "label": "Scatter", "description": "Reveal correlations between two variables" },
24
+ "bubble": { "label": "Bubble", "description": "Scatter plot with size dimension" },
25
+ "box-plot": { "label": "Box Plot", "description": "Show statistical distribution with quartiles" },
26
+ "candlestick": { "label": "Candlestick", "description": "Visualize OHLC financial data" },
27
+ "range-bar": { "label": "Range Bar", "description": "Display value ranges as bars" },
28
+ "range-area": { "label": "Range Area", "description": "Show value ranges with filled bands" },
29
+ "heatmap": { "label": "Heatmap", "description": "Represent values in a color-coded matrix" },
30
+ "treemap": { "label": "Treemap", "description": "Show hierarchical data as nested rectangles" },
31
+ "sunburst": { "label": "Sunburst", "description": "Show hierarchical data as concentric rings" },
32
+ "sankey": { "label": "Sankey", "description": "Visualize flow between nodes" },
33
+ "chord": { "label": "Chord", "description": "Show inter-relationships between groups" },
34
+ "org-chart": { "label": "Org Chart", "description": "Display organizational hierarchy" },
35
+ "swimlane": { "label": "Swimlane", "description": "Kanban-style lane layout" },
36
+ "sparkline": { "label": "Sparkline", "description": "Compact inline chart for trends" }
37
+ },
38
+ "variations": {
39
+ "line": [
40
+ { "name": "Default", "description": "Smooth curve with dots and grid" },
41
+ { "name": "Linear", "description": "Straight line interpolation" },
42
+ { "name": "Multiple Series", "description": "Compare desktop vs mobile" },
43
+ { "name": "With Labels", "description": "Data point values displayed on chart" },
44
+ { "name": "No Dots", "description": "Clean line without data point markers" },
45
+ { "name": "Interactive", "description": "Crosshair guides on hover" },
46
+ { "name": "Live Stream", "description": "Real-time data feed with createStream() rolling buffer" }
47
+ ],
48
+ "bar": [
49
+ { "name": "Default", "description": "Vertical bars for category comparison" },
50
+ { "name": "Horizontal", "description": "Bars oriented horizontally" },
51
+ { "name": "Stacked", "description": "Series stacked to show total" },
52
+ { "name": "Multiple Series", "description": "Grouped bars side by side" },
53
+ { "name": "With Labels", "description": "Value labels on each bar" },
54
+ { "name": "Negative Values", "description": "Bars extending in both directions" }
55
+ ],
56
+ "area": [
57
+ { "name": "Default", "description": "Smooth filled area under curve" },
58
+ { "name": "Linear", "description": "Straight-line area fill" },
59
+ { "name": "Stacked", "description": "Multiple series stacked" },
60
+ { "name": "Multiple Series", "description": "Overlapping transparent areas" },
61
+ { "name": "With Labels", "description": "Data labels on area peaks" }
62
+ ],
63
+ "combination": [
64
+ { "name": "Bar + Line", "description": "Bar for volume, line for trend" },
65
+ { "name": "Area + Line", "description": "Filled area with overlaid line" },
66
+ { "name": "Multi-layer", "description": "Three series with mixed types" }
67
+ ],
68
+ "histogram": [
69
+ { "name": "Default", "description": "Auto-binned frequency distribution" },
70
+ { "name": "Custom Bins", "description": "Increased bin count for finer resolution" },
71
+ { "name": "With Labels", "description": "Count labels on each bin" }
72
+ ],
73
+ "waterfall": [
74
+ { "name": "Default", "description": "Running total with positive and negative deltas" },
75
+ { "name": "Horizontal", "description": "Horizontal waterfall layout" },
76
+ { "name": "With Labels", "description": "Value labels displayed on bars" }
77
+ ],
78
+ "pie": [
79
+ { "name": "Donut", "description": "Ring chart with center space" },
80
+ { "name": "Full Pie", "description": "Classic full circle pie chart" },
81
+ { "name": "With Labels", "description": "Slice labels showing values" },
82
+ { "name": "With Legend", "description": "External legend for slice identification" }
83
+ ],
84
+ "radar": [
85
+ { "name": "Default", "description": "Filled radar with area shading" },
86
+ { "name": "Multiple Series", "description": "Overlay two data profiles" },
87
+ { "name": "With Dots", "description": "Data point markers on vertices" },
88
+ { "name": "No Fill", "description": "Line-only radar without area fill" }
89
+ ],
90
+ "radial": [
91
+ { "name": "Default", "description": "Radial bars showing relative values" },
92
+ { "name": "With Labels", "description": "Value labels on each bar" },
93
+ { "name": "Three Items", "description": "Compact radial with fewer slices" }
94
+ ],
95
+ "gauge": [
96
+ { "name": "Radial", "description": "Arc gauge showing progress to target" },
97
+ { "name": "Bullet", "description": "Compact horizontal bullet gauge" },
98
+ { "name": "With Segments", "description": "Color-coded performance zones" }
99
+ ],
100
+ "funnel": [
101
+ { "name": "Default", "description": "Progressive funnel narrowing down" },
102
+ { "name": "Pyramid", "description": "Inverted triangle shape" }
103
+ ],
104
+ "scatter": [
105
+ { "name": "Default", "description": "Point cloud showing correlation" },
106
+ { "name": "With Labels", "description": "Labels on data points" },
107
+ { "name": "Multiple Series", "description": "Color-coded groups" }
108
+ ],
109
+ "bubble": [
110
+ { "name": "Default", "description": "Scatter with variable point sizes" },
111
+ { "name": "Multiple Series", "description": "Grouped bubbles by category" }
112
+ ],
113
+ "box-plot": [
114
+ { "name": "Default", "description": "Quartile distribution with 1.5 IQR whiskers" },
115
+ { "name": "Min-Max Whiskers", "description": "Whiskers extend to data extremes" }
116
+ ],
117
+ "candlestick": [
118
+ { "name": "Default", "description": "OHLC price movement bars" },
119
+ { "name": "With Grid", "description": "Grid lines for price reference" }
120
+ ],
121
+ "range-bar": [
122
+ { "name": "Default", "description": "Bars showing min-max range" },
123
+ { "name": "Horizontal", "description": "Horizontal range bars" }
124
+ ],
125
+ "range-area": [
126
+ { "name": "Default", "description": "Filled band between min and max" },
127
+ { "name": "Linear", "description": "Straight-line range band" }
128
+ ],
129
+ "heatmap": [
130
+ { "name": "Default", "description": "Color-coded matrix of values" },
131
+ { "name": "Custom Colors", "description": "Orange-to-purple color scale" },
132
+ { "name": "With Labels", "description": "Cell values displayed in grid" }
133
+ ],
134
+ "treemap": [
135
+ { "name": "Default", "description": "Nested rectangles proportional to value" },
136
+ { "name": "With Labels", "description": "Labels inside each rectangle" }
137
+ ],
138
+ "sunburst": [
139
+ { "name": "Default", "description": "Hierarchical data as concentric rings" },
140
+ { "name": "With Labels", "description": "Segment labels on each ring" }
141
+ ],
142
+ "sankey": [
143
+ { "name": "Default", "description": "Flow diagram from source to destination" }
144
+ ],
145
+ "chord": [
146
+ { "name": "Default", "description": "Circular relationship diagram" }
147
+ ],
148
+ "org-chart": [
149
+ { "name": "Top-Down", "description": "Standard top-down hierarchy" },
150
+ { "name": "Left-Right", "description": "Horizontal hierarchy layout" }
151
+ ],
152
+ "swimlane": [
153
+ { "name": "Default", "description": "Kanban board with lane columns" }
154
+ ],
155
+ "sparkline": [
156
+ { "name": "Default", "description": "Compact inline trend line" },
157
+ { "name": "Dense", "description": "More data points for detailed view" }
158
+ ]
159
+ }
160
+ }