@zentauri-ui/zentauri-components 1.4.61 → 1.4.63
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 +73 -73
- 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-UXGHUBNJ.mjs → chunk-4LT2GNJL.mjs} +13 -13
- package/dist/{chunk-UXGHUBNJ.mjs.map → chunk-4LT2GNJL.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-OJ67PZ6N.js → chunk-BCZIYH53.js} +8 -8
- package/dist/{chunk-OJ67PZ6N.js.map → chunk-BCZIYH53.js.map} +1 -1
- package/dist/{chunk-3OR47XMY.js → chunk-E4FZY7O2.js} +52 -33
- package/dist/chunk-E4FZY7O2.js.map +1 -0
- package/dist/{chunk-XLAFQ24R.js → chunk-G3B6OHFG.js} +49 -41
- package/dist/chunk-G3B6OHFG.js.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-LVUPECBT.mjs → chunk-H2I54QPJ.mjs} +12 -12
- package/dist/chunk-H2I54QPJ.mjs.map +1 -0
- package/dist/{chunk-XWM2S6VV.mjs → chunk-I6GR234Z.mjs} +22 -20
- package/dist/chunk-I6GR234Z.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-PCK6LX3K.js → chunk-KEKNNZD3.js} +19 -19
- package/dist/{chunk-PCK6LX3K.js.map → chunk-KEKNNZD3.js.map} +1 -1
- package/dist/{chunk-UBFKTC2P.mjs → chunk-LJ7AAIA3.mjs} +3 -3
- package/dist/{chunk-UBFKTC2P.mjs.map → chunk-LJ7AAIA3.mjs.map} +1 -1
- 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-C2FCPQTO.js → chunk-MXKGDFQH.js} +7 -7
- package/dist/{chunk-C2FCPQTO.js.map → chunk-MXKGDFQH.js.map} +1 -1
- package/dist/{chunk-UOFTZKMM.js → chunk-MXLRXYIX.js} +18 -18
- package/dist/{chunk-UOFTZKMM.js.map → chunk-MXLRXYIX.js.map} +1 -1
- 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-2PQEXQVR.js → chunk-PWL5WD34.js} +76 -27
- package/dist/chunk-PWL5WD34.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-XIXF7UVM.mjs → chunk-QEGACUFU.mjs} +12 -12
- package/dist/chunk-QEGACUFU.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-N4NO3SYL.js → chunk-SKPZCISM.js} +48 -40
- package/dist/chunk-SKPZCISM.js.map +1 -0
- package/dist/{chunk-7HL3A4YF.mjs → chunk-TJUNN2PT.mjs} +73 -24
- package/dist/chunk-TJUNN2PT.mjs.map +1 -0
- package/dist/{chunk-IXDJ3IPG.mjs → chunk-TTYZBO4E.mjs} +40 -32
- package/dist/chunk-TTYZBO4E.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-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-U4YQCAXW.js → chunk-Z7PHKV2T.js} +18 -18
- package/dist/chunk-Z7PHKV2T.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-PGH27VTL.mjs → chunk-ZIDKBEQJ.mjs} +40 -32
- package/dist/chunk-ZIDKBEQJ.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.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.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.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 +16 -16
- 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.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.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.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.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.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 +1 -1
- 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.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.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.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.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.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 +15 -7
- package/dist/ui/search.js.map +1 -1
- package/dist/ui/search.mjs +11 -3
- 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 +1 -1
- 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 +1 -1
- 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.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.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.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.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.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.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.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.map +1 -1
- package/dist/ui/typography/code-block-base.d.ts.map +1 -1
- package/dist/ui/typography/heading-base.d.ts.map +1 -1
- package/dist/ui/typography/list-base.d.ts.map +1 -1
- package/dist/ui/typography/types.d.ts.map +1 -1
- package/dist/ui/typography/variants.d.ts.map +1 -1
- package/dist/ui/typography.js +12 -34
- package/dist/ui/typography.js.map +1 -1
- package/dist/ui/typography.mjs +4 -26
- package/dist/ui/typography.mjs.map +1 -1
- package/package.json +1 -1
- 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/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 +22 -22
- package/src/ui/search/search-suggestion-list.tsx +14 -5
- 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 +1 -8
- package/src/ui/typography/code-block-base.tsx +19 -24
- package/src/ui/typography/heading-base.tsx +35 -38
- package/src/ui/typography/inline-code-base.tsx +15 -15
- package/src/ui/typography/list-base.tsx +1 -9
- package/src/ui/typography/text-base.tsx +32 -32
- package/src/ui/typography/types.ts +4 -17
- package/src/ui/typography/typography.test.tsx +3 -1
- package/src/ui/typography/variants.ts +16 -8
- 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-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-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
package/README.md
CHANGED
|
@@ -10,11 +10,11 @@ Published artifacts live under `dist/`. Imports use **per-entry subpaths**: `@ze
|
|
|
10
10
|
|
|
11
11
|
## Package exports
|
|
12
12
|
|
|
13
|
-
| Subpath
|
|
14
|
-
|
|
|
15
|
-
| `@zentauri-ui/zentauri-components/ui/<name>`
|
|
16
|
-
| `@zentauri-ui/zentauri-components/ui/<name>/animated` | Motion entry for that area when published: animated components, motion presets, and related types (depends on **framer-motion**).
|
|
17
|
-
| `@zentauri-ui/zentauri-components/hooks/<entry>`
|
|
13
|
+
| Subpath | Description |
|
|
14
|
+
| ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
15
|
+
| `@zentauri-ui/zentauri-components/ui/<name>` | Single UI area: static primitives, compound parts, variants, and types. Does **not** include Framer Motion–based animated exports. |
|
|
16
|
+
| `@zentauri-ui/zentauri-components/ui/<name>/animated` | Motion entry for that area when published: animated components, motion presets, and related types (depends on **framer-motion**). |
|
|
17
|
+
| `@zentauri-ui/zentauri-components/hooks/<entry>` | One hook module or `utils` (`cn`, `clampPage`, `range` from `src/lib/utils.ts`). Entries match files under `src/hooks/` (see **React hooks**). |
|
|
18
18
|
|
|
19
19
|
The UI `<name>` segment matches the folder under `src/ui/` (for example `accordion`, `select`, `empty-state`, `buttons` for `Button`, `inputs` for `Input`, `typography` for `Heading` / `Text` and related primitives). The hooks `<entry>` is the file stem (for example `useMediaQuery`, `usePagination`) or `utils`.
|
|
20
20
|
|
|
@@ -40,36 +40,36 @@ Published motion entries (same `<name>` as the base UI folder):
|
|
|
40
40
|
|
|
41
41
|
Import static primitives from `@zentauri-ui/zentauri-components/ui/<subpath>` when the **Base** column lists a path. When the **Animated** column lists a path, motion components and preset helpers come from `@zentauri-ui/zentauri-components/ui/<subpath>/animated` (they are not exported from the base entry). **Spinner** has no static bundle—use only the animated subpath.
|
|
42
42
|
|
|
43
|
-
| Area
|
|
44
|
-
|
|
|
45
|
-
| Accordion
|
|
46
|
-
| Alert
|
|
47
|
-
| Avatar
|
|
48
|
-
| Badge
|
|
49
|
-
| Breadcrumb
|
|
50
|
-
| Button
|
|
51
|
-
| Card
|
|
52
|
-
| Divider
|
|
53
|
-
| Drawer
|
|
54
|
-
| Dropdown
|
|
55
|
-
| Empty state
|
|
56
|
-
| File upload
|
|
57
|
-
| Input
|
|
58
|
-
| Modal
|
|
59
|
-
| Pagination
|
|
60
|
-
| Progress
|
|
61
|
-
| Search
|
|
62
|
-
| Select
|
|
63
|
-
| Skeleton
|
|
64
|
-
| Slider
|
|
65
|
-
| Spinner
|
|
66
|
-
| Stepper
|
|
67
|
-
| Table
|
|
68
|
-
| Tabs
|
|
69
|
-
| Toast
|
|
70
|
-
| Toggle
|
|
71
|
-
| Tooltip
|
|
72
|
-
| Typography
|
|
43
|
+
| Area | Base subpath `…/ui/…` | Animated subpath `…/ui/…/animated` |
|
|
44
|
+
| ----------- | --------------------- | ---------------------------------- |
|
|
45
|
+
| Accordion | `accordion` | `accordion/animated` |
|
|
46
|
+
| Alert | `alert` | `alert/animated` |
|
|
47
|
+
| Avatar | `avatar` | `avatar/animated` |
|
|
48
|
+
| Badge | `badge` | `badge/animated` |
|
|
49
|
+
| Breadcrumb | `breadcrumb` | — |
|
|
50
|
+
| Button | `buttons` | `buttons/animated` |
|
|
51
|
+
| Card | `card` | `card/animated` |
|
|
52
|
+
| Divider | `divider` | `divider/animated` |
|
|
53
|
+
| Drawer | `drawer` | `drawer/animated` |
|
|
54
|
+
| Dropdown | `dropdown` | — |
|
|
55
|
+
| Empty state | `empty-state` | `empty-state/animated` |
|
|
56
|
+
| File upload | `file-upload` | — |
|
|
57
|
+
| Input | `inputs` | `inputs/animated` |
|
|
58
|
+
| Modal | `modal` | `modal/animated` |
|
|
59
|
+
| Pagination | `pagination` | — |
|
|
60
|
+
| Progress | `progress` | `progress/animated` |
|
|
61
|
+
| Search | `search` | - |
|
|
62
|
+
| Select | `select` | — |
|
|
63
|
+
| Skeleton | `skeleton` | `skeleton/animated` |
|
|
64
|
+
| Slider | `slider` | — |
|
|
65
|
+
| Spinner | — | `spinner/animated` |
|
|
66
|
+
| Stepper | `stepper` | — |
|
|
67
|
+
| Table | `table` | `table/animated` |
|
|
68
|
+
| Tabs | `tabs` | `tabs/animated` |
|
|
69
|
+
| Toast | `toast` | `toast/animated` |
|
|
70
|
+
| Toggle | `toggle` | `toggle/animated` |
|
|
71
|
+
| Tooltip | `tooltip` | `tooltip/animated` |
|
|
72
|
+
| Typography | `typography` | — |
|
|
73
73
|
|
|
74
74
|
## Typography
|
|
75
75
|
|
|
@@ -110,8 +110,7 @@ export function ArticleIntro() {
|
|
|
110
110
|
Feature title
|
|
111
111
|
</Heading>
|
|
112
112
|
<Text as="p" size="sm" tone="muted">
|
|
113
|
-
Supporting copy with
|
|
114
|
-
<InlineCode tone="accent">inline code</InlineCode>.
|
|
113
|
+
Supporting copy with <InlineCode tone="accent">inline code</InlineCode>.
|
|
115
114
|
</Text>
|
|
116
115
|
<List marker="disc" tone="default">
|
|
117
116
|
<List.Item>First item</List.Item>
|
|
@@ -136,34 +135,34 @@ export function ArticleIntro() {
|
|
|
136
135
|
|
|
137
136
|
Hooks live in `src/hooks/`. Each hook is a separate published entry under `@zentauri-ui/zentauri-components/hooks/<name>` (same pattern as UI areas). Types are exported where the implementation defines them (for example `UseDisclosureResult`, `PaginationPageItem`). For class-name merging and pagination helpers used alongside hooks, import from `@zentauri-ui/zentauri-components/hooks/utils`.
|
|
138
137
|
|
|
139
|
-
| Hook / module
|
|
140
|
-
|
|
|
141
|
-
| `useBodyScrollLock`
|
|
142
|
-
| `useClickOutside`
|
|
143
|
-
| `useClipboard`
|
|
144
|
-
| `useControllableState`
|
|
145
|
-
| `useDebouncedValue`
|
|
146
|
-
| `useDisclosure`
|
|
147
|
-
| `useDocumentTitle`
|
|
148
|
-
| `useFocusManagement`
|
|
149
|
-
| `useHover`
|
|
150
|
-
| `useInView`
|
|
151
|
-
| `useIntersectionObserver`
|
|
152
|
-
| `useIsomorphicLayoutEffect
|
|
153
|
-
| `useIsMounted`
|
|
154
|
-
| `useLocalStorage`
|
|
155
|
-
| `useMediaQuery`
|
|
156
|
-
| `useNetworkStatus`
|
|
157
|
-
| `usePageVisibility`
|
|
158
|
-
| `usePagination`
|
|
159
|
-
| `usePrefersColorScheme`
|
|
160
|
-
| `usePrefersReducedMotion`
|
|
161
|
-
| `useResizeObserver`
|
|
162
|
-
| `useSessionStorage`
|
|
163
|
-
| `useThrottledCallback`
|
|
164
|
-
| `useToggle`
|
|
165
|
-
| `useWindowSize`
|
|
166
|
-
| `cn`, `clampPage`, `range`
|
|
138
|
+
| Hook / module | Subpath `…/hooks/…` | Notes (selected exports) |
|
|
139
|
+
| --------------------------- | --------------------------- | -------------------------------------------------------------------------- |
|
|
140
|
+
| `useBodyScrollLock` | `useBodyScrollLock` | Locks document scroll while open |
|
|
141
|
+
| `useClickOutside` | `useClickOutside` | `ClickOutsideEventType`, `UseClickOutsideParams` |
|
|
142
|
+
| `useClipboard` | `useClipboard` | `UseClipboardResult` |
|
|
143
|
+
| `useControllableState` | `useControllableState` | `UseControllableStateParams` |
|
|
144
|
+
| `useDebouncedValue` | `useDebouncedValue` | Debounced state from a value |
|
|
145
|
+
| `useDisclosure` | `useDisclosure` | `UseDisclosureParams`, `UseDisclosureResult` |
|
|
146
|
+
| `useDocumentTitle` | `useDocumentTitle` | `UseDocumentTitleParams` |
|
|
147
|
+
| `useFocusManagement` | `useFocusManagement` | Focus trap / focus moves for overlays |
|
|
148
|
+
| `useHover` | `useHover` | Pointer hover state |
|
|
149
|
+
| `useInView` | `useInView` | `UseInViewParams` |
|
|
150
|
+
| `useIntersectionObserver` | `useIntersectionObserver` | `UseIntersectionObserverParams` |
|
|
151
|
+
| `useIsomorphicLayoutEffect` | `useIsomorphicLayoutEffect` | `useLayoutEffect` safe for SSR |
|
|
152
|
+
| `useIsMounted` | `useIsMounted` | Ref / flag after mount |
|
|
153
|
+
| `useLocalStorage` | `useLocalStorage` | `UseLocalStorageResult` |
|
|
154
|
+
| `useMediaQuery` | `useMediaQuery` | Match CSS media queries |
|
|
155
|
+
| `useNetworkStatus` | `useNetworkStatus` | Online / offline |
|
|
156
|
+
| `usePageVisibility` | `usePageVisibility` | Document visibility API |
|
|
157
|
+
| `usePagination` | `usePagination` | `buildPaginationItems`, `BuildPaginationItemsParams`, `PaginationPageItem` |
|
|
158
|
+
| `usePrefersColorScheme` | `usePrefersColorScheme` | `ColorSchemePreference` |
|
|
159
|
+
| `usePrefersReducedMotion` | `usePrefersReducedMotion` | `prefers-reduced-motion` |
|
|
160
|
+
| `useResizeObserver` | `useResizeObserver` | `ElementSize` |
|
|
161
|
+
| `useSessionStorage` | `useSessionStorage` | `UseSessionStorageResult` |
|
|
162
|
+
| `useThrottledCallback` | `useThrottledCallback` | Throttled callback ref |
|
|
163
|
+
| `useToggle` | `useToggle` | Boolean toggle state |
|
|
164
|
+
| `useWindowSize` | `useWindowSize` | `WindowSize` |
|
|
165
|
+
| `cn`, `clampPage`, `range` | `utils` | Shared helpers from `src/lib/utils.ts` |
|
|
167
166
|
|
|
168
167
|
#### Hook import example
|
|
169
168
|
|
|
@@ -373,10 +372,10 @@ node node_modules/@zentauri-ui/zentauri-components/cli/index.mjs add accordion
|
|
|
373
372
|
node node_modules/@zentauri-ui/zentauri-components/cli/index.mjs add hook useWindowSize
|
|
374
373
|
```
|
|
375
374
|
|
|
376
|
-
| Command
|
|
377
|
-
|
|
|
378
|
-
| `init`
|
|
379
|
-
| `add <names...>`
|
|
375
|
+
| Command | What it does |
|
|
376
|
+
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
377
|
+
| `init` | Writes **`components.json`** in the current working directory (or `--cwd`) with default `aliases` and `resolvedPaths`. Refuses to overwrite an existing file. |
|
|
378
|
+
| `add <names...>` | Walks up from `--cwd` (default `.`) to find `components.json`, then copies each resolved **UI** folder under `src/ui`, pulls in hooks those files depend on (including transitive hook imports), and creates **`lib/utils`** at `resolvedPaths.utils` from the package template if it is missing. |
|
|
380
379
|
| `add hook <names...>` | Same config lookup; copies only **hook** folders listed under `registry.hooks` (from `hooksEntryNames` in `tsup.config.ts`), including transitive sibling-hook imports. Does not copy UI unless a hook’s imports require you to add a component separately (for example `usePagination` imports types from `ui/pagination`). |
|
|
381
380
|
|
|
382
381
|
Global flags: `-h` / `--help`, `-v` / `--version`, `--cwd <dir>` (relative to `process.cwd()`).
|
|
@@ -417,10 +416,10 @@ After `add`, imports inside copied `.ts`/`.tsx` files are rewritten using your `
|
|
|
417
416
|
|
|
418
417
|
### When to use the CLI vs npm imports
|
|
419
418
|
|
|
420
|
-
| Approach
|
|
421
|
-
|
|
|
422
|
-
| **`npm` + package `exports`** (earlier sections) | You want versioned dependencies, smallest app-owned surface, and tree-shaken `dist/` entries.
|
|
423
|
-
| **`init` / `add`**
|
|
419
|
+
| Approach | Best when |
|
|
420
|
+
| ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------- |
|
|
421
|
+
| **`npm` + package `exports`** (earlier sections) | You want versioned dependencies, smallest app-owned surface, and tree-shaken `dist/` entries. |
|
|
422
|
+
| **`init` / `add`** | You want vendored source under your repo (customize primitives, match shadcn-style workflows, or lock file-level behavior). |
|
|
424
423
|
|
|
425
424
|
Tailwind still needs to see the classes your **copied** files use—point `@source` at those paths (for example your `src/components/ui`) rather than only at `node_modules/@zentauri-ui/zentauri-components` if you no longer rely on scanning the published package.
|
|
426
425
|
|
|
@@ -439,6 +438,7 @@ From this package directory in the monorepo:
|
|
|
439
438
|
- **`prepack`** — invokes `generate:registry` automatically before `npm pack` / publish so the published tarball always ships an up-to-date registry alongside `cli/index.mjs`.
|
|
440
439
|
|
|
441
440
|
## Github Release log
|
|
441
|
+
|
|
442
442
|
https://github.com/ShubhamTiwari909/zentauri-ui/releases
|
|
443
443
|
|
|
444
444
|
## NOTE:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkZS5756ZC_js = require('./chunk-ZS5756ZC.js');
|
|
4
4
|
var react = require('react');
|
|
5
5
|
|
|
6
6
|
function usePagination({
|
|
@@ -12,13 +12,13 @@ function usePagination({
|
|
|
12
12
|
onPageChange
|
|
13
13
|
}) {
|
|
14
14
|
const [internalPage, setInternalPage] = react.useState(
|
|
15
|
-
() =>
|
|
15
|
+
() => chunkZS5756ZC_js.clampPage(defaultPage, pageCount)
|
|
16
16
|
);
|
|
17
17
|
const isControlled = page !== void 0;
|
|
18
|
-
const currentPage =
|
|
18
|
+
const currentPage = chunkZS5756ZC_js.clampPage(isControlled ? page : internalPage, pageCount);
|
|
19
19
|
const setPage = react.useCallback(
|
|
20
20
|
(next) => {
|
|
21
|
-
const clamped =
|
|
21
|
+
const clamped = chunkZS5756ZC_js.clampPage(next, pageCount);
|
|
22
22
|
if (!isControlled) {
|
|
23
23
|
setInternalPage(clamped);
|
|
24
24
|
}
|
|
@@ -69,10 +69,10 @@ function buildPaginationItems({
|
|
|
69
69
|
}
|
|
70
70
|
const safeBoundary = Math.max(1, boundaryCount);
|
|
71
71
|
const safeSibling = Math.max(0, siblingCount);
|
|
72
|
-
const current =
|
|
72
|
+
const current = chunkZS5756ZC_js.clampPage(currentPage, pageCount);
|
|
73
73
|
const totalNumbers = safeBoundary * 2 + safeSibling * 2 + 1;
|
|
74
74
|
if (pageCount <= totalNumbers) {
|
|
75
|
-
return
|
|
75
|
+
return chunkZS5756ZC_js.range(1, pageCount).map((value) => ({ type: "page", value }));
|
|
76
76
|
}
|
|
77
77
|
const leftBoundaryEnd = safeBoundary;
|
|
78
78
|
const rightBoundaryStart = pageCount - safeBoundary + 1;
|
|
@@ -103,5 +103,5 @@ function buildPaginationItems({
|
|
|
103
103
|
|
|
104
104
|
exports.buildPaginationItems = buildPaginationItems;
|
|
105
105
|
exports.usePagination = usePagination;
|
|
106
|
-
//# sourceMappingURL=chunk-
|
|
107
|
-
//# sourceMappingURL=chunk-
|
|
106
|
+
//# sourceMappingURL=chunk-2VUMVDR3.js.map
|
|
107
|
+
//# sourceMappingURL=chunk-2VUMVDR3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/hooks/usePagination/usePagination.ts"],"names":["useState","clampPage","useCallback","useMemo","range"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/hooks/usePagination/usePagination.ts"],"names":["useState","clampPage","useCallback","useMemo","range"],"mappings":"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","file":"chunk-2VUMVDR3.js","sourcesContent":["\"use client\";\n\nimport { useCallback, useMemo, useState } from \"react\";\n\nimport type {\n PaginationPageItem,\n UsePaginationParams,\n UsePaginationResult,\n} from \"../../ui/pagination/types\";\nimport { clampPage, range } from \"../../lib/utils\";\n\nexport type { PaginationPageItem } from \"../../ui/pagination/types\";\n\nexport type BuildPaginationItemsParams = {\n pageCount: number;\n currentPage: number;\n siblingCount: number;\n boundaryCount: number;\n};\n\n/**\n * Headless pagination state: current page, derived page button items, and prev/next helpers.\n *\n * Supports controlled mode when `page` is passed from the parent, or internal state seeded by `defaultPage`.\n * All page indices are **1-based** and clamped to `[1, pageCount]` via {@link clampPage}. `items` is memoized from\n * {@link buildPaginationItems} for rendering numeric pages and ellipsis gaps.\n *\n * @param params - See `UsePaginationParams` in `../ui/pagination/types` for full fields (`pageCount`, `page`, `onPageChange`, etc.).\n * @returns Current page, item list, `setPage`, navigation helpers, and `canGoPrev` / `canGoNext` flags.\n */\nexport function usePagination({\n pageCount,\n page,\n defaultPage = 1,\n siblingCount = 1,\n boundaryCount = 1,\n onPageChange,\n}: UsePaginationParams): UsePaginationResult {\n const [internalPage, setInternalPage] = useState(() =>\n clampPage(defaultPage, pageCount),\n );\n\n const isControlled = page !== undefined;\n const currentPage = clampPage(isControlled ? page : internalPage, pageCount);\n\n const setPage = useCallback(\n (next: number) => {\n const clamped = clampPage(next, pageCount);\n if (!isControlled) {\n setInternalPage(clamped);\n }\n onPageChange?.(clamped);\n },\n [isControlled, onPageChange, pageCount],\n );\n\n const items = useMemo(\n () =>\n buildPaginationItems({\n pageCount,\n currentPage,\n siblingCount,\n boundaryCount,\n }),\n [boundaryCount, currentPage, pageCount, siblingCount],\n );\n\n const canGoPrev = pageCount > 0 && currentPage > 1;\n const canGoNext = pageCount > 0 && currentPage < pageCount;\n\n const goPrev = useCallback(() => {\n if (canGoPrev) {\n setPage(currentPage - 1);\n }\n }, [canGoPrev, currentPage, setPage]);\n\n const goNext = useCallback(() => {\n if (canGoNext) {\n setPage(currentPage + 1);\n }\n }, [canGoNext, currentPage, setPage]);\n\n return {\n currentPage,\n pageCount,\n items,\n setPage,\n goPrev,\n goNext,\n canGoPrev,\n canGoNext,\n };\n}\n\n/**\n * Builds the ordered list of page numbers and ellipsis markers for a pagination control.\n *\n * @param params.pageCount - Total number of pages (must be >= 0; empty list when 0).\n * @param params.currentPage - Active page index (1-based).\n * @param params.siblingCount - How many page buttons to show on each side of the current page.\n * @param params.boundaryCount - How many pages to pin at the start and end of the range.\n * @returns Items suitable for rendering, e.g. page `1`, ellipsis gap, middle window, ellipsis, last page.\n */\nexport function buildPaginationItems({\n pageCount,\n currentPage,\n siblingCount,\n boundaryCount,\n}: BuildPaginationItemsParams): PaginationPageItem[] {\n if (pageCount <= 0) {\n return [];\n }\n\n const safeBoundary = Math.max(1, boundaryCount);\n const safeSibling = Math.max(0, siblingCount);\n const current = clampPage(currentPage, pageCount);\n\n const totalNumbers = safeBoundary * 2 + safeSibling * 2 + 1;\n if (pageCount <= totalNumbers) {\n return range(1, pageCount).map((value) => ({ type: \"page\", value }));\n }\n\n const leftBoundaryEnd = safeBoundary;\n const rightBoundaryStart = pageCount - safeBoundary + 1;\n\n const siblingsStart = Math.max(current - safeSibling, leftBoundaryEnd + 1);\n const siblingsEnd = Math.min(current + safeSibling, rightBoundaryStart - 1);\n\n const pages = new Set<number>();\n for (let p = 1; p <= leftBoundaryEnd; p += 1) {\n pages.add(p);\n }\n for (let p = rightBoundaryStart; p <= pageCount; p += 1) {\n pages.add(p);\n }\n for (let p = siblingsStart; p <= siblingsEnd; p += 1) {\n pages.add(p);\n }\n\n const sorted = [...pages].sort((a, b) => a - b);\n const items: PaginationPageItem[] = [];\n\n for (let i = 0; i < sorted.length; i += 1) {\n const value = sorted[i];\n const prev = sorted[i - 1];\n if (i > 0 && prev !== undefined && value && value - prev > 1) {\n items.push({ type: \"ellipsis\", key: `gap-${prev}-${value}` });\n }\n items.push({ type: \"page\", value: value as number });\n }\n\n return items;\n}\n"]}
|
|
@@ -23,5 +23,5 @@ var clamp = (value, min, max) => {
|
|
|
23
23
|
};
|
|
24
24
|
|
|
25
25
|
export { clamp, clampPage, cn, range };
|
|
26
|
-
//# sourceMappingURL=chunk-
|
|
27
|
-
//# sourceMappingURL=chunk-
|
|
26
|
+
//# sourceMappingURL=chunk-4D54YOL6.mjs.map
|
|
27
|
+
//# sourceMappingURL=chunk-4D54YOL6.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/utils.ts"],"names":[],"mappings":";;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;AAEO,IAAM,SAAA,GAAY,CAAC,IAAA,EAAc,SAAA,KAA8B;AACpE,EAAA,IAAI,aAAa,CAAA,EAAG;AAClB,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,OAAO,IAAA,CAAK,GAAA,CAAI,SAAA,EAAW,IAAA,CAAK,GAAA,CAAI,GAAG,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,CAAC,CAAA;AAC1D;AAEO,IAAM,KAAA,GAAQ,CAAC,IAAA,EAAc,EAAA,KAAyB;AAC3D,EAAA,MAAM,MAAgB,EAAC;AACvB,EAAA,KAAA,IAAS,CAAA,GAAI,IAAA,EAAM,CAAA,IAAK,EAAA,EAAI,KAAK,CAAA,EAAG;AAClC,IAAA,GAAA,CAAI,KAAK,CAAC,CAAA;AAAA,EACZ;AACA,EAAA,OAAO,GAAA;AACT;AAEO,IAAM,KAAA,GAAQ,CAAC,KAAA,EAAe,GAAA,EAAa,GAAA,KAAgB;AAChE,EAAA,OAAO,KAAK,GAAA,CAAI,GAAA,EAAK,KAAK,GAAA,CAAI,GAAA,EAAK,KAAK,CAAC,CAAA;AAC3C","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/lib/utils.ts"],"names":[],"mappings":";;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;AAEO,IAAM,SAAA,GAAY,CAAC,IAAA,EAAc,SAAA,KAA8B;AACpE,EAAA,IAAI,aAAa,CAAA,EAAG;AAClB,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,OAAO,IAAA,CAAK,GAAA,CAAI,SAAA,EAAW,IAAA,CAAK,GAAA,CAAI,GAAG,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,CAAC,CAAA;AAC1D;AAEO,IAAM,KAAA,GAAQ,CAAC,IAAA,EAAc,EAAA,KAAyB;AAC3D,EAAA,MAAM,MAAgB,EAAC;AACvB,EAAA,KAAA,IAAS,CAAA,GAAI,IAAA,EAAM,CAAA,IAAK,EAAA,EAAI,KAAK,CAAA,EAAG;AAClC,IAAA,GAAA,CAAI,KAAK,CAAC,CAAA;AAAA,EACZ;AACA,EAAA,OAAO,GAAA;AACT;AAEO,IAAM,KAAA,GAAQ,CAAC,KAAA,EAAe,GAAA,EAAa,GAAA,KAAgB;AAChE,EAAA,OAAO,KAAK,GAAA,CAAI,GAAA,EAAK,KAAK,GAAA,CAAI,GAAA,EAAK,KAAK,CAAC,CAAA;AAC3C","file":"chunk-4D54YOL6.mjs","sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport const clampPage = (page: number, pageCount: number): number => {\n if (pageCount <= 0) {\n return 1;\n }\n return Math.min(pageCount, Math.max(1, Math.floor(page)));\n};\n\nexport const range = (from: number, to: number): number[] => {\n const out: number[] = [];\n for (let i = from; i <= to; i += 1) {\n out.push(i);\n }\n return out;\n};\n\nexport const clamp = (value: number, min: number, max: number) => {\n return Math.min(max, Math.max(min, value));\n};\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cn } from './chunk-
|
|
1
|
+
import { cn } from './chunk-4D54YOL6.mjs';
|
|
2
2
|
import { cva } from 'class-variance-authority';
|
|
3
3
|
import { createContext, useContext, useState, useRef, useCallback, useMemo, useEffect } from 'react';
|
|
4
4
|
import { createPortal } from 'react-dom';
|
|
@@ -43,15 +43,15 @@ var toastRootVariants = cva(
|
|
|
43
43
|
gray: "border-gray-600 bg-gray-950/70 backdrop-blur-xl",
|
|
44
44
|
amber: "border-amber-600 bg-amber-950/70 backdrop-blur-xl",
|
|
45
45
|
violet: "border-violet-600 bg-violet-950/70 backdrop-blur-xl",
|
|
46
|
-
"gradient-blue": "border-gradient-to-r from-blue-600 to-purple-600 bg-
|
|
47
|
-
"gradient-green": "border-gradient-to-r from-green-600 to-lime-600 bg-
|
|
48
|
-
"gradient-red": "border-gradient-to-r from-red-600 to-pink-600 bg-
|
|
49
|
-
"gradient-yellow": "border-gradient-to-r from-yellow-600 to-orange-600 bg-
|
|
50
|
-
"gradient-purple": "border-gradient-to-r from-purple-600 to-pink-600 bg-
|
|
51
|
-
"gradient-teal": "border-gradient-to-r from-teal-600 to-cyan-600 bg-
|
|
52
|
-
"gradient-indigo": "border-gradient-to-r from-indigo-600 to-purple-600 bg-
|
|
53
|
-
"gradient-pink": "border-gradient-to-r from-pink-600 to-rose-600 bg-
|
|
54
|
-
"gradient-orange": "border-gradient-to-r from-orange-600 to-red-600 bg-
|
|
46
|
+
"gradient-blue": "border-gradient-to-r from-blue-600 to-purple-600 bg-linear-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl",
|
|
47
|
+
"gradient-green": "border-gradient-to-r from-green-600 to-lime-600 bg-linear-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl",
|
|
48
|
+
"gradient-red": "border-gradient-to-r from-red-600 to-pink-600 bg-linear-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl",
|
|
49
|
+
"gradient-yellow": "border-gradient-to-r from-yellow-600 to-orange-600 bg-linear-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl",
|
|
50
|
+
"gradient-purple": "border-gradient-to-r from-purple-600 to-pink-600 bg-linear-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl",
|
|
51
|
+
"gradient-teal": "border-gradient-to-r from-teal-600 to-cyan-600 bg-linear-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl",
|
|
52
|
+
"gradient-indigo": "border-gradient-to-r from-indigo-600 to-purple-600 bg-linear-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl",
|
|
53
|
+
"gradient-pink": "border-gradient-to-r from-pink-600 to-rose-600 bg-linear-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl",
|
|
54
|
+
"gradient-orange": "border-gradient-to-r from-orange-600 to-red-600 bg-linear-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl"
|
|
55
55
|
},
|
|
56
56
|
size: {
|
|
57
57
|
sm: "p-3 text-xs",
|
|
@@ -224,7 +224,7 @@ function ToastClose({
|
|
|
224
224
|
"data-slot": "toast-close",
|
|
225
225
|
"aria-label": "Dismiss notification",
|
|
226
226
|
className: cn(
|
|
227
|
-
"absolute right-3 top-3 inline-flex size-8 items-center justify-center rounded-md text-slate-200 transition hover:bg-white/10",
|
|
227
|
+
"absolute right-3 top-3 inline-flex size-8 items-center justify-center rounded-md text-slate-200 transition hover:bg-white/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/40 focus-visible:ring-offset-2 focus-visible:ring-offset-slate-950",
|
|
228
228
|
className
|
|
229
229
|
),
|
|
230
230
|
onClick,
|
|
@@ -236,5 +236,5 @@ function ToastClose({
|
|
|
236
236
|
ToastClose.displayName = "ToastClose";
|
|
237
237
|
|
|
238
238
|
export { Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastStoreContext, ToastTitle, ToastViewport, toast, toastRootVariants, toastViewportVariants, useToast };
|
|
239
|
-
//# sourceMappingURL=chunk-
|
|
240
|
-
//# sourceMappingURL=chunk-
|
|
239
|
+
//# sourceMappingURL=chunk-4LT2GNJL.mjs.map
|
|
240
|
+
//# sourceMappingURL=chunk-4LT2GNJL.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ui/toast/variants.ts","../src/ui/toast/toast-base.tsx"],"names":[],"mappings":"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","file":"chunk-UXGHUBNJ.mjs","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const toastViewportVariants = cva(\n \"fixed z-[60] flex max-h-screen flex-col gap-2 p-4\",\n {\n variants: {\n position: {\n \"top-left\": \"left-0 top-0 items-start\",\n \"top-center\": \"left-1/2 top-0 -translate-x-1/2 items-center\",\n \"top-right\": \"right-0 top-0 items-end\",\n \"bottom-left\": \"bottom-0 left-0 items-start\",\n \"bottom-center\": \"bottom-0 left-1/2 -translate-x-1/2 items-center\",\n \"bottom-right\": \"bottom-0 right-0 items-end\",\n },\n },\n defaultVariants: {\n position: \"bottom-right\",\n },\n },\n);\n\nexport const toastRootVariants = cva(\n \"pointer-events-auto w-[min(100vw-2rem,380px)] rounded-xl border border-white/10 bg-slate-950 p-4 text-slate-50 shadow-[0_18px_48px_rgba(15,23,42,0.45)]\",\n {\n variants: {\n appearance: {\n default: \"bg-slate-950\",\n success: \"border-emerald-500/40 bg-emerald-950\",\n warning: \"border-amber-500/40 bg-amber-950\",\n error: \"border-rose-500/50 bg-rose-950\",\n info: \"border-sky-500/40 bg-sky-950\",\n ghost: \"border-transparent bg-transparent text-slate-200\",\n purple: \"border-purple-600 bg-purple-950/70 backdrop-blur-xl\",\n pink: \"border-pink-600 bg-pink-950/70 backdrop-blur-xl\",\n orange: \"border-orange-600 bg-orange-950/70 backdrop-blur-xl\",\n yellow: \"border-yellow-600 bg-yellow-950/70 backdrop-blur-xl\",\n teal: \"border-teal-600 bg-teal-950/70 backdrop-blur-xl\",\n indigo: \"border-indigo-600 bg-indigo-950/70 backdrop-blur-xl\",\n emerald: \"border-emerald-600 bg-emerald-950/70 backdrop-blur-xl\",\n gray: \"border-gray-600 bg-gray-950/70 backdrop-blur-xl\",\n amber: \"border-amber-600 bg-amber-950/70 backdrop-blur-xl\",\n violet: \"border-violet-600 bg-violet-950/70 backdrop-blur-xl\",\n \"gradient-blue\":\n \"border-gradient-to-r from-blue-600 to-purple-600 bg-gradient-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl\",\n \"gradient-green\":\n \"border-gradient-to-r from-green-600 to-lime-600 bg-gradient-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl\",\n \"gradient-red\":\n \"border-gradient-to-r from-red-600 to-pink-600 bg-gradient-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl\",\n \"gradient-yellow\":\n \"border-gradient-to-r from-yellow-600 to-orange-600 bg-gradient-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl\",\n \"gradient-purple\":\n \"border-gradient-to-r from-purple-600 to-pink-600 bg-gradient-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl\",\n \"gradient-teal\":\n \"border-gradient-to-r from-teal-600 to-cyan-600 bg-gradient-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl\",\n \"gradient-indigo\":\n \"border-gradient-to-r from-indigo-600 to-purple-600 bg-gradient-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl\",\n \"gradient-pink\":\n \"border-gradient-to-r from-pink-600 to-rose-600 bg-gradient-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl\",\n \"gradient-orange\":\n \"border-gradient-to-r from-orange-600 to-red-600 bg-gradient-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl\",\n },\n size: {\n sm: \"p-3 text-xs\",\n md: \"p-4 text-sm\",\n lg: \"p-5 text-base\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n },\n },\n);\n","\"use client\";\n\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type {\n ToastContextValue,\n ToastStoreContextValue,\n InternalToast,\n ToastInput,\n ToastProps,\n ToastProviderProps,\n ToastSectionProps,\n ToastViewportProps,\n} from \"./types\";\nimport { toastRootVariants, toastViewportVariants } from \"./variants\";\n\nexport const ToastStoreContext = createContext<ToastStoreContextValue | null>(\n null,\n);\n\nlet toastDispatcher: ToastStoreContextValue[\"push\"] | null = null;\n\nexport function toast(input: ToastInput) {\n if (!toastDispatcher) {\n return \"\";\n }\n return toastDispatcher(input);\n}\n\nexport function useToast(): ToastContextValue {\n const ctx = useContext(ToastStoreContext);\n if (!ctx) {\n throw new Error(\"useToast must be used within <ToastProvider>\");\n }\n return { toast: ctx.push, dismiss: ctx.dismiss };\n}\n\nexport function ToastProvider({ children }: ToastProviderProps) {\n const [toasts, setToasts] = useState<InternalToast[]>([]);\n const timers = useRef<Map<string, number>>(new Map());\n\n const dismiss = useCallback((id: string) => {\n const timerId = timers.current.get(id);\n if (timerId) {\n window.clearTimeout(timerId);\n timers.current.delete(id);\n }\n setToasts((prev) => prev.filter((toastItem) => toastItem.id !== id));\n }, []);\n\n const push = useCallback(\n (input: ToastInput) => {\n const id = input.id ?? `toast-${Math.random().toString(16).slice(2)}`;\n const durationMs = input.durationMs ?? 4500;\n const record: InternalToast = {\n ...input,\n id,\n durationMs,\n animation: input.animation ?? \"slide\",\n };\n setToasts((prev) => [...prev, record]);\n const timerId = window.setTimeout(() => dismiss(id), durationMs);\n timers.current.set(id, timerId);\n return id;\n },\n [dismiss],\n );\n\n const ctx = useMemo(\n () => ({\n toasts,\n push,\n dismiss,\n }),\n [dismiss, push, toasts],\n );\n\n useEffect(() => {\n toastDispatcher = push;\n return () => {\n toastDispatcher = null;\n };\n }, [push]);\n\n return (\n <ToastStoreContext.Provider value={ctx}>\n {children}\n </ToastStoreContext.Provider>\n );\n}\n\nToastProvider.displayName = \"ToastProvider\";\n\nexport function ToastViewport({\n position = \"bottom-right\",\n className,\n}: ToastViewportProps) {\n const ctx = useContext(ToastStoreContext);\n if (!ctx) {\n throw new Error(\"ToastViewport must be used within <ToastProvider>\");\n }\n\n const portalTarget = typeof document !== \"undefined\" ? document.body : null;\n if (!portalTarget) {\n return null;\n }\n\n return createPortal(\n <div\n className={cn(toastViewportVariants({ position }), className)}\n data-slot=\"toast-viewport\"\n >\n {ctx.toasts.map((item) => (\n <Toast\n key={item.id}\n toastId={item.id}\n appearance={item.appearance}\n size={item.size}\n animation={item.animation}\n >\n <ToastTitle>{item.title}</ToastTitle>\n {item.description ? (\n <ToastDescription>{item.description}</ToastDescription>\n ) : null}\n <ToastClose onClick={() => ctx.dismiss(item.id)} />\n </Toast>\n ))}\n </div>,\n portalTarget,\n );\n}\n\nToastViewport.displayName = \"ToastViewport\";\n\nexport function Toast({\n toastId: _toastId,\n appearance,\n size,\n animation: _animation = \"slide\",\n className,\n children,\n}: ToastProps) {\n const live = appearance === \"error\" ? \"assertive\" : \"polite\";\n\n return (\n <div\n data-slot=\"toast\"\n role={appearance === \"error\" ? \"alert\" : \"status\"}\n aria-live={live}\n aria-atomic=\"true\"\n className={cn(\n \"relative\",\n toastRootVariants({ appearance, size }),\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\nToast.displayName = \"Toast\";\n\nexport function ToastTitle({ className, children }: ToastSectionProps) {\n return (\n <div data-slot=\"toast-title\" className={cn(\"font-semibold\", className)}>\n {children}\n </div>\n );\n}\n\nToastTitle.displayName = \"ToastTitle\";\n\nexport function ToastDescription({ className, children }: ToastSectionProps) {\n return (\n <div\n data-slot=\"toast-description\"\n className={cn(\"text-sm text-slate-300\", className)}\n >\n {children}\n </div>\n );\n}\n\nToastDescription.displayName = \"ToastDescription\";\n\nexport function ToastAction({ className, children }: ToastSectionProps) {\n return (\n <div data-slot=\"toast-action\" className={cn(\"mt-3\", className)}>\n {children}\n </div>\n );\n}\n\nToastAction.displayName = \"ToastAction\";\n\nexport function ToastClose({\n className,\n children,\n onClick,\n ...rest\n}: ToastSectionProps & { onClick?: () => void }) {\n return (\n <button\n type=\"button\"\n data-slot=\"toast-close\"\n aria-label=\"Dismiss notification\"\n className={cn(\n \"absolute right-3 top-3 inline-flex size-8 items-center justify-center rounded-md text-slate-200 transition hover:bg-white/10\",\n className,\n )}\n onClick={onClick}\n {...rest}\n >\n {children ?? \"×\"}\n </button>\n );\n}\n\nToastClose.displayName = \"ToastClose\";\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/ui/toast/variants.ts","../src/ui/toast/toast-base.tsx"],"names":[],"mappings":"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","file":"chunk-4LT2GNJL.mjs","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const toastViewportVariants = cva(\n \"fixed z-[60] flex max-h-screen flex-col gap-2 p-4\",\n {\n variants: {\n position: {\n \"top-left\": \"left-0 top-0 items-start\",\n \"top-center\": \"left-1/2 top-0 -translate-x-1/2 items-center\",\n \"top-right\": \"right-0 top-0 items-end\",\n \"bottom-left\": \"bottom-0 left-0 items-start\",\n \"bottom-center\": \"bottom-0 left-1/2 -translate-x-1/2 items-center\",\n \"bottom-right\": \"bottom-0 right-0 items-end\",\n },\n },\n defaultVariants: {\n position: \"bottom-right\",\n },\n },\n);\n\nexport const toastRootVariants = cva(\n \"pointer-events-auto w-[min(100vw-2rem,380px)] rounded-xl border border-white/10 bg-slate-950 p-4 text-slate-50 shadow-[0_18px_48px_rgba(15,23,42,0.45)]\",\n {\n variants: {\n appearance: {\n default: \"bg-slate-950\",\n success: \"border-emerald-500/40 bg-emerald-950\",\n warning: \"border-amber-500/40 bg-amber-950\",\n error: \"border-rose-500/50 bg-rose-950\",\n info: \"border-sky-500/40 bg-sky-950\",\n ghost: \"border-transparent bg-transparent text-slate-200\",\n purple: \"border-purple-600 bg-purple-950/70 backdrop-blur-xl\",\n pink: \"border-pink-600 bg-pink-950/70 backdrop-blur-xl\",\n orange: \"border-orange-600 bg-orange-950/70 backdrop-blur-xl\",\n yellow: \"border-yellow-600 bg-yellow-950/70 backdrop-blur-xl\",\n teal: \"border-teal-600 bg-teal-950/70 backdrop-blur-xl\",\n indigo: \"border-indigo-600 bg-indigo-950/70 backdrop-blur-xl\",\n emerald: \"border-emerald-600 bg-emerald-950/70 backdrop-blur-xl\",\n gray: \"border-gray-600 bg-gray-950/70 backdrop-blur-xl\",\n amber: \"border-amber-600 bg-amber-950/70 backdrop-blur-xl\",\n violet: \"border-violet-600 bg-violet-950/70 backdrop-blur-xl\",\n \"gradient-blue\":\n \"border-gradient-to-r from-blue-600 to-purple-600 bg-linear-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl\",\n \"gradient-green\":\n \"border-gradient-to-r from-green-600 to-lime-600 bg-linear-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl\",\n \"gradient-red\":\n \"border-gradient-to-r from-red-600 to-pink-600 bg-linear-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl\",\n \"gradient-yellow\":\n \"border-gradient-to-r from-yellow-600 to-orange-600 bg-linear-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl\",\n \"gradient-purple\":\n \"border-gradient-to-r from-purple-600 to-pink-600 bg-linear-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl\",\n \"gradient-teal\":\n \"border-gradient-to-r from-teal-600 to-cyan-600 bg-linear-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl\",\n \"gradient-indigo\":\n \"border-gradient-to-r from-indigo-600 to-purple-600 bg-linear-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl\",\n \"gradient-pink\":\n \"border-gradient-to-r from-pink-600 to-rose-600 bg-linear-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl\",\n \"gradient-orange\":\n \"border-gradient-to-r from-orange-600 to-red-600 bg-linear-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl\",\n },\n size: {\n sm: \"p-3 text-xs\",\n md: \"p-4 text-sm\",\n lg: \"p-5 text-base\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n },\n },\n);\n","\"use client\";\n\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type {\n ToastContextValue,\n ToastStoreContextValue,\n InternalToast,\n ToastInput,\n ToastProps,\n ToastProviderProps,\n ToastSectionProps,\n ToastViewportProps,\n} from \"./types\";\nimport { toastRootVariants, toastViewportVariants } from \"./variants\";\n\nexport const ToastStoreContext = createContext<ToastStoreContextValue | null>(\n null,\n);\n\nlet toastDispatcher: ToastStoreContextValue[\"push\"] | null = null;\n\nexport function toast(input: ToastInput) {\n if (!toastDispatcher) {\n return \"\";\n }\n return toastDispatcher(input);\n}\n\nexport function useToast(): ToastContextValue {\n const ctx = useContext(ToastStoreContext);\n if (!ctx) {\n throw new Error(\"useToast must be used within <ToastProvider>\");\n }\n return { toast: ctx.push, dismiss: ctx.dismiss };\n}\n\nexport function ToastProvider({ children }: ToastProviderProps) {\n const [toasts, setToasts] = useState<InternalToast[]>([]);\n const timers = useRef<Map<string, number>>(new Map());\n\n const dismiss = useCallback((id: string) => {\n const timerId = timers.current.get(id);\n if (timerId) {\n window.clearTimeout(timerId);\n timers.current.delete(id);\n }\n setToasts((prev) => prev.filter((toastItem) => toastItem.id !== id));\n }, []);\n\n const push = useCallback(\n (input: ToastInput) => {\n const id = input.id ?? `toast-${Math.random().toString(16).slice(2)}`;\n const durationMs = input.durationMs ?? 4500;\n const record: InternalToast = {\n ...input,\n id,\n durationMs,\n animation: input.animation ?? \"slide\",\n };\n setToasts((prev) => [...prev, record]);\n const timerId = window.setTimeout(() => dismiss(id), durationMs);\n timers.current.set(id, timerId);\n return id;\n },\n [dismiss],\n );\n\n const ctx = useMemo(\n () => ({\n toasts,\n push,\n dismiss,\n }),\n [dismiss, push, toasts],\n );\n\n useEffect(() => {\n toastDispatcher = push;\n return () => {\n toastDispatcher = null;\n };\n }, [push]);\n\n return (\n <ToastStoreContext.Provider value={ctx}>\n {children}\n </ToastStoreContext.Provider>\n );\n}\n\nToastProvider.displayName = \"ToastProvider\";\n\nexport function ToastViewport({\n position = \"bottom-right\",\n className,\n}: ToastViewportProps) {\n const ctx = useContext(ToastStoreContext);\n if (!ctx) {\n throw new Error(\"ToastViewport must be used within <ToastProvider>\");\n }\n\n const portalTarget = typeof document !== \"undefined\" ? document.body : null;\n if (!portalTarget) {\n return null;\n }\n\n return createPortal(\n <div\n className={cn(toastViewportVariants({ position }), className)}\n data-slot=\"toast-viewport\"\n >\n {ctx.toasts.map((item) => (\n <Toast\n key={item.id}\n toastId={item.id}\n appearance={item.appearance}\n size={item.size}\n animation={item.animation}\n >\n <ToastTitle>{item.title}</ToastTitle>\n {item.description ? (\n <ToastDescription>{item.description}</ToastDescription>\n ) : null}\n <ToastClose onClick={() => ctx.dismiss(item.id)} />\n </Toast>\n ))}\n </div>,\n portalTarget,\n );\n}\n\nToastViewport.displayName = \"ToastViewport\";\n\nexport function Toast({\n toastId: _toastId,\n appearance,\n size,\n animation: _animation = \"slide\",\n className,\n children,\n}: ToastProps) {\n const live = appearance === \"error\" ? \"assertive\" : \"polite\";\n\n return (\n <div\n data-slot=\"toast\"\n role={appearance === \"error\" ? \"alert\" : \"status\"}\n aria-live={live}\n aria-atomic=\"true\"\n className={cn(\n \"relative\",\n toastRootVariants({ appearance, size }),\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\nToast.displayName = \"Toast\";\n\nexport function ToastTitle({ className, children }: ToastSectionProps) {\n return (\n <div data-slot=\"toast-title\" className={cn(\"font-semibold\", className)}>\n {children}\n </div>\n );\n}\n\nToastTitle.displayName = \"ToastTitle\";\n\nexport function ToastDescription({ className, children }: ToastSectionProps) {\n return (\n <div\n data-slot=\"toast-description\"\n className={cn(\"text-sm text-slate-300\", className)}\n >\n {children}\n </div>\n );\n}\n\nToastDescription.displayName = \"ToastDescription\";\n\nexport function ToastAction({ className, children }: ToastSectionProps) {\n return (\n <div data-slot=\"toast-action\" className={cn(\"mt-3\", className)}>\n {children}\n </div>\n );\n}\n\nToastAction.displayName = \"ToastAction\";\n\nexport function ToastClose({\n className,\n children,\n onClick,\n ...rest\n}: ToastSectionProps & { onClick?: () => void }) {\n return (\n <button\n type=\"button\"\n data-slot=\"toast-close\"\n aria-label=\"Dismiss notification\"\n className={cn(\n \"absolute right-3 top-3 inline-flex size-8 items-center justify-center rounded-md text-slate-200 transition hover:bg-white/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/40 focus-visible:ring-offset-2 focus-visible:ring-offset-slate-950\",\n className,\n )}\n onClick={onClick}\n {...rest}\n >\n {children ?? \"×\"}\n </button>\n );\n}\n\nToastClose.displayName = \"ToastClose\";\n"]}
|
|
@@ -14,32 +14,32 @@ var buttonVariants = cva(
|
|
|
14
14
|
appearance: {
|
|
15
15
|
default: "bg-slate-50 text-slate-950 shadow-[0_1px_2px_rgba(15,23,42,0.12)] hover:bg-white",
|
|
16
16
|
secondary: "bg-slate-800 text-slate-50 hover:bg-slate-700",
|
|
17
|
-
destructive: "bg-rose-
|
|
17
|
+
destructive: "bg-rose-700 text-white hover:bg-rose-800",
|
|
18
18
|
outline: "border border-white/10 bg-white/5 text-slate-50 hover:bg-white/10",
|
|
19
19
|
ghost: "bg-transparent text-slate-200 hover:bg-white/5",
|
|
20
20
|
link: "bg-transparent text-cyan-300 underline-offset-4 hover:underline",
|
|
21
21
|
glass: "border border-white/15 bg-white/10 text-white backdrop-blur-md hover:bg-white/15",
|
|
22
|
-
emerald: "bg-emerald-
|
|
22
|
+
emerald: "bg-emerald-800 text-white hover:bg-emerald-900",
|
|
23
23
|
indigo: "bg-indigo-600 text-white hover:bg-indigo-600",
|
|
24
24
|
purple: "bg-purple-600 text-white hover:bg-purple-600",
|
|
25
25
|
pink: "bg-pink-600 text-white hover:bg-pink-600",
|
|
26
26
|
rose: "bg-rose-600 text-white hover:bg-rose-600",
|
|
27
|
-
sky: "bg-sky-
|
|
28
|
-
teal: "bg-teal-
|
|
29
|
-
yellow: "bg-yellow-
|
|
30
|
-
orange: "bg-orange-
|
|
31
|
-
gray: "bg-gray-
|
|
32
|
-
amber: "bg-amber-
|
|
27
|
+
sky: "bg-sky-700 text-white hover:bg-sky-800",
|
|
28
|
+
teal: "bg-teal-700 text-white hover:bg-teal-800",
|
|
29
|
+
yellow: "bg-yellow-800 text-white hover:bg-yellow-900",
|
|
30
|
+
orange: "bg-orange-800 text-white hover:bg-orange-900",
|
|
31
|
+
gray: "bg-gray-700 text-white hover:bg-gray-800",
|
|
32
|
+
amber: "bg-amber-800 text-white hover:bg-amber-900",
|
|
33
33
|
violet: "bg-violet-600 text-white hover:bg-violet-600",
|
|
34
|
-
"gradient-blue": "bg-
|
|
35
|
-
"gradient-green": "bg-
|
|
36
|
-
"gradient-red": "bg-
|
|
37
|
-
"gradient-yellow": "bg-
|
|
38
|
-
"gradient-purple": "bg-
|
|
39
|
-
"gradient-teal": "bg-
|
|
40
|
-
"gradient-indigo": "bg-
|
|
41
|
-
"gradient-pink": "bg-
|
|
42
|
-
"gradient-orange": "bg-
|
|
34
|
+
"gradient-blue": "bg-linear-to-r from-blue-600 to-purple-600 text-white hover:from-blue-600 hover:to-purple-600",
|
|
35
|
+
"gradient-green": "bg-linear-to-r from-green-600 to-lime-600 text-white hover:from-green-600 hover:to-lime-600",
|
|
36
|
+
"gradient-red": "bg-linear-to-r from-red-600 to-pink-600 text-white hover:from-red-600 hover:to-pink-600",
|
|
37
|
+
"gradient-yellow": "bg-linear-to-r from-yellow-600 to-orange-600 text-white hover:from-yellow-600 hover:to-orange-600",
|
|
38
|
+
"gradient-purple": "bg-linear-to-r from-purple-600 to-pink-600 text-white hover:from-purple-600 hover:to-pink-600",
|
|
39
|
+
"gradient-teal": "bg-linear-to-r from-teal-600 to-cyan-600 text-white hover:from-teal-600 hover:to-cyan-600",
|
|
40
|
+
"gradient-indigo": "bg-linear-to-r from-indigo-600 to-purple-600 text-white hover:from-indigo-600 hover:to-purple-600",
|
|
41
|
+
"gradient-pink": "bg-linear-to-r from-pink-600 to-rose-600 text-white hover:from-pink-600 hover:to-rose-600",
|
|
42
|
+
"gradient-orange": "bg-linear-to-r from-orange-600 to-red-600 text-white hover:from-orange-600 hover:to-red-600"
|
|
43
43
|
},
|
|
44
44
|
size: {
|
|
45
45
|
sm: "h-7 md:h-9 px-3 text-xs",
|
|
@@ -66,5 +66,5 @@ var buttonVariants = cva(
|
|
|
66
66
|
);
|
|
67
67
|
|
|
68
68
|
export { buttonVariants };
|
|
69
|
-
//# sourceMappingURL=chunk-
|
|
70
|
-
//# sourceMappingURL=chunk-
|
|
69
|
+
//# sourceMappingURL=chunk-5TV7EL3H.mjs.map
|
|
70
|
+
//# sourceMappingURL=chunk-5TV7EL3H.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ui/buttons/variants.ts"],"names":[],"mappings":";;;AAEO,IAAM,cAAA,GAAiB,GAAA;AAAA,EAC5B;AAAA,IACE,4EAAA;AAAA,IACA,6DAAA;AAAA,IACA,0GAAA;AAAA,IACA,kDAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,UAAA,EAAY;AAAA,QACV,OAAA,EACE,kFAAA;AAAA,QACF,SAAA,EAAW,+CAAA;AAAA,QACX,WAAA,EAAa,0CAAA;AAAA,QACb,OAAA,EACE,mEAAA;AAAA,QACF,KAAA,EAAO,gDAAA;AAAA,QACP,IAAA,EAAM,iEAAA;AAAA,QACN,KAAA,EACE,kFAAA;AAAA,QACF,OAAA,EAAS,gDAAA;AAAA,QACT,MAAA,EAAQ,8CAAA;AAAA,QACR,MAAA,EAAQ,8CAAA;AAAA,QACR,IAAA,EAAM,0CAAA;AAAA,QACN,IAAA,EAAM,0CAAA;AAAA,QACN,GAAA,EAAK,wCAAA;AAAA,QACL,IAAA,EAAM,0CAAA;AAAA,QACN,MAAA,EAAQ,8CAAA;AAAA,QACR,MAAA,EAAQ,8CAAA;AAAA,QACR,IAAA,EAAM,0CAAA;AAAA,QACN,KAAA,EAAO,4CAAA;AAAA,QACP,MAAA,EAAQ,8CAAA;AAAA,QACR,eAAA,EACE,+FAAA;AAAA,QACF,gBAAA,EACE,6FAAA;AAAA,QACF,cAAA,EACE,yFAAA;AAAA,QACF,iBAAA,EACE,mGAAA;AAAA,QACF,iBAAA,EACE,+FAAA;AAAA,QACF,eAAA,EACE,2FAAA;AAAA,QACF,iBAAA,EACE,mGAAA;AAAA,QACF,eAAA,EACE,2FAAA;AAAA,QACF,iBAAA,EACE;AAAA,OACJ;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,yBAAA;AAAA,QACJ,EAAA,EAAI,kBAAA;AAAA,QACJ,EAAA,EAAI,6BAAA;AAAA,QACJ,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,mCAAA;AAAA,QACP,KAAA,EAAO,qCAAA;AAAA,QACP,KAAA,EAAO,sCAAA;AAAA,QACP,KAAA,EAAO,sCAAA;AAAA,QACP,KAAA,EAAO,sCAAA;AAAA,QACP,KAAA,EAAO,sCAAA;AAAA,QACP,KAAA,EAAO,6BAAA;AAAA,QACP,KAAA,EAAO,sCAAA;AAAA,QACP,MAAA,EAAQ,sCAAA;AAAA,QACR,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,UAAA,EAAY,SAAA;AAAA,MACZ,IAAA,EAAM;AAAA;AACR;AAEJ","file":"chunk-5TV7EL3H.mjs","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const buttonVariants = cva(\n [\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-xl\",\n \"text-sm font-medium ring-offset-slate-950 transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slate-300 focus-visible:ring-offset-2\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"select-none\",\n ],\n {\n variants: {\n appearance: {\n default:\n \"bg-slate-50 text-slate-950 shadow-[0_1px_2px_rgba(15,23,42,0.12)] hover:bg-white\",\n secondary: \"bg-slate-800 text-slate-50 hover:bg-slate-700\",\n destructive: \"bg-rose-700 text-white hover:bg-rose-800\",\n outline:\n \"border border-white/10 bg-white/5 text-slate-50 hover:bg-white/10\",\n ghost: \"bg-transparent text-slate-200 hover:bg-white/5\",\n link: \"bg-transparent text-cyan-300 underline-offset-4 hover:underline\",\n glass:\n \"border border-white/15 bg-white/10 text-white backdrop-blur-md hover:bg-white/15\",\n emerald: \"bg-emerald-800 text-white hover:bg-emerald-900\",\n indigo: \"bg-indigo-600 text-white hover:bg-indigo-600\",\n purple: \"bg-purple-600 text-white hover:bg-purple-600\",\n pink: \"bg-pink-600 text-white hover:bg-pink-600\",\n rose: \"bg-rose-600 text-white hover:bg-rose-600\",\n sky: \"bg-sky-700 text-white hover:bg-sky-800\",\n teal: \"bg-teal-700 text-white hover:bg-teal-800\",\n yellow: \"bg-yellow-800 text-white hover:bg-yellow-900\",\n orange: \"bg-orange-800 text-white hover:bg-orange-900\",\n gray: \"bg-gray-700 text-white hover:bg-gray-800\",\n amber: \"bg-amber-800 text-white hover:bg-amber-900\",\n violet: \"bg-violet-600 text-white hover:bg-violet-600\",\n \"gradient-blue\":\n \"bg-linear-to-r from-blue-600 to-purple-600 text-white hover:from-blue-600 hover:to-purple-600\",\n \"gradient-green\":\n \"bg-linear-to-r from-green-600 to-lime-600 text-white hover:from-green-600 hover:to-lime-600\",\n \"gradient-red\":\n \"bg-linear-to-r from-red-600 to-pink-600 text-white hover:from-red-600 hover:to-pink-600\",\n \"gradient-yellow\":\n \"bg-linear-to-r from-yellow-600 to-orange-600 text-white hover:from-yellow-600 hover:to-orange-600\",\n \"gradient-purple\":\n \"bg-linear-to-r from-purple-600 to-pink-600 text-white hover:from-purple-600 hover:to-pink-600\",\n \"gradient-teal\":\n \"bg-linear-to-r from-teal-600 to-cyan-600 text-white hover:from-teal-600 hover:to-cyan-600\",\n \"gradient-indigo\":\n \"bg-linear-to-r from-indigo-600 to-purple-600 text-white hover:from-indigo-600 hover:to-purple-600\",\n \"gradient-pink\":\n \"bg-linear-to-r from-pink-600 to-rose-600 text-white hover:from-pink-600 hover:to-rose-600\",\n \"gradient-orange\":\n \"bg-linear-to-r from-orange-600 to-red-600 text-white hover:from-orange-600 hover:to-red-600\",\n },\n size: {\n sm: \"h-7 md:h-9 px-3 text-xs\",\n md: \"h-9 md:h-11 px-4\",\n lg: \"h-10 md:h-12 px-5 text-base\",\n xl: \"h-12 md:h-14 px-6 text-lg\",\n \"2xl\": \"h-14 md:h-16 px-6 md:px-8 text-xl\",\n \"3xl\": \"h-16 md:h-18 px-8 md:px-10 text-2xl\",\n \"4xl\": \"h-18 md:h-20 px-10 md:px-12 text-2xl\",\n \"5xl\": \"h-20 md:h-22 px-12 md:px-14 text-2xl\",\n \"6xl\": \"h-22 md:h-24 px-14 md:px-16 text-2xl\",\n \"7xl\": \"h-24 md:h-26 px-16 md:px-18 text-2xl\",\n \"8xl\": \"h-26 md:h-28 px-20 text-2xl\",\n \"9xl\": \"h-24 md:h-30 px-18 md:px-22 text-2xl\",\n \"10xl\": \"h-26 md:h-32 px-20 md:px-24 text-2xl\",\n icon: \"h-10 w-10\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n },\n },\n);\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/useClickOutside/useClickOutside.ts"],"names":["useEffect"],"mappings":";;;;;AAyBO,IAAM,kBAAkB,CAAC;AAAA,EAC9B,OAAA;AAAA,EACA,GAAA;AAAA,EACA;AACF,CAAA,KAA6B;AAC3B,EAAAA,eAAA,CAAU,MAAM;AACd,IAAA,MAAM,SACJ,YAAA,IAAgB,YAAA,CAAa,SAAS,CAAA,GAAI,YAAA,GAAe,CAAC,WAAW,CAAA;AACvE,IAAA,MAAM,kBAAA,GAAqB,CAAC,KAAA,KAAiB;AAC3C,MAAA,IAAI,GAAA,CAAI,WAAW,CAAC,GAAA,CAAI,QAAQ,QAAA,CAAS,KAAA,CAAM,MAAc,CAAA,EAAG;AAC9D,QAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,MACf;AAAA,IACF,CAAA;AAEA,IAAA,KAAA,MAAW,aAAa,MAAA,EAAQ;AAC9B,MAAA,QAAA,CAAS,gBAAA,CAAiB,WAAW,kBAAkB,CAAA;AAAA,IACzD;AACA,IAAA,OAAO,MAAM;AACX,MAAA,KAAA,MAAW,aAAa,MAAA,EAAQ;AAC9B,QAAA,QAAA,CAAS,mBAAA,CAAoB,WAAW,kBAAkB,CAAA;AAAA,MAC5D;AAAA,IACF,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,YAAA,EAAc,GAAA,EAAK,OAAO,CAAC,CAAA;AACjC","file":"chunk-7DCFVPWN.js","sourcesContent":["\"use client\";\n\nimport type { RefObject } from \"react\";\nimport { Dispatch, SetStateAction, useEffect } from \"react\";\n\n/** DOM events that can represent an “outside” press for closing overlays. */\nexport type ClickOutsideEventType = \"mousedown\" | \"pointerdown\" | \"touchstart\";\n\nexport type UseClickOutsideParams = {\n /** Called with `false` when a qualifying event target is outside `ref.current`. */\n setOpen: (open: boolean) => void | Dispatch<SetStateAction<boolean>>;\n /** Root element of the floating UI; clicks inside this node do not close. */\n ref: RefObject<HTMLElement | null>;\n /** Defaults to `[\"mousedown\"]` for backward compatibility */\n listenEvents?: ClickOutsideEventType[];\n};\n\n/**\n * Registers document-level listeners so that when the user activates outside of `ref`, `setOpen(false)`\n * runs. Useful for dropdowns, popovers, and menus paired with `open` state.\n *\n * @param params.setOpen - State setter or callback that closes the surface.\n * @param params.ref - Container ref; outside is determined with `contains()` on the event target.\n * @param params.listenEvents - Which events to listen for; default is `mousedown` only.\n */\nexport const useClickOutside = ({\n setOpen,\n ref,\n listenEvents,\n}: UseClickOutsideParams) => {\n useEffect(() => {\n const events =\n listenEvents && listenEvents.length > 0 ? listenEvents : [\"mousedown\"];\n const handleClickOutside = (event: Event) => {\n if (ref.current && !ref.current.contains(event.target as Node)) {\n setOpen(false);\n }\n };\n\n for (const eventName of events) {\n document.addEventListener(eventName, handleClickOutside);\n }\n return () => {\n for (const eventName of events) {\n document.removeEventListener(eventName, handleClickOutside);\n }\n };\n }, [listenEvents, ref, setOpen]);\n};\n"]}
|