@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,57 @@
|
|
|
1
|
+
import { avatarStyles } from "./components/avatar/avatar.styles.js";
|
|
2
|
+
import { badgeStyles } from "./components/badge/badge.styles.js";
|
|
3
|
+
import { buttonStyles } from "./components/button/button.styles.js";
|
|
4
|
+
import { cardStyles } from "./components/card/card.styles.js";
|
|
5
|
+
import { checkboxStyles } from "./components/checkbox/checkbox.js";
|
|
6
|
+
import { eyebrowStyles } from "./components/eyebrow/eyebrow.styles.js";
|
|
7
|
+
import { fieldStyles } from "./components/field/field.styles.js";
|
|
8
|
+
import { headingStyles } from "./components/heading/heading.styles.js";
|
|
9
|
+
import { inputStyles } from "./components/input/input.styles.js";
|
|
10
|
+
import { kbdStyles } from "./components/kbd/kbd.js";
|
|
11
|
+
import { labelStyles } from "./components/label/label.js";
|
|
12
|
+
import { segmentedControlStyles } from "./components/segmented-control/segmented-control.js";
|
|
13
|
+
import { selectStyles } from "./components/select/select.js";
|
|
14
|
+
import { separatorStyles } from "./components/separator/separator.js";
|
|
15
|
+
import { skeletonStyles } from "./components/skeleton/skeleton.js";
|
|
16
|
+
import { spinnerStyles } from "./components/spinner/spinner.styles.js";
|
|
17
|
+
import { switchStyles } from "./components/switch/switch.js";
|
|
18
|
+
import { tableStyles } from "./components/table/table.js";
|
|
19
|
+
import { tabsStyles } from "./components/tabs/tabs.js";
|
|
20
|
+
import { textStyles } from "./components/text/text.styles.js";
|
|
21
|
+
import { textareaStyles } from "./components/textarea/textarea.js";
|
|
22
|
+
import { tooltipStyles } from "./components/tooltip/tooltip.js";
|
|
23
|
+
import { appShellStyles, navbarStyles, pageHeaderStyles, sidebarStyles } from "./patterns/app-shell/app-shell.styles.js";
|
|
24
|
+
import { stateStyles } from "./patterns/async/states.js";
|
|
25
|
+
import { StylesEntry } from "./utils/registry.js";
|
|
26
|
+
//#region src/register.d.ts
|
|
27
|
+
declare module '@glyphui/tokens' {
|
|
28
|
+
interface GlyphComponentRegistry {
|
|
29
|
+
AppShell: StylesEntry<typeof appShellStyles>;
|
|
30
|
+
Avatar: StylesEntry<typeof avatarStyles>;
|
|
31
|
+
Badge: StylesEntry<typeof badgeStyles>;
|
|
32
|
+
Button: StylesEntry<typeof buttonStyles>;
|
|
33
|
+
Card: StylesEntry<typeof cardStyles>;
|
|
34
|
+
Checkbox: StylesEntry<typeof checkboxStyles>;
|
|
35
|
+
EmptyState: StylesEntry<typeof stateStyles>;
|
|
36
|
+
Eyebrow: StylesEntry<typeof eyebrowStyles>;
|
|
37
|
+
Field: StylesEntry<typeof fieldStyles>;
|
|
38
|
+
Heading: StylesEntry<typeof headingStyles>;
|
|
39
|
+
Input: StylesEntry<typeof inputStyles>;
|
|
40
|
+
Kbd: StylesEntry<typeof kbdStyles>;
|
|
41
|
+
Label: StylesEntry<typeof labelStyles>;
|
|
42
|
+
Navbar: StylesEntry<typeof navbarStyles>;
|
|
43
|
+
PageHeader: StylesEntry<typeof pageHeaderStyles>;
|
|
44
|
+
SegmentedControl: StylesEntry<typeof segmentedControlStyles>;
|
|
45
|
+
Select: StylesEntry<typeof selectStyles>;
|
|
46
|
+
Separator: StylesEntry<typeof separatorStyles>;
|
|
47
|
+
Sidebar: StylesEntry<typeof sidebarStyles>;
|
|
48
|
+
Skeleton: StylesEntry<typeof skeletonStyles>;
|
|
49
|
+
Spinner: StylesEntry<typeof spinnerStyles>;
|
|
50
|
+
Switch: StylesEntry<typeof switchStyles>;
|
|
51
|
+
Table: StylesEntry<typeof tableStyles>;
|
|
52
|
+
Tabs: StylesEntry<typeof tabsStyles>;
|
|
53
|
+
Text: StylesEntry<typeof textStyles>;
|
|
54
|
+
Textarea: StylesEntry<typeof textareaStyles>;
|
|
55
|
+
Tooltip: StylesEntry<typeof tooltipStyles>;
|
|
56
|
+
}
|
|
57
|
+
}
|
package/dist/themes.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import "./register.js";
|
|
2
|
+
//#region src/themes.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* Built-in themes: the token presets from @glyphui/tokens plus per-component recipes.
|
|
5
|
+
* Extend any of them in your theme file: `defineTheme({ name: 'acme', extends: presets.glyph, ... })`.
|
|
6
|
+
*/
|
|
7
|
+
/** Precise, dark-first, one electric-blue accent, layered soft shadows, Geist. */
|
|
8
|
+
export declare const glyph: import("@glyphui/tokens").Theme;
|
|
9
|
+
/** Zero radius, heavy borders, hard offset shadows, loud color. */
|
|
10
|
+
export declare const brutalist: import("@glyphui/tokens").Theme;
|
|
11
|
+
/** Serif display type, warm paper neutrals, deep green ink, hairlines instead of shadows. */
|
|
12
|
+
export declare const editorial: import("@glyphui/tokens").Theme;
|
|
13
|
+
/** Pill shapes, lavender and mint, chunky rounded type, springy motion. */
|
|
14
|
+
export declare const playful: import("@glyphui/tokens").Theme;
|
|
15
|
+
export declare const presets: {
|
|
16
|
+
readonly glyph: import("@glyphui/tokens").Theme;
|
|
17
|
+
readonly brutalist: import("@glyphui/tokens").Theme;
|
|
18
|
+
readonly editorial: import("@glyphui/tokens").Theme;
|
|
19
|
+
readonly playful: import("@glyphui/tokens").Theme;
|
|
20
|
+
};
|
|
21
|
+
export type PresetName = keyof typeof presets;
|
|
22
|
+
//#endregion
|
package/dist/themes.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { defineTheme, presets } from "@glyphui/tokens";
|
|
3
|
+
//#region src/themes.ts
|
|
4
|
+
/**
|
|
5
|
+
* Built-in themes: the token presets from @glyphui/tokens plus per-component recipes.
|
|
6
|
+
* Extend any of them in your theme file: `defineTheme({ name: 'acme', extends: presets.glyph, ... })`.
|
|
7
|
+
*/
|
|
8
|
+
/** Precise, dark-first, one electric-blue accent, layered soft shadows, Geist. */
|
|
9
|
+
const glyph = presets.glyph;
|
|
10
|
+
/** Zero radius, heavy borders, hard offset shadows, loud color. */
|
|
11
|
+
const brutalist = /* @__PURE__ */ defineTheme({
|
|
12
|
+
name: "brutalist",
|
|
13
|
+
extends: presets.brutalist,
|
|
14
|
+
components: {
|
|
15
|
+
Button: { className: { base: "font-bold uppercase tracking-wide shadow-sm hover:-translate-x-px hover:-translate-y-px hover:shadow-md active:translate-x-[3px] active:translate-y-[3px] active:shadow-none" } },
|
|
16
|
+
Badge: { className: { base: "font-bold uppercase" } },
|
|
17
|
+
Card: { defaultVariants: { variant: "elevated" } },
|
|
18
|
+
Heading: { className: { base: "uppercase" } },
|
|
19
|
+
Input: { className: { root: "shadow-sm focus-within:ring-0 focus-within:shadow-md" } }
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
/** Serif display type, warm paper neutrals, deep green ink, hairlines instead of shadows. */
|
|
23
|
+
const editorial = /* @__PURE__ */ defineTheme({
|
|
24
|
+
name: "editorial",
|
|
25
|
+
extends: presets.editorial,
|
|
26
|
+
components: {
|
|
27
|
+
Card: { defaultVariants: { variant: "outline" } },
|
|
28
|
+
Eyebrow: { className: { base: "font-sans tracking-[0.18em]" } },
|
|
29
|
+
Button: { className: { base: "tracking-wide" } }
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
/** Pill shapes, lavender and mint, chunky rounded type, springy motion. */
|
|
33
|
+
const playful = /* @__PURE__ */ defineTheme({
|
|
34
|
+
name: "playful",
|
|
35
|
+
extends: presets.playful,
|
|
36
|
+
components: {
|
|
37
|
+
Button: { className: { base: "font-bold hover:-translate-y-0.5 active:translate-y-0 active:scale-[0.97]" } },
|
|
38
|
+
Card: { defaultVariants: { variant: "elevated" } },
|
|
39
|
+
Badge: { className: { base: "font-semibold" } }
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
const presets$1 = {
|
|
43
|
+
glyph,
|
|
44
|
+
brutalist,
|
|
45
|
+
editorial,
|
|
46
|
+
playful
|
|
47
|
+
};
|
|
48
|
+
//#endregion
|
|
49
|
+
export { brutalist, editorial, glyph, playful, presets$1 as presets };
|
package/dist/utils/cn.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { twMergeConfig } from "./tw-merge-config.js";
|
|
3
|
+
import { clsx } from "clsx";
|
|
4
|
+
import { extendTailwindMerge } from "tailwind-merge";
|
|
5
|
+
//#region src/utils/cn.ts
|
|
6
|
+
const twMerge = extendTailwindMerge(twMergeConfig);
|
|
7
|
+
/** Joins class names and resolves Tailwind conflicts (last one wins). */
|
|
8
|
+
function cn(...inputs) {
|
|
9
|
+
return twMerge(clsx(inputs));
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { cn };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
//#region src/utils/compose-refs.ts
|
|
3
|
+
/** Combines several refs into one callback ref. */
|
|
4
|
+
function composeRefs(...refs) {
|
|
5
|
+
return (node) => {
|
|
6
|
+
for (const ref of refs) if (typeof ref === "function") ref(node);
|
|
7
|
+
else if (ref) ref.current = node;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
//#endregion
|
|
11
|
+
export { composeRefs };
|
|
@@ -2,8 +2,7 @@ import { ComponentEntry } from "@glyphui/tokens";
|
|
|
2
2
|
import { VariantProps } from "tailwind-variants";
|
|
3
3
|
//#region src/utils/registry.d.ts
|
|
4
4
|
/** Derives a registry entry (variant props + slot names) from a component's `tv()` styles. */
|
|
5
|
-
type StylesEntry<T extends ((...args: any) => any) & {
|
|
5
|
+
export type StylesEntry<T extends ((...args: any) => any) & {
|
|
6
6
|
slots: unknown;
|
|
7
7
|
}> = ComponentEntry<VariantProps<T>, Extract<keyof NonNullable<T['slots']>, string>>;
|
|
8
|
-
//#endregion
|
|
9
|
-
export { StylesEntry as t };
|
|
8
|
+
//#endregion
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
//#region src/utils/styles.ts
|
|
3
|
+
/** Shared class fragments. Kept as literals so Tailwind's scanner picks them up. */
|
|
4
|
+
const focusRing = "outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background";
|
|
5
|
+
const themedBorder = "border-(length:--glyph-border-width)";
|
|
6
|
+
const transition = "transition-[color,background-color,border-color,box-shadow,transform,translate,scale,opacity] duration-(--glyph-duration-base) ease-standard";
|
|
7
|
+
/**
|
|
8
|
+
* Enter and exit for anything Radix positions next to a trigger: springs out of the trigger
|
|
9
|
+
* (pair with the primitive's transform-origin class) and leaves quickly. Distance and scale
|
|
10
|
+
* follow the motion level; the side moves it toward the trigger.
|
|
11
|
+
*/
|
|
12
|
+
const popoverMotion = "animate-pop-in data-[state=closed]:animate-pop-out data-[side=bottom]:[--glyph-motion-y:calc(var(--glyph-motion-distance)*-1)] data-[side=top]:[--glyph-motion-y:var(--glyph-motion-distance)] data-[side=left]:[--glyph-motion-x:var(--glyph-motion-distance)] data-[side=right]:[--glyph-motion-x:calc(var(--glyph-motion-distance)*-1)]";
|
|
13
|
+
/** Popover surfaces: Select, Tooltip-like menus. */
|
|
14
|
+
const popover = `z-50 overflow-hidden rounded-[min(var(--radius-md),var(--radius-lg))] border-(length:--glyph-border-width) border-border bg-raised text-foreground shadow-lg ${popoverMotion}`;
|
|
15
|
+
/** Dimmed backdrop behind dialogs and sheets. */
|
|
16
|
+
const overlayMotion = "data-[state=open]:animate-fade-in data-[state=closed]:animate-fade-out";
|
|
17
|
+
/** Centered dialogs: rise and scale in on the theme's spring, settle out quickly. */
|
|
18
|
+
const dialogMotion = "animate-dialog-in data-[state=closed]:animate-dialog-out";
|
|
19
|
+
//#endregion
|
|
20
|
+
export { dialogMotion, focusRing, overlayMotion, popover, popoverMotion, themedBorder, transition };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { VariantProps as VariantProps$1 } from "tailwind-variants";
|
|
2
2
|
//#region src/utils/tv.d.ts
|
|
3
3
|
/** `tailwind-variants` preconfigured with Glyph's merge rules. All component styles use this. */
|
|
4
|
-
declare const tv: import("tailwind-variants").TV;
|
|
4
|
+
export declare const tv: import("tailwind-variants").TV;
|
|
5
5
|
//#endregion
|
|
6
|
-
export {
|
|
6
|
+
export type { VariantProps$1 as VariantProps };
|
package/dist/utils/tv.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { twMergeConfig } from "./tw-merge-config.js";
|
|
3
|
+
import { createTV } from "tailwind-variants";
|
|
4
|
+
//#region src/utils/tv.ts
|
|
5
|
+
/** `tailwind-variants` preconfigured with Glyph's merge rules. All component styles use this. */
|
|
6
|
+
const tv = createTV({ twMergeConfig });
|
|
7
|
+
//#endregion
|
|
8
|
+
export { tv };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { textTokens } from "@glyphui/tokens";
|
|
3
|
+
//#region src/utils/tw-merge-config.ts
|
|
4
|
+
/**
|
|
5
|
+
* Teaches tailwind-merge about Glyph's custom utilities so `cn('text-h1', 'text-small')`
|
|
6
|
+
* keeps only the last size instead of treating `text-h1` as a color.
|
|
7
|
+
*/
|
|
8
|
+
const twMergeConfig = { extend: { theme: {
|
|
9
|
+
text: [...textTokens],
|
|
10
|
+
radius: ["pill"]
|
|
11
|
+
} } };
|
|
12
|
+
//#endregion
|
|
13
|
+
export { twMergeConfig };
|
package/dist/vite.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ColorModeOptions } from "./provider/color-mode-script.js";
|
|
2
2
|
//#region src/integrations/vite.d.ts
|
|
3
3
|
/** The subset of Vite's `Plugin` this plugin uses, so `vite` stays an optional peer. */
|
|
4
4
|
export interface GlyphVitePlugin {
|
package/dist/vite.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
2
|
+
import { getColorModeScript } from "./provider/color-mode-script.js";
|
|
3
3
|
//#region src/integrations/vite.ts
|
|
4
4
|
/**
|
|
5
5
|
* Injects Glyph's color-mode script into `index.html` so dark-mode visitors never see a
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@glyphui/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "React components on Tailwind CSS v4 that take their entire look from one theme file. Forms, data tables, app layouts and async states included.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Mohak Gupta (https://github.com/khalmohak)",
|
|
@@ -78,13 +78,14 @@
|
|
|
78
78
|
"dependencies": {
|
|
79
79
|
"@fontsource-variable/geist": "^5.3.0",
|
|
80
80
|
"@fontsource-variable/geist-mono": "^5.3.0",
|
|
81
|
-
"@glyphui/tokens": "^0.
|
|
81
|
+
"@glyphui/tokens": "^0.5.0",
|
|
82
82
|
"@standard-schema/spec": "^1.1.0",
|
|
83
83
|
"clsx": "^2.1.1",
|
|
84
84
|
"cmdk": "^1.1.1",
|
|
85
85
|
"date-fns": "^4.4.0",
|
|
86
86
|
"embla-carousel-react": "^8.6.0",
|
|
87
87
|
"input-otp": "^1.5.0",
|
|
88
|
+
"motion": "14.0.0",
|
|
88
89
|
"radix-ui": "^1.6.7",
|
|
89
90
|
"react-day-picker": "^9.14.0",
|
|
90
91
|
"react-resizable-panels": "^3.0.6",
|
|
@@ -2,7 +2,7 @@ import type { StylesEntry } from '../../utils/registry'
|
|
|
2
2
|
import { focusRing, themedBorder, transition } from '../../utils/styles'
|
|
3
3
|
import { tv, type VariantProps } from '../../utils/tv'
|
|
4
4
|
|
|
5
|
-
export const accordionStyles = tv({
|
|
5
|
+
export const accordionStyles = /* @__PURE__ */ tv({
|
|
6
6
|
slots: {
|
|
7
7
|
root: 'w-full',
|
|
8
8
|
item: '',
|
|
@@ -3,7 +3,7 @@ import { themedBorder } from '../../utils/styles'
|
|
|
3
3
|
import { tv, type VariantProps } from '../../utils/tv'
|
|
4
4
|
|
|
5
5
|
// Soft fills per tone. Icon color is mixed toward the foreground so it stays readable in both modes.
|
|
6
|
-
export const alertStyles = tv({
|
|
6
|
+
export const alertStyles = /* @__PURE__ */ tv({
|
|
7
7
|
slots: {
|
|
8
8
|
root: ['relative flex w-full items-start gap-3 rounded-md px-4 py-3 text-small', themedBorder],
|
|
9
9
|
icon: 'mt-0.5 flex size-4 shrink-0 items-center justify-center [&>svg]:size-4',
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import type { StylesEntry } from '../../utils/registry'
|
|
2
|
-
import { themedBorder } from '../../utils/styles'
|
|
2
|
+
import { dialogMotion, overlayMotion, themedBorder } from '../../utils/styles'
|
|
3
3
|
import { tv } from '../../utils/tv'
|
|
4
4
|
|
|
5
|
-
export const alertDialogStyles = tv({
|
|
5
|
+
export const alertDialogStyles = /* @__PURE__ */ tv({
|
|
6
6
|
slots: {
|
|
7
|
-
overlay: 'fixed inset-0 z-50
|
|
7
|
+
overlay: ['fixed inset-0 z-50 bg-overlay', overlayMotion],
|
|
8
8
|
content: [
|
|
9
9
|
'fixed top-1/2 left-1/2 z-50 grid w-[calc(100vw-2rem)] max-w-md -translate-x-1/2 -translate-y-1/2 gap-5',
|
|
10
|
-
'rounded-xl border-border bg-surface p-6 text-foreground shadow-lg outline-none
|
|
10
|
+
'rounded-xl border-border bg-surface p-6 text-foreground shadow-lg outline-none',
|
|
11
|
+
dialogMotion,
|
|
11
12
|
themedBorder,
|
|
12
13
|
],
|
|
13
14
|
header: 'flex flex-col gap-1.5',
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AlertDialog,
|
|
3
|
+
AlertDialogAction,
|
|
4
|
+
AlertDialogCancel,
|
|
5
|
+
AlertDialogContent,
|
|
6
|
+
AlertDialogDescription,
|
|
7
|
+
AlertDialogFooter,
|
|
8
|
+
AlertDialogHeader,
|
|
9
|
+
AlertDialogTitle,
|
|
10
|
+
} from './alert-dialog'
|
|
11
|
+
import type { ConfirmOptions } from './confirm'
|
|
12
|
+
|
|
13
|
+
export interface ConfirmDialogProps {
|
|
14
|
+
open: boolean
|
|
15
|
+
options: ConfirmOptions
|
|
16
|
+
onSettle: (confirmed: boolean) => void
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/** The dialog behind `useConfirm()`. Loaded lazily by ConfirmProvider. */
|
|
20
|
+
export function ConfirmDialog({ open, options, onSettle }: ConfirmDialogProps) {
|
|
21
|
+
const danger = options.tone === 'danger'
|
|
22
|
+
return (
|
|
23
|
+
<AlertDialog open={open} onOpenChange={(next) => !next && onSettle(false)}>
|
|
24
|
+
<AlertDialogContent>
|
|
25
|
+
<AlertDialogHeader>
|
|
26
|
+
<AlertDialogTitle>{options.title}</AlertDialogTitle>
|
|
27
|
+
{options.description && (
|
|
28
|
+
<AlertDialogDescription>{options.description}</AlertDialogDescription>
|
|
29
|
+
)}
|
|
30
|
+
</AlertDialogHeader>
|
|
31
|
+
<AlertDialogFooter>
|
|
32
|
+
<AlertDialogCancel onClick={() => onSettle(false)}>
|
|
33
|
+
{options.cancelLabel ?? 'Cancel'}
|
|
34
|
+
</AlertDialogCancel>
|
|
35
|
+
<AlertDialogAction tone={options.tone} onClick={() => onSettle(true)}>
|
|
36
|
+
{options.confirmLabel ?? (danger ? 'Delete' : 'Confirm')}
|
|
37
|
+
</AlertDialogAction>
|
|
38
|
+
</AlertDialogFooter>
|
|
39
|
+
</AlertDialogContent>
|
|
40
|
+
</AlertDialog>
|
|
41
|
+
)
|
|
42
|
+
}
|
|
@@ -1,22 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createContext,
|
|
3
|
+
lazy,
|
|
3
4
|
type ReactNode,
|
|
5
|
+
Suspense,
|
|
4
6
|
useCallback,
|
|
5
7
|
useContext,
|
|
6
8
|
useMemo,
|
|
7
9
|
useRef,
|
|
8
10
|
useState,
|
|
9
11
|
} from 'react'
|
|
10
|
-
import {
|
|
11
|
-
AlertDialog,
|
|
12
|
-
AlertDialogAction,
|
|
13
|
-
AlertDialogCancel,
|
|
14
|
-
AlertDialogContent,
|
|
15
|
-
AlertDialogDescription,
|
|
16
|
-
AlertDialogFooter,
|
|
17
|
-
AlertDialogHeader,
|
|
18
|
-
AlertDialogTitle,
|
|
19
|
-
} from './alert-dialog'
|
|
20
12
|
|
|
21
13
|
export interface ConfirmOptions {
|
|
22
14
|
title: ReactNode
|
|
@@ -31,6 +23,11 @@ export type ConfirmFn = (options: ConfirmOptions) => Promise<boolean>
|
|
|
31
23
|
|
|
32
24
|
const ConfirmContext = createContext<ConfirmFn | null>(null)
|
|
33
25
|
|
|
26
|
+
// The dialog loads the first time confirm() is called, so apps that never confirm don't ship it.
|
|
27
|
+
const ConfirmDialog = lazy(() =>
|
|
28
|
+
import('./confirm-dialog').then((m) => ({ default: m.ConfirmDialog })),
|
|
29
|
+
)
|
|
30
|
+
|
|
34
31
|
interface Pending {
|
|
35
32
|
options: ConfirmOptions
|
|
36
33
|
resolve: (value: boolean) => void
|
|
@@ -64,31 +61,15 @@ export function ConfirmProvider({ children }: { children: ReactNode }) {
|
|
|
64
61
|
|
|
65
62
|
const value = useMemo(() => confirm, [confirm])
|
|
66
63
|
const options = pending?.options
|
|
67
|
-
const danger = options?.tone === 'danger'
|
|
68
64
|
|
|
69
65
|
return (
|
|
70
66
|
<ConfirmContext.Provider value={value}>
|
|
71
67
|
{children}
|
|
72
|
-
|
|
73
|
-
{
|
|
74
|
-
<
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
{options.description && (
|
|
78
|
-
<AlertDialogDescription>{options.description}</AlertDialogDescription>
|
|
79
|
-
)}
|
|
80
|
-
</AlertDialogHeader>
|
|
81
|
-
<AlertDialogFooter>
|
|
82
|
-
<AlertDialogCancel onClick={() => settle(false)}>
|
|
83
|
-
{options.cancelLabel ?? 'Cancel'}
|
|
84
|
-
</AlertDialogCancel>
|
|
85
|
-
<AlertDialogAction tone={options.tone} onClick={() => settle(true)}>
|
|
86
|
-
{options.confirmLabel ?? (danger ? 'Delete' : 'Confirm')}
|
|
87
|
-
</AlertDialogAction>
|
|
88
|
-
</AlertDialogFooter>
|
|
89
|
-
</AlertDialogContent>
|
|
90
|
-
)}
|
|
91
|
-
</AlertDialog>
|
|
68
|
+
{options && (
|
|
69
|
+
<Suspense fallback={null}>
|
|
70
|
+
<ConfirmDialog open={open} options={options} onSettle={settle} />
|
|
71
|
+
</Suspense>
|
|
72
|
+
)}
|
|
92
73
|
</ConfirmContext.Provider>
|
|
93
74
|
)
|
|
94
75
|
}
|
|
@@ -4,7 +4,7 @@ import { useComponentConfig } from '../../hooks/use-component-config'
|
|
|
4
4
|
import type { StylesEntry } from '../../utils/registry'
|
|
5
5
|
import { tv, type VariantProps } from '../../utils/tv'
|
|
6
6
|
|
|
7
|
-
export const aspectRatioStyles = tv({
|
|
7
|
+
export const aspectRatioStyles = /* @__PURE__ */ tv({
|
|
8
8
|
slots: {
|
|
9
9
|
base: 'overflow-hidden [&>img]:size-full [&>img]:object-cover [&>video]:size-full [&>video]:object-cover',
|
|
10
10
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { tv, type VariantProps } from '../../utils/tv'
|
|
2
2
|
|
|
3
|
-
export const avatarStyles = tv({
|
|
3
|
+
export const avatarStyles = /* @__PURE__ */ tv({
|
|
4
4
|
slots: {
|
|
5
5
|
root: 'relative inline-flex shrink-0 select-none items-center justify-center overflow-hidden rounded-pill bg-muted align-middle',
|
|
6
6
|
image: 'size-full object-cover',
|
|
@@ -38,7 +38,7 @@ const tones = {
|
|
|
38
38
|
type Tone = keyof typeof tones
|
|
39
39
|
type Variant = keyof (typeof tones)[Tone]
|
|
40
40
|
|
|
41
|
-
export const badgeStyles = tv({
|
|
41
|
+
export const badgeStyles = /* @__PURE__ */ tv({
|
|
42
42
|
slots: {
|
|
43
43
|
base: [
|
|
44
44
|
'inline-flex h-5.5 w-fit shrink-0 items-center gap-1.5 whitespace-nowrap rounded-pill border-transparent px-2',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { StylesEntry } from '../../utils/registry'
|
|
2
2
|
import { tv, type VariantProps } from '../../utils/tv'
|
|
3
3
|
|
|
4
|
-
export const bannerStyles = tv({
|
|
4
|
+
export const bannerStyles = /* @__PURE__ */ tv({
|
|
5
5
|
slots: {
|
|
6
6
|
root: ['w-full border-b-(length:--glyph-border-width) text-small'],
|
|
7
7
|
inner: 'mx-auto flex w-full max-w-7xl items-center gap-3 px-4 py-2.5 sm:px-6',
|
|
@@ -3,7 +3,7 @@ import { useComponentConfig } from '../../hooks/use-component-config'
|
|
|
3
3
|
import type { StylesEntry } from '../../utils/registry'
|
|
4
4
|
import { tv, type VariantProps } from '../../utils/tv'
|
|
5
5
|
|
|
6
|
-
export const blockquoteStyles = tv({
|
|
6
|
+
export const blockquoteStyles = /* @__PURE__ */ tv({
|
|
7
7
|
slots: {
|
|
8
8
|
root: 'grid gap-3 border-l-2 border-primary pl-5',
|
|
9
9
|
quote: 'font-display text-pretty text-foreground',
|
|
@@ -2,7 +2,7 @@ import type { StylesEntry } from '../../utils/registry'
|
|
|
2
2
|
import { focusRing, transition } from '../../utils/styles'
|
|
3
3
|
import { tv } from '../../utils/tv'
|
|
4
4
|
|
|
5
|
-
export const breadcrumbStyles = tv({
|
|
5
|
+
export const breadcrumbStyles = /* @__PURE__ */ tv({
|
|
6
6
|
slots: {
|
|
7
7
|
root: 'min-w-0',
|
|
8
8
|
list: 'flex flex-wrap items-center gap-1.5 text-small text-muted-foreground',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { focusRing, themedBorder, transition } from '../../utils/styles'
|
|
2
2
|
import { tv, type VariantProps } from '../../utils/tv'
|
|
3
3
|
|
|
4
|
-
export const buttonStyles = tv({
|
|
4
|
+
export const buttonStyles = /* @__PURE__ */ tv({
|
|
5
5
|
slots: {
|
|
6
6
|
base: [
|
|
7
7
|
'relative inline-flex shrink-0 cursor-pointer select-none items-center justify-center gap-2 whitespace-nowrap',
|
|
@@ -10,6 +10,8 @@ export const buttonStyles = tv({
|
|
|
10
10
|
transition,
|
|
11
11
|
focusRing,
|
|
12
12
|
'disabled:pointer-events-none disabled:opacity-50 aria-busy:cursor-progress',
|
|
13
|
+
// Press feedback. CSS only, so Button stays free of animation libraries.
|
|
14
|
+
'active:scale-[0.98] motion-expressive:active:scale-[0.95]',
|
|
13
15
|
],
|
|
14
16
|
icon: 'inline-flex size-4 shrink-0 items-center justify-center [&>svg]:size-full',
|
|
15
17
|
},
|
|
@@ -23,7 +25,7 @@ export const buttonStyles = tv({
|
|
|
23
25
|
ghost: { base: 'text-muted-foreground hover:bg-muted hover:text-foreground' },
|
|
24
26
|
danger: { base: 'bg-danger text-danger-foreground shadow-sm hover:bg-danger/88' },
|
|
25
27
|
link: {
|
|
26
|
-
base: 'h-auto px-0 text-primary-text underline-offset-4 shadow-none hover:underline',
|
|
28
|
+
base: 'h-auto px-0 text-primary-text underline-offset-4 shadow-none hover:underline active:scale-100 motion-expressive:active:scale-100',
|
|
27
29
|
},
|
|
28
30
|
},
|
|
29
31
|
size: {
|
|
@@ -2,7 +2,7 @@ import type { StylesEntry } from '../../utils/registry'
|
|
|
2
2
|
import { focusRing, transition } from '../../utils/styles'
|
|
3
3
|
import { tv } from '../../utils/tv'
|
|
4
4
|
|
|
5
|
-
export const calendarStyles = tv({
|
|
5
|
+
export const calendarStyles = /* @__PURE__ */ tv({
|
|
6
6
|
slots: {
|
|
7
7
|
root: 'relative w-fit p-3 text-small text-foreground',
|
|
8
8
|
months: 'relative flex flex-col gap-6 sm:flex-row',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { themedBorder, transition } from '../../utils/styles'
|
|
2
2
|
import { tv, type VariantProps } from '../../utils/tv'
|
|
3
3
|
|
|
4
|
-
export const cardStyles = tv({
|
|
4
|
+
export const cardStyles = /* @__PURE__ */ tv({
|
|
5
5
|
slots: {
|
|
6
6
|
root: ['flex flex-col rounded-lg text-foreground', themedBorder, transition],
|
|
7
7
|
header: 'flex flex-col gap-1',
|
|
@@ -2,7 +2,7 @@ import type { StylesEntry } from '../../utils/registry'
|
|
|
2
2
|
import { focusRing, transition } from '../../utils/styles'
|
|
3
3
|
import { tv, type VariantProps } from '../../utils/tv'
|
|
4
4
|
|
|
5
|
-
export const carouselStyles = tv({
|
|
5
|
+
export const carouselStyles = /* @__PURE__ */ tv({
|
|
6
6
|
slots: {
|
|
7
7
|
root: 'relative',
|
|
8
8
|
viewport: 'overflow-hidden rounded-lg',
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Checkbox as CheckboxPrimitive } from 'radix-ui'
|
|
2
|
-
import type
|
|
2
|
+
import { type ComponentProps, useState } from 'react'
|
|
3
3
|
import { useComponentConfig } from '../../hooks/use-component-config'
|
|
4
4
|
import { CheckIcon, MinusIcon } from '../../internal/icons'
|
|
5
5
|
import { focusRing, themedBorder, transition } from '../../utils/styles'
|
|
6
6
|
import { tv } from '../../utils/tv'
|
|
7
7
|
import { useFieldControl } from '../field/field-context'
|
|
8
8
|
|
|
9
|
-
export const checkboxStyles = tv({
|
|
9
|
+
export const checkboxStyles = /* @__PURE__ */ tv({
|
|
10
10
|
slots: {
|
|
11
11
|
root: [
|
|
12
12
|
'peer mt-0.5 inline-flex size-4 shrink-0 cursor-pointer items-center justify-center rounded-xs border-input bg-surface text-primary-foreground shadow-xs',
|
|
@@ -18,20 +18,35 @@ export const checkboxStyles = tv({
|
|
|
18
18
|
'data-[state=indeterminate]:border-primary data-[state=indeterminate]:bg-primary',
|
|
19
19
|
'disabled:cursor-not-allowed disabled:opacity-50',
|
|
20
20
|
],
|
|
21
|
-
indicator:
|
|
21
|
+
indicator: [
|
|
22
|
+
'flex items-center justify-center [&>svg]:size-3.5 [&>svg]:stroke-[3]',
|
|
23
|
+
// Draws the tick when the user checks it (not for boxes already checked on load).
|
|
24
|
+
'[--glyph-draw-length:24] data-[animate]:[&_path]:animate-draw',
|
|
25
|
+
],
|
|
22
26
|
},
|
|
23
27
|
})
|
|
24
28
|
|
|
25
29
|
export function Checkbox(inProps: ComponentProps<typeof CheckboxPrimitive.Root>) {
|
|
26
|
-
const [{ className, ...rest }, slots] = useComponentConfig(
|
|
30
|
+
const [{ className, onCheckedChange, ...rest }, slots] = useComponentConfig(
|
|
31
|
+
'Checkbox',
|
|
32
|
+
useFieldControl(inProps),
|
|
33
|
+
)
|
|
27
34
|
const s = checkboxStyles()
|
|
35
|
+
const [changed, setChanged] = useState(false)
|
|
28
36
|
return (
|
|
29
37
|
<CheckboxPrimitive.Root
|
|
30
38
|
data-slot="checkbox"
|
|
31
39
|
className={s.root({ class: [slots.root, className] })}
|
|
40
|
+
onCheckedChange={(checked) => {
|
|
41
|
+
setChanged(true)
|
|
42
|
+
onCheckedChange?.(checked)
|
|
43
|
+
}}
|
|
32
44
|
{...rest}
|
|
33
45
|
>
|
|
34
|
-
<CheckboxPrimitive.Indicator
|
|
46
|
+
<CheckboxPrimitive.Indicator
|
|
47
|
+
data-animate={changed || undefined}
|
|
48
|
+
className={s.indicator({ class: slots.indicator })}
|
|
49
|
+
>
|
|
35
50
|
{rest.checked === 'indeterminate' ? <MinusIcon /> : <CheckIcon />}
|
|
36
51
|
</CheckboxPrimitive.Indicator>
|
|
37
52
|
</CheckboxPrimitive.Root>
|
|
@@ -2,13 +2,13 @@ import type { StylesEntry } from '../../utils/registry'
|
|
|
2
2
|
import { themedBorder } from '../../utils/styles'
|
|
3
3
|
import { tv, type VariantProps } from '../../utils/tv'
|
|
4
4
|
|
|
5
|
-
export const codeStyles = tv({
|
|
5
|
+
export const codeStyles = /* @__PURE__ */ tv({
|
|
6
6
|
slots: {
|
|
7
7
|
base: 'rounded-xs bg-muted px-[0.3em] py-[0.15em] font-mono text-[0.875em] text-foreground',
|
|
8
8
|
},
|
|
9
9
|
})
|
|
10
10
|
|
|
11
|
-
export const codeBlockStyles = tv({
|
|
11
|
+
export const codeBlockStyles = /* @__PURE__ */ tv({
|
|
12
12
|
slots: {
|
|
13
13
|
root: ['relative min-w-0 overflow-hidden rounded-lg border-border bg-subtle', themedBorder],
|
|
14
14
|
header:
|
|
@@ -4,7 +4,7 @@ import { useComponentConfig } from '../../hooks/use-component-config'
|
|
|
4
4
|
import type { StylesEntry } from '../../utils/registry'
|
|
5
5
|
import { tv } from '../../utils/tv'
|
|
6
6
|
|
|
7
|
-
export const collapsibleStyles = tv({
|
|
7
|
+
export const collapsibleStyles = /* @__PURE__ */ tv({
|
|
8
8
|
slots: {
|
|
9
9
|
root: '',
|
|
10
10
|
trigger: '',
|