@adia-ai/a2ui-corpus 0.0.1

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 (579) hide show
  1. package/CHANGELOG.md +98 -0
  2. package/README.md +168 -0
  3. package/catalog-a2ui_0_9.json +12554 -0
  4. package/catalog-a2ui_0_9_rules.txt +54 -0
  5. package/compositions/_schema.json +26 -0
  6. package/compositions/agent/ai-streaming-response.json +19 -0
  7. package/compositions/agent/ai-streaming-response.yaml +32 -0
  8. package/compositions/agent/alert-banner.json +23 -0
  9. package/compositions/agent/alert-banner.yaml +34 -0
  10. package/compositions/agent/chat-interface.json +127 -0
  11. package/compositions/agent/chat-interface.yaml +34 -0
  12. package/compositions/agent/command-palette.json +113 -0
  13. package/compositions/agent/command-palette.yaml +30 -0
  14. package/compositions/agent/empty-state.json +22 -0
  15. package/compositions/agent/empty-state.yaml +35 -0
  16. package/compositions/agent/error-state-retry.json +32 -0
  17. package/compositions/agent/loading-skeleton.json +25 -0
  18. package/compositions/agent/loading-skeleton.yaml +31 -0
  19. package/compositions/agent/notification-preferences.json +177 -0
  20. package/compositions/agent/toast-stack.json +17 -0
  21. package/compositions/agent/toast-stack.yaml +28 -0
  22. package/compositions/data/activity-feed.json +31 -0
  23. package/compositions/data/activity-feed.yaml +43 -0
  24. package/compositions/data/audit-log-viewer.json +75 -0
  25. package/compositions/data/bookmark-list.json +32 -0
  26. package/compositions/data/bookmark-list.yaml +41 -0
  27. package/compositions/data/bulk-action-toolbar.json +28 -0
  28. package/compositions/data/changelog-feed.json +54 -0
  29. package/compositions/data/chart-dashboard.json +26 -0
  30. package/compositions/data/chart-dashboard.yaml +34 -0
  31. package/compositions/data/cohort-retention.json +50 -0
  32. package/compositions/data/column-manager.json +321 -0
  33. package/compositions/data/data-table-paginated.json +29 -0
  34. package/compositions/data/data-table-paginated.yaml +36 -0
  35. package/compositions/data/email-inbox-list.json +30 -0
  36. package/compositions/data/email-inbox-list.yaml +41 -0
  37. package/compositions/data/funnel-analytics.json +34 -0
  38. package/compositions/data/heatmap-calendar.json +122 -0
  39. package/compositions/data/invoice-table.json +26 -0
  40. package/compositions/data/invoice-table.yaml +33 -0
  41. package/compositions/data/kpi-overview.json +28 -0
  42. package/compositions/data/kpi-overview.yaml +42 -0
  43. package/compositions/data/notification-center.json +31 -0
  44. package/compositions/data/notification-center.yaml +41 -0
  45. package/compositions/data/object-inspector.json +53 -0
  46. package/compositions/data/product-specs-card.json +19 -0
  47. package/compositions/data/product-specs-card.yaml +35 -0
  48. package/compositions/data/progress-tracker.json +27 -0
  49. package/compositions/data/progress-tracker.yaml +47 -0
  50. package/compositions/data/review-card.json +21 -0
  51. package/compositions/data/review-card.yaml +34 -0
  52. package/compositions/data/saved-views-filter-bar.json +52 -0
  53. package/compositions/data/shopping-cart-summary.json +28 -0
  54. package/compositions/data/shopping-cart-summary.yaml +43 -0
  55. package/compositions/data/stat-card-dashboard.json +30 -0
  56. package/compositions/data/stat-card-dashboard.yaml +44 -0
  57. package/compositions/data/status-page.json +48 -0
  58. package/compositions/data/virtualized-table.json +50 -0
  59. package/compositions/data/weather-widget.json +20 -0
  60. package/compositions/data/weather-widget.yaml +31 -0
  61. package/compositions/form/data-import-wizard.json +217 -0
  62. package/compositions/forms/change-password-form.json +32 -0
  63. package/compositions/forms/change-password-form.yaml +44 -0
  64. package/compositions/forms/color-picker-panel.json +25 -0
  65. package/compositions/forms/color-picker-panel.yaml +36 -0
  66. package/compositions/forms/contact-form.json +49 -0
  67. package/compositions/forms/contact-form.yaml +54 -0
  68. package/compositions/forms/credit-card-payment-form.json +33 -0
  69. package/compositions/forms/credit-card-payment-form.yaml +46 -0
  70. package/compositions/forms/data-import-mapper.json +247 -0
  71. package/compositions/forms/date-time-picker-form.json +23 -0
  72. package/compositions/forms/date-time-picker-form.yaml +38 -0
  73. package/compositions/forms/destructive-confirm.json +43 -0
  74. package/compositions/forms/feedback-form.json +30 -0
  75. package/compositions/forms/feedback-form.yaml +41 -0
  76. package/compositions/forms/file-upload-form.json +28 -0
  77. package/compositions/forms/file-upload-form.yaml +37 -0
  78. package/compositions/forms/login-form.json +71 -0
  79. package/compositions/forms/login-form.yaml +43 -0
  80. package/compositions/forms/multi-step-wizard.json +27 -0
  81. package/compositions/forms/multi-step-wizard.yaml +37 -0
  82. package/compositions/forms/newsletter-subscription-form.json +28 -0
  83. package/compositions/forms/newsletter-subscription-form.yaml +40 -0
  84. package/compositions/forms/otp-verification-form.json +29 -0
  85. package/compositions/forms/otp-verification-form.yaml +42 -0
  86. package/compositions/forms/password-reset-form.json +28 -0
  87. package/compositions/forms/password-reset-form.yaml +40 -0
  88. package/compositions/forms/permission-matrix.json +40 -0
  89. package/compositions/forms/profile-edit-form.json +32 -0
  90. package/compositions/forms/profile-edit-form.yaml +46 -0
  91. package/compositions/forms/radio-group-form.json +30 -0
  92. package/compositions/forms/radio-group-form.yaml +39 -0
  93. package/compositions/forms/search-filters.json +30 -0
  94. package/compositions/forms/search-filters.yaml +41 -0
  95. package/compositions/forms/settings-toggles-page.json +32 -0
  96. package/compositions/forms/settings-toggles-page.yaml +43 -0
  97. package/compositions/forms/signup-form.json +34 -0
  98. package/compositions/forms/signup-form.yaml +48 -0
  99. package/compositions/forms/slider-range-form.json +17 -0
  100. package/compositions/forms/slider-range-form.yaml +34 -0
  101. package/compositions/forms/tag-input-form.json +24 -0
  102. package/compositions/forms/tag-input-form.yaml +31 -0
  103. package/compositions/forms/team-members-rbac.json +279 -0
  104. package/compositions/layout/accordion-settings.json +56 -0
  105. package/compositions/layout/avatar-group-display.json +20 -0
  106. package/compositions/layout/avatar-group-display.yaml +30 -0
  107. package/compositions/layout/badge-variants-display.json +27 -0
  108. package/compositions/layout/badge-variants-display.yaml +31 -0
  109. package/compositions/layout/bento-overview.json +40 -0
  110. package/compositions/layout/calendar-month-view.json +209 -0
  111. package/compositions/layout/calendar-month-view.yaml +29 -0
  112. package/compositions/layout/code-block.json +21 -0
  113. package/compositions/layout/code-block.yaml +30 -0
  114. package/compositions/layout/comparison-table.json +28 -0
  115. package/compositions/layout/comparison-table.yaml +32 -0
  116. package/compositions/layout/divider-with-label.json +17 -0
  117. package/compositions/layout/divider-with-label.yaml +29 -0
  118. package/compositions/layout/drawer-panel.json +23 -0
  119. package/compositions/layout/drawer-panel.yaml +34 -0
  120. package/compositions/layout/embed-iframe.json +19 -0
  121. package/compositions/layout/embed-iframe.yaml +31 -0
  122. package/compositions/layout/faq-accordion.json +85 -0
  123. package/compositions/layout/faq-accordion.yaml +32 -0
  124. package/compositions/layout/feature-grid.json +33 -0
  125. package/compositions/layout/feature-grid.yaml +42 -0
  126. package/compositions/layout/footer-nav.json +30 -0
  127. package/compositions/layout/footer-nav.yaml +35 -0
  128. package/compositions/layout/hero-cta.json +24 -0
  129. package/compositions/layout/hero-cta.yaml +35 -0
  130. package/compositions/layout/image-gallery.json +20 -0
  131. package/compositions/layout/image-gallery.yaml +43 -0
  132. package/compositions/layout/image-with-caption.json +19 -0
  133. package/compositions/layout/image-with-caption.yaml +29 -0
  134. package/compositions/layout/kanban-board.json +38 -0
  135. package/compositions/layout/kanban-board.yaml +37 -0
  136. package/compositions/layout/keyboard-shortcuts.json +26 -0
  137. package/compositions/layout/keyboard-shortcuts.yaml +42 -0
  138. package/compositions/layout/markdown-editor-preview.json +166 -0
  139. package/compositions/layout/media-player.json +22 -0
  140. package/compositions/layout/media-player.yaml +30 -0
  141. package/compositions/layout/modal-form.json +22 -0
  142. package/compositions/layout/modal-form.yaml +34 -0
  143. package/compositions/layout/onboarding-checklist.json +94 -0
  144. package/compositions/layout/onboarding-checklist.yaml +31 -0
  145. package/compositions/layout/popover-tooltip.json +21 -0
  146. package/compositions/layout/popover-tooltip.yaml +31 -0
  147. package/compositions/layout/pricing-tiers.json +42 -0
  148. package/compositions/layout/pricing-tiers.yaml +41 -0
  149. package/compositions/layout/product-card.json +28 -0
  150. package/compositions/layout/product-card.yaml +35 -0
  151. package/compositions/layout/sidebar-layout.json +24 -0
  152. package/compositions/layout/sidebar-layout.yaml +39 -0
  153. package/compositions/layout/split-pane-layout.json +20 -0
  154. package/compositions/layout/split-pane-layout.yaml +31 -0
  155. package/compositions/layout/tabs-panel.json +25 -0
  156. package/compositions/layout/tabs-panel.yaml +34 -0
  157. package/compositions/layout/testimonial-grid.json +42 -0
  158. package/compositions/layout/testimonial-grid.yaml +39 -0
  159. package/compositions/layout/three-pane-shell.json +316 -0
  160. package/compositions/layout/toolbar-actions.json +22 -0
  161. package/compositions/layout/toolbar-actions.yaml +29 -0
  162. package/compositions/navigation/breadcrumb-nav.json +18 -0
  163. package/compositions/navigation/breadcrumb-nav.yaml +29 -0
  164. package/compositions/navigation/nav-menu-with-icons.json +25 -0
  165. package/compositions/navigation/nav-menu-with-icons.yaml +39 -0
  166. package/compositions/navigation/pagination-controls.json +44 -0
  167. package/compositions/navigation/pagination-controls.yaml +34 -0
  168. package/compositions/navigation/segmented-control-tabs.json +17 -0
  169. package/compositions/navigation/segmented-control-tabs.yaml +29 -0
  170. package/compositions/navigation/workspace-switcher.json +29 -0
  171. package/compositions/settings/api-keys.json +57 -0
  172. package/compositions/settings/feature-flags.json +41 -0
  173. package/compositions/settings/integrations-gallery.json +66 -0
  174. package/compositions/settings/session-device-mgmt.json +52 -0
  175. package/compositions/settings/usage-quota-meter.json +47 -0
  176. package/compositions/settings/webhooks.json +62 -0
  177. package/exemplars/AUDIT-REPORT.md +116 -0
  178. package/exemplars/blocks-reference.md +409 -0
  179. package/exemplars/index.html +21 -0
  180. package/exemplars/prose/auth-login/a2ui.json +2143 -0
  181. package/exemplars/prose/auth-login/auth-login.yaml +38 -0
  182. package/exemplars/prose/auth-login/chunks/prose-auth-login-card-1.json +316 -0
  183. package/exemplars/prose/auth-login/chunks/prose-auth-login-card-10.json +102 -0
  184. package/exemplars/prose/auth-login/chunks/prose-auth-login-card-11.json +100 -0
  185. package/exemplars/prose/auth-login/chunks/prose-auth-login-card-12.json +101 -0
  186. package/exemplars/prose/auth-login/chunks/prose-auth-login-card-13.json +117 -0
  187. package/exemplars/prose/auth-login/chunks/prose-auth-login-card-2.json +132 -0
  188. package/exemplars/prose/auth-login/chunks/prose-auth-login-card-3.json +190 -0
  189. package/exemplars/prose/auth-login/chunks/prose-auth-login-card-4.json +64 -0
  190. package/exemplars/prose/auth-login/chunks/prose-auth-login-card-5.json +68 -0
  191. package/exemplars/prose/auth-login/chunks/prose-auth-login-card-6.json +117 -0
  192. package/exemplars/prose/auth-login/chunks/prose-auth-login-card-7.json +86 -0
  193. package/exemplars/prose/auth-login/chunks/prose-auth-login-card-8.json +218 -0
  194. package/exemplars/prose/auth-login/chunks/prose-auth-login-card-9.json +81 -0
  195. package/exemplars/prose/auth-login/index.html +539 -0
  196. package/exemplars/prose/cta/README.md +3 -0
  197. package/exemplars/prose/cta/a2ui.json +570 -0
  198. package/exemplars/prose/cta/chunks/prose-cta-card-1.json +191 -0
  199. package/exemplars/prose/cta/chunks/prose-cta-card-2.json +96 -0
  200. package/exemplars/prose/cta/cta.yaml +38 -0
  201. package/exemplars/prose/cta/data.json +6 -0
  202. package/exemplars/prose/cta/index.html +143 -0
  203. package/exemplars/prose/feature-grid/README.md +3 -0
  204. package/exemplars/prose/feature-grid/a2ui.json +464 -0
  205. package/exemplars/prose/feature-grid/chunks/prose-feature-grid-card-1.json +72 -0
  206. package/exemplars/prose/feature-grid/chunks/prose-feature-grid-card-2.json +72 -0
  207. package/exemplars/prose/feature-grid/chunks/prose-feature-grid-card-3.json +72 -0
  208. package/exemplars/prose/feature-grid/chunks/prose-feature-grid-card-4.json +72 -0
  209. package/exemplars/prose/feature-grid/chunks/prose-feature-grid-card-5.json +72 -0
  210. package/exemplars/prose/feature-grid/chunks/prose-feature-grid-card-6.json +72 -0
  211. package/exemplars/prose/feature-grid/data.json +13 -0
  212. package/exemplars/prose/feature-grid/feature-grid.yaml +35 -0
  213. package/exemplars/prose/feature-grid/index.html +103 -0
  214. package/exemplars/prose/footer/README.md +3 -0
  215. package/exemplars/prose/footer/a2ui.json +359 -0
  216. package/exemplars/prose/footer/data.json +10 -0
  217. package/exemplars/prose/footer/footer.yaml +32 -0
  218. package/exemplars/prose/footer/index.html +110 -0
  219. package/exemplars/prose/hero/README.md +3 -0
  220. package/exemplars/prose/hero/a2ui.json +982 -0
  221. package/exemplars/prose/hero/chunks/prose-hero-card-1.json +52 -0
  222. package/exemplars/prose/hero/chunks/prose-hero-card-2.json +52 -0
  223. package/exemplars/prose/hero/chunks/prose-hero-card-3.json +50 -0
  224. package/exemplars/prose/hero/chunks/prose-hero-card-4.json +50 -0
  225. package/exemplars/prose/hero/chunks/prose-hero-card-5.json +50 -0
  226. package/exemplars/prose/hero/chunks/prose-hero-card-6.json +70 -0
  227. package/exemplars/prose/hero/chunks/prose-hero-card-7.json +70 -0
  228. package/exemplars/prose/hero/chunks/prose-hero-card-8.json +70 -0
  229. package/exemplars/prose/hero/data.json +6 -0
  230. package/exemplars/prose/hero/hero.yaml +38 -0
  231. package/exemplars/prose/hero/index.html +227 -0
  232. package/exemplars/prose/pricing/README.md +3 -0
  233. package/exemplars/prose/pricing/a2ui.json +1367 -0
  234. package/exemplars/prose/pricing/chunks/prose-pricing-card-1.json +240 -0
  235. package/exemplars/prose/pricing/chunks/prose-pricing-card-2.json +312 -0
  236. package/exemplars/prose/pricing/chunks/prose-pricing-card-3.json +333 -0
  237. package/exemplars/prose/pricing/chunks/prose-pricing-card-4.json +51 -0
  238. package/exemplars/prose/pricing/chunks/prose-pricing-card-5.json +51 -0
  239. package/exemplars/prose/pricing/chunks/prose-pricing-card-6.json +51 -0
  240. package/exemplars/prose/pricing/chunks/prose-pricing-card-7.json +51 -0
  241. package/exemplars/prose/pricing/chunks/prose-pricing-card-8.json +80 -0
  242. package/exemplars/prose/pricing/data.json +9 -0
  243. package/exemplars/prose/pricing/index.html +308 -0
  244. package/exemplars/prose/pricing/pricing.yaml +38 -0
  245. package/exemplars/prose/steps/README.md +3 -0
  246. package/exemplars/prose/steps/a2ui.json +662 -0
  247. package/exemplars/prose/steps/chunks/prose-steps-card-1.json +129 -0
  248. package/exemplars/prose/steps/chunks/prose-steps-card-2.json +114 -0
  249. package/exemplars/prose/steps/chunks/prose-steps-card-3.json +182 -0
  250. package/exemplars/prose/steps/chunks/prose-steps-card-4.json +172 -0
  251. package/exemplars/prose/steps/data.json +31 -0
  252. package/exemplars/prose/steps/index.html +173 -0
  253. package/exemplars/prose/steps/setup.js +12 -0
  254. package/exemplars/prose/steps/steps.yaml +38 -0
  255. package/exemplars/prose/testimonials/README.md +3 -0
  256. package/exemplars/prose/testimonials/a2ui.json +1373 -0
  257. package/exemplars/prose/testimonials/chunks/prose-testimonials-card-1.json +182 -0
  258. package/exemplars/prose/testimonials/chunks/prose-testimonials-card-2.json +145 -0
  259. package/exemplars/prose/testimonials/chunks/prose-testimonials-card-3.json +146 -0
  260. package/exemplars/prose/testimonials/chunks/prose-testimonials-card-4.json +146 -0
  261. package/exemplars/prose/testimonials/chunks/prose-testimonials-card-5.json +146 -0
  262. package/exemplars/prose/testimonials/chunks/prose-testimonials-card-6.json +146 -0
  263. package/exemplars/prose/testimonials/chunks/prose-testimonials-card-7.json +146 -0
  264. package/exemplars/prose/testimonials/chunks/prose-testimonials-card-8.json +173 -0
  265. package/exemplars/prose/testimonials/data.json +14 -0
  266. package/exemplars/prose/testimonials/index.html +294 -0
  267. package/exemplars/prose/testimonials/testimonials.yaml +33 -0
  268. package/exemplars/ui/auth-login/a2ui.json +1821 -0
  269. package/exemplars/ui/auth-login/auth-login.yaml +38 -0
  270. package/exemplars/ui/auth-login/chunks/auth-login-card-1.json +172 -0
  271. package/exemplars/ui/auth-login/chunks/auth-login-card-10.json +123 -0
  272. package/exemplars/ui/auth-login/chunks/auth-login-card-11.json +101 -0
  273. package/exemplars/ui/auth-login/chunks/auth-login-card-12.json +108 -0
  274. package/exemplars/ui/auth-login/chunks/auth-login-card-2.json +153 -0
  275. package/exemplars/ui/auth-login/chunks/auth-login-card-3.json +201 -0
  276. package/exemplars/ui/auth-login/chunks/auth-login-card-4.json +148 -0
  277. package/exemplars/ui/auth-login/chunks/auth-login-card-5.json +91 -0
  278. package/exemplars/ui/auth-login/chunks/auth-login-card-6.json +112 -0
  279. package/exemplars/ui/auth-login/chunks/auth-login-card-7.json +100 -0
  280. package/exemplars/ui/auth-login/chunks/auth-login-card-8.json +99 -0
  281. package/exemplars/ui/auth-login/chunks/auth-login-card-9.json +286 -0
  282. package/exemplars/ui/auth-login/index.html +383 -0
  283. package/fragments/_schema.json +72 -0
  284. package/fragments/action/dual-cta-row.json +29 -0
  285. package/fragments/action/dual-cta-row.yaml +34 -0
  286. package/fragments/action/footer-cancel-save.json +31 -0
  287. package/fragments/action/footer-cancel-save.yaml +34 -0
  288. package/fragments/action/footer-primary-only.json +23 -0
  289. package/fragments/action/footer-primary-only.yaml +26 -0
  290. package/fragments/content/calendar-day-cell.json +29 -0
  291. package/fragments/content/chart-legend.json +122 -0
  292. package/fragments/content/column-config-atom.json +121 -0
  293. package/fragments/content/credential-entry-atom.json +128 -0
  294. package/fragments/content/directory-entry-atom.json +150 -0
  295. package/fragments/content/email-row.json +35 -0
  296. package/fragments/content/email-row.yaml +43 -0
  297. package/fragments/content/faq-item.json +54 -0
  298. package/fragments/content/health-entry-atom.json +87 -0
  299. package/fragments/content/icon-text-row.json +29 -0
  300. package/fragments/content/icon-text-row.yaml +36 -0
  301. package/fragments/content/icon-title-description.json +30 -0
  302. package/fragments/content/icon-title-description.yaml +37 -0
  303. package/fragments/content/image-tile.json +28 -0
  304. package/fragments/content/image-tile.yaml +32 -0
  305. package/fragments/content/incident-row.json +109 -0
  306. package/fragments/content/kbd-shortcut-row.json +29 -0
  307. package/fragments/content/kbd-shortcut-row.yaml +33 -0
  308. package/fragments/content/key-value-row.json +29 -0
  309. package/fragments/content/key-value-row.yaml +36 -0
  310. package/fragments/content/labeled-progress.json +29 -0
  311. package/fragments/content/labeled-progress.yaml +33 -0
  312. package/fragments/content/link-list-column.json +33 -0
  313. package/fragments/content/link-list-column.yaml +41 -0
  314. package/fragments/content/linked-record-row.json +95 -0
  315. package/fragments/content/marketplace-tile-atom.json +149 -0
  316. package/fragments/content/metadata-description-list.json +28 -0
  317. package/fragments/content/metadata-description-list.yaml +36 -0
  318. package/fragments/content/pending-invite-row.json +113 -0
  319. package/fragments/content/release-entry.json +159 -0
  320. package/fragments/content/rollout-entry-atom.json +170 -0
  321. package/fragments/content/signed-in-entry-atom.json +159 -0
  322. package/fragments/content/stage-entry-atom.json +117 -0
  323. package/fragments/content/stat-card.json +31 -0
  324. package/fragments/content/stat-card.yaml +39 -0
  325. package/fragments/content/user-identity-row.json +33 -0
  326. package/fragments/content/user-identity-row.yaml +43 -0
  327. package/fragments/content/user-notification-row.json +35 -0
  328. package/fragments/content/user-notification-row.yaml +50 -0
  329. package/fragments/content/wizard-step-row.json +96 -0
  330. package/fragments/form/labeled-checkbox.json +27 -0
  331. package/fragments/form/labeled-checkbox.yaml +36 -0
  332. package/fragments/form/labeled-input.json +28 -0
  333. package/fragments/form/labeled-input.yaml +38 -0
  334. package/fragments/form/labeled-slider.json +34 -0
  335. package/fragments/form/labeled-slider.yaml +50 -0
  336. package/fragments/form/labeled-textarea.json +28 -0
  337. package/fragments/form/labeled-textarea.yaml +39 -0
  338. package/fragments/form/labeled-toggle.json +29 -0
  339. package/fragments/form/labeled-toggle.yaml +43 -0
  340. package/fragments/form/rating-row.json +31 -0
  341. package/fragments/form/rating-row.yaml +40 -0
  342. package/fragments/layout/card-header-heading.json +39 -0
  343. package/fragments/layout/card-header-heading.yaml +27 -0
  344. package/fragments/layout/card-header-with-badge.json +30 -0
  345. package/fragments/layout/card-header-with-badge.yaml +40 -0
  346. package/fragments/layout/card-header-with-description.json +29 -0
  347. package/fragments/layout/card-header-with-description.yaml +32 -0
  348. package/fragments/layout/pricing-tier-card.json +37 -0
  349. package/fragments/layout/pricing-tier-card.yaml +50 -0
  350. package/fragments/layout/text-card.json +28 -0
  351. package/fragments/layout/text-card.yaml +30 -0
  352. package/manifest.json +6 -0
  353. package/package.json +33 -0
  354. package/patterns/_components.json +3320 -0
  355. package/patterns/_index.json +3232 -0
  356. package/patterns/_schema.json +206 -0
  357. package/patterns/_taxonomy.json +1970 -0
  358. package/patterns/agent/_domain.json +27 -0
  359. package/patterns/agent/alert-banner.json +41 -0
  360. package/patterns/agent/alert-banner.yaml +38 -0
  361. package/patterns/agent/chat-interface.json +205 -0
  362. package/patterns/agent/chat-interface.yaml +58 -0
  363. package/patterns/agent/command-palette.json +169 -0
  364. package/patterns/agent/command-palette.yaml +48 -0
  365. package/patterns/agent/empty-state.json +77 -0
  366. package/patterns/agent/empty-state.yaml +44 -0
  367. package/patterns/agent/error-state.json +67 -0
  368. package/patterns/agent/error-state.yaml +43 -0
  369. package/patterns/agent/loading-skeleton.json +101 -0
  370. package/patterns/agent/loading-skeleton.yaml +41 -0
  371. package/patterns/agent/notifications.json +87 -0
  372. package/patterns/agent/notifications.yaml +41 -0
  373. package/patterns/agent/streaming-response.json +58 -0
  374. package/patterns/agent/streaming-response.yaml +41 -0
  375. package/patterns/agent/toast-notification.json +70 -0
  376. package/patterns/agent/toast-notification.yaml +45 -0
  377. package/patterns/data/_domain.json +35 -0
  378. package/patterns/data/admin-dashboard-with-charts.json +755 -0
  379. package/patterns/data/admin-dashboard-with-charts.yaml +79 -0
  380. package/patterns/data/api-key-table.json +131 -0
  381. package/patterns/data/api-key-table.yaml +43 -0
  382. package/patterns/data/bookmark-list-categories.json +143 -0
  383. package/patterns/data/bookmark-list-categories.yaml +53 -0
  384. package/patterns/data/bookmark-list.json +163 -0
  385. package/patterns/data/bookmark-list.yaml +47 -0
  386. package/patterns/data/chart-dashboard.json +335 -0
  387. package/patterns/data/chart-dashboard.yaml +48 -0
  388. package/patterns/data/dashboard.json +153 -0
  389. package/patterns/data/dashboard.yaml +45 -0
  390. package/patterns/data/data-table-view.json +121 -0
  391. package/patterns/data/data-table-view.yaml +61 -0
  392. package/patterns/data/email-inbox.json +272 -0
  393. package/patterns/data/email-inbox.yaml +48 -0
  394. package/patterns/data/event-calendar-details.json +334 -0
  395. package/patterns/data/event-calendar-details.yaml +57 -0
  396. package/patterns/data/inventory-table.json +119 -0
  397. package/patterns/data/inventory-table.yaml +42 -0
  398. package/patterns/data/leaderboard.json +131 -0
  399. package/patterns/data/leaderboard.yaml +41 -0
  400. package/patterns/data/metrics.json +163 -0
  401. package/patterns/data/metrics.yaml +40 -0
  402. package/patterns/data/notification-center.json +264 -0
  403. package/patterns/data/notification-center.yaml +56 -0
  404. package/patterns/data/onboarding-checklist.json +114 -0
  405. package/patterns/data/onboarding-checklist.yaml +43 -0
  406. package/patterns/data/order-tracking.json +167 -0
  407. package/patterns/data/order-tracking.yaml +48 -0
  408. package/patterns/data/pagination-nav.json +48 -0
  409. package/patterns/data/pagination-nav.yaml +42 -0
  410. package/patterns/data/progress-dashboard.json +195 -0
  411. package/patterns/data/progress-dashboard.yaml +50 -0
  412. package/patterns/data/progress-tracker.json +119 -0
  413. package/patterns/data/progress-tracker.yaml +44 -0
  414. package/patterns/data/restaurant-menu.json +271 -0
  415. package/patterns/data/restaurant-menu.yaml +58 -0
  416. package/patterns/data/stat-cards.json +144 -0
  417. package/patterns/data/stat-cards.yaml +42 -0
  418. package/patterns/data/team-activity.json +170 -0
  419. package/patterns/data/team-activity.yaml +46 -0
  420. package/patterns/forms/_domain.json +32 -0
  421. package/patterns/forms/auth-signup.json +221 -0
  422. package/patterns/forms/auth-signup.yaml +55 -0
  423. package/patterns/forms/bleed-design-settings.json +201 -0
  424. package/patterns/forms/bleed-design-settings.yaml +57 -0
  425. package/patterns/forms/color-picker-demo.json +52 -0
  426. package/patterns/forms/color-picker-demo.yaml +43 -0
  427. package/patterns/forms/color-picker-panel.json +48 -0
  428. package/patterns/forms/color-picker-panel.yaml +38 -0
  429. package/patterns/forms/color-theme-builder.json +198 -0
  430. package/patterns/forms/color-theme-builder.yaml +55 -0
  431. package/patterns/forms/create-form.json +191 -0
  432. package/patterns/forms/create-form.yaml +55 -0
  433. package/patterns/forms/credit-card-payment.json +282 -0
  434. package/patterns/forms/credit-card-payment.yaml +61 -0
  435. package/patterns/forms/data-import.json +111 -0
  436. package/patterns/forms/data-import.yaml +49 -0
  437. package/patterns/forms/date-picker.json +85 -0
  438. package/patterns/forms/date-picker.yaml +44 -0
  439. package/patterns/forms/date-range-picker.json +155 -0
  440. package/patterns/forms/date-range-picker.yaml +54 -0
  441. package/patterns/forms/file-upload-form.json +151 -0
  442. package/patterns/forms/file-upload-form.yaml +60 -0
  443. package/patterns/forms/file-upload-gallery.json +174 -0
  444. package/patterns/forms/file-upload-gallery.yaml +56 -0
  445. package/patterns/forms/image-upload-preview.json +72 -0
  446. package/patterns/forms/image-upload-preview.yaml +42 -0
  447. package/patterns/forms/login-form.json +213 -0
  448. package/patterns/forms/login-form.yaml +61 -0
  449. package/patterns/forms/modal-dialog-form.json +233 -0
  450. package/patterns/forms/modal-dialog-form.yaml +52 -0
  451. package/patterns/forms/newsletter-subscribe.json +69 -0
  452. package/patterns/forms/newsletter-subscribe.yaml +47 -0
  453. package/patterns/forms/notification-filters.json +345 -0
  454. package/patterns/forms/notification-filters.yaml +80 -0
  455. package/patterns/forms/notification-preferences.json +302 -0
  456. package/patterns/forms/notification-preferences.yaml +66 -0
  457. package/patterns/forms/otp-form.json +89 -0
  458. package/patterns/forms/otp-form.yaml +46 -0
  459. package/patterns/forms/otp-verification.json +128 -0
  460. package/patterns/forms/otp-verification.yaml +52 -0
  461. package/patterns/forms/password-reset.json +206 -0
  462. package/patterns/forms/password-reset.yaml +56 -0
  463. package/patterns/forms/price-range-filter.json +133 -0
  464. package/patterns/forms/price-range-filter.yaml +51 -0
  465. package/patterns/forms/radio-group-selection.json +209 -0
  466. package/patterns/forms/radio-group-selection.yaml +51 -0
  467. package/patterns/forms/radio-group.json +143 -0
  468. package/patterns/forms/radio-group.yaml +50 -0
  469. package/patterns/forms/search-filters.json +201 -0
  470. package/patterns/forms/search-filters.yaml +60 -0
  471. package/patterns/forms/settings-page.json +364 -0
  472. package/patterns/forms/settings-page.yaml +64 -0
  473. package/patterns/forms/slider-range.json +119 -0
  474. package/patterns/forms/slider-range.yaml +45 -0
  475. package/patterns/forms/survey-rating-scales.json +450 -0
  476. package/patterns/forms/survey-rating-scales.yaml +69 -0
  477. package/patterns/forms/tag-input.json +112 -0
  478. package/patterns/forms/tag-input.yaml +47 -0
  479. package/patterns/forms/theme-customizer.json +180 -0
  480. package/patterns/forms/theme-customizer.yaml +53 -0
  481. package/patterns/forms/two-factor-auth.json +99 -0
  482. package/patterns/forms/two-factor-auth.yaml +62 -0
  483. package/patterns/forms/volume-control.json +99 -0
  484. package/patterns/forms/volume-control.yaml +47 -0
  485. package/patterns/forms/wizard-steps.json +130 -0
  486. package/patterns/forms/wizard-steps.yaml +58 -0
  487. package/patterns/layout/_domain.json +29 -0
  488. package/patterns/layout/accordion-settings.json +345 -0
  489. package/patterns/layout/accordion-settings.yaml +55 -0
  490. package/patterns/layout/avatar-group.json +136 -0
  491. package/patterns/layout/avatar-group.yaml +47 -0
  492. package/patterns/layout/badge-showcase.json +244 -0
  493. package/patterns/layout/badge-showcase.yaml +46 -0
  494. package/patterns/layout/calendar-view.json +88 -0
  495. package/patterns/layout/calendar-view.yaml +42 -0
  496. package/patterns/layout/code-block.json +88 -0
  497. package/patterns/layout/code-block.yaml +47 -0
  498. package/patterns/layout/consent-banner.json +89 -0
  499. package/patterns/layout/consent-banner.yaml +50 -0
  500. package/patterns/layout/cta-banner.json +99 -0
  501. package/patterns/layout/cta-banner.yaml +46 -0
  502. package/patterns/layout/divider-label.json +68 -0
  503. package/patterns/layout/divider-label.yaml +42 -0
  504. package/patterns/layout/drawer-panel.json +220 -0
  505. package/patterns/layout/drawer-panel.yaml +54 -0
  506. package/patterns/layout/embed-content.json +86 -0
  507. package/patterns/layout/embed-content.yaml +46 -0
  508. package/patterns/layout/faq-accordion.json +159 -0
  509. package/patterns/layout/faq-accordion.yaml +47 -0
  510. package/patterns/layout/feature-carousel.json +263 -0
  511. package/patterns/layout/feature-carousel.yaml +47 -0
  512. package/patterns/layout/feature-grid.json +197 -0
  513. package/patterns/layout/feature-grid.yaml +45 -0
  514. package/patterns/layout/hero-section.json +109 -0
  515. package/patterns/layout/hero-section.yaml +46 -0
  516. package/patterns/layout/image-caption.json +48 -0
  517. package/patterns/layout/image-caption.yaml +37 -0
  518. package/patterns/layout/image-carousel.json +173 -0
  519. package/patterns/layout/image-carousel.yaml +47 -0
  520. package/patterns/layout/image-gallery.json +128 -0
  521. package/patterns/layout/image-gallery.yaml +45 -0
  522. package/patterns/layout/kanban-board.json +292 -0
  523. package/patterns/layout/kanban-board.yaml +58 -0
  524. package/patterns/layout/kbd-shortcuts.json +178 -0
  525. package/patterns/layout/kbd-shortcuts.yaml +43 -0
  526. package/patterns/layout/markdown-editor.json +126 -0
  527. package/patterns/layout/markdown-editor.yaml +46 -0
  528. package/patterns/layout/music-player.json +107 -0
  529. package/patterns/layout/music-player.yaml +42 -0
  530. package/patterns/layout/pagination-demo.json +55 -0
  531. package/patterns/layout/pagination-demo.yaml +44 -0
  532. package/patterns/layout/pagination-table.json +107 -0
  533. package/patterns/layout/pagination-table.yaml +59 -0
  534. package/patterns/layout/popover-demo.json +71 -0
  535. package/patterns/layout/popover-demo.yaml +46 -0
  536. package/patterns/layout/popover-menu.json +117 -0
  537. package/patterns/layout/popover-menu.yaml +45 -0
  538. package/patterns/layout/pricing-tiers.json +354 -0
  539. package/patterns/layout/pricing-tiers.yaml +52 -0
  540. package/patterns/layout/product-card.json +89 -0
  541. package/patterns/layout/product-card.yaml +46 -0
  542. package/patterns/layout/product-carousel.json +251 -0
  543. package/patterns/layout/product-carousel.yaml +47 -0
  544. package/patterns/layout/social-post.json +119 -0
  545. package/patterns/layout/social-post.yaml +45 -0
  546. package/patterns/layout/split-pane.json +69 -0
  547. package/patterns/layout/split-pane.yaml +41 -0
  548. package/patterns/layout/swiper-carousel.json +97 -0
  549. package/patterns/layout/swiper-carousel.yaml +55 -0
  550. package/patterns/layout/tabs-panels.json +173 -0
  551. package/patterns/layout/tabs-panels.yaml +46 -0
  552. package/patterns/layout/team-carousel.json +332 -0
  553. package/patterns/layout/team-carousel.yaml +50 -0
  554. package/patterns/layout/testimonials-carousel.json +281 -0
  555. package/patterns/layout/testimonials-carousel.yaml +50 -0
  556. package/patterns/layout/testimonials-grid.json +286 -0
  557. package/patterns/layout/testimonials-grid.yaml +46 -0
  558. package/patterns/layout/toolbar-buttons.json +179 -0
  559. package/patterns/layout/toolbar-buttons.yaml +47 -0
  560. package/patterns/layout/tooltip-buttons.json +127 -0
  561. package/patterns/layout/tooltip-buttons.yaml +44 -0
  562. package/patterns/layout/user-profile.json +123 -0
  563. package/patterns/layout/user-profile.yaml +45 -0
  564. package/patterns/layout/video-player.json +95 -0
  565. package/patterns/layout/video-player.yaml +45 -0
  566. package/patterns/layout/weather-widget.json +127 -0
  567. package/patterns/layout/weather-widget.yaml +46 -0
  568. package/patterns/navigation/_domain.json +25 -0
  569. package/patterns/navigation/breadcrumb-nav.json +57 -0
  570. package/patterns/navigation/breadcrumb-nav.yaml +39 -0
  571. package/patterns/navigation/nav-menu-icons.json +71 -0
  572. package/patterns/navigation/nav-menu-icons.yaml +38 -0
  573. package/patterns/navigation/section-subnav.json +79 -0
  574. package/patterns/navigation/segmented-control.json +56 -0
  575. package/patterns/navigation/segmented-control.yaml +40 -0
  576. package/patterns/navigation/sidebar-nav.json +207 -0
  577. package/patterns/navigation/sidebar-nav.yaml +44 -0
  578. package/patterns/settings/settings-page.json +280 -0
  579. package/patterns/settings/settings-page.yaml +51 -0
