@zentauri-ui/zentauri-components 1.3.1 → 1.4.1
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 +90 -0
- package/cli/cli.integration.test.ts +79 -0
- package/cli/index.mjs +718 -0
- package/cli/registry.json +63 -0
- package/cli/rewrite-imports.mjs +57 -0
- package/cli/rewrite-imports.test.ts +71 -0
- package/dist/ui/slider.js +21 -25
- package/dist/ui/slider.js.map +1 -1
- package/dist/ui/slider.mjs +21 -25
- package/dist/ui/slider.mjs.map +1 -1
- package/package.json +9 -3
- package/{dist/hooks/index.d.ts → src/hooks/index.ts} +28 -7
- package/{dist/hooks/useBodyScrollLock/index.d.ts → src/hooks/useBodyScrollLock/index.ts} +0 -1
- package/src/hooks/useBodyScrollLock/useBodyScrollLock.test.ts +51 -0
- package/src/hooks/useBodyScrollLock/useBodyScrollLock.ts +48 -0
- package/src/hooks/useClickOutside/index.ts +5 -0
- package/src/hooks/useClickOutside/useClickOutside.test.tsx +60 -0
- package/src/hooks/useClickOutside/useClickOutside.ts +52 -0
- package/{dist/hooks/useClipboard/index.d.ts → src/hooks/useClipboard/index.ts} +0 -1
- package/src/hooks/useClipboard/useClipboard.test.ts +101 -0
- package/src/hooks/useClipboard/useClipboard.ts +69 -0
- package/src/hooks/useControllableState/index.ts +4 -0
- package/src/hooks/useControllableState/useControllableState.test.ts +59 -0
- package/src/hooks/useControllableState/useControllableState.ts +49 -0
- package/{dist/hooks/useDebouncedValue/index.d.ts → src/hooks/useDebouncedValue/index.ts} +0 -1
- package/src/hooks/useDebouncedValue/useDebouncedValue.test.ts +74 -0
- package/{dist/hooks/useDebouncedValue/useDebouncedValue.d.ts → src/hooks/useDebouncedValue/useDebouncedValue.ts} +18 -2
- package/src/hooks/useDisclosure/index.ts +5 -0
- package/src/hooks/useDisclosure/useDisclosure.test.ts +64 -0
- package/src/hooks/useDisclosure/useDisclosure.ts +62 -0
- package/src/hooks/useDocumentTitle/index.ts +4 -0
- package/src/hooks/useDocumentTitle/useDocumentTitle.test.ts +40 -0
- package/src/hooks/useDocumentTitle/useDocumentTitle.ts +58 -0
- package/{dist/hooks/useFocusManagement/index.d.ts → src/hooks/useFocusManagement/index.ts} +0 -1
- package/src/hooks/useFocusManagement/useFocusManagement.test.tsx +45 -0
- package/src/hooks/useFocusManagement/useFocusManagement.ts +77 -0
- package/{dist/hooks/useHover/index.d.ts → src/hooks/useHover/index.ts} +0 -1
- package/src/hooks/useHover/useHover.test.ts +45 -0
- package/src/hooks/useHover/useHover.ts +45 -0
- package/{dist/hooks/useInView/index.d.ts → src/hooks/useInView/index.ts} +0 -1
- package/src/hooks/useInView/useInView.test.ts +43 -0
- package/{dist/hooks/useInView/useInView.d.ts → src/hooks/useInView/useInView.ts} +15 -4
- package/src/hooks/useIntersectionObserver/index.ts +4 -0
- package/src/hooks/useIntersectionObserver/useIntersectionObserver.test.ts +75 -0
- package/src/hooks/useIntersectionObserver/useIntersectionObserver.ts +54 -0
- package/{dist/hooks/useIsMounted/index.d.ts → src/hooks/useIsMounted/index.ts} +0 -1
- package/src/hooks/useIsMounted/useIsMounted.test.ts +25 -0
- package/{dist/hooks/useIsMounted/useIsMounted.d.ts → src/hooks/useIsMounted/useIsMounted.ts} +14 -2
- package/{dist/hooks/useIsomorphicLayoutEffect/index.d.ts → src/hooks/useIsomorphicLayoutEffect/index.ts} +0 -1
- package/src/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.test.ts +19 -0
- package/{dist/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.d.ts → src/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.ts} +6 -3
- package/src/hooks/useLocalStorage/index.ts +4 -0
- package/src/hooks/useLocalStorage/useLocalStorage.test.ts +99 -0
- package/src/hooks/useLocalStorage/useLocalStorage.ts +109 -0
- package/{dist/hooks/useMediaQuery/index.d.ts → src/hooks/useMediaQuery/index.ts} +0 -1
- package/src/hooks/useMediaQuery/useMediaQuery.test.ts +63 -0
- package/src/hooks/useMediaQuery/useMediaQuery.ts +37 -0
- package/{dist/hooks/useNetworkStatus/index.d.ts → src/hooks/useNetworkStatus/index.ts} +0 -1
- package/src/hooks/useNetworkStatus/useNetworkStatus.test.ts +53 -0
- package/src/hooks/useNetworkStatus/useNetworkStatus.ts +33 -0
- package/{dist/hooks/usePageVisibility/index.d.ts → src/hooks/usePageVisibility/index.ts} +0 -1
- package/src/hooks/usePageVisibility/usePageVisibility.test.ts +21 -0
- package/src/hooks/usePageVisibility/usePageVisibility.ts +31 -0
- package/src/hooks/usePagination/index.ts +6 -0
- package/src/hooks/usePagination/usePagination.test.ts +139 -0
- package/src/hooks/usePagination/usePagination.ts +153 -0
- package/src/hooks/usePrefersColorScheme/index.ts +4 -0
- package/src/hooks/usePrefersColorScheme/usePrefersColorScheme.test.ts +53 -0
- package/{dist/hooks/usePrefersColorScheme/usePrefersColorScheme.d.ts → src/hooks/usePrefersColorScheme/usePrefersColorScheme.ts} +14 -2
- package/{dist/hooks/usePrefersReducedMotion/index.d.ts → src/hooks/usePrefersReducedMotion/index.ts} +0 -1
- package/src/hooks/usePrefersReducedMotion/usePrefersReducedMotion.test.ts +27 -0
- package/{dist/hooks/usePrefersReducedMotion/usePrefersReducedMotion.d.ts → src/hooks/usePrefersReducedMotion/usePrefersReducedMotion.ts} +7 -2
- package/src/hooks/useResizeObserver/index.ts +4 -0
- package/src/hooks/useResizeObserver/useResizeObserver.test.ts +68 -0
- package/src/hooks/useResizeObserver/useResizeObserver.ts +58 -0
- package/src/hooks/useSessionStorage/index.ts +4 -0
- package/src/hooks/useSessionStorage/useSessionStorage.test.ts +54 -0
- package/src/hooks/useSessionStorage/useSessionStorage.ts +84 -0
- package/{dist/hooks/useThrottledCallback/index.d.ts → src/hooks/useThrottledCallback/index.ts} +0 -1
- package/src/hooks/useThrottledCallback/useThrottledCallback.test.ts +75 -0
- package/{dist/hooks/useThrottledCallback/useThrottledCallback.d.ts → src/hooks/useThrottledCallback/useThrottledCallback.ts} +25 -2
- package/{dist/hooks/useToggle/index.d.ts → src/hooks/useToggle/index.ts} +0 -1
- package/src/hooks/useToggle/useToggle.test.ts +40 -0
- package/src/hooks/useToggle/useToggle.ts +22 -0
- package/{dist/hooks/useWindowSize/index.d.ts → src/hooks/useWindowSize/index.ts} +0 -1
- package/src/hooks/useWindowSize/useWindowSize.test.ts +23 -0
- package/src/hooks/useWindowSize/useWindowSize.ts +39 -0
- package/src/lib/utils.ts +25 -0
- package/src/ui/accordion/accordion-base.tsx +223 -0
- package/src/ui/accordion/accordion.test.tsx +146 -0
- package/src/ui/accordion/accordion.tsx +11 -0
- package/src/ui/accordion/animated/accordion-content-animated.tsx +46 -0
- package/src/ui/accordion/animated/accordion-root-animated.tsx +10 -0
- package/src/ui/accordion/animated/animations.ts +16 -0
- package/{dist/ui/accordion/animated/index.d.ts → src/ui/accordion/animated/index.ts} +2 -1
- package/{dist/ui/accordion/animated/types.d.ts → src/ui/accordion/animated/types.ts} +4 -3
- package/src/ui/accordion/index.ts +23 -0
- package/{dist/ui/accordion/types.d.ts → src/ui/accordion/types.ts} +30 -21
- package/src/ui/accordion/variants.ts +115 -0
- package/src/ui/alert/alert-base.tsx +157 -0
- package/src/ui/alert/alert.test.tsx +150 -0
- package/src/ui/alert/alert.tsx +9 -0
- package/src/ui/alert/animated/alert-animated.tsx +20 -0
- package/src/ui/alert/animated/animations.ts +20 -0
- package/src/ui/alert/animated/index.ts +3 -0
- package/src/ui/alert/animated/types.ts +16 -0
- package/src/ui/alert/index.ts +22 -0
- package/{dist/ui/alert/types.d.ts → src/ui/alert/types.ts} +18 -11
- package/src/ui/alert/variants.ts +74 -0
- package/src/ui/avatar/animated/animations.ts +11 -0
- package/src/ui/avatar/animated/avatar-animated.tsx +25 -0
- package/{dist/ui/avatar/animated/index.d.ts → src/ui/avatar/animated/index.ts} +3 -2
- package/{dist/ui/avatar/animated/types.d.ts → src/ui/avatar/animated/types.ts} +11 -3
- package/src/ui/avatar/avatar-base.tsx +184 -0
- package/src/ui/avatar/avatar.test.tsx +51 -0
- package/src/ui/avatar/avatar.tsx +11 -0
- package/src/ui/avatar/index.ts +16 -0
- package/{dist/ui/avatar/types.d.ts → src/ui/avatar/types.ts} +22 -11
- package/src/ui/avatar/variants.ts +52 -0
- package/src/ui/badge/animated/animations.ts +20 -0
- package/src/ui/badge/animated/badge-animated.tsx +28 -0
- package/{dist/ui/badge/animated/index.d.ts → src/ui/badge/animated/index.ts} +3 -2
- package/src/ui/badge/animated/types.ts +18 -0
- package/src/ui/badge/badge-base.tsx +53 -0
- package/src/ui/badge/badge.test.tsx +48 -0
- package/src/ui/badge/badge.tsx +9 -0
- package/{dist/ui/badge/index.d.ts → src/ui/badge/index.ts} +2 -1
- package/src/ui/badge/types.ts +25 -0
- package/src/ui/badge/variants.ts +85 -0
- package/src/ui/breadcrumb/breadcrumb.test.tsx +62 -0
- package/src/ui/breadcrumb/breadcrumb.tsx +135 -0
- package/src/ui/breadcrumb/index.ts +28 -0
- package/{dist/ui/breadcrumb/types.d.ts → src/ui/breadcrumb/types.ts} +18 -15
- package/src/ui/breadcrumb/variants.ts +53 -0
- package/src/ui/buttons/animated/animations.ts +34 -0
- package/src/ui/buttons/animated/button-animated.tsx +70 -0
- package/{dist/ui/buttons/animated/index.d.ts → src/ui/buttons/animated/index.ts} +2 -1
- package/src/ui/buttons/animated/types.ts +29 -0
- package/src/ui/buttons/button-base.tsx +59 -0
- package/src/ui/buttons/button.test.tsx +480 -0
- package/src/ui/buttons/button.tsx +9 -0
- package/{dist/ui/buttons/index.d.ts → src/ui/buttons/index.ts} +2 -1
- package/{dist/ui/buttons/types.d.ts → src/ui/buttons/types.ts} +10 -6
- package/src/ui/buttons/variants.ts +77 -0
- package/src/ui/card/animated/animations.ts +32 -0
- package/src/ui/card/animated/card-animated.tsx +28 -0
- package/{dist/ui/card/animated/index.d.ts → src/ui/card/animated/index.ts} +9 -2
- package/{dist/ui/card/animated/types.d.ts → src/ui/card/animated/types.ts} +4 -2
- package/src/ui/card/card-base.tsx +146 -0
- package/src/ui/card/card.test.tsx +79 -0
- package/src/ui/card/card.tsx +11 -0
- package/src/ui/card/index.ts +21 -0
- package/src/ui/card/types.ts +42 -0
- package/src/ui/card/variants.ts +122 -0
- package/src/ui/divider/animated/animations.ts +27 -0
- package/src/ui/divider/animated/divider-animated.tsx +24 -0
- package/{dist/ui/divider/animated/index.d.ts → src/ui/divider/animated/index.ts} +2 -1
- package/{dist/ui/divider/animated/types.d.ts → src/ui/divider/animated/types.ts} +13 -3
- package/src/ui/divider/divider-base.tsx +80 -0
- package/src/ui/divider/divider.tsx +9 -0
- package/src/ui/divider/index.ts +14 -0
- package/{dist/ui/divider/types.d.ts → src/ui/divider/types.ts} +11 -8
- package/src/ui/divider/variants.ts +98 -0
- package/src/ui/drawer/animated/animations.ts +39 -0
- package/src/ui/drawer/animated/drawer-content-animated.tsx +101 -0
- package/{dist/ui/drawer/animated/index.d.ts → src/ui/drawer/animated/index.ts} +11 -2
- package/src/ui/drawer/animated/types.ts +18 -0
- package/src/ui/drawer/drawer-base.tsx +259 -0
- package/src/ui/drawer/drawer.test.tsx +132 -0
- package/src/ui/drawer/drawer.tsx +11 -0
- package/src/ui/drawer/index.ts +21 -0
- package/src/ui/drawer/types.ts +39 -0
- package/src/ui/drawer/variants.ts +122 -0
- package/src/ui/dropdown/dropdown.test.tsx +114 -0
- package/src/ui/dropdown/dropdown.tsx +179 -0
- package/src/ui/dropdown/index.ts +15 -0
- package/src/ui/dropdown/types.ts +68 -0
- package/src/ui/dropdown/variants.ts +138 -0
- package/src/ui/empty-state/animated/animations.ts +19 -0
- package/src/ui/empty-state/animated/empty-state-animated.tsx +23 -0
- package/src/ui/empty-state/animated/index.ts +7 -0
- package/{dist/ui/empty-state/animated/types.d.ts → src/ui/empty-state/animated/types.ts} +17 -5
- package/src/ui/empty-state/empty-state-base.tsx +114 -0
- package/src/ui/empty-state/empty-state.tsx +9 -0
- package/{dist/ui/empty-state/index.d.ts → src/ui/empty-state/index.ts} +7 -2
- package/{dist/ui/empty-state/types.d.ts → src/ui/empty-state/types.ts} +10 -6
- package/src/ui/empty-state/variants.ts +51 -0
- package/src/ui/file-upload/file-upload.test.tsx +36 -0
- package/src/ui/file-upload/file-upload.tsx +119 -0
- package/{dist/ui/file-upload/index.d.ts → src/ui/file-upload/index.ts} +2 -1
- package/{dist/ui/file-upload/types.d.ts → src/ui/file-upload/types.ts} +6 -3
- package/src/ui/file-upload/variants.ts +29 -0
- package/src/ui/inputs/animated/animations.ts +36 -0
- package/{dist/ui/inputs/animated/index.d.ts → src/ui/inputs/animated/index.ts} +2 -1
- package/src/ui/inputs/animated/input-animated.tsx +124 -0
- package/src/ui/inputs/animated/types.ts +40 -0
- package/{dist/ui/inputs/index.d.ts → src/ui/inputs/index.ts} +2 -1
- package/src/ui/inputs/input-base.tsx +114 -0
- package/src/ui/inputs/input.test.tsx +414 -0
- package/src/ui/inputs/input.tsx +8 -0
- package/src/ui/inputs/types.ts +18 -0
- package/src/ui/inputs/variants.ts +316 -0
- package/src/ui/modal/animated/animations.ts +29 -0
- package/{dist/ui/modal/animated/index.d.ts → src/ui/modal/animated/index.ts} +2 -1
- package/src/ui/modal/animated/modal-content-animated.tsx +96 -0
- package/src/ui/modal/animated/types.ts +23 -0
- package/src/ui/modal/index.ts +21 -0
- package/src/ui/modal/modal-base.tsx +279 -0
- package/src/ui/modal/modal.test.tsx +129 -0
- package/src/ui/modal/modal.tsx +8 -0
- package/src/ui/modal/types.ts +31 -0
- package/src/ui/modal/variants.ts +109 -0
- package/src/ui/pagination/index.ts +13 -0
- package/src/ui/pagination/pagination.test.tsx +165 -0
- package/src/ui/pagination/pagination.tsx +237 -0
- package/{dist/ui/pagination/types.d.ts → src/ui/pagination/types.ts} +37 -27
- package/src/ui/pagination/variants.ts +97 -0
- package/src/ui/progress/animated/animations.ts +9 -0
- package/src/ui/progress/animated/index.ts +17 -0
- package/src/ui/progress/animated/progress-animated.tsx +133 -0
- package/{dist/ui/progress/animated/types.d.ts → src/ui/progress/animated/types.ts} +20 -8
- package/{dist/ui/progress/index.d.ts → src/ui/progress/index.ts} +7 -2
- package/src/ui/progress/progress-base.tsx +151 -0
- package/src/ui/progress/progress.test.tsx +84 -0
- package/src/ui/progress/progress.tsx +12 -0
- package/src/ui/progress/types.ts +33 -0
- package/src/ui/progress/variants.ts +105 -0
- package/src/ui/select/index.ts +25 -0
- package/src/ui/select/select.test.tsx +128 -0
- package/src/ui/select/select.tsx +221 -0
- package/src/ui/select/types.ts +77 -0
- package/src/ui/select/variants.ts +163 -0
- package/src/ui/skeleton/animated/animations.ts +15 -0
- package/src/ui/skeleton/animated/index.ts +20 -0
- package/src/ui/skeleton/animated/skeleton-animated.tsx +119 -0
- package/{dist/ui/skeleton/animated/types.d.ts → src/ui/skeleton/animated/types.ts} +30 -11
- package/src/ui/skeleton/index.ts +24 -0
- package/src/ui/skeleton/skeleton-base.tsx +288 -0
- package/src/ui/skeleton/skeleton.tsx +8 -0
- package/{dist/ui/skeleton/types.d.ts → src/ui/skeleton/types.ts} +15 -7
- package/src/ui/skeleton/variants.ts +254 -0
- package/src/ui/slider/index.ts +22 -0
- package/src/ui/slider/slider.test.tsx +94 -0
- package/src/ui/slider/slider.tsx +728 -0
- package/src/ui/slider/types.ts +66 -0
- package/src/ui/slider/variants.ts +81 -0
- package/{dist/ui/spinner/animated/index.d.ts → src/ui/spinner/animated/index.ts} +2 -1
- package/src/ui/spinner/animated/spinner.test.tsx +41 -0
- package/src/ui/spinner/animated/spinner.tsx +143 -0
- package/{dist/ui/spinner/animated/types.d.ts → src/ui/spinner/animated/types.ts} +6 -4
- package/src/ui/spinner/animated/variants.ts +50 -0
- package/src/ui/stepper/index.ts +22 -0
- package/src/ui/stepper/stepper.test.tsx +183 -0
- package/src/ui/stepper/stepper.tsx +172 -0
- package/{dist/ui/stepper/types.d.ts → src/ui/stepper/types.ts} +18 -11
- package/src/ui/stepper/variants.ts +69 -0
- package/src/ui/table/animated/animations.ts +9 -0
- package/src/ui/table/animated/index.ts +15 -0
- package/src/ui/table/animated/table-animated.tsx +15 -0
- package/src/ui/table/animated/types.ts +16 -0
- package/src/ui/table/index.ts +22 -0
- package/src/ui/table/table-base.tsx +197 -0
- package/src/ui/table/table.tsx +13 -0
- package/src/ui/table/types.ts +47 -0
- package/src/ui/table/variants.ts +105 -0
- package/src/ui/tabs/animated/animations.ts +48 -0
- package/{dist/ui/tabs/animated/index.d.ts → src/ui/tabs/animated/index.ts} +6 -2
- package/src/ui/tabs/animated/tabs-content-animated.tsx +46 -0
- package/src/ui/tabs/animated/types.ts +24 -0
- package/{dist/ui/tabs/index.d.ts → src/ui/tabs/index.ts} +8 -2
- package/src/ui/tabs/tabs-base.tsx +185 -0
- package/src/ui/tabs/tabs.test.tsx +53 -0
- package/{dist/ui/tabs/tabs.d.ts → src/ui/tabs/tabs.tsx} +1 -1
- package/src/ui/tabs/types.ts +88 -0
- package/src/ui/tabs/variants.ts +70 -0
- package/src/ui/toast/animated/animations.ts +17 -0
- package/src/ui/toast/animated/index.ts +9 -0
- package/src/ui/toast/animated/toast-animated.tsx +96 -0
- package/src/ui/toast/animated/types.ts +13 -0
- package/src/ui/toast/index.ts +26 -0
- package/src/ui/toast/toast-base.tsx +231 -0
- package/src/ui/toast/toast.test.tsx +102 -0
- package/src/ui/toast/toast.tsx +13 -0
- package/{dist/ui/toast/types.d.ts → src/ui/toast/types.ts} +35 -23
- package/src/ui/toast/variants.ts +73 -0
- package/src/ui/toggle/animated/animations.ts +9 -0
- package/src/ui/toggle/animated/index.ts +7 -0
- package/src/ui/toggle/animated/toggle-animated.tsx +76 -0
- package/{dist/ui/toggle/animated/types.d.ts → src/ui/toggle/animated/types.ts} +6 -2
- package/{dist/ui/toggle/index.d.ts → src/ui/toggle/index.ts} +2 -1
- package/src/ui/toggle/toggle-base.tsx +70 -0
- package/src/ui/toggle/toggle.test.tsx +44 -0
- package/src/ui/toggle/toggle.tsx +9 -0
- package/{dist/ui/toggle/types.d.ts → src/ui/toggle/types.ts} +7 -3
- package/src/ui/toggle/variants.ts +84 -0
- package/src/ui/tooltip/animated/animations.ts +16 -0
- package/src/ui/tooltip/animated/index.ts +10 -0
- package/src/ui/tooltip/animated/tooltip-content-animated.tsx +47 -0
- package/src/ui/tooltip/animated/types.ts +19 -0
- package/src/ui/tooltip/index.ts +17 -0
- package/src/ui/tooltip/tooltip-base.tsx +152 -0
- package/src/ui/tooltip/tooltip.test.tsx +84 -0
- package/src/ui/tooltip/tooltip.tsx +8 -0
- package/src/ui/tooltip/types.ts +57 -0
- package/src/ui/tooltip/variants.ts +61 -0
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/hooks/useBodyScrollLock/index.d.ts.map +0 -1
- package/dist/hooks/useBodyScrollLock/useBodyScrollLock.d.ts +0 -13
- package/dist/hooks/useBodyScrollLock/useBodyScrollLock.d.ts.map +0 -1
- package/dist/hooks/useClickOutside/index.d.ts +0 -2
- package/dist/hooks/useClickOutside/index.d.ts.map +0 -1
- package/dist/hooks/useClickOutside/useClickOutside.d.ts +0 -22
- package/dist/hooks/useClickOutside/useClickOutside.d.ts.map +0 -1
- package/dist/hooks/useClipboard/index.d.ts.map +0 -1
- package/dist/hooks/useClipboard/useClipboard.d.ts +0 -21
- package/dist/hooks/useClipboard/useClipboard.d.ts.map +0 -1
- package/dist/hooks/useControllableState/index.d.ts +0 -2
- package/dist/hooks/useControllableState/index.d.ts.map +0 -1
- package/dist/hooks/useControllableState/useControllableState.d.ts +0 -21
- package/dist/hooks/useControllableState/useControllableState.d.ts.map +0 -1
- package/dist/hooks/useDebouncedValue/index.d.ts.map +0 -1
- package/dist/hooks/useDebouncedValue/useDebouncedValue.d.ts.map +0 -1
- package/dist/hooks/useDisclosure/index.d.ts +0 -2
- package/dist/hooks/useDisclosure/index.d.ts.map +0 -1
- package/dist/hooks/useDisclosure/useDisclosure.d.ts +0 -24
- package/dist/hooks/useDisclosure/useDisclosure.d.ts.map +0 -1
- package/dist/hooks/useDocumentTitle/index.d.ts +0 -2
- package/dist/hooks/useDocumentTitle/index.d.ts.map +0 -1
- package/dist/hooks/useDocumentTitle/useDocumentTitle.d.ts +0 -18
- package/dist/hooks/useDocumentTitle/useDocumentTitle.d.ts.map +0 -1
- package/dist/hooks/useFocusManagement/index.d.ts.map +0 -1
- package/dist/hooks/useFocusManagement/useFocusManagement.d.ts +0 -22
- package/dist/hooks/useFocusManagement/useFocusManagement.d.ts.map +0 -1
- package/dist/hooks/useHover/index.d.ts.map +0 -1
- package/dist/hooks/useHover/useHover.d.ts +0 -13
- package/dist/hooks/useHover/useHover.d.ts.map +0 -1
- package/dist/hooks/useInView/index.d.ts.map +0 -1
- package/dist/hooks/useInView/useInView.d.ts.map +0 -1
- package/dist/hooks/useIntersectionObserver/index.d.ts +0 -2
- package/dist/hooks/useIntersectionObserver/index.d.ts.map +0 -1
- package/dist/hooks/useIntersectionObserver/useIntersectionObserver.d.ts +0 -17
- package/dist/hooks/useIntersectionObserver/useIntersectionObserver.d.ts.map +0 -1
- package/dist/hooks/useIsMounted/index.d.ts.map +0 -1
- package/dist/hooks/useIsMounted/useIsMounted.d.ts.map +0 -1
- package/dist/hooks/useIsomorphicLayoutEffect/index.d.ts.map +0 -1
- package/dist/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.d.ts.map +0 -1
- package/dist/hooks/useLocalStorage/index.d.ts +0 -2
- package/dist/hooks/useLocalStorage/index.d.ts.map +0 -1
- package/dist/hooks/useLocalStorage/useLocalStorage.d.ts +0 -21
- package/dist/hooks/useLocalStorage/useLocalStorage.d.ts.map +0 -1
- package/dist/hooks/useMediaQuery/index.d.ts.map +0 -1
- package/dist/hooks/useMediaQuery/useMediaQuery.d.ts +0 -12
- package/dist/hooks/useMediaQuery/useMediaQuery.d.ts.map +0 -1
- package/dist/hooks/useNetworkStatus/index.d.ts.map +0 -1
- package/dist/hooks/useNetworkStatus/useNetworkStatus.d.ts +0 -9
- package/dist/hooks/useNetworkStatus/useNetworkStatus.d.ts.map +0 -1
- package/dist/hooks/usePageVisibility/index.d.ts.map +0 -1
- package/dist/hooks/usePageVisibility/usePageVisibility.d.ts +0 -9
- package/dist/hooks/usePageVisibility/usePageVisibility.d.ts.map +0 -1
- package/dist/hooks/usePagination/index.d.ts +0 -2
- package/dist/hooks/usePagination/index.d.ts.map +0 -1
- package/dist/hooks/usePagination/usePagination.d.ts +0 -30
- package/dist/hooks/usePagination/usePagination.d.ts.map +0 -1
- package/dist/hooks/usePrefersColorScheme/index.d.ts +0 -2
- package/dist/hooks/usePrefersColorScheme/index.d.ts.map +0 -1
- package/dist/hooks/usePrefersColorScheme/usePrefersColorScheme.d.ts.map +0 -1
- package/dist/hooks/usePrefersReducedMotion/index.d.ts.map +0 -1
- package/dist/hooks/usePrefersReducedMotion/usePrefersReducedMotion.d.ts.map +0 -1
- package/dist/hooks/useResizeObserver/index.d.ts +0 -2
- package/dist/hooks/useResizeObserver/index.d.ts.map +0 -1
- package/dist/hooks/useResizeObserver/useResizeObserver.d.ts +0 -21
- package/dist/hooks/useResizeObserver/useResizeObserver.d.ts.map +0 -1
- package/dist/hooks/useSessionStorage/index.d.ts +0 -2
- package/dist/hooks/useSessionStorage/index.d.ts.map +0 -1
- package/dist/hooks/useSessionStorage/useSessionStorage.d.ts +0 -21
- package/dist/hooks/useSessionStorage/useSessionStorage.d.ts.map +0 -1
- package/dist/hooks/useThrottledCallback/index.d.ts.map +0 -1
- package/dist/hooks/useThrottledCallback/useThrottledCallback.d.ts.map +0 -1
- package/dist/hooks/useToggle/index.d.ts.map +0 -1
- package/dist/hooks/useToggle/useToggle.d.ts +0 -8
- package/dist/hooks/useToggle/useToggle.d.ts.map +0 -1
- package/dist/hooks/useWindowSize/index.d.ts.map +0 -1
- package/dist/hooks/useWindowSize/useWindowSize.d.ts +0 -13
- package/dist/hooks/useWindowSize/useWindowSize.d.ts.map +0 -1
- package/dist/lib/utils.d.ts +0 -6
- package/dist/lib/utils.d.ts.map +0 -1
- package/dist/ui/accordion/accordion-base.d.ts +0 -20
- package/dist/ui/accordion/accordion-base.d.ts.map +0 -1
- package/dist/ui/accordion/accordion.d.ts +0 -8
- package/dist/ui/accordion/accordion.d.ts.map +0 -1
- package/dist/ui/accordion/animated/accordion-content-animated.d.ts +0 -6
- package/dist/ui/accordion/animated/accordion-content-animated.d.ts.map +0 -1
- package/dist/ui/accordion/animated/accordion-root-animated.d.ts +0 -6
- package/dist/ui/accordion/animated/accordion-root-animated.d.ts.map +0 -1
- package/dist/ui/accordion/animated/animations.d.ts +0 -6
- package/dist/ui/accordion/animated/animations.d.ts.map +0 -1
- package/dist/ui/accordion/animated/index.d.ts.map +0 -1
- package/dist/ui/accordion/animated/types.d.ts.map +0 -1
- package/dist/ui/accordion/index.d.ts +0 -5
- package/dist/ui/accordion/index.d.ts.map +0 -1
- package/dist/ui/accordion/types.d.ts.map +0 -1
- package/dist/ui/accordion/variants.d.ts +0 -14
- package/dist/ui/accordion/variants.d.ts.map +0 -1
- package/dist/ui/alert/alert-base.d.ts +0 -28
- package/dist/ui/alert/alert-base.d.ts.map +0 -1
- package/dist/ui/alert/alert.d.ts +0 -6
- package/dist/ui/alert/alert.d.ts.map +0 -1
- package/dist/ui/alert/animated/alert-animated.d.ts +0 -3
- package/dist/ui/alert/animated/alert-animated.d.ts.map +0 -1
- package/dist/ui/alert/animated/animations.d.ts +0 -3
- package/dist/ui/alert/animated/animations.d.ts.map +0 -1
- package/dist/ui/alert/animated/index.d.ts +0 -4
- package/dist/ui/alert/animated/index.d.ts.map +0 -1
- package/dist/ui/alert/animated/types.d.ts +0 -8
- package/dist/ui/alert/animated/types.d.ts.map +0 -1
- package/dist/ui/alert/index.d.ts +0 -5
- package/dist/ui/alert/index.d.ts.map +0 -1
- package/dist/ui/alert/types.d.ts.map +0 -1
- package/dist/ui/alert/variants.d.ts +0 -11
- package/dist/ui/alert/variants.d.ts.map +0 -1
- package/dist/ui/avatar/animated/animations.d.ts +0 -3
- package/dist/ui/avatar/animated/animations.d.ts.map +0 -1
- package/dist/ui/avatar/animated/avatar-animated.d.ts +0 -6
- package/dist/ui/avatar/animated/avatar-animated.d.ts.map +0 -1
- package/dist/ui/avatar/animated/index.d.ts.map +0 -1
- package/dist/ui/avatar/animated/types.d.ts.map +0 -1
- package/dist/ui/avatar/avatar-base.d.ts +0 -25
- package/dist/ui/avatar/avatar-base.d.ts.map +0 -1
- package/dist/ui/avatar/avatar.d.ts +0 -8
- package/dist/ui/avatar/avatar.d.ts.map +0 -1
- package/dist/ui/avatar/index.d.ts +0 -5
- package/dist/ui/avatar/index.d.ts.map +0 -1
- package/dist/ui/avatar/types.d.ts.map +0 -1
- package/dist/ui/avatar/variants.d.ts +0 -8
- package/dist/ui/avatar/variants.d.ts.map +0 -1
- package/dist/ui/badge/animated/animations.d.ts +0 -3
- package/dist/ui/badge/animated/animations.d.ts.map +0 -1
- package/dist/ui/badge/animated/badge-animated.d.ts +0 -6
- package/dist/ui/badge/animated/badge-animated.d.ts.map +0 -1
- package/dist/ui/badge/animated/index.d.ts.map +0 -1
- package/dist/ui/badge/animated/types.d.ts +0 -10
- package/dist/ui/badge/animated/types.d.ts.map +0 -1
- package/dist/ui/badge/badge-base.d.ts +0 -6
- package/dist/ui/badge/badge-base.d.ts.map +0 -1
- package/dist/ui/badge/badge.d.ts +0 -6
- package/dist/ui/badge/badge.d.ts.map +0 -1
- package/dist/ui/badge/index.d.ts.map +0 -1
- package/dist/ui/badge/types.d.ts +0 -17
- package/dist/ui/badge/types.d.ts.map +0 -1
- package/dist/ui/badge/variants.d.ts +0 -40
- package/dist/ui/badge/variants.d.ts.map +0 -1
- package/dist/ui/breadcrumb/breadcrumb.d.ts +0 -33
- package/dist/ui/breadcrumb/breadcrumb.d.ts.map +0 -1
- package/dist/ui/breadcrumb/index.d.ts +0 -4
- package/dist/ui/breadcrumb/index.d.ts.map +0 -1
- package/dist/ui/breadcrumb/types.d.ts.map +0 -1
- package/dist/ui/breadcrumb/variants.d.ts +0 -11
- package/dist/ui/breadcrumb/variants.d.ts.map +0 -1
- package/dist/ui/buttons/animated/animations.d.ts +0 -3
- package/dist/ui/buttons/animated/animations.d.ts.map +0 -1
- package/dist/ui/buttons/animated/button-animated.d.ts +0 -6
- package/dist/ui/buttons/animated/button-animated.d.ts.map +0 -1
- package/dist/ui/buttons/animated/index.d.ts.map +0 -1
- package/dist/ui/buttons/animated/types.d.ts +0 -16
- package/dist/ui/buttons/animated/types.d.ts.map +0 -1
- package/dist/ui/buttons/button-base.d.ts +0 -6
- package/dist/ui/buttons/button-base.d.ts.map +0 -1
- package/dist/ui/buttons/button.d.ts +0 -6
- package/dist/ui/buttons/button.d.ts.map +0 -1
- package/dist/ui/buttons/index.d.ts.map +0 -1
- package/dist/ui/buttons/types.d.ts.map +0 -1
- package/dist/ui/buttons/variants.d.ts +0 -5
- package/dist/ui/buttons/variants.d.ts.map +0 -1
- package/dist/ui/card/animated/animations.d.ts +0 -7
- package/dist/ui/card/animated/animations.d.ts.map +0 -1
- package/dist/ui/card/animated/card-animated.d.ts +0 -6
- package/dist/ui/card/animated/card-animated.d.ts.map +0 -1
- package/dist/ui/card/animated/index.d.ts.map +0 -1
- package/dist/ui/card/animated/types.d.ts.map +0 -1
- package/dist/ui/card/card-base.d.ts +0 -26
- package/dist/ui/card/card-base.d.ts.map +0 -1
- package/dist/ui/card/card.d.ts +0 -6
- package/dist/ui/card/card.d.ts.map +0 -1
- package/dist/ui/card/index.d.ts +0 -5
- package/dist/ui/card/index.d.ts.map +0 -1
- package/dist/ui/card/types.d.ts +0 -29
- package/dist/ui/card/types.d.ts.map +0 -1
- package/dist/ui/card/variants.d.ts +0 -18
- package/dist/ui/card/variants.d.ts.map +0 -1
- package/dist/ui/divider/animated/animations.d.ts +0 -6
- package/dist/ui/divider/animated/animations.d.ts.map +0 -1
- package/dist/ui/divider/animated/divider-animated.d.ts +0 -6
- package/dist/ui/divider/animated/divider-animated.d.ts.map +0 -1
- package/dist/ui/divider/animated/index.d.ts.map +0 -1
- package/dist/ui/divider/animated/types.d.ts.map +0 -1
- package/dist/ui/divider/divider-base.d.ts +0 -6
- package/dist/ui/divider/divider-base.d.ts.map +0 -1
- package/dist/ui/divider/divider.d.ts +0 -6
- package/dist/ui/divider/divider.d.ts.map +0 -1
- package/dist/ui/divider/index.d.ts +0 -4
- package/dist/ui/divider/index.d.ts.map +0 -1
- package/dist/ui/divider/types.d.ts.map +0 -1
- package/dist/ui/divider/variants.d.ts +0 -14
- package/dist/ui/divider/variants.d.ts.map +0 -1
- package/dist/ui/drawer/animated/animations.d.ts +0 -3
- package/dist/ui/drawer/animated/animations.d.ts.map +0 -1
- package/dist/ui/drawer/animated/drawer-content-animated.d.ts +0 -6
- package/dist/ui/drawer/animated/drawer-content-animated.d.ts.map +0 -1
- package/dist/ui/drawer/animated/index.d.ts.map +0 -1
- package/dist/ui/drawer/animated/types.d.ts +0 -9
- package/dist/ui/drawer/animated/types.d.ts.map +0 -1
- package/dist/ui/drawer/drawer-base.d.ts +0 -35
- package/dist/ui/drawer/drawer-base.d.ts.map +0 -1
- package/dist/ui/drawer/drawer.d.ts +0 -2
- package/dist/ui/drawer/drawer.d.ts.map +0 -1
- package/dist/ui/drawer/index.d.ts +0 -4
- package/dist/ui/drawer/index.d.ts.map +0 -1
- package/dist/ui/drawer/types.d.ts +0 -33
- package/dist/ui/drawer/types.d.ts.map +0 -1
- package/dist/ui/drawer/variants.d.ts +0 -10
- package/dist/ui/drawer/variants.d.ts.map +0 -1
- package/dist/ui/dropdown/dropdown.d.ts +0 -6
- package/dist/ui/dropdown/dropdown.d.ts.map +0 -1
- package/dist/ui/dropdown/index.d.ts +0 -4
- package/dist/ui/dropdown/index.d.ts.map +0 -1
- package/dist/ui/dropdown/types.d.ts +0 -38
- package/dist/ui/dropdown/types.d.ts.map +0 -1
- package/dist/ui/dropdown/variants.d.ts +0 -12
- package/dist/ui/dropdown/variants.d.ts.map +0 -1
- package/dist/ui/empty-state/animated/animations.d.ts +0 -3
- package/dist/ui/empty-state/animated/animations.d.ts.map +0 -1
- package/dist/ui/empty-state/animated/empty-state-animated.d.ts +0 -6
- package/dist/ui/empty-state/animated/empty-state-animated.d.ts.map +0 -1
- package/dist/ui/empty-state/animated/index.d.ts +0 -4
- package/dist/ui/empty-state/animated/index.d.ts.map +0 -1
- package/dist/ui/empty-state/animated/types.d.ts.map +0 -1
- package/dist/ui/empty-state/empty-state-base.d.ts +0 -23
- package/dist/ui/empty-state/empty-state-base.d.ts.map +0 -1
- package/dist/ui/empty-state/empty-state.d.ts +0 -6
- package/dist/ui/empty-state/empty-state.d.ts.map +0 -1
- package/dist/ui/empty-state/index.d.ts.map +0 -1
- package/dist/ui/empty-state/types.d.ts.map +0 -1
- package/dist/ui/empty-state/variants.d.ts +0 -12
- package/dist/ui/empty-state/variants.d.ts.map +0 -1
- package/dist/ui/file-upload/file-upload.d.ts +0 -8
- package/dist/ui/file-upload/file-upload.d.ts.map +0 -1
- package/dist/ui/file-upload/index.d.ts.map +0 -1
- package/dist/ui/file-upload/types.d.ts.map +0 -1
- package/dist/ui/file-upload/variants.d.ts +0 -4
- package/dist/ui/file-upload/variants.d.ts.map +0 -1
- package/dist/ui/inputs/animated/animations.d.ts +0 -3
- package/dist/ui/inputs/animated/animations.d.ts.map +0 -1
- package/dist/ui/inputs/animated/index.d.ts.map +0 -1
- package/dist/ui/inputs/animated/input-animated.d.ts +0 -6
- package/dist/ui/inputs/animated/input-animated.d.ts.map +0 -1
- package/dist/ui/inputs/animated/types.d.ts +0 -16
- package/dist/ui/inputs/animated/types.d.ts.map +0 -1
- package/dist/ui/inputs/index.d.ts.map +0 -1
- package/dist/ui/inputs/input-base.d.ts +0 -6
- package/dist/ui/inputs/input-base.d.ts.map +0 -1
- package/dist/ui/inputs/input.d.ts +0 -6
- package/dist/ui/inputs/input.d.ts.map +0 -1
- package/dist/ui/inputs/types.d.ts +0 -12
- package/dist/ui/inputs/types.d.ts.map +0 -1
- package/dist/ui/inputs/variants.d.ts +0 -7
- package/dist/ui/inputs/variants.d.ts.map +0 -1
- package/dist/ui/modal/animated/animations.d.ts +0 -3
- package/dist/ui/modal/animated/animations.d.ts.map +0 -1
- package/dist/ui/modal/animated/index.d.ts.map +0 -1
- package/dist/ui/modal/animated/modal-content-animated.d.ts +0 -6
- package/dist/ui/modal/animated/modal-content-animated.d.ts.map +0 -1
- package/dist/ui/modal/animated/types.d.ts +0 -9
- package/dist/ui/modal/animated/types.d.ts.map +0 -1
- package/dist/ui/modal/index.d.ts +0 -5
- package/dist/ui/modal/index.d.ts.map +0 -1
- package/dist/ui/modal/modal-base.d.ts +0 -47
- package/dist/ui/modal/modal-base.d.ts.map +0 -1
- package/dist/ui/modal/modal.d.ts +0 -6
- package/dist/ui/modal/modal.d.ts.map +0 -1
- package/dist/ui/modal/types.d.ts +0 -26
- package/dist/ui/modal/types.d.ts.map +0 -1
- package/dist/ui/modal/variants.d.ts +0 -10
- package/dist/ui/modal/variants.d.ts.map +0 -1
- package/dist/ui/pagination/index.d.ts +0 -5
- package/dist/ui/pagination/index.d.ts.map +0 -1
- package/dist/ui/pagination/pagination.d.ts +0 -17
- package/dist/ui/pagination/pagination.d.ts.map +0 -1
- package/dist/ui/pagination/types.d.ts.map +0 -1
- package/dist/ui/pagination/variants.d.ts +0 -12
- package/dist/ui/pagination/variants.d.ts.map +0 -1
- package/dist/ui/progress/animated/animations.d.ts +0 -3
- package/dist/ui/progress/animated/animations.d.ts.map +0 -1
- package/dist/ui/progress/animated/index.d.ts +0 -4
- package/dist/ui/progress/animated/index.d.ts.map +0 -1
- package/dist/ui/progress/animated/progress-animated.d.ts +0 -16
- package/dist/ui/progress/animated/progress-animated.d.ts.map +0 -1
- package/dist/ui/progress/animated/types.d.ts.map +0 -1
- package/dist/ui/progress/index.d.ts.map +0 -1
- package/dist/ui/progress/progress-base.d.ts +0 -23
- package/dist/ui/progress/progress-base.d.ts.map +0 -1
- package/dist/ui/progress/progress.d.ts +0 -6
- package/dist/ui/progress/progress.d.ts.map +0 -1
- package/dist/ui/progress/types.d.ts +0 -28
- package/dist/ui/progress/types.d.ts.map +0 -1
- package/dist/ui/progress/variants.d.ts +0 -15
- package/dist/ui/progress/variants.d.ts.map +0 -1
- package/dist/ui/select/index.d.ts +0 -4
- package/dist/ui/select/index.d.ts.map +0 -1
- package/dist/ui/select/select.d.ts +0 -10
- package/dist/ui/select/select.d.ts.map +0 -1
- package/dist/ui/select/types.d.ts +0 -48
- package/dist/ui/select/types.d.ts.map +0 -1
- package/dist/ui/select/variants.d.ts +0 -14
- package/dist/ui/select/variants.d.ts.map +0 -1
- package/dist/ui/skeleton/animated/animations.d.ts +0 -3
- package/dist/ui/skeleton/animated/animations.d.ts.map +0 -1
- package/dist/ui/skeleton/animated/index.d.ts +0 -4
- package/dist/ui/skeleton/animated/index.d.ts.map +0 -1
- package/dist/ui/skeleton/animated/skeleton-animated.d.ts +0 -22
- package/dist/ui/skeleton/animated/skeleton-animated.d.ts.map +0 -1
- package/dist/ui/skeleton/animated/types.d.ts.map +0 -1
- package/dist/ui/skeleton/index.d.ts +0 -5
- package/dist/ui/skeleton/index.d.ts.map +0 -1
- package/dist/ui/skeleton/skeleton-base.d.ts +0 -24
- package/dist/ui/skeleton/skeleton-base.d.ts.map +0 -1
- package/dist/ui/skeleton/skeleton.d.ts +0 -2
- package/dist/ui/skeleton/skeleton.d.ts.map +0 -1
- package/dist/ui/skeleton/types.d.ts.map +0 -1
- package/dist/ui/skeleton/variants.d.ts +0 -38
- package/dist/ui/skeleton/variants.d.ts.map +0 -1
- package/dist/ui/slider/index.d.ts +0 -4
- package/dist/ui/slider/index.d.ts.map +0 -1
- package/dist/ui/slider/slider.d.ts +0 -33
- package/dist/ui/slider/slider.d.ts.map +0 -1
- package/dist/ui/slider/types.d.ts +0 -49
- package/dist/ui/slider/types.d.ts.map +0 -1
- package/dist/ui/slider/variants.d.ts +0 -13
- package/dist/ui/slider/variants.d.ts.map +0 -1
- package/dist/ui/spinner/animated/index.d.ts.map +0 -1
- package/dist/ui/spinner/animated/spinner.d.ts +0 -6
- package/dist/ui/spinner/animated/spinner.d.ts.map +0 -1
- package/dist/ui/spinner/animated/types.d.ts.map +0 -1
- package/dist/ui/spinner/animated/variants.d.ts +0 -6
- package/dist/ui/spinner/animated/variants.d.ts.map +0 -1
- package/dist/ui/stepper/index.d.ts +0 -4
- package/dist/ui/stepper/index.d.ts.map +0 -1
- package/dist/ui/stepper/stepper.d.ts +0 -33
- package/dist/ui/stepper/stepper.d.ts.map +0 -1
- package/dist/ui/stepper/types.d.ts.map +0 -1
- package/dist/ui/stepper/variants.d.ts +0 -11
- package/dist/ui/stepper/variants.d.ts.map +0 -1
- package/dist/ui/table/animated/animations.d.ts +0 -3
- package/dist/ui/table/animated/animations.d.ts.map +0 -1
- package/dist/ui/table/animated/index.d.ts +0 -5
- package/dist/ui/table/animated/index.d.ts.map +0 -1
- package/dist/ui/table/animated/table-animated.d.ts +0 -5
- package/dist/ui/table/animated/table-animated.d.ts.map +0 -1
- package/dist/ui/table/animated/types.d.ts +0 -8
- package/dist/ui/table/animated/types.d.ts.map +0 -1
- package/dist/ui/table/index.d.ts +0 -4
- package/dist/ui/table/index.d.ts.map +0 -1
- package/dist/ui/table/table-base.d.ts +0 -38
- package/dist/ui/table/table-base.d.ts.map +0 -1
- package/dist/ui/table/table.d.ts +0 -2
- package/dist/ui/table/table.d.ts.map +0 -1
- package/dist/ui/table/types.d.ts +0 -33
- package/dist/ui/table/types.d.ts.map +0 -1
- package/dist/ui/table/variants.d.ts +0 -14
- package/dist/ui/table/variants.d.ts.map +0 -1
- package/dist/ui/tabs/animated/animations.d.ts +0 -5
- package/dist/ui/tabs/animated/animations.d.ts.map +0 -1
- package/dist/ui/tabs/animated/index.d.ts.map +0 -1
- package/dist/ui/tabs/animated/tabs-content-animated.d.ts +0 -6
- package/dist/ui/tabs/animated/tabs-content-animated.d.ts.map +0 -1
- package/dist/ui/tabs/animated/types.d.ts +0 -14
- package/dist/ui/tabs/animated/types.d.ts.map +0 -1
- package/dist/ui/tabs/index.d.ts.map +0 -1
- package/dist/ui/tabs/tabs-base.d.ts +0 -8
- package/dist/ui/tabs/tabs-base.d.ts.map +0 -1
- package/dist/ui/tabs/tabs.d.ts.map +0 -1
- package/dist/ui/tabs/types.d.ts +0 -40
- package/dist/ui/tabs/types.d.ts.map +0 -1
- package/dist/ui/tabs/variants.d.ts +0 -11
- package/dist/ui/tabs/variants.d.ts.map +0 -1
- package/dist/ui/toast/animated/animations.d.ts +0 -3
- package/dist/ui/toast/animated/animations.d.ts.map +0 -1
- package/dist/ui/toast/animated/index.d.ts +0 -4
- package/dist/ui/toast/animated/index.d.ts.map +0 -1
- package/dist/ui/toast/animated/toast-animated.d.ts +0 -10
- package/dist/ui/toast/animated/toast-animated.d.ts.map +0 -1
- package/dist/ui/toast/animated/types.d.ts +0 -5
- package/dist/ui/toast/animated/types.d.ts.map +0 -1
- package/dist/ui/toast/index.d.ts +0 -4
- package/dist/ui/toast/index.d.ts.map +0 -1
- package/dist/ui/toast/toast-base.d.ts +0 -35
- package/dist/ui/toast/toast-base.d.ts.map +0 -1
- package/dist/ui/toast/toast.d.ts +0 -2
- package/dist/ui/toast/toast.d.ts.map +0 -1
- package/dist/ui/toast/types.d.ts.map +0 -1
- package/dist/ui/toast/variants.d.ts +0 -8
- package/dist/ui/toast/variants.d.ts.map +0 -1
- package/dist/ui/toggle/animated/animations.d.ts +0 -3
- package/dist/ui/toggle/animated/animations.d.ts.map +0 -1
- package/dist/ui/toggle/animated/index.d.ts +0 -4
- package/dist/ui/toggle/animated/index.d.ts.map +0 -1
- package/dist/ui/toggle/animated/toggle-animated.d.ts +0 -6
- package/dist/ui/toggle/animated/toggle-animated.d.ts.map +0 -1
- package/dist/ui/toggle/animated/types.d.ts.map +0 -1
- package/dist/ui/toggle/index.d.ts.map +0 -1
- package/dist/ui/toggle/toggle-base.d.ts +0 -6
- package/dist/ui/toggle/toggle-base.d.ts.map +0 -1
- package/dist/ui/toggle/toggle.d.ts +0 -6
- package/dist/ui/toggle/toggle.d.ts.map +0 -1
- package/dist/ui/toggle/types.d.ts.map +0 -1
- package/dist/ui/toggle/variants.d.ts +0 -8
- package/dist/ui/toggle/variants.d.ts.map +0 -1
- package/dist/ui/tooltip/animated/animations.d.ts +0 -3
- package/dist/ui/tooltip/animated/animations.d.ts.map +0 -1
- package/dist/ui/tooltip/animated/index.d.ts +0 -4
- package/dist/ui/tooltip/animated/index.d.ts.map +0 -1
- package/dist/ui/tooltip/animated/tooltip-content-animated.d.ts +0 -3
- package/dist/ui/tooltip/animated/tooltip-content-animated.d.ts.map +0 -1
- package/dist/ui/tooltip/animated/types.d.ts +0 -9
- package/dist/ui/tooltip/animated/types.d.ts.map +0 -1
- package/dist/ui/tooltip/index.d.ts +0 -4
- package/dist/ui/tooltip/index.d.ts.map +0 -1
- package/dist/ui/tooltip/tooltip-base.d.ts +0 -7
- package/dist/ui/tooltip/tooltip-base.d.ts.map +0 -1
- package/dist/ui/tooltip/tooltip.d.ts +0 -2
- package/dist/ui/tooltip/tooltip.d.ts.map +0 -1
- package/dist/ui/tooltip/types.d.ts +0 -30
- package/dist/ui/tooltip/types.d.ts.map +0 -1
- package/dist/ui/tooltip/variants.d.ts +0 -6
- package/dist/ui/tooltip/variants.d.ts.map +0 -1
- package/dist/vitest-setup.d.ts +0 -2
- package/dist/vitest-setup.d.ts.map +0 -1
package/cli/index.mjs
ADDED
|
@@ -0,0 +1,718 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* @file Zentauri UI Components CLI — `zentauri-components` / `zentauri-ui`
|
|
4
|
+
*
|
|
5
|
+
* ## Purpose
|
|
6
|
+
*
|
|
7
|
+
* This executable copies **selected** UI component source from the
|
|
8
|
+
* `@zentauri-ui/zentauri-components` package into a consumer app’s tree, so you own the files, paths are configurable, and
|
|
9
|
+
* imports are rewritten to match your `components.json` aliases.
|
|
10
|
+
*
|
|
11
|
+
* ## How it fits together
|
|
12
|
+
*
|
|
13
|
+
* ```
|
|
14
|
+
* [Your app repo]
|
|
15
|
+
* │
|
|
16
|
+
* ├── components.json ← `init` creates this; `add` reads it
|
|
17
|
+
* └── src/...
|
|
18
|
+
*
|
|
19
|
+
* [This package @ packages/components]
|
|
20
|
+
* ├── cli/index.mjs ← this file (entry when run via bin)
|
|
21
|
+
* ├── cli/registry.json ← list of installable component folder names
|
|
22
|
+
* └── src/ui/<name>/ ← source copied by `add`
|
|
23
|
+
* └── src/hooks/<name>/ ← hooks pulled in as dependencies
|
|
24
|
+
* └── src/lib/utils.ts ← template for `cn()` etc. if missing in app
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* - **packageRoot**: directory of the published `components` package (parent of
|
|
28
|
+
* `cli/`). Used to read `registry.json`, `src/ui`, `src/hooks`, `src/lib`.
|
|
29
|
+
* - **configDir**: directory containing `components.json` (may differ from
|
|
30
|
+
* `--cwd` when the config is found by walking up from `cwd`).
|
|
31
|
+
*
|
|
32
|
+
* ## Commands (see also `printHelp()`)
|
|
33
|
+
*
|
|
34
|
+
* | Command | Role |
|
|
35
|
+
* |-----------|------|
|
|
36
|
+
* | `init` | Writes `components.json` with default `aliases` + `resolvedPaths` if none exists. |
|
|
37
|
+
* | `add` … | Resolves names via registry, copies UI folders, discovers hooks, copies hook transitive closure, ensures `utils` file. |
|
|
38
|
+
* | `--help` | Prints usage text. |
|
|
39
|
+
* | `--version` | Prints `version` from this package’s `package.json`. |
|
|
40
|
+
*
|
|
41
|
+
* ## Example sessions (terminal)
|
|
42
|
+
*
|
|
43
|
+
* ```bash
|
|
44
|
+
* # From your Next.js app root (after init once):
|
|
45
|
+
* npx zentauri-components init
|
|
46
|
+
* ```
|
|
47
|
+
*
|
|
48
|
+
* Example stdout:
|
|
49
|
+
* ```
|
|
50
|
+
* Wrote /path/to/your-app/components.json
|
|
51
|
+
* ```
|
|
52
|
+
*
|
|
53
|
+
* ```bash
|
|
54
|
+
* npx zentauri-components add button
|
|
55
|
+
* ```
|
|
56
|
+
*
|
|
57
|
+
* Example stdout (paths depend on your `resolvedPaths`):
|
|
58
|
+
* ```
|
|
59
|
+
* Created src/lib/utils.ts
|
|
60
|
+
* Adding button…
|
|
61
|
+
* Adding hook useMediaQuery…
|
|
62
|
+
* Done.
|
|
63
|
+
* ```
|
|
64
|
+
*
|
|
65
|
+
* ```bash
|
|
66
|
+
* npx zentauri-components add accordion buttons inputs
|
|
67
|
+
* ```
|
|
68
|
+
*
|
|
69
|
+
* Multiple components in one run: each line `Adding <name>…`, then hooks, then `Done.`
|
|
70
|
+
*
|
|
71
|
+
* ## Import rewriting
|
|
72
|
+
*
|
|
73
|
+
* TypeScript/JSX files are passed through `rewrite-imports.mjs` so internal
|
|
74
|
+
* package paths become the consumer’s `@/…` (or whatever you set in
|
|
75
|
+
* `components.json`). Non-code assets are copied byte-for-byte.
|
|
76
|
+
*
|
|
77
|
+
* ## Exit codes
|
|
78
|
+
*
|
|
79
|
+
* - Sets `process.exitCode = 1` on validation errors, missing config, unknown
|
|
80
|
+
* command, or refused `init` overwrite. Successful runs leave default exit 0.
|
|
81
|
+
*/
|
|
82
|
+
|
|
83
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
84
|
+
import {
|
|
85
|
+
readFile,
|
|
86
|
+
writeFile,
|
|
87
|
+
mkdir,
|
|
88
|
+
copyFile,
|
|
89
|
+
readdir,
|
|
90
|
+
} from "node:fs/promises";
|
|
91
|
+
import { dirname, join, relative } from "node:path";
|
|
92
|
+
import { fileURLToPath } from "node:url";
|
|
93
|
+
import { parseArgs } from "node:util";
|
|
94
|
+
|
|
95
|
+
import {
|
|
96
|
+
extractSiblingHookImports,
|
|
97
|
+
rewriteImports,
|
|
98
|
+
} from "./rewrite-imports.mjs";
|
|
99
|
+
|
|
100
|
+
/** Directory containing this script (`…/packages/components/cli`). */
|
|
101
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Root of the components package (`…/packages/components`), i.e. parent of `cli/`.
|
|
105
|
+
* All reads from `src/ui`, `src/hooks`, `registry.json`, and `package.json` are
|
|
106
|
+
* relative to this path — not the consumer’s project root.
|
|
107
|
+
*/
|
|
108
|
+
const packageRoot = join(__dirname, "..");
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Loads the static registry of component folder names and optional aliases.
|
|
112
|
+
*
|
|
113
|
+
* @returns {object} Parsed `cli/registry.json` — expect at least
|
|
114
|
+
* `{ components: string[], nameAliases?: Record<string, string> }`.
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* // registry.json (conceptual)
|
|
118
|
+
* // { "components": ["buttons", "inputs"], "nameAliases": { "btn": "buttons" } }
|
|
119
|
+
*/
|
|
120
|
+
function loadRegistry() {
|
|
121
|
+
const path = join(packageRoot, "cli", "registry.json");
|
|
122
|
+
return JSON.parse(readFileSync(path, "utf8"));
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Prints human-readable help to **stdout** (not stderr), for `-h` / `--help`.
|
|
127
|
+
* Side effect only; no return value.
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* // User runs: zentauri-components --help
|
|
131
|
+
* // Terminal shows multi-line Usage / Options / examples (see string below).
|
|
132
|
+
*/
|
|
133
|
+
function printHelp() {
|
|
134
|
+
console.log(`Zentauri UI — copy component source into your app (shadcn-style)
|
|
135
|
+
|
|
136
|
+
Usage:
|
|
137
|
+
zentauri-components init [options] Create components.json with defaults
|
|
138
|
+
zentauri-components add <component> [...] Copy UI components (and their hooks)
|
|
139
|
+
zentauri-components add hook <hook> [...] Copy hook source only (plus transitive hook deps)
|
|
140
|
+
|
|
141
|
+
List of components:
|
|
142
|
+
${registry.components.join("\n")}
|
|
143
|
+
|
|
144
|
+
List of hooks:
|
|
145
|
+
${registry.hooks.join("\n")}
|
|
146
|
+
|
|
147
|
+
(The zentauri-ui binary name works the same if your PATH exposes it.)
|
|
148
|
+
|
|
149
|
+
Options:
|
|
150
|
+
--cwd <dir> Working directory (default: process.cwd())
|
|
151
|
+
-h, --help Show help
|
|
152
|
+
-v, --version Show package version
|
|
153
|
+
|
|
154
|
+
Local (no npm publish): cd to your app root, then run Node with a path to this CLI (yours may differ):
|
|
155
|
+
node ../../packages/components/cli/index.mjs init
|
|
156
|
+
node ../../packages/components/cli/index.mjs add button
|
|
157
|
+
node ../../packages/components/cli/index.mjs add hook useWindowSize
|
|
158
|
+
Only copies the requested trees; not the whole monorepo.
|
|
159
|
+
|
|
160
|
+
Use hooks from the package without copying (after npm install):
|
|
161
|
+
import { useWindowSize } from "@zentauri-ui/zentauri-components/hooks/useWindowSize";
|
|
162
|
+
|
|
163
|
+
Published package:
|
|
164
|
+
npx @zentauri-ui/zentauri-components init
|
|
165
|
+
npx @zentauri-ui/zentauri-components add accordion buttons inputs
|
|
166
|
+
|
|
167
|
+
If npx does not pick the right binary:
|
|
168
|
+
npx --yes --package=@zentauri-ui/zentauri-components zentauri-components init
|
|
169
|
+
npx --yes --package=@zentauri-ui/zentauri-components zentauri-ui init
|
|
170
|
+
`);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Whether a path segment should be skipped when copying into a consumer app.
|
|
175
|
+
* Test files are not shipped so apps do not inherit package test suites.
|
|
176
|
+
*
|
|
177
|
+
* @param {string} name — file name or relative path (e.g. `Button.test.tsx`)
|
|
178
|
+
* @returns {boolean}
|
|
179
|
+
*
|
|
180
|
+
* @example
|
|
181
|
+
* isTestFile("Button.spec.tsx"); // true
|
|
182
|
+
* @example
|
|
183
|
+
* isTestFile("index.ts"); // false
|
|
184
|
+
* @example
|
|
185
|
+
* isTestFile("foo.test.utils.ts"); // true (substring ".test.")
|
|
186
|
+
*/
|
|
187
|
+
function isTestFile(name) {
|
|
188
|
+
return /\.(?:test|spec)\.(?:tsx?|jsx?)$/.test(name) || name.includes(".test.");
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Recursively lists every **file** path under `dir` (directories are traversed,
|
|
193
|
+
* not included in the result).
|
|
194
|
+
*
|
|
195
|
+
* @param {string} dir — absolute path to a directory under the package
|
|
196
|
+
* @returns {Promise<string[]>} — flat list of absolute file paths
|
|
197
|
+
*
|
|
198
|
+
* @example
|
|
199
|
+
* // Given src/ui/buttons/index.ts and src/ui/buttons/Button.tsx
|
|
200
|
+
* // await walkFiles("/pkg/src/ui/buttons")
|
|
201
|
+
* // => ["/pkg/src/ui/buttons/Button.tsx", "/pkg/src/ui/buttons/index.ts"]
|
|
202
|
+
* // (order depends on filesystem; not sorted)
|
|
203
|
+
*/
|
|
204
|
+
async function walkFiles(dir) {
|
|
205
|
+
const entries = await readdir(dir, { withFileTypes: true });
|
|
206
|
+
const out = [];
|
|
207
|
+
for (const e of entries) {
|
|
208
|
+
const p = join(dir, e.name);
|
|
209
|
+
if (e.isDirectory()) {
|
|
210
|
+
out.push(...(await walkFiles(p)));
|
|
211
|
+
} else {
|
|
212
|
+
out.push(p);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
return out;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* Walks upward from `startDir` toward the filesystem root until `components.json`
|
|
220
|
+
* exists, or returns `undefined` if none found (e.g. user forgot `init`).
|
|
221
|
+
*
|
|
222
|
+
* @param {string} startDir — typically `process.cwd()` or `--cwd` resolved path
|
|
223
|
+
* @returns {string | undefined} — absolute path to `components.json` if found
|
|
224
|
+
*
|
|
225
|
+
* @example
|
|
226
|
+
* // startDir = "/app/apps/web", file at "/app/components.json"
|
|
227
|
+
* // => "/app/components.json"
|
|
228
|
+
* @example
|
|
229
|
+
* // No components.json in startDir or any parent
|
|
230
|
+
* // => undefined
|
|
231
|
+
*/
|
|
232
|
+
async function findComponentsJson(startDir) {
|
|
233
|
+
let d = startDir;
|
|
234
|
+
for (;;) {
|
|
235
|
+
const p = join(d, "components.json");
|
|
236
|
+
if (existsSync(p)) {
|
|
237
|
+
return p;
|
|
238
|
+
}
|
|
239
|
+
const parent = dirname(d);
|
|
240
|
+
if (parent === d) {
|
|
241
|
+
return undefined;
|
|
242
|
+
}
|
|
243
|
+
d = parent;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Default shape written by `init`. Consumers may edit paths to match their
|
|
249
|
+
* bundler/tsconfig path aliases (`@/…`).
|
|
250
|
+
*
|
|
251
|
+
* @returns {{ aliases: Record<string, string>, resolvedPaths: Record<string, string> }}
|
|
252
|
+
*
|
|
253
|
+
* @example
|
|
254
|
+
* // JSON written to disk (pretty-printed):
|
|
255
|
+
* // {
|
|
256
|
+
* // "aliases": {
|
|
257
|
+
* // "ui": "@/components/ui",
|
|
258
|
+
* // "utils": "@/lib/utils",
|
|
259
|
+
* // "hooks": "@/hooks"
|
|
260
|
+
* // },
|
|
261
|
+
* // "resolvedPaths": {
|
|
262
|
+
* // "ui": "src/components/ui",
|
|
263
|
+
* // "utils": "src/lib/utils.ts",
|
|
264
|
+
* // "hooks": "src/hooks"
|
|
265
|
+
* // }
|
|
266
|
+
* // }
|
|
267
|
+
*/
|
|
268
|
+
function defaultConfig() {
|
|
269
|
+
return {
|
|
270
|
+
aliases: {
|
|
271
|
+
ui: "@/components/ui",
|
|
272
|
+
utils: "@/lib/utils",
|
|
273
|
+
hooks: "@/hooks",
|
|
274
|
+
},
|
|
275
|
+
resolvedPaths: {
|
|
276
|
+
ui: "src/components/ui",
|
|
277
|
+
utils: "src/lib/utils.ts",
|
|
278
|
+
hooks: "src/hooks",
|
|
279
|
+
},
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Ensures `add` has everything it needs to compute destination paths and rewrite
|
|
285
|
+
* imports. Throws a single clear error if the config is incomplete.
|
|
286
|
+
*
|
|
287
|
+
* @param {object} cfg — parsed `components.json`
|
|
288
|
+
* @throws {Error} if any of `aliases.{utils,hooks,ui}` or
|
|
289
|
+
* `resolvedPaths.{ui,utils,hooks}` is missing
|
|
290
|
+
*
|
|
291
|
+
* @example
|
|
292
|
+
* // validateConfig({ aliases: {}, resolvedPaths: {} });
|
|
293
|
+
* // throws:
|
|
294
|
+
* // Error: components.json must define aliases.utils, aliases.hooks, and aliases.ui
|
|
295
|
+
*/
|
|
296
|
+
function validateConfig(cfg) {
|
|
297
|
+
if (!cfg.aliases?.utils || !cfg.aliases?.hooks || !cfg.aliases?.ui) {
|
|
298
|
+
throw new Error(
|
|
299
|
+
"components.json must define aliases.utils, aliases.hooks, and aliases.ui",
|
|
300
|
+
);
|
|
301
|
+
}
|
|
302
|
+
if (!cfg.resolvedPaths?.ui || !cfg.resolvedPaths?.utils || !cfg.resolvedPaths?.hooks) {
|
|
303
|
+
throw new Error(
|
|
304
|
+
"components.json must define resolvedPaths.ui, resolvedPaths.utils, and resolvedPaths.hooks",
|
|
305
|
+
);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* Maps CLI input (any casing, optional registry alias) to a canonical folder name
|
|
311
|
+
* under `src/ui/<name>` in the package.
|
|
312
|
+
*
|
|
313
|
+
* Resolution order:
|
|
314
|
+
* 1. Exact key in `registry.nameAliases`
|
|
315
|
+
* 2. Case-insensitive key match in `nameAliases`
|
|
316
|
+
* 3. Exact match in `registry.components`
|
|
317
|
+
* 4. Case-insensitive match in `registry.components`
|
|
318
|
+
* 5. Otherwise throws
|
|
319
|
+
*
|
|
320
|
+
* @param {string} input — argv token from user, e.g. `"Btn"` or `"buttons"`
|
|
321
|
+
* @param {object} registry — from `loadRegistry()`
|
|
322
|
+
* @returns {string} — canonical component directory name
|
|
323
|
+
* @throws {Error} when the name is unknown
|
|
324
|
+
*
|
|
325
|
+
* @example
|
|
326
|
+
* // registry.components = ["buttons"], nameAliases = { "btn": "buttons" }
|
|
327
|
+
* resolveComponentName("btn", registry); // "buttons"
|
|
328
|
+
* resolveComponentName("BUTTONS", registry); // "buttons"
|
|
329
|
+
* @example
|
|
330
|
+
* // resolveComponentName("typo", registry);
|
|
331
|
+
* // throws: Unknown component "typo". Valid names include: ...
|
|
332
|
+
*/
|
|
333
|
+
function resolveComponentName(input, registry) {
|
|
334
|
+
const aliases = registry.nameAliases ?? {};
|
|
335
|
+
if (aliases[input]) {
|
|
336
|
+
return aliases[input];
|
|
337
|
+
}
|
|
338
|
+
const lower = input.toLowerCase();
|
|
339
|
+
const aliasKey = Object.keys(aliases).find((k) => k.toLowerCase() === lower);
|
|
340
|
+
if (aliasKey) {
|
|
341
|
+
return aliases[aliasKey];
|
|
342
|
+
}
|
|
343
|
+
if (registry.components.includes(input)) {
|
|
344
|
+
return input;
|
|
345
|
+
}
|
|
346
|
+
const found = registry.components.find((c) => c.toLowerCase() === lower);
|
|
347
|
+
if (found) {
|
|
348
|
+
return found;
|
|
349
|
+
}
|
|
350
|
+
throw new Error(
|
|
351
|
+
`Unknown component "${input}". Valid names include: ${registry.components.join(", ")}`,
|
|
352
|
+
);
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
/**
|
|
356
|
+
* @param {string} input — argv token, e.g. `useWindowSize`
|
|
357
|
+
* @param {object} registry — must include `hooks` string array
|
|
358
|
+
* @returns {string} — canonical hook folder name under `src/hooks`
|
|
359
|
+
*/
|
|
360
|
+
function resolveHookName(input, registry) {
|
|
361
|
+
const list = registry.hooks ?? [];
|
|
362
|
+
if (list.includes(input)) {
|
|
363
|
+
return input;
|
|
364
|
+
}
|
|
365
|
+
const found = list.find((h) => h.toLowerCase() === input.toLowerCase());
|
|
366
|
+
if (found) {
|
|
367
|
+
return found;
|
|
368
|
+
}
|
|
369
|
+
throw new Error(
|
|
370
|
+
`Unknown hook "${input}". Valid hooks include: ${list.join(", ")}`,
|
|
371
|
+
);
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
/**
|
|
375
|
+
* Starting from hook folder names discovered in UI code, expands the set to
|
|
376
|
+
* include every hook that those hooks import from **sibling** hook packages
|
|
377
|
+
* (parsed via `extractSiblingHookImports`). Ensures `add` copies a consistent
|
|
378
|
+
* dependency graph, not only direct imports.
|
|
379
|
+
*
|
|
380
|
+
* @param {string} packageRoot — components package root
|
|
381
|
+
* @param {string[]} seedHooks — e.g. `["useToggle", "useMediaQuery"]`
|
|
382
|
+
* @returns {Promise<string[]>} — deduplicated list of hook folder names
|
|
383
|
+
*
|
|
384
|
+
* @example
|
|
385
|
+
* // seedHooks = ["useA"]; useA imports useB; useB imports useC
|
|
386
|
+
* // => ["useA", "useB", "useC"] (order depends on BFS/stack pop order)
|
|
387
|
+
*/
|
|
388
|
+
async function collectHookTransitiveClosure(packageRoot, seedHooks) {
|
|
389
|
+
const closure = new Set(seedHooks);
|
|
390
|
+
const queue = [...seedHooks];
|
|
391
|
+
while (queue.length > 0) {
|
|
392
|
+
const h = queue.pop();
|
|
393
|
+
const hookDir = join(packageRoot, "src", "hooks", h);
|
|
394
|
+
if (!existsSync(hookDir)) {
|
|
395
|
+
continue;
|
|
396
|
+
}
|
|
397
|
+
const files = await walkFiles(hookDir);
|
|
398
|
+
for (const file of files) {
|
|
399
|
+
if (!/\.(tsx?|jsx?)$/.test(file)) {
|
|
400
|
+
continue;
|
|
401
|
+
}
|
|
402
|
+
const source = await readFile(file, "utf8");
|
|
403
|
+
for (const dep of extractSiblingHookImports(source)) {
|
|
404
|
+
if (!closure.has(dep)) {
|
|
405
|
+
closure.add(dep);
|
|
406
|
+
queue.push(dep);
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
return [...closure];
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
/**
|
|
415
|
+
* Copies `packageRoot/src/ui/<componentName>` into
|
|
416
|
+
* `<configDir>/<resolvedPaths.ui>/<componentName>`, skipping tests, rewriting
|
|
417
|
+
* imports in TS/JS files, and collecting hook folder names referenced by those
|
|
418
|
+
* files for later copying.
|
|
419
|
+
*
|
|
420
|
+
* @param {string} componentName — resolved registry name (directory under `src/ui`)
|
|
421
|
+
* @param {object} config — validated `components.json`
|
|
422
|
+
* @param {string} configDir — dirname(components.json)
|
|
423
|
+
* @param {string} packageRoot — package containing source
|
|
424
|
+
* @returns {Promise<string[]>} — hook names used by copied UI files (not yet transitive)
|
|
425
|
+
* @throws {Error} if source folder is missing in the package
|
|
426
|
+
*
|
|
427
|
+
* @example
|
|
428
|
+
* // After copy, consumer might have:
|
|
429
|
+
* // src/components/ui/buttons/Button.tsx
|
|
430
|
+
* // with imports pointing at @/lib/utils, @/hooks/useX, etc.
|
|
431
|
+
*/
|
|
432
|
+
async function copyUiComponent(
|
|
433
|
+
componentName,
|
|
434
|
+
config,
|
|
435
|
+
configDir,
|
|
436
|
+
packageRoot,
|
|
437
|
+
) {
|
|
438
|
+
const srcRoot = join(packageRoot, "src", "ui", componentName);
|
|
439
|
+
if (!existsSync(srcRoot)) {
|
|
440
|
+
throw new Error(`Missing package source: ${relative(packageRoot, srcRoot)}`);
|
|
441
|
+
}
|
|
442
|
+
const destRoot = join(configDir, config.resolvedPaths.ui, componentName);
|
|
443
|
+
const files = await walkFiles(srcRoot);
|
|
444
|
+
const usedHooks = new Set();
|
|
445
|
+
|
|
446
|
+
for (const absSrc of files) {
|
|
447
|
+
const rel = relative(srcRoot, absSrc);
|
|
448
|
+
if (isTestFile(rel)) {
|
|
449
|
+
continue;
|
|
450
|
+
}
|
|
451
|
+
const absDest = join(destRoot, rel);
|
|
452
|
+
await mkdir(dirname(absDest), { recursive: true });
|
|
453
|
+
if (/\.(tsx?|jsx?)$/.test(absSrc)) {
|
|
454
|
+
const raw = await readFile(absSrc, "utf8");
|
|
455
|
+
const { code, usedHooks: uh } = rewriteImports(raw, {
|
|
456
|
+
utilsAlias: config.aliases.utils,
|
|
457
|
+
hooksAlias: config.aliases.hooks,
|
|
458
|
+
uiAlias: config.aliases.ui,
|
|
459
|
+
});
|
|
460
|
+
for (const h of uh) {
|
|
461
|
+
usedHooks.add(h);
|
|
462
|
+
}
|
|
463
|
+
await writeFile(absDest, code, "utf8");
|
|
464
|
+
} else {
|
|
465
|
+
await copyFile(absSrc, absDest);
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
return [...usedHooks];
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
/**
|
|
472
|
+
* Same traversal rules as {@link copyUiComponent}, but for `src/hooks/<hookName>`.
|
|
473
|
+
* Used after UI copy so shared hooks land under the consumer’s `resolvedPaths.hooks`.
|
|
474
|
+
*
|
|
475
|
+
* @param {string} hookName — folder name under `src/hooks`
|
|
476
|
+
*
|
|
477
|
+
* @example
|
|
478
|
+
* // Source: package src/hooks/useToggle/useToggle.ts
|
|
479
|
+
* // Dest: <configDir>/src/hooks/useToggle/useToggle.ts
|
|
480
|
+
*/
|
|
481
|
+
async function copyHookFolder(hookName, config, configDir, packageRoot) {
|
|
482
|
+
const srcRoot = join(packageRoot, "src", "hooks", hookName);
|
|
483
|
+
if (!existsSync(srcRoot)) {
|
|
484
|
+
throw new Error(`Missing hook source: hooks/${hookName}`);
|
|
485
|
+
}
|
|
486
|
+
const destRoot = join(configDir, config.resolvedPaths.hooks, hookName);
|
|
487
|
+
const files = await walkFiles(srcRoot);
|
|
488
|
+
for (const absSrc of files) {
|
|
489
|
+
const rel = relative(srcRoot, absSrc);
|
|
490
|
+
if (isTestFile(rel)) {
|
|
491
|
+
continue;
|
|
492
|
+
}
|
|
493
|
+
const absDest = join(destRoot, rel);
|
|
494
|
+
await mkdir(dirname(absDest), { recursive: true });
|
|
495
|
+
if (/\.(tsx?|jsx?)$/.test(absSrc)) {
|
|
496
|
+
const raw = await readFile(absSrc, "utf8");
|
|
497
|
+
const { code } = rewriteImports(raw, {
|
|
498
|
+
utilsAlias: config.aliases.utils,
|
|
499
|
+
hooksAlias: config.aliases.hooks,
|
|
500
|
+
uiAlias: config.aliases.ui,
|
|
501
|
+
});
|
|
502
|
+
await writeFile(absDest, code, "utf8");
|
|
503
|
+
} else {
|
|
504
|
+
await copyFile(absSrc, absDest);
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
/**
|
|
510
|
+
* If the target utils file from config does not exist, copies the package default
|
|
511
|
+
* `src/lib/utils.ts` (with import paths rewritten) and logs creation.
|
|
512
|
+
*
|
|
513
|
+
* @example
|
|
514
|
+
* // First `add` in a fresh app prints:
|
|
515
|
+
* // Created src/lib/utils.ts
|
|
516
|
+
* // Second `add` prints nothing here (file already exists).
|
|
517
|
+
*/
|
|
518
|
+
async function ensureUtilsFile(config, configDir, packageRoot) {
|
|
519
|
+
const dest = join(configDir, config.resolvedPaths.utils);
|
|
520
|
+
if (existsSync(dest)) {
|
|
521
|
+
return;
|
|
522
|
+
}
|
|
523
|
+
await mkdir(dirname(dest), { recursive: true });
|
|
524
|
+
const src = join(packageRoot, "src", "lib", "utils.ts");
|
|
525
|
+
const raw = await readFile(src, "utf8");
|
|
526
|
+
const { code } = rewriteImports(raw, {
|
|
527
|
+
utilsAlias: config.aliases.utils,
|
|
528
|
+
hooksAlias: config.aliases.hooks,
|
|
529
|
+
uiAlias: config.aliases.ui,
|
|
530
|
+
});
|
|
531
|
+
await writeFile(dest, code, "utf8");
|
|
532
|
+
console.log(`Created ${relative(configDir, dest)}`);
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
/**
|
|
536
|
+
* `zentauri-components init` — writes default `components.json` next to `--cwd`.
|
|
537
|
+
*
|
|
538
|
+
* @param {string} cwd — resolved working directory
|
|
539
|
+
*
|
|
540
|
+
* @example
|
|
541
|
+
* // Success stdout:
|
|
542
|
+
* // Wrote /Users/me/my-app/components.json
|
|
543
|
+
*
|
|
544
|
+
* @example
|
|
545
|
+
* // If file exists — stderr + exitCode 1, no overwrite:
|
|
546
|
+
* // Refusing to overwrite existing /Users/me/my-app/components.json
|
|
547
|
+
*/
|
|
548
|
+
async function cmdInit(cwd) {
|
|
549
|
+
const target = join(cwd, "components.json");
|
|
550
|
+
if (existsSync(target)) {
|
|
551
|
+
console.error(`Refusing to overwrite existing ${target}`);
|
|
552
|
+
process.exitCode = 1;
|
|
553
|
+
return;
|
|
554
|
+
}
|
|
555
|
+
const body = `${JSON.stringify(defaultConfig(), null, 2)}\n`;
|
|
556
|
+
await writeFile(target, body, "utf8");
|
|
557
|
+
console.log(`Wrote ${target}`);
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
/**
|
|
561
|
+
* `zentauri-components add a b c` — full pipeline: find config, validate, utils,
|
|
562
|
+
* copy each UI component, compute hook closure, copy each hook, finish.
|
|
563
|
+
*
|
|
564
|
+
* @param {string[]} names — positional args after `add`
|
|
565
|
+
* @param {string} cwd — resolved working directory (starting point for config search)
|
|
566
|
+
*
|
|
567
|
+
* @example
|
|
568
|
+
* // Typical stdout:
|
|
569
|
+
* // Created src/lib/utils.ts
|
|
570
|
+
* // Adding buttons…
|
|
571
|
+
* // Adding inputs…
|
|
572
|
+
* // Adding hook useMediaQuery…
|
|
573
|
+
* // Done.
|
|
574
|
+
*
|
|
575
|
+
* @example
|
|
576
|
+
* // No components.json in cwd or parents — stderr:
|
|
577
|
+
* // No components.json found. Run: zentauri-components init (or: zentauri-ui init)
|
|
578
|
+
*/
|
|
579
|
+
async function cmdAdd(names, cwd) {
|
|
580
|
+
const configPath = await findComponentsJson(cwd);
|
|
581
|
+
if (!configPath) {
|
|
582
|
+
console.error(
|
|
583
|
+
"No components.json found. Run: zentauri-components init (or: zentauri-ui init)",
|
|
584
|
+
);
|
|
585
|
+
process.exitCode = 1;
|
|
586
|
+
return;
|
|
587
|
+
}
|
|
588
|
+
const configDir = dirname(configPath);
|
|
589
|
+
const config = JSON.parse(await readFile(configPath, "utf8"));
|
|
590
|
+
validateConfig(config);
|
|
591
|
+
|
|
592
|
+
const registry = loadRegistry();
|
|
593
|
+
const hookMode =
|
|
594
|
+
names.length > 0 && names[0].toLowerCase() === "hook";
|
|
595
|
+
const payload = hookMode ? names.slice(1) : names;
|
|
596
|
+
|
|
597
|
+
if (hookMode && payload.length === 0) {
|
|
598
|
+
console.error(
|
|
599
|
+
"Usage: zentauri-components add hook <hookName> [more...] (e.g. add hook useWindowSize)",
|
|
600
|
+
);
|
|
601
|
+
process.exitCode = 1;
|
|
602
|
+
return;
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
if (hookMode) {
|
|
606
|
+
const resolvedHooks = payload.map((n) => resolveHookName(n, registry));
|
|
607
|
+
const finalHooks = await collectHookTransitiveClosure(
|
|
608
|
+
packageRoot,
|
|
609
|
+
resolvedHooks,
|
|
610
|
+
);
|
|
611
|
+
for (const h of finalHooks) {
|
|
612
|
+
console.log(`Adding hook ${h}…`);
|
|
613
|
+
await copyHookFolder(h, config, configDir, packageRoot);
|
|
614
|
+
}
|
|
615
|
+
console.log("Done.");
|
|
616
|
+
return;
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
const resolvedNames = payload.map((n) => resolveComponentName(n, registry));
|
|
620
|
+
|
|
621
|
+
const allHooks = new Set();
|
|
622
|
+
for (const name of resolvedNames) {
|
|
623
|
+
console.log(`Adding ${name}…`);
|
|
624
|
+
const uh = await copyUiComponent(name, config, configDir, packageRoot);
|
|
625
|
+
for (const h of uh) {
|
|
626
|
+
allHooks.add(h);
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
const finalHooks = await collectHookTransitiveClosure(
|
|
631
|
+
packageRoot,
|
|
632
|
+
[...allHooks],
|
|
633
|
+
);
|
|
634
|
+
|
|
635
|
+
for (const h of finalHooks) {
|
|
636
|
+
console.log(`Adding hook ${h}…`);
|
|
637
|
+
await copyHookFolder(h, config, configDir, packageRoot);
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
console.log("Done.");
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
/**
|
|
644
|
+
* Parses `process.argv` with `node:util.parseArgs`, dispatches `init` / `add`,
|
|
645
|
+
* or prints help / version. Sets `process.exitCode` for recoverable CLI errors
|
|
646
|
+
* instead of always calling `process.exit()` (except unhandled rejections
|
|
647
|
+
* caught in the outer `.catch`).
|
|
648
|
+
*
|
|
649
|
+
* @example
|
|
650
|
+
* // argv: ["node", "index.mjs", "add", "button"]
|
|
651
|
+
* // => cmdAdd(["button"], cwd)
|
|
652
|
+
*
|
|
653
|
+
* @example
|
|
654
|
+
* // argv: ["node", "index.mjs"]
|
|
655
|
+
* // => printHelp(), exitCode 1
|
|
656
|
+
*
|
|
657
|
+
* @example
|
|
658
|
+
* // argv: ["node", "index.mjs", "-v"]
|
|
659
|
+
* // => "1.2.3" (whatever version is in package.json)
|
|
660
|
+
*/
|
|
661
|
+
async function main() {
|
|
662
|
+
const { values, positionals } = parseArgs({
|
|
663
|
+
args: process.argv.slice(2),
|
|
664
|
+
allowPositionals: true,
|
|
665
|
+
options: {
|
|
666
|
+
help: { type: "boolean", short: "h" },
|
|
667
|
+
version: { type: "boolean", short: "v" },
|
|
668
|
+
cwd: { type: "string" },
|
|
669
|
+
},
|
|
670
|
+
});
|
|
671
|
+
|
|
672
|
+
if (values.help) {
|
|
673
|
+
printHelp();
|
|
674
|
+
return;
|
|
675
|
+
}
|
|
676
|
+
if (values.version) {
|
|
677
|
+
const pkg = JSON.parse(
|
|
678
|
+
readFileSync(join(packageRoot, "package.json"), "utf8"),
|
|
679
|
+
);
|
|
680
|
+
console.log(pkg.version);
|
|
681
|
+
return;
|
|
682
|
+
}
|
|
683
|
+
|
|
684
|
+
const cwd = values.cwd ? join(process.cwd(), values.cwd) : process.cwd();
|
|
685
|
+
const cmd = positionals[0];
|
|
686
|
+
const rest = positionals.slice(1);
|
|
687
|
+
|
|
688
|
+
if (!cmd) {
|
|
689
|
+
printHelp();
|
|
690
|
+
process.exitCode = 1;
|
|
691
|
+
return;
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
if (cmd === "init") {
|
|
695
|
+
await cmdInit(cwd);
|
|
696
|
+
return;
|
|
697
|
+
}
|
|
698
|
+
if (cmd === "add") {
|
|
699
|
+
if (rest.length === 0) {
|
|
700
|
+
console.error(
|
|
701
|
+
"Usage: zentauri-components add <component> [more...] | add hook <hookName> [more...]",
|
|
702
|
+
);
|
|
703
|
+
process.exitCode = 1;
|
|
704
|
+
return;
|
|
705
|
+
}
|
|
706
|
+
await cmdAdd(rest, cwd);
|
|
707
|
+
return;
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
console.error(`Unknown command: ${cmd}`);
|
|
711
|
+
printHelp();
|
|
712
|
+
process.exitCode = 1;
|
|
713
|
+
}
|
|
714
|
+
|
|
715
|
+
main().catch((err) => {
|
|
716
|
+
console.error(err instanceof Error ? err.message : err);
|
|
717
|
+
process.exitCode = 1;
|
|
718
|
+
});
|