@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.
- package/LICENSE +21 -0
- package/README.md +58 -0
- package/archetypes/about-hybrid.json +104 -0
- package/archetypes/admin-analytics.json +63 -0
- package/archetypes/admin-moderation.json +87 -0
- package/archetypes/admin-overview.json +77 -0
- package/archetypes/agent-orchestrator.json +178 -0
- package/archetypes/agent-studio.json +154 -0
- package/archetypes/ai-chatbot.json +121 -0
- package/archetypes/ai-transparency.json +140 -0
- package/archetypes/alert-manager-pro.json +154 -0
- package/archetypes/api-console.json +130 -0
- package/archetypes/api-reference.json +95 -0
- package/archetypes/appointment-center.json +113 -0
- package/archetypes/asset-browser.json +90 -0
- package/archetypes/audit-center.json +103 -0
- package/archetypes/auth-flow-enterprise.json +140 -0
- package/archetypes/auth-flow.json +101 -0
- package/archetypes/auth-full.json +199 -0
- package/archetypes/auth-gateway.json +76 -0
- package/archetypes/billing-portal.json +75 -0
- package/archetypes/billing.json +74 -0
- package/archetypes/budget-planner.json +63 -0
- package/archetypes/budget-transparency.json +117 -0
- package/archetypes/buyer-dashboard.json +124 -0
- package/archetypes/changelog-center.json +96 -0
- package/archetypes/character-library.json +113 -0
- package/archetypes/citation-tools.json +98 -0
- package/archetypes/cloud-infrastructure.json +253 -0
- package/archetypes/cloud-marketing.json +111 -0
- package/archetypes/collaboration-hub.json +87 -0
- package/archetypes/community-feed.json +131 -0
- package/archetypes/config-editor.json +136 -0
- package/archetypes/contact.json +82 -0
- package/archetypes/content-author.json +121 -0
- package/archetypes/content-editor.json +82 -0
- package/archetypes/content-newsletter.json +111 -0
- package/archetypes/content-reader.json +135 -0
- package/archetypes/content-site.json +112 -0
- package/archetypes/contract-center.json +120 -0
- package/archetypes/cook-mode.json +57 -0
- package/archetypes/copilot-settings.json +87 -0
- package/archetypes/copilot-workspace.json +110 -0
- package/archetypes/creator-content.json +128 -0
- package/archetypes/creator-dashboard.json +105 -0
- package/archetypes/creator-earnings.json +100 -0
- package/archetypes/creator-subscribers.json +99 -0
- package/archetypes/creator-tiers.json +76 -0
- package/archetypes/crm-dashboard.json +199 -0
- package/archetypes/crm-email.json +88 -0
- package/archetypes/crm-intelligence.json +85 -0
- package/archetypes/crm-meetings.json +95 -0
- package/archetypes/customer-loyalty.json +75 -0
- package/archetypes/customer-management.json +76 -0
- package/archetypes/daily-operations.json +62 -0
- package/archetypes/dashboard-core.json +87 -0
- package/archetypes/data-repository.json +81 -0
- package/archetypes/deal-workspace.json +126 -0
- package/archetypes/doc-browser.json +111 -0
- package/archetypes/document-editor.json +147 -0
- package/archetypes/document-vault.json +119 -0
- package/archetypes/ecommerce-admin.json +138 -0
- package/archetypes/ecommerce-checkout.json +57 -0
- package/archetypes/ecommerce.json +138 -0
- package/archetypes/emissions-dashboard.json +136 -0
- package/archetypes/engagement-hub.json +157 -0
- package/archetypes/eval-suite.json +142 -0
- package/archetypes/event-discovery.json +130 -0
- package/archetypes/experiment-tracker.json +83 -0
- package/archetypes/fan-checkout.json +107 -0
- package/archetypes/fan-library.json +99 -0
- package/archetypes/fan-storefront.json +106 -0
- package/archetypes/financial-dashboard.json +127 -0
- package/archetypes/game-catalog.json +120 -0
- package/archetypes/gaming-community.json +196 -0
- package/archetypes/governance-center.json +82 -0
- package/archetypes/health-records.json +111 -0
- package/archetypes/instrument-booking.json +82 -0
- package/archetypes/inventory-supplies.json +72 -0
- package/archetypes/investment-tracker.json +82 -0
- package/archetypes/investor-portal.json +124 -0
- package/archetypes/job-monitor.json +109 -0
- package/archetypes/kitchen-display.json +58 -0
- package/archetypes/lab-notebook.json +83 -0
- package/archetypes/landing-hero.json +145 -0
- package/archetypes/landing-legal.json +101 -0
- package/archetypes/landing-resources.json +127 -0
- package/archetypes/launch-campaign.json +393 -0
- package/archetypes/legal.json +107 -0
- package/archetypes/listing-browser.json +160 -0
- package/archetypes/log-explorer-pro.json +106 -0
- package/archetypes/log-viewer.json +123 -0
- package/archetypes/maintenance-center.json +116 -0
- package/archetypes/marketing-ai-studio.json +117 -0
- package/archetypes/marketing-civic.json +116 -0
- package/archetypes/marketing-climate.json +94 -0
- package/archetypes/marketing-content.json +109 -0
- package/archetypes/marketing-copilot.json +100 -0
- package/archetypes/marketing-creator.json +132 -0
- package/archetypes/marketing-crm.json +96 -0
- package/archetypes/marketing-deal-room.json +100 -0
- package/archetypes/marketing-devtool.json +139 -0
- package/archetypes/marketing-docs.json +92 -0
- package/archetypes/marketing-ecommerce.json +69 -0
- package/archetypes/marketing-esports.json +89 -0
- package/archetypes/marketing-events.json +89 -0
- package/archetypes/marketing-finance.json +69 -0
- package/archetypes/marketing-fractional.json +74 -0
- package/archetypes/marketing-health.json +100 -0
- package/archetypes/marketing-landing.json +65 -0
- package/archetypes/marketing-legal.json +86 -0
- package/archetypes/marketing-marketplace.json +121 -0
- package/archetypes/marketing-observability.json +95 -0
- package/archetypes/marketing-pipeline.json +108 -0
- package/archetypes/marketing-platform.json +129 -0
- package/archetypes/marketing-producer.json +88 -0
- package/archetypes/marketing-productivity.json +139 -0
- package/archetypes/marketing-realestate.json +101 -0
- package/archetypes/marketing-recipe.json +69 -0
- package/archetypes/marketing-research.json +72 -0
- package/archetypes/marketing-restaurant.json +53 -0
- package/archetypes/marketing-saas-v2.json +75 -0
- package/archetypes/marketing-saas.json +119 -0
- package/archetypes/marketing-swipecircle.json +185 -0
- package/archetypes/marketing-video-studio.json +121 -0
- package/archetypes/marketplace-messaging.json +106 -0
- package/archetypes/matter-management.json +104 -0
- package/archetypes/meeting-archive.json +131 -0
- package/archetypes/menu-management.json +73 -0
- package/archetypes/metrics-monitor.json +164 -0
- package/archetypes/metrics-overview-dashboard.json +112 -0
- package/archetypes/music-workspace.json +104 -0
- package/archetypes/notifications.json +68 -0
- package/archetypes/offset-marketplace.json +134 -0
- package/archetypes/onboarding-wizard.json +203 -0
- package/archetypes/order-fulfillment.json +83 -0
- package/archetypes/order-management.json +71 -0
- package/archetypes/organizer-dashboard.json +146 -0
- package/archetypes/owner-dashboard.json +112 -0
- package/archetypes/ownership-dashboard.json +97 -0
- package/archetypes/patient-dashboard.json +142 -0
- package/archetypes/pipeline-builder.json +116 -0
- package/archetypes/pm-financials.json +126 -0
- package/archetypes/portfolio-about.json +85 -0
- package/archetypes/portfolio-blog.json +71 -0
- package/archetypes/portfolio-overview.json +76 -0
- package/archetypes/portfolio-showcase.json +71 -0
- package/archetypes/portfolio.json +122 -0
- package/archetypes/product-management.json +84 -0
- package/archetypes/project-library.json +111 -0
- package/archetypes/prompt-director.json +118 -0
- package/archetypes/prompt-library.json +135 -0
- package/archetypes/property-manager.json +158 -0
- package/archetypes/qa-workflow.json +116 -0
- package/archetypes/recipe-browser.json +83 -0
- package/archetypes/recipe-community.json +126 -0
- package/archetypes/recipe-creator.json +71 -0
- package/archetypes/recipe-social.json +95 -0
- package/archetypes/recipefork-ai-kitchen.json +95 -0
- package/archetypes/recipefork-auth.json +79 -0
- package/archetypes/recipefork-cookbooks.json +104 -0
- package/archetypes/recipefork-landing.json +101 -0
- package/archetypes/recipefork-profile.json +180 -0
- package/archetypes/recipefork-recipe-authoring.json +216 -0
- package/archetypes/recipefork-recipe-detail.json +139 -0
- package/archetypes/recipefork-social.json +103 -0
- package/archetypes/registry-browser.json +121 -0
- package/archetypes/render-monitor.json +114 -0
- package/archetypes/reporting-center.json +107 -0
- package/archetypes/research-workspace.json +127 -0
- package/archetypes/restaurant-floor.json +74 -0
- package/archetypes/review-system.json +84 -0
- package/archetypes/saas-analytics.json +69 -0
- package/archetypes/saas-billing-v2.json +77 -0
- package/archetypes/saas-dashboard.json +127 -0
- package/archetypes/saas-overview.json +77 -0
- package/archetypes/sample-inventory.json +80 -0
- package/archetypes/scrim-scheduler.json +103 -0
- package/archetypes/search-hub.json +87 -0
- package/archetypes/secondary-market.json +83 -0
- package/archetypes/seller-dashboard.json +169 -0
- package/archetypes/server-station.json +61 -0
- package/archetypes/service-requests.json +141 -0
- package/archetypes/session-rooms.json +92 -0
- package/archetypes/settings-full.json +164 -0
- package/archetypes/settings.json +67 -0
- package/archetypes/source-catalog.json +116 -0
- package/archetypes/spatial-workspace.json +115 -0
- package/archetypes/sponsor-dashboard.json +103 -0
- package/archetypes/storefront-browse.json +97 -0
- package/archetypes/supply-chain.json +112 -0
- package/archetypes/swipe-feed.json +469 -0
- package/archetypes/team-management.json +95 -0
- package/archetypes/team-operations.json +131 -0
- package/archetypes/team-workspace.json +71 -0
- package/archetypes/telehealth-room.json +78 -0
- package/archetypes/tenant-manager.json +129 -0
- package/archetypes/tenant-payments.json +105 -0
- package/archetypes/tenant-portal.json +135 -0
- package/archetypes/tenant-switcher-dashboard.json +154 -0
- package/archetypes/terminal-home.json +127 -0
- package/archetypes/ticket-checkout.json +84 -0
- package/archetypes/tool-registry.json +111 -0
- package/archetypes/trace-explorer.json +113 -0
- package/archetypes/trace-viewer.json +112 -0
- package/archetypes/track-library.json +90 -0
- package/archetypes/transaction-history.json +77 -0
- package/archetypes/transformation-editor.json +117 -0
- package/archetypes/usage-billing.json +146 -0
- package/archetypes/user-dashboard.json +155 -0
- package/archetypes/video-editor.json +158 -0
- package/archetypes/vod-review.json +97 -0
- package/archetypes/webhook-manager.json +108 -0
- package/archetypes/workspace-home.json +105 -0
- package/archetypes/workspace-settings.json +140 -0
- package/blueprints/agent-marketplace.json +222 -0
- package/blueprints/agent-studio.json +291 -0
- package/blueprints/ai-copilot-shell.json +163 -0
- package/blueprints/ai-native-crm.json +269 -0
- package/blueprints/ai-video-studio.json +93 -0
- package/blueprints/carbon-ai-portal.json +252 -0
- package/blueprints/civic-platform.json +91 -0
- package/blueprints/climate-dashboard.json +90 -0
- package/blueprints/cloud-platform.json +219 -0
- package/blueprints/content-site.json +110 -0
- package/blueprints/content-studio.json +120 -0
- package/blueprints/creator-monetization-platform.json +373 -0
- package/blueprints/data-pipeline-studio.json +263 -0
- package/blueprints/deal-room.json +88 -0
- package/blueprints/ecommerce-admin.json +253 -0
- package/blueprints/ecommerce.json +242 -0
- package/blueprints/esports-hq.json +116 -0
- package/blueprints/event-community-hub.json +251 -0
- package/blueprints/financial-dashboard.json +237 -0
- package/blueprints/fractional-ownership.json +89 -0
- package/blueprints/gaming-platform.json +171 -0
- package/blueprints/health-wellness-portal.json +252 -0
- package/blueprints/knowledge-base.json +176 -0
- package/blueprints/legal-research.json +90 -0
- package/blueprints/multi-tenant-platform.json +257 -0
- package/blueprints/observability-platform.json +275 -0
- package/blueprints/portfolio.json +164 -0
- package/blueprints/producer-studio.json +156 -0
- package/blueprints/product-landing.json +112 -0
- package/blueprints/property-management-portal.json +384 -0
- package/blueprints/realtime-collaboration-workspace.json +300 -0
- package/blueprints/recipe-community.json +259 -0
- package/blueprints/recipefork.json +194 -0
- package/blueprints/registry-platform.json +204 -0
- package/blueprints/research-lab.json +92 -0
- package/blueprints/restaurant-ops.json +104 -0
- package/blueprints/retro-launch-campaign.json +205 -0
- package/blueprints/saas-dashboard.json +246 -0
- package/blueprints/spatial-collaboration.json +172 -0
- package/blueprints/swipecircle.json +253 -0
- package/blueprints/terminal-dashboard.json +282 -0
- package/blueprints/two-sided-marketplace.json +293 -0
- package/dist/index.d.ts +178 -0
- package/dist/index.js +582 -0
- package/dist/index.js.map +1 -0
- package/package.json +75 -0
- package/patterns/account-settings.json +149 -0
- package/patterns/activity-feed.json +154 -0
- package/patterns/adaptive-density-panel.json +130 -0
- package/patterns/agent-handoff-zone.json +97 -0
- package/patterns/agent-swarm-canvas.json +136 -0
- package/patterns/agent-timeline.json +119 -0
- package/patterns/alert-rule-builder.json +127 -0
- package/patterns/ambient-status-ring.json +125 -0
- package/patterns/api-explorer.json +131 -0
- package/patterns/api-key-row.json +119 -0
- package/patterns/ar-annotation.json +137 -0
- package/patterns/arrangement-canvas.json +72 -0
- package/patterns/ascii-chart.json +138 -0
- package/patterns/audit-trail.json +123 -0
- package/patterns/auth-form.json +209 -0
- package/patterns/avatar-grid-tile.json +118 -0
- package/patterns/backer-progress-console.json +137 -0
- package/patterns/backer-wall-ticker.json +127 -0
- package/patterns/before-after.json +105 -0
- package/patterns/block-toolbar.json +129 -0
- package/patterns/blueprint-anatomy.json +112 -0
- package/patterns/blueprint-launch-hero.json +113 -0
- package/patterns/booking-calendar.json +125 -0
- package/patterns/bottom-tab-bar.json +117 -0
- package/patterns/breadcrumb-nav.json +111 -0
- package/patterns/budget-sankey.json +103 -0
- package/patterns/calendar-view.json +143 -0
- package/patterns/campaign-marquee-hero.json +167 -0
- package/patterns/cap-table.json +121 -0
- package/patterns/card-grid.json +202 -0
- package/patterns/case-brief-card.json +113 -0
- package/patterns/character-sheet.json +102 -0
- package/patterns/chart-grid.json +129 -0
- package/patterns/chat-header.json +105 -0
- package/patterns/chat-input.json +106 -0
- package/patterns/chat-message.json +122 -0
- package/patterns/chat-thread.json +120 -0
- package/patterns/checklist-card.json +96 -0
- package/patterns/checkout-flow.json +148 -0
- package/patterns/chip-multiselect.json +118 -0
- package/patterns/citation-graph.json +118 -0
- package/patterns/command-palette.json +115 -0
- package/patterns/command-rail.json +123 -0
- package/patterns/comment-thread.json +155 -0
- package/patterns/comparison-table.json +121 -0
- package/patterns/contact-form.json +135 -0
- package/patterns/content-card-grid.json +151 -0
- package/patterns/content-detail-hero.json +129 -0
- package/patterns/content-feed.json +141 -0
- package/patterns/content-uploader.json +137 -0
- package/patterns/continue-screen-cta.json +135 -0
- package/patterns/contract-diff.json +110 -0
- package/patterns/contract-explorer.json +119 -0
- package/patterns/conversation-list.json +109 -0
- package/patterns/creator-profile.json +127 -0
- package/patterns/cta-banner.json +103 -0
- package/patterns/cta-section.json +122 -0
- package/patterns/cta.json +124 -0
- package/patterns/data-source-connector.json +131 -0
- package/patterns/data-table.json +138 -0
- package/patterns/dataset-card.json +127 -0
- package/patterns/daw-transport-bar.json +66 -0
- package/patterns/deal-pipeline-board.json +124 -0
- package/patterns/deal-stage-gates.json +102 -0
- package/patterns/depth-layered-canvas.json +105 -0
- package/patterns/detail-header.json +140 -0
- package/patterns/diff-view.json +122 -0
- package/patterns/dividend-ledger.json +120 -0
- package/patterns/doc-editor.json +147 -0
- package/patterns/document-vault.json +129 -0
- package/patterns/drag-sort-list.json +119 -0
- package/patterns/earnings-dashboard.json +132 -0
- package/patterns/emissions-sankey.json +113 -0
- package/patterns/emoji-reaction-bar.json +115 -0
- package/patterns/esports-matchday-command.json +132 -0
- package/patterns/eval-dashboard.json +131 -0
- package/patterns/expense-tracker.json +130 -0
- package/patterns/featured-launchpad-list.json +114 -0
- package/patterns/features.json +118 -0
- package/patterns/file-browser.json +148 -0
- package/patterns/filter-bar.json +146 -0
- package/patterns/footer.json +115 -0
- package/patterns/form-sections.json +180 -0
- package/patterns/form.json +190 -0
- package/patterns/founder-comic-strip.json +126 -0
- package/patterns/generative-card-grid.json +130 -0
- package/patterns/gesture-control-overlay.json +134 -0
- package/patterns/governance-ballot.json +126 -0
- package/patterns/help-modal.json +155 -0
- package/patterns/hero-split.json +125 -0
- package/patterns/hero.json +227 -0
- package/patterns/holographic-control-bar.json +114 -0
- package/patterns/hotkey-bar.json +97 -0
- package/patterns/how-it-works.json +118 -0
- package/patterns/identity-summary.json +115 -0
- package/patterns/instrument-schedule.json +131 -0
- package/patterns/intake-form-wizard.json +134 -0
- package/patterns/intent-radar.json +115 -0
- package/patterns/json-viewer.json +129 -0
- package/patterns/kanban-board.json +133 -0
- package/patterns/kds-ticket-rail.json +133 -0
- package/patterns/kpi-grid.json +123 -0
- package/patterns/launch-update-log.json +129 -0
- package/patterns/launchpad-flow.json +107 -0
- package/patterns/leaderboard.json +143 -0
- package/patterns/lease-manager.json +129 -0
- package/patterns/legal-prose.json +120 -0
- package/patterns/live-room-stage.json +63 -0
- package/patterns/log-stream.json +150 -0
- package/patterns/logo-strip.json +93 -0
- package/patterns/maintenance-board.json +127 -0
- package/patterns/maintenance-ticket.json +156 -0
- package/patterns/map-view.json +140 -0
- package/patterns/match-celebration.json +133 -0
- package/patterns/matter-card.json +113 -0
- package/patterns/mention-popup.json +85 -0
- package/patterns/metric-gauge.json +141 -0
- package/patterns/mixer-console.json +69 -0
- package/patterns/mobile-profile-hero.json +138 -0
- package/patterns/moderation-queue-item.json +129 -0
- package/patterns/morphing-topology.json +113 -0
- package/patterns/namespace-badge.json +93 -0
- package/patterns/nav-header.json +110 -0
- package/patterns/neural-feedback-loop.json +124 -0
- package/patterns/notebook-entry.json +129 -0
- package/patterns/notification-center.json +136 -0
- package/patterns/offset-cart.json +109 -0
- package/patterns/onboarding-wizard.json +130 -0
- package/patterns/org-governance-panel.json +101 -0
- package/patterns/page-tree.json +143 -0
- package/patterns/payment-history.json +130 -0
- package/patterns/payout-settings.json +130 -0
- package/patterns/permission-matrix.json +129 -0
- package/patterns/petition-card.json +106 -0
- package/patterns/pipeline-cards.json +99 -0
- package/patterns/player-form-tracker.json +111 -0
- package/patterns/pledge-checkout-panel.json +145 -0
- package/patterns/pnl-dashboard.json +116 -0
- package/patterns/post-list.json +147 -0
- package/patterns/presence-avatars.json +129 -0
- package/patterns/press-kit-shelf.json +132 -0
- package/patterns/pricing-usage.json +118 -0
- package/patterns/pricing.json +137 -0
- package/patterns/producer-split-workbench.json +57 -0
- package/patterns/product-box-spec-panel.json +126 -0
- package/patterns/product-card.json +120 -0
- package/patterns/product-grid.json +140 -0
- package/patterns/progress-bar.json +124 -0
- package/patterns/prompt-playground.json +129 -0
- package/patterns/property-card.json +112 -0
- package/patterns/property-detail.json +124 -0
- package/patterns/property-grid.json +137 -0
- package/patterns/prose-section.json +102 -0
- package/patterns/protocol-step.json +128 -0
- package/patterns/prototype-demo-bezel.json +137 -0
- package/patterns/qa-thread.json +109 -0
- package/patterns/quick-start.json +88 -0
- package/patterns/recipefork-activity-feed.json +51 -0
- package/patterns/recipefork-chef-ingredients-display.json +48 -0
- package/patterns/recipefork-chef-ingredients-editor.json +52 -0
- package/patterns/recipefork-chef-instruction-editor.json +59 -0
- package/patterns/recipefork-chef-instructions-display.json +54 -0
- package/patterns/recipefork-cookbook-assignment.json +51 -0
- package/patterns/recipefork-cooking-tips-display.json +43 -0
- package/patterns/recipefork-cooking-tips-editor.json +46 -0
- package/patterns/recipefork-fork-provenance.json +50 -0
- package/patterns/recipefork-kitchen-chat.json +103 -0
- package/patterns/recipefork-photo-generator.json +123 -0
- package/patterns/recipefork-presentation-display.json +45 -0
- package/patterns/recipefork-presentation-editor.json +52 -0
- package/patterns/recipefork-recipe-card.json +123 -0
- package/patterns/recipefork-recipe-metadata-form.json +58 -0
- package/patterns/recipefork-recipe-mode-switch.json +52 -0
- package/patterns/recipefork-recipe-story-editor.json +51 -0
- package/patterns/recipefork-simple-recipe-editor.json +49 -0
- package/patterns/redline-track-changes.json +113 -0
- package/patterns/registry-discovery-cta-grid.json +93 -0
- package/patterns/registry-link-list.json +118 -0
- package/patterns/relationship-graph.json +127 -0
- package/patterns/remote-cursor.json +103 -0
- package/patterns/render-queue.json +102 -0
- package/patterns/rent-reminder.json +140 -0
- package/patterns/rent-roll.json +112 -0
- package/patterns/reputation-badge.json +111 -0
- package/patterns/retro-table.json +128 -0
- package/patterns/reward-tier-selector.json +137 -0
- package/patterns/sample-tracker.json +127 -0
- package/patterns/scene-storyboard.json +104 -0
- package/patterns/scope-breakdown.json +108 -0
- package/patterns/scoreboard-live.json +116 -0
- package/patterns/scrim-calendar.json +114 -0
- package/patterns/search-filter-bar.json +141 -0
- package/patterns/secure-document-viewer.json +107 -0
- package/patterns/service-catalog.json +94 -0
- package/patterns/service-map.json +133 -0
- package/patterns/session-inspector.json +62 -0
- package/patterns/session-manager.json +89 -0
- package/patterns/settings-nav.json +106 -0
- package/patterns/share-modal.json +157 -0
- package/patterns/share-quest-panel.json +134 -0
- package/patterns/shot-grid.json +104 -0
- package/patterns/skeleton-loader.json +114 -0
- package/patterns/slash-command.json +80 -0
- package/patterns/sparkline-cell.json +103 -0
- package/patterns/spatial-card-stack.json +133 -0
- package/patterns/spatial-presence-ring.json +103 -0
- package/patterns/split-calculator.json +104 -0
- package/patterns/split-pane.json +112 -0
- package/patterns/stats-bar.json +125 -0
- package/patterns/stats-detail.json +102 -0
- package/patterns/stats-overview.json +132 -0
- package/patterns/stats-section.json +90 -0
- package/patterns/status-bar.json +101 -0
- package/patterns/status-board.json +92 -0
- package/patterns/stem-browser.json +58 -0
- package/patterns/stem-stack.json +101 -0
- package/patterns/stepper.json +115 -0
- package/patterns/storefront-hero.json +120 -0
- package/patterns/stretch-goal-ladder.json +128 -0
- package/patterns/subscriber-list.json +135 -0
- package/patterns/supply-chain-map.json +109 -0
- package/patterns/swipe-action-bar.json +119 -0
- package/patterns/swipe-card.json +126 -0
- package/patterns/table-map.json +134 -0
- package/patterns/target-progress-ring.json +103 -0
- package/patterns/team-member-row.json +139 -0
- package/patterns/tech-pills.json +69 -0
- package/patterns/tenant-card.json +150 -0
- package/patterns/tenant-directory.json +118 -0
- package/patterns/tenant-payment-setup.json +98 -0
- package/patterns/terminal-emulator.json +117 -0
- package/patterns/testimonials.json +133 -0
- package/patterns/tier-builder.json +131 -0
- package/patterns/tier-card.json +118 -0
- package/patterns/tier-upgrade-card.json +144 -0
- package/patterns/timeline-scrubber.json +107 -0
- package/patterns/timeline.json +140 -0
- package/patterns/toast-notification.json +123 -0
- package/patterns/tool-list.json +89 -0
- package/patterns/trace-waterfall.json +123 -0
- package/patterns/trade-modal.json +132 -0
- package/patterns/transcript-stream.json +125 -0
- package/patterns/tree-view.json +124 -0
- package/patterns/unit-detail.json +100 -0
- package/patterns/unit-list.json +106 -0
- package/patterns/unlock-gate.json +132 -0
- package/patterns/usage-meter.json +113 -0
- package/patterns/vacancy-tracker.json +106 -0
- package/patterns/valuation-chart.json +126 -0
- package/patterns/version-history.json +140 -0
- package/patterns/video-room.json +142 -0
- package/patterns/vod-annotator.json +112 -0
- package/patterns/voice-command-palette.json +127 -0
- package/patterns/voice-waveform.json +120 -0
- package/patterns/voting-breakdown.json +101 -0
- package/patterns/waveform-track.json +102 -0
- package/patterns/webhook-debugger.json +116 -0
- package/patterns/workflow-canvas.json +147 -0
- package/patterns/workspace-region-stack.json +74 -0
- package/schemas/archetype.v2.json +145 -0
- package/schemas/blueprint.v1.json +225 -0
- package/schemas/common.v1.json +337 -0
- package/schemas/content-health-report.v1.json +255 -0
- package/schemas/content-intelligence.v1.json +142 -0
- package/schemas/essence.v4.json +430 -0
- package/schemas/execution-pack.common.v1.json +207 -0
- package/schemas/page-pack.v1.json +106 -0
- package/schemas/pattern.v2.json +232 -0
- package/schemas/public-content-list.v1.json +28 -0
- package/schemas/public-content-record.v1.json +91 -0
- package/schemas/public-content-summary.v1.json +132 -0
- package/schemas/registry-intelligence-summary.v1.json +81 -0
- package/schemas/search-response.v1.json +28 -0
- package/schemas/section-pack.v1.json +128 -0
- package/schemas/shell.v1.json +69 -0
- package/schemas/showcase-manifest-entry.v1.json +92 -0
- package/schemas/showcase-manifest.v1.json +28 -0
- package/schemas/showcase-shortlist.v1.json +36 -0
- package/schemas/theme.v1.json +190 -0
- package/shells/canvas-overlay.json +94 -0
- package/shells/centered.json +49 -0
- package/shells/chat-portal.json +153 -0
- package/shells/copilot-overlay.json +156 -0
- package/shells/full-bleed.json +100 -0
- package/shells/immersive-stage.json +89 -0
- package/shells/minimal-header.json +103 -0
- package/shells/mobile-tab-bar.json +119 -0
- package/shells/recipefork-top-nav.json +74 -0
- package/shells/sidebar-aside.json +163 -0
- package/shells/sidebar-main-footer.json +158 -0
- package/shells/sidebar-main.json +175 -0
- package/shells/sidebar-right.json +128 -0
- package/shells/terminal-split.json +95 -0
- package/shells/three-column-browser.json +215 -0
- package/shells/top-nav-footer.json +114 -0
- package/shells/top-nav-main.json +103 -0
- package/shells/top-nav-sidebar.json +130 -0
- package/shells/workspace-aside.json +181 -0
- package/themes/auradecantism.json +601 -0
- package/themes/bespoke.json +433 -0
- package/themes/bioluminescent.json +217 -0
- package/themes/bistro.json +422 -0
- package/themes/carbon-neon.json +458 -0
- package/themes/carbon.json +429 -0
- package/themes/cinema.json +479 -0
- package/themes/clean.json +261 -0
- package/themes/counsel.json +431 -0
- package/themes/dopamine.json +237 -0
- package/themes/earth.json +453 -0
- package/themes/editorial.json +237 -0
- package/themes/estate.json +559 -0
- package/themes/fintech.json +472 -0
- package/themes/gaming-guild.json +341 -0
- package/themes/glassmorphism.json +309 -0
- package/themes/government.json +481 -0
- package/themes/healthcare.json +480 -0
- package/themes/lab.json +437 -0
- package/themes/launchpad.json +320 -0
- package/themes/liquid-glass.json +223 -0
- package/themes/luminarum.json +598 -0
- package/themes/neo-tokyo.json +451 -0
- package/themes/neon-cyber.json +280 -0
- package/themes/neon-dark.json +220 -0
- package/themes/paper.json +496 -0
- package/themes/prismatic.json +217 -0
- package/themes/recipefork.json +278 -0
- package/themes/retro-arcade.json +620 -0
- package/themes/retro.json +240 -0
- package/themes/studio-dark.json +437 -0
- package/themes/studio.json +488 -0
- package/themes/swipecircle.json +533 -0
- package/themes/terminal.json +549 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://decantr.ai/schemas/pattern.v2.json",
|
|
3
|
+
"id": "chat-thread",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"decantr_compat": ">=2.0.0",
|
|
6
|
+
"name": "Chat Thread",
|
|
7
|
+
"description": "Full message thread container with scrollable messages, typing indicator, pagination, and auto-scroll behavior.",
|
|
8
|
+
"dependencies": {
|
|
9
|
+
"patterns": {
|
|
10
|
+
"chat-message": "^1.0.0",
|
|
11
|
+
"chat-input": "^1.0.0"
|
|
12
|
+
},
|
|
13
|
+
"styles": {},
|
|
14
|
+
"requires_core": {
|
|
15
|
+
"components": [
|
|
16
|
+
"Button",
|
|
17
|
+
"Avatar",
|
|
18
|
+
"icon"
|
|
19
|
+
],
|
|
20
|
+
"charts": []
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"components": [
|
|
24
|
+
"Button",
|
|
25
|
+
"Avatar",
|
|
26
|
+
"icon"
|
|
27
|
+
],
|
|
28
|
+
"default_preset": "standard",
|
|
29
|
+
"presets": {
|
|
30
|
+
"standard": {
|
|
31
|
+
"description": "Standard chat thread with messages and anchored input",
|
|
32
|
+
"components": [
|
|
33
|
+
"Button",
|
|
34
|
+
"Avatar",
|
|
35
|
+
"icon"
|
|
36
|
+
],
|
|
37
|
+
"layout": {
|
|
38
|
+
"layout": "stack",
|
|
39
|
+
"atoms": "_flex _col _hfull _overflow[hidden]",
|
|
40
|
+
"slots": {
|
|
41
|
+
"messages": "Scrollable message list",
|
|
42
|
+
"typing-indicator": "AI is thinking... indicator",
|
|
43
|
+
"load-more": "History pagination button",
|
|
44
|
+
"scroll-to-bottom": "Floating button when scrolled up"
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"branched": {
|
|
49
|
+
"description": "Thread with branch indicator for conversation forks",
|
|
50
|
+
"components": [
|
|
51
|
+
"Button",
|
|
52
|
+
"Avatar",
|
|
53
|
+
"icon"
|
|
54
|
+
],
|
|
55
|
+
"layout": {
|
|
56
|
+
"layout": "stack",
|
|
57
|
+
"atoms": "_flex _col _hfull _overflow[hidden]",
|
|
58
|
+
"slots": {
|
|
59
|
+
"branch-indicator": "Visual marker showing conversation branch point",
|
|
60
|
+
"messages": "Scrollable message list",
|
|
61
|
+
"typing-indicator": "AI is thinking... indicator"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"default_layout": {
|
|
67
|
+
"layout": "stack",
|
|
68
|
+
"atoms": "_flex _col _hfull _overflow[hidden]",
|
|
69
|
+
"slots": {
|
|
70
|
+
"messages": "Scrollable message list with ChatMessage components",
|
|
71
|
+
"typing-indicator": "AI is thinking... animated indicator",
|
|
72
|
+
"load-more": "History pagination trigger",
|
|
73
|
+
"branch-indicator": "Branched conversation marker",
|
|
74
|
+
"scroll-to-bottom": "Floating FAB when scrolled up"
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"visual_brief": "Vertically scrolling message thread with alternating alignment for user and AI messages. User bubbles align right with accent background; AI responses align left with surface background and wider max-width. A pulsing dot-trio typing indicator appears at the bottom when the AI is generating. A floating scroll-to-bottom FAB fades in when the user scrolls up past a threshold.",
|
|
78
|
+
"layout_hints": {
|
|
79
|
+
"scroll_ownership": "The message list is the primary scrollable region and should not fight with outer page wrappers for scroll ownership.",
|
|
80
|
+
"bubble_measure": "Message bubbles should keep a readable max-width rather than stretching to the container edge, especially for long AI responses.",
|
|
81
|
+
"typing_state": "Typing indicators and load-more controls should feel like part of the thread rhythm instead of detached widgets."
|
|
82
|
+
},
|
|
83
|
+
"responsive": {
|
|
84
|
+
"mobile": "Messages span full width with minimal horizontal padding (12px). Avatars shrink to 28px or hide entirely. Typing indicator anchors to bottom of viewport. Scroll-to-bottom FAB shifts to bottom-right corner with 16px inset. Load-more button becomes a pull-to-refresh gesture at the top.",
|
|
85
|
+
"tablet": "Standard layout with comfortable padding. Avatars visible at 36px. Message bubbles max-width at 75% of container. Typing indicator and scroll-to-bottom FAB remain in default positions.",
|
|
86
|
+
"desktop": "Message bubbles cap at 640px max-width for readability. Full avatars at 40px with timestamp on hover. Branch indicators show as a vertical sidebar gutter. Keyboard shortcuts enabled for navigation between messages."
|
|
87
|
+
},
|
|
88
|
+
"motion": {
|
|
89
|
+
"message-entrance": "New messages slide in from the bottom with a 200ms ease-out and 50ms stagger between sequential messages. AI messages additionally fade from 0 to 1 opacity.",
|
|
90
|
+
"typing-indicator": "Three dots animate in a 1.2s infinite loop — each dot scales from 0.4 to 1.0 with 150ms offset per dot, creating a wave pulse effect.",
|
|
91
|
+
"scroll-to-bottom": "FAB fades in (opacity 0 to 1, 150ms) and translates up 8px when scroll position exceeds one viewport height from bottom. Reverse on dismiss.",
|
|
92
|
+
"auto-scroll": "When a new message arrives and the user is within 100px of the bottom, smooth-scroll to the new message over 300ms ease-in-out."
|
|
93
|
+
},
|
|
94
|
+
"interactions": [
|
|
95
|
+
"animate-on-mount",
|
|
96
|
+
"stagger-children",
|
|
97
|
+
"real-time-updates",
|
|
98
|
+
"scroll-reveal",
|
|
99
|
+
"keyboard-navigation"
|
|
100
|
+
],
|
|
101
|
+
"accessibility": {
|
|
102
|
+
"role": "log",
|
|
103
|
+
"aria-label": "Chat conversation",
|
|
104
|
+
"keyboard": [
|
|
105
|
+
"Tab moves between message actions and the composer in reading order.",
|
|
106
|
+
"Keyboard users should be able to reach the scroll-to-bottom control when it appears."
|
|
107
|
+
],
|
|
108
|
+
"announcements": [
|
|
109
|
+
"New assistant and user messages should be announced appropriately without rereading the entire thread.",
|
|
110
|
+
"Typing indicator state changes should be announced sparingly."
|
|
111
|
+
],
|
|
112
|
+
"focus_management": "Do not steal focus when new messages arrive. Preserve the reader's current position unless they explicitly choose to jump to the latest message."
|
|
113
|
+
},
|
|
114
|
+
"composition": {
|
|
115
|
+
"ChatThread": "Container(d-surface, flex-col, full-height) > [MessageList + TypingIndicator? + ScrollAnchor]",
|
|
116
|
+
"MessageList": "List(flex-col, gap-3, scrollable) > Message[]",
|
|
117
|
+
"TypingIndicator": "Bubble(d-annotation, opacity-70) > PulseDots(3, animated)",
|
|
118
|
+
"ScrollAnchor": "FAB(d-interactive, floating, show-on-scroll-up)"
|
|
119
|
+
}
|
|
120
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://decantr.ai/schemas/pattern.v2.json",
|
|
3
|
+
"id": "checklist-card",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"decantr_compat": ">=2.0.0",
|
|
6
|
+
"name": "Checklist Card",
|
|
7
|
+
"description": "Progress-oriented checklist card for onboarding, compliance, and readiness workflows.",
|
|
8
|
+
"dependencies": {
|
|
9
|
+
"patterns": {},
|
|
10
|
+
"styles": {},
|
|
11
|
+
"requires_core": {
|
|
12
|
+
"components": [
|
|
13
|
+
"Card",
|
|
14
|
+
"Badge",
|
|
15
|
+
"Button",
|
|
16
|
+
"icon"
|
|
17
|
+
],
|
|
18
|
+
"charts": []
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"components": [
|
|
22
|
+
"Card",
|
|
23
|
+
"Badge",
|
|
24
|
+
"Button",
|
|
25
|
+
"icon"
|
|
26
|
+
],
|
|
27
|
+
"default_preset": "onboarding",
|
|
28
|
+
"presets": {
|
|
29
|
+
"onboarding": {
|
|
30
|
+
"description": "Checklist card with progress bar, prioritized tasks, and one clear next-step action.",
|
|
31
|
+
"layout": {
|
|
32
|
+
"layout": "stack",
|
|
33
|
+
"atoms": "_flex _col _gap4 _p4",
|
|
34
|
+
"slots": {
|
|
35
|
+
"header": "Title, completion summary, and progress indicator",
|
|
36
|
+
"checklist-item": "Single task row with state, label, and helper text",
|
|
37
|
+
"footer-action": "Primary next-step action or review button"
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"compact": {
|
|
42
|
+
"description": "Shorter checklist summary for dashboard side panels.",
|
|
43
|
+
"layout": {
|
|
44
|
+
"layout": "stack",
|
|
45
|
+
"atoms": "_flex _col _gap3 _p3",
|
|
46
|
+
"slots": {
|
|
47
|
+
"header": "Title and compact progress summary",
|
|
48
|
+
"checklist-item": "Minimal task row"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"default_layout": {
|
|
54
|
+
"layout": "stack",
|
|
55
|
+
"atoms": "_flex _col _gap4 _p4",
|
|
56
|
+
"slots": {
|
|
57
|
+
"header": "Title and progress summary",
|
|
58
|
+
"checklist-item": "Task row",
|
|
59
|
+
"footer-action": "Primary action"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"visual_brief": "Single contained card that makes progress obvious and next steps clear. The tone should feel practical and reassuring, with a visible completion signal, a tidy list of tasks, and a clear sense of what's blocking readiness. This is especially important for compliance and onboarding contexts where the card should reduce cognitive load rather than add to it.",
|
|
63
|
+
"responsive": {
|
|
64
|
+
"mobile": "Full-width stacked card. Task rows wrap helper text underneath cleanly and CTA remains easy to reach.",
|
|
65
|
+
"tablet": "Comfortable card width with visible progress bar and 4-6 checklist items before scrolling becomes necessary.",
|
|
66
|
+
"desktop": "Contained summary card that can sit above tables or beside operational content without overpowering the page."
|
|
67
|
+
},
|
|
68
|
+
"layout_hints": {
|
|
69
|
+
"progress_priority": "Lead with the progress summary and next blocking item, then the supporting checklist rows.",
|
|
70
|
+
"task_state": "Each row should make completion state obvious through icon, label, and text, not icon color alone.",
|
|
71
|
+
"contextual_role": "This pattern is a decision aid. Keep it compact and actionable rather than turning it into a full workflow editor."
|
|
72
|
+
},
|
|
73
|
+
"motion": {
|
|
74
|
+
"micro": "Completed items may fade into a calmer state, and progress bars may animate in gently on load.",
|
|
75
|
+
"transitions": "Checklist completion should feel affirmative but restrained, especially in enterprise and compliance contexts."
|
|
76
|
+
},
|
|
77
|
+
"interactions": [
|
|
78
|
+
"click-select",
|
|
79
|
+
"animate-on-mount",
|
|
80
|
+
"stagger-children"
|
|
81
|
+
],
|
|
82
|
+
"accessibility": {
|
|
83
|
+
"role": "region",
|
|
84
|
+
"aria-label": "Checklist progress",
|
|
85
|
+
"keyboard": [
|
|
86
|
+
"Tab through checklist actions and any expandable items in top-to-bottom order."
|
|
87
|
+
],
|
|
88
|
+
"announcements": [
|
|
89
|
+
"Completion state and progress should be announced with task labels so users understand what remains."
|
|
90
|
+
]
|
|
91
|
+
},
|
|
92
|
+
"composition": {
|
|
93
|
+
"ChecklistCard": "Card(d-surface, progress) > [Header(progress summary) + ChecklistItem[] + FooterAction?(d-interactive)]",
|
|
94
|
+
"ChecklistItem": "Row(d-data-row|minimal) > [StateIcon + TaskLabel + HelperText? + Action?]"
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://decantr.ai/schemas/pattern.v2.json",
|
|
3
|
+
"id": "checkout-flow",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"decantr_compat": ">=2.0.0",
|
|
6
|
+
"name": "Checkout Flow",
|
|
7
|
+
"description": "Complete purchase/subscribe checkout process with payment form, promo codes, order summary, and success confirmation.",
|
|
8
|
+
"dependencies": {
|
|
9
|
+
"patterns": {},
|
|
10
|
+
"styles": {},
|
|
11
|
+
"requires_core": {
|
|
12
|
+
"components": [
|
|
13
|
+
"Button",
|
|
14
|
+
"Card",
|
|
15
|
+
"Input",
|
|
16
|
+
"Badge",
|
|
17
|
+
"Radio",
|
|
18
|
+
"icon"
|
|
19
|
+
],
|
|
20
|
+
"charts": []
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"components": [
|
|
24
|
+
"Button",
|
|
25
|
+
"Card",
|
|
26
|
+
"Input",
|
|
27
|
+
"Badge",
|
|
28
|
+
"Radio",
|
|
29
|
+
"icon"
|
|
30
|
+
],
|
|
31
|
+
"default_preset": "subscribe",
|
|
32
|
+
"presets": {
|
|
33
|
+
"subscribe": {
|
|
34
|
+
"description": "Recurring tier subscription checkout with plan summary, payment form, and promo code input",
|
|
35
|
+
"components": [
|
|
36
|
+
"Button",
|
|
37
|
+
"Card",
|
|
38
|
+
"Input",
|
|
39
|
+
"Badge",
|
|
40
|
+
"Radio",
|
|
41
|
+
"icon"
|
|
42
|
+
],
|
|
43
|
+
"layout": {
|
|
44
|
+
"layout": "split",
|
|
45
|
+
"atoms": "_grid _gc1 _lg:gc2 _gap8 _maxw[960px] _mx[auto]",
|
|
46
|
+
"slots": {
|
|
47
|
+
"summary": "Tier/order summary card",
|
|
48
|
+
"payment-form": "Card/payment method inputs",
|
|
49
|
+
"promo-code": "Discount code input",
|
|
50
|
+
"terms": "Terms acceptance checkbox",
|
|
51
|
+
"submit": "Subscribe/pay button"
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"purchase": {
|
|
56
|
+
"description": "One-time product purchase flow with order summary and payment method selection",
|
|
57
|
+
"components": [
|
|
58
|
+
"Button",
|
|
59
|
+
"Card",
|
|
60
|
+
"Input",
|
|
61
|
+
"icon"
|
|
62
|
+
],
|
|
63
|
+
"layout": {
|
|
64
|
+
"layout": "split",
|
|
65
|
+
"atoms": "_grid _gc1 _lg:gc2 _gap8 _maxw[960px] _mx[auto]",
|
|
66
|
+
"slots": {
|
|
67
|
+
"summary": "Product summary",
|
|
68
|
+
"payment-form": "Payment inputs",
|
|
69
|
+
"submit": "Purchase button"
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
"upgrade": {
|
|
74
|
+
"description": "Tier upgrade flow showing current-vs-new plan comparison with prorated pricing",
|
|
75
|
+
"components": [
|
|
76
|
+
"Button",
|
|
77
|
+
"Card",
|
|
78
|
+
"Badge",
|
|
79
|
+
"icon"
|
|
80
|
+
],
|
|
81
|
+
"layout": {
|
|
82
|
+
"layout": "center",
|
|
83
|
+
"atoms": "_flex _col _gap6 _maxw[480px] _mx[auto]",
|
|
84
|
+
"slots": {
|
|
85
|
+
"comparison": "Current vs new tier",
|
|
86
|
+
"pricing": "Prorated price",
|
|
87
|
+
"submit": "Upgrade button"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
"default_layout": {
|
|
93
|
+
"layout": "split",
|
|
94
|
+
"atoms": "_grid _gc1 _lg:gc2 _gap8",
|
|
95
|
+
"slots": {
|
|
96
|
+
"summary": "Order summary",
|
|
97
|
+
"payment": "Payment form",
|
|
98
|
+
"submit": "Submit button"
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"io": {
|
|
102
|
+
"produces": [
|
|
103
|
+
"checkout-complete",
|
|
104
|
+
"payment-error"
|
|
105
|
+
],
|
|
106
|
+
"consumes": [
|
|
107
|
+
"tier-data",
|
|
108
|
+
"product-data"
|
|
109
|
+
]
|
|
110
|
+
},
|
|
111
|
+
"visual_brief": "Two-column layout with an order summary card on the right and a payment form on the left. The summary card shows line items with names and prices, a promo code input field, subtotal, tax, and total in bold. The payment form includes radio buttons for payment method (card, PayPal), card number/expiry/CVC inputs with card brand icon detection, billing address fields, and a prominent submit button at the bottom. Subscribe preset adds plan name and billing cycle selector. Upgrade preset shows a comparison of current vs. new plan.",
|
|
112
|
+
"responsive": {
|
|
113
|
+
"mobile": "Single column layout — order summary moves above the payment form. Submit button is full-width and sticky at the bottom. Card inputs stack vertically.",
|
|
114
|
+
"tablet": "Two-column layout maintained. Summary panel is narrower. Payment form takes majority width.",
|
|
115
|
+
"desktop": "Standard two-column layout with comfortable spacing. Summary card is sticky within its column on scroll."
|
|
116
|
+
},
|
|
117
|
+
"layout_hints": {
|
|
118
|
+
"decision_priority": "Users should understand what they are buying and what they will pay before they commit. Keep the summary and total obvious before the form asks for too much detail.",
|
|
119
|
+
"form_confidence": "Payment inputs should feel linear and reassuring. Validation, promo codes, and plan comparison belong in clear secondary zones rather than crowding the primary submit path.",
|
|
120
|
+
"mobile_sequence": "On mobile, keep the order summary, core payment form, and final CTA in one confident top-to-bottom flow rather than scattering confirmation details."
|
|
121
|
+
},
|
|
122
|
+
"motion": {
|
|
123
|
+
"micro": "Payment method selection, promo application, and summary updates may animate subtly to confirm state changes without introducing anxiety.",
|
|
124
|
+
"transitions": "Step changes or success states should feel reassuring and deliberate, never like the user is being rushed through a purchase."
|
|
125
|
+
},
|
|
126
|
+
"interactions": [
|
|
127
|
+
"animate-on-mount",
|
|
128
|
+
"inline-edit",
|
|
129
|
+
"keyboard-navigation",
|
|
130
|
+
"click-select",
|
|
131
|
+
"focus-trap"
|
|
132
|
+
],
|
|
133
|
+
"accessibility": {
|
|
134
|
+
"role": "form",
|
|
135
|
+
"aria-label": "Checkout flow",
|
|
136
|
+
"keyboard": [
|
|
137
|
+
"Form controls, payment method selection, promo entry, and the final submit action should follow a predictable top-to-bottom order."
|
|
138
|
+
],
|
|
139
|
+
"announcements": [
|
|
140
|
+
"Price totals, payment errors, and selected billing method should be exposed semantically so checkout remains trustworthy without visual hierarchy alone."
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
"composition": {
|
|
144
|
+
"CheckoutFlow": "Grid(d-section, 2-col, responsive: stack) > [PaymentForm + OrderSummary]",
|
|
145
|
+
"PaymentForm": "Form(d-surface, flex-col) > [MethodSelect > Radio(d-control)[] + CardInputs > [NumberInput + ExpiryInput + CVCInput] + BillingAddress + SubmitButton(d-interactive, variant: primary, full-width)]",
|
|
146
|
+
"OrderSummary": "Card(d-surface, sticky) > [LineItems > LineItem[] + PromoInput?(d-control) + Subtotal + Tax + Total(heading3, font-bold)]"
|
|
147
|
+
}
|
|
148
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://decantr.ai/schemas/pattern.v2.json",
|
|
3
|
+
"id": "chip-multiselect",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"decantr_compat": ">=2.0.0",
|
|
6
|
+
"name": "Chip Multiselect",
|
|
7
|
+
"description": "Toggleable multi-select pill input. Used for interest pickers, category selectors, tag filters — anywhere users pick 3-N from a curated set. Differs from tech-pills (read-only display) by being interactive form input. Each chip toggles a selected state with a bounce-scale and check-icon insertion. Validates via min/max counts.",
|
|
8
|
+
"category": "form",
|
|
9
|
+
"tags": [
|
|
10
|
+
"2026",
|
|
11
|
+
"form",
|
|
12
|
+
"input",
|
|
13
|
+
"multiselect",
|
|
14
|
+
"chips",
|
|
15
|
+
"tags",
|
|
16
|
+
"interactive"
|
|
17
|
+
],
|
|
18
|
+
"components": [
|
|
19
|
+
"ChipGroup",
|
|
20
|
+
"Chip",
|
|
21
|
+
"CheckIcon",
|
|
22
|
+
"HelperText",
|
|
23
|
+
"ValidationMessage",
|
|
24
|
+
"CountIndicator"
|
|
25
|
+
],
|
|
26
|
+
"default_preset": "standard",
|
|
27
|
+
"presets": {
|
|
28
|
+
"standard": {
|
|
29
|
+
"description": "Wrapping flex grid of toggleable pill chips. Selected chips get coral fill + white text + check icon; unselected use border-only treatment. Optional helper text and inline validation message below.",
|
|
30
|
+
"layout": {
|
|
31
|
+
"layout": "flex-row",
|
|
32
|
+
"atoms": "_flex _flex-wrap _gap-2 _w-full"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"scrollable-row": {
|
|
36
|
+
"description": "Single horizontal scrolling row variant for spaces too narrow for wrapping. Chips render in a single row with horizontal overflow scroll. Used inline within filter bars or compact forms.",
|
|
37
|
+
"layout": {
|
|
38
|
+
"layout": "flex-row",
|
|
39
|
+
"atoms": "_flex _flex-row _gap-2 _w-full _overflow-x-auto _pb-2 _scrollbar-thin"
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"grouped": {
|
|
43
|
+
"description": "Grouped variant where chips are organized under category headings. Each category has its own ChipGroup. Used when interests span distinct domains (e.g., Music vs Sports vs Food).",
|
|
44
|
+
"layout": {
|
|
45
|
+
"layout": "stack",
|
|
46
|
+
"atoms": "_flex _flex-col _gap-6 _w-full"
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"visual_brief": "A wrapping flex-grid of pill-shaped chips (border-radius: 9999px, padding: 8px 14px). The container fills its parent's width with 8px gaps both horizontally and vertically. Each Chip in unselected state uses a 1.5px border in the muted border color, transparent fill, and the muted text color (var(--d-text-muted)) for the label — minimal visual weight, clearly tappable. On hover, the border darkens slightly and the chip lifts 1px. On tap, the chip transitions to selected state with a spring animation: the border becomes the primary color (coral), the background fills with the primary color, the text color flips to white, AND a 12px Check icon (Lucide) animates in from the left edge with a slight bounce — opacity 0→1 + translateX -4px→0 over 200ms. The chip itself momentarily scales down to 0.94 then springs back to 1.0 over 280ms cubic-bezier(0.34, 1.56, 0.64, 1) — the satisfying tactile bounce. Selected chips can be tapped again to deselect, reversing the animation. Below the chip group, an optional HelperText (text-xs, muted, font-medium) gives context like 'Pick at least 3 interests' or 'Choose up to 5'. To the right of the helper text (or below it on narrow screens), a CountIndicator shows '{n} of {min}–{max}' in font-medium with the active count in primary color when within range, danger color when below min, and warning color when above max. If validation fails (e.g., user submits with too few selected), a ValidationMessage appears below the helper text in danger color with a subtle slide-down entrance.",
|
|
51
|
+
"layout_hints": {
|
|
52
|
+
"container": "flex-wrap horizontal grid",
|
|
53
|
+
"chip_target": "Each chip min 36px tall × 56px wide for tap targets; padding 8px 14px",
|
|
54
|
+
"selected_signal": "Three redundant signals: fill, border, AND check icon — important for color-blind accessibility",
|
|
55
|
+
"validation": "Inline below the chip grid; min/max defined via data attributes (data-min=N, data-max=N)",
|
|
56
|
+
"scrollbar": "If the container has a max-height that triggers vertical scroll, use overflow-y: auto with scrollbar-thin"
|
|
57
|
+
},
|
|
58
|
+
"default_layout": {
|
|
59
|
+
"layout": "flex-row",
|
|
60
|
+
"atoms": "_flex _flex-col _gap-3 _w-full",
|
|
61
|
+
"slots": {
|
|
62
|
+
"chip-group": "Outer container holding the chip grid + helper + validation. Flex-col, gap 12px. Width fills parent. Carries aria-role='group' and aria-labelledby pointing to the field label (rendered by the parent form).",
|
|
63
|
+
"chip": "Repeating slot — one per choice. Pill-shaped button (border-radius: 9999px, padding: 8px 14px, font-size: 14px, font-weight: 500). Flex-row, items-center, gap 6px (gap reserved for the check icon). data-selected: 'true' | 'false'. data-disabled: 'true' | 'false'. Cursor: pointer. Min height 36px. Inactive: border 1.5px solid var(--d-border), background transparent, color var(--d-text-muted). Active: applies the swipecircle-chip-selected decorator (or theme equivalent) — border + background var(--d-primary), color white. On press: scale(0.94) for 80ms, spring back to scale(1) over 220ms cubic-bezier(0.34, 1.56, 0.64, 1).",
|
|
64
|
+
"check-icon": "12px Lucide Check icon, conditionally rendered when data-selected=true. Color white. On chip activation, animates in: opacity 0→1 + translateX(-4px)→0 over 200ms cubic-bezier(0.34, 1.56, 0.64, 1). Sits at the left edge of the chip content, before the label.",
|
|
65
|
+
"helper-text": "Single-line text below the chip group. font-size 12px, color var(--d-text-muted), font-weight 500. Content: 'Pick at least 3 interests' or 'Choose up to 5 categories' — describes the selection requirement.",
|
|
66
|
+
"count-indicator": "Inline span next to or below helper text. font-size 12px, font-weight 600. Format: '{count} of {min}–{max}' (e.g., '2 of 3–5'). Color: var(--d-primary) when count is within range, var(--d-danger) when below min, var(--d-warning) when above max.",
|
|
67
|
+
"validation-message": "Conditionally rendered below helper-text. Visible only when validation fails. font-size 12px, color var(--d-danger), font-weight 500. Animates in via opacity 0→1 + translateY(-4px)→0 over 200ms ease-out. Includes the role='alert' aria attribute for screen readers."
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"accessibility": {
|
|
71
|
+
"role": "group",
|
|
72
|
+
"aria-label": "Multi-select chips",
|
|
73
|
+
"keyboard": [
|
|
74
|
+
"Tab: focus the chip group, then individual chips",
|
|
75
|
+
"Arrow Right / Arrow Down: focus next chip",
|
|
76
|
+
"Arrow Left / Arrow Up: focus previous chip",
|
|
77
|
+
"Space or Enter: toggle selected state of focused chip",
|
|
78
|
+
"Home: focus first chip",
|
|
79
|
+
"End: focus last chip"
|
|
80
|
+
],
|
|
81
|
+
"announcements": [
|
|
82
|
+
"{chip_label} selected. {count} of {max} interests chosen.",
|
|
83
|
+
"{chip_label} unselected. {count} of {max} interests chosen.",
|
|
84
|
+
"Minimum {min} interests required. {needed} more to continue."
|
|
85
|
+
],
|
|
86
|
+
"focus_management": "Each chip is independently tabbable (tabindex=0). The selection state is announced via aria-pressed='true|false' on each chip button. The count indicator uses aria-live='polite' so screen readers announce changes after each toggle."
|
|
87
|
+
},
|
|
88
|
+
"responsive": {
|
|
89
|
+
"mobile": "Wrapping flex-row grid with chips sized to content (gap 8px). On narrow screens, chips wrap naturally to multiple rows. Tap target min 44×44 (achieved via padding).",
|
|
90
|
+
"tablet": "Same as mobile with slightly more breathing room (gap 10px).",
|
|
91
|
+
"desktop": "More chips per row visible (gap 12px). Hover states active."
|
|
92
|
+
},
|
|
93
|
+
"motion": {
|
|
94
|
+
"micro": {
|
|
95
|
+
"chip-press": "scale(0.94) for 80ms then spring back to scale(1) over 220ms cubic-bezier(0.34, 1.56, 0.64, 1)",
|
|
96
|
+
"chip-hover": "translateY(-1px) + border darken over 160ms ease-out (inactive only)",
|
|
97
|
+
"check-icon-in": "opacity 0→1 + translateX(-4px)→0 over 200ms cubic-bezier(0.34, 1.56, 0.64, 1)",
|
|
98
|
+
"check-icon-out": "opacity 1→0 + translateX 0→-4px over 160ms ease-in"
|
|
99
|
+
},
|
|
100
|
+
"transitions": {
|
|
101
|
+
"chip-toggle": "Background and border colors transition together over 200ms ease-out. The check icon's translate creates the satisfying 'snap-in' feel.",
|
|
102
|
+
"validation-appear": "Validation message slides in from translateY(-4px) opacity 0 to translateY(0) opacity 1 over 200ms ease-out"
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
"interactions": [
|
|
106
|
+
"click-select",
|
|
107
|
+
"scale-hover",
|
|
108
|
+
"keyboard-navigation",
|
|
109
|
+
"animate-on-mount"
|
|
110
|
+
],
|
|
111
|
+
"composition": {
|
|
112
|
+
"ChipMultiselect": "ChipGroup(flex-col, gap-3) > [ChipRow(flex-wrap, gap-2) + HelperRow(flex-row, justify-between)]",
|
|
113
|
+
"ChipRow": "Div(flex-wrap, gap-2) > Chip*",
|
|
114
|
+
"Chip": "Button(pill, flex-row, gap-1.5) > [CheckIcon(conditional) + Label]",
|
|
115
|
+
"HelperRow": "Div(flex-row, items-center, justify-between) > [HelperText + CountIndicator]",
|
|
116
|
+
"ValidationMessage": "Span(role-alert, danger, text-xs)"
|
|
117
|
+
}
|
|
118
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "citation-graph",
|
|
3
|
+
"$schema": "https://decantr.ai/schemas/pattern.v2.json",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"decantr_compat": ">=2.0.0",
|
|
6
|
+
"name": "Citation Graph",
|
|
7
|
+
"description": "An interactive network graph visualizing case citation relationships, cross-references, and legal authority chains for research and precedent analysis.",
|
|
8
|
+
"category": "legal",
|
|
9
|
+
"tags": [
|
|
10
|
+
"2026",
|
|
11
|
+
"legal",
|
|
12
|
+
"research",
|
|
13
|
+
"citations",
|
|
14
|
+
"network",
|
|
15
|
+
"graph",
|
|
16
|
+
"precedent"
|
|
17
|
+
],
|
|
18
|
+
"components": [
|
|
19
|
+
"CitationNode",
|
|
20
|
+
"CitationEdge",
|
|
21
|
+
"CaseLabel",
|
|
22
|
+
"DepthIndicator",
|
|
23
|
+
"FilterPanel"
|
|
24
|
+
],
|
|
25
|
+
"default_preset": "network",
|
|
26
|
+
"presets": {
|
|
27
|
+
"network": {
|
|
28
|
+
"description": "Force-directed network graph layout with nodes settling organically by citation density and cross-reference clustering patterns",
|
|
29
|
+
"layout": {
|
|
30
|
+
"layout": "force-directed",
|
|
31
|
+
"atoms": "_relative _w100 _h100 _overflow-hidden _bg-canvas"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"hierarchical": {
|
|
35
|
+
"description": "Tree-style top-down hierarchical layout with foundational cases at top flowing downward through citing authorities by decision date",
|
|
36
|
+
"layout": {
|
|
37
|
+
"layout": "tree-dag",
|
|
38
|
+
"atoms": "_relative _w100 _h100 _overflow-auto _bg-canvas"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"timeline": {
|
|
42
|
+
"description": "Chronological left-to-right layout arranging cases along a time axis with citation arrows arcing forward through decision years",
|
|
43
|
+
"layout": {
|
|
44
|
+
"layout": "horizontal-time",
|
|
45
|
+
"atoms": "_relative _w100 _h100 _overflow-x-auto _bg-canvas"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"visual_brief": "A full-bleed dark canvas with circular nodes representing cases. Node size scales logarithmically with citation count (leading cases become large hubs). Node color encodes court level (SCOTUS dark purple, Circuit Courts blue, District Courts teal, State courts amber) or topic area depending on filter. Edges are directed curved arrows: 'cites' edges in muted gray, 'cited-by' in primary blue, 'overruled' in red with dashed stroke, 'distinguished' in orange. Hovering any node expands a tooltip with full case citation (e.g. 'Brown v. Board of Education, 347 U.S. 483 (1954)'), year, jurisdiction, key holding excerpt, and in/out citation counts. Left-side filter panel contains collapsible sections for jurisdiction, date range slider, topic tags, and citation-depth control. A depth indicator pill in the top-right shows current traversal depth (e.g. '3 hops from root case'). Nodes can be dragged to reposition.",
|
|
50
|
+
"layout_hints": {
|
|
51
|
+
"container": "d-section",
|
|
52
|
+
"note": "Full-bleed graph canvas. Node hit targets minimum 24px. Case labels must render textually, not symbolically.",
|
|
53
|
+
"citation_format": "Always use Bluebook citation format for case labels. Court and year required.",
|
|
54
|
+
"edge_semantics": "Edge style MUST encode relationship type (cites/overruled/distinguished). Do not collapse to single style."
|
|
55
|
+
},
|
|
56
|
+
"default_layout": {
|
|
57
|
+
"layout": "force-directed",
|
|
58
|
+
"atoms": "_relative _w100 _h100 _overflow-hidden _bg-canvas",
|
|
59
|
+
"slots": {
|
|
60
|
+
"graph-canvas": "Zoomable, pannable SVG or WebGL canvas hosting the network. Runs force simulation or static layout depending on preset.",
|
|
61
|
+
"citation-node": "Repeating circular node positioned by simulation. Sized by citation count, colored by court or topic.",
|
|
62
|
+
"citation-edge": "Directed curved arrow connecting two nodes. Style (color, dash, width) encodes citation relationship type.",
|
|
63
|
+
"case-label": "Text label attached to each node showing short case name. Expands to full citation on hover.",
|
|
64
|
+
"depth-indicator": "Pill badge in top-right showing current traversal depth from the root focus case.",
|
|
65
|
+
"filter-panel": "Left-docked sidebar with jurisdiction, date, topic, and depth filters. Collapsible sections."
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"accessibility": {
|
|
69
|
+
"role": "application",
|
|
70
|
+
"aria-label": "Legal case citation network graph",
|
|
71
|
+
"announcements": [
|
|
72
|
+
"Case {citation} has {inCount} inbound and {outCount} outbound citations",
|
|
73
|
+
"Filter {name} set to {value}",
|
|
74
|
+
"Traversal depth changed to {depth}"
|
|
75
|
+
],
|
|
76
|
+
"keyboard": [
|
|
77
|
+
"Tab: cycle through citation nodes",
|
|
78
|
+
"Enter: focus node and show full detail",
|
|
79
|
+
"Arrow keys: pan canvas",
|
|
80
|
+
"+/-: zoom in/out",
|
|
81
|
+
"F: open filter panel",
|
|
82
|
+
"Escape: clear selection"
|
|
83
|
+
]
|
|
84
|
+
},
|
|
85
|
+
"responsive": {
|
|
86
|
+
"mobile": "Graph remains interactive but filter panel becomes a bottom sheet. Node labels hidden by default, shown on tap.",
|
|
87
|
+
"tablet": "Filter panel collapses to icon bar. Graph canvas expanded."
|
|
88
|
+
},
|
|
89
|
+
"motion": {
|
|
90
|
+
"micro": {
|
|
91
|
+
"node-hover": "scale(1.15) + highlight-ring 180ms ease-out",
|
|
92
|
+
"edge-hover": "stroke-width +1.5px + opacity-boost 150ms"
|
|
93
|
+
},
|
|
94
|
+
"transitions": {
|
|
95
|
+
"filter-apply": "nodes fade to 0.2 then back 400ms ease-in-out",
|
|
96
|
+
"layout-reflow": "position lerp 800ms spring",
|
|
97
|
+
"preset-switch": "layout morph 600ms ease"
|
|
98
|
+
},
|
|
99
|
+
"ambient": {
|
|
100
|
+
"active-path": "dash-offset drift 3s linear infinite on focused-path edges"
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"interactions": [
|
|
104
|
+
"drag-nodes",
|
|
105
|
+
"pan-background",
|
|
106
|
+
"zoom-scroll",
|
|
107
|
+
"click-select",
|
|
108
|
+
"hover-tooltip",
|
|
109
|
+
"animate-on-mount"
|
|
110
|
+
],
|
|
111
|
+
"composition": {
|
|
112
|
+
"CitationGraph": "Section(d-section, full-bleed) > [FilterPanel(left) + GraphCanvas > [CitationNode[](d-interactive) + CitationEdge[]] + DepthIndicator(top-right) + Legend]",
|
|
113
|
+
"GraphCanvas": "Viewport(zoomable, pannable) > [EdgeLayer + NodeLayer + LabelLayer]",
|
|
114
|
+
"CitationNode": "Circle(sized, court-colored) > [CaseLabel + HoverTooltip > FullCitation]",
|
|
115
|
+
"CitationEdge": "Path(arrow, styled-by-relation) > RelationBadge?",
|
|
116
|
+
"FilterPanel": "Panel(d-surface) > [JurisdictionFilter + DateRangeFilter + TopicFilter + DepthSlider]"
|
|
117
|
+
}
|
|
118
|
+
}
|