@@ -0,0 +1,57 @@
1
+ {
2
+ "$schema": "../_schema.json",
3
+ "name": "api-keys",
4
+ "version": 1,
5
+ "kind": "composition",
6
+ "domain": "settings",
7
+ "description": "API keys / tokens management — list of masked tokens with scopes, last-used, status; plus create flow and rotate/revoke actions. Stripe/Vercel/OpenAI-style developer dashboard pattern.",
8
+ "tags": { "purpose": ["developer", "api-keys", "tokens", "secrets", "rbac"], "complexity": "composed", "layout": "list" },
9
+ "keywords": ["api keys", "tokens", "secrets", "bearer", "rotate", "revoke", "scopes", "stripe", "openai", "vercel", "developer", "sdk"],
10
+ "related": ["webhooks", "team-members-rbac", "session-device-mgmt"],
11
+
12
+ "template": [
13
+ { "id": "root", "component": "Card", "children": ["hdr", "sec", "ftr"] },
14
+ { "id": "hdr", "$fragment": "card-header-with-description",
15
+ "bindings": { "heading": "API keys", "description": "Secrets are shown once at creation. Treat like a password." } },
16
+ { "id": "sec", "component": "Section", "children": ["alert", "stats", "keys-toolbar", "table", "keys-title", "keys-list", "newkey-name"] },
17
+
18
+ { "id": "keys-toolbar", "component": "Toolbar", "children": ["kt-search", "kt-new"] },
19
+ { "id": "kt-search", "component": "Search", "placeholder": "Search keys by name or scope…" },
20
+ { "id": "kt-new", "component": "Button", "variant": "primary", "icon": "plus", "text": "Create new API key" },
21
+
22
+ { "id": "alert", "component": "Alert", "variant": "warning", "icon": "warning", "title": "Secret shown only once at creation", "description": "Copy your new key immediately — we never display the full value again. Rotate compromised keys; Revoke to permanently invalidate." },
23
+
24
+ { "id": "stats", "component": "Row", "children": ["s1", "s2", "s3", "s4"], "gap": "4" },
25
+ { "id": "s1", "$fragment": "stat-card", "bindings": { "label": "Live keys", "value": "3", "trend": "sk_live_*" } },
26
+ { "id": "s2", "$fragment": "stat-card", "bindings": { "label": "Test keys", "value": "2", "trend": "sk_test_*" } },
27
+ { "id": "s3", "$fragment": "stat-card", "bindings": { "label": "Requests (24h)", "value": "184k", "trend": "+12% vs yesterday" } },
28
+ { "id": "s4", "$fragment": "stat-card", "bindings": { "label": "Last rotation", "value": "14d ago", "trend": "Next due in 76d" } },
29
+
30
+ { "id": "table", "component": "Table",
31
+ "columns": [
32
+ { "key": "name", "label": "Name", "type": "text", "flex": 2 },
33
+ { "key": "token", "label": "Token", "type": "text", "flex": 2 },
34
+ { "key": "scopes", "label": "Scopes", "type": "text", "flex": 2 },
35
+ { "key": "lastUsed", "label": "Last used", "type": "text", "width": 120 },
36
+ { "key": "status", "label": "Status", "type": "badge", "width": 100 }
37
+ ],
38
+ "data": [
39
+ { "name": "Production backend", "token": "sk_live_••••2Kj", "scopes": "read_all, write_charges", "lastUsed": "3 min ago", "status": "Active" },
40
+ { "name": "CI / deploy hooks", "token": "sk_live_••••8Fx", "scopes": "read_deploys, write_deploys", "lastUsed": "2 hours ago", "status": "Active" },
41
+ { "name": "Legacy webhook relay", "token": "sk_live_••••p1A", "scopes": "read_all", "lastUsed": "Yesterday", "status": "Rotate" },
42
+ { "name": "Staging QA", "token": "sk_test_••••qT3", "scopes": "read_all, write_all", "lastUsed": "1 hour ago", "status": "Test" }
43
+ ]
44
+ },
45
+
46
+ { "id": "keys-title", "component": "Text", "variant": "section", "textContent": "Keys — copy, rotate, revoke" },
47
+ { "id": "keys-list", "component": "Column", "gap": "2", "children": ["k1", "k2", "k3"] },
48
+ { "id": "k1", "$fragment": "credential-entry-atom", "bindings": { "keyName": "Production backend", "maskedToken": "sk_live_****abc1", "scopes": "read_all · write_charges", "scopeVariant": "info", "lastUsed": "used 3 min ago" } },
49
+ { "id": "k2", "$fragment": "credential-entry-atom", "bindings": { "keyName": "CI / deploy hooks", "maskedToken": "sk_live_****d9f2", "scopes": "read_deploys · write_deploys", "scopeVariant": "info", "lastUsed": "used 2h ago" } },
50
+ { "id": "k3", "$fragment": "credential-entry-atom", "bindings": { "keyName": "Legacy webhook relay", "maskedToken": "sk_live_****7e4a", "scopes": "read_all", "scopeVariant": "warning", "lastUsed": "used yesterday" } },
51
+
52
+ { "id": "newkey-name", "$fragment": "labeled-input", "bindings": { "label": "New key name", "name": "new_key_name", "placeholder": "e.g. Production backend" } },
53
+
54
+ { "id": "ftr", "$fragment": "footer-cancel-save",
55
+ "bindings": { "cancelLabel": "View docs", "confirmLabel": "Create new key" } }
56
+ ]
57
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "$schema": "../_schema.json",
3
+ "name": "feature-flags",
4
+ "version": 1,
5
+ "kind": "composition",
6
+ "domain": "settings",
7
+ "description": "Feature flag management list with rollout percentage sliders, environment targeting across dev/staging/prod, and per-flag rule builder. Shows boolean and multivariate flags with kill-switch controls.",
8
+ "tags": {
9
+ "purpose": ["feature-flags", "rollout", "experimentation", "ab-testing", "toggles"],
10
+ "complexity": "complex",
11
+ "layout": "stacked"
12
+ },
13
+ "keywords": [
14
+ "feature flag", "feature flags", "feature toggle", "launch darkly",
15
+ "rollout percentage", "rollout slider", "environment targeting",
16
+ "dev staging prod", "kill switch", "gradual rollout",
17
+ "ab test", "multivariate", "experiment",
18
+ "targeting rules", "rule builder", "user segments",
19
+ "boolean flag", "string flag", "config flag"
20
+ ],
21
+ "related": ["settings-page", "team-members-rbac"],
22
+
23
+ "template": [
24
+ { "id": "root", "component": "Card", "children": ["hdr", "sec", "ftr"] },
25
+ { "id": "hdr", "$fragment": "card-header-with-description",
26
+ "bindings": { "heading": "Feature flags", "description": "14 flags across dev, staging, prod · rollout %, environment targeting, rule-based segments, kill-switch controls." } },
27
+ { "id": "sec", "component": "Section", "children": ["col"] },
28
+ { "id": "col", "component": "Column", "gap": "3", "children": ["search", "flag-list"] },
29
+ { "id": "search", "component": "Search", "placeholder": "Search flags…" },
30
+
31
+ { "id": "flag-list", "component": "Column", "gap": "4", "children": ["fl1", "fl2", "fl3", "fl4", "fl5"] },
32
+ { "id": "fl1", "$fragment": "rollout-entry-atom", "bindings": { "flagName": "new-checkout-v2", "flagDescription": "Gradual rollout · multivariate flag", "enabled": true, "devPct": "dev 100%", "devVariant": "success", "stagingPct": "staging 100%", "stagingVariant": "success", "prodPct": "prod 25%", "prodVariant": "warning", "rolloutValue": 25 } },
33
+ { "id": "fl2", "$fragment": "rollout-entry-atom", "bindings": { "flagName": "ai-copilot", "flagDescription": "prod 50% · staging 100% · dev 100%", "enabled": true, "devPct": "dev 100%", "devVariant": "success", "stagingPct": "staging 100%", "stagingVariant": "success", "prodPct": "prod 50%", "prodVariant": "success", "rolloutValue": 50 } },
34
+ { "id": "fl3", "$fragment": "rollout-entry-atom", "bindings": { "flagName": "ws-push-notifications", "flagDescription": "Kill-switched across all environments", "enabled": false, "devPct": "dev 0%", "devVariant": "danger", "stagingPct": "staging 0%", "stagingVariant": "danger", "prodPct": "prod 0%", "prodVariant": "danger", "rolloutValue": 0 } },
35
+ { "id": "fl4", "$fragment": "rollout-entry-atom", "bindings": { "flagName": "dark-mode-auto", "flagDescription": "Fully rolled out in all environments", "enabled": true, "devPct": "dev 100%", "devVariant": "success", "stagingPct": "staging 100%", "stagingVariant": "success", "prodPct": "prod 100%", "prodVariant": "success", "rolloutValue": 100 } },
36
+ { "id": "fl5", "$fragment": "rollout-entry-atom", "bindings": { "flagName": "beta-analytics-v3", "flagDescription": "prod 10% · staging 75% · gradual rollout", "enabled": true, "devPct": "dev 100%", "devVariant": "success", "stagingPct": "staging 75%", "stagingVariant": "warning", "prodPct": "prod 10%", "prodVariant": "warning", "rolloutValue": 10 } },
37
+
38
+ { "id": "ftr", "component": "Footer", "children": ["ftr-text"] },
39
+ { "id": "ftr-text", "component": "Text", "variant": "caption", "color": "muted", "textContent": "Last evaluated 2s ago · 14 flags · 3 kill-switched" }
40
+ ]
41
+ }
@@ -0,0 +1,66 @@
1
+ {
2
+ "$schema": "../_schema.json",
3
+ "name": "integrations-gallery",
4
+ "version": 1,
5
+ "kind": "composition",
6
+ "domain": "settings",
7
+ "description": "Integrations marketplace gallery with category filter chips, featured row, connectable services grid showing install/connect/disconnect states, and search. Links Acme to Slack, GitHub, Stripe, and more.",
8
+ "tags": {
9
+ "purpose": ["integrations", "marketplace", "apps", "connections", "oauth"],
10
+ "complexity": "complex",
11
+ "layout": "grid"
12
+ },
13
+ "keywords": [
14
+ "integrations", "integration gallery", "marketplace",
15
+ "connect service", "install integration", "disconnect",
16
+ "app directory", "app store", "plugins",
17
+ "oauth consent", "third party apps", "connectors",
18
+ "slack integration", "github integration", "stripe integration",
19
+ "connected apps", "api integrations", "featured integrations"
20
+ ],
21
+ "related": ["settings-page", "search-filters"],
22
+
23
+ "template": [
24
+ { "id": "root", "component": "Card", "children": ["hdr", "sec", "ftr"] },
25
+ { "id": "hdr", "$fragment": "card-header-with-description",
26
+ "bindings": { "heading": "Integrations", "description": "Connect Acme to the tools your team uses · 84 integrations across communication, dev tools, analytics, CRM, and more." } },
27
+ { "id": "sec", "component": "Section", "children": ["col"] },
28
+ { "id": "col", "component": "Column", "gap": "5", "children": ["toolbar", "featured-label", "integration-grid"] },
29
+
30
+ { "id": "toolbar", "component": "Toolbar", "children": ["cat-tabs", "tb-search"] },
31
+ { "id": "cat-tabs", "component": "Tabs", "value": "all", "children": ["tab-all", "tab-comm", "tab-an", "tab-store"] },
32
+ { "id": "tab-all", "component": "Tab", "value": "all", "text": "All" },
33
+ { "id": "tab-comm", "component": "Tab", "value": "comm", "text": "Communication" },
34
+ { "id": "tab-an", "component": "Tab", "value": "analytics", "text": "Analytics" },
35
+ { "id": "tab-store", "component": "Tab", "value": "storage", "text": "Storage" },
36
+ { "id": "tb-search", "component": "Search", "placeholder": "Search integrations…" },
37
+
38
+ { "id": "integration-grid", "component": "Grid", "columns": "3", "gap": "4", "children": ["ig1", "ig2", "ig3", "ig4", "ig5", "ig6", "ig7", "ig8", "ig9", "ig10", "ig11", "ig12"] },
39
+
40
+ { "id": "ig1", "$fragment": "marketplace-tile-atom", "bindings": { "name": "Slack", "avatarInitials": "Slack", "category": "Communication", "categoryVariant": "info", "description": "Post notifications, create channels, collaborate in threads.", "ctaLabel": "Connected", "ctaVariant": "outline", "ctaIcon": "check" } },
41
+
42
+ { "id": "ig2", "$fragment": "marketplace-tile-atom", "bindings": { "name": "GitHub", "avatarInitials": "GitHub", "category": "Developer tools", "categoryVariant": "info", "description": "Link commits, PRs, and deploys to work items.", "ctaLabel": "Connected", "ctaVariant": "outline", "ctaIcon": "check" } },
43
+
44
+ { "id": "ig3", "$fragment": "marketplace-tile-atom", "bindings": { "name": "Linear", "avatarInitials": "Linear", "category": "Productivity", "categoryVariant": "info", "description": "Sync issues, automate status, mirror assignees.", "ctaLabel": "Install", "ctaVariant": "primary" } },
45
+
46
+ { "id": "ig4", "$fragment": "marketplace-tile-atom", "bindings": { "name": "Stripe", "avatarInitials": "Stripe", "category": "Payments", "categoryVariant": "info", "description": "Sync customers, subscriptions, invoices.", "ctaLabel": "Connected", "ctaVariant": "outline", "ctaIcon": "check" } },
47
+
48
+ { "id": "ig5", "$fragment": "marketplace-tile-atom", "bindings": { "name": "Zoom", "avatarInitials": "Zoom", "category": "Communication", "categoryVariant": "info", "description": "Schedule meetings directly from threads.", "ctaLabel": "Install", "ctaVariant": "primary" } },
49
+
50
+ { "id": "ig6", "$fragment": "marketplace-tile-atom", "bindings": { "name": "Figma", "avatarInitials": "Figma", "category": "Productivity", "categoryVariant": "info", "description": "Embed frames and auto-sync comments.", "ctaLabel": "Install", "ctaVariant": "primary" } },
51
+
52
+ { "id": "ig7", "$fragment": "marketplace-tile-atom", "bindings": { "name": "Datadog", "avatarInitials": "Datadog", "category": "Analytics", "categoryVariant": "info", "description": "Stream metrics, traces, and logs.", "ctaLabel": "Install", "ctaVariant": "primary" } },
53
+
54
+ { "id": "ig8", "$fragment": "marketplace-tile-atom", "bindings": { "name": "AWS S3", "avatarInitials": "AWS S3", "category": "Storage", "categoryVariant": "info", "description": "Archive exports and media to S3 buckets.", "ctaLabel": "Connected", "ctaVariant": "outline", "ctaIcon": "check" } },
55
+
56
+ { "id": "ig9", "$fragment": "marketplace-tile-atom", "bindings": { "name": "Notion", "avatarInitials": "Notion", "category": "Productivity", "categoryVariant": "info", "description": "Embed docs inline and push mentions to Notion pages.", "ctaLabel": "Install", "ctaVariant": "primary" } },
57
+ { "id": "ig10", "$fragment": "marketplace-tile-atom", "bindings": { "name": "Intercom", "avatarInitials": "Intercom", "category": "Support", "categoryVariant": "info", "description": "Two-way sync with Intercom conversations and customers.", "ctaLabel": "Connected", "ctaVariant": "outline", "ctaIcon": "check" } },
58
+ { "id": "ig11", "$fragment": "marketplace-tile-atom", "bindings": { "name": "Salesforce", "avatarInitials": "Salesforce", "category": "CRM", "categoryVariant": "info", "description": "Sync accounts, opportunities, and contacts with Salesforce.", "ctaLabel": "Install", "ctaVariant": "primary" } },
59
+ { "id": "ig12", "$fragment": "marketplace-tile-atom", "bindings": { "name": "PagerDuty", "avatarInitials": "PagerDuty", "category": "Monitoring", "categoryVariant": "info", "description": "Escalate incidents and on-call rotations from alerts.", "ctaLabel": "Install", "ctaVariant": "primary" } },
60
+
61
+ { "id": "featured-label", "component": "Text", "variant": "caption", "textContent": "Available integrations" },
62
+
63
+ { "id": "ftr", "component": "Footer", "children": ["ftr-text"] },
64
+ { "id": "ftr-text", "component": "Text", "variant": "caption", "color": "muted", "textContent": "Showing 6 of 84 integrations · Request new integration" }
65
+ ]
66
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "$schema": "../_schema.json",
3
+ "name": "session-device-mgmt",
4
+ "version": 1,
5
+ "kind": "composition",
6
+ "domain": "settings",
7
+ "description": "Active sessions + device management — list of signed-in devices with OS, IP, last-seen, current-device marker, revoke actions, and bulk 'sign out all other sessions'. Google/1Password/GitHub account security pattern.",
8
+ "tags": { "purpose": ["security", "sessions", "devices", "account"], "complexity": "composed", "layout": "list" },
9
+ "keywords": ["sessions", "devices", "security", "sign out", "revoke", "trusted devices", "2fa", "logout", "account", "activity"],
10
+ "related": ["team-members-rbac", "api-keys"],
11
+
12
+ "template": [
13
+ { "id": "root", "component": "Card", "children": ["hdr", "sec", "ftr"] },
14
+ { "id": "hdr", "$fragment": "card-header-with-description",
15
+ "bindings": { "heading": "Active sessions", "description": "Review devices using your account. Revoke any you don't recognize." } },
16
+ { "id": "sec", "component": "Section", "children": ["stats", "list", "sessions-title", "sessions-list", "signout-all"] },
17
+
18
+ { "id": "stats", "component": "Row", "children": ["s1", "s2", "s3"], "gap": "4" },
19
+ { "id": "s1", "$fragment": "stat-card", "bindings": { "label": "Active sessions", "value": "5", "trend": "Across 3 cities" } },
20
+ { "id": "s2", "$fragment": "stat-card", "bindings": { "label": "Trusted devices", "value": "3", "trend": "Skip 2FA prompts" } },
21
+ { "id": "s3", "$fragment": "stat-card", "bindings": { "label": "Last password change", "value": "42 days ago", "trend": "Rotate every 90d" } },
22
+
23
+ { "id": "list", "component": "Table",
24
+ "columns": [
25
+ { "key": "device", "label": "Device", "type": "text", "flex": 2 },
26
+ { "key": "location", "label": "Location", "type": "text", "flex": 2 },
27
+ { "key": "ip", "label": "IP", "type": "text", "width": 140 },
28
+ { "key": "lastSeen", "label": "Last active", "type": "text", "width": 140 },
29
+ { "key": "status", "label": "Status", "type": "badge", "width": 140 }
30
+ ],
31
+ "data": [
32
+ { "device": "MacBook Pro · Chrome 128", "location": "San Francisco, CA", "ip": "73.15.248.12", "lastSeen": "Just now", "status": "This device" },
33
+ { "device": "iPhone 15 · Acme iOS 4.12", "location": "San Francisco, CA", "ip": "73.15.248.12", "lastSeen": "14 min ago", "status": "Trusted" },
34
+ { "device": "ThinkPad X1 · Firefox 123", "location": "Oakland, CA", "ip": "73.15.248.8", "lastSeen": "2 days ago", "status": "Trusted" },
35
+ { "device": "iPad Pro · Safari", "location": "Los Angeles, CA", "ip": "98.148.22.174", "lastSeen": "6 days ago", "status": "Active" },
36
+ { "device": "Unknown Windows 11 · Firefox", "location": "Amsterdam, Netherlands", "ip": "198.51.100.42", "lastSeen": "4 hours ago", "status": "Unrecognized" }
37
+ ]
38
+ },
39
+
40
+ { "id": "sessions-title", "component": "Text", "variant": "section", "textContent": "Devices — revoke unrecognized sessions" },
41
+ { "id": "sessions-list", "component": "Column", "gap": "2", "children": ["sd1", "sd2", "sd3", "sd4"] },
42
+ { "id": "sd1", "$fragment": "signed-in-entry-atom", "bindings": { "deviceIcon": "laptop", "deviceName": "MacBook Pro", "deviceMeta": "Chrome 128 · macOS 14.4", "ipAddress": "73.15.248.12 · San Francisco", "lastSeen": "Active now", "badgeLabel": "Current device", "badgeVariant": "success", "revokeLabel": "" } },
43
+ { "id": "sd2", "$fragment": "signed-in-entry-atom", "bindings": { "deviceIcon": "device-mobile", "deviceName": "iPhone 15", "deviceMeta": "Acme iOS 4.12", "ipAddress": "73.15.248.12 · San Francisco", "lastSeen": "14 min ago", "badgeLabel": "Trusted", "badgeVariant": "info" } },
44
+ { "id": "sd3", "$fragment": "signed-in-entry-atom", "bindings": { "deviceIcon": "laptop", "deviceName": "ThinkPad X1", "deviceMeta": "Firefox 123 · Ubuntu 24.04", "ipAddress": "73.15.248.8 · Oakland", "lastSeen": "2 days ago", "badgeLabel": "Trusted", "badgeVariant": "info" } },
45
+ { "id": "sd4", "$fragment": "signed-in-entry-atom", "bindings": { "deviceIcon": "warning", "deviceName": "Unknown Windows 11", "deviceMeta": "Firefox · Unrecognized", "ipAddress": "198.51.100.42 · Amsterdam", "lastSeen": "4 hours ago", "badgeLabel": "Unrecognized", "badgeVariant": "danger" } },
46
+
47
+ { "id": "signout-all", "component": "Button", "variant": "danger", "icon": "sign-out", "text": "Sign out all other sessions", "block": true },
48
+
49
+ { "id": "ftr", "$fragment": "footer-cancel-save",
50
+ "bindings": { "cancelLabel": "View activity log", "confirmLabel": "Sign out all other sessions" } }
51
+ ]
52
+ }
@@ -0,0 +1,47 @@
1
+ {
2
+ "$schema": "../_schema.json",
3
+ "name": "usage-quota-meter",
4
+ "version": 1,
5
+ "kind": "composition",
6
+ "domain": "settings",
7
+ "description": "Usage and quota meter showing bandwidth, seats, compute, and storage consumption with threshold indicators at 50%, 80%, and 100% (overage). Displays per-resource progress bars, current plan, billing cycle, and upgrade CTA.",
8
+ "tags": {
9
+ "purpose": ["usage", "quota", "billing", "limits", "metering"],
10
+ "complexity": "composed",
11
+ "layout": "stacked"
12
+ },
13
+ "keywords": [
14
+ "usage quota", "quota meter", "bandwidth usage", "seat usage",
15
+ "compute usage", "storage usage", "api requests used",
16
+ "plan limits", "monthly usage", "billing cycle",
17
+ "overage", "over quota", "threshold warning",
18
+ "upgrade plan", "usage dashboard", "metered billing",
19
+ "consumption", "cap", "rate limit"
20
+ ],
21
+ "related": ["billing-dashboard", "pricing-table"],
22
+
23
+ "template": [
24
+ { "id": "root", "component": "Card", "children": ["hdr", "sec", "ftr"] },
25
+ { "id": "hdr", "$fragment": "card-header-with-description",
26
+ "bindings": { "heading": "Current usage", "description": "Billing cycle Apr 01 – Apr 30 · resets in 11 days · Pro plan ($29/mo)." } },
27
+ { "id": "sec", "component": "Section", "children": ["col"] },
28
+ { "id": "col", "component": "Column", "gap": "5", "children": ["m1", "d1", "m2", "d2", "m3", "d3", "m4", "d4", "m5", "alert"] },
29
+
30
+ { "id": "m1", "$fragment": "labeled-progress", "bindings": { "label": "Bandwidth · 820 GB of 1,000 GB (82%)", "value": 82 } },
31
+ { "id": "d1", "component": "Divider" },
32
+ { "id": "m2", "$fragment": "labeled-progress", "bindings": { "label": "Seats · 29 of 50 (58%)", "value": 58 } },
33
+ { "id": "d2", "component": "Divider" },
34
+ { "id": "m3", "$fragment": "labeled-progress", "bindings": { "label": "Compute · 342 of 1,000 minutes (34%)", "value": 34 } },
35
+ { "id": "d3", "component": "Divider" },
36
+ { "id": "m4", "$fragment": "labeled-progress", "bindings": { "label": "Storage · 103 GB of 100 GB (OVER 103%)", "value": 100 } },
37
+ { "id": "d4", "component": "Divider" },
38
+ { "id": "m5", "$fragment": "labeled-progress", "bindings": { "label": "API requests · 124K of 1M (12%)", "value": 12 } },
39
+
40
+ { "id": "alert", "component": "Alert", "variant": "warning", "icon": "warning", "title": "Approaching bandwidth limit", "description": "At the current rate you'll exceed the 1,000 GB included quota by April 27. Overage is billed at $0.05/GB. Upgrade to Team for a 5 TB cap." },
41
+
42
+ { "id": "ftr", "component": "Footer", "children": ["ftr-row"] },
43
+ { "id": "ftr-row", "component": "Row", "gap": "2", "children": ["ftr-hist", "ftr-up"] },
44
+ { "id": "ftr-hist", "component": "Button", "variant": "outline", "icon": "chart-line-up", "text": "Usage history" },
45
+ { "id": "ftr-up", "component": "Button", "variant": "primary", "icon": "arrow-up", "text": "Upgrade to Team" }
46
+ ]
47
+ }
@@ -0,0 +1,62 @@
1
+ {
2
+ "$schema": "../_schema.json",
3
+ "name": "webhooks",
4
+ "version": 1,
5
+ "kind": "composition",
6
+ "domain": "settings",
7
+ "description": "Webhook endpoints management — configured URLs with subscribed events, signing secret, success rate, plus delivery log with HTTP status codes and retry counts. Stripe/Vercel/GitHub developer pattern.",
8
+ "tags": { "purpose": ["developer", "webhooks", "events", "delivery-log"], "complexity": "composed", "layout": "list" },
9
+ "keywords": ["webhooks", "endpoints", "events", "delivery", "retry", "signing secret", "http", "stripe", "github", "integration"],
10
+ "related": ["api-keys", "team-members-rbac"],
11
+
12
+ "template": [
13
+ { "id": "root", "component": "Card", "children": ["hdr", "sec", "ftr"] },
14
+ { "id": "hdr", "$fragment": "card-header-with-description",
15
+ "bindings": { "heading": "Webhook endpoints", "description": "POST events to your URLs. Retry up to 3 days with exponential backoff." } },
16
+ { "id": "sec", "component": "Section", "children": ["stats", "newform", "endpoints", "log"] },
17
+
18
+ { "id": "newform", "component": "Column", "gap": "3", "children": ["new-url", "new-desc"] },
19
+ { "id": "new-url", "$fragment": "labeled-input", "bindings": { "label": "Endpoint URL", "name": "endpoint_url", "type": "url", "placeholder": "https://api.acme.io/webhooks/stripe" } },
20
+ { "id": "new-desc", "$fragment": "labeled-textarea", "bindings": { "label": "Description & subscribed events", "name": "endpoint_description", "placeholder": "Subscribed events (e.g. charge.*, invoice.paid) and notes about the destination service.", "rows": 3 } },
21
+
22
+ { "id": "stats", "component": "Row", "children": ["s1", "s2", "s3", "s4"], "gap": "4" },
23
+ { "id": "s1", "$fragment": "stat-card", "bindings": { "label": "Active endpoints", "value": "4", "trend": "3 live · 1 test" } },
24
+ { "id": "s2", "$fragment": "stat-card", "bindings": { "label": "Events (24h)", "value": "12,482", "trend": "+8.2%" } },
25
+ { "id": "s3", "$fragment": "stat-card", "bindings": { "label": "Success rate", "value": "99.81%", "trend": "Above 99% target" } },
26
+ { "id": "s4", "$fragment": "stat-card", "bindings": { "label": "Failing now", "value": "1", "trend": "legacy.acme.io" } },
27
+
28
+ { "id": "endpoints", "component": "Table",
29
+ "columns": [
30
+ { "key": "url", "label": "URL", "type": "text", "flex": 3 },
31
+ { "key": "events", "label": "Events", "type": "text", "flex": 2 },
32
+ { "key": "status", "label": "Status", "type": "badge", "width": 100 },
33
+ { "key": "success", "label": "24h success", "type": "text", "width": 120 }
34
+ ],
35
+ "data": [
36
+ { "url": "https://api.acme.io/webhooks/stripe", "events": "charge.*, invoice.*", "status": "Enabled", "success": "100.0%" },
37
+ { "url": "https://ops.acme.io/hooks/deploys", "events": "deploy.started, deploy.finished", "status": "Enabled", "success": "99.94%" },
38
+ { "url": "https://legacy.acme.io/webhook", "events": "user.created", "status": "Failing", "success": "78.4%" },
39
+ { "url": "https://staging.acme.io/hooks/test", "events": "*", "status": "Test", "success": "100.0%" }
40
+ ]
41
+ },
42
+
43
+ { "id": "log", "component": "Table",
44
+ "columns": [
45
+ { "key": "status", "label": "Status", "type": "badge", "width": 80 },
46
+ { "key": "event", "label": "Event", "type": "text", "flex": 2 },
47
+ { "key": "latency", "label": "Latency", "type": "text", "width": 100 },
48
+ { "key": "retries", "label": "Retries", "type": "text", "width": 80 },
49
+ { "key": "when", "label": "When", "type": "text", "width": 120 }
50
+ ],
51
+ "data": [
52
+ { "status": "200", "event": "charge.succeeded", "latency": "142ms", "retries": "0", "when": "2 sec ago" },
53
+ { "status": "200", "event": "invoice.paid", "latency": "188ms", "retries": "0", "when": "14 sec ago" },
54
+ { "status": "408", "event": "user.created", "latency": "5,002ms", "retries": "2/5", "when": "1 min ago" },
55
+ { "status": "500", "event": "customer.subscription.deleted", "latency": "320ms", "retries": "5/5", "when": "4 min ago" }
56
+ ]
57
+ },
58
+
59
+ { "id": "ftr", "$fragment": "footer-cancel-save",
60
+ "bindings": { "cancelLabel": "View event log", "confirmLabel": "Add endpoint" } }
61
+ ]
62
+ }
@@ -0,0 +1,116 @@
1
+ # AdiaUI Training Data — Visual Audit Report (REVISED)
2
+ ## April 15, 2026
3
+
4
+ ### CRITICAL FINDING
5
+ The initial audit used Python's http.server which cannot resolve bare ES module specifiers
6
+ (`@core/element.js`). ALL components were failing to register. After switching to Vite
7
+ (the project's actual dev server), most patterns render correctly.
8
+
9
+ **Lesson: Always use `npm run dev` (Vite) to view training patterns.**
10
+
11
+ ### Rating Scale
12
+ - 1/5: Broken / essentially blank
13
+ - 2/5: Renders but major structural problems
14
+ - 3/5: Functional but needs polish or more variations
15
+ - 4/5: Good quality, minor issues
16
+ - 5/5: Production-ready golden example
17
+
18
+ ---
19
+
20
+ ## REVISED SCORES (with Vite)
21
+
22
+ ### ⭐⭐⭐⭐⭐ (5/5) — Production quality
23
+ | Pattern | Notes |
24
+ |---------|-------|
25
+ | **ui/empty-state** | 8 variants across 5 categories. Icons, copy, CTAs all excellent. |
26
+
27
+ ### ⭐⭐⭐⭐ (4/5) — Good, minor polish needed
28
+ | Pattern | Notes |
29
+ |---------|-------|
30
+ | **ui/auth-login** | 10 variations. Split layout recently fixed. Best ui pattern for variation count. |
31
+ | **prose/auth-login** | 7 rich compositions. Well-structured. |
32
+ | **ui/kanban** | 3-column board. Cards with tags, avatars, add buttons. Clean. |
33
+ | **ui/chat-list** | 8 contacts with search, avatars, timestamps, unread badges. |
34
+ | **ui/data-table** | Full table with checkboxes, sorting, status badges, pagination, toolbar. |
35
+ | **ui/nav-sidebar** | Full sidebar with nav groups, breadcrumbs, stat cards in main area. |
36
+ | **ui/toolbar** | 3 variations (text editor, app bar, canvas). Icons rendering well. |
37
+ | **ui/otp** | 3 variations. OTP inputs render. Timer + progress bar on 2FA variant. |
38
+ | **prose/footer** | Clean link grid, social icons, copyright. Best prose pattern. |
39
+
40
+ ### ⭐⭐⭐½ (3.5/5) — Decent, needs more variations or polish
41
+ | Pattern | Notes |
42
+ |---------|-------|
43
+ | **ui/stat-cards** | 4 sections render fully. Low card-to-background contrast. |
44
+ | **ui/stat-pattern** | 5 sections. Need to verify sparkline rendering. |
45
+ | **ui/accordion-settings** | Accordions work. Toggles hidden in collapsed sections — needs expanded state. |
46
+ | **prose/feature-grid** | Clean 3x2 grid. Missing icons in cards. |
47
+ | **prose/pricing** | Classic 3-tier. Could use toggle (monthly/annual) and comparison table. |
48
+ | **prose/testimonials** | Grid + featured. Clean. Only 1 composition. |
49
+ | **prose/steps** | 4 stepper variations. Missing labels/connectors on some. |
50
+
51
+ ### ⭐⭐⭐ (3/5) — Functional but needs work
52
+ | Pattern | Notes |
53
+ |---------|-------|
54
+ | **ui/breadcrumb** | 4 contextual variations. Separators may be rendering now — verify. |
55
+ | **ui/tooltip-popover** | 6 sections. Need to re-verify icon rendering. |
56
+ | **ui/theme-builder** | Nice concept. Verify slider controls render with Vite. |
57
+ | **ui/tabs-panels** | 2 variations only. Need more. Avatar may render now. |
58
+ | **ui/timeline-pattern** | 4 sections. Need to verify labels/icons with Vite. |
59
+ | **ui/divider** | 5 sections. Need to verify label rendering with Vite. |
60
+ | **ui/drawer-panel** | Decent list UI. Only 1 real pattern. |
61
+ | **ui/code-block** | Need re-audit with Vite — may have syntax highlighting now. |
62
+ | **ui/command-palette** | Need re-audit — search input + icons may render now. |
63
+ | **ui/file-upload** | Need re-audit — dropzone + progress bars may render now. |
64
+ | **ui/embed** | 3 card types. Minimal but functional. |
65
+ | **prose/cta** | Only 1 variation. Needs 2-3 more compositions. |
66
+ | **prose/hero** | Very minimal. 1 variation with placeholder screenshot. |
67
+ | **prose/user-profile** | 3 variations. Avatars should render now. Spacing needs fix. |
68
+
69
+ ### ⭐⭐ (2/5) — Needs significant rework
70
+ | Pattern | Notes |
71
+ |---------|-------|
72
+ | **ui/auth** | Uses tabs + JS. Different paradigm than other training data. Only shows 1 panel. |
73
+ | **ui/ai-input** | Only 1 variation. Needs full family of chat input patterns. |
74
+ | **ui/chat** | Only 1 variation. Needs conversation states, group chat, etc. |
75
+ | **ui/notifications** | Only empty state shown. Needs populated state + variations. |
76
+ | **ui/settings** | Too thin. Needs full settings page with multiple sections. |
77
+ | **ui/skeleton** | Need to verify with Vite. May still be too minimal. |
78
+ | **ui/navbar** | 1 variation only. Needs mobile, sticky, with-dropdown variants. |
79
+
80
+ ---
81
+
82
+ ## STRUCTURAL ISSUES (still valid regardless of rendering)
83
+
84
+ ### 1. Too few variations
85
+ Many ui patterns have only 1-3 variations. auth-login (10) and empty-state (8) are the standard.
86
+ **Target: 4-8 variations per ui pattern.**
87
+
88
+ Patterns needing more variations:
89
+ - ai-input (1), chat (1), navbar (1), notifications (1), settings (1)
90
+ - skeleton (needs clear section labels), chat-list (1), auth (1)
91
+
92
+ ### 2. Prose patterns too thin
93
+ Most prose patterns are single compositions. Should have 2-3 alternative layouts/styles.
94
+ - hero (1), cta (1), user-profile could be richer
95
+
96
+ ### 3. Some patterns duplicate
97
+ - ui/auth vs ui/auth-login: auth uses tabs/JS, auth-login is the proper multi-variation format.
98
+ Consider retiring ui/auth in favor of auth-login.
99
+
100
+ ---
101
+
102
+ ## PRIORITY ACTION PLAN (revised)
103
+
104
+ ### P1 — Re-audit with Vite (fast pass)
105
+ Spot-check remaining ~12 patterns that weren't re-audited to get accurate scores.
106
+ Patterns: skeleton, chat, notifications, settings, breadcrumb, tooltip-popover,
107
+ theme-builder, timeline-pattern, divider, code-block, command-palette, file-upload
108
+
109
+ ### P2 — Expand thin patterns (needs more variations)
110
+ ai-input, chat, navbar, notifications, settings, skeleton → add 4-6 variations each
111
+
112
+ ### P3 — Enrich prose patterns
113
+ hero, cta → add 2-3 more compositions each
114
+
115
+ ### P4 — Polish existing patterns
116
+ Fix spacing, alignment, typography issues found during audit