@majapisoftwares/ui 4.0.2

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 (436) hide show
  1. package/base.css +359 -0
  2. package/bootstrap/AppProps.d.ts +10 -0
  3. package/bootstrap/AppProps.js +1 -0
  4. package/bootstrap/index.d.ts +1 -0
  5. package/bootstrap/index.js +1 -0
  6. package/bootstrap/modeScript.d.ts +2 -0
  7. package/bootstrap/modeScript.js +35 -0
  8. package/bootstrap/nprogress.d.ts +1 -0
  9. package/bootstrap/nprogress.js +19 -0
  10. package/bootstrap/scrolledScript.d.ts +2 -0
  11. package/bootstrap/scrolledScript.js +27 -0
  12. package/bootstrap/setupFocusManager.d.ts +1 -0
  13. package/bootstrap/setupFocusManager.js +13 -0
  14. package/bootstrap/suppressConsoleLog.d.ts +1 -0
  15. package/bootstrap/suppressConsoleLog.js +8 -0
  16. package/components/Accordion/Accordion.d.ts +19 -0
  17. package/components/Accordion/Accordion.jsx +27 -0
  18. package/components/Accordion/index.d.ts +3 -0
  19. package/components/Accordion/index.jsx +3 -0
  20. package/components/Alert/Alert.d.ts +31 -0
  21. package/components/Alert/Alert.jsx +53 -0
  22. package/components/Alert/index.d.ts +3 -0
  23. package/components/Alert/index.jsx +3 -0
  24. package/components/Aurora/Aurora.d.ts +10 -0
  25. package/components/Aurora/Aurora.jsx +189 -0
  26. package/components/Aurora/index.d.ts +3 -0
  27. package/components/Aurora/index.jsx +3 -0
  28. package/components/Autocomplete/Autocomplete.d.ts +7 -0
  29. package/components/Autocomplete/Autocomplete.jsx +23 -0
  30. package/components/Autocomplete/UnstyledAutocomplete.d.ts +36 -0
  31. package/components/Autocomplete/UnstyledAutocomplete.jsx +73 -0
  32. package/components/Autocomplete/index.d.ts +5 -0
  33. package/components/Autocomplete/index.jsx +5 -0
  34. package/components/BackgroundEffects/BottomBlurryPoint.d.ts +3 -0
  35. package/components/BackgroundEffects/BottomBlurryPoint.jsx +14 -0
  36. package/components/BackgroundEffects/TopBlurryPoint.d.ts +3 -0
  37. package/components/BackgroundEffects/TopBlurryPoint.jsx +14 -0
  38. package/components/Badge/Badge.d.ts +42 -0
  39. package/components/Badge/Badge.jsx +50 -0
  40. package/components/Badge/index.d.ts +3 -0
  41. package/components/Badge/index.jsx +3 -0
  42. package/components/Breadcrumbs/Breadcrumbs.d.ts +11 -0
  43. package/components/Breadcrumbs/Breadcrumbs.jsx +42 -0
  44. package/components/Breadcrumbs/index.d.ts +3 -0
  45. package/components/Breadcrumbs/index.jsx +3 -0
  46. package/components/Button/Button.d.ts +111 -0
  47. package/components/Button/Button.jsx +129 -0
  48. package/components/Button/UnstyledButton.d.ts +10 -0
  49. package/components/Button/UnstyledButton.jsx +13 -0
  50. package/components/Button/index.d.ts +3 -0
  51. package/components/Button/index.jsx +3 -0
  52. package/components/Carousel/Carousel.d.ts +19 -0
  53. package/components/Carousel/Carousel.jsx +55 -0
  54. package/components/Carousel/index.d.ts +3 -0
  55. package/components/Carousel/index.jsx +3 -0
  56. package/components/Checkbox/Checkbox.d.ts +14 -0
  57. package/components/Checkbox/Checkbox.jsx +45 -0
  58. package/components/Checkbox/index.d.ts +3 -0
  59. package/components/Checkbox/index.js +3 -0
  60. package/components/Code/Code.d.ts +12 -0
  61. package/components/Code/Code.jsx +25 -0
  62. package/components/Code/Json.d.ts +5 -0
  63. package/components/Code/Json.jsx +7 -0
  64. package/components/Code/index.d.ts +4 -0
  65. package/components/Code/index.jsx +4 -0
  66. package/components/ConfirmationButton/ConfirmationButton.d.ts +17 -0
  67. package/components/ConfirmationButton/ConfirmationButton.jsx +13 -0
  68. package/components/ConfirmationButton/index.d.ts +3 -0
  69. package/components/ConfirmationButton/index.jsx +3 -0
  70. package/components/ContextMenu/ContextMenu.d.ts +28 -0
  71. package/components/ContextMenu/ContextMenu.jsx +70 -0
  72. package/components/ContextMenu/index.d.ts +3 -0
  73. package/components/ContextMenu/index.jsx +3 -0
  74. package/components/CopyButton/CopyButton.d.ts +7 -0
  75. package/components/CopyButton/CopyButton.jsx +29 -0
  76. package/components/CopyButton/index.d.ts +3 -0
  77. package/components/CopyButton/index.jsx +3 -0
  78. package/components/DateInput/DateInput.d.ts +6 -0
  79. package/components/DateInput/DateInput.jsx +19 -0
  80. package/components/DateInput/DateTimeInput.d.ts +3 -0
  81. package/components/DateInput/DateTimeInput.jsx +8 -0
  82. package/components/DateInput/index.d.ts +4 -0
  83. package/components/DateInput/index.jsx +4 -0
  84. package/components/DateInput/useRefValue.d.ts +5 -0
  85. package/components/DateInput/useRefValue.js +48 -0
  86. package/components/DatePicker/DatePicker.d.ts +19 -0
  87. package/components/DatePicker/DatePicker.jsx +55 -0
  88. package/components/DatePicker/index.d.ts +3 -0
  89. package/components/DatePicker/index.jsx +3 -0
  90. package/components/DateRangePicker/DateRangePicker.d.ts +16 -0
  91. package/components/DateRangePicker/DateRangePicker.jsx +56 -0
  92. package/components/DateRangePicker/index.d.ts +3 -0
  93. package/components/DateRangePicker/index.jsx +3 -0
  94. package/components/Dialog/Dialog.d.ts +25 -0
  95. package/components/Dialog/Dialog.jsx +35 -0
  96. package/components/Dialog/Dialogs.d.ts +1 -0
  97. package/components/Dialog/Dialogs.jsx +21 -0
  98. package/components/Dialog/dialogs.state.d.ts +21 -0
  99. package/components/Dialog/dialogs.state.js +40 -0
  100. package/components/Dialog/index.d.ts +6 -0
  101. package/components/Dialog/index.jsx +7 -0
  102. package/components/Drawer/Drawer.d.ts +15 -0
  103. package/components/Drawer/Drawer.jsx +72 -0
  104. package/components/Drawer/index.d.ts +3 -0
  105. package/components/Drawer/index.jsx +3 -0
  106. package/components/DropdownMenu/DropdownMenu.d.ts +33 -0
  107. package/components/DropdownMenu/DropdownMenu.jsx +74 -0
  108. package/components/DropdownMenu/index.d.ts +3 -0
  109. package/components/DropdownMenu/index.jsx +3 -0
  110. package/components/ErrorBoundary/ErrorBoundary.d.ts +18 -0
  111. package/components/ErrorBoundary/ErrorBoundary.jsx +32 -0
  112. package/components/ErrorBoundary/index.d.ts +3 -0
  113. package/components/ErrorBoundary/index.jsx +3 -0
  114. package/components/ErrorPage/Error404Page.d.ts +1 -0
  115. package/components/ErrorPage/Error404Page.jsx +4 -0
  116. package/components/ErrorPage/Error500Page.d.ts +1 -0
  117. package/components/ErrorPage/Error500Page.jsx +4 -0
  118. package/components/ErrorPage/ErrorPage.d.ts +11 -0
  119. package/components/ErrorPage/ErrorPage.jsx +23 -0
  120. package/components/FileInput/FileInput.d.ts +47 -0
  121. package/components/FileInput/FileInput.jsx +144 -0
  122. package/components/FileInput/PreviewFile.d.ts +13 -0
  123. package/components/FileInput/PreviewFile.jsx +55 -0
  124. package/components/FileInput/index.d.ts +3 -0
  125. package/components/FileInput/index.jsx +3 -0
  126. package/components/FileSelect/FileSelect.d.ts +31 -0
  127. package/components/FileSelect/FileSelect.jsx +143 -0
  128. package/components/FileSelect/index.d.ts +3 -0
  129. package/components/FileSelect/index.jsx +3 -0
  130. package/components/Footer/Footer.d.ts +19 -0
  131. package/components/Footer/Footer.jsx +30 -0
  132. package/components/Footer/index.d.ts +3 -0
  133. package/components/Footer/index.jsx +3 -0
  134. package/components/GridPattern/GridPattern.d.ts +2 -0
  135. package/components/GridPattern/GridPattern.jsx +12 -0
  136. package/components/GridPattern/index.d.ts +3 -0
  137. package/components/GridPattern/index.jsx +3 -0
  138. package/components/Group/Group.d.ts +5 -0
  139. package/components/Group/Group.jsx +6 -0
  140. package/components/Group/index.d.ts +3 -0
  141. package/components/Group/index.jsx +3 -0
  142. package/components/Header/Header.d.ts +5 -0
  143. package/components/Header/Header.jsx +19 -0
  144. package/components/Header/index.d.ts +3 -0
  145. package/components/Header/index.jsx +3 -0
  146. package/components/ImageInput/ImageInput.d.ts +4 -0
  147. package/components/ImageInput/ImageInput.jsx +8 -0
  148. package/components/ImageInput/index.d.ts +3 -0
  149. package/components/ImageInput/index.jsx +3 -0
  150. package/components/Input/Input.d.ts +14 -0
  151. package/components/Input/Input.jsx +57 -0
  152. package/components/Input/InputIcon.d.ts +9 -0
  153. package/components/Input/InputIcon.jsx +7 -0
  154. package/components/Input/MultiSelectInput.d.ts +13 -0
  155. package/components/Input/MultiSelectInput.jsx +28 -0
  156. package/components/Input/NumericInput.d.ts +6 -0
  157. package/components/Input/NumericInput.jsx +6 -0
  158. package/components/Input/PatternInput.d.ts +6 -0
  159. package/components/Input/PatternInput.jsx +6 -0
  160. package/components/Input/UnstyledInput.d.ts +22 -0
  161. package/components/Input/UnstyledInput.jsx +28 -0
  162. package/components/Input/index.d.ts +6 -0
  163. package/components/Input/index.jsx +6 -0
  164. package/components/Input2/InputWrapper.d.ts +11 -0
  165. package/components/Input2/InputWrapper.jsx +11 -0
  166. package/components/Link/Link.d.ts +3 -0
  167. package/components/Link/Link.jsx +9 -0
  168. package/components/Link/index.d.ts +3 -0
  169. package/components/Link/index.jsx +3 -0
  170. package/components/Loading/Loading.d.ts +3 -0
  171. package/components/Loading/Loading.jsx +13 -0
  172. package/components/Loading/index.d.ts +3 -0
  173. package/components/Loading/index.jsx +3 -0
  174. package/components/Magnet/Magnet.d.ts +13 -0
  175. package/components/Magnet/Magnet.jsx +50 -0
  176. package/components/Magnet/index.d.ts +3 -0
  177. package/components/Magnet/index.jsx +3 -0
  178. package/components/Markdown/Markdown.d.ts +8 -0
  179. package/components/Markdown/Markdown.jsx +13 -0
  180. package/components/Markdown/index.d.ts +3 -0
  181. package/components/Markdown/index.jsx +3 -0
  182. package/components/Menu/Menu.d.ts +28 -0
  183. package/components/Menu/Menu.jsx +54 -0
  184. package/components/Modal/Modal.d.ts +45 -0
  185. package/components/Modal/Modal.jsx +65 -0
  186. package/components/Modal/index.d.ts +4 -0
  187. package/components/Modal/index.jsx +4 -0
  188. package/components/Modal/useModalState.d.ts +6 -0
  189. package/components/Modal/useModalState.js +16 -0
  190. package/components/ModeToggle/ModeToggle.d.ts +9 -0
  191. package/components/ModeToggle/ModeToggle.jsx +12 -0
  192. package/components/ModeToggle/index.d.ts +4 -0
  193. package/components/ModeToggle/index.jsx +5 -0
  194. package/components/ModeToggle/useModeToggle.d.ts +1 -0
  195. package/components/ModeToggle/useModeToggle.js +21 -0
  196. package/components/MultiSelect/MultiSelect.d.ts +28 -0
  197. package/components/MultiSelect/MultiSelect.jsx +130 -0
  198. package/components/MultiSelect/index.d.ts +3 -0
  199. package/components/MultiSelect/index.jsx +3 -0
  200. package/components/MultiText/MultiText.d.ts +23 -0
  201. package/components/MultiText/MultiText.jsx +119 -0
  202. package/components/MultiText/index.d.ts +3 -0
  203. package/components/MultiText/index.jsx +3 -0
  204. package/components/NavigationDrawer/NavigationDrawer.d.ts +9 -0
  205. package/components/NavigationDrawer/NavigationDrawer.jsx +29 -0
  206. package/components/NavigationDrawer/NavigationItem.d.ts +13 -0
  207. package/components/NavigationDrawer/NavigationItem.jsx +24 -0
  208. package/components/NavigationDrawer/index.d.ts +6 -0
  209. package/components/NavigationDrawer/index.jsx +6 -0
  210. package/components/NavigationDrawer/navigationDrawer.state.d.ts +9 -0
  211. package/components/NavigationDrawer/navigationDrawer.state.js +19 -0
  212. package/components/NoSsr/NoSsr.d.ts +4 -0
  213. package/components/NoSsr/NoSsr.jsx +8 -0
  214. package/components/NoSsr/index.d.ts +3 -0
  215. package/components/NoSsr/index.jsx +3 -0
  216. package/components/Noise/Noise.d.ts +11 -0
  217. package/components/Noise/Noise.jsx +69 -0
  218. package/components/Noise/index.d.ts +3 -0
  219. package/components/Noise/index.jsx +3 -0
  220. package/components/Notifications/Notifications.d.ts +3 -0
  221. package/components/Notifications/Notifications.jsx +60 -0
  222. package/components/Notifications/index.d.ts +5 -0
  223. package/components/Notifications/index.jsx +6 -0
  224. package/components/Notifications/notifications.state.d.ts +24 -0
  225. package/components/Notifications/notifications.state.js +41 -0
  226. package/components/Orb/Orb.d.ts +8 -0
  227. package/components/Orb/Orb.jsx +258 -0
  228. package/components/Orb/index.d.ts +3 -0
  229. package/components/Orb/index.jsx +3 -0
  230. package/components/Pagination/Pagination.d.ts +13 -0
  231. package/components/Pagination/Pagination.jsx +64 -0
  232. package/components/Pagination/index.d.ts +3 -0
  233. package/components/Pagination/index.jsx +3 -0
  234. package/components/Particles/Particles.d.ts +18 -0
  235. package/components/Particles/Particles.jsx +205 -0
  236. package/components/Particles/index.d.ts +3 -0
  237. package/components/Particles/index.jsx +3 -0
  238. package/components/PictureCropInput/PictureCropInput.d.ts +17 -0
  239. package/components/PictureCropInput/PictureCropInput.jsx +153 -0
  240. package/components/PictureCropInput/canvasPreview.d.ts +2 -0
  241. package/components/PictureCropInput/canvasPreview.js +37 -0
  242. package/components/PictureCropInput/index.d.ts +3 -0
  243. package/components/PictureCropInput/index.js +3 -0
  244. package/components/Popover/Popover.d.ts +13 -0
  245. package/components/Popover/Popover.jsx +22 -0
  246. package/components/Popover/index.d.ts +3 -0
  247. package/components/Popover/index.jsx +3 -0
  248. package/components/Resizable/Resizable.d.ts +12 -0
  249. package/components/Resizable/Resizable.jsx +54 -0
  250. package/components/Resizable/index.d.ts +3 -0
  251. package/components/Resizable/index.jsx +3 -0
  252. package/components/ScrollArea/ScrollArea.d.ts +9 -0
  253. package/components/ScrollArea/ScrollArea.jsx +16 -0
  254. package/components/ScrollArea/index.d.ts +3 -0
  255. package/components/ScrollArea/index.jsx +3 -0
  256. package/components/Select/Select.d.ts +24 -0
  257. package/components/Select/Select.jsx +55 -0
  258. package/components/Select/index.d.ts +3 -0
  259. package/components/Select/index.jsx +3 -0
  260. package/components/Skeleton/Skeleton.d.ts +2 -0
  261. package/components/Skeleton/Skeleton.jsx +8 -0
  262. package/components/Skeleton/index.d.ts +3 -0
  263. package/components/Skeleton/index.jsx +3 -0
  264. package/components/Slider/Slider.d.ts +10 -0
  265. package/components/Slider/Slider.jsx +21 -0
  266. package/components/Slider/index.d.ts +3 -0
  267. package/components/Slider/index.jsx +3 -0
  268. package/components/Spotlight/Spotlight.d.ts +30 -0
  269. package/components/Spotlight/Spotlight.jsx +77 -0
  270. package/components/Spotlight/index.d.ts +3 -0
  271. package/components/Spotlight/index.jsx +3 -0
  272. package/components/SpotlightCard/SpotlightCard.d.ts +7 -0
  273. package/components/SpotlightCard/SpotlightCard.jsx +35 -0
  274. package/components/SpotlightCard/index.d.ts +3 -0
  275. package/components/SpotlightCard/index.jsx +3 -0
  276. package/components/Stack/Stack.d.ts +4 -0
  277. package/components/Stack/Stack.jsx +5 -0
  278. package/components/Stack/index.d.ts +3 -0
  279. package/components/Stack/index.jsx +3 -0
  280. package/components/StarBorder/StarBorder.d.ts +11 -0
  281. package/components/StarBorder/StarBorder.jsx +19 -0
  282. package/components/StarBorder/index.d.ts +3 -0
  283. package/components/StarBorder/index.jsx +3 -0
  284. package/components/Switch/Switch.d.ts +16 -0
  285. package/components/Switch/Switch.jsx +24 -0
  286. package/components/Switch/index.d.ts +3 -0
  287. package/components/Switch/index.jsx +3 -0
  288. package/components/Table/DataTable.d.ts +57 -0
  289. package/components/Table/DataTable.jsx +155 -0
  290. package/components/Table/Table.d.ts +27 -0
  291. package/components/Table/Table.jsx +31 -0
  292. package/components/Table/TableActionButton.d.ts +6 -0
  293. package/components/Table/TableActionButton.jsx +20 -0
  294. package/components/Table/TableBody.d.ts +6 -0
  295. package/components/Table/TableBody.jsx +10 -0
  296. package/components/Table/TableCell.d.ts +9 -0
  297. package/components/Table/TableCell.jsx +18 -0
  298. package/components/Table/TableFooter.d.ts +5 -0
  299. package/components/Table/TableFooter.jsx +5 -0
  300. package/components/Table/TableFooterWithPagination.d.ts +13 -0
  301. package/components/Table/TableFooterWithPagination.jsx +57 -0
  302. package/components/Table/TableHead.d.ts +5 -0
  303. package/components/Table/TableHead.jsx +9 -0
  304. package/components/Table/TableHeadContext.d.ts +4 -0
  305. package/components/Table/TableHeadContext.jsx +3 -0
  306. package/components/Table/TableHeader.d.ts +7 -0
  307. package/components/Table/TableHeader.jsx +15 -0
  308. package/components/Table/TableRow.d.ts +8 -0
  309. package/components/Table/TableRow.jsx +9 -0
  310. package/components/Table/index.d.ts +3 -0
  311. package/components/Table/index.jsx +3 -0
  312. package/components/Tabs/Tabs.d.ts +9 -0
  313. package/components/Tabs/Tabs.jsx +13 -0
  314. package/components/Tabs/index.d.ts +3 -0
  315. package/components/Tabs/index.jsx +3 -0
  316. package/components/TabsSwitcher/Tab.d.ts +15 -0
  317. package/components/TabsSwitcher/Tab.jsx +18 -0
  318. package/components/TabsSwitcher/TabsSwitcher.d.ts +22 -0
  319. package/components/TabsSwitcher/TabsSwitcher.jsx +31 -0
  320. package/components/TabsSwitcher/index.d.ts +4 -0
  321. package/components/TabsSwitcher/index.jsx +4 -0
  322. package/components/Text/Text.d.ts +24 -0
  323. package/components/Text/Text.jsx +28 -0
  324. package/components/Text/index.d.ts +3 -0
  325. package/components/Text/index.jsx +3 -0
  326. package/components/Textarea/Textarea.d.ts +5 -0
  327. package/components/Textarea/Textarea.jsx +6 -0
  328. package/components/Textarea/index.d.ts +3 -0
  329. package/components/Textarea/index.js +3 -0
  330. package/components/Threads/Threads.d.ts +9 -0
  331. package/components/Threads/Threads.jsx +203 -0
  332. package/components/Threads/index.d.ts +3 -0
  333. package/components/Threads/index.jsx +3 -0
  334. package/components/Tooltip/Tooltip.d.ts +11 -0
  335. package/components/Tooltip/Tooltip.jsx +21 -0
  336. package/components/Tooltip/index.d.ts +3 -0
  337. package/components/Tooltip/index.jsx +3 -0
  338. package/components/VisibilityActivatedButton/VisibilityActivatedButton.d.ts +7 -0
  339. package/components/VisibilityActivatedButton/VisibilityActivatedButton.jsx +18 -0
  340. package/components/VisibilityActivatedButton/index.d.ts +3 -0
  341. package/components/VisibilityActivatedButton/index.jsx +3 -0
  342. package/form.d.ts +82 -0
  343. package/form.js +113 -0
  344. package/form2.d.ts +15 -0
  345. package/form2.jsx +29 -0
  346. package/hooks/useBeforeUnload.d.ts +1 -0
  347. package/hooks/useBeforeUnload.js +17 -0
  348. package/hooks/useDebounceEffect.d.ts +2 -0
  349. package/hooks/useDebounceEffect.js +14 -0
  350. package/hooks/useDebouncedValue.d.ts +2 -0
  351. package/hooks/useDebouncedValue.js +14 -0
  352. package/hooks/useLagRadar.d.ts +1 -0
  353. package/hooks/useLagRadar.jsx +124 -0
  354. package/hooks/useMediaQuery.d.ts +1 -0
  355. package/hooks/useMediaQuery.js +37 -0
  356. package/hooks/useMutationWindowCloseProtection.d.ts +2 -0
  357. package/hooks/useMutationWindowCloseProtection.js +13 -0
  358. package/hooks/useScroll.d.ts +3 -0
  359. package/hooks/useScroll.js +47 -0
  360. package/hooks/useTranslation.d.ts +4 -0
  361. package/hooks/useTranslation.js +11 -0
  362. package/hooks/useWhyDidYouUpdate.d.ts +3 -0
  363. package/hooks/useWhyDidYouUpdate.js +44 -0
  364. package/imgur.d.ts +1 -0
  365. package/imgur.js +13 -0
  366. package/package.json +9 -0
  367. package/styles/DayPicker.classNames.d.ts +29 -0
  368. package/styles/DayPicker.classNames.js +30 -0
  369. package/styles/DayPicker.classNames.ts +81 -0
  370. package/styles/Dropdown.classNames.d.ts +6 -0
  371. package/styles/Dropdown.classNames.js +7 -0
  372. package/styles/Dropdown.classNames.ts +38 -0
  373. package/styles/Input.css +23 -0
  374. package/styles/Modal.classNames.d.ts +2 -0
  375. package/styles/Modal.classNames.js +3 -0
  376. package/styles/Modal.classNames.ts +15 -0
  377. package/styles/MultiText.css +40 -0
  378. package/styles/Pagination.css +19 -0
  379. package/styles/Tabs.css +23 -0
  380. package/tsconfig.tsbuildinfo +1 -0
  381. package/types.d.ts +6 -0
  382. package/types.js +1 -0
  383. package/utils/UseState.d.ts +3 -0
  384. package/utils/UseState.js +1 -0
  385. package/utils/blobToText.d.ts +1 -0
  386. package/utils/blobToText.js +13 -0
  387. package/utils/capitalize.d.ts +1 -0
  388. package/utils/capitalize.js +6 -0
  389. package/utils/clsx.d.ts +2 -0
  390. package/utils/clsx.js +5 -0
  391. package/utils/copy2DToClipboard.d.ts +1 -0
  392. package/utils/copy2DToClipboard.js +44 -0
  393. package/utils/cpfCpnjUtils.d.ts +3 -0
  394. package/utils/cpfCpnjUtils.js +43 -0
  395. package/utils/createLocalStorageStateHydration.d.ts +1 -0
  396. package/utils/createLocalStorageStateHydration.js +18 -0
  397. package/utils/createStateHydration.d.ts +3 -0
  398. package/utils/createStateHydration.js +49 -0
  399. package/utils/csvBlobToJson.d.ts +2 -0
  400. package/utils/csvBlobToJson.js +60 -0
  401. package/utils/downloadArrayAsCSV.d.ts +1 -0
  402. package/utils/downloadArrayAsCSV.js +34 -0
  403. package/utils/emailRegExp.d.ts +2 -0
  404. package/utils/emailRegExp.js +3 -0
  405. package/utils/fakeArray.d.ts +1 -0
  406. package/utils/fakeArray.js +3 -0
  407. package/utils/filterBoolean.d.ts +1 -0
  408. package/utils/filterBoolean.js +3 -0
  409. package/utils/formatClock.d.ts +1 -0
  410. package/utils/formatClock.js +21 -0
  411. package/utils/formatTime.d.ts +2 -0
  412. package/utils/formatTime.js +40 -0
  413. package/utils/getInitials.d.ts +4 -0
  414. package/utils/getInitials.js +8 -0
  415. package/utils/isBrowser.d.ts +12 -0
  416. package/utils/isBrowser.js +26 -0
  417. package/utils/ms.d.ts +6 -0
  418. package/utils/ms.js +31 -0
  419. package/utils/preventDefault.d.ts +1 -0
  420. package/utils/preventDefault.js +3 -0
  421. package/utils/recursiveChildrenMap.d.ts +2 -0
  422. package/utils/recursiveChildrenMap.js +16 -0
  423. package/utils/setSelectionRange.d.ts +1 -0
  424. package/utils/setSelectionRange.js +55 -0
  425. package/utils/smoothScrollToHref.d.ts +2 -0
  426. package/utils/smoothScrollToHref.js +10 -0
  427. package/utils/stopPropagation.d.ts +2 -0
  428. package/utils/stopPropagation.js +3 -0
  429. package/utils/stripHtml.d.ts +1 -0
  430. package/utils/stripHtml.js +4 -0
  431. package/utils/stripLineBreak.d.ts +1 -0
  432. package/utils/stripLineBreak.js +4 -0
  433. package/utils/stripMarkdown.d.ts +1 -0
  434. package/utils/stripMarkdown.js +28 -0
  435. package/utils/xlsxBlobToJson.d.ts +2 -0
  436. package/utils/xlsxBlobToJson.js +59 -0
