@glyphui/ui 0.4.0 → 0.5.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 +9 -6
- package/dist/chart.d.ts +14 -202
- package/dist/chart.js +14 -465
- package/dist/components/accordion/accordion.d.ts +15 -0
- package/dist/components/accordion/accordion.js +69 -0
- package/dist/components/accordion/accordion.styles.d.ts +65 -0
- package/dist/components/accordion/accordion.styles.js +30 -0
- package/dist/components/accordion/index.d.ts +3 -0
- package/dist/components/alert/alert-icons.js +62 -0
- package/dist/components/alert/alert.d.ts +19 -0
- package/dist/components/alert/alert.js +64 -0
- package/dist/components/alert/alert.styles.d.ts +107 -0
- package/dist/components/alert/alert.styles.js +86 -0
- package/dist/components/alert/index.d.ts +3 -0
- package/dist/components/alert-dialog/alert-dialog.d.ts +29 -0
- package/dist/components/alert-dialog/alert-dialog.js +89 -0
- package/dist/components/alert-dialog/alert-dialog.styles.d.ts +63 -0
- package/dist/components/alert-dialog/alert-dialog.styles.js +19 -0
- package/dist/components/alert-dialog/confirm-dialog.js +22 -0
- package/dist/components/alert-dialog/confirm.d.ts +30 -0
- package/dist/components/alert-dialog/confirm.js +62 -0
- package/dist/components/alert-dialog/index.d.ts +4 -0
- package/dist/components/aspect-ratio/aspect-ratio.d.ts +55 -0
- package/dist/components/aspect-ratio/aspect-ratio.js +28 -0
- package/dist/components/aspect-ratio/index.d.ts +2 -0
- package/dist/components/avatar/avatar.d.ts +13 -0
- package/dist/components/avatar/avatar.js +50 -0
- package/dist/components/avatar/avatar.styles.d.ts +77 -0
- package/dist/components/avatar/avatar.styles.js +32 -0
- package/dist/components/avatar/index.d.ts +3 -0
- package/dist/components/badge/badge.d.ts +10 -0
- package/dist/components/badge/badge.js +28 -0
- package/dist/components/badge/badge.styles.d.ts +62 -0
- package/dist/components/badge/badge.styles.js +72 -0
- package/dist/components/badge/index.d.ts +3 -0
- package/dist/components/banner/banner.d.ts +17 -0
- package/dist/components/banner/banner.js +71 -0
- package/dist/components/banner/banner.styles.d.ts +98 -0
- package/dist/components/banner/banner.styles.js +27 -0
- package/dist/components/banner/index.d.ts +3 -0
- package/dist/components/blockquote/blockquote.d.ts +72 -0
- package/dist/components/blockquote/blockquote.js +47 -0
- package/dist/components/blockquote/index.d.ts +2 -0
- package/dist/components/breadcrumb/breadcrumb.d.ts +28 -0
- package/dist/components/breadcrumb/breadcrumb.js +85 -0
- package/dist/components/breadcrumb/breadcrumb.styles.d.ts +63 -0
- package/dist/components/breadcrumb/breadcrumb.styles.js +18 -0
- package/dist/components/breadcrumb/index.d.ts +3 -0
- package/dist/components/button/button.d.ts +20 -0
- package/dist/components/button/button.js +52 -0
- package/dist/components/button/button.styles.d.ts +146 -0
- package/dist/components/button/button.styles.js +64 -0
- package/dist/components/button/index.d.ts +3 -0
- package/dist/components/calendar/calendar.d.ts +9 -0
- package/dist/components/calendar/calendar.js +75 -0
- package/dist/components/calendar/calendar.styles.d.ts +171 -0
- package/dist/components/calendar/calendar.styles.js +42 -0
- package/dist/components/calendar/index.d.ts +4 -0
- package/dist/components/card/card.d.ts +17 -0
- package/dist/components/card/card.js +79 -0
- package/dist/components/card/card.styles.d.ts +113 -0
- package/dist/components/card/card.styles.js +38 -0
- package/dist/components/card/index.d.ts +3 -0
- package/dist/components/carousel/carousel.d.ts +37 -0
- package/dist/components/carousel/carousel.js +190 -0
- package/dist/components/carousel/carousel.styles.d.ts +74 -0
- package/dist/components/carousel/carousel.styles.js +35 -0
- package/dist/components/carousel/index.d.ts +3 -0
- package/dist/components/checkbox/checkbox.d.ts +37 -0
- package/dist/components/checkbox/checkbox.js +44 -0
- package/dist/components/checkbox/index.d.ts +2 -0
- package/dist/components/code/code.d.ts +18 -0
- package/dist/components/code/code.js +75 -0
- package/dist/components/code/code.styles.d.ts +76 -0
- package/dist/components/code/code.styles.js +18 -0
- package/dist/components/code/index.d.ts +3 -0
- package/dist/components/collapsible/collapsible.d.ts +56 -0
- package/dist/components/collapsible/collapsible.js +43 -0
- package/dist/components/collapsible/index.d.ts +2 -0
- package/dist/components/combobox/combobox.d.ts +50 -0
- package/dist/components/combobox/combobox.js +141 -0
- package/dist/components/combobox/combobox.styles.d.ts +110 -0
- package/dist/components/combobox/combobox.styles.js +42 -0
- package/dist/components/combobox/index.d.ts +3 -0
- package/dist/components/command-menu/command-menu.d.ts +40 -0
- package/dist/components/command-menu/command-menu.js +148 -0
- package/dist/components/command-menu/command-menu.styles.d.ts +105 -0
- package/dist/components/command-menu/command-menu.styles.js +30 -0
- package/dist/components/command-menu/index.d.ts +3 -0
- package/dist/components/container/container.d.ts +34 -0
- package/dist/components/container/container.js +30 -0
- package/dist/components/container/index.d.ts +2 -0
- package/dist/components/context-menu/context-menu.d.ts +34 -0
- package/dist/components/context-menu/context-menu.js +157 -0
- package/dist/components/context-menu/context-menu.styles.d.ts +135 -0
- package/dist/components/context-menu/context-menu.styles.js +14 -0
- package/dist/components/context-menu/index.d.ts +3 -0
- package/dist/components/copy-button/copy-button.d.ts +61 -0
- package/dist/components/copy-button/copy-button.js +79 -0
- package/dist/components/copy-button/index.d.ts +2 -0
- package/dist/components/date-picker/date-picker.d.ts +51 -0
- package/dist/components/date-picker/date-picker.js +235 -0
- package/dist/components/date-picker/date-picker.styles.d.ts +77 -0
- package/dist/components/date-picker/date-picker.styles.js +31 -0
- package/dist/components/date-picker/index.d.ts +3 -0
- package/dist/components/description-list/description-list.d.ts +15 -0
- package/dist/components/description-list/description-list.js +51 -0
- package/dist/components/description-list/description-list.styles.d.ts +74 -0
- package/dist/components/description-list/description-list.styles.js +35 -0
- package/dist/components/description-list/index.d.ts +3 -0
- package/dist/components/dialog/close-icon.js +22 -0
- package/dist/components/dialog/dialog.d.ts +21 -0
- package/dist/components/dialog/dialog.js +79 -0
- package/dist/components/dialog/dialog.styles.d.ts +83 -0
- package/dist/components/dialog/dialog.styles.js +34 -0
- package/dist/components/dialog/index.d.ts +3 -0
- package/dist/components/dropdown-menu/dropdown-menu.d.ts +34 -0
- package/dist/components/dropdown-menu/dropdown-menu.js +160 -0
- package/dist/components/dropdown-menu/dropdown-menu.styles.d.ts +83 -0
- package/dist/components/dropdown-menu/dropdown-menu.styles.js +38 -0
- package/dist/components/dropdown-menu/index.d.ts +3 -0
- package/dist/components/eyebrow/eyebrow.d.ts +9 -0
- package/dist/components/eyebrow/eyebrow.js +20 -0
- package/dist/components/eyebrow/eyebrow.styles.d.ts +38 -0
- package/dist/components/eyebrow/eyebrow.styles.js +13 -0
- package/dist/components/eyebrow/index.d.ts +3 -0
- package/dist/components/field/field-context.d.ts +25 -0
- package/dist/components/field/field-context.js +27 -0
- package/dist/components/field/field.d.ts +28 -0
- package/dist/{field-CVbywksE.js → components/field/field.js} +6 -35
- package/dist/components/field/field.styles.d.ts +53 -0
- package/dist/components/field/field.styles.js +22 -0
- package/dist/components/field/index.d.ts +4 -0
- package/dist/components/file-upload/file-upload.d.ts +52 -0
- package/dist/components/file-upload/file-upload.js +266 -0
- package/dist/components/file-upload/file-upload.styles.d.ts +123 -0
- package/dist/components/file-upload/file-upload.styles.js +32 -0
- package/dist/components/file-upload/index.d.ts +3 -0
- package/dist/components/grid/grid.d.ts +168 -0
- package/dist/components/grid/grid.js +126 -0
- package/dist/components/grid/index.d.ts +2 -0
- package/dist/components/heading/heading.d.ts +12 -0
- package/dist/components/heading/heading.js +28 -0
- package/dist/components/heading/heading.styles.d.ts +65 -0
- package/dist/components/heading/heading.styles.js +15 -0
- package/dist/components/heading/index.d.ts +3 -0
- package/dist/components/hover-card/hover-card.d.ts +43 -0
- package/dist/components/hover-card/hover-card.js +27 -0
- package/dist/components/hover-card/index.d.ts +2 -0
- package/dist/components/input/index.d.ts +3 -0
- package/dist/components/input/input.d.ts +13 -0
- package/dist/components/input/input.js +33 -0
- package/dist/components/input/input.styles.d.ts +55 -0
- package/dist/components/input/input.styles.js +33 -0
- package/dist/components/input-otp/index.d.ts +4 -0
- package/dist/components/input-otp/index.js +5 -0
- package/dist/components/input-otp/input-otp.d.ts +23 -0
- package/dist/components/input-otp/input-otp.js +86 -0
- package/dist/components/input-otp/input-otp.styles.d.ts +71 -0
- package/dist/components/input-otp/input-otp.styles.js +30 -0
- package/dist/components/kbd/index.d.ts +2 -0
- package/dist/components/kbd/kbd.d.ts +30 -0
- package/dist/components/kbd/kbd.js +17 -0
- package/dist/components/label/index.d.ts +2 -0
- package/dist/components/label/label.d.ts +31 -0
- package/dist/components/label/label.js +17 -0
- package/dist/components/link/index.d.ts +3 -0
- package/dist/components/link/link.d.ts +14 -0
- package/dist/components/link/link.js +57 -0
- package/dist/components/link/link.styles.d.ts +89 -0
- package/dist/components/link/link.styles.js +33 -0
- package/dist/components/modal/index.d.ts +3 -0
- package/dist/components/modal/modal.d.ts +33 -0
- package/dist/components/modal/modal.js +56 -0
- package/dist/components/modal/modal.styles.d.ts +61 -0
- package/dist/components/modal/modal.styles.js +14 -0
- package/dist/components/navigation-menu/index.d.ts +3 -0
- package/dist/components/navigation-menu/navigation-menu.d.ts +37 -0
- package/dist/components/navigation-menu/navigation-menu.js +138 -0
- package/dist/components/navigation-menu/navigation-menu.styles.d.ts +111 -0
- package/dist/components/navigation-menu/navigation-menu.styles.js +39 -0
- package/dist/components/number-input/index.d.ts +3 -0
- package/dist/components/number-input/number-input.d.ts +30 -0
- package/dist/components/number-input/number-input.js +151 -0
- package/dist/components/number-input/number-input.styles.d.ts +68 -0
- package/dist/components/number-input/number-input.styles.js +35 -0
- package/dist/components/pagination/index.d.ts +4 -0
- package/dist/components/pagination/pagination-range.d.ts +11 -0
- package/dist/components/pagination/pagination-range.js +42 -0
- package/dist/components/pagination/pagination.d.ts +18 -0
- package/dist/components/pagination/pagination.js +94 -0
- package/dist/components/pagination/pagination.styles.d.ts +65 -0
- package/dist/components/pagination/pagination.styles.js +35 -0
- package/dist/components/password-input/index.d.ts +3 -0
- package/dist/components/password-input/password-input.d.ts +20 -0
- package/dist/components/password-input/password-input.js +106 -0
- package/dist/components/password-input/password-input.styles.d.ts +66 -0
- package/dist/components/password-input/password-input.styles.js +21 -0
- package/dist/components/popover/index.d.ts +2 -0
- package/dist/components/popover/popover.d.ts +52 -0
- package/dist/components/popover/popover.js +35 -0
- package/dist/components/progress/index.d.ts +3 -0
- package/dist/components/progress/progress.d.ts +29 -0
- package/dist/components/progress/progress.js +108 -0
- package/dist/components/progress/progress.styles.d.ts +236 -0
- package/dist/components/progress/progress.styles.js +69 -0
- package/dist/components/prose/index.d.ts +2 -0
- package/dist/components/prose/prose.d.ts +90 -0
- package/dist/components/prose/prose.js +67 -0
- package/dist/components/radio-group/index.d.ts +3 -0
- package/dist/components/radio-group/radio-group.d.ts +26 -0
- package/dist/components/radio-group/radio-group.js +102 -0
- package/dist/components/radio-group/radio-group.styles.d.ts +80 -0
- package/dist/components/radio-group/radio-group.styles.js +56 -0
- package/dist/components/resizable/index.d.ts +3 -0
- package/dist/components/resizable/resizable.d.ts +17 -0
- package/dist/components/resizable/resizable.js +81 -0
- package/dist/components/resizable/resizable.styles.d.ts +53 -0
- package/dist/components/resizable/resizable.styles.js +19 -0
- package/dist/components/scroll-area/index.d.ts +2 -0
- package/dist/components/scroll-area/scroll-area.d.ts +70 -0
- package/dist/components/scroll-area/scroll-area.js +70 -0
- package/dist/components/section/index.d.ts +2 -0
- package/dist/components/section/section.d.ts +52 -0
- package/dist/components/section/section.js +41 -0
- package/dist/components/segmented-control/index.d.ts +2 -0
- package/dist/components/segmented-control/segmented-control.d.ts +92 -0
- package/dist/components/segmented-control/segmented-control.js +86 -0
- package/dist/components/select/index.d.ts +2 -0
- package/dist/components/select/select.d.ts +85 -0
- package/dist/components/select/select.js +81 -0
- package/dist/components/separator/index.d.ts +2 -0
- package/dist/components/separator/separator.d.ts +40 -0
- package/dist/components/separator/separator.js +27 -0
- package/dist/components/sheet/index.d.ts +3 -0
- package/dist/components/sheet/sheet.d.ts +20 -0
- package/dist/components/sheet/sheet.js +83 -0
- package/dist/components/sheet/sheet.styles.d.ts +101 -0
- package/dist/components/sheet/sheet.styles.js +62 -0
- package/dist/components/skeleton/index.d.ts +2 -0
- package/dist/components/skeleton/skeleton.d.ts +30 -0
- package/dist/components/skeleton/skeleton.js +18 -0
- package/dist/components/slider/index.d.ts +3 -0
- package/dist/components/slider/slider.d.ts +38 -0
- package/dist/components/slider/slider.js +68 -0
- package/dist/components/slider/slider.styles.d.ts +56 -0
- package/dist/components/slider/slider.styles.js +23 -0
- package/dist/components/spinner/index.d.ts +3 -0
- package/dist/components/spinner/spinner.d.ts +9 -0
- package/dist/components/spinner/spinner.js +36 -0
- package/dist/components/spinner/spinner.styles.d.ts +53 -0
- package/dist/components/spinner/spinner.styles.js +18 -0
- package/dist/components/stack/index.d.ts +2 -0
- package/dist/components/stack/stack.d.ts +109 -0
- package/dist/components/stack/stack.js +62 -0
- package/dist/components/stat-card/index.d.ts +3 -0
- package/dist/components/stat-card/stat-card.d.ts +22 -0
- package/dist/components/stat-card/stat-card.js +82 -0
- package/dist/components/stat-card/stat-card.styles.d.ts +83 -0
- package/dist/components/stat-card/stat-card.styles.js +16 -0
- package/dist/components/stepper/index.d.ts +3 -0
- package/dist/components/stepper/stepper.d.ts +20 -0
- package/dist/components/stepper/stepper.js +100 -0
- package/dist/components/stepper/stepper.styles.d.ts +170 -0
- package/dist/components/stepper/stepper.styles.js +67 -0
- package/dist/components/switch/index.d.ts +2 -0
- package/dist/components/switch/switch.d.ts +51 -0
- package/dist/components/switch/switch.js +43 -0
- package/dist/components/table/index.d.ts +2 -0
- package/dist/components/table/table.d.ts +78 -0
- package/dist/components/table/table.js +82 -0
- package/dist/components/tabs/index.d.ts +2 -0
- package/dist/components/tabs/tabs.d.ts +73 -0
- package/dist/components/tabs/tabs.js +103 -0
- package/dist/components/tag-input/index.d.ts +3 -0
- package/dist/components/tag-input/tag-input.d.ts +30 -0
- package/dist/components/tag-input/tag-input.js +149 -0
- package/dist/components/tag-input/tag-input.styles.d.ts +71 -0
- package/dist/components/tag-input/tag-input.styles.js +29 -0
- package/dist/components/text/index.d.ts +3 -0
- package/dist/components/text/text.d.ts +9 -0
- package/dist/components/text/text.js +25 -0
- package/dist/components/text/text.styles.d.ts +188 -0
- package/dist/components/text/text.styles.js +36 -0
- package/dist/components/textarea/index.d.ts +2 -0
- package/dist/components/textarea/textarea.d.ts +29 -0
- package/dist/components/textarea/textarea.js +23 -0
- package/dist/components/timeline/index.d.ts +3 -0
- package/dist/components/timeline/timeline.d.ts +28 -0
- package/dist/components/timeline/timeline.js +61 -0
- package/dist/components/timeline/timeline.styles.d.ts +110 -0
- package/dist/components/timeline/timeline.styles.js +30 -0
- package/dist/components/toast/index.d.ts +2 -0
- package/dist/components/toast/toast.d.ts +119 -0
- package/dist/components/toast/toast.js +75 -0
- package/dist/components/toggle/index.d.ts +3 -0
- package/dist/components/toggle/toggle.d.ts +20 -0
- package/dist/components/toggle/toggle.js +58 -0
- package/dist/components/toggle/toggle.styles.d.ts +80 -0
- package/dist/components/toggle/toggle.styles.js +34 -0
- package/dist/components/tooltip/index.d.ts +2 -0
- package/dist/components/tooltip/tooltip.d.ts +39 -0
- package/dist/components/tooltip/tooltip.js +29 -0
- package/dist/components/tree-view/index.d.ts +3 -0
- package/dist/components/tree-view/tree-view.d.ts +31 -0
- package/dist/components/tree-view/tree-view.js +192 -0
- package/dist/components/tree-view/tree-view.styles.d.ts +59 -0
- package/dist/components/tree-view/tree-view.styles.js +32 -0
- package/dist/components/visually-hidden/index.d.ts +2 -0
- package/dist/components/visually-hidden/visually-hidden.d.ts +10 -0
- package/dist/components/visually-hidden/visually-hidden.js +16 -0
- package/dist/data-table.d.ts +3 -110
- package/dist/data-table.js +2 -224
- package/dist/form.d.ts +2 -86
- package/dist/form.js +1 -108
- package/dist/hooks/index.d.ts +5 -0
- package/dist/hooks/use-component-config.d.ts +13 -0
- package/dist/hooks/use-component-config.js +22 -0
- package/dist/hooks/use-controllable-state.d.ts +9 -0
- package/dist/hooks/use-controllable-state.js +18 -0
- package/dist/hooks/use-media-query.d.ts +4 -0
- package/dist/hooks/use-media-query.js +13 -0
- package/dist/hooks/use-scrolled.d.ts +4 -0
- package/dist/hooks/use-scrolled.js +17 -0
- package/dist/index.d.ts +223 -6856
- package/dist/index.js +148 -6791
- package/dist/internal/dev.js +12 -0
- package/dist/internal/icons.js +91 -0
- package/dist/motion/active-indicator.d.ts +12 -0
- package/dist/motion/active-indicator.js +26 -0
- package/dist/motion/animated-number.d.ts +21 -0
- package/dist/motion/animated-number.js +88 -0
- package/dist/motion/features.js +10 -0
- package/dist/motion/index.d.ts +10 -0
- package/dist/motion/index.js +10 -0
- package/dist/motion/motion-root.js +48 -0
- package/dist/motion/page-transition.d.ts +16 -0
- package/dist/motion/page-transition.js +23 -0
- package/dist/motion/presence-list.js +46 -0
- package/dist/motion/presence.d.ts +11 -0
- package/dist/motion/presence.js +17 -0
- package/dist/motion/reveal.d.ts +18 -0
- package/dist/motion/reveal.js +37 -0
- package/dist/motion/stagger.d.ts +29 -0
- package/dist/motion/stagger.js +52 -0
- package/dist/motion/use-motion-settings.d.ts +25 -0
- package/dist/motion/use-motion-settings.js +47 -0
- package/dist/motion/use-reveal.d.ts +11 -0
- package/dist/motion/use-reveal.js +41 -0
- package/dist/patterns/app-shell/app-shell-context.d.ts +14 -0
- package/dist/patterns/app-shell/app-shell-context.js +16 -0
- package/dist/patterns/app-shell/app-shell.d.ts +21 -0
- package/dist/patterns/app-shell/app-shell.js +82 -0
- package/dist/patterns/app-shell/app-shell.styles.d.ts +302 -0
- package/dist/patterns/app-shell/app-shell.styles.js +106 -0
- package/dist/patterns/app-shell/index.d.ts +7 -0
- package/dist/patterns/app-shell/navbar.d.ts +29 -0
- package/dist/patterns/app-shell/navbar.js +116 -0
- package/dist/patterns/app-shell/page-header.d.ts +12 -0
- package/dist/patterns/app-shell/page-header.js +38 -0
- package/dist/patterns/app-shell/sidebar.d.ts +31 -0
- package/dist/patterns/app-shell/sidebar.js +141 -0
- package/dist/patterns/async/async.d.ts +40 -0
- package/dist/patterns/async/async.js +61 -0
- package/dist/patterns/async/index.d.ts +3 -0
- package/dist/patterns/async/states.d.ts +68 -0
- package/dist/patterns/async/states.js +116 -0
- package/dist/patterns/chart/cartesian.d.ts +128 -0
- package/dist/patterns/chart/cartesian.js +552 -0
- package/dist/patterns/chart/chart-card.d.ts +39 -0
- package/dist/patterns/chart/chart-card.js +103 -0
- package/dist/patterns/chart/chart-parts.d.ts +53 -0
- package/dist/patterns/chart/chart-parts.js +282 -0
- package/dist/patterns/chart/chart.styles.d.ts +200 -0
- package/dist/patterns/chart/chart.styles.js +43 -0
- package/dist/patterns/chart/export.d.ts +45 -0
- package/dist/patterns/chart/export.js +293 -0
- package/dist/patterns/chart/funnel.d.ts +23 -0
- package/dist/patterns/chart/funnel.js +129 -0
- package/dist/patterns/chart/heatmap.d.ts +37 -0
- package/dist/patterns/chart/heatmap.js +258 -0
- package/dist/patterns/chart/icons.js +39 -0
- package/dist/patterns/chart/pie.d.ts +36 -0
- package/dist/patterns/chart/pie.js +120 -0
- package/dist/patterns/chart/radial.d.ts +75 -0
- package/dist/patterns/chart/radial.js +282 -0
- package/dist/patterns/chart/sankey.d.ts +29 -0
- package/dist/patterns/chart/sankey.js +136 -0
- package/dist/patterns/chart/scatter.d.ts +42 -0
- package/dist/patterns/chart/scatter.js +203 -0
- package/dist/patterns/chart/sparkline.d.ts +20 -0
- package/dist/patterns/chart/sparkline.js +102 -0
- package/dist/patterns/chart/treemap.d.ts +25 -0
- package/dist/patterns/chart/treemap.js +128 -0
- package/dist/patterns/chart/use-element-width.js +23 -0
- package/dist/patterns/data-table/data-table.d.ts +109 -0
- package/dist/patterns/data-table/data-table.js +233 -0
- package/dist/patterns/form/form.d.ts +89 -0
- package/dist/patterns/form/form.js +111 -0
- package/dist/{color-mode-script-KdwItKN2.d.ts → provider/color-mode-script.d.ts} +4 -5
- package/dist/{color-mode-script-Bf7LYkOj.js → provider/color-mode-script.js} +1 -1
- package/dist/provider/color-mode.d.ts +24 -0
- package/dist/provider/color-mode.js +87 -0
- package/dist/{glyph-context-DxGJrdvr.d.ts → provider/glyph-context.d.ts} +13 -12
- package/dist/provider/glyph-context.js +28 -0
- package/dist/provider/glyph-provider.d.ts +37 -0
- package/dist/provider/glyph-provider.js +48 -0
- package/dist/provider/index.d.ts +6 -0
- package/dist/provider/theme-scope.d.ts +12 -0
- package/dist/provider/theme-scope.js +42 -0
- package/dist/provider/theme-style.js +15 -0
- package/dist/react-router.d.ts +1 -1
- package/dist/register.d.ts +57 -0
- package/dist/themes.d.ts +22 -0
- package/dist/themes.js +49 -0
- package/dist/utils/cn.d.ts +6 -0
- package/dist/utils/cn.js +12 -0
- package/dist/utils/compose-refs.js +11 -0
- package/dist/{registry-BGSJoiLq.d.ts → utils/registry.d.ts} +2 -3
- package/dist/utils/styles.js +20 -0
- package/dist/{tv-DuMh7UH2.d.ts → utils/tv.d.ts} +2 -2
- package/dist/utils/tv.js +8 -0
- package/dist/utils/tw-merge-config.js +13 -0
- package/dist/vite.d.ts +1 -1
- package/dist/vite.js +1 -1
- package/package.json +3 -2
- package/src/components/accordion/accordion.styles.ts +1 -1
- package/src/components/alert/alert.styles.ts +1 -1
- package/src/components/alert-dialog/alert-dialog.styles.ts +5 -4
- package/src/components/alert-dialog/confirm-dialog.tsx +42 -0
- package/src/components/alert-dialog/confirm.tsx +12 -31
- package/src/components/aspect-ratio/aspect-ratio.tsx +1 -1
- package/src/components/avatar/avatar.styles.ts +1 -1
- package/src/components/badge/badge.styles.ts +1 -1
- package/src/components/banner/banner.styles.ts +1 -1
- package/src/components/blockquote/blockquote.tsx +1 -1
- package/src/components/breadcrumb/breadcrumb.styles.ts +1 -1
- package/src/components/button/button.styles.ts +4 -2
- package/src/components/calendar/calendar.styles.ts +1 -1
- package/src/components/card/card.styles.ts +1 -1
- package/src/components/carousel/carousel.styles.ts +1 -1
- package/src/components/checkbox/checkbox.tsx +20 -5
- package/src/components/code/code.styles.ts +2 -2
- package/src/components/collapsible/collapsible.tsx +1 -1
- package/src/components/combobox/combobox.styles.ts +5 -2
- package/src/components/command-menu/command-menu.styles.ts +6 -4
- package/src/components/container/container.tsx +1 -1
- package/src/components/context-menu/context-menu.styles.ts +4 -2
- package/src/components/copy-button/copy-button.tsx +1 -1
- package/src/components/date-picker/date-picker.styles.ts +2 -2
- package/src/components/description-list/description-list.styles.ts +1 -1
- package/src/components/dialog/dialog.styles.ts +11 -4
- package/src/components/dropdown-menu/dropdown-menu.styles.ts +3 -3
- package/src/components/eyebrow/eyebrow.styles.ts +1 -1
- package/src/components/field/field.styles.ts +1 -1
- package/src/components/file-upload/file-upload.styles.ts +1 -1
- package/src/components/file-upload/file-upload.tsx +51 -48
- package/src/components/grid/grid.tsx +1 -1
- package/src/components/heading/heading.styles.ts +1 -1
- package/src/components/hover-card/hover-card.tsx +5 -2
- package/src/components/input/input.styles.ts +1 -1
- package/src/components/input-otp/input-otp.styles.ts +1 -1
- package/src/components/kbd/kbd.tsx +1 -1
- package/src/components/label/label.tsx +1 -1
- package/src/components/link/link.styles.ts +1 -1
- package/src/components/modal/modal.styles.ts +1 -1
- package/src/components/navigation-menu/navigation-menu.styles.ts +2 -2
- package/src/components/number-input/number-input.styles.ts +1 -1
- package/src/components/pagination/pagination.styles.ts +6 -4
- package/src/components/pagination/pagination.tsx +14 -1
- package/src/components/password-input/password-input.styles.ts +1 -1
- package/src/components/popover/popover.tsx +1 -1
- package/src/components/progress/progress.styles.ts +2 -2
- package/src/components/prose/prose.tsx +1 -1
- package/src/components/radio-group/radio-group.styles.ts +1 -1
- package/src/components/resizable/resizable.styles.ts +1 -1
- package/src/components/scroll-area/scroll-area.tsx +1 -1
- package/src/components/section/section.tsx +1 -1
- package/src/components/segmented-control/segmented-control.tsx +24 -8
- package/src/components/select/select.tsx +2 -2
- package/src/components/separator/separator.tsx +1 -1
- package/src/components/sheet/sheet.styles.ts +1 -1
- package/src/components/skeleton/skeleton.tsx +1 -1
- package/src/components/slider/slider.styles.ts +1 -1
- package/src/components/spinner/spinner.styles.ts +1 -1
- package/src/components/stack/stack.tsx +1 -1
- package/src/components/stat-card/stat-card.styles.ts +1 -1
- package/src/components/stepper/stepper.styles.ts +1 -1
- package/src/components/switch/switch.tsx +2 -2
- package/src/components/table/table.tsx +1 -1
- package/src/components/tabs/tabs.tsx +46 -15
- package/src/components/tag-input/tag-input.styles.ts +1 -1
- package/src/components/tag-input/tag-input.tsx +27 -18
- package/src/components/text/text.styles.ts +1 -1
- package/src/components/textarea/textarea.tsx +1 -1
- package/src/components/timeline/timeline.styles.ts +1 -1
- package/src/components/toast/toast.tsx +1 -1
- package/src/components/toggle/toggle.styles.ts +1 -1
- package/src/components/tooltip/tooltip.tsx +6 -3
- package/src/components/tree-view/tree-view.styles.ts +1 -1
- package/src/index.ts +3 -0
- package/src/motion/active-indicator.tsx +26 -0
- package/src/motion/animated-number.tsx +113 -0
- package/src/motion/features.ts +7 -0
- package/src/motion/index.ts +9 -0
- package/src/motion/motion-root.tsx +46 -0
- package/src/motion/page-transition.tsx +30 -0
- package/src/motion/presence-list.tsx +42 -0
- package/src/motion/presence.tsx +13 -0
- package/src/motion/reveal.tsx +50 -0
- package/src/motion/stagger.tsx +81 -0
- package/src/motion/use-motion-settings.ts +52 -0
- package/src/motion/use-reveal.ts +54 -0
- package/src/patterns/app-shell/app-shell.styles.ts +18 -11
- package/src/patterns/app-shell/sidebar.tsx +28 -7
- package/src/patterns/async/states.tsx +1 -1
- package/src/patterns/chart/cartesian.tsx +755 -0
- package/src/patterns/chart/chart-card.tsx +148 -0
- package/src/patterns/chart/chart-parts.tsx +323 -58
- package/src/patterns/chart/chart.styles.ts +29 -3
- package/src/patterns/chart/export.ts +334 -0
- package/src/patterns/chart/funnel.tsx +171 -0
- package/src/patterns/chart/heatmap.tsx +339 -0
- package/src/patterns/chart/icons.tsx +44 -0
- package/src/patterns/chart/index.ts +52 -7
- package/src/patterns/chart/pie.tsx +169 -0
- package/src/patterns/chart/radial.tsx +361 -0
- package/src/patterns/chart/sankey.tsx +197 -0
- package/src/patterns/chart/scatter.tsx +254 -0
- package/src/patterns/chart/sparkline.tsx +111 -0
- package/src/patterns/chart/test-utils.tsx +35 -0
- package/src/patterns/chart/treemap.tsx +198 -0
- package/src/patterns/chart/use-element-width.ts +20 -0
- package/src/patterns/data-table/data-table.tsx +1 -1
- package/src/patterns/form/form.tsx +1 -1
- package/src/provider/glyph-context.ts +3 -1
- package/src/provider/glyph-provider.tsx +31 -12
- package/src/provider/theme-scope.tsx +14 -9
- package/src/themes.ts +3 -3
- package/src/utils/styles.ts +17 -3
- package/styles.css +122 -3
- package/dist/field-context-7I-cWvvS.js +0 -267
- package/dist/index-Bi7rZ6ba.d.ts +0 -244
- package/dist/states-IvhjBgna.js +0 -288
- package/dist/tv-DLbT66dC.js +0 -70
- package/src/patterns/chart/chart.tsx +0 -386
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
//#region src/internal/dev.ts
|
|
3
|
+
const warned = /* @__PURE__ */ new Set();
|
|
4
|
+
/** Logs a console warning once per key, in development only. */
|
|
5
|
+
function warnOnce(key, message) {
|
|
6
|
+
if (typeof process === "undefined" || process.env.NODE_ENV === "production") return;
|
|
7
|
+
if (warned.has(key)) return;
|
|
8
|
+
warned.add(key);
|
|
9
|
+
console.warn(`[glyph] ${message}`);
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { warnOnce };
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
//#region src/internal/icons.tsx
|
|
4
|
+
function Icon({ children, ...props }) {
|
|
5
|
+
return /* @__PURE__ */ jsx("svg", {
|
|
6
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
7
|
+
width: "16",
|
|
8
|
+
height: "16",
|
|
9
|
+
viewBox: "0 0 24 24",
|
|
10
|
+
fill: "none",
|
|
11
|
+
stroke: "currentColor",
|
|
12
|
+
strokeWidth: "2",
|
|
13
|
+
strokeLinecap: "round",
|
|
14
|
+
strokeLinejoin: "round",
|
|
15
|
+
"aria-hidden": "true",
|
|
16
|
+
...props,
|
|
17
|
+
children
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
const CheckIcon = (p) => /* @__PURE__ */ jsx(Icon, {
|
|
21
|
+
...p,
|
|
22
|
+
children: /* @__PURE__ */ jsx("path", { d: "M20 6 9 17l-5-5" })
|
|
23
|
+
});
|
|
24
|
+
const MinusIcon = (p) => /* @__PURE__ */ jsx(Icon, {
|
|
25
|
+
...p,
|
|
26
|
+
children: /* @__PURE__ */ jsx("path", { d: "M5 12h14" })
|
|
27
|
+
});
|
|
28
|
+
const ChevronDownIcon = (p) => /* @__PURE__ */ jsx(Icon, {
|
|
29
|
+
...p,
|
|
30
|
+
children: /* @__PURE__ */ jsx("path", { d: "m6 9 6 6 6-6" })
|
|
31
|
+
});
|
|
32
|
+
const ChevronLeftIcon = (p) => /* @__PURE__ */ jsx(Icon, {
|
|
33
|
+
...p,
|
|
34
|
+
children: /* @__PURE__ */ jsx("path", { d: "m15 18-6-6 6-6" })
|
|
35
|
+
});
|
|
36
|
+
const ChevronRightIcon = (p) => /* @__PURE__ */ jsx(Icon, {
|
|
37
|
+
...p,
|
|
38
|
+
children: /* @__PURE__ */ jsx("path", { d: "m9 18 6-6-6-6" })
|
|
39
|
+
});
|
|
40
|
+
const ArrowUpIcon = (p) => /* @__PURE__ */ jsx(Icon, {
|
|
41
|
+
...p,
|
|
42
|
+
children: /* @__PURE__ */ jsx("path", { d: "m5 12 7-7 7 7M12 19V5" })
|
|
43
|
+
});
|
|
44
|
+
const ArrowDownIcon = (p) => /* @__PURE__ */ jsx(Icon, {
|
|
45
|
+
...p,
|
|
46
|
+
children: /* @__PURE__ */ jsx("path", { d: "M12 5v14M19 12l-7 7-7-7" })
|
|
47
|
+
});
|
|
48
|
+
const ChevronsUpDownIcon = (p) => /* @__PURE__ */ jsx(Icon, {
|
|
49
|
+
...p,
|
|
50
|
+
children: /* @__PURE__ */ jsx("path", { d: "m7 15 5 5 5-5M7 9l5-5 5 5" })
|
|
51
|
+
});
|
|
52
|
+
const XIcon = (p) => /* @__PURE__ */ jsx(Icon, {
|
|
53
|
+
...p,
|
|
54
|
+
children: /* @__PURE__ */ jsx("path", { d: "M18 6 6 18M6 6l12 12" })
|
|
55
|
+
});
|
|
56
|
+
const MenuIcon = (p) => /* @__PURE__ */ jsx(Icon, {
|
|
57
|
+
...p,
|
|
58
|
+
children: /* @__PURE__ */ jsx("path", { d: "M4 6h16M4 12h16M4 18h16" })
|
|
59
|
+
});
|
|
60
|
+
const PanelLeftIcon = (p) => /* @__PURE__ */ jsxs(Icon, {
|
|
61
|
+
...p,
|
|
62
|
+
children: [/* @__PURE__ */ jsx("rect", {
|
|
63
|
+
width: "18",
|
|
64
|
+
height: "18",
|
|
65
|
+
x: "3",
|
|
66
|
+
y: "3",
|
|
67
|
+
rx: "2"
|
|
68
|
+
}), /* @__PURE__ */ jsx("path", { d: "M9 3v18" })]
|
|
69
|
+
});
|
|
70
|
+
const SearchIcon = (p) => /* @__PURE__ */ jsxs(Icon, {
|
|
71
|
+
...p,
|
|
72
|
+
children: [/* @__PURE__ */ jsx("circle", {
|
|
73
|
+
cx: "11",
|
|
74
|
+
cy: "11",
|
|
75
|
+
r: "7"
|
|
76
|
+
}), /* @__PURE__ */ jsx("path", { d: "m20 20-3.5-3.5" })]
|
|
77
|
+
});
|
|
78
|
+
const InboxIcon = (p) => /* @__PURE__ */ jsxs(Icon, {
|
|
79
|
+
...p,
|
|
80
|
+
children: [/* @__PURE__ */ jsx("path", { d: "M22 12h-6l-2 3h-4l-2-3H2" }), /* @__PURE__ */ jsx("path", { d: "M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z" })]
|
|
81
|
+
});
|
|
82
|
+
const AlertIcon = (p) => /* @__PURE__ */ jsxs(Icon, {
|
|
83
|
+
...p,
|
|
84
|
+
children: [/* @__PURE__ */ jsx("circle", {
|
|
85
|
+
cx: "12",
|
|
86
|
+
cy: "12",
|
|
87
|
+
r: "10"
|
|
88
|
+
}), /* @__PURE__ */ jsx("path", { d: "M12 8v4M12 16h.01" })]
|
|
89
|
+
});
|
|
90
|
+
//#endregion
|
|
91
|
+
export { AlertIcon, ArrowDownIcon, ArrowUpIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronsUpDownIcon, InboxIcon, MenuIcon, MinusIcon, PanelLeftIcon, SearchIcon, XIcon };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/motion/active-indicator.d.ts
|
|
2
|
+
interface ActiveIndicatorProps {
|
|
3
|
+
/** Shared by every indicator in one group, so the active one slides between items. */
|
|
4
|
+
layoutId: string;
|
|
5
|
+
className?: string | undefined;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* The highlight behind (or under) the active item of Tabs, SegmentedControl, Sidebar and
|
|
9
|
+
* similar. Rendered only inside the active item; `motion` animates it from the previous one.
|
|
10
|
+
*/
|
|
11
|
+
export declare function ActiveIndicator({ layoutId, className }: ActiveIndicatorProps): import("react").JSX.Element;
|
|
12
|
+
//#endregion
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useMotionSettings } from "./use-motion-settings.js";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import { m } from "motion/react";
|
|
5
|
+
//#region src/motion/active-indicator.tsx
|
|
6
|
+
/**
|
|
7
|
+
* The highlight behind (or under) the active item of Tabs, SegmentedControl, Sidebar and
|
|
8
|
+
* similar. Rendered only inside the active item; `motion` animates it from the previous one.
|
|
9
|
+
*/
|
|
10
|
+
function ActiveIndicator({ layoutId, className }) {
|
|
11
|
+
const { animate } = useMotionSettings();
|
|
12
|
+
if (!animate) return /* @__PURE__ */ jsx("span", {
|
|
13
|
+
"aria-hidden": "true",
|
|
14
|
+
"data-slot": "indicator",
|
|
15
|
+
className
|
|
16
|
+
});
|
|
17
|
+
return /* @__PURE__ */ jsx(m.span, {
|
|
18
|
+
"aria-hidden": "true",
|
|
19
|
+
"data-slot": "indicator",
|
|
20
|
+
layoutId,
|
|
21
|
+
initial: false,
|
|
22
|
+
className
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { ActiveIndicator };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ComponentProps } from "react";
|
|
2
|
+
//#region src/motion/animated-number.d.ts
|
|
3
|
+
export interface AnimatedNumberProps extends Omit<ComponentProps<'span'>, 'children'> {
|
|
4
|
+
value: number;
|
|
5
|
+
/** Intl number formatting, e.g. `{ style: 'currency', currency: 'USD' }`. */
|
|
6
|
+
format?: Intl.NumberFormatOptions;
|
|
7
|
+
locale?: string;
|
|
8
|
+
/** Full control over the text, e.g. your own price formatter. Overrides `format`. */
|
|
9
|
+
formatValue?: (value: number) => string;
|
|
10
|
+
/**
|
|
11
|
+
* Where the first count starts. Defaults to 0, counting up once the number scrolls into
|
|
12
|
+
* view. Set it to `value` to skip the first count.
|
|
13
|
+
*/
|
|
14
|
+
from?: number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* A number that springs to each new value: stats, prices, counters. Screen readers get the
|
|
18
|
+
* final value once, not every frame. Shows the final value immediately when motion is off.
|
|
19
|
+
*/
|
|
20
|
+
export declare function AnimatedNumber({ value, format, locale, formatValue, from, className, ref, ...props }: AnimatedNumberProps): import("react").JSX.Element;
|
|
21
|
+
//#endregion
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../utils/cn.js";
|
|
3
|
+
import { useMotionSettings } from "./use-motion-settings.js";
|
|
4
|
+
import { springEasing, springPosition } from "@glyphui/tokens";
|
|
5
|
+
import { useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
6
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
//#region src/motion/animated-number.tsx
|
|
8
|
+
const useIsomorphicLayoutEffect = typeof window === "undefined" ? useEffect : useLayoutEffect;
|
|
9
|
+
/**
|
|
10
|
+
* A number that springs to each new value: stats, prices, counters. Screen readers get the
|
|
11
|
+
* final value once, not every frame. Shows the final value immediately when motion is off.
|
|
12
|
+
*/
|
|
13
|
+
function AnimatedNumber({ value, format, locale, formatValue, from = 0, className, ref, ...props }) {
|
|
14
|
+
const { animate, spring } = useMotionSettings();
|
|
15
|
+
const formatter = useMemo(() => new Intl.NumberFormat(locale, format), [locale, format]);
|
|
16
|
+
const text = (n) => formatValue ? formatValue(n) : formatter.format(n);
|
|
17
|
+
const [shown, setShown] = useState(value);
|
|
18
|
+
const current = useRef(value);
|
|
19
|
+
const el = useRef(null);
|
|
20
|
+
const [armed, setArmed] = useState(false);
|
|
21
|
+
const [inView, setInView] = useState(false);
|
|
22
|
+
useIsomorphicLayoutEffect(() => {
|
|
23
|
+
const node = el.current;
|
|
24
|
+
if (!node || !animate || typeof IntersectionObserver === "undefined") return;
|
|
25
|
+
current.current = from;
|
|
26
|
+
setShown(from);
|
|
27
|
+
setArmed(true);
|
|
28
|
+
const observer = new IntersectionObserver(([entry]) => {
|
|
29
|
+
if (entry?.isIntersecting) {
|
|
30
|
+
setInView(true);
|
|
31
|
+
observer.disconnect();
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
observer.observe(node);
|
|
35
|
+
return () => observer.disconnect();
|
|
36
|
+
}, [animate]);
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
if (!animate || !armed) {
|
|
39
|
+
current.current = value;
|
|
40
|
+
setShown(value);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (!inView) return;
|
|
44
|
+
const start = current.current;
|
|
45
|
+
if (start === value) return;
|
|
46
|
+
const { duration } = springEasing(spring);
|
|
47
|
+
const begin = performance.now();
|
|
48
|
+
let frame = 0;
|
|
49
|
+
const tick = (now) => {
|
|
50
|
+
const elapsed = Math.min(now - begin, duration);
|
|
51
|
+
const next = start + (value - start) * springPosition(spring, elapsed / 1e3);
|
|
52
|
+
current.current = next;
|
|
53
|
+
setShown(next);
|
|
54
|
+
if (elapsed < duration) frame = requestAnimationFrame(tick);
|
|
55
|
+
else {
|
|
56
|
+
current.current = value;
|
|
57
|
+
setShown(value);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
frame = requestAnimationFrame(tick);
|
|
61
|
+
return () => cancelAnimationFrame(frame);
|
|
62
|
+
}, [
|
|
63
|
+
value,
|
|
64
|
+
animate,
|
|
65
|
+
armed,
|
|
66
|
+
inView,
|
|
67
|
+
spring
|
|
68
|
+
]);
|
|
69
|
+
return /* @__PURE__ */ jsx("span", {
|
|
70
|
+
"data-slot": "animated-number",
|
|
71
|
+
ref: (node) => {
|
|
72
|
+
el.current = node;
|
|
73
|
+
if (typeof ref === "function") ref(node);
|
|
74
|
+
else if (ref) ref.current = node;
|
|
75
|
+
},
|
|
76
|
+
className: cn("tabular-nums", className),
|
|
77
|
+
...props,
|
|
78
|
+
children: shown === value ? text(value) : /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("span", {
|
|
79
|
+
"aria-hidden": "true",
|
|
80
|
+
children: text(shown)
|
|
81
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
82
|
+
className: "sr-only",
|
|
83
|
+
children: text(value)
|
|
84
|
+
})] })
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
//#endregion
|
|
88
|
+
export { AnimatedNumber };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { domMax } from "motion/react";
|
|
3
|
+
//#region src/motion/features.ts
|
|
4
|
+
/**
|
|
5
|
+
* Animation features, loaded on demand by `LazyMotion` so they stay out of the initial
|
|
6
|
+
* bundle. `domMax` because shared `layoutId` indicators need layout animations.
|
|
7
|
+
*/
|
|
8
|
+
var features_default = domMax;
|
|
9
|
+
//#endregion
|
|
10
|
+
export { features_default as default };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ActiveIndicator } from "./active-indicator.js";
|
|
2
|
+
import { AnimatedNumber, AnimatedNumberProps } from "./animated-number.js";
|
|
3
|
+
import { PageTransition, PageTransitionProps } from "./page-transition.js";
|
|
4
|
+
import { Presence, PresenceProps } from "./presence.js";
|
|
5
|
+
import { RevealOptions } from "./use-reveal.js";
|
|
6
|
+
import { Reveal, RevealProps } from "./reveal.js";
|
|
7
|
+
import { Stagger, StaggerItem, StaggerItemProps, StaggerProps } from "./stagger.js";
|
|
8
|
+
import { MotionSettings, useMotionSettings } from "./use-motion-settings.js";
|
|
9
|
+
import { m as m$1 } from "motion/react";
|
|
10
|
+
export { ActiveIndicator, AnimatedNumber, type AnimatedNumberProps, type MotionSettings, PageTransition, type PageTransitionProps, Presence, type PresenceProps, Reveal, type RevealOptions, type RevealProps, Stagger, StaggerItem, type StaggerItemProps, type StaggerProps, m$1 as m, useMotionSettings };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useMotionSettings } from "./use-motion-settings.js";
|
|
3
|
+
import { ActiveIndicator } from "./active-indicator.js";
|
|
4
|
+
import { AnimatedNumber } from "./animated-number.js";
|
|
5
|
+
import { PageTransition } from "./page-transition.js";
|
|
6
|
+
import { Presence } from "./presence.js";
|
|
7
|
+
import { Reveal } from "./reveal.js";
|
|
8
|
+
import { Stagger, StaggerItem } from "./stagger.js";
|
|
9
|
+
import { m as m$1 } from "motion/react";
|
|
10
|
+
export { ActiveIndicator, AnimatedNumber, PageTransition, Presence, Reveal, Stagger, StaggerItem, m$1 as m, useMotionSettings };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useMotionSettings } from "./use-motion-settings.js";
|
|
3
|
+
import { useEffect } from "react";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import { LazyMotion, MotionConfig } from "motion/react";
|
|
6
|
+
//#region src/motion/motion-root.tsx
|
|
7
|
+
const loadFeatures = () => import("./features.js").then((mod) => mod.default);
|
|
8
|
+
const instant = { duration: 0 };
|
|
9
|
+
/**
|
|
10
|
+
* Connects the `motion` library to the theme: one lazily loaded feature bundle, the theme's
|
|
11
|
+
* spring as the default transition, and instant transitions when motion is off.
|
|
12
|
+
*/
|
|
13
|
+
function MotionScope({ children }) {
|
|
14
|
+
const { animate, spring } = useMotionSettings();
|
|
15
|
+
return /* @__PURE__ */ jsx(LazyMotion, {
|
|
16
|
+
features: loadFeatures,
|
|
17
|
+
children: /* @__PURE__ */ jsx(MotionConfig, {
|
|
18
|
+
reducedMotion: "user",
|
|
19
|
+
transition: animate ? spring : instant,
|
|
20
|
+
children
|
|
21
|
+
})
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
/** Mirrors the effective motion level onto `<html data-motion>` so CSS animations follow it. */
|
|
25
|
+
function MotionRootAttribute() {
|
|
26
|
+
const { level } = useMotionSettings();
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
const root = document.documentElement;
|
|
29
|
+
const previous = root.getAttribute("data-motion");
|
|
30
|
+
root.setAttribute("data-motion", level);
|
|
31
|
+
return () => {
|
|
32
|
+
if (previous === null) root.removeAttribute("data-motion");
|
|
33
|
+
else root.setAttribute("data-motion", previous);
|
|
34
|
+
};
|
|
35
|
+
}, [level]);
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
/** Inside a `ThemeScope`: `motion` transitions use that theme's spring and level. */
|
|
39
|
+
function ScopedMotionConfig({ children }) {
|
|
40
|
+
const { animate, spring } = useMotionSettings();
|
|
41
|
+
return /* @__PURE__ */ jsx(MotionConfig, {
|
|
42
|
+
reducedMotion: "user",
|
|
43
|
+
transition: animate ? spring : instant,
|
|
44
|
+
children
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
//#endregion
|
|
48
|
+
export { MotionRootAttribute, MotionScope, ScopedMotionConfig };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ComponentProps } from "react";
|
|
2
|
+
//#region src/motion/page-transition.d.ts
|
|
3
|
+
export interface PageTransitionProps extends ComponentProps<'div'> {
|
|
4
|
+
/**
|
|
5
|
+
* Changes when the page changes, e.g. `location.pathname`. Each new value replays the
|
|
6
|
+
* entrance; the first page renders without one.
|
|
7
|
+
*/
|
|
8
|
+
transitionKey: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Fades and lifts each new page in on route changes. Wrap your router outlet:
|
|
12
|
+
* `<PageTransition transitionKey={useLocation().pathname}><Outlet /></PageTransition>`.
|
|
13
|
+
* Enter-only by design: the old page leaves immediately, so nothing ever overlaps or flickers.
|
|
14
|
+
*/
|
|
15
|
+
export declare function PageTransition({ transitionKey, className, ...props }: PageTransitionProps): import("react").JSX.Element;
|
|
16
|
+
//#endregion
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../utils/cn.js";
|
|
3
|
+
import { useEffect, useRef } from "react";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
//#region src/motion/page-transition.tsx
|
|
6
|
+
/**
|
|
7
|
+
* Fades and lifts each new page in on route changes. Wrap your router outlet:
|
|
8
|
+
* `<PageTransition transitionKey={useLocation().pathname}><Outlet /></PageTransition>`.
|
|
9
|
+
* Enter-only by design: the old page leaves immediately, so nothing ever overlaps or flickers.
|
|
10
|
+
*/
|
|
11
|
+
function PageTransition({ transitionKey, className, ...props }) {
|
|
12
|
+
const mounted = useRef(false);
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
mounted.current = true;
|
|
15
|
+
}, []);
|
|
16
|
+
return /* @__PURE__ */ jsx("div", {
|
|
17
|
+
"data-slot": "page-transition",
|
|
18
|
+
className: cn(mounted.current && "animate-page-in", className),
|
|
19
|
+
...props
|
|
20
|
+
}, transitionKey);
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
export { PageTransition };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useMotionSettings } from "./use-motion-settings.js";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import { AnimatePresence, m } from "motion/react";
|
|
5
|
+
//#region src/motion/presence-list.tsx
|
|
6
|
+
/**
|
|
7
|
+
* Animates items of a list in and out, and slides the rest into place. Children must be
|
|
8
|
+
* keyed `PresenceItem`s. Renders the list statically when motion is off.
|
|
9
|
+
*/
|
|
10
|
+
function PresenceList({ children }) {
|
|
11
|
+
const { animate } = useMotionSettings();
|
|
12
|
+
if (!animate) return children;
|
|
13
|
+
return /* @__PURE__ */ jsx(AnimatePresence, {
|
|
14
|
+
initial: false,
|
|
15
|
+
children
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
const enter = {
|
|
19
|
+
opacity: 0,
|
|
20
|
+
scale: .96
|
|
21
|
+
};
|
|
22
|
+
const shown = {
|
|
23
|
+
opacity: 1,
|
|
24
|
+
scale: 1
|
|
25
|
+
};
|
|
26
|
+
const leave = {
|
|
27
|
+
opacity: 0,
|
|
28
|
+
scale: .96,
|
|
29
|
+
transition: { duration: .12 }
|
|
30
|
+
};
|
|
31
|
+
/** One item of a `PresenceList`: fades and scales in, out, and between positions. */
|
|
32
|
+
function PresenceItem({ as, ...props }) {
|
|
33
|
+
const { animate } = useMotionSettings();
|
|
34
|
+
const tag = as ?? "li";
|
|
35
|
+
if (!animate) return /* @__PURE__ */ jsx(tag, { ...props });
|
|
36
|
+
const Animated = tag === "li" ? m.li : m.span;
|
|
37
|
+
return /* @__PURE__ */ jsx(Animated, {
|
|
38
|
+
layout: "position",
|
|
39
|
+
initial: enter,
|
|
40
|
+
animate: shown,
|
|
41
|
+
exit: leave,
|
|
42
|
+
...props
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
//#endregion
|
|
46
|
+
export { PresenceItem, PresenceList };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ComponentProps } from "react";
|
|
2
|
+
import { AnimatePresence } from "motion/react";
|
|
3
|
+
//#region src/motion/presence.d.ts
|
|
4
|
+
export type PresenceProps = ComponentProps<typeof AnimatePresence>;
|
|
5
|
+
/**
|
|
6
|
+
* `motion`'s AnimatePresence with Glyph's defaults: children already on screen when the
|
|
7
|
+
* page loads don't animate in (`initial={false}`). Use it with `m.*` elements for custom
|
|
8
|
+
* enter and exit animations; transitions follow the theme's spring.
|
|
9
|
+
*/
|
|
10
|
+
export declare function Presence({ initial, ...props }: PresenceProps): import("react").JSX.Element;
|
|
11
|
+
//#endregion
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { AnimatePresence } from "motion/react";
|
|
4
|
+
//#region src/motion/presence.tsx
|
|
5
|
+
/**
|
|
6
|
+
* `motion`'s AnimatePresence with Glyph's defaults: children already on screen when the
|
|
7
|
+
* page loads don't animate in (`initial={false}`). Use it with `m.*` elements for custom
|
|
8
|
+
* enter and exit animations; transitions follow the theme's spring.
|
|
9
|
+
*/
|
|
10
|
+
function Presence({ initial = false, ...props }) {
|
|
11
|
+
return /* @__PURE__ */ jsx(AnimatePresence, {
|
|
12
|
+
initial,
|
|
13
|
+
...props
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
//#endregion
|
|
17
|
+
export { Presence };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { RevealOptions } from "./use-reveal.js";
|
|
2
|
+
import { ComponentProps } from "react";
|
|
3
|
+
//#region src/motion/reveal.d.ts
|
|
4
|
+
export interface RevealProps extends ComponentProps<'div'>, RevealOptions {
|
|
5
|
+
/** Delay before the entrance starts, in milliseconds. */
|
|
6
|
+
delay?: number;
|
|
7
|
+
/** Distance it rises from, in px or any CSS length. Defaults to the motion level's. */
|
|
8
|
+
y?: number | string;
|
|
9
|
+
/** Start slightly smaller, for cards and media. */
|
|
10
|
+
scale?: boolean;
|
|
11
|
+
asChild?: boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Fades and rises its content in when it scrolls into view. Uses the theme's spring, follows
|
|
15
|
+
* the motion level, and leaves content visible when motion is off or JavaScript hasn't run.
|
|
16
|
+
*/
|
|
17
|
+
export declare function Reveal({ delay, y, scale, once, amount, enabled, asChild, style, ref, ...props }: RevealProps): import("react").JSX.Element;
|
|
18
|
+
//#endregion
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { composeRefs } from "../utils/compose-refs.js";
|
|
3
|
+
import { useReveal } from "./use-reveal.js";
|
|
4
|
+
import { Slot } from "radix-ui";
|
|
5
|
+
import { useRef } from "react";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
//#region src/motion/reveal.tsx
|
|
8
|
+
const length = (value) => typeof value === "number" ? `${value}px` : value;
|
|
9
|
+
/**
|
|
10
|
+
* Fades and rises its content in when it scrolls into view. Uses the theme's spring, follows
|
|
11
|
+
* the motion level, and leaves content visible when motion is off or JavaScript hasn't run.
|
|
12
|
+
*/
|
|
13
|
+
function Reveal({ delay, y, scale, once, amount, enabled, asChild, style, ref, ...props }) {
|
|
14
|
+
const local = useRef(null);
|
|
15
|
+
useReveal(local, "reveal", {
|
|
16
|
+
once,
|
|
17
|
+
amount,
|
|
18
|
+
enabled
|
|
19
|
+
});
|
|
20
|
+
const Comp = asChild ? Slot.Root : "div";
|
|
21
|
+
const vars = {
|
|
22
|
+
...delay !== void 0 && { "--glyph-reveal-delay": `${delay}ms` },
|
|
23
|
+
...y !== void 0 && { "--glyph-reveal-y": length(y) },
|
|
24
|
+
...scale && { "--glyph-reveal-scale": "var(--glyph-motion-scale)" }
|
|
25
|
+
};
|
|
26
|
+
return /* @__PURE__ */ jsx(Comp, {
|
|
27
|
+
"data-slot": "reveal",
|
|
28
|
+
ref: composeRefs(local, ref),
|
|
29
|
+
style: {
|
|
30
|
+
...vars,
|
|
31
|
+
...style
|
|
32
|
+
},
|
|
33
|
+
...props
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//#endregion
|
|
37
|
+
export { Reveal };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { RevealOptions } from "./use-reveal.js";
|
|
2
|
+
import { ComponentProps, ReactNode } from "react";
|
|
3
|
+
//#region src/motion/stagger.d.ts
|
|
4
|
+
type StaggerElement = 'div' | 'ul' | 'ol' | 'dl' | 'section';
|
|
5
|
+
export interface StaggerProps extends ComponentProps<'div'>, RevealOptions {
|
|
6
|
+
/** The element to render, e.g. `ul` for a list whose `li` items cascade in. Default `div`. */
|
|
7
|
+
as?: StaggerElement;
|
|
8
|
+
/** Milliseconds between one child and the next. Defaults to the motion level's step. */
|
|
9
|
+
step?: number;
|
|
10
|
+
/** Milliseconds before the first child. */
|
|
11
|
+
delay?: number;
|
|
12
|
+
asChild?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Reveals its children one after another when the group scrolls into view: feature grids,
|
|
16
|
+
* pricing tiers, card lists. Each direct child becomes a `StaggerItem` without a wrapper.
|
|
17
|
+
*/
|
|
18
|
+
export declare function Stagger({ step, delay, once, amount, enabled, as, asChild, style, children, ref, ...props }: StaggerProps): import("react").JSX.Element;
|
|
19
|
+
export interface StaggerItemProps {
|
|
20
|
+
/** Position in the cascade, starting at 0. */
|
|
21
|
+
index: number;
|
|
22
|
+
children: ReactNode;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* One step of a `Stagger`, for children that are not direct (e.g. inside a fragment or a
|
|
26
|
+
* mapped list with wrappers). Merges onto its child; renders no element of its own.
|
|
27
|
+
*/
|
|
28
|
+
export declare function StaggerItem({ index, children }: StaggerItemProps): import("react").JSX.Element;
|
|
29
|
+
//#endregion
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { composeRefs } from "../utils/compose-refs.js";
|
|
3
|
+
import { useReveal } from "./use-reveal.js";
|
|
4
|
+
import { Slot } from "radix-ui";
|
|
5
|
+
import { Children, isValidElement, useRef } from "react";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
//#region src/motion/stagger.tsx
|
|
8
|
+
/**
|
|
9
|
+
* Reveals its children one after another when the group scrolls into view: feature grids,
|
|
10
|
+
* pricing tiers, card lists. Each direct child becomes a `StaggerItem` without a wrapper.
|
|
11
|
+
*/
|
|
12
|
+
function Stagger({ step, delay, once, amount, enabled, as = "div", asChild, style, children, ref, ...props }) {
|
|
13
|
+
const local = useRef(null);
|
|
14
|
+
useReveal(local, "stagger", {
|
|
15
|
+
once,
|
|
16
|
+
amount,
|
|
17
|
+
enabled
|
|
18
|
+
});
|
|
19
|
+
const Comp = asChild ? Slot.Root : as;
|
|
20
|
+
const vars = {
|
|
21
|
+
...step !== void 0 && { "--glyph-stagger-step": `${step}ms` },
|
|
22
|
+
...delay !== void 0 && { "--glyph-stagger-delay": `${delay}ms` }
|
|
23
|
+
};
|
|
24
|
+
let index = 0;
|
|
25
|
+
const items = Children.map(children, (child) => isValidElement(child) ? /* @__PURE__ */ jsx(StaggerItem, {
|
|
26
|
+
index: index++,
|
|
27
|
+
children: child
|
|
28
|
+
}) : child);
|
|
29
|
+
return /* @__PURE__ */ jsx(Comp, {
|
|
30
|
+
"data-slot": "stagger",
|
|
31
|
+
ref: composeRefs(local, ref),
|
|
32
|
+
style: {
|
|
33
|
+
...vars,
|
|
34
|
+
...style
|
|
35
|
+
},
|
|
36
|
+
...props,
|
|
37
|
+
children: asChild ? children : items
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* One step of a `Stagger`, for children that are not direct (e.g. inside a fragment or a
|
|
42
|
+
* mapped list with wrappers). Merges onto its child; renders no element of its own.
|
|
43
|
+
*/
|
|
44
|
+
function StaggerItem({ index, children }) {
|
|
45
|
+
return /* @__PURE__ */ jsx(Slot.Root, {
|
|
46
|
+
"data-stagger-item": "",
|
|
47
|
+
style: { "--glyph-stagger-index": index },
|
|
48
|
+
children
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
//#endregion
|
|
52
|
+
export { Stagger, StaggerItem };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { MotionLevel, SpringConfig } from "@glyphui/tokens";
|
|
2
|
+
//#region src/motion/use-motion-settings.d.ts
|
|
3
|
+
export interface MotionSettings {
|
|
4
|
+
/** The effective level: the theme's, overridden by the provider, forced to `none` by reduced motion. */
|
|
5
|
+
level: MotionLevel;
|
|
6
|
+
/** `false` when level is `none`. Components render static markup then. */
|
|
7
|
+
animate: boolean;
|
|
8
|
+
/** The theme's spring for overlays, indicators and layout animations. */
|
|
9
|
+
spring: SpringConfig & {
|
|
10
|
+
type: 'spring';
|
|
11
|
+
};
|
|
12
|
+
/** Theme durations in seconds, for tween animations. */
|
|
13
|
+
duration: {
|
|
14
|
+
fast: number;
|
|
15
|
+
base: number;
|
|
16
|
+
slow: number;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* How Glyph components should animate right now. Every animated component reads this, so a
|
|
21
|
+
* theme's `motion.level`, the provider's `motion` prop and the visitor's reduced-motion
|
|
22
|
+
* setting control all motion in one place.
|
|
23
|
+
*/
|
|
24
|
+
export declare function useMotionSettings(): MotionSettings;
|
|
25
|
+
//#endregion
|