@majapisoftwares/ui 4.3.16 → 5.0.0

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 (482) hide show
  1. package/AGENTS.md +17 -0
  2. package/README.md +71 -0
  3. package/THIRD_PARTY_NOTICES.md +15 -0
  4. package/components.json +25 -0
  5. package/docs/MIGRATION-0.2.md +20 -0
  6. package/docs/NEXT-STARTER-VALIDATION.md +14 -0
  7. package/docs/STANDARDS.md +36 -0
  8. package/docs/VALIDATION.md +11 -0
  9. package/package.json +69 -2
  10. package/scripts/check-standards.mjs +39 -0
  11. package/src/components/ui/alert.tsx +77 -0
  12. package/src/components/ui/badge.tsx +55 -0
  13. package/src/components/ui/button.tsx +63 -0
  14. package/src/components/ui/empty.tsx +105 -0
  15. package/src/components/ui/field.tsx +238 -0
  16. package/src/components/ui/input.tsx +21 -0
  17. package/src/components/ui/label.tsx +19 -0
  18. package/src/components/ui/native-select.tsx +66 -0
  19. package/src/components/ui/separator.tsx +24 -0
  20. package/src/components/ui/sheet.tsx +137 -0
  21. package/src/components/ui/skeleton.tsx +15 -0
  22. package/src/components/ui/table.tsx +115 -0
  23. package/src/components/ui/tabs.tsx +81 -0
  24. package/src/lib/utils.ts +1 -0
  25. package/src/patterns/app-shell.tsx +70 -0
  26. package/src/patterns/data-table.tsx +225 -0
  27. package/src/patterns/details-sheet.tsx +51 -0
  28. package/src/patterns/page-header.tsx +40 -0
  29. package/src/patterns/status-badge.tsx +23 -0
  30. package/src/styles.css +465 -0
  31. package/src/templates/admin-dashboard.tsx +63 -0
  32. package/src/templates/auth-layout.tsx +36 -0
  33. package/src/templates/login-form.tsx +97 -0
  34. package/src/templates/signup-form.tsx +137 -0
  35. package/src/vite-env.d.ts +1 -0
  36. package/base.css +0 -360
  37. package/bootstrap/AppProps.d.ts +0 -9
  38. package/bootstrap/AppProps.js +0 -1
  39. package/bootstrap/index.d.ts +0 -1
  40. package/bootstrap/index.js +0 -1
  41. package/bootstrap/modeScript.d.ts +0 -2
  42. package/bootstrap/modeScript.js +0 -35
  43. package/bootstrap/nprogress.d.ts +0 -1
  44. package/bootstrap/nprogress.js +0 -19
  45. package/bootstrap/scrolledScript.d.ts +0 -2
  46. package/bootstrap/scrolledScript.js +0 -27
  47. package/bootstrap/setupFocusManager.d.ts +0 -1
  48. package/bootstrap/setupFocusManager.js +0 -13
  49. package/bootstrap/suppressConsoleLog.d.ts +0 -1
  50. package/bootstrap/suppressConsoleLog.js +0 -8
  51. package/components/Accordion/Accordion.d.ts +0 -16
  52. package/components/Accordion/Accordion.jsx +0 -27
  53. package/components/Accordion/index.d.ts +0 -3
  54. package/components/Accordion/index.jsx +0 -3
  55. package/components/Alert/Alert.d.ts +0 -31
  56. package/components/Alert/Alert.jsx +0 -53
  57. package/components/Alert/index.d.ts +0 -3
  58. package/components/Alert/index.jsx +0 -3
  59. package/components/AntiClickjacking/AntiClickjacking.d.ts +0 -1
  60. package/components/AntiClickjacking/AntiClickjacking.jsx +0 -17
  61. package/components/AntiClickjacking/index.d.ts +0 -2
  62. package/components/AntiClickjacking/index.jsx +0 -2
  63. package/components/Aurora/Aurora.d.ts +0 -10
  64. package/components/Aurora/Aurora.jsx +0 -189
  65. package/components/Aurora/index.d.ts +0 -3
  66. package/components/Aurora/index.jsx +0 -3
  67. package/components/Autocomplete/Autocomplete.d.ts +0 -7
  68. package/components/Autocomplete/Autocomplete.jsx +0 -23
  69. package/components/Autocomplete/UnstyledAutocomplete.d.ts +0 -36
  70. package/components/Autocomplete/UnstyledAutocomplete.jsx +0 -72
  71. package/components/Autocomplete/index.d.ts +0 -5
  72. package/components/Autocomplete/index.jsx +0 -5
  73. package/components/BackgroundEffects/BottomBlurryPoint.d.ts +0 -3
  74. package/components/BackgroundEffects/BottomBlurryPoint.jsx +0 -14
  75. package/components/BackgroundEffects/TopBlurryPoint.d.ts +0 -3
  76. package/components/BackgroundEffects/TopBlurryPoint.jsx +0 -14
  77. package/components/Badge/Badge.d.ts +0 -42
  78. package/components/Badge/Badge.jsx +0 -51
  79. package/components/Badge/index.d.ts +0 -3
  80. package/components/Badge/index.jsx +0 -3
  81. package/components/Breadcrumbs/Breadcrumbs.d.ts +0 -20
  82. package/components/Breadcrumbs/Breadcrumbs.jsx +0 -42
  83. package/components/Breadcrumbs/index.d.ts +0 -3
  84. package/components/Breadcrumbs/index.jsx +0 -3
  85. package/components/Button/Button.d.ts +0 -111
  86. package/components/Button/Button.jsx +0 -129
  87. package/components/Button/UnstyledButton.d.ts +0 -10
  88. package/components/Button/UnstyledButton.jsx +0 -13
  89. package/components/Button/index.d.ts +0 -3
  90. package/components/Button/index.jsx +0 -3
  91. package/components/Carousel/Carousel.d.ts +0 -19
  92. package/components/Carousel/Carousel.jsx +0 -55
  93. package/components/Carousel/index.d.ts +0 -3
  94. package/components/Carousel/index.jsx +0 -3
  95. package/components/Checkbox/Checkbox.d.ts +0 -14
  96. package/components/Checkbox/Checkbox.jsx +0 -45
  97. package/components/Checkbox/index.d.ts +0 -3
  98. package/components/Checkbox/index.js +0 -3
  99. package/components/Code/Code.d.ts +0 -12
  100. package/components/Code/Code.jsx +0 -25
  101. package/components/Code/Json.d.ts +0 -5
  102. package/components/Code/Json.jsx +0 -7
  103. package/components/Code/index.d.ts +0 -4
  104. package/components/Code/index.jsx +0 -4
  105. package/components/ConfirmationButton/ConfirmationButton.d.ts +0 -17
  106. package/components/ConfirmationButton/ConfirmationButton.jsx +0 -13
  107. package/components/ConfirmationButton/index.d.ts +0 -3
  108. package/components/ConfirmationButton/index.jsx +0 -3
  109. package/components/ContextMenu/ContextMenu.d.ts +0 -28
  110. package/components/ContextMenu/ContextMenu.jsx +0 -70
  111. package/components/ContextMenu/index.d.ts +0 -3
  112. package/components/ContextMenu/index.jsx +0 -3
  113. package/components/CopyButton/CopyButton.d.ts +0 -7
  114. package/components/CopyButton/CopyButton.jsx +0 -29
  115. package/components/CopyButton/index.d.ts +0 -3
  116. package/components/CopyButton/index.jsx +0 -3
  117. package/components/DateInput/DateInput.d.ts +0 -6
  118. package/components/DateInput/DateInput.jsx +0 -19
  119. package/components/DateInput/DateTimeInput.d.ts +0 -3
  120. package/components/DateInput/DateTimeInput.jsx +0 -8
  121. package/components/DateInput/index.d.ts +0 -4
  122. package/components/DateInput/index.jsx +0 -4
  123. package/components/DateInput/useRefValue.d.ts +0 -5
  124. package/components/DateInput/useRefValue.js +0 -48
  125. package/components/DatePicker/DatePicker.d.ts +0 -19
  126. package/components/DatePicker/DatePicker.jsx +0 -55
  127. package/components/DatePicker/index.d.ts +0 -3
  128. package/components/DatePicker/index.jsx +0 -3
  129. package/components/DateRangePicker/DateRangePicker.d.ts +0 -16
  130. package/components/DateRangePicker/DateRangePicker.jsx +0 -56
  131. package/components/DateRangePicker/index.d.ts +0 -3
  132. package/components/DateRangePicker/index.jsx +0 -3
  133. package/components/Dialog/Dialog.d.ts +0 -25
  134. package/components/Dialog/Dialog.jsx +0 -35
  135. package/components/Dialog/Dialogs.d.ts +0 -1
  136. package/components/Dialog/Dialogs.jsx +0 -21
  137. package/components/Dialog/dialogs.state.d.ts +0 -21
  138. package/components/Dialog/dialogs.state.js +0 -40
  139. package/components/Dialog/index.d.ts +0 -6
  140. package/components/Dialog/index.jsx +0 -7
  141. package/components/Drawer/Drawer.d.ts +0 -15
  142. package/components/Drawer/Drawer.jsx +0 -72
  143. package/components/Drawer/index.d.ts +0 -3
  144. package/components/Drawer/index.jsx +0 -3
  145. package/components/DropdownMenu/DropdownMenu.d.ts +0 -33
  146. package/components/DropdownMenu/DropdownMenu.jsx +0 -74
  147. package/components/DropdownMenu/index.d.ts +0 -3
  148. package/components/DropdownMenu/index.jsx +0 -3
  149. package/components/ErrorBoundary/ErrorBoundary.d.ts +0 -18
  150. package/components/ErrorBoundary/ErrorBoundary.jsx +0 -32
  151. package/components/ErrorBoundary/index.d.ts +0 -3
  152. package/components/ErrorBoundary/index.jsx +0 -3
  153. package/components/ErrorPage/Error404Page.d.ts +0 -1
  154. package/components/ErrorPage/Error404Page.jsx +0 -4
  155. package/components/ErrorPage/Error500Page.d.ts +0 -1
  156. package/components/ErrorPage/Error500Page.jsx +0 -4
  157. package/components/ErrorPage/ErrorPage.d.ts +0 -11
  158. package/components/ErrorPage/ErrorPage.jsx +0 -23
  159. package/components/FileInput/FileInput.d.ts +0 -53
  160. package/components/FileInput/FileInput.jsx +0 -141
  161. package/components/FileInput/PreviewFile.d.ts +0 -18
  162. package/components/FileInput/PreviewFile.jsx +0 -54
  163. package/components/FileInput/index.d.ts +0 -3
  164. package/components/FileInput/index.jsx +0 -3
  165. package/components/FileInput/isImage.d.ts +0 -1
  166. package/components/FileInput/isImage.js +0 -10
  167. package/components/FileInput/isVideo.d.ts +0 -1
  168. package/components/FileInput/isVideo.js +0 -10
  169. package/components/FileSelect/FileSelect.d.ts +0 -31
  170. package/components/FileSelect/FileSelect.jsx +0 -146
  171. package/components/FileSelect/index.d.ts +0 -3
  172. package/components/FileSelect/index.jsx +0 -3
  173. package/components/Footer/Footer.d.ts +0 -19
  174. package/components/Footer/Footer.jsx +0 -30
  175. package/components/Footer/index.d.ts +0 -3
  176. package/components/Footer/index.jsx +0 -3
  177. package/components/GridPattern/GridPattern.d.ts +0 -2
  178. package/components/GridPattern/GridPattern.jsx +0 -12
  179. package/components/GridPattern/index.d.ts +0 -3
  180. package/components/GridPattern/index.jsx +0 -3
  181. package/components/Group/Group.d.ts +0 -5
  182. package/components/Group/Group.jsx +0 -6
  183. package/components/Group/index.d.ts +0 -3
  184. package/components/Group/index.jsx +0 -3
  185. package/components/Header/Header.d.ts +0 -5
  186. package/components/Header/Header.jsx +0 -19
  187. package/components/Header/index.d.ts +0 -3
  188. package/components/Header/index.jsx +0 -3
  189. package/components/ImageInput/ImageInput.d.ts +0 -4
  190. package/components/ImageInput/ImageInput.jsx +0 -8
  191. package/components/ImageInput/index.d.ts +0 -3
  192. package/components/ImageInput/index.jsx +0 -3
  193. package/components/Input/Input.d.ts +0 -14
  194. package/components/Input/Input.jsx +0 -57
  195. package/components/Input/InputIcon.d.ts +0 -9
  196. package/components/Input/InputIcon.jsx +0 -7
  197. package/components/Input/MultiSelectInput.d.ts +0 -16
  198. package/components/Input/MultiSelectInput.jsx +0 -48
  199. package/components/Input/NumericInput.d.ts +0 -6
  200. package/components/Input/NumericInput.jsx +0 -6
  201. package/components/Input/PatternInput.d.ts +0 -6
  202. package/components/Input/PatternInput.jsx +0 -6
  203. package/components/Input/SelectInput.d.ts +0 -12
  204. package/components/Input/SelectInput.jsx +0 -25
  205. package/components/Input/UnstyledInput.d.ts +0 -22
  206. package/components/Input/UnstyledInput.jsx +0 -28
  207. package/components/Input/index.d.ts +0 -6
  208. package/components/Input/index.jsx +0 -6
  209. package/components/Input/useInputRefValue.d.ts +0 -11
  210. package/components/Input/useInputRefValue.jsx +0 -51
  211. package/components/Input2/InputWrapper.d.ts +0 -11
  212. package/components/Input2/InputWrapper.jsx +0 -11
  213. package/components/Link/Link.d.ts +0 -3
  214. package/components/Link/Link.jsx +0 -9
  215. package/components/Link/index.d.ts +0 -3
  216. package/components/Link/index.jsx +0 -3
  217. package/components/Loading/Loading.d.ts +0 -5
  218. package/components/Loading/Loading.jsx +0 -15
  219. package/components/Loading/index.d.ts +0 -3
  220. package/components/Loading/index.jsx +0 -3
  221. package/components/Magnet/Magnet.d.ts +0 -13
  222. package/components/Magnet/Magnet.jsx +0 -50
  223. package/components/Magnet/index.d.ts +0 -3
  224. package/components/Magnet/index.jsx +0 -3
  225. package/components/Markdown/Markdown.d.ts +0 -8
  226. package/components/Markdown/Markdown.jsx +0 -11
  227. package/components/Markdown/index.d.ts +0 -3
  228. package/components/Markdown/index.jsx +0 -3
  229. package/components/Menu/Menu.d.ts +0 -28
  230. package/components/Menu/Menu.jsx +0 -54
  231. package/components/Modal/Modal.d.ts +0 -45
  232. package/components/Modal/Modal.jsx +0 -65
  233. package/components/Modal/index.d.ts +0 -4
  234. package/components/Modal/index.jsx +0 -4
  235. package/components/Modal/useModalState.d.ts +0 -6
  236. package/components/Modal/useModalState.js +0 -16
  237. package/components/ModeToggle/ModeToggle.d.ts +0 -9
  238. package/components/ModeToggle/ModeToggle.jsx +0 -12
  239. package/components/ModeToggle/index.d.ts +0 -4
  240. package/components/ModeToggle/index.jsx +0 -5
  241. package/components/ModeToggle/useModeToggle.d.ts +0 -1
  242. package/components/ModeToggle/useModeToggle.js +0 -21
  243. package/components/MultiSelect/MultiSelect.d.ts +0 -28
  244. package/components/MultiSelect/MultiSelect.jsx +0 -116
  245. package/components/MultiSelect/MultiSelectInput.d.ts +0 -12
  246. package/components/MultiSelect/MultiSelectInput.jsx +0 -27
  247. package/components/MultiSelect/index.d.ts +0 -5
  248. package/components/MultiSelect/index.jsx +0 -5
  249. package/components/MultiText/MultiText.d.ts +0 -23
  250. package/components/MultiText/MultiText.jsx +0 -118
  251. package/components/MultiText/index.d.ts +0 -3
  252. package/components/MultiText/index.jsx +0 -3
  253. package/components/NavigationDrawer/NavigationDrawer.d.ts +0 -9
  254. package/components/NavigationDrawer/NavigationDrawer.jsx +0 -29
  255. package/components/NavigationDrawer/NavigationItem.d.ts +0 -13
  256. package/components/NavigationDrawer/NavigationItem.jsx +0 -24
  257. package/components/NavigationDrawer/index.d.ts +0 -6
  258. package/components/NavigationDrawer/index.jsx +0 -6
  259. package/components/NavigationDrawer/navigationDrawer.state.d.ts +0 -9
  260. package/components/NavigationDrawer/navigationDrawer.state.js +0 -19
  261. package/components/NoSsr/NoSsr.d.ts +0 -4
  262. package/components/NoSsr/NoSsr.jsx +0 -8
  263. package/components/NoSsr/index.d.ts +0 -3
  264. package/components/NoSsr/index.jsx +0 -3
  265. package/components/Noise/Noise.d.ts +0 -11
  266. package/components/Noise/Noise.jsx +0 -69
  267. package/components/Noise/index.d.ts +0 -3
  268. package/components/Noise/index.jsx +0 -3
  269. package/components/Notifications/Notifications.d.ts +0 -3
  270. package/components/Notifications/Notifications.jsx +0 -60
  271. package/components/Notifications/index.d.ts +0 -5
  272. package/components/Notifications/index.jsx +0 -6
  273. package/components/Notifications/notifications.state.d.ts +0 -24
  274. package/components/Notifications/notifications.state.js +0 -41
  275. package/components/Orb/Orb.d.ts +0 -8
  276. package/components/Orb/Orb.jsx +0 -258
  277. package/components/Orb/index.d.ts +0 -3
  278. package/components/Orb/index.jsx +0 -3
  279. package/components/Pagination/Pagination.d.ts +0 -13
  280. package/components/Pagination/Pagination.jsx +0 -64
  281. package/components/Pagination/index.d.ts +0 -3
  282. package/components/Pagination/index.jsx +0 -3
  283. package/components/Particles/Particles.d.ts +0 -18
  284. package/components/Particles/Particles.jsx +0 -205
  285. package/components/Particles/index.d.ts +0 -3
  286. package/components/Particles/index.jsx +0 -3
  287. package/components/PictureCropInput/PictureCropInput.d.ts +0 -20
  288. package/components/PictureCropInput/PictureCropInput.jsx +0 -174
  289. package/components/PictureCropInput/canvasPreview.d.ts +0 -2
  290. package/components/PictureCropInput/canvasPreview.js +0 -37
  291. package/components/PictureCropInput/index.d.ts +0 -3
  292. package/components/PictureCropInput/index.js +0 -3
  293. package/components/Popover/Popover.d.ts +0 -13
  294. package/components/Popover/Popover.jsx +0 -22
  295. package/components/Popover/index.d.ts +0 -3
  296. package/components/Popover/index.jsx +0 -3
  297. package/components/Resizable/Resizable.d.ts +0 -12
  298. package/components/Resizable/Resizable.jsx +0 -54
  299. package/components/Resizable/index.d.ts +0 -3
  300. package/components/Resizable/index.jsx +0 -3
  301. package/components/ScrollArea/ScrollArea.d.ts +0 -9
  302. package/components/ScrollArea/ScrollArea.jsx +0 -16
  303. package/components/ScrollArea/index.d.ts +0 -3
  304. package/components/ScrollArea/index.jsx +0 -3
  305. package/components/Select/Select.d.ts +0 -25
  306. package/components/Select/Select.jsx +0 -55
  307. package/components/Select/index.d.ts +0 -3
  308. package/components/Select/index.jsx +0 -3
  309. package/components/Skeleton/Skeleton.d.ts +0 -2
  310. package/components/Skeleton/Skeleton.jsx +0 -8
  311. package/components/Skeleton/index.d.ts +0 -3
  312. package/components/Skeleton/index.jsx +0 -3
  313. package/components/Slider/Slider.d.ts +0 -10
  314. package/components/Slider/Slider.jsx +0 -21
  315. package/components/Slider/index.d.ts +0 -3
  316. package/components/Slider/index.jsx +0 -3
  317. package/components/Spotlight/Spotlight.d.ts +0 -30
  318. package/components/Spotlight/Spotlight.jsx +0 -86
  319. package/components/Spotlight/index.d.ts +0 -3
  320. package/components/Spotlight/index.jsx +0 -3
  321. package/components/SpotlightCard/SpotlightCard.d.ts +0 -7
  322. package/components/SpotlightCard/SpotlightCard.jsx +0 -35
  323. package/components/SpotlightCard/index.d.ts +0 -3
  324. package/components/SpotlightCard/index.jsx +0 -3
  325. package/components/Stack/Stack.d.ts +0 -4
  326. package/components/Stack/Stack.jsx +0 -5
  327. package/components/Stack/index.d.ts +0 -3
  328. package/components/Stack/index.jsx +0 -3
  329. package/components/StarBorder/StarBorder.d.ts +0 -10
  330. package/components/StarBorder/StarBorder.jsx +0 -19
  331. package/components/StarBorder/index.d.ts +0 -3
  332. package/components/StarBorder/index.jsx +0 -3
  333. package/components/Switch/Switch.d.ts +0 -16
  334. package/components/Switch/Switch.jsx +0 -24
  335. package/components/Switch/index.d.ts +0 -3
  336. package/components/Switch/index.jsx +0 -3
  337. package/components/Table/DataTable.d.ts +0 -57
  338. package/components/Table/DataTable.jsx +0 -155
  339. package/components/Table/Table.d.ts +0 -27
  340. package/components/Table/Table.jsx +0 -31
  341. package/components/Table/TableActionButton.d.ts +0 -6
  342. package/components/Table/TableActionButton.jsx +0 -20
  343. package/components/Table/TableBody.d.ts +0 -6
  344. package/components/Table/TableBody.jsx +0 -10
  345. package/components/Table/TableCell.d.ts +0 -9
  346. package/components/Table/TableCell.jsx +0 -18
  347. package/components/Table/TableFooter.d.ts +0 -5
  348. package/components/Table/TableFooter.jsx +0 -5
  349. package/components/Table/TableFooterWithPagination.d.ts +0 -13
  350. package/components/Table/TableFooterWithPagination.jsx +0 -57
  351. package/components/Table/TableHead.d.ts +0 -5
  352. package/components/Table/TableHead.jsx +0 -9
  353. package/components/Table/TableHeadContext.d.ts +0 -4
  354. package/components/Table/TableHeadContext.jsx +0 -3
  355. package/components/Table/TableHeader.d.ts +0 -7
  356. package/components/Table/TableHeader.jsx +0 -15
  357. package/components/Table/TableRow.d.ts +0 -8
  358. package/components/Table/TableRow.jsx +0 -9
  359. package/components/Table/index.d.ts +0 -3
  360. package/components/Table/index.jsx +0 -3
  361. package/components/Tabs/Tabs.d.ts +0 -9
  362. package/components/Tabs/Tabs.jsx +0 -13
  363. package/components/Tabs/index.d.ts +0 -3
  364. package/components/Tabs/index.jsx +0 -3
  365. package/components/TabsSwitcher/Tab.d.ts +0 -15
  366. package/components/TabsSwitcher/Tab.jsx +0 -18
  367. package/components/TabsSwitcher/TabsSwitcher.d.ts +0 -22
  368. package/components/TabsSwitcher/TabsSwitcher.jsx +0 -31
  369. package/components/TabsSwitcher/index.d.ts +0 -4
  370. package/components/TabsSwitcher/index.jsx +0 -4
  371. package/components/Text/Text.d.ts +0 -24
  372. package/components/Text/Text.jsx +0 -29
  373. package/components/Text/index.d.ts +0 -3
  374. package/components/Text/index.jsx +0 -3
  375. package/components/Textarea/Textarea.d.ts +0 -5
  376. package/components/Textarea/Textarea.jsx +0 -6
  377. package/components/Textarea/index.d.ts +0 -3
  378. package/components/Textarea/index.js +0 -3
  379. package/components/Threads/Threads.d.ts +0 -9
  380. package/components/Threads/Threads.jsx +0 -203
  381. package/components/Threads/index.d.ts +0 -3
  382. package/components/Threads/index.jsx +0 -3
  383. package/components/Tooltip/Tooltip.d.ts +0 -11
  384. package/components/Tooltip/Tooltip.jsx +0 -21
  385. package/components/Tooltip/index.d.ts +0 -3
  386. package/components/Tooltip/index.jsx +0 -3
  387. package/components/VisibilityActivatedButton/VisibilityActivatedButton.d.ts +0 -7
  388. package/components/VisibilityActivatedButton/VisibilityActivatedButton.jsx +0 -18
  389. package/components/VisibilityActivatedButton/index.d.ts +0 -3
  390. package/components/VisibilityActivatedButton/index.jsx +0 -3
  391. package/form.d.ts +0 -82
  392. package/form.js +0 -113
  393. package/form2.d.ts +0 -15
  394. package/form2.jsx +0 -30
  395. package/hooks/useBeforeUnload.d.ts +0 -1
  396. package/hooks/useBeforeUnload.js +0 -17
  397. package/hooks/useDebounceEffect.d.ts +0 -2
  398. package/hooks/useDebounceEffect.js +0 -14
  399. package/hooks/useDebouncedValue.d.ts +0 -2
  400. package/hooks/useDebouncedValue.js +0 -14
  401. package/hooks/useLagRadar.d.ts +0 -1
  402. package/hooks/useLagRadar.jsx +0 -124
  403. package/hooks/useMediaQuery.d.ts +0 -1
  404. package/hooks/useMediaQuery.js +0 -37
  405. package/hooks/useMutationWindowCloseProtection.d.ts +0 -2
  406. package/hooks/useMutationWindowCloseProtection.js +0 -13
  407. package/hooks/useScroll.d.ts +0 -3
  408. package/hooks/useScroll.js +0 -47
  409. package/hooks/useTranslation.d.ts +0 -4
  410. package/hooks/useTranslation.js +0 -11
  411. package/hooks/useWhyDidYouUpdate.d.ts +0 -3
  412. package/hooks/useWhyDidYouUpdate.js +0 -44
  413. package/imgur.d.ts +0 -1
  414. package/imgur.js +0 -13
  415. package/styles/DayPicker.classNames.d.ts +0 -29
  416. package/styles/DayPicker.classNames.js +0 -30
  417. package/styles/DayPicker.classNames.ts +0 -81
  418. package/styles/Dropdown.classNames.d.ts +0 -6
  419. package/styles/Dropdown.classNames.js +0 -7
  420. package/styles/Dropdown.classNames.ts +0 -38
  421. package/styles/Input.css +0 -23
  422. package/styles/Modal.classNames.d.ts +0 -2
  423. package/styles/Modal.classNames.js +0 -3
  424. package/styles/Modal.classNames.ts +0 -15
  425. package/styles/MultiText.css +0 -40
  426. package/styles/Pagination.css +0 -19
  427. package/styles/Tabs.css +0 -23
  428. package/tsconfig.tsbuildinfo +0 -1
  429. package/types.d.ts +0 -6
  430. package/types.js +0 -1
  431. package/utils/UseState.d.ts +0 -2
  432. package/utils/UseState.js +0 -1
  433. package/utils/blobToText.d.ts +0 -1
  434. package/utils/blobToText.js +0 -13
  435. package/utils/capitalize.d.ts +0 -1
  436. package/utils/capitalize.js +0 -6
  437. package/utils/clsx.d.ts +0 -2
  438. package/utils/clsx.js +0 -5
  439. package/utils/copy2DToClipboard.d.ts +0 -1
  440. package/utils/copy2DToClipboard.js +0 -44
  441. package/utils/cpfCpnjUtils.d.ts +0 -3
  442. package/utils/cpfCpnjUtils.js +0 -43
  443. package/utils/createLocalStorageStateHydration.d.ts +0 -1
  444. package/utils/createLocalStorageStateHydration.js +0 -18
  445. package/utils/createStateHydration.d.ts +0 -3
  446. package/utils/createStateHydration.js +0 -49
  447. package/utils/csvBlobToJson.d.ts +0 -2
  448. package/utils/csvBlobToJson.js +0 -59
  449. package/utils/downloadArrayAsCSV.d.ts +0 -1
  450. package/utils/downloadArrayAsCSV.js +0 -34
  451. package/utils/emailRegExp.d.ts +0 -2
  452. package/utils/emailRegExp.js +0 -2
  453. package/utils/fakeArray.d.ts +0 -1
  454. package/utils/fakeArray.js +0 -3
  455. package/utils/filterBoolean.d.ts +0 -1
  456. package/utils/filterBoolean.js +0 -3
  457. package/utils/formatClock.d.ts +0 -1
  458. package/utils/formatClock.js +0 -21
  459. package/utils/getInitials.d.ts +0 -4
  460. package/utils/getInitials.js +0 -22
  461. package/utils/isBrowser.d.ts +0 -12
  462. package/utils/isBrowser.js +0 -26
  463. package/utils/ms.d.ts +0 -6
  464. package/utils/ms.js +0 -31
  465. package/utils/preventDefault.d.ts +0 -2
  466. package/utils/preventDefault.js +0 -3
  467. package/utils/recursiveChildrenMap.d.ts +0 -2
  468. package/utils/recursiveChildrenMap.js +0 -16
  469. package/utils/setSelectionRange.d.ts +0 -1
  470. package/utils/setSelectionRange.js +0 -55
  471. package/utils/smoothScrollToHref.d.ts +0 -2
  472. package/utils/smoothScrollToHref.js +0 -14
  473. package/utils/stopPropagation.d.ts +0 -2
  474. package/utils/stopPropagation.js +0 -3
  475. package/utils/stripHtml.d.ts +0 -1
  476. package/utils/stripHtml.js +0 -4
  477. package/utils/stripLineBreak.d.ts +0 -1
  478. package/utils/stripLineBreak.js +0 -4
  479. package/utils/stripMarkdown.d.ts +0 -1
  480. package/utils/stripMarkdown.js +0 -28
  481. package/utils/xlsxBlobToJson.d.ts +0 -2
  482. package/utils/xlsxBlobToJson.js +0 -62
