@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,206 @@
1
+ 'use client';
2
+
3
+ import * as React from 'react';
4
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
5
+ import { Check, ChevronRight, Circle } from 'lucide-react';
6
+
7
+ import { cn } from '@oneplatformdev/utils';
8
+
9
+ const DropdownMenu = DropdownMenuPrimitive.Root;
10
+
11
+ const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger
12
+
13
+ const DropdownMenuGroup = DropdownMenuPrimitive.Group
14
+
15
+ const DropdownMenuPortal = DropdownMenuPrimitive.Portal
16
+
17
+ const DropdownMenuSub = DropdownMenuPrimitive.Sub
18
+
19
+ const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup
20
+
21
+ const DropdownMenuSubTrigger = React.forwardRef<
22
+ React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,
23
+ React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {
24
+ inset?: boolean
25
+ }
26
+ >(({ className, inset, children, ...props }, ref) => (
27
+ <DropdownMenuPrimitive.SubTrigger
28
+ ref={ref}
29
+ className={cn(
30
+ "flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
31
+ inset && "pl-8",
32
+ className
33
+ )}
34
+ {...props}
35
+ >
36
+ {children}
37
+ <ChevronRight className="ml-auto" />
38
+ </DropdownMenuPrimitive.SubTrigger>
39
+ ))
40
+ DropdownMenuSubTrigger.displayName =
41
+ DropdownMenuPrimitive.SubTrigger.displayName
42
+
43
+ const DropdownMenuSubContent = React.forwardRef<
44
+ React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,
45
+ React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>
46
+ >(({ className, ...props }, ref) => (
47
+ <DropdownMenuPrimitive.SubContent
48
+ ref={ref}
49
+ className={cn(
50
+ "z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
51
+ className
52
+ )}
53
+ {...props}
54
+ />
55
+ ))
56
+ DropdownMenuSubContent.displayName =
57
+ DropdownMenuPrimitive.SubContent.displayName
58
+
59
+ const DropdownMenuContent = React.forwardRef<
60
+ React.ElementRef<typeof DropdownMenuPrimitive.Content>,
61
+ React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>
62
+ >(({ className, sideOffset = 4, ...props }, ref) => (
63
+ <DropdownMenuPrimitive.Portal>
64
+ <DropdownMenuPrimitive.Content
65
+ ref={ref}
66
+ sideOffset={sideOffset}
67
+ className={cn(
68
+ "z-50 min-w-32 overflow-hidden p-0.5 gap-0 text-popover-foreground",
69
+ 'rounded-lg border border-[#DCDDE1] bg-popover',
70
+ 'shadow-[0px_10px_20px_rgba(3,4,7,0.0625)]',
71
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
72
+ className
73
+ )}
74
+ {...props}
75
+ />
76
+ </DropdownMenuPrimitive.Portal>
77
+ ))
78
+ DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName
79
+
80
+ const DropdownMenuItem = React.forwardRef<
81
+ React.ElementRef<typeof DropdownMenuPrimitive.Item>,
82
+ React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {
83
+ inset?: boolean
84
+ }
85
+ >(({ className, inset, ...props }, ref) => (
86
+ <DropdownMenuPrimitive.Item
87
+ ref={ref}
88
+ className={cn(
89
+ "relative flex cursor-default select-none items-center gap-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",
90
+ 'rounded-md',
91
+ 'px-1.5 py-2',
92
+ inset && "pl-8",
93
+ className
94
+ )}
95
+ {...props}
96
+ />
97
+ ))
98
+ DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName
99
+
100
+
101
+ const DropdownMenuCheckboxItem = React.forwardRef<
102
+ React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,
103
+ React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>
104
+ >(({ className, children, checked, ...props }, ref) => (
105
+ <DropdownMenuPrimitive.CheckboxItem
106
+ ref={ref}
107
+ className={cn(
108
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
109
+ className
110
+ )}
111
+ checked={checked}
112
+ {...props}
113
+ >
114
+ <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
115
+ <DropdownMenuPrimitive.ItemIndicator>
116
+ <Check className="h-4 w-4" />
117
+ </DropdownMenuPrimitive.ItemIndicator>
118
+ </span>
119
+ {children}
120
+ </DropdownMenuPrimitive.CheckboxItem>
121
+ ))
122
+ DropdownMenuCheckboxItem.displayName =
123
+ DropdownMenuPrimitive.CheckboxItem.displayName
124
+
125
+ const DropdownMenuRadioItem = React.forwardRef<
126
+ React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,
127
+ React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>
128
+ >(({ className, children, ...props }, ref) => (
129
+ <DropdownMenuPrimitive.RadioItem
130
+ ref={ref}
131
+ className={cn(
132
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
133
+ className
134
+ )}
135
+ {...props}
136
+ >
137
+ <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
138
+ <DropdownMenuPrimitive.ItemIndicator>
139
+ <Circle className="h-2 w-2 fill-current" />
140
+ </DropdownMenuPrimitive.ItemIndicator>
141
+ </span>
142
+ {children}
143
+ </DropdownMenuPrimitive.RadioItem>
144
+ ))
145
+ DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName
146
+
147
+ const DropdownMenuLabel = React.forwardRef<
148
+ React.ElementRef<typeof DropdownMenuPrimitive.Label>,
149
+ React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {
150
+ inset?: boolean
151
+ }
152
+ >(({ className, inset, ...props }, ref) => (
153
+ <DropdownMenuPrimitive.Label
154
+ ref={ref}
155
+ className={cn(
156
+ "px-2 py-1.5 text-sm font-semibold",
157
+ inset && "pl-8",
158
+ className
159
+ )}
160
+ {...props}
161
+ />
162
+ ))
163
+ DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName
164
+
165
+ const DropdownMenuSeparator = React.forwardRef<
166
+ React.ElementRef<typeof DropdownMenuPrimitive.Separator>,
167
+ React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>
168
+ >(({ className, ...props }, ref) => (
169
+ <DropdownMenuPrimitive.Separator
170
+ ref={ref}
171
+ className={cn("-mx-1 my-1 h-px bg-muted", className)}
172
+ {...props}
173
+ />
174
+ ))
175
+ DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName
176
+
177
+ const DropdownMenuShortcut = ({
178
+ className,
179
+ ...props
180
+ }: React.HTMLAttributes<HTMLSpanElement>) => {
181
+ return (
182
+ <span
183
+ className={cn("ml-auto text-xs tracking-widest opacity-60", className)}
184
+ {...props}
185
+ />
186
+ )
187
+ }
188
+ DropdownMenuShortcut.displayName = "DropdownMenuShortcut"
189
+
190
+ export {
191
+ DropdownMenu,
192
+ DropdownMenuTrigger,
193
+ DropdownMenuContent,
194
+ DropdownMenuItem,
195
+ DropdownMenuCheckboxItem,
196
+ DropdownMenuRadioItem,
197
+ DropdownMenuLabel,
198
+ DropdownMenuSeparator,
199
+ DropdownMenuShortcut,
200
+ DropdownMenuGroup,
201
+ DropdownMenuPortal,
202
+ DropdownMenuSub,
203
+ DropdownMenuSubContent,
204
+ DropdownMenuSubTrigger,
205
+ DropdownMenuRadioGroup,
206
+ }
@@ -0,0 +1 @@
1
+ export * from './DropdownMenu';
@@ -0,0 +1,229 @@
1
+ import { X } from 'lucide-react';
2
+ import { forwardRef, useImperativeHandle, useState } from 'react';
3
+ import { FileRejection, useDropzone } from 'react-dropzone';
4
+
5
+ import { cn } from '@oneplatformdev/utils';
6
+
7
+ import { Card } from '../Card/Card';
8
+
9
+ import {
10
+ DEFAULT_FILE_TYPES,
11
+ DropzoneControl,
12
+ DropzoneProps,
13
+ DropzoneValueItem
14
+ } from './Dropzone.types';
15
+ import { FilePreview } from './DropzoneFilePreview';
16
+ import { DropzoneSinglePickPreview } from './DropzoneSinglePickPreview';
17
+ import { DefaultFileIcon, extractName, isFile } from './DropzoneUtils';
18
+
19
+ /**
20
+ * Dropzone component - A drag-and-drop file upload area with image previews, error handling, and localization.
21
+ *
22
+ * @component
23
+ * @param {DropzoneProps} props - The props for the Dropzone component.
24
+ * @param {string[]} [props.acceptTypes=DEFAULT_FILE_TYPES] - Allowed file MIME types.
25
+ * @param {number} props.maxSizeMB - Maximum allowed file size in megabytes.
26
+ * @param {number} [props.maxFiles=1] - Maximum number of files that can be uploaded.
27
+ * @param {DropzoneTranslations} props.translations - Translations for text labels.
28
+ * @param {(errors: FileRejection[]) => void} [props.onErrors] - Callback triggered when file errors occur.
29
+ * @param {boolean} [props.hideErrors=false] - Whether to hide error messages.
30
+ * @param {boolean} [props.disabled=false] - Whether the dropzone is disabled.
31
+ * @param {DropzoneStyles} [props.classNames] - Custom classNames for different dropzone states.
32
+ * @param {DropzoneValueItem[]} [props.value=[]] - Current selected files or URLs.
33
+ * @param {(items: DropzoneValueItem[]) => void} [props.onChangeValue] - Callback triggered when file selection changes.
34
+ * @param {string} [props.className] - Additional class names for styling.
35
+ * @param {React.Ref<HTMLDivElement>} ref - Ref for the root dropzone container.
36
+ * @returns {JSX.Element} The rendered Dropzone component.
37
+ */
38
+ export const Dropzone = forwardRef<DropzoneControl, DropzoneProps>(
39
+ (
40
+ {
41
+ acceptTypes = DEFAULT_FILE_TYPES,
42
+ maxSizeMB,
43
+ maxFiles = 1,
44
+ onErrors,
45
+ hideErrors = false,
46
+ disabled = false,
47
+ classNames,
48
+ value = [],
49
+ onChangeValue,
50
+ className,
51
+ labelDropzonePrompt = 'Drop files here or click to select',
52
+ labelDropzoneSubPrompt = '',
53
+ labelOrClickToSelect = 'Click to select files',
54
+ labelSelectedFiles = 'Selected Files',
55
+ labelUploadErrors = 'Upload Errors',
56
+ labelFileTooLarge = 'File is too large',
57
+ labelInvalidFileType = 'Invalid file type',
58
+ singlePick = false,
59
+ labelDropzoneClassname,
60
+ labelDropzoneSubClassname,
61
+ ...restProps
62
+ },
63
+ ref
64
+ ) => {
65
+ const [items, setItems] = useState<DropzoneValueItem[]>(value);
66
+ const [fileErrors, setFileErrors] = useState<FileRejection[]>([]);
67
+
68
+ const onDrop = (acceptedFiles: File[], fileRejections: FileRejection[]) => {
69
+ setFileErrors(fileRejections);
70
+ onErrors?.(fileRejections);
71
+
72
+ const newItems = singlePick
73
+ ? acceptedFiles.slice(0, 1)
74
+ : [...items, ...acceptedFiles].slice(0, maxFiles);
75
+
76
+ setItems(newItems);
77
+ onChangeValue?.(newItems);
78
+ };
79
+
80
+ const removeItem = (
81
+ event: React.MouseEvent<HTMLDivElement>,
82
+ index: number
83
+ ) => {
84
+ if (disabled) return;
85
+ event.stopPropagation();
86
+
87
+ const newItems = items.filter((_, i) => i !== index);
88
+ setItems(newItems);
89
+ onChangeValue?.(newItems);
90
+ };
91
+
92
+ const { getRootProps, getInputProps, isDragActive } = useDropzone({
93
+ onDrop,
94
+ accept: acceptTypes.reduce((acc, fileType) => {
95
+ acc[fileType] = [];
96
+ return acc;
97
+ }, {} as Record<string, string[]>),
98
+ maxSize: maxSizeMB * 1024 * 1024,
99
+ maxFiles: singlePick ? 1 : maxFiles,
100
+ disabled,
101
+ });
102
+
103
+ useImperativeHandle(ref, () => {
104
+ return {
105
+ setItems,
106
+ };
107
+ }, []);
108
+
109
+
110
+ return (
111
+ <Card
112
+ {...getRootProps()}
113
+ {...restProps}
114
+ className={cn(
115
+ `border-dashed p-2 text-center flex flex-col items-center justify-center cursor-pointer`,
116
+ disabled && 'border-[#E4E4E7] pointer-events-none',
117
+ fileErrors.length > 0 ? 'border-red-500' : 'border-[#E4E4E7]!',
118
+ isDragActive && 'bg-gray-100',
119
+ singlePick && 'shadow-none!',
120
+ singlePick && items.length > 0 && 'p-0! shadow-none!',
121
+ className
122
+ )}
123
+ >
124
+ <input {...getInputProps()} />
125
+
126
+ {items.length === 0 && fileErrors.length === 0 && (
127
+ <div
128
+ className={cn(
129
+ 'flex flex-col items-center gap-1',
130
+ classNames?.idleWrapper
131
+ )}
132
+ >
133
+ <DefaultFileIcon />
134
+
135
+ {!disabled && (
136
+ <>
137
+ <span className={cn("font-medium text-md text-foreground max-w-[200px]", labelDropzoneClassname)}>
138
+ {labelDropzonePrompt}
139
+ </span>
140
+ <span className={cn("font-normal text-xs text-foreground max-w-[250px]", labelDropzoneSubClassname)}>
141
+ {labelDropzoneSubPrompt}
142
+ </span>
143
+ </>
144
+ )}
145
+ </div>
146
+ )}
147
+
148
+ {fileErrors.length > 0 && (
149
+ <div className={cn('w-full mt-4', classNames?.errorWrapper)}>
150
+ <span className="font-semibold text-red-500">
151
+ {labelUploadErrors}:
152
+ </span>
153
+ <ul className="mt-2 text-sm text-red-500 list-disc list-inside">
154
+ {fileErrors.map((fileRejection, index) => (
155
+ <li key={index}>
156
+ {fileRejection.file.name} (
157
+ {(fileRejection.file.size / (1024 * 1024)).toFixed(2)} MB)
158
+ {!hideErrors && (
159
+ <ul className="ml-4 list-disc list-inside">
160
+ {fileRejection.errors.map((error, errorIndex) => (
161
+ <li key={errorIndex}>
162
+ {error.code === 'file-too-large' && labelFileTooLarge}
163
+ {error.code === 'file-invalid-type' &&
164
+ labelInvalidFileType}
165
+ {error.code !== 'file-too-large' &&
166
+ error.code !== 'file-invalid-type' &&
167
+ error.message}
168
+ </li>
169
+ ))}
170
+ </ul>
171
+ )}
172
+ </li>
173
+ ))}
174
+ </ul>
175
+ </div>
176
+ )}
177
+
178
+ {Boolean(singlePick && items.length) && (
179
+ <DropzoneSinglePickPreview
180
+ item={items[0]}
181
+ onRemoveClick={(e) => removeItem(e, 0)}
182
+ disabled={disabled}
183
+ />
184
+ )}
185
+
186
+ {!singlePick && items.length > 0 && (
187
+ <div className={cn('w-full mt-2', classNames?.previewWrapper)}>
188
+ <pre className="font-semibold text-gray-600">
189
+ {labelSelectedFiles}:
190
+ </pre>
191
+ <ul className="mt-2 text-sm text-gray-500 flex flex-wrap gap-4 items-start justify-center">
192
+ {items.map((item, index) => {
193
+ const fileName = isFile(item) ? item.name : extractName(item);
194
+ const fileSize = isFile(item)
195
+ ? (item.size / (1024 * 1024)).toFixed(2) + ' MB'
196
+ : '';
197
+
198
+ return (
199
+ <li
200
+ key={index}
201
+ className="flex flex-col items-center gap-2 relative"
202
+ >
203
+ <div className="relative">
204
+ <FilePreview item={item} styles={classNames} />
205
+ <div
206
+ className="absolute top-0 right-0 cursor-pointer bg-gray-300 rounded-sm"
207
+ onClick={(event) => removeItem(event, index)}
208
+ >
209
+ <X size={16} strokeWidth={1} color="black" />
210
+ </div>
211
+ </div>
212
+ <span className="inline-flex flex-col items-center">
213
+ <span className="max-w-[80px] text-ellipsis overflow-hidden whitespace-nowrap">
214
+ {fileName}
215
+ </span>
216
+ {fileSize && <span>({fileSize})</span>}
217
+ </span>
218
+ </li>
219
+ );
220
+ })}
221
+ </ul>
222
+ </div>
223
+ )}
224
+ </Card>
225
+ );
226
+ }
227
+ );
228
+
229
+ Dropzone.displayName = 'Dropzone';
@@ -0,0 +1,69 @@
1
+ import { FileRejection } from 'react-dropzone';
2
+ import { Dispatch, SetStateAction } from 'react';
3
+
4
+ export type DropzoneValueItem = File | string;
5
+
6
+ export interface FilePreviewProps {
7
+ item: DropzoneValueItem;
8
+ styles?: Pick<
9
+ DropzoneStyles,
10
+ 'previewWraper' | 'previewImage' | 'previewFile'
11
+ >;
12
+ }
13
+
14
+ export interface DropzoneTranslations {
15
+ labelDropzonePrompt?: string;
16
+ labelDropzoneSubPrompt?: string;
17
+ labelOrClickToSelect?: string;
18
+ labelSelectedFiles?: string;
19
+ labelUploadErrors?: string;
20
+ labelFileTooLarge?: string;
21
+ labelInvalidFileType?: string;
22
+ }
23
+
24
+ export interface DropzoneProps
25
+ extends DropzoneTranslations,
26
+ React.HTMLAttributes<HTMLDivElement> {
27
+ acceptTypes?: string[];
28
+ maxSizeMB: number;
29
+ maxFiles?: number;
30
+ onErrors?: (errors: FileRejection[]) => void;
31
+ hideErrors?: boolean;
32
+ disabled?: boolean;
33
+ classNames?: DropzoneStyles;
34
+ value?: DropzoneValueItem[];
35
+ onChangeValue?: (items: DropzoneValueItem[]) => void;
36
+ singlePick?: boolean;
37
+ labelDropzoneClassname?: string;
38
+ labelDropzoneSubClassname?: string;
39
+ }
40
+
41
+ export interface DropzoneStyles {
42
+ idleWrapper?: string;
43
+ previewWrapper?: string;
44
+ errorWrapper?: string;
45
+ previewWraper?: string;
46
+ previewImage?: string;
47
+ previewFile?: string;
48
+ }
49
+
50
+ export const DEFAULT_FILE_TYPES = [
51
+ 'application/msword',
52
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
53
+ 'text/csv',
54
+ 'text/plain',
55
+ 'application/pdf',
56
+ ];
57
+
58
+ export const DEFAULT_IMAGES_TYPES = [
59
+ 'image/png',
60
+ 'image/jpeg',
61
+ 'image/jpg',
62
+ 'image/webp',
63
+ 'image/gif',
64
+ ];
65
+
66
+
67
+ export interface DropzoneControl {
68
+ setItems: Dispatch<SetStateAction<DropzoneValueItem[]>>;
69
+ }
@@ -0,0 +1,69 @@
1
+ import { FC, useEffect, useState } from 'react';
2
+ import { File as FileIcon } from 'lucide-react';
3
+ import { DEFAULT_IMAGES_TYPES, FilePreviewProps } from './Dropzone.types';
4
+ import { isFile } from './DropzoneUtils';
5
+ import { cn } from '@oneplatformdev/utils';
6
+
7
+ export const FilePreview: FC<FilePreviewProps> = ({ item, styles }) => {
8
+ const [preview, setPreview] = useState<string | null>(null);
9
+
10
+ const isFileTypeImage =
11
+ isFile(item) && DEFAULT_IMAGES_TYPES.includes(item.type);
12
+
13
+ useEffect(() => {
14
+ let img: HTMLImageElement | null = null;
15
+
16
+ if (isFile(item) && isFileTypeImage) {
17
+ const reader = new FileReader();
18
+ reader.onloadend = () => setPreview(reader.result as string);
19
+ reader.readAsDataURL(item);
20
+
21
+ return () => setPreview(null);
22
+ } else if (typeof item === 'string') {
23
+ img = new Image();
24
+ img.src = item;
25
+ img.onload = () => setPreview(item);
26
+ img.onerror = () => setPreview(null);
27
+
28
+ return () => {
29
+ img!.onload = null;
30
+ img!.onerror = null;
31
+ };
32
+ } else {
33
+ setPreview(null);
34
+ }
35
+
36
+ return () => setPreview(null);
37
+ }, [item, isFileTypeImage]);
38
+
39
+ return (
40
+ <div
41
+ className={cn(
42
+ 'w-32 h-32 border border-gray-300 rounded-md overflow-hidden flex items-center justify-center',
43
+ styles?.previewWraper
44
+ )}
45
+ >
46
+ {preview ? (
47
+ <img
48
+ src={preview}
49
+ alt={isFile(item) ? item.name : 'external-image'}
50
+ className={cn('w-full h-full object-cover', styles?.previewImage)}
51
+ />
52
+ ) : (
53
+ <div
54
+ className={cn(
55
+ 'flex flex-col items-center justify-center text-gray-500 text-sm p-2 text-center',
56
+ styles?.previewFile
57
+ )}
58
+ >
59
+ <FileIcon className="w-6 h-6" />
60
+ {!isFile(item) ? (
61
+ <span className="text-xs break-all">{item}</span>
62
+ ) : (
63
+ <span className="text-xs break-all">{item.name}</span>
64
+ )}
65
+ </div>
66
+ )}
67
+ </div>
68
+ );
69
+ };
@@ -0,0 +1,64 @@
1
+ import { useMemo } from 'react';
2
+ import { DropzoneValueItem } from './Dropzone.types';
3
+ import { isFile } from './DropzoneUtils';
4
+ import { FileIcon, X } from 'lucide-react';
5
+
6
+ export const transformImageToSrc = (preview?: string | File | null): string => {
7
+ if (!preview) return '';
8
+ switch (true) {
9
+ case typeof preview === 'string' && !!preview.trim() && preview !== 'null':
10
+ return preview;
11
+ case preview instanceof File:
12
+ return URL.createObjectURL(preview);
13
+ case preview instanceof FileList:
14
+ return preview[0] ? URL.createObjectURL(preview[0]) : '';
15
+ default:
16
+ return '';
17
+ }
18
+ };
19
+
20
+ interface SinglePickPreviewProps {
21
+ item: DropzoneValueItem;
22
+ disabled?: boolean;
23
+ onRemoveClick: (e: React.MouseEvent<HTMLDivElement>) => void;
24
+ }
25
+
26
+ export const DropzoneSinglePickPreview = ({
27
+ item,
28
+ disabled,
29
+ onRemoveClick,
30
+ }: SinglePickPreviewProps) => {
31
+ const isFileType = isFile(item);
32
+ const fileName = isFileType ? item.name : item;
33
+
34
+ const showImage = useMemo(() => {
35
+ return (isFileType && (item as File)?.type?.includes('image')) || typeof item === 'string';
36
+ }, [item, isFileType]);
37
+
38
+ const preview = useMemo(() => (showImage ? transformImageToSrc(item) : ''), [item, showImage]);
39
+
40
+ return (
41
+ <div className="relative w-full h-64 sm:h-80 md:h-96 overflow-hidden outline-[#E4E4E7] outline-2 outline-dashed -outline-offset-1 rounded-lg">
42
+ {!disabled && (
43
+ <div className="absolute top-2 right-2 cursor-pointer bg-white/70 rounded-[4px] p-1 shadow-sm" onClick={onRemoveClick} >
44
+ <X size={16} strokeWidth={2} color="black" />
45
+ </div>
46
+ )}
47
+
48
+ {preview ? (
49
+ <img
50
+ src={preview}
51
+ alt={fileName?.toString()}
52
+ className="w-full h-full object-cover rounded-lg "
53
+ />
54
+ ) : (
55
+ <div className="w-full h-full flex flex-col items-center justify-center text-gray-600">
56
+ <FileIcon size={28} />
57
+ <span className="text-sm mt-2 break-all px-2 text-center">
58
+ {fileName?.toString()}
59
+ </span>
60
+ </div>
61
+ )}
62
+ </div>
63
+ );
64
+ };
@@ -0,0 +1,31 @@
1
+ import { DropzoneValueItem } from './Dropzone.types';
2
+
3
+ export function isFile(item: DropzoneValueItem): item is File {
4
+ return item instanceof File;
5
+ }
6
+
7
+ export function extractName(url: string) {
8
+ try {
9
+ const parts = url.split('?')[0].split('#')[0].split('/');
10
+ return parts[parts.length - 1] || url;
11
+ } catch {
12
+ return url;
13
+ }
14
+ }
15
+
16
+ export const DefaultFileIcon = () => {
17
+ return (
18
+ <svg width="55" height="55" viewBox="0 0 55 55" fill="none" xmlns="http://www.w3.org/2000/svg">
19
+ <mask id="mask0_2430_114601" maskUnits="userSpaceOnUse" x="7" y="4" width="39" height="46">
20
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M7.25 4.68359H45.6174V49.354H7.25V4.68359Z" fill="white"/>
21
+ </mask>
22
+ <g mask="url(#mask0_2430_114601)">
23
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M17.5386 8.05859C13.8103 8.05859 10.7143 11.0781 10.6266 14.8018V38.9196C10.5456 42.7468 13.5606 45.8968 17.3518 45.9801H35.5386C39.2938 45.8451 42.2661 42.7468 42.2413 38.9308V18.9216L31.8148 8.05859H17.5656H17.5386ZM17.5664 49.3551H17.2829C11.6309 49.2336 7.1309 44.5356 7.2524 38.8836V14.7613C7.38515 9.17909 11.9932 4.68359 17.5327 4.68359H17.5732H32.5334C32.9924 4.68359 33.4312 4.87034 33.7507 5.20109L45.1492 17.0743C45.4484 17.3871 45.6172 17.8078 45.6172 18.2421V38.9196C45.6532 44.5648 41.2522 49.1526 35.5979 49.3551H17.5664Z" fill="#0D0E2B" fill-opacity="0.7"/>
24
+ </g>
25
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M43.9198 20.3703H37.7233C33.6036 20.359 30.2578 17.002 30.2578 12.889V6.34375C30.2578 5.41225 31.0138 4.65625 31.9453 4.65625C32.8768 4.65625 33.6328 5.41225 33.6328 6.34375V12.889C33.6328 15.148 35.4688 16.9885 37.7278 16.9953H43.9198C44.8513 16.9953 45.6073 17.7513 45.6073 18.6828C45.6073 19.6143 44.8513 20.3703 43.9198 20.3703Z" fill="#0D0E2B" fill-opacity="0.7"/>
26
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M25.5708 37.729C24.6393 37.729 23.8833 36.973 23.8833 36.0415V22.4492C23.8833 21.5177 24.6393 20.7617 25.5708 20.7617C26.5023 20.7617 27.2583 21.5177 27.2583 22.4492V36.0415C27.2583 36.973 26.5023 37.729 25.5708 37.729Z" fill="#0D0E2B" fill-opacity="0.7"/>
27
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M25.5678 37.7279C25.1201 37.7279 24.6881 37.5501 24.3731 37.2306L19.0968 31.9341C18.4398 31.2726 18.4421 30.2039 19.1013 29.5469C19.7628 28.8899 20.8316 28.8899 21.4886 29.5514L25.5678 33.6509L29.6471 29.5514C30.3041 28.8899 31.3728 28.8899 32.0343 29.5469C32.6936 30.2039 32.6958 31.2726 32.0388 31.9341L26.7626 37.2306C26.4476 37.5501 26.0156 37.7279 25.5678 37.7279Z" fill="#0D0E2B" fill-opacity="0.7"/>
28
+ </svg>
29
+
30
+ );
31
+ };
@@ -0,0 +1,2 @@
1
+ export * from "./Dropzone"
2
+ export * from "./Dropzone.types"