@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,134 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://decantr.ai/schemas/pattern.v2.json",
|
|
3
|
+
"id": "intake-form-wizard",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"decantr_compat": ">=2.0.0",
|
|
6
|
+
"name": "Intake Form Wizard",
|
|
7
|
+
"description": "Multi-step healthcare intake form with conditional branching, progress sidebar, auto-save, file upload, section review, and conversational single-question mode.",
|
|
8
|
+
"category": "healthcare",
|
|
9
|
+
"tags": [
|
|
10
|
+
"2026",
|
|
11
|
+
"healthcare",
|
|
12
|
+
"form",
|
|
13
|
+
"wizard",
|
|
14
|
+
"intake",
|
|
15
|
+
"multi-step",
|
|
16
|
+
"compliance"
|
|
17
|
+
],
|
|
18
|
+
"components": [
|
|
19
|
+
"FormStep",
|
|
20
|
+
"QuestionGroup",
|
|
21
|
+
"ProgressSidebar",
|
|
22
|
+
"ReviewPanel",
|
|
23
|
+
"SaveIndicator",
|
|
24
|
+
"ConditionalBranch",
|
|
25
|
+
"FileUploadField"
|
|
26
|
+
],
|
|
27
|
+
"default_preset": "standard",
|
|
28
|
+
"presets": {
|
|
29
|
+
"standard": {
|
|
30
|
+
"description": "Step-by-step wizard with a left progress sidebar showing section names and completion status, one question group per step in a centered content card",
|
|
31
|
+
"layout": {
|
|
32
|
+
"layout": "split",
|
|
33
|
+
"atoms": "_grid _gc1 _lg:gc[240px_1fr] _gap8 _py6 _min-h-screen"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"conversational": {
|
|
37
|
+
"description": "One question at a time in a centered, large-input conversational flow — minimal chrome, each answer animates to the next question with a chat-like progression feel",
|
|
38
|
+
"layout": {
|
|
39
|
+
"layout": "center",
|
|
40
|
+
"atoms": "_flex _col _aic _jcc _maxw-[560px] _mx-auto _py8 _min-h-screen"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"review": {
|
|
44
|
+
"description": "All previously answered sections displayed in a scrollable summary table with inline edit links — the final step before submission to review and correct answers",
|
|
45
|
+
"layout": {
|
|
46
|
+
"layout": "stack",
|
|
47
|
+
"atoms": "_flex _col _gap6 _maxw-[720px] _mx-auto _py6"
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"visual_brief": "Two-panel layout. Left panel is a fixed ProgressSidebar (240px wide, surface background, full viewport height): a vertical list of section names (e.g. 'Personal Info', 'Medical History', 'Current Medications', 'Insurance', 'Consent') each with a status icon to the left. Completed sections show a green circle with white checkmark. The current section shows an accent-filled circle with a dot. Upcoming sections show an empty gray circle. A thin vertical line connects the circles. Section names are medium-weight text; the current section is bold with accent color. At the bottom of the sidebar, a small muted progress label shows '3 of 5 sections completed'. The right panel is the main form content area with a clean white card (max-width 600px, centered within the right panel, generous padding 32px). The card header shows the current section title in heading-3 style and a one-line description below in muted text. Below the header, QuestionGroup components render vertically: each question has a label (semibold, with a small red asterisk for required fields), a help text line below the label in muted text, and the appropriate input (text field, textarea, radio group, checkbox group, select dropdown, date picker, or FileUploadField). FileUploadField renders as a dashed-border drop zone with an upload icon, 'Drag file or click to browse' text, and accepted file types listed below. Inputs have comfortable vertical spacing (24px gap). Validation errors appear below the input in red text with an error icon. At the bottom of the card, a row with 'Back' secondary button on the left and 'Continue' primary button on the right. The SaveIndicator sits in the top-right corner of the card as a small pill: during save it shows a spinning circle icon + 'Saving...', after save it shows a green checkmark + 'Saved' that fades to subtle opacity after 3 seconds. ConditionalBranch logic hides or reveals question groups based on prior answers (e.g. selecting 'Yes' to allergies reveals an allergy detail text area). The conversational preset shows one large question centered on screen with a large input below it, no sidebar, and a 'Next' button or Enter-to-advance. Previous answers appear as small muted chips above the current question. The review preset lists all sections as collapsible panels with answer summaries in a two-column table (question label | answer) and 'Edit' links that jump back to that section.",
|
|
52
|
+
"default_layout": {
|
|
53
|
+
"layout": "split",
|
|
54
|
+
"atoms": "_grid _gc1 _lg:gc[240px_1fr] _gap8 _py6",
|
|
55
|
+
"slots": {
|
|
56
|
+
"progress-sidebar": "Fixed-width left sidebar showing form completion progress. Vertical stepper with connected circles and section labels. Each section: status circle (completed=green checkmark, current=accent dot, upcoming=gray empty) connected by a thin vertical line. Section name text: completed sections are muted with strikethrough-free normal weight, current section is bold accent, upcoming sections are normal weight muted. Bottom of sidebar shows overall progress: 'X of Y completed' label and optionally a thin horizontal progress bar. The sidebar is sticky on scroll so it remains visible as the user scrolls through long form sections.",
|
|
57
|
+
"form-step": "The main content card for the current step. Clean surface card with rounded corners and comfortable padding (32px). Header: section title (heading-3) and optional description paragraph (muted text). Body: one or more QuestionGroup components stacked vertically with 24px spacing. Each question group can contain multiple related questions (e.g. first name + last name grouped horizontally). Footer: navigation row with 'Back' button (secondary, left-aligned, hidden on first step) and 'Continue' button (primary, right-aligned, changes to 'Submit' on the last step). The card has a subtle border and optional shadow-sm for elevation.",
|
|
58
|
+
"question-group": "A cluster of related form questions within a FormStep. Contains one or more question rows. Each question row: label (semibold, 14px, with red asterisk if required), optional help text below label (muted, 12px), and the input field. Supported input types: text input, textarea (auto-growing), radio group (vertical list of radio options), checkbox group, select dropdown, date picker, file upload zone. Conditional branching: when a question has branch logic, answering it triggers a smooth reveal of dependent questions below with a slide-down animation. Validation messages appear on blur or on 'Continue' click: red text below the input with an error icon.",
|
|
59
|
+
"save-indicator": "Small status pill positioned at the top-right corner of the form card. Three states: idle (hidden or very subtle 'Auto-saved'), saving (spinning circle icon + 'Saving...' in muted text), saved (green checkmark + 'Saved' in green text, fades to lower opacity after 3 seconds). Triggers auto-save on each input blur or after a debounced typing pause (default 2 seconds).",
|
|
60
|
+
"review-panel": "Displayed in the review preset or as the final step. Lists all completed sections as collapsible panels. Each panel header shows section name and a small 'Edit' link. Panel body shows a two-column table: left column is question labels (muted), right column is answers (normal weight). Unanswered optional questions show a dash. File uploads show the filename as a link. At the bottom, a 'Submit' primary button and a consent checkbox if required."
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"responsive": {
|
|
64
|
+
"mobile": "Sidebar collapses to a horizontal progress bar at the top of the screen (thin bar showing percentage + current section name). Form card goes full-width with reduced padding (16px). Navigation buttons are full-width and stacked (Continue on top, Back below). File upload zone uses a simple button instead of a drag area. Conversational preset works naturally at full width. Review panel tables stack question above answer.",
|
|
65
|
+
"tablet": "Sidebar remains visible at reduced width (200px). Form card fills remaining space. Standard padding and input sizes. Navigation buttons in a row. Comfortable touch targets on all inputs.",
|
|
66
|
+
"desktop": "Full two-panel layout with 240px sidebar and centered form card (max-width 600px). Generous spacing and padding. Hover states on all interactive elements. File upload supports drag-and-drop."
|
|
67
|
+
},
|
|
68
|
+
"motion": {
|
|
69
|
+
"micro": {
|
|
70
|
+
"input-focus": "border-color accent + shadow-ring-accent/20 150ms ease-out",
|
|
71
|
+
"step-circle-complete": "scale(0.9→1.1→1) + color-fill green 300ms ease-out",
|
|
72
|
+
"button-press": "scale(0.98) 100ms ease-in"
|
|
73
|
+
},
|
|
74
|
+
"transitions": {
|
|
75
|
+
"step-forward": "current-card translateX(0→-20px) + opacity 1→0 200ms ease-in, then new-card translateX(20px→0) + opacity 0→1 300ms ease-out",
|
|
76
|
+
"step-backward": "current-card translateX(0→20px) + opacity 1→0 200ms ease-in, then new-card translateX(-20px→0) + opacity 0→1 300ms ease-out",
|
|
77
|
+
"conditional-reveal": "max-height 0→auto + opacity 0→1 350ms ease-out",
|
|
78
|
+
"conditional-hide": "max-height auto→0 + opacity 1→0 250ms ease-in",
|
|
79
|
+
"save-indicator-fade": "opacity 1→0.4 1s ease-out after 3s delay"
|
|
80
|
+
},
|
|
81
|
+
"ambient": {
|
|
82
|
+
"saving-spinner": "rotate(0→360deg) 800ms linear infinite",
|
|
83
|
+
"required-asterisk-pulse": "opacity 0.6→1→0.6 2s ease-in-out infinite on validation error"
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"interactions": [
|
|
87
|
+
"animate-on-mount",
|
|
88
|
+
"inline-edit",
|
|
89
|
+
"keyboard-navigation",
|
|
90
|
+
"click-select",
|
|
91
|
+
"focus-trap",
|
|
92
|
+
"stagger-children"
|
|
93
|
+
],
|
|
94
|
+
"composition": {
|
|
95
|
+
"IntakeWizard": "Container(d-section, grid: sidebar+main) > [ProgressSidebar(d-surface, sticky, flex-col) + FormStep(d-surface, card, centered, max-w-600) > QuestionGroup(d-data, flex-col, gap-6)* > [Question(d-data) > [Label(required?) + HelpText? + Input(d-interactive) + ValidationMsg?]] + NavigationRow > [BackButton?(d-interactive, secondary) + ContinueButton(d-interactive, primary)]] + ReviewPanel?(d-surface, conditional: final-step) + SaveIndicator(d-annotation, position: absolute, top-right)",
|
|
96
|
+
"ProgressSidebar": "Nav(d-surface, sticky, flex-col, gap-2) > StepItem(d-annotation, status: completed|current|upcoming) > [StatusCircle(color: status) + SectionLabel(weight: status)]",
|
|
97
|
+
"FormStep": "Card(d-surface, padding-lg) > [StepHeader > [Title(heading-3) + Description?(muted)] + QuestionGroup* + NavRow]",
|
|
98
|
+
"QuestionGroup": "Fieldset(d-data, flex-col, gap-6) > QuestionRow > [Label(semibold, required-asterisk?) + HelpText?(muted, text-sm) + Input(d-interactive, type-variant) + ConditionalBranch?(expandable) + ValidationError?(d-annotation, red)]",
|
|
99
|
+
"ReviewPanel": "Container(d-surface, flex-col, gap-4) > ReviewSection(d-data, collapsible) > [SectionHeader > [SectionName + EditLink(d-interactive)] + AnswerTable(d-data, two-column) > AnswerRow > [QuestionLabel(muted) + AnswerValue]]"
|
|
100
|
+
},
|
|
101
|
+
"layout_hints": {
|
|
102
|
+
"wizard_priority": "Step progress and the current question set should be obvious before secondary save or review chrome. The user should always know where they are in the process.",
|
|
103
|
+
"conditional_reveal": "Conditional branches should appear as a continuation of the current step, not like a different form dropped into the middle of the wizard.",
|
|
104
|
+
"review_phase": "Review mode should preserve the same section structure used during intake so users can reconcile answers without rebuilding the form mentally."
|
|
105
|
+
},
|
|
106
|
+
"layout_hints": {
|
|
107
|
+
"wizard_priority": "Step progress and the current question set should be obvious before secondary save or review chrome. The user should always know where they are in the process.",
|
|
108
|
+
"conditional_reveal": "Conditional branches should appear as a continuation of the current step, not like a different form dropped into the middle of the wizard.",
|
|
109
|
+
"review_phase": "Review mode should preserve the same section structure used during intake so users can reconcile answers without rebuilding the form mentally."
|
|
110
|
+
},
|
|
111
|
+
"accessibility": {
|
|
112
|
+
"role": "form",
|
|
113
|
+
"aria-label": "Multi-step intake form wizard",
|
|
114
|
+
"keyboard": [
|
|
115
|
+
"Tab: move between form fields within the current step",
|
|
116
|
+
"Enter: advance to the next step (when on Continue button) or submit answer (conversational mode)",
|
|
117
|
+
"Shift+Tab: move backwards between fields",
|
|
118
|
+
"Arrow Up/Down: navigate radio and select options",
|
|
119
|
+
"Space: toggle checkboxes",
|
|
120
|
+
"Escape: cancel file upload or close date picker",
|
|
121
|
+
"Alt+Left: go to previous step",
|
|
122
|
+
"Alt+Right: go to next step"
|
|
123
|
+
],
|
|
124
|
+
"announcements": [
|
|
125
|
+
"Step {current} of {total}: {section_name}",
|
|
126
|
+
"Required field: {label}",
|
|
127
|
+
"Validation error on {label}: {error_message}",
|
|
128
|
+
"Progress saved automatically",
|
|
129
|
+
"Conditional questions revealed: {count} additional questions",
|
|
130
|
+
"Review mode: check your answers before submitting",
|
|
131
|
+
"Form submitted successfully"
|
|
132
|
+
]
|
|
133
|
+
}
|
|
134
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "intent-radar",
|
|
3
|
+
"$schema": "https://decantr.ai/schemas/pattern.v2.json",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"decantr_compat": ">=2.0.0",
|
|
6
|
+
"name": "Intent Radar",
|
|
7
|
+
"description": "A radial polar interface that visualizes user intent as vectors radiating from a center point, with suggestions pulsing outward based on confidence scores — used for AI command palettes, intent disambiguation, and contextual action discovery.",
|
|
8
|
+
"category": "agentic",
|
|
9
|
+
"tags": [
|
|
10
|
+
"2026",
|
|
11
|
+
"agentic",
|
|
12
|
+
"radial",
|
|
13
|
+
"intent",
|
|
14
|
+
"command-palette",
|
|
15
|
+
"disambiguation"
|
|
16
|
+
],
|
|
17
|
+
"components": [
|
|
18
|
+
"RadarDisplay",
|
|
19
|
+
"IntentVector",
|
|
20
|
+
"SuggestionChip",
|
|
21
|
+
"ConfidenceIndicator",
|
|
22
|
+
"ActionButton"
|
|
23
|
+
],
|
|
24
|
+
"default_preset": "standard",
|
|
25
|
+
"presets": {
|
|
26
|
+
"standard": {
|
|
27
|
+
"description": "Full radial radar centered in a modal or dedicated panel — shows all intent vectors with confidence arcs and pulsing suggestion rings",
|
|
28
|
+
"layout": {
|
|
29
|
+
"layout": "spatial",
|
|
30
|
+
"atoms": "_flex _aic _jcc _rel _aspectsquare"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"compact": {
|
|
34
|
+
"description": "Semi-circular radar (180° arc) for bottom-sheet or sidebar placement — intent vectors fan upward from a flat base edge, suggestions appear as a horizontal chip row below the arc",
|
|
35
|
+
"layout": {
|
|
36
|
+
"layout": "stack",
|
|
37
|
+
"atoms": "_flex _col _aic _rel"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"inline": {
|
|
41
|
+
"description": "Minimal horizontal bar variant — confidence scores render as a horizontal gradient strip with suggestion chips in a scrollable row, no radial geometry — for tight inline placements like chat input companions",
|
|
42
|
+
"layout": {
|
|
43
|
+
"layout": "row",
|
|
44
|
+
"atoms": "_flex _aic _gap3 _px4 _py2 _bb[1px_solid_var(--d-border)]"
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"default_layout": {
|
|
49
|
+
"layout": "spatial",
|
|
50
|
+
"atoms": "_flex _aic _jcc _rel _aspectsquare",
|
|
51
|
+
"slots": {
|
|
52
|
+
"radar-center": "The focal point of the radial display. Renders as a glowing circle (40–56px diameter) at the exact center of the radar. Shows the current input query text or a microphone/search icon when idle. Pulses gently with a ring animation when the system is interpreting intent. Color shifts from neutral (idle) to primary (active) to accent (confident match found). Acts as the origin point from which all intent vectors radiate.",
|
|
53
|
+
"intent-vector": "Repeating slot — one per detected intent category. Each vector is a line segment radiating from radar-center outward at an angle determined by the intent's semantic category (e.g., 'create' at 0°, 'search' at 90°, 'navigate' at 180°, 'configure' at 270°). Length corresponds to confidence score (0–1 maps to 0%–100% of radar radius). Line thickness also scales with confidence (1px at low, 3px at high). The vector terminates in a small labeled dot showing the intent category name. Vectors animate smoothly when confidence values update — growing, shrinking, or rotating as the user types. Color is category-coded using theme accent palette.",
|
|
54
|
+
"suggestion-ring": "Concentric rings at 33%, 66%, and 100% of the radar radius. These are subtle dashed circles that provide visual scale for confidence levels. When a suggestion reaches a ring threshold, the ring segment nearest to that vector briefly brightens. The outermost ring represents the action zone — suggestions that reach it are high-confidence and ready to execute. Rings use very low opacity (0.1–0.15) to avoid visual clutter.",
|
|
55
|
+
"confidence-arc": "A filled arc segment drawn along the suggestion rings corresponding to each intent vector's angular spread. Width of the arc represents ambiguity — a narrow arc means precise intent, a wide arc means the system is uncertain between adjacent categories. Fill uses a gradient from the vector's color at center to transparent at edges. Arcs animate smoothly as confidence refines. Multiple overlapping arcs create visual 'heat zones' showing where intent energy clusters.",
|
|
56
|
+
"action-zone": "The interactive outer ring of the radar. When an intent vector's confidence exceeds the action threshold (configurable, default 0.75), a SuggestionChip materializes at the vector's endpoint on the outer ring. Each chip shows the suggested action label, a keyboard shortcut hint, and a small confidence percentage. Chips are clickable/tappable to execute the action. Multiple high-confidence suggestions can coexist on the ring. Chips pulse gently to draw attention, with the highest-confidence chip pulsing most prominently. Pressing Enter executes the top-confidence chip."
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"accessibility": {
|
|
60
|
+
"role": "search",
|
|
61
|
+
"aria-label": "Intent radar — type to discover actions",
|
|
62
|
+
"announcements": [
|
|
63
|
+
"Top suggestion: {action} with {confidence}% confidence",
|
|
64
|
+
"{count} possible intents detected",
|
|
65
|
+
"Action {name} selected, press Enter to execute",
|
|
66
|
+
"Intent narrowed to {category}"
|
|
67
|
+
],
|
|
68
|
+
"keyboard": [
|
|
69
|
+
"Type: refine intent — vectors update in real time",
|
|
70
|
+
"Arrow Up/Down: cycle through ranked suggestions by confidence",
|
|
71
|
+
"Enter: execute the currently highlighted suggestion",
|
|
72
|
+
"Tab: move focus between action-zone chips",
|
|
73
|
+
"Escape: clear input and reset radar to idle state",
|
|
74
|
+
"1-9: quick-select suggestion by rank number"
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
"responsive": {
|
|
78
|
+
"mobile": "Switches to compact semi-circular mode automatically. Suggestion chips render as a vertically scrollable list below the half-radar rather than on the arc. Touch-friendly chip sizes (min 44px tap target). Confidence arcs simplified to solid fills.",
|
|
79
|
+
"tablet": "Full radial radar with slightly reduced radius. Suggestion chips remain on the outer ring but increase tap target size. Two-column chip overflow if more than 6 suggestions."
|
|
80
|
+
},
|
|
81
|
+
"layout_hints": {
|
|
82
|
+
"container_rhythm": "Treat the radar as a single focal visualization region. Parent layouts own section spacing; this pattern owns only its square or semi-circular visualization frame and the immediate chip/action zone around it.",
|
|
83
|
+
"radial_hierarchy": "Keep radar-center visually dominant, suggestion rings secondary, and action-zone chips tertiary until confidence rises. The outer action ring should feel like the execution boundary, not a second unrelated toolbar.",
|
|
84
|
+
"compact_fallback": "When the pattern collapses to compact or inline modes, preserve the same semantic order: current query or intent core first, ranked suggestions second, execution affordances last. Do not let chip rows drift away from their associated confidence signal."
|
|
85
|
+
},
|
|
86
|
+
"visual_brief": "Circular radial display with a glowing center point showing the current input query. Intent suggestion vectors radiate outward as labeled lines with lengths proportional to confidence scores. High-confidence suggestions appear closer to the edge with brighter colors; low-confidence ones are shorter and dimmer. SuggestionChip components sit at the end of each vector as clickable pill labels. The radar has subtle concentric circle gridlines. Compact preset renders as a smaller inline widget. The inline preset displays a horizontal confidence bar instead of the radial layout.",
|
|
87
|
+
"motion": {
|
|
88
|
+
"micro": {
|
|
89
|
+
"segment-hover": "opacity 0.7→1 + scale(1.02) 150ms ease-out",
|
|
90
|
+
"label-reveal": "fade + translateY(4px→0) 200ms ease-out on hover"
|
|
91
|
+
},
|
|
92
|
+
"transitions": {
|
|
93
|
+
"data-update": "segment-size lerp 500ms ease-out",
|
|
94
|
+
"focus-shift": "highlight-ring transition 300ms ease-out"
|
|
95
|
+
},
|
|
96
|
+
"ambient": {
|
|
97
|
+
"radar-sweep": "rotation 8s linear infinite on scan indicator",
|
|
98
|
+
"pulse-ring": "scale(1→1.3) + opacity(1→0) 2s ease-out infinite"
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"interactions": [
|
|
102
|
+
"animate-on-mount",
|
|
103
|
+
"hover-tooltip",
|
|
104
|
+
"status-pulse",
|
|
105
|
+
"click-select",
|
|
106
|
+
"live-simulation"
|
|
107
|
+
],
|
|
108
|
+
"composition": {
|
|
109
|
+
"IntentRadar": "Display(d-section, spatial, aspect-square) > [SuggestionRings + IntentVectors + RadarCenter + ActionZone]",
|
|
110
|
+
"RadarCenter": "Core(d-interactive, glowing, pulsing: interpreting) > [QueryText | SearchIcon]",
|
|
111
|
+
"IntentVectors": "Layer > IntentVector(d-data, radial, length: confidence, color: category)[]",
|
|
112
|
+
"SuggestionRings": "Layer > Ring(d-annotation, dashed, opacity-low)[]",
|
|
113
|
+
"ActionZone": "Ring(d-interactive, outer) > SuggestionChip(d-interactive, confidence-pulse)[]"
|
|
114
|
+
}
|
|
115
|
+
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://decantr.ai/schemas/pattern.v2.json",
|
|
3
|
+
"id": "json-viewer",
|
|
4
|
+
"version": "1.1.2",
|
|
5
|
+
"decantr_compat": ">=2.0.0",
|
|
6
|
+
"name": "JSON Viewer",
|
|
7
|
+
"description": "Artifact viewer for registry contracts with syntax highlighting, line numbers, copy actions, summary metrics, and optional tabs for JSON, commands, and evidence.",
|
|
8
|
+
"dependencies": {
|
|
9
|
+
"patterns": {},
|
|
10
|
+
"styles": {},
|
|
11
|
+
"requires_core": {
|
|
12
|
+
"components": [
|
|
13
|
+
"Button",
|
|
14
|
+
"icon"
|
|
15
|
+
],
|
|
16
|
+
"charts": []
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"contained": false,
|
|
20
|
+
"components": [
|
|
21
|
+
"Button",
|
|
22
|
+
"icon"
|
|
23
|
+
],
|
|
24
|
+
"default_preset": "artifact",
|
|
25
|
+
"presets": {
|
|
26
|
+
"artifact": {
|
|
27
|
+
"description": "Premium artifact panel with a padded toolbar, segmented tab strip, syntax-highlighted JSON, and supporting summary metadata.",
|
|
28
|
+
"components": [
|
|
29
|
+
"Button",
|
|
30
|
+
"icon"
|
|
31
|
+
],
|
|
32
|
+
"layout": {
|
|
33
|
+
"layout": "stack",
|
|
34
|
+
"atoms": "_flex _col _gap0 _r3 _overflow[hidden] _border _bordermuted/20",
|
|
35
|
+
"slots": {
|
|
36
|
+
"header": "Toolbar row with artifact title, summary badges, and copy-to-clipboard Button. Maintain a shared horizontal inset so title and actions never sit flush against the frame.",
|
|
37
|
+
"tabs": "Segmented tab strip for JSON, Commands, and Evidence views with the same horizontal inset as the toolbar",
|
|
38
|
+
"summary-strip": "Compact metadata row with line count, byte size, schema id, or root key count",
|
|
39
|
+
"line-numbers": "Gutter column with line numbers, _fgmuted _textxs _mono",
|
|
40
|
+
"json-content": "Syntax-highlighted JSON with collapsible nodes. Keys in _fgprimary, strings in _fgwarning, numbers in _fgsuccess, booleans in _fgaccent",
|
|
41
|
+
"footer": "Optional footer with copy confirmation, notes, or schema guidance"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"collapsible": {
|
|
46
|
+
"description": "Full JSON viewer with collapsible object/array nodes, syntax highlighting, line numbers, and a copy button in the header.",
|
|
47
|
+
"components": [
|
|
48
|
+
"Button",
|
|
49
|
+
"icon"
|
|
50
|
+
],
|
|
51
|
+
"layout": {
|
|
52
|
+
"layout": "stack",
|
|
53
|
+
"atoms": "_flex _col _gap0 _r3 _overflow[hidden] _border _bordermuted/20",
|
|
54
|
+
"slots": {
|
|
55
|
+
"header": "Toolbar row with title, expand/collapse all toggle, and copy-to-clipboard Button",
|
|
56
|
+
"line-numbers": "Gutter column with line numbers, _fgmuted _textxs _mono",
|
|
57
|
+
"json-content": "Syntax-highlighted JSON with collapsible nodes. Keys in _fgprimary, strings in _fgsuccess, numbers in _fgwarning, booleans in _fgdestructive",
|
|
58
|
+
"footer": "Optional footer with byte size and node count"
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"inline": {
|
|
63
|
+
"description": "Inline JSON snippet, non-collapsible, with copy button. For small JSON payloads.",
|
|
64
|
+
"components": [
|
|
65
|
+
"Button",
|
|
66
|
+
"icon"
|
|
67
|
+
],
|
|
68
|
+
"layout": {
|
|
69
|
+
"layout": "stack",
|
|
70
|
+
"atoms": "_relative _r2 _overflow[hidden] _border _bordermuted/20",
|
|
71
|
+
"slots": {
|
|
72
|
+
"copy-button": "Absolute top-right copy Button",
|
|
73
|
+
"json-content": "Syntax-highlighted JSON, no line numbers"
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"default_layout": {
|
|
79
|
+
"layout": "stack",
|
|
80
|
+
"atoms": "_flex _col _gap0 _r3 _overflow[hidden] _border _bordermuted/20",
|
|
81
|
+
"slots": {
|
|
82
|
+
"header": "Toolbar with title, summary, and copy button",
|
|
83
|
+
"tabs": "Segmented tab strip",
|
|
84
|
+
"json-content": "Syntax-highlighted JSON"
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"visual_brief": "A premium contract viewer panel with the feel of a polished shadcn-style code surface, but expressed through Decantr treatments and decorators. The header is compact and editorial: title on the left, a small metadata strip in the middle, and copy actions on the right. Every section inside the frame shares a consistent horizontal inset so the title, tabs, cards, and footer read as one curated artifact surface instead of touching the border. Below the header, a segmented tab control can switch between JSON, Commands, and Evidence views. The JSON body uses a stronger `lum-code-block` treatment with an accent top border, subdued line-number gutter, and vivid but restrained syntax colors. The whole panel should feel like a trustworthy artifact explorer, not just a raw textarea dump.",
|
|
88
|
+
"layout_hints": {
|
|
89
|
+
"viewer_treatment": "Use lum-code-block or an equivalent artifact treatment with a dark body, an accent top border, and a compact toolbar. The code panel should feel purposeful and premium, not like a default developer console. The outer frame owns the inset rhythm for every inner band.",
|
|
90
|
+
"toolbar": "Header bar: title on the left, summary metrics in the middle, and copy/secondary actions on the right. A small segmented tab strip may sit directly beneath or inside the toolbar. Keep a shared x-axis inset across toolbar, tabs, content, and footer.",
|
|
91
|
+
"syntax": "Syntax highlighting uses theme-accented colors: keys=coral, strings=amber, numbers=cyan, booleans=green, null=muted.",
|
|
92
|
+
"artifact_summary": "Always surface a few useful stats before the raw JSON: line count, byte size, schema id, root key count, or command availability. Summary chips should feel tucked into the frame, not pressed against the edge."
|
|
93
|
+
},
|
|
94
|
+
"responsive": {
|
|
95
|
+
"mobile": "Full-width viewer with horizontal scroll for deeply nested content. Tabs collapse into a compact segmented control, but the frame still keeps a small internal gutter. Nodes default to collapsed beyond depth 2 and summary metrics wrap into two rows.",
|
|
96
|
+
"tablet": "Standard viewer width with a compact tab strip. Nodes expand to depth 3 by default and summary metrics stay visible without overwhelming the header.",
|
|
97
|
+
"desktop": "Full viewer with comfortable width. Tabs, summary metrics, and copy actions all remain visible. Horizontal space accommodates deep nesting without crowding."
|
|
98
|
+
},
|
|
99
|
+
"motion": {
|
|
100
|
+
"micro": "Copy actions, tab switches, and collapsible node toggles may animate subtly over 120-180ms. Avoid flashy motion inside code surfaces.",
|
|
101
|
+
"transitions": "Tab and artifact-state changes should cross-fade or slide minimally so the viewer remains trustworthy and stable."
|
|
102
|
+
},
|
|
103
|
+
"interactions": [
|
|
104
|
+
"hover-reveal",
|
|
105
|
+
"click-select",
|
|
106
|
+
"animate-on-mount",
|
|
107
|
+
"keyboard-navigation"
|
|
108
|
+
],
|
|
109
|
+
"accessibility": {
|
|
110
|
+
"role": "region",
|
|
111
|
+
"aria-label": "JSON contract viewer",
|
|
112
|
+
"keyboard": [
|
|
113
|
+
"Tab moves through tabs, copy actions, and expandable nodes.",
|
|
114
|
+
"Arrow keys may navigate tree nodes when the JSON body is rendered as an interactive tree."
|
|
115
|
+
],
|
|
116
|
+
"announcements": [
|
|
117
|
+
"Copy success and tab changes should be announced clearly.",
|
|
118
|
+
"Artifact summary metrics should be available before the raw JSON body."
|
|
119
|
+
],
|
|
120
|
+
"focus_management": "Keep focus stable when switching tabs or copying values, and do not drop keyboard users into the middle of a deep JSON tree unexpectedly."
|
|
121
|
+
},
|
|
122
|
+
"composition": {
|
|
123
|
+
"ArtifactViewer": "Panel(lum-code-block, stack, padded-frame) > [Toolbar + Tabs + SummaryStrip + JsonPane + Footer]",
|
|
124
|
+
"Toolbar": "Row(d-data, compact) > [Title + SummaryBadges + ActionButtons]",
|
|
125
|
+
"Tabs": "SegmentedControl(d-interactive) > [JsonTab + CommandsTab + EvidenceTab]",
|
|
126
|
+
"JsonPane": "CodeRegion(mono, syntax-highlighted) > [LineNumbers + JsonTree]",
|
|
127
|
+
"SummaryStrip": "Row(d-annotation, compact) > [Lines + Bytes + Schema + RootKeys]"
|
|
128
|
+
}
|
|
129
|
+
}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://decantr.ai/schemas/pattern.v2.json",
|
|
3
|
+
"id": "kanban-board",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"decantr_compat": ">=2.0.0",
|
|
6
|
+
"name": "Kanban Board",
|
|
7
|
+
"description": "Drag-and-drop column board with swimlanes, card previews, and column limits for visual project workflow management.",
|
|
8
|
+
"category": "project-management",
|
|
9
|
+
"tags": [
|
|
10
|
+
"2026",
|
|
11
|
+
"kanban",
|
|
12
|
+
"project-management",
|
|
13
|
+
"drag-and-drop",
|
|
14
|
+
"board",
|
|
15
|
+
"workflow",
|
|
16
|
+
"cards"
|
|
17
|
+
],
|
|
18
|
+
"components": [
|
|
19
|
+
"Board",
|
|
20
|
+
"Column",
|
|
21
|
+
"ColumnHeader",
|
|
22
|
+
"Card",
|
|
23
|
+
"CardPreview",
|
|
24
|
+
"DragOverlay",
|
|
25
|
+
"AddCardButton",
|
|
26
|
+
"ColumnLimit"
|
|
27
|
+
],
|
|
28
|
+
"default_preset": "standard",
|
|
29
|
+
"presets": {
|
|
30
|
+
"standard": {
|
|
31
|
+
"description": "Standard kanban board with 3-5 columns, full-size cards with previews, and visible WIP limits — ideal as a primary project view",
|
|
32
|
+
"layout": {
|
|
33
|
+
"layout": "horizontal-scroll",
|
|
34
|
+
"atoms": "_flex _row _gap-4 _overflow-x-auto _h-full _p-4 _bg-muted"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"compact": {
|
|
38
|
+
"description": "Dense kanban layout with mini cards showing only title and status accent — optimized for high card counts and quick scanning across many columns",
|
|
39
|
+
"layout": {
|
|
40
|
+
"layout": "horizontal-scroll",
|
|
41
|
+
"atoms": "_flex _row _gap-2 _overflow-x-auto _h-full _p-2 _bg-muted"
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"grouped": {
|
|
45
|
+
"description": "Swimlane-based kanban board with horizontal rows grouping cards by assignee, priority, or category — columns repeat within each swimlane row",
|
|
46
|
+
"layout": {
|
|
47
|
+
"layout": "grid",
|
|
48
|
+
"atoms": "_grid _overflow-auto _h-full _p-4 _bg-muted _gap-4"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"visual_brief": "A horizontally scrollable board surface set against a muted recessed background (subtle inset shadow conveying depth). Each column is a tall, narrow d-surface card (280px wide, full height minus padding) with a slightly rounded top edge and a thin top-border accent matching the column's status color (e.g., blue for In Progress, amber for Review, green for Done). Column headers sit at the top of each column: bold title text left-aligned, a count badge (pill-shaped, muted background) showing the number of cards, and beneath the title a thin 2px-tall progress bar representing WIP limit usage — the bar fills with accent color and turns red when the limit is exceeded. Cards within each column are compact surface tiles (full column width minus 16px padding) stacked vertically with 8px gaps. Each card has a 4px left-edge color accent strip indicating priority or status (red for urgent, amber for medium, green for low, gray for none). Card content shows a bold title (14px, single line, truncated), a muted description preview (12px, 2 lines max, text-muted), and a bottom row with assignee avatar (20px circle), due date chip, and tag pills. When dragging, the DragOverlay renders the card with a 2-degree clockwise rotation, an elevated box-shadow (0 12px 24px rgba(0,0,0,0.15)), and 85% opacity, clearly communicating the 'in flight' state. Drop targets highlight with a dashed border (2px, accent color) and a subtle pulsing background tint. Empty columns display a centered dashed-border rectangle (border-radius 8px) with muted instructional text ('Drag a card here or click + to add') and a plus icon. The AddCardButton sits at the bottom of each column as a ghost-style button with a plus icon, full column width, with a hover state that shows a subtle background fill.",
|
|
53
|
+
"layout_hints": {
|
|
54
|
+
"container": "full-bleed-scroll",
|
|
55
|
+
"note": "The board scrolls horizontally. Each column is a fixed-width vertical container. Cards within columns scroll vertically when they overflow the column height.",
|
|
56
|
+
"column_width": "Columns should be 280px wide in standard preset, 220px in compact. Use flex-shrink-0 to prevent columns from collapsing.",
|
|
57
|
+
"card_interaction": "Cards MUST have cursor: grab (cursor: grabbing when dragging). Each card uses d-surface with data-interactive for hover elevation change.",
|
|
58
|
+
"wip_limit_bar": "The thin progress bar beneath column headers uses a 2px height. Fill color matches column accent when under limit, switches to var(--d-error) when at or over limit. Include a title attribute showing 'N / M' count.",
|
|
59
|
+
"drag_overlay": "During drag, the original card position shows a placeholder (dashed border, same dimensions, muted background). The floating drag overlay follows the cursor with transform: rotate(2deg) and elevated shadow.",
|
|
60
|
+
"swimlane_rows": "In grouped preset, swimlane rows are separated by a 1px hairline divider with a row header on the left showing the group label (assignee name, priority level, etc.)."
|
|
61
|
+
},
|
|
62
|
+
"default_layout": {
|
|
63
|
+
"layout": "horizontal-scroll",
|
|
64
|
+
"atoms": "_flex _row _gap-4 _overflow-x-auto _h-full _p-4 _bg-muted",
|
|
65
|
+
"slots": {
|
|
66
|
+
"board-container": "The outermost scrollable container. Uses horizontal flex layout with overflow-x-auto. Background is a muted recessed surface (var(--d-bg-muted) with a subtle inset box-shadow: inset 0 2px 4px rgba(0,0,0,0.05)). Padding of 16px on all sides. The container stretches to fill the available viewport height. Scroll behavior is smooth with snap points at each column edge (scroll-snap-type: x proximity). A subtle horizontal scrollbar is styled to match the theme (thin, rounded, semi-transparent).",
|
|
67
|
+
"column": "Repeating slot — one per workflow stage. Each column is a vertical d-surface card, 280px wide (flex-shrink: 0), full height of the board minus container padding. Background is var(--d-bg-surface) with border-radius 12px and a subtle box-shadow (0 1px 3px rgba(0,0,0,0.08)). A 3px top-border in the column's designated status color (configurable per column). Internal layout is flex-col with the header pinned at top, cards in a scrollable middle section (flex: 1, overflow-y: auto with masked top/bottom fade), and the AddCardButton anchored at the bottom. Column spacing between cards is 8px with 12px horizontal padding.",
|
|
68
|
+
"column-header": "Pinned at the top of each column. Contains: the column title (font-weight 600, text-sm, left-aligned), a count badge (inline pill, background var(--d-bg-muted), text-xs, min-width 24px, text-center showing the card count), and an optional overflow menu (three-dot icon, appears on hover). Below the title row is the WIP limit indicator — a thin 2px-tall bar spanning the full column width. The bar fills proportionally (cards / limit) with the column's accent color, and turns var(--d-error) red with a subtle pulse animation when the limit is reached or exceeded. If no WIP limit is set, the bar is hidden.",
|
|
69
|
+
"card": "Repeating slot within each column — one per task/item. Each card is a d-surface tile with border-radius 8px, padding 12px, and a 4px left-border accent strip indicating priority (red=#ef4444 urgent, amber=#f59e0b medium, green=#22c55e low, gray=#94a3b8 none). Card layout is vertical stack: Row 1 is the title (font-weight 500, text-sm, single line with text-ellipsis overflow-hidden whitespace-nowrap). Row 2 is the description preview (text-xs, text-muted, max 2 lines with line-clamp-2). Row 3 is a horizontal flex row with: assignee avatar (20px circle, border: 2px solid var(--d-bg-surface)), due date as a small chip (text-xs, if overdue then text-error with a subtle red background tint), and tag pills (text-xs, rounded-full, muted colored backgrounds, max 2 visible then +N). Hover state lifts the card slightly (translateY(-1px), box-shadow increase). The entire card is draggable.",
|
|
70
|
+
"drag-overlay": "A floating clone of the dragged card rendered in a portal layer above all other content. The overlay follows the cursor position with a 2-degree clockwise rotation (transform: rotate(2deg)) and an elevated shadow (box-shadow: 0 16px 32px rgba(0,0,0,0.18), 0 4px 8px rgba(0,0,0,0.1)). Opacity is set to 0.9. The overlay has pointer-events: none. Beneath it, the original card position shows a placeholder — a dashed border rectangle (2px dashed var(--d-border-muted)) with the same dimensions and a faint background (var(--d-bg-muted) at 50% opacity).",
|
|
71
|
+
"add-card-button": "Anchored at the bottom of each column, below the scrollable card area. A full-width ghost button with a centered plus icon and 'Add card' text (text-sm, text-muted). Border: 1px dashed var(--d-border-muted), border-radius 8px, padding 8px. On hover: background fills with var(--d-bg-muted), border becomes solid, text color strengthens. On click: transforms into an inline text input with auto-focus for quick card title entry, with Enter to confirm and Escape to cancel."
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"accessibility": {
|
|
75
|
+
"role": "application",
|
|
76
|
+
"aria-label": "Kanban project board",
|
|
77
|
+
"announcements": [
|
|
78
|
+
"Card {title} moved from {source column} to {target column}",
|
|
79
|
+
"Card {title} created in {column}",
|
|
80
|
+
"Column {name} has reached its work-in-progress limit"
|
|
81
|
+
],
|
|
82
|
+
"keyboard": [
|
|
83
|
+
"Tab: cycle through columns and cards in reading order",
|
|
84
|
+
"Arrow Left/Right: move focus between columns",
|
|
85
|
+
"Arrow Up/Down: move focus between cards within a column",
|
|
86
|
+
"Space: pick up focused card for keyboard drag",
|
|
87
|
+
"Arrow keys (while dragging): move card between columns or positions",
|
|
88
|
+
"Enter: drop card at current position / open card detail",
|
|
89
|
+
"Escape: cancel drag operation",
|
|
90
|
+
"N: create new card in focused column",
|
|
91
|
+
"Delete: archive focused card (with confirmation)"
|
|
92
|
+
]
|
|
93
|
+
},
|
|
94
|
+
"responsive": {
|
|
95
|
+
"mobile": "Board collapses to a single-column stack view. Each column becomes a collapsible accordion section with the column header as the trigger. Cards render full-width. Drag-and-drop is replaced with a 'Move to...' action menu accessible via long-press or card overflow menu. AddCardButton becomes a floating action button (FAB) anchored to bottom-right.",
|
|
96
|
+
"tablet": "Board scrolls horizontally with columns at 260px width. Touch drag-and-drop enabled with a long-press (300ms) to initiate. Two columns visible at a time with smooth horizontal scroll snap. Column headers become sticky at the top during vertical card scroll.",
|
|
97
|
+
"desktop": "Full horizontal board with 280px columns. Mouse drag-and-drop with immediate grab. 3-5 columns visible depending on viewport width. Keyboard shortcuts fully enabled. Hover states on all interactive elements. Optional column collapse/expand via double-click on header."
|
|
98
|
+
},
|
|
99
|
+
"motion": {
|
|
100
|
+
"micro": {
|
|
101
|
+
"card-hover": "translateY(-1px) + box-shadow elevation increase, 150ms ease-out",
|
|
102
|
+
"card-grab": "scale(1.02) + cursor change, 100ms ease-out",
|
|
103
|
+
"badge-update": "count badge scales 1.0→1.2→1.0, 200ms ease-out on count change"
|
|
104
|
+
},
|
|
105
|
+
"transitions": {
|
|
106
|
+
"card-move": "Card animates from source position to target position, 250ms spring(1, 80, 10)",
|
|
107
|
+
"card-add": "New card scales from 0.95 to 1.0 + fade in, 200ms ease-out",
|
|
108
|
+
"card-remove": "Card scales to 0.95 + fade out, 150ms ease-in, then gap closes with 200ms ease-out",
|
|
109
|
+
"column-reorder": "Columns slide to new positions with 300ms ease-in-out"
|
|
110
|
+
},
|
|
111
|
+
"ambient": {
|
|
112
|
+
"wip-limit-pulse": "When column is at WIP limit, the progress bar pulses opacity 0.7→1.0→0.7, 2s ease-in-out infinite",
|
|
113
|
+
"drop-zone-pulse": "Active drop target background pulses between transparent and accent-tinted, 1s ease-in-out infinite"
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
"interactions": [
|
|
117
|
+
"drag-reorder",
|
|
118
|
+
"click-select",
|
|
119
|
+
"lift-hover",
|
|
120
|
+
"stagger-children",
|
|
121
|
+
"animate-on-mount",
|
|
122
|
+
"status-pulse",
|
|
123
|
+
"keyboard-navigation"
|
|
124
|
+
],
|
|
125
|
+
"composition": {
|
|
126
|
+
"KanbanBoard": "Board(d-section, horizontal-scroll, full-height) > Column*",
|
|
127
|
+
"Column": "Column(d-surface, flex-col, fixed-width) > [ColumnHeader + CardList(scrollable) + AddCardButton]",
|
|
128
|
+
"ColumnHeader": "Header(d-annotation) > [Title + CountBadge + WIPLimitBar?]",
|
|
129
|
+
"Card": "Card(d-surface, d-interactive, draggable) > [PriorityAccent + Title + Description? + MetaRow(Avatar + DueDate? + Tags?)]",
|
|
130
|
+
"DragOverlay": "Portal(floating) > Card(rotated, elevated, ghost)",
|
|
131
|
+
"AddCardButton": "Button(d-interactive, ghost, full-width) > [PlusIcon + Label]"
|
|
132
|
+
}
|
|
133
|
+
}
|