@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.
Files changed (625) hide show
  1. package/.babelrc +12 -0
  2. package/.storybook/main.ts +48 -0
  3. package/.storybook/manager.ts +6 -0
  4. package/.storybook/preview.ts +29 -0
  5. package/CHANGELOG.md +38 -0
  6. package/dist/CHANGELOG.md +14 -0
  7. package/dist/index.js +14 -13
  8. package/dist/package.json +2 -1
  9. package/external.ts +78 -0
  10. package/kit/MultiSelectCombobox/MultiSelectCombobox.tsx +211 -0
  11. package/kit/MultiSelectCombobox/index.tsx +2 -0
  12. package/kit/MultiSelectCombobox/types.ts +22 -0
  13. package/kit/NLTDateRangePicker/index.tsx +85 -0
  14. package/kit/NLTFilesDropZone/imageList/index.tsx +86 -0
  15. package/kit/NLTFilesDropZone/index.tsx +52 -0
  16. package/kit/NLTFormDateRangePicker/index.tsx +29 -0
  17. package/kit/NLTFormFilesDropZone/index.tsx +73 -0
  18. package/kit/NLTFormPhoneField/index.tsx +36 -0
  19. package/kit/NLTFormPhoneInput/index.tsx +32 -0
  20. package/kit/NLTImageDropZone/index.tsx +105 -0
  21. package/kit/NLTModal/index.tsx +36 -0
  22. package/kit/NLTModal/useModal.ts +10 -0
  23. package/kit/NLTModalHeader/index.tsx +48 -0
  24. package/kit/NLTModalHeader/useModal.ts +10 -0
  25. package/kit/NLTMonthYearPicker/index.tsx +66 -0
  26. package/kit/NLTMonthYearPicker/useMonthYearPicker.ts +37 -0
  27. package/kit/NLTPhoneInput/index.tsx +153 -0
  28. package/kit/NLTPieChart/index.tsx +62 -0
  29. package/kit/NLTSidebar/app-sidebar.tsx +39 -0
  30. package/kit/NLTSidebar/nav-main.tsx +68 -0
  31. package/kit/NLTSidebar/nav-projects.tsx +89 -0
  32. package/kit/NLTSidebar/nav-user.tsx +114 -0
  33. package/kit/NLTSidebar/team-switcher.tsx +89 -0
  34. package/kit/NLTTable/NLTTable.tsx +50 -0
  35. package/kit/NLTTable/index.tsx +1 -0
  36. package/kit/NLTTablePagination/index.tsx +75 -0
  37. package/kit/Sidebar/SidebarNav/SidebarNavGroup.tsx +27 -0
  38. package/kit/Sidebar/SidebarNav/SidebarNavGroupItem.tsx +120 -0
  39. package/kit/Sidebar/SidebarNav/index.ts +3 -0
  40. package/kit/Sidebar/SidebarNav/types.ts +19 -0
  41. package/kit/Sidebar/index.ts +1 -0
  42. package/kit/Stepper/LinearStepper.tsx +91 -0
  43. package/kit/Stepper/Stepper.tsx +17 -0
  44. package/kit/Stepper/VerticalStepper.tsx +91 -0
  45. package/kit/Stepper/index.ts +1 -0
  46. package/kit/Stepper/types.ts +21 -0
  47. package/kit/Stepper/useStepper.ts +40 -0
  48. package/node_modules/@oneplatformdev/hooks/.babelrc +12 -0
  49. package/node_modules/@oneplatformdev/hooks/CHANGELOG.md +23 -0
  50. package/node_modules/@oneplatformdev/hooks/LICENSE +21 -0
  51. package/node_modules/@oneplatformdev/hooks/README.md +7 -0
  52. package/node_modules/@oneplatformdev/hooks/dist/CHANGELOG.md +19 -0
  53. package/node_modules/@oneplatformdev/hooks/dist/LICENSE +21 -0
  54. package/node_modules/@oneplatformdev/hooks/dist/README.md +7 -0
  55. package/node_modules/@oneplatformdev/hooks/dist/index.d.ts +37 -0
  56. package/node_modules/@oneplatformdev/hooks/dist/index.d.ts.map +1 -0
  57. package/node_modules/@oneplatformdev/hooks/dist/index.js +74 -0
  58. package/node_modules/@oneplatformdev/hooks/dist/package.json +68 -0
  59. package/node_modules/@oneplatformdev/hooks/dist/useBoolean/index.d.ts +2 -0
  60. package/node_modules/@oneplatformdev/hooks/dist/useBoolean/index.d.ts.map +1 -0
  61. package/node_modules/@oneplatformdev/hooks/dist/useBoolean/index.js +4 -0
  62. package/node_modules/@oneplatformdev/hooks/dist/useBoolean/useBoolean.d.ts +29 -0
  63. package/node_modules/@oneplatformdev/hooks/dist/useBoolean/useBoolean.d.ts.map +1 -0
  64. package/node_modules/@oneplatformdev/hooks/dist/useBoolean/useBoolean.js +16 -0
  65. package/node_modules/@oneplatformdev/hooks/dist/useClickAnyWhere/index.d.ts +2 -0
  66. package/node_modules/@oneplatformdev/hooks/dist/useClickAnyWhere/index.d.ts.map +1 -0
  67. package/node_modules/@oneplatformdev/hooks/dist/useClickAnyWhere/index.js +4 -0
  68. package/node_modules/@oneplatformdev/hooks/dist/useClickAnyWhere/useClickAnyWhere.d.ts +17 -0
  69. package/node_modules/@oneplatformdev/hooks/dist/useClickAnyWhere/useClickAnyWhere.d.ts.map +1 -0
  70. package/node_modules/@oneplatformdev/hooks/dist/useClickAnyWhere/useClickAnyWhere.js +9 -0
  71. package/node_modules/@oneplatformdev/hooks/dist/useCopyToClipboard/index.d.ts +2 -0
  72. package/node_modules/@oneplatformdev/hooks/dist/useCopyToClipboard/index.d.ts.map +1 -0
  73. package/node_modules/@oneplatformdev/hooks/dist/useCopyToClipboard/index.js +4 -0
  74. package/node_modules/@oneplatformdev/hooks/dist/useCopyToClipboard/useCopyToClipboard.d.ts +34 -0
  75. package/node_modules/@oneplatformdev/hooks/dist/useCopyToClipboard/useCopyToClipboard.d.ts.map +1 -0
  76. package/node_modules/@oneplatformdev/hooks/dist/useCopyToClipboard/useCopyToClipboard.js +16 -0
  77. package/node_modules/@oneplatformdev/hooks/dist/useCountdown/index.d.ts +2 -0
  78. package/node_modules/@oneplatformdev/hooks/dist/useCountdown/index.d.ts.map +1 -0
  79. package/node_modules/@oneplatformdev/hooks/dist/useCountdown/index.js +4 -0
  80. package/node_modules/@oneplatformdev/hooks/dist/useCountdown/useCountdown.d.ts +47 -0
  81. package/node_modules/@oneplatformdev/hooks/dist/useCountdown/useCountdown.d.ts.map +1 -0
  82. package/node_modules/@oneplatformdev/hooks/dist/useCountdown/useCountdown.js +33 -0
  83. package/node_modules/@oneplatformdev/hooks/dist/useCounter/index.d.ts +2 -0
  84. package/node_modules/@oneplatformdev/hooks/dist/useCounter/index.d.ts.map +1 -0
  85. package/node_modules/@oneplatformdev/hooks/dist/useCounter/index.js +4 -0
  86. package/node_modules/@oneplatformdev/hooks/dist/useCounter/useCounter.d.ts +28 -0
  87. package/node_modules/@oneplatformdev/hooks/dist/useCounter/useCounter.d.ts.map +1 -0
  88. package/node_modules/@oneplatformdev/hooks/dist/useCounter/useCounter.js +20 -0
  89. package/node_modules/@oneplatformdev/hooks/dist/useDarkMode/index.d.ts +2 -0
  90. package/node_modules/@oneplatformdev/hooks/dist/useDarkMode/index.d.ts.map +1 -0
  91. package/node_modules/@oneplatformdev/hooks/dist/useDarkMode/index.js +4 -0
  92. package/node_modules/@oneplatformdev/hooks/dist/useDarkMode/useDarkMode.d.ts +46 -0
  93. package/node_modules/@oneplatformdev/hooks/dist/useDarkMode/useDarkMode.d.ts.map +1 -0
  94. package/node_modules/@oneplatformdev/hooks/dist/useDarkMode/useDarkMode.js +38 -0
  95. package/node_modules/@oneplatformdev/hooks/dist/useDebounceCallback/index.d.ts +3 -0
  96. package/node_modules/@oneplatformdev/hooks/dist/useDebounceCallback/index.d.ts.map +1 -0
  97. package/node_modules/@oneplatformdev/hooks/dist/useDebounceCallback/index.js +5 -0
  98. package/node_modules/@oneplatformdev/hooks/dist/useDebounceCallback/useDebounceCallback.d.ts +62 -0
  99. package/node_modules/@oneplatformdev/hooks/dist/useDebounceCallback/useDebounceCallback.d.ts.map +1 -0
  100. package/node_modules/@oneplatformdev/hooks/dist/useDebounceCallback/useDebounceCallback.js +21 -0
  101. package/node_modules/@oneplatformdev/hooks/dist/useDebounceValue/index.d.ts +2 -0
  102. package/node_modules/@oneplatformdev/hooks/dist/useDebounceValue/index.d.ts.map +1 -0
  103. package/node_modules/@oneplatformdev/hooks/dist/useDebounceValue/index.js +4 -0
  104. package/node_modules/@oneplatformdev/hooks/dist/useDebounceValue/useDebounceValue.d.ts +40 -0
  105. package/node_modules/@oneplatformdev/hooks/dist/useDebounceValue/useDebounceValue.d.ts.map +1 -0
  106. package/node_modules/@oneplatformdev/hooks/dist/useDebounceValue/useDebounceValue.js +13 -0
  107. package/node_modules/@oneplatformdev/hooks/dist/useDocumentTitle/index.d.ts +2 -0
  108. package/node_modules/@oneplatformdev/hooks/dist/useDocumentTitle/index.d.ts.map +1 -0
  109. package/node_modules/@oneplatformdev/hooks/dist/useDocumentTitle/index.js +4 -0
  110. package/node_modules/@oneplatformdev/hooks/dist/useDocumentTitle/useDocumentTitle.d.ts +19 -0
  111. package/node_modules/@oneplatformdev/hooks/dist/useDocumentTitle/useDocumentTitle.d.ts.map +1 -0
  112. package/node_modules/@oneplatformdev/hooks/dist/useDocumentTitle/useDocumentTitle.js +16 -0
  113. package/node_modules/@oneplatformdev/hooks/dist/useEventCallback/index.d.ts +2 -0
  114. package/node_modules/@oneplatformdev/hooks/dist/useEventCallback/index.d.ts.map +1 -0
  115. package/node_modules/@oneplatformdev/hooks/dist/useEventCallback/index.js +4 -0
  116. package/node_modules/@oneplatformdev/hooks/dist/useEventCallback/useEventCallback.d.ts +18 -0
  117. package/node_modules/@oneplatformdev/hooks/dist/useEventCallback/useEventCallback.d.ts.map +1 -0
  118. package/node_modules/@oneplatformdev/hooks/dist/useEventCallback/useEventCallback.js +13 -0
  119. package/node_modules/@oneplatformdev/hooks/dist/useEventListener/index.d.ts +2 -0
  120. package/node_modules/@oneplatformdev/hooks/dist/useEventListener/index.d.ts.map +1 -0
  121. package/node_modules/@oneplatformdev/hooks/dist/useEventListener/index.js +4 -0
  122. package/node_modules/@oneplatformdev/hooks/dist/useEventListener/useEventListener.d.ts +7 -0
  123. package/node_modules/@oneplatformdev/hooks/dist/useEventListener/useEventListener.d.ts.map +1 -0
  124. package/node_modules/@oneplatformdev/hooks/dist/useEventListener/useEventListener.js +20 -0
  125. package/node_modules/@oneplatformdev/hooks/dist/useHover/index.d.ts +2 -0
  126. package/node_modules/@oneplatformdev/hooks/dist/useHover/index.d.ts.map +1 -0
  127. package/node_modules/@oneplatformdev/hooks/dist/useHover/index.js +4 -0
  128. package/node_modules/@oneplatformdev/hooks/dist/useHover/useHover.d.ts +17 -0
  129. package/node_modules/@oneplatformdev/hooks/dist/useHover/useHover.d.ts.map +1 -0
  130. package/node_modules/@oneplatformdev/hooks/dist/useHover/useHover.js +13 -0
  131. package/node_modules/@oneplatformdev/hooks/dist/useIntersectionObserver/index.d.ts +2 -0
  132. package/node_modules/@oneplatformdev/hooks/dist/useIntersectionObserver/index.d.ts.map +1 -0
  133. package/node_modules/@oneplatformdev/hooks/dist/useIntersectionObserver/index.js +4 -0
  134. package/node_modules/@oneplatformdev/hooks/dist/useIntersectionObserver/useIntersectionObserver.d.ts +72 -0
  135. package/node_modules/@oneplatformdev/hooks/dist/useIntersectionObserver/useIntersectionObserver.d.ts.map +1 -0
  136. package/node_modules/@oneplatformdev/hooks/dist/useIntersectionObserver/useIntersectionObserver.js +53 -0
  137. package/node_modules/@oneplatformdev/hooks/dist/useInterval/index.d.ts +2 -0
  138. package/node_modules/@oneplatformdev/hooks/dist/useInterval/index.d.ts.map +1 -0
  139. package/node_modules/@oneplatformdev/hooks/dist/useInterval/index.js +4 -0
  140. package/node_modules/@oneplatformdev/hooks/dist/useInterval/useInterval.d.ts +16 -0
  141. package/node_modules/@oneplatformdev/hooks/dist/useInterval/useInterval.d.ts.map +1 -0
  142. package/node_modules/@oneplatformdev/hooks/dist/useInterval/useInterval.js +20 -0
  143. package/node_modules/@oneplatformdev/hooks/dist/useIsClient/index.d.ts +2 -0
  144. package/node_modules/@oneplatformdev/hooks/dist/useIsClient/index.d.ts.map +1 -0
  145. package/node_modules/@oneplatformdev/hooks/dist/useIsClient/index.js +4 -0
  146. package/node_modules/@oneplatformdev/hooks/dist/useIsClient/useIsClient.d.ts +13 -0
  147. package/node_modules/@oneplatformdev/hooks/dist/useIsClient/useIsClient.d.ts.map +1 -0
  148. package/node_modules/@oneplatformdev/hooks/dist/useIsClient/useIsClient.js +10 -0
  149. package/node_modules/@oneplatformdev/hooks/dist/useIsMobile/index.d.ts +3 -0
  150. package/node_modules/@oneplatformdev/hooks/dist/useIsMobile/index.d.ts.map +1 -0
  151. package/node_modules/@oneplatformdev/hooks/dist/useIsMobile/index.js +4 -0
  152. package/node_modules/@oneplatformdev/hooks/dist/useIsMobile/types.d.ts +4 -0
  153. package/node_modules/@oneplatformdev/hooks/dist/useIsMobile/types.d.ts.map +1 -0
  154. package/node_modules/@oneplatformdev/hooks/dist/useIsMobile/types.js +1 -0
  155. package/node_modules/@oneplatformdev/hooks/dist/useIsMobile/useIsMobile.d.ts +3 -0
  156. package/node_modules/@oneplatformdev/hooks/dist/useIsMobile/useIsMobile.d.ts.map +1 -0
  157. package/node_modules/@oneplatformdev/hooks/dist/useIsMobile/useIsMobile.js +16 -0
  158. package/node_modules/@oneplatformdev/hooks/dist/useIsMounted/index.d.ts +2 -0
  159. package/node_modules/@oneplatformdev/hooks/dist/useIsMounted/index.d.ts.map +1 -0
  160. package/node_modules/@oneplatformdev/hooks/dist/useIsMounted/index.js +4 -0
  161. package/node_modules/@oneplatformdev/hooks/dist/useIsMounted/useIsMounted.d.ts +2 -0
  162. package/node_modules/@oneplatformdev/hooks/dist/useIsMounted/useIsMounted.d.ts.map +1 -0
  163. package/node_modules/@oneplatformdev/hooks/dist/useIsMounted/useIsMounted.js +10 -0
  164. package/node_modules/@oneplatformdev/hooks/dist/useIsomorphicLayoutEffect/index.d.ts +2 -0
  165. package/node_modules/@oneplatformdev/hooks/dist/useIsomorphicLayoutEffect/index.d.ts.map +1 -0
  166. package/node_modules/@oneplatformdev/hooks/dist/useIsomorphicLayoutEffect/index.js +4 -0
  167. package/node_modules/@oneplatformdev/hooks/dist/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.d.ts +16 -0
  168. package/node_modules/@oneplatformdev/hooks/dist/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.d.ts.map +1 -0
  169. package/node_modules/@oneplatformdev/hooks/dist/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js +5 -0
  170. package/node_modules/@oneplatformdev/hooks/dist/useLocalStorage/index.d.ts +2 -0
  171. package/node_modules/@oneplatformdev/hooks/dist/useLocalStorage/index.d.ts.map +1 -0
  172. package/node_modules/@oneplatformdev/hooks/dist/useLocalStorage/index.js +4 -0
  173. package/node_modules/@oneplatformdev/hooks/dist/useLocalStorage/useLocalStorage.d.ts +39 -0
  174. package/node_modules/@oneplatformdev/hooks/dist/useLocalStorage/useLocalStorage.d.ts.map +1 -0
  175. package/node_modules/@oneplatformdev/hooks/dist/useLocalStorage/useLocalStorage.js +65 -0
  176. package/node_modules/@oneplatformdev/hooks/dist/useLockBody/index.d.ts +2 -0
  177. package/node_modules/@oneplatformdev/hooks/dist/useLockBody/index.d.ts.map +1 -0
  178. package/node_modules/@oneplatformdev/hooks/dist/useLockBody/index.js +4 -0
  179. package/node_modules/@oneplatformdev/hooks/dist/useLockBody/useLockBody.d.ts +2 -0
  180. package/node_modules/@oneplatformdev/hooks/dist/useLockBody/useLockBody.d.ts.map +1 -0
  181. package/node_modules/@oneplatformdev/hooks/dist/useLockBody/useLockBody.js +12 -0
  182. package/node_modules/@oneplatformdev/hooks/dist/useMap/index.d.ts +2 -0
  183. package/node_modules/@oneplatformdev/hooks/dist/useMap/index.d.ts.map +1 -0
  184. package/node_modules/@oneplatformdev/hooks/dist/useMap/index.js +4 -0
  185. package/node_modules/@oneplatformdev/hooks/dist/useMap/useMap.d.ts +48 -0
  186. package/node_modules/@oneplatformdev/hooks/dist/useMap/useMap.d.ts.map +1 -0
  187. package/node_modules/@oneplatformdev/hooks/dist/useMap/useMap.js +27 -0
  188. package/node_modules/@oneplatformdev/hooks/dist/useMediaQuery/index.d.ts +2 -0
  189. package/node_modules/@oneplatformdev/hooks/dist/useMediaQuery/index.d.ts.map +1 -0
  190. package/node_modules/@oneplatformdev/hooks/dist/useMediaQuery/index.js +4 -0
  191. package/node_modules/@oneplatformdev/hooks/dist/useMediaQuery/useMediaQuery.d.ts +29 -0
  192. package/node_modules/@oneplatformdev/hooks/dist/useMediaQuery/useMediaQuery.d.ts.map +1 -0
  193. package/node_modules/@oneplatformdev/hooks/dist/useMediaQuery/useMediaQuery.js +21 -0
  194. package/node_modules/@oneplatformdev/hooks/dist/useOnClickOutside/index.d.ts +2 -0
  195. package/node_modules/@oneplatformdev/hooks/dist/useOnClickOutside/index.d.ts.map +1 -0
  196. package/node_modules/@oneplatformdev/hooks/dist/useOnClickOutside/index.js +4 -0
  197. package/node_modules/@oneplatformdev/hooks/dist/useOnClickOutside/useOnClickOutside.d.ts +24 -0
  198. package/node_modules/@oneplatformdev/hooks/dist/useOnClickOutside/useOnClickOutside.d.ts.map +1 -0
  199. package/node_modules/@oneplatformdev/hooks/dist/useOnClickOutside/useOnClickOutside.js +17 -0
  200. package/node_modules/@oneplatformdev/hooks/dist/useQueryString/index.d.ts +2 -0
  201. package/node_modules/@oneplatformdev/hooks/dist/useQueryString/index.d.ts.map +1 -0
  202. package/node_modules/@oneplatformdev/hooks/dist/useQueryString/index.js +4 -0
  203. package/node_modules/@oneplatformdev/hooks/dist/useQueryString/useQueryString.d.ts +10 -0
  204. package/node_modules/@oneplatformdev/hooks/dist/useQueryString/useQueryString.d.ts.map +1 -0
  205. package/node_modules/@oneplatformdev/hooks/dist/useQueryString/useQueryString.js +10 -0
  206. package/node_modules/@oneplatformdev/hooks/dist/useReadLocalStorage/index.d.ts +2 -0
  207. package/node_modules/@oneplatformdev/hooks/dist/useReadLocalStorage/index.d.ts.map +1 -0
  208. package/node_modules/@oneplatformdev/hooks/dist/useReadLocalStorage/index.js +4 -0
  209. package/node_modules/@oneplatformdev/hooks/dist/useReadLocalStorage/useReadLocalStorage.d.ts +14 -0
  210. package/node_modules/@oneplatformdev/hooks/dist/useReadLocalStorage/useReadLocalStorage.d.ts.map +1 -0
  211. package/node_modules/@oneplatformdev/hooks/dist/useReadLocalStorage/useReadLocalStorage.js +48 -0
  212. package/node_modules/@oneplatformdev/hooks/dist/useResizeObserver/index.d.ts +2 -0
  213. package/node_modules/@oneplatformdev/hooks/dist/useResizeObserver/index.d.ts.map +1 -0
  214. package/node_modules/@oneplatformdev/hooks/dist/useResizeObserver/index.js +4 -0
  215. package/node_modules/@oneplatformdev/hooks/dist/useResizeObserver/useResizeObserver.d.ts +44 -0
  216. package/node_modules/@oneplatformdev/hooks/dist/useResizeObserver/useResizeObserver.d.ts.map +1 -0
  217. package/node_modules/@oneplatformdev/hooks/dist/useResizeObserver/useResizeObserver.js +31 -0
  218. package/node_modules/@oneplatformdev/hooks/dist/useScreen/index.d.ts +2 -0
  219. package/node_modules/@oneplatformdev/hooks/dist/useScreen/index.d.ts.map +1 -0
  220. package/node_modules/@oneplatformdev/hooks/dist/useScreen/index.js +4 -0
  221. package/node_modules/@oneplatformdev/hooks/dist/useScreen/useScreen.d.ts +20 -0
  222. package/node_modules/@oneplatformdev/hooks/dist/useScreen/useScreen.d.ts.map +1 -0
  223. package/node_modules/@oneplatformdev/hooks/dist/useScreen/useScreen.js +48 -0
  224. package/node_modules/@oneplatformdev/hooks/dist/useScript/index.d.ts +2 -0
  225. package/node_modules/@oneplatformdev/hooks/dist/useScript/index.d.ts.map +1 -0
  226. package/node_modules/@oneplatformdev/hooks/dist/useScript/index.js +4 -0
  227. package/node_modules/@oneplatformdev/hooks/dist/useScript/useScript.d.ts +24 -0
  228. package/node_modules/@oneplatformdev/hooks/dist/useScript/useScript.d.ts.map +1 -0
  229. package/node_modules/@oneplatformdev/hooks/dist/useScript/useScript.js +45 -0
  230. package/node_modules/@oneplatformdev/hooks/dist/useScrollLock/index.d.ts +2 -0
  231. package/node_modules/@oneplatformdev/hooks/dist/useScrollLock/index.d.ts.map +1 -0
  232. package/node_modules/@oneplatformdev/hooks/dist/useScrollLock/index.js +4 -0
  233. package/node_modules/@oneplatformdev/hooks/dist/useScrollLock/useScrollLock.d.ts +54 -0
  234. package/node_modules/@oneplatformdev/hooks/dist/useScrollLock/useScrollLock.d.ts.map +1 -0
  235. package/node_modules/@oneplatformdev/hooks/dist/useScrollLock/useScrollLock.js +26 -0
  236. package/node_modules/@oneplatformdev/hooks/dist/useSessionStorage/index.d.ts +2 -0
  237. package/node_modules/@oneplatformdev/hooks/dist/useSessionStorage/index.d.ts.map +1 -0
  238. package/node_modules/@oneplatformdev/hooks/dist/useSessionStorage/index.js +4 -0
  239. package/node_modules/@oneplatformdev/hooks/dist/useSessionStorage/useSessionStorage.d.ts +39 -0
  240. package/node_modules/@oneplatformdev/hooks/dist/useSessionStorage/useSessionStorage.d.ts.map +1 -0
  241. package/node_modules/@oneplatformdev/hooks/dist/useSessionStorage/useSessionStorage.js +65 -0
  242. package/node_modules/@oneplatformdev/hooks/dist/useStep/index.d.ts +2 -0
  243. package/node_modules/@oneplatformdev/hooks/dist/useStep/index.d.ts.map +1 -0
  244. package/node_modules/@oneplatformdev/hooks/dist/useStep/index.js +4 -0
  245. package/node_modules/@oneplatformdev/hooks/dist/useStep/useStep.d.ts +31 -0
  246. package/node_modules/@oneplatformdev/hooks/dist/useStep/useStep.d.ts.map +1 -0
  247. package/node_modules/@oneplatformdev/hooks/dist/useStep/useStep.js +34 -0
  248. package/node_modules/@oneplatformdev/hooks/dist/useTernaryDarkMode/index.d.ts +2 -0
  249. package/node_modules/@oneplatformdev/hooks/dist/useTernaryDarkMode/index.d.ts.map +1 -0
  250. package/node_modules/@oneplatformdev/hooks/dist/useTernaryDarkMode/index.js +4 -0
  251. package/node_modules/@oneplatformdev/hooks/dist/useTernaryDarkMode/useTernaryDarkMode.d.ts +46 -0
  252. package/node_modules/@oneplatformdev/hooks/dist/useTernaryDarkMode/useTernaryDarkMode.d.ts.map +1 -0
  253. package/node_modules/@oneplatformdev/hooks/dist/useTernaryDarkMode/useTernaryDarkMode.js +27 -0
  254. package/node_modules/@oneplatformdev/hooks/dist/useTimeout/index.d.ts +2 -0
  255. package/node_modules/@oneplatformdev/hooks/dist/useTimeout/index.d.ts.map +1 -0
  256. package/node_modules/@oneplatformdev/hooks/dist/useTimeout/index.js +4 -0
  257. package/node_modules/@oneplatformdev/hooks/dist/useTimeout/useTimeout.d.ts +17 -0
  258. package/node_modules/@oneplatformdev/hooks/dist/useTimeout/useTimeout.d.ts.map +1 -0
  259. package/node_modules/@oneplatformdev/hooks/dist/useTimeout/useTimeout.js +20 -0
  260. package/node_modules/@oneplatformdev/hooks/dist/useToggle/index.d.ts +2 -0
  261. package/node_modules/@oneplatformdev/hooks/dist/useToggle/index.d.ts.map +1 -0
  262. package/node_modules/@oneplatformdev/hooks/dist/useToggle/index.js +4 -0
  263. package/node_modules/@oneplatformdev/hooks/dist/useToggle/useToggle.d.ts +18 -0
  264. package/node_modules/@oneplatformdev/hooks/dist/useToggle/useToggle.d.ts.map +1 -0
  265. package/node_modules/@oneplatformdev/hooks/dist/useToggle/useToggle.js +10 -0
  266. package/node_modules/@oneplatformdev/hooks/dist/useUnmount/index.d.ts +2 -0
  267. package/node_modules/@oneplatformdev/hooks/dist/useUnmount/index.d.ts.map +1 -0
  268. package/node_modules/@oneplatformdev/hooks/dist/useUnmount/index.js +4 -0
  269. package/node_modules/@oneplatformdev/hooks/dist/useUnmount/useUnmount.d.ts +14 -0
  270. package/node_modules/@oneplatformdev/hooks/dist/useUnmount/useUnmount.d.ts.map +1 -0
  271. package/node_modules/@oneplatformdev/hooks/dist/useUnmount/useUnmount.js +13 -0
  272. package/node_modules/@oneplatformdev/hooks/dist/useWindowSize/index.d.ts +2 -0
  273. package/node_modules/@oneplatformdev/hooks/dist/useWindowSize/index.d.ts.map +1 -0
  274. package/node_modules/@oneplatformdev/hooks/dist/useWindowSize/index.js +4 -0
  275. package/node_modules/@oneplatformdev/hooks/dist/useWindowSize/useWindowSize.d.ts +30 -0
  276. package/node_modules/@oneplatformdev/hooks/dist/useWindowSize/useWindowSize.d.ts.map +1 -0
  277. package/node_modules/@oneplatformdev/hooks/dist/useWindowSize/useWindowSize.js +31 -0
  278. package/node_modules/@oneplatformdev/hooks/package.json +68 -0
  279. package/node_modules/@oneplatformdev/hooks/src/index.ts +36 -0
  280. package/node_modules/@oneplatformdev/hooks/src/useBoolean/index.ts +1 -0
  281. package/node_modules/@oneplatformdev/hooks/src/useBoolean/useBoolean.ts +50 -0
  282. package/node_modules/@oneplatformdev/hooks/src/useClickAnyWhere/index.ts +1 -0
  283. package/node_modules/@oneplatformdev/hooks/src/useClickAnyWhere/useClickAnyWhere.ts +22 -0
  284. package/node_modules/@oneplatformdev/hooks/src/useCopyToClipboard/index.ts +1 -0
  285. package/node_modules/@oneplatformdev/hooks/src/useCopyToClipboard/useCopyToClipboard.ts +58 -0
  286. package/node_modules/@oneplatformdev/hooks/src/useCountdown/index.ts +1 -0
  287. package/node_modules/@oneplatformdev/hooks/src/useCountdown/useCountdown.ts +102 -0
  288. package/node_modules/@oneplatformdev/hooks/src/useCounter/index.ts +1 -0
  289. package/node_modules/@oneplatformdev/hooks/src/useCounter/useCounter.ts +52 -0
  290. package/node_modules/@oneplatformdev/hooks/src/useDarkMode/index.ts +1 -0
  291. package/node_modules/@oneplatformdev/hooks/src/useDarkMode/useDarkMode.ts +92 -0
  292. package/node_modules/@oneplatformdev/hooks/src/useDebounceCallback/index.ts +2 -0
  293. package/node_modules/@oneplatformdev/hooks/src/useDebounceCallback/useDebounceCallback.ts +115 -0
  294. package/node_modules/@oneplatformdev/hooks/src/useDebounceValue/index.ts +1 -0
  295. package/node_modules/@oneplatformdev/hooks/src/useDebounceValue/useDebounceValue.ts +67 -0
  296. package/node_modules/@oneplatformdev/hooks/src/useDocumentTitle/index.ts +1 -0
  297. package/node_modules/@oneplatformdev/hooks/src/useDocumentTitle/useDocumentTitle.ts +43 -0
  298. package/node_modules/@oneplatformdev/hooks/src/useEventCallback/index.ts +1 -0
  299. package/node_modules/@oneplatformdev/hooks/src/useEventCallback/useEventCallback.ts +40 -0
  300. package/node_modules/@oneplatformdev/hooks/src/useEventListener/index.ts +1 -0
  301. package/node_modules/@oneplatformdev/hooks/src/useEventListener/useEventListener.ts +121 -0
  302. package/node_modules/@oneplatformdev/hooks/src/useHover/index.ts +1 -0
  303. package/node_modules/@oneplatformdev/hooks/src/useHover/useHover.ts +37 -0
  304. package/node_modules/@oneplatformdev/hooks/src/useIntersectionObserver/index.ts +1 -0
  305. package/node_modules/@oneplatformdev/hooks/src/useIntersectionObserver/useIntersectionObserver.ts +186 -0
  306. package/node_modules/@oneplatformdev/hooks/src/useInterval/index.ts +1 -0
  307. package/node_modules/@oneplatformdev/hooks/src/useInterval/useInterval.ts +43 -0
  308. package/node_modules/@oneplatformdev/hooks/src/useIsClient/index.ts +1 -0
  309. package/node_modules/@oneplatformdev/hooks/src/useIsClient/useIsClient.ts +22 -0
  310. package/node_modules/@oneplatformdev/hooks/src/useIsMobile/index.ts +2 -0
  311. package/node_modules/@oneplatformdev/hooks/src/useIsMobile/types.ts +3 -0
  312. package/node_modules/@oneplatformdev/hooks/src/useIsMobile/useIsMobile.tsx +23 -0
  313. package/node_modules/@oneplatformdev/hooks/src/useIsMounted/index.ts +1 -0
  314. package/node_modules/@oneplatformdev/hooks/src/useIsMounted/useIsMounted.ts +15 -0
  315. package/node_modules/@oneplatformdev/hooks/src/useIsomorphicLayoutEffect/index.ts +1 -0
  316. package/node_modules/@oneplatformdev/hooks/src/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.ts +17 -0
  317. package/node_modules/@oneplatformdev/hooks/src/useLocalStorage/index.ts +1 -0
  318. package/node_modules/@oneplatformdev/hooks/src/useLocalStorage/useLocalStorage.ts +191 -0
  319. package/node_modules/@oneplatformdev/hooks/src/useLockBody/index.ts +1 -0
  320. package/node_modules/@oneplatformdev/hooks/src/useLockBody/useLockBody.tsx +12 -0
  321. package/node_modules/@oneplatformdev/hooks/src/useMap/index.ts +1 -0
  322. package/node_modules/@oneplatformdev/hooks/src/useMap/useMap.ts +83 -0
  323. package/node_modules/@oneplatformdev/hooks/src/useMediaQuery/index.ts +1 -0
  324. package/node_modules/@oneplatformdev/hooks/src/useMediaQuery/useMediaQuery.ts +83 -0
  325. package/node_modules/@oneplatformdev/hooks/src/useOnClickOutside/index.ts +1 -0
  326. package/node_modules/@oneplatformdev/hooks/src/useOnClickOutside/useOnClickOutside.ts +61 -0
  327. package/node_modules/@oneplatformdev/hooks/src/useQueryString/index.ts +1 -0
  328. package/node_modules/@oneplatformdev/hooks/src/useQueryString/useQueryString.ts +26 -0
  329. package/node_modules/@oneplatformdev/hooks/src/useReadLocalStorage/index.ts +1 -0
  330. package/node_modules/@oneplatformdev/hooks/src/useReadLocalStorage/useReadLocalStorage.ts +122 -0
  331. package/node_modules/@oneplatformdev/hooks/src/useResizeObserver/index.ts +1 -0
  332. package/node_modules/@oneplatformdev/hooks/src/useResizeObserver/useResizeObserver.ts +131 -0
  333. package/node_modules/@oneplatformdev/hooks/src/useScreen/index.ts +1 -0
  334. package/node_modules/@oneplatformdev/hooks/src/useScreen/useScreen.ts +106 -0
  335. package/node_modules/@oneplatformdev/hooks/src/useScript/index.ts +1 -0
  336. package/node_modules/@oneplatformdev/hooks/src/useScript/useScript.ts +142 -0
  337. package/node_modules/@oneplatformdev/hooks/src/useScrollLock/index.ts +1 -0
  338. package/node_modules/@oneplatformdev/hooks/src/useScrollLock/useScrollLock.ts +141 -0
  339. package/node_modules/@oneplatformdev/hooks/src/useSessionStorage/index.ts +1 -0
  340. package/node_modules/@oneplatformdev/hooks/src/useSessionStorage/useSessionStorage.ts +191 -0
  341. package/node_modules/@oneplatformdev/hooks/src/useStep/index.ts +1 -0
  342. package/node_modules/@oneplatformdev/hooks/src/useStep/useStep.ts +83 -0
  343. package/node_modules/@oneplatformdev/hooks/src/useTernaryDarkMode/index.ts +1 -0
  344. package/node_modules/@oneplatformdev/hooks/src/useTernaryDarkMode/useTernaryDarkMode.ts +81 -0
  345. package/node_modules/@oneplatformdev/hooks/src/useTimeout/index.ts +1 -0
  346. package/node_modules/@oneplatformdev/hooks/src/useTimeout/useTimeout.ts +44 -0
  347. package/node_modules/@oneplatformdev/hooks/src/useToggle/index.ts +1 -0
  348. package/node_modules/@oneplatformdev/hooks/src/useToggle/useToggle.ts +30 -0
  349. package/node_modules/@oneplatformdev/hooks/src/useUnmount/index.ts +1 -0
  350. package/node_modules/@oneplatformdev/hooks/src/useUnmount/useUnmount.ts +26 -0
  351. package/node_modules/@oneplatformdev/hooks/src/useWindowSize/index.ts +1 -0
  352. package/node_modules/@oneplatformdev/hooks/src/useWindowSize/useWindowSize.ts +100 -0
  353. package/node_modules/@oneplatformdev/hooks/tsconfig.json +10 -0
  354. package/node_modules/@oneplatformdev/hooks/tsconfig.lib.json +33 -0
  355. package/node_modules/@oneplatformdev/hooks/vite.config.ts +62 -0
  356. package/node_modules/@oneplatformdev/utils/.babelrc +12 -0
  357. package/node_modules/@oneplatformdev/utils/CHANGELOG.md +23 -0
  358. package/node_modules/@oneplatformdev/utils/LICENSE +21 -0
  359. package/node_modules/@oneplatformdev/utils/README.md +7 -0
  360. package/node_modules/@oneplatformdev/utils/dist/CHANGELOG.md +19 -0
  361. package/node_modules/@oneplatformdev/utils/dist/LICENSE +21 -0
  362. package/node_modules/@oneplatformdev/utils/dist/README.md +7 -0
  363. package/node_modules/@oneplatformdev/utils/dist/cn/cn.d.ts +4 -0
  364. package/node_modules/@oneplatformdev/utils/dist/cn/cn.d.ts.map +1 -0
  365. package/node_modules/@oneplatformdev/utils/dist/cn/cn.js +9 -0
  366. package/node_modules/@oneplatformdev/utils/dist/cn/index.d.ts +2 -0
  367. package/node_modules/@oneplatformdev/utils/dist/cn/index.d.ts.map +1 -0
  368. package/node_modules/@oneplatformdev/utils/dist/cn/index.js +5 -0
  369. package/node_modules/@oneplatformdev/utils/dist/composeRefs/composeRefs.d.ts +4 -0
  370. package/node_modules/@oneplatformdev/utils/dist/composeRefs/composeRefs.d.ts.map +1 -0
  371. package/node_modules/@oneplatformdev/utils/dist/composeRefs/composeRefs.js +10 -0
  372. package/node_modules/@oneplatformdev/utils/dist/composeRefs/index.d.ts +2 -0
  373. package/node_modules/@oneplatformdev/utils/dist/composeRefs/index.d.ts.map +1 -0
  374. package/node_modules/@oneplatformdev/utils/dist/composeRefs/index.js +5 -0
  375. package/node_modules/@oneplatformdev/utils/dist/index.d.ts +4 -0
  376. package/node_modules/@oneplatformdev/utils/dist/index.d.ts.map +1 -0
  377. package/node_modules/@oneplatformdev/utils/dist/index.js +6 -0
  378. package/node_modules/@oneplatformdev/utils/dist/package.json +64 -0
  379. package/node_modules/@oneplatformdev/utils/dist/types/PartialOne.d.ts +2 -0
  380. package/node_modules/@oneplatformdev/utils/dist/types/PartialOne.d.ts.map +1 -0
  381. package/node_modules/@oneplatformdev/utils/dist/types/PartialOne.js +1 -0
  382. package/node_modules/@oneplatformdev/utils/dist/types/index.d.ts +2 -0
  383. package/node_modules/@oneplatformdev/utils/dist/types/index.d.ts.map +1 -0
  384. package/node_modules/@oneplatformdev/utils/dist/types/index.js +1 -0
  385. package/node_modules/@oneplatformdev/utils/package.json +64 -0
  386. package/node_modules/@oneplatformdev/utils/src/cn/cn.ts +7 -0
  387. package/node_modules/@oneplatformdev/utils/src/cn/index.ts +1 -0
  388. package/node_modules/@oneplatformdev/utils/src/composeRefs/composeRefs.ts +12 -0
  389. package/node_modules/@oneplatformdev/utils/src/composeRefs/index.ts +1 -0
  390. package/node_modules/@oneplatformdev/utils/src/index.ts +3 -0
  391. package/node_modules/@oneplatformdev/utils/src/types/PartialOne.ts +1 -0
  392. package/node_modules/@oneplatformdev/utils/src/types/index.ts +1 -0
  393. package/node_modules/@oneplatformdev/utils/tsconfig.json +10 -0
  394. package/node_modules/@oneplatformdev/utils/tsconfig.lib.json +34 -0
  395. package/node_modules/@oneplatformdev/utils/vite.config.ts +60 -0
  396. package/node_modules/@radix-ui/react-slot/README.md +13 -0
  397. package/node_modules/@radix-ui/react-slot/dist/index.d.mts +13 -0
  398. package/node_modules/@radix-ui/react-slot/dist/index.d.ts +13 -0
  399. package/node_modules/@radix-ui/react-slot/dist/index.js +118 -0
  400. package/node_modules/@radix-ui/react-slot/dist/index.js.map +7 -0
  401. package/node_modules/@radix-ui/react-slot/dist/index.mjs +85 -0
  402. package/node_modules/@radix-ui/react-slot/dist/index.mjs.map +7 -0
  403. package/node_modules/@radix-ui/react-slot/package.json +50 -0
  404. package/node_modules/@radix-ui/react-tooltip/LICENSE +21 -0
  405. package/node_modules/@radix-ui/react-tooltip/README.md +3 -0
  406. package/node_modules/@radix-ui/react-tooltip/dist/index.d.mts +101 -0
  407. package/node_modules/@radix-ui/react-tooltip/dist/index.d.ts +101 -0
  408. package/node_modules/@radix-ui/react-tooltip/dist/index.js +540 -0
  409. package/node_modules/@radix-ui/react-tooltip/dist/index.js.map +7 -0
  410. package/node_modules/@radix-ui/react-tooltip/dist/index.mjs +508 -0
  411. package/node_modules/@radix-ui/react-tooltip/dist/index.mjs.map +7 -0
  412. package/node_modules/@radix-ui/react-tooltip/package.json +79 -0
  413. package/package.json +4 -3
  414. package/src/Button/Button.stories.tsx +33 -0
  415. package/src/Button/Button.tsx +33 -0
  416. package/src/Button/Button.types.ts +11 -0
  417. package/src/Button/buttonVariants.ts +38 -0
  418. package/src/Button/index.ts +3 -0
  419. package/src/ButtonIcon/ButtonIcon.stories.tsx +186 -0
  420. package/src/ButtonIcon/ButtonIcon.tsx +28 -0
  421. package/src/ButtonIcon/ButtonIcon.types.ts +10 -0
  422. package/src/ButtonIcon/buttonIconVariants.ts +137 -0
  423. package/src/ButtonIcon/index.ts +3 -0
  424. package/src/Tooltip/Tooltip.tsx +20 -0
  425. package/src/Tooltip/Tooltip.types.tsx +9 -0
  426. package/src/Tooltip/TooltipRoot.tsx +32 -0
  427. package/src/Tooltip/index.ts +3 -0
  428. package/src/global.css +123 -0
  429. package/src/index.ts +5 -0
  430. package/src_old/Accordion/Accordion.tsx +62 -0
  431. package/src_old/Accordion/index.ts +1 -0
  432. package/src_old/Alert/Alert.tsx +42 -0
  433. package/src_old/Alert/alertVariants.ts +19 -0
  434. package/src_old/Alert/index.ts +1 -0
  435. package/src_old/AlertDialog/AlertDialog.stories.tsx +131 -0
  436. package/src_old/AlertDialog/AlertDialog.tsx +257 -0
  437. package/src_old/AlertDialog/AlertDialog.types.tsx +66 -0
  438. package/src_old/AlertDialog/AlertDialogRoot.tsx +141 -0
  439. package/src_old/AlertDialog/index.ts +15 -0
  440. package/src_old/AreaChart/AreaChart.tsx +39 -0
  441. package/src_old/AreaChart/AreaChart.types.ts +18 -0
  442. package/src_old/AreaChart/index.tsx +2 -0
  443. package/src_old/Aside/Aside.tsx +26 -0
  444. package/src_old/Aside/Aside.types.ts +21 -0
  445. package/src_old/Aside/AsideSidebar.tsx +78 -0
  446. package/src_old/Aside/index.ts +3 -0
  447. package/src_old/AspectRatio/AspectRatio.tsx +5 -0
  448. package/src_old/AspectRatio/index.ts +1 -0
  449. package/src_old/Avatar/Avatar.tsx +48 -0
  450. package/src_old/Avatar/index.ts +1 -0
  451. package/src_old/Badge/Badge.tsx +13 -0
  452. package/src_old/Badge/Badge.types.ts +8 -0
  453. package/src_old/Badge/badgeVariants.ts +21 -0
  454. package/src_old/Badge/index.ts +3 -0
  455. package/src_old/Breadcrumb/Breadcrumb.tsx +115 -0
  456. package/src_old/Breadcrumb/index.ts +1 -0
  457. package/src_old/Calendar/Calendar.tsx +77 -0
  458. package/src_old/Calendar/index.ts +1 -0
  459. package/src_old/Card/Card.tsx +77 -0
  460. package/src_old/Card/index.ts +1 -0
  461. package/src_old/Carousel/Carousel.tsx +262 -0
  462. package/src_old/Carousel/index.ts +1 -0
  463. package/src_old/Chart/Chart.tsx +365 -0
  464. package/src_old/Chart/index.ts +1 -0
  465. package/src_old/Checkbox/Checkbox.tsx +62 -0
  466. package/src_old/Checkbox/Checkbox.types.ts +15 -0
  467. package/src_old/Checkbox/index.ts +2 -0
  468. package/src_old/Collapsible/Collapsible.tsx +11 -0
  469. package/src_old/Collapsible/index.ts +1 -0
  470. package/src_old/Combobox/Combobox.tsx +256 -0
  471. package/src_old/Combobox/Combobox.types.ts +55 -0
  472. package/src_old/Combobox/ComboboxOptionItem.tsx +46 -0
  473. package/src_old/Combobox/ComboboxOptions.tsx +90 -0
  474. package/src_old/Combobox/index.tsx +2 -0
  475. package/src_old/Command/Command.tsx +161 -0
  476. package/src_old/Command/index.ts +1 -0
  477. package/src_old/DataTable/DataTable.tsx +118 -0
  478. package/src_old/DataTable/DataTable.types.tsx +14 -0
  479. package/src_old/DataTable/DataTableColumnFilter.tsx +57 -0
  480. package/src_old/DataTable/index.tsx +2 -0
  481. package/src_old/DataTable/useDataTable.ts +44 -0
  482. package/src_old/DatePicker/DatePicker.tsx +56 -0
  483. package/src_old/DatePicker/DatePicker.types.tsx +7 -0
  484. package/src_old/DatePicker/index.tsx +3 -0
  485. package/src_old/Dialog/Dialog.tsx +182 -0
  486. package/src_old/Dialog/DialogOverlayScope.tsx +19 -0
  487. package/src_old/Dialog/index.ts +2 -0
  488. package/src_old/Drawer/Drawer.tsx +118 -0
  489. package/src_old/Drawer/index.ts +1 -0
  490. package/src_old/DropdownMenu/DropdownMenu.tsx +206 -0
  491. package/src_old/DropdownMenu/index.ts +1 -0
  492. package/src_old/Dropzone/Dropzone.tsx +229 -0
  493. package/src_old/Dropzone/Dropzone.types.tsx +69 -0
  494. package/src_old/Dropzone/DropzoneFilePreview.tsx +69 -0
  495. package/src_old/Dropzone/DropzoneSinglePickPreview.tsx +64 -0
  496. package/src_old/Dropzone/DropzoneUtils.tsx +31 -0
  497. package/src_old/Dropzone/index.tsx +2 -0
  498. package/src_old/Form/Form.tsx +181 -0
  499. package/src_old/Form/FormRenderControl.tsx +23 -0
  500. package/src_old/Form/FormRenderControl.types.tsx +29 -0
  501. package/src_old/Form/index.ts +4 -0
  502. package/src_old/FormCheckbox/FormCheckbox.tsx +34 -0
  503. package/src_old/FormCheckbox/FormCheckbox.types.tsx +10 -0
  504. package/src_old/FormCheckbox/index.tsx +2 -0
  505. package/src_old/FormCombobox/FormCombobox.tsx +27 -0
  506. package/src_old/FormCombobox/FormCombobox.types.ts +7 -0
  507. package/src_old/FormCombobox/index.tsx +2 -0
  508. package/src_old/FormDatePicker/FormDatePicker.tsx +33 -0
  509. package/src_old/FormDatePicker/FormDatePicker.types.ts +9 -0
  510. package/src_old/FormDatePicker/index.tsx +3 -0
  511. package/src_old/FormDropzone/FormDropzone.tsx +23 -0
  512. package/src_old/FormDropzone/FormDropzone.types.ts +7 -0
  513. package/src_old/FormDropzone/index.tsx +2 -0
  514. package/src_old/FormInput/FormInput.tsx +109 -0
  515. package/src_old/FormInput/FormInput.types.tsx +7 -0
  516. package/src_old/FormInput/index.tsx +2 -0
  517. package/src_old/FormRadio/FormRadio.tsx +54 -0
  518. package/src_old/FormRadio/FormRadio.types.ts +11 -0
  519. package/src_old/FormRadio/index.ts +2 -0
  520. package/src_old/FormSelect/FormSelect.tsx +44 -0
  521. package/src_old/FormSelect/FormSelect.types.ts +8 -0
  522. package/src_old/FormSelect/index.tsx +2 -0
  523. package/src_old/FormTextarea/FormTextarea.tsx +28 -0
  524. package/src_old/FormTextarea/FormTextarea.types.tsx +7 -0
  525. package/src_old/FormTextarea/index.tsx +2 -0
  526. package/src_old/Header/Header.tsx +34 -0
  527. package/src_old/Header/Header.types.tsx +3 -0
  528. package/src_old/Header/index.ts +2 -0
  529. package/src_old/HoverCard/HoverCard.tsx +29 -0
  530. package/src_old/HoverCard/index.ts +1 -0
  531. package/src_old/Input/Input.tsx +95 -0
  532. package/src_old/Input/Input.types.ts +26 -0
  533. package/src_old/Input/index.ts +3 -0
  534. package/src_old/Input/inputVariants.tsx +22 -0
  535. package/src_old/InputOTP/InputOTP.tsx +71 -0
  536. package/src_old/InputOTP/index.ts +1 -0
  537. package/src_old/Label/Label.tsx +23 -0
  538. package/src_old/Label/index.ts +2 -0
  539. package/src_old/Label/labelVariants.ts +8 -0
  540. package/src_old/LazyLoader/LazyLoader.tsx +30 -0
  541. package/src_old/LazyLoader/index.ts +1 -0
  542. package/src_old/LoadedIcon/LoadedIcon.tsx +36 -0
  543. package/src_old/LoadedIcon/index.ts +1 -0
  544. package/src_old/LoadingMask/LoadingMask.tsx +21 -0
  545. package/src_old/LoadingMask/LoadingMask.types.ts +5 -0
  546. package/src_old/LoadingMask/RenderLoadingMask.tsx +80 -0
  547. package/src_old/LoadingMask/index.ts +3 -0
  548. package/src_old/LoadingProgress/LoadingProgress.tsx +36 -0
  549. package/src_old/LoadingProgress/LoadingProgress.types.tsx +8 -0
  550. package/src_old/LoadingProgress/index.ts +3 -0
  551. package/src_old/LoadingProgress/loadingProgressVariants.ts +22 -0
  552. package/src_old/Menubar/Menubar.tsx +232 -0
  553. package/src_old/Menubar/index.ts +1 -0
  554. package/src_old/NavigationMenu/NavigationMenu.tsx +123 -0
  555. package/src_old/NavigationMenu/index.ts +2 -0
  556. package/src_old/NavigationMenu/navigationMenuVariants.ts +5 -0
  557. package/src_old/Pagination/Pagination.tsx +117 -0
  558. package/src_old/Pagination/index.ts +1 -0
  559. package/src_old/Popover/Popover.tsx +47 -0
  560. package/src_old/Popover/index.ts +1 -0
  561. package/src_old/Progress/Progress.tsx +28 -0
  562. package/src_old/Progress/index.ts +1 -0
  563. package/src_old/Radio/Radio.tsx +23 -0
  564. package/src_old/Radio/Radio.types.ts +17 -0
  565. package/src_old/Radio/index.ts +2 -0
  566. package/src_old/RadioGroup/RadioGroup.tsx +67 -0
  567. package/src_old/RadioGroup/index.ts +1 -0
  568. package/src_old/Resizable/Resizable.tsx +45 -0
  569. package/src_old/Resizable/index.ts +1 -0
  570. package/src_old/ScrollArea/ScrollArea.tsx +58 -0
  571. package/src_old/ScrollArea/index.ts +1 -0
  572. package/src_old/Search/Search.tsx +57 -0
  573. package/src_old/Search/Search.types.tsx +9 -0
  574. package/src_old/Search/index.tsx +3 -0
  575. package/src_old/Select/Select.stories.tsx +45 -0
  576. package/src_old/Select/Select.tsx +171 -0
  577. package/src_old/Select/Select.types.ts +46 -0
  578. package/src_old/Select/SelectRoot.tsx +164 -0
  579. package/src_old/Select/index.ts +3 -0
  580. package/src_old/Separator/Separator.tsx +31 -0
  581. package/src_old/Separator/index.ts +1 -0
  582. package/src_old/Sheet/Sheet.tsx +144 -0
  583. package/src_old/Sheet/index.ts +1 -0
  584. package/src_old/Sidebar/Sidebar.tsx +763 -0
  585. package/src_old/Sidebar/index.ts +1 -0
  586. package/src_old/Skeleton/Skeleton.tsx +17 -0
  587. package/src_old/Skeleton/index.ts +1 -0
  588. package/src_old/Slider/Slider.tsx +28 -0
  589. package/src_old/Slider/index.ts +1 -0
  590. package/src_old/Sonner/Sonner.tsx +31 -0
  591. package/src_old/Sonner/index.ts +1 -0
  592. package/src_old/Switch/Switch.tsx +29 -0
  593. package/src_old/Switch/index.ts +1 -0
  594. package/src_old/Table/Table.tsx +120 -0
  595. package/src_old/Table/index.ts +1 -0
  596. package/src_old/TablePagination/TablePagination.tsx +96 -0
  597. package/src_old/TablePagination/index.ts +1 -0
  598. package/src_old/Tabs/Tabs.tsx +35 -0
  599. package/src_old/Tabs/Tabs.types.tsx +13 -0
  600. package/src_old/Tabs/TabsRoot.tsx +55 -0
  601. package/src_old/Tabs/index.ts +2 -0
  602. package/src_old/Textarea/Textarea.tsx +78 -0
  603. package/src_old/Textarea/Textarea.types.tsx +21 -0
  604. package/src_old/Textarea/index.ts +2 -0
  605. package/src_old/Textarea/useAutosizeTextArea.ts +33 -0
  606. package/src_old/Theme/ThemeModeToggle.tsx +71 -0
  607. package/src_old/Theme/ThemeProvider.tsx +29 -0
  608. package/src_old/Theme/index.ts +2 -0
  609. package/src_old/Toast/Toast.tsx +109 -0
  610. package/src_old/Toast/Toast.types.tsx +45 -0
  611. package/src_old/Toast/index.ts +3 -0
  612. package/src_old/Toast/toast.constants.tsx +6 -0
  613. package/src_old/Toast/toastVariants.ts +20 -0
  614. package/src_old/Toast/useToast.ts +156 -0
  615. package/src_old/Toaster/Toaster.tsx +35 -0
  616. package/src_old/Toaster/index.ts +1 -0
  617. package/src_old/Toggle/Toggle.tsx +45 -0
  618. package/src_old/Toggle/index.ts +1 -0
  619. package/src_old/ToggleGroup/ToggleGroup.tsx +61 -0
  620. package/src_old/ToggleGroup/index.ts +1 -0
  621. package/src_old/global.css +275 -0
  622. package/src_old/index.ts +72 -0
  623. package/tsconfig.json +16 -0
  624. package/tsconfig.lib.json +41 -0
  625. 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'