@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,119 @@
1
+ {
2
+ "id": "drag-sort-list",
3
+ "$schema": "https://decantr.ai/schemas/pattern.v2.json",
4
+ "version": "1.0.0",
5
+ "decantr_compat": ">=2.0.0",
6
+ "name": "Drag Sort List",
7
+ "description": "A vertically reorderable list with drag handles, keyboard reordering support, and animated position indicators for intuitive item rearrangement.",
8
+ "category": "interaction",
9
+ "tags": [
10
+ "2026",
11
+ "interaction",
12
+ "drag-and-drop",
13
+ "sortable",
14
+ "reorder",
15
+ "list"
16
+ ],
17
+ "components": [
18
+ "SortableList",
19
+ "SortableItem",
20
+ "DragHandle",
21
+ "PositionIndicator",
22
+ "DropZone"
23
+ ],
24
+ "default_preset": "standard",
25
+ "presets": {
26
+ "standard": {
27
+ "description": "Full-featured sortable list with drag handles, item content, and optional trailing actions — suitable for settings pages, playlist editors, and priority lists",
28
+ "layout": {
29
+ "layout": "stack",
30
+ "atoms": "_flex _flex-col _gap-0 _w100"
31
+ }
32
+ },
33
+ "compact": {
34
+ "description": "Minimal-height sortable rows at 36px each, optimized for dense data scenarios like column reordering panels or bulk sort interfaces",
35
+ "layout": {
36
+ "layout": "stack",
37
+ "atoms": "_flex _flex-col _gap-0 _w100 _text-sm"
38
+ }
39
+ },
40
+ "numbered": {
41
+ "description": "Sortable list with live-updating rank numbers displayed to the left of each item, ideal for leaderboards, priority queues, and ranked preference lists",
42
+ "layout": {
43
+ "layout": "stack",
44
+ "atoms": "_flex _flex-col _gap-0 _w100"
45
+ }
46
+ }
47
+ },
48
+ "visual_brief": "A vertical stack of list items, each rendered as a full-width row with a 6-dot grip icon (two columns of three dots, styled in muted gray) flush to the left edge serving as the drag handle. The drag handle area is 40px wide with a subtle hover background tint. Each item row has 12px vertical padding, a 1px bottom border in border-muted color, and transitions background-color on hover to a faint surface tint. When a user initiates a drag, the grabbed item lifts above the list with an elevated box-shadow (0 8px 24px rgba(0,0,0,0.15)) and a slight scale transform (1.02), maintaining its full width. The original position shows a 2px-high accent-colored horizontal line spanning the full list width as a drop indicator. As the dragged item moves vertically, items below the cursor shift downward with a smooth 200ms ease transition, and the accent drop-indicator line tracks the insertion point between items. On drop, the item settles into its new position with a 150ms ease-out transition. The numbered preset prepends a 32px-wide column showing rank numbers (1, 2, 3...) in semi-bold muted text that re-index live during drag — numbers animate between positions with a counter transition. The compact preset reduces row height to 36px, uses text-sm for content, narrows the drag handle to 28px, and removes the bottom border in favor of alternating row background tints (transparent / surface-subtle). All presets show a focus-visible ring (2px accent outline, 2px offset) around the currently keyboard-focused item.",
49
+ "layout_hints": {
50
+ "container": "card or inline",
51
+ "note": "Best placed inside a d-surface card. Each SortableItem is a full-width row. The list should have a max-height with overflow-y auto for long lists.",
52
+ "drag_handle": "The 6-dot grip icon MUST be the leftmost element in each row. It uses a 2×3 grid of 4px circles with 3px gaps. Color: text-muted, hover: text-default. cursor: grab, active: cursor: grabbing.",
53
+ "drop_zone": "The drop indicator line is absolutely positioned between items. It spans the full width of the list container, is 2px tall, and uses the accent color with a subtle glow (box-shadow: 0 0 4px var(--d-accent))."
54
+ },
55
+ "default_layout": {
56
+ "layout": "stack",
57
+ "atoms": "_flex _flex-col _gap-0 _w100 _relative",
58
+ "slots": {
59
+ "sortable-list": "The outer container for all sortable items. Renders as a vertical flex column with no gap (items are flush). Sets role='listbox' and aria-label='Reorderable list'. Manages drag state, tracks the currently dragged item index, and calculates drop position from pointer coordinates. On keyboard reorder, dispatches announcements like 'Item moved to position 3 of 7'. Has a subtle 1px border and border-radius-md when placed standalone.",
60
+ "sortable-item": "Repeating slot — one per list entry. Each item is a horizontal flex row with align-items center. Layout: [DragHandle (40px fixed) | Content (flex-1) | Actions? (auto)]. Background: transparent, hover: surface-subtle. Border-bottom: 1px solid border-muted (except last child). Padding: 12px vertical, 8px horizontal. When being dragged: position fixed, z-index 1000, width matches original, box-shadow: 0 8px 24px rgba(0,0,0,0.15), transform: scale(1.02), pointer-events: none on children except the handle. When another item is being dragged over this slot, it translates Y by the height of the dragged item with a 200ms ease transition. aria-roledescription='sortable item', aria-grabbed tracks drag state.",
61
+ "drag-handle": "A 40px-wide touch target containing a 6-dot grip icon (two vertical columns of three 4px circles, spaced 3px apart, centered within the handle area). Color: text-muted by default, text-default on hover. cursor: grab (grabbing when active). The handle has a subtle rounded background on hover (4px border-radius, bg-surface-hover). On focus-visible, shows a 2px accent ring. This is the only element that initiates drag — the rest of the row does not trigger reorder on pointer down. For touch devices, the handle area expands to 48px for easier targeting.",
62
+ "position-indicator": "The horizontal drop-target line shown between items during an active drag operation. Absolutely positioned within the list container at the calculated insertion point. Width: 100%, height: 2px, background: accent color. Enhanced with a subtle glow: box-shadow 0 0 6px color-mix(in srgb, var(--d-accent) 40%, transparent). Appears with a fast 100ms fade-in. Hidden when no drag is active. In the numbered preset, the indicator also shows a small floating badge with the prospective rank number.",
63
+ "drop-zone": "An invisible overlay region calculated per item that determines which gap the pointer is closest to. Each item has a top-half and bottom-half hit zone. When the pointer enters the top half, the indicator appears above that item; bottom half places it below. The drop zone extends 8px beyond the list edges to allow inserting at the very top or bottom. Visual feedback: none (the position-indicator handles all visual cues)."
64
+ }
65
+ },
66
+ "accessibility": {
67
+ "role": "listbox",
68
+ "aria-label": "Reorderable list",
69
+ "announcements": [
70
+ "Item {name} picked up from position {from}",
71
+ "Item {name} moved to position {to} of {total}",
72
+ "Item {name} dropped at position {to}",
73
+ "Reorder cancelled, item returned to position {from}"
74
+ ],
75
+ "keyboard": [
76
+ "Tab: move focus between sortable items",
77
+ "Space: pick up or drop the focused item for reordering",
78
+ "Arrow Up: move picked-up item one position up",
79
+ "Arrow Down: move picked-up item one position down",
80
+ "Escape: cancel reorder and return item to original position",
81
+ "Home: move picked-up item to first position",
82
+ "End: move picked-up item to last position"
83
+ ]
84
+ },
85
+ "responsive": {
86
+ "mobile": "Drag handle touch target expands to 48px width. Long-press (300ms) on the handle initiates drag to prevent accidental reorders during scroll. Drop indicator line remains 2px but gains a wider glow for visibility on small screens. Compact preset increases row height to 44px for touch accessibility. Numbered preset reduces rank number font size to text-xs.",
87
+ "tablet": "Full drag behavior supported with touch. Drag handle is 44px. Scroll container supports momentum scrolling while drag is inactive. When a drag is active, container scroll locks to prevent conflicting gestures.",
88
+ "desktop": "Standard mouse-based drag and drop. Drag handle shows grab cursor. Smooth item displacement animations at 200ms. Keyboard reorder fully supported with live aria announcements."
89
+ },
90
+ "motion": {
91
+ "micro": {
92
+ "handle-hover": "background-color fade 150ms ease",
93
+ "item-hover": "background-color fade 120ms ease"
94
+ },
95
+ "transitions": {
96
+ "item-lift": "box-shadow 0→elevated + scale 1→1.02, 200ms ease-out",
97
+ "item-drop": "box-shadow elevated→0 + scale 1.02→1, 150ms ease-out",
98
+ "item-shift": "translateY 200ms ease",
99
+ "rank-update": "counter value tween 200ms ease-in-out"
100
+ },
101
+ "ambient": {
102
+ "indicator-glow": "box-shadow pulse on accent 1.5s ease-in-out infinite while drag active"
103
+ }
104
+ },
105
+ "interactions": [
106
+ "drag-reorder",
107
+ "click-select",
108
+ "animate-on-mount",
109
+ "hover-reveal",
110
+ "stagger-children"
111
+ ],
112
+ "composition": {
113
+ "SortableList": "Container(d-section, role=listbox) > SortableItem*",
114
+ "SortableItem": "Row(d-interactive, flex, align-center) > [DragHandle + Content(flex-1) + Actions?]",
115
+ "DragHandle": "TouchTarget(40px, cursor=grab) > GripIcon(6-dot)",
116
+ "PositionIndicator": "Line(absolute, accent, 2px-h, full-width, glow)",
117
+ "DropZone": "HitArea(invisible, per-item, top-half|bottom-half)"
118
+ }
119
+ }
@@ -0,0 +1,132 @@
1
+ {
2
+ "$schema": "https://decantr.ai/schemas/pattern.v2.json",
3
+ "id": "earnings-dashboard",
4
+ "version": "1.0.0",
5
+ "decantr_compat": ">=2.0.0",
6
+ "name": "Earnings Dashboard",
7
+ "description": "Revenue analytics dashboard with KPIs, charts, tier breakdown, and recent transactions. Date range filtering and export capabilities.",
8
+ "dependencies": {
9
+ "patterns": {
10
+ "kpi-grid": "^1.0.0"
11
+ },
12
+ "styles": {},
13
+ "requires_core": {
14
+ "components": [
15
+ "Button",
16
+ "Card",
17
+ "Badge",
18
+ "Select",
19
+ "icon"
20
+ ],
21
+ "charts": [
22
+ "LineChart",
23
+ "BarChart",
24
+ "PieChart"
25
+ ]
26
+ }
27
+ },
28
+ "components": [
29
+ "Button",
30
+ "Card",
31
+ "Badge",
32
+ "Select",
33
+ "icon"
34
+ ],
35
+ "default_preset": "standard",
36
+ "presets": {
37
+ "standard": {
38
+ "description": "Full analytics view with all charts and data",
39
+ "components": [
40
+ "Button",
41
+ "Card",
42
+ "Badge",
43
+ "Select",
44
+ "icon"
45
+ ],
46
+ "layout": {
47
+ "layout": "stack",
48
+ "atoms": "_flex _col _gap6",
49
+ "slots": {
50
+ "kpis": "Revenue, MRR, subscribers, churn metrics",
51
+ "revenue-chart": "Line/bar chart of revenue over time",
52
+ "tier-breakdown": "Revenue by tier pie chart",
53
+ "recent-transactions": "Latest payments table",
54
+ "payout-status": "Next payout info card"
55
+ }
56
+ }
57
+ },
58
+ "summary": {
59
+ "description": "Condensed KPI view for dashboard home",
60
+ "components": [
61
+ "Card",
62
+ "Badge",
63
+ "icon"
64
+ ],
65
+ "layout": {
66
+ "layout": "grid",
67
+ "atoms": "_grid _gc2 _lg:gc4 _gap4",
68
+ "slots": {
69
+ "kpis": "Key metrics cards"
70
+ }
71
+ }
72
+ }
73
+ },
74
+ "default_layout": {
75
+ "layout": "stack",
76
+ "atoms": "_flex _col _gap6",
77
+ "slots": {
78
+ "kpis": "Key metrics",
79
+ "charts": "Revenue charts",
80
+ "transactions": "Recent payments"
81
+ }
82
+ },
83
+ "io": {
84
+ "produces": [
85
+ "date-range-changed",
86
+ "export-triggered"
87
+ ],
88
+ "consumes": [
89
+ "earnings-data",
90
+ "transaction-data"
91
+ ]
92
+ },
93
+ "visual_brief": "Dashboard layout with a row of KPI metric cards at the top (total revenue, subscribers, MRR, churn rate), each showing the value, trend arrow (up/down with green/red color), and percentage change. Below the KPIs, a large revenue line chart with date range selector (7d, 30d, 90d, 1y) and an overlaid area fill. A tier breakdown section shows revenue per subscription tier as a horizontal stacked bar or donut chart. A recent transactions table at the bottom lists individual payments with date, subscriber, amount, and status. Export button in the header.",
94
+ "responsive": {
95
+ "mobile": "KPI cards scroll horizontally or stack in a 2x2 grid. Charts take full width with simplified labels. Transactions table becomes a card list. Export button moves to a menu.",
96
+ "tablet": "KPIs in a single row. Charts render at full container width. Transactions table with horizontal scroll if needed.",
97
+ "desktop": "Full dashboard grid. KPIs span the top. Charts and tier breakdown side by side. Transactions table with all columns visible."
98
+ },
99
+ "layout_hints": {
100
+ "summary_first": "Lead with headline earnings metrics, then trend visualization, then transaction detail. The dashboard should tell a financial story from top to bottom rather than feeling like a loose pile of widgets.",
101
+ "chart_balance": "Revenue chart and tier breakdown should feel related but not equal in weight if one is clearly the primary insight surface.",
102
+ "trust_rhythm": "Keep totals, dates, and transaction states legible and conservative. This is a financial dashboard, so stability and clarity matter more than visual spectacle."
103
+ },
104
+ "motion": {
105
+ "micro": "KPI values and charts may reveal with restrained count-up or fade-in behavior, while export or range controls should respond crisply on hover and focus.",
106
+ "transitions": "Date-range changes should animate smoothly enough to preserve context without making revenue interpretation feel unstable."
107
+ },
108
+ "interactions": [
109
+ "drag-reorder",
110
+ "click-select",
111
+ "animate-on-mount",
112
+ "real-time-updates",
113
+ "hover-tooltip"
114
+ ],
115
+ "accessibility": {
116
+ "role": "region",
117
+ "aria-label": "Earnings dashboard",
118
+ "keyboard": [
119
+ "Header controls, KPI cards, charts, and transaction surfaces should remain keyboard reachable in reading order."
120
+ ],
121
+ "announcements": [
122
+ "Revenue totals, trend directions, and date-range changes should be exposed semantically so the dashboard remains understandable beyond visual chart treatments."
123
+ ]
124
+ },
125
+ "composition": {
126
+ "EarningsDashboard": "Container(d-section, flex-col, gap-6) > [KPIRow + RevenueChart + TierBreakdown + TransactionsTable + PayoutStatus?]",
127
+ "KPIRow": "Grid(d-data, 4-col) > KPICard(d-surface)[]",
128
+ "KPICard": "Card > [Value(heading2, mono-data) + TrendArrow(color: positive|negative) + Label(text-muted)]",
129
+ "RevenueChart": "Card(d-surface) > [DateRangeSelector(d-control) + Chart(d-data, area-fill)]",
130
+ "TransactionsTable": "Card(d-surface) > [Table(d-data) > TransactionRow[]]"
131
+ }
132
+ }
@@ -0,0 +1,113 @@
1
+ {
2
+ "id": "emissions-sankey",
3
+ "$schema": "https://decantr.ai/schemas/pattern.v2.json",
4
+ "version": "1.0.0",
5
+ "decantr_compat": ">=2.0.0",
6
+ "name": "Emissions Sankey",
7
+ "description": "A left-to-right Sankey diagram visualising the flow of greenhouse gas emissions from sources, through scope categories, to a final total footprint with target markers.",
8
+ "category": "climate",
9
+ "tags": [
10
+ "2026",
11
+ "climate",
12
+ "sankey",
13
+ "emissions",
14
+ "ghg",
15
+ "flow-diagram",
16
+ "sustainability"
17
+ ],
18
+ "components": [
19
+ "SankeyCanvas",
20
+ "SourceNode",
21
+ "FlowPath",
22
+ "CategoryNode",
23
+ "TargetMarker",
24
+ "LegendBox"
25
+ ],
26
+ "default_preset": "scope-view",
27
+ "presets": {
28
+ "scope-view": {
29
+ "description": "Flows grouped by GHG Protocol scopes (Scope 1/2/3) feeding into a single total tCO2e node with target reduction marker overlay",
30
+ "layout": {
31
+ "layout": "horizontal-flow",
32
+ "atoms": "_relative _w100 _h100 _bg-surface _p-6 _overflow-visible"
33
+ }
34
+ },
35
+ "supply-chain": {
36
+ "description": "Source-to-product-to-customer flow showing emissions moving through suppliers, manufacturing processes, and into finished goods delivered to customers",
37
+ "layout": {
38
+ "layout": "horizontal-flow",
39
+ "atoms": "_relative _w100 _h100 _bg-surface _p-6 _overflow-visible"
40
+ }
41
+ },
42
+ "reduction": {
43
+ "description": "Emphasises reduction outflows rendered in green against baseline red flows, visualising abatement levers and residual emissions against net-zero target",
44
+ "layout": {
45
+ "layout": "horizontal-flow",
46
+ "atoms": "_relative _w100 _h100 _bg-surface _p-6 _overflow-visible"
47
+ }
48
+ }
49
+ },
50
+ "visual_brief": "A wide, left-to-right Sankey diagram rendered on a light-neutral canvas. On the far left, a stack of source nodes (Suppliers, Operations, Travel, Energy, Waste) appear as rounded rectangles labelled with monospace tCO2e values. Curved bezier flow paths fan rightward into a central column of emission category nodes (Scope 1 deep red #B22222, Scope 2 burnt orange #D97706, Scope 3 amber yellow #F59E0B) where flow width is proportional to tonnage. Reduction flows appear as inward green (#16A34A) ribbons pointing backwards. A horizontal dashed target marker line crosses the total node on the right indicating the net-zero goal with a small flag label. Hovering any flow path reveals a tooltip with absolute tCO2e, percentage of total, and source-to-category pair. Legend box in the bottom-right lists scope colors with descriptions. Subtle grid lines in the background provide scale reference.",
51
+ "layout_hints": {
52
+ "container": "d-section",
53
+ "note": "Full-width horizontal Sankey. Min-height 480px. Flow paths must use SVG with bezier curves and animated dash-offset on hover.",
54
+ "data_labels": "All tonnage values MUST appear with units (tCO2e) in monospace. Percentages shown to 1 decimal place.",
55
+ "color_semantics": "Scope 1 = deep red, Scope 2 = orange, Scope 3 = yellow, reductions = green. Never reverse these semantics."
56
+ },
57
+ "default_layout": {
58
+ "layout": "horizontal-flow",
59
+ "atoms": "_relative _w100 _h100 _bg-surface _p-6 _overflow-visible",
60
+ "slots": {
61
+ "sankey-canvas": "The full SVG viewport rendering source nodes, flow paths, and category nodes. Uses a responsive viewBox that scales path widths proportionally to tonnage values. Background is subtle neutral with optional grid.",
62
+ "source-node": "Repeating slot for each emission source on the left edge. Rounded rectangle (width 140px, variable height based on emission magnitude) with source name in sans-serif and tCO2e in monospace below.",
63
+ "flow-path": "SVG cubic bezier path connecting a source-node to a category-node. Path width encodes tCO2e volume. Fill uses gradient from source color to category color. Hover state raises opacity and shows tooltip.",
64
+ "category-node": "Center-column scope category rectangles (Scope 1/2/3). Colored according to scope semantics. Display category name, total tonnage, and percent of company total.",
65
+ "target-marker": "Dashed horizontal line overlaid on the rightmost total node. Includes a small flag label with target year and reduction percentage (e.g. '2030 -50%').",
66
+ "legend-box": "Bottom-right anchored panel listing scope colors, reduction color, and unit definitions. Uses backdrop-blur with thin border."
67
+ }
68
+ },
69
+ "accessibility": {
70
+ "role": "img",
71
+ "aria-label": "Greenhouse gas emissions Sankey diagram showing flows from sources through scopes to total footprint",
72
+ "announcements": [
73
+ "Flow from {source} to {category}: {value} tCO2e ({percent} of total)",
74
+ "Target marker: {year} reduction goal of {percent}"
75
+ ],
76
+ "keyboard": [
77
+ "Tab: cycle through source nodes, then flow paths, then category nodes",
78
+ "Enter: open detail tooltip for focused element",
79
+ "Escape: dismiss tooltip"
80
+ ]
81
+ },
82
+ "responsive": {
83
+ "mobile": "Sankey rotates to vertical top-to-bottom flow. Flow labels hidden by default, accessible on tap. Legend collapses to expandable disclosure.",
84
+ "tablet": "Horizontal Sankey retained but reduces source node count (merges smaller sources into 'Other'). Legend docks to bottom edge."
85
+ },
86
+ "motion": {
87
+ "micro": {
88
+ "flow-hover": "opacity 0.6 to 1.0 + stroke-width +2px 180ms ease-out",
89
+ "node-hover": "scale(1.02) + shadow-elevate 200ms ease-out"
90
+ },
91
+ "transitions": {
92
+ "data-update": "flow-path width interpolate 600ms ease-in-out",
93
+ "preset-switch": "cross-fade 400ms ease"
94
+ },
95
+ "ambient": {
96
+ "flow-pulse": "subtle dash-offset drift 8s linear infinite on active flows"
97
+ }
98
+ },
99
+ "interactions": [
100
+ "animate-on-mount",
101
+ "hover-tooltip",
102
+ "real-time-updates"
103
+ ],
104
+ "composition": {
105
+ "EmissionsSankey": "Section(d-section) > SankeyCanvas > [SourceNode[] + FlowPath[](animated) + CategoryNode[] + TargetMarker] + LegendBox",
106
+ "SankeyCanvas": "SVG(viewBox-responsive) > [Background(grid) + NodeLayer + FlowLayer + OverlayLayer]",
107
+ "SourceNode": "Rect(rounded, positioned) > [SourceName + TonnageLabel(mono)]",
108
+ "FlowPath": "Path(bezier, gradient-fill) > Tooltip(tonnage + percent)",
109
+ "CategoryNode": "Rect(scope-colored) > [CategoryName + TotalTonnage + PercentShare]",
110
+ "TargetMarker": "Line(dashed) + Flag(year + reduction-target)",
111
+ "LegendBox": "Panel(d-annotation, backdrop-blur) > LegendItem[]"
112
+ }
113
+ }
@@ -0,0 +1,115 @@
1
+ {
2
+ "$schema": "https://decantr.ai/schemas/pattern.v2.json",
3
+ "id": "emoji-reaction-bar",
4
+ "version": "1.0.0",
5
+ "decantr_compat": ">=2.0.0",
6
+ "name": "Emoji Reaction Bar",
7
+ "description": "A social reaction picker displaying emoji chips with counts and animated additions. Users can react with emojis, see aggregated counts, and open a popover picker to add new reactions. Supports inline, floating, and compact display modes.",
8
+ "category": "social",
9
+ "tags": [
10
+ "2026",
11
+ "social",
12
+ "emoji",
13
+ "reaction",
14
+ "interactive",
15
+ "engagement",
16
+ "feedback"
17
+ ],
18
+ "components": [
19
+ "ReactionBar",
20
+ "ReactionChip",
21
+ "ReactionPicker",
22
+ "AddButton"
23
+ ],
24
+ "default_preset": "inline",
25
+ "presets": {
26
+ "inline": {
27
+ "description": "Horizontal row of reaction chips rendered directly beneath content, with add button at the end — standard placement for posts and comments",
28
+ "layout": {
29
+ "layout": "row",
30
+ "atoms": "_flex _row _wrap _gap2 _aic _py1"
31
+ }
32
+ },
33
+ "floating": {
34
+ "description": "Reaction bar rendered as a floating toolbar that appears on hover above the target content, with rounded pill shape and subtle shadow",
35
+ "layout": {
36
+ "layout": "row",
37
+ "atoms": "_absolute _top-[-40px] _left0 _flex _row _gap1 _px2 _py1 _rounded-full _shadow-md"
38
+ }
39
+ },
40
+ "compact": {
41
+ "description": "Icon-only mode showing just emoji symbols without counts — suitable for tight spaces like table cells or message actions",
42
+ "layout": {
43
+ "layout": "row",
44
+ "atoms": "_flex _row _gap1 _aic"
45
+ }
46
+ }
47
+ },
48
+ "visual_brief": "A horizontal row of small pill-shaped chips, each 28px tall with 8px horizontal padding and border-radius 14px (full pill). Each chip contains an emoji character (16px) on the left and a count number (12px, medium weight, tabular-nums) on the right, separated by 4px gap. Chip background is a muted surface color. When the current user has reacted with a particular emoji, that chip gets an accent-colored border (2px) and a faint accent background tint to indicate ownership. Chips are ordered by count descending, then by time of first reaction. At the end of the row sits an AddButton: a 28px circle with a '+' icon (14px, muted color) that opens the ReactionPicker popover on click. The ReactionPicker is a popover panel (240px wide) positioned above the add button, with a 6-column grid of emoji buttons (36px each, with hover highlight). The picker has a search input at the top (with a small magnifying glass icon) for filtering emojis, and category tabs (Smileys, Gestures, Hearts, Objects, Flags) below the search. The popover has border-radius 12px, subtle shadow, and a small arrow pointing down to the add button. Adding a new reaction causes the corresponding chip to bounce (scale 1 to 1.3 to 1 over 300ms with spring easing). If the emoji chip is new, it slides in from the right edge of the bar with a 200ms ease-out animation. Count numbers animate with a rolling digit effect (old number slides up and fades out while new number slides up from below and fades in, 150ms). Removing a reaction (clicking an owned chip) reverses the bounce (scale 1 to 0.8 to 1) and decrements the count with the same rolling animation. If count reaches 0, the chip shrinks width to 0 and fades out over 200ms.",
49
+ "default_layout": {
50
+ "layout": "row",
51
+ "atoms": "_flex _row _wrap _gap2 _aic _py1",
52
+ "slots": {
53
+ "reaction-bar": "Horizontal flex container wrapping all ReactionChip elements and the trailing AddButton. Supports wrapping to multiple rows when many reactions are present. Gap of 6px between chips. Inline preset renders directly in document flow; floating preset uses absolute positioning with shadow and pill background.",
54
+ "reaction-chip": "Repeating slot — one per unique emoji reaction. A small pill (28px height, full border-radius) containing the emoji character and the reaction count. Background: muted surface. User's own reactions: accent border (2px) and faint accent background tint. Hover: slightly elevated shadow and background lighten. Click toggles the user's reaction on/off. Count uses tabular-nums font-feature for stable width.",
55
+ "add-button": "A circular button (28px diameter) at the end of the reaction row. Displays a '+' icon in muted color. On click, opens the ReactionPicker popover. Hover: background lightens, icon color becomes accent. Focus ring visible on keyboard focus.",
56
+ "reaction-picker": "Popover panel (240px wide, border-radius 12px, shadow-lg) positioned above the AddButton with a downward-pointing arrow. Contains a search input at the top for filtering emojis by name, category tab bar below, and a 6-column grid of emoji buttons (36px touch targets). Each emoji button highlights on hover. Selecting an emoji adds the reaction and closes the picker. Picker dismisses on click outside or Escape."
57
+ }
58
+ },
59
+ "accessibility": {
60
+ "role": "toolbar",
61
+ "aria-label": "Emoji reactions",
62
+ "announcements": [
63
+ "Reaction added: {emoji} — total {count}",
64
+ "Reaction removed: {emoji} — total {count}",
65
+ "Reaction picker opened with {total} emojis available",
66
+ "Reaction picker closed",
67
+ "{emoji}: {count} reactions, {user_reacted ? 'you reacted' : 'not reacted'}"
68
+ ],
69
+ "keyboard": [
70
+ "Arrow Left/Right: navigate between reaction chips and add button",
71
+ "Enter or Space: toggle reaction on focused chip, or open picker on add button",
72
+ "Escape: close the reaction picker popover",
73
+ "Arrow keys inside picker: navigate the emoji grid",
74
+ "Type to search: when picker is open, typing filters emojis"
75
+ ]
76
+ },
77
+ "responsive": {
78
+ "mobile": "Reaction chips use 32px height for touch targets. Picker opens as a bottom sheet (full width, 50vh height) instead of a popover. Emoji grid uses 5 columns. Long-press on a chip shows who reacted in a tooltip. Chips wrap to multiple rows freely.",
79
+ "tablet": "Standard inline layout. Picker opens as a popover positioned above. 6-column emoji grid. Tap to toggle reactions.",
80
+ "desktop": "Full layout with hover states on chips. Picker opens as a popover. Hovering a chip shows a tooltip listing the first 5 users who reacted. Keyboard navigation fully supported."
81
+ },
82
+ "layout_hints": {
83
+ "bar_role": "The reaction bar is a lightweight engagement affordance that should sit close to the content it belongs to without overshadowing the main thread or post body.",
84
+ "chip_density": "Keep chips compact and readable. Ownership state, count, and add affordance should all remain scannable even when many reactions accumulate.",
85
+ "picker_anchor": "The picker should feel physically attached to the add button or reaction rail. On mobile, the bottom-sheet translation should preserve that same semantic relationship."
86
+ },
87
+ "motion": {
88
+ "micro": {
89
+ "chip-hover": "background lighten + translateY(-1px) 120ms ease-out",
90
+ "chip-press": "scale(0.95) 60ms ease-in",
91
+ "add-button-hover": "background lighten + rotate(90deg) on '+' icon 200ms ease-out"
92
+ },
93
+ "transitions": {
94
+ "reaction-add": "scale(1→1.3→1) 300ms cubic-bezier(0.34, 1.56, 0.64, 1) spring bounce on chip",
95
+ "reaction-remove": "scale(1→0.8→1) 200ms ease-out on chip",
96
+ "chip-enter": "translateX(20px)→translateX(0) + opacity 0→1 200ms ease-out for new chips",
97
+ "chip-exit": "width→0 + opacity 1→0 200ms ease-in for removed chips",
98
+ "count-roll": "old digit translateY(0→-100%) + opacity 1→0, new digit translateY(100%→0) + opacity 0→1, 150ms ease-out",
99
+ "picker-open": "scale(0.9→1) + opacity 0→1 200ms cubic-bezier(0.16, 1, 0.3, 1)",
100
+ "picker-close": "scale(1→0.9) + opacity 1→0 150ms ease-in"
101
+ },
102
+ "ambient": {}
103
+ },
104
+ "interactions": [
105
+ "click-select",
106
+ "animate-on-mount",
107
+ "scale-hover"
108
+ ],
109
+ "composition": {
110
+ "ReactionBar": "Row(d-interactive, flex, wrap, gap-2) > ReactionChip*(d-interactive) + AddButton(d-interactive)",
111
+ "ReactionChip": "Pill(d-surface, border: accent-if-owned, rounded-full, h-28) > [Emoji(text-base) + Count(mono-data, tabular-nums, text-xs)]",
112
+ "AddButton": "Circle(d-interactive, rounded-full, h-28, w-28) > PlusIcon(muted)",
113
+ "ReactionPicker": "Popover(d-surface, shadow-lg, rounded-xl, w-240) > [SearchInput + CategoryTabs + EmojiGrid(6-col) > EmojiButton*]"
114
+ }
115
+ }
@@ -0,0 +1,132 @@
1
+ {
2
+ "id": "esports-matchday-command",
3
+ "$schema": "https://decantr.ai/schemas/pattern.v2.json",
4
+ "version": "1.0.0",
5
+ "decantr_compat": ">=2.0.0",
6
+ "name": "Esports Matchday Command",
7
+ "description": "A full-bleed cinematic esports homepage pattern built around a live match hero, broadcast telemetry, roster matchup panel, vertical update reel, and aggressive gaming CTAs.",
8
+ "category": "esports",
9
+ "tags": [
10
+ "2026",
11
+ "esports",
12
+ "gaming",
13
+ "matchday",
14
+ "broadcast",
15
+ "full-bleed",
16
+ "immersive",
17
+ "homepage"
18
+ ],
19
+ "components": [
20
+ "BroadcastStage",
21
+ "MatchHeadline",
22
+ "TitleGleam",
23
+ "LiveTelemetryStrip",
24
+ "CutButton",
25
+ "LiveRosterPanel",
26
+ "PlayerAvatarRow",
27
+ "VerticalUpdateReel",
28
+ "ArenaCanvas",
29
+ "CommandLayerRunway",
30
+ "AccessTeaser"
31
+ ],
32
+ "contained": false,
33
+ "default_preset": "broadcast-home",
34
+ "presets": {
35
+ "broadcast-home": {
36
+ "description": "Full homepage treatment with fixed immersive header, first-viewport match stage, right-side 5v5 roster panel, vertical live update reel, command layers section, and access teaser.",
37
+ "layout": {
38
+ "layout": "full-bleed-stage",
39
+ "atoms": "_relative _minh[100dvh] _overflow-hidden _px0 _py0"
40
+ }
41
+ },
42
+ "hero-only": {
43
+ "description": "First-viewport match hero only. Use when the page needs a cinematic top section but the rest of the route is composed from separate product patterns.",
44
+ "layout": {
45
+ "layout": "hero-stage",
46
+ "atoms": "_relative _grid _minh[100dvh] _overflow-hidden"
47
+ }
48
+ },
49
+ "compact": {
50
+ "description": "Compressed broadcast stage for route previews and smaller public pages. Keeps headline, live score, CTAs, and roster proof while dropping secondary command-layer sections.",
51
+ "layout": {
52
+ "layout": "compact-stage",
53
+ "atoms": "_relative _grid _minh[72dvh] _overflow-hidden"
54
+ }
55
+ }
56
+ },
57
+ "visual_brief": "The page should feel like a professional live esports broadcast command surface, not a generic SaaS landing page. The first viewport is a dark arena-like stage with cyan, acid green, violet, and red light beams over a subtle perspective grid. A huge italic uppercase match headline names a specific live match, for example 'Team Vitality vs. r3Fraction'. The headline stays white while a narrow gleam sweeps left-to-right on load and then repeats every few seconds. Supporting copy is short and operational. A compact telemetry strip sits beneath it with current score, map, map-ban timer, comms, form, and momentum. Primary actions use angular cut/parallelogram buttons, not pills. The right third of desktop contains a liquid-glass roster panel with a score row at the top, two-column 5v5 circular-avatar player matchups, and a vertical rolling update reel in the empty lower space. The bottom page ticker is forbidden; live updates belong inside the roster panel. Ambient animation may include a radar/galaxy layer on desktop top-left and mobile right-side, but avoid mascot, controller, or decorative character graphics that compete with the copy.",
58
+ "layout_hints": {
59
+ "container": "full-bleed route section, never a d-surface card",
60
+ "shell": "Prefer immersive-stage. If top-nav-footer is used, override its default section padding and make the header flush full-width.",
61
+ "headline": "Use bold italic display typography with no negative letter spacing. Text should remain white at rest; shimmer is an overlay only.",
62
+ "buttons": "Use angular clipped buttons with hover gleam, slight skew/translate on hover, and active press feedback. Avoid rounded pill CTAs.",
63
+ "roster_panel": "Desktop panel is about one third of viewport width. It starts with the score row, not an extra 'Live roster / 5v5' label strip.",
64
+ "updates": "Use a vertical rolling update reel inside the roster panel. Duplicate reel items for seamless looping. Fade top/bottom edges.",
65
+ "anti_patterns": "Do not use generic hero paragraph CTA card scaffolds, chip-heavy hero badges, nested cards, bottom horizontal marquees, mascot/controller hero graphics, or blocky grid-card wrapping in the first viewport."
66
+ },
67
+ "default_layout": {
68
+ "layout": "full-bleed-stage",
69
+ "atoms": "_relative _minh[100dvh] _overflow-hidden _px0 _py0",
70
+ "slots": {
71
+ "broadcast-stage": "Full-viewport background stage with perspective grid, scanline/grain texture, and colored light beams.",
72
+ "match-headline": "Large match title with explicit teams and small VS tag tucked into the line flow.",
73
+ "live-telemetry-strip": "Inline score and operating metrics below supporting copy.",
74
+ "cut-button": "Primary and secondary angular CTAs with icon support and animated hover state.",
75
+ "live-roster-panel": "Glass panel containing score row, 5v5 player avatar matchups, and update reel.",
76
+ "vertical-update-reel": "Top-to-bottom rolling match updates contained inside the roster panel.",
77
+ "command-layer-runway": "Second section with three free-form operating layers for pressure, replay, and partner control.",
78
+ "access-teaser": "Login or access teaser can use a split scene later on the page, not inside the first hero card."
79
+ }
80
+ },
81
+ "composition": {
82
+ "EsportsMatchdayCommand": "Page(full-bleed) > BroadcastStage > [AmbientCanvas + HeaderShell + HeroGrid > [HeroCopy > [Eyebrow + MatchHeadline + Lede + LiveTelemetryStrip + ActionDock] + LiveRosterPanel > [ScoreRow + RosterGrid + VerticalUpdateReel]]] + CommandLayerRunway + AccessTeaser",
83
+ "MatchHeadline": "Heading(display, italic, uppercase) > [TeamName(primary) + VsTag + TeamName(opponent)] with TitleGleam overlay",
84
+ "LiveTelemetryStrip": "Masked horizontal grid > [ScoreCell + TimerCell + CommsCell + FormCell + MomentumCell]",
85
+ "LiveRosterPanel": "GlassPanel(liquid, translucent) > [ScoreRow + RosterGrid(5 rows, 2 columns) + VerticalUpdateReel]",
86
+ "VerticalUpdateReel": "MaskedViewport(height fixed) > ReelTrack(duplicated updates, translateY loop) > UpdateRow[] > [Timestamp + EventText]",
87
+ "CommandLayerRunway": "Open full-width section with three offset layers, each border-accented by a different match color"
88
+ },
89
+ "accessibility": {
90
+ "role": "region",
91
+ "aria-label": "Live esports matchday command homepage",
92
+ "announcements": [
93
+ "Live score {teamA} {scoreA}, {teamB} {scoreB}",
94
+ "Match update: {event} at {time}"
95
+ ],
96
+ "keyboard": [
97
+ "Tab: move through navigation, CTAs, roster panel, and access form",
98
+ "Enter: activate CTAs",
99
+ "Space: pause live update reel when focused if implemented as an interactive control"
100
+ ],
101
+ "focus_management": "Animated updates should not steal focus. Provide readable text alternatives for canvas-only ambience."
102
+ },
103
+ "responsive": {
104
+ "mobile": "Single-column stage. Header hides secondary nav links. Headline reduces enough to fit without clipping. Telemetry becomes two columns, then one column below very narrow widths. Roster panel stacks beneath CTAs; player matchups become vertical pairs. Radar ambience may move to the right side and should never obscure the lede.",
105
+ "tablet": "Hero copy stays first, roster panel moves beneath or beside depending on available width. Keep the match title readable and preserve the score row.",
106
+ "desktop": "Hero uses two columns: copy consumes remaining width, roster panel occupies roughly one third. Ambient radar sits top-left. Header accent line spans full viewport width."
107
+ },
108
+ "motion": {
109
+ "ambient": {
110
+ "title-gleam": "Overlay shimmer sweeps left-to-right on load and repeats about every 4 seconds while base text stays white.",
111
+ "radar": "Subtle rotating radar or orbital particle layer, desktop top-left and mobile right-side.",
112
+ "vertical-reel": "Live update reel rolls vertically with top and bottom mask fades.",
113
+ "scanline": "Optional low-opacity scanline texture, disabled under reduced motion."
114
+ },
115
+ "micro": {
116
+ "button-hover": "Cut buttons translate up, skew slightly, and sweep a light band across the fill.",
117
+ "button-active": "Button presses down by 1px and scales slightly.",
118
+ "live-beacon": "Primary live CTA includes pulsing dot/ring icon."
119
+ },
120
+ "transitions": {
121
+ "hero-enter": "Headline and telemetry fade up quickly; roster panel follows with a soft lift."
122
+ }
123
+ },
124
+ "interactions": [
125
+ "animate-on-mount",
126
+ "status-pulse",
127
+ "glow-hover",
128
+ "live-simulation",
129
+ "real-time-updates",
130
+ "keyboard-navigation"
131
+ ]
132
+ }