h2o-library 1.7.1 → 2.0.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/CHANGELOG.md +74 -0
- package/README.md +149 -13
- package/assets/logo.svg +3 -0
- package/dist/charts/charts/index.d.ts +8 -0
- package/dist/charts/charts/src/bar/chart-bar.d.ts +27 -0
- package/dist/charts/charts/src/chart/chart.d.ts +35 -0
- package/dist/charts/charts/src/chart-tooltip-styles.d.ts +4 -0
- package/dist/charts/charts/src/gantt/chart-gantt.d.ts +25 -0
- package/dist/charts/charts/src/heatmap/chart-heatmap.d.ts +18 -0
- package/dist/charts/charts/src/legend/legend.d.ts +19 -0
- package/dist/charts/charts/src/line/chart-line.d.ts +28 -0
- package/dist/charts/charts/src/pie/chart-pie.d.ts +19 -0
- package/dist/charts/charts/src/recharts-tick-props.d.ts +11 -0
- package/dist/charts/charts/src/stat/chart-stat.d.ts +21 -0
- package/dist/charts/components/index.d.ts +36 -0
- package/dist/charts/components/src/accordion/accordion.d.ts +32 -0
- package/dist/charts/components/src/button/button.d.ts +41 -0
- package/dist/charts/components/src/calendar/calendar.d.ts +43 -0
- package/dist/charts/components/src/checkbox/checkbox.d.ts +58 -0
- package/dist/charts/components/src/chip/chip.d.ts +37 -0
- package/dist/charts/components/src/compact-multi-select/compact-multi-select.d.ts +52 -0
- package/dist/charts/components/src/content-switch/content-switch.d.ts +39 -0
- package/dist/charts/components/src/date-picker/date-picker.d.ts +35 -0
- package/dist/charts/components/src/date-range-picker/date-range-picker.d.ts +39 -0
- package/dist/charts/components/src/dropdown/dropdown.d.ts +53 -0
- package/dist/charts/components/src/expandable-table/expandable-table.d.ts +61 -0
- package/dist/charts/components/src/icon/icon-paths.d.ts +3 -0
- package/dist/charts/components/src/icon/icon.d.ts +28 -0
- package/dist/charts/components/src/input/input.d.ts +29 -0
- package/dist/charts/components/src/loader/loader.d.ts +12 -0
- package/dist/charts/components/src/logo/logo.d.ts +12 -0
- package/dist/charts/components/src/message/message.d.ts +34 -0
- package/dist/charts/components/src/modal/modal.d.ts +35 -0
- package/dist/charts/components/src/month-calendar/month-calendar.d.ts +28 -0
- package/dist/charts/components/src/multi-menu/multi-menu.d.ts +39 -0
- package/dist/charts/components/src/multi-select/multi-select.d.ts +49 -0
- package/dist/charts/components/src/pagination/pagination.d.ts +33 -0
- package/dist/charts/components/src/popover/popover.d.ts +53 -0
- package/dist/charts/components/src/radio/radio.d.ts +31 -0
- package/dist/charts/components/src/radio-group/radio-group.d.ts +42 -0
- package/dist/charts/components/src/segmented-toggle/segmented-toggle.d.ts +50 -0
- package/dist/charts/components/src/side-panel/side-panel.d.ts +36 -0
- package/dist/charts/components/src/skeleton/skeleton.d.ts +15 -0
- package/dist/charts/components/src/slider/slider.d.ts +46 -0
- package/dist/charts/components/src/table/table-utils.d.ts +2 -0
- package/dist/charts/components/src/table/table.d.ts +78 -0
- package/dist/charts/components/src/tabs/tabs.d.ts +35 -0
- package/dist/charts/components/src/tag/tag.d.ts +26 -0
- package/dist/charts/components/src/textarea/textarea.d.ts +33 -0
- package/dist/charts/components/src/time-picker/time-picker.d.ts +31 -0
- package/dist/charts/components/src/toast/toast.d.ts +54 -0
- package/dist/charts/components/src/toggle/toggle.d.ts +35 -0
- package/dist/charts/components/src/tooltip/tooltip.d.ts +38 -0
- package/dist/charts/entries/charts.d.ts +4 -0
- package/dist/charts/entries/hooks.d.ts +4 -0
- package/dist/charts/entries/types.d.ts +9 -0
- package/dist/charts/entries/utils.d.ts +5 -0
- package/dist/charts/hooks/index.d.ts +18 -0
- package/dist/charts/hooks/src/use-click-outside.d.ts +13 -0
- package/dist/charts/hooks/src/use-copy-to-clipboard.d.ts +15 -0
- package/dist/charts/hooks/src/use-debounce.d.ts +9 -0
- package/dist/charts/hooks/src/use-dropdown-position.d.ts +10 -0
- package/dist/charts/hooks/src/use-event-listener.d.ts +15 -0
- package/dist/charts/hooks/src/use-focus-trap.d.ts +8 -0
- package/dist/charts/hooks/src/use-hover.d.ts +10 -0
- package/dist/charts/hooks/src/use-idle.d.ts +15 -0
- package/dist/charts/hooks/src/use-interval.d.ts +7 -0
- package/dist/charts/hooks/src/use-key-press.d.ts +13 -0
- package/dist/charts/hooks/src/use-long-press.d.ts +20 -0
- package/dist/charts/hooks/src/use-media-query.d.ts +7 -0
- package/dist/charts/hooks/src/use-mouse.d.ts +12 -0
- package/dist/charts/hooks/src/use-timeout.d.ts +8 -0
- package/dist/charts/hooks/src/use-toast.d.ts +15 -0
- package/dist/charts/hooks/src/use-window-scroll.d.ts +10 -0
- package/dist/charts/hooks/src/use-window-size.d.ts +10 -0
- package/dist/charts/index.cjs.js +2 -0
- package/dist/charts/index.d.ts +4 -0
- package/dist/charts/index.js +2 -0
- package/dist/charts/src/bar/chart-bar.d.ts +27 -0
- package/dist/charts/src/chart/chart.d.ts +35 -0
- package/dist/charts/src/chart-tooltip-styles.d.ts +4 -0
- package/dist/charts/src/gantt/chart-gantt.d.ts +25 -0
- package/dist/charts/src/heatmap/chart-heatmap.d.ts +18 -0
- package/dist/charts/src/legend/legend.d.ts +19 -0
- package/dist/charts/src/line/chart-line.d.ts +28 -0
- package/dist/charts/src/pie/chart-pie.d.ts +19 -0
- package/dist/charts/src/recharts-tick-props.d.ts +11 -0
- package/dist/charts/src/stat/chart-stat.d.ts +21 -0
- package/dist/charts/types/index.d.ts +2 -0
- package/dist/charts/types/src/icon.d.ts +1 -0
- package/dist/charts/utils/index.d.ts +7 -0
- package/dist/charts/utils/src/array.d.ts +24 -0
- package/dist/charts/utils/src/async.d.ts +32 -0
- package/dist/charts/utils/src/cn.d.ts +9 -0
- package/dist/charts/utils/src/format.d.ts +20 -0
- package/dist/charts/utils/src/math.d.ts +22 -0
- package/dist/charts/utils/src/object.d.ts +36 -0
- package/dist/charts/utils/src/string.d.ts +24 -0
- package/dist/components/index.d.ts +36 -41
- package/dist/components/src/accordion/accordion.d.ts +32 -0
- package/dist/components/src/button/button.d.ts +41 -0
- package/dist/components/src/calendar/calendar.d.ts +43 -0
- package/dist/components/src/checkbox/checkbox.d.ts +58 -0
- package/dist/components/src/chip/chip.d.ts +37 -0
- package/dist/components/src/compact-multi-select/compact-multi-select.d.ts +52 -0
- package/dist/components/src/content-switch/content-switch.d.ts +39 -0
- package/dist/components/src/date-picker/date-picker.d.ts +35 -0
- package/dist/components/src/date-range-picker/date-range-picker.d.ts +39 -0
- package/dist/components/src/dropdown/dropdown.d.ts +53 -0
- package/dist/components/src/expandable-table/expandable-table.d.ts +61 -0
- package/dist/components/src/icon/icon-paths.d.ts +3 -0
- package/dist/components/src/icon/icon.d.ts +28 -0
- package/dist/components/src/input/input.d.ts +29 -0
- package/dist/components/src/loader/loader.d.ts +12 -0
- package/dist/components/src/logo/logo.d.ts +12 -0
- package/dist/components/src/message/message.d.ts +34 -0
- package/dist/components/src/modal/modal.d.ts +35 -0
- package/dist/components/src/month-calendar/month-calendar.d.ts +28 -0
- package/dist/components/src/multi-menu/multi-menu.d.ts +39 -0
- package/dist/components/src/multi-select/multi-select.d.ts +49 -0
- package/dist/components/src/pagination/pagination.d.ts +33 -0
- package/dist/components/src/popover/popover.d.ts +53 -0
- package/dist/components/src/radio/radio.d.ts +31 -0
- package/dist/components/src/radio-group/radio-group.d.ts +42 -0
- package/dist/components/src/segmented-toggle/segmented-toggle.d.ts +50 -0
- package/dist/components/src/side-panel/side-panel.d.ts +36 -0
- package/dist/components/src/skeleton/skeleton.d.ts +15 -0
- package/dist/components/src/slider/slider.d.ts +46 -0
- package/dist/components/src/table/table-utils.d.ts +2 -0
- package/dist/components/src/table/table.d.ts +78 -0
- package/dist/components/src/tabs/tabs.d.ts +35 -0
- package/dist/components/src/tag/tag.d.ts +26 -0
- package/dist/components/src/textarea/textarea.d.ts +33 -0
- package/dist/components/src/time-picker/time-picker.d.ts +31 -0
- package/dist/components/src/toast/toast.d.ts +54 -0
- package/dist/components/src/toggle/toggle.d.ts +35 -0
- package/dist/components/src/tooltip/tooltip.d.ts +38 -0
- package/dist/entries/charts.d.ts +4 -0
- package/dist/entries/hooks.d.ts +4 -0
- package/dist/entries/types.d.ts +9 -0
- package/dist/entries/utils.d.ts +5 -0
- package/dist/esm/charts/charts.css +377 -0
- package/dist/esm/charts/index.d.ts +8 -0
- package/dist/esm/charts/src/bar/chart-bar.d.ts +27 -0
- package/dist/esm/charts/src/chart/chart.d.ts +35 -0
- package/dist/esm/charts/src/chart-tooltip-styles.d.ts +4 -0
- package/dist/esm/charts/src/gantt/chart-gantt.d.ts +25 -0
- package/dist/esm/charts/src/heatmap/chart-heatmap.d.ts +18 -0
- package/dist/{css/src → esm/charts/src/legend}/legend.css +6 -1
- package/dist/esm/charts/src/legend/legend.d.ts +19 -0
- package/dist/esm/charts/src/line/chart-line.d.ts +28 -0
- package/dist/esm/charts/src/pie/chart-pie.d.ts +19 -0
- package/dist/esm/charts/src/recharts-tick-props.d.ts +11 -0
- package/dist/esm/charts/src/stat/chart-stat.d.ts +21 -0
- package/dist/esm/components/index.d.ts +36 -41
- package/dist/{css/src → esm/components/src/accordion}/accordion.css +8 -2
- package/dist/esm/components/src/accordion/accordion.d.ts +32 -0
- package/dist/esm/components/src/accordion/accordion.js +2 -0
- package/dist/{css/src → esm/components/src/button}/button.css +19 -8
- package/dist/esm/components/src/button/button.d.ts +41 -0
- package/dist/esm/components/src/button/button.js +2 -0
- package/dist/{css/src → esm/components/src/calendar}/calendar.css +62 -96
- package/dist/esm/components/src/calendar/calendar.d.ts +43 -0
- package/dist/esm/components/src/calendar/calendar.js +2 -0
- package/dist/{css/src → esm/components/src/checkbox}/checkbox.css +97 -19
- package/dist/esm/components/src/checkbox/checkbox.d.ts +58 -0
- package/dist/esm/components/src/checkbox/checkbox.js +2 -0
- package/dist/esm/components/src/chip/chip.css +123 -0
- package/dist/esm/components/src/chip/chip.d.ts +37 -0
- package/dist/esm/components/src/chip/chip.js +2 -0
- package/dist/{css/src → esm/components/src/compact-multi-select}/compact-multi-select.css +14 -38
- package/dist/esm/components/src/compact-multi-select/compact-multi-select.d.ts +52 -0
- package/dist/esm/components/src/compact-multi-select/compact-multi-select.js +2 -0
- package/dist/{css/src → esm/components/src/content-switch}/content-switch.css +17 -1
- package/dist/esm/components/src/content-switch/content-switch.d.ts +39 -0
- package/dist/esm/components/src/content-switch/content-switch.js +2 -0
- package/dist/esm/components/src/date-picker/date-picker.css +160 -0
- package/dist/esm/components/src/date-picker/date-picker.d.ts +35 -0
- package/dist/esm/components/src/date-picker/date-picker.js +2 -0
- package/dist/{css/src → esm/components/src/date-range-picker}/date-range-picker.css +3 -4
- package/dist/esm/components/src/date-range-picker/date-range-picker.d.ts +39 -0
- package/dist/esm/components/src/date-range-picker/date-range-picker.js +2 -0
- package/dist/{css/src → esm/components/src/dropdown}/dropdown.css +26 -13
- package/dist/esm/components/src/dropdown/dropdown.d.ts +53 -0
- package/dist/esm/components/src/dropdown/dropdown.js +2 -0
- package/dist/{css/src → esm/components/src/expandable-table}/expandable-table.css +27 -10
- package/dist/esm/components/src/expandable-table/expandable-table.d.ts +61 -0
- package/dist/esm/components/src/expandable-table/expandable-table.js +2 -0
- package/dist/esm/components/src/icon/icon-paths.d.ts +3 -0
- package/dist/esm/components/src/icon/icon-paths.js +2 -0
- package/dist/esm/components/src/icon/icon.d.ts +28 -0
- package/dist/esm/components/src/icon/icon.js +2 -0
- package/dist/{css/src → esm/components/src/input}/input.css +11 -12
- package/dist/esm/components/src/input/input.d.ts +29 -0
- package/dist/esm/components/src/input/input.js +2 -0
- package/dist/esm/components/src/loader/loader.css +109 -0
- package/dist/esm/components/src/loader/loader.d.ts +12 -0
- package/dist/esm/components/src/loader/loader.js +2 -0
- package/dist/esm/components/src/logo/logo.d.ts +12 -0
- package/dist/esm/components/src/logo/logo.js +2 -0
- package/dist/{css/src → esm/components/src/message}/message.css +21 -0
- package/dist/esm/components/src/message/message.d.ts +34 -0
- package/dist/esm/components/src/message/message.js +2 -0
- package/dist/{css/src → esm/components/src/modal}/modal.css +36 -2
- package/dist/esm/components/src/modal/modal.d.ts +35 -0
- package/dist/esm/components/src/modal/modal.js +2 -0
- package/dist/{css/src → esm/components/src/month-calendar}/month-calendar.css +1 -2
- package/dist/esm/components/src/month-calendar/month-calendar.d.ts +28 -0
- package/dist/esm/components/src/month-calendar/month-calendar.js +2 -0
- package/dist/{css/src → esm/components/src/multi-menu}/multi-menu.css +40 -54
- package/dist/esm/components/src/multi-menu/multi-menu.d.ts +39 -0
- package/dist/esm/components/src/multi-menu/multi-menu.js +2 -0
- package/dist/{css/src → esm/components/src/multi-select}/multi-select.css +94 -2
- package/dist/esm/components/src/multi-select/multi-select.d.ts +49 -0
- package/dist/esm/components/src/multi-select/multi-select.js +2 -0
- package/dist/{css/src → esm/components/src/pagination}/pagination.css +17 -0
- package/dist/esm/components/src/pagination/pagination.d.ts +33 -0
- package/dist/esm/components/src/pagination/pagination.js +2 -0
- package/dist/{css/src → esm/components/src/popover}/popover.css +11 -2
- package/dist/esm/components/src/popover/popover.d.ts +53 -0
- package/dist/esm/components/src/popover/popover.js +2 -0
- package/dist/esm/components/src/radio/radio.css +196 -0
- package/dist/esm/components/src/radio/radio.d.ts +31 -0
- package/dist/esm/components/src/radio/radio.js +2 -0
- package/dist/esm/components/src/radio-group/radio-group.css +93 -0
- package/dist/esm/components/src/radio-group/radio-group.d.ts +42 -0
- package/dist/esm/components/src/radio-group/radio-group.js +2 -0
- package/dist/{css/src → esm/components/src/segmented-toggle}/segmented-toggle.css +1 -1
- package/dist/esm/components/src/segmented-toggle/segmented-toggle.d.ts +50 -0
- package/dist/esm/components/src/segmented-toggle/segmented-toggle.js +2 -0
- package/dist/{css/src → esm/components/src/side-panel}/side-panel.css +62 -9
- package/dist/esm/components/src/side-panel/side-panel.d.ts +36 -0
- package/dist/esm/components/src/side-panel/side-panel.js +2 -0
- package/dist/esm/components/src/skeleton/skeleton.css +79 -0
- package/dist/esm/components/src/skeleton/skeleton.d.ts +15 -0
- package/dist/esm/components/src/skeleton/skeleton.js +2 -0
- package/dist/esm/components/src/slider/slider.css +211 -0
- package/dist/esm/components/src/slider/slider.d.ts +46 -0
- package/dist/esm/components/src/slider/slider.js +2 -0
- package/dist/esm/components/src/table/table-utils.d.ts +2 -0
- package/dist/esm/components/src/table/table-utils.js +2 -0
- package/dist/{css/src → esm/components/src/table}/table.css +5 -9
- package/dist/esm/components/src/table/table.d.ts +78 -0
- package/dist/esm/components/src/table/table.js +2 -0
- package/dist/{css/src → esm/components/src/tabs}/tabs.css +32 -0
- package/dist/esm/components/src/tabs/tabs.d.ts +35 -0
- package/dist/esm/components/src/tabs/tabs.js +2 -0
- package/dist/{css/src → esm/components/src/tag}/tag.css +17 -2
- package/dist/esm/components/src/tag/tag.d.ts +26 -0
- package/dist/esm/components/src/tag/tag.js +2 -0
- package/dist/{css/src → esm/components/src/textarea}/textarea.css +28 -31
- package/dist/esm/components/src/textarea/textarea.d.ts +33 -0
- package/dist/esm/components/src/textarea/textarea.js +2 -0
- package/dist/esm/components/src/time-picker/time-picker.css +249 -0
- package/dist/esm/components/src/time-picker/time-picker.d.ts +31 -0
- package/dist/esm/components/src/time-picker/time-picker.js +2 -0
- package/dist/{css/src → esm/components/src/toast}/toast.css +50 -12
- package/dist/esm/components/src/toast/toast.d.ts +54 -0
- package/dist/esm/components/src/toast/toast.js +2 -0
- package/dist/{css/src → esm/components/src/toggle}/toggle.css +102 -12
- package/dist/esm/components/src/toggle/toggle.d.ts +35 -0
- package/dist/esm/components/src/toggle/toggle.js +2 -0
- package/dist/{css/src → esm/components/src/tooltip}/tooltip.css +47 -7
- package/dist/esm/components/src/tooltip/tooltip.d.ts +38 -0
- package/dist/esm/components/src/tooltip/tooltip.js +2 -0
- package/dist/esm/entries/charts.d.ts +4 -0
- package/dist/esm/entries/hooks.d.ts +4 -0
- package/dist/esm/entries/types.d.ts +9 -0
- package/dist/esm/entries/utils.d.ts +5 -0
- package/dist/esm/hooks/index.d.ts +16 -0
- package/dist/esm/hooks/src/use-click-outside.d.ts +10 -1
- package/dist/esm/hooks/src/use-click-outside.js +2 -0
- package/dist/esm/hooks/src/use-copy-to-clipboard.d.ts +15 -0
- package/dist/esm/hooks/src/use-debounce.d.ts +9 -0
- package/dist/esm/hooks/src/use-dropdown-position.d.ts +10 -0
- package/dist/esm/hooks/src/use-dropdown-position.js +2 -0
- package/dist/esm/hooks/src/use-event-listener.d.ts +15 -0
- package/dist/esm/hooks/src/use-focus-trap.d.ts +8 -0
- package/dist/esm/hooks/src/use-focus-trap.js +2 -0
- package/dist/esm/hooks/src/use-hover.d.ts +10 -0
- package/dist/esm/hooks/src/use-idle.d.ts +15 -0
- package/dist/esm/hooks/src/use-interval.d.ts +7 -0
- package/dist/esm/hooks/src/use-key-press.d.ts +13 -0
- package/dist/esm/hooks/src/use-long-press.d.ts +20 -0
- package/dist/esm/hooks/src/use-media-query.d.ts +6 -0
- package/dist/esm/hooks/src/use-mouse.d.ts +12 -0
- package/dist/esm/hooks/src/use-timeout.d.ts +8 -0
- package/dist/esm/hooks/src/use-toast.d.ts +15 -0
- package/dist/esm/hooks/src/use-window-scroll.d.ts +10 -0
- package/dist/esm/hooks/src/use-window-size.d.ts +10 -0
- package/dist/esm/index.d.ts +0 -4
- package/dist/esm/index.js +1 -23
- package/dist/esm/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js +2 -0
- package/dist/esm/node_modules/@dnd-kit/core/dist/core.esm.js +2 -0
- package/dist/esm/node_modules/@dnd-kit/sortable/dist/sortable.esm.js +2 -0
- package/dist/esm/node_modules/@dnd-kit/utilities/dist/utilities.esm.js +2 -0
- package/dist/esm/node_modules/clsx/dist/clsx.mjs.js +2 -0
- package/dist/esm/node_modules/tailwind-merge/dist/bundle-mjs.mjs.js +2 -0
- package/dist/esm/node_modules/tslib/tslib.es6.mjs.js +2 -0
- package/dist/esm/styles/index.css +68 -0
- package/dist/esm/types/src/icon.d.ts +1 -1
- package/dist/esm/utils/index.d.ts +7 -2
- package/dist/esm/utils/src/array.d.ts +24 -0
- package/dist/esm/utils/src/async.d.ts +32 -0
- package/dist/esm/utils/src/cn.d.ts +9 -0
- package/dist/esm/utils/src/cn.js +2 -0
- package/dist/esm/utils/src/format.d.ts +20 -0
- package/dist/esm/utils/src/math.d.ts +22 -0
- package/dist/esm/utils/src/math.js +2 -0
- package/dist/esm/utils/src/object.d.ts +36 -0
- package/dist/esm/utils/src/string.d.ts +24 -0
- package/dist/hooks/charts/index.d.ts +8 -0
- package/dist/hooks/charts/src/bar/chart-bar.d.ts +27 -0
- package/dist/hooks/charts/src/chart/chart.d.ts +35 -0
- package/dist/hooks/charts/src/chart-tooltip-styles.d.ts +4 -0
- package/dist/hooks/charts/src/gantt/chart-gantt.d.ts +25 -0
- package/dist/hooks/charts/src/heatmap/chart-heatmap.d.ts +18 -0
- package/dist/hooks/charts/src/legend/legend.d.ts +19 -0
- package/dist/hooks/charts/src/line/chart-line.d.ts +28 -0
- package/dist/hooks/charts/src/pie/chart-pie.d.ts +19 -0
- package/dist/hooks/charts/src/recharts-tick-props.d.ts +11 -0
- package/dist/hooks/charts/src/stat/chart-stat.d.ts +21 -0
- package/dist/hooks/components/index.d.ts +36 -0
- package/dist/hooks/components/src/accordion/accordion.d.ts +32 -0
- package/dist/hooks/components/src/button/button.d.ts +41 -0
- package/dist/hooks/components/src/calendar/calendar.d.ts +43 -0
- package/dist/hooks/components/src/checkbox/checkbox.d.ts +58 -0
- package/dist/hooks/components/src/chip/chip.d.ts +37 -0
- package/dist/hooks/components/src/compact-multi-select/compact-multi-select.d.ts +52 -0
- package/dist/hooks/components/src/content-switch/content-switch.d.ts +39 -0
- package/dist/hooks/components/src/date-picker/date-picker.d.ts +35 -0
- package/dist/hooks/components/src/date-range-picker/date-range-picker.d.ts +39 -0
- package/dist/hooks/components/src/dropdown/dropdown.d.ts +53 -0
- package/dist/hooks/components/src/expandable-table/expandable-table.d.ts +61 -0
- package/dist/hooks/components/src/icon/icon-paths.d.ts +3 -0
- package/dist/hooks/components/src/icon/icon.d.ts +28 -0
- package/dist/hooks/components/src/input/input.d.ts +29 -0
- package/dist/hooks/components/src/loader/loader.d.ts +12 -0
- package/dist/hooks/components/src/logo/logo.d.ts +12 -0
- package/dist/hooks/components/src/message/message.d.ts +34 -0
- package/dist/hooks/components/src/modal/modal.d.ts +35 -0
- package/dist/hooks/components/src/month-calendar/month-calendar.d.ts +28 -0
- package/dist/hooks/components/src/multi-menu/multi-menu.d.ts +39 -0
- package/dist/hooks/components/src/multi-select/multi-select.d.ts +49 -0
- package/dist/hooks/components/src/pagination/pagination.d.ts +33 -0
- package/dist/hooks/components/src/popover/popover.d.ts +53 -0
- package/dist/hooks/components/src/radio/radio.d.ts +31 -0
- package/dist/hooks/components/src/radio-group/radio-group.d.ts +42 -0
- package/dist/hooks/components/src/segmented-toggle/segmented-toggle.d.ts +50 -0
- package/dist/hooks/components/src/side-panel/side-panel.d.ts +36 -0
- package/dist/hooks/components/src/skeleton/skeleton.d.ts +15 -0
- package/dist/hooks/components/src/slider/slider.d.ts +46 -0
- package/dist/hooks/components/src/table/table-utils.d.ts +2 -0
- package/dist/hooks/components/src/table/table.d.ts +78 -0
- package/dist/hooks/components/src/tabs/tabs.d.ts +35 -0
- package/dist/hooks/components/src/tag/tag.d.ts +26 -0
- package/dist/hooks/components/src/textarea/textarea.d.ts +33 -0
- package/dist/hooks/components/src/time-picker/time-picker.d.ts +31 -0
- package/dist/hooks/components/src/toast/toast.d.ts +54 -0
- package/dist/hooks/components/src/toggle/toggle.d.ts +35 -0
- package/dist/hooks/components/src/tooltip/tooltip.d.ts +38 -0
- package/dist/hooks/entries/charts.d.ts +4 -0
- package/dist/hooks/entries/hooks.d.ts +4 -0
- package/dist/hooks/entries/types.d.ts +9 -0
- package/dist/hooks/entries/utils.d.ts +5 -0
- package/dist/hooks/hooks/index.d.ts +18 -0
- package/dist/hooks/hooks/src/use-click-outside.d.ts +13 -0
- package/dist/hooks/hooks/src/use-copy-to-clipboard.d.ts +15 -0
- package/dist/hooks/hooks/src/use-debounce.d.ts +9 -0
- package/dist/hooks/hooks/src/use-dropdown-position.d.ts +10 -0
- package/dist/hooks/hooks/src/use-event-listener.d.ts +15 -0
- package/dist/hooks/hooks/src/use-focus-trap.d.ts +8 -0
- package/dist/hooks/hooks/src/use-hover.d.ts +10 -0
- package/dist/hooks/hooks/src/use-idle.d.ts +15 -0
- package/dist/hooks/hooks/src/use-interval.d.ts +7 -0
- package/dist/hooks/hooks/src/use-key-press.d.ts +13 -0
- package/dist/hooks/hooks/src/use-long-press.d.ts +20 -0
- package/dist/hooks/hooks/src/use-media-query.d.ts +7 -0
- package/dist/hooks/hooks/src/use-mouse.d.ts +12 -0
- package/dist/hooks/hooks/src/use-timeout.d.ts +8 -0
- package/dist/hooks/hooks/src/use-toast.d.ts +15 -0
- package/dist/hooks/hooks/src/use-window-scroll.d.ts +10 -0
- package/dist/hooks/hooks/src/use-window-size.d.ts +10 -0
- package/dist/hooks/index.cjs.js +2 -0
- package/dist/hooks/index.d.ts +4 -2
- package/dist/hooks/index.js +2 -0
- package/dist/hooks/src/use-click-outside.d.ts +10 -1
- package/dist/hooks/src/use-copy-to-clipboard.d.ts +15 -0
- package/dist/hooks/src/use-debounce.d.ts +9 -0
- package/dist/hooks/src/use-dropdown-position.d.ts +10 -0
- package/dist/hooks/src/use-event-listener.d.ts +15 -0
- package/dist/hooks/src/use-focus-trap.d.ts +8 -0
- package/dist/hooks/src/use-hover.d.ts +10 -0
- package/dist/hooks/src/use-idle.d.ts +15 -0
- package/dist/hooks/src/use-interval.d.ts +7 -0
- package/dist/hooks/src/use-key-press.d.ts +13 -0
- package/dist/hooks/src/use-long-press.d.ts +20 -0
- package/dist/hooks/src/use-media-query.d.ts +6 -0
- package/dist/hooks/src/use-mouse.d.ts +12 -0
- package/dist/hooks/src/use-timeout.d.ts +8 -0
- package/dist/hooks/src/use-toast.d.ts +15 -0
- package/dist/hooks/src/use-window-scroll.d.ts +10 -0
- package/dist/hooks/src/use-window-size.d.ts +10 -0
- package/dist/hooks/types/index.d.ts +2 -0
- package/dist/hooks/types/src/icon.d.ts +1 -0
- package/dist/hooks/utils/index.d.ts +7 -0
- package/dist/hooks/utils/src/array.d.ts +24 -0
- package/dist/hooks/utils/src/async.d.ts +32 -0
- package/dist/hooks/utils/src/cn.d.ts +9 -0
- package/dist/hooks/utils/src/format.d.ts +20 -0
- package/dist/hooks/utils/src/math.d.ts +22 -0
- package/dist/hooks/utils/src/object.d.ts +36 -0
- package/dist/hooks/utils/src/string.d.ts +24 -0
- package/dist/index.cjs.js +1 -23
- package/dist/index.css +2 -0
- package/dist/index.d.ts +4 -4
- package/dist/styles/index.css +68 -0
- package/dist/types/charts/index.d.ts +8 -0
- package/dist/types/charts/src/bar/chart-bar.d.ts +27 -0
- package/dist/types/charts/src/chart/chart.d.ts +35 -0
- package/dist/types/charts/src/chart-tooltip-styles.d.ts +4 -0
- package/dist/types/charts/src/gantt/chart-gantt.d.ts +25 -0
- package/dist/types/charts/src/heatmap/chart-heatmap.d.ts +18 -0
- package/dist/types/charts/src/legend/legend.d.ts +19 -0
- package/dist/types/charts/src/line/chart-line.d.ts +28 -0
- package/dist/types/charts/src/pie/chart-pie.d.ts +19 -0
- package/dist/types/charts/src/recharts-tick-props.d.ts +11 -0
- package/dist/types/charts/src/stat/chart-stat.d.ts +21 -0
- package/dist/types/components/index.d.ts +36 -0
- package/dist/types/components/src/accordion/accordion.d.ts +32 -0
- package/dist/types/components/src/button/button.d.ts +41 -0
- package/dist/types/components/src/calendar/calendar.d.ts +43 -0
- package/dist/types/components/src/checkbox/checkbox.d.ts +58 -0
- package/dist/types/components/src/chip/chip.d.ts +37 -0
- package/dist/types/components/src/compact-multi-select/compact-multi-select.d.ts +52 -0
- package/dist/types/components/src/content-switch/content-switch.d.ts +39 -0
- package/dist/types/components/src/date-picker/date-picker.d.ts +35 -0
- package/dist/types/components/src/date-range-picker/date-range-picker.d.ts +39 -0
- package/dist/types/components/src/dropdown/dropdown.d.ts +53 -0
- package/dist/types/components/src/expandable-table/expandable-table.d.ts +61 -0
- package/dist/types/components/src/icon/icon-paths.d.ts +3 -0
- package/dist/types/components/src/icon/icon.d.ts +28 -0
- package/dist/types/components/src/input/input.d.ts +29 -0
- package/dist/types/components/src/loader/loader.d.ts +12 -0
- package/dist/types/components/src/logo/logo.d.ts +12 -0
- package/dist/types/components/src/message/message.d.ts +34 -0
- package/dist/types/components/src/modal/modal.d.ts +35 -0
- package/dist/types/components/src/month-calendar/month-calendar.d.ts +28 -0
- package/dist/types/components/src/multi-menu/multi-menu.d.ts +39 -0
- package/dist/types/components/src/multi-select/multi-select.d.ts +49 -0
- package/dist/types/components/src/pagination/pagination.d.ts +33 -0
- package/dist/types/components/src/popover/popover.d.ts +53 -0
- package/dist/types/components/src/radio/radio.d.ts +31 -0
- package/dist/types/components/src/radio-group/radio-group.d.ts +42 -0
- package/dist/types/components/src/segmented-toggle/segmented-toggle.d.ts +50 -0
- package/dist/types/components/src/side-panel/side-panel.d.ts +36 -0
- package/dist/types/components/src/skeleton/skeleton.d.ts +15 -0
- package/dist/types/components/src/slider/slider.d.ts +46 -0
- package/dist/types/components/src/table/table-utils.d.ts +2 -0
- package/dist/types/components/src/table/table.d.ts +78 -0
- package/dist/types/components/src/tabs/tabs.d.ts +35 -0
- package/dist/types/components/src/tag/tag.d.ts +26 -0
- package/dist/types/components/src/textarea/textarea.d.ts +33 -0
- package/dist/types/components/src/time-picker/time-picker.d.ts +31 -0
- package/dist/types/components/src/toast/toast.d.ts +54 -0
- package/dist/types/components/src/toggle/toggle.d.ts +35 -0
- package/dist/types/components/src/tooltip/tooltip.d.ts +38 -0
- package/dist/types/entries/charts.d.ts +4 -0
- package/dist/types/entries/hooks.d.ts +4 -0
- package/dist/types/entries/types.d.ts +9 -0
- package/dist/types/entries/utils.d.ts +5 -0
- package/dist/types/hooks/index.d.ts +18 -0
- package/dist/types/hooks/src/use-click-outside.d.ts +13 -0
- package/dist/types/hooks/src/use-copy-to-clipboard.d.ts +15 -0
- package/dist/types/hooks/src/use-debounce.d.ts +9 -0
- package/dist/types/hooks/src/use-dropdown-position.d.ts +10 -0
- package/dist/types/hooks/src/use-event-listener.d.ts +15 -0
- package/dist/types/hooks/src/use-focus-trap.d.ts +8 -0
- package/dist/types/hooks/src/use-hover.d.ts +10 -0
- package/dist/types/hooks/src/use-idle.d.ts +15 -0
- package/dist/types/hooks/src/use-interval.d.ts +7 -0
- package/dist/types/hooks/src/use-key-press.d.ts +13 -0
- package/dist/types/hooks/src/use-long-press.d.ts +20 -0
- package/dist/types/hooks/src/use-media-query.d.ts +7 -0
- package/dist/types/hooks/src/use-mouse.d.ts +12 -0
- package/dist/types/hooks/src/use-timeout.d.ts +8 -0
- package/dist/types/hooks/src/use-toast.d.ts +15 -0
- package/dist/types/hooks/src/use-window-scroll.d.ts +10 -0
- package/dist/types/hooks/src/use-window-size.d.ts +10 -0
- package/dist/types/index.cjs.js +2 -0
- package/dist/types/index.d.ts +9 -2
- package/dist/types/index.js +2 -0
- package/dist/types/src/icon.d.ts +1 -1
- package/dist/types/types/index.d.ts +2 -0
- package/dist/types/types/src/icon.d.ts +1 -0
- package/dist/types/utils/index.d.ts +7 -0
- package/dist/types/utils/src/array.d.ts +24 -0
- package/dist/types/utils/src/async.d.ts +32 -0
- package/dist/types/utils/src/cn.d.ts +9 -0
- package/dist/types/utils/src/format.d.ts +20 -0
- package/dist/types/utils/src/math.d.ts +22 -0
- package/dist/types/utils/src/object.d.ts +36 -0
- package/dist/types/utils/src/string.d.ts +24 -0
- package/dist/utils/charts/index.d.ts +8 -0
- package/dist/utils/charts/src/bar/chart-bar.d.ts +27 -0
- package/dist/utils/charts/src/chart/chart.d.ts +35 -0
- package/dist/utils/charts/src/chart-tooltip-styles.d.ts +4 -0
- package/dist/utils/charts/src/gantt/chart-gantt.d.ts +25 -0
- package/dist/utils/charts/src/heatmap/chart-heatmap.d.ts +18 -0
- package/dist/utils/charts/src/legend/legend.d.ts +19 -0
- package/dist/utils/charts/src/line/chart-line.d.ts +28 -0
- package/dist/utils/charts/src/pie/chart-pie.d.ts +19 -0
- package/dist/utils/charts/src/recharts-tick-props.d.ts +11 -0
- package/dist/utils/charts/src/stat/chart-stat.d.ts +21 -0
- package/dist/utils/components/index.d.ts +36 -0
- package/dist/utils/components/src/accordion/accordion.d.ts +32 -0
- package/dist/utils/components/src/button/button.d.ts +41 -0
- package/dist/utils/components/src/calendar/calendar.d.ts +43 -0
- package/dist/utils/components/src/checkbox/checkbox.d.ts +58 -0
- package/dist/utils/components/src/chip/chip.d.ts +37 -0
- package/dist/utils/components/src/compact-multi-select/compact-multi-select.d.ts +52 -0
- package/dist/utils/components/src/content-switch/content-switch.d.ts +39 -0
- package/dist/utils/components/src/date-picker/date-picker.d.ts +35 -0
- package/dist/utils/components/src/date-range-picker/date-range-picker.d.ts +39 -0
- package/dist/utils/components/src/dropdown/dropdown.d.ts +53 -0
- package/dist/utils/components/src/expandable-table/expandable-table.d.ts +61 -0
- package/dist/utils/components/src/icon/icon-paths.d.ts +3 -0
- package/dist/utils/components/src/icon/icon.d.ts +28 -0
- package/dist/utils/components/src/input/input.d.ts +29 -0
- package/dist/utils/components/src/loader/loader.d.ts +12 -0
- package/dist/utils/components/src/logo/logo.d.ts +12 -0
- package/dist/utils/components/src/message/message.d.ts +34 -0
- package/dist/utils/components/src/modal/modal.d.ts +35 -0
- package/dist/utils/components/src/month-calendar/month-calendar.d.ts +28 -0
- package/dist/utils/components/src/multi-menu/multi-menu.d.ts +39 -0
- package/dist/utils/components/src/multi-select/multi-select.d.ts +49 -0
- package/dist/utils/components/src/pagination/pagination.d.ts +33 -0
- package/dist/utils/components/src/popover/popover.d.ts +53 -0
- package/dist/utils/components/src/radio/radio.d.ts +31 -0
- package/dist/utils/components/src/radio-group/radio-group.d.ts +42 -0
- package/dist/utils/components/src/segmented-toggle/segmented-toggle.d.ts +50 -0
- package/dist/utils/components/src/side-panel/side-panel.d.ts +36 -0
- package/dist/utils/components/src/skeleton/skeleton.d.ts +15 -0
- package/dist/utils/components/src/slider/slider.d.ts +46 -0
- package/dist/utils/components/src/table/table-utils.d.ts +2 -0
- package/dist/utils/components/src/table/table.d.ts +78 -0
- package/dist/utils/components/src/tabs/tabs.d.ts +35 -0
- package/dist/utils/components/src/tag/tag.d.ts +26 -0
- package/dist/utils/components/src/textarea/textarea.d.ts +33 -0
- package/dist/utils/components/src/time-picker/time-picker.d.ts +31 -0
- package/dist/utils/components/src/toast/toast.d.ts +54 -0
- package/dist/utils/components/src/toggle/toggle.d.ts +35 -0
- package/dist/utils/components/src/tooltip/tooltip.d.ts +38 -0
- package/dist/utils/entries/charts.d.ts +4 -0
- package/dist/utils/entries/hooks.d.ts +4 -0
- package/dist/utils/entries/types.d.ts +9 -0
- package/dist/utils/entries/utils.d.ts +5 -0
- package/dist/utils/hooks/index.d.ts +18 -0
- package/dist/utils/hooks/src/use-click-outside.d.ts +13 -0
- package/dist/utils/hooks/src/use-copy-to-clipboard.d.ts +15 -0
- package/dist/utils/hooks/src/use-debounce.d.ts +9 -0
- package/dist/utils/hooks/src/use-dropdown-position.d.ts +10 -0
- package/dist/utils/hooks/src/use-event-listener.d.ts +15 -0
- package/dist/utils/hooks/src/use-focus-trap.d.ts +8 -0
- package/dist/utils/hooks/src/use-hover.d.ts +10 -0
- package/dist/utils/hooks/src/use-idle.d.ts +15 -0
- package/dist/utils/hooks/src/use-interval.d.ts +7 -0
- package/dist/utils/hooks/src/use-key-press.d.ts +13 -0
- package/dist/utils/hooks/src/use-long-press.d.ts +20 -0
- package/dist/utils/hooks/src/use-media-query.d.ts +7 -0
- package/dist/utils/hooks/src/use-mouse.d.ts +12 -0
- package/dist/utils/hooks/src/use-timeout.d.ts +8 -0
- package/dist/utils/hooks/src/use-toast.d.ts +15 -0
- package/dist/utils/hooks/src/use-window-scroll.d.ts +10 -0
- package/dist/utils/hooks/src/use-window-size.d.ts +10 -0
- package/dist/utils/index.cjs.js +2 -0
- package/dist/utils/index.d.ts +5 -2
- package/dist/utils/index.js +2 -0
- package/dist/utils/src/array.d.ts +24 -0
- package/dist/utils/src/async.d.ts +32 -0
- package/dist/utils/src/cn.d.ts +9 -0
- package/dist/utils/src/format.d.ts +20 -0
- package/dist/utils/src/math.d.ts +22 -0
- package/dist/utils/src/object.d.ts +36 -0
- package/dist/utils/src/string.d.ts +24 -0
- package/dist/utils/types/index.d.ts +2 -0
- package/dist/utils/types/src/icon.d.ts +1 -0
- package/dist/utils/utils/index.d.ts +7 -0
- package/dist/utils/utils/src/array.d.ts +24 -0
- package/dist/utils/utils/src/async.d.ts +32 -0
- package/dist/utils/utils/src/cn.d.ts +9 -0
- package/dist/utils/utils/src/format.d.ts +20 -0
- package/dist/utils/utils/src/math.d.ts +22 -0
- package/dist/utils/utils/src/object.d.ts +36 -0
- package/dist/utils/utils/src/string.d.ts +24 -0
- package/package.json +66 -6
- package/dist/components/src/accordion.d.ts +0 -13
- package/dist/components/src/button.d.ts +0 -15
- package/dist/components/src/calendar.d.ts +0 -19
- package/dist/components/src/chart-bar.d.ts +0 -26
- package/dist/components/src/chart-heatmap.d.ts +0 -20
- package/dist/components/src/chart-line.d.ts +0 -25
- package/dist/components/src/chart-pie.d.ts +0 -16
- package/dist/components/src/chart-stat.d.ts +0 -20
- package/dist/components/src/chart.d.ts +0 -36
- package/dist/components/src/checkbox.d.ts +0 -18
- package/dist/components/src/chip.d.ts +0 -13
- package/dist/components/src/compact-multi-select.d.ts +0 -25
- package/dist/components/src/content-switch.d.ts +0 -15
- package/dist/components/src/date-range-picker.d.ts +0 -12
- package/dist/components/src/dropdown.d.ts +0 -22
- package/dist/components/src/expandable-table.d.ts +0 -39
- package/dist/components/src/expandable.d.ts +0 -9
- package/dist/components/src/icon.d.ts +0 -9
- package/dist/components/src/input.d.ts +0 -16
- package/dist/components/src/legend.d.ts +0 -17
- package/dist/components/src/loader.d.ts +0 -5
- package/dist/components/src/logo.d.ts +0 -5
- package/dist/components/src/message.d.ts +0 -12
- package/dist/components/src/modal.d.ts +0 -16
- package/dist/components/src/month-calendar.d.ts +0 -10
- package/dist/components/src/multi-menu.d.ts +0 -18
- package/dist/components/src/multi-select.d.ts +0 -18
- package/dist/components/src/pagination.d.ts +0 -14
- package/dist/components/src/popover.d.ts +0 -16
- package/dist/components/src/radio-group.d.ts +0 -17
- package/dist/components/src/radio.d.ts +0 -6
- package/dist/components/src/segmented-toggle.d.ts +0 -20
- package/dist/components/src/side-panel.d.ts +0 -16
- package/dist/components/src/status.d.ts +0 -8
- package/dist/components/src/table.d.ts +0 -43
- package/dist/components/src/tabs.d.ts +0 -10
- package/dist/components/src/tag.d.ts +0 -9
- package/dist/components/src/textarea.d.ts +0 -15
- package/dist/components/src/toast.d.ts +0 -20
- package/dist/components/src/toggle.d.ts +0 -9
- package/dist/components/src/tooltip.d.ts +0 -18
- package/dist/css/index.css +0 -1
- package/dist/css/src/chart.css +0 -76
- package/dist/css/src/charts.css +0 -136
- package/dist/css/src/chip.css +0 -54
- package/dist/css/src/index.css +0 -70
- package/dist/css/src/loader.css +0 -18
- package/dist/css/src/radio-group.css +0 -44
- package/dist/css/src/radio.css +0 -146
- package/dist/css/src/search.css +0 -148
- package/dist/css/src/status.css +0 -31
- package/dist/esm/components/src/accordion.d.ts +0 -13
- package/dist/esm/components/src/button.d.ts +0 -15
- package/dist/esm/components/src/calendar.d.ts +0 -19
- package/dist/esm/components/src/chart-bar.d.ts +0 -26
- package/dist/esm/components/src/chart-heatmap.d.ts +0 -20
- package/dist/esm/components/src/chart-line.d.ts +0 -25
- package/dist/esm/components/src/chart-pie.d.ts +0 -16
- package/dist/esm/components/src/chart-stat.d.ts +0 -20
- package/dist/esm/components/src/chart.d.ts +0 -36
- package/dist/esm/components/src/checkbox.d.ts +0 -18
- package/dist/esm/components/src/chip.d.ts +0 -13
- package/dist/esm/components/src/compact-multi-select.d.ts +0 -25
- package/dist/esm/components/src/content-switch.d.ts +0 -15
- package/dist/esm/components/src/date-range-picker.d.ts +0 -12
- package/dist/esm/components/src/dropdown.d.ts +0 -22
- package/dist/esm/components/src/expandable-table.d.ts +0 -39
- package/dist/esm/components/src/expandable.d.ts +0 -9
- package/dist/esm/components/src/icon.d.ts +0 -9
- package/dist/esm/components/src/input.d.ts +0 -16
- package/dist/esm/components/src/legend.d.ts +0 -17
- package/dist/esm/components/src/loader.d.ts +0 -5
- package/dist/esm/components/src/logo.d.ts +0 -5
- package/dist/esm/components/src/message.d.ts +0 -12
- package/dist/esm/components/src/modal.d.ts +0 -16
- package/dist/esm/components/src/month-calendar.d.ts +0 -10
- package/dist/esm/components/src/multi-menu.d.ts +0 -18
- package/dist/esm/components/src/multi-select.d.ts +0 -18
- package/dist/esm/components/src/pagination.d.ts +0 -14
- package/dist/esm/components/src/popover.d.ts +0 -16
- package/dist/esm/components/src/radio-group.d.ts +0 -17
- package/dist/esm/components/src/radio.d.ts +0 -6
- package/dist/esm/components/src/segmented-toggle.d.ts +0 -20
- package/dist/esm/components/src/side-panel.d.ts +0 -16
- package/dist/esm/components/src/status.d.ts +0 -8
- package/dist/esm/components/src/table.d.ts +0 -43
- package/dist/esm/components/src/tabs.d.ts +0 -10
- package/dist/esm/components/src/tag.d.ts +0 -9
- package/dist/esm/components/src/textarea.d.ts +0 -15
- package/dist/esm/components/src/toast.d.ts +0 -20
- package/dist/esm/components/src/toggle.d.ts +0 -9
- package/dist/esm/components/src/tooltip.d.ts +0 -18
- package/dist/esm/css/index.css +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/index.cjs.js.map +0 -1
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import "./popover.css";
|
|
2
|
+
import type { ReactNode } from "react";
|
|
3
|
+
import type React from "react";
|
|
4
|
+
/**
|
|
5
|
+
* **Controlled** headless popover: `isOpen` / `setIsOpen` and children compose with `PopOverTrigger` + `PopOverContent`.
|
|
6
|
+
*
|
|
7
|
+
* @property {boolean} isOpen - When `true`, `PopOverContent` computes position and listens for outside close.
|
|
8
|
+
* @property {(isOpen: boolean) => void} setIsOpen - Toggle or close the panel (same contract as `useState` setter).
|
|
9
|
+
* @property {React.ReactNode} children - Must include one `PopOverTrigger` and one `PopOverContent` (siblings under this provider).
|
|
10
|
+
* @property {"left"|"right"} [alignment] - Horizontal align of the panel vs the trigger. Default `"left"`.
|
|
11
|
+
* @property {number} [offset] - Gap in px between trigger bottom and panel top. Default `8`.
|
|
12
|
+
*/
|
|
13
|
+
interface PopOverProps {
|
|
14
|
+
isOpen: boolean;
|
|
15
|
+
setIsOpen: (isOpen: boolean) => void;
|
|
16
|
+
children: React.ReactNode;
|
|
17
|
+
alignment?: "left" | "right";
|
|
18
|
+
/** Gap in px between trigger and floating panel. Default: 8. */
|
|
19
|
+
offset?: number;
|
|
20
|
+
className?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* React context root for a floating popover: shares `isOpen` and trigger ref with trigger + content.
|
|
24
|
+
*
|
|
25
|
+
* @param {PopOverProps} props - `isOpen` / `setIsOpen` and `children` tree.
|
|
26
|
+
* @returns {JSX.Element} The provider and optional `className` on the wrapper `div`.
|
|
27
|
+
*/
|
|
28
|
+
export declare const PopOver: ({ children, isOpen, setIsOpen, alignment, offset, className, }: PopOverProps) => import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
/**
|
|
30
|
+
* The toggling surface for a popover: click / Enter / Space flips `isOpen`; `ref` targets this `div` for anchoring.
|
|
31
|
+
*
|
|
32
|
+
* @param {object} props
|
|
33
|
+
* @param {ReactNode} props.children - Trigger contents (e.g. a `Button`).
|
|
34
|
+
* @param {string} [props.className] - Extra classes on the trigger `div`.
|
|
35
|
+
* @returns {JSX.Element} A `div` with `role="button"`, focusable, and `aria-expanded` bound to `isOpen`.
|
|
36
|
+
*/
|
|
37
|
+
export declare const PopOverTrigger: ({ children, className, }: {
|
|
38
|
+
children: ReactNode;
|
|
39
|
+
className?: string;
|
|
40
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
41
|
+
/**
|
|
42
|
+
* Portal-mounted panel: positions under (or flips above) the trigger, closes on outside click and Escape.
|
|
43
|
+
*
|
|
44
|
+
* @param {object} props
|
|
45
|
+
* @param {ReactNode} props.children - Panel body.
|
|
46
|
+
* @param {string} [props.className] - Extra classes on the floating `div`.
|
|
47
|
+
* @returns {JSX.Element | null} The fixed panel when `isOpen`, else `null`.
|
|
48
|
+
*/
|
|
49
|
+
export declare const PopOverContent: ({ children, className, }: {
|
|
50
|
+
children: ReactNode;
|
|
51
|
+
className?: string;
|
|
52
|
+
}) => JSX.Element | null;
|
|
53
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import"./popover.css";import{createContext as t,useRef as n,useContext as r,useState as i,useEffect as o}from"react";import{createPortal as s}from"react-dom";const d=t(null),l=({children:t,isOpen:r,setIsOpen:i,alignment:o="left",offset:s=8,className:l=""})=>{const c=n(null);return e(d.Provider,{value:{isOpen:r,setIsOpen:i,triggerRef:c,alignment:o,offset:s},children:e("div",{className:"popover-container"+(l?` ${l}`:""),children:t})})},c=({children:t,className:n=""})=>{const i=r(d);if(!i)throw new Error("PopOverTrigger must be used within PopOver");return e("div",{role:"button",tabIndex:0,ref:i.triggerRef,className:"popover-trigger"+(n?` ${n}`:""),"aria-haspopup":"dialog","aria-expanded":i.isOpen,onClick:()=>i.setIsOpen(!i.isOpen),onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),i.setIsOpen(!i.isOpen))},children:t})},p=({children:t,className:l=""})=>{const c=r(d),p=n(null),[a,u]=i(null);if(!c)throw new Error("PopOverContent must be used within PopOver");return o((()=>{const e=()=>{if(c.triggerRef.current&&p.current){const e=c.triggerRef.current.getBoundingClientRect(),t=p.current.getBoundingClientRect();let n=e.bottom+c.offset,r="left"===c.alignment?e.left:e.right-t.width;r+t.width>window.innerWidth&&(r=window.innerWidth-t.width-16),r<0&&(r=16),n+t.height>window.innerHeight&&(n=e.top-t.height-c.offset),u({top:n,left:r})}};return c.isOpen&&(e(),window.addEventListener("resize",e),window.addEventListener("scroll",e,{passive:!0})),()=>{window.removeEventListener("resize",e),window.removeEventListener("scroll",e)}}),[c.isOpen,c.alignment,c.offset,c.triggerRef]),o((()=>{const e=e=>{p.current&&!p.current.contains(e.target)&&c.triggerRef.current&&!c.triggerRef.current.contains(e.target)&&c.setIsOpen(!1)},t=e=>{"Escape"===e.key&&c.setIsOpen(!1)};return c.isOpen&&(document.addEventListener("mousedown",e),document.addEventListener("keydown",t)),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}}),[c]),c.isOpen?s(e("div",{className:"popover-content"+(l?` ${l}`:""),ref:p,style:{position:"fixed",top:a?`${a.top}px`:0,left:a?`${a.left}px`:0,visibility:a?"visible":"hidden"},children:t}),document.body):null};export{l as PopOver,p as PopOverContent,c as PopOverTrigger};
|
|
2
|
+
//# sourceMappingURL=popover.js.map
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/* Size variants — set on .radio-wrapper so variables cascade to note/error too */
|
|
2
|
+
|
|
3
|
+
.radio--sm {
|
|
4
|
+
--rb-size: 16px;
|
|
5
|
+
--rb-dot: 6px;
|
|
6
|
+
font-size: 0.75rem;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.radio--md {
|
|
10
|
+
--rb-size: 20px;
|
|
11
|
+
--rb-dot: 8px;
|
|
12
|
+
font-size: 0.875rem;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.radio--lg {
|
|
16
|
+
--rb-size: 24px;
|
|
17
|
+
--rb-dot: 10px;
|
|
18
|
+
font-size: 1rem;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.radio-wrapper {
|
|
22
|
+
display: flex;
|
|
23
|
+
flex-direction: column;
|
|
24
|
+
gap: 0.25rem;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.radio-label {
|
|
28
|
+
position: relative;
|
|
29
|
+
display: flex;
|
|
30
|
+
align-items: center;
|
|
31
|
+
gap: 10px;
|
|
32
|
+
cursor: pointer;
|
|
33
|
+
user-select: none;
|
|
34
|
+
min-width: 0;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.radio-label input {
|
|
38
|
+
position: absolute;
|
|
39
|
+
opacity: 0;
|
|
40
|
+
width: 0;
|
|
41
|
+
height: 0;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.radio-button {
|
|
45
|
+
position: relative;
|
|
46
|
+
display: inline-block;
|
|
47
|
+
flex-shrink: 0;
|
|
48
|
+
width: var(--rb-size, 20px);
|
|
49
|
+
height: var(--rb-size, 20px);
|
|
50
|
+
border: 2px solid hsl(var(--muted));
|
|
51
|
+
border-radius: 50%;
|
|
52
|
+
transition: all 0.2s;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.radio-label:not(:has(input:disabled)):hover .radio-button {
|
|
56
|
+
border-color: hsl(var(--primary));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.radio-button::after {
|
|
60
|
+
content: "";
|
|
61
|
+
position: absolute;
|
|
62
|
+
top: 50%;
|
|
63
|
+
left: 50%;
|
|
64
|
+
width: var(--rb-dot, 8px);
|
|
65
|
+
height: var(--rb-dot, 8px);
|
|
66
|
+
border-radius: 50%;
|
|
67
|
+
background-color: white;
|
|
68
|
+
transform: translate(-50%, -50%) scale(0);
|
|
69
|
+
transition: transform 0.2s;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.radio-label input:checked + .radio-button {
|
|
73
|
+
border-color: hsl(var(--primary));
|
|
74
|
+
background-color: hsl(var(--primary));
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.radio-label:not(:has(input:disabled)):hover input:checked + .radio-button {
|
|
78
|
+
border-color: hsl(var(--primary-300));
|
|
79
|
+
background-color: hsl(var(--primary-300));
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.radio-label input:checked + .radio-button::after {
|
|
83
|
+
transform: translate(-50%, -50%) scale(1);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.radio-label:has(input:disabled) {
|
|
87
|
+
cursor: not-allowed;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.radio-label input:disabled + .radio-button {
|
|
91
|
+
border-color: hsl(var(--muted));
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.radio-label input:checked:disabled + .radio-button {
|
|
95
|
+
opacity: 0.5;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.radio-label input:disabled + .radio-button + .radio-label-content .radio-text {
|
|
99
|
+
color: hsl(var(--muted));
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.radio-label-content {
|
|
103
|
+
display: flex;
|
|
104
|
+
flex-direction: column;
|
|
105
|
+
gap: 2px;
|
|
106
|
+
min-width: 0;
|
|
107
|
+
flex: 1;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.radio-label-row {
|
|
111
|
+
display: flex;
|
|
112
|
+
align-items: center;
|
|
113
|
+
gap: 0.25rem;
|
|
114
|
+
min-width: 0;
|
|
115
|
+
overflow: hidden;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.radio-text {
|
|
119
|
+
color: hsl(var(--foreground));
|
|
120
|
+
min-width: 0;
|
|
121
|
+
overflow: hidden;
|
|
122
|
+
white-space: nowrap;
|
|
123
|
+
text-overflow: ellipsis;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.radio-description {
|
|
127
|
+
font-size: 0.8125rem;
|
|
128
|
+
color: hsl(var(--muted-200));
|
|
129
|
+
font-weight: normal;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/* Note and error */
|
|
133
|
+
.radio-note {
|
|
134
|
+
font-size: 0.75rem;
|
|
135
|
+
color: hsl(var(--muted-200));
|
|
136
|
+
padding-left: calc(var(--rb-size, 20px) + 10px);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.radio-error-message {
|
|
140
|
+
font-size: 0.75rem;
|
|
141
|
+
color: hsl(var(--destructive));
|
|
142
|
+
padding-left: calc(var(--rb-size, 20px) + 10px);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/* Tooltip icon */
|
|
146
|
+
.radio-info-icon {
|
|
147
|
+
color: hsl(var(--muted-200));
|
|
148
|
+
flex-shrink: 0;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.radio-info-icon:hover {
|
|
152
|
+
color: hsl(var(--primary));
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/* Card variant */
|
|
156
|
+
.radio-card {
|
|
157
|
+
padding: 0.5rem 0.7rem;
|
|
158
|
+
border: 1.5px solid hsl(var(--muted));
|
|
159
|
+
border-radius: 0.5rem;
|
|
160
|
+
transition:
|
|
161
|
+
border-color 0.2s,
|
|
162
|
+
background-color 0.2s;
|
|
163
|
+
width: 100%;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.radio-card:not(:has(input:disabled)):hover {
|
|
167
|
+
border-color: hsl(var(--primary-200));
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.radio-card:has(input:checked) {
|
|
171
|
+
border-color: hsl(var(--primary));
|
|
172
|
+
background-color: hsl(var(--primary) / 0.04);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.radio-card:not(:has(input:disabled)):hover .radio-card:has(input:checked) {
|
|
176
|
+
border-color: hsl(var(--primary-200));
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
.radio-card:has(input:checked) .radio-text {
|
|
180
|
+
color: hsl(var(--primary));
|
|
181
|
+
font-weight: 500;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
.radio-card:has(input:checked) .radio-button {
|
|
185
|
+
border-color: hsl(var(--primary));
|
|
186
|
+
background-color: hsl(var(--primary));
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.radio-card:has(input:checked:disabled) {
|
|
190
|
+
border-color: hsl(var(--primary-disabled));
|
|
191
|
+
background-color: transparent;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.radio-card:has(input:checked:disabled) .radio-text {
|
|
195
|
+
color: hsl(var(--primary-disabled));
|
|
196
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import "./radio.css";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import type { TooltipPosition } from "../../../types";
|
|
4
|
+
/**
|
|
5
|
+
* Single radio control: extends `HTMLInputElement` except `type` and design-system `size`.
|
|
6
|
+
*
|
|
7
|
+
* @property {string} [label] - Legend next to the circle.
|
|
8
|
+
* @property {string} [description] - Subtext under the label in card mode.
|
|
9
|
+
* @property {boolean} [isCard] - Large card layout vs inline. Default `false`.
|
|
10
|
+
* @property {"sm"|"md"|"lg"} [size] - Visual scale. Default `"md"`.
|
|
11
|
+
*/
|
|
12
|
+
interface RadioProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "type" | "size"> {
|
|
13
|
+
label?: string;
|
|
14
|
+
description?: string;
|
|
15
|
+
containerClassName?: string;
|
|
16
|
+
error?: string;
|
|
17
|
+
note?: string;
|
|
18
|
+
size?: "sm" | "md" | "lg";
|
|
19
|
+
isCard?: boolean;
|
|
20
|
+
tooltip?: string;
|
|
21
|
+
tooltipPosition?: TooltipPosition;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Radio `input` with optional label row, validation text, and info tooltip on the label.
|
|
25
|
+
*
|
|
26
|
+
* @param {RadioProps} props - Native `checked`/`onChange` plus label and `isCard`.
|
|
27
|
+
* @param {React.Ref<HTMLInputElement>} ref - Forwarded to the `<input type="radio">`.
|
|
28
|
+
* @returns {React.ReactElement} Wrapper `div` with `label` and optional error/note.
|
|
29
|
+
*/
|
|
30
|
+
export declare const Radio: React.ForwardRefExoticComponent<RadioProps & React.RefAttributes<HTMLInputElement>>;
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{__rest as o}from"../../../node_modules/tslib/tslib.es6.mjs.js";import{jsx as i,jsxs as a}from"react/jsx-runtime";import"./radio.css";import r from"react";import{Icon as e}from"../icon/icon.js";const s=r.forwardRef(((r,s)=>{var{label:t,description:l,containerClassName:n="",error:d,note:c,size:m="md",isCard:p=!1,tooltip:N,tooltipPosition:b="top"}=r,f=o(r,["label","description","containerClassName","error","note","size","isCard","tooltip","tooltipPosition"]);const h=N?i(e,{icon:"info",size:14,tooltip:N,className:"radio-info-icon",tooltipPosition:b}):null,u=t||l?a("div",{className:"radio-label-content",children:[t&&a("div",{className:"radio-label-row",children:[i("span",{className:"radio-text",children:t}),h]}),l&&i("span",{className:"radio-description",children:l})]}):null;return a("div",{className:`radio-wrapper radio--${m} ${n}`,children:[a("label",{className:"radio-label"+(p?" radio-card":""),children:[i("input",Object.assign({type:"radio",ref:s},f)),i("span",{className:"radio-button"}),u]}),c&&!d&&i("span",{className:"radio-note",children:c}),d&&i("span",{className:"radio-error-message",children:d})]})}));s.displayName="Radio";export{s as Radio};
|
|
2
|
+
//# sourceMappingURL=radio.js.map
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
.radio-group {
|
|
2
|
+
display: flex;
|
|
3
|
+
gap: 0.5rem;
|
|
4
|
+
flex-wrap: wrap;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.radio-group-option {
|
|
8
|
+
display: flex;
|
|
9
|
+
align-items: center;
|
|
10
|
+
gap: 0.5rem;
|
|
11
|
+
padding: 0.5rem 1rem;
|
|
12
|
+
border-radius: var(--radius-md);
|
|
13
|
+
border: 1.5px solid hsl(var(--muted));
|
|
14
|
+
background: transparent;
|
|
15
|
+
color: hsl(var(--foreground));
|
|
16
|
+
cursor: pointer;
|
|
17
|
+
transition:
|
|
18
|
+
border-color 0.2s,
|
|
19
|
+
background-color 0.2s,
|
|
20
|
+
color 0.2s;
|
|
21
|
+
font-size: 0.875rem;
|
|
22
|
+
font-family: inherit;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.radio-group-option:not(.radio-group-option-disabled):hover {
|
|
26
|
+
border-color: hsl(var(--primary));
|
|
27
|
+
color: hsl(var(--primary));
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/* Selected state */
|
|
31
|
+
.radio-group-option-selected {
|
|
32
|
+
border-color: hsl(var(--primary));
|
|
33
|
+
background-color: hsl(var(--primary) / 0.06);
|
|
34
|
+
color: hsl(var(--primary));
|
|
35
|
+
font-weight: 500;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.radio-group-option-selected:not(.radio-group-option-disabled):hover {
|
|
39
|
+
border-color: hsl(var(--primary-200));
|
|
40
|
+
background-color: hsl(var(--primary-200) / 0.08);
|
|
41
|
+
color: hsl(var(--primary-200));
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.radio-group-option-label {
|
|
45
|
+
line-height: 1;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.radio-group-option-icon {
|
|
49
|
+
flex-shrink: 0;
|
|
50
|
+
color: currentColor;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.radio-group-option-info {
|
|
54
|
+
flex-shrink: 0;
|
|
55
|
+
color: hsl(var(--muted-200));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.radio-group-option-selected .radio-group-option-info {
|
|
59
|
+
color: hsl(var(--primary) / 0.6);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/* Status dot */
|
|
63
|
+
.radio-group-option-dot {
|
|
64
|
+
width: 0.5rem;
|
|
65
|
+
height: 0.5rem;
|
|
66
|
+
border-radius: 50%;
|
|
67
|
+
flex-shrink: 0;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.radio-group-option-dot--active {
|
|
71
|
+
background-color: hsl(var(--success));
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.radio-group-option-dot--inactive {
|
|
75
|
+
background-color: hsl(var(--destructive));
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/* Disabled */
|
|
79
|
+
.radio-group-option-disabled {
|
|
80
|
+
opacity: 0.4;
|
|
81
|
+
cursor: not-allowed;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/* Size variants */
|
|
85
|
+
.radio-group--sm .radio-group-option {
|
|
86
|
+
padding: 0.25rem 0.75rem;
|
|
87
|
+
font-size: 0.75rem;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.radio-group--lg .radio-group-option {
|
|
91
|
+
padding: 0.75rem 1.25rem;
|
|
92
|
+
font-size: 1rem;
|
|
93
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import "./radio-group.css";
|
|
2
|
+
import type { IconType, TooltipPosition } from "../../../types";
|
|
3
|
+
/**
|
|
4
|
+
* One entry in a `RadioGroup` `options` array.
|
|
5
|
+
* @property {string} label - Option title.
|
|
6
|
+
* @property {string} value - Emitted to `onChange` when selected.
|
|
7
|
+
* @property {import("../../../types").IconType} [icon] - Optional leading icon.
|
|
8
|
+
* @property {"active"|"inactive"} [dot] - Optional status dot style when no icon.
|
|
9
|
+
*/
|
|
10
|
+
export interface RadioOption {
|
|
11
|
+
label: string;
|
|
12
|
+
value: string;
|
|
13
|
+
icon?: IconType;
|
|
14
|
+
dot?: "active" | "inactive";
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
tooltip?: string;
|
|
17
|
+
tooltipPosition?: TooltipPosition;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* **Controlled** radio group: `selected` is the `value` of the chosen `RadioOption`.
|
|
21
|
+
*
|
|
22
|
+
* @property {RadioOption[]} options - The full set of choices.
|
|
23
|
+
* @property {string} selected - Current `value` (must match one option, or be managed by the parent for empty state).
|
|
24
|
+
* @property {(value: string) => void} onChange - Called with the new `value` on selection.
|
|
25
|
+
*/
|
|
26
|
+
interface RadioGroupProps {
|
|
27
|
+
options: RadioOption[];
|
|
28
|
+
selected: string;
|
|
29
|
+
onChange: (value: string) => void;
|
|
30
|
+
ariaLabel?: string;
|
|
31
|
+
size?: "sm" | "md" | "lg";
|
|
32
|
+
className?: string;
|
|
33
|
+
optionClassName?: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Horizontal/vertical list of option “cards” with shared `role="radiogroup"` and keyboard roving.
|
|
37
|
+
*
|
|
38
|
+
* @param {RadioGroupProps} props - `options`, `selected`, and `onChange` are required.
|
|
39
|
+
* @returns {JSX.Element} The radiogroup container and one button per option.
|
|
40
|
+
*/
|
|
41
|
+
export declare const RadioGroup: ({ options, selected, onChange, ariaLabel, size, className, optionClassName, }: RadioGroupProps) => import("react/jsx-runtime").JSX.Element;
|
|
42
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as o,jsxs as i}from"react/jsx-runtime";import"./radio-group.css";import{Icon as a}from"../icon/icon.js";const r=({options:r,selected:e,onChange:t,ariaLabel:l,size:d="md",className:p="",optionClassName:s=""})=>o("div",{role:"radiogroup","aria-label":l,className:`radio-group radio-group--${d} ${p}`,children:r.map((r=>{var l;return i("button",{type:"button",onClick:()=>!r.disabled&&t(r.value),disabled:r.disabled,className:`radio-group-option ${e===r.value?"radio-group-option-selected":""} ${r.disabled?"radio-group-option-disabled":""} ${s}`,role:"radio","aria-checked":e===r.value,children:[r.dot&&o("span",{className:`radio-group-option-dot radio-group-option-dot--${r.dot}`}),o("span",{className:"radio-group-option-label",children:r.label}),r.icon&&o(a,{icon:r.icon,size:16,className:"radio-group-option-icon"}),r.tooltip&&o(a,{icon:"info",size:14,tooltip:r.tooltip,tooltipPosition:null!==(l=r.tooltipPosition)&&void 0!==l?l:"top",className:"radio-group-option-info"})]},r.value)}))});export{r as RadioGroup};
|
|
2
|
+
//# sourceMappingURL=radio-group.js.map
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import "./segmented-toggle.css";
|
|
2
|
+
import type React from "react";
|
|
3
|
+
import type { SVGProps } from "react";
|
|
4
|
+
import type { IconType } from "../../../types";
|
|
5
|
+
/** Extra attributes forwarded to `Icon` (per segment). */
|
|
6
|
+
type SegmentedToggleIconProps = Omit<SVGProps<SVGSVGElement>, "children"> & {
|
|
7
|
+
size?: number;
|
|
8
|
+
strokeWidth?: number;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* One segment in a `SegmentedToggle` row.
|
|
12
|
+
*
|
|
13
|
+
* @property {string} label - Button text.
|
|
14
|
+
* @property {string} value - Emitted to `onChange` when that segment is selected.
|
|
15
|
+
* @property {IconType} [icon] - Optional leading icon (per-option `iconProps` fine-tune the `Icon`).
|
|
16
|
+
*/
|
|
17
|
+
export type SegmentedToggleOption = {
|
|
18
|
+
label: string;
|
|
19
|
+
value: string;
|
|
20
|
+
icon?: IconType;
|
|
21
|
+
iconProps?: SegmentedToggleIconProps;
|
|
22
|
+
labelProps?: React.HTMLAttributes<HTMLSpanElement>;
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* **Controlled** `selected` + `onChange` string; `options` render as a connected button group.
|
|
27
|
+
*
|
|
28
|
+
* @property {SegmentedToggleOption[]} options - Segments; may include per-option `disabled`.
|
|
29
|
+
* @property {string} selected - Current `value` (must match an option for correct pressed state).
|
|
30
|
+
* @property {(value: string) => void} onChange - Fires with the option `value` on click or keyboard.
|
|
31
|
+
* @property {string} [ariaLabel] - Accessible name for the `role="radiogroup"` container.
|
|
32
|
+
*/
|
|
33
|
+
interface SegmentedToggleProps {
|
|
34
|
+
options: SegmentedToggleOption[];
|
|
35
|
+
size?: "sm" | "md" | "lg";
|
|
36
|
+
className?: string;
|
|
37
|
+
optionClassName?: string;
|
|
38
|
+
selected: string;
|
|
39
|
+
onChange: (value: string) => void;
|
|
40
|
+
disabled?: boolean;
|
|
41
|
+
ariaLabel?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Horizontal iOS-style segmented control with optional icons, keyboard roving, and `aria-pressed` sync.
|
|
45
|
+
*
|
|
46
|
+
* @param {SegmentedToggleProps} props - `options`, `selected`, and `onChange` are required.
|
|
47
|
+
* @returns {JSX.Element} The `radiogroup` container and one button per option.
|
|
48
|
+
*/
|
|
49
|
+
export declare function SegmentedToggle({ options, size, className, optionClassName, selected, onChange, disabled, ariaLabel, }: SegmentedToggleProps): import("react/jsx-runtime").JSX.Element;
|
|
50
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{__rest as e}from"../../../node_modules/tslib/tslib.es6.mjs.js";import{jsx as o,jsxs as l}from"react/jsx-runtime";import"./segmented-toggle.css";import{useRef as n}from"react";import{Icon as i}from"../icon/icon.js";import{cn as t}from"../../../utils/src/cn.js";const s={sm:16,md:20,lg:24};function a({option:n,size:a}){var r,d,c,m,g,u;const p=null!==(d=null===(r=n.iconProps)||void 0===r?void 0:r.size)&&void 0!==d?d:s[a],v=null!==(c=n.iconProps)&&void 0!==c?c:{},{className:f}=v,b=e(v,["className"]),h=null!==(m=n.labelProps)&&void 0!==m?m:{},{className:N}=h,j=e(h,["className"]);return l("span",{className:"segmented-toggle-option-content",children:[n.icon&&o(i,Object.assign({icon:n.icon},b,{size:null!==(u=null===(g=n.iconProps)||void 0===g?void 0:g.size)&&void 0!==u?u:p,className:t("segmented-toggle-option-icon",f)})),o("span",Object.assign({className:t("segmented-toggle-option-label",N)},j,{children:n.label}))]})}function r({options:e,size:l="md",className:i,optionClassName:s,selected:r,onChange:d,disabled:c=!1,ariaLabel:m}){const g=n(null);return o("div",{ref:g,className:t("segmented-toggle",`segmented-toggle--${l}`,i),role:"radiogroup","aria-label":m,children:e.map(((n,i)=>{const m=c||n.disabled;return o("button",{type:"button",role:"radio","aria-checked":r===n.value,onClick:()=>!m&&d(n.value),disabled:m,onKeyDown:o=>((o,l)=>{var n,i;const t=e.map(((e,o)=>({opt:e,i:o}))).filter((({opt:e})=>!e.disabled&&!c)),s=t.findIndex((({i:e})=>e===l));let a;if("ArrowRight"===o.key){o.preventDefault();const e=t[(s+1)%t.length];a=null==e?void 0:e.i}else if("ArrowLeft"===o.key){o.preventDefault();const e=t[(s-1+t.length)%t.length];a=null==e?void 0:e.i}if(void 0!==a){const o=null===(n=g.current)||void 0===n?void 0:n.querySelectorAll('[role="radio"]');null===(i=null==o?void 0:o[a])||void 0===i||i.focus(),d(e[a].value)}})(o,i),className:t("segmented-toggle-option",s,r===n.value&&"segmented-toggle-option-selected",m&&"segmented-toggle-option-disabled",n.icon&&"segmented-toggle-option-has-icon"),children:o(a,{option:n,size:l})},n.value)}))})}export{r as SegmentedToggle};
|
|
2
|
+
//# sourceMappingURL=segmented-toggle.js.map
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
inset: 0;
|
|
4
4
|
background-color: rgba(0, 0, 0, 0.5);
|
|
5
5
|
display: flex;
|
|
6
|
-
z-index:
|
|
6
|
+
z-index: 400;
|
|
7
7
|
animation: overlayShow 0.15s ease-out;
|
|
8
8
|
}
|
|
9
9
|
|
|
@@ -15,28 +15,49 @@
|
|
|
15
15
|
justify-content: flex-start;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
/* Full-bleed */
|
|
19
|
+
.side-panel-scrim {
|
|
20
|
+
flex: 1 1 0;
|
|
21
|
+
min-width: 0;
|
|
22
|
+
align-self: stretch;
|
|
23
|
+
min-height: 100%;
|
|
24
|
+
border: 0;
|
|
25
|
+
padding: 0;
|
|
26
|
+
margin: 0;
|
|
27
|
+
background: transparent;
|
|
28
|
+
cursor: pointer;
|
|
29
|
+
appearance: none;
|
|
30
|
+
-webkit-tap-highlight-color: transparent;
|
|
31
|
+
}
|
|
32
|
+
|
|
18
33
|
.side-panel {
|
|
19
34
|
background-color: hsl(var(--background));
|
|
20
35
|
width: 100%;
|
|
21
|
-
max-width: 24rem;
|
|
22
36
|
height: 100vh;
|
|
23
37
|
display: flex;
|
|
24
38
|
flex-direction: column;
|
|
25
39
|
}
|
|
26
40
|
|
|
27
|
-
|
|
28
|
-
animation: sidePanelShowRight 0.3s cubic-bezier(0.16, 1, 0.3, 1);
|
|
29
|
-
}
|
|
41
|
+
/* ── Size variants ── */
|
|
30
42
|
|
|
31
|
-
.side-panel
|
|
32
|
-
|
|
43
|
+
.side-panel--sm {
|
|
44
|
+
max-width: 20rem;
|
|
45
|
+
}
|
|
46
|
+
.side-panel--md {
|
|
47
|
+
max-width: 24rem;
|
|
48
|
+
}
|
|
49
|
+
.side-panel--lg {
|
|
50
|
+
max-width: 36rem;
|
|
33
51
|
}
|
|
34
52
|
|
|
53
|
+
/* ── Header ── */
|
|
54
|
+
|
|
35
55
|
.side-panel-header {
|
|
36
56
|
display: flex;
|
|
37
57
|
justify-content: space-between;
|
|
38
58
|
align-items: flex-start;
|
|
39
59
|
padding: 1.5rem;
|
|
60
|
+
flex-shrink: 0;
|
|
40
61
|
}
|
|
41
62
|
|
|
42
63
|
.side-panel-title-container {
|
|
@@ -72,11 +93,43 @@
|
|
|
72
93
|
color: hsl(var(--primary));
|
|
73
94
|
}
|
|
74
95
|
|
|
96
|
+
/* ── Content ── */
|
|
97
|
+
|
|
75
98
|
.side-panel-content {
|
|
76
|
-
overflow:
|
|
99
|
+
overflow-y: auto;
|
|
77
100
|
flex: 1;
|
|
78
101
|
}
|
|
79
102
|
|
|
103
|
+
/* ── Footer ── */
|
|
104
|
+
|
|
105
|
+
.side-panel-footer {
|
|
106
|
+
display: flex;
|
|
107
|
+
justify-content: flex-end;
|
|
108
|
+
gap: 0.5rem;
|
|
109
|
+
padding: 1rem 1.5rem 1.5rem;
|
|
110
|
+
border-top: 1px solid hsl(var(--muted) / 0.3);
|
|
111
|
+
flex-shrink: 0;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/* ── Animations ── */
|
|
115
|
+
|
|
116
|
+
.side-panel-right {
|
|
117
|
+
animation: sidePanelShowRight 0.3s cubic-bezier(0.16, 1, 0.3, 1);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.side-panel-left {
|
|
121
|
+
animation: sidePanelShowLeft 0.3s cubic-bezier(0.16, 1, 0.3, 1);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
@keyframes overlayShow {
|
|
125
|
+
from {
|
|
126
|
+
opacity: 0;
|
|
127
|
+
}
|
|
128
|
+
to {
|
|
129
|
+
opacity: 1;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
80
133
|
@keyframes sidePanelShowRight {
|
|
81
134
|
from {
|
|
82
135
|
opacity: 0;
|
|
@@ -97,4 +150,4 @@
|
|
|
97
150
|
opacity: 1;
|
|
98
151
|
transform: translateX(0);
|
|
99
152
|
}
|
|
100
|
-
}
|
|
153
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import "./side-panel.css";
|
|
2
|
+
import type React from "react";
|
|
3
|
+
/**
|
|
4
|
+
* Slide-in panel (drawer) props: **controlled** `isOpen`; focus trap and Escape close when open.
|
|
5
|
+
*
|
|
6
|
+
* @property {boolean} isOpen - When `true`, mounts the portal and traps focus.
|
|
7
|
+
* @property {() => void} onClose - Called from the close button and Escape.
|
|
8
|
+
* @property {"left"|"right"} [position] - Slide origin. Default `"right"`.
|
|
9
|
+
* @property {"sm"|"md"|"lg"} [size] - Panel width preset. Default `"md"`.
|
|
10
|
+
* @property {React.ReactNode} children - Main scrollable body between header and optional `footer`.
|
|
11
|
+
*/
|
|
12
|
+
interface SidePanelProps {
|
|
13
|
+
isOpen: boolean;
|
|
14
|
+
onClose: () => void;
|
|
15
|
+
position?: "left" | "right";
|
|
16
|
+
size?: "sm" | "md" | "lg";
|
|
17
|
+
title?: string;
|
|
18
|
+
description?: string;
|
|
19
|
+
children: React.ReactNode;
|
|
20
|
+
footer?: React.ReactNode;
|
|
21
|
+
className?: string;
|
|
22
|
+
titleContainerClassName?: string;
|
|
23
|
+
titleClassName?: string;
|
|
24
|
+
descriptionClassName?: string;
|
|
25
|
+
closeButtonClassName?: string;
|
|
26
|
+
headerClassName?: string;
|
|
27
|
+
contentClassName?: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Off-canvas panel with title/description, default close control, and optional `footer` slot.
|
|
31
|
+
*
|
|
32
|
+
* @param {SidePanelProps} props - `isOpen` / `onClose` plus layout BEM class overrides.
|
|
33
|
+
* @returns {JSX.Element | null} Portal content when `isOpen`, else `null`.
|
|
34
|
+
*/
|
|
35
|
+
export declare const SidePanel: ({ isOpen, onClose, position, size, title, description, children, footer, className, titleContainerClassName, titleClassName, descriptionClassName, closeButtonClassName, headerClassName, contentClassName, }: SidePanelProps) => JSX.Element | null;
|
|
36
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as e,jsxs as l,Fragment as s}from"react/jsx-runtime";import"./side-panel.css";import{useRef as a,useEffect as i}from"react";import{createPortal as n}from"react-dom";import{Button as t}from"../button/button.js";import{useFocusTrap as o}from"../../../hooks/src/use-focus-trap.js";let r=0;const d=({isOpen:d,onClose:c,position:m="right",size:p="md",title:u,description:h,children:f,footer:v,className:y="",titleContainerClassName:N="",titleClassName:b="",descriptionClassName:C="",closeButtonClassName:$="",headerClassName:k="",contentClassName:g=""})=>{const w=a(null),j=a("side-panel-title-"+ ++r).current;if(o(w,d),i((()=>{const e=e=>{"Escape"===e.key&&d&&c()};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)}),[d,c]),i((()=>{if(d){const e=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=e}}}),[d]),!d)return null;const E=e("button",{type:"button",className:"side-panel-scrim","aria-label":"Close panel",onClick:c}),x=l("div",{ref:w,role:"dialog","aria-modal":"true","aria-labelledby":u?j:void 0,className:`side-panel side-panel--${p} ${"left"===m?"side-panel-left":"side-panel-right"}${y?` ${y}`:""}`,children:[l("div",{className:"side-panel-header"+(k?` ${k}`:""),children:[l("div",{className:"side-panel-title-container"+(N?` ${N}`:""),children:[u&&e("h2",{id:j,className:"side-panel-title"+(b?` ${b}`:""),children:u}),h&&e("p",{className:"side-panel-description"+(C?` ${C}`:""),children:h})]}),e(t,{variant:"secondary",size:"sm",onClick:c,className:"side-panel-close"+($?` ${$}`:""),"aria-label":"Close panel",icon:"close",iconOnly:!0})]}),e("div",{className:"side-panel-content"+(g?` ${g}`:""),children:f}),v&&e("div",{className:"side-panel-footer",children:v})]});return n(e("div",{className:"side-panel-overlay "+("left"===m?"side-panel-overlay-left":"side-panel-overlay-right"),children:l(s,"right"===m?{children:[E,x]}:{children:[x,E]})}),document.body)};export{d as SidePanel};
|
|
2
|
+
//# sourceMappingURL=side-panel.js.map
|