@decantr/content 3.8.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 (593) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +58 -0
  3. package/archetypes/about-hybrid.json +104 -0
  4. package/archetypes/admin-analytics.json +63 -0
  5. package/archetypes/admin-moderation.json +87 -0
  6. package/archetypes/admin-overview.json +77 -0
  7. package/archetypes/agent-orchestrator.json +178 -0
  8. package/archetypes/agent-studio.json +154 -0
  9. package/archetypes/ai-chatbot.json +121 -0
  10. package/archetypes/ai-transparency.json +140 -0
  11. package/archetypes/alert-manager-pro.json +154 -0
  12. package/archetypes/api-console.json +130 -0
  13. package/archetypes/api-reference.json +95 -0
  14. package/archetypes/appointment-center.json +113 -0
  15. package/archetypes/asset-browser.json +90 -0
  16. package/archetypes/audit-center.json +103 -0
  17. package/archetypes/auth-flow-enterprise.json +140 -0
  18. package/archetypes/auth-flow.json +101 -0
  19. package/archetypes/auth-full.json +199 -0
  20. package/archetypes/auth-gateway.json +76 -0
  21. package/archetypes/billing-portal.json +75 -0
  22. package/archetypes/billing.json +74 -0
  23. package/archetypes/budget-planner.json +63 -0
  24. package/archetypes/budget-transparency.json +117 -0
  25. package/archetypes/buyer-dashboard.json +124 -0
  26. package/archetypes/changelog-center.json +96 -0
  27. package/archetypes/character-library.json +113 -0
  28. package/archetypes/citation-tools.json +98 -0
  29. package/archetypes/cloud-infrastructure.json +253 -0
  30. package/archetypes/cloud-marketing.json +111 -0
  31. package/archetypes/collaboration-hub.json +87 -0
  32. package/archetypes/community-feed.json +131 -0
  33. package/archetypes/config-editor.json +136 -0
  34. package/archetypes/contact.json +82 -0
  35. package/archetypes/content-author.json +121 -0
  36. package/archetypes/content-editor.json +82 -0
  37. package/archetypes/content-newsletter.json +111 -0
  38. package/archetypes/content-reader.json +135 -0
  39. package/archetypes/content-site.json +112 -0
  40. package/archetypes/contract-center.json +120 -0
  41. package/archetypes/cook-mode.json +57 -0
  42. package/archetypes/copilot-settings.json +87 -0
  43. package/archetypes/copilot-workspace.json +110 -0
  44. package/archetypes/creator-content.json +128 -0
  45. package/archetypes/creator-dashboard.json +105 -0
  46. package/archetypes/creator-earnings.json +100 -0
  47. package/archetypes/creator-subscribers.json +99 -0
  48. package/archetypes/creator-tiers.json +76 -0
  49. package/archetypes/crm-dashboard.json +199 -0
  50. package/archetypes/crm-email.json +88 -0
  51. package/archetypes/crm-intelligence.json +85 -0
  52. package/archetypes/crm-meetings.json +95 -0
  53. package/archetypes/customer-loyalty.json +75 -0
  54. package/archetypes/customer-management.json +76 -0
  55. package/archetypes/daily-operations.json +62 -0
  56. package/archetypes/dashboard-core.json +87 -0
  57. package/archetypes/data-repository.json +81 -0
  58. package/archetypes/deal-workspace.json +126 -0
  59. package/archetypes/doc-browser.json +111 -0
  60. package/archetypes/document-editor.json +147 -0
  61. package/archetypes/document-vault.json +119 -0
  62. package/archetypes/ecommerce-admin.json +138 -0
  63. package/archetypes/ecommerce-checkout.json +57 -0
  64. package/archetypes/ecommerce.json +138 -0
  65. package/archetypes/emissions-dashboard.json +136 -0
  66. package/archetypes/engagement-hub.json +157 -0
  67. package/archetypes/eval-suite.json +142 -0
  68. package/archetypes/event-discovery.json +130 -0
  69. package/archetypes/experiment-tracker.json +83 -0
  70. package/archetypes/fan-checkout.json +107 -0
  71. package/archetypes/fan-library.json +99 -0
  72. package/archetypes/fan-storefront.json +106 -0
  73. package/archetypes/financial-dashboard.json +127 -0
  74. package/archetypes/game-catalog.json +120 -0
  75. package/archetypes/gaming-community.json +196 -0
  76. package/archetypes/governance-center.json +82 -0
  77. package/archetypes/health-records.json +111 -0
  78. package/archetypes/instrument-booking.json +82 -0
  79. package/archetypes/inventory-supplies.json +72 -0
  80. package/archetypes/investment-tracker.json +82 -0
  81. package/archetypes/investor-portal.json +124 -0
  82. package/archetypes/job-monitor.json +109 -0
  83. package/archetypes/kitchen-display.json +58 -0
  84. package/archetypes/lab-notebook.json +83 -0
  85. package/archetypes/landing-hero.json +145 -0
  86. package/archetypes/landing-legal.json +101 -0
  87. package/archetypes/landing-resources.json +127 -0
  88. package/archetypes/launch-campaign.json +393 -0
  89. package/archetypes/legal.json +107 -0
  90. package/archetypes/listing-browser.json +160 -0
  91. package/archetypes/log-explorer-pro.json +106 -0
  92. package/archetypes/log-viewer.json +123 -0
  93. package/archetypes/maintenance-center.json +116 -0
  94. package/archetypes/marketing-ai-studio.json +117 -0
  95. package/archetypes/marketing-civic.json +116 -0
  96. package/archetypes/marketing-climate.json +94 -0
  97. package/archetypes/marketing-content.json +109 -0
  98. package/archetypes/marketing-copilot.json +100 -0
  99. package/archetypes/marketing-creator.json +132 -0
  100. package/archetypes/marketing-crm.json +96 -0
  101. package/archetypes/marketing-deal-room.json +100 -0
  102. package/archetypes/marketing-devtool.json +139 -0
  103. package/archetypes/marketing-docs.json +92 -0
  104. package/archetypes/marketing-ecommerce.json +69 -0
  105. package/archetypes/marketing-esports.json +89 -0
  106. package/archetypes/marketing-events.json +89 -0
  107. package/archetypes/marketing-finance.json +69 -0
  108. package/archetypes/marketing-fractional.json +74 -0
  109. package/archetypes/marketing-health.json +100 -0
  110. package/archetypes/marketing-landing.json +65 -0
  111. package/archetypes/marketing-legal.json +86 -0
  112. package/archetypes/marketing-marketplace.json +121 -0
  113. package/archetypes/marketing-observability.json +95 -0
  114. package/archetypes/marketing-pipeline.json +108 -0
  115. package/archetypes/marketing-platform.json +129 -0
  116. package/archetypes/marketing-producer.json +88 -0
  117. package/archetypes/marketing-productivity.json +139 -0
  118. package/archetypes/marketing-realestate.json +101 -0
  119. package/archetypes/marketing-recipe.json +69 -0
  120. package/archetypes/marketing-research.json +72 -0
  121. package/archetypes/marketing-restaurant.json +53 -0
  122. package/archetypes/marketing-saas-v2.json +75 -0
  123. package/archetypes/marketing-saas.json +119 -0
  124. package/archetypes/marketing-swipecircle.json +185 -0
  125. package/archetypes/marketing-video-studio.json +121 -0
  126. package/archetypes/marketplace-messaging.json +106 -0
  127. package/archetypes/matter-management.json +104 -0
  128. package/archetypes/meeting-archive.json +131 -0
  129. package/archetypes/menu-management.json +73 -0
  130. package/archetypes/metrics-monitor.json +164 -0
  131. package/archetypes/metrics-overview-dashboard.json +112 -0
  132. package/archetypes/music-workspace.json +104 -0
  133. package/archetypes/notifications.json +68 -0
  134. package/archetypes/offset-marketplace.json +134 -0
  135. package/archetypes/onboarding-wizard.json +203 -0
  136. package/archetypes/order-fulfillment.json +83 -0
  137. package/archetypes/order-management.json +71 -0
  138. package/archetypes/organizer-dashboard.json +146 -0
  139. package/archetypes/owner-dashboard.json +112 -0
  140. package/archetypes/ownership-dashboard.json +97 -0
  141. package/archetypes/patient-dashboard.json +142 -0
  142. package/archetypes/pipeline-builder.json +116 -0
  143. package/archetypes/pm-financials.json +126 -0
  144. package/archetypes/portfolio-about.json +85 -0
  145. package/archetypes/portfolio-blog.json +71 -0
  146. package/archetypes/portfolio-overview.json +76 -0
  147. package/archetypes/portfolio-showcase.json +71 -0
  148. package/archetypes/portfolio.json +122 -0
  149. package/archetypes/product-management.json +84 -0
  150. package/archetypes/project-library.json +111 -0
  151. package/archetypes/prompt-director.json +118 -0
  152. package/archetypes/prompt-library.json +135 -0
  153. package/archetypes/property-manager.json +158 -0
  154. package/archetypes/qa-workflow.json +116 -0
  155. package/archetypes/recipe-browser.json +83 -0
  156. package/archetypes/recipe-community.json +126 -0
  157. package/archetypes/recipe-creator.json +71 -0
  158. package/archetypes/recipe-social.json +95 -0
  159. package/archetypes/recipefork-ai-kitchen.json +95 -0
  160. package/archetypes/recipefork-auth.json +79 -0
  161. package/archetypes/recipefork-cookbooks.json +104 -0
  162. package/archetypes/recipefork-landing.json +101 -0
  163. package/archetypes/recipefork-profile.json +180 -0
  164. package/archetypes/recipefork-recipe-authoring.json +216 -0
  165. package/archetypes/recipefork-recipe-detail.json +139 -0
  166. package/archetypes/recipefork-social.json +103 -0
  167. package/archetypes/registry-browser.json +121 -0
  168. package/archetypes/render-monitor.json +114 -0
  169. package/archetypes/reporting-center.json +107 -0
  170. package/archetypes/research-workspace.json +127 -0
  171. package/archetypes/restaurant-floor.json +74 -0
  172. package/archetypes/review-system.json +84 -0
  173. package/archetypes/saas-analytics.json +69 -0
  174. package/archetypes/saas-billing-v2.json +77 -0
  175. package/archetypes/saas-dashboard.json +127 -0
  176. package/archetypes/saas-overview.json +77 -0
  177. package/archetypes/sample-inventory.json +80 -0
  178. package/archetypes/scrim-scheduler.json +103 -0
  179. package/archetypes/search-hub.json +87 -0
  180. package/archetypes/secondary-market.json +83 -0
  181. package/archetypes/seller-dashboard.json +169 -0
  182. package/archetypes/server-station.json +61 -0
  183. package/archetypes/service-requests.json +141 -0
  184. package/archetypes/session-rooms.json +92 -0
  185. package/archetypes/settings-full.json +164 -0
  186. package/archetypes/settings.json +67 -0
  187. package/archetypes/source-catalog.json +116 -0
  188. package/archetypes/spatial-workspace.json +115 -0
  189. package/archetypes/sponsor-dashboard.json +103 -0
  190. package/archetypes/storefront-browse.json +97 -0
  191. package/archetypes/supply-chain.json +112 -0
  192. package/archetypes/swipe-feed.json +469 -0
  193. package/archetypes/team-management.json +95 -0
  194. package/archetypes/team-operations.json +131 -0
  195. package/archetypes/team-workspace.json +71 -0
  196. package/archetypes/telehealth-room.json +78 -0
  197. package/archetypes/tenant-manager.json +129 -0
  198. package/archetypes/tenant-payments.json +105 -0
  199. package/archetypes/tenant-portal.json +135 -0
  200. package/archetypes/tenant-switcher-dashboard.json +154 -0
  201. package/archetypes/terminal-home.json +127 -0
  202. package/archetypes/ticket-checkout.json +84 -0
  203. package/archetypes/tool-registry.json +111 -0
  204. package/archetypes/trace-explorer.json +113 -0
  205. package/archetypes/trace-viewer.json +112 -0
  206. package/archetypes/track-library.json +90 -0
  207. package/archetypes/transaction-history.json +77 -0
  208. package/archetypes/transformation-editor.json +117 -0
  209. package/archetypes/usage-billing.json +146 -0
  210. package/archetypes/user-dashboard.json +155 -0
  211. package/archetypes/video-editor.json +158 -0
  212. package/archetypes/vod-review.json +97 -0
  213. package/archetypes/webhook-manager.json +108 -0
  214. package/archetypes/workspace-home.json +105 -0
  215. package/archetypes/workspace-settings.json +140 -0
  216. package/blueprints/agent-marketplace.json +222 -0
  217. package/blueprints/agent-studio.json +291 -0
  218. package/blueprints/ai-copilot-shell.json +163 -0
  219. package/blueprints/ai-native-crm.json +269 -0
  220. package/blueprints/ai-video-studio.json +93 -0
  221. package/blueprints/carbon-ai-portal.json +252 -0
  222. package/blueprints/civic-platform.json +91 -0
  223. package/blueprints/climate-dashboard.json +90 -0
  224. package/blueprints/cloud-platform.json +219 -0
  225. package/blueprints/content-site.json +110 -0
  226. package/blueprints/content-studio.json +120 -0
  227. package/blueprints/creator-monetization-platform.json +373 -0
  228. package/blueprints/data-pipeline-studio.json +263 -0
  229. package/blueprints/deal-room.json +88 -0
  230. package/blueprints/ecommerce-admin.json +253 -0
  231. package/blueprints/ecommerce.json +242 -0
  232. package/blueprints/esports-hq.json +116 -0
  233. package/blueprints/event-community-hub.json +251 -0
  234. package/blueprints/financial-dashboard.json +237 -0
  235. package/blueprints/fractional-ownership.json +89 -0
  236. package/blueprints/gaming-platform.json +171 -0
  237. package/blueprints/health-wellness-portal.json +252 -0
  238. package/blueprints/knowledge-base.json +176 -0
  239. package/blueprints/legal-research.json +90 -0
  240. package/blueprints/multi-tenant-platform.json +257 -0
  241. package/blueprints/observability-platform.json +275 -0
  242. package/blueprints/portfolio.json +164 -0
  243. package/blueprints/producer-studio.json +156 -0
  244. package/blueprints/product-landing.json +112 -0
  245. package/blueprints/property-management-portal.json +384 -0
  246. package/blueprints/realtime-collaboration-workspace.json +300 -0
  247. package/blueprints/recipe-community.json +259 -0
  248. package/blueprints/recipefork.json +194 -0
  249. package/blueprints/registry-platform.json +204 -0
  250. package/blueprints/research-lab.json +92 -0
  251. package/blueprints/restaurant-ops.json +104 -0
  252. package/blueprints/retro-launch-campaign.json +205 -0
  253. package/blueprints/saas-dashboard.json +246 -0
  254. package/blueprints/spatial-collaboration.json +172 -0
  255. package/blueprints/swipecircle.json +253 -0
  256. package/blueprints/terminal-dashboard.json +282 -0
  257. package/blueprints/two-sided-marketplace.json +293 -0
  258. package/dist/index.d.ts +178 -0
  259. package/dist/index.js +582 -0
  260. package/dist/index.js.map +1 -0
  261. package/package.json +75 -0
  262. package/patterns/account-settings.json +149 -0
  263. package/patterns/activity-feed.json +154 -0
  264. package/patterns/adaptive-density-panel.json +130 -0
  265. package/patterns/agent-handoff-zone.json +97 -0
  266. package/patterns/agent-swarm-canvas.json +136 -0
  267. package/patterns/agent-timeline.json +119 -0
  268. package/patterns/alert-rule-builder.json +127 -0
  269. package/patterns/ambient-status-ring.json +125 -0
  270. package/patterns/api-explorer.json +131 -0
  271. package/patterns/api-key-row.json +119 -0
  272. package/patterns/ar-annotation.json +137 -0
  273. package/patterns/arrangement-canvas.json +72 -0
  274. package/patterns/ascii-chart.json +138 -0
  275. package/patterns/audit-trail.json +123 -0
  276. package/patterns/auth-form.json +209 -0
  277. package/patterns/avatar-grid-tile.json +118 -0
  278. package/patterns/backer-progress-console.json +137 -0
  279. package/patterns/backer-wall-ticker.json +127 -0
  280. package/patterns/before-after.json +105 -0
  281. package/patterns/block-toolbar.json +129 -0
  282. package/patterns/blueprint-anatomy.json +112 -0
  283. package/patterns/blueprint-launch-hero.json +113 -0
  284. package/patterns/booking-calendar.json +125 -0
  285. package/patterns/bottom-tab-bar.json +117 -0
  286. package/patterns/breadcrumb-nav.json +111 -0
  287. package/patterns/budget-sankey.json +103 -0
  288. package/patterns/calendar-view.json +143 -0
  289. package/patterns/campaign-marquee-hero.json +167 -0
  290. package/patterns/cap-table.json +121 -0
  291. package/patterns/card-grid.json +202 -0
  292. package/patterns/case-brief-card.json +113 -0
  293. package/patterns/character-sheet.json +102 -0
  294. package/patterns/chart-grid.json +129 -0
  295. package/patterns/chat-header.json +105 -0
  296. package/patterns/chat-input.json +106 -0
  297. package/patterns/chat-message.json +122 -0
  298. package/patterns/chat-thread.json +120 -0
  299. package/patterns/checklist-card.json +96 -0
  300. package/patterns/checkout-flow.json +148 -0
  301. package/patterns/chip-multiselect.json +118 -0
  302. package/patterns/citation-graph.json +118 -0
  303. package/patterns/command-palette.json +115 -0
  304. package/patterns/command-rail.json +123 -0
  305. package/patterns/comment-thread.json +155 -0
  306. package/patterns/comparison-table.json +121 -0
  307. package/patterns/contact-form.json +135 -0
  308. package/patterns/content-card-grid.json +151 -0
  309. package/patterns/content-detail-hero.json +129 -0
  310. package/patterns/content-feed.json +141 -0
  311. package/patterns/content-uploader.json +137 -0
  312. package/patterns/continue-screen-cta.json +135 -0
  313. package/patterns/contract-diff.json +110 -0
  314. package/patterns/contract-explorer.json +119 -0
  315. package/patterns/conversation-list.json +109 -0
  316. package/patterns/creator-profile.json +127 -0
  317. package/patterns/cta-banner.json +103 -0
  318. package/patterns/cta-section.json +122 -0
  319. package/patterns/cta.json +124 -0
  320. package/patterns/data-source-connector.json +131 -0
  321. package/patterns/data-table.json +138 -0
  322. package/patterns/dataset-card.json +127 -0
  323. package/patterns/daw-transport-bar.json +66 -0
  324. package/patterns/deal-pipeline-board.json +124 -0
  325. package/patterns/deal-stage-gates.json +102 -0
  326. package/patterns/depth-layered-canvas.json +105 -0
  327. package/patterns/detail-header.json +140 -0
  328. package/patterns/diff-view.json +122 -0
  329. package/patterns/dividend-ledger.json +120 -0
  330. package/patterns/doc-editor.json +147 -0
  331. package/patterns/document-vault.json +129 -0
  332. package/patterns/drag-sort-list.json +119 -0
  333. package/patterns/earnings-dashboard.json +132 -0
  334. package/patterns/emissions-sankey.json +113 -0
  335. package/patterns/emoji-reaction-bar.json +115 -0
  336. package/patterns/esports-matchday-command.json +132 -0
  337. package/patterns/eval-dashboard.json +131 -0
  338. package/patterns/expense-tracker.json +130 -0
  339. package/patterns/featured-launchpad-list.json +114 -0
  340. package/patterns/features.json +118 -0
  341. package/patterns/file-browser.json +148 -0
  342. package/patterns/filter-bar.json +146 -0
  343. package/patterns/footer.json +115 -0
  344. package/patterns/form-sections.json +180 -0
  345. package/patterns/form.json +190 -0
  346. package/patterns/founder-comic-strip.json +126 -0
  347. package/patterns/generative-card-grid.json +130 -0
  348. package/patterns/gesture-control-overlay.json +134 -0
  349. package/patterns/governance-ballot.json +126 -0
  350. package/patterns/help-modal.json +155 -0
  351. package/patterns/hero-split.json +125 -0
  352. package/patterns/hero.json +227 -0
  353. package/patterns/holographic-control-bar.json +114 -0
  354. package/patterns/hotkey-bar.json +97 -0
  355. package/patterns/how-it-works.json +118 -0
  356. package/patterns/identity-summary.json +115 -0
  357. package/patterns/instrument-schedule.json +131 -0
  358. package/patterns/intake-form-wizard.json +134 -0
  359. package/patterns/intent-radar.json +115 -0
  360. package/patterns/json-viewer.json +129 -0
  361. package/patterns/kanban-board.json +133 -0
  362. package/patterns/kds-ticket-rail.json +133 -0
  363. package/patterns/kpi-grid.json +123 -0
  364. package/patterns/launch-update-log.json +129 -0
  365. package/patterns/launchpad-flow.json +107 -0
  366. package/patterns/leaderboard.json +143 -0
  367. package/patterns/lease-manager.json +129 -0
  368. package/patterns/legal-prose.json +120 -0
  369. package/patterns/live-room-stage.json +63 -0
  370. package/patterns/log-stream.json +150 -0
  371. package/patterns/logo-strip.json +93 -0
  372. package/patterns/maintenance-board.json +127 -0
  373. package/patterns/maintenance-ticket.json +156 -0
  374. package/patterns/map-view.json +140 -0
  375. package/patterns/match-celebration.json +133 -0
  376. package/patterns/matter-card.json +113 -0
  377. package/patterns/mention-popup.json +85 -0
  378. package/patterns/metric-gauge.json +141 -0
  379. package/patterns/mixer-console.json +69 -0
  380. package/patterns/mobile-profile-hero.json +138 -0
  381. package/patterns/moderation-queue-item.json +129 -0
  382. package/patterns/morphing-topology.json +113 -0
  383. package/patterns/namespace-badge.json +93 -0
  384. package/patterns/nav-header.json +110 -0
  385. package/patterns/neural-feedback-loop.json +124 -0
  386. package/patterns/notebook-entry.json +129 -0
  387. package/patterns/notification-center.json +136 -0
  388. package/patterns/offset-cart.json +109 -0
  389. package/patterns/onboarding-wizard.json +130 -0
  390. package/patterns/org-governance-panel.json +101 -0
  391. package/patterns/page-tree.json +143 -0
  392. package/patterns/payment-history.json +130 -0
  393. package/patterns/payout-settings.json +130 -0
  394. package/patterns/permission-matrix.json +129 -0
  395. package/patterns/petition-card.json +106 -0
  396. package/patterns/pipeline-cards.json +99 -0
  397. package/patterns/player-form-tracker.json +111 -0
  398. package/patterns/pledge-checkout-panel.json +145 -0
  399. package/patterns/pnl-dashboard.json +116 -0
  400. package/patterns/post-list.json +147 -0
  401. package/patterns/presence-avatars.json +129 -0
  402. package/patterns/press-kit-shelf.json +132 -0
  403. package/patterns/pricing-usage.json +118 -0
  404. package/patterns/pricing.json +137 -0
  405. package/patterns/producer-split-workbench.json +57 -0
  406. package/patterns/product-box-spec-panel.json +126 -0
  407. package/patterns/product-card.json +120 -0
  408. package/patterns/product-grid.json +140 -0
  409. package/patterns/progress-bar.json +124 -0
  410. package/patterns/prompt-playground.json +129 -0
  411. package/patterns/property-card.json +112 -0
  412. package/patterns/property-detail.json +124 -0
  413. package/patterns/property-grid.json +137 -0
  414. package/patterns/prose-section.json +102 -0
  415. package/patterns/protocol-step.json +128 -0
  416. package/patterns/prototype-demo-bezel.json +137 -0
  417. package/patterns/qa-thread.json +109 -0
  418. package/patterns/quick-start.json +88 -0
  419. package/patterns/recipefork-activity-feed.json +51 -0
  420. package/patterns/recipefork-chef-ingredients-display.json +48 -0
  421. package/patterns/recipefork-chef-ingredients-editor.json +52 -0
  422. package/patterns/recipefork-chef-instruction-editor.json +59 -0
  423. package/patterns/recipefork-chef-instructions-display.json +54 -0
  424. package/patterns/recipefork-cookbook-assignment.json +51 -0
  425. package/patterns/recipefork-cooking-tips-display.json +43 -0
  426. package/patterns/recipefork-cooking-tips-editor.json +46 -0
  427. package/patterns/recipefork-fork-provenance.json +50 -0
  428. package/patterns/recipefork-kitchen-chat.json +103 -0
  429. package/patterns/recipefork-photo-generator.json +123 -0
  430. package/patterns/recipefork-presentation-display.json +45 -0
  431. package/patterns/recipefork-presentation-editor.json +52 -0
  432. package/patterns/recipefork-recipe-card.json +123 -0
  433. package/patterns/recipefork-recipe-metadata-form.json +58 -0
  434. package/patterns/recipefork-recipe-mode-switch.json +52 -0
  435. package/patterns/recipefork-recipe-story-editor.json +51 -0
  436. package/patterns/recipefork-simple-recipe-editor.json +49 -0
  437. package/patterns/redline-track-changes.json +113 -0
  438. package/patterns/registry-discovery-cta-grid.json +93 -0
  439. package/patterns/registry-link-list.json +118 -0
  440. package/patterns/relationship-graph.json +127 -0
  441. package/patterns/remote-cursor.json +103 -0
  442. package/patterns/render-queue.json +102 -0
  443. package/patterns/rent-reminder.json +140 -0
  444. package/patterns/rent-roll.json +112 -0
  445. package/patterns/reputation-badge.json +111 -0
  446. package/patterns/retro-table.json +128 -0
  447. package/patterns/reward-tier-selector.json +137 -0
  448. package/patterns/sample-tracker.json +127 -0
  449. package/patterns/scene-storyboard.json +104 -0
  450. package/patterns/scope-breakdown.json +108 -0
  451. package/patterns/scoreboard-live.json +116 -0
  452. package/patterns/scrim-calendar.json +114 -0
  453. package/patterns/search-filter-bar.json +141 -0
  454. package/patterns/secure-document-viewer.json +107 -0
  455. package/patterns/service-catalog.json +94 -0
  456. package/patterns/service-map.json +133 -0
  457. package/patterns/session-inspector.json +62 -0
  458. package/patterns/session-manager.json +89 -0
  459. package/patterns/settings-nav.json +106 -0
  460. package/patterns/share-modal.json +157 -0
  461. package/patterns/share-quest-panel.json +134 -0
  462. package/patterns/shot-grid.json +104 -0
  463. package/patterns/skeleton-loader.json +114 -0
  464. package/patterns/slash-command.json +80 -0
  465. package/patterns/sparkline-cell.json +103 -0
  466. package/patterns/spatial-card-stack.json +133 -0
  467. package/patterns/spatial-presence-ring.json +103 -0
  468. package/patterns/split-calculator.json +104 -0
  469. package/patterns/split-pane.json +112 -0
  470. package/patterns/stats-bar.json +125 -0
  471. package/patterns/stats-detail.json +102 -0
  472. package/patterns/stats-overview.json +132 -0
  473. package/patterns/stats-section.json +90 -0
  474. package/patterns/status-bar.json +101 -0
  475. package/patterns/status-board.json +92 -0
  476. package/patterns/stem-browser.json +58 -0
  477. package/patterns/stem-stack.json +101 -0
  478. package/patterns/stepper.json +115 -0
  479. package/patterns/storefront-hero.json +120 -0
  480. package/patterns/stretch-goal-ladder.json +128 -0
  481. package/patterns/subscriber-list.json +135 -0
  482. package/patterns/supply-chain-map.json +109 -0
  483. package/patterns/swipe-action-bar.json +119 -0
  484. package/patterns/swipe-card.json +126 -0
  485. package/patterns/table-map.json +134 -0
  486. package/patterns/target-progress-ring.json +103 -0
  487. package/patterns/team-member-row.json +139 -0
  488. package/patterns/tech-pills.json +69 -0
  489. package/patterns/tenant-card.json +150 -0
  490. package/patterns/tenant-directory.json +118 -0
  491. package/patterns/tenant-payment-setup.json +98 -0
  492. package/patterns/terminal-emulator.json +117 -0
  493. package/patterns/testimonials.json +133 -0
  494. package/patterns/tier-builder.json +131 -0
  495. package/patterns/tier-card.json +118 -0
  496. package/patterns/tier-upgrade-card.json +144 -0
  497. package/patterns/timeline-scrubber.json +107 -0
  498. package/patterns/timeline.json +140 -0
  499. package/patterns/toast-notification.json +123 -0
  500. package/patterns/tool-list.json +89 -0
  501. package/patterns/trace-waterfall.json +123 -0
  502. package/patterns/trade-modal.json +132 -0
  503. package/patterns/transcript-stream.json +125 -0
  504. package/patterns/tree-view.json +124 -0
  505. package/patterns/unit-detail.json +100 -0
  506. package/patterns/unit-list.json +106 -0
  507. package/patterns/unlock-gate.json +132 -0
  508. package/patterns/usage-meter.json +113 -0
  509. package/patterns/vacancy-tracker.json +106 -0
  510. package/patterns/valuation-chart.json +126 -0
  511. package/patterns/version-history.json +140 -0
  512. package/patterns/video-room.json +142 -0
  513. package/patterns/vod-annotator.json +112 -0
  514. package/patterns/voice-command-palette.json +127 -0
  515. package/patterns/voice-waveform.json +120 -0
  516. package/patterns/voting-breakdown.json +101 -0
  517. package/patterns/waveform-track.json +102 -0
  518. package/patterns/webhook-debugger.json +116 -0
  519. package/patterns/workflow-canvas.json +147 -0
  520. package/patterns/workspace-region-stack.json +74 -0
  521. package/schemas/archetype.v2.json +145 -0
  522. package/schemas/blueprint.v1.json +225 -0
  523. package/schemas/common.v1.json +337 -0
  524. package/schemas/content-health-report.v1.json +255 -0
  525. package/schemas/content-intelligence.v1.json +142 -0
  526. package/schemas/essence.v4.json +430 -0
  527. package/schemas/execution-pack.common.v1.json +207 -0
  528. package/schemas/page-pack.v1.json +106 -0
  529. package/schemas/pattern.v2.json +232 -0
  530. package/schemas/public-content-list.v1.json +28 -0
  531. package/schemas/public-content-record.v1.json +91 -0
  532. package/schemas/public-content-summary.v1.json +132 -0
  533. package/schemas/registry-intelligence-summary.v1.json +81 -0
  534. package/schemas/search-response.v1.json +28 -0
  535. package/schemas/section-pack.v1.json +128 -0
  536. package/schemas/shell.v1.json +69 -0
  537. package/schemas/showcase-manifest-entry.v1.json +92 -0
  538. package/schemas/showcase-manifest.v1.json +28 -0
  539. package/schemas/showcase-shortlist.v1.json +36 -0
  540. package/schemas/theme.v1.json +190 -0
  541. package/shells/canvas-overlay.json +94 -0
  542. package/shells/centered.json +49 -0
  543. package/shells/chat-portal.json +153 -0
  544. package/shells/copilot-overlay.json +156 -0
  545. package/shells/full-bleed.json +100 -0
  546. package/shells/immersive-stage.json +89 -0
  547. package/shells/minimal-header.json +103 -0
  548. package/shells/mobile-tab-bar.json +119 -0
  549. package/shells/recipefork-top-nav.json +74 -0
  550. package/shells/sidebar-aside.json +163 -0
  551. package/shells/sidebar-main-footer.json +158 -0
  552. package/shells/sidebar-main.json +175 -0
  553. package/shells/sidebar-right.json +128 -0
  554. package/shells/terminal-split.json +95 -0
  555. package/shells/three-column-browser.json +215 -0
  556. package/shells/top-nav-footer.json +114 -0
  557. package/shells/top-nav-main.json +103 -0
  558. package/shells/top-nav-sidebar.json +130 -0
  559. package/shells/workspace-aside.json +181 -0
  560. package/themes/auradecantism.json +601 -0
  561. package/themes/bespoke.json +433 -0
  562. package/themes/bioluminescent.json +217 -0
  563. package/themes/bistro.json +422 -0
  564. package/themes/carbon-neon.json +458 -0
  565. package/themes/carbon.json +429 -0
  566. package/themes/cinema.json +479 -0
  567. package/themes/clean.json +261 -0
  568. package/themes/counsel.json +431 -0
  569. package/themes/dopamine.json +237 -0
  570. package/themes/earth.json +453 -0
  571. package/themes/editorial.json +237 -0
  572. package/themes/estate.json +559 -0
  573. package/themes/fintech.json +472 -0
  574. package/themes/gaming-guild.json +341 -0
  575. package/themes/glassmorphism.json +309 -0
  576. package/themes/government.json +481 -0
  577. package/themes/healthcare.json +480 -0
  578. package/themes/lab.json +437 -0
  579. package/themes/launchpad.json +320 -0
  580. package/themes/liquid-glass.json +223 -0
  581. package/themes/luminarum.json +598 -0
  582. package/themes/neo-tokyo.json +451 -0
  583. package/themes/neon-cyber.json +280 -0
  584. package/themes/neon-dark.json +220 -0
  585. package/themes/paper.json +496 -0
  586. package/themes/prismatic.json +217 -0
  587. package/themes/recipefork.json +278 -0
  588. package/themes/retro-arcade.json +620 -0
  589. package/themes/retro.json +240 -0
  590. package/themes/studio-dark.json +437 -0
  591. package/themes/studio.json +488 -0
  592. package/themes/swipecircle.json +533 -0
  593. package/themes/terminal.json +549 -0
