frey-ui 1.0.9 → 1.0.11
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 +25 -162
- package/dist/cjs/Accordion/accordion.module.css.cjs +9 -0
- package/dist/cjs/Accordion/accordion.module.css.cjs.map +1 -0
- package/dist/cjs/Accordion/index.cjs +99 -0
- package/dist/cjs/Accordion/index.cjs.map +1 -0
- package/dist/cjs/Alert/{alert.module.css.js → alert.module.css.cjs} +2 -2
- package/dist/cjs/Alert/alert.module.css.cjs.map +1 -0
- package/dist/cjs/Alert/index.cjs +36 -0
- package/dist/cjs/Alert/index.cjs.map +1 -0
- package/dist/cjs/Avatar/avatar.module.css.cjs +9 -0
- package/dist/cjs/Avatar/avatar.module.css.cjs.map +1 -0
- package/dist/cjs/Avatar/index.cjs +53 -0
- package/dist/cjs/Avatar/index.cjs.map +1 -0
- package/dist/cjs/Button/{button.module.css.js → button.module.css.cjs} +1 -1
- package/dist/cjs/Button/button.module.css.cjs.map +1 -0
- package/dist/cjs/Button/index.cjs +30 -0
- package/dist/cjs/Button/index.cjs.map +1 -0
- package/dist/cjs/Card/card.module.css.cjs +9 -0
- package/dist/cjs/Card/card.module.css.cjs.map +1 -0
- package/dist/cjs/Card/index.cjs +40 -0
- package/dist/cjs/Card/index.cjs.map +1 -0
- package/dist/cjs/Checkbox/{checkbox.module.css.js → checkbox.module.css.cjs} +1 -1
- package/dist/cjs/Checkbox/checkbox.module.css.cjs.map +1 -0
- package/dist/cjs/Checkbox/index.cjs +47 -0
- package/dist/cjs/Checkbox/index.cjs.map +1 -0
- package/dist/cjs/Chip/{chip.module.css.js → chip.module.css.cjs} +1 -1
- package/dist/cjs/Chip/chip.module.css.cjs.map +1 -0
- package/dist/cjs/Chip/{index.js → index.cjs} +7 -11
- package/dist/cjs/Chip/index.cjs.map +1 -0
- package/dist/cjs/Dialog/dialog.module.css.cjs +9 -0
- package/dist/cjs/Dialog/dialog.module.css.cjs.map +1 -0
- package/dist/cjs/Dialog/index.cjs +195 -0
- package/dist/cjs/Dialog/index.cjs.map +1 -0
- package/dist/cjs/DropdownMenu/dropdownmenu.module.css.cjs +9 -0
- package/dist/cjs/DropdownMenu/dropdownmenu.module.css.cjs.map +1 -0
- package/dist/cjs/DropdownMenu/index.cjs +153 -0
- package/dist/cjs/DropdownMenu/index.cjs.map +1 -0
- package/dist/cjs/Field/field.module.css.cjs +9 -0
- package/dist/cjs/Field/field.module.css.cjs.map +1 -0
- package/dist/cjs/Field/index.cjs +35 -0
- package/dist/cjs/Field/index.cjs.map +1 -0
- package/dist/cjs/Icons/icons.module.css.cjs +9 -0
- package/dist/cjs/Icons/icons.module.css.cjs.map +1 -0
- package/dist/cjs/Icons/index.cjs +96 -0
- package/dist/cjs/Icons/index.cjs.map +1 -0
- package/dist/cjs/Popover/index.cjs +102 -0
- package/dist/cjs/Popover/index.cjs.map +1 -0
- package/dist/cjs/Popover/popover.module.css.cjs +9 -0
- package/dist/cjs/Popover/popover.module.css.cjs.map +1 -0
- package/dist/cjs/Progress/index.cjs +29 -0
- package/dist/cjs/Progress/index.cjs.map +1 -0
- package/dist/cjs/Progress/progress.module.css.cjs +9 -0
- package/dist/cjs/Progress/progress.module.css.cjs.map +1 -0
- package/dist/cjs/RadioGroup/index.cjs +42 -0
- package/dist/cjs/RadioGroup/index.cjs.map +1 -0
- package/dist/cjs/RadioGroup/radiogroup.module.css.cjs +9 -0
- package/dist/cjs/RadioGroup/radiogroup.module.css.cjs.map +1 -0
- package/dist/cjs/Select/index.cjs +28 -0
- package/dist/cjs/Select/index.cjs.map +1 -0
- package/dist/cjs/Select/select.module.css.cjs +9 -0
- package/dist/cjs/Select/select.module.css.cjs.map +1 -0
- package/dist/cjs/Skeleton/index.cjs +27 -0
- package/dist/cjs/Skeleton/index.cjs.map +1 -0
- package/dist/cjs/Skeleton/{skeleton.module.css.js → skeleton.module.css.cjs} +1 -1
- package/dist/cjs/Skeleton/skeleton.module.css.cjs.map +1 -0
- package/dist/cjs/Spinner/index.cjs +32 -0
- package/dist/cjs/Spinner/index.cjs.map +1 -0
- package/dist/cjs/Spinner/spinner.module.css.cjs +9 -0
- package/dist/cjs/Spinner/spinner.module.css.cjs.map +1 -0
- package/dist/cjs/Switch/{index.js → index.cjs} +7 -9
- package/dist/cjs/Switch/index.cjs.map +1 -0
- package/dist/cjs/Switch/{switch.module.css.js → switch.module.css.cjs} +1 -1
- package/dist/cjs/Switch/switch.module.css.cjs.map +1 -0
- package/dist/cjs/Tabs/index.cjs +87 -0
- package/dist/cjs/Tabs/index.cjs.map +1 -0
- package/dist/cjs/Tabs/tabs.module.css.cjs +9 -0
- package/dist/cjs/Tabs/tabs.module.css.cjs.map +1 -0
- package/dist/cjs/TextInput/{index.js → index.cjs} +6 -8
- package/dist/cjs/TextInput/index.cjs.map +1 -0
- package/dist/cjs/TextInput/{textinput.module.css.js → textinput.module.css.cjs} +1 -1
- package/dist/cjs/TextInput/textinput.module.css.cjs.map +1 -0
- package/dist/cjs/Textarea/index.cjs +28 -0
- package/dist/cjs/Textarea/index.cjs.map +1 -0
- package/dist/cjs/Textarea/textarea.module.css.cjs +9 -0
- package/dist/cjs/Textarea/textarea.module.css.cjs.map +1 -0
- package/dist/cjs/ThemeProvider/index.cjs +29 -0
- package/dist/cjs/ThemeProvider/index.cjs.map +1 -0
- package/dist/cjs/ThemeProvider/{themeprovider.module.css.js → themeprovider.module.css.cjs} +1 -1
- package/dist/cjs/ThemeProvider/themeprovider.module.css.cjs.map +1 -0
- package/dist/cjs/Toast/index.cjs +109 -0
- package/dist/cjs/Toast/index.cjs.map +1 -0
- package/dist/cjs/Toast/toast.module.css.cjs +9 -0
- package/dist/cjs/Toast/toast.module.css.cjs.map +1 -0
- package/dist/cjs/Tooltip/index.cjs +102 -0
- package/dist/cjs/Tooltip/index.cjs.map +1 -0
- package/dist/cjs/Tooltip/tooltip.module.css.cjs +9 -0
- package/dist/cjs/Tooltip/tooltip.module.css.cjs.map +1 -0
- package/dist/cjs/hooks/useControllableState.cjs +24 -0
- package/dist/cjs/hooks/useControllableState.cjs.map +1 -0
- package/dist/cjs/hooks/useDismiss.cjs +44 -0
- package/dist/cjs/hooks/useDismiss.cjs.map +1 -0
- package/dist/cjs/hooks/useFloatingPosition.cjs +68 -0
- package/dist/cjs/hooks/useFloatingPosition.cjs.map +1 -0
- package/dist/cjs/index.cjs +64 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/utils/clamp.cjs +9 -0
- package/dist/cjs/utils/clamp.cjs.map +1 -0
- package/dist/cjs/utils/mergeRefs.cjs +21 -0
- package/dist/cjs/utils/mergeRefs.cjs.map +1 -0
- package/dist/cjs/utils/slot.cjs +61 -0
- package/dist/cjs/utils/slot.cjs.map +1 -0
- package/dist/esm/Accordion/accordion.module.css.mjs +5 -0
- package/dist/esm/Accordion/accordion.module.css.mjs.map +1 -0
- package/dist/esm/Accordion/index.mjs +94 -0
- package/dist/esm/Accordion/index.mjs.map +1 -0
- package/dist/esm/Alert/{alert.module.css.js → alert.module.css.mjs} +2 -2
- package/dist/esm/Alert/alert.module.css.mjs.map +1 -0
- package/dist/esm/Alert/index.mjs +32 -0
- package/dist/esm/Alert/index.mjs.map +1 -0
- package/dist/esm/Avatar/avatar.module.css.mjs +5 -0
- package/dist/esm/Avatar/avatar.module.css.mjs.map +1 -0
- package/dist/esm/Avatar/index.mjs +49 -0
- package/dist/esm/Avatar/index.mjs.map +1 -0
- package/dist/esm/Button/{button.module.css.js → button.module.css.mjs} +1 -1
- package/dist/esm/Button/button.module.css.mjs.map +1 -0
- package/dist/esm/Button/index.mjs +26 -0
- package/dist/esm/Button/index.mjs.map +1 -0
- package/dist/esm/Card/card.module.css.mjs +5 -0
- package/dist/esm/Card/card.module.css.mjs.map +1 -0
- package/dist/esm/Card/index.mjs +35 -0
- package/dist/esm/Card/index.mjs.map +1 -0
- package/dist/esm/Checkbox/{checkbox.module.css.js → checkbox.module.css.mjs} +1 -1
- package/dist/esm/Checkbox/checkbox.module.css.mjs.map +1 -0
- package/dist/esm/Checkbox/index.mjs +43 -0
- package/dist/esm/Checkbox/index.mjs.map +1 -0
- package/dist/esm/Chip/{chip.module.css.js → chip.module.css.mjs} +1 -1
- package/dist/esm/Chip/chip.module.css.mjs.map +1 -0
- package/dist/esm/Chip/{index.js → index.mjs} +7 -11
- package/dist/esm/Chip/index.mjs.map +1 -0
- package/dist/esm/Dialog/dialog.module.css.mjs +5 -0
- package/dist/esm/Dialog/dialog.module.css.mjs.map +1 -0
- package/dist/esm/Dialog/index.mjs +190 -0
- package/dist/esm/Dialog/index.mjs.map +1 -0
- package/dist/esm/DropdownMenu/dropdownmenu.module.css.mjs +5 -0
- package/dist/esm/DropdownMenu/dropdownmenu.module.css.mjs.map +1 -0
- package/dist/esm/DropdownMenu/index.mjs +148 -0
- package/dist/esm/DropdownMenu/index.mjs.map +1 -0
- package/dist/esm/Field/field.module.css.mjs +5 -0
- package/dist/esm/Field/field.module.css.mjs.map +1 -0
- package/dist/esm/Field/index.mjs +31 -0
- package/dist/esm/Field/index.mjs.map +1 -0
- package/dist/esm/Icons/icons.module.css.mjs +5 -0
- package/dist/esm/Icons/icons.module.css.mjs.map +1 -0
- package/dist/esm/Icons/index.mjs +84 -0
- package/dist/esm/Icons/index.mjs.map +1 -0
- package/dist/esm/Popover/index.mjs +97 -0
- package/dist/esm/Popover/index.mjs.map +1 -0
- package/dist/esm/Popover/popover.module.css.mjs +5 -0
- package/dist/esm/Popover/popover.module.css.mjs.map +1 -0
- package/dist/esm/Progress/index.mjs +25 -0
- package/dist/esm/Progress/index.mjs.map +1 -0
- package/dist/esm/Progress/progress.module.css.mjs +5 -0
- package/dist/esm/Progress/progress.module.css.mjs.map +1 -0
- package/dist/esm/RadioGroup/index.mjs +38 -0
- package/dist/esm/RadioGroup/index.mjs.map +1 -0
- package/dist/esm/RadioGroup/radiogroup.module.css.mjs +5 -0
- package/dist/esm/RadioGroup/radiogroup.module.css.mjs.map +1 -0
- package/dist/esm/Select/index.mjs +24 -0
- package/dist/esm/Select/index.mjs.map +1 -0
- package/dist/esm/Select/select.module.css.mjs +5 -0
- package/dist/esm/Select/select.module.css.mjs.map +1 -0
- package/dist/esm/Skeleton/index.mjs +23 -0
- package/dist/esm/Skeleton/index.mjs.map +1 -0
- package/dist/esm/Skeleton/{skeleton.module.css.js → skeleton.module.css.mjs} +1 -1
- package/dist/esm/Skeleton/skeleton.module.css.mjs.map +1 -0
- package/dist/esm/Spinner/index.mjs +28 -0
- package/dist/esm/Spinner/index.mjs.map +1 -0
- package/dist/esm/Spinner/spinner.module.css.mjs +5 -0
- package/dist/esm/Spinner/spinner.module.css.mjs.map +1 -0
- package/dist/esm/Switch/index.mjs +34 -0
- package/dist/esm/Switch/index.mjs.map +1 -0
- package/dist/esm/Switch/{switch.module.css.js → switch.module.css.mjs} +1 -1
- package/dist/esm/Switch/switch.module.css.mjs.map +1 -0
- package/dist/esm/Tabs/index.mjs +82 -0
- package/dist/esm/Tabs/index.mjs.map +1 -0
- package/dist/esm/Tabs/tabs.module.css.mjs +5 -0
- package/dist/esm/Tabs/tabs.module.css.mjs.map +1 -0
- package/dist/esm/TextInput/index.mjs +27 -0
- package/dist/esm/TextInput/index.mjs.map +1 -0
- package/dist/esm/TextInput/{textinput.module.css.js → textinput.module.css.mjs} +1 -1
- package/dist/esm/TextInput/textinput.module.css.mjs.map +1 -0
- package/dist/esm/Textarea/index.mjs +24 -0
- package/dist/esm/Textarea/index.mjs.map +1 -0
- package/dist/esm/Textarea/textarea.module.css.mjs +5 -0
- package/dist/esm/Textarea/textarea.module.css.mjs.map +1 -0
- package/dist/esm/ThemeProvider/index.mjs +25 -0
- package/dist/esm/ThemeProvider/index.mjs.map +1 -0
- package/dist/esm/ThemeProvider/{themeprovider.module.css.js → themeprovider.module.css.mjs} +1 -1
- package/dist/esm/ThemeProvider/themeprovider.module.css.mjs.map +1 -0
- package/dist/esm/Toast/index.mjs +106 -0
- package/dist/esm/Toast/index.mjs.map +1 -0
- package/dist/esm/Toast/toast.module.css.mjs +5 -0
- package/dist/esm/Toast/toast.module.css.mjs.map +1 -0
- package/dist/esm/Tooltip/index.mjs +98 -0
- package/dist/esm/Tooltip/index.mjs.map +1 -0
- package/dist/esm/Tooltip/tooltip.module.css.mjs +5 -0
- package/dist/esm/Tooltip/tooltip.module.css.mjs.map +1 -0
- package/dist/esm/hooks/useControllableState.mjs +22 -0
- package/dist/esm/hooks/useControllableState.mjs.map +1 -0
- package/dist/esm/hooks/useDismiss.mjs +42 -0
- package/dist/esm/hooks/useDismiss.mjs.map +1 -0
- package/dist/esm/hooks/useFloatingPosition.mjs +66 -0
- package/dist/esm/hooks/useFloatingPosition.mjs.map +1 -0
- package/dist/esm/index.mjs +26 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/utils/clamp.mjs +7 -0
- package/dist/esm/utils/clamp.mjs.map +1 -0
- package/dist/esm/utils/mergeRefs.mjs +19 -0
- package/dist/esm/utils/mergeRefs.mjs.map +1 -0
- package/dist/esm/utils/slot.mjs +58 -0
- package/dist/esm/utils/slot.mjs.map +1 -0
- package/dist/index.d.ts +420 -22
- package/dist/styles.css +2 -1
- package/dist/styles.css.map +1 -1
- package/dist/types/src/Accordion/index.d.ts +29 -0
- package/dist/types/src/Accordion/index.d.ts.map +1 -0
- package/dist/types/src/Alert/index.d.ts +4 -2
- package/dist/types/src/Alert/index.d.ts.map +1 -0
- package/dist/types/src/Avatar/index.d.ts +14 -0
- package/dist/types/src/Avatar/index.d.ts.map +1 -0
- package/dist/types/src/Button/index.d.ts +8 -6
- package/dist/types/src/Button/index.d.ts.map +1 -0
- package/dist/types/src/Card/index.d.ts +25 -0
- package/dist/types/src/Card/index.d.ts.map +1 -0
- package/dist/types/src/Checkbox/index.d.ts +3 -1
- package/dist/types/src/Checkbox/index.d.ts.map +1 -0
- package/dist/types/src/Chip/index.d.ts +9 -5
- package/dist/types/src/Chip/index.d.ts.map +1 -0
- package/dist/types/src/Dialog/index.d.ts +59 -0
- package/dist/types/src/Dialog/index.d.ts.map +1 -0
- package/dist/types/src/DropdownMenu/index.d.ts +41 -0
- package/dist/types/src/DropdownMenu/index.d.ts.map +1 -0
- package/dist/types/src/Field/index.d.ts +23 -0
- package/dist/types/src/Field/index.d.ts.map +1 -0
- package/dist/types/src/Icons/index.d.ts +31 -0
- package/dist/types/src/Icons/index.d.ts.map +1 -0
- package/dist/types/src/Popover/index.d.ts +33 -0
- package/dist/types/src/Popover/index.d.ts.map +1 -0
- package/dist/types/src/Progress/index.d.ts +17 -0
- package/dist/types/src/Progress/index.d.ts.map +1 -0
- package/dist/types/src/RadioGroup/index.d.ts +29 -0
- package/dist/types/src/RadioGroup/index.d.ts.map +1 -0
- package/dist/types/src/Select/index.d.ts +16 -0
- package/dist/types/src/Select/index.d.ts.map +1 -0
- package/dist/types/src/Skeleton/index.d.ts +4 -2
- package/dist/types/src/Skeleton/index.d.ts.map +1 -0
- package/dist/types/src/Spinner/index.d.ts +12 -0
- package/dist/types/src/Spinner/index.d.ts.map +1 -0
- package/dist/types/src/Switch/index.d.ts +3 -1
- package/dist/types/src/Switch/index.d.ts.map +1 -0
- package/dist/types/src/Tabs/index.d.ts +29 -0
- package/dist/types/src/Tabs/index.d.ts.map +1 -0
- package/dist/types/src/TextInput/index.d.ts +3 -1
- package/dist/types/src/TextInput/index.d.ts.map +1 -0
- package/dist/types/src/Textarea/index.d.ts +15 -0
- package/dist/types/src/Textarea/index.d.ts.map +1 -0
- package/dist/types/src/ThemeProvider/index.d.ts +4 -2
- package/dist/types/src/ThemeProvider/index.d.ts.map +1 -0
- package/dist/types/src/Toast/index.d.ts +31 -0
- package/dist/types/src/Toast/index.d.ts.map +1 -0
- package/dist/types/src/Tooltip/index.d.ts +19 -0
- package/dist/types/src/Tooltip/index.d.ts.map +1 -0
- package/dist/types/src/hooks/useControllableState.d.ts +6 -0
- package/dist/types/src/hooks/useControllableState.d.ts.map +1 -0
- package/dist/types/src/hooks/useDismiss.d.ts +18 -0
- package/dist/types/src/hooks/useDismiss.d.ts.map +1 -0
- package/dist/types/src/hooks/useFloatingPosition.d.ts +26 -0
- package/dist/types/src/hooks/useFloatingPosition.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +33 -0
- package/dist/types/src/index.d.ts.map +1 -0
- package/dist/types/src/types/polymorphic.d.ts +6 -0
- package/dist/types/src/types/polymorphic.d.ts.map +1 -0
- package/dist/types/src/utils/clamp.d.ts +2 -0
- package/dist/types/src/utils/clamp.d.ts.map +1 -0
- package/dist/types/src/utils/mergeRefs.d.ts +3 -0
- package/dist/types/src/utils/mergeRefs.d.ts.map +1 -0
- package/dist/types/src/utils/slot.d.ts +12 -0
- package/dist/types/src/utils/slot.d.ts.map +1 -0
- package/package.json +133 -16
- package/dist/cjs/Alert/alert.module.css.js.map +0 -1
- package/dist/cjs/Alert/index.js +0 -33
- package/dist/cjs/Alert/index.js.map +0 -1
- package/dist/cjs/Button/button.module.css.js.map +0 -1
- package/dist/cjs/Button/index.js +0 -34
- package/dist/cjs/Button/index.js.map +0 -1
- package/dist/cjs/Checkbox/checkbox.module.css.js.map +0 -1
- package/dist/cjs/Checkbox/index.js +0 -48
- package/dist/cjs/Checkbox/index.js.map +0 -1
- package/dist/cjs/Chip/chip.module.css.js.map +0 -1
- package/dist/cjs/Chip/index.js.map +0 -1
- package/dist/cjs/Skeleton/index.js +0 -21
- package/dist/cjs/Skeleton/index.js.map +0 -1
- package/dist/cjs/Skeleton/skeleton.module.css.js.map +0 -1
- package/dist/cjs/Switch/index.js.map +0 -1
- package/dist/cjs/Switch/switch.module.css.js.map +0 -1
- package/dist/cjs/TextInput/index.js.map +0 -1
- package/dist/cjs/TextInput/textinput.module.css.js.map +0 -1
- package/dist/cjs/ThemeProvider/index.js +0 -15
- package/dist/cjs/ThemeProvider/index.js.map +0 -1
- package/dist/cjs/ThemeProvider/themeprovider.module.css.js.map +0 -1
- package/dist/cjs/index.js +0 -23
- package/dist/cjs/index.js.map +0 -1
- package/dist/esm/Alert/alert.module.css.js.map +0 -1
- package/dist/esm/Alert/index.js +0 -29
- package/dist/esm/Alert/index.js.map +0 -1
- package/dist/esm/Button/button.module.css.js.map +0 -1
- package/dist/esm/Button/index.js +0 -30
- package/dist/esm/Button/index.js.map +0 -1
- package/dist/esm/Checkbox/checkbox.module.css.js.map +0 -1
- package/dist/esm/Checkbox/index.js +0 -44
- package/dist/esm/Checkbox/index.js.map +0 -1
- package/dist/esm/Chip/chip.module.css.js.map +0 -1
- package/dist/esm/Chip/index.js.map +0 -1
- package/dist/esm/Skeleton/index.js +0 -17
- package/dist/esm/Skeleton/index.js.map +0 -1
- package/dist/esm/Skeleton/skeleton.module.css.js.map +0 -1
- package/dist/esm/Switch/index.js +0 -36
- package/dist/esm/Switch/index.js.map +0 -1
- package/dist/esm/Switch/switch.module.css.js.map +0 -1
- package/dist/esm/TextInput/index.js +0 -29
- package/dist/esm/TextInput/index.js.map +0 -1
- package/dist/esm/TextInput/textinput.module.css.js.map +0 -1
- package/dist/esm/ThemeProvider/index.js +0 -11
- package/dist/esm/ThemeProvider/index.js.map +0 -1
- package/dist/esm/ThemeProvider/themeprovider.module.css.js.map +0 -1
- package/dist/esm/index.js +0 -10
- package/dist/esm/index.js.map +0 -1
- package/dist/tsconfig.lib.tsbuildinfo +0 -1
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
+
var clsx = require('clsx');
|
|
8
|
+
var React = require('react');
|
|
9
|
+
var tabs_module = require('./tabs.module.css.cjs');
|
|
10
|
+
|
|
11
|
+
const TabsContext = React.createContext(null);
|
|
12
|
+
function useTabsContext() {
|
|
13
|
+
const context = React.useContext(TabsContext);
|
|
14
|
+
if (!context) {
|
|
15
|
+
throw new Error('Tabs compound components must be rendered within a Tabs component');
|
|
16
|
+
}
|
|
17
|
+
return context;
|
|
18
|
+
}
|
|
19
|
+
const TabsRoot = React.forwardRef(function Tabs({ value, defaultValue, onValueChange, className, ...props }, ref) {
|
|
20
|
+
const idPrefix = React.useId();
|
|
21
|
+
const isControlled = value !== undefined;
|
|
22
|
+
const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue ?? '');
|
|
23
|
+
const currentValue = isControlled ? value : uncontrolledValue;
|
|
24
|
+
const handleValueChange = React.useCallback((nextValue) => {
|
|
25
|
+
if (!isControlled) {
|
|
26
|
+
setUncontrolledValue(nextValue);
|
|
27
|
+
}
|
|
28
|
+
onValueChange?.(nextValue);
|
|
29
|
+
}, [isControlled, onValueChange]);
|
|
30
|
+
const contextValue = React.useMemo(() => ({
|
|
31
|
+
value: currentValue,
|
|
32
|
+
onValueChange: handleValueChange,
|
|
33
|
+
idPrefix
|
|
34
|
+
}), [currentValue, handleValueChange, idPrefix]);
|
|
35
|
+
return (jsxRuntime.jsx(TabsContext.Provider, { value: contextValue, children: jsxRuntime.jsx("div", { ref: ref, className: clsx(tabs_module.default.tabs, className), ...props }) }));
|
|
36
|
+
});
|
|
37
|
+
TabsRoot.displayName = 'Tabs';
|
|
38
|
+
const TabsList = React.forwardRef(function TabsList({ className, ...props }, ref) {
|
|
39
|
+
return (jsxRuntime.jsx("div", { ref: ref, role: 'tablist', className: clsx(tabs_module.default.tabs_list, className), ...props }));
|
|
40
|
+
});
|
|
41
|
+
TabsList.displayName = 'Tabs.List';
|
|
42
|
+
const TabsTrigger = React.forwardRef(function TabsTrigger({ value: triggerValue, className, ...props }, ref) {
|
|
43
|
+
const { value: selectedValue, onValueChange, idPrefix } = useTabsContext();
|
|
44
|
+
const isSelected = selectedValue === triggerValue;
|
|
45
|
+
const handleKeyDown = (e) => {
|
|
46
|
+
// Basic Arrow Right / Arrow Left navigation handling
|
|
47
|
+
if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {
|
|
48
|
+
const triggerElements = Array.from(e.currentTarget.parentElement?.querySelectorAll('[role="tab"]') ?? []);
|
|
49
|
+
const currentIndex = triggerElements.indexOf(e.currentTarget);
|
|
50
|
+
if (currentIndex === -1)
|
|
51
|
+
return;
|
|
52
|
+
let nextIndex = currentIndex;
|
|
53
|
+
if (e.key === 'ArrowRight') {
|
|
54
|
+
nextIndex = (currentIndex + 1) % triggerElements.length;
|
|
55
|
+
}
|
|
56
|
+
else if (e.key === 'ArrowLeft') {
|
|
57
|
+
nextIndex =
|
|
58
|
+
(currentIndex - 1 + triggerElements.length) % triggerElements.length;
|
|
59
|
+
}
|
|
60
|
+
const nextTrigger = triggerElements[nextIndex];
|
|
61
|
+
if (nextTrigger) {
|
|
62
|
+
nextTrigger.focus();
|
|
63
|
+
nextTrigger.click(); // Standard behavior for tabs to switch on arrow focus
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
return (jsxRuntime.jsx("button", { ref: ref, type: 'button', role: 'tab', id: `${idPrefix}-tab-${triggerValue}`, "aria-controls": `${idPrefix}-panel-${triggerValue}`, "aria-selected": isSelected, tabIndex: isSelected ? 0 : -1, onClick: () => onValueChange(triggerValue), onKeyDown: handleKeyDown, className: clsx(tabs_module.default.tabs_trigger, className), ...props }));
|
|
68
|
+
});
|
|
69
|
+
TabsTrigger.displayName = 'Tabs.Trigger';
|
|
70
|
+
const TabsContent = React.forwardRef(function TabsContent({ value: contentValue, className, children, ...props }, ref) {
|
|
71
|
+
const { value: selectedValue, idPrefix } = useTabsContext();
|
|
72
|
+
const isSelected = selectedValue === contentValue;
|
|
73
|
+
if (!isSelected) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
return (jsxRuntime.jsx("div", { ref: ref, role: 'tabpanel', id: `${idPrefix}-panel-${contentValue}`, "aria-labelledby": `${idPrefix}-tab-${contentValue}`, className: clsx(tabs_module.default.tabs_content, className), ...props, children: children }));
|
|
77
|
+
});
|
|
78
|
+
TabsContent.displayName = 'Tabs.Content';
|
|
79
|
+
const Tabs = Object.assign(TabsRoot, {
|
|
80
|
+
List: TabsList,
|
|
81
|
+
Trigger: TabsTrigger,
|
|
82
|
+
Content: TabsContent
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
exports.Tabs = Tabs;
|
|
86
|
+
exports.default = Tabs;
|
|
87
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/Tabs/index.tsx"],"sourcesContent":[null],"names":["createContext","useContext","useId","useState","_jsx","styles"],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var styles = {"tabs":"tabs-module_tabs__8GreJ","tabs_list":"tabs-module_tabs_list__ydVOj","tabs_trigger":"tabs-module_tabs_trigger__SHLcN","tabs_content":"tabs-module_tabs_content__xbq59"};
|
|
7
|
+
|
|
8
|
+
exports.default = styles;
|
|
9
|
+
//# sourceMappingURL=tabs.module.css.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
|
|
@@ -3,16 +3,14 @@
|
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
5
|
|
|
6
|
-
var tslib = require('tslib');
|
|
7
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
8
7
|
var clsx = require('clsx');
|
|
9
8
|
var React = require('react');
|
|
10
|
-
var textinput_module = require('./textinput.module.css.
|
|
9
|
+
var textinput_module = require('./textinput.module.css.cjs');
|
|
11
10
|
|
|
12
|
-
const TextInput = React.forwardRef(function TextInput(
|
|
13
|
-
var { label, hideLabel = false, error, helperText, type = 'text', className, style, id, disabled = false } = _a, inputProps = tslib.__rest(_a, ["label", "hideLabel", "error", "helperText", "type", "className", "style", "id", "disabled"]);
|
|
11
|
+
const TextInput = React.forwardRef(function TextInput({ label, hideLabel = false, error, helperText, type = 'text', className, style, id, disabled = false, ...inputProps }, ref) {
|
|
14
12
|
const generatedId = React.useId();
|
|
15
|
-
const inputId = id
|
|
13
|
+
const inputId = id ?? generatedId;
|
|
16
14
|
const errorId = `${inputId}-error`;
|
|
17
15
|
const helperId = `${inputId}-helper`;
|
|
18
16
|
const hasError = typeof error === 'string' && error.length > 0;
|
|
@@ -23,11 +21,11 @@ const TextInput = React.forwardRef(function TextInput(_a, ref) {
|
|
|
23
21
|
return (jsxRuntime.jsxs("div", { className: clsx(textinput_module.default['text-input-container'], className), style: style, children: [jsxRuntime.jsx("label", { htmlFor: inputId, className: clsx(textinput_module.default.label, {
|
|
24
22
|
[textinput_module.default['label-disabled']]: disabled,
|
|
25
23
|
[textinput_module.default['visually-hidden']]: hideLabel
|
|
26
|
-
}), children: label }), jsxRuntime.jsx("input",
|
|
24
|
+
}), children: label }), jsxRuntime.jsx("input", { ref: ref, id: inputId, type: type, disabled: disabled, "aria-invalid": hasError || undefined, "aria-describedby": describedBy, className: clsx(textinput_module.default.input, {
|
|
27
25
|
[textinput_module.default['input-error']]: hasError
|
|
28
|
-
})
|
|
26
|
+
}), ...inputProps }), hasError && (jsxRuntime.jsx("p", { id: errorId, className: textinput_module.default['error-text'], role: 'alert', children: error })), hasHelper && (jsxRuntime.jsx("p", { id: helperId, className: textinput_module.default['helper-text'], children: helperText }))] }));
|
|
29
27
|
});
|
|
30
28
|
TextInput.displayName = 'TextInput';
|
|
31
29
|
|
|
32
30
|
exports.default = TextInput;
|
|
33
|
-
//# sourceMappingURL=index.
|
|
31
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/TextInput/index.tsx"],"sourcesContent":[null],"names":["useId","_jsxs","styles","_jsx"],"mappings":";;;;;;;;;;AAqBA,MAAM,SAAS,GAAuB,KAAK,CAAC,UAAU,CAGpD,SAAS,SAAS,CAClB,EACE,KAAK,EACL,SAAS,GAAG,KAAK,EACjB,KAAK,EACL,UAAU,EACV,IAAI,GAAG,MAAM,EACb,SAAS,EACT,KAAK,EACL,EAAE,EACF,QAAQ,GAAG,KAAK,EAChB,GAAG,UAAU,EACd,EACD,GAAG,EAAA;AAEH,IAAA,MAAM,WAAW,GAAGA,WAAK,EAAE;AAC3B,IAAA,MAAM,OAAO,GAAG,EAAE,IAAI,WAAW;AACjC,IAAA,MAAM,OAAO,GAAG,CAAA,EAAG,OAAO,QAAQ;AAClC,IAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,OAAO,SAAS;AAEpC,IAAA,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;AAC9D,IAAA,MAAM,SAAS,GAAG,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;IAEzE,MAAM,WAAW,GACf,CAAC,QAAQ,GAAG,OAAO,GAAG,SAAS,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS;SAC9D,MAAM,CAAC,OAAO;AACd,SAAA,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS;AAE3B,IAAA,QACEC,eAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,IAAI,CAACC,wBAAM,CAAC,sBAAsB,CAAC,EAAE,SAAS,CAAC,EAC1D,KAAK,EAAE,KAAK,EAAA,QAAA,EAAA,CAEZC,cAAA,CAAA,OAAA,EAAA,EACE,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,IAAI,CAACD,wBAAM,CAAC,KAAK,EAAE;AAC5B,oBAAA,CAACA,wBAAM,CAAC,gBAAgB,CAAC,GAAG,QAAQ;AACpC,oBAAA,CAACA,wBAAM,CAAC,iBAAiB,CAAC,GAAG;AAC9B,iBAAA,CAAC,EAAA,QAAA,EAED,KAAK,EAAA,CACA,EACRC,0BACE,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAAA,cAAA,EACJ,QAAQ,IAAI,SAAS,EAAA,kBAAA,EACjB,WAAW,EAC7B,SAAS,EAAE,IAAI,CAACD,wBAAM,CAAC,KAAK,EAAE;AAC5B,oBAAA,CAACA,wBAAM,CAAC,aAAa,CAAC,GAAG;iBAC1B,CAAC,EAAA,GACE,UAAU,EAAA,CACd,EACD,QAAQ,KACPC,sBAAG,EAAE,EAAE,OAAO,EAAE,SAAS,EAAED,wBAAM,CAAC,YAAY,CAAC,EAAE,IAAI,EAAC,OAAO,EAAA,QAAA,EAC1D,KAAK,EAAA,CACJ,CACL,EACA,SAAS,KACRC,cAAA,CAAA,GAAA,EAAA,EAAG,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAED,wBAAM,CAAC,aAAa,CAAC,EAAA,QAAA,EAC9C,UAAU,EAAA,CACT,CACL,CAAA,EAAA,CACG;AAEV,CAAC;AAED,SAAS,CAAC,WAAW,GAAG,WAAW;;;;"}
|
|
@@ -6,4 +6,4 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
6
6
|
var styles = {"text-input-container":"textinput-module_text-input-container__LaD6P","label":"textinput-module_label__2iW7l","label-disabled":"textinput-module_label-disabled__Aqrto","input":"textinput-module_input__SmSfZ","input-error":"textinput-module_input-error__8RSkp","helper-text":"textinput-module_helper-text__nygYX","error-text":"textinput-module_error-text__DFYQv","visually-hidden":"textinput-module_visually-hidden__w42hp"};
|
|
7
7
|
|
|
8
8
|
exports.default = styles;
|
|
9
|
-
//# sourceMappingURL=textinput.module.css.
|
|
9
|
+
//# sourceMappingURL=textinput.module.css.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textinput.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
+
var clsx = require('clsx');
|
|
8
|
+
var React = require('react');
|
|
9
|
+
var index = require('../Field/index.cjs');
|
|
10
|
+
var textarea_module = require('./textarea.module.css.cjs');
|
|
11
|
+
|
|
12
|
+
const ResizeClassMap = {
|
|
13
|
+
none: textarea_module.default.resize_none,
|
|
14
|
+
vertical: textarea_module.default.resize_vertical,
|
|
15
|
+
horizontal: textarea_module.default.resize_horizontal,
|
|
16
|
+
both: textarea_module.default.resize_both
|
|
17
|
+
};
|
|
18
|
+
const Textarea = React.forwardRef(function Textarea({ label, hideLabel = false, error, helperText, resize = 'vertical', className, style, id, disabled = false, required = false, 'aria-describedby': ariaDescribedBy, 'aria-invalid': ariaInvalid, ...textareaProps }, ref) {
|
|
19
|
+
return (jsxRuntime.jsx(index.default, { label: label, hideLabel: hideLabel, error: error, helperText: helperText, disabled: disabled, required: required, id: id, className: className, style: style, children: ({ inputId, describedBy, hasError }) => {
|
|
20
|
+
const mergedDescribedBy = [describedBy, ariaDescribedBy].filter(Boolean).join(' ') || undefined;
|
|
21
|
+
const isInvalid = hasError || ariaInvalid === true || ariaInvalid === 'true';
|
|
22
|
+
return (jsxRuntime.jsx("textarea", { id: inputId, ref: ref, disabled: disabled, required: required, "aria-invalid": isInvalid || undefined, "aria-describedby": mergedDescribedBy, className: clsx(textarea_module.default.textarea, ResizeClassMap[resize], hasError && textarea_module.default.textarea_error), ...textareaProps }));
|
|
23
|
+
} }));
|
|
24
|
+
});
|
|
25
|
+
Textarea.displayName = 'Textarea';
|
|
26
|
+
|
|
27
|
+
exports.default = Textarea;
|
|
28
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/Textarea/index.tsx"],"sourcesContent":[null],"names":["styles","_jsx","Field"],"mappings":";;;;;;;;;;;AAwBA,MAAM,cAAc,GAAmC;IACrD,IAAI,EAAEA,uBAAM,CAAC,WAAW;IACxB,QAAQ,EAAEA,uBAAM,CAAC,eAAe;IAChC,UAAU,EAAEA,uBAAM,CAAC,iBAAiB;IACpC,IAAI,EAAEA,uBAAM,CAAC;CACd;AAED,MAAM,QAAQ,GAAsB,KAAK,CAAC,UAAU,CAGlD,SAAS,QAAQ,CACjB,EACE,KAAK,EACL,SAAS,GAAG,KAAK,EACjB,KAAK,EACL,UAAU,EACV,MAAM,GAAG,UAAU,EACnB,SAAS,EACT,KAAK,EACL,EAAE,EACF,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,kBAAkB,EAAE,eAAe,EACnC,cAAc,EAAE,WAAW,EAC3B,GAAG,aAAa,EACjB,EACD,GAAG,EAAA;IAEH,QACEC,eAACC,aAAK,EAAA,EACJ,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EAAA,QAAA,EAEX,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAI;AACtC,YAAA,MAAM,iBAAiB,GACrB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS;YACvE,MAAM,SAAS,GACb,QAAQ,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,MAAM;YAE5D,QACED,6BACE,EAAE,EAAE,OAAO,EACX,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAAA,cAAA,EACJ,SAAS,IAAI,SAAS,EAAA,kBAAA,EAClB,iBAAiB,EACnC,SAAS,EAAE,IAAI,CACbD,uBAAM,CAAC,QAAQ,EACf,cAAc,CAAC,MAAM,CAAC,EACtB,QAAQ,IAAIA,uBAAM,CAAC,cAAc,CAClC,EAAA,GACG,aAAa,EAAA,CACjB;QAEN,CAAC,EAAA,CACK;AAEZ,CAAC;AAED,QAAQ,CAAC,WAAW,GAAG,UAAU;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var styles = {"textarea":"textarea-module_textarea__2ZcDH","textarea_error":"textarea-module_textarea_error__g--Z6","resize_none":"textarea-module_resize_none__91Cdb","resize_vertical":"textarea-module_resize_vertical__kA0Sk","resize_horizontal":"textarea-module_resize_horizontal__YDww4","resize_both":"textarea-module_resize_both__mzsFr"};
|
|
7
|
+
|
|
8
|
+
exports.default = styles;
|
|
9
|
+
//# sourceMappingURL=textarea.module.css.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textarea.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
+
var clsx = require('clsx');
|
|
8
|
+
var React = require('react');
|
|
9
|
+
var themeprovider_module = require('./themeprovider.module.css.cjs');
|
|
10
|
+
|
|
11
|
+
function ThemeProvider({ children, theme = 'light', highContrast = false, id, className, style }) {
|
|
12
|
+
const [systemTheme, setSystemTheme] = React.useState('light');
|
|
13
|
+
React.useEffect(() => {
|
|
14
|
+
if (theme !== 'system')
|
|
15
|
+
return;
|
|
16
|
+
const mediaQuery = globalThis.matchMedia('(prefers-color-scheme: dark)');
|
|
17
|
+
setSystemTheme(mediaQuery.matches ? 'dark' : 'light');
|
|
18
|
+
const handleChange = (e) => {
|
|
19
|
+
setSystemTheme(e.matches ? 'dark' : 'light');
|
|
20
|
+
};
|
|
21
|
+
mediaQuery.addEventListener('change', handleChange);
|
|
22
|
+
return () => mediaQuery.removeEventListener('change', handleChange);
|
|
23
|
+
}, [theme]);
|
|
24
|
+
const resolvedTheme = theme === 'system' ? systemTheme : theme;
|
|
25
|
+
return (jsxRuntime.jsx("div", { id: id, className: clsx(themeprovider_module.default['frey-theme-provider'], className), style: style, "data-frey-theme": resolvedTheme, "data-frey-high-contrast": highContrast, children: children }));
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
exports.default = ThemeProvider;
|
|
29
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/ThemeProvider/index.tsx"],"sourcesContent":[null],"names":["useState","useEffect","_jsx","styles"],"mappings":";;;;;;;;;;AAgBA,SAAS,aAAa,CAAC,EACrB,QAAQ,EACR,KAAK,GAAG,OAAO,EACf,YAAY,GAAG,KAAK,EACpB,EAAE,EACF,SAAS,EACT,KAAK,EACwB,EAAA;IAC7B,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAGA,cAAQ,CAAmB,OAAO,CAAC;IAEzEC,eAAS,CAAC,MAAK;QACb,IAAI,KAAK,KAAK,QAAQ;YAAE;QAExB,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,8BAA8B,CAAC;AACxE,QAAA,cAAc,CAAC,UAAU,CAAC,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAErD,QAAA,MAAM,YAAY,GAAG,CAAC,CAAsB,KAAI;AAC9C,YAAA,cAAc,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAC9C,QAAA,CAAC;AAED,QAAA,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC;QACnD,OAAO,MAAM,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC;AACrE,IAAA,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAEX,IAAA,MAAM,aAAa,GAAG,KAAK,KAAK,QAAQ,GAAG,WAAW,GAAG,KAAK;AAE9D,IAAA,QACEC,cAAA,CAAA,KAAA,EAAA,EACE,EAAE,EAAE,EAAE,EACN,SAAS,EAAE,IAAI,CAACC,4BAAM,CAAC,qBAAqB,CAAC,EAAE,SAAS,CAAC,EACzD,KAAK,EAAE,KAAK,EAAA,iBAAA,EACK,aAAa,EAAA,yBAAA,EACL,YAAY,EAAA,QAAA,EAEpC,QAAQ,EAAA,CACL;AAEV;;;;"}
|
|
@@ -6,4 +6,4 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
6
6
|
var styles = {"frey-theme-provider":"themeprovider-module_frey-theme-provider__HZeKb"};
|
|
7
7
|
|
|
8
8
|
exports.default = styles;
|
|
9
|
-
//# sourceMappingURL=themeprovider.module.css.
|
|
9
|
+
//# sourceMappingURL=themeprovider.module.css.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"themeprovider.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var clsx = require('clsx');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
var reactDom = require('react-dom');
|
|
8
|
+
var index = require('../Icons/index.cjs');
|
|
9
|
+
var toast_module = require('./toast.module.css.cjs');
|
|
10
|
+
|
|
11
|
+
const ToastContext = React.createContext(null);
|
|
12
|
+
const VariantIconMap = {
|
|
13
|
+
info: jsxRuntime.jsx(index.CircleInfoIcon, { size: 'lg', className: toast_module.default.toast_icon_svg }),
|
|
14
|
+
success: jsxRuntime.jsx(index.CircleCheckIcon, { size: 'lg', className: toast_module.default.toast_icon_svg }),
|
|
15
|
+
warning: jsxRuntime.jsx(index.TriangleAlertIcon, { size: 'lg', className: toast_module.default.toast_icon_svg }),
|
|
16
|
+
error: jsxRuntime.jsx(index.CircleXIcon, { size: 'lg', className: toast_module.default.toast_icon_svg })
|
|
17
|
+
};
|
|
18
|
+
const PlacementClassMap = {
|
|
19
|
+
'top-right': toast_module.default.toast_viewport_top_right,
|
|
20
|
+
'top-left': toast_module.default.toast_viewport_top_left,
|
|
21
|
+
'bottom-right': toast_module.default.toast_viewport_bottom_right,
|
|
22
|
+
'bottom-left': toast_module.default.toast_viewport_bottom_left
|
|
23
|
+
};
|
|
24
|
+
function generateToastId() {
|
|
25
|
+
if (typeof crypto !== 'undefined' &&
|
|
26
|
+
typeof crypto.randomUUID === 'function') {
|
|
27
|
+
return crypto.randomUUID();
|
|
28
|
+
}
|
|
29
|
+
return `toast-${Math.random().toString(36).slice(2, 11)}`;
|
|
30
|
+
}
|
|
31
|
+
function ToastProvider({ children, placement = 'top-right', limit = 4, className, style }) {
|
|
32
|
+
const [toasts, setToasts] = React.useState([]);
|
|
33
|
+
const timersRef = React.useRef({});
|
|
34
|
+
const clearTimer = React.useCallback((id) => {
|
|
35
|
+
const timer = timersRef.current[id];
|
|
36
|
+
if (!timer) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
clearTimeout(timer);
|
|
40
|
+
delete timersRef.current[id];
|
|
41
|
+
}, []);
|
|
42
|
+
const dismiss = React.useCallback((id) => {
|
|
43
|
+
clearTimer(id);
|
|
44
|
+
setToasts((currentToasts) => currentToasts.filter((toast) => toast.id !== id));
|
|
45
|
+
}, [clearTimer]);
|
|
46
|
+
const dismissAll = React.useCallback(() => {
|
|
47
|
+
Object.keys(timersRef.current).forEach((id) => {
|
|
48
|
+
clearTimer(id);
|
|
49
|
+
});
|
|
50
|
+
setToasts([]);
|
|
51
|
+
}, [clearTimer]);
|
|
52
|
+
const toast = React.useCallback((options) => {
|
|
53
|
+
const id = options.id ?? generateToastId();
|
|
54
|
+
const duration = typeof options.duration === 'number' ? options.duration : 4000;
|
|
55
|
+
const nextToast = {
|
|
56
|
+
id,
|
|
57
|
+
title: options.title,
|
|
58
|
+
description: options.description,
|
|
59
|
+
variant: options.variant ?? 'info',
|
|
60
|
+
duration,
|
|
61
|
+
action: options.action
|
|
62
|
+
};
|
|
63
|
+
setToasts((currentToasts) => {
|
|
64
|
+
const safeLimit = Math.max(limit, 1);
|
|
65
|
+
const nextToasts = [nextToast, ...currentToasts];
|
|
66
|
+
if (nextToasts.length <= safeLimit) {
|
|
67
|
+
return nextToasts;
|
|
68
|
+
}
|
|
69
|
+
const removed = nextToasts.slice(safeLimit);
|
|
70
|
+
for (const removedToast of removed) {
|
|
71
|
+
clearTimer(removedToast.id);
|
|
72
|
+
}
|
|
73
|
+
return nextToasts.slice(0, safeLimit);
|
|
74
|
+
});
|
|
75
|
+
if (duration > 0) {
|
|
76
|
+
clearTimer(id);
|
|
77
|
+
timersRef.current[id] = setTimeout(() => {
|
|
78
|
+
dismiss(id);
|
|
79
|
+
}, duration);
|
|
80
|
+
}
|
|
81
|
+
return id;
|
|
82
|
+
}, [clearTimer, dismiss, limit]);
|
|
83
|
+
React.useEffect(() => {
|
|
84
|
+
return () => {
|
|
85
|
+
Object.keys(timersRef.current).forEach((id) => {
|
|
86
|
+
clearTimer(id);
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
}, [clearTimer]);
|
|
90
|
+
const contextValue = React.useMemo(() => ({ toast, dismiss, dismissAll }), [dismiss, dismissAll, toast]);
|
|
91
|
+
const viewport = (jsxRuntime.jsx("section", { className: clsx(toast_module.default.toast_viewport, PlacementClassMap[placement], className), style: style, "aria-label": 'Notifications', children: jsxRuntime.jsx("ol", { className: toast_module.default.toast_list, children: toasts.map((toastItem) => (jsxRuntime.jsx("li", { className: toast_module.default.toast_list_item, children: jsxRuntime.jsxs("output", { className: clsx(toast_module.default.toast, toast_module.default[`toast_${toastItem.variant}`]), "aria-live": toastItem.variant === 'error' ? 'assertive' : 'polite', "aria-atomic": 'true', children: [jsxRuntime.jsx("span", { className: toast_module.default.toast_icon, children: VariantIconMap[toastItem.variant] }), jsxRuntime.jsxs("div", { className: toast_module.default.toast_body, children: [toastItem.title && (jsxRuntime.jsx("strong", { className: toast_module.default.toast_title, children: toastItem.title })), jsxRuntime.jsx("p", { className: toast_module.default.toast_description, children: toastItem.description })] }), toastItem.action && (jsxRuntime.jsx("button", { type: 'button', className: toast_module.default.toast_action, onClick: () => {
|
|
92
|
+
toastItem.action?.onClick();
|
|
93
|
+
dismiss(toastItem.id);
|
|
94
|
+
}, children: toastItem.action.label })), jsxRuntime.jsx("button", { type: 'button', className: toast_module.default.toast_close, onClick: () => dismiss(toastItem.id), "aria-label": 'Dismiss notification', children: jsxRuntime.jsx(index.CloseIcon, { size: 'sm' }) })] }) }, toastItem.id))) }) }));
|
|
95
|
+
return (jsxRuntime.jsxs(ToastContext.Provider, { value: contextValue, children: [children, typeof document === 'undefined'
|
|
96
|
+
? viewport
|
|
97
|
+
: reactDom.createPortal(viewport, document.body)] }));
|
|
98
|
+
}
|
|
99
|
+
function useToast() {
|
|
100
|
+
const contextValue = React.useContext(ToastContext);
|
|
101
|
+
if (!contextValue) {
|
|
102
|
+
throw new Error('useToast must be used within a ToastProvider.');
|
|
103
|
+
}
|
|
104
|
+
return contextValue;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
exports.ToastProvider = ToastProvider;
|
|
108
|
+
exports.useToast = useToast;
|
|
109
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/Toast/index.tsx"],"sourcesContent":[null],"names":["_jsx","CircleInfoIcon","styles","CircleCheckIcon","TriangleAlertIcon","CircleXIcon","_jsxs","CloseIcon","createPortal"],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var styles = {"toast_viewport":"toast-module_toast_viewport__vS0tW","toast_list":"toast-module_toast_list__r-4p-","toast_viewport_top_right":"toast-module_toast_viewport_top_right__g8262","toast_viewport_top_left":"toast-module_toast_viewport_top_left__-aF0V","toast_viewport_bottom_right":"toast-module_toast_viewport_bottom_right__haSk0","toast_viewport_bottom_left":"toast-module_toast_viewport_bottom_left__cqfBb","toast_list_item":"toast-module_toast_list_item__K2K8r","toast":"toast-module_toast__VCp84","toast_in":"toast-module_toast_in__W0uZk","toast_info":"toast-module_toast_info__OpgDK","toast_success":"toast-module_toast_success__SS2fN","toast_warning":"toast-module_toast_warning__2boQF","toast_error":"toast-module_toast_error__2d2qC","toast_icon":"toast-module_toast_icon__jYhv5","toast_icon_svg":"toast-module_toast_icon_svg__4oFvo","toast_body":"toast-module_toast_body__tc8Kq","toast_title":"toast-module_toast_title__a5kQQ","toast_description":"toast-module_toast_description__lQu6I","toast_action":"toast-module_toast_action__BLzqc","toast_close":"toast-module_toast_close__lipKl"};
|
|
7
|
+
|
|
8
|
+
exports.default = styles;
|
|
9
|
+
//# sourceMappingURL=toast.module.css.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
+
var clsx = require('clsx');
|
|
8
|
+
var React = require('react');
|
|
9
|
+
var reactDom = require('react-dom');
|
|
10
|
+
var useControllableState = require('../hooks/useControllableState.cjs');
|
|
11
|
+
var useFloatingPosition = require('../hooks/useFloatingPosition.cjs');
|
|
12
|
+
var slot = require('../utils/slot.cjs');
|
|
13
|
+
var tooltip_module = require('./tooltip.module.css.cjs');
|
|
14
|
+
|
|
15
|
+
function Tooltip({ children, asChild = false, content, open, defaultOpen = false, onOpenChange, placement = 'top', offset = 8, delay = 120, id, className, style }) {
|
|
16
|
+
const generatedId = React.useId();
|
|
17
|
+
const tooltipId = id ?? `${generatedId}-tooltip`;
|
|
18
|
+
const triggerRef = React.useRef(null);
|
|
19
|
+
const tooltipRef = React.useRef(null);
|
|
20
|
+
const delayTimerRef = React.useRef(null);
|
|
21
|
+
const [isOpen, setOpen] = useControllableState.useControllableState(open, defaultOpen, onOpenChange);
|
|
22
|
+
const position = useFloatingPosition.useFloatingPosition(triggerRef, tooltipRef, {
|
|
23
|
+
open: isOpen,
|
|
24
|
+
placement,
|
|
25
|
+
offset,
|
|
26
|
+
align: 'center'
|
|
27
|
+
});
|
|
28
|
+
const hideImmediately = React.useCallback(() => {
|
|
29
|
+
if (delayTimerRef.current) {
|
|
30
|
+
clearTimeout(delayTimerRef.current);
|
|
31
|
+
}
|
|
32
|
+
setOpen(false);
|
|
33
|
+
}, [setOpen]);
|
|
34
|
+
const showWithDelay = React.useCallback(() => {
|
|
35
|
+
if (delayTimerRef.current) {
|
|
36
|
+
clearTimeout(delayTimerRef.current);
|
|
37
|
+
}
|
|
38
|
+
delayTimerRef.current = setTimeout(() => {
|
|
39
|
+
setOpen(true);
|
|
40
|
+
}, delay);
|
|
41
|
+
}, [delay, setOpen]);
|
|
42
|
+
React.useEffect(() => {
|
|
43
|
+
return () => {
|
|
44
|
+
if (delayTimerRef.current) {
|
|
45
|
+
clearTimeout(delayTimerRef.current);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}, []);
|
|
49
|
+
React.useEffect(() => {
|
|
50
|
+
if (!isOpen) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const handleEscape = (event) => {
|
|
54
|
+
if (event.key === 'Escape') {
|
|
55
|
+
event.preventDefault();
|
|
56
|
+
hideImmediately();
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
document.addEventListener('keydown', handleEscape);
|
|
60
|
+
return () => {
|
|
61
|
+
document.removeEventListener('keydown', handleEscape);
|
|
62
|
+
};
|
|
63
|
+
}, [hideImmediately, isOpen]);
|
|
64
|
+
const triggerProps = {
|
|
65
|
+
onMouseEnter: () => {
|
|
66
|
+
showWithDelay();
|
|
67
|
+
},
|
|
68
|
+
onMouseLeave: () => {
|
|
69
|
+
hideImmediately();
|
|
70
|
+
},
|
|
71
|
+
onFocus: () => {
|
|
72
|
+
showWithDelay();
|
|
73
|
+
},
|
|
74
|
+
onBlur: () => {
|
|
75
|
+
hideImmediately();
|
|
76
|
+
},
|
|
77
|
+
onKeyDown: (event) => {
|
|
78
|
+
if (!event.defaultPrevented && event.key === 'Escape') {
|
|
79
|
+
hideImmediately();
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
'aria-describedby': isOpen ? tooltipId : undefined
|
|
83
|
+
};
|
|
84
|
+
let triggerElement;
|
|
85
|
+
if (asChild) {
|
|
86
|
+
if (!React.isValidElement(children)) {
|
|
87
|
+
throw new Error('Tooltip with asChild expects a single valid React element child.');
|
|
88
|
+
}
|
|
89
|
+
triggerElement = (jsxRuntime.jsx(slot.Slot, { ref: triggerRef, ...triggerProps, children: children }));
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
triggerElement = (jsxRuntime.jsx("button", { ref: triggerRef, type: 'button', onMouseEnter: triggerProps.onMouseEnter, onMouseLeave: triggerProps.onMouseLeave, onFocus: triggerProps.onFocus, onBlur: triggerProps.onBlur, onKeyDown: triggerProps.onKeyDown, "aria-describedby": triggerProps['aria-describedby'], children: children }));
|
|
93
|
+
}
|
|
94
|
+
if (typeof document === 'undefined') {
|
|
95
|
+
return triggerElement;
|
|
96
|
+
}
|
|
97
|
+
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [triggerElement, isOpen &&
|
|
98
|
+
reactDom.createPortal(jsxRuntime.jsx("div", { id: tooltipId, ref: tooltipRef, role: 'tooltip', className: clsx(tooltip_module.default.tooltip, className), style: { top: position.top, left: position.left, ...style }, children: content }), document.body)] }));
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
exports.default = Tooltip;
|
|
102
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/Tooltip/index.tsx"],"sourcesContent":[null],"names":["useControllableState","useFloatingPosition","_jsx","Slot","_jsxs","_Fragment","createPortal","styles"],"mappings":";;;;;;;;;;;;;;AAyBA,SAAS,OAAO,CAAC,EACf,QAAQ,EACR,OAAO,GAAG,KAAK,EACf,OAAO,EACP,IAAI,EACJ,WAAW,GAAG,KAAK,EACnB,YAAY,EACZ,SAAS,GAAG,KAAK,EACjB,MAAM,GAAG,CAAC,EACV,KAAK,GAAG,GAAG,EACX,EAAE,EACF,SAAS,EACT,KAAK,EACkB,EAAA;AACvB,IAAA,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE;AACjC,IAAA,MAAM,SAAS,GAAG,EAAE,IAAI,CAAA,EAAG,WAAW,UAAU;IAChD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAqB,IAAI,CAAC;IACzD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAwB,IAAI,CAAC;IAC5D,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAChC,IAAI,CACL;AAED,IAAA,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAGA,yCAAoB,CAC5C,IAAI,EACJ,WAAW,EACX,YAAY,CACb;AAED,IAAA,MAAM,QAAQ,GAAGC,uCAAmB,CAAC,UAAU,EAAE,UAAU,EAAE;AAC3D,QAAA,IAAI,EAAE,MAAM;QACZ,SAAS;QACT,MAAM;AACN,QAAA,KAAK,EAAE;AACR,KAAA,CAAC;AAEF,IAAA,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,MAAK;AAC7C,QAAA,IAAI,aAAa,CAAC,OAAO,EAAE;AACzB,YAAA,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC;QACrC;QAEA,OAAO,CAAC,KAAK,CAAC;AAChB,IAAA,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAEb,IAAA,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,MAAK;AAC3C,QAAA,IAAI,aAAa,CAAC,OAAO,EAAE;AACzB,YAAA,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC;QACrC;AAEA,QAAA,aAAa,CAAC,OAAO,GAAG,UAAU,CAAC,MAAK;YACtC,OAAO,CAAC,IAAI,CAAC;QACf,CAAC,EAAE,KAAK,CAAC;AACX,IAAA,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAEpB,IAAA,KAAK,CAAC,SAAS,CAAC,MAAK;AACnB,QAAA,OAAO,MAAK;AACV,YAAA,IAAI,aAAa,CAAC,OAAO,EAAE;AACzB,gBAAA,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC;YACrC;AACF,QAAA,CAAC;IACH,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,KAAK,CAAC,SAAS,CAAC,MAAK;QACnB,IAAI,CAAC,MAAM,EAAE;YACX;QACF;AAEA,QAAA,MAAM,YAAY,GAAG,CAAC,KAAoB,KAAI;AAC5C,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;gBAC1B,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,eAAe,EAAE;YACnB;AACF,QAAA,CAAC;AAED,QAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC;AAElD,QAAA,OAAO,MAAK;AACV,YAAA,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC;AACvD,QAAA,CAAC;AACH,IAAA,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AAE7B,IAAA,MAAM,YAAY,GAAG;QACnB,YAAY,EAAE,MAAK;AACjB,YAAA,aAAa,EAAE;QACjB,CAAC;QACD,YAAY,EAAE,MAAK;AACjB,YAAA,eAAe,EAAE;QACnB,CAAC;QACD,OAAO,EAAE,MAAK;AACZ,YAAA,aAAa,EAAE;QACjB,CAAC;QACD,MAAM,EAAE,MAAK;AACX,YAAA,eAAe,EAAE;QACnB,CAAC;AACD,QAAA,SAAS,EAAE,CAAC,KAAuC,KAAI;YACrD,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;AACrD,gBAAA,eAAe,EAAE;YACnB;QACF,CAAC;QACD,kBAAkB,EAAE,MAAM,GAAG,SAAS,GAAG;KACE;AAE7C,IAAA,IAAI,cAAkC;IAEtC,IAAI,OAAO,EAAE;QACX,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE;QACH;AAEA,QAAA,cAAc,IACZC,cAAA,CAACC,SAAI,IAAC,GAAG,EAAE,UAAU,EAAA,GAAM,YAAY,EAAA,QAAA,EACpC,QAAQ,EAAA,CACJ,CACR;IACH;SAAO;QACL,cAAc,IACZD,cAAA,CAAA,QAAA,EAAA,EACE,GAAG,EAAE,UAA0C,EAC/C,IAAI,EAAC,QAAQ,EACb,YAAY,EACV,YAAY,CAAC,YAA0D,EAEzE,YAAY,EACV,YAAY,CAAC,YAA0D,EAEzE,OAAO,EACL,YAAY,CAAC,OAAqD,EAEpE,MAAM,EACJ,YAAY,CAAC,MAAoD,EAEnE,SAAS,EACP,YAAY,CAAC,SAA0D,EAAA,kBAAA,EAEvD,YAAY,CAAC,kBAAkB,CAAC,EAAA,QAAA,EAEjD,QAAQ,EAAA,CACF,CACV;IACH;AAEA,IAAA,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AACnC,QAAA,OAAO,cAAc;IACvB;AAEA,IAAA,QACEE,eAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA,CACG,cAAc,EAEd,MAAM;gBACLC,qBAAY,CACVJ,cAAA,CAAA,KAAA,EAAA,EACE,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,UAAU,EACf,IAAI,EAAC,SAAS,EACd,SAAS,EAAE,IAAI,CAACK,sBAAM,CAAC,OAAO,EAAE,SAAS,CAAC,EAC1C,KAAK,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,GAAG,KAAK,EAAE,EAAA,QAAA,EAE1D,OAAO,EAAA,CACJ,EACN,QAAQ,CAAC,IAAI,CACd,CAAA,EAAA,CACF;AAEP;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var React = require('react');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Manages a boolean value that can be either controlled (value supplied by parent)
|
|
8
|
+
* or uncontrolled (managed internally with an optional callback).
|
|
9
|
+
*/
|
|
10
|
+
function useControllableState(controlled, defaultValue, onChange) {
|
|
11
|
+
const isControlled = controlled !== undefined;
|
|
12
|
+
const [uncontrolled, setUncontrolled] = React.useState(defaultValue);
|
|
13
|
+
const value = isControlled ? controlled : uncontrolled;
|
|
14
|
+
const setValue = React.useCallback((next) => {
|
|
15
|
+
if (!isControlled) {
|
|
16
|
+
setUncontrolled(next);
|
|
17
|
+
}
|
|
18
|
+
onChange?.(next);
|
|
19
|
+
}, [isControlled, onChange]);
|
|
20
|
+
return [value, setValue];
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
exports.useControllableState = useControllableState;
|
|
24
|
+
//# sourceMappingURL=useControllableState.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useControllableState.cjs","sources":["../../../src/hooks/useControllableState.ts"],"sourcesContent":[null],"names":["useState","useCallback"],"mappings":";;;;;AAEA;;;AAGG;SACa,oBAAoB,CAClC,UAA+B,EAC/B,YAAqB,EACrB,QAAmC,EAAA;AAEnC,IAAA,MAAM,YAAY,GAAG,UAAU,KAAK,SAAS;IAC7C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAGA,cAAQ,CAAC,YAAY,CAAC;IAE9D,MAAM,KAAK,GAAG,YAAY,GAAG,UAAU,GAAG,YAAY;AAEtD,IAAA,MAAM,QAAQ,GAAGC,iBAAW,CAC1B,CAAC,IAAa,KAAI;QAChB,IAAI,CAAC,YAAY,EAAE;YACjB,eAAe,CAAC,IAAI,CAAC;QACvB;AACA,QAAA,QAAQ,GAAG,IAAI,CAAC;AAClB,IAAA,CAAC,EACD,CAAC,YAAY,EAAE,QAAQ,CAAC,CACzB;AAED,IAAA,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;AAC1B;;;;"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var React = require('react');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Attaches Escape-key and outside-click listeners that call `onClose`
|
|
8
|
+
* when the floating element should be dismissed.
|
|
9
|
+
*/
|
|
10
|
+
function useDismiss(options) {
|
|
11
|
+
const { open, onClose, triggerRef, contentRef, closeOnEscape = true, closeOnOutsideClick = true, returnFocusOnClose = false } = options;
|
|
12
|
+
React.useEffect(() => {
|
|
13
|
+
if (!open || !closeOnOutsideClick)
|
|
14
|
+
return;
|
|
15
|
+
const handlePointerDown = (event) => {
|
|
16
|
+
const targetNode = event.target;
|
|
17
|
+
if (triggerRef.current?.contains(targetNode))
|
|
18
|
+
return;
|
|
19
|
+
if (contentRef.current?.contains(targetNode))
|
|
20
|
+
return;
|
|
21
|
+
onClose();
|
|
22
|
+
};
|
|
23
|
+
document.addEventListener('mousedown', handlePointerDown);
|
|
24
|
+
return () => document.removeEventListener('mousedown', handlePointerDown);
|
|
25
|
+
}, [closeOnOutsideClick, open, onClose, triggerRef, contentRef]);
|
|
26
|
+
React.useEffect(() => {
|
|
27
|
+
if (!open || !closeOnEscape)
|
|
28
|
+
return;
|
|
29
|
+
const handleEscape = (event) => {
|
|
30
|
+
if (event.key === 'Escape') {
|
|
31
|
+
event.preventDefault();
|
|
32
|
+
onClose();
|
|
33
|
+
if (returnFocusOnClose) {
|
|
34
|
+
triggerRef.current?.focus();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
document.addEventListener('keydown', handleEscape);
|
|
39
|
+
return () => document.removeEventListener('keydown', handleEscape);
|
|
40
|
+
}, [closeOnEscape, open, onClose, triggerRef, returnFocusOnClose]);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
exports.useDismiss = useDismiss;
|
|
44
|
+
//# sourceMappingURL=useDismiss.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDismiss.cjs","sources":["../../../src/hooks/useDismiss.ts"],"sourcesContent":[null],"names":["useEffect"],"mappings":";;;;;AAcA;;;AAGG;AACG,SAAU,UAAU,CAAC,OAA0B,EAAA;IACnD,MAAM,EACJ,IAAI,EACJ,OAAO,EACP,UAAU,EACV,UAAU,EACV,aAAa,GAAG,IAAI,EACpB,mBAAmB,GAAG,IAAI,EAC1B,kBAAkB,GAAG,KAAK,EAC3B,GAAG,OAAO;IAEXA,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,mBAAmB;YAAE;AAEnC,QAAA,MAAM,iBAAiB,GAAG,CAAC,KAAiB,KAAI;AAC9C,YAAA,MAAM,UAAU,GAAG,KAAK,CAAC,MAAc;AACvC,YAAA,IAAI,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC;gBAAE;AAC9C,YAAA,IAAI,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC;gBAAE;AAE9C,YAAA,OAAO,EAAE;AACX,QAAA,CAAC;AAED,QAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,iBAAiB,CAAC;QACzD,OAAO,MAAM,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,iBAAiB,CAAC;AAC3E,IAAA,CAAC,EAAE,CAAC,mBAAmB,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAEhEA,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa;YAAE;AAE7B,QAAA,MAAM,YAAY,GAAG,CAAC,KAAoB,KAAI;AAC5C,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;gBAC1B,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,OAAO,EAAE;gBAET,IAAI,kBAAkB,EAAE;AACtB,oBAAA,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE;gBAC7B;YACF;AACF,QAAA,CAAC;AAED,QAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC;QAClD,OAAO,MAAM,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC;AACpE,IAAA,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;AACpE;;;;"}
|