@dowel-ui/react 0.5.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/admin-dashboard/meta.js +31 -0
- package/dist/blocks/admin-dashboard/meta.js.map +1 -0
- package/dist/blocks/agent-console/meta.js +27 -0
- package/dist/blocks/agent-console/meta.js.map +1 -0
- package/dist/blocks/ai-dashboard/meta.js +25 -0
- package/dist/blocks/ai-dashboard/meta.js.map +1 -0
- package/dist/blocks/ai-workspace/meta.js +33 -0
- package/dist/blocks/ai-workspace/meta.js.map +1 -0
- package/dist/blocks/analytics/meta.js +24 -0
- package/dist/blocks/analytics/meta.js.map +1 -0
- package/dist/blocks/billing/meta.js +25 -0
- package/dist/blocks/billing/meta.js.map +1 -0
- package/dist/blocks/command-center/meta.js +28 -0
- package/dist/blocks/command-center/meta.js.map +1 -0
- package/dist/blocks/crm/meta.js +32 -0
- package/dist/blocks/crm/meta.js.map +1 -0
- 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/onboarding/meta.js +23 -0
- package/dist/blocks/onboarding/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/accordion/accordion.js +1 -1
- package/dist/components/accordion/accordion.js.map +1 -1
- 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/activity-feed/activity-feed.js +1 -1
- package/dist/components/activity-feed/activity-feed.js.map +1 -1
- 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 +110 -43
- 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-extraction-review/ai-extraction-review.js +1 -1
- package/dist/components/ai-extraction-review/ai-extraction-review.js.map +1 -1
- 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 +114 -10
- 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 +7 -3
- 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 +83 -6
- 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 +60 -0
- package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.js +158 -0
- package/dist/components/breadcrumb/breadcrumb.js.map +1 -0
- package/dist/components/breadcrumb/index.d.ts +2 -0
- package/dist/components/breadcrumb/index.js +2 -0
- package/dist/components/breadcrumb/meta.js +17 -0
- package/dist/components/breadcrumb/meta.js.map +1 -0
- 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/calendar/calendar.js +2 -2
- package/dist/components/calendar/calendar.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/collapsible/collapsible.d.ts +30 -0
- package/dist/components/collapsible/collapsible.d.ts.map +1 -0
- package/dist/components/collapsible/collapsible.js +38 -0
- package/dist/components/collapsible/collapsible.js.map +1 -0
- package/dist/components/collapsible/index.d.ts +2 -0
- package/dist/components/collapsible/index.js +2 -0
- package/dist/components/collapsible/meta.js +17 -0
- package/dist/components/collapsible/meta.js.map +1 -0
- 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 +161 -66
- 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/command.js +1 -1
- package/dist/components/command/command.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/data-table/data-table.d.ts.map +1 -1
- package/dist/components/data-table/data-table.js +4 -1
- package/dist/components/data-table/data-table.js.map +1 -1
- 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 +24 -7
- 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 +100 -28
- 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/direction/direction.d.ts +35 -0
- package/dist/components/direction/direction.d.ts.map +1 -0
- package/dist/components/direction/direction.js +14 -0
- package/dist/components/direction/direction.js.map +1 -0
- package/dist/components/direction/index.d.ts +2 -0
- package/dist/components/direction/index.js +2 -0
- package/dist/components/direction/meta.js +17 -0
- package/dist/components/direction/meta.js.map +1 -0
- 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 +24 -5
- 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 +34 -13
- 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/input.js +1 -1
- package/dist/components/input/input.js.map +1 -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/log-viewer/log-viewer.js +2 -2
- package/dist/components/log-viewer/log-viewer.js.map +1 -1
- 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/meter/meter.js +1 -1
- package/dist/components/meter/meter.js.map +1 -1
- 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 +16 -6
- 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/permission-matrix/permission-matrix.js +3 -3
- package/dist/components/permission-matrix/permission-matrix.js.map +1 -1
- 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 +21 -2
- 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/record-diff/record-diff.js +4 -4
- package/dist/components/record-diff/record-diff.js.map +1 -1
- 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 +29 -7
- 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 +25 -6
- 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/sidebar/index.d.ts +2 -0
- package/dist/components/sidebar/index.js +2 -0
- package/dist/components/sidebar/meta.js +17 -0
- package/dist/components/sidebar/meta.js.map +1 -0
- package/dist/components/sidebar/sidebar.d.ts +69 -0
- package/dist/components/sidebar/sidebar.d.ts.map +1 -0
- package/dist/components/sidebar/sidebar.js +256 -0
- package/dist/components/sidebar/sidebar.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/table/table.js +2 -2
- package/dist/components/table/table.js.map +1 -1
- 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/textarea/index.d.ts +2 -0
- package/dist/components/textarea/index.js +2 -0
- package/dist/components/textarea/meta.js +17 -0
- package/dist/components/textarea/meta.js.map +1 -0
- package/dist/components/textarea/textarea.d.ts +43 -0
- package/dist/components/textarea/textarea.d.ts.map +1 -0
- package/dist/components/textarea/textarea.js +119 -0
- package/dist/components/textarea/textarea.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-range-picker/time-range-picker.js +3 -3
- package/dist/components/time-range-picker/time-range-picker.js.map +1 -1
- 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 +34 -11
- 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 +256 -18
- package/dist/index.js +134 -10
- package/dist/lib/styles.d.ts +16 -1
- package/dist/lib/styles.d.ts.map +1 -1
- package/dist/lib/styles.js +16 -1
- package/dist/lib/styles.js.map +1 -1
- package/dist/registry/blocks.d.ts.map +1 -1
- package/dist/registry/blocks.js +95 -9
- package/dist/registry/blocks.js.map +1 -1
- package/dist/registry/components.d.ts.map +1 -1
- package/dist/registry/components.js +278 -50
- package/dist/registry/components.js.map +1 -1
- package/dist/registry/schema.d.ts +9 -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 +6 -4
- package/src/components/accordion/accordion.tsx +1 -1
- 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/activity-feed/activity-feed.tsx +1 -1
- 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-extraction-review/ai-extraction-review.tsx +1 -1
- 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 +57 -19
- package/src/components/ai-reasoning/ai-reasoning.tsx +192 -13
- 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 +12 -3
- 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 +125 -4
- 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 +198 -0
- package/src/components/breadcrumb/index.ts +11 -0
- package/src/components/breadcrumb/meta.ts +20 -0
- 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/calendar/calendar.tsx +2 -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/collapsible/collapsible.tsx +63 -0
- package/src/components/collapsible/index.ts +6 -0
- package/src/components/collapsible/meta.ts +16 -0
- package/src/components/combobox/combobox.tsx +167 -14
- package/src/components/combobox/index.ts +1 -0
- package/src/components/combobox/meta.ts +2 -1
- package/src/components/command/command.tsx +1 -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/data-table/data-table.tsx +14 -3
- 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 +80 -37
- package/src/components/dialog/meta.ts +2 -1
- package/src/components/diff-viewer/diff-viewer.tsx +160 -21
- package/src/components/diff-viewer/meta.ts +4 -1
- package/src/components/direction/direction.tsx +38 -0
- package/src/components/direction/index.ts +1 -0
- package/src/components/direction/meta.ts +19 -0
- 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 +78 -35
- package/src/components/drawer/meta.ts +1 -1
- package/src/components/dropdown-menu/dropdown-menu.tsx +61 -18
- 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/input.tsx +1 -1
- 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/log-viewer/log-viewer.tsx +2 -2
- 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/meter/meter.tsx +1 -1
- 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 +50 -5
- 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/permission-matrix/permission-matrix.tsx +4 -4
- 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/record-diff/record-diff.tsx +4 -4
- 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 +71 -24
- 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 +80 -34
- 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/sidebar/index.ts +19 -0
- package/src/components/sidebar/meta.ts +25 -0
- package/src/components/sidebar/sidebar.tsx +374 -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/table/table.tsx +3 -3
- 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 +123 -5
- 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/textarea/index.ts +1 -0
- package/src/components/textarea/meta.ts +21 -0
- package/src/components/textarea/textarea.tsx +210 -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-range-picker/time-range-picker.tsx +3 -3
- 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 +81 -15
- 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 +114 -0
- package/src/lib/styles.ts +16 -0
- package/src/registry/blocks.ts +86 -0
- package/src/registry/components.ts +228 -0
- package/src/registry/schema.ts +9 -0
- package/src/blocks/admin-users/admin-users.tsx +0 -251
- package/src/blocks/admin-users/index.ts +0 -1
- package/src/blocks/admin-users/meta.ts +0 -27
- package/src/blocks/ai-chat/ai-chat.tsx +0 -280
- package/src/blocks/ai-chat/index.ts +0 -7
- package/src/blocks/ai-chat/meta.ts +0 -32
- package/src/blocks/dashboard/dashboard.tsx +0 -192
- package/src/blocks/dashboard/index.ts +0 -6
- package/src/blocks/dashboard/meta.ts +0 -18
- package/src/blocks/forgot-password/forgot-password.tsx +0 -158
- package/src/blocks/forgot-password/index.ts +0 -1
- package/src/blocks/forgot-password/meta.ts +0 -18
- package/src/blocks/login/index.ts +0 -1
- package/src/blocks/login/login.tsx +0 -178
- package/src/blocks/login/meta.ts +0 -18
- package/src/blocks/pricing/index.ts +0 -1
- package/src/blocks/pricing/meta.ts +0 -18
- package/src/blocks/pricing/pricing.tsx +0 -176
- package/src/blocks/settings/index.ts +0 -6
- package/src/blocks/settings/meta.ts +0 -29
- package/src/blocks/settings/settings.tsx +0 -317
- package/src/blocks/signup/index.ts +0 -1
- package/src/blocks/signup/meta.ts +0 -18
- package/src/blocks/signup/signup.tsx +0 -240
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { focusRing } from "../../lib/styles.js";
|
|
3
|
+
import { cn } from "../../lib/utils.js";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { useId, useMemo, useRef, useState } from "react";
|
|
6
|
+
//#region src/components/range-dial/range-dial.tsx
|
|
7
|
+
const PREFIX = "dowel-range-dial";
|
|
8
|
+
const DAY = 1440;
|
|
9
|
+
const STYLES = `
|
|
10
|
+
@keyframes ${PREFIX}-fill{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
|
|
11
|
+
.${PREFIX} [data-slot=range-dial-tick][data-entering]{stroke-dasharray:1;animation:${PREFIX}-fill calc(260ms * var(--motion-scale, 1)) cubic-bezier(.22,1,.36,1) calc(var(--d, 0) * 16ms * var(--motion-scale, 1)) both}
|
|
12
|
+
`;
|
|
13
|
+
const clamp = (value, lo, hi) => Math.min(Math.max(value, lo), hi);
|
|
14
|
+
const wrap = (minutes) => (Math.round(minutes) % DAY + DAY) % DAY;
|
|
15
|
+
const gap = (a, b) => {
|
|
16
|
+
const d = Math.abs(a - b) % DAY;
|
|
17
|
+
return Math.min(d, DAY - d);
|
|
18
|
+
};
|
|
19
|
+
function spokenDuration(minutes) {
|
|
20
|
+
const hours = Math.floor(minutes / 60);
|
|
21
|
+
const rest = minutes % 60;
|
|
22
|
+
const parts = [];
|
|
23
|
+
if (hours > 0) parts.push(`${String(hours)} ${hours === 1 ? "hour" : "hours"}`);
|
|
24
|
+
if (rest > 0 || hours === 0) parts.push(`${String(rest)} ${rest === 1 ? "minute" : "minutes"}`);
|
|
25
|
+
return parts.join(" ");
|
|
26
|
+
}
|
|
27
|
+
/** Position on the dial, as percentages of its box, for an angle in minutes. */
|
|
28
|
+
function polar(minutes, radius) {
|
|
29
|
+
const angle = minutes / DAY * 2 * Math.PI;
|
|
30
|
+
const r = radius / 2;
|
|
31
|
+
return {
|
|
32
|
+
left: `${(50 + r * Math.sin(angle)).toFixed(3)}%`,
|
|
33
|
+
top: `${(50 - r * Math.cos(angle)).toFixed(3)}%`
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/** A 24-hour circular two-thumb range, such as a sleep window. */
|
|
37
|
+
function RangeDial({ className, style, value: valueProp, defaultValue = [1380, 390], onValueChange, onValueCommit, snap = 15, density = 48, reach = 56, thumbLabels = ["Start time", "End time"], locale, formatTime, formatDuration = spokenDuration, disabled = false, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, onPointerDown, onPointerMove, onPointerUp, onPointerCancel, ...props }) {
|
|
38
|
+
const [uncontrolled, setUncontrolled] = useState(() => [wrap(defaultValue[0]), wrap(defaultValue[1])]);
|
|
39
|
+
const controlled = valueProp !== void 0;
|
|
40
|
+
const value = controlled ? [wrap(valueProp[0]), wrap(valueProp[1])] : uncontrolled;
|
|
41
|
+
const [start, end] = value;
|
|
42
|
+
const duration = wrap(end - start);
|
|
43
|
+
const [announcement, setAnnouncement] = useState("");
|
|
44
|
+
const [dragging, setDragging] = useState(null);
|
|
45
|
+
const latest = useRef(value);
|
|
46
|
+
const thumbs = useRef([]);
|
|
47
|
+
const filterId = `${PREFIX}-${useId().replace(/:/g, "")}`;
|
|
48
|
+
const timeFormat = useMemo(() => new Intl.DateTimeFormat(locale, {
|
|
49
|
+
hour: "numeric",
|
|
50
|
+
minute: "2-digit",
|
|
51
|
+
timeZone: "UTC"
|
|
52
|
+
}), [locale]);
|
|
53
|
+
const timeText = (minutes) => formatTime ? formatTime(minutes) : timeFormat.format(/* @__PURE__ */ new Date(minutes * 6e4));
|
|
54
|
+
const count = clamp(Math.round(density), 24, 96);
|
|
55
|
+
const ring = clamp(reach, 44, 68);
|
|
56
|
+
const onList = Array.from({ length: count }, (_, index) => index).map((index) => ({
|
|
57
|
+
index,
|
|
58
|
+
offset: wrap(index * DAY / count - start)
|
|
59
|
+
})).filter((tick) => tick.offset <= duration).sort((a, b) => a.offset - b.offset).map((tick) => tick.index);
|
|
60
|
+
const onKey = onList.join(",");
|
|
61
|
+
const [trail, setTrail] = useState(() => ({
|
|
62
|
+
key: onKey,
|
|
63
|
+
entering: new Map(onList.map((index, rank) => [index, rank]))
|
|
64
|
+
}));
|
|
65
|
+
let entering = trail.entering;
|
|
66
|
+
if (trail.key !== onKey) {
|
|
67
|
+
const before = new Set(trail.key ? trail.key.split(",").map(Number) : []);
|
|
68
|
+
const next = /* @__PURE__ */ new Map();
|
|
69
|
+
let rank = 0;
|
|
70
|
+
for (const index of onList) if (!before.has(index)) next.set(index, rank++);
|
|
71
|
+
else if (trail.entering.has(index)) next.set(index, trail.entering.get(index) ?? 0);
|
|
72
|
+
entering = next;
|
|
73
|
+
setTrail({
|
|
74
|
+
key: onKey,
|
|
75
|
+
entering: next
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
const onSet = new Set(onList);
|
|
79
|
+
function setThumb(thumb, minutes) {
|
|
80
|
+
const current = latest.current;
|
|
81
|
+
const next = thumb === 0 ? [wrap(minutes), current[1]] : [current[0], wrap(minutes)];
|
|
82
|
+
latest.current = next;
|
|
83
|
+
if (next[0] === current[0] && next[1] === current[1]) return next;
|
|
84
|
+
if (!controlled) setUncontrolled(next);
|
|
85
|
+
setAnnouncement(formatDuration(wrap(next[1] - next[0])));
|
|
86
|
+
onValueChange?.(next);
|
|
87
|
+
return next;
|
|
88
|
+
}
|
|
89
|
+
function fromPointer(event) {
|
|
90
|
+
const rect = event.currentTarget.getBoundingClientRect();
|
|
91
|
+
if (rect.width === 0 || rect.height === 0) return null;
|
|
92
|
+
const dx = event.clientX - (rect.left + rect.width / 2);
|
|
93
|
+
const dy = event.clientY - (rect.top + rect.height / 2);
|
|
94
|
+
const turn = (Math.atan2(dx, -dy) / (2 * Math.PI) + 1) % 1;
|
|
95
|
+
return wrap(Math.round(turn * DAY / snap) * snap);
|
|
96
|
+
}
|
|
97
|
+
function handlePointerDown(event) {
|
|
98
|
+
onPointerDown?.(event);
|
|
99
|
+
if (disabled || event.button !== 0 || event.defaultPrevented) return;
|
|
100
|
+
const minutes = fromPointer(event);
|
|
101
|
+
if (minutes === null) return;
|
|
102
|
+
event.preventDefault();
|
|
103
|
+
const thumb = gap(minutes, start) <= gap(minutes, end) ? 0 : 1;
|
|
104
|
+
event.currentTarget.setPointerCapture(event.pointerId);
|
|
105
|
+
latest.current = value;
|
|
106
|
+
setDragging(thumb);
|
|
107
|
+
setThumb(thumb, minutes);
|
|
108
|
+
thumbs.current[thumb]?.focus({ preventScroll: true });
|
|
109
|
+
}
|
|
110
|
+
function handlePointerMove(event) {
|
|
111
|
+
onPointerMove?.(event);
|
|
112
|
+
if (dragging === null) return;
|
|
113
|
+
const minutes = fromPointer(event);
|
|
114
|
+
if (minutes !== null) setThumb(dragging, minutes);
|
|
115
|
+
}
|
|
116
|
+
function handlePointerEnd(event) {
|
|
117
|
+
if (event.type === "pointerup") onPointerUp?.(event);
|
|
118
|
+
else onPointerCancel?.(event);
|
|
119
|
+
if (dragging === null) return;
|
|
120
|
+
setDragging(null);
|
|
121
|
+
onValueCommit?.(latest.current);
|
|
122
|
+
}
|
|
123
|
+
function handleKeyDown(thumb, event) {
|
|
124
|
+
if (disabled) return;
|
|
125
|
+
const current = value[thumb];
|
|
126
|
+
let next;
|
|
127
|
+
switch (event.key) {
|
|
128
|
+
case "ArrowRight":
|
|
129
|
+
case "ArrowUp":
|
|
130
|
+
next = Math.floor(current / snap) * snap + snap;
|
|
131
|
+
break;
|
|
132
|
+
case "ArrowLeft":
|
|
133
|
+
case "ArrowDown":
|
|
134
|
+
next = Math.ceil(current / snap) * snap - snap;
|
|
135
|
+
break;
|
|
136
|
+
case "PageUp":
|
|
137
|
+
next = current + 60;
|
|
138
|
+
break;
|
|
139
|
+
case "PageDown":
|
|
140
|
+
next = current - 60;
|
|
141
|
+
break;
|
|
142
|
+
case "Home":
|
|
143
|
+
next = 0;
|
|
144
|
+
break;
|
|
145
|
+
case "End":
|
|
146
|
+
next = DAY - snap;
|
|
147
|
+
break;
|
|
148
|
+
default: return;
|
|
149
|
+
}
|
|
150
|
+
event.preventDefault();
|
|
151
|
+
latest.current = value;
|
|
152
|
+
const committed = setThumb(thumb, next);
|
|
153
|
+
if (committed[thumb] !== current) onValueCommit?.(committed);
|
|
154
|
+
}
|
|
155
|
+
const orbit = ring + 10.67;
|
|
156
|
+
const hours = Math.floor(duration / 60);
|
|
157
|
+
const mins = String(duration % 60).padStart(2, "0");
|
|
158
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
159
|
+
role: "group",
|
|
160
|
+
"aria-label": ariaLabelledBy ? ariaLabel : ariaLabel ?? "Time range",
|
|
161
|
+
"aria-labelledby": ariaLabelledBy,
|
|
162
|
+
"aria-disabled": disabled || void 0,
|
|
163
|
+
"data-slot": "range-dial",
|
|
164
|
+
"data-dragging": dragging === null ? void 0 : "",
|
|
165
|
+
"data-disabled": disabled ? "" : void 0,
|
|
166
|
+
className: cn(PREFIX, "relative aspect-square w-72 touch-none text-foreground select-none", disabled ? "cursor-not-allowed opacity-55" : "cursor-grab data-dragging:cursor-grabbing", className),
|
|
167
|
+
style: {
|
|
168
|
+
containerType: "inline-size",
|
|
169
|
+
direction: "ltr",
|
|
170
|
+
...style
|
|
171
|
+
},
|
|
172
|
+
onPointerDown: handlePointerDown,
|
|
173
|
+
onPointerMove: handlePointerMove,
|
|
174
|
+
onPointerUp: handlePointerEnd,
|
|
175
|
+
onPointerCancel: handlePointerEnd,
|
|
176
|
+
...props,
|
|
177
|
+
children: [
|
|
178
|
+
/* @__PURE__ */ jsx("style", {
|
|
179
|
+
href: PREFIX,
|
|
180
|
+
precedence: "dowel",
|
|
181
|
+
children: STYLES
|
|
182
|
+
}),
|
|
183
|
+
/* @__PURE__ */ jsx("svg", {
|
|
184
|
+
viewBox: "0 0 200 200",
|
|
185
|
+
"aria-hidden": "true",
|
|
186
|
+
"data-slot": "range-dial-ticks",
|
|
187
|
+
className: "absolute inset-0 size-full",
|
|
188
|
+
children: Array.from({ length: count }, (_, index) => {
|
|
189
|
+
const angle = index / count * 2 * Math.PI;
|
|
190
|
+
const on = onSet.has(index);
|
|
191
|
+
const outer = on ? ring + 19 : ring + 9;
|
|
192
|
+
const rank = entering.get(index);
|
|
193
|
+
return /* @__PURE__ */ jsx("line", {
|
|
194
|
+
"data-slot": "range-dial-tick",
|
|
195
|
+
"data-on": on ? "" : void 0,
|
|
196
|
+
"data-entering": on && rank !== void 0 ? "" : void 0,
|
|
197
|
+
x1: 100 + ring * Math.sin(angle),
|
|
198
|
+
y1: 100 - ring * Math.cos(angle),
|
|
199
|
+
x2: 100 + outer * Math.sin(angle),
|
|
200
|
+
y2: 100 - outer * Math.cos(angle),
|
|
201
|
+
pathLength: 1,
|
|
202
|
+
stroke: "currentColor",
|
|
203
|
+
strokeWidth: 2,
|
|
204
|
+
strokeLinecap: "round",
|
|
205
|
+
opacity: on ? .9 : .24,
|
|
206
|
+
style: { "--d": rank ?? 0 }
|
|
207
|
+
}, index);
|
|
208
|
+
})
|
|
209
|
+
}),
|
|
210
|
+
/* @__PURE__ */ jsx("svg", {
|
|
211
|
+
width: "0",
|
|
212
|
+
height: "0",
|
|
213
|
+
"aria-hidden": "true",
|
|
214
|
+
className: "absolute",
|
|
215
|
+
children: /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs("filter", {
|
|
216
|
+
id: filterId,
|
|
217
|
+
children: [
|
|
218
|
+
/* @__PURE__ */ jsx("feGaussianBlur", {
|
|
219
|
+
in: "SourceGraphic",
|
|
220
|
+
stdDeviation: "4",
|
|
221
|
+
result: "blur"
|
|
222
|
+
}),
|
|
223
|
+
/* @__PURE__ */ jsx("feColorMatrix", {
|
|
224
|
+
in: "blur",
|
|
225
|
+
mode: "matrix",
|
|
226
|
+
values: "1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 16 -6.17",
|
|
227
|
+
result: "goo"
|
|
228
|
+
}),
|
|
229
|
+
/* @__PURE__ */ jsx("feComposite", {
|
|
230
|
+
in: "SourceGraphic",
|
|
231
|
+
in2: "goo",
|
|
232
|
+
operator: "over"
|
|
233
|
+
})
|
|
234
|
+
]
|
|
235
|
+
}) })
|
|
236
|
+
}),
|
|
237
|
+
/* @__PURE__ */ jsx("div", {
|
|
238
|
+
"aria-hidden": "true",
|
|
239
|
+
"data-slot": "range-dial-knobs",
|
|
240
|
+
className: "pointer-events-none absolute inset-0",
|
|
241
|
+
style: { filter: `url(#${filterId}) drop-shadow(0 2px 8px var(--shadow-color)) drop-shadow(0 1px 3px var(--shadow-color))` },
|
|
242
|
+
children: value.map((minutes, thumb) => /* @__PURE__ */ jsx("span", {
|
|
243
|
+
"data-slot": "range-dial-knob",
|
|
244
|
+
className: "absolute flex size-[6.94cqi] -translate-x-1/2 -translate-y-1/2 items-center justify-center rounded-full bg-card",
|
|
245
|
+
style: polar(minutes, orbit),
|
|
246
|
+
children: thumb === 0 ? /* @__PURE__ */ jsx("span", {
|
|
247
|
+
"data-slot": "range-dial-pip",
|
|
248
|
+
className: "size-1/4 rounded-full bg-foreground/50"
|
|
249
|
+
}) : null
|
|
250
|
+
}, thumb))
|
|
251
|
+
}),
|
|
252
|
+
value.map((minutes, thumb) => /* @__PURE__ */ jsx("span", {
|
|
253
|
+
ref: (node) => {
|
|
254
|
+
thumbs.current[thumb] = node;
|
|
255
|
+
},
|
|
256
|
+
role: "slider",
|
|
257
|
+
tabIndex: disabled ? -1 : 0,
|
|
258
|
+
"aria-label": thumbLabels[thumb],
|
|
259
|
+
"aria-valuemin": 0,
|
|
260
|
+
"aria-valuemax": 1439,
|
|
261
|
+
"aria-valuenow": minutes,
|
|
262
|
+
"aria-valuetext": timeText(minutes),
|
|
263
|
+
"aria-disabled": disabled || void 0,
|
|
264
|
+
"data-slot": "range-dial-thumb",
|
|
265
|
+
"data-thumb": thumb === 0 ? "start" : "end",
|
|
266
|
+
className: cn("absolute size-[9cqi] -translate-x-1/2 -translate-y-1/2 rounded-full", focusRing),
|
|
267
|
+
style: polar(minutes, orbit),
|
|
268
|
+
onKeyDown: (event) => {
|
|
269
|
+
handleKeyDown(thumb, event);
|
|
270
|
+
}
|
|
271
|
+
}, thumb)),
|
|
272
|
+
/* @__PURE__ */ jsxs("div", {
|
|
273
|
+
"data-slot": "range-dial-readout",
|
|
274
|
+
className: "pointer-events-none absolute inset-0 flex items-center justify-center font-medium tracking-[-0.045em] tabular-nums",
|
|
275
|
+
style: { fontSize: "11.8cqi" },
|
|
276
|
+
children: [/* @__PURE__ */ jsxs("span", {
|
|
277
|
+
"aria-hidden": "true",
|
|
278
|
+
children: [
|
|
279
|
+
hours,
|
|
280
|
+
/* @__PURE__ */ jsx("span", {
|
|
281
|
+
className: "ms-[0.09em] me-[0.18em] text-[0.7em] opacity-42",
|
|
282
|
+
children: "h"
|
|
283
|
+
}),
|
|
284
|
+
mins,
|
|
285
|
+
/* @__PURE__ */ jsx("span", {
|
|
286
|
+
className: "ms-[0.09em] text-[0.7em] opacity-42",
|
|
287
|
+
children: "m"
|
|
288
|
+
})
|
|
289
|
+
]
|
|
290
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
291
|
+
className: "sr-only",
|
|
292
|
+
children: formatDuration(duration)
|
|
293
|
+
})]
|
|
294
|
+
}),
|
|
295
|
+
/* @__PURE__ */ jsx("span", {
|
|
296
|
+
"aria-live": "polite",
|
|
297
|
+
"aria-atomic": "true",
|
|
298
|
+
className: "sr-only",
|
|
299
|
+
"data-slot": "range-dial-status",
|
|
300
|
+
children: announcement
|
|
301
|
+
})
|
|
302
|
+
]
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
//#endregion
|
|
306
|
+
export { RangeDial };
|
|
307
|
+
|
|
308
|
+
//# sourceMappingURL=range-dial.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range-dial.js","names":[],"sources":["../../../src/components/range-dial/range-dial.tsx"],"sourcesContent":["\"use client\";\n\n// Ported from bencho Range dial (MIT, © 2026 Lorenzo Cabra). See THIRD_PARTY_NOTICES.md.\nimport {\n useId,\n useMemo,\n useRef,\n useState,\n type ComponentPropsWithRef,\n type CSSProperties,\n type KeyboardEvent,\n type PointerEvent,\n} from \"react\";\n\nimport { focusRing } from \"@/lib/styles\";\nimport { cn } from \"@/lib/utils\";\n\n/*\n * A 24-hour dial with two thumbs: the window is the clockwise arc from the\n * start thumb to the end thumb, and it may wrap past midnight. A ring of ticks\n * shows the window (long and dark inside, short and faint outside), and the\n * duration sits in the middle.\n *\n * The source was pointer-only. Here each thumb is a focusable role=\"slider\"\n * (arrows step by `snap`, Page Up/Down by an hour, Home/End jump to midnight\n * and the last step of the day, all wrapping round the clock), and a polite\n * live region announces the new duration once something has changed.\n *\n * The dial is a clock, not reading order: it keeps `direction: ltr` and\n * clockwise stays clockwise in right-to-left layouts, and so do the arrow keys\n * (up/right always add time, as on any circular slider).\n *\n * There is no gesture velocity to carry, so no `motion`: the thumbs follow the\n * pointer directly and ticks draw in with a hoisted keyframe whose duration and\n * stagger run through --motion-scale.\n */\n\nconst PREFIX = \"dowel-range-dial\";\nconst DAY = 1440;\n\nconst STYLES = `\n@keyframes ${PREFIX}-fill{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}\n.${PREFIX} [data-slot=range-dial-tick][data-entering]{stroke-dasharray:1;animation:${PREFIX}-fill calc(260ms * var(--motion-scale, 1)) cubic-bezier(.22,1,.36,1) calc(var(--d, 0) * 16ms * var(--motion-scale, 1)) both}\n`;\n\nexport type RangeDialValue = [start: number, end: number];\n\nexport interface RangeDialProps extends Omit<\n ComponentPropsWithRef<\"div\">,\n \"defaultValue\" | \"onChange\" | \"children\"\n> {\n /** `[start, end]` in minutes after midnight, 0–1439. The window runs clockwise. */\n value?: RangeDialValue;\n /** Uncontrolled start value. Defaults to 23:00 → 06:30 (7h30m). */\n defaultValue?: RangeDialValue;\n /** Called on every change: while dragging and per key press. */\n onValueChange?: (value: RangeDialValue) => void;\n /** Called when an interaction ends: pointer released or key press. */\n onValueCommit?: (value: RangeDialValue) => void;\n /** Step in minutes for the pointer and the arrow keys. */\n snap?: 5 | 15 | 30;\n /** Number of ticks round the dial, 24–96 (the source's slider stepped by 8). */\n density?: number;\n /** Tick ring radius in viewBox units, 44–68. Scales the whole dial geometry. */\n reach?: number;\n /** Accessible names of the two thumbs. */\n thumbLabels?: [start: string, end: string];\n /** Locale for the default time format. */\n locale?: string;\n /** Formats a time (minutes after midnight) for `aria-valuetext`. */\n formatTime?: (minutes: number) => string;\n /** Formats a duration in minutes for the live announcement. */\n formatDuration?: (minutes: number) => string;\n disabled?: boolean;\n}\n\nconst clamp = (value: number, lo: number, hi: number) => Math.min(Math.max(value, lo), hi);\nconst wrap = (minutes: number) => ((Math.round(minutes) % DAY) + DAY) % DAY;\nconst gap = (a: number, b: number) => {\n const d = Math.abs(a - b) % DAY;\n return Math.min(d, DAY - d);\n};\n\nfunction spokenDuration(minutes: number): string {\n const hours = Math.floor(minutes / 60);\n const rest = minutes % 60;\n const parts: string[] = [];\n if (hours > 0) parts.push(`${String(hours)} ${hours === 1 ? \"hour\" : \"hours\"}`);\n if (rest > 0 || hours === 0)\n parts.push(`${String(rest)} ${rest === 1 ? \"minute\" : \"minutes\"}`);\n return parts.join(\" \");\n}\n\n/** Position on the dial, as percentages of its box, for an angle in minutes. */\nfunction polar(minutes: number, radius: number): { left: string; top: string } {\n const angle = (minutes / DAY) * 2 * Math.PI;\n const r = radius / 2; // viewBox units (of 200) to percent\n return {\n left: `${(50 + r * Math.sin(angle)).toFixed(3)}%`,\n top: `${(50 - r * Math.cos(angle)).toFixed(3)}%`,\n };\n}\n\ninterface Trail {\n key: string;\n /** Ticks drawing in, with their stagger rank along the arc. */\n entering: Map<number, number>;\n}\n\n/** A 24-hour circular two-thumb range, such as a sleep window. */\nexport function RangeDial({\n className,\n style,\n value: valueProp,\n defaultValue = [23 * 60, 6 * 60 + 30],\n onValueChange,\n onValueCommit,\n snap = 15,\n density = 48,\n reach = 56,\n thumbLabels = [\"Start time\", \"End time\"],\n locale,\n formatTime,\n formatDuration = spokenDuration,\n disabled = false,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n onPointerDown,\n onPointerMove,\n onPointerUp,\n onPointerCancel,\n ...props\n}: RangeDialProps) {\n const [uncontrolled, setUncontrolled] = useState<RangeDialValue>(() => [\n wrap(defaultValue[0]),\n wrap(defaultValue[1]),\n ]);\n const controlled = valueProp !== undefined;\n const value: RangeDialValue = controlled\n ? [wrap(valueProp[0]), wrap(valueProp[1])]\n : uncontrolled;\n const [start, end] = value;\n const duration = wrap(end - start);\n\n const [announcement, setAnnouncement] = useState(\"\");\n const [dragging, setDragging] = useState<0 | 1 | null>(null);\n const latest = useRef(value);\n const thumbs = useRef<(HTMLSpanElement | null)[]>([]);\n const filterId = `${PREFIX}-${useId().replace(/:/g, \"\")}`;\n\n const timeFormat = useMemo(\n () =>\n new Intl.DateTimeFormat(locale, { hour: \"numeric\", minute: \"2-digit\", timeZone: \"UTC\" }),\n [locale],\n );\n const timeText = (minutes: number) =>\n formatTime ? formatTime(minutes) : timeFormat.format(new Date(minutes * 60_000));\n\n /* Ticks -------------------------------------------------------------- */\n const count = clamp(Math.round(density), 24, 96);\n const ring = clamp(reach, 44, 68);\n const onList = Array.from({ length: count }, (_, index) => index)\n .map((index) => ({ index, offset: wrap((index * DAY) / count - start) }))\n .filter((tick) => tick.offset <= duration)\n .sort((a, b) => a.offset - b.offset)\n .map((tick) => tick.index);\n const onKey = onList.join(\",\");\n\n // Ticks that have just joined the window draw in, one after another along\n // the arc. Derived from the previous render's set (React's \"adjust state\n // while rendering\" pattern), so a tick already on never replays.\n const [trail, setTrail] = useState<Trail>(() => ({\n key: onKey,\n entering: new Map(onList.map((index, rank) => [index, rank])),\n }));\n let entering = trail.entering;\n if (trail.key !== onKey) {\n const before = new Set(trail.key ? trail.key.split(\",\").map(Number) : []);\n const next = new Map<number, number>();\n let rank = 0;\n for (const index of onList) {\n if (!before.has(index)) next.set(index, rank++);\n else if (trail.entering.has(index)) next.set(index, trail.entering.get(index) ?? 0);\n }\n entering = next;\n setTrail({ key: onKey, entering: next });\n }\n const onSet = new Set(onList);\n\n /* Changes ------------------------------------------------------------ */\n function setThumb(thumb: 0 | 1, minutes: number): RangeDialValue {\n const current = latest.current;\n const next: RangeDialValue =\n thumb === 0 ? [wrap(minutes), current[1]] : [current[0], wrap(minutes)];\n latest.current = next;\n if (next[0] === current[0] && next[1] === current[1]) return next;\n if (!controlled) setUncontrolled(next);\n setAnnouncement(formatDuration(wrap(next[1] - next[0])));\n onValueChange?.(next);\n return next;\n }\n\n function fromPointer(event: PointerEvent<HTMLDivElement>): number | null {\n const rect = event.currentTarget.getBoundingClientRect();\n if (rect.width === 0 || rect.height === 0) return null;\n const dx = event.clientX - (rect.left + rect.width / 2);\n const dy = event.clientY - (rect.top + rect.height / 2);\n const turn = (Math.atan2(dx, -dy) / (2 * Math.PI) + 1) % 1;\n return wrap(Math.round((turn * DAY) / snap) * snap);\n }\n\n function handlePointerDown(event: PointerEvent<HTMLDivElement>) {\n onPointerDown?.(event);\n if (disabled || event.button !== 0 || event.defaultPrevented) return;\n const minutes = fromPointer(event);\n if (minutes === null) return;\n event.preventDefault();\n const thumb: 0 | 1 = gap(minutes, start) <= gap(minutes, end) ? 0 : 1;\n event.currentTarget.setPointerCapture(event.pointerId);\n latest.current = value;\n setDragging(thumb);\n setThumb(thumb, minutes);\n thumbs.current[thumb]?.focus({ preventScroll: true });\n }\n\n function handlePointerMove(event: PointerEvent<HTMLDivElement>) {\n onPointerMove?.(event);\n if (dragging === null) return;\n const minutes = fromPointer(event);\n if (minutes !== null) setThumb(dragging, minutes);\n }\n\n function handlePointerEnd(event: PointerEvent<HTMLDivElement>) {\n if (event.type === \"pointerup\") onPointerUp?.(event);\n else onPointerCancel?.(event);\n if (dragging === null) return;\n setDragging(null);\n onValueCommit?.(latest.current);\n }\n\n function handleKeyDown(thumb: 0 | 1, event: KeyboardEvent<HTMLSpanElement>) {\n if (disabled) return;\n const current = value[thumb];\n let next: number;\n switch (event.key) {\n case \"ArrowRight\":\n case \"ArrowUp\":\n next = Math.floor(current / snap) * snap + snap;\n break;\n case \"ArrowLeft\":\n case \"ArrowDown\":\n next = Math.ceil(current / snap) * snap - snap;\n break;\n case \"PageUp\":\n next = current + 60;\n break;\n case \"PageDown\":\n next = current - 60;\n break;\n case \"Home\":\n next = 0;\n break;\n case \"End\":\n next = DAY - snap;\n break;\n default:\n return;\n }\n event.preventDefault();\n latest.current = value;\n const committed = setThumb(thumb, next);\n if (committed[thumb] !== current) onValueCommit?.(committed);\n }\n\n /* Render ------------------------------------------------------------- */\n const orbit = ring + 10.67; // the knobs ride just outside the short ticks\n const hours = Math.floor(duration / 60);\n const mins = String(duration % 60).padStart(2, \"0\");\n\n return (\n <div\n role=\"group\"\n aria-label={ariaLabelledBy ? ariaLabel : (ariaLabel ?? \"Time range\")}\n aria-labelledby={ariaLabelledBy}\n aria-disabled={disabled || undefined}\n data-slot=\"range-dial\"\n data-dragging={dragging === null ? undefined : \"\"}\n data-disabled={disabled ? \"\" : undefined}\n className={cn(\n PREFIX,\n \"relative aspect-square w-72 touch-none text-foreground select-none\",\n disabled\n ? \"cursor-not-allowed opacity-55\"\n : \"cursor-grab data-dragging:cursor-grabbing\",\n className,\n )}\n style={{ containerType: \"inline-size\", direction: \"ltr\", ...style }}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerEnd}\n onPointerCancel={handlePointerEnd}\n {...props}\n >\n <style href={PREFIX} precedence=\"dowel\">\n {STYLES}\n </style>\n <svg\n viewBox=\"0 0 200 200\"\n aria-hidden=\"true\"\n data-slot=\"range-dial-ticks\"\n className=\"absolute inset-0 size-full\"\n >\n {Array.from({ length: count }, (_, index) => {\n const angle = (index / count) * 2 * Math.PI;\n const on = onSet.has(index);\n const outer = on ? ring + 19 : ring + 9;\n const rank = entering.get(index);\n return (\n <line\n key={index}\n data-slot=\"range-dial-tick\"\n data-on={on ? \"\" : undefined}\n data-entering={on && rank !== undefined ? \"\" : undefined}\n x1={100 + ring * Math.sin(angle)}\n y1={100 - ring * Math.cos(angle)}\n x2={100 + outer * Math.sin(angle)}\n y2={100 - outer * Math.cos(angle)}\n pathLength={1}\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n opacity={on ? 0.9 : 0.24}\n style={{ \"--d\": rank ?? 0 } as CSSProperties}\n />\n );\n })}\n </svg>\n\n <svg width=\"0\" height=\"0\" aria-hidden=\"true\" className=\"absolute\">\n <defs>\n <filter id={filterId}>\n <feGaussianBlur in=\"SourceGraphic\" stdDeviation=\"4\" result=\"blur\" />\n <feColorMatrix\n in=\"blur\"\n mode=\"matrix\"\n values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 16 -6.17\"\n result=\"goo\"\n />\n <feComposite in=\"SourceGraphic\" in2=\"goo\" operator=\"over\" />\n </filter>\n </defs>\n </svg>\n <div\n aria-hidden=\"true\"\n data-slot=\"range-dial-knobs\"\n className=\"pointer-events-none absolute inset-0\"\n style={{\n filter: `url(#${filterId}) drop-shadow(0 2px 8px var(--shadow-color)) drop-shadow(0 1px 3px var(--shadow-color))`,\n }}\n >\n {value.map((minutes, thumb) => (\n <span\n key={thumb}\n data-slot=\"range-dial-knob\"\n className=\"absolute flex size-[6.94cqi] -translate-x-1/2 -translate-y-1/2 items-center justify-center rounded-full bg-card\"\n style={polar(minutes, orbit)}\n >\n {thumb === 0 ? (\n <span\n data-slot=\"range-dial-pip\"\n className=\"size-1/4 rounded-full bg-foreground/50\"\n />\n ) : null}\n </span>\n ))}\n </div>\n\n {value.map((minutes, thumb) => (\n <span\n key={thumb}\n ref={(node) => {\n thumbs.current[thumb] = node;\n }}\n role=\"slider\"\n tabIndex={disabled ? -1 : 0}\n aria-label={thumbLabels[thumb]}\n aria-valuemin={0}\n aria-valuemax={DAY - 1}\n aria-valuenow={minutes}\n aria-valuetext={timeText(minutes)}\n aria-disabled={disabled || undefined}\n data-slot=\"range-dial-thumb\"\n data-thumb={thumb === 0 ? \"start\" : \"end\"}\n className={cn(\n \"absolute size-[9cqi] -translate-x-1/2 -translate-y-1/2 rounded-full\",\n focusRing,\n )}\n style={polar(minutes, orbit)}\n onKeyDown={(event) => {\n handleKeyDown(thumb as 0 | 1, event);\n }}\n />\n ))}\n\n <div\n data-slot=\"range-dial-readout\"\n className=\"pointer-events-none absolute inset-0 flex items-center justify-center font-medium tracking-[-0.045em] tabular-nums\"\n style={{ fontSize: \"11.8cqi\" }}\n >\n <span aria-hidden=\"true\">\n {hours}\n <span className=\"ms-[0.09em] me-[0.18em] text-[0.7em] opacity-42\">h</span>\n {mins}\n <span className=\"ms-[0.09em] text-[0.7em] opacity-42\">m</span>\n </span>\n <span className=\"sr-only\">{formatDuration(duration)}</span>\n </div>\n <span\n aria-live=\"polite\"\n aria-atomic=\"true\"\n className=\"sr-only\"\n data-slot=\"range-dial-status\"\n >\n {announcement}\n </span>\n </div>\n );\n}\n"],"mappings":";;;;;;AAqCA,MAAM,SAAS;AACf,MAAM,MAAM;AAEZ,MAAM,SAAS;aACF,OAAO;GACjB,OAAO,2EAA2E,OAAO;;AAkC5F,MAAM,SAAS,OAAe,IAAY,OAAe,KAAK,IAAI,KAAK,IAAI,OAAO,EAAE,GAAG,EAAE;AACzF,MAAM,QAAQ,aAAsB,KAAK,MAAM,OAAO,IAAI,MAAO,OAAO;AACxE,MAAM,OAAO,GAAW,MAAc;CACpC,MAAM,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI;CAC5B,OAAO,KAAK,IAAI,GAAG,MAAM,CAAC;AAC5B;AAEA,SAAS,eAAe,SAAyB;CAC/C,MAAM,QAAQ,KAAK,MAAM,UAAU,EAAE;CACrC,MAAM,OAAO,UAAU;CACvB,MAAM,QAAkB,CAAC;CACzB,IAAI,QAAQ,GAAG,MAAM,KAAK,GAAG,OAAO,KAAK,EAAE,GAAG,UAAU,IAAI,SAAS,SAAS;CAC9E,IAAI,OAAO,KAAK,UAAU,GACxB,MAAM,KAAK,GAAG,OAAO,IAAI,EAAE,GAAG,SAAS,IAAI,WAAW,WAAW;CACnE,OAAO,MAAM,KAAK,GAAG;AACvB;;AAGA,SAAS,MAAM,SAAiB,QAA+C;CAC7E,MAAM,QAAS,UAAU,MAAO,IAAI,KAAK;CACzC,MAAM,IAAI,SAAS;CACnB,OAAO;EACL,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,EAAA,CAAG,QAAQ,CAAC,EAAE;EAC/C,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,EAAA,CAAG,QAAQ,CAAC,EAAE;CAChD;AACF;;AASA,SAAgB,UAAU,EACxB,WACA,OACA,OAAO,WACP,eAAe,CAAC,MAAS,GAAW,GACpC,eACA,eACA,OAAO,IACP,UAAU,IACV,QAAQ,IACR,cAAc,CAAC,cAAc,UAAU,GACvC,QACA,YACA,iBAAiB,gBACjB,WAAW,OACX,cAAc,WACd,mBAAmB,gBACnB,eACA,eACA,aACA,iBACA,GAAG,SACc;CACjB,MAAM,CAAC,cAAc,mBAAmB,eAA+B,CACrE,KAAK,aAAa,EAAE,GACpB,KAAK,aAAa,EAAE,CACtB,CAAC;CACD,MAAM,aAAa,cAAc,KAAA;CACjC,MAAM,QAAwB,aAC1B,CAAC,KAAK,UAAU,EAAE,GAAG,KAAK,UAAU,EAAE,CAAC,IACvC;CACJ,MAAM,CAAC,OAAO,OAAO;CACrB,MAAM,WAAW,KAAK,MAAM,KAAK;CAEjC,MAAM,CAAC,cAAc,mBAAmB,SAAS,EAAE;CACnD,MAAM,CAAC,UAAU,eAAe,SAAuB,IAAI;CAC3D,MAAM,SAAS,OAAO,KAAK;CAC3B,MAAM,SAAS,OAAmC,CAAC,CAAC;CACpD,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC,QAAQ,MAAM,EAAE;CAEtD,MAAM,aAAa,cAEf,IAAI,KAAK,eAAe,QAAQ;EAAE,MAAM;EAAW,QAAQ;EAAW,UAAU;CAAM,CAAC,GACzF,CAAC,MAAM,CACT;CACA,MAAM,YAAY,YAChB,aAAa,WAAW,OAAO,IAAI,WAAW,uBAAO,IAAI,KAAK,UAAU,GAAM,CAAC;CAGjF,MAAM,QAAQ,MAAM,KAAK,MAAM,OAAO,GAAG,IAAI,EAAE;CAC/C,MAAM,OAAO,MAAM,OAAO,IAAI,EAAE;CAChC,MAAM,SAAS,MAAM,KAAK,EAAE,QAAQ,MAAM,IAAI,GAAG,UAAU,KAAK,CAAC,CAC9D,KAAK,WAAW;EAAE;EAAO,QAAQ,KAAM,QAAQ,MAAO,QAAQ,KAAK;CAAE,EAAE,CAAC,CACxE,QAAQ,SAAS,KAAK,UAAU,QAAQ,CAAC,CACzC,MAAM,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CACnC,KAAK,SAAS,KAAK,KAAK;CAC3B,MAAM,QAAQ,OAAO,KAAK,GAAG;CAK7B,MAAM,CAAC,OAAO,YAAY,gBAAuB;EAC/C,KAAK;EACL,UAAU,IAAI,IAAI,OAAO,KAAK,OAAO,SAAS,CAAC,OAAO,IAAI,CAAC,CAAC;CAC9D,EAAE;CACF,IAAI,WAAW,MAAM;CACrB,IAAI,MAAM,QAAQ,OAAO;EACvB,MAAM,SAAS,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,MAAM,GAAG,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC;EACxE,MAAM,uBAAO,IAAI,IAAoB;EACrC,IAAI,OAAO;EACX,KAAK,MAAM,SAAS,QAClB,IAAI,CAAC,OAAO,IAAI,KAAK,GAAG,KAAK,IAAI,OAAO,MAAM;OACzC,IAAI,MAAM,SAAS,IAAI,KAAK,GAAG,KAAK,IAAI,OAAO,MAAM,SAAS,IAAI,KAAK,KAAK,CAAC;EAEpF,WAAW;EACX,SAAS;GAAE,KAAK;GAAO,UAAU;EAAK,CAAC;CACzC;CACA,MAAM,QAAQ,IAAI,IAAI,MAAM;CAG5B,SAAS,SAAS,OAAc,SAAiC;EAC/D,MAAM,UAAU,OAAO;EACvB,MAAM,OACJ,UAAU,IAAI,CAAC,KAAK,OAAO,GAAG,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK,OAAO,CAAC;EACxE,OAAO,UAAU;EACjB,IAAI,KAAK,OAAO,QAAQ,MAAM,KAAK,OAAO,QAAQ,IAAI,OAAO;EAC7D,IAAI,CAAC,YAAY,gBAAgB,IAAI;EACrC,gBAAgB,eAAe,KAAK,KAAK,KAAK,KAAK,EAAE,CAAC,CAAC;EACvD,gBAAgB,IAAI;EACpB,OAAO;CACT;CAEA,SAAS,YAAY,OAAoD;EACvE,MAAM,OAAO,MAAM,cAAc,sBAAsB;EACvD,IAAI,KAAK,UAAU,KAAK,KAAK,WAAW,GAAG,OAAO;EAClD,MAAM,KAAK,MAAM,WAAW,KAAK,OAAO,KAAK,QAAQ;EACrD,MAAM,KAAK,MAAM,WAAW,KAAK,MAAM,KAAK,SAAS;EACrD,MAAM,QAAQ,KAAK,MAAM,IAAI,CAAC,EAAE,KAAK,IAAI,KAAK,MAAM,KAAK;EACzD,OAAO,KAAK,KAAK,MAAO,OAAO,MAAO,IAAI,IAAI,IAAI;CACpD;CAEA,SAAS,kBAAkB,OAAqC;EAC9D,gBAAgB,KAAK;EACrB,IAAI,YAAY,MAAM,WAAW,KAAK,MAAM,kBAAkB;EAC9D,MAAM,UAAU,YAAY,KAAK;EACjC,IAAI,YAAY,MAAM;EACtB,MAAM,eAAe;EACrB,MAAM,QAAe,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,GAAG,IAAI,IAAI;EACpE,MAAM,cAAc,kBAAkB,MAAM,SAAS;EACrD,OAAO,UAAU;EACjB,YAAY,KAAK;EACjB,SAAS,OAAO,OAAO;EACvB,OAAO,QAAQ,MAAM,EAAE,MAAM,EAAE,eAAe,KAAK,CAAC;CACtD;CAEA,SAAS,kBAAkB,OAAqC;EAC9D,gBAAgB,KAAK;EACrB,IAAI,aAAa,MAAM;EACvB,MAAM,UAAU,YAAY,KAAK;EACjC,IAAI,YAAY,MAAM,SAAS,UAAU,OAAO;CAClD;CAEA,SAAS,iBAAiB,OAAqC;EAC7D,IAAI,MAAM,SAAS,aAAa,cAAc,KAAK;OAC9C,kBAAkB,KAAK;EAC5B,IAAI,aAAa,MAAM;EACvB,YAAY,IAAI;EAChB,gBAAgB,OAAO,OAAO;CAChC;CAEA,SAAS,cAAc,OAAc,OAAuC;EAC1E,IAAI,UAAU;EACd,MAAM,UAAU,MAAM;EACtB,IAAI;EACJ,QAAQ,MAAM,KAAd;GACE,KAAK;GACL,KAAK;IACH,OAAO,KAAK,MAAM,UAAU,IAAI,IAAI,OAAO;IAC3C;GACF,KAAK;GACL,KAAK;IACH,OAAO,KAAK,KAAK,UAAU,IAAI,IAAI,OAAO;IAC1C;GACF,KAAK;IACH,OAAO,UAAU;IACjB;GACF,KAAK;IACH,OAAO,UAAU;IACjB;GACF,KAAK;IACH,OAAO;IACP;GACF,KAAK;IACH,OAAO,MAAM;IACb;GACF,SACE;EACJ;EACA,MAAM,eAAe;EACrB,OAAO,UAAU;EACjB,MAAM,YAAY,SAAS,OAAO,IAAI;EACtC,IAAI,UAAU,WAAW,SAAS,gBAAgB,SAAS;CAC7D;CAGA,MAAM,QAAQ,OAAO;CACrB,MAAM,QAAQ,KAAK,MAAM,WAAW,EAAE;CACtC,MAAM,OAAO,OAAO,WAAW,EAAE,CAAC,CAAC,SAAS,GAAG,GAAG;CAElD,OACE,qBAAC,OAAD;EACE,MAAK;EACL,cAAY,iBAAiB,YAAa,aAAa;EACvD,mBAAiB;EACjB,iBAAe,YAAY,KAAA;EAC3B,aAAU;EACV,iBAAe,aAAa,OAAO,KAAA,IAAY;EAC/C,iBAAe,WAAW,KAAK,KAAA;EAC/B,WAAW,GACT,QACA,sEACA,WACI,kCACA,6CACJ,SACF;EACA,OAAO;GAAE,eAAe;GAAe,WAAW;GAAO,GAAG;EAAM;EAClE,eAAe;EACf,eAAe;EACf,aAAa;EACb,iBAAiB;EACjB,GAAI;EArBN,UAAA;GAuBE,oBAAC,SAAD;IAAO,MAAM;IAAQ,YAAW;IAC7B,UAAA;GACI,CAAA;GACP,oBAAC,OAAD;IACE,SAAQ;IACR,eAAY;IACZ,aAAU;IACV,WAAU;IAET,UAAA,MAAM,KAAK,EAAE,QAAQ,MAAM,IAAI,GAAG,UAAU;KAC3C,MAAM,QAAS,QAAQ,QAAS,IAAI,KAAK;KACzC,MAAM,KAAK,MAAM,IAAI,KAAK;KAC1B,MAAM,QAAQ,KAAK,OAAO,KAAK,OAAO;KACtC,MAAM,OAAO,SAAS,IAAI,KAAK;KAC/B,OACE,oBAAC,QAAD;MAEE,aAAU;MACV,WAAS,KAAK,KAAK,KAAA;MACnB,iBAAe,MAAM,SAAS,KAAA,IAAY,KAAK,KAAA;MAC/C,IAAI,MAAM,OAAO,KAAK,IAAI,KAAK;MAC/B,IAAI,MAAM,OAAO,KAAK,IAAI,KAAK;MAC/B,IAAI,MAAM,QAAQ,KAAK,IAAI,KAAK;MAChC,IAAI,MAAM,QAAQ,KAAK,IAAI,KAAK;MAChC,YAAY;MACZ,QAAO;MACP,aAAa;MACb,eAAc;MACd,SAAS,KAAK,KAAM;MACpB,OAAO,EAAE,OAAO,QAAQ,EAAE;KAC3B,GAdM,KAcN;IAEL,CAAC;GACE,CAAA;GAEL,oBAAC,OAAD;IAAK,OAAM;IAAI,QAAO;IAAI,eAAY;IAAO,WAAU;IACrD,UAAA,oBAAC,QAAD,EAAA,UACE,qBAAC,UAAD;KAAQ,IAAI;KAAZ,UAAA;MACE,oBAAC,kBAAD;OAAgB,IAAG;OAAgB,cAAa;OAAI,QAAO;MAAQ,CAAA;MACnE,oBAAC,iBAAD;OACE,IAAG;OACH,MAAK;OACL,QAAO;OACP,QAAO;MACR,CAAA;MACD,oBAAC,eAAD;OAAa,IAAG;OAAgB,KAAI;OAAM,UAAS;MAAQ,CAAA;KACrD;IACJ,CAAA,EAAA,CAAA;GACH,CAAA;GACL,oBAAC,OAAD;IACE,eAAY;IACZ,aAAU;IACV,WAAU;IACV,OAAO,EACL,QAAQ,QAAQ,SAAS,yFAC3B;IAEC,UAAA,MAAM,KAAK,SAAS,UACnB,oBAAC,QAAD;KAEE,aAAU;KACV,WAAU;KACV,OAAO,MAAM,SAAS,KAAK;KAE1B,UAAA,UAAU,IACT,oBAAC,QAAD;MACE,aAAU;MACV,WAAU;KACX,CAAA,IACC;IACA,GAXC,KAWD,CACP;GACE,CAAA;GAEJ,MAAM,KAAK,SAAS,UACnB,oBAAC,QAAD;IAEE,MAAM,SAAS;KACb,OAAO,QAAQ,SAAS;IAC1B;IACA,MAAK;IACL,UAAU,WAAW,KAAK;IAC1B,cAAY,YAAY;IACxB,iBAAe;IACf,iBAAe;IACf,iBAAe;IACf,kBAAgB,SAAS,OAAO;IAChC,iBAAe,YAAY,KAAA;IAC3B,aAAU;IACV,cAAY,UAAU,IAAI,UAAU;IACpC,WAAW,GACT,uEACA,SACF;IACA,OAAO,MAAM,SAAS,KAAK;IAC3B,YAAY,UAAU;KACpB,cAAc,OAAgB,KAAK;IACrC;GACD,GAtBM,KAsBN,CACF;GAED,qBAAC,OAAD;IACE,aAAU;IACV,WAAU;IACV,OAAO,EAAE,UAAU,UAAU;IAH/B,UAAA,CAKE,qBAAC,QAAD;KAAM,eAAY;KAAlB,UAAA;MACG;MACD,oBAAC,QAAD;OAAM,WAAU;OAAkD,UAAA;MAAO,CAAA;MACxE;MACD,oBAAC,QAAD;OAAM,WAAU;OAAsC,UAAA;MAAO,CAAA;KACzD;IACN,CAAA,GAAA,oBAAC,QAAD;KAAM,WAAU;KAAW,UAAA,eAAe,QAAQ;IAAQ,CAAA,CACvD;;GACL,oBAAC,QAAD;IACE,aAAU;IACV,eAAY;IACZ,WAAU;IACV,aAAU;IAET,UAAA;GACG,CAAA;EACH;;AAET"}
|
|
@@ -121,17 +121,17 @@ function RecordDiffTable({ className, collapseUnchanged = true, ...props }) {
|
|
|
121
121
|
children: [
|
|
122
122
|
/* @__PURE__ */ jsx("th", {
|
|
123
123
|
scope: "col",
|
|
124
|
-
className: "px-3 py-2 text-
|
|
124
|
+
className: "px-3 py-2 text-start text-xs font-medium text-muted-foreground",
|
|
125
125
|
children: "Field"
|
|
126
126
|
}),
|
|
127
127
|
/* @__PURE__ */ jsx("th", {
|
|
128
128
|
scope: "col",
|
|
129
|
-
className: "px-3 py-2 text-
|
|
129
|
+
className: "px-3 py-2 text-start text-xs font-medium text-muted-foreground",
|
|
130
130
|
children: "Before"
|
|
131
131
|
}),
|
|
132
132
|
/* @__PURE__ */ jsx("th", {
|
|
133
133
|
scope: "col",
|
|
134
|
-
className: "px-3 py-2 text-
|
|
134
|
+
className: "px-3 py-2 text-start text-xs font-medium text-muted-foreground",
|
|
135
135
|
children: "After"
|
|
136
136
|
})
|
|
137
137
|
]
|
|
@@ -142,7 +142,7 @@ function RecordDiffTable({ className, collapseUnchanged = true, ...props }) {
|
|
|
142
142
|
children: [
|
|
143
143
|
/* @__PURE__ */ jsxs("th", {
|
|
144
144
|
scope: "row",
|
|
145
|
-
className: "px-3 py-2 text-
|
|
145
|
+
className: "px-3 py-2 text-start align-top font-medium whitespace-nowrap",
|
|
146
146
|
children: [field.label, /* @__PURE__ */ jsx("span", {
|
|
147
147
|
className: "sr-only",
|
|
148
148
|
children: `, ${field.change}`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-diff.js","names":[],"sources":["../../../src/components/record-diff/record-diff.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n createContext,\n useContext,\n useMemo,\n useState,\n type ComponentPropsWithRef,\n} from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\n/**\n * What changed about a record, field by field.\n *\n * Every diff package on npm compares lines of text. That is the wrong shape for\n * an audit entry, a settings revision or a config history, where the change is\n * \"role went from viewer to admin\" and rendering it as two lines of JSON makes\n * the reader do the comparison themselves.\n *\n * Scope is deliberately flat records. Nested objects and arrays are formatted as\n * values rather than recursed into, because a recursive differ is a different\n * and much larger component, and pretending otherwise would produce a shallow\n * one that quietly lies about deep changes. `formatValue` is the escape hatch.\n *\n * Redaction is by key pattern and applied before formatting, so a secret is\n * never handed to a formatter that might log it.\n */\n\nexport type FieldChange = \"added\" | \"removed\" | \"changed\" | \"unchanged\";\n\nexport interface RecordField {\n key: string;\n label: string;\n change: FieldChange;\n before: unknown;\n after: unknown;\n redacted: boolean;\n}\n\n/** Values that read as absent, so \"\" → null is not reported as a change. */\nfunction isEmpty(value: unknown): boolean {\n return value === null || value === undefined || value === \"\";\n}\n\nfunction classify(before: unknown, after: unknown): FieldChange {\n const hadBefore = !isEmpty(before);\n const hasAfter = !isEmpty(after);\n\n if (!hadBefore && hasAfter) return \"added\";\n if (hadBefore && !hasAfter) return \"removed\";\n // Both absent. Falling through would compare \"\" against null, which\n // serialise differently and would report a change that did not happen.\n if (!hadBefore && !hasAfter) return \"unchanged\";\n // Structural comparison, so {a:1} and {a:1} are equal. Key order differences\n // would report a false change, so keys are sorted before comparing.\n return stableStringify(before) === stableStringify(after) ? \"unchanged\" : \"changed\";\n}\n\nfunction stableStringify(value: unknown): string {\n if (value === null || typeof value !== \"object\") return JSON.stringify(value) ?? \"\";\n if (Array.isArray(value)) return `[${value.map(stableStringify).join(\",\")}]`;\n const entries = Object.entries(value as Record<string, unknown>).sort(([a], [b]) =>\n a.localeCompare(b),\n );\n return `{${entries.map(([k, v]) => `${k}:${stableStringify(v)}`).join(\",\")}}`;\n}\n\nfunction defaultFormatValue(value: unknown): string {\n if (value === null || value === undefined) return \"—\";\n if (value === \"\") return \"empty\";\n if (typeof value === \"string\") return value;\n if (typeof value === \"boolean\") return value ? \"yes\" : \"no\";\n if (typeof value === \"number\" || typeof value === \"bigint\") return String(value);\n if (Array.isArray(value)) {\n return value.length === 0 ? \"none\" : value.map(defaultFormatValue).join(\", \");\n }\n if (typeof value === \"object\") return JSON.stringify(value);\n // Symbols and functions have no sensible representation as a field value, and\n // String() would yield \"[object Object]\" or a function body. Say what it is.\n return `[${typeof value}]`;\n}\n\n/** Keys whose values must never be rendered, however the record was built. */\nconst DEFAULT_REDACT = /password|secret|token|api[-_]?key|authorization|credential/i;\n\nexport interface RecordDiffProps extends Omit<ComponentPropsWithRef<\"div\">, \"children\"> {\n before: Record<string, unknown>;\n after: Record<string, unknown>;\n /** Overrides the humanised key. */\n labels?: Record<string, string>;\n /** Keys to render as redacted. Defaults to common secret-shaped names. */\n redact?: RegExp;\n /** Only these keys, in this order. Anything else is ignored. */\n fields?: string[];\n /** Hides unchanged fields behind a toggle. */\n collapseUnchanged?: boolean;\n formatValue?: (value: unknown, key: string) => string;\n children?: React.ReactNode;\n}\n\ninterface RecordDiffContextValue {\n fields: RecordField[];\n changedCount: number;\n formatValue: (value: unknown, key: string) => string;\n}\n\nconst RecordDiffContext = createContext<RecordDiffContextValue | null>(null);\n\nfunction useRecordDiffContext(component: string): RecordDiffContextValue {\n const context = useContext(RecordDiffContext);\n if (!context) {\n throw new Error(`${component} must be rendered inside <RecordDiff>.`);\n }\n return context;\n}\n\n/** \"billingEmail\" and \"billing_email\" both read as \"Billing email\". */\nfunction humanise(key: string): string {\n const spaced = key\n .replace(/[_-]+/g, \" \")\n .replace(/([a-z0-9])([A-Z])/g, \"$1 $2\")\n .trim();\n return spaced.charAt(0).toUpperCase() + spaced.slice(1).toLowerCase();\n}\n\nexport function diffRecords(\n before: Record<string, unknown>,\n after: Record<string, unknown>,\n options: { labels?: Record<string, string>; redact?: RegExp; fields?: string[] } = {},\n): RecordField[] {\n const { labels = {}, redact = DEFAULT_REDACT, fields } = options;\n\n // The union of both sides, so a removed key is still reported. Iterating only\n // `after` is how removals go missing from audit logs.\n const keys = fields ?? [...new Set([...Object.keys(before), ...Object.keys(after)])];\n\n return keys.map((key) => ({\n key,\n label: labels[key] ?? humanise(key),\n change: classify(before[key], after[key]),\n before: before[key],\n after: after[key],\n redacted: redact.test(key),\n }));\n}\n\nconst CHANGE_STYLES: Record<FieldChange, string> = {\n added: \"text-success\",\n removed: \"text-destructive\",\n changed: \"text-foreground\",\n unchanged: \"text-muted-foreground\",\n};\n\nexport function RecordDiff({\n className,\n before,\n after,\n labels,\n redact = DEFAULT_REDACT,\n fields: fieldKeys,\n collapseUnchanged = true,\n formatValue = defaultFormatValue,\n children,\n ...props\n}: RecordDiffProps) {\n const fields = useMemo(\n () => diffRecords(before, after, { labels, redact, fields: fieldKeys }),\n [before, after, labels, redact, fieldKeys],\n );\n\n const changedCount = fields.filter((field) => field.change !== \"unchanged\").length;\n\n const context = useMemo<RecordDiffContextValue>(\n () => ({ fields, changedCount, formatValue }),\n [fields, changedCount, formatValue],\n );\n\n return (\n <RecordDiffContext.Provider value={context}>\n <div\n data-slot=\"record-diff\"\n data-changed={changedCount}\n className={cn(\"flex flex-col gap-2\", className)}\n {...props}\n >\n {children ?? (\n <>\n <RecordDiffSummary />\n <RecordDiffTable collapseUnchanged={collapseUnchanged} />\n </>\n )}\n </div>\n </RecordDiffContext.Provider>\n );\n}\n\n/** \"3 fields changed\" — the thing a reviewer scanning a log needs first. */\nexport function RecordDiffSummary({ className, ...props }: ComponentPropsWithRef<\"p\">) {\n const { changedCount, fields } = useRecordDiffContext(\"RecordDiffSummary\");\n\n return (\n <p\n data-slot=\"record-diff-summary\"\n className={cn(\"text-xs text-muted-foreground\", className)}\n {...props}\n >\n {changedCount === 0\n ? \"No fields changed\"\n : `${String(changedCount)} of ${String(fields.length)} field${fields.length === 1 ? \"\" : \"s\"} changed`}\n </p>\n );\n}\n\nexport interface RecordDiffTableProps extends ComponentPropsWithRef<\"table\"> {\n collapseUnchanged?: boolean;\n}\n\nexport function RecordDiffTable({\n className,\n collapseUnchanged = true,\n ...props\n}: RecordDiffTableProps) {\n const { fields, formatValue, changedCount } = useRecordDiffContext(\"RecordDiffTable\");\n const [showUnchanged, setShowUnchanged] = useState(!collapseUnchanged);\n\n const unchangedCount = fields.length - changedCount;\n const visible = showUnchanged\n ? fields\n : fields.filter((field) => field.change !== \"unchanged\");\n\n return (\n <div className=\"flex flex-col gap-2\">\n <div className=\"overflow-x-auto\">\n <table\n data-slot=\"record-diff-table\"\n className={cn(\"w-full border-collapse text-sm\", className)}\n {...props}\n >\n <thead>\n <tr className=\"border-b border-border\">\n <th\n scope=\"col\"\n className=\"px-3 py-2 text-left text-xs font-medium text-muted-foreground\"\n >\n Field\n </th>\n <th\n scope=\"col\"\n className=\"px-3 py-2 text-left text-xs font-medium text-muted-foreground\"\n >\n Before\n </th>\n <th\n scope=\"col\"\n className=\"px-3 py-2 text-left text-xs font-medium text-muted-foreground\"\n >\n After\n </th>\n </tr>\n </thead>\n <tbody>\n {visible.map((field) => (\n <tr\n key={field.key}\n data-slot=\"record-diff-row\"\n data-change={field.change}\n className=\"border-b border-border last:border-0\"\n >\n {/* scope=\"row\" so each value is announced with its field name\n rather than as a loose cell in a wall of table. */}\n <th\n scope=\"row\"\n className=\"px-3 py-2 text-left align-top font-medium whitespace-nowrap\"\n >\n {field.label}\n {/* The change kind must not be carried by row colour alone. */}\n <span className=\"sr-only\">{`, ${field.change}`}</span>\n </th>\n <td className=\"px-3 py-2 align-top text-muted-foreground\">\n {field.redacted ? (\n <RedactedValue />\n ) : field.change === \"added\" ? (\n <span className=\"text-muted-foreground\">—</span>\n ) : (\n <span className=\"line-through decoration-muted-foreground/50\">\n {formatValue(field.before, field.key)}\n </span>\n )}\n </td>\n <td className={cn(\"px-3 py-2 align-top\", CHANGE_STYLES[field.change])}>\n {field.redacted ? (\n <RedactedValue />\n ) : field.change === \"removed\" ? (\n <span className=\"text-muted-foreground\">—</span>\n ) : (\n formatValue(field.after, field.key)\n )}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n\n {collapseUnchanged && unchangedCount > 0 ? (\n <button\n type=\"button\"\n data-slot=\"record-diff-toggle\"\n aria-expanded={showUnchanged}\n onClick={() => {\n setShowUnchanged((shown) => !shown);\n }}\n className={cn(\n \"self-start rounded-md px-1.5 py-0.5 text-xs text-muted-foreground\",\n \"transition-colors hover:text-foreground\",\n \"outline-none focus-visible:ring-2 focus-visible:ring-ring/55\",\n )}\n >\n {showUnchanged\n ? `Hide ${String(unchangedCount)} unchanged`\n : `Show ${String(unchangedCount)} unchanged`}\n </button>\n ) : null}\n </div>\n );\n}\n\n/**\n * A value that is never rendered.\n *\n * Redaction happens before formatting, so a secret is not passed to a formatter\n * that might log or transform it — the value simply does not reach the DOM.\n */\nfunction RedactedValue() {\n return (\n <span data-slot=\"record-diff-redacted\" className=\"text-muted-foreground italic\">\n redacted\n </span>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"record-diff.js","names":[],"sources":["../../../src/components/record-diff/record-diff.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n createContext,\n useContext,\n useMemo,\n useState,\n type ComponentPropsWithRef,\n} from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\n/**\n * What changed about a record, field by field.\n *\n * Every diff package on npm compares lines of text. That is the wrong shape for\n * an audit entry, a settings revision or a config history, where the change is\n * \"role went from viewer to admin\" and rendering it as two lines of JSON makes\n * the reader do the comparison themselves.\n *\n * Scope is deliberately flat records. Nested objects and arrays are formatted as\n * values rather than recursed into, because a recursive differ is a different\n * and much larger component, and pretending otherwise would produce a shallow\n * one that quietly lies about deep changes. `formatValue` is the escape hatch.\n *\n * Redaction is by key pattern and applied before formatting, so a secret is\n * never handed to a formatter that might log it.\n */\n\nexport type FieldChange = \"added\" | \"removed\" | \"changed\" | \"unchanged\";\n\nexport interface RecordField {\n key: string;\n label: string;\n change: FieldChange;\n before: unknown;\n after: unknown;\n redacted: boolean;\n}\n\n/** Values that read as absent, so \"\" → null is not reported as a change. */\nfunction isEmpty(value: unknown): boolean {\n return value === null || value === undefined || value === \"\";\n}\n\nfunction classify(before: unknown, after: unknown): FieldChange {\n const hadBefore = !isEmpty(before);\n const hasAfter = !isEmpty(after);\n\n if (!hadBefore && hasAfter) return \"added\";\n if (hadBefore && !hasAfter) return \"removed\";\n // Both absent. Falling through would compare \"\" against null, which\n // serialise differently and would report a change that did not happen.\n if (!hadBefore && !hasAfter) return \"unchanged\";\n // Structural comparison, so {a:1} and {a:1} are equal. Key order differences\n // would report a false change, so keys are sorted before comparing.\n return stableStringify(before) === stableStringify(after) ? \"unchanged\" : \"changed\";\n}\n\nfunction stableStringify(value: unknown): string {\n if (value === null || typeof value !== \"object\") return JSON.stringify(value) ?? \"\";\n if (Array.isArray(value)) return `[${value.map(stableStringify).join(\",\")}]`;\n const entries = Object.entries(value as Record<string, unknown>).sort(([a], [b]) =>\n a.localeCompare(b),\n );\n return `{${entries.map(([k, v]) => `${k}:${stableStringify(v)}`).join(\",\")}}`;\n}\n\nfunction defaultFormatValue(value: unknown): string {\n if (value === null || value === undefined) return \"—\";\n if (value === \"\") return \"empty\";\n if (typeof value === \"string\") return value;\n if (typeof value === \"boolean\") return value ? \"yes\" : \"no\";\n if (typeof value === \"number\" || typeof value === \"bigint\") return String(value);\n if (Array.isArray(value)) {\n return value.length === 0 ? \"none\" : value.map(defaultFormatValue).join(\", \");\n }\n if (typeof value === \"object\") return JSON.stringify(value);\n // Symbols and functions have no sensible representation as a field value, and\n // String() would yield \"[object Object]\" or a function body. Say what it is.\n return `[${typeof value}]`;\n}\n\n/** Keys whose values must never be rendered, however the record was built. */\nconst DEFAULT_REDACT = /password|secret|token|api[-_]?key|authorization|credential/i;\n\nexport interface RecordDiffProps extends Omit<ComponentPropsWithRef<\"div\">, \"children\"> {\n before: Record<string, unknown>;\n after: Record<string, unknown>;\n /** Overrides the humanised key. */\n labels?: Record<string, string>;\n /** Keys to render as redacted. Defaults to common secret-shaped names. */\n redact?: RegExp;\n /** Only these keys, in this order. Anything else is ignored. */\n fields?: string[];\n /** Hides unchanged fields behind a toggle. */\n collapseUnchanged?: boolean;\n formatValue?: (value: unknown, key: string) => string;\n children?: React.ReactNode;\n}\n\ninterface RecordDiffContextValue {\n fields: RecordField[];\n changedCount: number;\n formatValue: (value: unknown, key: string) => string;\n}\n\nconst RecordDiffContext = createContext<RecordDiffContextValue | null>(null);\n\nfunction useRecordDiffContext(component: string): RecordDiffContextValue {\n const context = useContext(RecordDiffContext);\n if (!context) {\n throw new Error(`${component} must be rendered inside <RecordDiff>.`);\n }\n return context;\n}\n\n/** \"billingEmail\" and \"billing_email\" both read as \"Billing email\". */\nfunction humanise(key: string): string {\n const spaced = key\n .replace(/[_-]+/g, \" \")\n .replace(/([a-z0-9])([A-Z])/g, \"$1 $2\")\n .trim();\n return spaced.charAt(0).toUpperCase() + spaced.slice(1).toLowerCase();\n}\n\nexport function diffRecords(\n before: Record<string, unknown>,\n after: Record<string, unknown>,\n options: { labels?: Record<string, string>; redact?: RegExp; fields?: string[] } = {},\n): RecordField[] {\n const { labels = {}, redact = DEFAULT_REDACT, fields } = options;\n\n // The union of both sides, so a removed key is still reported. Iterating only\n // `after` is how removals go missing from audit logs.\n const keys = fields ?? [...new Set([...Object.keys(before), ...Object.keys(after)])];\n\n return keys.map((key) => ({\n key,\n label: labels[key] ?? humanise(key),\n change: classify(before[key], after[key]),\n before: before[key],\n after: after[key],\n redacted: redact.test(key),\n }));\n}\n\nconst CHANGE_STYLES: Record<FieldChange, string> = {\n added: \"text-success\",\n removed: \"text-destructive\",\n changed: \"text-foreground\",\n unchanged: \"text-muted-foreground\",\n};\n\nexport function RecordDiff({\n className,\n before,\n after,\n labels,\n redact = DEFAULT_REDACT,\n fields: fieldKeys,\n collapseUnchanged = true,\n formatValue = defaultFormatValue,\n children,\n ...props\n}: RecordDiffProps) {\n const fields = useMemo(\n () => diffRecords(before, after, { labels, redact, fields: fieldKeys }),\n [before, after, labels, redact, fieldKeys],\n );\n\n const changedCount = fields.filter((field) => field.change !== \"unchanged\").length;\n\n const context = useMemo<RecordDiffContextValue>(\n () => ({ fields, changedCount, formatValue }),\n [fields, changedCount, formatValue],\n );\n\n return (\n <RecordDiffContext.Provider value={context}>\n <div\n data-slot=\"record-diff\"\n data-changed={changedCount}\n className={cn(\"flex flex-col gap-2\", className)}\n {...props}\n >\n {children ?? (\n <>\n <RecordDiffSummary />\n <RecordDiffTable collapseUnchanged={collapseUnchanged} />\n </>\n )}\n </div>\n </RecordDiffContext.Provider>\n );\n}\n\n/** \"3 fields changed\" — the thing a reviewer scanning a log needs first. */\nexport function RecordDiffSummary({ className, ...props }: ComponentPropsWithRef<\"p\">) {\n const { changedCount, fields } = useRecordDiffContext(\"RecordDiffSummary\");\n\n return (\n <p\n data-slot=\"record-diff-summary\"\n className={cn(\"text-xs text-muted-foreground\", className)}\n {...props}\n >\n {changedCount === 0\n ? \"No fields changed\"\n : `${String(changedCount)} of ${String(fields.length)} field${fields.length === 1 ? \"\" : \"s\"} changed`}\n </p>\n );\n}\n\nexport interface RecordDiffTableProps extends ComponentPropsWithRef<\"table\"> {\n collapseUnchanged?: boolean;\n}\n\nexport function RecordDiffTable({\n className,\n collapseUnchanged = true,\n ...props\n}: RecordDiffTableProps) {\n const { fields, formatValue, changedCount } = useRecordDiffContext(\"RecordDiffTable\");\n const [showUnchanged, setShowUnchanged] = useState(!collapseUnchanged);\n\n const unchangedCount = fields.length - changedCount;\n const visible = showUnchanged\n ? fields\n : fields.filter((field) => field.change !== \"unchanged\");\n\n return (\n <div className=\"flex flex-col gap-2\">\n <div className=\"overflow-x-auto\">\n <table\n data-slot=\"record-diff-table\"\n className={cn(\"w-full border-collapse text-sm\", className)}\n {...props}\n >\n <thead>\n <tr className=\"border-b border-border\">\n <th\n scope=\"col\"\n className=\"px-3 py-2 text-start text-xs font-medium text-muted-foreground\"\n >\n Field\n </th>\n <th\n scope=\"col\"\n className=\"px-3 py-2 text-start text-xs font-medium text-muted-foreground\"\n >\n Before\n </th>\n <th\n scope=\"col\"\n className=\"px-3 py-2 text-start text-xs font-medium text-muted-foreground\"\n >\n After\n </th>\n </tr>\n </thead>\n <tbody>\n {visible.map((field) => (\n <tr\n key={field.key}\n data-slot=\"record-diff-row\"\n data-change={field.change}\n className=\"border-b border-border last:border-0\"\n >\n {/* scope=\"row\" so each value is announced with its field name\n rather than as a loose cell in a wall of table. */}\n <th\n scope=\"row\"\n className=\"px-3 py-2 text-start align-top font-medium whitespace-nowrap\"\n >\n {field.label}\n {/* The change kind must not be carried by row colour alone. */}\n <span className=\"sr-only\">{`, ${field.change}`}</span>\n </th>\n <td className=\"px-3 py-2 align-top text-muted-foreground\">\n {field.redacted ? (\n <RedactedValue />\n ) : field.change === \"added\" ? (\n <span className=\"text-muted-foreground\">—</span>\n ) : (\n <span className=\"line-through decoration-muted-foreground/50\">\n {formatValue(field.before, field.key)}\n </span>\n )}\n </td>\n <td className={cn(\"px-3 py-2 align-top\", CHANGE_STYLES[field.change])}>\n {field.redacted ? (\n <RedactedValue />\n ) : field.change === \"removed\" ? (\n <span className=\"text-muted-foreground\">—</span>\n ) : (\n formatValue(field.after, field.key)\n )}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n\n {collapseUnchanged && unchangedCount > 0 ? (\n <button\n type=\"button\"\n data-slot=\"record-diff-toggle\"\n aria-expanded={showUnchanged}\n onClick={() => {\n setShowUnchanged((shown) => !shown);\n }}\n className={cn(\n \"self-start rounded-md px-1.5 py-0.5 text-xs text-muted-foreground\",\n \"transition-colors hover:text-foreground\",\n \"outline-none focus-visible:ring-2 focus-visible:ring-ring/55\",\n )}\n >\n {showUnchanged\n ? `Hide ${String(unchangedCount)} unchanged`\n : `Show ${String(unchangedCount)} unchanged`}\n </button>\n ) : null}\n </div>\n );\n}\n\n/**\n * A value that is never rendered.\n *\n * Redaction happens before formatting, so a secret is not passed to a formatter\n * that might log or transform it — the value simply does not reach the DOM.\n */\nfunction RedactedValue() {\n return (\n <span data-slot=\"record-diff-redacted\" className=\"text-muted-foreground italic\">\n redacted\n </span>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { ReorderList, ReorderListAnnouncementDetails, ReorderListAnnouncements, ReorderListItem, ReorderListProps, leanFor, reorderListVariants, reorderSpring } from "./reorder-list.js";
|
|
2
|
+
export { ReorderList, type ReorderListAnnouncementDetails, type ReorderListAnnouncements, type ReorderListItem, type ReorderListProps, leanFor, reorderListVariants, reorderSpring };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { defineMeta } from "../../registry/schema.js";
|
|
2
|
+
//#region src/components/reorder-list/meta.ts
|
|
3
|
+
const meta = defineMeta({
|
|
4
|
+
name: "reorder-list",
|
|
5
|
+
title: "Reorder List",
|
|
6
|
+
description: "A short list of people or things you put in order by dragging liquid pills, or with Space and the arrow keys.",
|
|
7
|
+
category: "form",
|
|
8
|
+
status: "beta",
|
|
9
|
+
dependencies: ["class-variance-authority", "motion"],
|
|
10
|
+
registryDependencies: ["avatar"],
|
|
11
|
+
files: ["reorder-list.tsx"],
|
|
12
|
+
a11y: "A real list (ol, role=list, named by aria-label) whose rows are buttons named by their label and described by the keyboard instructions. Space or Enter picks a row up (aria-pressed), ArrowUp/ArrowDown or Home/End move it, Space or Enter drops it and Escape (or leaving the row) cancels and restores the original order; without a grab the arrows move focus between rows. Focus stays on the moved row. A polite, visually hidden status region announces each grab, move, drop and cancel (messages overridable for i18n), including drops made by pointer. The goo layer of pill backgrounds is aria-hidden and separate from the text, and avatars are decorative. Under reduced motion nothing deforms and rows jump to their slots."
|
|
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/reorder-list/meta.ts"],"sourcesContent":["import { defineMeta } from \"@/registry/schema\";\n\nexport const meta = defineMeta({\n name: \"reorder-list\",\n title: \"Reorder List\",\n description:\n \"A short list of people or things you put in order by dragging liquid pills, or with Space and the arrow keys.\",\n category: \"form\",\n status: \"beta\",\n dependencies: [\"class-variance-authority\", \"motion\"],\n registryDependencies: [\"avatar\"],\n files: [\"reorder-list.tsx\"],\n a11y:\n \"A real list (ol, role=list, named by aria-label) whose rows are buttons named by their label and described by \" +\n \"the keyboard instructions. Space or Enter picks a row up (aria-pressed), ArrowUp/ArrowDown or Home/End move \" +\n \"it, Space or Enter drops it and Escape (or leaving the row) cancels and restores the original order; without \" +\n \"a grab the arrows move focus between rows. Focus stays on the moved row. A polite, visually hidden status \" +\n \"region announces each grab, move, drop and cancel (messages overridable for i18n), including drops made by \" +\n \"pointer. The goo layer of pill backgrounds is aria-hidden and separate from the text, and avatars are \" +\n \"decorative. Under reduced motion nothing deforms and rows jump to their slots.\",\n});\n"],"mappings":";;AAEA,MAAa,OAAO,WAAW;CAC7B,MAAM;CACN,OAAO;CACP,aACE;CACF,UAAU;CACV,QAAQ;CACR,cAAc,CAAC,4BAA4B,QAAQ;CACnD,sBAAsB,CAAC,QAAQ;CAC/B,OAAO,CAAC,kBAAkB;CAC1B,MACE;AAOJ,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { VariantProps } from "class-variance-authority";
|
|
2
|
+
import { ComponentPropsWithRef, ReactNode } from "react";
|
|
3
|
+
//#region src/components/reorder-list/reorder-list.d.ts
|
|
4
|
+
/** Spring for rows settling. `give` 0 is stiff and exact, 100 soft and bouncy. */
|
|
5
|
+
declare function reorderSpring(give: number): {
|
|
6
|
+
type: "spring";
|
|
7
|
+
stiffness: number;
|
|
8
|
+
damping: number;
|
|
9
|
+
restDelta: number;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* How the held pill deforms at a velocity (px/s). `lean` is 0–100; at the
|
|
13
|
+
* default 18 a brisk drag gives about scaleX 0.8, scaleY 1.1, skewY 1.4°.
|
|
14
|
+
*/
|
|
15
|
+
declare function leanFor(velocity: number, lean: number): {
|
|
16
|
+
scaleX: number;
|
|
17
|
+
scaleY: number;
|
|
18
|
+
skewY: number;
|
|
19
|
+
};
|
|
20
|
+
interface ReorderListItem {
|
|
21
|
+
id: string;
|
|
22
|
+
/** The row's name. Announced, and names its button. */
|
|
23
|
+
label: string;
|
|
24
|
+
/** Avatar image URL. Decorative: the label already names the row. */
|
|
25
|
+
avatar?: string;
|
|
26
|
+
/** Shown when there is no image, or it fails to load. */
|
|
27
|
+
initials?: string;
|
|
28
|
+
/** CSS colour behind the avatar, e.g. `var(--color-primary)`. */
|
|
29
|
+
accent?: string;
|
|
30
|
+
/** Shows a presence dot (success token) and adds "online" to the name. */
|
|
31
|
+
online?: boolean;
|
|
32
|
+
}
|
|
33
|
+
interface ReorderListAnnouncementDetails {
|
|
34
|
+
item: ReorderListItem;
|
|
35
|
+
/** 1-based. */
|
|
36
|
+
position: number;
|
|
37
|
+
total: number;
|
|
38
|
+
}
|
|
39
|
+
interface ReorderListAnnouncements {
|
|
40
|
+
grabbed: (details: ReorderListAnnouncementDetails) => string;
|
|
41
|
+
moved: (details: ReorderListAnnouncementDetails) => string;
|
|
42
|
+
dropped: (details: ReorderListAnnouncementDetails) => string;
|
|
43
|
+
cancelled: (details: ReorderListAnnouncementDetails) => string;
|
|
44
|
+
}
|
|
45
|
+
declare const reorderListVariants: (props?: ({
|
|
46
|
+
fill?: "light" | "dark" | null | undefined;
|
|
47
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
48
|
+
interface ReorderListProps extends Omit<ComponentPropsWithRef<"div">, "defaultValue" | "children">, VariantProps<typeof reorderListVariants> {
|
|
49
|
+
items: ReorderListItem[];
|
|
50
|
+
/** Order as item ids (controlled). */
|
|
51
|
+
value?: string[];
|
|
52
|
+
/** Initial order (uncontrolled). Defaults to the order of `items`. */
|
|
53
|
+
defaultValue?: string[];
|
|
54
|
+
/** Called with the new order after a drop that changed it. */
|
|
55
|
+
onValueChange?: (value: string[]) => void;
|
|
56
|
+
/** Replaces the avatar and label inside a row. The label still names the button. */
|
|
57
|
+
renderItem?: (item: ReorderListItem, state: {
|
|
58
|
+
grabbed: boolean;
|
|
59
|
+
index: number;
|
|
60
|
+
}) => ReactNode;
|
|
61
|
+
/** Pill corner radius, 0–22 px. */
|
|
62
|
+
corner?: number;
|
|
63
|
+
/** Spring softness for rows settling, 0–100. */
|
|
64
|
+
give?: number;
|
|
65
|
+
/** How much the held pill skews and squashes with velocity, 0–100. */
|
|
66
|
+
lean?: number;
|
|
67
|
+
/** 1px inset hairline on each pill. */
|
|
68
|
+
stroke?: boolean;
|
|
69
|
+
disabled?: boolean;
|
|
70
|
+
/** Overrides for the live-region messages (i18n). */
|
|
71
|
+
announcements?: Partial<ReorderListAnnouncements>;
|
|
72
|
+
/** Describes the keyboard operation; referenced by every row's button. */
|
|
73
|
+
instructions?: string;
|
|
74
|
+
}
|
|
75
|
+
/** A list you reorder by dragging liquid pills, or with Space and the arrow keys. */
|
|
76
|
+
declare function ReorderList({ className, items, value, defaultValue, onValueChange, renderItem, corner, give, lean, fill, stroke, disabled, announcements, instructions, style, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...props }: ReorderListProps): import("react").JSX.Element;
|
|
77
|
+
//#endregion
|
|
78
|
+
export { ReorderList, ReorderListAnnouncementDetails, ReorderListAnnouncements, ReorderListItem, ReorderListProps, leanFor, reorderListVariants, reorderSpring };
|
|
79
|
+
//# sourceMappingURL=reorder-list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reorder-list.d.ts","names":[],"sources":["../../../src/components/reorder-list/reorder-list.tsx"],"mappings":";;;;iBAqFgB,cAAc;;;;;;;;;;iBAcd,QAAQ,kBAAkB;;;;;UAUzB;EACf;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;UAGe;EACf,MAAM;;EAEN;EACA;;UAGe;EACf,UAAU,SAAS;EACnB,QAAQ,SAAS;EACjB,UAAU,SAAS;EACnB,YAAY,SAAS;;cAejB,sBAAmB;;6CASvB;UAEe,yBAEb,KAAK,4DACL,oBAAoB;EACtB,OAAO;;EAEP;;EAEA;;EAEA,iBAAiB;;EAEjB,cAAc,MAAM,iBAAiB;IAAS;IAAkB;QAAoB;;EAEpF;;EAEA;;EAEA;;EAEA;EACA;;EAEA,gBAAgB,QAAQ;;EAExB;;;iBA+Bc,cACd,WACA,OACA,OACA,cACA,eACA,YACA,QACA,MACA,MACA,MACA,QACA,UACA,eACA,cACA,qBACc,8BACK,mBAChB,SACF,mCAAgB,IAAA"}
|