@oneplatformdev/ui 0.1.0-5 → 0.1.0-8
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/.babelrc +12 -0
- package/.storybook/main.ts +48 -0
- package/.storybook/manager.ts +6 -0
- package/.storybook/preview.ts +29 -0
- package/CHANGELOG.md +38 -0
- package/dist/CHANGELOG.md +14 -0
- package/dist/index.js +14 -13
- package/dist/package.json +2 -1
- package/external.ts +78 -0
- package/kit/MultiSelectCombobox/MultiSelectCombobox.tsx +211 -0
- package/kit/MultiSelectCombobox/index.tsx +2 -0
- package/kit/MultiSelectCombobox/types.ts +22 -0
- package/kit/NLTDateRangePicker/index.tsx +85 -0
- package/kit/NLTFilesDropZone/imageList/index.tsx +86 -0
- package/kit/NLTFilesDropZone/index.tsx +52 -0
- package/kit/NLTFormDateRangePicker/index.tsx +29 -0
- package/kit/NLTFormFilesDropZone/index.tsx +73 -0
- package/kit/NLTFormPhoneField/index.tsx +36 -0
- package/kit/NLTFormPhoneInput/index.tsx +32 -0
- package/kit/NLTImageDropZone/index.tsx +105 -0
- package/kit/NLTModal/index.tsx +36 -0
- package/kit/NLTModal/useModal.ts +10 -0
- package/kit/NLTModalHeader/index.tsx +48 -0
- package/kit/NLTModalHeader/useModal.ts +10 -0
- package/kit/NLTMonthYearPicker/index.tsx +66 -0
- package/kit/NLTMonthYearPicker/useMonthYearPicker.ts +37 -0
- package/kit/NLTPhoneInput/index.tsx +153 -0
- package/kit/NLTPieChart/index.tsx +62 -0
- package/kit/NLTSidebar/app-sidebar.tsx +39 -0
- package/kit/NLTSidebar/nav-main.tsx +68 -0
- package/kit/NLTSidebar/nav-projects.tsx +89 -0
- package/kit/NLTSidebar/nav-user.tsx +114 -0
- package/kit/NLTSidebar/team-switcher.tsx +89 -0
- package/kit/NLTTable/NLTTable.tsx +50 -0
- package/kit/NLTTable/index.tsx +1 -0
- package/kit/NLTTablePagination/index.tsx +75 -0
- package/kit/Sidebar/SidebarNav/SidebarNavGroup.tsx +27 -0
- package/kit/Sidebar/SidebarNav/SidebarNavGroupItem.tsx +120 -0
- package/kit/Sidebar/SidebarNav/index.ts +3 -0
- package/kit/Sidebar/SidebarNav/types.ts +19 -0
- package/kit/Sidebar/index.ts +1 -0
- package/kit/Stepper/LinearStepper.tsx +91 -0
- package/kit/Stepper/Stepper.tsx +17 -0
- package/kit/Stepper/VerticalStepper.tsx +91 -0
- package/kit/Stepper/index.ts +1 -0
- package/kit/Stepper/types.ts +21 -0
- package/kit/Stepper/useStepper.ts +40 -0
- package/node_modules/@oneplatformdev/hooks/.babelrc +12 -0
- package/node_modules/@oneplatformdev/hooks/CHANGELOG.md +23 -0
- package/node_modules/@oneplatformdev/hooks/LICENSE +21 -0
- package/node_modules/@oneplatformdev/hooks/README.md +7 -0
- package/node_modules/@oneplatformdev/hooks/dist/CHANGELOG.md +19 -0
- package/node_modules/@oneplatformdev/hooks/dist/LICENSE +21 -0
- package/node_modules/@oneplatformdev/hooks/dist/README.md +7 -0
- package/node_modules/@oneplatformdev/hooks/dist/index.d.ts +37 -0
- package/node_modules/@oneplatformdev/hooks/dist/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/index.js +74 -0
- package/node_modules/@oneplatformdev/hooks/dist/package.json +68 -0
- package/node_modules/@oneplatformdev/hooks/dist/useBoolean/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useBoolean/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useBoolean/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useBoolean/useBoolean.d.ts +29 -0
- package/node_modules/@oneplatformdev/hooks/dist/useBoolean/useBoolean.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useBoolean/useBoolean.js +16 -0
- package/node_modules/@oneplatformdev/hooks/dist/useClickAnyWhere/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useClickAnyWhere/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useClickAnyWhere/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useClickAnyWhere/useClickAnyWhere.d.ts +17 -0
- package/node_modules/@oneplatformdev/hooks/dist/useClickAnyWhere/useClickAnyWhere.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useClickAnyWhere/useClickAnyWhere.js +9 -0
- package/node_modules/@oneplatformdev/hooks/dist/useCopyToClipboard/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useCopyToClipboard/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useCopyToClipboard/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useCopyToClipboard/useCopyToClipboard.d.ts +34 -0
- package/node_modules/@oneplatformdev/hooks/dist/useCopyToClipboard/useCopyToClipboard.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useCopyToClipboard/useCopyToClipboard.js +16 -0
- package/node_modules/@oneplatformdev/hooks/dist/useCountdown/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useCountdown/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useCountdown/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useCountdown/useCountdown.d.ts +47 -0
- package/node_modules/@oneplatformdev/hooks/dist/useCountdown/useCountdown.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useCountdown/useCountdown.js +33 -0
- package/node_modules/@oneplatformdev/hooks/dist/useCounter/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useCounter/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useCounter/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useCounter/useCounter.d.ts +28 -0
- package/node_modules/@oneplatformdev/hooks/dist/useCounter/useCounter.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useCounter/useCounter.js +20 -0
- package/node_modules/@oneplatformdev/hooks/dist/useDarkMode/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useDarkMode/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useDarkMode/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useDarkMode/useDarkMode.d.ts +46 -0
- package/node_modules/@oneplatformdev/hooks/dist/useDarkMode/useDarkMode.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useDarkMode/useDarkMode.js +38 -0
- package/node_modules/@oneplatformdev/hooks/dist/useDebounceCallback/index.d.ts +3 -0
- package/node_modules/@oneplatformdev/hooks/dist/useDebounceCallback/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useDebounceCallback/index.js +5 -0
- package/node_modules/@oneplatformdev/hooks/dist/useDebounceCallback/useDebounceCallback.d.ts +62 -0
- package/node_modules/@oneplatformdev/hooks/dist/useDebounceCallback/useDebounceCallback.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useDebounceCallback/useDebounceCallback.js +21 -0
- package/node_modules/@oneplatformdev/hooks/dist/useDebounceValue/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useDebounceValue/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useDebounceValue/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useDebounceValue/useDebounceValue.d.ts +40 -0
- package/node_modules/@oneplatformdev/hooks/dist/useDebounceValue/useDebounceValue.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useDebounceValue/useDebounceValue.js +13 -0
- package/node_modules/@oneplatformdev/hooks/dist/useDocumentTitle/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useDocumentTitle/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useDocumentTitle/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useDocumentTitle/useDocumentTitle.d.ts +19 -0
- package/node_modules/@oneplatformdev/hooks/dist/useDocumentTitle/useDocumentTitle.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useDocumentTitle/useDocumentTitle.js +16 -0
- package/node_modules/@oneplatformdev/hooks/dist/useEventCallback/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useEventCallback/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useEventCallback/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useEventCallback/useEventCallback.d.ts +18 -0
- package/node_modules/@oneplatformdev/hooks/dist/useEventCallback/useEventCallback.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useEventCallback/useEventCallback.js +13 -0
- package/node_modules/@oneplatformdev/hooks/dist/useEventListener/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useEventListener/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useEventListener/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useEventListener/useEventListener.d.ts +7 -0
- package/node_modules/@oneplatformdev/hooks/dist/useEventListener/useEventListener.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useEventListener/useEventListener.js +20 -0
- package/node_modules/@oneplatformdev/hooks/dist/useHover/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useHover/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useHover/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useHover/useHover.d.ts +17 -0
- package/node_modules/@oneplatformdev/hooks/dist/useHover/useHover.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useHover/useHover.js +13 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIntersectionObserver/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIntersectionObserver/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIntersectionObserver/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIntersectionObserver/useIntersectionObserver.d.ts +72 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIntersectionObserver/useIntersectionObserver.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIntersectionObserver/useIntersectionObserver.js +53 -0
- package/node_modules/@oneplatformdev/hooks/dist/useInterval/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useInterval/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useInterval/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useInterval/useInterval.d.ts +16 -0
- package/node_modules/@oneplatformdev/hooks/dist/useInterval/useInterval.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useInterval/useInterval.js +20 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsClient/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsClient/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsClient/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsClient/useIsClient.d.ts +13 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsClient/useIsClient.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsClient/useIsClient.js +10 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsMobile/index.d.ts +3 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsMobile/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsMobile/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsMobile/types.d.ts +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsMobile/types.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsMobile/types.js +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsMobile/useIsMobile.d.ts +3 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsMobile/useIsMobile.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsMobile/useIsMobile.js +16 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsMounted/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsMounted/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsMounted/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsMounted/useIsMounted.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsMounted/useIsMounted.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsMounted/useIsMounted.js +10 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsomorphicLayoutEffect/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsomorphicLayoutEffect/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsomorphicLayoutEffect/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.d.ts +16 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js +5 -0
- package/node_modules/@oneplatformdev/hooks/dist/useLocalStorage/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useLocalStorage/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useLocalStorage/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useLocalStorage/useLocalStorage.d.ts +39 -0
- package/node_modules/@oneplatformdev/hooks/dist/useLocalStorage/useLocalStorage.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useLocalStorage/useLocalStorage.js +65 -0
- package/node_modules/@oneplatformdev/hooks/dist/useLockBody/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useLockBody/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useLockBody/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useLockBody/useLockBody.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useLockBody/useLockBody.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useLockBody/useLockBody.js +12 -0
- package/node_modules/@oneplatformdev/hooks/dist/useMap/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useMap/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useMap/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useMap/useMap.d.ts +48 -0
- package/node_modules/@oneplatformdev/hooks/dist/useMap/useMap.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useMap/useMap.js +27 -0
- package/node_modules/@oneplatformdev/hooks/dist/useMediaQuery/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useMediaQuery/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useMediaQuery/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useMediaQuery/useMediaQuery.d.ts +29 -0
- package/node_modules/@oneplatformdev/hooks/dist/useMediaQuery/useMediaQuery.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useMediaQuery/useMediaQuery.js +21 -0
- package/node_modules/@oneplatformdev/hooks/dist/useOnClickOutside/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useOnClickOutside/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useOnClickOutside/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useOnClickOutside/useOnClickOutside.d.ts +24 -0
- package/node_modules/@oneplatformdev/hooks/dist/useOnClickOutside/useOnClickOutside.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useOnClickOutside/useOnClickOutside.js +17 -0
- package/node_modules/@oneplatformdev/hooks/dist/useQueryString/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useQueryString/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useQueryString/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useQueryString/useQueryString.d.ts +10 -0
- package/node_modules/@oneplatformdev/hooks/dist/useQueryString/useQueryString.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useQueryString/useQueryString.js +10 -0
- package/node_modules/@oneplatformdev/hooks/dist/useReadLocalStorage/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useReadLocalStorage/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useReadLocalStorage/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useReadLocalStorage/useReadLocalStorage.d.ts +14 -0
- package/node_modules/@oneplatformdev/hooks/dist/useReadLocalStorage/useReadLocalStorage.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useReadLocalStorage/useReadLocalStorage.js +48 -0
- package/node_modules/@oneplatformdev/hooks/dist/useResizeObserver/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useResizeObserver/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useResizeObserver/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useResizeObserver/useResizeObserver.d.ts +44 -0
- package/node_modules/@oneplatformdev/hooks/dist/useResizeObserver/useResizeObserver.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useResizeObserver/useResizeObserver.js +31 -0
- package/node_modules/@oneplatformdev/hooks/dist/useScreen/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useScreen/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useScreen/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useScreen/useScreen.d.ts +20 -0
- package/node_modules/@oneplatformdev/hooks/dist/useScreen/useScreen.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useScreen/useScreen.js +48 -0
- package/node_modules/@oneplatformdev/hooks/dist/useScript/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useScript/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useScript/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useScript/useScript.d.ts +24 -0
- package/node_modules/@oneplatformdev/hooks/dist/useScript/useScript.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useScript/useScript.js +45 -0
- package/node_modules/@oneplatformdev/hooks/dist/useScrollLock/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useScrollLock/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useScrollLock/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useScrollLock/useScrollLock.d.ts +54 -0
- package/node_modules/@oneplatformdev/hooks/dist/useScrollLock/useScrollLock.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useScrollLock/useScrollLock.js +26 -0
- package/node_modules/@oneplatformdev/hooks/dist/useSessionStorage/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useSessionStorage/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useSessionStorage/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useSessionStorage/useSessionStorage.d.ts +39 -0
- package/node_modules/@oneplatformdev/hooks/dist/useSessionStorage/useSessionStorage.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useSessionStorage/useSessionStorage.js +65 -0
- package/node_modules/@oneplatformdev/hooks/dist/useStep/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useStep/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useStep/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useStep/useStep.d.ts +31 -0
- package/node_modules/@oneplatformdev/hooks/dist/useStep/useStep.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useStep/useStep.js +34 -0
- package/node_modules/@oneplatformdev/hooks/dist/useTernaryDarkMode/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useTernaryDarkMode/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useTernaryDarkMode/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useTernaryDarkMode/useTernaryDarkMode.d.ts +46 -0
- package/node_modules/@oneplatformdev/hooks/dist/useTernaryDarkMode/useTernaryDarkMode.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useTernaryDarkMode/useTernaryDarkMode.js +27 -0
- package/node_modules/@oneplatformdev/hooks/dist/useTimeout/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useTimeout/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useTimeout/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useTimeout/useTimeout.d.ts +17 -0
- package/node_modules/@oneplatformdev/hooks/dist/useTimeout/useTimeout.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useTimeout/useTimeout.js +20 -0
- package/node_modules/@oneplatformdev/hooks/dist/useToggle/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useToggle/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useToggle/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useToggle/useToggle.d.ts +18 -0
- package/node_modules/@oneplatformdev/hooks/dist/useToggle/useToggle.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useToggle/useToggle.js +10 -0
- package/node_modules/@oneplatformdev/hooks/dist/useUnmount/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useUnmount/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useUnmount/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useUnmount/useUnmount.d.ts +14 -0
- package/node_modules/@oneplatformdev/hooks/dist/useUnmount/useUnmount.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useUnmount/useUnmount.js +13 -0
- package/node_modules/@oneplatformdev/hooks/dist/useWindowSize/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/dist/useWindowSize/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useWindowSize/index.js +4 -0
- package/node_modules/@oneplatformdev/hooks/dist/useWindowSize/useWindowSize.d.ts +30 -0
- package/node_modules/@oneplatformdev/hooks/dist/useWindowSize/useWindowSize.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/hooks/dist/useWindowSize/useWindowSize.js +31 -0
- package/node_modules/@oneplatformdev/hooks/package.json +68 -0
- package/node_modules/@oneplatformdev/hooks/src/index.ts +36 -0
- package/node_modules/@oneplatformdev/hooks/src/useBoolean/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useBoolean/useBoolean.ts +50 -0
- package/node_modules/@oneplatformdev/hooks/src/useClickAnyWhere/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useClickAnyWhere/useClickAnyWhere.ts +22 -0
- package/node_modules/@oneplatformdev/hooks/src/useCopyToClipboard/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useCopyToClipboard/useCopyToClipboard.ts +58 -0
- package/node_modules/@oneplatformdev/hooks/src/useCountdown/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useCountdown/useCountdown.ts +102 -0
- package/node_modules/@oneplatformdev/hooks/src/useCounter/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useCounter/useCounter.ts +52 -0
- package/node_modules/@oneplatformdev/hooks/src/useDarkMode/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useDarkMode/useDarkMode.ts +92 -0
- package/node_modules/@oneplatformdev/hooks/src/useDebounceCallback/index.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/src/useDebounceCallback/useDebounceCallback.ts +115 -0
- package/node_modules/@oneplatformdev/hooks/src/useDebounceValue/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useDebounceValue/useDebounceValue.ts +67 -0
- package/node_modules/@oneplatformdev/hooks/src/useDocumentTitle/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useDocumentTitle/useDocumentTitle.ts +43 -0
- package/node_modules/@oneplatformdev/hooks/src/useEventCallback/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useEventCallback/useEventCallback.ts +40 -0
- package/node_modules/@oneplatformdev/hooks/src/useEventListener/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useEventListener/useEventListener.ts +121 -0
- package/node_modules/@oneplatformdev/hooks/src/useHover/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useHover/useHover.ts +37 -0
- package/node_modules/@oneplatformdev/hooks/src/useIntersectionObserver/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useIntersectionObserver/useIntersectionObserver.ts +186 -0
- package/node_modules/@oneplatformdev/hooks/src/useInterval/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useInterval/useInterval.ts +43 -0
- package/node_modules/@oneplatformdev/hooks/src/useIsClient/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useIsClient/useIsClient.ts +22 -0
- package/node_modules/@oneplatformdev/hooks/src/useIsMobile/index.ts +2 -0
- package/node_modules/@oneplatformdev/hooks/src/useIsMobile/types.ts +3 -0
- package/node_modules/@oneplatformdev/hooks/src/useIsMobile/useIsMobile.tsx +23 -0
- package/node_modules/@oneplatformdev/hooks/src/useIsMounted/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useIsMounted/useIsMounted.ts +15 -0
- package/node_modules/@oneplatformdev/hooks/src/useIsomorphicLayoutEffect/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.ts +17 -0
- package/node_modules/@oneplatformdev/hooks/src/useLocalStorage/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useLocalStorage/useLocalStorage.ts +191 -0
- package/node_modules/@oneplatformdev/hooks/src/useLockBody/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useLockBody/useLockBody.tsx +12 -0
- package/node_modules/@oneplatformdev/hooks/src/useMap/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useMap/useMap.ts +83 -0
- package/node_modules/@oneplatformdev/hooks/src/useMediaQuery/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useMediaQuery/useMediaQuery.ts +83 -0
- package/node_modules/@oneplatformdev/hooks/src/useOnClickOutside/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useOnClickOutside/useOnClickOutside.ts +61 -0
- package/node_modules/@oneplatformdev/hooks/src/useQueryString/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useQueryString/useQueryString.ts +26 -0
- package/node_modules/@oneplatformdev/hooks/src/useReadLocalStorage/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useReadLocalStorage/useReadLocalStorage.ts +122 -0
- package/node_modules/@oneplatformdev/hooks/src/useResizeObserver/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useResizeObserver/useResizeObserver.ts +131 -0
- package/node_modules/@oneplatformdev/hooks/src/useScreen/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useScreen/useScreen.ts +106 -0
- package/node_modules/@oneplatformdev/hooks/src/useScript/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useScript/useScript.ts +142 -0
- package/node_modules/@oneplatformdev/hooks/src/useScrollLock/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useScrollLock/useScrollLock.ts +141 -0
- package/node_modules/@oneplatformdev/hooks/src/useSessionStorage/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useSessionStorage/useSessionStorage.ts +191 -0
- package/node_modules/@oneplatformdev/hooks/src/useStep/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useStep/useStep.ts +83 -0
- package/node_modules/@oneplatformdev/hooks/src/useTernaryDarkMode/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useTernaryDarkMode/useTernaryDarkMode.ts +81 -0
- package/node_modules/@oneplatformdev/hooks/src/useTimeout/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useTimeout/useTimeout.ts +44 -0
- package/node_modules/@oneplatformdev/hooks/src/useToggle/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useToggle/useToggle.ts +30 -0
- package/node_modules/@oneplatformdev/hooks/src/useUnmount/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useUnmount/useUnmount.ts +26 -0
- package/node_modules/@oneplatformdev/hooks/src/useWindowSize/index.ts +1 -0
- package/node_modules/@oneplatformdev/hooks/src/useWindowSize/useWindowSize.ts +100 -0
- package/node_modules/@oneplatformdev/hooks/tsconfig.json +10 -0
- package/node_modules/@oneplatformdev/hooks/tsconfig.lib.json +33 -0
- package/node_modules/@oneplatformdev/hooks/vite.config.ts +62 -0
- package/node_modules/@oneplatformdev/utils/.babelrc +12 -0
- package/node_modules/@oneplatformdev/utils/CHANGELOG.md +23 -0
- package/node_modules/@oneplatformdev/utils/LICENSE +21 -0
- package/node_modules/@oneplatformdev/utils/README.md +7 -0
- package/node_modules/@oneplatformdev/utils/dist/CHANGELOG.md +19 -0
- package/node_modules/@oneplatformdev/utils/dist/LICENSE +21 -0
- package/node_modules/@oneplatformdev/utils/dist/README.md +7 -0
- package/node_modules/@oneplatformdev/utils/dist/cn/cn.d.ts +4 -0
- package/node_modules/@oneplatformdev/utils/dist/cn/cn.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/utils/dist/cn/cn.js +9 -0
- package/node_modules/@oneplatformdev/utils/dist/cn/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/utils/dist/cn/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/utils/dist/cn/index.js +5 -0
- package/node_modules/@oneplatformdev/utils/dist/composeRefs/composeRefs.d.ts +4 -0
- package/node_modules/@oneplatformdev/utils/dist/composeRefs/composeRefs.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/utils/dist/composeRefs/composeRefs.js +10 -0
- package/node_modules/@oneplatformdev/utils/dist/composeRefs/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/utils/dist/composeRefs/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/utils/dist/composeRefs/index.js +5 -0
- package/node_modules/@oneplatformdev/utils/dist/index.d.ts +4 -0
- package/node_modules/@oneplatformdev/utils/dist/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/utils/dist/index.js +6 -0
- package/node_modules/@oneplatformdev/utils/dist/package.json +64 -0
- package/node_modules/@oneplatformdev/utils/dist/types/PartialOne.d.ts +2 -0
- package/node_modules/@oneplatformdev/utils/dist/types/PartialOne.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/utils/dist/types/PartialOne.js +1 -0
- package/node_modules/@oneplatformdev/utils/dist/types/index.d.ts +2 -0
- package/node_modules/@oneplatformdev/utils/dist/types/index.d.ts.map +1 -0
- package/node_modules/@oneplatformdev/utils/dist/types/index.js +1 -0
- package/node_modules/@oneplatformdev/utils/package.json +64 -0
- package/node_modules/@oneplatformdev/utils/src/cn/cn.ts +7 -0
- package/node_modules/@oneplatformdev/utils/src/cn/index.ts +1 -0
- package/node_modules/@oneplatformdev/utils/src/composeRefs/composeRefs.ts +12 -0
- package/node_modules/@oneplatformdev/utils/src/composeRefs/index.ts +1 -0
- package/node_modules/@oneplatformdev/utils/src/index.ts +3 -0
- package/node_modules/@oneplatformdev/utils/src/types/PartialOne.ts +1 -0
- package/node_modules/@oneplatformdev/utils/src/types/index.ts +1 -0
- package/node_modules/@oneplatformdev/utils/tsconfig.json +10 -0
- package/node_modules/@oneplatformdev/utils/tsconfig.lib.json +34 -0
- package/node_modules/@oneplatformdev/utils/vite.config.ts +60 -0
- package/node_modules/@radix-ui/react-slot/README.md +13 -0
- package/node_modules/@radix-ui/react-slot/dist/index.d.mts +13 -0
- package/node_modules/@radix-ui/react-slot/dist/index.d.ts +13 -0
- package/node_modules/@radix-ui/react-slot/dist/index.js +118 -0
- package/node_modules/@radix-ui/react-slot/dist/index.js.map +7 -0
- package/node_modules/@radix-ui/react-slot/dist/index.mjs +85 -0
- package/node_modules/@radix-ui/react-slot/dist/index.mjs.map +7 -0
- package/node_modules/@radix-ui/react-slot/package.json +50 -0
- package/node_modules/@radix-ui/react-tooltip/LICENSE +21 -0
- package/node_modules/@radix-ui/react-tooltip/README.md +3 -0
- package/node_modules/@radix-ui/react-tooltip/dist/index.d.mts +101 -0
- package/node_modules/@radix-ui/react-tooltip/dist/index.d.ts +101 -0
- package/node_modules/@radix-ui/react-tooltip/dist/index.js +540 -0
- package/node_modules/@radix-ui/react-tooltip/dist/index.js.map +7 -0
- package/node_modules/@radix-ui/react-tooltip/dist/index.mjs +508 -0
- package/node_modules/@radix-ui/react-tooltip/dist/index.mjs.map +7 -0
- package/node_modules/@radix-ui/react-tooltip/package.json +79 -0
- package/package.json +4 -3
- package/src/Button/Button.stories.tsx +33 -0
- package/src/Button/Button.tsx +33 -0
- package/src/Button/Button.types.ts +11 -0
- package/src/Button/buttonVariants.ts +38 -0
- package/src/Button/index.ts +3 -0
- package/src/ButtonIcon/ButtonIcon.stories.tsx +186 -0
- package/src/ButtonIcon/ButtonIcon.tsx +28 -0
- package/src/ButtonIcon/ButtonIcon.types.ts +10 -0
- package/src/ButtonIcon/buttonIconVariants.ts +137 -0
- package/src/ButtonIcon/index.ts +3 -0
- package/src/Tooltip/Tooltip.tsx +20 -0
- package/src/Tooltip/Tooltip.types.tsx +9 -0
- package/src/Tooltip/TooltipRoot.tsx +32 -0
- package/src/Tooltip/index.ts +3 -0
- package/src/global.css +123 -0
- package/src/index.ts +5 -0
- package/src_old/Accordion/Accordion.tsx +62 -0
- package/src_old/Accordion/index.ts +1 -0
- package/src_old/Alert/Alert.tsx +42 -0
- package/src_old/Alert/alertVariants.ts +19 -0
- package/src_old/Alert/index.ts +1 -0
- package/src_old/AlertDialog/AlertDialog.stories.tsx +131 -0
- package/src_old/AlertDialog/AlertDialog.tsx +257 -0
- package/src_old/AlertDialog/AlertDialog.types.tsx +66 -0
- package/src_old/AlertDialog/AlertDialogRoot.tsx +141 -0
- package/src_old/AlertDialog/index.ts +15 -0
- package/src_old/AreaChart/AreaChart.tsx +39 -0
- package/src_old/AreaChart/AreaChart.types.ts +18 -0
- package/src_old/AreaChart/index.tsx +2 -0
- package/src_old/Aside/Aside.tsx +26 -0
- package/src_old/Aside/Aside.types.ts +21 -0
- package/src_old/Aside/AsideSidebar.tsx +78 -0
- package/src_old/Aside/index.ts +3 -0
- package/src_old/AspectRatio/AspectRatio.tsx +5 -0
- package/src_old/AspectRatio/index.ts +1 -0
- package/src_old/Avatar/Avatar.tsx +48 -0
- package/src_old/Avatar/index.ts +1 -0
- package/src_old/Badge/Badge.tsx +13 -0
- package/src_old/Badge/Badge.types.ts +8 -0
- package/src_old/Badge/badgeVariants.ts +21 -0
- package/src_old/Badge/index.ts +3 -0
- package/src_old/Breadcrumb/Breadcrumb.tsx +115 -0
- package/src_old/Breadcrumb/index.ts +1 -0
- package/src_old/Calendar/Calendar.tsx +77 -0
- package/src_old/Calendar/index.ts +1 -0
- package/src_old/Card/Card.tsx +77 -0
- package/src_old/Card/index.ts +1 -0
- package/src_old/Carousel/Carousel.tsx +262 -0
- package/src_old/Carousel/index.ts +1 -0
- package/src_old/Chart/Chart.tsx +365 -0
- package/src_old/Chart/index.ts +1 -0
- package/src_old/Checkbox/Checkbox.tsx +62 -0
- package/src_old/Checkbox/Checkbox.types.ts +15 -0
- package/src_old/Checkbox/index.ts +2 -0
- package/src_old/Collapsible/Collapsible.tsx +11 -0
- package/src_old/Collapsible/index.ts +1 -0
- package/src_old/Combobox/Combobox.tsx +256 -0
- package/src_old/Combobox/Combobox.types.ts +55 -0
- package/src_old/Combobox/ComboboxOptionItem.tsx +46 -0
- package/src_old/Combobox/ComboboxOptions.tsx +90 -0
- package/src_old/Combobox/index.tsx +2 -0
- package/src_old/Command/Command.tsx +161 -0
- package/src_old/Command/index.ts +1 -0
- package/src_old/DataTable/DataTable.tsx +118 -0
- package/src_old/DataTable/DataTable.types.tsx +14 -0
- package/src_old/DataTable/DataTableColumnFilter.tsx +57 -0
- package/src_old/DataTable/index.tsx +2 -0
- package/src_old/DataTable/useDataTable.ts +44 -0
- package/src_old/DatePicker/DatePicker.tsx +56 -0
- package/src_old/DatePicker/DatePicker.types.tsx +7 -0
- package/src_old/DatePicker/index.tsx +3 -0
- package/src_old/Dialog/Dialog.tsx +182 -0
- package/src_old/Dialog/DialogOverlayScope.tsx +19 -0
- package/src_old/Dialog/index.ts +2 -0
- package/src_old/Drawer/Drawer.tsx +118 -0
- package/src_old/Drawer/index.ts +1 -0
- package/src_old/DropdownMenu/DropdownMenu.tsx +206 -0
- package/src_old/DropdownMenu/index.ts +1 -0
- package/src_old/Dropzone/Dropzone.tsx +229 -0
- package/src_old/Dropzone/Dropzone.types.tsx +69 -0
- package/src_old/Dropzone/DropzoneFilePreview.tsx +69 -0
- package/src_old/Dropzone/DropzoneSinglePickPreview.tsx +64 -0
- package/src_old/Dropzone/DropzoneUtils.tsx +31 -0
- package/src_old/Dropzone/index.tsx +2 -0
- package/src_old/Form/Form.tsx +181 -0
- package/src_old/Form/FormRenderControl.tsx +23 -0
- package/src_old/Form/FormRenderControl.types.tsx +29 -0
- package/src_old/Form/index.ts +4 -0
- package/src_old/FormCheckbox/FormCheckbox.tsx +34 -0
- package/src_old/FormCheckbox/FormCheckbox.types.tsx +10 -0
- package/src_old/FormCheckbox/index.tsx +2 -0
- package/src_old/FormCombobox/FormCombobox.tsx +27 -0
- package/src_old/FormCombobox/FormCombobox.types.ts +7 -0
- package/src_old/FormCombobox/index.tsx +2 -0
- package/src_old/FormDatePicker/FormDatePicker.tsx +33 -0
- package/src_old/FormDatePicker/FormDatePicker.types.ts +9 -0
- package/src_old/FormDatePicker/index.tsx +3 -0
- package/src_old/FormDropzone/FormDropzone.tsx +23 -0
- package/src_old/FormDropzone/FormDropzone.types.ts +7 -0
- package/src_old/FormDropzone/index.tsx +2 -0
- package/src_old/FormInput/FormInput.tsx +109 -0
- package/src_old/FormInput/FormInput.types.tsx +7 -0
- package/src_old/FormInput/index.tsx +2 -0
- package/src_old/FormRadio/FormRadio.tsx +54 -0
- package/src_old/FormRadio/FormRadio.types.ts +11 -0
- package/src_old/FormRadio/index.ts +2 -0
- package/src_old/FormSelect/FormSelect.tsx +44 -0
- package/src_old/FormSelect/FormSelect.types.ts +8 -0
- package/src_old/FormSelect/index.tsx +2 -0
- package/src_old/FormTextarea/FormTextarea.tsx +28 -0
- package/src_old/FormTextarea/FormTextarea.types.tsx +7 -0
- package/src_old/FormTextarea/index.tsx +2 -0
- package/src_old/Header/Header.tsx +34 -0
- package/src_old/Header/Header.types.tsx +3 -0
- package/src_old/Header/index.ts +2 -0
- package/src_old/HoverCard/HoverCard.tsx +29 -0
- package/src_old/HoverCard/index.ts +1 -0
- package/src_old/Input/Input.tsx +95 -0
- package/src_old/Input/Input.types.ts +26 -0
- package/src_old/Input/index.ts +3 -0
- package/src_old/Input/inputVariants.tsx +22 -0
- package/src_old/InputOTP/InputOTP.tsx +71 -0
- package/src_old/InputOTP/index.ts +1 -0
- package/src_old/Label/Label.tsx +23 -0
- package/src_old/Label/index.ts +2 -0
- package/src_old/Label/labelVariants.ts +8 -0
- package/src_old/LazyLoader/LazyLoader.tsx +30 -0
- package/src_old/LazyLoader/index.ts +1 -0
- package/src_old/LoadedIcon/LoadedIcon.tsx +36 -0
- package/src_old/LoadedIcon/index.ts +1 -0
- package/src_old/LoadingMask/LoadingMask.tsx +21 -0
- package/src_old/LoadingMask/LoadingMask.types.ts +5 -0
- package/src_old/LoadingMask/RenderLoadingMask.tsx +80 -0
- package/src_old/LoadingMask/index.ts +3 -0
- package/src_old/LoadingProgress/LoadingProgress.tsx +36 -0
- package/src_old/LoadingProgress/LoadingProgress.types.tsx +8 -0
- package/src_old/LoadingProgress/index.ts +3 -0
- package/src_old/LoadingProgress/loadingProgressVariants.ts +22 -0
- package/src_old/Menubar/Menubar.tsx +232 -0
- package/src_old/Menubar/index.ts +1 -0
- package/src_old/NavigationMenu/NavigationMenu.tsx +123 -0
- package/src_old/NavigationMenu/index.ts +2 -0
- package/src_old/NavigationMenu/navigationMenuVariants.ts +5 -0
- package/src_old/Pagination/Pagination.tsx +117 -0
- package/src_old/Pagination/index.ts +1 -0
- package/src_old/Popover/Popover.tsx +47 -0
- package/src_old/Popover/index.ts +1 -0
- package/src_old/Progress/Progress.tsx +28 -0
- package/src_old/Progress/index.ts +1 -0
- package/src_old/Radio/Radio.tsx +23 -0
- package/src_old/Radio/Radio.types.ts +17 -0
- package/src_old/Radio/index.ts +2 -0
- package/src_old/RadioGroup/RadioGroup.tsx +67 -0
- package/src_old/RadioGroup/index.ts +1 -0
- package/src_old/Resizable/Resizable.tsx +45 -0
- package/src_old/Resizable/index.ts +1 -0
- package/src_old/ScrollArea/ScrollArea.tsx +58 -0
- package/src_old/ScrollArea/index.ts +1 -0
- package/src_old/Search/Search.tsx +57 -0
- package/src_old/Search/Search.types.tsx +9 -0
- package/src_old/Search/index.tsx +3 -0
- package/src_old/Select/Select.stories.tsx +45 -0
- package/src_old/Select/Select.tsx +171 -0
- package/src_old/Select/Select.types.ts +46 -0
- package/src_old/Select/SelectRoot.tsx +164 -0
- package/src_old/Select/index.ts +3 -0
- package/src_old/Separator/Separator.tsx +31 -0
- package/src_old/Separator/index.ts +1 -0
- package/src_old/Sheet/Sheet.tsx +144 -0
- package/src_old/Sheet/index.ts +1 -0
- package/src_old/Sidebar/Sidebar.tsx +763 -0
- package/src_old/Sidebar/index.ts +1 -0
- package/src_old/Skeleton/Skeleton.tsx +17 -0
- package/src_old/Skeleton/index.ts +1 -0
- package/src_old/Slider/Slider.tsx +28 -0
- package/src_old/Slider/index.ts +1 -0
- package/src_old/Sonner/Sonner.tsx +31 -0
- package/src_old/Sonner/index.ts +1 -0
- package/src_old/Switch/Switch.tsx +29 -0
- package/src_old/Switch/index.ts +1 -0
- package/src_old/Table/Table.tsx +120 -0
- package/src_old/Table/index.ts +1 -0
- package/src_old/TablePagination/TablePagination.tsx +96 -0
- package/src_old/TablePagination/index.ts +1 -0
- package/src_old/Tabs/Tabs.tsx +35 -0
- package/src_old/Tabs/Tabs.types.tsx +13 -0
- package/src_old/Tabs/TabsRoot.tsx +55 -0
- package/src_old/Tabs/index.ts +2 -0
- package/src_old/Textarea/Textarea.tsx +78 -0
- package/src_old/Textarea/Textarea.types.tsx +21 -0
- package/src_old/Textarea/index.ts +2 -0
- package/src_old/Textarea/useAutosizeTextArea.ts +33 -0
- package/src_old/Theme/ThemeModeToggle.tsx +71 -0
- package/src_old/Theme/ThemeProvider.tsx +29 -0
- package/src_old/Theme/index.ts +2 -0
- package/src_old/Toast/Toast.tsx +109 -0
- package/src_old/Toast/Toast.types.tsx +45 -0
- package/src_old/Toast/index.ts +3 -0
- package/src_old/Toast/toast.constants.tsx +6 -0
- package/src_old/Toast/toastVariants.ts +20 -0
- package/src_old/Toast/useToast.ts +156 -0
- package/src_old/Toaster/Toaster.tsx +35 -0
- package/src_old/Toaster/index.ts +1 -0
- package/src_old/Toggle/Toggle.tsx +45 -0
- package/src_old/Toggle/index.ts +1 -0
- package/src_old/ToggleGroup/ToggleGroup.tsx +61 -0
- package/src_old/ToggleGroup/index.ts +1 -0
- package/src_old/global.css +275 -0
- package/src_old/index.ts +72 -0
- package/tsconfig.json +16 -0
- package/tsconfig.lib.json +41 -0
- package/vite.config.ts +67 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { useState } from 'react'
|
|
2
|
+
|
|
3
|
+
import { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect'
|
|
4
|
+
|
|
5
|
+
/** Hook options. */
|
|
6
|
+
type UseMediaQueryOptions = {
|
|
7
|
+
/**
|
|
8
|
+
* The default value to return if the hook is being run on the server.
|
|
9
|
+
* @default false
|
|
10
|
+
*/
|
|
11
|
+
defaultValue?: boolean
|
|
12
|
+
/**
|
|
13
|
+
* If `true` (default), the hook will initialize reading the media query. In SSR, you should set it to `false`, returning `options.defaultValue` or `false` initially.
|
|
14
|
+
* @default true
|
|
15
|
+
*/
|
|
16
|
+
initializeWithValue?: boolean
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const IS_SERVER = typeof window === 'undefined'
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Custom hook that tracks the state of a media query using the [`Match Media API`](https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia).
|
|
23
|
+
* @param {string} query - The media query to track.
|
|
24
|
+
* @param {?UseMediaQueryOptions} [options] - The options for customizing the behavior of the hook (optional).
|
|
25
|
+
* @returns {boolean} The current state of the media query (true if the query matches, false otherwise).
|
|
26
|
+
* @public
|
|
27
|
+
* @see [Documentation](https://usehooks-ts.com/react-hook/use-media-query)
|
|
28
|
+
* @example
|
|
29
|
+
* ```tsx
|
|
30
|
+
* const isSmallScreen = useMediaQuery('(max-width: 600px)');
|
|
31
|
+
* // Use `isSmallScreen` to conditionally apply styles or logic based on the screen size.
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export function useMediaQuery(
|
|
35
|
+
query: string,
|
|
36
|
+
{
|
|
37
|
+
defaultValue = false,
|
|
38
|
+
initializeWithValue = true,
|
|
39
|
+
}: UseMediaQueryOptions = {},
|
|
40
|
+
): boolean {
|
|
41
|
+
const getMatches = (query: string): boolean => {
|
|
42
|
+
if (IS_SERVER) {
|
|
43
|
+
return defaultValue
|
|
44
|
+
}
|
|
45
|
+
return window.matchMedia(query).matches
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const [matches, setMatches] = useState<boolean>(() => {
|
|
49
|
+
if (initializeWithValue) {
|
|
50
|
+
return getMatches(query)
|
|
51
|
+
}
|
|
52
|
+
return defaultValue
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
// Handles the change event of the media query.
|
|
56
|
+
function handleChange() {
|
|
57
|
+
setMatches(getMatches(query))
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
useIsomorphicLayoutEffect(() => {
|
|
61
|
+
const matchMedia = window.matchMedia(query)
|
|
62
|
+
|
|
63
|
+
// Triggered at the first client-side load and if query changes
|
|
64
|
+
handleChange()
|
|
65
|
+
|
|
66
|
+
// Use deprecated `addListener` and `removeListener` to support Safari < 14 (#135)
|
|
67
|
+
if (matchMedia.addListener) {
|
|
68
|
+
matchMedia.addListener(handleChange)
|
|
69
|
+
} else {
|
|
70
|
+
matchMedia.addEventListener('change', handleChange)
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return () => {
|
|
74
|
+
if (matchMedia.removeListener) {
|
|
75
|
+
matchMedia.removeListener(handleChange)
|
|
76
|
+
} else {
|
|
77
|
+
matchMedia.removeEventListener('change', handleChange)
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}, [query])
|
|
81
|
+
|
|
82
|
+
return matches
|
|
83
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useOnClickOutside'
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { RefObject } from 'react'
|
|
2
|
+
|
|
3
|
+
import { useEventListener } from '../useEventListener'
|
|
4
|
+
|
|
5
|
+
/** Supported event types. */
|
|
6
|
+
type EventType =
|
|
7
|
+
| 'mousedown'
|
|
8
|
+
| 'mouseup'
|
|
9
|
+
| 'touchstart'
|
|
10
|
+
| 'touchend'
|
|
11
|
+
| 'focusin'
|
|
12
|
+
| 'focusout'
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Custom hook that handles clicks outside a specified element.
|
|
16
|
+
* @template T - The type of the element's reference.
|
|
17
|
+
* @param {RefObject<T> | RefObject<T>[]} ref - The React ref object(s) representing the element(s) to watch for outside clicks.
|
|
18
|
+
* @param {(event: MouseEvent | TouchEvent | FocusEvent) => void} handler - The callback function to be executed when a click outside the element occurs.
|
|
19
|
+
* @param {EventType} [eventType] - The mouse event type to listen for (optional, default is 'mousedown').
|
|
20
|
+
* @param {?AddEventListenerOptions} [eventListenerOptions] - The options object to be passed to the `addEventListener` method (optional).
|
|
21
|
+
* @returns {void}
|
|
22
|
+
* @public
|
|
23
|
+
* @see [Documentation](https://usehooks-ts.com/react-hook/use-on-click-outside)
|
|
24
|
+
* @example
|
|
25
|
+
* ```tsx
|
|
26
|
+
* const containerRef = useRef(null);
|
|
27
|
+
* useOnClickOutside([containerRef], () => {
|
|
28
|
+
* // Handle clicks outside the container.
|
|
29
|
+
* });
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export function useOnClickOutside<T extends HTMLElement = HTMLElement>(
|
|
33
|
+
ref: RefObject<T> | RefObject<T>[],
|
|
34
|
+
handler: (event: MouseEvent | TouchEvent | FocusEvent) => void,
|
|
35
|
+
eventType: EventType = 'mousedown',
|
|
36
|
+
eventListenerOptions: AddEventListenerOptions = {},
|
|
37
|
+
): void {
|
|
38
|
+
useEventListener(
|
|
39
|
+
eventType,
|
|
40
|
+
event => {
|
|
41
|
+
const target = event.target as Node
|
|
42
|
+
|
|
43
|
+
// Do nothing if the target is not connected element with document
|
|
44
|
+
if (!target || !target.isConnected) {
|
|
45
|
+
return
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const isOutside = Array.isArray(ref)
|
|
49
|
+
? ref
|
|
50
|
+
.filter(r => Boolean(r.current))
|
|
51
|
+
.every(r => r.current && !r.current.contains(target))
|
|
52
|
+
: ref.current && !ref.current.contains(target)
|
|
53
|
+
|
|
54
|
+
if (isOutside) {
|
|
55
|
+
handler(event)
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
undefined,
|
|
59
|
+
eventListenerOptions,
|
|
60
|
+
)
|
|
61
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./useQueryString"
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
|
|
3
|
+
type Nullable<T> = {
|
|
4
|
+
[P in keyof T]: T[P] | null;
|
|
5
|
+
};
|
|
6
|
+
type QueryParamsValue = Nullable<string | number | boolean | undefined>
|
|
7
|
+
type QueryParams = Record<string, QueryParamsValue>
|
|
8
|
+
|
|
9
|
+
export const useQueryString = (searchParams: URLSearchParams) => {
|
|
10
|
+
|
|
11
|
+
const createQueryString = useCallback((baseUrl: string, params: QueryParams) => {
|
|
12
|
+
const newSearchParams = new URLSearchParams(searchParams?.toString());
|
|
13
|
+
|
|
14
|
+
Object.entries(params).forEach(([key, value]) => {
|
|
15
|
+
if (value === null || value === "" || value === undefined) {
|
|
16
|
+
newSearchParams.delete(key);
|
|
17
|
+
} else {
|
|
18
|
+
newSearchParams.set(key, String(value));
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
return `${baseUrl}?${newSearchParams.toString()}`;
|
|
23
|
+
}, [searchParams],);
|
|
24
|
+
|
|
25
|
+
return { createQueryString, };
|
|
26
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useReadLocalStorage'
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { useCallback, useEffect, useState } from 'react'
|
|
2
|
+
|
|
3
|
+
import { useEventListener } from '../useEventListener'
|
|
4
|
+
|
|
5
|
+
const IS_SERVER = typeof window === 'undefined'
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Represents the type for the options available when reading from local storage.
|
|
9
|
+
* @template T - The type of the stored value.
|
|
10
|
+
*/
|
|
11
|
+
type Options<T, InitializeWithValue extends boolean | undefined> = {
|
|
12
|
+
/** Custom deserializer function to convert the stored string value to the desired type (optional). */
|
|
13
|
+
deserializer?: (value: string) => T
|
|
14
|
+
/** If `true` (default), the hook will initialize reading the local storage. In SSR, you should set it to `false`, returning `undefined` initially. */
|
|
15
|
+
initializeWithValue: InitializeWithValue
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// SSR version
|
|
19
|
+
export function useReadLocalStorage<T>(
|
|
20
|
+
key: string,
|
|
21
|
+
options: Options<T, false>,
|
|
22
|
+
): T | null | undefined
|
|
23
|
+
// CSR version
|
|
24
|
+
export function useReadLocalStorage<T>(
|
|
25
|
+
key: string,
|
|
26
|
+
options?: Partial<Options<T, true>>,
|
|
27
|
+
): T | null
|
|
28
|
+
/**
|
|
29
|
+
* Custom hook that reads a value from [`localStorage`](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage), closely related to [`useLocalStorage()`](https://usehooks-ts.com/react-hook/use-local-storage).
|
|
30
|
+
* @template T - The type of the stored value.
|
|
31
|
+
* @param {string} key - The key associated with the value in local storage.
|
|
32
|
+
* @param {Options<T>} [options] - Additional options for reading the value (optional).
|
|
33
|
+
* @returns {T | null | undefined} The stored value, or null if the key is not present or an error occurs.
|
|
34
|
+
* @public
|
|
35
|
+
* @see [Documentation](https://usehooks-ts.com/react-hook/use-read-local-storage)
|
|
36
|
+
* @example
|
|
37
|
+
* ```tsx
|
|
38
|
+
* const storedData = useReadLocalStorage('myKey');
|
|
39
|
+
* // Access the stored data from local storage.
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export function useReadLocalStorage<T>(
|
|
43
|
+
key: string,
|
|
44
|
+
options: Partial<Options<T, boolean>> = {},
|
|
45
|
+
): T | null | undefined {
|
|
46
|
+
let { initializeWithValue = true } = options
|
|
47
|
+
if (IS_SERVER) {
|
|
48
|
+
initializeWithValue = false
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const deserializer = useCallback<(value: string) => T | null>(
|
|
52
|
+
value => {
|
|
53
|
+
if (options.deserializer) {
|
|
54
|
+
return options.deserializer(value)
|
|
55
|
+
}
|
|
56
|
+
// Support 'undefined' as a value
|
|
57
|
+
if (value === 'undefined') {
|
|
58
|
+
return undefined as unknown as T
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
let parsed: unknown
|
|
62
|
+
try {
|
|
63
|
+
parsed = JSON.parse(value)
|
|
64
|
+
} catch (error) {
|
|
65
|
+
console.error('Error parsing JSON:', error)
|
|
66
|
+
return null
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return parsed as T
|
|
70
|
+
},
|
|
71
|
+
[options],
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
// Get from local storage then
|
|
75
|
+
// parse stored json or return initialValue
|
|
76
|
+
const readValue = useCallback((): T | null => {
|
|
77
|
+
// Prevent build error "window is undefined" but keep keep working
|
|
78
|
+
if (IS_SERVER) {
|
|
79
|
+
return null
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
try {
|
|
83
|
+
const raw = window.localStorage.getItem(key)
|
|
84
|
+
return raw ? deserializer(raw) : null
|
|
85
|
+
} catch (error) {
|
|
86
|
+
console.warn(`Error reading localStorage key “${key}”:`, error)
|
|
87
|
+
return null
|
|
88
|
+
}
|
|
89
|
+
}, [key, deserializer])
|
|
90
|
+
|
|
91
|
+
const [storedValue, setStoredValue] = useState(() => {
|
|
92
|
+
if (initializeWithValue) {
|
|
93
|
+
return readValue()
|
|
94
|
+
}
|
|
95
|
+
return undefined
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
// Listen if localStorage changes
|
|
99
|
+
useEffect(() => {
|
|
100
|
+
setStoredValue(readValue())
|
|
101
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
102
|
+
}, [key])
|
|
103
|
+
|
|
104
|
+
const handleStorageChange = useCallback(
|
|
105
|
+
(event: StorageEvent | CustomEvent) => {
|
|
106
|
+
if ((event as StorageEvent).key && (event as StorageEvent).key !== key) {
|
|
107
|
+
return
|
|
108
|
+
}
|
|
109
|
+
setStoredValue(readValue())
|
|
110
|
+
},
|
|
111
|
+
[key, readValue],
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
// this only works for other documents, not the current one
|
|
115
|
+
useEventListener('storage', handleStorageChange)
|
|
116
|
+
|
|
117
|
+
// this is a custom event, triggered in writeValueToLocalStorage
|
|
118
|
+
// See: useLocalStorage()
|
|
119
|
+
useEventListener('local-storage', handleStorageChange)
|
|
120
|
+
|
|
121
|
+
return storedValue
|
|
122
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useResizeObserver'
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { useEffect, useRef, useState } from 'react'
|
|
2
|
+
|
|
3
|
+
import type { RefObject } from 'react'
|
|
4
|
+
|
|
5
|
+
import { useIsMounted } from '../useIsMounted'
|
|
6
|
+
|
|
7
|
+
/** The size of the observed element. */
|
|
8
|
+
type Size = {
|
|
9
|
+
/** The width of the observed element. */
|
|
10
|
+
width: number | undefined
|
|
11
|
+
/** The height of the observed element. */
|
|
12
|
+
height: number | undefined
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/** The options for the ResizeObserver. */
|
|
16
|
+
type UseResizeObserverOptions<T extends HTMLElement = HTMLElement> = {
|
|
17
|
+
/** The ref of the element to observe. */
|
|
18
|
+
ref: RefObject<T>
|
|
19
|
+
/**
|
|
20
|
+
* When using `onResize`, the hook doesn't re-render on element size changes; it delegates handling to the provided callback.
|
|
21
|
+
* @default undefined
|
|
22
|
+
*/
|
|
23
|
+
onResize?: (size: Size) => void
|
|
24
|
+
/**
|
|
25
|
+
* The box model to use for the ResizeObserver.
|
|
26
|
+
* @default 'content-box'
|
|
27
|
+
*/
|
|
28
|
+
box?: 'border-box' | 'content-box' | 'device-pixel-content-box'
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const initialSize: Size = {
|
|
32
|
+
width: undefined,
|
|
33
|
+
height: undefined,
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Custom hook that observes the size of an element using the [`ResizeObserver API`](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver).
|
|
38
|
+
* @template T - The type of the element to observe.
|
|
39
|
+
* @param {UseResizeObserverOptions<T>} options - The options for the ResizeObserver.
|
|
40
|
+
* @returns {Size} - The size of the observed element.
|
|
41
|
+
* @public
|
|
42
|
+
* @see [Documentation](https://usehooks-ts.com/react-hook/use-resize-observer)
|
|
43
|
+
* @example
|
|
44
|
+
* ```tsx
|
|
45
|
+
* const myRef = useRef(null);
|
|
46
|
+
* const { width = 0, height = 0 } = useResizeObserver({
|
|
47
|
+
* ref: myRef,
|
|
48
|
+
* box: 'content-box',
|
|
49
|
+
* });
|
|
50
|
+
*
|
|
51
|
+
* <div ref={myRef}>Hello, world!</div>
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export function useResizeObserver<T extends HTMLElement = HTMLElement>(
|
|
55
|
+
options: UseResizeObserverOptions<T>,
|
|
56
|
+
): Size {
|
|
57
|
+
const { ref, box = 'content-box' } = options
|
|
58
|
+
const [{ width, height }, setSize] = useState<Size>(initialSize)
|
|
59
|
+
const isMounted = useIsMounted()
|
|
60
|
+
const previousSize = useRef<Size>({ ...initialSize })
|
|
61
|
+
const onResize = useRef<((size: Size) => void) | undefined>(undefined)
|
|
62
|
+
onResize.current = options.onResize
|
|
63
|
+
|
|
64
|
+
useEffect(() => {
|
|
65
|
+
if (!ref.current) return
|
|
66
|
+
|
|
67
|
+
if (typeof window === 'undefined' || !('ResizeObserver' in window)) return
|
|
68
|
+
|
|
69
|
+
const observer = new ResizeObserver(([entry]) => {
|
|
70
|
+
const boxProp =
|
|
71
|
+
box === 'border-box'
|
|
72
|
+
? 'borderBoxSize'
|
|
73
|
+
: box === 'device-pixel-content-box'
|
|
74
|
+
? 'devicePixelContentBoxSize'
|
|
75
|
+
: 'contentBoxSize'
|
|
76
|
+
|
|
77
|
+
const newWidth = extractSize(entry, boxProp, 'inlineSize')
|
|
78
|
+
const newHeight = extractSize(entry, boxProp, 'blockSize')
|
|
79
|
+
|
|
80
|
+
const hasChanged =
|
|
81
|
+
previousSize.current.width !== newWidth ||
|
|
82
|
+
previousSize.current.height !== newHeight
|
|
83
|
+
|
|
84
|
+
if (hasChanged) {
|
|
85
|
+
const newSize: Size = { width: newWidth, height: newHeight }
|
|
86
|
+
previousSize.current.width = newWidth
|
|
87
|
+
previousSize.current.height = newHeight
|
|
88
|
+
|
|
89
|
+
if (onResize.current) {
|
|
90
|
+
onResize.current(newSize)
|
|
91
|
+
} else {
|
|
92
|
+
if (isMounted()) {
|
|
93
|
+
setSize(newSize)
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
})
|
|
98
|
+
|
|
99
|
+
observer.observe(ref.current, { box })
|
|
100
|
+
|
|
101
|
+
return () => {
|
|
102
|
+
observer.disconnect()
|
|
103
|
+
}
|
|
104
|
+
}, [box, ref, isMounted])
|
|
105
|
+
|
|
106
|
+
return { width, height }
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/** @private */
|
|
110
|
+
type BoxSizesKey = keyof Pick<
|
|
111
|
+
ResizeObserverEntry,
|
|
112
|
+
'borderBoxSize' | 'contentBoxSize' | 'devicePixelContentBoxSize'
|
|
113
|
+
>
|
|
114
|
+
|
|
115
|
+
function extractSize(
|
|
116
|
+
entry: ResizeObserverEntry,
|
|
117
|
+
box: BoxSizesKey,
|
|
118
|
+
sizeType: keyof ResizeObserverSize,
|
|
119
|
+
): number | undefined {
|
|
120
|
+
if (!entry[box]) {
|
|
121
|
+
if (box === 'contentBoxSize') {
|
|
122
|
+
return entry.contentRect[sizeType === 'inlineSize' ? 'width' : 'height']
|
|
123
|
+
}
|
|
124
|
+
return undefined
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
return Array.isArray(entry[box])
|
|
128
|
+
? entry[box][0][sizeType]
|
|
129
|
+
: // @ts-ignore Support Firefox's non-standard behavior
|
|
130
|
+
(entry[box][sizeType] as number)
|
|
131
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useScreen'
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { useState } from 'react'
|
|
2
|
+
|
|
3
|
+
import { useDebounceCallback } from '../useDebounceCallback'
|
|
4
|
+
import { useEventListener } from '../useEventListener'
|
|
5
|
+
import { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect'
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* The hooks options.
|
|
9
|
+
* @template InitializeWithValue - If `true` (default), the hook will initialize reading the screen dimensions. In SSR, you should set it to `false`, returning `undefined` initially.
|
|
10
|
+
*/
|
|
11
|
+
type UseScreenOptions<InitializeWithValue extends boolean | undefined> = {
|
|
12
|
+
/**
|
|
13
|
+
* If `true` (default), the hook will initialize reading the screen dimensions. In SSR, you should set it to `false`, returning `undefined` initially.
|
|
14
|
+
* @default true
|
|
15
|
+
*/
|
|
16
|
+
initializeWithValue: InitializeWithValue
|
|
17
|
+
/**
|
|
18
|
+
* The delay in milliseconds before the state is updated (disabled by default for retro-compatibility).
|
|
19
|
+
* @default undefined
|
|
20
|
+
*/
|
|
21
|
+
debounceDelay?: number
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const IS_SERVER = typeof window === 'undefined'
|
|
25
|
+
|
|
26
|
+
// SSR version of useScreen.
|
|
27
|
+
export function useScreen(options: UseScreenOptions<false>): Screen | undefined
|
|
28
|
+
// CSR version of useScreen.
|
|
29
|
+
export function useScreen(options?: Partial<UseScreenOptions<true>>): Screen
|
|
30
|
+
/**
|
|
31
|
+
* Custom hook that tracks the [`screen`](https://developer.mozilla.org/en-US/docs/Web/API/Window/screen) dimensions and properties.
|
|
32
|
+
* @param {?UseScreenOptions} [options] - The options for customizing the behavior of the hook (optional).
|
|
33
|
+
* @returns {Screen | undefined} The current `Screen` object representing the screen dimensions and properties, or `undefined` if not available.
|
|
34
|
+
* @public
|
|
35
|
+
* @see [Documentation](https://usehooks-ts.com/react-hook/use-screen)
|
|
36
|
+
* @example
|
|
37
|
+
* ```tsx
|
|
38
|
+
* const currentScreen = useScreen();
|
|
39
|
+
* // Access properties of the current screen, such as width and height.
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export function useScreen(
|
|
43
|
+
options: Partial<UseScreenOptions<boolean>> = {},
|
|
44
|
+
): Screen | undefined {
|
|
45
|
+
let { initializeWithValue = true } = options
|
|
46
|
+
if (IS_SERVER) {
|
|
47
|
+
initializeWithValue = false
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const readScreen = () => {
|
|
51
|
+
if (IS_SERVER) {
|
|
52
|
+
return undefined
|
|
53
|
+
}
|
|
54
|
+
return window.screen
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const [screen, setScreen] = useState<Screen | undefined>(() => {
|
|
58
|
+
if (initializeWithValue) {
|
|
59
|
+
return readScreen()
|
|
60
|
+
}
|
|
61
|
+
return undefined
|
|
62
|
+
})
|
|
63
|
+
|
|
64
|
+
const debouncedSetScreen = useDebounceCallback(
|
|
65
|
+
setScreen,
|
|
66
|
+
options.debounceDelay,
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
// Handles the resize event of the window.
|
|
70
|
+
function handleSize() {
|
|
71
|
+
const newScreen = readScreen()
|
|
72
|
+
const setSize = options.debounceDelay ? debouncedSetScreen : setScreen
|
|
73
|
+
|
|
74
|
+
if (newScreen) {
|
|
75
|
+
// Create a shallow clone to trigger a re-render (#280).
|
|
76
|
+
const {
|
|
77
|
+
width,
|
|
78
|
+
height,
|
|
79
|
+
availHeight,
|
|
80
|
+
availWidth,
|
|
81
|
+
colorDepth,
|
|
82
|
+
orientation,
|
|
83
|
+
pixelDepth,
|
|
84
|
+
} = newScreen
|
|
85
|
+
|
|
86
|
+
setSize({
|
|
87
|
+
width,
|
|
88
|
+
height,
|
|
89
|
+
availHeight,
|
|
90
|
+
availWidth,
|
|
91
|
+
colorDepth,
|
|
92
|
+
orientation,
|
|
93
|
+
pixelDepth,
|
|
94
|
+
})
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
useEventListener('resize', handleSize)
|
|
99
|
+
|
|
100
|
+
// Set size at the first client-side load
|
|
101
|
+
useIsomorphicLayoutEffect(() => {
|
|
102
|
+
handleSize()
|
|
103
|
+
}, [])
|
|
104
|
+
|
|
105
|
+
return screen
|
|
106
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useScript'
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react'
|
|
2
|
+
|
|
3
|
+
/** Script loading status. */
|
|
4
|
+
type UseScriptStatus = 'idle' | 'loading' | 'ready' | 'error'
|
|
5
|
+
|
|
6
|
+
/** Hook options. */
|
|
7
|
+
type UseScriptOptions = {
|
|
8
|
+
/** If `true`, prevents the script from being loaded (optional). */
|
|
9
|
+
shouldPreventLoad?: boolean
|
|
10
|
+
/** If `true`, removes the script from the DOM when the component unmounts (optional). */
|
|
11
|
+
removeOnUnmount?: boolean
|
|
12
|
+
/** Script's `id` (optional). */
|
|
13
|
+
id?: string
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// Cached script statuses
|
|
17
|
+
const cachedScriptStatuses = new Map<string, UseScriptStatus | undefined>()
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Gets the script element with the specified source URL.
|
|
21
|
+
* @param {string} src - The source URL of the script to get.
|
|
22
|
+
* @returns {{ node: HTMLScriptElement | null, status: UseScriptStatus | undefined }} The script element and its loading status.
|
|
23
|
+
* @public
|
|
24
|
+
* @example
|
|
25
|
+
* ```tsx
|
|
26
|
+
* const script = getScriptNode(src);
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
function getScriptNode(src: string) {
|
|
30
|
+
const node: HTMLScriptElement | null = document.querySelector(
|
|
31
|
+
`script[src="${src}"]`,
|
|
32
|
+
)
|
|
33
|
+
const status = node?.getAttribute('data-status') as
|
|
34
|
+
| UseScriptStatus
|
|
35
|
+
| undefined
|
|
36
|
+
|
|
37
|
+
return {
|
|
38
|
+
node,
|
|
39
|
+
status,
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Custom hook that dynamically loads scripts and tracking their loading status.
|
|
45
|
+
* @param {string | null} src - The source URL of the script to load. Set to `null` or omit to prevent loading (optional).
|
|
46
|
+
* @param {UseScriptOptions} [options] - Additional options for controlling script loading (optional).
|
|
47
|
+
* @returns {UseScriptStatus} The status of the script loading, which can be one of 'idle', 'loading', 'ready', or 'error'.
|
|
48
|
+
* @see [Documentation](https://usehooks-ts.com/react-hook/use-script)
|
|
49
|
+
* @example
|
|
50
|
+
* const scriptStatus = useScript('https://example.com/script.js', { removeOnUnmount: true });
|
|
51
|
+
* // Access the status of the script loading (e.g., 'loading', 'ready', 'error').
|
|
52
|
+
*/
|
|
53
|
+
export function useScript(
|
|
54
|
+
src: string | null,
|
|
55
|
+
options?: UseScriptOptions,
|
|
56
|
+
): UseScriptStatus {
|
|
57
|
+
const [status, setStatus] = useState<UseScriptStatus>(() => {
|
|
58
|
+
if (!src || options?.shouldPreventLoad) {
|
|
59
|
+
return 'idle'
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (typeof window === 'undefined') {
|
|
63
|
+
// SSR Handling - always return 'loading'
|
|
64
|
+
return 'loading'
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return cachedScriptStatuses.get(src) ?? 'loading'
|
|
68
|
+
})
|
|
69
|
+
|
|
70
|
+
useEffect(() => {
|
|
71
|
+
if (!src || options?.shouldPreventLoad) {
|
|
72
|
+
return
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const cachedScriptStatus = cachedScriptStatuses.get(src)
|
|
76
|
+
if (cachedScriptStatus === 'ready' || cachedScriptStatus === 'error') {
|
|
77
|
+
// If the script is already cached, set its status immediately
|
|
78
|
+
setStatus(cachedScriptStatus)
|
|
79
|
+
return
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// Fetch existing script element by src
|
|
83
|
+
// It may have been added by another instance of this hook
|
|
84
|
+
const script = getScriptNode(src)
|
|
85
|
+
let scriptNode = script.node
|
|
86
|
+
|
|
87
|
+
if (!scriptNode) {
|
|
88
|
+
// Create script element and add it to document body
|
|
89
|
+
scriptNode = document.createElement('script')
|
|
90
|
+
scriptNode.src = src
|
|
91
|
+
scriptNode.async = true
|
|
92
|
+
if (options?.id) {
|
|
93
|
+
scriptNode.id = options.id
|
|
94
|
+
}
|
|
95
|
+
scriptNode.setAttribute('data-status', 'loading')
|
|
96
|
+
document.body.appendChild(scriptNode)
|
|
97
|
+
|
|
98
|
+
// Store status in attribute on script
|
|
99
|
+
// This can be read by other instances of this hook
|
|
100
|
+
const setAttributeFromEvent = (event: Event) => {
|
|
101
|
+
const scriptStatus: UseScriptStatus =
|
|
102
|
+
event.type === 'load' ? 'ready' : 'error'
|
|
103
|
+
|
|
104
|
+
scriptNode?.setAttribute('data-status', scriptStatus)
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
scriptNode.addEventListener('load', setAttributeFromEvent)
|
|
108
|
+
scriptNode.addEventListener('error', setAttributeFromEvent)
|
|
109
|
+
} else {
|
|
110
|
+
// Grab existing script status from attribute and set to state.
|
|
111
|
+
setStatus(script.status ?? cachedScriptStatus ?? 'loading')
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// Script event handler to update status in state
|
|
115
|
+
// Note: Even if the script already exists we still need to add
|
|
116
|
+
// event handlers to update the state for *this* hook instance.
|
|
117
|
+
const setStateFromEvent = (event: Event) => {
|
|
118
|
+
const newStatus = event.type === 'load' ? 'ready' : 'error'
|
|
119
|
+
setStatus(newStatus)
|
|
120
|
+
cachedScriptStatuses.set(src, newStatus)
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// Add event listeners
|
|
124
|
+
scriptNode.addEventListener('load', setStateFromEvent)
|
|
125
|
+
scriptNode.addEventListener('error', setStateFromEvent)
|
|
126
|
+
|
|
127
|
+
// Remove event listeners on cleanup
|
|
128
|
+
return () => {
|
|
129
|
+
if (scriptNode) {
|
|
130
|
+
scriptNode.removeEventListener('load', setStateFromEvent)
|
|
131
|
+
scriptNode.removeEventListener('error', setStateFromEvent)
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
if (scriptNode && options?.removeOnUnmount) {
|
|
135
|
+
scriptNode.remove()
|
|
136
|
+
cachedScriptStatuses.delete(src)
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}, [src, options?.shouldPreventLoad, options?.removeOnUnmount, options?.id])
|
|
140
|
+
|
|
141
|
+
return status
|
|
142
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useScrollLock'
|