@@ -0,0 +1,3 @@
1
+ import FileSelect from "./FileSelect";
2
+ export * from "./FileSelect";
3
+ export default FileSelect;
@@ -0,0 +1,3 @@
1
+ import FileSelect from "./FileSelect";
2
+ export * from "./FileSelect";
3
+ export default FileSelect;
@@ -0,0 +1,19 @@
1
+ import { ReactElement, ReactNode } from "react";
2
+ export type FooterProps = {
3
+ main?: {
4
+ name: string;
5
+ href: string;
6
+ }[];
7
+ social?: {
8
+ name: string;
9
+ href: string;
10
+ icon: ReactElement<{
11
+ className: string;
12
+ "aria-hidden": string;
13
+ }>;
14
+ }[];
15
+ companyName: ReactNode;
16
+ allRightsReserved?: string;
17
+ children: ReactNode;
18
+ };
19
+ export default function Footer({ main, social, companyName, allRightsReserved, children, }: FooterProps): import("react").JSX.Element;
@@ -0,0 +1,30 @@
1
+ import { cloneElement } from "react";
2
+ const CURRENT_YEAR = new Date().getFullYear();
3
+ export default function Footer({ main, social, companyName, allRightsReserved = "All rights reserved", children, }) {
4
+ return (<>
5
+ <div className="flex min-h-screen flex-col">{children}</div>
6
+ <footer className="border-t border-slate-900/5 bg-white dark:border-slate-50/5 dark:bg-zinc-900">
7
+ <div className="mx-auto max-w-7xl overflow-hidden px-4 py-12 sm:px-6 lg:px-8">
8
+ {main && (<nav className="-mx-5 -my-2 mb-8 flex flex-wrap justify-center" aria-label="Footer">
9
+ {main.map((item) => (<div key={item.name} className="px-5 py-2">
10
+ <a href={item.href} className="text-base text-zinc-500 hover:text-zinc-900">
11
+ {item.name}
12
+ </a>
13
+ </div>))}
14
+ </nav>)}
15
+ {social && (<div className="mb-8 flex justify-center space-x-6">
16
+ {social.map((item) => (<a key={item.name} href={item.href} className="text-zinc-400 hover:text-zinc-500">
17
+ <span className="sr-only">{item.name}</span>
18
+ {cloneElement(item.icon, {
19
+ className: "h-6 w-6",
20
+ "aria-hidden": "true",
21
+ })}
22
+ </a>))}
23
+ </div>)}
24
+ <p className="text-center text-base text-zinc-400">
25
+ {companyName} &copy; {CURRENT_YEAR}. {allRightsReserved}.
26
+ </p>
27
+ </div>
28
+ </footer>
29
+ </>);
30
+ }
@@ -0,0 +1,3 @@
1
+ import Footer from "./Footer";
2
+ export * from "./Footer";
3
+ export default Footer;
@@ -0,0 +1,3 @@
1
+ import Footer from "./Footer";
2
+ export * from "./Footer";
3
+ export default Footer;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from "react";
2
+ export default function GridPattern(props: SVGProps<SVGPatternElement>): import("react").JSX.Element;
@@ -0,0 +1,12 @@
1
+ import { useId } from "react";
2
+ export default function GridPattern(props) {
3
+ const patternId = useId();
4
+ return (<svg aria-hidden="true" className="absolute inset-0 h-full w-full">
5
+ <defs>
6
+ <pattern id={patternId} width="32" height="32" patternUnits="userSpaceOnUse" {...props}>
7
+ <path d="M0 32V.5H32" fill="none" stroke="currentColor"/>
8
+ </pattern>
9
+ </defs>
10
+ <rect width="100%" height="100%" fill={`url(#${patternId})`}/>
11
+ </svg>);
12
+ }
@@ -0,0 +1,3 @@
1
+ import GridPattern from "./GridPattern";
2
+ export * from "./GridPattern";
3
+ export default GridPattern;
@@ -0,0 +1,3 @@
1
+ import GridPattern from "./GridPattern";
2
+ export * from "./GridPattern";
3
+ export default GridPattern;
@@ -0,0 +1,5 @@
1
+ import type { DetailedHTMLProps, HTMLAttributes } from "react";
2
+ export type GroupProps = {
3
+ wrap?: boolean;
4
+ } & DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>;
5
+ export default function Group({ wrap, className, ...props }: GroupProps): import("react").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import clsx from "../../utils/clsx";
2
+ export default function Group({ wrap, className, ...props }) {
3
+ return (<div {...props} className={clsx("flex gap-2", {
4
+ "flex-wrap": wrap,
5
+ }, className)}/>);
6
+ }
@@ -0,0 +1,3 @@
1
+ import Group from "./Group";
2
+ export * from "./Group";
3
+ export default Group;
@@ -0,0 +1,3 @@
1
+ import Group from "./Group";
2
+ export * from "./Group";
3
+ export default Group;
@@ -0,0 +1,5 @@
1
+ import { DetailedHTMLProps, HTMLAttributes } from "react";
2
+ export type HeaderProps = {
3
+ hideOnScroll?: boolean;
4
+ } & DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
5
+ export default function Header({ className, hideOnScroll, ...props }: HeaderProps): import("react").JSX.Element;
@@ -0,0 +1,19 @@
1
+ import clsx from "../../utils/clsx";
2
+ import { useScrollYMovement } from "../../hooks/useScroll";
3
+ import { useEffect, useRef } from "react";
4
+ import useMediaQuery from "../../hooks/useMediaQuery";
5
+ export default function Header({ className, hideOnScroll, ...props }) {
6
+ const ref = useRef(null);
7
+ const isMobile = useMediaQuery(`(max-width: 768px)`);
8
+ useScrollYMovement(74, (scrollYMovement) => {
9
+ if (ref.current) {
10
+ ref.current.style.transform = `translateY(-${scrollYMovement}px)`;
11
+ }
12
+ }, !hideOnScroll && !isMobile);
13
+ useEffect(() => {
14
+ if (ref.current) {
15
+ ref.current.style.transform = "";
16
+ }
17
+ }, [isMobile]);
18
+ return (<header ref={ref} {...props} className={clsx("fixed top-0 z-20 flex h-16 w-full items-center px-2.5 shadow-none shadow-slate-900/5 ring-offset-zinc-100 transition-colors duration-500 scrolled:shadow-md sm:px-4 md:px-6", "bg-white/95 backdrop-blur-sm [@supports(backdrop-filter:blur(0))]:bg-white/75", "dark:bg-zinc-900/95 dark:[@supports(backdrop-filter:blur(0))]:bg-zinc-900/75", "not-scrolled:bg-transparent!", className)}/>);
19
+ }
@@ -0,0 +1,3 @@
1
+ import Header from "./Header";
2
+ export * from "./Header";
3
+ export default Header;
@@ -0,0 +1,3 @@
1
+ import Header from "./Header";
2
+ export * from "./Header";
3
+ export default Header;
@@ -0,0 +1,4 @@
1
+ import { ComponentProps } from "react";
2
+ import FileInput from "../FileInput";
3
+ declare function ImageInput({ icon, uploadAFileText, allowedFileTypes, fileDisplay, ...props }: ComponentProps<typeof FileInput>): import("react").JSX.Element;
4
+ export default ImageInput;
@@ -0,0 +1,8 @@
1
+ import FileInput from "../FileInput";
2
+ const defaultIcon = (<svg stroke="currentColor" fill="none" viewBox="0 0 48 48" aria-hidden="true">
3
+ <path d="M28 8H12a4 4 0 00-4 4v20m32-12v8m0 0v8a4 4 0 01-4 4H12a4 4 0 01-4-4v-4m32-4l-3.172-3.172a4 4 0 00-5.656 0L28 28M8 32l9.172-9.172a4 4 0 015.656 0L28 28m0 0l4 4m4-24h8m-4-4v8m-12 4h.02" strokeWidth={2} strokeLinecap="round" strokeLinejoin="round"/>
4
+ </svg>);
5
+ function ImageInput({ icon = defaultIcon, uploadAFileText = "Upload an image", allowedFileTypes = [".png", ".jpg", ".jpeg", ".webp"], fileDisplay = "preview", ...props }) {
6
+ return (<FileInput {...props} icon={icon} uploadAFileText={uploadAFileText} allowedFileTypes={allowedFileTypes} fileDisplay={fileDisplay}/>);
7
+ }
8
+ export default ImageInput;
@@ -0,0 +1,3 @@
1
+ import ImageInput from "./ImageInput";
2
+ export * from "./ImageInput";
3
+ export default ImageInput;
@@ -0,0 +1,3 @@
1
+ import ImageInput from "./ImageInput";
2
+ export * from "./ImageInput";
3
+ export default ImageInput;
@@ -0,0 +1,14 @@
1
+ import { UnstyledInputProps } from "../Input/UnstyledInput";
2
+ export type InputProps<Select extends boolean | undefined> = {
3
+ loading?: boolean;
4
+ } & UnstyledInputProps<Select>;
5
+ export declare const defaultLabelClassName: string;
6
+ export declare const defaultInputClassNameUncolored = "block w-full rounded-md shadow-xs sm:text-sm data-disabled:cursor-not-allowed dark:bg-zinc-800 dark:placeholder:text-zinc-500 px-2.5";
7
+ export declare const defaultInputClassName: string;
8
+ export declare const defaultHelpTextClassName: string;
9
+ export declare const defaultTrailingClassName = "pointer-events-none absolute inset-y-0 right-0 flex items-center pr-2.5 text-zinc-500 text-sm";
10
+ export declare const defaultLeadingClassName = "pointer-events-none absolute inset-y-0 left-0 flex items-center pl-2.5 text-zinc-500 text-sm";
11
+ export declare const defaultLeadingInputClassName = "pl-10";
12
+ export declare const defaultTrailingInputClassName = "pr-10";
13
+ declare function Input<Select extends boolean | undefined>({ error, trailing, labelClassName, inputClassName, helpTextClassName, trailingClassName, leadingClassName, leadingInputClassName, trailingInputClassName, required, label, loading, readOnly, children, disabled, helpText, ref, ...props }: InputProps<Select>): import("react").JSX.Element;
14
+ export default Input;
@@ -0,0 +1,57 @@
1
+ import UnstyledInput from "../Input/UnstyledInput";
2
+ import { defaultTextStyles } from "../Text";
3
+ import { ExclamationCircleIcon } from "@heroicons/react/20/solid";
4
+ import InputIcon from "./InputIcon";
5
+ import { cloneElement, Fragment } from "react";
6
+ import recursiveChildrenMap from "../../utils/recursiveChildrenMap";
7
+ import clsx from "../../utils/clsx";
8
+ export const defaultLabelClassName = `ui-input-label block ${defaultTextStyles.variant.label} mb-1`;
9
+ export const defaultInputClassNameUncolored = "block w-full rounded-md shadow-xs sm:text-sm data-disabled:cursor-not-allowed dark:bg-zinc-800 dark:placeholder:text-zinc-500 px-2.5";
10
+ export const defaultInputClassName = clsx("ui-input-input", defaultInputClassNameUncolored, "border-zinc-300 focus:border-primary-500 focus:ring-primary-500 data-disabled:border-zinc-200 data-disabled:bg-zinc-50", "dark:border-zinc-700 dark:focus:border-primary-500 dark:data-disabled:border-zinc-800 dark:data-disabled:bg-zinc-900/90 data-disabled:text-zinc-500");
11
+ export const defaultHelpTextClassName = `mt-2 ${defaultTextStyles.variant.secondary}`;
12
+ export const defaultTrailingClassName = "pointer-events-none absolute inset-y-0 right-0 flex items-center pr-2.5 text-zinc-500 text-sm";
13
+ export const defaultLeadingClassName = "pointer-events-none absolute inset-y-0 left-0 flex items-center pl-2.5 text-zinc-500 text-sm";
14
+ export const defaultLeadingInputClassName = "pl-10";
15
+ export const defaultTrailingInputClassName = "pr-10";
16
+ function Input({ error, trailing, labelClassName, inputClassName, helpTextClassName, trailingClassName, leadingClassName, leadingInputClassName, trailingInputClassName, required, label, loading, readOnly, children, disabled, helpText, ref, ...props }) {
17
+ trailing =
18
+ trailing ||
19
+ (error ? (<InputIcon className="text-error-500">
20
+ <ExclamationCircleIcon aria-hidden="true"/>
21
+ </InputIcon>) : undefined);
22
+ labelClassName = clsx(defaultLabelClassName, labelClassName);
23
+ inputClassName = clsx(error ? defaultInputClassNameUncolored : defaultInputClassName, inputClassName, {
24
+ "animate-pulse": loading,
25
+ });
26
+ helpTextClassName = clsx(defaultHelpTextClassName, helpTextClassName);
27
+ trailingClassName = clsx(defaultTrailingClassName, trailingClassName);
28
+ leadingClassName = clsx(defaultLeadingClassName, leadingClassName);
29
+ leadingInputClassName = clsx(defaultLeadingInputClassName, leadingInputClassName);
30
+ trailingInputClassName = clsx(defaultTrailingInputClassName, trailingInputClassName);
31
+ if (typeof error === "string") {
32
+ helpText = error;
33
+ error = true;
34
+ }
35
+ if (error) {
36
+ inputClassName = `${inputClassName} border-error-300 dark:border-error-500 text-error-900 dark:text-error-500 placeholder-error-300 focus:border-error-500 dark:focus:border-error-500 focus:ring-error-500`;
37
+ helpTextClassName = `${helpTextClassName} text-error-600! dark:text-error-500!`;
38
+ }
39
+ if (readOnly) {
40
+ inputClassName = `${inputClassName} border-dashed`;
41
+ }
42
+ if (label && required) {
43
+ label = (<>
44
+ {label} <span className="text-red-500">*</span>
45
+ </>);
46
+ }
47
+ return (<UnstyledInput
48
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
49
+ {...props} trailing={trailing} labelClassName={labelClassName} inputClassName={inputClassName} helpTextClassName={helpTextClassName} trailingClassName={trailingClassName} leadingClassName={leadingClassName} leadingInputClassName={leadingInputClassName} trailingInputClassName={trailingInputClassName} ref={ref} required={required} label={label} readOnly={readOnly} disabled={disabled} data-disabled={disabled || undefined} helpText={helpText}>
50
+ {recursiveChildrenMap(children, (child) => cloneElement(child, child.type !== Fragment
51
+ ? {
52
+ disabled: readOnly || disabled || child.props.disabled,
53
+ }
54
+ : undefined))}
55
+ </UnstyledInput>);
56
+ }
57
+ export default Input;
@@ -0,0 +1,9 @@
1
+ import { ReactElement } from "react";
2
+ export default function InputIcon({ className, children, }: {
3
+ className?: string;
4
+ children: ReactElement<{
5
+ className?: string;
6
+ }>;
7
+ }): ReactElement<{
8
+ className?: string;
9
+ }, string | import("react").JSXElementConstructor<any>>;
@@ -0,0 +1,7 @@
1
+ import { cloneElement } from "react";
2
+ import clsx from "../../utils/clsx";
3
+ export default function InputIcon({ className, children, }) {
4
+ return cloneElement(children, {
5
+ className: clsx("h-5 w-5", className),
6
+ });
7
+ }
@@ -0,0 +1,13 @@
1
+ import { ComponentProps } from "react";
2
+ import { InputProps } from "./Input";
3
+ declare function MultiSelectInput({ options, value, onChange, emptyLabel, ref, ...props }: Omit<InputProps<undefined>, "value" | "onChange"> & {
4
+ options: {
5
+ value: string;
6
+ name: string;
7
+ }[];
8
+ value?: string[];
9
+ onChange?: (value: string[]) => void;
10
+ emptyLabel?: string;
11
+ }): import("react").JSX.Element;
12
+ export type MultiSelectInputProps = ComponentProps<typeof MultiSelectInput>;
13
+ export default MultiSelectInput;
@@ -0,0 +1,28 @@
1
+ import Input from "./Input";
2
+ import DropdownMenu from "../DropdownMenu";
3
+ import Button from "../Button";
4
+ import { ChevronDownIcon } from "@heroicons/react/16/solid";
5
+ import { xor } from "lodash-es";
6
+ function MultiSelectInput({ options, value, onChange, emptyLabel = "None", ref, ...props }) {
7
+ return (<DropdownMenu.Root>
8
+ <DropdownMenu.Trigger asChild>
9
+ <Input as={Button} {...props} ref={ref} trailing={<ChevronDownIcon />} inputClassName="text-left dark:hover:bg-zinc-700/70">
10
+ {value?.length
11
+ ? options
12
+ .map((project) => value.includes(project.value) ? project.name : null)
13
+ .filter(Boolean)
14
+ .join(", ")
15
+ : emptyLabel}
16
+ </Input>
17
+ </DropdownMenu.Trigger>
18
+ <DropdownMenu.Content>
19
+ <DropdownMenu.Item onClick={() => onChange?.([])}>
20
+ {emptyLabel}
21
+ </DropdownMenu.Item>
22
+ {options.map((options) => (<DropdownMenu.CheckboxItem key={options.name} checked={value?.includes(options.value)} onClick={() => onChange?.(xor(value, [options.value]))}>
23
+ {options.name}
24
+ </DropdownMenu.CheckboxItem>))}
25
+ </DropdownMenu.Content>
26
+ </DropdownMenu.Root>);
27
+ }
28
+ export default MultiSelectInput;
@@ -0,0 +1,6 @@
1
+ import { ComponentProps } from "react";
2
+ import { InputProps } from "./Input";
3
+ import { NumericFormatProps } from "react-number-format";
4
+ declare function NumericInput({ ref, ...props }: Omit<NumericFormatProps, "customInput"> & InputProps<undefined>): import("react").JSX.Element;
5
+ export type NumericInputProps = ComponentProps<typeof NumericInput>;
6
+ export default NumericInput;
@@ -0,0 +1,6 @@
1
+ import Input from "./Input";
2
+ import { NumericFormat } from "react-number-format";
3
+ function NumericInput({ ref, ...props }) {
4
+ return <NumericFormat getInputRef={ref} customInput={Input} {...props}/>;
5
+ }
6
+ export default NumericInput;
@@ -0,0 +1,6 @@
1
+ import { ComponentProps } from "react";
2
+ import { InputProps } from "./Input";
3
+ import { PatternFormatProps } from "react-number-format";
4
+ declare function PatternInput(props: Omit<PatternFormatProps, "customInput"> & InputProps<undefined>): import("react").JSX.Element;
5
+ export type PatternInputProps = ComponentProps<typeof PatternInput>;
6
+ export default PatternInput;
@@ -0,0 +1,6 @@
1
+ import Input from "./Input";
2
+ import { PatternFormat } from "react-number-format";
3
+ function PatternInput(props) {
4
+ return <PatternFormat customInput={Input} {...props}/>;
5
+ }
6
+ export default PatternInput;
@@ -0,0 +1,22 @@
1
+ import { ComponentType, DetailedHTMLProps, InputHTMLAttributes, ReactNode } from "react";
2
+ export type UnstyledInputCommonProps = {
3
+ label?: ReactNode;
4
+ inputClassName?: string;
5
+ labelClassName?: string;
6
+ helpTextClassName?: string;
7
+ trailingClassName?: string;
8
+ trailingInputClassName?: string;
9
+ leadingClassName?: string;
10
+ leadingInputClassName?: string;
11
+ helpText?: ReactNode;
12
+ trailing?: ReactNode;
13
+ leading?: ReactNode;
14
+ as?: ComponentType;
15
+ innerClassName?: string;
16
+ error?: boolean | string;
17
+ };
18
+ export type UnstyledInputProps<Select extends boolean | undefined> = UnstyledInputCommonProps & {
19
+ select?: Select;
20
+ } & (Select extends string ? DetailedHTMLProps<InputHTMLAttributes<HTMLSelectElement>, HTMLSelectElement> : DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>);
21
+ declare function UnstyledInput<Select extends boolean | undefined>({ id, label, className, inputClassName, labelClassName, helpTextClassName, trailingClassName, trailingInputClassName, leadingClassName, leadingInputClassName, helpText, type, leading, trailing, select, children, as, innerClassName, value, ...props }: UnstyledInputProps<Select>): import("react").JSX.Element;
22
+ export default UnstyledInput;
@@ -0,0 +1,28 @@
1
+ import { useId, } from "react";
2
+ import clsx from "../../utils/clsx";
3
+ function UnstyledInput({ id, label, className, inputClassName, labelClassName, helpTextClassName, trailingClassName, trailingInputClassName, leadingClassName, leadingInputClassName, helpText, type = "text", leading, trailing, select, children, as, innerClassName, value, ...props }) {
4
+ const innerId = useId();
5
+ id = id || innerId;
6
+ const Component = as || (select ? "select" : "input");
7
+ inputClassName = clsx(inputClassName, leadingInputClassName && {
8
+ [leadingInputClassName]: !!leading,
9
+ }, trailingInputClassName && {
10
+ [trailingInputClassName]: !!trailing,
11
+ });
12
+ return (<div className={className}>
13
+ {label && (<label htmlFor={id} className={labelClassName}>
14
+ {label}
15
+ </label>)}
16
+ <div style={{ position: "relative" }} className={innerClassName}>
17
+ {leading && <div className={leadingClassName}>{leading}</div>}
18
+ <Component
19
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
20
+ {...props} className={inputClassName} id={id} type={type} value={value}>
21
+ {children}
22
+ </Component>
23
+ {trailing && <div className={trailingClassName}>{trailing}</div>}
24
+ </div>
25
+ {helpText && <div className={helpTextClassName}>{helpText}</div>}
26
+ </div>);
27
+ }
28
+ export default UnstyledInput;
@@ -0,0 +1,6 @@
1
+ import Input from "./Input";
2
+ export * from "./Input";
3
+ export default Input;
4
+ export { default as InputIcon } from "./InputIcon";
5
+ export * from "./UnstyledInput";
6
+ export { default as UnstyledInput } from "./UnstyledInput";
@@ -0,0 +1,6 @@
1
+ import Input from "./Input";
2
+ export * from "./Input";
3
+ export default Input;
4
+ export { default as InputIcon } from "./InputIcon";
5
+ export * from "./UnstyledInput";
6
+ export { default as UnstyledInput } from "./UnstyledInput";
@@ -0,0 +1,11 @@
1
+ import { ReactNode } from "react";
2
+ export interface InputWrapperProps {
3
+ children?: ReactNode;
4
+ className?: string;
5
+ label?: string;
6
+ id?: string;
7
+ helpText?: string;
8
+ error?: boolean;
9
+ required?: boolean;
10
+ }
11
+ export default function InputWrapper({ children, className, label, id, helpText, error, required, }: InputWrapperProps): import("react").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import clsx from "../../utils/clsx";
2
+ export default function InputWrapper({ children, className, label, id, helpText, error, required, }) {
3
+ return (<div className={clsx("ui-input-wrapper", className)} data-error={error ? "" : undefined}>
4
+ {label && (<label htmlFor={id} className="ui-input-wrapper-label">
5
+ {label}
6
+ {required && <span className="text-red-500"> *</span>}
7
+ </label>)}
8
+ {children}
9
+ {helpText && <div className="ui-input-wrapper-help-text">{helpText}</div>}
10
+ </div>);
11
+ }
@@ -0,0 +1,3 @@
1
+ import { ComponentProps } from "react";
2
+ import NextLink from "next/link";
3
+ export default function Link({ className, href, ...props }: Partial<ComponentProps<typeof NextLink>>): import("react").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import NextLink from "next/link";
2
+ import clsx from "../../utils/clsx";
3
+ export default function Link({ className, href, ...props }) {
4
+ className = clsx("text-primary-500 underline decoration-primary-500/40 decoration-2 transition-colors hover:decoration-primary-500", className);
5
+ if (href) {
6
+ return <NextLink href={href} {...props} className={className}/>;
7
+ }
8
+ return (<button {...props} className={className} type="button"/>);
9
+ }
@@ -0,0 +1,3 @@
1
+ import Link from "./Link";
2
+ export * from "./Link";
3
+ export default Link;
@@ -0,0 +1,3 @@
1
+ import Link from "./Link";
2
+ export * from "./Link";
3
+ export default Link;
@@ -0,0 +1,3 @@
1
+ export default function Loading({ className }: {
2
+ className?: string;
3
+ }): import("react").JSX.Element;
@@ -0,0 +1,13 @@
1
+ export default function Loading({ className }) {
2
+ return (<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24" className={className}>
3
+ <circle cx="4" cy="12" r="3" fill="currentColor">
4
+ <animate id="svgSpinners3DotsFade0" fill="freeze" attributeName="opacity" begin="0;svgSpinners3DotsFade1.end-0.5s" dur="1.5s" values="1;0.2"/>
5
+ </circle>
6
+ <circle cx="12" cy="12" r="3" fill="currentColor" opacity="0.4">
7
+ <animate fill="freeze" attributeName="opacity" begin="svgSpinners3DotsFade0.begin+0.3s" dur="1.5s" values="1;0.2"/>
8
+ </circle>
9
+ <circle cx="20" cy="12" r="3" fill="currentColor" opacity="0.3">
10
+ <animate id="svgSpinners3DotsFade1" fill="freeze" attributeName="opacity" begin="svgSpinners3DotsFade0.begin+0.6s" dur="1.5s" values="1;0.2"/>
11
+ </circle>
12
+ </svg>);
13
+ }
@@ -0,0 +1,3 @@
1
+ import Loading from "./Loading";
2
+ export * from "./Loading";
3
+ export default Loading;
@@ -0,0 +1,3 @@
1
+ import Loading from "./Loading";
2
+ export * from "./Loading";
3
+ export default Loading;
@@ -0,0 +1,13 @@
1
+ import React, { ReactNode, HTMLAttributes } from "react";
2
+ interface MagnetProps extends HTMLAttributes<HTMLDivElement> {
3
+ children: ReactNode;
4
+ padding?: number;
5
+ disabled?: boolean;
6
+ magnetStrength?: number;
7
+ activeTransition?: string;
8
+ inactiveTransition?: string;
9
+ wrapperClassName?: string;
10
+ innerClassName?: string;
11
+ }
12
+ declare const Magnet: React.FC<MagnetProps>;
13
+ export default Magnet;
@@ -0,0 +1,50 @@
1
+ import React, { useState, useEffect, useRef, } from "react";
2
+ import clsx from "../../utils/clsx";
3
+ const Magnet = ({ children, padding = 100, disabled = false, magnetStrength = 2, activeTransition = "transform 0.3s ease-out", inactiveTransition = "transform 0.5s ease-in-out", wrapperClassName = "", innerClassName = "", ...props }) => {
4
+ const [isActive, setIsActive] = useState(false);
5
+ const [position, setPosition] = useState({
6
+ x: 0,
7
+ y: 0,
8
+ });
9
+ const magnetRef = useRef(null);
10
+ useEffect(() => {
11
+ if (disabled) {
12
+ setPosition({ x: 0, y: 0 });
13
+ return;
14
+ }
15
+ const handleMouseMove = (e) => {
16
+ if (!magnetRef.current)
17
+ return;
18
+ const { left, top, width, height } = magnetRef.current.getBoundingClientRect();
19
+ const centerX = left + width / 2;
20
+ const centerY = top + height / 2;
21
+ const distX = Math.abs(centerX - e.clientX);
22
+ const distY = Math.abs(centerY - e.clientY);
23
+ if (distX < width / 2 + padding && distY < height / 2 + padding) {
24
+ setIsActive(true);
25
+ const offsetX = (e.clientX - centerX) / magnetStrength;
26
+ const offsetY = (e.clientY - centerY) / magnetStrength;
27
+ setPosition({ x: offsetX, y: offsetY });
28
+ }
29
+ else {
30
+ setIsActive(false);
31
+ setPosition({ x: 0, y: 0 });
32
+ }
33
+ };
34
+ window.addEventListener("mousemove", handleMouseMove);
35
+ return () => {
36
+ window.removeEventListener("mousemove", handleMouseMove);
37
+ };
38
+ }, [padding, disabled, magnetStrength]);
39
+ const transitionStyle = isActive ? activeTransition : inactiveTransition;
40
+ return (<div ref={magnetRef} className={clsx("relative inline-block", wrapperClassName)} {...props}>
41
+ <div className={innerClassName} style={{
42
+ transform: `translate3d(${position.x}px, ${position.y}px, 0)`,
43
+ transition: transitionStyle,
44
+ willChange: "transform",
45
+ }}>
46
+ {children}
47
+ </div>
48
+ </div>);
49
+ };
50
+ export default Magnet;
@@ -0,0 +1,3 @@
1
+ import Magnet from "./Magnet";
2
+ export * from "./Magnet";
3
+ export default Magnet;
@@ -0,0 +1,3 @@
1
+ import Magnet from "./Magnet";
2
+ export * from "./Magnet";
3
+ export default Magnet;
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import { ConverterOptions } from "showdown";
3
+ export type MarkdownProps = {
4
+ children?: string;
5
+ className?: string;
6
+ options?: ConverterOptions;
7
+ };
8
+ export default function Markdown({ children, className, options, }: MarkdownProps): React.JSX.Element;
@@ -0,0 +1,13 @@
1
+ import React, { useMemo } from "react";
2
+ import clsx from "../../utils/clsx";
3
+ import showdown from "showdown";
4
+ export default function Markdown({ children, className, options, }) {
5
+ const converter = useMemo(() => new showdown.Converter(options),
6
+ // eslint-disable-next-line react-hooks/exhaustive-deps
7
+ [JSON.stringify(options)]);
8
+ return (<div className={clsx("prose prose-zinc max-w-full dark:prose-invert", className)} dangerouslySetInnerHTML={children
9
+ ? {
10
+ __html: converter.makeHtml(children),
11
+ }
12
+ : undefined}/>);
13
+ }
@@ -0,0 +1,3 @@
1
+ import Markdown from "./Markdown";
2
+ export * from "./Markdown";
3
+ export default Markdown;
@@ -0,0 +1,3 @@
1
+ import Markdown from "./Markdown";
2
+ export * from "./Markdown";
3
+ export default Markdown;