@@ -0,0 +1,123 @@
1
+ {
2
+ "$schema": "https://decantr.ai/schemas/pattern.v2.json",
3
+ "id": "audit-trail",
4
+ "version": "1.0.0",
5
+ "decantr_compat": ">=2.0.0",
6
+ "name": "Audit Trail",
7
+ "description": "Chronological audit log displaying actor, action, entity, and timestamp with diff inspection, advanced filtering, search, and CSV export for compliance workflows.",
8
+ "category": "compliance",
9
+ "tags": [
10
+ "2026",
11
+ "compliance",
12
+ "audit",
13
+ "log",
14
+ "trail",
15
+ "security",
16
+ "export"
17
+ ],
18
+ "components": [
19
+ "AuditLog",
20
+ "AuditEntry",
21
+ "ActorAvatar",
22
+ "ActionBadge",
23
+ "EntityLink",
24
+ "DiffToggle",
25
+ "FilterBar",
26
+ "ExportButton"
27
+ ],
28
+ "default_preset": "standard",
29
+ "presets": {
30
+ "standard": {
31
+ "description": "Full vertical timeline audit log with actor avatars, action badges, entity links, expandable diffs, and a filter bar with export controls",
32
+ "layout": {
33
+ "layout": "stack",
34
+ "atoms": "_flex _col _gap4 _py4 _w-full"
35
+ }
36
+ },
37
+ "compact": {
38
+ "description": "One-line-per-entry dense list view — actor name, action verb, entity, and timestamp on a single row with no avatars or expandable detail, optimized for high-volume scanning",
39
+ "layout": {
40
+ "layout": "stack",
41
+ "atoms": "_flex _col _gap1 _py2 _w-full _text-sm"
42
+ }
43
+ },
44
+ "grouped": {
45
+ "description": "Entries grouped by entity with collapsible sections — each entity shows its audit history as a nested timeline, useful for tracing the full lifecycle of a single record",
46
+ "layout": {
47
+ "layout": "stack",
48
+ "atoms": "_flex _col _gap6 _py4 _w-full"
49
+ }
50
+ }
51
+ },
52
+ "visual_brief": "Vertical timeline with a thin 2px line running down the left side (24px from left edge). Each audit entry is positioned to the right of the line, connected by a small horizontal connector. The entry row contains: a small circular ActorAvatar (32px, with initials or photo) overlapping the vertical line, then to its right the actor's name in semibold text, then an ActionBadge pill (Created = blue fill, Updated = yellow/amber fill, Deleted = red fill, Accessed = gray fill, each with a matching icon: plus, pencil, trash, eye), then the entity type in muted text followed by the entity name as a clickable link in accent color, and finally a relative timestamp on the far right in muted monospace text (e.g. '2 hours ago'). Below the main row, a small 'Show changes' toggle link appears for entries that have diffs. Clicking it expands a two-column diff view: left column shows 'Before' state with red-tinted deleted lines, right column shows 'After' state with green-tinted added lines, field names as row labels on the far left. The FilterBar sits above the log as a horizontal row with: actor dropdown (with avatar chips), action type multi-select (checkboxes for each action type), entity type dropdown, date range picker, and a search text input. An ExportButton sits at the right end of the filter bar — clicking it generates a CSV download with a brief loading spinner. The grouped preset wraps entries under collapsible entity headers: the header shows entity type icon, entity name, and entry count badge; expanding shows a mini-timeline of all actions on that entity. Compact preset renders each entry as a single line: 'John Smith created Invoice #1234 — 2h ago' with action verb colored to match its badge color.",
53
+ "default_layout": {
54
+ "layout": "stack",
55
+ "atoms": "_flex _col _gap4 _py4 _w-full",
56
+ "slots": {
57
+ "filter-bar": "Horizontal row of filter controls above the audit log. Contains: actor filter (searchable dropdown with avatar chips for selected actors), action type filter (multi-select pills: Created, Updated, Deleted, Accessed, all toggleable), entity type filter (dropdown listing all entity types), date range picker (preset options: today, last 7 days, last 30 days, custom range), and a text search input for free-text search across all entry fields. Active filters display as removable chip tags below the row. The ExportButton sits right-aligned — a secondary button with a download icon that triggers CSV generation with a spinner state.",
58
+ "audit-log": "The main vertical timeline container. Renders a thin continuous vertical line (2px, muted border color) from the first entry to the last. Each AuditEntry is positioned as a card-like row to the right of the line. Entries are sorted by timestamp descending (newest first). Supports infinite scroll with a 'Load more' button at the bottom, or virtual scrolling for large datasets. Entry count badge shows total matching entries at the top.",
59
+ "audit-entry": "Repeating slot for each log entry. Layout is a horizontal row: ActorAvatar (32px circle with initials/photo, centered on the timeline line), actor name (semibold), ActionBadge (colored pill with icon and verb), entity type (muted label), EntityLink (accent-colored clickable name), and timestamp (muted monospace, right-aligned). Below the row, a DiffToggle link ('Show changes' / 'Hide changes') appears if the entry includes before/after data. The expanded diff section shows a side-by-side comparison table: field name column, 'before' value column with red-tinted removed content, 'after' value column with green-tinted added content. Only changed fields are displayed. For 'Created' entries the diff shows only the 'after' values. For 'Deleted' entries only the 'before' values."
60
+ }
61
+ },
62
+ "responsive": {
63
+ "mobile": "Timeline line moves to 8px from left edge. Actor avatars are 24px. Entries stack vertically: actor + action on first line, entity on second, timestamp on third. Diff view switches from side-by-side to stacked (before above, after below). Filter bar collapses to a filter icon button that opens a bottom sheet. Export button moves into the filter sheet.",
64
+ "tablet": "Standard timeline layout with all elements on one row per entry. Filter bar fully visible. Diff view remains side-by-side. Comfortable spacing.",
65
+ "desktop": "Full-width timeline with generous entry spacing. Filter bar shows all controls in a single row. Diff view has wide columns for comfortable comparison. Virtual scrolling handles large datasets smoothly."
66
+ },
67
+ "motion": {
68
+ "micro": {
69
+ "entry-hover": "background-color surface-hover + translateX(2px) 120ms ease-out",
70
+ "badge-hover": "scale(1.05) 100ms ease-out",
71
+ "avatar-hover": "ring-2 accent 150ms ease-out"
72
+ },
73
+ "transitions": {
74
+ "diff-expand": "max-height 0→auto + opacity 0→1 300ms ease-out",
75
+ "diff-collapse": "max-height auto→0 + opacity 1→0 200ms ease-in",
76
+ "filter-chip-add": "scale(0.8)→1 + opacity 0→1 200ms ease-out",
77
+ "filter-chip-remove": "scale(1)→0.8 + opacity 1→0 150ms ease-in",
78
+ "export-loading": "opacity pulse 0.5→1→0.5 1s ease-in-out infinite"
79
+ },
80
+ "ambient": {
81
+ "new-entry-highlight": "background-color accent/5 → transparent 2s ease-out on new entry arrival"
82
+ }
83
+ },
84
+ "interactions": [
85
+ "animate-on-mount",
86
+ "hover-reveal",
87
+ "click-select",
88
+ "scroll-reveal"
89
+ ],
90
+ "composition": {
91
+ "AuditTrail": "Container(d-section, flex-col) > [FilterBar(d-control) + ExportButton(d-interactive, icon: download)] + AuditLog(d-data, timeline-vertical)",
92
+ "AuditLog": "Timeline(d-data, vertical-line) > AuditEntry(d-interactive, expandable)[]",
93
+ "AuditEntry": "Row(d-interactive, hover-highlight) > [ActorAvatar(d-annotation, circle, on-line) + ActorName(d-data, semibold) + ActionBadge(d-annotation, pill, color: action-type) + EntityLink(d-interactive, accent-link) + Timestamp(d-annotation, mono, muted, right) + DiffToggle?(d-interactive, expandable)]",
94
+ "DiffToggle": "Panel(d-data, expandable) > DiffTable(d-data, two-column) > DiffRow(field-label + before-value + after-value)[]",
95
+ "FilterBar": "Row(d-control, flex-wrap) > [ActorFilter(d-control, searchable-dropdown) + ActionTypeFilter(d-control, multi-select-pills) + EntityTypeFilter(d-control, dropdown) + DateRangePicker(d-control) + SearchInput(d-control, text)]"
96
+ },
97
+ "layout_hints": {
98
+ "timeline_priority": "Actor, action, target, and time should be readable in one scan before diffs or export tooling enter the picture.",
99
+ "diff_attachment": "Expanded diffs should feel attached to the specific log entry they explain, not like a detached secondary document.",
100
+ "filter_role": "Filters and export controls should support forensic inspection without drowning out the chronological audit log itself."
101
+ },
102
+ "accessibility": {
103
+ "role": "log",
104
+ "aria-label": "Audit trail log with filtering and export",
105
+ "keyboard": [
106
+ "Arrow Up/Down: navigate between audit entries",
107
+ "Enter: expand/collapse diff view for focused entry",
108
+ "Tab: move between filter controls and log entries",
109
+ "E: trigger CSV export",
110
+ "F: focus the search input in the filter bar",
111
+ "Escape: collapse expanded diff or close filter dropdowns",
112
+ "Home: jump to the most recent entry",
113
+ "End: jump to the oldest loaded entry"
114
+ ],
115
+ "announcements": [
116
+ "{actor} {action} {entity_type} {entity_name} at {timestamp}",
117
+ "Diff expanded: {changed_field_count} fields changed",
118
+ "Filter applied: {filter_description}, {result_count} entries shown",
119
+ "Export started, downloading CSV with {count} entries",
120
+ "Loaded {count} more entries"
121
+ ]
122
+ }
123
+ }
@@ -0,0 +1,209 @@
1
+ {
2
+ "$schema": "https://decantr.ai/schemas/pattern.v2.json",
3
+ "id": "auth-form",
4
+ "version": "1.0.0",
5
+ "decantr_compat": ">=2.0.0",
6
+ "name": "Auth Form",
7
+ "description": "Unified authentication form with multiple modes: login, register, forgot-password, reset-password, verify-email, mfa-setup, mfa-verify, phone-verify.",
8
+ "dependencies": {
9
+ "patterns": {},
10
+ "styles": {},
11
+ "requires_core": {
12
+ "components": [
13
+ "Button",
14
+ "icon"
15
+ ],
16
+ "charts": []
17
+ }
18
+ },
19
+ "components": [
20
+ "Button",
21
+ "icon"
22
+ ],
23
+ "default_preset": "login",
24
+ "presets": {
25
+ "login": {
26
+ "description": "Email/password login with OAuth options",
27
+ "components": [
28
+ "Button",
29
+ "icon"
30
+ ],
31
+ "layout": {
32
+ "layout": "stack",
33
+ "atoms": "_flex _col _gap6 _p8 _mw[400px] _wfull",
34
+ "slots": {
35
+ "header": "Logo and welcome title",
36
+ "form": "Email and password inputs",
37
+ "oauth": "Social login buttons (Google, GitHub, etc.)",
38
+ "divider": "'or continue with' separator",
39
+ "footer": "Register and forgot password links",
40
+ "error": "Inline error message area"
41
+ }
42
+ }
43
+ },
44
+ "register": {
45
+ "description": "Registration form with password strength indicator",
46
+ "components": [
47
+ "Button",
48
+ "icon"
49
+ ],
50
+ "layout": {
51
+ "layout": "stack",
52
+ "atoms": "_flex _col _gap6 _p8 _mw[400px] _wfull",
53
+ "slots": {
54
+ "header": "Logo and create account title",
55
+ "form": "Name, email, password inputs with strength indicator",
56
+ "oauth": "Social signup buttons",
57
+ "divider": "Separator",
58
+ "footer": "Login link",
59
+ "error": "Inline error message"
60
+ }
61
+ }
62
+ },
63
+ "forgot-password": {
64
+ "description": "Password reset request form with email input and success confirmation message",
65
+ "components": [
66
+ "Button",
67
+ "icon"
68
+ ],
69
+ "layout": {
70
+ "layout": "stack",
71
+ "atoms": "_flex _col _gap6 _p8 _mw[400px] _wfull",
72
+ "slots": {
73
+ "header": "Title and instructions",
74
+ "form": "Email input",
75
+ "footer": "Back to login link",
76
+ "success": "Success message after submission"
77
+ }
78
+ }
79
+ },
80
+ "reset-password": {
81
+ "description": "Set new password form with confirmation",
82
+ "components": [
83
+ "Button",
84
+ "icon"
85
+ ],
86
+ "layout": {
87
+ "layout": "stack",
88
+ "atoms": "_flex _col _gap6 _p8 _mw[400px] _wfull",
89
+ "slots": {
90
+ "header": "Title",
91
+ "form": "New password and confirm password inputs",
92
+ "error": "Validation errors"
93
+ }
94
+ }
95
+ },
96
+ "verify-email": {
97
+ "description": "Email verification pending screen",
98
+ "components": [
99
+ "Button",
100
+ "icon"
101
+ ],
102
+ "layout": {
103
+ "layout": "stack",
104
+ "atoms": "_flex _col _aic _gap6 _p8 _textc",
105
+ "slots": {
106
+ "icon": "Mail icon",
107
+ "message": "Verification instructions",
108
+ "resend": "Resend verification button"
109
+ }
110
+ }
111
+ },
112
+ "mfa-setup": {
113
+ "description": "Multi-factor authentication setup with QR code",
114
+ "components": [
115
+ "Button",
116
+ "icon"
117
+ ],
118
+ "layout": {
119
+ "layout": "stack",
120
+ "atoms": "_flex _col _gap6 _p8 _mw[400px] _wfull",
121
+ "slots": {
122
+ "header": "Setup instructions",
123
+ "qr": "QR code image for authenticator app",
124
+ "secret": "Manual entry secret key",
125
+ "verify": "Verification code input"
126
+ }
127
+ }
128
+ },
129
+ "mfa-verify": {
130
+ "description": "Multi-factor authentication code entry during login with six-digit input and backup code fallback",
131
+ "components": [
132
+ "Button",
133
+ "icon"
134
+ ],
135
+ "layout": {
136
+ "layout": "stack",
137
+ "atoms": "_flex _col _gap6 _p8 _mw[400px] _wfull",
138
+ "slots": {
139
+ "header": "Enter code prompt",
140
+ "form": "6-digit code input",
141
+ "backup": "Use backup code link"
142
+ }
143
+ }
144
+ },
145
+ "phone-verify": {
146
+ "description": "Phone number verification with SMS code",
147
+ "components": [
148
+ "Button",
149
+ "icon"
150
+ ],
151
+ "layout": {
152
+ "layout": "stack",
153
+ "atoms": "_flex _col _gap6 _p8 _mw[400px] _wfull",
154
+ "slots": {
155
+ "header": "Verification prompt",
156
+ "form": "SMS code input",
157
+ "resend": "Resend code button"
158
+ }
159
+ }
160
+ }
161
+ },
162
+ "default_layout": {
163
+ "layout": "stack",
164
+ "atoms": "_flex _col _gap6 _p8 _mw[400px] _wfull",
165
+ "slots": {
166
+ "header": "Logo, title, subtitle",
167
+ "form": "Form inputs",
168
+ "oauth": "OAuth provider buttons",
169
+ "divider": "'or continue with' separator",
170
+ "footer": "Navigation links",
171
+ "error": "Inline error messages"
172
+ }
173
+ },
174
+ "visual_brief": "Centered single-column form card constrained to 400px max-width. Header area shows logo and a welcome title. Form fields stack vertically with labeled inputs for email and password. A horizontal divider with 'or continue with' text separates the form from OAuth provider buttons (Google, GitHub icons in bordered pill buttons). Footer contains muted text links for Register and Forgot Password. Error messages appear inline below inputs in destructive color. MFA presets show a 6-digit code input with large separated character boxes. Verify-email preset centers a large mail icon with instructional text.",
175
+ "layout_hints": {
176
+ "shell_ownership": "The centered shell owns viewport centering and the outer card frame. Route components should render auth content inside that card rhythm, not add another full-height centering wrapper.",
177
+ "field_stack": "Fields, CTA, OAuth buttons, and footer links should align to one stable column width. OAuth rows should feel like part of the form, not a detached widget.",
178
+ "verification_states": "Pending-email, MFA, and reset-success states should feel like transitions of the same auth surface rather than unrelated page layouts."
179
+ },
180
+ "responsive": {
181
+ "mobile": "Form takes full width with horizontal padding. OAuth buttons stack vertically. MFA code inputs remain large for touch targets. Footer links stack.",
182
+ "tablet": "Centered 400px form. Standard spacing. OAuth buttons render in a row.",
183
+ "desktop": "Centered form with generous padding. All elements comfortably spaced in their standard layout."
184
+ },
185
+ "motion": {
186
+ "micro": "Buttons and OAuth rows use calm hover and focus transitions. Code-entry boxes may softly highlight the active digit slot.",
187
+ "transitions": "State changes between login, register, reset, and MFA should cross-fade or slide minimally over 180-250ms.",
188
+ "ambient": "Do not add decorative ambient motion inside auth forms beyond a gentle entrance treatment."
189
+ },
190
+ "interactions": [
191
+ "animate-on-mount",
192
+ "keyboard-navigation",
193
+ "inline-edit"
194
+ ],
195
+ "accessibility": {
196
+ "role": "form",
197
+ "aria-label": "Authentication form",
198
+ "keyboard": [
199
+ "Tab moves through fields, provider buttons, and footer links in a logical order.",
200
+ "Enter submits the current form when focus is inside the primary auth field group.",
201
+ "OTP and MFA inputs should support sequential typing and backspace navigation between code slots."
202
+ ],
203
+ "announcements": [
204
+ "Announce inline validation errors with field-specific guidance.",
205
+ "Announce verification-success and reset-email-sent states explicitly."
206
+ ],
207
+ "focus_management": "Move focus to the first invalid field after validation failure. When auth mode changes, move focus to the heading or first interactive field in the new mode."
208
+ }
209
+ }
@@ -0,0 +1,118 @@
1
+ {
2
+ "$schema": "https://decantr.ai/schemas/pattern.v2.json",
3
+ "id": "avatar-grid-tile",
4
+ "version": "1.0.0",
5
+ "decantr_compat": ">=2.0.0",
6
+ "name": "Avatar Grid Tile",
7
+ "description": "Square card with a circular avatar inside, name underneath, and an optional new-match dot indicator. The repeating tile inside a matches-grid layout. Differs from card-grid (rectangular content cards) and presence-avatars (horizontal stack of presence indicators) by combining a square card surface with a circular photo and a single-line name — optimized for grid-of-people displays.",
8
+ "category": "card",
9
+ "tags": [
10
+ "2026",
11
+ "card",
12
+ "tile",
13
+ "avatar",
14
+ "grid",
15
+ "matches",
16
+ "consumer",
17
+ "social"
18
+ ],
19
+ "components": [
20
+ "Tile",
21
+ "AvatarFrame",
22
+ "Avatar",
23
+ "PresenceDot",
24
+ "NewMatchDot",
25
+ "Name",
26
+ "TimestampLabel"
27
+ ],
28
+ "default_preset": "standard",
29
+ "presets": {
30
+ "standard": {
31
+ "description": "Square card with circular 80px avatar centered above a single-line name. Optional violet new-match dot at top-right of the avatar. Used as the repeating tile in a matches-grid.",
32
+ "layout": {
33
+ "layout": "stack",
34
+ "atoms": "_relative _flex _flex-col _items-center _gap-2 _p-4 _rounded-2xl _bg-surface _cursor-pointer"
35
+ }
36
+ },
37
+ "with-presence": {
38
+ "description": "Includes a small green online-status dot at bottom-right of the avatar (like Slack/Messenger presence). Otherwise identical to standard.",
39
+ "layout": {
40
+ "layout": "stack",
41
+ "atoms": "_relative _flex _flex-col _items-center _gap-2 _p-4 _rounded-2xl _bg-surface _cursor-pointer"
42
+ }
43
+ },
44
+ "compact": {
45
+ "description": "Smaller variant — 56px avatar, no card padding. Used in dense grids or sub-lists.",
46
+ "layout": {
47
+ "layout": "stack",
48
+ "atoms": "_relative _flex _flex-col _items-center _gap-1 _p-2 _cursor-pointer"
49
+ }
50
+ }
51
+ },
52
+ "visual_brief": "A square-ish card (intrinsic size, expands to grid cell) with the swipecircle-grid-tile decorator: white surface, 20px border-radius, 16px padding, soft coral-tinted shadow, flex-col items-center with 8px gap. At the top: AvatarFrame — a 80×80 circular avatar with the swipecircle-photo-frame decorator (coral outer ring 3px, cream inner gap 2px, soft shadow). The Avatar img inside fills the frame (object-fit cover). At top-right of the AvatarFrame: a NewMatchDot — a 12×12 violet circle (var(--d-secondary)) with a 2px white inner border, positioned absolute (top: -2px, right: -2px). Visible only when data-new=true. On first appearance, animates: scale 0→1.2→1 + opacity 0→1 over 320ms cubic-bezier(0.34, 1.56, 0.64, 1) — pulses in. Optionally pulses gently (scale 1→1.06→1 over 1.6s ease-in-out infinite) until the user views the match. In the with-presence preset: a PresenceDot at bottom-right of the AvatarFrame — 10×10 green circle (var(--d-success)) with white border, positioned absolute (bottom: 2px, right: 2px), visible only when data-online=true. Below the AvatarFrame: Name — single-line text, font-size 14px, font-weight 600, color var(--d-text), text-align center, max-width 100% with text-overflow ellipsis. Optional TimestampLabel below name (visible on hover or always per preset config) — 'Active 2h ago' style, font-size 11px, color var(--d-text-muted). On hover: the tile lifts (translateY -2px), the shadow intensifies, and the AvatarFrame's outer ring increases coral saturation slightly. Press: scale(0.97) for 80ms, spring back over 200ms. Click navigates to that user's profile (`/u/:userId`) — emits 'open-profile' event. Each tile is a single tap target — the entire card is clickable, not just the avatar or name.",
53
+ "layout_hints": {
54
+ "container": "square-ish card with circular avatar inside",
55
+ "size": "Default 144×160px or grid-cell-fill — fills the container",
56
+ "avatar_size": "80×80 standard / 56×56 compact",
57
+ "tap_target": "Entire tile is the tap target (not just avatar) — easier on mobile"
58
+ },
59
+ "default_layout": {
60
+ "layout": "stack",
61
+ "atoms": "_relative _flex _flex-col _items-center _gap-2 _p-4 _rounded-2xl _bg-surface _cursor-pointer",
62
+ "slots": {
63
+ "tile": "Outer card. Position relative (so absolute children anchor here). Flex-col, items-center, gap 8px, padding 16px. Border-radius 20px. Background var(--d-surface). Applies swipecircle-grid-tile decorator. Cursor pointer. data-new='true|false'. data-online='true|false'. Click navigates to user's profile. Carries role='link' or wraps an <a> element pointing to /u/{userId}.",
64
+ "avatar-frame": "Position relative (anchors PresenceDot and NewMatchDot). 80×80 (standard) or 56×56 (compact). Applies swipecircle-photo-frame decorator: rounded-full, padding 3px, gradient coral-to-accent border. Box-shadow soft.",
65
+ "avatar": "Img inside the frame. width 100%, height 100%, border-radius 9999px (matches frame), object-fit cover, object-position center. Default placeholder: a soft peach gradient with a 24px User Lucide icon centered.",
66
+ "presence-dot": "Conditional in with-presence preset. Position absolute, bottom: 2px, right: 2px. 10×10. Border-radius 9999px. Background var(--d-success). Border 2px solid var(--d-surface) (creates a clean cutout effect). Visible only when data-online=true.",
67
+ "new-match-dot": "Position absolute, top: -2px, right: -2px. 12×12. Border-radius 9999px. Background var(--d-secondary) (violet match accent). Border 2px solid var(--d-surface). Visible only when data-new=true. On first render: scales 0→1.2→1 + opacity 0→1 over 320ms cubic-bezier(0.34, 1.56, 0.64, 1). Optional gentle pulse animation (scale 1→1.06→1 over 1.6s ease-in-out infinite) until viewed.",
68
+ "name": "Single-line text below the avatar. Font-size 14px, font-weight 600, color var(--d-text), text-align center, white-space nowrap, overflow hidden, text-overflow ellipsis, max-width 100%.",
69
+ "timestamp-label": "Optional secondary line below name. Font-size 11px, font-weight 500, color var(--d-text-muted). Format examples: 'Matched today', 'Active 2h ago', 'New match!'. Visible per preset config — always in standard, on-hover only in compact."
70
+ }
71
+ },
72
+ "accessibility": {
73
+ "role": "link",
74
+ "aria-label": "{name}'s profile{newMatchSuffix}{onlineSuffix}",
75
+ "keyboard": [
76
+ "Tab: focus the tile",
77
+ "Enter or Space: activate (navigate to profile)",
78
+ "Arrow keys: navigate between tiles in the grid (handled by parent grid's roving tabindex)"
79
+ ],
80
+ "announcements": [
81
+ "{name}, new match",
82
+ "{name}, online",
83
+ "{name}, matched {timestamp}"
84
+ ],
85
+ "focus_management": "Each tile is a focusable link. The new-match indicator is announced via aria-label suffix when data-new=true. Focus ring uses the swipecircle-pill decorator's primary color outline."
86
+ },
87
+ "responsive": {
88
+ "mobile": "3-column grid on narrow viewports (gap 8px). Avatar 64×64. Reduced padding (12px).",
89
+ "tablet": "4-column grid (gap 12px). Default avatar size 80×80.",
90
+ "desktop": "5-column grid in the 480px max-width app column (gap 16px). Hover state active (lift + glow)."
91
+ },
92
+ "motion": {
93
+ "micro": {
94
+ "tile-hover": "translateY(-2px) + shadow intensify over 200ms ease-out",
95
+ "tile-press": "scale(0.97) for 80ms, spring back to scale(1) over 200ms cubic-bezier(0.34, 1.56, 0.64, 1)",
96
+ "new-match-arrive": "scale 0→1.2→1 + opacity 0→1 over 320ms cubic-bezier(0.34, 1.56, 0.64, 1)",
97
+ "new-match-pulse": "scale 1→1.06→1 over 1.6s ease-in-out infinite (gentle attention-grabber, until viewed)",
98
+ "avatar-frame-hover": "outer ring saturation shift +10% over 200ms ease-out"
99
+ },
100
+ "transitions": {
101
+ "grid-stagger": "When the grid first appears, tiles enter with a stagger: opacity 0 + scale 0.95 → opacity 1 + scale 1 over 320ms cubic-bezier(0.34, 1.56, 0.64, 1) with a 40ms delay between each tile. Total stagger time depends on tile count."
102
+ }
103
+ },
104
+ "interactions": [
105
+ "scale-hover",
106
+ "lift-hover",
107
+ "click-select",
108
+ "stagger-children",
109
+ "animate-on-mount"
110
+ ],
111
+ "composition": {
112
+ "AvatarGridTile": "Tile(rounded-2xl, swipecircle-grid-tile, flex-col, items-center, gap-2, padding-4) > [AvatarFrame + Name + TimestampLabel(conditional)]",
113
+ "AvatarFrame": "Div(relative, 80px-circle, swipecircle-photo-frame) > [Avatar(filling) + PresenceDot(absolute, conditional) + NewMatchDot(absolute, conditional)]",
114
+ "Avatar": "Img(filling, rounded-full, object-cover)",
115
+ "Name": "Span(text-sm, font-semibold, single-line, ellipsis)",
116
+ "TimestampLabel": "Span(text-xs, muted, font-medium)"
117
+ }
118
+ }
@@ -0,0 +1,137 @@
1
+ {
2
+ "$schema": "https://decantr.ai/schemas/pattern.v2.json",
3
+ "id": "backer-progress-console",
4
+ "version": "1.0.0",
5
+ "decantr_compat": ">=2.0.0",
6
+ "name": "Backer Progress Console",
7
+ "description": "Campaign momentum console with funding or waitlist progress, backer count, countdown, inventory state, and next unlock cue.",
8
+ "category": "campaign",
9
+ "tags": [
10
+ "campaign",
11
+ "progress",
12
+ "backers",
13
+ "funding",
14
+ "waitlist",
15
+ "conversion"
16
+ ],
17
+ "components": [
18
+ "Progress",
19
+ "KPI",
20
+ "Badge",
21
+ "Countdown",
22
+ "Button"
23
+ ],
24
+ "contained": false,
25
+ "default_preset": "funding-console",
26
+ "presets": {
27
+ "funding-console": {
28
+ "description": "Wide console for crowdfunding or preorder campaigns with raised amount, goal progress, backer count, and days remaining.",
29
+ "components": [
30
+ "Progress",
31
+ "KPI",
32
+ "Badge",
33
+ "Countdown",
34
+ "Button"
35
+ ],
36
+ "layout": {
37
+ "layout": "grid",
38
+ "atoms": "_grid _gap5 _wfull _maxw[72rem] _mx[auto] _p6",
39
+ "slots": {
40
+ "primary-counter": "Raised amount or reservations count in LED treatment.",
41
+ "goal-progress": "Thick segmented progress track with percentage and target label.",
42
+ "metric-strip": "Backers, days left, average pledge, or early-bird inventory.",
43
+ "next-unlock": "Short copy for the next stretch goal or waitlist milestone.",
44
+ "action": "Inline pledge/reserve button when used outside hero."
45
+ }
46
+ }
47
+ },
48
+ "waitlist-console": {
49
+ "description": "Waitlist variant that replaces money raised with signups, referral count, beta slots, and next access wave.",
50
+ "components": [
51
+ "Progress",
52
+ "KPI",
53
+ "Badge",
54
+ "Button"
55
+ ],
56
+ "layout": {
57
+ "layout": "grid",
58
+ "atoms": "_grid _gap5 _wfull _maxw[64rem] _mx[auto] _p6",
59
+ "slots": {
60
+ "signup-counter": "Total waitlist signups or reserved spots.",
61
+ "wave-progress": "Progress toward next access wave.",
62
+ "referral-state": "Current referral multiplier or unlock state.",
63
+ "access-note": "Next beta wave timing and availability.",
64
+ "action": "Join or invite action."
65
+ }
66
+ }
67
+ }
68
+ },
69
+ "default_layout": {
70
+ "layout": "grid",
71
+ "atoms": "_grid _gap5 _wfull _maxw[72rem] _mx[auto] _p6",
72
+ "slots": {
73
+ "primary-counter": "LED-style campaign total",
74
+ "goal-progress": "Segmented progress track with target label",
75
+ "metric-strip": "Backers, days left, inventory, or referral metrics",
76
+ "next-unlock": "Next milestone cue",
77
+ "action": "Optional conversion button"
78
+ }
79
+ },
80
+ "visual_brief": "A single substantial arcade-console module, not a set of separate KPI cards. Use one strong bezel or control-panel surface with counters embedded into it. Counter modules need real breathing room: padded interiors, clear grid gaps, visible inset between the console border and metrics, and no labels or numbers touching the module walls. The progress track should be thick, tactile, segmented, and readable from a distance. The module should communicate momentum first, then urgency, then the next action.",
81
+ "responsive": {
82
+ "mobile": "Stack primary counter, progress, metric rows, and action. Do not shrink numbers below comfortable reading size.",
83
+ "tablet": "Primary counter spans full width, with metrics in a two-by-two grid below.",
84
+ "desktop": "Counter and progress share the top row; metric strip and next unlock sit below as a dashboard-like control panel. Four-up metric rows require clear gutters and enough vertical height for label, value, and note."
85
+ },
86
+ "layout_hints": {
87
+ "single_console": "Treat the module as one instrument panel rather than individual cards.",
88
+ "labeling": "Every number needs a visible text label and goal context.",
89
+ "conversion_role": "The console should increase confidence and urgency before asking for action.",
90
+ "breathing_room": "Recommended scoreboard spacing: generous outer padding, at least 1rem gaps between metric modules, and metric module padding around 1rem+ on all sides."
91
+ },
92
+ "motion": {
93
+ "micro": {
94
+ "progress-fill": "segment fill grows left to right over 500ms",
95
+ "counter-flip": "LED digits count up or flip once when data changes"
96
+ },
97
+ "transitions": {
98
+ "mount": "Console frame appears instantly; counters animate after labels render."
99
+ }
100
+ },
101
+ "interactions": [
102
+ "animate-on-mount",
103
+ "real-time-updates",
104
+ "status-pulse",
105
+ "click-select"
106
+ ],
107
+ "composition": {
108
+ "BackerProgressConsole": "Console(arcade-bezel) > [PrimaryCounter + GoalProgress + MetricStrip + NextUnlock + Action?]",
109
+ "MetricStrip": "Grid > CampaignMetric[]",
110
+ "CampaignMetric": "Label + Value + OptionalDelta"
111
+ },
112
+ "accessibility": {
113
+ "role": "region",
114
+ "aria-label": "Campaign progress",
115
+ "keyboard": [
116
+ "Action button must be reachable after the progress summary.",
117
+ "Progress should expose aria-valuenow, aria-valuemin, and aria-valuemax when rendered as a progressbar."
118
+ ],
119
+ "announcements": [
120
+ "Campaign progress updated to {percent} percent.",
121
+ "{days} days remaining."
122
+ ]
123
+ },
124
+ "io": {
125
+ "consumes": [
126
+ "campaign-progress",
127
+ "campaign-metrics"
128
+ ],
129
+ "produces": [
130
+ "urgency-signal"
131
+ ],
132
+ "actions": [
133
+ "pledge-click",
134
+ "share-click"
135
+ ]
136
+ }
137
+ }