@zentauri-ui/zentauri-components 1.4.5 → 1.4.7
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 +196 -88
- package/cli/index.mjs +45 -26
- package/cli/registry.json +11 -2
- package/cli/rewrite-imports.mjs +8 -3
- package/dist/charts/area/Area.d.ts +6 -0
- package/dist/charts/area/Area.d.ts.map +1 -0
- package/dist/charts/area/index.d.ts +4 -0
- package/dist/charts/area/index.d.ts.map +1 -0
- package/dist/charts/area.js +119 -0
- package/dist/charts/area.js.map +1 -0
- package/dist/charts/area.mjs +106 -0
- package/dist/charts/area.mjs.map +1 -0
- package/dist/charts/bar/Bar.d.ts +6 -0
- package/dist/charts/bar/Bar.d.ts.map +1 -0
- package/dist/charts/bar/index.d.ts +4 -0
- package/dist/charts/bar/index.d.ts.map +1 -0
- package/dist/charts/bar.js +110 -0
- package/dist/charts/bar.js.map +1 -0
- package/dist/charts/bar.mjs +97 -0
- package/dist/charts/bar.mjs.map +1 -0
- package/dist/charts/bubble/Bubble.d.ts +6 -0
- package/dist/charts/bubble/Bubble.d.ts.map +1 -0
- package/dist/charts/bubble/index.d.ts +4 -0
- package/dist/charts/bubble/index.d.ts.map +1 -0
- package/dist/charts/bubble.js +122 -0
- package/dist/charts/bubble.js.map +1 -0
- package/dist/charts/bubble.mjs +109 -0
- package/dist/charts/bubble.mjs.map +1 -0
- package/dist/charts/line/Line.d.ts +6 -0
- package/dist/charts/line/Line.d.ts.map +1 -0
- package/dist/charts/line/index.d.ts +4 -0
- package/dist/charts/line/index.d.ts.map +1 -0
- package/dist/charts/line.js +113 -0
- package/dist/charts/line.js.map +1 -0
- package/dist/charts/line.mjs +100 -0
- package/dist/charts/line.mjs.map +1 -0
- package/dist/charts/shared/chart-frame.d.ts +32 -0
- package/dist/charts/shared/chart-frame.d.ts.map +1 -0
- package/dist/charts/shared/colors.d.ts +43 -0
- package/dist/charts/shared/colors.d.ts.map +1 -0
- package/dist/charts/shared/types.d.ts +43 -0
- package/dist/charts/shared/types.d.ts.map +1 -0
- package/dist/charts/shared/variants.d.ts +93 -0
- package/dist/charts/shared/variants.d.ts.map +1 -0
- package/dist/{chunk-IXDJ3IPG.mjs → chunk-2BAMNRAL.mjs} +40 -32
- package/dist/chunk-2BAMNRAL.mjs.map +1 -0
- package/dist/{chunk-JE3PD5ZA.js → chunk-2VUMVDR3.js} +8 -8
- package/dist/{chunk-JE3PD5ZA.js.map → chunk-2VUMVDR3.js.map} +1 -1
- package/dist/{chunk-DFEZH7TC.mjs → chunk-4D54YOL6.mjs} +2 -2
- package/dist/{chunk-DFEZH7TC.mjs.map → chunk-4D54YOL6.mjs.map} +1 -1
- package/dist/{chunk-BORK3BJO.mjs → chunk-5TV7EL3H.mjs} +19 -19
- package/dist/chunk-5TV7EL3H.mjs.map +1 -0
- package/dist/{chunk-BSWYZTYK.js → chunk-7DCFVPWN.js} +2 -2
- package/dist/chunk-7DCFVPWN.js.map +1 -0
- package/dist/{chunk-5QB2KNZQ.js → chunk-7TLKLMBM.js} +11 -9
- package/dist/chunk-7TLKLMBM.js.map +1 -0
- package/dist/{chunk-2P3UU2J3.mjs → chunk-A6KMZ5ZS.mjs} +12 -12
- package/dist/chunk-A6KMZ5ZS.mjs.map +1 -0
- package/dist/{chunk-U4YQCAXW.js → chunk-AD2LA3XN.js} +18 -18
- package/dist/chunk-AD2LA3XN.js.map +1 -0
- package/dist/{chunk-XLAFQ24R.js → chunk-AUGLZ3AN.js} +49 -41
- package/dist/chunk-AUGLZ3AN.js.map +1 -0
- package/dist/{chunk-OJ67PZ6N.js → chunk-BCZIYH53.js} +8 -8
- package/dist/{chunk-OJ67PZ6N.js.map → chunk-BCZIYH53.js.map} +1 -1
- package/dist/{chunk-UBFKTC2P.mjs → chunk-C5L465FW.mjs} +12 -12
- package/dist/chunk-C5L465FW.mjs.map +1 -0
- package/dist/chunk-CIN5JDN4.js +174 -0
- package/dist/chunk-CIN5JDN4.js.map +1 -0
- package/dist/{chunk-3OR47XMY.js → chunk-E4FZY7O2.js} +52 -33
- package/dist/chunk-E4FZY7O2.js.map +1 -0
- package/dist/{chunk-LVUPECBT.mjs → chunk-FQBMIZH2.mjs} +12 -12
- package/dist/chunk-FQBMIZH2.mjs.map +1 -0
- package/dist/{chunk-RDSPHBHK.mjs → chunk-G3LEYBRV.mjs} +50 -7
- package/dist/chunk-G3LEYBRV.mjs.map +1 -0
- package/dist/chunk-GBWGVNDA.js +160 -0
- package/dist/chunk-GBWGVNDA.js.map +1 -0
- package/dist/{chunk-XWM2S6VV.mjs → chunk-I6GR234Z.mjs} +22 -20
- package/dist/chunk-I6GR234Z.mjs.map +1 -0
- package/dist/{chunk-UXGHUBNJ.mjs → chunk-INMNX3HQ.mjs} +13 -13
- package/dist/{chunk-UXGHUBNJ.mjs.map → chunk-INMNX3HQ.mjs.map} +1 -1
- package/dist/chunk-IQZROQNJ.mjs +165 -0
- package/dist/chunk-IQZROQNJ.mjs.map +1 -0
- package/dist/{chunk-PGH27VTL.mjs → chunk-JBAUEGYD.mjs} +40 -32
- package/dist/chunk-JBAUEGYD.mjs.map +1 -0
- package/dist/{chunk-WZKGRU3U.js → chunk-JUDMPOCI.js} +103 -38
- package/dist/chunk-JUDMPOCI.js.map +1 -0
- package/dist/chunk-K6YI4FJO.mjs +158 -0
- package/dist/chunk-K6YI4FJO.mjs.map +1 -0
- package/dist/{chunk-WP7GYBRI.js → chunk-KC5LEZ6J.js} +2 -2
- package/dist/chunk-KC5LEZ6J.js.map +1 -0
- package/dist/{chunk-BVXTOEBI.mjs → chunk-LN77JJTY.mjs} +45 -26
- package/dist/chunk-LN77JJTY.mjs.map +1 -0
- package/dist/{chunk-E3DZNJAD.js → chunk-MCOQHXRW.js} +23 -21
- package/dist/chunk-MCOQHXRW.js.map +1 -0
- package/dist/{chunk-FLILFCQE.mjs → chunk-MTLLJFUI.mjs} +7 -8
- package/dist/chunk-MTLLJFUI.mjs.map +1 -0
- package/dist/{chunk-6I7X5BF2.js → chunk-N2OAI2HN.js} +18 -18
- package/dist/chunk-N2OAI2HN.js.map +1 -0
- package/dist/{chunk-BITDSQMR.js → chunk-OB4KJZK2.js} +19 -19
- package/dist/chunk-OB4KJZK2.js.map +1 -0
- package/dist/{chunk-PCK6LX3K.js → chunk-OLEMP2HL.js} +19 -19
- package/dist/{chunk-PCK6LX3K.js.map → chunk-OLEMP2HL.js.map} +1 -1
- package/dist/{chunk-2PQEXQVR.js → chunk-PWL5WD34.js} +76 -27
- package/dist/chunk-PWL5WD34.js.map +1 -0
- package/dist/{chunk-N4NO3SYL.js → chunk-Q5B44QW7.js} +48 -40
- package/dist/chunk-Q5B44QW7.js.map +1 -0
- package/dist/{chunk-FT2LMA66.mjs → chunk-QADZK5R7.mjs} +2 -2
- package/dist/chunk-QADZK5R7.mjs.map +1 -0
- package/dist/{chunk-WDCIZHXY.mjs → chunk-QZTEFGZF.mjs} +6 -4
- package/dist/chunk-QZTEFGZF.mjs.map +1 -0
- package/dist/{chunk-UOFTZKMM.js → chunk-S7WKFNPT.js} +18 -18
- package/dist/chunk-S7WKFNPT.js.map +1 -0
- package/dist/{chunk-XIXF7UVM.mjs → chunk-TINHLHCN.mjs} +12 -12
- package/dist/chunk-TINHLHCN.mjs.map +1 -0
- package/dist/{chunk-7HL3A4YF.mjs → chunk-TJUNN2PT.mjs} +73 -24
- package/dist/chunk-TJUNN2PT.mjs.map +1 -0
- package/dist/{chunk-4B7KGBQB.js → chunk-UWA23DUC.js} +12 -13
- package/dist/chunk-UWA23DUC.js.map +1 -0
- package/dist/{chunk-CY5BQKRZ.mjs → chunk-VXDEPZKH.mjs} +2 -2
- package/dist/chunk-VXDEPZKH.mjs.map +1 -0
- package/dist/{chunk-C2FCPQTO.js → chunk-Y745GQR2.js} +16 -16
- package/dist/chunk-Y745GQR2.js.map +1 -0
- package/dist/{chunk-TZ2JVWTZ.mjs → chunk-YNBJAFI2.mjs} +3 -3
- package/dist/{chunk-TZ2JVWTZ.mjs.map → chunk-YNBJAFI2.mjs.map} +1 -1
- package/dist/{chunk-P5HUBXUX.js → chunk-YTRGRHEB.js} +55 -12
- package/dist/chunk-YTRGRHEB.js.map +1 -0
- package/dist/{chunk-YNCD6TKE.mjs → chunk-ZBBFOMSJ.mjs} +103 -38
- package/dist/chunk-ZBBFOMSJ.mjs.map +1 -0
- package/dist/{chunk-UOZYPWDZ.js → chunk-ZS5756ZC.js} +2 -2
- package/dist/{chunk-UOZYPWDZ.js.map → chunk-ZS5756ZC.js.map} +1 -1
- package/dist/{chunk-W6PRMYUC.mjs → chunk-ZYZJ74XB.mjs} +3 -3
- package/dist/{chunk-W6PRMYUC.mjs.map → chunk-ZYZJ74XB.mjs.map} +1 -1
- package/dist/hooks/index.d.ts +2 -2
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/useClickOutside/useClickOutside.d.ts.map +1 -1
- package/dist/hooks/useClickOutside.js +2 -2
- package/dist/hooks/useClickOutside.mjs +1 -1
- package/dist/hooks/useClipboard/useClipboard.d.ts.map +1 -1
- package/dist/hooks/useClipboard.js.map +1 -1
- package/dist/hooks/useClipboard.mjs.map +1 -1
- package/dist/hooks/useFocusManagement/useFocusManagement.d.ts +5 -14
- package/dist/hooks/useFocusManagement/useFocusManagement.d.ts.map +1 -1
- package/dist/hooks/useFocusManagement.js +2 -2
- package/dist/hooks/useFocusManagement.mjs +1 -1
- package/dist/hooks/useLocalStorage/index.d.ts +1 -1
- package/dist/hooks/useLocalStorage/index.d.ts.map +1 -1
- package/dist/hooks/useLocalStorage.js +1 -3
- package/dist/hooks/useLocalStorage.js.map +1 -1
- package/dist/hooks/useLocalStorage.mjs +1 -3
- package/dist/hooks/useLocalStorage.mjs.map +1 -1
- package/dist/hooks/useMediaQuery/useMediaQuery.d.ts.map +1 -1
- package/dist/hooks/useMediaQuery.js +2 -2
- package/dist/hooks/useMediaQuery.mjs +1 -1
- package/dist/hooks/usePagination.js +4 -4
- package/dist/hooks/usePagination.mjs +2 -2
- package/dist/hooks/usePrefersColorScheme.js +2 -2
- package/dist/hooks/usePrefersColorScheme.mjs +1 -1
- package/dist/hooks/usePrefersReducedMotion.js +2 -2
- package/dist/hooks/usePrefersReducedMotion.mjs +1 -1
- package/dist/hooks/useResizeObserver/index.d.ts +1 -1
- package/dist/hooks/useResizeObserver/index.d.ts.map +1 -1
- package/dist/hooks/useSessionStorage/useSessionStorage.d.ts.map +1 -1
- package/dist/hooks/useSessionStorage.js.map +1 -1
- package/dist/hooks/useSessionStorage.mjs.map +1 -1
- package/dist/hooks/useThrottledCallback/useThrottledCallback.d.ts.map +1 -1
- package/dist/hooks/useThrottledCallback.js.map +1 -1
- package/dist/hooks/useThrottledCallback.mjs.map +1 -1
- package/dist/hooks/useWindowSize/useWindowSize.d.ts.map +1 -1
- package/dist/hooks/useWindowSize.js +4 -1
- package/dist/hooks/useWindowSize.js.map +1 -1
- package/dist/hooks/useWindowSize.mjs +4 -1
- package/dist/hooks/useWindowSize.mjs.map +1 -1
- package/dist/hooks/utils.js +5 -5
- package/dist/hooks/utils.mjs +1 -1
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/ui/accordion/accordion.d.ts.map +1 -1
- package/dist/ui/accordion/animated/accordion-content-animated.d.ts.map +1 -1
- package/dist/ui/accordion/animated/index.d.ts +1 -1
- package/dist/ui/accordion/animated/index.d.ts.map +1 -1
- package/dist/ui/accordion/animated/types.d.ts.map +1 -1
- package/dist/ui/accordion/animated.js +8 -11
- package/dist/ui/accordion/animated.js.map +1 -1
- package/dist/ui/accordion/animated.mjs +4 -7
- package/dist/ui/accordion/animated.mjs.map +1 -1
- package/dist/ui/accordion/variants.d.ts +2 -2
- package/dist/ui/accordion.js +10 -10
- package/dist/ui/accordion.js.map +1 -1
- package/dist/ui/accordion.mjs +3 -3
- package/dist/ui/accordion.mjs.map +1 -1
- package/dist/ui/alert/alert-base.d.ts.map +1 -1
- package/dist/ui/alert/alert.d.ts.map +1 -1
- package/dist/ui/alert/animated/index.d.ts.map +1 -1
- package/dist/ui/alert/animated.js +3 -3
- package/dist/ui/alert/animated.mjs +2 -2
- package/dist/ui/alert/types.d.ts.map +1 -1
- package/dist/ui/alert/variants.d.ts +1 -1
- package/dist/ui/alert.js +11 -11
- package/dist/ui/alert.js.map +1 -1
- package/dist/ui/alert.mjs +3 -3
- package/dist/ui/alert.mjs.map +1 -1
- package/dist/ui/avatar/animated/index.d.ts +1 -1
- package/dist/ui/avatar/animated/index.d.ts.map +1 -1
- package/dist/ui/avatar/animated.js +6 -6
- package/dist/ui/avatar/animated.mjs +3 -3
- package/dist/ui/avatar/avatar-base.d.ts.map +1 -1
- package/dist/ui/avatar/avatar.d.ts.map +1 -1
- package/dist/ui/avatar/variants.d.ts +1 -1
- package/dist/ui/avatar/variants.d.ts.map +1 -1
- package/dist/ui/avatar.js +10 -10
- package/dist/ui/avatar.js.map +1 -1
- package/dist/ui/avatar.mjs +3 -3
- package/dist/ui/avatar.mjs.map +1 -1
- package/dist/ui/badge/animated/index.d.ts +1 -1
- package/dist/ui/badge/animated/index.d.ts.map +1 -1
- package/dist/ui/badge/animated/types.d.ts.map +1 -1
- package/dist/ui/badge/animated.js +3 -3
- package/dist/ui/badge/animated.mjs +2 -2
- package/dist/ui/badge/badge-base.d.ts +1 -1
- package/dist/ui/badge/badge-base.d.ts.map +1 -1
- package/dist/ui/badge/types.d.ts +1 -0
- package/dist/ui/badge/types.d.ts.map +1 -1
- package/dist/ui/badge/variants.d.ts +18 -18
- package/dist/ui/badge/variants.d.ts.map +1 -1
- package/dist/ui/badge.js +5 -5
- package/dist/ui/badge.mjs +3 -3
- package/dist/ui/breadcrumb/breadcrumb.d.ts.map +1 -1
- package/dist/ui/breadcrumb/types.d.ts.map +1 -1
- package/dist/ui/breadcrumb/variants.d.ts +1 -1
- package/dist/ui/breadcrumb/variants.d.ts.map +1 -1
- package/dist/ui/breadcrumb.js +47 -43
- package/dist/ui/breadcrumb.js.map +1 -1
- package/dist/ui/breadcrumb.mjs +43 -39
- package/dist/ui/breadcrumb.mjs.map +1 -1
- package/dist/ui/buttons/animated/index.d.ts +1 -1
- package/dist/ui/buttons/animated/index.d.ts.map +1 -1
- package/dist/ui/buttons/animated/types.d.ts.map +1 -1
- package/dist/ui/buttons/animated.js +4 -4
- package/dist/ui/buttons/animated.mjs +2 -2
- package/dist/ui/buttons/types.d.ts.map +1 -1
- package/dist/ui/buttons/variants.d.ts +2 -2
- package/dist/ui/buttons.js +5 -5
- package/dist/ui/buttons.mjs +3 -3
- package/dist/ui/card/animated.js +8 -8
- package/dist/ui/card/animated.mjs +3 -3
- package/dist/ui/card/card-base.d.ts.map +1 -1
- package/dist/ui/card/card.d.ts.map +1 -1
- package/dist/ui/card/index.d.ts +2 -2
- package/dist/ui/card/index.d.ts.map +1 -1
- package/dist/ui/card/variants.d.ts +1 -1
- package/dist/ui/card.js +13 -13
- package/dist/ui/card.js.map +1 -1
- package/dist/ui/card.mjs +3 -3
- package/dist/ui/card.mjs.map +1 -1
- package/dist/ui/divider/animated/index.d.ts +1 -1
- package/dist/ui/divider/animated/index.d.ts.map +1 -1
- package/dist/ui/divider/animated/types.d.ts.map +1 -1
- package/dist/ui/divider/animated.js +3 -3
- package/dist/ui/divider/animated.mjs +2 -2
- package/dist/ui/divider/divider-base.d.ts.map +1 -1
- package/dist/ui/divider/variants.d.ts +2 -2
- package/dist/ui/divider.js +7 -7
- package/dist/ui/divider.mjs +3 -3
- package/dist/ui/drawer/animated/drawer-content-animated.d.ts.map +1 -1
- package/dist/ui/drawer/animated/index.d.ts +1 -1
- package/dist/ui/drawer/animated/index.d.ts.map +1 -1
- package/dist/ui/drawer/animated.js +19 -20
- package/dist/ui/drawer/animated.js.map +1 -1
- package/dist/ui/drawer/animated.mjs +9 -10
- package/dist/ui/drawer/animated.mjs.map +1 -1
- package/dist/ui/drawer/drawer-base.d.ts +1 -1
- package/dist/ui/drawer/drawer-base.d.ts.map +1 -1
- package/dist/ui/drawer/types.d.ts +1 -0
- package/dist/ui/drawer/types.d.ts.map +1 -1
- package/dist/ui/drawer/variants.d.ts +3 -3
- package/dist/ui/drawer.js +13 -13
- package/dist/ui/drawer.mjs +3 -3
- package/dist/ui/dropdown/dropdown.d.ts +1 -1
- package/dist/ui/dropdown/dropdown.d.ts.map +1 -1
- package/dist/ui/dropdown/types.d.ts +1 -0
- package/dist/ui/dropdown/types.d.ts.map +1 -1
- package/dist/ui/dropdown/variants.d.ts +4 -4
- package/dist/ui/dropdown.js +49 -31
- package/dist/ui/dropdown.js.map +1 -1
- package/dist/ui/dropdown.mjs +46 -28
- package/dist/ui/dropdown.mjs.map +1 -1
- package/dist/ui/empty-state/animated/empty-state-animated.d.ts.map +1 -1
- package/dist/ui/empty-state/animated/index.d.ts +2 -2
- package/dist/ui/empty-state/animated/index.d.ts.map +1 -1
- package/dist/ui/empty-state/animated.js +3 -3
- package/dist/ui/empty-state/animated.js.map +1 -1
- package/dist/ui/empty-state/animated.mjs +2 -2
- package/dist/ui/empty-state/animated.mjs.map +1 -1
- package/dist/ui/empty-state/empty-state-base.d.ts.map +1 -1
- package/dist/ui/empty-state/index.d.ts +1 -1
- package/dist/ui/empty-state/index.d.ts.map +1 -1
- package/dist/ui/empty-state/types.d.ts +1 -0
- package/dist/ui/empty-state/types.d.ts.map +1 -1
- package/dist/ui/empty-state.js +11 -11
- package/dist/ui/empty-state.mjs +3 -3
- package/dist/ui/file-upload/file-upload.d.ts.map +1 -1
- package/dist/ui/file-upload/variants.d.ts +1 -1
- package/dist/ui/file-upload/variants.d.ts.map +1 -1
- package/dist/ui/file-upload.js +4 -6
- package/dist/ui/file-upload.js.map +1 -1
- package/dist/ui/file-upload.mjs +2 -4
- package/dist/ui/file-upload.mjs.map +1 -1
- package/dist/ui/inputs/animated/index.d.ts +1 -1
- package/dist/ui/inputs/animated/index.d.ts.map +1 -1
- package/dist/ui/inputs/animated.js +3 -3
- package/dist/ui/inputs/animated.mjs +1 -1
- package/dist/ui/inputs/input-base.d.ts.map +1 -1
- package/dist/ui/inputs/types.d.ts +3 -1
- package/dist/ui/inputs/types.d.ts.map +1 -1
- package/dist/ui/inputs/variants.d.ts +2 -2
- package/dist/ui/inputs.js +49 -5
- package/dist/ui/inputs.js.map +1 -1
- package/dist/ui/inputs.mjs +47 -3
- package/dist/ui/inputs.mjs.map +1 -1
- package/dist/ui/modal/animated/index.d.ts +1 -1
- package/dist/ui/modal/animated/index.d.ts.map +1 -1
- package/dist/ui/modal/animated/modal-content-animated.d.ts.map +1 -1
- package/dist/ui/modal/animated.js +12 -13
- package/dist/ui/modal/animated.js.map +1 -1
- package/dist/ui/modal/animated.mjs +8 -9
- package/dist/ui/modal/animated.mjs.map +1 -1
- package/dist/ui/modal/index.d.ts +1 -1
- package/dist/ui/modal/index.d.ts.map +1 -1
- package/dist/ui/modal/modal-base.d.ts +4 -2
- package/dist/ui/modal/modal-base.d.ts.map +1 -1
- package/dist/ui/modal/types.d.ts.map +1 -1
- package/dist/ui/modal/variants.d.ts +2 -2
- package/dist/ui/modal.js +14 -14
- package/dist/ui/modal.js.map +1 -1
- package/dist/ui/modal.mjs +4 -4
- package/dist/ui/modal.mjs.map +1 -1
- package/dist/ui/pagination/pagination.d.ts +2 -2
- package/dist/ui/pagination/variants.d.ts +3 -3
- package/dist/ui/pagination.js +25 -25
- package/dist/ui/pagination.js.map +1 -1
- package/dist/ui/pagination.mjs +15 -15
- package/dist/ui/pagination.mjs.map +1 -1
- package/dist/ui/progress/animated/progress-animated.d.ts.map +1 -1
- package/dist/ui/progress/animated.js +52 -14
- package/dist/ui/progress/animated.js.map +1 -1
- package/dist/ui/progress/animated.mjs +45 -7
- package/dist/ui/progress/animated.mjs.map +1 -1
- package/dist/ui/progress/index.d.ts +2 -2
- package/dist/ui/progress/index.d.ts.map +1 -1
- package/dist/ui/progress/progress-base.d.ts.map +1 -1
- package/dist/ui/progress/progress.d.ts.map +1 -1
- package/dist/ui/progress/types.d.ts +3 -0
- package/dist/ui/progress/types.d.ts.map +1 -1
- package/dist/ui/progress/variants.d.ts +1 -1
- package/dist/ui/progress.js +10 -15
- package/dist/ui/progress.js.map +1 -1
- package/dist/ui/progress.mjs +4 -9
- package/dist/ui/progress.mjs.map +1 -1
- package/dist/ui/search/search-bar.d.ts +1 -1
- package/dist/ui/search/search-bar.d.ts.map +1 -1
- package/dist/ui/search/search-suggestion-list.d.ts.map +1 -1
- package/dist/ui/search/search-suggestion-utils.d.ts.map +1 -1
- package/dist/ui/search.js +25 -13
- package/dist/ui/search.js.map +1 -1
- package/dist/ui/search.mjs +21 -9
- package/dist/ui/search.mjs.map +1 -1
- package/dist/ui/select/select.d.ts +1 -1
- package/dist/ui/select/select.d.ts.map +1 -1
- package/dist/ui/select/types.d.ts +1 -0
- package/dist/ui/select/types.d.ts.map +1 -1
- package/dist/ui/select/variants.d.ts +4 -4
- package/dist/ui/select/variants.d.ts.map +1 -1
- package/dist/ui/select.js +145 -63
- package/dist/ui/select.js.map +1 -1
- package/dist/ui/select.mjs +141 -59
- package/dist/ui/select.mjs.map +1 -1
- package/dist/ui/skeleton/animated/skeleton-animated.d.ts.map +1 -1
- package/dist/ui/skeleton/animated/types.d.ts.map +1 -1
- package/dist/ui/skeleton/animated.js +34 -10
- package/dist/ui/skeleton/animated.js.map +1 -1
- package/dist/ui/skeleton/animated.mjs +29 -5
- package/dist/ui/skeleton/animated.mjs.map +1 -1
- package/dist/ui/skeleton/variants.d.ts +3 -3
- package/dist/ui/skeleton.js +10 -10
- package/dist/ui/skeleton.mjs +2 -2
- package/dist/ui/slider/slider.d.ts.map +1 -1
- package/dist/ui/slider/types.d.ts +8 -2
- package/dist/ui/slider/types.d.ts.map +1 -1
- package/dist/ui/slider/variants.d.ts +1 -1
- package/dist/ui/slider.js +53 -17
- package/dist/ui/slider.js.map +1 -1
- package/dist/ui/slider.mjs +45 -9
- package/dist/ui/slider.mjs.map +1 -1
- package/dist/ui/spinner/animated/spinner.d.ts.map +1 -1
- package/dist/ui/spinner/animated/variants.d.ts +1 -1
- package/dist/ui/spinner/animated.js +68 -56
- package/dist/ui/spinner/animated.js.map +1 -1
- package/dist/ui/spinner/animated.mjs +64 -52
- package/dist/ui/spinner/animated.mjs.map +1 -1
- package/dist/ui/stepper/stepper.d.ts +2 -7
- package/dist/ui/stepper/stepper.d.ts.map +1 -1
- package/dist/ui/stepper/types.d.ts +3 -3
- package/dist/ui/stepper/types.d.ts.map +1 -1
- package/dist/ui/stepper/variants.d.ts +1 -1
- package/dist/ui/stepper/variants.d.ts.map +1 -1
- package/dist/ui/stepper.js +12 -13
- package/dist/ui/stepper.js.map +1 -1
- package/dist/ui/stepper.mjs +9 -10
- package/dist/ui/stepper.mjs.map +1 -1
- package/dist/ui/table/animated/index.d.ts +2 -2
- package/dist/ui/table/animated/index.d.ts.map +1 -1
- package/dist/ui/table/animated.js +9 -9
- package/dist/ui/table/animated.mjs +3 -3
- package/dist/ui/table/table-base.d.ts +1 -1
- package/dist/ui/table/table-base.d.ts.map +1 -1
- package/dist/ui/table/types.d.ts +5 -1
- package/dist/ui/table/types.d.ts.map +1 -1
- package/dist/ui/table/variants.d.ts +3 -3
- package/dist/ui/table.js +15 -15
- package/dist/ui/table.mjs +2 -2
- package/dist/ui/tabs/animated/animations.d.ts.map +1 -1
- package/dist/ui/tabs/animated/index.d.ts +1 -1
- package/dist/ui/tabs/animated/index.d.ts.map +1 -1
- package/dist/ui/tabs/animated/types.d.ts.map +1 -1
- package/dist/ui/tabs/animated.js +4 -4
- package/dist/ui/tabs/animated.js.map +1 -1
- package/dist/ui/tabs/animated.mjs +2 -2
- package/dist/ui/tabs/animated.mjs.map +1 -1
- package/dist/ui/tabs/index.d.ts +1 -1
- package/dist/ui/tabs/index.d.ts.map +1 -1
- package/dist/ui/tabs/tabs-base.d.ts.map +1 -1
- package/dist/ui/tabs/tabs.d.ts +1 -1
- package/dist/ui/tabs/tabs.d.ts.map +1 -1
- package/dist/ui/tabs/types.d.ts +2 -1
- package/dist/ui/tabs/types.d.ts.map +1 -1
- package/dist/ui/tabs/variants.d.ts +1 -1
- package/dist/ui/tabs.js +10 -10
- package/dist/ui/tabs.mjs +2 -2
- package/dist/ui/toast/animated/toast-animated.d.ts.map +1 -1
- package/dist/ui/toast/animated.js +12 -10
- package/dist/ui/toast/animated.js.map +1 -1
- package/dist/ui/toast/animated.mjs +5 -3
- package/dist/ui/toast/animated.mjs.map +1 -1
- package/dist/ui/toast/types.d.ts.map +1 -1
- package/dist/ui/toast/variants.d.ts +1 -1
- package/dist/ui/toast.js +13 -13
- package/dist/ui/toast.mjs +2 -2
- package/dist/ui/toggle/animated/index.d.ts +2 -2
- package/dist/ui/toggle/animated/index.d.ts.map +1 -1
- package/dist/ui/toggle/animated/types.d.ts.map +1 -1
- package/dist/ui/toggle/animated.js +3 -3
- package/dist/ui/toggle/animated.mjs +1 -1
- package/dist/ui/toggle/index.d.ts +1 -1
- package/dist/ui/toggle/index.d.ts.map +1 -1
- package/dist/ui/toggle/toggle-base.d.ts.map +1 -1
- package/dist/ui/toggle/variants.d.ts +1 -1
- package/dist/ui/toggle.js +31 -6
- package/dist/ui/toggle.js.map +1 -1
- package/dist/ui/toggle.mjs +30 -5
- package/dist/ui/toggle.mjs.map +1 -1
- package/dist/ui/tooltip/animated/animations.d.ts.map +1 -1
- package/dist/ui/tooltip/animated/types.d.ts.map +1 -1
- package/dist/ui/tooltip/animated.js +5 -5
- package/dist/ui/tooltip/animated.js.map +1 -1
- package/dist/ui/tooltip/animated.mjs +2 -2
- package/dist/ui/tooltip/animated.mjs.map +1 -1
- package/dist/ui/tooltip/tooltip-base.d.ts.map +1 -1
- package/dist/ui/tooltip/types.d.ts +1 -0
- package/dist/ui/tooltip/types.d.ts.map +1 -1
- package/dist/ui/tooltip/variants.d.ts +1 -1
- package/dist/ui/tooltip/variants.d.ts.map +1 -1
- package/dist/ui/tooltip.js +8 -8
- package/dist/ui/tooltip.mjs +2 -2
- package/dist/ui/typography/blockquote-base.d.ts +6 -0
- package/dist/ui/typography/blockquote-base.d.ts.map +1 -0
- package/dist/ui/typography/blockquote.d.ts +6 -0
- package/dist/ui/typography/blockquote.d.ts.map +1 -0
- package/dist/ui/typography/code-block-base.d.ts +6 -0
- package/dist/ui/typography/code-block-base.d.ts.map +1 -0
- package/dist/ui/typography/code-block.d.ts +6 -0
- package/dist/ui/typography/code-block.d.ts.map +1 -0
- package/dist/ui/typography/heading-base.d.ts +6 -0
- package/dist/ui/typography/heading-base.d.ts.map +1 -0
- package/dist/ui/typography/heading.d.ts +6 -0
- package/dist/ui/typography/heading.d.ts.map +1 -0
- package/dist/ui/typography/index.d.ts +9 -0
- package/dist/ui/typography/index.d.ts.map +1 -0
- package/dist/ui/typography/inline-code-base.d.ts +6 -0
- package/dist/ui/typography/inline-code-base.d.ts.map +1 -0
- package/dist/ui/typography/inline-code.d.ts +6 -0
- package/dist/ui/typography/inline-code.d.ts.map +1 -0
- package/dist/ui/typography/list-base.d.ts +10 -0
- package/dist/ui/typography/list-base.d.ts.map +1 -0
- package/dist/ui/typography/list.d.ts +12 -0
- package/dist/ui/typography/list.d.ts.map +1 -0
- package/dist/ui/typography/text-base.d.ts +6 -0
- package/dist/ui/typography/text-base.d.ts.map +1 -0
- package/dist/ui/typography/text.d.ts +6 -0
- package/dist/ui/typography/text.d.ts.map +1 -0
- package/dist/ui/typography/types.d.ts +56 -0
- package/dist/ui/typography/types.d.ts.map +1 -0
- package/dist/ui/typography/variants.d.ts +16 -0
- package/dist/ui/typography/variants.d.ts.map +1 -0
- package/dist/ui/typography.js +312 -0
- package/dist/ui/typography.js.map +1 -0
- package/dist/ui/typography.mjs +299 -0
- package/dist/ui/typography.mjs.map +1 -0
- package/package.json +32 -12
- package/src/charts/area/Area.tsx +103 -0
- package/src/charts/area/index.ts +9 -0
- package/src/charts/bar/Bar.tsx +94 -0
- package/src/charts/bar/index.ts +9 -0
- package/src/charts/bubble/Bubble.tsx +113 -0
- package/src/charts/bubble/index.ts +9 -0
- package/src/charts/line/Line.tsx +97 -0
- package/src/charts/line/index.ts +9 -0
- package/src/charts/shared/chart-frame.tsx +107 -0
- package/src/charts/shared/colors.ts +31 -0
- package/src/charts/shared/types.ts +60 -0
- package/src/charts/shared/variants.ts +87 -0
- package/src/hooks/index.ts +8 -2
- package/src/hooks/useClickOutside/useClickOutside.ts +1 -4
- package/src/hooks/useClipboard/useClipboard.test.ts +3 -1
- package/src/hooks/useClipboard/useClipboard.ts +1 -2
- package/src/hooks/useDisclosure/useDisclosure.test.ts +1 -2
- package/src/hooks/useDocumentTitle/useDocumentTitle.test.ts +1 -3
- package/src/hooks/useFocusManagement/useFocusManagement.test.tsx +8 -0
- package/src/hooks/useFocusManagement/useFocusManagement.ts +162 -34
- package/src/hooks/useInView/useInView.test.ts +6 -1
- package/src/hooks/useLocalStorage/index.ts +1 -4
- package/src/hooks/useLocalStorage/useLocalStorage.test.ts +8 -20
- package/src/hooks/useLocalStorage/useLocalStorage.ts +4 -4
- package/src/hooks/useMediaQuery/useMediaQuery.ts +1 -4
- package/src/hooks/usePrefersReducedMotion/usePrefersReducedMotion.test.ts +3 -1
- package/src/hooks/useResizeObserver/index.ts +1 -4
- package/src/hooks/useSessionStorage/useSessionStorage.test.ts +2 -6
- package/src/hooks/useSessionStorage/useSessionStorage.ts +4 -2
- package/src/hooks/useThrottledCallback/useThrottledCallback.ts +4 -3
- package/src/hooks/useWindowSize/useWindowSize.ts +4 -1
- package/src/lib/utils.ts +3 -3
- package/src/ui/accordion/accordion.tsx +6 -1
- package/src/ui/accordion/animated/accordion-content-animated.tsx +1 -4
- package/src/ui/accordion/animated/index.ts +4 -1
- package/src/ui/accordion/animated/types.ts +6 -2
- package/src/ui/accordion/variants.ts +9 -9
- package/src/ui/alert/alert-base.tsx +6 -1
- package/src/ui/alert/alert.tsx +2 -2
- package/src/ui/alert/animated/index.ts +2 -2
- package/src/ui/alert/animated/types.ts +1 -1
- package/src/ui/alert/types.ts +1 -3
- package/src/ui/alert/variants.ts +9 -9
- package/src/ui/avatar/animated/index.ts +6 -2
- package/src/ui/avatar/avatar-base.tsx +2 -7
- package/src/ui/avatar/avatar.tsx +6 -1
- package/src/ui/avatar/variants.ts +23 -11
- package/src/ui/badge/animated/index.ts +6 -2
- package/src/ui/badge/animated/types.ts +1 -2
- package/src/ui/badge/badge-base.tsx +4 -1
- package/src/ui/badge/types.ts +1 -0
- package/src/ui/badge/variants.ts +16 -18
- package/src/ui/breadcrumb/breadcrumb.tsx +10 -2
- package/src/ui/breadcrumb/types.ts +20 -9
- package/src/ui/breadcrumb/variants.ts +34 -38
- package/src/ui/buttons/animated/index.ts +7 -1
- package/src/ui/buttons/animated/types.ts +0 -1
- package/src/ui/buttons/button.test.tsx +2 -2
- package/src/ui/buttons/types.ts +4 -5
- package/src/ui/buttons/variants.ts +17 -17
- package/src/ui/card/animated/types.ts +0 -1
- package/src/ui/card/card-base.tsx +1 -6
- package/src/ui/card/card.test.tsx +7 -3
- package/src/ui/card/card.tsx +1 -3
- package/src/ui/card/index.ts +7 -3
- package/src/ui/card/types.ts +1 -1
- package/src/ui/card/variants.ts +9 -9
- package/src/ui/divider/animated/index.ts +5 -1
- package/src/ui/divider/animated/types.ts +4 -2
- package/src/ui/divider/divider-base.tsx +0 -1
- package/src/ui/drawer/animated/drawer-content-animated.tsx +6 -11
- package/src/ui/drawer/animated/index.ts +6 -1
- package/src/ui/drawer/drawer-base.tsx +16 -8
- package/src/ui/drawer/types.ts +12 -3
- package/src/ui/drawer/variants.ts +18 -18
- package/src/ui/dropdown/dropdown.test.tsx +1 -3
- package/src/ui/dropdown/dropdown.tsx +30 -5
- package/src/ui/dropdown/types.ts +1 -0
- package/src/ui/dropdown/variants.ts +20 -20
- package/src/ui/empty-state/animated/empty-state-animated.tsx +2 -4
- package/src/ui/empty-state/animated/index.ts +8 -5
- package/src/ui/empty-state/empty-state-base.tsx +14 -2
- package/src/ui/empty-state/index.ts +7 -1
- package/src/ui/empty-state/types.ts +1 -0
- package/src/ui/file-upload/file-upload.tsx +3 -9
- package/src/ui/file-upload/variants.ts +18 -9
- package/src/ui/inputs/animated/index.ts +7 -1
- package/src/ui/inputs/input-base.tsx +60 -6
- package/src/ui/inputs/input.test.tsx +5 -1
- package/src/ui/inputs/types.ts +7 -2
- package/src/ui/modal/animated/index.ts +6 -1
- package/src/ui/modal/animated/modal-content-animated.tsx +4 -5
- package/src/ui/modal/index.ts +1 -1
- package/src/ui/modal/modal-base.tsx +19 -10
- package/src/ui/modal/modal.test.tsx +44 -4
- package/src/ui/modal/modal.tsx +1 -1
- package/src/ui/modal/types.ts +10 -2
- package/src/ui/modal/variants.ts +18 -18
- package/src/ui/pagination/pagination.tsx +2 -2
- package/src/ui/pagination/variants.ts +9 -9
- package/src/ui/progress/animated/progress-animated.tsx +43 -5
- package/src/ui/progress/animated/types.ts +1 -1
- package/src/ui/progress/index.ts +12 -2
- package/src/ui/progress/progress-base.tsx +61 -5
- package/src/ui/progress/progress.test.tsx +1 -3
- package/src/ui/progress/progress.tsx +2 -6
- package/src/ui/progress/types.ts +3 -0
- package/src/ui/search/filter-search-suggestions.test.ts +46 -12
- package/src/ui/search/filter-search-suggestions.ts +3 -3
- package/src/ui/search/search-bar.tsx +23 -23
- package/src/ui/search/search-suggestion-list.tsx +28 -11
- package/src/ui/search/search-suggestion-utils.ts +4 -1
- package/src/ui/select/select.tsx +96 -6
- package/src/ui/select/types.ts +1 -0
- package/src/ui/select/variants.ts +71 -68
- package/src/ui/skeleton/animated/skeleton-animated.tsx +25 -4
- package/src/ui/skeleton/animated/types.ts +0 -1
- package/src/ui/skeleton/skeleton-base.tsx +3 -3
- package/src/ui/skeleton/variants.ts +9 -9
- package/src/ui/slider/slider.test.tsx +23 -9
- package/src/ui/slider/slider.tsx +45 -4
- package/src/ui/slider/types.ts +9 -3
- package/src/ui/slider/variants.ts +1 -1
- package/src/ui/spinner/animated/spinner.tsx +6 -3
- package/src/ui/stepper/stepper.test.tsx +5 -6
- package/src/ui/stepper/stepper.tsx +12 -16
- package/src/ui/stepper/types.ts +11 -5
- package/src/ui/stepper/variants.ts +30 -15
- package/src/ui/table/animated/index.ts +6 -4
- package/src/ui/table/table-base.tsx +32 -11
- package/src/ui/table/types.ts +8 -1
- package/src/ui/tabs/animated/animations.ts +5 -1
- package/src/ui/tabs/animated/index.ts +7 -1
- package/src/ui/tabs/animated/types.ts +3 -3
- package/src/ui/tabs/index.ts +8 -1
- package/src/ui/tabs/tabs-base.tsx +71 -10
- package/src/ui/tabs/tabs.tsx +8 -1
- package/src/ui/tabs/types.ts +2 -1
- package/src/ui/tabs/variants.ts +10 -10
- package/src/ui/toast/animated/toast-animated.tsx +3 -1
- package/src/ui/toast/animated/types.ts +1 -1
- package/src/ui/toast/toast-base.tsx +1 -1
- package/src/ui/toast/types.ts +3 -1
- package/src/ui/toast/variants.ts +9 -9
- package/src/ui/toggle/animated/index.ts +7 -4
- package/src/ui/toggle/animated/types.ts +4 -2
- package/src/ui/toggle/index.ts +5 -1
- package/src/ui/toggle/toggle-base.tsx +36 -4
- package/src/ui/tooltip/animated/animations.ts +0 -1
- package/src/ui/tooltip/animated/types.ts +0 -1
- package/src/ui/tooltip/tooltip-base.tsx +118 -22
- package/src/ui/tooltip/types.ts +1 -0
- package/src/ui/tooltip/variants.ts +11 -13
- package/src/ui/typography/blockquote-base.tsx +32 -0
- package/src/ui/typography/blockquote.tsx +8 -0
- package/src/ui/typography/code-block-base.tsx +32 -0
- package/src/ui/typography/code-block.tsx +8 -0
- package/src/ui/typography/heading-base.tsx +56 -0
- package/src/ui/typography/heading.tsx +8 -0
- package/src/ui/typography/index.ts +28 -0
- package/src/ui/typography/inline-code-base.tsx +27 -0
- package/src/ui/typography/inline-code.tsx +8 -0
- package/src/ui/typography/list-base.tsx +80 -0
- package/src/ui/typography/list.tsx +15 -0
- package/src/ui/typography/text-base.tsx +43 -0
- package/src/ui/typography/text.tsx +8 -0
- package/src/ui/typography/types.ts +77 -0
- package/src/ui/typography/typography.test.tsx +82 -0
- package/src/ui/typography/variants.ts +80 -0
- package/dist/chunk-2P3UU2J3.mjs.map +0 -1
- package/dist/chunk-2PQEXQVR.js.map +0 -1
- package/dist/chunk-3OR47XMY.js.map +0 -1
- package/dist/chunk-4B7KGBQB.js.map +0 -1
- package/dist/chunk-5QB2KNZQ.js.map +0 -1
- package/dist/chunk-6I7X5BF2.js.map +0 -1
- package/dist/chunk-7HL3A4YF.mjs.map +0 -1
- package/dist/chunk-BITDSQMR.js.map +0 -1
- package/dist/chunk-BORK3BJO.mjs.map +0 -1
- package/dist/chunk-BSWYZTYK.js.map +0 -1
- package/dist/chunk-BVXTOEBI.mjs.map +0 -1
- package/dist/chunk-C2FCPQTO.js.map +0 -1
- package/dist/chunk-CY5BQKRZ.mjs.map +0 -1
- package/dist/chunk-E3DZNJAD.js.map +0 -1
- package/dist/chunk-FLILFCQE.mjs.map +0 -1
- package/dist/chunk-FT2LMA66.mjs.map +0 -1
- package/dist/chunk-IXDJ3IPG.mjs.map +0 -1
- package/dist/chunk-LVUPECBT.mjs.map +0 -1
- package/dist/chunk-N4NO3SYL.js.map +0 -1
- package/dist/chunk-P5HUBXUX.js.map +0 -1
- package/dist/chunk-PGH27VTL.mjs.map +0 -1
- package/dist/chunk-RDSPHBHK.mjs.map +0 -1
- package/dist/chunk-U4YQCAXW.js.map +0 -1
- package/dist/chunk-UBFKTC2P.mjs.map +0 -1
- package/dist/chunk-UOFTZKMM.js.map +0 -1
- package/dist/chunk-WDCIZHXY.mjs.map +0 -1
- package/dist/chunk-WL5I7RVS.mjs +0 -54
- package/dist/chunk-WL5I7RVS.mjs.map +0 -1
- package/dist/chunk-WP7GYBRI.js.map +0 -1
- package/dist/chunk-WZKGRU3U.js.map +0 -1
- package/dist/chunk-XIXF7UVM.mjs.map +0 -1
- package/dist/chunk-XLAFQ24R.js.map +0 -1
- package/dist/chunk-XWM2S6VV.mjs.map +0 -1
- package/dist/chunk-YNCD6TKE.mjs.map +0 -1
- package/dist/chunk-YPLVTUYL.js +0 -56
- package/dist/chunk-YPLVTUYL.js.map +0 -1
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
Scatter,
|
|
5
|
+
ScatterChart as RechartsScatterChart,
|
|
6
|
+
XAxis,
|
|
7
|
+
YAxis,
|
|
8
|
+
ZAxis,
|
|
9
|
+
Bar,
|
|
10
|
+
} from "recharts";
|
|
11
|
+
|
|
12
|
+
import {
|
|
13
|
+
ChartDecorators,
|
|
14
|
+
ChartFrame,
|
|
15
|
+
defaultChartMargin,
|
|
16
|
+
} from "../shared/chart-frame";
|
|
17
|
+
import { resolveColor } from "../shared/colors";
|
|
18
|
+
import type { BubbleChartProps } from "../shared/types";
|
|
19
|
+
|
|
20
|
+
export function BubbleChart<
|
|
21
|
+
TDatum extends Record<string, number | string | null | undefined>,
|
|
22
|
+
>({
|
|
23
|
+
appearance,
|
|
24
|
+
className,
|
|
25
|
+
containerStyle,
|
|
26
|
+
data,
|
|
27
|
+
density,
|
|
28
|
+
emptyState = null,
|
|
29
|
+
height = 320,
|
|
30
|
+
margin = defaultChartMargin,
|
|
31
|
+
series,
|
|
32
|
+
showGrid = true,
|
|
33
|
+
showLegend = false,
|
|
34
|
+
showTooltip = true,
|
|
35
|
+
tooltipColor = "#0f172a",
|
|
36
|
+
style,
|
|
37
|
+
syncId,
|
|
38
|
+
xKey,
|
|
39
|
+
...props
|
|
40
|
+
}: BubbleChartProps<TDatum>) {
|
|
41
|
+
const hasData = data.length > 0 && series.length > 0;
|
|
42
|
+
const xAxisKey = String(xKey);
|
|
43
|
+
|
|
44
|
+
return (
|
|
45
|
+
<ChartFrame
|
|
46
|
+
appearance={appearance}
|
|
47
|
+
className={className}
|
|
48
|
+
containerStyle={containerStyle}
|
|
49
|
+
density={density}
|
|
50
|
+
emptyState={emptyState}
|
|
51
|
+
hasData={hasData}
|
|
52
|
+
height={height}
|
|
53
|
+
style={style}
|
|
54
|
+
{...props}
|
|
55
|
+
>
|
|
56
|
+
<RechartsScatterChart data={data} margin={margin} syncId={syncId}>
|
|
57
|
+
<ChartDecorators
|
|
58
|
+
axis={
|
|
59
|
+
<>
|
|
60
|
+
<XAxis
|
|
61
|
+
dataKey={xAxisKey}
|
|
62
|
+
type="number"
|
|
63
|
+
minTickGap={24}
|
|
64
|
+
tickLine={false}
|
|
65
|
+
tickMargin={10}
|
|
66
|
+
axisLine={false}
|
|
67
|
+
fontSize={12}
|
|
68
|
+
/>
|
|
69
|
+
<YAxis
|
|
70
|
+
dataKey="__chartY"
|
|
71
|
+
type="number"
|
|
72
|
+
width={40}
|
|
73
|
+
tickLine={false}
|
|
74
|
+
tickMargin={8}
|
|
75
|
+
axisLine={false}
|
|
76
|
+
fontSize={12}
|
|
77
|
+
/>
|
|
78
|
+
</>
|
|
79
|
+
}
|
|
80
|
+
showGrid={showGrid}
|
|
81
|
+
showLegend={showLegend}
|
|
82
|
+
showTooltip={showTooltip}
|
|
83
|
+
tooltipColor={tooltipColor}
|
|
84
|
+
/>
|
|
85
|
+
{series.map((item, index) => {
|
|
86
|
+
const color = resolveColor(item.color, index);
|
|
87
|
+
return (
|
|
88
|
+
<Scatter
|
|
89
|
+
key={item.dataKey}
|
|
90
|
+
data={data.map((entry) => ({
|
|
91
|
+
...entry,
|
|
92
|
+
__chartY: entry[item.dataKey],
|
|
93
|
+
__chartZ: item.zKey ? entry[item.zKey] : undefined,
|
|
94
|
+
}))}
|
|
95
|
+
name={item.name}
|
|
96
|
+
fill={item.fill ?? color.stroke}
|
|
97
|
+
>
|
|
98
|
+
{data.map((_entry, cellIndex) => (
|
|
99
|
+
<Bar
|
|
100
|
+
key={`${item.dataKey}-${cellIndex}`}
|
|
101
|
+
fill={item.fill ?? color.stroke}
|
|
102
|
+
/>
|
|
103
|
+
))}
|
|
104
|
+
</Scatter>
|
|
105
|
+
);
|
|
106
|
+
})}
|
|
107
|
+
<ZAxis dataKey="__chartZ" range={[64, 720]} />
|
|
108
|
+
</RechartsScatterChart>
|
|
109
|
+
</ChartFrame>
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
BubbleChart.displayName = "BubbleChart";
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { Line, LineChart as RechartsLineChart, XAxis, YAxis } from "recharts";
|
|
4
|
+
|
|
5
|
+
import {
|
|
6
|
+
ChartDecorators,
|
|
7
|
+
ChartFrame,
|
|
8
|
+
defaultChartMargin,
|
|
9
|
+
} from "../shared/chart-frame";
|
|
10
|
+
import { resolveColor } from "../shared/colors";
|
|
11
|
+
import type { LineChartProps } from "../shared/types";
|
|
12
|
+
|
|
13
|
+
export function LineChart<
|
|
14
|
+
TDatum extends Record<string, number | string | null | undefined>,
|
|
15
|
+
>({
|
|
16
|
+
appearance,
|
|
17
|
+
className,
|
|
18
|
+
containerStyle,
|
|
19
|
+
data,
|
|
20
|
+
density,
|
|
21
|
+
emptyState = null,
|
|
22
|
+
height = 320,
|
|
23
|
+
margin = defaultChartMargin,
|
|
24
|
+
series,
|
|
25
|
+
showGrid = true,
|
|
26
|
+
showLegend = false,
|
|
27
|
+
showTooltip = true,
|
|
28
|
+
tooltipColor = "#0f172a",
|
|
29
|
+
style,
|
|
30
|
+
syncId,
|
|
31
|
+
xKey,
|
|
32
|
+
strokeDasharray,
|
|
33
|
+
...props
|
|
34
|
+
}: LineChartProps<TDatum>) {
|
|
35
|
+
const hasData = data.length > 0 && series.length > 0;
|
|
36
|
+
const xAxisKey = String(xKey);
|
|
37
|
+
|
|
38
|
+
return (
|
|
39
|
+
<ChartFrame
|
|
40
|
+
appearance={appearance}
|
|
41
|
+
className={className}
|
|
42
|
+
containerStyle={containerStyle}
|
|
43
|
+
density={density}
|
|
44
|
+
emptyState={emptyState}
|
|
45
|
+
hasData={hasData}
|
|
46
|
+
height={height}
|
|
47
|
+
style={style}
|
|
48
|
+
{...props}
|
|
49
|
+
>
|
|
50
|
+
<RechartsLineChart data={data} margin={margin} syncId={syncId}>
|
|
51
|
+
<ChartDecorators
|
|
52
|
+
axis={
|
|
53
|
+
<>
|
|
54
|
+
<XAxis
|
|
55
|
+
dataKey={xAxisKey}
|
|
56
|
+
minTickGap={24}
|
|
57
|
+
tickLine={false}
|
|
58
|
+
tickMargin={10}
|
|
59
|
+
axisLine={false}
|
|
60
|
+
fontSize={12}
|
|
61
|
+
/>
|
|
62
|
+
<YAxis
|
|
63
|
+
width={40}
|
|
64
|
+
tickLine={false}
|
|
65
|
+
tickMargin={8}
|
|
66
|
+
axisLine={false}
|
|
67
|
+
fontSize={12}
|
|
68
|
+
/>
|
|
69
|
+
</>
|
|
70
|
+
}
|
|
71
|
+
showGrid={showGrid}
|
|
72
|
+
showLegend={showLegend}
|
|
73
|
+
showTooltip={showTooltip}
|
|
74
|
+
tooltipColor={tooltipColor}
|
|
75
|
+
/>
|
|
76
|
+
{series.map((item, index) => {
|
|
77
|
+
const color = resolveColor(item.color, index);
|
|
78
|
+
return (
|
|
79
|
+
<Line
|
|
80
|
+
key={item.dataKey}
|
|
81
|
+
type="monotone"
|
|
82
|
+
dataKey={item.dataKey}
|
|
83
|
+
name={item.name}
|
|
84
|
+
stroke={color.stroke}
|
|
85
|
+
strokeWidth={2}
|
|
86
|
+
dot={false}
|
|
87
|
+
activeDot={{ r: 5 }}
|
|
88
|
+
strokeDasharray={strokeDasharray ?? undefined}
|
|
89
|
+
/>
|
|
90
|
+
);
|
|
91
|
+
})}
|
|
92
|
+
</RechartsLineChart>
|
|
93
|
+
</ChartFrame>
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
LineChart.displayName = "LineChart";
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import type { CSSProperties, HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
import { CartesianGrid, Legend, ResponsiveContainer, Tooltip } from "recharts";
|
|
3
|
+
|
|
4
|
+
import { cn } from "../../lib/utils";
|
|
5
|
+
import { chartVariants } from "./variants";
|
|
6
|
+
import { VariantProps } from "class-variance-authority";
|
|
7
|
+
|
|
8
|
+
type ChartFrameProps = HTMLAttributes<HTMLDivElement> & {
|
|
9
|
+
appearance?: VariantProps<typeof chartVariants>["appearance"];
|
|
10
|
+
containerStyle?: CSSProperties;
|
|
11
|
+
density?: "compact" | "comfortable" | "spacious" | null;
|
|
12
|
+
emptyState?: ReactNode;
|
|
13
|
+
hasData: boolean;
|
|
14
|
+
height: number;
|
|
15
|
+
showGrid?: boolean;
|
|
16
|
+
showLegend?: boolean;
|
|
17
|
+
showTooltip?: boolean;
|
|
18
|
+
style?: CSSProperties;
|
|
19
|
+
children: ReactNode;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export const defaultChartMargin = { top: 16, right: 16, bottom: 8, left: 0 };
|
|
23
|
+
|
|
24
|
+
export function ChartFrame({
|
|
25
|
+
appearance,
|
|
26
|
+
children,
|
|
27
|
+
className,
|
|
28
|
+
containerStyle,
|
|
29
|
+
density,
|
|
30
|
+
emptyState = null,
|
|
31
|
+
hasData,
|
|
32
|
+
height,
|
|
33
|
+
style,
|
|
34
|
+
...props
|
|
35
|
+
}: ChartFrameProps) {
|
|
36
|
+
const chartStyle = {
|
|
37
|
+
"--chart-height": `${height}px`,
|
|
38
|
+
...style,
|
|
39
|
+
} as CSSProperties;
|
|
40
|
+
|
|
41
|
+
if (!hasData) {
|
|
42
|
+
return (
|
|
43
|
+
<div
|
|
44
|
+
className={cn(chartVariants({ appearance, density }), className)}
|
|
45
|
+
style={chartStyle}
|
|
46
|
+
{...props}
|
|
47
|
+
>
|
|
48
|
+
<div className="flex h-full min-h-48 items-center justify-center text-sm text-slate-500">
|
|
49
|
+
{emptyState}
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return (
|
|
56
|
+
<div
|
|
57
|
+
className={cn(chartVariants({ appearance, density }), className)}
|
|
58
|
+
style={chartStyle}
|
|
59
|
+
{...props}
|
|
60
|
+
>
|
|
61
|
+
<ResponsiveContainer
|
|
62
|
+
width="100%"
|
|
63
|
+
height="100%"
|
|
64
|
+
debounce={80}
|
|
65
|
+
style={containerStyle}
|
|
66
|
+
>
|
|
67
|
+
{children}
|
|
68
|
+
</ResponsiveContainer>
|
|
69
|
+
</div>
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export function ChartDecorators({
|
|
74
|
+
axis,
|
|
75
|
+
showGrid,
|
|
76
|
+
showLegend,
|
|
77
|
+
showTooltip,
|
|
78
|
+
tooltipColor = "#0f172a",
|
|
79
|
+
}: {
|
|
80
|
+
axis: ReactNode;
|
|
81
|
+
showGrid: boolean;
|
|
82
|
+
showLegend: boolean;
|
|
83
|
+
showTooltip: boolean;
|
|
84
|
+
tooltipColor?: string;
|
|
85
|
+
}) {
|
|
86
|
+
return (
|
|
87
|
+
<>
|
|
88
|
+
{showGrid ? (
|
|
89
|
+
<CartesianGrid
|
|
90
|
+
strokeDasharray="3 3"
|
|
91
|
+
stroke="currentColor"
|
|
92
|
+
opacity={0.16}
|
|
93
|
+
/>
|
|
94
|
+
) : null}
|
|
95
|
+
{axis}
|
|
96
|
+
{showTooltip ? (
|
|
97
|
+
<Tooltip
|
|
98
|
+
cursor={{ opacity: 0.12 }}
|
|
99
|
+
contentStyle={{ color: tooltipColor }}
|
|
100
|
+
labelStyle={{ color: tooltipColor }}
|
|
101
|
+
itemStyle={{ color: tooltipColor }}
|
|
102
|
+
/>
|
|
103
|
+
) : null}
|
|
104
|
+
{showLegend ? <Legend /> : null}
|
|
105
|
+
</>
|
|
106
|
+
);
|
|
107
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { ChartColor, ChartSeries } from "./types";
|
|
2
|
+
import { chartPalette } from "./variants";
|
|
3
|
+
|
|
4
|
+
export function resolveColor(
|
|
5
|
+
color: ChartColor | string | undefined,
|
|
6
|
+
index: number,
|
|
7
|
+
) {
|
|
8
|
+
if (color && color in chartPalette) {
|
|
9
|
+
return chartPalette[color as ChartColor];
|
|
10
|
+
}
|
|
11
|
+
if (color) {
|
|
12
|
+
return { stroke: color, fill: color };
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const paletteValues = Object.values(chartPalette);
|
|
16
|
+
return paletteValues[index % paletteValues.length] ?? chartPalette.cyan;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function getSeriesFill(
|
|
20
|
+
series: ChartSeries,
|
|
21
|
+
index: number,
|
|
22
|
+
opacity = 0.18,
|
|
23
|
+
) {
|
|
24
|
+
const color = resolveColor(series.color, index);
|
|
25
|
+
return (
|
|
26
|
+
series.fill ??
|
|
27
|
+
`${color.fill}${Math.round(opacity * 255)
|
|
28
|
+
.toString(16)
|
|
29
|
+
.padStart(2, "0")}`
|
|
30
|
+
);
|
|
31
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { VariantProps } from "class-variance-authority";
|
|
2
|
+
import type { CSSProperties, HTMLAttributes, ReactNode } from "react";
|
|
3
|
+
|
|
4
|
+
import type { chartPalette, chartVariants } from "./variants";
|
|
5
|
+
|
|
6
|
+
export type ChartType = "area" | "bar" | "bubble" | "line";
|
|
7
|
+
|
|
8
|
+
export type ChartColor = keyof typeof chartPalette;
|
|
9
|
+
|
|
10
|
+
export type ChartDatum = Record<string, number | string | null | undefined>;
|
|
11
|
+
|
|
12
|
+
export type ChartMargin = {
|
|
13
|
+
top?: number;
|
|
14
|
+
right?: number;
|
|
15
|
+
bottom?: number;
|
|
16
|
+
left?: number;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export type ChartSeries = {
|
|
20
|
+
dataKey: string;
|
|
21
|
+
name?: string;
|
|
22
|
+
color?: ChartColor | string;
|
|
23
|
+
textColor?: string;
|
|
24
|
+
fill?: string;
|
|
25
|
+
stackId?: string;
|
|
26
|
+
zKey?: string;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export type ChartSharedStatic = VariantProps<typeof chartVariants>;
|
|
30
|
+
|
|
31
|
+
export type BaseChartProps<TDatum extends ChartDatum = ChartDatum> =
|
|
32
|
+
ChartSharedStatic &
|
|
33
|
+
Omit<HTMLAttributes<HTMLDivElement>, "children"> & {
|
|
34
|
+
data: TDatum[];
|
|
35
|
+
series: ChartSeries[];
|
|
36
|
+
xKey: keyof TDatum & string;
|
|
37
|
+
height?: number;
|
|
38
|
+
showGrid?: boolean;
|
|
39
|
+
showLegend?: boolean;
|
|
40
|
+
showTooltip?: boolean;
|
|
41
|
+
tooltipColor?: string;
|
|
42
|
+
stacked?: boolean;
|
|
43
|
+
syncId?: string;
|
|
44
|
+
margin?: ChartMargin;
|
|
45
|
+
emptyState?: ReactNode;
|
|
46
|
+
containerStyle?: CSSProperties;
|
|
47
|
+
strokeDasharray?: string;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export type AreaChartProps<TDatum extends ChartDatum = ChartDatum> =
|
|
51
|
+
BaseChartProps<TDatum>;
|
|
52
|
+
|
|
53
|
+
export type BarChartProps<TDatum extends ChartDatum = ChartDatum> =
|
|
54
|
+
BaseChartProps<TDatum>;
|
|
55
|
+
|
|
56
|
+
export type LineChartProps<TDatum extends ChartDatum = ChartDatum> =
|
|
57
|
+
BaseChartProps<TDatum>;
|
|
58
|
+
|
|
59
|
+
export type BubbleChartProps<TDatum extends ChartDatum = ChartDatum> =
|
|
60
|
+
BaseChartProps<TDatum>;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { cva } from "class-variance-authority";
|
|
2
|
+
|
|
3
|
+
export const chartVariants = cva(
|
|
4
|
+
[
|
|
5
|
+
"relative w-full min-w-0 overflow-hidden rounded-xl",
|
|
6
|
+
"h-[var(--chart-height)] min-h-64 sm:min-h-72 md:min-h-80",
|
|
7
|
+
"[&_.recharts-default-tooltip]:rounded-lg [&_.recharts-default-tooltip]:border [&_.recharts-default-tooltip]:border-slate-200",
|
|
8
|
+
"[&_.recharts-default-tooltip]:bg-white/95 [&_.recharts-default-tooltip]:shadow-lg",
|
|
9
|
+
"[&_.recharts-default-tooltip]:text-slate-900",
|
|
10
|
+
],
|
|
11
|
+
{
|
|
12
|
+
variants: {
|
|
13
|
+
appearance: {
|
|
14
|
+
default:
|
|
15
|
+
"bg-white text-slate-600 [&_.recharts-cartesian-axis-tick-value]:fill-slate-900",
|
|
16
|
+
muted:
|
|
17
|
+
"bg-slate-50 text-slate-500 [&_.recharts-cartesian-axis-tick-value]:fill-slate-900",
|
|
18
|
+
outline:
|
|
19
|
+
"border border-slate-200 bg-white text-slate-600 [&_.recharts-cartesian-axis-tick-value]:fill-slate-900",
|
|
20
|
+
glass:
|
|
21
|
+
"border border-white/15 bg-white/10 text-slate-100 backdrop-blur-md [&_.recharts-cartesian-axis-tick-value]:fill-white",
|
|
22
|
+
sky: "bg-sky-50 text-sky-500 [&_.recharts-cartesian-axis-tick-value]:fill-slate-900",
|
|
23
|
+
emerald:
|
|
24
|
+
"bg-emerald-50 text-emerald-500 [&_.recharts-cartesian-axis-tick-value]:fill-slate-900",
|
|
25
|
+
violet:
|
|
26
|
+
"bg-violet-50 text-violet-500 [&_.recharts-cartesian-axis-tick-value]:fill-slate-900",
|
|
27
|
+
amber:
|
|
28
|
+
"bg-amber-50 text-amber-500 [&_.recharts-cartesian-axis-tick-value]:fill-slate-900",
|
|
29
|
+
rose: "bg-rose-50 text-rose-500 [&_.recharts-cartesian-axis-tick-value]:fill-slate-900",
|
|
30
|
+
slate:
|
|
31
|
+
"bg-slate-50 text-slate-500 [&_.recharts-cartesian-axis-tick-value]:fill-slate-900",
|
|
32
|
+
gray: "bg-gray-50 text-gray-500 [&_.recharts-cartesian-axis-tick-value]:fill-slate-900",
|
|
33
|
+
indigo:
|
|
34
|
+
"bg-indigo-50 text-indigo-500 [&_.recharts-cartesian-axis-tick-value]:fill-slate-900",
|
|
35
|
+
"gradient-cyan-violet":
|
|
36
|
+
"bg-gradient-to-r from-cyan-500 to-violet-500 text-white [&_.recharts-cartesian-axis-tick-value]:fill-white",
|
|
37
|
+
"gradient-emerald-violet":
|
|
38
|
+
"bg-gradient-to-r from-emerald-500 to-violet-500 text-white [&_.recharts-cartesian-axis-tick-value]:fill-white",
|
|
39
|
+
"gradient-amber-rose":
|
|
40
|
+
"bg-gradient-to-r from-amber-500 to-rose-500 text-white [&_.recharts-cartesian-axis-tick-value]:fill-white",
|
|
41
|
+
"gradient-slate-gray":
|
|
42
|
+
"bg-gradient-to-r from-slate-500 to-gray-500 text-white [&_.recharts-cartesian-axis-tick-value]:fill-white",
|
|
43
|
+
"gradient-indigo-purple":
|
|
44
|
+
"bg-gradient-to-r from-indigo-500 to-purple-500 text-white [&_.recharts-cartesian-axis-tick-value]:fill-white",
|
|
45
|
+
"gradient-cyan-blue":
|
|
46
|
+
"bg-gradient-to-r from-cyan-500 to-blue-500 text-white [&_.recharts-cartesian-axis-tick-value]:fill-white",
|
|
47
|
+
"gradient-emerald-blue":
|
|
48
|
+
"bg-gradient-to-r from-emerald-500 to-blue-500 text-white [&_.recharts-cartesian-axis-tick-value]:fill-white",
|
|
49
|
+
"gradient-amber-blue":
|
|
50
|
+
"bg-gradient-to-r from-amber-500 to-blue-500 text-white [&_.recharts-cartesian-axis-tick-value]:fill-white",
|
|
51
|
+
},
|
|
52
|
+
density: {
|
|
53
|
+
compact: "p-2 sm:p-3",
|
|
54
|
+
comfortable: "p-3 sm:p-4",
|
|
55
|
+
spacious: "p-4 sm:p-5 md:p-6",
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
defaultVariants: {
|
|
59
|
+
appearance: "default",
|
|
60
|
+
density: "comfortable",
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
export const chartPalette = {
|
|
66
|
+
cyan: { stroke: "#0891b2", fill: "#67e8f9", textColor: "#0891b2" },
|
|
67
|
+
emerald: { stroke: "#059669", fill: "#6ee7b7", textColor: "#059669" },
|
|
68
|
+
violet: { stroke: "#7c3aed", fill: "#c4b5fd", textColor: "#7c3aed" },
|
|
69
|
+
amber: { stroke: "#d97706", fill: "#fcd34d", textColor: "#d97706" },
|
|
70
|
+
rose: { stroke: "#e11d48", fill: "#fda4af", textColor: "#e11d48" },
|
|
71
|
+
slate: { stroke: "#475569", fill: "#cbd5e1", textColor: "#475569" },
|
|
72
|
+
gray: { stroke: "#6b7280", fill: "#d1d5db", textColor: "#6b7280" },
|
|
73
|
+
white: { stroke: "#ffffff", fill: "#ffffff", textColor: "#ffffff" },
|
|
74
|
+
indigo: { stroke: "#6366f1", fill: "#c7d2fe", textColor: "#6366f1" },
|
|
75
|
+
"gradient-cyan-violet": { stroke: "#0891b2", fill: "#67e8f9", textColor: "#0891b2" },
|
|
76
|
+
"gradient-emerald-violet": { stroke: "#059669", fill: "#6ee7b7", textColor: "#059669" },
|
|
77
|
+
"gradient-amber-rose": { stroke: "#d97706", fill: "#fcd34d", textColor: "#d97706" },
|
|
78
|
+
"gradient-slate-gray": { stroke: "#475569", fill: "#cbd5e1", textColor: "#475569" },
|
|
79
|
+
"gradient-indigo-purple": { stroke: "#6366f1", fill: "#c7d2fe", textColor: "#6366f1" },
|
|
80
|
+
"gradient-cyan-blue": { stroke: "#0891b2", fill: "#67e8f9", textColor: "#0891b2" },
|
|
81
|
+
"gradient-emerald-blue": { stroke: "#059669", fill: "#6ee7b7", textColor: "#059669" },
|
|
82
|
+
"gradient-amber-blue": { stroke: "#d97706", fill: "#fcd34d", textColor: "#d97706" },
|
|
83
|
+
} as const;
|
|
84
|
+
|
|
85
|
+
export const chartColorValues = Object.keys(chartPalette) as Array<
|
|
86
|
+
keyof typeof chartPalette
|
|
87
|
+
>;
|
package/src/hooks/index.ts
CHANGED
|
@@ -23,7 +23,10 @@ export {
|
|
|
23
23
|
type UseDisclosureParams,
|
|
24
24
|
type UseDisclosureResult,
|
|
25
25
|
} from "./useDisclosure";
|
|
26
|
-
export {
|
|
26
|
+
export {
|
|
27
|
+
useDocumentTitle,
|
|
28
|
+
type UseDocumentTitleParams,
|
|
29
|
+
} from "./useDocumentTitle";
|
|
27
30
|
export { useHover } from "./useHover";
|
|
28
31
|
export { useInView, type UseInViewParams } from "./useInView";
|
|
29
32
|
export {
|
|
@@ -42,7 +45,10 @@ export {
|
|
|
42
45
|
} from "./usePrefersColorScheme";
|
|
43
46
|
export { usePrefersReducedMotion } from "./usePrefersReducedMotion";
|
|
44
47
|
export { useResizeObserver, type ElementSize } from "./useResizeObserver";
|
|
45
|
-
export {
|
|
48
|
+
export {
|
|
49
|
+
useSessionStorage,
|
|
50
|
+
type UseSessionStorageResult,
|
|
51
|
+
} from "./useSessionStorage";
|
|
46
52
|
export { useThrottledCallback } from "./useThrottledCallback";
|
|
47
53
|
export { useToggle } from "./useToggle";
|
|
48
54
|
export { useWindowSize, type WindowSize } from "./useWindowSize";
|
|
@@ -4,10 +4,7 @@ import type { RefObject } from "react";
|
|
|
4
4
|
import { Dispatch, SetStateAction, useEffect } from "react";
|
|
5
5
|
|
|
6
6
|
/** DOM events that can represent an “outside” press for closing overlays. */
|
|
7
|
-
export type ClickOutsideEventType =
|
|
8
|
-
| "mousedown"
|
|
9
|
-
| "pointerdown"
|
|
10
|
-
| "touchstart";
|
|
7
|
+
export type ClickOutsideEventType = "mousedown" | "pointerdown" | "touchstart";
|
|
11
8
|
|
|
12
9
|
export type UseClickOutsideParams = {
|
|
13
10
|
/** Called with `false` when a qualifying event target is outside `ref.current`. */
|
|
@@ -66,7 +66,9 @@ describe("useClipboard", () => {
|
|
|
66
66
|
const ok = await result.current.copy("z");
|
|
67
67
|
expect(ok).toBe(false);
|
|
68
68
|
});
|
|
69
|
-
expect(result.current.error?.message).toBe(
|
|
69
|
+
expect(result.current.error?.message).toBe(
|
|
70
|
+
"Clipboard API is not available",
|
|
71
|
+
);
|
|
70
72
|
expect(result.current.copied).toBe(false);
|
|
71
73
|
});
|
|
72
74
|
|
|
@@ -56,8 +56,7 @@ export function useClipboard(resetDelay = 2000): UseClipboardResult {
|
|
|
56
56
|
}
|
|
57
57
|
return true;
|
|
58
58
|
} catch (cause) {
|
|
59
|
-
const err =
|
|
60
|
-
cause instanceof Error ? cause : new Error(String(cause));
|
|
59
|
+
const err = cause instanceof Error ? cause : new Error(String(cause));
|
|
61
60
|
setError(err);
|
|
62
61
|
return false;
|
|
63
62
|
}
|
|
@@ -48,8 +48,7 @@ describe("useDisclosure", () => {
|
|
|
48
48
|
it("should be controlled when open prop is defined", () => {
|
|
49
49
|
const onOpenChange = vi.fn();
|
|
50
50
|
const { result, rerender } = renderHook(
|
|
51
|
-
({ open }: { open: boolean }) =>
|
|
52
|
-
useDisclosure({ open, onOpenChange }),
|
|
51
|
+
({ open }: { open: boolean }) => useDisclosure({ open, onOpenChange }),
|
|
53
52
|
{ initialProps: { open: false } },
|
|
54
53
|
);
|
|
55
54
|
expect(result.current.isOpen).toBe(false);
|
|
@@ -6,9 +6,7 @@ import { useDocumentTitle } from "./useDocumentTitle";
|
|
|
6
6
|
describe("useDocumentTitle", () => {
|
|
7
7
|
it("should set document title from title prop", () => {
|
|
8
8
|
document.title = "Original";
|
|
9
|
-
const { unmount } = renderHook(() =>
|
|
10
|
-
useDocumentTitle({ title: "Page A" }),
|
|
11
|
-
);
|
|
9
|
+
const { unmount } = renderHook(() => useDocumentTitle({ title: "Page A" }));
|
|
12
10
|
expect(document.title).toBe("Page A");
|
|
13
11
|
unmount();
|
|
14
12
|
expect(document.title).toBe("Original");
|
|
@@ -42,4 +42,12 @@ describe("useFocusManagement", () => {
|
|
|
42
42
|
fireEvent.keyDown(window, { key: "Escape" });
|
|
43
43
|
expect(screen.queryByTestId("dialog")).not.toBeInTheDocument();
|
|
44
44
|
});
|
|
45
|
+
|
|
46
|
+
it("should return focus inside the overlay when focus moves outside without Tab", () => {
|
|
47
|
+
render(<Modal initialOpen />);
|
|
48
|
+
const outsideButton = screen.getByTestId("after");
|
|
49
|
+
outsideButton.focus();
|
|
50
|
+
expect(outsideButton).not.toHaveFocus();
|
|
51
|
+
expect(screen.getByRole("button", { name: "first" })).toHaveFocus();
|
|
52
|
+
});
|
|
45
53
|
});
|