@dowel-ui/react 0.7.0 → 0.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/README.md +3 -3
- package/dist/blocks/cta-banner/meta.js +18 -0
- package/dist/blocks/cta-banner/meta.js.map +1 -0
- package/dist/blocks/cta-centered/meta.js +18 -0
- package/dist/blocks/cta-centered/meta.js.map +1 -0
- package/dist/blocks/cta-split-image/meta.js +18 -0
- package/dist/blocks/cta-split-image/meta.js.map +1 -0
- package/dist/blocks/faq-accordion/meta.js +18 -0
- package/dist/blocks/faq-accordion/meta.js.map +1 -0
- package/dist/blocks/faq-categorized/meta.js +18 -0
- package/dist/blocks/faq-categorized/meta.js.map +1 -0
- package/dist/blocks/faq-searchable/meta.js +22 -0
- package/dist/blocks/faq-searchable/meta.js.map +1 -0
- package/dist/blocks/faq-tabbed-grid/meta.js +18 -0
- package/dist/blocks/faq-tabbed-grid/meta.js.map +1 -0
- package/dist/blocks/features-alternating/meta.js +18 -0
- package/dist/blocks/features-alternating/meta.js.map +1 -0
- package/dist/blocks/features-bento/meta.js +18 -0
- package/dist/blocks/features-bento/meta.js.map +1 -0
- package/dist/blocks/features-icon-grid/meta.js +18 -0
- package/dist/blocks/features-icon-grid/meta.js.map +1 -0
- package/dist/blocks/footer-mega/meta.js +22 -0
- package/dist/blocks/footer-mega/meta.js.map +1 -0
- package/dist/blocks/footer-minimal/meta.js +18 -0
- package/dist/blocks/footer-minimal/meta.js.map +1 -0
- package/dist/blocks/footer-newsletter/meta.js +22 -0
- package/dist/blocks/footer-newsletter/meta.js.map +1 -0
- package/dist/blocks/footer-simple/meta.js +18 -0
- package/dist/blocks/footer-simple/meta.js.map +1 -0
- package/dist/blocks/hero-grid/meta.js +18 -0
- package/dist/blocks/hero-grid/meta.js.map +1 -0
- package/dist/blocks/hero-minimal/meta.js +18 -0
- package/dist/blocks/hero-minimal/meta.js.map +1 -0
- package/dist/blocks/hero-perspective-grid/meta.js +18 -0
- package/dist/blocks/hero-perspective-grid/meta.js.map +1 -0
- package/dist/blocks/hero-product/meta.js +22 -0
- package/dist/blocks/hero-product/meta.js.map +1 -0
- package/dist/blocks/hero-split-image/meta.js +22 -0
- package/dist/blocks/hero-split-image/meta.js.map +1 -0
- package/dist/blocks/hero-spotlight/meta.js +18 -0
- package/dist/blocks/hero-spotlight/meta.js.map +1 -0
- package/dist/blocks/logo-cloud-simple/meta.js +18 -0
- package/dist/blocks/logo-cloud-simple/meta.js.map +1 -0
- package/dist/blocks/logo-grid-tooltips/meta.js +18 -0
- package/dist/blocks/logo-grid-tooltips/meta.js.map +1 -0
- package/dist/blocks/logo-links-marquee/meta.js +18 -0
- package/dist/blocks/logo-links-marquee/meta.js.map +1 -0
- package/dist/blocks/logo-marquee/meta.js +18 -0
- package/dist/blocks/logo-marquee/meta.js.map +1 -0
- package/dist/blocks/pricing-single-plan/meta.js +25 -0
- package/dist/blocks/pricing-single-plan/meta.js.map +1 -0
- package/dist/blocks/pricing-three-tier/meta.js +25 -0
- package/dist/blocks/pricing-three-tier/meta.js.map +1 -0
- package/dist/blocks/pricing-two-tier/meta.js +25 -0
- package/dist/blocks/pricing-two-tier/meta.js.map +1 -0
- package/dist/blocks/stats-grid/meta.js +18 -0
- package/dist/blocks/stats-grid/meta.js.map +1 -0
- package/dist/blocks/stats-trend-cards/meta.js +22 -0
- package/dist/blocks/stats-trend-cards/meta.js.map +1 -0
- package/dist/blocks/team-carousel/meta.js +22 -0
- package/dist/blocks/team-carousel/meta.js.map +1 -0
- package/dist/blocks/team-grid/meta.js +18 -0
- package/dist/blocks/team-grid/meta.js.map +1 -0
- package/dist/blocks/testimonial-rotator/meta.js +18 -0
- package/dist/blocks/testimonial-rotator/meta.js.map +1 -0
- package/dist/blocks/testimonial-spotlight/meta.js +22 -0
- package/dist/blocks/testimonial-spotlight/meta.js.map +1 -0
- package/dist/blocks/testimonial-star-grid/meta.js +18 -0
- package/dist/blocks/testimonial-star-grid/meta.js.map +1 -0
- package/dist/components/account-menu/account-menu.d.ts +56 -0
- package/dist/components/account-menu/account-menu.d.ts.map +1 -0
- package/dist/components/account-menu/account-menu.js +247 -0
- package/dist/components/account-menu/account-menu.js.map +1 -0
- package/dist/components/account-menu/index.d.ts +2 -0
- package/dist/components/account-menu/index.js +2 -0
- package/dist/components/account-menu/meta.js +24 -0
- package/dist/components/account-menu/meta.js.map +1 -0
- package/dist/components/action-node/action-node-spring.js +21 -0
- package/dist/components/action-node/action-node-spring.js.map +1 -0
- package/dist/components/action-node/action-node.d.ts +67 -0
- package/dist/components/action-node/action-node.d.ts.map +1 -0
- package/dist/components/action-node/action-node.js +374 -0
- package/dist/components/action-node/action-node.js.map +1 -0
- package/dist/components/action-node/index.d.ts +2 -0
- package/dist/components/action-node/index.js +2 -0
- package/dist/components/action-node/meta.js +17 -0
- package/dist/components/action-node/meta.js.map +1 -0
- package/dist/components/ai-agent-plan/ai-agent-plan.d.ts +13 -2
- package/dist/components/ai-agent-plan/ai-agent-plan.d.ts.map +1 -1
- package/dist/components/ai-agent-plan/ai-agent-plan.js +109 -42
- package/dist/components/ai-agent-plan/ai-agent-plan.js.map +1 -1
- package/dist/components/ai-agent-plan/index.d.ts +2 -2
- package/dist/components/ai-agent-plan/meta.js +1 -1
- package/dist/components/ai-agent-plan/meta.js.map +1 -1
- package/dist/components/ai-agent-status/ai-agent-status.d.ts +1 -1
- package/dist/components/ai-approval-request/ai-approval-request.d.ts +8 -1
- package/dist/components/ai-approval-request/ai-approval-request.d.ts.map +1 -1
- package/dist/components/ai-approval-request/ai-approval-request.js +67 -12
- package/dist/components/ai-approval-request/ai-approval-request.js.map +1 -1
- package/dist/components/ai-approval-request/meta.js +1 -1
- package/dist/components/ai-approval-request/meta.js.map +1 -1
- package/dist/components/ai-artifact/ai-artifact.d.ts +27 -0
- package/dist/components/ai-artifact/ai-artifact.d.ts.map +1 -0
- package/dist/components/ai-artifact/ai-artifact.js +142 -0
- package/dist/components/ai-artifact/ai-artifact.js.map +1 -0
- package/dist/components/ai-artifact/index.d.ts +2 -0
- package/dist/components/ai-artifact/index.js +2 -0
- package/dist/components/ai-artifact/meta.js +17 -0
- package/dist/components/ai-artifact/meta.js.map +1 -0
- package/dist/components/ai-branch/ai-branch.d.ts +32 -0
- package/dist/components/ai-branch/ai-branch.d.ts.map +1 -0
- package/dist/components/ai-branch/ai-branch.js +160 -0
- package/dist/components/ai-branch/ai-branch.js.map +1 -0
- package/dist/components/ai-branch/index.d.ts +2 -0
- package/dist/components/ai-branch/index.js +2 -0
- package/dist/components/ai-branch/meta.js +17 -0
- package/dist/components/ai-branch/meta.js.map +1 -0
- package/dist/components/ai-conversation/ai-conversation.d.ts +16 -4
- package/dist/components/ai-conversation/ai-conversation.d.ts.map +1 -1
- package/dist/components/ai-conversation/ai-conversation.js +78 -10
- package/dist/components/ai-conversation/ai-conversation.js.map +1 -1
- package/dist/components/ai-conversation/index.d.ts +2 -2
- package/dist/components/ai-loader/ai-loader.d.ts +22 -0
- package/dist/components/ai-loader/ai-loader.d.ts.map +1 -0
- package/dist/components/ai-loader/ai-loader.js +78 -0
- package/dist/components/ai-loader/ai-loader.js.map +1 -0
- package/dist/components/ai-loader/index.d.ts +2 -0
- package/dist/components/ai-loader/index.js +2 -0
- package/dist/components/ai-loader/meta.js +21 -0
- package/dist/components/ai-loader/meta.js.map +1 -0
- package/dist/components/ai-message/ai-message.d.ts +13 -2
- package/dist/components/ai-message/ai-message.d.ts.map +1 -1
- package/dist/components/ai-message/ai-message.js +29 -5
- package/dist/components/ai-message/ai-message.js.map +1 -1
- package/dist/components/ai-message/index.d.ts +2 -2
- package/dist/components/ai-message/index.js +2 -2
- package/dist/components/ai-message/meta.js +1 -1
- package/dist/components/ai-message/meta.js.map +1 -1
- package/dist/components/ai-prompt-input/ai-prompt-input.d.ts.map +1 -1
- package/dist/components/ai-prompt-input/ai-prompt-input.js +45 -26
- package/dist/components/ai-prompt-input/ai-prompt-input.js.map +1 -1
- package/dist/components/ai-reasoning/ai-reasoning.d.ts +39 -11
- package/dist/components/ai-reasoning/ai-reasoning.d.ts.map +1 -1
- package/dist/components/ai-reasoning/ai-reasoning.js +113 -9
- package/dist/components/ai-reasoning/ai-reasoning.js.map +1 -1
- package/dist/components/ai-reasoning/index.d.ts +2 -2
- package/dist/components/ai-reasoning/index.js +2 -2
- package/dist/components/ai-reasoning/meta.js +2 -2
- package/dist/components/ai-reasoning/meta.js.map +1 -1
- package/dist/components/ai-response/ai-response.d.ts +4 -0
- package/dist/components/ai-response/ai-response.d.ts.map +1 -1
- package/dist/components/ai-response/ai-response.js +5 -1
- package/dist/components/ai-response/ai-response.js.map +1 -1
- package/dist/components/ai-response/index.d.ts +2 -1
- package/dist/components/ai-response/index.js +2 -1
- package/dist/components/ai-response/meta.js +3 -3
- package/dist/components/ai-response/meta.js.map +1 -1
- package/dist/components/ai-response/response-text.d.ts +42 -0
- package/dist/components/ai-response/response-text.d.ts.map +1 -0
- package/dist/components/ai-response/response-text.js +63 -0
- package/dist/components/ai-response/response-text.js.map +1 -0
- package/dist/components/ai-sources/ai-sources.d.ts +31 -5
- package/dist/components/ai-sources/ai-sources.d.ts.map +1 -1
- package/dist/components/ai-sources/ai-sources.js +188 -47
- package/dist/components/ai-sources/ai-sources.js.map +1 -1
- package/dist/components/ai-sources/index.d.ts +2 -2
- package/dist/components/ai-sources/index.js +2 -2
- package/dist/components/ai-sources/meta.js +2 -2
- package/dist/components/ai-sources/meta.js.map +1 -1
- package/dist/components/ai-suggestions/ai-suggestions.d.ts +24 -0
- package/dist/components/ai-suggestions/ai-suggestions.d.ts.map +1 -0
- package/dist/components/ai-suggestions/ai-suggestions.js +68 -0
- package/dist/components/ai-suggestions/ai-suggestions.js.map +1 -0
- package/dist/components/ai-suggestions/index.d.ts +2 -0
- package/dist/components/ai-suggestions/index.js +2 -0
- package/dist/components/ai-suggestions/meta.js +17 -0
- package/dist/components/ai-suggestions/meta.js.map +1 -0
- package/dist/components/ai-token-usage/ai-token-usage.d.ts +40 -3
- package/dist/components/ai-token-usage/ai-token-usage.d.ts.map +1 -1
- package/dist/components/ai-token-usage/ai-token-usage.js +201 -24
- package/dist/components/ai-token-usage/ai-token-usage.js.map +1 -1
- package/dist/components/ai-token-usage/index.d.ts +2 -2
- package/dist/components/ai-token-usage/index.js +2 -2
- package/dist/components/ai-token-usage/meta.js +2 -2
- package/dist/components/ai-token-usage/meta.js.map +1 -1
- package/dist/components/ai-tool/ai-tool.d.ts +12 -1
- package/dist/components/ai-tool/ai-tool.d.ts.map +1 -1
- package/dist/components/ai-tool/ai-tool.js +82 -5
- package/dist/components/ai-tool/ai-tool.js.map +1 -1
- package/dist/components/ai-tool/meta.js +1 -1
- package/dist/components/ai-tool/meta.js.map +1 -1
- package/dist/components/alert/alert.d.ts +1 -1
- package/dist/components/animated-checklist/animated-checklist.d.ts +40 -0
- package/dist/components/animated-checklist/animated-checklist.d.ts.map +1 -0
- package/dist/components/animated-checklist/animated-checklist.js +198 -0
- package/dist/components/animated-checklist/animated-checklist.js.map +1 -0
- package/dist/components/animated-checklist/index.d.ts +2 -0
- package/dist/components/animated-checklist/index.js +2 -0
- package/dist/components/animated-checklist/meta.js +17 -0
- package/dist/components/animated-checklist/meta.js.map +1 -0
- package/dist/components/app-stack/app-stack.d.ts +40 -0
- package/dist/components/app-stack/app-stack.d.ts.map +1 -0
- package/dist/components/app-stack/app-stack.js +260 -0
- package/dist/components/app-stack/app-stack.js.map +1 -0
- package/dist/components/app-stack/index.d.ts +2 -0
- package/dist/components/app-stack/index.js +2 -0
- package/dist/components/app-stack/meta.js +17 -0
- package/dist/components/app-stack/meta.js.map +1 -0
- package/dist/components/aspect-morph/aspect-morph.d.ts +50 -0
- package/dist/components/aspect-morph/aspect-morph.d.ts.map +1 -0
- package/dist/components/aspect-morph/aspect-morph.js +171 -0
- package/dist/components/aspect-morph/aspect-morph.js.map +1 -0
- package/dist/components/aspect-morph/index.d.ts +2 -0
- package/dist/components/aspect-morph/index.js +2 -0
- package/dist/components/aspect-morph/meta.js +17 -0
- package/dist/components/aspect-morph/meta.js.map +1 -0
- package/dist/components/assignee-picker/assignee-picker-spring.js +21 -0
- package/dist/components/assignee-picker/assignee-picker-spring.js.map +1 -0
- package/dist/components/assignee-picker/assignee-picker.d.ts +47 -0
- package/dist/components/assignee-picker/assignee-picker.d.ts.map +1 -0
- package/dist/components/assignee-picker/assignee-picker.js +370 -0
- package/dist/components/assignee-picker/assignee-picker.js.map +1 -0
- package/dist/components/assignee-picker/index.d.ts +2 -0
- package/dist/components/assignee-picker/index.js +2 -0
- package/dist/components/assignee-picker/meta.js +17 -0
- package/dist/components/assignee-picker/meta.js.map +1 -0
- package/dist/components/avatar/avatar.d.ts +1 -1
- package/dist/components/avatar-group/avatar-group.d.ts +41 -0
- package/dist/components/avatar-group/avatar-group.d.ts.map +1 -0
- package/dist/components/avatar-group/avatar-group.js +103 -0
- package/dist/components/avatar-group/avatar-group.js.map +1 -0
- package/dist/components/avatar-group/index.d.ts +2 -0
- package/dist/components/avatar-group/index.js +2 -0
- package/dist/components/avatar-group/meta.js +17 -0
- package/dist/components/avatar-group/meta.js.map +1 -0
- package/dist/components/badge/badge.d.ts +1 -1
- package/dist/components/bar-loader/bar-loader.d.ts +170 -0
- package/dist/components/bar-loader/bar-loader.d.ts.map +1 -0
- package/dist/components/bar-loader/bar-loader.js +469 -0
- package/dist/components/bar-loader/bar-loader.js.map +1 -0
- package/dist/components/bar-loader/index.d.ts +2 -0
- package/dist/components/bar-loader/index.js +2 -0
- package/dist/components/bar-loader/meta.js +17 -0
- package/dist/components/bar-loader/meta.js.map +1 -0
- package/dist/components/book/book.d.ts +35 -0
- package/dist/components/book/book.d.ts.map +1 -0
- package/dist/components/book/book.js +183 -0
- package/dist/components/book/book.js.map +1 -0
- package/dist/components/book/index.d.ts +2 -0
- package/dist/components/book/index.js +2 -0
- package/dist/components/book/meta.js +17 -0
- package/dist/components/book/meta.js.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.d.ts +10 -2
- package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -1
- package/dist/components/breadcrumb/breadcrumb.js +21 -4
- package/dist/components/breadcrumb/breadcrumb.js.map +1 -1
- package/dist/components/breadcrumb/index.d.ts +2 -2
- package/dist/components/breadcrumb/meta.js +1 -1
- package/dist/components/breadcrumb/meta.js.map +1 -1
- package/dist/components/browser-tabs/browser-tabs-spring.js +21 -0
- package/dist/components/browser-tabs/browser-tabs-spring.js.map +1 -0
- package/dist/components/browser-tabs/browser-tabs.d.ts +62 -0
- package/dist/components/browser-tabs/browser-tabs.d.ts.map +1 -0
- package/dist/components/browser-tabs/browser-tabs.js +418 -0
- package/dist/components/browser-tabs/browser-tabs.js.map +1 -0
- package/dist/components/browser-tabs/index.d.ts +2 -0
- package/dist/components/browser-tabs/index.js +2 -0
- package/dist/components/browser-tabs/meta.js +17 -0
- package/dist/components/browser-tabs/meta.js.map +1 -0
- package/dist/components/button/button.d.ts +4 -2
- package/dist/components/button/button.d.ts.map +1 -1
- package/dist/components/button/button.js +48 -5
- package/dist/components/button/button.js.map +1 -1
- package/dist/components/canvas-toolbar/canvas-toolbar.d.ts +62 -0
- package/dist/components/canvas-toolbar/canvas-toolbar.d.ts.map +1 -0
- package/dist/components/canvas-toolbar/canvas-toolbar.js +256 -0
- package/dist/components/canvas-toolbar/canvas-toolbar.js.map +1 -0
- package/dist/components/canvas-toolbar/index.d.ts +2 -0
- package/dist/components/canvas-toolbar/index.js +2 -0
- package/dist/components/canvas-toolbar/meta.js +17 -0
- package/dist/components/canvas-toolbar/meta.js.map +1 -0
- package/dist/components/card-spread/card-spread-layouts.d.ts +46 -0
- package/dist/components/card-spread/card-spread-layouts.d.ts.map +1 -0
- package/dist/components/card-spread/card-spread-layouts.js +235 -0
- package/dist/components/card-spread/card-spread-layouts.js.map +1 -0
- package/dist/components/card-spread/card-spread.d.ts +52 -0
- package/dist/components/card-spread/card-spread.d.ts.map +1 -0
- package/dist/components/card-spread/card-spread.js +224 -0
- package/dist/components/card-spread/card-spread.js.map +1 -0
- package/dist/components/card-spread/index.d.ts +3 -0
- package/dist/components/card-spread/index.js +3 -0
- package/dist/components/card-spread/meta.js +17 -0
- package/dist/components/card-spread/meta.js.map +1 -0
- package/dist/components/card-stack/card-stack-layout.js +98 -0
- package/dist/components/card-stack/card-stack-layout.js.map +1 -0
- package/dist/components/card-stack/card-stack.d.ts +29 -0
- package/dist/components/card-stack/card-stack.d.ts.map +1 -0
- package/dist/components/card-stack/card-stack.js +229 -0
- package/dist/components/card-stack/card-stack.js.map +1 -0
- package/dist/components/card-stack/index.d.ts +2 -0
- package/dist/components/card-stack/index.js +2 -0
- package/dist/components/card-stack/meta.js +17 -0
- package/dist/components/card-stack/meta.js.map +1 -0
- package/dist/components/carousel-3d/carousel-3d.d.ts +43 -0
- package/dist/components/carousel-3d/carousel-3d.d.ts.map +1 -0
- package/dist/components/carousel-3d/carousel-3d.js +336 -0
- package/dist/components/carousel-3d/carousel-3d.js.map +1 -0
- package/dist/components/carousel-3d/index.d.ts +2 -0
- package/dist/components/carousel-3d/index.js +2 -0
- package/dist/components/carousel-3d/meta.js +17 -0
- package/dist/components/carousel-3d/meta.js.map +1 -0
- package/dist/components/checkbox/checkbox.d.ts.map +1 -1
- package/dist/components/checkbox/checkbox.js +18 -0
- package/dist/components/checkbox/checkbox.js.map +1 -1
- package/dist/components/code-block/code-block.d.ts +1 -17
- package/dist/components/code-block/code-block.d.ts.map +1 -1
- package/dist/components/code-block/code-block.js +9 -79
- package/dist/components/code-block/code-block.js.map +1 -1
- package/dist/components/code-block/index.d.ts +3 -1
- package/dist/components/code-block/index.js +2 -1
- package/dist/components/code-block/meta.js +1 -1
- package/dist/components/code-block/meta.js.map +1 -1
- package/dist/components/combobox/combobox.d.ts +28 -4
- package/dist/components/combobox/combobox.d.ts.map +1 -1
- package/dist/components/combobox/combobox.js +160 -65
- package/dist/components/combobox/combobox.js.map +1 -1
- package/dist/components/combobox/index.d.ts +2 -2
- package/dist/components/combobox/index.js +2 -2
- package/dist/components/combobox/meta.js +1 -1
- package/dist/components/combobox/meta.js.map +1 -1
- package/dist/components/command-bar/command-bar.d.ts +37 -0
- package/dist/components/command-bar/command-bar.d.ts.map +1 -0
- package/dist/components/command-bar/command-bar.js +91 -0
- package/dist/components/command-bar/command-bar.js.map +1 -0
- package/dist/components/command-bar/index.d.ts +2 -0
- package/dist/components/command-bar/index.js +2 -0
- package/dist/components/command-bar/meta.js +17 -0
- package/dist/components/command-bar/meta.js.map +1 -0
- package/dist/components/comment-bubble/comment-bubble.d.ts +32 -0
- package/dist/components/comment-bubble/comment-bubble.d.ts.map +1 -0
- package/dist/components/comment-bubble/comment-bubble.js +174 -0
- package/dist/components/comment-bubble/comment-bubble.js.map +1 -0
- package/dist/components/comment-bubble/index.d.ts +2 -0
- package/dist/components/comment-bubble/index.js +2 -0
- package/dist/components/comment-bubble/meta.js +17 -0
- package/dist/components/comment-bubble/meta.js.map +1 -0
- package/dist/components/context-menu/context-menu.d.ts +49 -0
- package/dist/components/context-menu/context-menu.d.ts.map +1 -0
- package/dist/components/context-menu/context-menu.js +151 -0
- package/dist/components/context-menu/context-menu.js.map +1 -0
- package/dist/components/context-menu/index.d.ts +2 -0
- package/dist/components/context-menu/index.js +2 -0
- package/dist/components/context-menu/meta.js +17 -0
- package/dist/components/context-menu/meta.js.map +1 -0
- package/dist/components/contribution-graph/contribution-graph.d.ts +37 -0
- package/dist/components/contribution-graph/contribution-graph.d.ts.map +1 -0
- package/dist/components/contribution-graph/contribution-graph.js +298 -0
- package/dist/components/contribution-graph/contribution-graph.js.map +1 -0
- package/dist/components/contribution-graph/index.d.ts +2 -0
- package/dist/components/contribution-graph/index.js +2 -0
- package/dist/components/contribution-graph/meta.js +17 -0
- package/dist/components/contribution-graph/meta.js.map +1 -0
- package/dist/components/copy-button/copy-button.d.ts +81 -0
- package/dist/components/copy-button/copy-button.d.ts.map +1 -0
- package/dist/components/copy-button/copy-button.js +146 -0
- package/dist/components/copy-button/copy-button.js.map +1 -0
- package/dist/components/copy-button/index.d.ts +2 -0
- package/dist/components/copy-button/index.js +2 -0
- package/dist/components/copy-button/meta.js +17 -0
- package/dist/components/copy-button/meta.js.map +1 -0
- package/dist/components/create-menu/create-menu.d.ts +42 -0
- package/dist/components/create-menu/create-menu.d.ts.map +1 -0
- package/dist/components/create-menu/create-menu.js +197 -0
- package/dist/components/create-menu/create-menu.js.map +1 -0
- package/dist/components/create-menu/index.d.ts +2 -0
- package/dist/components/create-menu/index.js +2 -0
- package/dist/components/create-menu/meta.js +17 -0
- package/dist/components/create-menu/meta.js.map +1 -0
- package/dist/components/cursor-follow/cursor-follow.d.ts +17 -0
- package/dist/components/cursor-follow/cursor-follow.d.ts.map +1 -0
- package/dist/components/cursor-follow/cursor-follow.js +116 -0
- package/dist/components/cursor-follow/cursor-follow.js.map +1 -0
- package/dist/components/cursor-follow/index.d.ts +2 -0
- package/dist/components/cursor-follow/index.js +2 -0
- package/dist/components/cursor-follow/meta.js +17 -0
- package/dist/components/cursor-follow/meta.js.map +1 -0
- package/dist/components/dial/dial.d.ts +32 -0
- package/dist/components/dial/dial.d.ts.map +1 -0
- package/dist/components/dial/dial.js +195 -0
- package/dist/components/dial/dial.js.map +1 -0
- package/dist/components/dial/index.d.ts +2 -0
- package/dist/components/dial/index.js +2 -0
- package/dist/components/dial/meta.js +17 -0
- package/dist/components/dial/meta.js.map +1 -0
- package/dist/components/dialog/dialog.d.ts +8 -1
- package/dist/components/dialog/dialog.d.ts.map +1 -1
- package/dist/components/dialog/dialog.js +22 -5
- package/dist/components/dialog/dialog.js.map +1 -1
- package/dist/components/dialog/meta.js +1 -1
- package/dist/components/dialog/meta.js.map +1 -1
- package/dist/components/diff-viewer/diff-viewer.d.ts +12 -1
- package/dist/components/diff-viewer/diff-viewer.d.ts.map +1 -1
- package/dist/components/diff-viewer/diff-viewer.js +98 -26
- package/dist/components/diff-viewer/diff-viewer.js.map +1 -1
- package/dist/components/diff-viewer/meta.js +1 -1
- package/dist/components/diff-viewer/meta.js.map +1 -1
- package/dist/components/dither-area/dither-area.d.ts +46 -0
- package/dist/components/dither-area/dither-area.d.ts.map +1 -0
- package/dist/components/dither-area/dither-area.js +186 -0
- package/dist/components/dither-area/dither-area.js.map +1 -0
- package/dist/components/dither-area/index.d.ts +2 -0
- package/dist/components/dither-area/index.js +2 -0
- package/dist/components/dither-area/meta.js +17 -0
- package/dist/components/dither-area/meta.js.map +1 -0
- package/dist/components/dither-bar/dither-bar.d.ts +47 -0
- package/dist/components/dither-bar/dither-bar.d.ts.map +1 -0
- package/dist/components/dither-bar/dither-bar.js +261 -0
- package/dist/components/dither-bar/dither-bar.js.map +1 -0
- package/dist/components/dither-bar/index.d.ts +2 -0
- package/dist/components/dither-bar/index.js +2 -0
- package/dist/components/dither-bar/meta.js +17 -0
- package/dist/components/dither-bar/meta.js.map +1 -0
- package/dist/components/dither-canvas/dither-canvas.d.ts +76 -0
- package/dist/components/dither-canvas/dither-canvas.d.ts.map +1 -0
- package/dist/components/dither-canvas/dither-canvas.js +236 -0
- package/dist/components/dither-canvas/dither-canvas.js.map +1 -0
- package/dist/components/dither-canvas/dither-engine.d.ts +132 -0
- package/dist/components/dither-canvas/dither-engine.d.ts.map +1 -0
- package/dist/components/dither-canvas/dither-engine.js +243 -0
- package/dist/components/dither-canvas/dither-engine.js.map +1 -0
- package/dist/components/dither-canvas/dither-geometry.d.ts +73 -0
- package/dist/components/dither-canvas/dither-geometry.d.ts.map +1 -0
- package/dist/components/dither-canvas/dither-geometry.js +205 -0
- package/dist/components/dither-canvas/dither-geometry.js.map +1 -0
- package/dist/components/dither-canvas/dither-scrubber.d.ts +64 -0
- package/dist/components/dither-canvas/dither-scrubber.d.ts.map +1 -0
- package/dist/components/dither-canvas/dither-scrubber.js +130 -0
- package/dist/components/dither-canvas/dither-scrubber.js.map +1 -0
- package/dist/components/dither-canvas/index.d.ts +5 -0
- package/dist/components/dither-canvas/index.js +5 -0
- package/dist/components/dither-canvas/meta.js +22 -0
- package/dist/components/dither-canvas/meta.js.map +1 -0
- package/dist/components/dither-donut/dither-donut.d.ts +46 -0
- package/dist/components/dither-donut/dither-donut.d.ts.map +1 -0
- package/dist/components/dither-donut/dither-donut.js +241 -0
- package/dist/components/dither-donut/dither-donut.js.map +1 -0
- package/dist/components/dither-donut/index.d.ts +2 -0
- package/dist/components/dither-donut/index.js +2 -0
- package/dist/components/dither-donut/meta.js +17 -0
- package/dist/components/dither-donut/meta.js.map +1 -0
- package/dist/components/dither-funnel/dither-funnel.d.ts +53 -0
- package/dist/components/dither-funnel/dither-funnel.d.ts.map +1 -0
- package/dist/components/dither-funnel/dither-funnel.js +176 -0
- package/dist/components/dither-funnel/dither-funnel.js.map +1 -0
- package/dist/components/dither-funnel/index.d.ts +2 -0
- package/dist/components/dither-funnel/index.js +2 -0
- package/dist/components/dither-funnel/meta.js +17 -0
- package/dist/components/dither-funnel/meta.js.map +1 -0
- package/dist/components/dither-gauge/dither-gauge.d.ts +48 -0
- package/dist/components/dither-gauge/dither-gauge.d.ts.map +1 -0
- package/dist/components/dither-gauge/dither-gauge.js +189 -0
- package/dist/components/dither-gauge/dither-gauge.js.map +1 -0
- package/dist/components/dither-gauge/index.d.ts +2 -0
- package/dist/components/dither-gauge/index.js +2 -0
- package/dist/components/dither-gauge/meta.js +17 -0
- package/dist/components/dither-gauge/meta.js.map +1 -0
- package/dist/components/dither-heatmap/dither-heatmap.d.ts +63 -0
- package/dist/components/dither-heatmap/dither-heatmap.d.ts.map +1 -0
- package/dist/components/dither-heatmap/dither-heatmap.js +298 -0
- package/dist/components/dither-heatmap/dither-heatmap.js.map +1 -0
- package/dist/components/dither-heatmap/index.d.ts +2 -0
- package/dist/components/dither-heatmap/index.js +2 -0
- package/dist/components/dither-heatmap/meta.js +17 -0
- package/dist/components/dither-heatmap/meta.js.map +1 -0
- package/dist/components/dither-line/dither-line.d.ts +41 -0
- package/dist/components/dither-line/dither-line.d.ts.map +1 -0
- package/dist/components/dither-line/dither-line.js +164 -0
- package/dist/components/dither-line/dither-line.js.map +1 -0
- package/dist/components/dither-line/index.d.ts +2 -0
- package/dist/components/dither-line/index.js +2 -0
- package/dist/components/dither-line/meta.js +17 -0
- package/dist/components/dither-line/meta.js.map +1 -0
- package/dist/components/dither-meter/dither-meter.d.ts +51 -0
- package/dist/components/dither-meter/dither-meter.d.ts.map +1 -0
- package/dist/components/dither-meter/dither-meter.js +211 -0
- package/dist/components/dither-meter/dither-meter.js.map +1 -0
- package/dist/components/dither-meter/index.d.ts +2 -0
- package/dist/components/dither-meter/index.js +2 -0
- package/dist/components/dither-meter/meta.js +17 -0
- package/dist/components/dither-meter/meta.js.map +1 -0
- package/dist/components/dither-scatter/dither-scatter.d.ts +53 -0
- package/dist/components/dither-scatter/dither-scatter.d.ts.map +1 -0
- package/dist/components/dither-scatter/dither-scatter.js +211 -0
- package/dist/components/dither-scatter/dither-scatter.js.map +1 -0
- package/dist/components/dither-scatter/index.d.ts +2 -0
- package/dist/components/dither-scatter/index.js +2 -0
- package/dist/components/dither-scatter/meta.js +17 -0
- package/dist/components/dither-scatter/meta.js.map +1 -0
- package/dist/components/dot-morph-button/dot-morph-button.d.ts +18 -0
- package/dist/components/dot-morph-button/dot-morph-button.d.ts.map +1 -0
- package/dist/components/dot-morph-button/dot-morph-button.js +43 -0
- package/dist/components/dot-morph-button/dot-morph-button.js.map +1 -0
- package/dist/components/dot-morph-button/index.d.ts +2 -0
- package/dist/components/dot-morph-button/index.js +2 -0
- package/dist/components/dot-morph-button/meta.js +17 -0
- package/dist/components/dot-morph-button/meta.js.map +1 -0
- package/dist/components/dots-loader/dots-loader.d.ts +186 -0
- package/dist/components/dots-loader/dots-loader.d.ts.map +1 -0
- package/dist/components/dots-loader/dots-loader.js +412 -0
- package/dist/components/dots-loader/dots-loader.js.map +1 -0
- package/dist/components/dots-loader/index.d.ts +2 -0
- package/dist/components/dots-loader/index.js +2 -0
- package/dist/components/dots-loader/meta.js +17 -0
- package/dist/components/dots-loader/meta.js.map +1 -0
- package/dist/components/drag-stepper/drag-stepper.d.ts +39 -0
- package/dist/components/drag-stepper/drag-stepper.d.ts.map +1 -0
- package/dist/components/drag-stepper/drag-stepper.js +232 -0
- package/dist/components/drag-stepper/drag-stepper.js.map +1 -0
- package/dist/components/drag-stepper/index.d.ts +2 -0
- package/dist/components/drag-stepper/index.js +2 -0
- package/dist/components/drag-stepper/meta.js +17 -0
- package/dist/components/drag-stepper/meta.js.map +1 -0
- package/dist/components/drawer/drawer.d.ts +9 -1
- package/dist/components/drawer/drawer.d.ts.map +1 -1
- package/dist/components/drawer/drawer.js +23 -4
- package/dist/components/drawer/drawer.js.map +1 -1
- package/dist/components/drawer/meta.js +1 -1
- package/dist/components/drawer/meta.js.map +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.d.ts +5 -0
- package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.js +25 -5
- package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -1
- package/dist/components/dropdown-menu/meta.js +1 -1
- package/dist/components/dropdown-menu/meta.js.map +1 -1
- package/dist/components/effect-button/effect-button.d.ts +28 -0
- package/dist/components/effect-button/effect-button.d.ts.map +1 -0
- package/dist/components/effect-button/effect-button.js +176 -0
- package/dist/components/effect-button/effect-button.js.map +1 -0
- package/dist/components/effect-button/index.d.ts +2 -0
- package/dist/components/effect-button/index.js +2 -0
- package/dist/components/effect-button/meta.js +17 -0
- package/dist/components/effect-button/meta.js.map +1 -0
- package/dist/components/escape-button/escape-button.d.ts +25 -0
- package/dist/components/escape-button/escape-button.d.ts.map +1 -0
- package/dist/components/escape-button/escape-button.js +154 -0
- package/dist/components/escape-button/escape-button.js.map +1 -0
- package/dist/components/escape-button/index.d.ts +2 -0
- package/dist/components/escape-button/index.js +2 -0
- package/dist/components/escape-button/meta.js +17 -0
- package/dist/components/escape-button/meta.js.map +1 -0
- package/dist/components/expandable-cards/expandable-cards.d.ts +42 -0
- package/dist/components/expandable-cards/expandable-cards.d.ts.map +1 -0
- package/dist/components/expandable-cards/expandable-cards.js +312 -0
- package/dist/components/expandable-cards/expandable-cards.js.map +1 -0
- package/dist/components/expandable-cards/index.d.ts +2 -0
- package/dist/components/expandable-cards/index.js +2 -0
- package/dist/components/expandable-cards/meta.js +17 -0
- package/dist/components/expandable-cards/meta.js.map +1 -0
- package/dist/components/expandable-list/expandable-list.d.ts +35 -0
- package/dist/components/expandable-list/expandable-list.d.ts.map +1 -0
- package/dist/components/expandable-list/expandable-list.js +180 -0
- package/dist/components/expandable-list/expandable-list.js.map +1 -0
- package/dist/components/expandable-list/index.d.ts +2 -0
- package/dist/components/expandable-list/index.js +2 -0
- package/dist/components/expandable-list/meta.js +21 -0
- package/dist/components/expandable-list/meta.js.map +1 -0
- package/dist/components/expanding-search/expanding-search.d.ts +30 -0
- package/dist/components/expanding-search/expanding-search.d.ts.map +1 -0
- package/dist/components/expanding-search/expanding-search.js +141 -0
- package/dist/components/expanding-search/expanding-search.js.map +1 -0
- package/dist/components/expanding-search/index.d.ts +2 -0
- package/dist/components/expanding-search/index.js +2 -0
- package/dist/components/expanding-search/meta.js +17 -0
- package/dist/components/expanding-search/meta.js.map +1 -0
- package/dist/components/exposure-slider/exposure-slider.d.ts +33 -0
- package/dist/components/exposure-slider/exposure-slider.d.ts.map +1 -0
- package/dist/components/exposure-slider/exposure-slider.js +227 -0
- package/dist/components/exposure-slider/exposure-slider.js.map +1 -0
- package/dist/components/exposure-slider/index.d.ts +2 -0
- package/dist/components/exposure-slider/index.js +2 -0
- package/dist/components/exposure-slider/meta.js +17 -0
- package/dist/components/exposure-slider/meta.js.map +1 -0
- package/dist/components/file-upload/file-upload.d.ts +13 -2
- package/dist/components/file-upload/file-upload.d.ts.map +1 -1
- package/dist/components/file-upload/file-upload.js +166 -95
- package/dist/components/file-upload/file-upload.js.map +1 -1
- package/dist/components/file-upload/meta.js +1 -1
- package/dist/components/file-upload/meta.js.map +1 -1
- package/dist/components/focus-blur-links/focus-blur-links.d.ts +25 -0
- package/dist/components/focus-blur-links/focus-blur-links.d.ts.map +1 -0
- package/dist/components/focus-blur-links/focus-blur-links.js +92 -0
- package/dist/components/focus-blur-links/focus-blur-links.js.map +1 -0
- package/dist/components/focus-blur-links/index.d.ts +2 -0
- package/dist/components/focus-blur-links/index.js +2 -0
- package/dist/components/focus-blur-links/meta.js +17 -0
- package/dist/components/focus-blur-links/meta.js.map +1 -0
- package/dist/components/folding-frame/folding-frame.d.ts +38 -0
- package/dist/components/folding-frame/folding-frame.d.ts.map +1 -0
- package/dist/components/folding-frame/folding-frame.js +298 -0
- package/dist/components/folding-frame/folding-frame.js.map +1 -0
- package/dist/components/folding-frame/index.d.ts +2 -0
- package/dist/components/folding-frame/index.js +2 -0
- package/dist/components/folding-frame/meta.js +17 -0
- package/dist/components/folding-frame/meta.js.map +1 -0
- package/dist/components/form/form.d.ts +11 -2
- package/dist/components/form/form.d.ts.map +1 -1
- package/dist/components/form/form.js +55 -5
- package/dist/components/form/form.js.map +1 -1
- package/dist/components/form/meta.js +1 -1
- package/dist/components/form/meta.js.map +1 -1
- package/dist/components/glass-bubble/glass-bubble.d.ts +59 -0
- package/dist/components/glass-bubble/glass-bubble.d.ts.map +1 -0
- package/dist/components/glass-bubble/glass-bubble.js +308 -0
- package/dist/components/glass-bubble/glass-bubble.js.map +1 -0
- package/dist/components/glass-bubble/index.d.ts +2 -0
- package/dist/components/glass-bubble/index.js +2 -0
- package/dist/components/glass-bubble/meta.js +17 -0
- package/dist/components/glass-bubble/meta.js.map +1 -0
- package/dist/components/glow-card/glow-card.d.ts +34 -0
- package/dist/components/glow-card/glow-card.d.ts.map +1 -0
- package/dist/components/glow-card/glow-card.js +104 -0
- package/dist/components/glow-card/glow-card.js.map +1 -0
- package/dist/components/glow-card/index.d.ts +2 -0
- package/dist/components/glow-card/index.js +2 -0
- package/dist/components/glow-card/meta.js +17 -0
- package/dist/components/glow-card/meta.js.map +1 -0
- package/dist/components/goo-ball/goo-ball.d.ts +48 -0
- package/dist/components/goo-ball/goo-ball.d.ts.map +1 -0
- package/dist/components/goo-ball/goo-ball.js +295 -0
- package/dist/components/goo-ball/goo-ball.js.map +1 -0
- package/dist/components/goo-ball/index.d.ts +2 -0
- package/dist/components/goo-ball/index.js +2 -0
- package/dist/components/goo-ball/meta.js +21 -0
- package/dist/components/goo-ball/meta.js.map +1 -0
- package/dist/components/goo-tabs/goo-tabs.d.ts +37 -0
- package/dist/components/goo-tabs/goo-tabs.d.ts.map +1 -0
- package/dist/components/goo-tabs/goo-tabs.js +286 -0
- package/dist/components/goo-tabs/goo-tabs.js.map +1 -0
- package/dist/components/goo-tabs/index.d.ts +2 -0
- package/dist/components/goo-tabs/index.js +2 -0
- package/dist/components/goo-tabs/meta.js +17 -0
- package/dist/components/goo-tabs/meta.js.map +1 -0
- package/dist/components/gooey-popover/gooey-popover.d.ts +32 -0
- package/dist/components/gooey-popover/gooey-popover.d.ts.map +1 -0
- package/dist/components/gooey-popover/gooey-popover.js +257 -0
- package/dist/components/gooey-popover/gooey-popover.js.map +1 -0
- package/dist/components/gooey-popover/index.d.ts +2 -0
- package/dist/components/gooey-popover/index.js +2 -0
- package/dist/components/gooey-popover/meta.js +17 -0
- package/dist/components/gooey-popover/meta.js.map +1 -0
- package/dist/components/gradient-orb/gradient-orb.d.ts +39 -0
- package/dist/components/gradient-orb/gradient-orb.d.ts.map +1 -0
- package/dist/components/gradient-orb/gradient-orb.js +185 -0
- package/dist/components/gradient-orb/gradient-orb.js.map +1 -0
- package/dist/components/gradient-orb/index.d.ts +2 -0
- package/dist/components/gradient-orb/index.js +2 -0
- package/dist/components/gradient-orb/meta.js +17 -0
- package/dist/components/gradient-orb/meta.js.map +1 -0
- package/dist/components/grid-loader/grid-loader.d.ts +224 -0
- package/dist/components/grid-loader/grid-loader.d.ts.map +1 -0
- package/dist/components/grid-loader/grid-loader.js +271 -0
- package/dist/components/grid-loader/grid-loader.js.map +1 -0
- package/dist/components/grid-loader/index.d.ts +2 -0
- package/dist/components/grid-loader/index.js +2 -0
- package/dist/components/grid-loader/meta.js +17 -0
- package/dist/components/grid-loader/meta.js.map +1 -0
- package/dist/components/image-accordion/image-accordion.d.ts +40 -0
- package/dist/components/image-accordion/image-accordion.d.ts.map +1 -0
- package/dist/components/image-accordion/image-accordion.js +118 -0
- package/dist/components/image-accordion/image-accordion.js.map +1 -0
- package/dist/components/image-accordion/index.d.ts +2 -0
- package/dist/components/image-accordion/index.js +2 -0
- package/dist/components/image-accordion/meta.js +17 -0
- package/dist/components/image-accordion/meta.js.map +1 -0
- package/dist/components/image-metadata/image-metadata.d.ts +34 -0
- package/dist/components/image-metadata/image-metadata.d.ts.map +1 -0
- package/dist/components/image-metadata/image-metadata.js +178 -0
- package/dist/components/image-metadata/image-metadata.js.map +1 -0
- package/dist/components/image-metadata/index.d.ts +2 -0
- package/dist/components/image-metadata/index.js +2 -0
- package/dist/components/image-metadata/meta.js +17 -0
- package/dist/components/image-metadata/meta.js.map +1 -0
- package/dist/components/image-selector/image-selector.d.ts +37 -0
- package/dist/components/image-selector/image-selector.d.ts.map +1 -0
- package/dist/components/image-selector/image-selector.js +253 -0
- package/dist/components/image-selector/image-selector.js.map +1 -0
- package/dist/components/image-selector/index.d.ts +2 -0
- package/dist/components/image-selector/index.js +2 -0
- package/dist/components/image-selector/meta.js +17 -0
- package/dist/components/image-selector/meta.js.map +1 -0
- package/dist/components/inline-confirm/index.d.ts +2 -0
- package/dist/components/inline-confirm/index.js +2 -0
- package/dist/components/inline-confirm/inline-confirm.d.ts +38 -0
- package/dist/components/inline-confirm/inline-confirm.d.ts.map +1 -0
- package/dist/components/inline-confirm/inline-confirm.js +246 -0
- package/dist/components/inline-confirm/inline-confirm.js.map +1 -0
- package/dist/components/inline-confirm/meta.js +17 -0
- package/dist/components/inline-confirm/meta.js.map +1 -0
- package/dist/components/input/floating-label-input.d.ts +26 -0
- package/dist/components/input/floating-label-input.d.ts.map +1 -0
- package/dist/components/input/floating-label-input.js +47 -0
- package/dist/components/input/floating-label-input.js.map +1 -0
- package/dist/components/input/index.d.ts +2 -1
- package/dist/components/input/index.js +2 -1
- package/dist/components/input/meta.js +2 -2
- package/dist/components/input/meta.js.map +1 -1
- package/dist/components/invite-carousel/carousel-controls.js +189 -0
- package/dist/components/invite-carousel/carousel-controls.js.map +1 -0
- package/dist/components/invite-carousel/index.d.ts +2 -0
- package/dist/components/invite-carousel/index.js +2 -0
- package/dist/components/invite-carousel/invite-carousel.d.ts +56 -0
- package/dist/components/invite-carousel/invite-carousel.d.ts.map +1 -0
- package/dist/components/invite-carousel/invite-carousel.js +207 -0
- package/dist/components/invite-carousel/invite-carousel.js.map +1 -0
- package/dist/components/invite-carousel/meta.js +17 -0
- package/dist/components/invite-carousel/meta.js.map +1 -0
- package/dist/components/island/index.d.ts +2 -0
- package/dist/components/island/index.js +2 -0
- package/dist/components/island/island.d.ts +30 -0
- package/dist/components/island/island.d.ts.map +1 -0
- package/dist/components/island/island.js +94 -0
- package/dist/components/island/island.js.map +1 -0
- package/dist/components/island/meta.js +17 -0
- package/dist/components/island/meta.js.map +1 -0
- package/dist/components/liquid-toggle/index.d.ts +2 -0
- package/dist/components/liquid-toggle/index.js +2 -0
- package/dist/components/liquid-toggle/liquid-toggle.d.ts +19 -0
- package/dist/components/liquid-toggle/liquid-toggle.d.ts.map +1 -0
- package/dist/components/liquid-toggle/liquid-toggle.js +175 -0
- package/dist/components/liquid-toggle/liquid-toggle.js.map +1 -0
- package/dist/components/liquid-toggle/meta.js +21 -0
- package/dist/components/liquid-toggle/meta.js.map +1 -0
- package/dist/components/magnetic-button/index.d.ts +2 -0
- package/dist/components/magnetic-button/index.js +2 -0
- package/dist/components/magnetic-button/magnetic-button.d.ts +32 -0
- package/dist/components/magnetic-button/magnetic-button.d.ts.map +1 -0
- package/dist/components/magnetic-button/magnetic-button.js +138 -0
- package/dist/components/magnetic-button/magnetic-button.js.map +1 -0
- package/dist/components/magnetic-button/meta.js +17 -0
- package/dist/components/magnetic-button/meta.js.map +1 -0
- package/dist/components/magnetic-select/index.d.ts +2 -0
- package/dist/components/magnetic-select/index.js +2 -0
- package/dist/components/magnetic-select/magnetic-select-spring.js +21 -0
- package/dist/components/magnetic-select/magnetic-select-spring.js.map +1 -0
- package/dist/components/magnetic-select/magnetic-select.d.ts +44 -0
- package/dist/components/magnetic-select/magnetic-select.d.ts.map +1 -0
- package/dist/components/magnetic-select/magnetic-select.js +330 -0
- package/dist/components/magnetic-select/magnetic-select.js.map +1 -0
- package/dist/components/magnetic-select/meta.js +17 -0
- package/dist/components/magnetic-select/meta.js.map +1 -0
- package/dist/components/magnify-dock/index.d.ts +2 -0
- package/dist/components/magnify-dock/index.js +2 -0
- package/dist/components/magnify-dock/magnify-dock.d.ts +40 -0
- package/dist/components/magnify-dock/magnify-dock.d.ts.map +1 -0
- package/dist/components/magnify-dock/magnify-dock.js +183 -0
- package/dist/components/magnify-dock/magnify-dock.js.map +1 -0
- package/dist/components/magnify-dock/meta.js +17 -0
- package/dist/components/magnify-dock/meta.js.map +1 -0
- package/dist/components/marquee/index.d.ts +2 -0
- package/dist/components/marquee/index.js +2 -0
- package/dist/components/marquee/marquee.d.ts +30 -0
- package/dist/components/marquee/marquee.d.ts.map +1 -0
- package/dist/components/marquee/marquee.js +117 -0
- package/dist/components/marquee/marquee.js.map +1 -0
- package/dist/components/marquee/meta.js +17 -0
- package/dist/components/marquee/meta.js.map +1 -0
- package/dist/components/morph-button/index.d.ts +2 -0
- package/dist/components/morph-button/index.js +2 -0
- package/dist/components/morph-button/meta.js +17 -0
- package/dist/components/morph-button/meta.js.map +1 -0
- package/dist/components/morph-button/morph-button.d.ts +57 -0
- package/dist/components/morph-button/morph-button.d.ts.map +1 -0
- package/dist/components/morph-button/morph-button.js +220 -0
- package/dist/components/morph-button/morph-button.js.map +1 -0
- package/dist/components/morph-surface/index.d.ts +2 -0
- package/dist/components/morph-surface/index.js +2 -0
- package/dist/components/morph-surface/meta.js +17 -0
- package/dist/components/morph-surface/meta.js.map +1 -0
- package/dist/components/morph-surface/morph-surface.d.ts +51 -0
- package/dist/components/morph-surface/morph-surface.d.ts.map +1 -0
- package/dist/components/morph-surface/morph-surface.js +228 -0
- package/dist/components/morph-surface/morph-surface.js.map +1 -0
- package/dist/components/notification-badge/index.d.ts +2 -0
- package/dist/components/notification-badge/index.js +2 -0
- package/dist/components/notification-badge/meta.js +17 -0
- package/dist/components/notification-badge/meta.js.map +1 -0
- package/dist/components/notification-badge/notification-badge.d.ts +40 -0
- package/dist/components/notification-badge/notification-badge.d.ts.map +1 -0
- package/dist/components/notification-badge/notification-badge.js +107 -0
- package/dist/components/notification-badge/notification-badge.js.map +1 -0
- package/dist/components/notify-button/index.d.ts +2 -0
- package/dist/components/notify-button/index.js +2 -0
- package/dist/components/notify-button/meta.js +17 -0
- package/dist/components/notify-button/meta.js.map +1 -0
- package/dist/components/notify-button/notify-button.d.ts +28 -0
- package/dist/components/notify-button/notify-button.d.ts.map +1 -0
- package/dist/components/notify-button/notify-button.js +114 -0
- package/dist/components/notify-button/notify-button.js.map +1 -0
- package/dist/components/now-playing/index.d.ts +2 -0
- package/dist/components/now-playing/index.js +2 -0
- package/dist/components/now-playing/meta.js +17 -0
- package/dist/components/now-playing/meta.js.map +1 -0
- package/dist/components/now-playing/now-playing.d.ts +39 -0
- package/dist/components/now-playing/now-playing.d.ts.map +1 -0
- package/dist/components/now-playing/now-playing.js +354 -0
- package/dist/components/now-playing/now-playing.js.map +1 -0
- package/dist/components/number-flow/index.d.ts +2 -0
- package/dist/components/number-flow/index.js +2 -0
- package/dist/components/number-flow/meta.js +17 -0
- package/dist/components/number-flow/meta.js.map +1 -0
- package/dist/components/number-flow/number-flow.d.ts +45 -0
- package/dist/components/number-flow/number-flow.d.ts.map +1 -0
- package/dist/components/number-flow/number-flow.js +226 -0
- package/dist/components/number-flow/number-flow.js.map +1 -0
- package/dist/components/orb-face/index.d.ts +2 -0
- package/dist/components/orb-face/index.js +2 -0
- package/dist/components/orb-face/meta.js +17 -0
- package/dist/components/orb-face/meta.js.map +1 -0
- package/dist/components/orb-face/orb-face.d.ts +29 -0
- package/dist/components/orb-face/orb-face.d.ts.map +1 -0
- package/dist/components/orb-face/orb-face.js +353 -0
- package/dist/components/orb-face/orb-face.js.map +1 -0
- package/dist/components/otp-input/index.d.ts +2 -0
- package/dist/components/otp-input/index.js +2 -0
- package/dist/components/otp-input/meta.js +17 -0
- package/dist/components/otp-input/meta.js.map +1 -0
- package/dist/components/otp-input/otp-input.d.ts +36 -0
- package/dist/components/otp-input/otp-input.d.ts.map +1 -0
- package/dist/components/otp-input/otp-input.js +249 -0
- package/dist/components/otp-input/otp-input.js.map +1 -0
- package/dist/components/pagination/index.d.ts +2 -2
- package/dist/components/pagination/meta.js +2 -2
- package/dist/components/pagination/meta.js.map +1 -1
- package/dist/components/pagination/pagination-indicator.js +76 -0
- package/dist/components/pagination/pagination-indicator.js.map +1 -0
- package/dist/components/pagination/pagination.d.ts +10 -2
- package/dist/components/pagination/pagination.d.ts.map +1 -1
- package/dist/components/pagination/pagination.js +13 -4
- package/dist/components/pagination/pagination.js.map +1 -1
- package/dist/components/palette-generator/index.d.ts +2 -0
- package/dist/components/palette-generator/index.js +2 -0
- package/dist/components/palette-generator/meta.js +17 -0
- package/dist/components/palette-generator/meta.js.map +1 -0
- package/dist/components/palette-generator/palette-generator.d.ts +43 -0
- package/dist/components/palette-generator/palette-generator.d.ts.map +1 -0
- package/dist/components/palette-generator/palette-generator.js +199 -0
- package/dist/components/palette-generator/palette-generator.js.map +1 -0
- package/dist/components/photo-stack/index.d.ts +2 -0
- package/dist/components/photo-stack/index.js +2 -0
- package/dist/components/photo-stack/meta.js +17 -0
- package/dist/components/photo-stack/meta.js.map +1 -0
- package/dist/components/photo-stack/photo-stack.d.ts +30 -0
- package/dist/components/photo-stack/photo-stack.d.ts.map +1 -0
- package/dist/components/photo-stack/photo-stack.js +236 -0
- package/dist/components/photo-stack/photo-stack.js.map +1 -0
- package/dist/components/photo-tabs/index.d.ts +2 -0
- package/dist/components/photo-tabs/index.js +2 -0
- package/dist/components/photo-tabs/meta.js +17 -0
- package/dist/components/photo-tabs/meta.js.map +1 -0
- package/dist/components/photo-tabs/photo-tabs.d.ts +35 -0
- package/dist/components/photo-tabs/photo-tabs.d.ts.map +1 -0
- package/dist/components/photo-tabs/photo-tabs.js +82 -0
- package/dist/components/photo-tabs/photo-tabs.js.map +1 -0
- package/dist/components/pixel-avatar/index.d.ts +2 -0
- package/dist/components/pixel-avatar/index.js +2 -0
- package/dist/components/pixel-avatar/meta.js +17 -0
- package/dist/components/pixel-avatar/meta.js.map +1 -0
- package/dist/components/pixel-avatar/pixel-avatar.d.ts +23 -0
- package/dist/components/pixel-avatar/pixel-avatar.d.ts.map +1 -0
- package/dist/components/pixel-avatar/pixel-avatar.js +181 -0
- package/dist/components/pixel-avatar/pixel-avatar.js.map +1 -0
- package/dist/components/product-card/index.d.ts +2 -0
- package/dist/components/product-card/index.js +2 -0
- package/dist/components/product-card/meta.js +17 -0
- package/dist/components/product-card/meta.js.map +1 -0
- package/dist/components/product-card/product-card.d.ts +43 -0
- package/dist/components/product-card/product-card.d.ts.map +1 -0
- package/dist/components/product-card/product-card.js +249 -0
- package/dist/components/product-card/product-card.js.map +1 -0
- package/dist/components/progress/meta.js +1 -1
- package/dist/components/progress/meta.js.map +1 -1
- package/dist/components/progress/progress.d.ts +22 -3
- package/dist/components/progress/progress.d.ts.map +1 -1
- package/dist/components/progress/progress.js +56 -6
- package/dist/components/progress/progress.js.map +1 -1
- package/dist/components/pull-to-refresh/index.d.ts +2 -0
- package/dist/components/pull-to-refresh/index.js +2 -0
- package/dist/components/pull-to-refresh/meta.js +17 -0
- package/dist/components/pull-to-refresh/meta.js.map +1 -0
- package/dist/components/pull-to-refresh/pull-to-refresh.d.ts +47 -0
- package/dist/components/pull-to-refresh/pull-to-refresh.d.ts.map +1 -0
- package/dist/components/pull-to-refresh/pull-to-refresh.js +302 -0
- package/dist/components/pull-to-refresh/pull-to-refresh.js.map +1 -0
- package/dist/components/radial-menu/index.d.ts +2 -0
- package/dist/components/radial-menu/index.js +2 -0
- package/dist/components/radial-menu/meta.js +17 -0
- package/dist/components/radial-menu/meta.js.map +1 -0
- package/dist/components/radial-menu/radial-menu.d.ts +44 -0
- package/dist/components/radial-menu/radial-menu.d.ts.map +1 -0
- package/dist/components/radial-menu/radial-menu.js +313 -0
- package/dist/components/radial-menu/radial-menu.js.map +1 -0
- package/dist/components/radio-group/radio-group.d.ts.map +1 -1
- package/dist/components/radio-group/radio-group.js +4 -1
- package/dist/components/radio-group/radio-group.js.map +1 -1
- package/dist/components/range-dial/index.d.ts +2 -0
- package/dist/components/range-dial/index.js +2 -0
- package/dist/components/range-dial/meta.js +17 -0
- package/dist/components/range-dial/meta.js.map +1 -0
- package/dist/components/range-dial/range-dial.d.ts +33 -0
- package/dist/components/range-dial/range-dial.d.ts.map +1 -0
- package/dist/components/range-dial/range-dial.js +308 -0
- package/dist/components/range-dial/range-dial.js.map +1 -0
- package/dist/components/reorder-list/index.d.ts +2 -0
- package/dist/components/reorder-list/index.js +2 -0
- package/dist/components/reorder-list/meta.js +17 -0
- package/dist/components/reorder-list/meta.js.map +1 -0
- package/dist/components/reorder-list/reorder-list.d.ts +79 -0
- package/dist/components/reorder-list/reorder-list.d.ts.map +1 -0
- package/dist/components/reorder-list/reorder-list.js +471 -0
- package/dist/components/reorder-list/reorder-list.js.map +1 -0
- package/dist/components/reviews-carousel/carousel-controls.js +189 -0
- package/dist/components/reviews-carousel/carousel-controls.js.map +1 -0
- package/dist/components/reviews-carousel/index.d.ts +2 -0
- package/dist/components/reviews-carousel/index.js +2 -0
- package/dist/components/reviews-carousel/meta.js +17 -0
- package/dist/components/reviews-carousel/meta.js.map +1 -0
- package/dist/components/reviews-carousel/reviews-carousel.d.ts +46 -0
- package/dist/components/reviews-carousel/reviews-carousel.d.ts.map +1 -0
- package/dist/components/reviews-carousel/reviews-carousel.js +177 -0
- package/dist/components/reviews-carousel/reviews-carousel.js.map +1 -0
- package/dist/components/rich-popover/index.d.ts +2 -0
- package/dist/components/rich-popover/index.js +2 -0
- package/dist/components/rich-popover/meta.js +17 -0
- package/dist/components/rich-popover/meta.js.map +1 -0
- package/dist/components/rich-popover/rich-popover.d.ts +36 -0
- package/dist/components/rich-popover/rich-popover.d.ts.map +1 -0
- package/dist/components/rich-popover/rich-popover.js +157 -0
- package/dist/components/rich-popover/rich-popover.js.map +1 -0
- package/dist/components/ring-loader/index.d.ts +2 -0
- package/dist/components/ring-loader/index.js +2 -0
- package/dist/components/ring-loader/meta.js +17 -0
- package/dist/components/ring-loader/meta.js.map +1 -0
- package/dist/components/ring-loader/ring-loader.d.ts +31 -0
- package/dist/components/ring-loader/ring-loader.d.ts.map +1 -0
- package/dist/components/ring-loader/ring-loader.js +597 -0
- package/dist/components/ring-loader/ring-loader.js.map +1 -0
- package/dist/components/scramble-text/index.d.ts +2 -0
- package/dist/components/scramble-text/index.js +2 -0
- package/dist/components/scramble-text/meta.js +17 -0
- package/dist/components/scramble-text/meta.js.map +1 -0
- package/dist/components/scramble-text/scramble-text.d.ts +35 -0
- package/dist/components/scramble-text/scramble-text.d.ts.map +1 -0
- package/dist/components/scramble-text/scramble-text.js +151 -0
- package/dist/components/scramble-text/scramble-text.js.map +1 -0
- package/dist/components/scroll-reveal-text/index.d.ts +2 -0
- package/dist/components/scroll-reveal-text/index.js +2 -0
- package/dist/components/scroll-reveal-text/meta.js +17 -0
- package/dist/components/scroll-reveal-text/meta.js.map +1 -0
- package/dist/components/scroll-reveal-text/scroll-reveal-text.d.ts +22 -0
- package/dist/components/scroll-reveal-text/scroll-reveal-text.d.ts.map +1 -0
- package/dist/components/scroll-reveal-text/scroll-reveal-text.js +113 -0
- package/dist/components/scroll-reveal-text/scroll-reveal-text.js.map +1 -0
- package/dist/components/scrubber/index.d.ts +2 -0
- package/dist/components/scrubber/index.js +2 -0
- package/dist/components/scrubber/meta.js +17 -0
- package/dist/components/scrubber/meta.js.map +1 -0
- package/dist/components/scrubber/scrubber.d.ts +37 -0
- package/dist/components/scrubber/scrubber.d.ts.map +1 -0
- package/dist/components/scrubber/scrubber.js +217 -0
- package/dist/components/scrubber/scrubber.js.map +1 -0
- package/dist/components/select/meta.js +1 -1
- package/dist/components/select/meta.js.map +1 -1
- package/dist/components/select/select.d.ts +5 -0
- package/dist/components/select/select.d.ts.map +1 -1
- package/dist/components/select/select.js +27 -5
- package/dist/components/select/select.js.map +1 -1
- package/dist/components/selection-list/index.d.ts +2 -0
- package/dist/components/selection-list/index.js +2 -0
- package/dist/components/selection-list/meta.js +17 -0
- package/dist/components/selection-list/meta.js.map +1 -0
- package/dist/components/selection-list/selection-list-spring.js +21 -0
- package/dist/components/selection-list/selection-list-spring.js.map +1 -0
- package/dist/components/selection-list/selection-list.d.ts +42 -0
- package/dist/components/selection-list/selection-list.d.ts.map +1 -0
- package/dist/components/selection-list/selection-list.js +355 -0
- package/dist/components/selection-list/selection-list.js.map +1 -0
- package/dist/components/shader-transition/index.d.ts +4 -0
- package/dist/components/shader-transition/index.js +4 -0
- package/dist/components/shader-transition/meta.js +21 -0
- package/dist/components/shader-transition/meta.js.map +1 -0
- package/dist/components/shader-transition/shader-transition-engine.d.ts +39 -0
- package/dist/components/shader-transition/shader-transition-engine.d.ts.map +1 -0
- package/dist/components/shader-transition/shader-transition-engine.js +294 -0
- package/dist/components/shader-transition/shader-transition-engine.js.map +1 -0
- package/dist/components/shader-transition/shader-transition-presets.d.ts +222 -0
- package/dist/components/shader-transition/shader-transition-presets.d.ts.map +1 -0
- package/dist/components/shader-transition/shader-transition-presets.js +346 -0
- package/dist/components/shader-transition/shader-transition-presets.js.map +1 -0
- package/dist/components/shader-transition/shader-transition.d.ts +35 -0
- package/dist/components/shader-transition/shader-transition.d.ts.map +1 -0
- package/dist/components/shader-transition/shader-transition.js +314 -0
- package/dist/components/shader-transition/shader-transition.js.map +1 -0
- package/dist/components/shape-loader/index.d.ts +2 -0
- package/dist/components/shape-loader/index.js +2 -0
- package/dist/components/shape-loader/meta.js +17 -0
- package/dist/components/shape-loader/meta.js.map +1 -0
- package/dist/components/shape-loader/shape-loader-variants.d.ts +8 -0
- package/dist/components/shape-loader/shape-loader-variants.d.ts.map +1 -0
- package/dist/components/shape-loader/shape-loader-variants.js +635 -0
- package/dist/components/shape-loader/shape-loader-variants.js.map +1 -0
- package/dist/components/shape-loader/shape-loader.d.ts +26 -0
- package/dist/components/shape-loader/shape-loader.d.ts.map +1 -0
- package/dist/components/shape-loader/shape-loader.js +99 -0
- package/dist/components/shape-loader/shape-loader.js.map +1 -0
- package/dist/components/sheet/meta.js +1 -1
- package/dist/components/sheet/meta.js.map +1 -1
- package/dist/components/sheet/sheet.d.ts +10 -2
- package/dist/components/sheet/sheet.d.ts.map +1 -1
- package/dist/components/sheet/sheet.js +23 -4
- package/dist/components/sheet/sheet.js.map +1 -1
- package/dist/components/shimmer-text/index.d.ts +2 -0
- package/dist/components/shimmer-text/index.js +2 -0
- package/dist/components/shimmer-text/meta.js +17 -0
- package/dist/components/shimmer-text/meta.js.map +1 -0
- package/dist/components/shimmer-text/shimmer-text.d.ts +33 -0
- package/dist/components/shimmer-text/shimmer-text.d.ts.map +1 -0
- package/dist/components/shimmer-text/shimmer-text.js +120 -0
- package/dist/components/shimmer-text/shimmer-text.js.map +1 -0
- package/dist/components/skeleton/index.d.ts +2 -2
- package/dist/components/skeleton/meta.js +1 -1
- package/dist/components/skeleton/meta.js.map +1 -1
- package/dist/components/skeleton/skeleton.d.ts +14 -2
- package/dist/components/skeleton/skeleton.d.ts.map +1 -1
- package/dist/components/skeleton/skeleton.js +24 -5
- package/dist/components/skeleton/skeleton.js.map +1 -1
- package/dist/components/slide-to-confirm/index.d.ts +2 -0
- package/dist/components/slide-to-confirm/index.js +2 -0
- package/dist/components/slide-to-confirm/meta.js +21 -0
- package/dist/components/slide-to-confirm/meta.js.map +1 -0
- package/dist/components/slide-to-confirm/slide-to-confirm.d.ts +38 -0
- package/dist/components/slide-to-confirm/slide-to-confirm.d.ts.map +1 -0
- package/dist/components/slide-to-confirm/slide-to-confirm.js +389 -0
- package/dist/components/slide-to-confirm/slide-to-confirm.js.map +1 -0
- package/dist/components/slosh-slider/index.d.ts +2 -0
- package/dist/components/slosh-slider/index.js +2 -0
- package/dist/components/slosh-slider/meta.js +21 -0
- package/dist/components/slosh-slider/meta.js.map +1 -0
- package/dist/components/slosh-slider/slosh-slider.d.ts +43 -0
- package/dist/components/slosh-slider/slosh-slider.d.ts.map +1 -0
- package/dist/components/slosh-slider/slosh-slider.js +140 -0
- package/dist/components/slosh-slider/slosh-slider.js.map +1 -0
- package/dist/components/social-selector/index.d.ts +2 -0
- package/dist/components/social-selector/index.js +2 -0
- package/dist/components/social-selector/meta.js +17 -0
- package/dist/components/social-selector/meta.js.map +1 -0
- package/dist/components/social-selector/social-selector.d.ts +45 -0
- package/dist/components/social-selector/social-selector.d.ts.map +1 -0
- package/dist/components/social-selector/social-selector.js +128 -0
- package/dist/components/social-selector/social-selector.js.map +1 -0
- package/dist/components/spinner/spinner.d.ts +1 -1
- package/dist/components/star-count/index.d.ts +2 -0
- package/dist/components/star-count/index.js +2 -0
- package/dist/components/star-count/meta.js +17 -0
- package/dist/components/star-count/meta.js.map +1 -0
- package/dist/components/star-count/star-count.d.ts +35 -0
- package/dist/components/star-count/star-count.d.ts.map +1 -0
- package/dist/components/star-count/star-count.js +94 -0
- package/dist/components/star-count/star-count.js.map +1 -0
- package/dist/components/stepper/index.d.ts +2 -0
- package/dist/components/stepper/index.js +2 -0
- package/dist/components/stepper/meta.js +17 -0
- package/dist/components/stepper/meta.js.map +1 -0
- package/dist/components/stepper/stepper.d.ts +45 -0
- package/dist/components/stepper/stepper.d.ts.map +1 -0
- package/dist/components/stepper/stepper.js +207 -0
- package/dist/components/stepper/stepper.js.map +1 -0
- package/dist/components/swipe-carousel/carousel-controls.js +98 -0
- package/dist/components/swipe-carousel/carousel-controls.js.map +1 -0
- package/dist/components/swipe-carousel/index.d.ts +2 -0
- package/dist/components/swipe-carousel/index.js +2 -0
- package/dist/components/swipe-carousel/meta.js +17 -0
- package/dist/components/swipe-carousel/meta.js.map +1 -0
- package/dist/components/swipe-carousel/swipe-carousel.d.ts +27 -0
- package/dist/components/swipe-carousel/swipe-carousel.d.ts.map +1 -0
- package/dist/components/swipe-carousel/swipe-carousel.js +288 -0
- package/dist/components/swipe-carousel/swipe-carousel.js.map +1 -0
- package/dist/components/switch/meta.js +1 -1
- package/dist/components/switch/meta.js.map +1 -1
- package/dist/components/switch/switch.d.ts +25 -3
- package/dist/components/switch/switch.d.ts.map +1 -1
- package/dist/components/switch/switch.js +20 -4
- package/dist/components/switch/switch.js.map +1 -1
- package/dist/components/switchboard-card/index.d.ts +2 -0
- package/dist/components/switchboard-card/index.js +2 -0
- package/dist/components/switchboard-card/meta.js +17 -0
- package/dist/components/switchboard-card/meta.js.map +1 -0
- package/dist/components/switchboard-card/switchboard-card.d.ts +44 -0
- package/dist/components/switchboard-card/switchboard-card.d.ts.map +1 -0
- package/dist/components/switchboard-card/switchboard-card.js +169 -0
- package/dist/components/switchboard-card/switchboard-card.js.map +1 -0
- package/dist/components/tabs/index.d.ts +2 -2
- package/dist/components/tabs/index.js +2 -2
- package/dist/components/tabs/meta.js +1 -1
- package/dist/components/tabs/meta.js.map +1 -1
- package/dist/components/tabs/tabs.d.ts +6 -2
- package/dist/components/tabs/tabs.d.ts.map +1 -1
- package/dist/components/tabs/tabs.js +112 -10
- package/dist/components/tabs/tabs.js.map +1 -1
- package/dist/components/tags-input/meta.js +1 -1
- package/dist/components/tags-input/meta.js.map +1 -1
- package/dist/components/tags-input/tags-input.d.ts +7 -1
- package/dist/components/tags-input/tags-input.d.ts.map +1 -1
- package/dist/components/tags-input/tags-input.js +82 -6
- package/dist/components/tags-input/tags-input.js.map +1 -1
- package/dist/components/text-effect/index.d.ts +3 -0
- package/dist/components/text-effect/index.js +3 -0
- package/dist/components/text-effect/meta.js +17 -0
- package/dist/components/text-effect/meta.js.map +1 -0
- package/dist/components/text-effect/text-effect-presets.d.ts +256 -0
- package/dist/components/text-effect/text-effect-presets.d.ts.map +1 -0
- package/dist/components/text-effect/text-effect-presets.js +292 -0
- package/dist/components/text-effect/text-effect-presets.js.map +1 -0
- package/dist/components/text-effect/text-effect.d.ts +58 -0
- package/dist/components/text-effect/text-effect.d.ts.map +1 -0
- package/dist/components/text-effect/text-effect.js +243 -0
- package/dist/components/text-effect/text-effect.js.map +1 -0
- package/dist/components/text-loader/index.d.ts +2 -0
- package/dist/components/text-loader/index.js +2 -0
- package/dist/components/text-loader/meta.js +17 -0
- package/dist/components/text-loader/meta.js.map +1 -0
- package/dist/components/text-loader/text-loader.d.ts +30 -0
- package/dist/components/text-loader/text-loader.d.ts.map +1 -0
- package/dist/components/text-loader/text-loader.js +514 -0
- package/dist/components/text-loader/text-loader.js.map +1 -0
- package/dist/components/text-swap/index.d.ts +3 -0
- package/dist/components/text-swap/index.js +3 -0
- package/dist/components/text-swap/meta.js +17 -0
- package/dist/components/text-swap/meta.js.map +1 -0
- package/dist/components/text-swap/text-rotate.d.ts +17 -0
- package/dist/components/text-swap/text-rotate.d.ts.map +1 -0
- package/dist/components/text-swap/text-rotate.js +51 -0
- package/dist/components/text-swap/text-rotate.js.map +1 -0
- package/dist/components/text-swap/text-swap.d.ts +41 -0
- package/dist/components/text-swap/text-swap.d.ts.map +1 -0
- package/dist/components/text-swap/text-swap.js +303 -0
- package/dist/components/text-swap/text-swap.js.map +1 -0
- package/dist/components/tick-progress/index.d.ts +2 -0
- package/dist/components/tick-progress/index.js +2 -0
- package/dist/components/tick-progress/meta.js +17 -0
- package/dist/components/tick-progress/meta.js.map +1 -0
- package/dist/components/tick-progress/tick-progress.d.ts +28 -0
- package/dist/components/tick-progress/tick-progress.d.ts.map +1 -0
- package/dist/components/tick-progress/tick-progress.js +151 -0
- package/dist/components/tick-progress/tick-progress.js.map +1 -0
- package/dist/components/tilt-card/index.d.ts +2 -0
- package/dist/components/tilt-card/index.js +2 -0
- package/dist/components/tilt-card/meta.js +17 -0
- package/dist/components/tilt-card/meta.js.map +1 -0
- package/dist/components/tilt-card/tilt-card.d.ts +36 -0
- package/dist/components/tilt-card/tilt-card.d.ts.map +1 -0
- package/dist/components/tilt-card/tilt-card.js +135 -0
- package/dist/components/tilt-card/tilt-card.js.map +1 -0
- package/dist/components/time-stack/index.d.ts +2 -0
- package/dist/components/time-stack/index.js +2 -0
- package/dist/components/time-stack/meta.js +17 -0
- package/dist/components/time-stack/meta.js.map +1 -0
- package/dist/components/time-stack/time-stack.d.ts +37 -0
- package/dist/components/time-stack/time-stack.d.ts.map +1 -0
- package/dist/components/time-stack/time-stack.js +253 -0
- package/dist/components/time-stack/time-stack.js.map +1 -0
- package/dist/components/toast/meta.js +1 -1
- package/dist/components/toast/meta.js.map +1 -1
- package/dist/components/toast/toast.d.ts +13 -4
- package/dist/components/toast/toast.d.ts.map +1 -1
- package/dist/components/toast/toast.js +32 -9
- package/dist/components/toast/toast.js.map +1 -1
- package/dist/components/todo-tower/index.d.ts +2 -0
- package/dist/components/todo-tower/index.js +2 -0
- package/dist/components/todo-tower/meta.js +17 -0
- package/dist/components/todo-tower/meta.js.map +1 -0
- package/dist/components/todo-tower/todo-tower.d.ts +38 -0
- package/dist/components/todo-tower/todo-tower.d.ts.map +1 -0
- package/dist/components/todo-tower/todo-tower.js +284 -0
- package/dist/components/todo-tower/todo-tower.js.map +1 -0
- package/dist/components/tooltip/meta.js +1 -1
- package/dist/components/tooltip/meta.js.map +1 -1
- package/dist/components/tooltip/tooltip.d.ts +4 -0
- package/dist/components/tooltip/tooltip.d.ts.map +1 -1
- package/dist/components/tooltip/tooltip.js +20 -4
- package/dist/components/tooltip/tooltip.js.map +1 -1
- package/dist/components/tweet-card/index.d.ts +2 -0
- package/dist/components/tweet-card/index.js +2 -0
- package/dist/components/tweet-card/meta.js +17 -0
- package/dist/components/tweet-card/meta.js.map +1 -0
- package/dist/components/tweet-card/tweet-card.d.ts +57 -0
- package/dist/components/tweet-card/tweet-card.d.ts.map +1 -0
- package/dist/components/tweet-card/tweet-card.js +243 -0
- package/dist/components/tweet-card/tweet-card.js.map +1 -0
- package/dist/components/typewriter-text/index.d.ts +2 -0
- package/dist/components/typewriter-text/index.js +2 -0
- package/dist/components/typewriter-text/meta.js +17 -0
- package/dist/components/typewriter-text/meta.js.map +1 -0
- package/dist/components/typewriter-text/typewriter-text.d.ts +33 -0
- package/dist/components/typewriter-text/typewriter-text.d.ts.map +1 -0
- package/dist/components/typewriter-text/typewriter-text.js +135 -0
- package/dist/components/typewriter-text/typewriter-text.js.map +1 -0
- package/dist/components/uptime-matrix/index.d.ts +2 -0
- package/dist/components/uptime-matrix/index.js +2 -0
- package/dist/components/uptime-matrix/meta.js +17 -0
- package/dist/components/uptime-matrix/meta.js.map +1 -0
- package/dist/components/uptime-matrix/uptime-matrix.d.ts +60 -0
- package/dist/components/uptime-matrix/uptime-matrix.d.ts.map +1 -0
- package/dist/components/uptime-matrix/uptime-matrix.js +303 -0
- package/dist/components/uptime-matrix/uptime-matrix.js.map +1 -0
- package/dist/index.d.ts +246 -18
- package/dist/index.js +128 -9
- package/dist/registry/blocks.d.ts.map +1 -1
- package/dist/registry/blocks.js +69 -1
- package/dist/registry/blocks.js.map +1 -1
- package/dist/registry/components.d.ts.map +1 -1
- package/dist/registry/components.js +219 -1
- package/dist/registry/components.js.map +1 -1
- package/dist/registry/schema.d.ts +1 -1
- package/dist/registry/schema.d.ts.map +1 -1
- package/dist/registry/schema.js +2 -1
- package/dist/registry/schema.js.map +1 -1
- package/package.json +5 -4
- package/src/components/account-menu/account-menu.tsx +338 -0
- package/src/components/account-menu/index.ts +12 -0
- package/src/components/account-menu/meta.ts +19 -0
- package/src/components/action-node/action-node-spring.ts +34 -0
- package/src/components/action-node/action-node.tsx +516 -0
- package/src/components/action-node/index.ts +8 -0
- package/src/components/action-node/meta.ts +21 -0
- package/src/components/ai-agent-plan/ai-agent-plan.tsx +0 -0
- package/src/components/ai-agent-plan/index.ts +1 -0
- package/src/components/ai-agent-plan/meta.ts +3 -1
- package/src/components/ai-approval-request/ai-approval-request.tsx +103 -4
- package/src/components/ai-approval-request/meta.ts +4 -1
- package/src/components/ai-artifact/ai-artifact.tsx +203 -0
- package/src/components/ai-artifact/index.ts +1 -0
- package/src/components/ai-artifact/meta.ts +18 -0
- package/src/components/ai-branch/ai-branch.tsx +222 -0
- package/src/components/ai-branch/index.ts +11 -0
- package/src/components/ai-branch/meta.ts +18 -0
- package/src/components/ai-conversation/ai-conversation.tsx +142 -31
- package/src/components/ai-conversation/index.ts +1 -0
- package/src/components/ai-loader/ai-loader.tsx +112 -0
- package/src/components/ai-loader/index.ts +6 -0
- package/src/components/ai-loader/meta.ts +18 -0
- package/src/components/ai-message/ai-message.tsx +54 -9
- package/src/components/ai-message/index.ts +2 -0
- package/src/components/ai-message/meta.ts +2 -1
- package/src/components/ai-prompt-input/ai-prompt-input.tsx +56 -18
- package/src/components/ai-reasoning/ai-reasoning.tsx +191 -12
- package/src/components/ai-reasoning/index.ts +1 -0
- package/src/components/ai-reasoning/meta.ts +4 -2
- package/src/components/ai-response/ai-response.tsx +10 -1
- package/src/components/ai-response/index.ts +1 -0
- package/src/components/ai-response/meta.ts +6 -3
- package/src/components/ai-response/response-text.tsx +119 -0
- package/src/components/ai-sources/ai-sources.tsx +191 -8
- package/src/components/ai-sources/index.ts +1 -0
- package/src/components/ai-sources/meta.ts +4 -2
- package/src/components/ai-suggestions/ai-suggestions.tsx +130 -0
- package/src/components/ai-suggestions/index.ts +6 -0
- package/src/components/ai-suggestions/meta.ts +17 -0
- package/src/components/ai-token-usage/ai-token-usage.tsx +288 -14
- package/src/components/ai-token-usage/index.ts +5 -0
- package/src/components/ai-token-usage/meta.ts +6 -2
- package/src/components/ai-tool/ai-tool.tsx +124 -3
- package/src/components/ai-tool/meta.ts +3 -1
- package/src/components/animated-checklist/animated-checklist.tsx +324 -0
- package/src/components/animated-checklist/index.ts +6 -0
- package/src/components/animated-checklist/meta.ts +18 -0
- package/src/components/app-stack/app-stack.tsx +414 -0
- package/src/components/app-stack/index.ts +7 -0
- package/src/components/app-stack/meta.ts +20 -0
- package/src/components/aspect-morph/aspect-morph.tsx +272 -0
- package/src/components/aspect-morph/index.ts +8 -0
- package/src/components/aspect-morph/meta.ts +19 -0
- package/src/components/assignee-picker/assignee-picker-spring.ts +33 -0
- package/src/components/assignee-picker/assignee-picker.tsx +535 -0
- package/src/components/assignee-picker/index.ts +6 -0
- package/src/components/assignee-picker/meta.ts +21 -0
- package/src/components/avatar-group/avatar-group.tsx +176 -0
- package/src/components/avatar-group/index.ts +6 -0
- package/src/components/avatar-group/meta.ts +18 -0
- package/src/components/bar-loader/bar-loader.tsx +549 -0
- package/src/components/bar-loader/index.ts +7 -0
- package/src/components/bar-loader/meta.ts +18 -0
- package/src/components/book/book.tsx +300 -0
- package/src/components/book/index.ts +1 -0
- package/src/components/book/meta.ts +18 -0
- package/src/components/breadcrumb/breadcrumb.tsx +50 -9
- package/src/components/breadcrumb/index.ts +1 -0
- package/src/components/breadcrumb/meta.ts +2 -1
- package/src/components/browser-tabs/browser-tabs-spring.ts +34 -0
- package/src/components/browser-tabs/browser-tabs.tsx +608 -0
- package/src/components/browser-tabs/index.ts +7 -0
- package/src/components/browser-tabs/meta.ts +22 -0
- package/src/components/button/button.tsx +57 -2
- package/src/components/canvas-toolbar/canvas-toolbar.tsx +457 -0
- package/src/components/canvas-toolbar/index.ts +9 -0
- package/src/components/canvas-toolbar/meta.ts +22 -0
- package/src/components/card-spread/card-spread-layouts.ts +251 -0
- package/src/components/card-spread/card-spread.tsx +415 -0
- package/src/components/card-spread/index.ts +19 -0
- package/src/components/card-spread/meta.ts +21 -0
- package/src/components/card-stack/card-stack-layout.ts +100 -0
- package/src/components/card-stack/card-stack.tsx +359 -0
- package/src/components/card-stack/index.ts +1 -0
- package/src/components/card-stack/meta.ts +20 -0
- package/src/components/carousel-3d/carousel-3d.tsx +501 -0
- package/src/components/carousel-3d/index.ts +7 -0
- package/src/components/carousel-3d/meta.ts +20 -0
- package/src/components/checkbox/checkbox.tsx +29 -1
- package/src/components/code-block/code-block.tsx +11 -110
- package/src/components/code-block/index.ts +4 -1
- package/src/components/code-block/meta.ts +1 -1
- package/src/components/combobox/combobox.tsx +165 -12
- package/src/components/combobox/index.ts +1 -0
- package/src/components/combobox/meta.ts +2 -1
- package/src/components/command-bar/command-bar.tsx +177 -0
- package/src/components/command-bar/index.ts +1 -0
- package/src/components/command-bar/meta.ts +17 -0
- package/src/components/comment-bubble/comment-bubble.tsx +269 -0
- package/src/components/comment-bubble/index.ts +6 -0
- package/src/components/comment-bubble/meta.ts +18 -0
- package/src/components/context-menu/context-menu.tsx +280 -0
- package/src/components/context-menu/index.ts +21 -0
- package/src/components/context-menu/meta.ts +19 -0
- package/src/components/contribution-graph/contribution-graph.tsx +372 -0
- package/src/components/contribution-graph/index.ts +6 -0
- package/src/components/contribution-graph/meta.ts +19 -0
- package/src/components/copy-button/copy-button.tsx +278 -0
- package/src/components/copy-button/index.ts +6 -0
- package/src/components/copy-button/meta.ts +19 -0
- package/src/components/create-menu/create-menu.tsx +319 -0
- package/src/components/create-menu/index.ts +7 -0
- package/src/components/create-menu/meta.ts +21 -0
- package/src/components/cursor-follow/cursor-follow.tsx +186 -0
- package/src/components/cursor-follow/index.ts +1 -0
- package/src/components/cursor-follow/meta.ts +19 -0
- package/src/components/dial/dial.tsx +308 -0
- package/src/components/dial/index.ts +1 -0
- package/src/components/dial/meta.ts +19 -0
- package/src/components/dialog/dialog.tsx +79 -36
- package/src/components/dialog/meta.ts +2 -1
- package/src/components/diff-viewer/diff-viewer.tsx +158 -19
- package/src/components/diff-viewer/meta.ts +4 -1
- package/src/components/dither-area/dither-area.tsx +280 -0
- package/src/components/dither-area/index.ts +9 -0
- package/src/components/dither-area/meta.ts +18 -0
- package/src/components/dither-bar/dither-bar.tsx +389 -0
- package/src/components/dither-bar/index.ts +8 -0
- package/src/components/dither-bar/meta.ts +19 -0
- package/src/components/dither-canvas/canvas-mock.ts +143 -0
- package/src/components/dither-canvas/dither-canvas.tsx +382 -0
- package/src/components/dither-canvas/dither-engine.ts +354 -0
- package/src/components/dither-canvas/dither-geometry.ts +295 -0
- package/src/components/dither-canvas/dither-scrubber.tsx +244 -0
- package/src/components/dither-canvas/index.ts +68 -0
- package/src/components/dither-canvas/meta.ts +19 -0
- package/src/components/dither-donut/dither-donut.tsx +377 -0
- package/src/components/dither-donut/index.ts +7 -0
- package/src/components/dither-donut/meta.ts +19 -0
- package/src/components/dither-funnel/dither-funnel.tsx +273 -0
- package/src/components/dither-funnel/index.ts +9 -0
- package/src/components/dither-funnel/meta.ts +19 -0
- package/src/components/dither-gauge/dither-gauge.tsx +279 -0
- package/src/components/dither-gauge/index.ts +8 -0
- package/src/components/dither-gauge/meta.ts +19 -0
- package/src/components/dither-heatmap/dither-heatmap.tsx +453 -0
- package/src/components/dither-heatmap/index.ts +10 -0
- package/src/components/dither-heatmap/meta.ts +19 -0
- package/src/components/dither-line/dither-line.tsx +244 -0
- package/src/components/dither-line/index.ts +8 -0
- package/src/components/dither-line/meta.ts +18 -0
- package/src/components/dither-meter/dither-meter.tsx +299 -0
- package/src/components/dither-meter/index.ts +8 -0
- package/src/components/dither-meter/meta.ts +19 -0
- package/src/components/dither-scatter/dither-scatter.tsx +317 -0
- package/src/components/dither-scatter/index.ts +8 -0
- package/src/components/dither-scatter/meta.ts +19 -0
- package/src/components/dot-morph-button/dot-morph-button.tsx +86 -0
- package/src/components/dot-morph-button/index.ts +5 -0
- package/src/components/dot-morph-button/meta.ts +17 -0
- package/src/components/dots-loader/dots-loader.tsx +451 -0
- package/src/components/dots-loader/index.ts +7 -0
- package/src/components/dots-loader/meta.ts +17 -0
- package/src/components/drag-stepper/drag-stepper.tsx +367 -0
- package/src/components/drag-stepper/index.ts +1 -0
- package/src/components/drag-stepper/meta.ts +23 -0
- package/src/components/drawer/drawer.tsx +77 -34
- package/src/components/drawer/meta.ts +1 -1
- package/src/components/dropdown-menu/dropdown-menu.tsx +47 -10
- package/src/components/dropdown-menu/meta.ts +2 -1
- package/src/components/effect-button/effect-button.tsx +310 -0
- package/src/components/effect-button/index.ts +8 -0
- package/src/components/effect-button/meta.ts +18 -0
- package/src/components/escape-button/escape-button.tsx +232 -0
- package/src/components/escape-button/index.ts +1 -0
- package/src/components/escape-button/meta.ts +18 -0
- package/src/components/expandable-cards/expandable-cards.tsx +435 -0
- package/src/components/expandable-cards/index.ts +6 -0
- package/src/components/expandable-cards/meta.ts +20 -0
- package/src/components/expandable-list/expandable-list.tsx +260 -0
- package/src/components/expandable-list/index.ts +6 -0
- package/src/components/expandable-list/meta.ts +19 -0
- package/src/components/expanding-search/expanding-search.tsx +244 -0
- package/src/components/expanding-search/index.ts +5 -0
- package/src/components/expanding-search/meta.ts +19 -0
- package/src/components/exposure-slider/exposure-slider.tsx +351 -0
- package/src/components/exposure-slider/index.ts +5 -0
- package/src/components/exposure-slider/meta.ts +20 -0
- package/src/components/file-upload/file-upload.tsx +134 -12
- package/src/components/file-upload/meta.ts +2 -1
- package/src/components/focus-blur-links/focus-blur-links.tsx +189 -0
- package/src/components/focus-blur-links/index.ts +7 -0
- package/src/components/focus-blur-links/meta.ts +18 -0
- package/src/components/folding-frame/folding-frame.tsx +435 -0
- package/src/components/folding-frame/index.ts +1 -0
- package/src/components/folding-frame/meta.ts +21 -0
- package/src/components/form/form.tsx +105 -13
- package/src/components/form/meta.ts +2 -1
- package/src/components/glass-bubble/glass-bubble.tsx +418 -0
- package/src/components/glass-bubble/index.ts +9 -0
- package/src/components/glass-bubble/meta.ts +20 -0
- package/src/components/glow-card/glow-card.tsx +195 -0
- package/src/components/glow-card/index.ts +7 -0
- package/src/components/glow-card/meta.ts +18 -0
- package/src/components/goo-ball/goo-ball.tsx +379 -0
- package/src/components/goo-ball/index.ts +7 -0
- package/src/components/goo-ball/meta.ts +19 -0
- package/src/components/goo-tabs/goo-tabs.tsx +389 -0
- package/src/components/goo-tabs/index.ts +11 -0
- package/src/components/goo-tabs/meta.ts +20 -0
- package/src/components/gooey-popover/gooey-popover.tsx +332 -0
- package/src/components/gooey-popover/index.ts +1 -0
- package/src/components/gooey-popover/meta.ts +20 -0
- package/src/components/gradient-orb/gradient-orb.tsx +230 -0
- package/src/components/gradient-orb/index.ts +6 -0
- package/src/components/gradient-orb/meta.ts +17 -0
- package/src/components/grid-loader/grid-loader.tsx +364 -0
- package/src/components/grid-loader/index.ts +10 -0
- package/src/components/grid-loader/meta.ts +17 -0
- package/src/components/image-accordion/image-accordion.tsx +230 -0
- package/src/components/image-accordion/index.ts +6 -0
- package/src/components/image-accordion/meta.ts +20 -0
- package/src/components/image-metadata/image-metadata.tsx +265 -0
- package/src/components/image-metadata/index.ts +6 -0
- package/src/components/image-metadata/meta.ts +19 -0
- package/src/components/image-selector/image-selector.tsx +338 -0
- package/src/components/image-selector/index.ts +6 -0
- package/src/components/image-selector/meta.ts +20 -0
- package/src/components/inline-confirm/index.ts +6 -0
- package/src/components/inline-confirm/inline-confirm.tsx +363 -0
- package/src/components/inline-confirm/meta.ts +18 -0
- package/src/components/input/floating-label-input.tsx +110 -0
- package/src/components/input/index.ts +5 -0
- package/src/components/input/meta.ts +3 -2
- package/src/components/invite-carousel/carousel-controls.tsx +291 -0
- package/src/components/invite-carousel/index.ts +8 -0
- package/src/components/invite-carousel/invite-carousel.tsx +359 -0
- package/src/components/invite-carousel/meta.ts +21 -0
- package/src/components/island/index.ts +7 -0
- package/src/components/island/island.tsx +162 -0
- package/src/components/island/meta.ts +18 -0
- package/src/components/liquid-toggle/index.ts +1 -0
- package/src/components/liquid-toggle/liquid-toggle.tsx +254 -0
- package/src/components/liquid-toggle/meta.ts +18 -0
- package/src/components/magnetic-button/index.ts +1 -0
- package/src/components/magnetic-button/magnetic-button.tsx +218 -0
- package/src/components/magnetic-button/meta.ts +18 -0
- package/src/components/magnetic-select/index.ts +6 -0
- package/src/components/magnetic-select/magnetic-select-spring.ts +33 -0
- package/src/components/magnetic-select/magnetic-select.tsx +426 -0
- package/src/components/magnetic-select/meta.ts +19 -0
- package/src/components/magnify-dock/index.ts +7 -0
- package/src/components/magnify-dock/magnify-dock.tsx +308 -0
- package/src/components/magnify-dock/meta.ts +21 -0
- package/src/components/marquee/index.ts +1 -0
- package/src/components/marquee/marquee.tsx +215 -0
- package/src/components/marquee/meta.ts +19 -0
- package/src/components/morph-button/index.ts +7 -0
- package/src/components/morph-button/meta.ts +18 -0
- package/src/components/morph-button/morph-button.tsx +390 -0
- package/src/components/morph-surface/index.ts +7 -0
- package/src/components/morph-surface/meta.ts +21 -0
- package/src/components/morph-surface/morph-surface.tsx +367 -0
- package/src/components/notification-badge/index.ts +6 -0
- package/src/components/notification-badge/meta.ts +19 -0
- package/src/components/notification-badge/notification-badge.tsx +183 -0
- package/src/components/notify-button/index.ts +1 -0
- package/src/components/notify-button/meta.ts +17 -0
- package/src/components/notify-button/notify-button.tsx +194 -0
- package/src/components/now-playing/index.ts +1 -0
- package/src/components/now-playing/meta.ts +19 -0
- package/src/components/now-playing/now-playing.tsx +474 -0
- package/src/components/number-flow/index.ts +10 -0
- package/src/components/number-flow/meta.ts +18 -0
- package/src/components/number-flow/number-flow.tsx +330 -0
- package/src/components/orb-face/index.ts +1 -0
- package/src/components/orb-face/meta.ts +18 -0
- package/src/components/orb-face/orb-face.tsx +431 -0
- package/src/components/otp-input/index.ts +6 -0
- package/src/components/otp-input/meta.ts +21 -0
- package/src/components/otp-input/otp-input.tsx +407 -0
- package/src/components/pagination/index.ts +1 -0
- package/src/components/pagination/meta.ts +4 -2
- package/src/components/pagination/pagination-indicator.tsx +95 -0
- package/src/components/pagination/pagination.tsx +37 -3
- package/src/components/palette-generator/index.ts +8 -0
- package/src/components/palette-generator/meta.ts +17 -0
- package/src/components/palette-generator/palette-generator.tsx +300 -0
- package/src/components/photo-stack/index.ts +1 -0
- package/src/components/photo-stack/meta.ts +19 -0
- package/src/components/photo-stack/photo-stack.tsx +310 -0
- package/src/components/photo-tabs/index.ts +1 -0
- package/src/components/photo-tabs/meta.ts +18 -0
- package/src/components/photo-tabs/photo-tabs.tsx +180 -0
- package/src/components/pixel-avatar/index.ts +1 -0
- package/src/components/pixel-avatar/meta.ts +17 -0
- package/src/components/pixel-avatar/pixel-avatar.tsx +249 -0
- package/src/components/product-card/index.ts +1 -0
- package/src/components/product-card/meta.ts +20 -0
- package/src/components/product-card/product-card.tsx +313 -0
- package/src/components/progress/meta.ts +2 -1
- package/src/components/progress/progress.tsx +123 -27
- package/src/components/pull-to-refresh/index.ts +7 -0
- package/src/components/pull-to-refresh/meta.ts +20 -0
- package/src/components/pull-to-refresh/pull-to-refresh.tsx +421 -0
- package/src/components/radial-menu/index.ts +7 -0
- package/src/components/radial-menu/meta.ts +22 -0
- package/src/components/radial-menu/radial-menu.tsx +441 -0
- package/src/components/radio-group/radio-group.tsx +12 -1
- package/src/components/range-dial/index.ts +1 -0
- package/src/components/range-dial/meta.ts +21 -0
- package/src/components/range-dial/range-dial.tsx +428 -0
- package/src/components/reorder-list/index.ts +10 -0
- package/src/components/reorder-list/meta.ts +21 -0
- package/src/components/reorder-list/reorder-list.tsx +627 -0
- package/src/components/reviews-carousel/carousel-controls.tsx +291 -0
- package/src/components/reviews-carousel/index.ts +7 -0
- package/src/components/reviews-carousel/meta.ts +21 -0
- package/src/components/reviews-carousel/reviews-carousel.tsx +301 -0
- package/src/components/rich-popover/index.ts +1 -0
- package/src/components/rich-popover/meta.ts +18 -0
- package/src/components/rich-popover/rich-popover.tsx +228 -0
- package/src/components/ring-loader/index.ts +7 -0
- package/src/components/ring-loader/meta.ts +17 -0
- package/src/components/ring-loader/ring-loader.tsx +795 -0
- package/src/components/scramble-text/index.ts +8 -0
- package/src/components/scramble-text/meta.ts +17 -0
- package/src/components/scramble-text/scramble-text.tsx +250 -0
- package/src/components/scroll-reveal-text/index.ts +6 -0
- package/src/components/scroll-reveal-text/meta.ts +18 -0
- package/src/components/scroll-reveal-text/scroll-reveal-text.tsx +193 -0
- package/src/components/scrubber/index.ts +1 -0
- package/src/components/scrubber/meta.ts +20 -0
- package/src/components/scrubber/scrubber.tsx +348 -0
- package/src/components/select/meta.ts +2 -1
- package/src/components/select/select.tsx +69 -22
- package/src/components/selection-list/index.ts +6 -0
- package/src/components/selection-list/meta.ts +21 -0
- package/src/components/selection-list/selection-list-spring.ts +33 -0
- package/src/components/selection-list/selection-list.tsx +497 -0
- package/src/components/shader-transition/index.ts +21 -0
- package/src/components/shader-transition/meta.ts +23 -0
- package/src/components/shader-transition/shader-transition-engine.ts +396 -0
- package/src/components/shader-transition/shader-transition-presets.ts +424 -0
- package/src/components/shader-transition/shader-transition.tsx +470 -0
- package/src/components/shader-transition/webgl-mock.ts +176 -0
- package/src/components/shape-loader/index.ts +7 -0
- package/src/components/shape-loader/meta.ts +17 -0
- package/src/components/shape-loader/shape-loader-variants.tsx +717 -0
- package/src/components/shape-loader/shape-loader.tsx +149 -0
- package/src/components/sheet/meta.ts +1 -1
- package/src/components/sheet/sheet.tsx +73 -31
- package/src/components/shimmer-text/index.ts +7 -0
- package/src/components/shimmer-text/meta.ts +18 -0
- package/src/components/shimmer-text/shimmer-text.tsx +218 -0
- package/src/components/skeleton/index.ts +1 -1
- package/src/components/skeleton/meta.ts +2 -1
- package/src/components/skeleton/skeleton.tsx +49 -7
- package/src/components/slide-to-confirm/index.ts +6 -0
- package/src/components/slide-to-confirm/meta.ts +20 -0
- package/src/components/slide-to-confirm/slide-to-confirm.tsx +519 -0
- package/src/components/slosh-slider/index.ts +6 -0
- package/src/components/slosh-slider/meta.ts +20 -0
- package/src/components/slosh-slider/slosh-slider.tsx +266 -0
- package/src/components/social-selector/index.ts +6 -0
- package/src/components/social-selector/meta.ts +18 -0
- package/src/components/social-selector/social-selector.tsx +247 -0
- package/src/components/star-count/index.ts +1 -0
- package/src/components/star-count/meta.ts +18 -0
- package/src/components/star-count/star-count.tsx +161 -0
- package/src/components/stepper/index.ts +8 -0
- package/src/components/stepper/meta.ts +20 -0
- package/src/components/stepper/stepper.tsx +364 -0
- package/src/components/swipe-carousel/carousel-controls.tsx +148 -0
- package/src/components/swipe-carousel/index.ts +6 -0
- package/src/components/swipe-carousel/meta.ts +21 -0
- package/src/components/swipe-carousel/swipe-carousel.tsx +407 -0
- package/src/components/switch/meta.ts +3 -1
- package/src/components/switch/switch.tsx +69 -4
- package/src/components/switchboard-card/index.ts +6 -0
- package/src/components/switchboard-card/meta.ts +18 -0
- package/src/components/switchboard-card/switchboard-card.tsx +312 -0
- package/src/components/tabs/index.ts +1 -0
- package/src/components/tabs/meta.ts +3 -1
- package/src/components/tabs/tabs.tsx +144 -4
- package/src/components/tags-input/meta.ts +2 -1
- package/src/components/tags-input/tags-input.tsx +122 -4
- package/src/components/text-effect/index.ts +10 -0
- package/src/components/text-effect/meta.ts +18 -0
- package/src/components/text-effect/text-effect-presets.ts +305 -0
- package/src/components/text-effect/text-effect.tsx +454 -0
- package/src/components/text-loader/index.ts +7 -0
- package/src/components/text-loader/meta.ts +17 -0
- package/src/components/text-loader/text-loader.tsx +585 -0
- package/src/components/text-swap/index.ts +9 -0
- package/src/components/text-swap/meta.ts +20 -0
- package/src/components/text-swap/text-rotate.tsx +76 -0
- package/src/components/text-swap/text-swap.tsx +414 -0
- package/src/components/tick-progress/index.ts +1 -0
- package/src/components/tick-progress/meta.ts +19 -0
- package/src/components/tick-progress/tick-progress.tsx +253 -0
- package/src/components/tilt-card/index.ts +6 -0
- package/src/components/tilt-card/meta.ts +18 -0
- package/src/components/tilt-card/tilt-card.tsx +256 -0
- package/src/components/time-stack/index.ts +6 -0
- package/src/components/time-stack/meta.ts +19 -0
- package/src/components/time-stack/time-stack.tsx +385 -0
- package/src/components/toast/meta.ts +2 -1
- package/src/components/toast/toast.tsx +67 -9
- package/src/components/todo-tower/index.ts +1 -0
- package/src/components/todo-tower/meta.ts +18 -0
- package/src/components/todo-tower/todo-tower.tsx +429 -0
- package/src/components/tooltip/meta.ts +1 -1
- package/src/components/tooltip/tooltip.tsx +39 -15
- package/src/components/tweet-card/index.ts +11 -0
- package/src/components/tweet-card/meta.ts +19 -0
- package/src/components/tweet-card/tweet-card.tsx +372 -0
- package/src/components/typewriter-text/index.ts +6 -0
- package/src/components/typewriter-text/meta.ts +17 -0
- package/src/components/typewriter-text/typewriter-text.tsx +214 -0
- package/src/components/uptime-matrix/index.ts +11 -0
- package/src/components/uptime-matrix/meta.ts +20 -0
- package/src/components/uptime-matrix/uptime-matrix.tsx +443 -0
- package/src/index.ts +109 -0
- package/src/registry/blocks.ts +68 -0
- package/src/registry/components.ts +218 -0
- package/src/registry/schema.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff-viewer.d.ts","names":[],"sources":["../../../src/components/diff-viewer/diff-viewer.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"diff-viewer.d.ts","names":[],"sources":["../../../src/components/diff-viewer/diff-viewer.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;KAsCY;UAQK,wBAAwB,KAAK;EAC5C,OAAO;;EAEP;EACA;;EAEA,YAAY,eAAe;EAC3B,cAAc,gBAAgB,UAAU;EACxC,WAAW;;;;;;EAMX;;;;;EAKA;;iBA8Bc,aACd,WACA,OACA,OACA,MACA,WACA,YACA,UACA,UACA,qBACG,SACF,kCAAe,IAAA;;iBA6UF,oBACd,WACA,MACA,iBACG,SACF,KAAK;EACN;EACA,eAAe;oBAChB,IAAA"}
|
|
@@ -3,14 +3,34 @@ import { disabledStyles, focusRing } from "../../lib/styles.js";
|
|
|
3
3
|
import { cn } from "../../lib/utils.js";
|
|
4
4
|
import { countChanges, toSplitRows } from "./diff-model.js";
|
|
5
5
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
-
import { useMemo } from "react";
|
|
6
|
+
import { useEffect, useMemo, useRef, useState } from "react";
|
|
7
7
|
//#region src/components/diff-viewer/diff-viewer.tsx
|
|
8
8
|
const KIND_LABEL = {
|
|
9
9
|
added: "Added",
|
|
10
10
|
removed: "Removed",
|
|
11
11
|
context: "Unchanged"
|
|
12
12
|
};
|
|
13
|
-
|
|
13
|
+
const PREFIX = "dowel-diff-viewer";
|
|
14
|
+
const STYLES = `
|
|
15
|
+
@keyframes ${PREFIX}-wipe{from{clip-path:inset(0 100% 0 0)}}
|
|
16
|
+
@keyframes ${PREFIX}-wipe-rtl{from{clip-path:inset(0 0 0 100%)}}
|
|
17
|
+
@keyframes ${PREFIX}-flash-accepted{from{background-color:color-mix(in oklab,var(--color-success) 14%,transparent)}}
|
|
18
|
+
@keyframes ${PREFIX}-flash-rejected{from{background-color:color-mix(in oklab,var(--color-destructive) 12%,transparent)}}
|
|
19
|
+
.${PREFIX}-wipe{animation:${PREFIX}-wipe calc(280ms * var(--motion-scale,1)) var(--ease-out-quint) both;animation-delay:calc(var(--dowel-i,0) * 20ms * var(--motion-scale,1))}
|
|
20
|
+
.${PREFIX}-wipe:dir(rtl){animation-name:${PREFIX}-wipe-rtl}
|
|
21
|
+
[data-slot=diff-hunk][data-decision-changed=accepted]{animation:${PREFIX}-flash-accepted calc(350ms * var(--motion-scale,1)) var(--ease-out-quint)}
|
|
22
|
+
[data-slot=diff-hunk][data-decision-changed=rejected]{animation:${PREFIX}-flash-rejected calc(350ms * var(--motion-scale,1)) var(--ease-out-quint)}
|
|
23
|
+
`;
|
|
24
|
+
/** Lines after this many in a hunk share the last one's delay. */
|
|
25
|
+
const WIPE_STAGGER_CAP = 20;
|
|
26
|
+
/** Props for the content cell of an added line under `entrance="wipe"`. */
|
|
27
|
+
function wipe(index) {
|
|
28
|
+
return {
|
|
29
|
+
className: `${PREFIX}-wipe`,
|
|
30
|
+
style: { "--dowel-i": Math.min(index, WIPE_STAGGER_CAP) }
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function DiffViewer({ className, hunks, label, view = "unified", decisions, onDecision, children, entrance = "none", collapseRejected = false, ...props }) {
|
|
14
34
|
const counts = useMemo(() => countChanges(hunks), [hunks]);
|
|
15
35
|
return /* @__PURE__ */ jsxs("div", {
|
|
16
36
|
"data-slot": "diff-viewer",
|
|
@@ -18,6 +38,11 @@ function DiffViewer({ className, hunks, label, view = "unified", decisions, onDe
|
|
|
18
38
|
className: cn("flex flex-col gap-2", className),
|
|
19
39
|
...props,
|
|
20
40
|
children: [
|
|
41
|
+
/* @__PURE__ */ jsx("style", {
|
|
42
|
+
href: PREFIX,
|
|
43
|
+
precedence: "dowel",
|
|
44
|
+
children: STYLES
|
|
45
|
+
}),
|
|
21
46
|
/* @__PURE__ */ jsxs("div", {
|
|
22
47
|
className: "flex flex-wrap items-baseline justify-between gap-2",
|
|
23
48
|
children: [/* @__PURE__ */ jsx("span", {
|
|
@@ -54,17 +79,66 @@ function DiffViewer({ className, hunks, label, view = "unified", decisions, onDe
|
|
|
54
79
|
label,
|
|
55
80
|
view,
|
|
56
81
|
decision: decisions?.[hunk.id],
|
|
57
|
-
onDecision
|
|
82
|
+
onDecision,
|
|
83
|
+
entrance,
|
|
84
|
+
collapseRejected
|
|
58
85
|
}, hunk.id))
|
|
59
86
|
})
|
|
60
87
|
]
|
|
61
88
|
});
|
|
62
89
|
}
|
|
63
|
-
function DiffHunkView({ hunk, label, view, decision, onDecision }) {
|
|
90
|
+
function DiffHunkView({ hunk, label, view, decision, onDecision, entrance, collapseRejected }) {
|
|
64
91
|
const splitRows = useMemo(() => view === "split" ? toSplitRows(hunk.rows) : [], [view, hunk.rows]);
|
|
92
|
+
const [previous, setPrevious] = useState(decision);
|
|
93
|
+
const [flash, setFlash] = useState(void 0);
|
|
94
|
+
if (decision !== previous) {
|
|
95
|
+
setPrevious(decision);
|
|
96
|
+
setFlash(decision);
|
|
97
|
+
}
|
|
98
|
+
const sectionRef = useRef(null);
|
|
99
|
+
useEffect(() => {
|
|
100
|
+
const section = sectionRef.current;
|
|
101
|
+
if (!section || !flash) return;
|
|
102
|
+
const clear = (event) => {
|
|
103
|
+
if (event.target === section) setFlash(void 0);
|
|
104
|
+
};
|
|
105
|
+
section.addEventListener("animationend", clear);
|
|
106
|
+
return () => {
|
|
107
|
+
section.removeEventListener("animationend", clear);
|
|
108
|
+
};
|
|
109
|
+
}, [flash]);
|
|
110
|
+
const wiping = entrance === "wipe";
|
|
111
|
+
const collapsed = collapseRejected && decision === "rejected";
|
|
112
|
+
const hiddenNote = collapsed ? /* @__PURE__ */ jsx("span", {
|
|
113
|
+
className: "sr-only",
|
|
114
|
+
children: " — lines hidden"
|
|
115
|
+
}) : null;
|
|
116
|
+
const table = /* @__PURE__ */ jsx("div", {
|
|
117
|
+
className: "overflow-x-auto",
|
|
118
|
+
children: /* @__PURE__ */ jsx("table", {
|
|
119
|
+
"data-slot": "diff-table",
|
|
120
|
+
className: "w-full border-collapse font-mono text-xs",
|
|
121
|
+
children: /* @__PURE__ */ jsx("tbody", { children: view === "split" ? splitRows.map((pair, index) => /* @__PURE__ */ jsxs("tr", {
|
|
122
|
+
"data-slot": "diff-row",
|
|
123
|
+
children: [/* @__PURE__ */ jsx(SplitCell, {
|
|
124
|
+
row: pair.left,
|
|
125
|
+
side: "before"
|
|
126
|
+
}), /* @__PURE__ */ jsx(SplitCell, {
|
|
127
|
+
row: pair.right,
|
|
128
|
+
side: "after",
|
|
129
|
+
wipeIndex: wiping ? index : void 0
|
|
130
|
+
})]
|
|
131
|
+
}, index)) : hunk.rows.map((row, index) => /* @__PURE__ */ jsx(UnifiedRow, {
|
|
132
|
+
row,
|
|
133
|
+
wipeIndex: wiping ? index : void 0
|
|
134
|
+
}, index)) })
|
|
135
|
+
})
|
|
136
|
+
});
|
|
65
137
|
return /* @__PURE__ */ jsxs("section", {
|
|
66
138
|
"data-slot": "diff-hunk",
|
|
67
139
|
"data-decision": decision,
|
|
140
|
+
ref: sectionRef,
|
|
141
|
+
"data-decision-changed": flash,
|
|
68
142
|
"aria-label": `${label}, hunk ${hunk.id}`,
|
|
69
143
|
className: cn("border-b border-border last:border-b-0", decision === "rejected" && "opacity-55"),
|
|
70
144
|
children: [
|
|
@@ -81,9 +155,9 @@ function DiffHunkView({ hunk, label, view, decision, onDecision }) {
|
|
|
81
155
|
onDecision ? /* @__PURE__ */ jsxs("div", {
|
|
82
156
|
className: "flex flex-wrap items-center gap-2 border-b border-border bg-muted/20 px-3 py-1.5",
|
|
83
157
|
children: [
|
|
84
|
-
/* @__PURE__ */
|
|
158
|
+
/* @__PURE__ */ jsxs("span", {
|
|
85
159
|
className: "flex-1 text-xs text-muted-foreground",
|
|
86
|
-
children: decision === "accepted" ? "Accepted" : decision === "rejected" ? "Rejected" : "Not decided"
|
|
160
|
+
children: [decision === "accepted" ? "Accepted" : decision === "rejected" ? "Rejected" : "Not decided", hiddenNote]
|
|
87
161
|
}),
|
|
88
162
|
/* @__PURE__ */ jsx(HunkButton, {
|
|
89
163
|
pressed: decision === "accepted",
|
|
@@ -101,23 +175,17 @@ function DiffHunkView({ hunk, label, view, decision, onDecision }) {
|
|
|
101
175
|
})
|
|
102
176
|
]
|
|
103
177
|
}) : null,
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
side: "before"
|
|
114
|
-
}), /* @__PURE__ */ jsx(SplitCell, {
|
|
115
|
-
row: pair.right,
|
|
116
|
-
side: "after"
|
|
117
|
-
})]
|
|
118
|
-
}, index)) : hunk.rows.map((row, index) => /* @__PURE__ */ jsx(UnifiedRow, { row }, index)) })
|
|
178
|
+
!onDecision ? hiddenNote : null,
|
|
179
|
+
collapseRejected ? /* @__PURE__ */ jsx("div", {
|
|
180
|
+
"data-slot": "diff-hunk-lines",
|
|
181
|
+
"data-collapsed": collapsed || void 0,
|
|
182
|
+
className: cn("grid transition-[grid-template-rows,opacity] duration-[calc(250ms*var(--motion-scale))] ease-[var(--ease-out-quint)]", collapsed ? "grid-rows-[0fr] opacity-0" : "grid-rows-[1fr]"),
|
|
183
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
184
|
+
className: "min-h-0 overflow-hidden",
|
|
185
|
+
inert: collapsed || void 0,
|
|
186
|
+
children: table
|
|
119
187
|
})
|
|
120
|
-
})
|
|
188
|
+
}) : table
|
|
121
189
|
]
|
|
122
190
|
});
|
|
123
191
|
}
|
|
@@ -126,7 +194,8 @@ const ROW_STYLES = {
|
|
|
126
194
|
removed: "bg-destructive/10",
|
|
127
195
|
context: ""
|
|
128
196
|
};
|
|
129
|
-
function UnifiedRow({ row }) {
|
|
197
|
+
function UnifiedRow({ row, wipeIndex }) {
|
|
198
|
+
const motion = wipeIndex !== void 0 && row.kind === "added" ? wipe(wipeIndex) : void 0;
|
|
130
199
|
return /* @__PURE__ */ jsxs("tr", {
|
|
131
200
|
"data-slot": "diff-row",
|
|
132
201
|
"data-kind": row.kind,
|
|
@@ -140,7 +209,8 @@ function UnifiedRow({ row }) {
|
|
|
140
209
|
children: row.kind === "added" ? "+" : row.kind === "removed" ? "−" : ""
|
|
141
210
|
}),
|
|
142
211
|
/* @__PURE__ */ jsxs("td", {
|
|
143
|
-
className: "w-full py-0.5 pe-3 break-all whitespace-pre-wrap",
|
|
212
|
+
className: cn("w-full py-0.5 pe-3 break-all whitespace-pre-wrap", motion?.className),
|
|
213
|
+
style: motion?.style,
|
|
144
214
|
children: [/* @__PURE__ */ jsxs("span", {
|
|
145
215
|
className: "sr-only",
|
|
146
216
|
children: [KIND_LABEL[row.kind], ": "]
|
|
@@ -149,7 +219,7 @@ function UnifiedRow({ row }) {
|
|
|
149
219
|
]
|
|
150
220
|
});
|
|
151
221
|
}
|
|
152
|
-
function SplitCell({ row, side }) {
|
|
222
|
+
function SplitCell({ row, side, wipeIndex }) {
|
|
153
223
|
if (!row) return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("td", {
|
|
154
224
|
"aria-hidden": "true",
|
|
155
225
|
className: "w-10 bg-muted/40"
|
|
@@ -157,8 +227,10 @@ function SplitCell({ row, side }) {
|
|
|
157
227
|
"aria-hidden": "true",
|
|
158
228
|
className: "w-1/2 bg-muted/20"
|
|
159
229
|
})] });
|
|
230
|
+
const motion = wipeIndex !== void 0 && row.kind === "added" ? wipe(wipeIndex) : void 0;
|
|
160
231
|
return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(LineNumber, { value: side === "before" ? row.before : row.after }), /* @__PURE__ */ jsxs("td", {
|
|
161
|
-
className: cn("w-1/2 py-0.5 pe-3 break-all whitespace-pre-wrap", ROW_STYLES[row.kind]),
|
|
232
|
+
className: cn("w-1/2 py-0.5 pe-3 break-all whitespace-pre-wrap", ROW_STYLES[row.kind], motion?.className),
|
|
233
|
+
style: motion?.style,
|
|
162
234
|
children: [/* @__PURE__ */ jsxs("span", {
|
|
163
235
|
className: "sr-only",
|
|
164
236
|
children: [KIND_LABEL[row.kind], ": "]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff-viewer.js","names":[],"sources":["../../../src/components/diff-viewer/diff-viewer.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo, type ComponentPropsWithRef, type ReactNode } from \"react\";\n\nimport { disabledStyles, focusRing } from \"@/lib/styles\";\nimport { cn } from \"@/lib/utils\";\n\nimport { countChanges, toSplitRows, type DiffHunk, type DiffRow } from \"./diff-model\";\n\n/**\n * A diff, and a decision about it.\n *\n * The rendering half exists because every packaged viewer brings its own\n * styling system — emotion, or HTML strings plus a stylesheet — which design\n * tokens cannot reach and which is awkward under RSC. The deciding half exists\n * because Dowel is for AI products, and an agent proposing a change to a file is\n * the case that needs it: what every coding agent ships, and no component\n * library does.\n *\n * Decisions are controlled. The component never mutates the diff or applies\n * anything; it reports which hunks were accepted and rejected and leaves the\n * consequences to the application, the same way ai-action-ledger does.\n *\n * Not a grid. A code listing is a table of text, and role=\"grid\" would promise\n * cell-by-cell arrow navigation that neither exists here nor makes sense for\n * reading code. Line kind is carried in text, because a plus sign and a green\n * background are not information.\n */\n\nexport type HunkDecision = \"accepted\" | \"rejected\";\n\nconst KIND_LABEL: Record<DiffRow[\"kind\"], string> = {\n added: \"Added\",\n removed: \"Removed\",\n context: \"Unchanged\",\n};\n\nexport interface DiffViewerProps extends Omit<ComponentPropsWithRef<\"div\">, \"children\"> {\n hunks: DiffHunk[];\n /** Names the diff — usually the path of the file being changed. */\n label: string;\n view?: \"unified\" | \"split\";\n /** Per-hunk decisions, keyed by hunk id. Controlled. */\n decisions?: Record<string, HunkDecision>;\n onDecision?: (hunkId: string, decision: HunkDecision) => void;\n children?: ReactNode;\n}\n\nexport function DiffViewer({\n className,\n hunks,\n label,\n view = \"unified\",\n decisions,\n onDecision,\n children,\n ...props\n}: DiffViewerProps) {\n const counts = useMemo(() => countChanges(hunks), [hunks]);\n\n return (\n <div\n data-slot=\"diff-viewer\"\n data-view={view}\n className={cn(\"flex flex-col gap-2\", className)}\n {...props}\n >\n <div className=\"flex flex-wrap items-baseline justify-between gap-2\">\n <span className=\"font-mono text-sm font-medium\">{label}</span>\n {/* Said in words as well as coloured, and before the diff rather than\n after it: a reader deserves to know the size of the change before\n they start reading it. */}\n <span data-slot=\"diff-viewer-summary\" className=\"text-xs text-muted-foreground\">\n <span className=\"text-success\">+{counts.added}</span>{\" \"}\n <span className=\"text-destructive\">−{counts.removed}</span>\n <span className=\"sr-only\">\n {` — ${String(counts.added)} lines added, ${String(counts.removed)} removed`}\n </span>\n </span>\n </div>\n\n {children}\n\n {hunks.length === 0 ? (\n <p className=\"rounded-lg border border-border bg-muted/30 p-3 text-sm text-muted-foreground\">\n No changes.\n </p>\n ) : (\n <div className=\"overflow-hidden rounded-lg border border-border\">\n {hunks.map((hunk) => (\n <DiffHunkView\n key={hunk.id}\n hunk={hunk}\n label={label}\n view={view}\n decision={decisions?.[hunk.id]}\n onDecision={onDecision}\n />\n ))}\n </div>\n )}\n </div>\n );\n}\n\nfunction DiffHunkView({\n hunk,\n label,\n view,\n decision,\n onDecision,\n}: {\n hunk: DiffHunk;\n label: string;\n view: \"unified\" | \"split\";\n decision?: HunkDecision;\n onDecision?: (hunkId: string, decision: HunkDecision) => void;\n}) {\n const splitRows = useMemo(\n () => (view === \"split\" ? toSplitRows(hunk.rows) : []),\n [view, hunk.rows],\n );\n\n return (\n <section\n data-slot=\"diff-hunk\"\n data-decision={decision}\n aria-label={`${label}, hunk ${hunk.id}`}\n className={cn(\n \"border-b border-border last:border-b-0\",\n decision === \"rejected\" && \"opacity-55\",\n )}\n >\n {hunk.skippedBefore > 0 ? (\n <p\n data-slot=\"diff-hunk-skipped\"\n className=\"border-b border-border bg-muted/40 px-3 py-1 font-mono text-2xs text-muted-foreground\"\n >\n {hunk.skippedBefore} unchanged {hunk.skippedBefore === 1 ? \"line\" : \"lines\"} hidden\n </p>\n ) : null}\n\n {onDecision ? (\n <div className=\"flex flex-wrap items-center gap-2 border-b border-border bg-muted/20 px-3 py-1.5\">\n <span className=\"flex-1 text-xs text-muted-foreground\">\n {decision === \"accepted\"\n ? \"Accepted\"\n : decision === \"rejected\"\n ? \"Rejected\"\n : \"Not decided\"}\n </span>\n <HunkButton\n pressed={decision === \"accepted\"}\n onClick={() => {\n onDecision(hunk.id, \"accepted\");\n }}\n >\n Accept\n </HunkButton>\n <HunkButton\n pressed={decision === \"rejected\"}\n onClick={() => {\n onDecision(hunk.id, \"rejected\");\n }}\n >\n Reject\n </HunkButton>\n </div>\n ) : null}\n\n <div className=\"overflow-x-auto\">\n <table data-slot=\"diff-table\" className=\"w-full border-collapse font-mono text-xs\">\n <tbody>\n {view === \"split\"\n ? splitRows.map((pair, index) => (\n <tr key={index} data-slot=\"diff-row\">\n <SplitCell row={pair.left} side=\"before\" />\n <SplitCell row={pair.right} side=\"after\" />\n </tr>\n ))\n : hunk.rows.map((row, index) => <UnifiedRow key={index} row={row} />)}\n </tbody>\n </table>\n </div>\n </section>\n );\n}\n\nconst ROW_STYLES: Record<DiffRow[\"kind\"], string> = {\n added: \"bg-success/10\",\n removed: \"bg-destructive/10\",\n context: \"\",\n};\n\nfunction UnifiedRow({ row }: { row: DiffRow }) {\n return (\n <tr data-slot=\"diff-row\" data-kind={row.kind} className={ROW_STYLES[row.kind]}>\n <LineNumber value={row.before} />\n <LineNumber value={row.after} />\n <td className=\"w-4 pe-1 text-center text-muted-foreground select-none\" aria-hidden=\"true\">\n {row.kind === \"added\" ? \"+\" : row.kind === \"removed\" ? \"−\" : \"\"}\n </td>\n <td className=\"w-full py-0.5 pe-3 break-all whitespace-pre-wrap\">\n {/* The kind, for anyone who cannot see the sign or the tint. Reading a\n diff aloud without it is reading the same file twice. */}\n <span className=\"sr-only\">{KIND_LABEL[row.kind]}: </span>\n <RowContent row={row} />\n </td>\n </tr>\n );\n}\n\nfunction SplitCell({ row, side }: { row: DiffRow | null; side: \"before\" | \"after\" }) {\n if (!row) {\n // An empty half of a pair, not a blank line of code. Hidden from assistive\n // technology so a reader is not read padding.\n return (\n <>\n <td aria-hidden=\"true\" className=\"w-10 bg-muted/40\" />\n <td aria-hidden=\"true\" className=\"w-1/2 bg-muted/20\" />\n </>\n );\n }\n\n return (\n <>\n <LineNumber value={side === \"before\" ? row.before : row.after} />\n <td\n className={cn(\"w-1/2 py-0.5 pe-3 break-all whitespace-pre-wrap\", ROW_STYLES[row.kind])}\n >\n <span className=\"sr-only\">{KIND_LABEL[row.kind]}: </span>\n <RowContent row={row} />\n </td>\n </>\n );\n}\n\nfunction RowContent({ row }: { row: DiffRow }) {\n if (!row.segments) return <>{row.content}</>;\n\n return (\n <>\n {row.segments.map((segment, index) =>\n segment.changed ? (\n // A mark element, so the changed words survive as structure rather\n // than existing only as a slightly stronger background.\n <mark\n key={index}\n className={cn(\n \"rounded-[2px] text-inherit\",\n row.kind === \"added\" ? \"bg-success/30\" : \"bg-destructive/30\",\n )}\n >\n {segment.text}\n </mark>\n ) : (\n <span key={index}>{segment.text}</span>\n ),\n )}\n </>\n );\n}\n\nfunction LineNumber({ value }: { value?: number }) {\n return (\n <td\n // Decorative: the line number is orientation for a sighted reader, and\n // announcing two numbers before every line makes the diff unlistenable.\n aria-hidden=\"true\"\n className=\"w-10 border-e border-border bg-muted/40 px-2 py-0.5 text-end text-muted-foreground tabular-nums select-none\"\n >\n {value ?? \"\"}\n </td>\n );\n}\n\nfunction HunkButton({\n className,\n pressed,\n ...props\n}: ComponentPropsWithRef<\"button\"> & { pressed: boolean }) {\n return (\n <button\n type=\"button\"\n aria-pressed={pressed}\n className={cn(\n \"rounded-md border px-2 py-0.5 text-xs font-medium transition-colors\",\n pressed\n ? \"border-primary bg-primary text-primary-foreground\"\n : \"border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n focusRing,\n disabledStyles,\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Switches between unified and side-by-side. */\nexport function DiffViewerToolbar({\n className,\n view,\n onViewChange,\n ...props\n}: Omit<ComponentPropsWithRef<\"div\">, \"onChange\"> & {\n view: \"unified\" | \"split\";\n onViewChange: (view: \"unified\" | \"split\") => void;\n}) {\n return (\n <div\n data-slot=\"diff-viewer-toolbar\"\n role=\"group\"\n aria-label=\"Diff layout\"\n className={cn(\"flex items-center gap-1\", className)}\n {...props}\n >\n {([\"unified\", \"split\"] as const).map((option) => (\n <button\n key={option}\n type=\"button\"\n aria-pressed={view === option}\n onClick={() => {\n onViewChange(option);\n }}\n className={cn(\n \"rounded-md border px-2 py-0.5 text-xs font-medium capitalize transition-colors\",\n view === option\n ? \"border-transparent bg-secondary text-secondary-foreground\"\n : \"border-input bg-background text-muted-foreground hover:text-foreground\",\n focusRing,\n )}\n >\n {option}\n </button>\n ))}\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diff-viewer.js","names":[],"sources":["../../../src/components/diff-viewer/diff-viewer.tsx"],"sourcesContent":["\"use client\";\n\n// Motion from SmoothUI AI Diff (MIT, © 2024 Eduardo Calvo). See THIRD_PARTY_NOTICES.md.\nimport {\n useEffect,\n useMemo,\n useRef,\n useState,\n type ComponentPropsWithRef,\n type CSSProperties,\n type ReactNode,\n} from \"react\";\n\nimport { disabledStyles, focusRing } from \"@/lib/styles\";\nimport { cn } from \"@/lib/utils\";\n\nimport { countChanges, toSplitRows, type DiffHunk, type DiffRow } from \"./diff-model\";\n\n/**\n * A diff, and a decision about it.\n *\n * The rendering half exists because every packaged viewer brings its own\n * styling system — emotion, or HTML strings plus a stylesheet — which design\n * tokens cannot reach and which is awkward under RSC. The deciding half exists\n * because Dowel is for AI products, and an agent proposing a change to a file is\n * the case that needs it: what every coding agent ships, and no component\n * library does.\n *\n * Decisions are controlled. The component never mutates the diff or applies\n * anything; it reports which hunks were accepted and rejected and leaves the\n * consequences to the application, the same way ai-action-ledger does.\n *\n * Not a grid. A code listing is a table of text, and role=\"grid\" would promise\n * cell-by-cell arrow navigation that neither exists here nor makes sense for\n * reading code. Line kind is carried in text, because a plus sign and a green\n * background are not information.\n */\n\nexport type HunkDecision = \"accepted\" | \"rejected\";\n\nconst KIND_LABEL: Record<DiffRow[\"kind\"], string> = {\n added: \"Added\",\n removed: \"Removed\",\n context: \"Unchanged\",\n};\n\nexport interface DiffViewerProps extends Omit<ComponentPropsWithRef<\"div\">, \"children\"> {\n hunks: DiffHunk[];\n /** Names the diff — usually the path of the file being changed. */\n label: string;\n view?: \"unified\" | \"split\";\n /** Per-hunk decisions, keyed by hunk id. Controlled. */\n decisions?: Record<string, HunkDecision>;\n onDecision?: (hunkId: string, decision: HunkDecision) => void;\n children?: ReactNode;\n /**\n * Entrance for added lines. `wipe` draws each one in along the reading\n * direction, a line after the other; context and removed lines were already\n * there and do not move.\n */\n entrance?: \"none\" | \"wipe\";\n /**\n * Collapse a rejected hunk's lines. Its header and controls stay, so the\n * decision can still be reversed, and the header says the lines are hidden.\n */\n collapseRejected?: boolean;\n}\n\nconst PREFIX = \"dowel-diff-viewer\";\n\n/* The wipe reveals an added line's code (never its line numbers) in reading\n * order; its stagger is capped so a long diff does not take seconds to appear.\n * The flash is a one-shot tint when a hunk's decision changes. */\nconst STYLES = `\n@keyframes ${PREFIX}-wipe{from{clip-path:inset(0 100% 0 0)}}\n@keyframes ${PREFIX}-wipe-rtl{from{clip-path:inset(0 0 0 100%)}}\n@keyframes ${PREFIX}-flash-accepted{from{background-color:color-mix(in oklab,var(--color-success) 14%,transparent)}}\n@keyframes ${PREFIX}-flash-rejected{from{background-color:color-mix(in oklab,var(--color-destructive) 12%,transparent)}}\n.${PREFIX}-wipe{animation:${PREFIX}-wipe calc(280ms * var(--motion-scale,1)) var(--ease-out-quint) both;animation-delay:calc(var(--dowel-i,0) * 20ms * var(--motion-scale,1))}\n.${PREFIX}-wipe:dir(rtl){animation-name:${PREFIX}-wipe-rtl}\n[data-slot=diff-hunk][data-decision-changed=accepted]{animation:${PREFIX}-flash-accepted calc(350ms * var(--motion-scale,1)) var(--ease-out-quint)}\n[data-slot=diff-hunk][data-decision-changed=rejected]{animation:${PREFIX}-flash-rejected calc(350ms * var(--motion-scale,1)) var(--ease-out-quint)}\n`;\n\n/** Lines after this many in a hunk share the last one's delay. */\nconst WIPE_STAGGER_CAP = 20;\n\n/** Props for the content cell of an added line under `entrance=\"wipe\"`. */\nfunction wipe(index: number): { className: string; style: CSSProperties } {\n return {\n className: `${PREFIX}-wipe`,\n style: { \"--dowel-i\": Math.min(index, WIPE_STAGGER_CAP) } as CSSProperties,\n };\n}\n\nexport function DiffViewer({\n className,\n hunks,\n label,\n view = \"unified\",\n decisions,\n onDecision,\n children,\n entrance = \"none\",\n collapseRejected = false,\n ...props\n}: DiffViewerProps) {\n const counts = useMemo(() => countChanges(hunks), [hunks]);\n\n return (\n <div\n data-slot=\"diff-viewer\"\n data-view={view}\n className={cn(\"flex flex-col gap-2\", className)}\n {...props}\n >\n <style href={PREFIX} precedence=\"dowel\">\n {STYLES}\n </style>\n <div className=\"flex flex-wrap items-baseline justify-between gap-2\">\n <span className=\"font-mono text-sm font-medium\">{label}</span>\n {/* Said in words as well as coloured, and before the diff rather than\n after it: a reader deserves to know the size of the change before\n they start reading it. */}\n <span data-slot=\"diff-viewer-summary\" className=\"text-xs text-muted-foreground\">\n <span className=\"text-success\">+{counts.added}</span>{\" \"}\n <span className=\"text-destructive\">−{counts.removed}</span>\n <span className=\"sr-only\">\n {` — ${String(counts.added)} lines added, ${String(counts.removed)} removed`}\n </span>\n </span>\n </div>\n\n {children}\n\n {hunks.length === 0 ? (\n <p className=\"rounded-lg border border-border bg-muted/30 p-3 text-sm text-muted-foreground\">\n No changes.\n </p>\n ) : (\n <div className=\"overflow-hidden rounded-lg border border-border\">\n {hunks.map((hunk) => (\n <DiffHunkView\n key={hunk.id}\n hunk={hunk}\n label={label}\n view={view}\n decision={decisions?.[hunk.id]}\n onDecision={onDecision}\n entrance={entrance}\n collapseRejected={collapseRejected}\n />\n ))}\n </div>\n )}\n </div>\n );\n}\n\nfunction DiffHunkView({\n hunk,\n label,\n view,\n decision,\n onDecision,\n entrance,\n collapseRejected,\n}: {\n hunk: DiffHunk;\n label: string;\n view: \"unified\" | \"split\";\n decision?: HunkDecision;\n onDecision?: (hunkId: string, decision: HunkDecision) => void;\n entrance: \"none\" | \"wipe\";\n collapseRejected: boolean;\n}) {\n const splitRows = useMemo(\n () => (view === \"split\" ? toSplitRows(hunk.rows) : []),\n [view, hunk.rows],\n );\n\n // A decision that changes after mount flashes once. Tracked during render,\n // so a decision present on first render (a replay) does not flash.\n const [previous, setPrevious] = useState(decision);\n const [flash, setFlash] = useState<HunkDecision | undefined>(undefined);\n if (decision !== previous) {\n setPrevious(decision);\n setFlash(decision);\n }\n\n // A native listener rather than onAnimationEnd: React picks a vendor-prefixed\n // event name wherever AnimationEvent is missing, and would never hear it.\n const sectionRef = useRef<HTMLElement | null>(null);\n useEffect(() => {\n const section = sectionRef.current;\n if (!section || !flash) return;\n const clear = (event: Event) => {\n // Wiped lines end their own animations inside the hunk; only the\n // hunk's flash clears the flag.\n if (event.target === section) setFlash(undefined);\n };\n section.addEventListener(\"animationend\", clear);\n return () => {\n section.removeEventListener(\"animationend\", clear);\n };\n }, [flash]);\n\n const wiping = entrance === \"wipe\";\n const collapsed = collapseRejected && decision === \"rejected\";\n const hiddenNote = collapsed ? <span className=\"sr-only\"> — lines hidden</span> : null;\n\n const table = (\n <div className=\"overflow-x-auto\">\n <table data-slot=\"diff-table\" className=\"w-full border-collapse font-mono text-xs\">\n <tbody>\n {view === \"split\"\n ? splitRows.map((pair, index) => (\n <tr key={index} data-slot=\"diff-row\">\n <SplitCell row={pair.left} side=\"before\" />\n <SplitCell\n row={pair.right}\n side=\"after\"\n wipeIndex={wiping ? index : undefined}\n />\n </tr>\n ))\n : hunk.rows.map((row, index) => (\n <UnifiedRow key={index} row={row} wipeIndex={wiping ? index : undefined} />\n ))}\n </tbody>\n </table>\n </div>\n );\n\n return (\n <section\n data-slot=\"diff-hunk\"\n data-decision={decision}\n ref={sectionRef}\n data-decision-changed={flash}\n aria-label={`${label}, hunk ${hunk.id}`}\n className={cn(\n \"border-b border-border last:border-b-0\",\n decision === \"rejected\" && \"opacity-55\",\n )}\n >\n {hunk.skippedBefore > 0 ? (\n <p\n data-slot=\"diff-hunk-skipped\"\n className=\"border-b border-border bg-muted/40 px-3 py-1 font-mono text-2xs text-muted-foreground\"\n >\n {hunk.skippedBefore} unchanged {hunk.skippedBefore === 1 ? \"line\" : \"lines\"} hidden\n </p>\n ) : null}\n\n {onDecision ? (\n <div className=\"flex flex-wrap items-center gap-2 border-b border-border bg-muted/20 px-3 py-1.5\">\n <span className=\"flex-1 text-xs text-muted-foreground\">\n {decision === \"accepted\"\n ? \"Accepted\"\n : decision === \"rejected\"\n ? \"Rejected\"\n : \"Not decided\"}\n {hiddenNote}\n </span>\n <HunkButton\n pressed={decision === \"accepted\"}\n onClick={() => {\n onDecision(hunk.id, \"accepted\");\n }}\n >\n Accept\n </HunkButton>\n <HunkButton\n pressed={decision === \"rejected\"}\n onClick={() => {\n onDecision(hunk.id, \"rejected\");\n }}\n >\n Reject\n </HunkButton>\n </div>\n ) : null}\n\n {!onDecision ? hiddenNote : null}\n\n {collapseRejected ? (\n // Grid rows animate between 1fr and 0fr, which is a height transition\n // CSS can do. Collapsed lines are inert: hidden, and out of reach.\n <div\n data-slot=\"diff-hunk-lines\"\n data-collapsed={collapsed || undefined}\n className={cn(\n \"grid transition-[grid-template-rows,opacity] duration-[calc(250ms*var(--motion-scale))] ease-[var(--ease-out-quint)]\",\n collapsed ? \"grid-rows-[0fr] opacity-0\" : \"grid-rows-[1fr]\",\n )}\n >\n <div className=\"min-h-0 overflow-hidden\" inert={collapsed || undefined}>\n {table}\n </div>\n </div>\n ) : (\n table\n )}\n </section>\n );\n}\n\nconst ROW_STYLES: Record<DiffRow[\"kind\"], string> = {\n added: \"bg-success/10\",\n removed: \"bg-destructive/10\",\n context: \"\",\n};\n\nfunction UnifiedRow({ row, wipeIndex }: { row: DiffRow; wipeIndex?: number }) {\n const motion = wipeIndex !== undefined && row.kind === \"added\" ? wipe(wipeIndex) : undefined;\n return (\n <tr data-slot=\"diff-row\" data-kind={row.kind} className={ROW_STYLES[row.kind]}>\n <LineNumber value={row.before} />\n <LineNumber value={row.after} />\n <td className=\"w-4 pe-1 text-center text-muted-foreground select-none\" aria-hidden=\"true\">\n {row.kind === \"added\" ? \"+\" : row.kind === \"removed\" ? \"−\" : \"\"}\n </td>\n <td\n className={cn(\"w-full py-0.5 pe-3 break-all whitespace-pre-wrap\", motion?.className)}\n style={motion?.style}\n >\n {/* The kind, for anyone who cannot see the sign or the tint. Reading a\n diff aloud without it is reading the same file twice. */}\n <span className=\"sr-only\">{KIND_LABEL[row.kind]}: </span>\n <RowContent row={row} />\n </td>\n </tr>\n );\n}\n\nfunction SplitCell({\n row,\n side,\n wipeIndex,\n}: {\n row: DiffRow | null;\n side: \"before\" | \"after\";\n wipeIndex?: number;\n}) {\n if (!row) {\n // An empty half of a pair, not a blank line of code. Hidden from assistive\n // technology so a reader is not read padding.\n return (\n <>\n <td aria-hidden=\"true\" className=\"w-10 bg-muted/40\" />\n <td aria-hidden=\"true\" className=\"w-1/2 bg-muted/20\" />\n </>\n );\n }\n\n const motion = wipeIndex !== undefined && row.kind === \"added\" ? wipe(wipeIndex) : undefined;\n\n return (\n <>\n <LineNumber value={side === \"before\" ? row.before : row.after} />\n <td\n className={cn(\n \"w-1/2 py-0.5 pe-3 break-all whitespace-pre-wrap\",\n ROW_STYLES[row.kind],\n motion?.className,\n )}\n style={motion?.style}\n >\n <span className=\"sr-only\">{KIND_LABEL[row.kind]}: </span>\n <RowContent row={row} />\n </td>\n </>\n );\n}\n\nfunction RowContent({ row }: { row: DiffRow }) {\n if (!row.segments) return <>{row.content}</>;\n\n return (\n <>\n {row.segments.map((segment, index) =>\n segment.changed ? (\n // A mark element, so the changed words survive as structure rather\n // than existing only as a slightly stronger background.\n <mark\n key={index}\n className={cn(\n \"rounded-[2px] text-inherit\",\n row.kind === \"added\" ? \"bg-success/30\" : \"bg-destructive/30\",\n )}\n >\n {segment.text}\n </mark>\n ) : (\n <span key={index}>{segment.text}</span>\n ),\n )}\n </>\n );\n}\n\nfunction LineNumber({ value }: { value?: number }) {\n return (\n <td\n // Decorative: the line number is orientation for a sighted reader, and\n // announcing two numbers before every line makes the diff unlistenable.\n aria-hidden=\"true\"\n className=\"w-10 border-e border-border bg-muted/40 px-2 py-0.5 text-end text-muted-foreground tabular-nums select-none\"\n >\n {value ?? \"\"}\n </td>\n );\n}\n\nfunction HunkButton({\n className,\n pressed,\n ...props\n}: ComponentPropsWithRef<\"button\"> & { pressed: boolean }) {\n return (\n <button\n type=\"button\"\n aria-pressed={pressed}\n className={cn(\n \"rounded-md border px-2 py-0.5 text-xs font-medium transition-colors\",\n pressed\n ? \"border-primary bg-primary text-primary-foreground\"\n : \"border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n focusRing,\n disabledStyles,\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Switches between unified and side-by-side. */\nexport function DiffViewerToolbar({\n className,\n view,\n onViewChange,\n ...props\n}: Omit<ComponentPropsWithRef<\"div\">, \"onChange\"> & {\n view: \"unified\" | \"split\";\n onViewChange: (view: \"unified\" | \"split\") => void;\n}) {\n return (\n <div\n data-slot=\"diff-viewer-toolbar\"\n role=\"group\"\n aria-label=\"Diff layout\"\n className={cn(\"flex items-center gap-1\", className)}\n {...props}\n >\n {([\"unified\", \"split\"] as const).map((option) => (\n <button\n key={option}\n type=\"button\"\n aria-pressed={view === option}\n onClick={() => {\n onViewChange(option);\n }}\n className={cn(\n \"rounded-md border px-2 py-0.5 text-xs font-medium capitalize transition-colors\",\n view === option\n ? \"border-transparent bg-secondary text-secondary-foreground\"\n : \"border-input bg-background text-muted-foreground hover:text-foreground\",\n focusRing,\n )}\n >\n {option}\n </button>\n ))}\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ const meta = defineMeta({
|
|
|
9
9
|
dependencies: ["diff"],
|
|
10
10
|
registryDependencies: [],
|
|
11
11
|
files: ["diff-model.ts", "diff-viewer.tsx"],
|
|
12
|
-
a11y: "A semantic table, not a grid. role=\"grid\" would promise cell-by-cell arrow navigation that does not exist here and makes no sense for reading code. Every row states added, removed or unchanged in text, because a plus sign and a green tint are not information — a diff read aloud without it is just the same file twice. Line numbers are aria-hidden: they orient a sighted reader, and announcing two numbers before every line makes the diff unlistenable. Changed words are marked with mark elements so they survive as structure, and the empty half of a split pair is hidden rather than read as a blank line of code."
|
|
12
|
+
a11y: "A semantic table, not a grid. role=\"grid\" would promise cell-by-cell arrow navigation that does not exist here and makes no sense for reading code. Every row states added, removed or unchanged in text, because a plus sign and a green tint are not information — a diff read aloud without it is just the same file twice. Line numbers are aria-hidden: they orient a sighted reader, and announcing two numbers before every line makes the diff unlistenable. Changed words are marked with mark elements so they survive as structure, and the empty half of a split pair is hidden rather than read as a blank line of code. The optional wipe entrance is visual only — every row is in the DOM and its kind text is never clipped from assistive technology. With collapseRejected, a rejected hunk's lines are inert and hidden, its header says so in words, and Accept stays available so the decision can be reversed."
|
|
13
13
|
});
|
|
14
14
|
//#endregion
|
|
15
15
|
export { meta };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta.js","names":[],"sources":["../../../src/components/diff-viewer/meta.ts"],"sourcesContent":["import { defineMeta } from \"@/registry/schema\";\n\nexport const meta = defineMeta({\n name: \"diff-viewer\",\n title: \"Diff Viewer\",\n description: \"A diff you can style, and accept or reject hunk by hunk.\",\n category: \"data\",\n status: \"stable\",\n dependencies: [\"diff\"],\n registryDependencies: [],\n files: [\"diff-model.ts\", \"diff-viewer.tsx\"],\n a11y:\n 'A semantic table, not a grid. role=\"grid\" would promise cell-by-cell arrow navigation that ' +\n \"does not exist here and makes no sense for reading code. Every row states added, removed or \" +\n \"unchanged in text, because a plus sign and a green tint are not information — a diff read \" +\n \"aloud without it is just the same file twice. Line numbers are aria-hidden: they orient a \" +\n \"sighted reader, and announcing two numbers before every line makes the diff unlistenable. \" +\n \"Changed words are marked with mark elements so they survive as structure, and the empty half \" +\n \"of a split pair is hidden rather than read as a blank line of code.\",\n});\n"],"mappings":";;AAEA,MAAa,OAAO,WAAW;CAC7B,MAAM;CACN,OAAO;CACP,aAAa;CACb,UAAU;CACV,QAAQ;CACR,cAAc,CAAC,MAAM;CACrB,sBAAsB,CAAC;CACvB,OAAO,CAAC,iBAAiB,iBAAiB;CAC1C,MACE;
|
|
1
|
+
{"version":3,"file":"meta.js","names":[],"sources":["../../../src/components/diff-viewer/meta.ts"],"sourcesContent":["import { defineMeta } from \"@/registry/schema\";\n\nexport const meta = defineMeta({\n name: \"diff-viewer\",\n title: \"Diff Viewer\",\n description: \"A diff you can style, and accept or reject hunk by hunk.\",\n category: \"data\",\n status: \"stable\",\n dependencies: [\"diff\"],\n registryDependencies: [],\n files: [\"diff-model.ts\", \"diff-viewer.tsx\"],\n a11y:\n 'A semantic table, not a grid. role=\"grid\" would promise cell-by-cell arrow navigation that ' +\n \"does not exist here and makes no sense for reading code. Every row states added, removed or \" +\n \"unchanged in text, because a plus sign and a green tint are not information — a diff read \" +\n \"aloud without it is just the same file twice. Line numbers are aria-hidden: they orient a \" +\n \"sighted reader, and announcing two numbers before every line makes the diff unlistenable. \" +\n \"Changed words are marked with mark elements so they survive as structure, and the empty half \" +\n \"of a split pair is hidden rather than read as a blank line of code. The optional wipe entrance \" +\n \"is visual only — every row is in the DOM and its kind text is never clipped from assistive \" +\n \"technology. With collapseRejected, a rejected hunk's lines are inert and hidden, its header \" +\n \"says so in words, and Accept stays available so the decision can be reversed.\",\n});\n"],"mappings":";;AAEA,MAAa,OAAO,WAAW;CAC7B,MAAM;CACN,OAAO;CACP,aAAa;CACb,UAAU;CACV,QAAQ;CACR,cAAc,CAAC,MAAM;CACrB,sBAAsB,CAAC;CACvB,OAAO,CAAC,iBAAiB,iBAAiB;CAC1C,MACE;AAUJ,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { VariantProps } from "class-variance-authority";
|
|
2
|
+
import { ComponentPropsWithRef } from "react";
|
|
3
|
+
//#region src/components/dither-area/dither-area.d.ts
|
|
4
|
+
declare const ditherAreaVariants: (props?: ({
|
|
5
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
interface DitherAreaDatum {
|
|
8
|
+
/** The point's name on the axis, e.g. a date. */
|
|
9
|
+
label: string;
|
|
10
|
+
value: number;
|
|
11
|
+
}
|
|
12
|
+
interface DitherAreaProps extends Omit<ComponentPropsWithRef<"div">, "children">, VariantProps<typeof ditherAreaVariants> {
|
|
13
|
+
data: readonly DitherAreaDatum[];
|
|
14
|
+
/** What the chart shows. Names the image, the scrubber and the data table. */
|
|
15
|
+
label: string;
|
|
16
|
+
/** Replaces the generated summary in the image's accessible name. */
|
|
17
|
+
description?: string;
|
|
18
|
+
/** Axis maximum. Defaults to the largest value. */
|
|
19
|
+
max?: number;
|
|
20
|
+
formatValue?: (value: number) => string;
|
|
21
|
+
/** Colour token or CSS colour expression for the fill. Default "primary". */
|
|
22
|
+
color?: string;
|
|
23
|
+
/** Show value ticks and point labels. */
|
|
24
|
+
showAxis?: boolean;
|
|
25
|
+
/** Show the data table. It is always present for assistive technology. */
|
|
26
|
+
showTable?: boolean;
|
|
27
|
+
animate?: boolean;
|
|
28
|
+
cell?: number;
|
|
29
|
+
/** Cursor point (controlled); null hides it. */
|
|
30
|
+
index?: number | null;
|
|
31
|
+
defaultIndex?: number | null;
|
|
32
|
+
onIndexChange?: (index: number | null) => void;
|
|
33
|
+
/** Data table headers. */
|
|
34
|
+
categoryLabel?: string;
|
|
35
|
+
valueLabel?: string;
|
|
36
|
+
}
|
|
37
|
+
/** Space kept above the tallest value, as a fraction of the plot height. */
|
|
38
|
+
declare const AREA_HEADROOM = 0.16;
|
|
39
|
+
/** Distance from the top of the plot, 0..1, for a value against `max`. */
|
|
40
|
+
declare function areaY(value: number, max: number): number;
|
|
41
|
+
/** Position across the plot, 0..1, of point `index` of `count`. */
|
|
42
|
+
declare function pointX(index: number, count: number): number;
|
|
43
|
+
declare function DitherArea({ data, label, description, max, size, formatValue, color, showAxis, showTable, animate, cell, index, defaultIndex, onIndexChange, categoryLabel, valueLabel, className, ...props }: DitherAreaProps): import("react").JSX.Element;
|
|
44
|
+
//#endregion
|
|
45
|
+
export { AREA_HEADROOM, DitherArea, DitherAreaDatum, DitherAreaProps, areaY, ditherAreaVariants, pointX };
|
|
46
|
+
//# sourceMappingURL=dither-area.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dither-area.d.ts","names":[],"sources":["../../../src/components/dither-area/dither-area.tsx"],"mappings":";;;cAiCa,qBAAkB;;6CAS7B;UAEe;;EAEf;EACA;;UAGe,wBAEb,KAAK,2CACL,oBAAoB;EACtB,eAAe;;EAEf;;EAEA;;EAEA;EACA,eAAe;;EAEf;;EAEA;;EAEA;EACA;EACA;;EAEA;EACA;EACA,iBAAiB;;EAEjB;EACA;;;cAIW;;iBAGG,MAAM,eAAe;;iBAKrB,OAAO,eAAe;iBAItB,aACd,MACA,OACA,aACA,KACA,MACA,aACA,OACA,UACA,WACA,SACA,MACA,OACA,cACA,eACA,eACA,YACA,cACG,SACF,kCAAe,IAAA"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../../lib/utils.js";
|
|
3
|
+
import { createSprings, ditherFill, hash2, smoothstep } from "../dither-canvas/dither-engine.js";
|
|
4
|
+
import { DitherCanvas, DitherTable, formatDitherValue } from "../dither-canvas/dither-canvas.js";
|
|
5
|
+
import { makePath, tracePolyline, valueAt } from "../dither-canvas/dither-geometry.js";
|
|
6
|
+
import { DitherCursor, useDitherScrubber } from "../dither-canvas/dither-scrubber.js";
|
|
7
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { cva } from "class-variance-authority";
|
|
9
|
+
import { useRef } from "react";
|
|
10
|
+
//#region src/components/dither-area/dither-area.tsx
|
|
11
|
+
const ditherAreaVariants = cva("flex flex-col gap-2", {
|
|
12
|
+
variants: { size: {
|
|
13
|
+
sm: "[--dither-area-height:7.5rem]",
|
|
14
|
+
md: "[--dither-area-height:11.25rem]",
|
|
15
|
+
lg: "[--dither-area-height:16rem]"
|
|
16
|
+
} },
|
|
17
|
+
defaultVariants: { size: "md" }
|
|
18
|
+
});
|
|
19
|
+
/** Space kept above the tallest value, as a fraction of the plot height. */
|
|
20
|
+
const AREA_HEADROOM = .16;
|
|
21
|
+
/** Distance from the top of the plot, 0..1, for a value against `max`. */
|
|
22
|
+
function areaY(value, max) {
|
|
23
|
+
return 1 - .84 * (max > 0 ? Math.max(0, value) / max : 0);
|
|
24
|
+
}
|
|
25
|
+
/** Position across the plot, 0..1, of point `index` of `count`. */
|
|
26
|
+
function pointX(index, count) {
|
|
27
|
+
return count <= 1 ? .5 : index / (count - 1);
|
|
28
|
+
}
|
|
29
|
+
function DitherArea({ data, label, description, max, size, formatValue = formatDitherValue, color = "primary", showAxis = true, showTable = false, animate = true, cell, index, defaultIndex, onIndexChange, categoryLabel = "Point", valueLabel = "Value", className, ...props }) {
|
|
30
|
+
const count = data.length;
|
|
31
|
+
const scrubber = useDitherScrubber({
|
|
32
|
+
count,
|
|
33
|
+
index,
|
|
34
|
+
defaultIndex,
|
|
35
|
+
onIndexChange
|
|
36
|
+
});
|
|
37
|
+
const values = data.map((datum) => Number.isFinite(datum.value) ? Math.max(0, datum.value) : 0);
|
|
38
|
+
const top = max ?? Math.max(1, ...values);
|
|
39
|
+
const shape = useRef(createSprings(values.map(() => 0)));
|
|
40
|
+
const cursor = scrubber.index;
|
|
41
|
+
const draw = (ctx, frame) => {
|
|
42
|
+
const { width, height, time, animated } = frame;
|
|
43
|
+
const step = frame.cell;
|
|
44
|
+
shape.current.set(values.map((value) => value / top));
|
|
45
|
+
const moving = shape.current.step(frame.delta, frame.reducedMotion);
|
|
46
|
+
const current = shape.current.values;
|
|
47
|
+
const points = current.map((fraction, i) => ({
|
|
48
|
+
x: pointX(i, current.length) * width,
|
|
49
|
+
y: areaY(fraction, 1) * height
|
|
50
|
+
}));
|
|
51
|
+
if (points.length === 1 && points[0]) points.unshift({
|
|
52
|
+
x: 0,
|
|
53
|
+
y: points[0].y
|
|
54
|
+
});
|
|
55
|
+
if (points.length === 2 && current.length === 1 && points[1]) points[1].x = width;
|
|
56
|
+
ditherFill(ctx, {
|
|
57
|
+
bounds: {
|
|
58
|
+
x: 0,
|
|
59
|
+
y: 0,
|
|
60
|
+
width,
|
|
61
|
+
height
|
|
62
|
+
},
|
|
63
|
+
cell: step,
|
|
64
|
+
color: frame.color("foreground"),
|
|
65
|
+
alpha: .05,
|
|
66
|
+
density: () => .78
|
|
67
|
+
});
|
|
68
|
+
const focus = cursor !== null ? {
|
|
69
|
+
x: pointX(cursor, current.length) * width,
|
|
70
|
+
y: areaY(valueAt(current, cursor), 1) * height
|
|
71
|
+
} : null;
|
|
72
|
+
const radius = height * .35;
|
|
73
|
+
ditherFill(ctx, {
|
|
74
|
+
clip: makePath((sink) => {
|
|
75
|
+
tracePolyline(sink, points, height);
|
|
76
|
+
}),
|
|
77
|
+
bounds: {
|
|
78
|
+
x: 0,
|
|
79
|
+
y: 0,
|
|
80
|
+
width,
|
|
81
|
+
height
|
|
82
|
+
},
|
|
83
|
+
cell: step,
|
|
84
|
+
color: frame.color(color),
|
|
85
|
+
alpha: .8,
|
|
86
|
+
density: (cx, cy) => {
|
|
87
|
+
const glow = focus ? 1 - smoothstep(0, radius, Math.hypot(cx - focus.x, cy - focus.y)) : 0;
|
|
88
|
+
return .62 + (animated ? Math.sin(cy * .1 - time * 3.6) * .07 : 0) + glow * .34 + (hash2(cx, cy) - .5) * .08;
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
return moving;
|
|
92
|
+
};
|
|
93
|
+
const format = (i) => {
|
|
94
|
+
const datum = data[i];
|
|
95
|
+
return datum ? `${datum.label}: ${formatValue(datum.value)}` : "";
|
|
96
|
+
};
|
|
97
|
+
const peak = values.reduce((best, value, i) => value > (values[best] ?? -Infinity) ? i : best, 0);
|
|
98
|
+
const summary = description ?? (count === 0 ? "No data." : `${String(count)} points from ${data[0]?.label ?? ""} to ${data[count - 1]?.label ?? ""}. Starts at ${formatValue(values[0] ?? 0)}, ends at ${formatValue(values[count - 1] ?? 0)}; peak ${formatValue(values[peak] ?? 0)} on ${data[peak]?.label ?? ""}.`);
|
|
99
|
+
const ticks = [
|
|
100
|
+
top,
|
|
101
|
+
top * .66,
|
|
102
|
+
top * .33,
|
|
103
|
+
0
|
|
104
|
+
];
|
|
105
|
+
const axisLabels = count > 0 ? [
|
|
106
|
+
0,
|
|
107
|
+
.25,
|
|
108
|
+
.5,
|
|
109
|
+
.75,
|
|
110
|
+
1
|
|
111
|
+
].map((t) => Math.round(t * (count - 1))).filter((i, n, all) => all.indexOf(i) === n) : [];
|
|
112
|
+
const shown = scrubber.valueIndex;
|
|
113
|
+
const datum = data[shown];
|
|
114
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
115
|
+
"data-slot": "dither-area",
|
|
116
|
+
...props,
|
|
117
|
+
className: cn(ditherAreaVariants({ size }), className),
|
|
118
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
119
|
+
className: "flex gap-3",
|
|
120
|
+
style: { direction: "ltr" },
|
|
121
|
+
children: [showAxis && /* @__PURE__ */ jsx("div", {
|
|
122
|
+
"aria-hidden": true,
|
|
123
|
+
"data-slot": "dither-area-ticks",
|
|
124
|
+
className: "relative h-[var(--dither-area-height)] w-8 shrink-0",
|
|
125
|
+
children: ticks.map((tick, i) => /* @__PURE__ */ jsx("span", {
|
|
126
|
+
className: "absolute end-0 -translate-y-1/2 font-mono text-2xs text-muted-foreground tabular-nums",
|
|
127
|
+
style: { top: `${String(areaY(tick, top) * 100)}%` },
|
|
128
|
+
children: formatValue(Math.round(tick))
|
|
129
|
+
}, i))
|
|
130
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
131
|
+
className: "flex min-w-0 flex-1 flex-col gap-2",
|
|
132
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
133
|
+
"data-slot": "dither-area-plot",
|
|
134
|
+
className: "relative h-[var(--dither-area-height)]",
|
|
135
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
136
|
+
role: "img",
|
|
137
|
+
"aria-label": `${label}: ${summary}`,
|
|
138
|
+
className: "size-full",
|
|
139
|
+
children: /* @__PURE__ */ jsx(DitherCanvas, {
|
|
140
|
+
draw,
|
|
141
|
+
animate,
|
|
142
|
+
cell
|
|
143
|
+
})
|
|
144
|
+
}), count > 0 && /* @__PURE__ */ jsx(DitherCursor, {
|
|
145
|
+
scrubber,
|
|
146
|
+
label,
|
|
147
|
+
valueText: format(shown),
|
|
148
|
+
x: pointX(shown, count),
|
|
149
|
+
y: areaY(values[shown] ?? 0, top),
|
|
150
|
+
readout: datum && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", {
|
|
151
|
+
className: "block text-2xs text-muted-foreground uppercase",
|
|
152
|
+
children: datum.label
|
|
153
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
154
|
+
className: "font-medium tabular-nums",
|
|
155
|
+
children: formatValue(datum.value)
|
|
156
|
+
})] })
|
|
157
|
+
})]
|
|
158
|
+
}), showAxis && /* @__PURE__ */ jsx("div", {
|
|
159
|
+
"aria-hidden": true,
|
|
160
|
+
"data-slot": "dither-area-labels",
|
|
161
|
+
className: "relative h-4 font-mono text-2xs text-muted-foreground",
|
|
162
|
+
children: axisLabels.map((i) => {
|
|
163
|
+
const x = pointX(i, count);
|
|
164
|
+
return /* @__PURE__ */ jsx("span", {
|
|
165
|
+
className: "absolute top-0 whitespace-nowrap",
|
|
166
|
+
style: {
|
|
167
|
+
left: `${String(x * 100)}%`,
|
|
168
|
+
transform: `translateX(${String(-x * 100)}%)`
|
|
169
|
+
},
|
|
170
|
+
children: data[i]?.label
|
|
171
|
+
}, i);
|
|
172
|
+
})
|
|
173
|
+
})]
|
|
174
|
+
})]
|
|
175
|
+
}), /* @__PURE__ */ jsx(DitherTable, {
|
|
176
|
+
caption: label,
|
|
177
|
+
columns: [categoryLabel, valueLabel],
|
|
178
|
+
rows: data.map((entry) => [entry.label, formatValue(entry.value)]),
|
|
179
|
+
visible: showTable
|
|
180
|
+
})]
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
//#endregion
|
|
184
|
+
export { AREA_HEADROOM, DitherArea, areaY, ditherAreaVariants, pointX };
|
|
185
|
+
|
|
186
|
+
//# sourceMappingURL=dither-area.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dither-area.js","names":[],"sources":["../../../src/components/dither-area/dither-area.tsx"],"sourcesContent":["\"use client\";\n\n// Ported from amicro \"Dither Area Growth\" (MIT, © 2026 Syed Subhan Uddin). See THIRD_PARTY_NOTICES.md.\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { useRef, type ComponentPropsWithRef } from \"react\";\n\nimport {\n createSprings,\n DitherCanvas,\n DitherCursor,\n ditherFill,\n DitherTable,\n formatDitherValue,\n hash2,\n makePath,\n smoothstep,\n tracePolyline,\n useDitherScrubber,\n valueAt,\n type DitherDraw,\n} from \"@/components/dither-canvas\";\nimport { cn } from \"@/lib/utils\";\n\n/*\n * An area chart filled with dithered cells over a faint cell grid, with a date\n * scrubber. The cursor follows the pointer as in amicro, cells swell around it,\n * and it is also an APG slider: Tab to the plot, then arrows step a point, Page\n * keys jump a tenth, Home/End go to the ends, Escape hides it. The readout is\n * real text and the slider announces the same thing through aria-valuetext.\n * Values are springs in the engine, so switching range morphs the curve — a\n * different point count is resampled rather than dropped to zero.\n */\n\nexport const ditherAreaVariants = cva(\"flex flex-col gap-2\", {\n variants: {\n size: {\n sm: \"[--dither-area-height:7.5rem]\",\n md: \"[--dither-area-height:11.25rem]\",\n lg: \"[--dither-area-height:16rem]\",\n },\n },\n defaultVariants: { size: \"md\" },\n});\n\nexport interface DitherAreaDatum {\n /** The point's name on the axis, e.g. a date. */\n label: string;\n value: number;\n}\n\nexport interface DitherAreaProps\n extends\n Omit<ComponentPropsWithRef<\"div\">, \"children\">,\n VariantProps<typeof ditherAreaVariants> {\n data: readonly DitherAreaDatum[];\n /** What the chart shows. Names the image, the scrubber and the data table. */\n label: string;\n /** Replaces the generated summary in the image's accessible name. */\n description?: string;\n /** Axis maximum. Defaults to the largest value. */\n max?: number;\n formatValue?: (value: number) => string;\n /** Colour token or CSS colour expression for the fill. Default \"primary\". */\n color?: string;\n /** Show value ticks and point labels. */\n showAxis?: boolean;\n /** Show the data table. It is always present for assistive technology. */\n showTable?: boolean;\n animate?: boolean;\n cell?: number;\n /** Cursor point (controlled); null hides it. */\n index?: number | null;\n defaultIndex?: number | null;\n onIndexChange?: (index: number | null) => void;\n /** Data table headers. */\n categoryLabel?: string;\n valueLabel?: string;\n}\n\n/** Space kept above the tallest value, as a fraction of the plot height. */\nexport const AREA_HEADROOM = 0.16;\n\n/** Distance from the top of the plot, 0..1, for a value against `max`. */\nexport function areaY(value: number, max: number): number {\n return 1 - (1 - AREA_HEADROOM) * (max > 0 ? Math.max(0, value) / max : 0);\n}\n\n/** Position across the plot, 0..1, of point `index` of `count`. */\nexport function pointX(index: number, count: number): number {\n return count <= 1 ? 0.5 : index / (count - 1);\n}\n\nexport function DitherArea({\n data,\n label,\n description,\n max,\n size,\n formatValue = formatDitherValue,\n color = \"primary\",\n showAxis = true,\n showTable = false,\n animate = true,\n cell,\n index,\n defaultIndex,\n onIndexChange,\n categoryLabel = \"Point\",\n valueLabel = \"Value\",\n className,\n ...props\n}: DitherAreaProps) {\n const count = data.length;\n const scrubber = useDitherScrubber({ count, index, defaultIndex, onIndexChange });\n const values = data.map((datum) =>\n Number.isFinite(datum.value) ? Math.max(0, datum.value) : 0,\n );\n const top = max ?? Math.max(1, ...values);\n const shape = useRef(createSprings(values.map(() => 0)));\n const cursor = scrubber.index;\n\n const draw: DitherDraw = (ctx, frame) => {\n const { width, height, time, animated } = frame;\n const step = frame.cell;\n shape.current.set(values.map((value) => value / top));\n const moving = shape.current.step(frame.delta, frame.reducedMotion);\n const current = shape.current.values;\n const points = current.map((fraction, i) => ({\n x: pointX(i, current.length) * width,\n y: areaY(fraction, 1) * height,\n }));\n if (points.length === 1 && points[0]) points.unshift({ x: 0, y: points[0].y });\n if (points.length === 2 && current.length === 1 && points[1]) points[1].x = width;\n\n // The faint cell grid the area sits on.\n ditherFill(ctx, {\n bounds: { x: 0, y: 0, width, height },\n cell: step,\n color: frame.color(\"foreground\"),\n alpha: 0.05,\n density: () => 0.78,\n });\n\n const focus =\n cursor !== null\n ? {\n x: pointX(cursor, current.length) * width,\n y: areaY(valueAt(current, cursor), 1) * height,\n }\n : null;\n const radius = height * 0.35;\n ditherFill(ctx, {\n clip: makePath((sink) => {\n tracePolyline(sink, points, height);\n }),\n bounds: { x: 0, y: 0, width, height },\n cell: step,\n color: frame.color(color),\n alpha: 0.8,\n density: (cx, cy) => {\n const glow = focus\n ? 1 - smoothstep(0, radius, Math.hypot(cx - focus.x, cy - focus.y))\n : 0;\n const wave = animated ? Math.sin(cy * 0.1 - time * 3.6) * 0.07 : 0;\n return 0.62 + wave + glow * 0.34 + (hash2(cx, cy) - 0.5) * 0.08;\n },\n });\n return moving;\n };\n\n const format = (i: number) => {\n const datum = data[i];\n return datum ? `${datum.label}: ${formatValue(datum.value)}` : \"\";\n };\n const peak = values.reduce(\n (best, value, i) => (value > (values[best] ?? -Infinity) ? i : best),\n 0,\n );\n const summary =\n description ??\n (count === 0\n ? \"No data.\"\n : `${String(count)} points from ${data[0]?.label ?? \"\"} to ${data[count - 1]?.label ?? \"\"}. ` +\n `Starts at ${formatValue(values[0] ?? 0)}, ends at ${formatValue(values[count - 1] ?? 0)}; ` +\n `peak ${formatValue(values[peak] ?? 0)} on ${data[peak]?.label ?? \"\"}.`);\n const ticks = [top, top * 0.66, top * 0.33, 0];\n const axisLabels =\n count > 0\n ? [0, 0.25, 0.5, 0.75, 1]\n .map((t) => Math.round(t * (count - 1)))\n .filter((i, n, all) => all.indexOf(i) === n)\n : [];\n const shown = scrubber.valueIndex;\n const datum = data[shown];\n\n return (\n <div\n data-slot=\"dither-area\"\n {...props}\n className={cn(ditherAreaVariants({ size }), className)}\n >\n <div className=\"flex gap-3\" style={{ direction: \"ltr\" }}>\n {showAxis && (\n <div\n aria-hidden\n data-slot=\"dither-area-ticks\"\n className=\"relative h-[var(--dither-area-height)] w-8 shrink-0\"\n >\n {ticks.map((tick, i) => (\n <span\n key={i}\n className=\"absolute end-0 -translate-y-1/2 font-mono text-2xs text-muted-foreground tabular-nums\"\n style={{ top: `${String(areaY(tick, top) * 100)}%` }}\n >\n {formatValue(Math.round(tick))}\n </span>\n ))}\n </div>\n )}\n <div className=\"flex min-w-0 flex-1 flex-col gap-2\">\n <div data-slot=\"dither-area-plot\" className=\"relative h-[var(--dither-area-height)]\">\n <div role=\"img\" aria-label={`${label}: ${summary}`} className=\"size-full\">\n <DitherCanvas draw={draw} animate={animate} cell={cell} />\n </div>\n {count > 0 && (\n <DitherCursor\n scrubber={scrubber}\n label={label}\n valueText={format(shown)}\n x={pointX(shown, count)}\n y={areaY(values[shown] ?? 0, top)}\n readout={\n datum && (\n <>\n <span className=\"block text-2xs text-muted-foreground uppercase\">\n {datum.label}\n </span>\n <span className=\"font-medium tabular-nums\">\n {formatValue(datum.value)}\n </span>\n </>\n )\n }\n />\n )}\n </div>\n {showAxis && (\n <div\n aria-hidden\n data-slot=\"dither-area-labels\"\n className=\"relative h-4 font-mono text-2xs text-muted-foreground\"\n >\n {axisLabels.map((i) => {\n const x = pointX(i, count);\n return (\n <span\n key={i}\n className=\"absolute top-0 whitespace-nowrap\"\n style={{\n left: `${String(x * 100)}%`,\n transform: `translateX(${String(-x * 100)}%)`,\n }}\n >\n {data[i]?.label}\n </span>\n );\n })}\n </div>\n )}\n </div>\n </div>\n <DitherTable\n caption={label}\n columns={[categoryLabel, valueLabel]}\n rows={data.map((entry) => [entry.label, formatValue(entry.value)])}\n visible={showTable}\n />\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { defineMeta } from "../../registry/schema.js";
|
|
2
|
+
//#region src/components/dither-area/meta.ts
|
|
3
|
+
const meta = defineMeta({
|
|
4
|
+
name: "dither-area",
|
|
5
|
+
title: "Dither Area",
|
|
6
|
+
description: "An area chart filled with dithered cells over a cell grid, with a date scrubber that swells the cells around it.",
|
|
7
|
+
category: "data",
|
|
8
|
+
status: "beta",
|
|
9
|
+
dependencies: ["class-variance-authority"],
|
|
10
|
+
registryDependencies: ["dither-canvas"],
|
|
11
|
+
files: ["dither-area.tsx"],
|
|
12
|
+
a11y: "The plot is role=\"img\" with an aria-label giving the range, start, end and peak. The scrubber over it is a slider: arrow keys step a point, Page keys jump a tenth, Home/End go to the ends, Escape hides the cursor, and aria-valuetext announces the date and value shown in the readout. Axis ticks are aria-hidden; the data is always in a table, visually hidden unless showTable is set."
|
|
13
|
+
});
|
|
14
|
+
//#endregion
|
|
15
|
+
export { meta };
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=meta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta.js","names":[],"sources":["../../../src/components/dither-area/meta.ts"],"sourcesContent":["import { defineMeta } from \"@/registry/schema\";\n\nexport const meta = defineMeta({\n name: \"dither-area\",\n title: \"Dither Area\",\n description:\n \"An area chart filled with dithered cells over a cell grid, with a date scrubber that swells the cells around it.\",\n category: \"data\",\n status: \"beta\",\n dependencies: [\"class-variance-authority\"],\n registryDependencies: [\"dither-canvas\"],\n files: [\"dither-area.tsx\"],\n a11y:\n 'The plot is role=\"img\" with an aria-label giving the range, start, end and peak. The scrubber ' +\n \"over it is a slider: arrow keys step a point, Page keys jump a tenth, Home/End go to the ends, \" +\n \"Escape hides the cursor, and aria-valuetext announces the date and value shown in the readout. \" +\n \"Axis ticks are aria-hidden; the data is always in a table, visually hidden unless showTable is set.\",\n});\n"],"mappings":";;AAEA,MAAa,OAAO,WAAW;CAC7B,MAAM;CACN,OAAO;CACP,aACE;CACF,UAAU;CACV,QAAQ;CACR,cAAc,CAAC,0BAA0B;CACzC,sBAAsB,CAAC,eAAe;CACtC,OAAO,CAAC,iBAAiB;CACzB,MACE;AAIJ,CAAC"}
|