@@ -1,86 +0,0 @@
1
- import * as Dialog from "@radix-ui/react-dialog";
2
- import { VisuallyHidden } from "radix-ui";
3
- import { Fragment, useCallback } from "react";
4
- import { ChevronRightIcon } from "@heroicons/react/20/solid";
5
- import { MagnifyingGlassIcon } from "@heroicons/react/24/solid";
6
- import { useLocalStorage } from "react-use";
7
- import { take, uniqBy } from "lodash-es";
8
- import Image from "next/image";
9
- import Input from "../Input";
10
- import Skeleton from "../Skeleton";
11
- import UnstyledButton from "../Button/UnstyledButton";
12
- import Button from "../Button";
13
- import clsx from "../../utils/clsx";
14
- export default function Spotlight({ recentSearchesId, open, setOpen, setQuery, query, onClickItem, results, loading, getItemId = (item) => item._id, getItemLabel = (item) => item.name, getItemPicture, getItemHref, onSeeMoreClick, seeMoreHref, overlayClassName, dialogContentClassName, className, contentClassName, iconClassName, inputClassName, buttonClassName, noResultsClassName, recentSearchClassName, seeMoreLabel = "See more", noRecentSearchLabel = "No recent search", recentlySearchedLabel = "Recently searched", noResultsLabel = "No result found", onSubmit, }) {
15
- const [recentQueries, setRecentQueries] = useLocalStorage(`spotlight-recent-queries-${recentSearchesId}`, []);
16
- const handleClose = useCallback((item) => {
17
- setRecentQueries(take(uniqBy([item, ...(recentQueries || [])], getItemId), 5));
18
- setOpen(false);
19
- setQuery("");
20
- }, [getItemId, recentQueries, setOpen, setQuery, setRecentQueries]);
21
- const handleItemClick = useCallback((item) => () => {
22
- onClickItem?.(item);
23
- handleClose(item);
24
- }, [handleClose, onClickItem]);
25
- return (<Dialog.Root open={open} onOpenChange={setOpen}>
26
- <Dialog.Portal>
27
- <Dialog.Overlay className={clsx("fixed inset-0 z-20 flex justify-center bg-white/30 backdrop-blur-xs dark:bg-black/30", "data-[state=closed]:animate-fade-out data-[state=open]:animate-slide-up-and-fade will-change-[opacity,transform]", overlayClassName)}>
28
- <Dialog.Content className={clsx("fixed mx-auto w-full max-w-(--breakpoint-md) px-4 py-4 focus:outline-hidden md:py-8", "data-[state=closed]:animate-fade-out data-[state=open]:animate-elastic-slide-up-and-fade will-change-[transform,opacity]", dialogContentClassName)}>
29
- <VisuallyHidden.Root>
30
- <Dialog.Title />
31
- <Dialog.Description />
32
- </VisuallyHidden.Root>
33
- <div className={clsx("flex w-full flex-col justify-center rounded-sm border border-zinc-200 bg-zinc-100 dark:border-zinc-800 dark:bg-zinc-900", className)}>
34
- <div className="px-4 py-4">
35
- <Input className={clsx("w-full", contentClassName)} inputClassName={clsx("border-none rounded-none shadow-none rounded-b-none dark:bg-zinc-900 dark:focus:ring-0 focus:ring-0 bg-transparent", inputClassName)} autoFocus={true} leading={<MagnifyingGlassIcon className={clsx("h-5 w-5 text-black dark:text-white", iconClassName)}/>} value={query} onChange={(e) => setQuery(e.target.value)} onKeyDown={(e) => {
36
- if (e.key === "Enter") {
37
- e.preventDefault();
38
- onSubmit?.();
39
- }
40
- }}/>
41
- </div>
42
- <div className="w-full border-t border-zinc-200 p-4 dark:border-zinc-800">
43
- <div className="flex flex-col gap-2">
44
- {query ? (<>
45
- {loading && (<div className="flex items-center gap-4">
46
- {getItemPicture && <Skeleton className="h-16 w-28"/>}
47
- <Skeleton className="h-6 w-32"/>
48
- </div>)}
49
- {!loading && !results?.length && (<div className={clsx("flex justify-center py-5 text-zinc-400 dark:text-zinc-600", noResultsClassName)}>
50
- {noResultsLabel}
51
- </div>)}
52
- {!loading && !!results?.length && (<>
53
- {results.map((item, i) => (<Fragment key={getItemId(item)}>
54
- {i > 0 && (<div className="h-px bg-zinc-200 dark:bg-zinc-800"/>)}
55
- <UnstyledButton key={getItemId(item)} href={getItemHref?.(item)} className="flex w-full items-center gap-4 rounded-sm hover:bg-zinc-200/90 dark:hover:bg-zinc-800/90" onClick={handleItemClick(item)}>
56
- {getItemPicture && (<Image src={getItemPicture(item)} alt={getItemLabel(item)} width={200} height={378} className="h-16 w-28 rounded-sm object-cover"/>)}
57
- <div className="text-black dark:text-white">
58
- {getItemLabel(item)}
59
- </div>
60
- </UnstyledButton>
61
- </Fragment>))}
62
- {(onSeeMoreClick || seeMoreHref) && (<Button variant="filled" type="submit" className={clsx("mt-2 w-full dark:bg-zinc-800 dark:text-zinc-300 dark:hover:bg-zinc-700", buttonClassName)} trailing={<ChevronRightIcon />} onClick={onSeeMoreClick} href={seeMoreHref}>
63
- {seeMoreLabel}
64
- </Button>)}
65
- </>)}
66
- </>) : (<>
67
- {recentQueries?.length ? (<div className={clsx("mb-2 text-zinc-600 dark:text-zinc-400", recentSearchClassName)}>
68
- {recentlySearchedLabel}
69
- </div>) : (<div className={clsx("flex justify-center py-5 text-zinc-400 dark:text-zinc-600", noResultsClassName)}>
70
- {noRecentSearchLabel}
71
- </div>)}
72
- {recentQueries?.map((item) => (<UnstyledButton key={getItemId(item)} href={getItemHref?.(item)} className="flex w-full items-center gap-4 hover:bg-zinc-200/90 dark:hover:bg-zinc-800/90" onClick={handleItemClick(item)}>
73
- {getItemPicture && (<Image src={getItemPicture(item)} alt={getItemLabel(item)} width={200} height={378} className="max-h-16 max-w-28 rounded-sm object-cover"/>)}
74
- <div className="text-black dark:text-white">
75
- {getItemLabel(item)}
76
- </div>
77
- </UnstyledButton>))}
78
- </>)}
79
- </div>
80
- </div>
81
- </div>
82
- </Dialog.Content>
83
- </Dialog.Overlay>
84
- </Dialog.Portal>
85
- </Dialog.Root>);
86
- }
@@ -1,3 +0,0 @@
1
- import Spotlight from "./Spotlight";
2
- export * from "./Spotlight";
3
- export default Spotlight;
@@ -1,3 +0,0 @@
1
- import Spotlight from "./Spotlight";
2
- export * from "./Spotlight";
3
- export default Spotlight;
@@ -1,7 +0,0 @@
1
- import React from "react";
2
- interface SpotlightCardProps extends React.PropsWithChildren {
3
- className?: string;
4
- spotlightColor?: `rgba(${number}, ${number}, ${number}, ${number})`;
5
- }
6
- declare const SpotlightCard: React.FC<SpotlightCardProps>;
7
- export default SpotlightCard;
@@ -1,35 +0,0 @@
1
- import React, { useRef, useState } from "react";
2
- const SpotlightCard = ({ children, className = "", spotlightColor = "rgba(255, 255, 255, 0.25)", }) => {
3
- const divRef = useRef(null);
4
- const [isFocused, setIsFocused] = useState(false);
5
- const [position, setPosition] = useState({ x: 0, y: 0 });
6
- const [opacity, setOpacity] = useState(0);
7
- const handleMouseMove = (e) => {
8
- if (!divRef.current || isFocused)
9
- return;
10
- const rect = divRef.current.getBoundingClientRect();
11
- setPosition({ x: e.clientX - rect.left, y: e.clientY - rect.top });
12
- };
13
- const handleFocus = () => {
14
- setIsFocused(true);
15
- setOpacity(0.6);
16
- };
17
- const handleBlur = () => {
18
- setIsFocused(false);
19
- setOpacity(0);
20
- };
21
- const handleMouseEnter = () => {
22
- setOpacity(0.6);
23
- };
24
- const handleMouseLeave = () => {
25
- setOpacity(0);
26
- };
27
- return (<div ref={divRef} onMouseMove={handleMouseMove} onFocus={handleFocus} onBlur={handleBlur} onMouseEnter={handleMouseEnter} onMouseLeave={handleMouseLeave} className={`relative overflow-hidden ${className}`}>
28
- <div className="pointer-events-none absolute inset-0 opacity-0 transition-opacity duration-500 ease-in-out" style={{
29
- opacity,
30
- background: `radial-gradient(circle at ${position.x}px ${position.y}px, ${spotlightColor}, transparent 80%)`,
31
- }}/>
32
- {children}
33
- </div>);
34
- };
35
- export default SpotlightCard;
@@ -1,3 +0,0 @@
1
- import SpotlightCard from "./SpotlightCard";
2
- export * from "./SpotlightCard";
3
- export default SpotlightCard;
@@ -1,3 +0,0 @@
1
- import SpotlightCard from "./SpotlightCard";
2
- export * from "./SpotlightCard";
3
- export default SpotlightCard;
@@ -1,4 +0,0 @@
1
- import type { DetailedHTMLProps, HTMLAttributes } from "react";
2
- export type StackProps = DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>;
3
- declare function Stack({ className, ...props }: StackProps): import("react").JSX.Element;
4
- export default Stack;
@@ -1,5 +0,0 @@
1
- import clsx from "../../utils/clsx";
2
- function Stack({ className, ...props }) {
3
- return <div {...props} className={clsx("flex flex-col gap-2", className)}/>;
4
- }
5
- export default Stack;
@@ -1,3 +0,0 @@
1
- import Stack from "./Stack";
2
- export * from "./Stack";
3
- export default Stack;
@@ -1,3 +0,0 @@
1
- import Stack from "./Stack";
2
- export * from "./Stack";
3
- export default Stack;
@@ -1,10 +0,0 @@
1
- export type StarBorderProps<T extends React.ElementType> = React.ComponentPropsWithoutRef<T> & {
2
- as?: T;
3
- className?: string;
4
- children?: React.ReactNode;
5
- color?: string;
6
- speed?: React.CSSProperties["animationDuration"];
7
- innerClassName?: string;
8
- };
9
- declare const StarBorder: <T extends React.ElementType = "button">({ as, className, color, speed, children, innerClassName, ...rest }: StarBorderProps<T>) => import("react").JSX.Element;
10
- export default StarBorder;
@@ -1,19 +0,0 @@
1
- import {} from "react";
2
- import clsx from "../../utils/clsx";
3
- const StarBorder = ({ as, className = "", color = "white", speed = "6s", children, innerClassName, ...rest }) => {
4
- const Component = (as || "button");
5
- return (<Component className={`relative inline-block overflow-hidden rounded-[20px] py-[1px] ${className}`} {...rest}>
6
- <div className="animate-star-movement-bottom absolute right-[-250%] bottom-[-11px] z-0 h-[50%] w-[300%] rounded-full opacity-70" style={{
7
- background: `radial-gradient(circle, ${color}, transparent 10%)`,
8
- animationDuration: speed,
9
- }}/>
10
- <div className="animate-star-movement-top absolute top-[-10px] left-[-250%] z-0 h-[50%] w-[300%] rounded-full opacity-70" style={{
11
- background: `radial-gradient(circle, ${color}, transparent 10%)`,
12
- animationDuration: speed,
13
- }}/>
14
- <div className={clsx("relative z-1 rounded-[20px] border border-gray-800 bg-gradient-to-b from-black to-gray-900 px-[26px] py-[16px] text-center text-[16px] text-white", innerClassName)}>
15
- {children}
16
- </div>
17
- </Component>);
18
- };
19
- export default StarBorder;
@@ -1,3 +0,0 @@
1
- import StarBorder from "./StarBorder";
2
- export * from "./StarBorder";
3
- export default StarBorder;
@@ -1,3 +0,0 @@
1
- import StarBorder from "./StarBorder";
2
- export * from "./StarBorder";
3
- export default StarBorder;
@@ -1,16 +0,0 @@
1
- import type { ReactNode } from "react";
2
- import { type UnstyledInputCommonProps } from "../Input";
3
- export interface SwitchProps {
4
- srLabel?: string;
5
- checked?: boolean;
6
- className?: string;
7
- rightLabel?: ReactNode;
8
- switchClassName?: string;
9
- pointerClassName?: string;
10
- readOnly?: boolean;
11
- disabled?: boolean;
12
- onChange?(checked: boolean): void;
13
- }
14
- export default function Switch({ srLabel, checked, onChange, className, rightLabel, readOnly, switchClassName, pointerClassName, disabled, }: SwitchProps): import("react").JSX.Element;
15
- export type SwitchInputProps = UnstyledInputCommonProps & SwitchProps;
16
- export declare function SwitchInput({ inputClassName, checked, ...props }: SwitchInputProps): import("react").JSX.Element;
@@ -1,24 +0,0 @@
1
- import { Switch as RSwitch } from "radix-ui";
2
- import clsx from "../../utils/clsx";
3
- import Input, {} from "../Input";
4
- export default function Switch({ srLabel, checked, onChange, className, rightLabel, readOnly, switchClassName, pointerClassName, disabled, }) {
5
- return (<div className={clsx(className, "flex items-center")}>
6
- <RSwitch.Root checked={checked} onCheckedChange={onChange} className={clsx({
7
- "bg-primary-600": checked,
8
- "bg-zinc-300 dark:bg-zinc-600": !checked,
9
- "cursor-pointer": !readOnly && !disabled,
10
- "cursor-not-allowed": disabled,
11
- }, "focus:ring-primary-500 relative inline-flex h-6 w-11 shrink-0 rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:ring-2 focus:ring-offset-2 focus:outline-hidden dark:ring-offset-zinc-900", switchClassName)} disabled={readOnly || disabled}>
12
- {srLabel && <span className="sr-only">{srLabel}</span>}
13
- <RSwitch.Thumb aria-hidden="true" className={clsx("pointer-events-none inline-block h-5 w-5 translate-x-0 transform rounded-full bg-white shadow-sm ring-0 transition duration-200 ease-in-out data-[state=checked]:translate-x-5", pointerClassName)}/>
14
- </RSwitch.Root>
15
- {rightLabel && (<span className="ml-3 text-sm text-zinc-500 dark:text-zinc-300">
16
- {rightLabel}
17
- </span>)}
18
- </div>);
19
- }
20
- export function SwitchInput({ inputClassName, checked, ...props }) {
21
- return (<Input
22
- /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
23
- {...props} as={Switch} inputClassName={clsx("p-1.5 border bg-white", inputClassName)} checked={!!checked}/>);
24
- }
@@ -1,3 +0,0 @@
1
- import Switch from "./Switch";
2
- export * from "./Switch";
3
- export default Switch;
@@ -1,3 +0,0 @@
1
- import Switch from "./Switch";
2
- export * from "./Switch";
3
- export default Switch;
@@ -1,57 +0,0 @@
1
- import { type ComponentType, type ReactElement, type ReactNode } from "react";
2
- export type DataTableProps<RowData> = {
3
- title?: ReactNode;
4
- subtitle?: ReactNode;
5
- headerContent?: ReactNode;
6
- data?: RowData[];
7
- idAccessor?: keyof RowData;
8
- columns: {
9
- id?: string;
10
- title?: ReactNode;
11
- accessor?: keyof RowData;
12
- render?: (item: RowData) => ReactNode;
13
- headerClassName?: string;
14
- cellClassName?: string;
15
- sortable?: boolean;
16
- }[];
17
- actions?: {
18
- title: string;
19
- icon: ReactElement;
20
- href?: string | ((item: RowData) => string | null | undefined);
21
- onClick?: (item: RowData) => void;
22
- wrapper?: ComponentType<{
23
- item: RowData;
24
- children: ReactElement<{
25
- className?: string;
26
- onClick: () => void;
27
- }>;
28
- }>;
29
- target?: string;
30
- }[];
31
- isLoading?: boolean;
32
- noRecords?: ReactNode;
33
- onRowClick?: (item: RowData) => void;
34
- rowWrapper?: ComponentType<{
35
- item: RowData;
36
- children: ReactElement<{
37
- className?: string;
38
- }>;
39
- }>;
40
- pagination?: boolean;
41
- currentPage?: number;
42
- onChangePage?: (page: number) => void;
43
- totalItems?: number;
44
- itemsPerPage?: number;
45
- className?: string;
46
- autoHeight?: boolean;
47
- onChangeSort?: (sort: [string, "asc" | "desc"][]) => void;
48
- sort?: [string, "asc" | "desc"][];
49
- previousText?: string;
50
- nextText?: string;
51
- showingText?: string;
52
- toText?: string;
53
- ofText?: string;
54
- resultsText?: string;
55
- tableClassName?: string;
56
- };
57
- export default function DataTable<RowData>({ title, subtitle, headerContent, data, idAccessor, actions, columns, isLoading, noRecords: noRecordsText, onRowClick, rowWrapper, pagination, currentPage, onChangePage, totalItems, itemsPerPage, className, autoHeight, onChangeSort, sort: defaultSort, previousText, nextText, showingText, toText, ofText, resultsText, tableClassName, }: DataTableProps<RowData>): import("react").JSX.Element;
@@ -1,155 +0,0 @@
1
- import { Fragment, useCallback, useEffect, useState, } from "react";
2
- import Loading from "../Loading";
3
- import Skeleton from "../Skeleton";
4
- import Stack from "../Stack";
5
- import Text from "../Text";
6
- import Table from "./Table";
7
- import clsx from "../../utils/clsx";
8
- import { ChevronUpIcon } from "@heroicons/react/20/solid";
9
- export default function DataTable({ title, subtitle, headerContent, data, idAccessor = "_id", actions, columns, isLoading, noRecords: noRecordsText = "No records", onRowClick, rowWrapper, pagination, currentPage = 0, onChangePage, totalItems, itemsPerPage = 0, className, autoHeight, onChangeSort, sort: defaultSort = [], previousText, nextText, showingText, toText, ofText, resultsText, tableClassName, }) {
10
- const [sort, setSort] = useState(defaultSort);
11
- const [page, setPage] = useState(currentPage);
12
- useEffect(() => {
13
- if (page !== currentPage) {
14
- setPage(currentPage);
15
- }
16
- }, [currentPage, page]);
17
- useEffect(() => {
18
- if (onChangePage) {
19
- onChangePage(page);
20
- }
21
- // eslint-disable-next-line react-hooks/exhaustive-deps
22
- }, [page]);
23
- const handleRowClick = useCallback((item) => (onRowClick ? () => onRowClick(item) : undefined), [onRowClick]);
24
- const getColumnSort = useCallback((id) => sort.find((column) => id === column[0]), [sort]);
25
- const handleColumnClick = useCallback((id) => () => {
26
- const sort = getColumnSort(id) || [
27
- id,
28
- null,
29
- ];
30
- switch (sort[1]) {
31
- case "asc":
32
- sort[1] = "desc";
33
- break;
34
- case "desc":
35
- sort[1] = null;
36
- break;
37
- case null:
38
- sort[1] = "asc";
39
- break;
40
- }
41
- setSort((oldSort) => {
42
- const newSort = [...oldSort];
43
- if (sort[1]) {
44
- const column = newSort.find((column) => column[0] === id);
45
- if (column) {
46
- column[1] = sort[1];
47
- }
48
- else {
49
- newSort.push([sort[0], sort[1]]);
50
- }
51
- return newSort;
52
- }
53
- return newSort.filter((column) => !!column[1]);
54
- });
55
- }, [getColumnSort]);
56
- useEffect(() => {
57
- if (onChangeSort) {
58
- onChangeSort?.(sort);
59
- }
60
- // eslint-disable-next-line react-hooks/exhaustive-deps
61
- }, [sort]);
62
- return (<Stack className={clsx({
63
- "flex flex-1 flex-col": autoHeight,
64
- }, className)}>
65
- {(title || subtitle || headerContent) && (<Table.Header title={title} subtitle={subtitle}>
66
- {headerContent}
67
- </Table.Header>)}
68
- <Table autoHeight={autoHeight} className={tableClassName}>
69
- <Table.Head>
70
- <Table.Row>
71
- {columns.map((column, i) => {
72
- const id = column.id ||
73
- (typeof column.title === "string"
74
- ? column.title
75
- : i.toString());
76
- const columnSort = getColumnSort(id);
77
- return (<Table.Cell key={id} className={column.headerClassName}>
78
- {column.sortable ? (<span className="group inline-flex cursor-pointer" onClick={handleColumnClick(id)}>
79
- {column.title}
80
- <span className={clsx("mb-auto ml-2 flex-none rounded-sm text-zinc-400", {
81
- "bg-zinc-200 text-zinc-900 group-hover:bg-zinc-300": columnSort?.[1],
82
- "invisible group-hover:visible group-focus:visible": !columnSort?.[1],
83
- })}>
84
- <ChevronUpIcon className={clsx("h-5 w-5", {
85
- "scale-y-flip": columnSort?.[1] === "desc",
86
- })} aria-hidden="true"/>
87
- </span>
88
- </span>) : (column.title)}
89
- </Table.Cell>);
90
- })}
91
- {actions && <Table.Cell />}
92
- </Table.Row>
93
- {isLoading && (<tr className="absolute top-2 right-3 rounded-full bg-zinc-50/50 dark:bg-zinc-900/50">
94
- <td>
95
- <Loading className="mt-px"/>
96
- </td>
97
- </tr>)}
98
- </Table.Head>
99
- <Table.Body>
100
- {data?.map((item) => {
101
- const RowComponent = rowWrapper || Fragment;
102
- return (<RowComponent key={item[idAccessor]} {...(RowComponent !== Fragment
103
- ? // eslint-disable-next-line @typescript-eslint/no-explicit-any
104
- { item: item }
105
- : {})}>
106
- <Table.Row onClick={handleRowClick(item)}>
107
- {columns.map((column, i) => {
108
- const value = column.accessor
109
- ? item[column.accessor]
110
- : column.render && column.render(item);
111
- return (<Table.Cell key={column.id ||
112
- (typeof column.title === "string" ? column.title : i)} className={column.cellClassName} title={column.cellClassName?.includes("max-w") &&
113
- typeof value === "string"
114
- ? value
115
- : undefined}>
116
- {value}
117
- </Table.Cell>);
118
- })}
119
- {actions && (<Table.Cell actions>
120
- {actions.map((action, i) => {
121
- const ActionComponent = action.wrapper || Fragment;
122
- return (<ActionComponent key={i} {...(ActionComponent !== Fragment
123
- ? // eslint-disable-next-line @typescript-eslint/no-explicit-any
124
- { item: item }
125
- : {})}>
126
- <Table.ActionButton title={action.title} onClick={() => action.onClick?.(item)} href={typeof action.href === "function"
127
- ? action.href?.(item)
128
- : action.href} target={action.target}>
129
- {action.icon}
130
- </Table.ActionButton>
131
- </ActionComponent>);
132
- })}
133
- </Table.Cell>)}
134
- </Table.Row>
135
- </RowComponent>);
136
- })}
137
- {isLoading && !data?.length && (<Table.Row>
138
- {columns.map((column, i) => (<Table.Cell key={column.id ||
139
- (typeof column.title === "string" ? column.title : i)}>
140
- <Skeleton className="h-3"/>
141
- </Table.Cell>))}
142
- {actions && (<Table.Cell actions>
143
- <Skeleton className="inline-block h-3 w-6"/>
144
- </Table.Cell>)}
145
- </Table.Row>)}
146
- {!isLoading && !data?.length && (<Table.Row>
147
- <Table.Cell colSpan={columns.length + (actions ? 1 : 0)}>
148
- <Text variant="secondary">{noRecordsText}</Text>
149
- </Table.Cell>
150
- </Table.Row>)}
151
- </Table.Body>
152
- </Table>
153
- {pagination ? (<Table.FooterWithPagination totalItems={totalItems} itemsPerPage={itemsPerPage} currentPage={currentPage} onChangePage={onChangePage} previousText={previousText} nextText={nextText} showingText={showingText} toText={toText} ofText={ofText} resultsText={resultsText}/>) : undefined}
154
- </Stack>);
155
- }
@@ -1,27 +0,0 @@
1
- import type { ReactNode } from "react";
2
- import TableActionButton from "./TableActionButton";
3
- import TableBody from "./TableBody";
4
- import TableCell from "./TableCell";
5
- import TableHead from "./TableHead";
6
- import TableHeader from "./TableHeader";
7
- import TableRow from "./TableRow";
8
- import TableFooter from "./TableFooter";
9
- import TableFooterWithPagination from "./TableFooterWithPagination";
10
- export type TableProps = {
11
- children?: ReactNode;
12
- className?: string;
13
- hideBorder?: boolean;
14
- autoHeight?: boolean;
15
- };
16
- declare function Table({ children, className, hideBorder, autoHeight, }: TableProps): import("react").JSX.Element;
17
- declare namespace Table {
18
- var Row: typeof TableRow;
19
- var Head: typeof TableHead;
20
- var Body: typeof TableBody;
21
- var Cell: typeof TableCell;
22
- var ActionButton: typeof TableActionButton;
23
- var Header: typeof TableHeader;
24
- var Footer: typeof TableFooter;
25
- var FooterWithPagination: typeof TableFooterWithPagination;
26
- }
27
- export default Table;
@@ -1,31 +0,0 @@
1
- import clsx from "../../utils/clsx";
2
- import TableActionButton from "./TableActionButton";
3
- import TableBody from "./TableBody";
4
- import TableCell from "./TableCell";
5
- import TableHead from "./TableHead";
6
- import TableHeader from "./TableHeader";
7
- import TableRow from "./TableRow";
8
- import TableFooter from "./TableFooter";
9
- import TableFooterWithPagination from "./TableFooterWithPagination";
10
- export default function Table({ children, className, hideBorder, autoHeight, }) {
11
- return (<div className={clsx("overflow-hidden bg-white dark:bg-zinc-800", {
12
- "relative flex-1": autoHeight,
13
- "shadow-sm ring-1 ring-black/5 md:rounded-lg dark:ring-white/10": !hideBorder,
14
- }, className)}>
15
- <div className={clsx("overflow-auto", {
16
- "absolute inset-0": autoHeight,
17
- })}>
18
- <table className={clsx("w-full max-w-full divide-y divide-zinc-300 dark:divide-zinc-600")}>
19
- {children}
20
- </table>
21
- </div>
22
- </div>);
23
- }
24
- Table.Row = TableRow;
25
- Table.Head = TableHead;
26
- Table.Body = TableBody;
27
- Table.Cell = TableCell;
28
- Table.ActionButton = TableActionButton;
29
- Table.Header = TableHeader;
30
- Table.Footer = TableFooter;
31
- Table.FooterWithPagination = TableFooterWithPagination;
@@ -1,6 +0,0 @@
1
- import { type ReactNode } from "react";
2
- import { type ButtonProps } from "../Button/Button";
3
- export type TableActionButtonProps<T extends HTMLElement = HTMLButtonElement> = {
4
- title?: ReactNode;
5
- } & ButtonProps<T>;
6
- export default function TableActionButton<T extends HTMLElement = HTMLButtonElement>({ children, className, title, onClick, ...props }: TableActionButtonProps<T>): import("react").JSX.Element;
@@ -1,20 +0,0 @@
1
- import clsx from "../../utils/clsx";
2
- import { cloneElement, } from "react";
3
- import Button, {} from "../Button/Button";
4
- import Tooltip from "../Tooltip";
5
- export default function TableActionButton({ children, className, title, onClick, ...props }) {
6
- const handleClick = (e) => {
7
- e.stopPropagation();
8
- onClick?.(e);
9
- };
10
- const child = children;
11
- const button = (<Button icon variant="text" className={clsx("p-1!", className)} onClick={handleClick} {...props}>
12
- {cloneElement(child, {
13
- className: clsx("h-[20px]! w-[20px]!", child.props.className),
14
- })}
15
- </Button>);
16
- if (title) {
17
- return <Tooltip content={title}>{button}</Tooltip>;
18
- }
19
- return button;
20
- }
@@ -1,6 +0,0 @@
1
- import { type ReactNode } from "react";
2
- export type TableBodyProps = {
3
- children?: ReactNode;
4
- className?: string;
5
- };
6
- export default function TableBody({ children, className }: TableBodyProps): import("react").JSX.Element;
@@ -1,10 +0,0 @@
1
- import { useMemo } from "react";
2
- import TableHeadContext from "./TableHeadContext";
3
- import clsx from "../../utils/clsx";
4
- export default function TableBody({ children, className }) {
5
- return (<TableHeadContext.Provider value={useMemo(() => ({ isHead: false, sticky: false }), [])}>
6
- <tbody className={clsx("divide-y divide-zinc-200 bg-white dark:divide-zinc-700 dark:bg-zinc-800 [&_tr:last-of-type]:border-b [&_tr:last-of-type]:border-zinc-200 dark:[&_tr:last-of-type]:border-zinc-700", className)}>
7
- {children}
8
- </tbody>
9
- </TableHeadContext.Provider>);
10
- }
@@ -1,9 +0,0 @@
1
- import { type ReactNode } from "react";
2
- export type TableCellProps = {
3
- children?: ReactNode;
4
- className?: string;
5
- actions?: boolean;
6
- colSpan?: number;
7
- title?: string;
8
- };
9
- export default function TableCell({ children, className, actions, colSpan, title, }: TableCellProps): import("react").JSX.Element;
@@ -1,18 +0,0 @@
1
- import clsx from "../../utils/clsx";
2
- import { useContext } from "react";
3
- import TableHeadContext from "./TableHeadContext";
4
- export default function TableCell({ children, className, actions, colSpan, title, }) {
5
- const { isHead } = useContext(TableHeadContext);
6
- const commonClassName = clsx("text-sm first:pl-4 sm:first:pl-6 first:font-medium first:text-zinc-900 dark:first:text-zinc-100 px-3", {
7
- "py-2 last:pr-4 sm:last:pr-6": !actions,
8
- "py-0.5 text-right pr-2.5 sm:pr-5": actions,
9
- });
10
- if (isHead) {
11
- return (<th className={clsx(commonClassName, "sticky left-0 bg-zinc-50 py-2 text-left font-semibold text-zinc-900 dark:bg-zinc-900 dark:text-zinc-50", className)} colSpan={colSpan} title={title}>
12
- {children}
13
- </th>);
14
- }
15
- return (<td className={clsx(commonClassName, "whitespace-nowrap text-zinc-500 dark:text-zinc-300", className)} colSpan={colSpan} title={title}>
16
- {children}
17
- </td>);
18
- }
@@ -1,5 +0,0 @@
1
- import type { ReactNode } from "react";
2
- export interface TableFooterProps {
3
- children?: ReactNode;
4
- }
5
- export default function TableFooter({ children }: TableFooterProps): import("react").JSX.Element;
@@ -1,5 +0,0 @@
1
- export default function TableFooter({ children }) {
2
- return (<div className="flex items-center justify-between border border-x-0 border-zinc-200 bg-white p-3 sm:border-x sm:px-5 md:rounded-lg dark:border-white/10 dark:bg-zinc-900">
3
- {children}
4
- </div>);
5
- }