@majapisoftwares/ui 4.3.17 → 6.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 (517) hide show
  1. package/AGENTS.md +27 -0
  2. package/README.md +79 -0
  3. package/THIRD_PARTY_NOTICES.md +39 -0
  4. package/components.json +25 -0
  5. package/docs/MIGRATION-0.2.md +20 -0
  6. package/docs/MIGRATION-6.0.md +33 -0
  7. package/docs/NEXT-STARTER-VALIDATION.md +14 -0
  8. package/docs/STANDARDS.md +41 -0
  9. package/docs/VALIDATION.md +11 -0
  10. package/docs/VERSIONING.md +28 -0
  11. package/package.json +78 -2
  12. package/scripts/check-standards.mjs +41 -0
  13. package/src/components/ui/accordion.tsx +82 -0
  14. package/src/components/ui/alert-dialog.tsx +187 -0
  15. package/src/components/ui/alert.tsx +77 -0
  16. package/src/components/ui/avatar.tsx +108 -0
  17. package/src/components/ui/badge.tsx +55 -0
  18. package/src/components/ui/breadcrumb.tsx +125 -0
  19. package/src/components/ui/button-group.tsx +89 -0
  20. package/src/components/ui/button.tsx +59 -0
  21. package/src/components/ui/card.tsx +101 -0
  22. package/src/components/ui/checkbox.tsx +27 -0
  23. package/src/components/ui/collapsible.tsx +21 -0
  24. package/src/components/ui/context-menu.tsx +271 -0
  25. package/src/components/ui/dialog.tsx +161 -0
  26. package/src/components/ui/dropdown-menu.tsx +271 -0
  27. package/src/components/ui/empty.tsx +105 -0
  28. package/src/components/ui/field.tsx +238 -0
  29. package/src/components/ui/hover-card.tsx +50 -0
  30. package/src/components/ui/input-group.tsx +155 -0
  31. package/src/components/ui/input.tsx +21 -0
  32. package/src/components/ui/kbd.tsx +28 -0
  33. package/src/components/ui/label.tsx +19 -0
  34. package/src/components/ui/orb.css +1002 -0
  35. package/src/components/ui/orb.tsx +752 -0
  36. package/src/components/ui/popover.tsx +89 -0
  37. package/src/components/ui/progress.tsx +82 -0
  38. package/src/components/ui/radio-group.tsx +37 -0
  39. package/src/components/ui/scroll-area.tsx +54 -0
  40. package/src/components/ui/select.tsx +204 -0
  41. package/src/components/ui/separator.tsx +24 -0
  42. package/src/components/ui/sheet.tsx +139 -0
  43. package/src/components/ui/sidebar.tsx +1035 -0
  44. package/src/components/ui/skeleton.tsx +15 -0
  45. package/src/components/ui/slider.tsx +53 -0
  46. package/src/components/ui/sonner.tsx +44 -0
  47. package/src/components/ui/spinner.tsx +32 -0
  48. package/src/components/ui/switch.tsx +31 -0
  49. package/src/components/ui/table.tsx +121 -0
  50. package/src/components/ui/tabs.tsx +81 -0
  51. package/src/components/ui/textarea.tsx +19 -0
  52. package/src/components/ui/toggle-group.tsx +89 -0
  53. package/src/components/ui/toggle.tsx +44 -0
  54. package/src/components/ui/tooltip.tsx +65 -0
  55. package/src/hooks/use-mobile.ts +20 -0
  56. package/src/lib/i18n.tsx +109 -0
  57. package/src/lib/utils.ts +1 -0
  58. package/src/patterns/app-shell.tsx +175 -0
  59. package/src/patterns/data-table.tsx +2486 -0
  60. package/src/patterns/details-sheet.tsx +53 -0
  61. package/src/patterns/filter-tabs.tsx +53 -0
  62. package/src/patterns/majapi-logo.tsx +32 -0
  63. package/src/patterns/page-header.tsx +62 -0
  64. package/src/patterns/preferences.tsx +172 -0
  65. package/src/patterns/status-badge.tsx +24 -0
  66. package/src/styles.css +165 -0
  67. package/src/templates/admin-dashboard.tsx +44 -0
  68. package/src/templates/auth-layout.tsx +30 -0
  69. package/src/templates/login-form.tsx +129 -0
  70. package/src/templates/signup-form.tsx +177 -0
  71. package/base.css +0 -360
  72. package/bootstrap/AppProps.d.ts +0 -9
  73. package/bootstrap/AppProps.js +0 -1
  74. package/bootstrap/index.d.ts +0 -1
  75. package/bootstrap/index.js +0 -1
  76. package/bootstrap/modeScript.d.ts +0 -2
  77. package/bootstrap/modeScript.js +0 -35
  78. package/bootstrap/nprogress.d.ts +0 -1
  79. package/bootstrap/nprogress.js +0 -19
  80. package/bootstrap/scrolledScript.d.ts +0 -2
  81. package/bootstrap/scrolledScript.js +0 -27
  82. package/bootstrap/setupFocusManager.d.ts +0 -1
  83. package/bootstrap/setupFocusManager.js +0 -13
  84. package/bootstrap/suppressConsoleLog.d.ts +0 -1
  85. package/bootstrap/suppressConsoleLog.js +0 -8
  86. package/components/Accordion/Accordion.d.ts +0 -16
  87. package/components/Accordion/Accordion.jsx +0 -27
  88. package/components/Accordion/index.d.ts +0 -3
  89. package/components/Accordion/index.jsx +0 -3
  90. package/components/Alert/Alert.d.ts +0 -31
  91. package/components/Alert/Alert.jsx +0 -53
  92. package/components/Alert/index.d.ts +0 -3
  93. package/components/Alert/index.jsx +0 -3
  94. package/components/AntiClickjacking/AntiClickjacking.d.ts +0 -1
  95. package/components/AntiClickjacking/AntiClickjacking.jsx +0 -17
  96. package/components/AntiClickjacking/index.d.ts +0 -2
  97. package/components/AntiClickjacking/index.jsx +0 -2
  98. package/components/Aurora/Aurora.d.ts +0 -10
  99. package/components/Aurora/Aurora.jsx +0 -189
  100. package/components/Aurora/index.d.ts +0 -3
  101. package/components/Aurora/index.jsx +0 -3
  102. package/components/Autocomplete/Autocomplete.d.ts +0 -7
  103. package/components/Autocomplete/Autocomplete.jsx +0 -23
  104. package/components/Autocomplete/UnstyledAutocomplete.d.ts +0 -36
  105. package/components/Autocomplete/UnstyledAutocomplete.jsx +0 -72
  106. package/components/Autocomplete/index.d.ts +0 -5
  107. package/components/Autocomplete/index.jsx +0 -5
  108. package/components/BackgroundEffects/BottomBlurryPoint.d.ts +0 -3
  109. package/components/BackgroundEffects/BottomBlurryPoint.jsx +0 -14
  110. package/components/BackgroundEffects/TopBlurryPoint.d.ts +0 -3
  111. package/components/BackgroundEffects/TopBlurryPoint.jsx +0 -14
  112. package/components/Badge/Badge.d.ts +0 -42
  113. package/components/Badge/Badge.jsx +0 -51
  114. package/components/Badge/index.d.ts +0 -3
  115. package/components/Badge/index.jsx +0 -3
  116. package/components/Breadcrumbs/Breadcrumbs.d.ts +0 -20
  117. package/components/Breadcrumbs/Breadcrumbs.jsx +0 -42
  118. package/components/Breadcrumbs/index.d.ts +0 -3
  119. package/components/Breadcrumbs/index.jsx +0 -3
  120. package/components/Button/Button.d.ts +0 -111
  121. package/components/Button/Button.jsx +0 -129
  122. package/components/Button/UnstyledButton.d.ts +0 -10
  123. package/components/Button/UnstyledButton.jsx +0 -13
  124. package/components/Button/index.d.ts +0 -3
  125. package/components/Button/index.jsx +0 -3
  126. package/components/Carousel/Carousel.d.ts +0 -19
  127. package/components/Carousel/Carousel.jsx +0 -55
  128. package/components/Carousel/index.d.ts +0 -3
  129. package/components/Carousel/index.jsx +0 -3
  130. package/components/Checkbox/Checkbox.d.ts +0 -14
  131. package/components/Checkbox/Checkbox.jsx +0 -45
  132. package/components/Checkbox/index.d.ts +0 -3
  133. package/components/Checkbox/index.js +0 -3
  134. package/components/Code/Code.d.ts +0 -12
  135. package/components/Code/Code.jsx +0 -25
  136. package/components/Code/Json.d.ts +0 -5
  137. package/components/Code/Json.jsx +0 -7
  138. package/components/Code/index.d.ts +0 -4
  139. package/components/Code/index.jsx +0 -4
  140. package/components/ConfirmationButton/ConfirmationButton.d.ts +0 -17
  141. package/components/ConfirmationButton/ConfirmationButton.jsx +0 -13
  142. package/components/ConfirmationButton/index.d.ts +0 -3
  143. package/components/ConfirmationButton/index.jsx +0 -3
  144. package/components/ContextMenu/ContextMenu.d.ts +0 -28
  145. package/components/ContextMenu/ContextMenu.jsx +0 -70
  146. package/components/ContextMenu/index.d.ts +0 -3
  147. package/components/ContextMenu/index.jsx +0 -3
  148. package/components/CopyButton/CopyButton.d.ts +0 -7
  149. package/components/CopyButton/CopyButton.jsx +0 -29
  150. package/components/CopyButton/index.d.ts +0 -3
  151. package/components/CopyButton/index.jsx +0 -3
  152. package/components/DateInput/DateInput.d.ts +0 -6
  153. package/components/DateInput/DateInput.jsx +0 -19
  154. package/components/DateInput/DateTimeInput.d.ts +0 -3
  155. package/components/DateInput/DateTimeInput.jsx +0 -8
  156. package/components/DateInput/index.d.ts +0 -4
  157. package/components/DateInput/index.jsx +0 -4
  158. package/components/DateInput/useRefValue.d.ts +0 -5
  159. package/components/DateInput/useRefValue.js +0 -48
  160. package/components/DatePicker/DatePicker.d.ts +0 -19
  161. package/components/DatePicker/DatePicker.jsx +0 -55
  162. package/components/DatePicker/index.d.ts +0 -3
  163. package/components/DatePicker/index.jsx +0 -3
  164. package/components/DateRangePicker/DateRangePicker.d.ts +0 -16
  165. package/components/DateRangePicker/DateRangePicker.jsx +0 -56
  166. package/components/DateRangePicker/index.d.ts +0 -3
  167. package/components/DateRangePicker/index.jsx +0 -3
  168. package/components/Dialog/Dialog.d.ts +0 -25
  169. package/components/Dialog/Dialog.jsx +0 -35
  170. package/components/Dialog/Dialogs.d.ts +0 -1
  171. package/components/Dialog/Dialogs.jsx +0 -21
  172. package/components/Dialog/dialogs.state.d.ts +0 -21
  173. package/components/Dialog/dialogs.state.js +0 -40
  174. package/components/Dialog/index.d.ts +0 -6
  175. package/components/Dialog/index.jsx +0 -7
  176. package/components/Drawer/Drawer.d.ts +0 -15
  177. package/components/Drawer/Drawer.jsx +0 -72
  178. package/components/Drawer/index.d.ts +0 -3
  179. package/components/Drawer/index.jsx +0 -3
  180. package/components/DropdownMenu/DropdownMenu.d.ts +0 -33
  181. package/components/DropdownMenu/DropdownMenu.jsx +0 -74
  182. package/components/DropdownMenu/index.d.ts +0 -3
  183. package/components/DropdownMenu/index.jsx +0 -3
  184. package/components/ErrorBoundary/ErrorBoundary.d.ts +0 -18
  185. package/components/ErrorBoundary/ErrorBoundary.jsx +0 -32
  186. package/components/ErrorBoundary/index.d.ts +0 -3
  187. package/components/ErrorBoundary/index.jsx +0 -3
  188. package/components/ErrorPage/Error404Page.d.ts +0 -1
  189. package/components/ErrorPage/Error404Page.jsx +0 -4
  190. package/components/ErrorPage/Error500Page.d.ts +0 -1
  191. package/components/ErrorPage/Error500Page.jsx +0 -4
  192. package/components/ErrorPage/ErrorPage.d.ts +0 -11
  193. package/components/ErrorPage/ErrorPage.jsx +0 -23
  194. package/components/FileInput/FileInput.d.ts +0 -53
  195. package/components/FileInput/FileInput.jsx +0 -141
  196. package/components/FileInput/PreviewFile.d.ts +0 -18
  197. package/components/FileInput/PreviewFile.jsx +0 -54
  198. package/components/FileInput/index.d.ts +0 -3
  199. package/components/FileInput/index.jsx +0 -3
  200. package/components/FileInput/isImage.d.ts +0 -1
  201. package/components/FileInput/isImage.js +0 -10
  202. package/components/FileInput/isVideo.d.ts +0 -1
  203. package/components/FileInput/isVideo.js +0 -10
  204. package/components/FileSelect/FileSelect.d.ts +0 -31
  205. package/components/FileSelect/FileSelect.jsx +0 -146
  206. package/components/FileSelect/index.d.ts +0 -3
  207. package/components/FileSelect/index.jsx +0 -3
  208. package/components/Footer/Footer.d.ts +0 -19
  209. package/components/Footer/Footer.jsx +0 -30
  210. package/components/Footer/index.d.ts +0 -3
  211. package/components/Footer/index.jsx +0 -3
  212. package/components/GridPattern/GridPattern.d.ts +0 -2
  213. package/components/GridPattern/GridPattern.jsx +0 -12
  214. package/components/GridPattern/index.d.ts +0 -3
  215. package/components/GridPattern/index.jsx +0 -3
  216. package/components/Group/Group.d.ts +0 -5
  217. package/components/Group/Group.jsx +0 -6
  218. package/components/Group/index.d.ts +0 -3
  219. package/components/Group/index.jsx +0 -3
  220. package/components/Header/Header.d.ts +0 -5
  221. package/components/Header/Header.jsx +0 -19
  222. package/components/Header/index.d.ts +0 -3
  223. package/components/Header/index.jsx +0 -3
  224. package/components/ImageInput/ImageInput.d.ts +0 -4
  225. package/components/ImageInput/ImageInput.jsx +0 -8
  226. package/components/ImageInput/index.d.ts +0 -3
  227. package/components/ImageInput/index.jsx +0 -3
  228. package/components/Input/Input.d.ts +0 -14
  229. package/components/Input/Input.jsx +0 -57
  230. package/components/Input/InputIcon.d.ts +0 -9
  231. package/components/Input/InputIcon.jsx +0 -7
  232. package/components/Input/MultiSelectInput.d.ts +0 -16
  233. package/components/Input/MultiSelectInput.jsx +0 -48
  234. package/components/Input/NumericInput.d.ts +0 -6
  235. package/components/Input/NumericInput.jsx +0 -6
  236. package/components/Input/PatternInput.d.ts +0 -6
  237. package/components/Input/PatternInput.jsx +0 -6
  238. package/components/Input/SelectInput.d.ts +0 -12
  239. package/components/Input/SelectInput.jsx +0 -25
  240. package/components/Input/UnstyledInput.d.ts +0 -22
  241. package/components/Input/UnstyledInput.jsx +0 -28
  242. package/components/Input/index.d.ts +0 -6
  243. package/components/Input/index.jsx +0 -6
  244. package/components/Input/useInputRefValue.d.ts +0 -11
  245. package/components/Input/useInputRefValue.jsx +0 -51
  246. package/components/Input2/InputWrapper.d.ts +0 -11
  247. package/components/Input2/InputWrapper.jsx +0 -11
  248. package/components/Link/Link.d.ts +0 -3
  249. package/components/Link/Link.jsx +0 -9
  250. package/components/Link/index.d.ts +0 -3
  251. package/components/Link/index.jsx +0 -3
  252. package/components/Loading/Loading.d.ts +0 -5
  253. package/components/Loading/Loading.jsx +0 -15
  254. package/components/Loading/index.d.ts +0 -3
  255. package/components/Loading/index.jsx +0 -3
  256. package/components/Magnet/Magnet.d.ts +0 -13
  257. package/components/Magnet/Magnet.jsx +0 -50
  258. package/components/Magnet/index.d.ts +0 -3
  259. package/components/Magnet/index.jsx +0 -3
  260. package/components/Markdown/Markdown.d.ts +0 -8
  261. package/components/Markdown/Markdown.jsx +0 -11
  262. package/components/Markdown/index.d.ts +0 -3
  263. package/components/Markdown/index.jsx +0 -3
  264. package/components/Menu/Menu.d.ts +0 -28
  265. package/components/Menu/Menu.jsx +0 -54
  266. package/components/Modal/Modal.d.ts +0 -45
  267. package/components/Modal/Modal.jsx +0 -65
  268. package/components/Modal/index.d.ts +0 -4
  269. package/components/Modal/index.jsx +0 -4
  270. package/components/Modal/useModalState.d.ts +0 -6
  271. package/components/Modal/useModalState.js +0 -16
  272. package/components/ModeToggle/ModeToggle.d.ts +0 -9
  273. package/components/ModeToggle/ModeToggle.jsx +0 -12
  274. package/components/ModeToggle/index.d.ts +0 -4
  275. package/components/ModeToggle/index.jsx +0 -5
  276. package/components/ModeToggle/useModeToggle.d.ts +0 -1
  277. package/components/ModeToggle/useModeToggle.js +0 -21
  278. package/components/MultiSelect/MultiSelect.d.ts +0 -28
  279. package/components/MultiSelect/MultiSelect.jsx +0 -116
  280. package/components/MultiSelect/MultiSelectInput.d.ts +0 -12
  281. package/components/MultiSelect/MultiSelectInput.jsx +0 -27
  282. package/components/MultiSelect/index.d.ts +0 -5
  283. package/components/MultiSelect/index.jsx +0 -5
  284. package/components/MultiText/MultiText.d.ts +0 -23
  285. package/components/MultiText/MultiText.jsx +0 -118
  286. package/components/MultiText/index.d.ts +0 -3
  287. package/components/MultiText/index.jsx +0 -3
  288. package/components/NavigationDrawer/NavigationDrawer.d.ts +0 -9
  289. package/components/NavigationDrawer/NavigationDrawer.jsx +0 -29
  290. package/components/NavigationDrawer/NavigationItem.d.ts +0 -13
  291. package/components/NavigationDrawer/NavigationItem.jsx +0 -24
  292. package/components/NavigationDrawer/index.d.ts +0 -6
  293. package/components/NavigationDrawer/index.jsx +0 -6
  294. package/components/NavigationDrawer/navigationDrawer.state.d.ts +0 -9
  295. package/components/NavigationDrawer/navigationDrawer.state.js +0 -19
  296. package/components/NoSsr/NoSsr.d.ts +0 -4
  297. package/components/NoSsr/NoSsr.jsx +0 -8
  298. package/components/NoSsr/index.d.ts +0 -3
  299. package/components/NoSsr/index.jsx +0 -3
  300. package/components/Noise/Noise.d.ts +0 -11
  301. package/components/Noise/Noise.jsx +0 -69
  302. package/components/Noise/index.d.ts +0 -3
  303. package/components/Noise/index.jsx +0 -3
  304. package/components/Notifications/Notifications.d.ts +0 -3
  305. package/components/Notifications/Notifications.jsx +0 -60
  306. package/components/Notifications/index.d.ts +0 -5
  307. package/components/Notifications/index.jsx +0 -6
  308. package/components/Notifications/notifications.state.d.ts +0 -24
  309. package/components/Notifications/notifications.state.js +0 -41
  310. package/components/Orb/Orb.d.ts +0 -8
  311. package/components/Orb/Orb.jsx +0 -258
  312. package/components/Orb/index.d.ts +0 -3
  313. package/components/Orb/index.jsx +0 -3
  314. package/components/Pagination/Pagination.d.ts +0 -13
  315. package/components/Pagination/Pagination.jsx +0 -64
  316. package/components/Pagination/index.d.ts +0 -3
  317. package/components/Pagination/index.jsx +0 -3
  318. package/components/Particles/Particles.d.ts +0 -18
  319. package/components/Particles/Particles.jsx +0 -205
  320. package/components/Particles/index.d.ts +0 -3
  321. package/components/Particles/index.jsx +0 -3
  322. package/components/PictureCropInput/PictureCropInput.d.ts +0 -20
  323. package/components/PictureCropInput/PictureCropInput.jsx +0 -174
  324. package/components/PictureCropInput/canvasPreview.d.ts +0 -2
  325. package/components/PictureCropInput/canvasPreview.js +0 -37
  326. package/components/PictureCropInput/index.d.ts +0 -3
  327. package/components/PictureCropInput/index.js +0 -3
  328. package/components/Popover/Popover.d.ts +0 -13
  329. package/components/Popover/Popover.jsx +0 -22
  330. package/components/Popover/index.d.ts +0 -3
  331. package/components/Popover/index.jsx +0 -3
  332. package/components/Resizable/Resizable.d.ts +0 -12
  333. package/components/Resizable/Resizable.jsx +0 -54
  334. package/components/Resizable/index.d.ts +0 -3
  335. package/components/Resizable/index.jsx +0 -3
  336. package/components/ScrollArea/ScrollArea.d.ts +0 -9
  337. package/components/ScrollArea/ScrollArea.jsx +0 -16
  338. package/components/ScrollArea/index.d.ts +0 -3
  339. package/components/ScrollArea/index.jsx +0 -3
  340. package/components/Select/Select.d.ts +0 -25
  341. package/components/Select/Select.jsx +0 -55
  342. package/components/Select/index.d.ts +0 -3
  343. package/components/Select/index.jsx +0 -3
  344. package/components/Skeleton/Skeleton.d.ts +0 -2
  345. package/components/Skeleton/Skeleton.jsx +0 -8
  346. package/components/Skeleton/index.d.ts +0 -3
  347. package/components/Skeleton/index.jsx +0 -3
  348. package/components/Slider/Slider.d.ts +0 -10
  349. package/components/Slider/Slider.jsx +0 -21
  350. package/components/Slider/index.d.ts +0 -3
  351. package/components/Slider/index.jsx +0 -3
  352. package/components/Spotlight/Spotlight.d.ts +0 -30
  353. package/components/Spotlight/Spotlight.jsx +0 -86
  354. package/components/Spotlight/index.d.ts +0 -3
  355. package/components/Spotlight/index.jsx +0 -3
  356. package/components/SpotlightCard/SpotlightCard.d.ts +0 -7
  357. package/components/SpotlightCard/SpotlightCard.jsx +0 -35
  358. package/components/SpotlightCard/index.d.ts +0 -3
  359. package/components/SpotlightCard/index.jsx +0 -3
  360. package/components/Stack/Stack.d.ts +0 -4
  361. package/components/Stack/Stack.jsx +0 -5
  362. package/components/Stack/index.d.ts +0 -3
  363. package/components/Stack/index.jsx +0 -3
  364. package/components/StarBorder/StarBorder.d.ts +0 -10
  365. package/components/StarBorder/StarBorder.jsx +0 -19
  366. package/components/StarBorder/index.d.ts +0 -3
  367. package/components/StarBorder/index.jsx +0 -3
  368. package/components/Switch/Switch.d.ts +0 -16
  369. package/components/Switch/Switch.jsx +0 -24
  370. package/components/Switch/index.d.ts +0 -3
  371. package/components/Switch/index.jsx +0 -3
  372. package/components/Table/DataTable.d.ts +0 -57
  373. package/components/Table/DataTable.jsx +0 -155
  374. package/components/Table/Table.d.ts +0 -27
  375. package/components/Table/Table.jsx +0 -31
  376. package/components/Table/TableActionButton.d.ts +0 -6
  377. package/components/Table/TableActionButton.jsx +0 -20
  378. package/components/Table/TableBody.d.ts +0 -6
  379. package/components/Table/TableBody.jsx +0 -10
  380. package/components/Table/TableCell.d.ts +0 -9
  381. package/components/Table/TableCell.jsx +0 -18
  382. package/components/Table/TableFooter.d.ts +0 -5
  383. package/components/Table/TableFooter.jsx +0 -5
  384. package/components/Table/TableFooterWithPagination.d.ts +0 -13
  385. package/components/Table/TableFooterWithPagination.jsx +0 -57
  386. package/components/Table/TableHead.d.ts +0 -5
  387. package/components/Table/TableHead.jsx +0 -9
  388. package/components/Table/TableHeadContext.d.ts +0 -4
  389. package/components/Table/TableHeadContext.jsx +0 -3
  390. package/components/Table/TableHeader.d.ts +0 -7
  391. package/components/Table/TableHeader.jsx +0 -15
  392. package/components/Table/TableRow.d.ts +0 -8
  393. package/components/Table/TableRow.jsx +0 -9
  394. package/components/Table/index.d.ts +0 -3
  395. package/components/Table/index.jsx +0 -3
  396. package/components/Tabs/Tabs.d.ts +0 -9
  397. package/components/Tabs/Tabs.jsx +0 -13
  398. package/components/Tabs/index.d.ts +0 -3
  399. package/components/Tabs/index.jsx +0 -3
  400. package/components/TabsSwitcher/Tab.d.ts +0 -15
  401. package/components/TabsSwitcher/Tab.jsx +0 -18
  402. package/components/TabsSwitcher/TabsSwitcher.d.ts +0 -22
  403. package/components/TabsSwitcher/TabsSwitcher.jsx +0 -31
  404. package/components/TabsSwitcher/index.d.ts +0 -4
  405. package/components/TabsSwitcher/index.jsx +0 -4
  406. package/components/Text/Text.d.ts +0 -24
  407. package/components/Text/Text.jsx +0 -29
  408. package/components/Text/index.d.ts +0 -3
  409. package/components/Text/index.jsx +0 -3
  410. package/components/Textarea/Textarea.d.ts +0 -5
  411. package/components/Textarea/Textarea.jsx +0 -6
  412. package/components/Textarea/index.d.ts +0 -3
  413. package/components/Textarea/index.js +0 -3
  414. package/components/Threads/Threads.d.ts +0 -9
  415. package/components/Threads/Threads.jsx +0 -203
  416. package/components/Threads/index.d.ts +0 -3
  417. package/components/Threads/index.jsx +0 -3
  418. package/components/Tooltip/Tooltip.d.ts +0 -11
  419. package/components/Tooltip/Tooltip.jsx +0 -21
  420. package/components/Tooltip/index.d.ts +0 -3
  421. package/components/Tooltip/index.jsx +0 -3
  422. package/components/VisibilityActivatedButton/VisibilityActivatedButton.d.ts +0 -7
  423. package/components/VisibilityActivatedButton/VisibilityActivatedButton.jsx +0 -18
  424. package/components/VisibilityActivatedButton/index.d.ts +0 -3
  425. package/components/VisibilityActivatedButton/index.jsx +0 -3
  426. package/form.d.ts +0 -82
  427. package/form.js +0 -113
  428. package/form2.d.ts +0 -15
  429. package/form2.jsx +0 -30
  430. package/hooks/useBeforeUnload.d.ts +0 -1
  431. package/hooks/useBeforeUnload.js +0 -17
  432. package/hooks/useDebounceEffect.d.ts +0 -2
  433. package/hooks/useDebounceEffect.js +0 -14
  434. package/hooks/useDebouncedValue.d.ts +0 -2
  435. package/hooks/useDebouncedValue.js +0 -14
  436. package/hooks/useLagRadar.d.ts +0 -1
  437. package/hooks/useLagRadar.jsx +0 -124
  438. package/hooks/useMediaQuery.d.ts +0 -1
  439. package/hooks/useMediaQuery.js +0 -37
  440. package/hooks/useMutationWindowCloseProtection.d.ts +0 -2
  441. package/hooks/useMutationWindowCloseProtection.js +0 -13
  442. package/hooks/useScroll.d.ts +0 -3
  443. package/hooks/useScroll.js +0 -47
  444. package/hooks/useTranslation.d.ts +0 -4
  445. package/hooks/useTranslation.js +0 -11
  446. package/hooks/useWhyDidYouUpdate.d.ts +0 -3
  447. package/hooks/useWhyDidYouUpdate.js +0 -44
  448. package/imgur.d.ts +0 -1
  449. package/imgur.js +0 -13
  450. package/styles/DayPicker.classNames.d.ts +0 -29
  451. package/styles/DayPicker.classNames.js +0 -30
  452. package/styles/DayPicker.classNames.ts +0 -81
  453. package/styles/Dropdown.classNames.d.ts +0 -6
  454. package/styles/Dropdown.classNames.js +0 -7
  455. package/styles/Dropdown.classNames.ts +0 -38
  456. package/styles/Input.css +0 -23
  457. package/styles/Modal.classNames.d.ts +0 -2
  458. package/styles/Modal.classNames.js +0 -3
  459. package/styles/Modal.classNames.ts +0 -15
  460. package/styles/MultiText.css +0 -40
  461. package/styles/Pagination.css +0 -19
  462. package/styles/Tabs.css +0 -23
  463. package/tsconfig.tsbuildinfo +0 -1
  464. package/types.d.ts +0 -6
  465. package/types.js +0 -1
  466. package/utils/UseState.d.ts +0 -2
  467. package/utils/UseState.js +0 -1
  468. package/utils/blobToText.d.ts +0 -1
  469. package/utils/blobToText.js +0 -13
  470. package/utils/capitalize.d.ts +0 -1
  471. package/utils/capitalize.js +0 -6
  472. package/utils/clsx.d.ts +0 -2
  473. package/utils/clsx.js +0 -5
  474. package/utils/copy2DToClipboard.d.ts +0 -1
  475. package/utils/copy2DToClipboard.js +0 -44
  476. package/utils/cpfCpnjUtils.d.ts +0 -3
  477. package/utils/cpfCpnjUtils.js +0 -43
  478. package/utils/createLocalStorageStateHydration.d.ts +0 -1
  479. package/utils/createLocalStorageStateHydration.js +0 -18
  480. package/utils/createStateHydration.d.ts +0 -3
  481. package/utils/createStateHydration.js +0 -49
  482. package/utils/csvBlobToJson.d.ts +0 -2
  483. package/utils/csvBlobToJson.js +0 -59
  484. package/utils/downloadArrayAsCSV.d.ts +0 -1
  485. package/utils/downloadArrayAsCSV.js +0 -34
  486. package/utils/emailRegExp.d.ts +0 -2
  487. package/utils/emailRegExp.js +0 -2
  488. package/utils/fakeArray.d.ts +0 -1
  489. package/utils/fakeArray.js +0 -3
  490. package/utils/filterBoolean.d.ts +0 -1
  491. package/utils/filterBoolean.js +0 -3
  492. package/utils/formatClock.d.ts +0 -1
  493. package/utils/formatClock.js +0 -21
  494. package/utils/getInitials.d.ts +0 -4
  495. package/utils/getInitials.js +0 -22
  496. package/utils/isBrowser.d.ts +0 -12
  497. package/utils/isBrowser.js +0 -26
  498. package/utils/ms.d.ts +0 -6
  499. package/utils/ms.js +0 -31
  500. package/utils/preventDefault.d.ts +0 -2
  501. package/utils/preventDefault.js +0 -3
  502. package/utils/recursiveChildrenMap.d.ts +0 -2
  503. package/utils/recursiveChildrenMap.js +0 -16
  504. package/utils/setSelectionRange.d.ts +0 -1
  505. package/utils/setSelectionRange.js +0 -55
  506. package/utils/smoothScrollToHref.d.ts +0 -2
  507. package/utils/smoothScrollToHref.js +0 -14
  508. package/utils/stopPropagation.d.ts +0 -2
  509. package/utils/stopPropagation.js +0 -3
  510. package/utils/stripHtml.d.ts +0 -1
  511. package/utils/stripHtml.js +0 -4
  512. package/utils/stripLineBreak.d.ts +0 -1
  513. package/utils/stripLineBreak.js +0 -4
  514. package/utils/stripMarkdown.d.ts +0 -1
  515. package/utils/stripMarkdown.js +0 -28
  516. package/utils/xlsxBlobToJson.d.ts +0 -2
  517. package/utils/xlsxBlobToJson.js +0 -62
@@ -1,3 +0,0 @@
1
- import Pagination from "./Pagination";
2
- export * from "./Pagination";
3
- export default Pagination;
@@ -1,3 +0,0 @@
1
- import Pagination from "./Pagination";
2
- export * from "./Pagination";
3
- export default Pagination;
@@ -1,18 +0,0 @@
1
- import React from "react";
2
- interface ParticlesProps {
3
- particleCount?: number;
4
- particleSpread?: number;
5
- speed?: number;
6
- particleColors?: string[];
7
- moveParticlesOnHover?: boolean;
8
- particleHoverFactor?: number;
9
- alphaParticles?: boolean;
10
- particleBaseSize?: number;
11
- sizeRandomness?: number;
12
- cameraDistance?: number;
13
- disableRotation?: boolean;
14
- className?: string;
15
- useWindowMouseMove?: boolean;
16
- }
17
- declare const Particles: React.FC<ParticlesProps>;
18
- export default Particles;
@@ -1,205 +0,0 @@
1
- import React, { useEffect, useRef } from "react";
2
- import { Camera, Geometry, Mesh, Program, Renderer } from "ogl";
3
- const defaultColors = ["#ffffff", "#ffffff", "#ffffff"];
4
- const hexToRgb = (hex) => {
5
- hex = hex.replace(/^#/, "");
6
- if (hex.length === 3) {
7
- hex = hex
8
- .split("")
9
- .map((c) => c + c)
10
- .join("");
11
- }
12
- const int = parseInt(hex, 16);
13
- const r = ((int >> 16) & 255) / 255;
14
- const g = ((int >> 8) & 255) / 255;
15
- const b = (int & 255) / 255;
16
- return [r, g, b];
17
- };
18
- const vertex = /* glsl */ `
19
- attribute vec3 position;
20
- attribute vec4 random;
21
- attribute vec3 color;
22
-
23
- uniform mat4 modelMatrix;
24
- uniform mat4 viewMatrix;
25
- uniform mat4 projectionMatrix;
26
- uniform float uTime;
27
- uniform float uSpread;
28
- uniform float uBaseSize;
29
- uniform float uSizeRandomness;
30
-
31
- varying vec4 vRandom;
32
- varying vec3 vColor;
33
-
34
- void main() {
35
- vRandom = random;
36
- vColor = color;
37
-
38
- vec3 pos = position * uSpread;
39
- pos.z *= 10.0;
40
-
41
- vec4 mPos = modelMatrix * vec4(pos, 1.0);
42
- float t = uTime;
43
- mPos.x += sin(t * random.z + 6.28 * random.w) * mix(0.1, 1.5, random.x);
44
- mPos.y += sin(t * random.y + 6.28 * random.x) * mix(0.1, 1.5, random.w);
45
- mPos.z += sin(t * random.w + 6.28 * random.y) * mix(0.1, 1.5, random.z);
46
-
47
- vec4 mvPos = viewMatrix * mPos;
48
- gl_PointSize = (uBaseSize * (1.0 + uSizeRandomness * (random.x - 0.5))) / length(mvPos.xyz);
49
- gl_Position = projectionMatrix * mvPos;
50
- }
51
- `;
52
- const fragment = /* glsl */ `
53
- precision highp float;
54
-
55
- uniform float uTime;
56
- uniform float uAlphaParticles;
57
- varying vec4 vRandom;
58
- varying vec3 vColor;
59
-
60
- void main() {
61
- vec2 uv = gl_PointCoord.xy;
62
- float d = length(uv - vec2(0.5));
63
-
64
- if(uAlphaParticles < 0.5) {
65
- if(d > 0.5) {
66
- discard;
67
- }
68
- gl_FragColor = vec4(vColor + 0.2 * sin(uv.yxx + uTime + vRandom.y * 6.28), 1.0);
69
- } else {
70
- float circle = smoothstep(0.5, 0.4, d) * 0.8;
71
- gl_FragColor = vec4(vColor + 0.2 * sin(uv.yxx + uTime + vRandom.y * 6.28), circle);
72
- }
73
- }
74
- `;
75
- const Particles = ({ particleCount = 200, particleSpread = 10, speed = 0.1, particleColors, moveParticlesOnHover = false, particleHoverFactor = 1, alphaParticles = false, particleBaseSize = 100, sizeRandomness = 1, cameraDistance = 20, disableRotation = false, className, useWindowMouseMove = false, }) => {
76
- const containerRef = useRef(null);
77
- const mouseRef = useRef({ x: 0, y: 0 });
78
- useEffect(() => {
79
- const container = containerRef.current;
80
- if (!container)
81
- return;
82
- const renderer = new Renderer({ depth: false, alpha: true });
83
- const gl = renderer.gl;
84
- container.appendChild(gl.canvas);
85
- gl.clearColor(0, 0, 0, 0);
86
- const camera = new Camera(gl, { fov: 15 });
87
- camera.position.set(0, 0, cameraDistance);
88
- const resize = () => {
89
- const width = container.clientWidth;
90
- const height = container.clientHeight;
91
- renderer.setSize(width, height);
92
- camera.perspective({ aspect: gl.canvas.width / gl.canvas.height });
93
- };
94
- window.addEventListener("resize", resize, false);
95
- resize();
96
- const handleMouseMove = (e) => {
97
- const rect = container.getBoundingClientRect();
98
- const x = ((e.clientX - rect.left) / rect.width) * 2 - 1;
99
- const y = -(((e.clientY - rect.top) / rect.height) * 2 - 1);
100
- mouseRef.current = { x, y };
101
- };
102
- if (moveParticlesOnHover) {
103
- if (useWindowMouseMove) {
104
- window.addEventListener("mousemove", handleMouseMove);
105
- }
106
- else {
107
- container.addEventListener("mousemove", handleMouseMove);
108
- }
109
- }
110
- const count = particleCount;
111
- const positions = new Float32Array(count * 3);
112
- const randoms = new Float32Array(count * 4);
113
- const colors = new Float32Array(count * 3);
114
- const palette = particleColors && particleColors.length > 0
115
- ? particleColors
116
- : defaultColors;
117
- for (let i = 0; i < count; i++) {
118
- let x, y, z, len;
119
- do {
120
- x = Math.random() * 2 - 1;
121
- y = Math.random() * 2 - 1;
122
- z = Math.random() * 2 - 1;
123
- len = x * x + y * y + z * z;
124
- } while (len > 1 || len === 0);
125
- const r = Math.cbrt(Math.random());
126
- positions.set([x * r, y * r, z * r], i * 3);
127
- randoms.set([Math.random(), Math.random(), Math.random(), Math.random()], i * 4);
128
- const col = hexToRgb(palette[Math.floor(Math.random() * palette.length)]);
129
- colors.set(col, i * 3);
130
- }
131
- const geometry = new Geometry(gl, {
132
- position: { size: 3, data: positions },
133
- random: { size: 4, data: randoms },
134
- color: { size: 3, data: colors },
135
- });
136
- const program = new Program(gl, {
137
- vertex,
138
- fragment,
139
- uniforms: {
140
- uTime: { value: 0 },
141
- uSpread: { value: particleSpread },
142
- uBaseSize: { value: particleBaseSize },
143
- uSizeRandomness: { value: sizeRandomness },
144
- uAlphaParticles: { value: alphaParticles ? 1 : 0 },
145
- },
146
- transparent: true,
147
- depthTest: false,
148
- });
149
- const particles = new Mesh(gl, { mode: gl.POINTS, geometry, program });
150
- let animationFrameId;
151
- let lastTime = performance.now();
152
- let elapsed = 0;
153
- const update = (t) => {
154
- animationFrameId = requestAnimationFrame(update);
155
- const delta = t - lastTime;
156
- lastTime = t;
157
- elapsed += delta * speed;
158
- program.uniforms.uTime.value = elapsed * 0.001;
159
- if (moveParticlesOnHover) {
160
- particles.position.x = -mouseRef.current.x * particleHoverFactor;
161
- particles.position.y = -mouseRef.current.y * particleHoverFactor;
162
- }
163
- else {
164
- particles.position.x = 0;
165
- particles.position.y = 0;
166
- }
167
- if (!disableRotation) {
168
- particles.rotation.x = Math.sin(elapsed * 0.0002) * 0.1;
169
- particles.rotation.y = Math.cos(elapsed * 0.0005) * 0.15;
170
- particles.rotation.z += 0.01 * speed;
171
- }
172
- renderer.render({ scene: particles, camera });
173
- };
174
- animationFrameId = requestAnimationFrame(update);
175
- return () => {
176
- window.removeEventListener("resize", resize);
177
- if (moveParticlesOnHover) {
178
- if (useWindowMouseMove) {
179
- window.removeEventListener("mousemove", handleMouseMove);
180
- }
181
- else {
182
- container.removeEventListener("mousemove", handleMouseMove);
183
- }
184
- }
185
- cancelAnimationFrame(animationFrameId);
186
- if (container.contains(gl.canvas)) {
187
- container.removeChild(gl.canvas);
188
- }
189
- };
190
- // eslint-disable-next-line react-hooks/exhaustive-deps
191
- }, [
192
- particleCount,
193
- particleSpread,
194
- speed,
195
- moveParticlesOnHover,
196
- particleHoverFactor,
197
- alphaParticles,
198
- particleBaseSize,
199
- sizeRandomness,
200
- cameraDistance,
201
- disableRotation,
202
- ]);
203
- return (<div ref={containerRef} className={`relative h-full w-full ${className}`}/>);
204
- };
205
- export default Particles;
@@ -1,3 +0,0 @@
1
- import Particles from "./Particles";
2
- export * from "./Particles";
3
- export default Particles;
@@ -1,3 +0,0 @@
1
- import Particles from "./Particles";
2
- export * from "./Particles";
3
- export default Particles;
@@ -1,20 +0,0 @@
1
- import { type RefObject } from "react";
2
- import { type PixelCrop } from "react-image-crop";
3
- export type PictureCropInputRef = {
4
- handleCrop: () => Promise<void>;
5
- completedCrop: PixelCrop | undefined;
6
- };
7
- export default function PictureCropInput({ value, onChange, loading, className, previewSizeClassNames, previewContainerClassName, cropButtonClassName, aspect, minWidth, minHeight, ref, label, }: {
8
- value?: string;
9
- onChange: (value?: string) => void;
10
- loading?: boolean;
11
- className?: string;
12
- previewSizeClassNames?: string;
13
- previewContainerClassName?: string;
14
- cropButtonClassName?: string;
15
- aspect?: number;
16
- minWidth?: number;
17
- minHeight?: number;
18
- ref?: RefObject<PictureCropInputRef | null>;
19
- label?: string;
20
- }): import("react").JSX.Element;
@@ -1,174 +0,0 @@
1
- import { CheckIcon, TrashIcon } from "@heroicons/react/20/solid";
2
- import { PhotoIcon } from "@heroicons/react/24/outline";
3
- import clsx from "clsx";
4
- import { useCallback, useEffect, useId, useRef, useState, } from "react";
5
- import ReactCrop, {} from "react-image-crop";
6
- import { useLatest } from "react-use";
7
- import useDebounceEffect from "../../hooks/useDebounceEffect";
8
- import Button from "../Button";
9
- import { defaultLabelClassName } from "../Input";
10
- import Skeleton from "../Skeleton";
11
- import Tooltip from "../Tooltip";
12
- import { canvasPreview } from "./canvasPreview";
13
- export default function PictureCropInput({ value, onChange, loading, className, previewSizeClassNames = "size-52", previewContainerClassName, cropButtonClassName, aspect, minWidth, minHeight, ref, label, }) {
14
- const id = useId();
15
- const [src, setSrc] = useState();
16
- const [crop, setCrop] = useState();
17
- const cropRef = useLatest(crop);
18
- const [completedCrop, setCompletedCrop] = useState();
19
- const completedCropRef = useLatest(completedCrop);
20
- const previewCanvasRef = useRef(null);
21
- const imgRef = useRef(null);
22
- const parentRef = useRef(null);
23
- const autoCrop = useCallback(() => {
24
- const smallestSide = Math.min(imgRef.current?.getBoundingClientRect().width || 0, imgRef.current?.getBoundingClientRect().height || 0);
25
- setCrop({
26
- unit: "px",
27
- x: 0,
28
- y: 0,
29
- width: smallestSide,
30
- height: smallestSide,
31
- });
32
- }, []);
33
- const onFileSelect = useCallback(async (event) => {
34
- const file = event.target.files?.[0];
35
- if (file) {
36
- setSrc(URL.createObjectURL(file));
37
- setTimeout(() => {
38
- autoCrop();
39
- }, 100);
40
- }
41
- }, [autoCrop]);
42
- useEffect(() => {
43
- const resizeObserver = new ResizeObserver(() => {
44
- if (cropRef.current) {
45
- autoCrop();
46
- }
47
- });
48
- const el = parentRef.current;
49
- if (el) {
50
- resizeObserver.observe(el);
51
- }
52
- return () => {
53
- if (el) {
54
- resizeObserver.unobserve(el);
55
- }
56
- };
57
- // eslint-disable-next-line react-hooks/exhaustive-deps
58
- }, []);
59
- useDebounceEffect(async () => {
60
- if (completedCrop?.width &&
61
- completedCrop?.height &&
62
- imgRef.current &&
63
- previewCanvasRef.current) {
64
- // We use canvasPreview as it's much faster than imgPreview.
65
- await canvasPreview(imgRef.current, previewCanvasRef.current, completedCrop);
66
- }
67
- }, 100, [completedCrop]);
68
- const cropToBlobUrl = useCallback(async () => {
69
- const image = imgRef.current;
70
- const previewCanvas = previewCanvasRef.current;
71
- if (!image || !previewCanvas || !completedCrop) {
72
- throw new Error("Crop canvas does not exist");
73
- }
74
- // This will size relative to the uploaded image
75
- // size. If you want to size according to what they
76
- // are looking at on screen, remove scaleX + scaleY
77
- const scaleX = image.naturalWidth / image.width;
78
- const scaleY = image.naturalHeight / image.height;
79
- const offscreen = new OffscreenCanvas(completedCrop.width * scaleX, completedCrop.height * scaleY);
80
- const ctx = offscreen.getContext("2d");
81
- if (!ctx) {
82
- throw new Error("No 2d context");
83
- }
84
- ctx.drawImage(previewCanvas, 0, 0, previewCanvas.width, previewCanvas.height, 0, 0, offscreen.width, offscreen.height);
85
- // You might want { type: "image/jpeg", quality: <0 to 1> } to
86
- // reduce image size
87
- const blob = await offscreen.convertToBlob({
88
- type: "image/png",
89
- });
90
- return URL.createObjectURL(blob);
91
- }, [completedCrop]);
92
- const handleClear = useCallback(() => {
93
- setCrop(undefined);
94
- setSrc(undefined);
95
- setCompletedCrop(undefined);
96
- onChange(undefined);
97
- }, [onChange]);
98
- const handleCrop = useCallback(async () => {
99
- try {
100
- onChange(await cropToBlobUrl());
101
- }
102
- catch (e) {
103
- console.error(e);
104
- }
105
- setCrop(undefined);
106
- setSrc(undefined);
107
- setCompletedCrop(undefined);
108
- }, [cropToBlobUrl, onChange]);
109
- useEffect(() => {
110
- if (ref) {
111
- ref.current = {
112
- handleCrop,
113
- completedCrop,
114
- };
115
- }
116
- }, [completedCrop, completedCropRef, handleCrop, ref]);
117
- return (<div ref={parentRef} className={className}>
118
- {label && (<label htmlFor={id} className={defaultLabelClassName}>
119
- {label}
120
- </label>)}
121
- <div className="flex items-start gap-2">
122
- {loading && <Skeleton className={previewSizeClassNames}/>}
123
- {src && (<>
124
- <ReactCrop crop={crop} onChange={(c) => setCrop(c)} onComplete={(c) => setCompletedCrop(c)} aspect={aspect} minWidth={minWidth} minHeight={minHeight} className="max-h-96 max-w-96" keepSelection>
125
- {/* eslint-disable-next-line @next/next/no-img-element */}
126
- <img alt="Picture" src={src}
127
- // className="h-96 w-96 object-contain"
128
- ref={imgRef}/>
129
- </ReactCrop>
130
- {completedCrop && (<div className={clsx("flex flex-col gap-2", previewContainerClassName)}>
131
- <canvas ref={previewCanvasRef} className={previewSizeClassNames} style={{
132
- objectFit: "cover",
133
- }}/>
134
- <div className="flex gap-2">
135
- <Button onClick={handleCrop} className={clsx("w-full", cropButtonClassName)} leading={<CheckIcon />}>
136
- Crop
137
- </Button>
138
- <Tooltip content="Clear">
139
- <Button onClick={handleClear} variant="text" icon>
140
- <TrashIcon />
141
- </Button>
142
- </Tooltip>
143
- </div>
144
- </div>)}
145
- </>)}
146
- {!src && (<>
147
- {value && (<div className={clsx("flex shrink-0 rounded-sm", previewSizeClassNames)} style={{
148
- background: value
149
- ? `center / cover url(${value})`
150
- : undefined,
151
- }}/>)}
152
- <input type="file" id={id} className="hidden" onChange={onFileSelect} accept=".jpg,.jpeg,.png"/>
153
- <Button variant="outlined" className="mb-auto flex items-center gap-3 p-2" onClick={() => document.getElementById(id)?.click()}>
154
- <div className="flex h-12 w-12 items-center justify-center rounded-sm border border-zinc-800 p-3">
155
- <PhotoIcon />
156
- </div>
157
- <div className="flex flex-col items-start gap-1.5">
158
- <div className="text-gray-10 text-sm font-medium">
159
- {value ? "Change" : "Select"} picture
160
- </div>
161
- <div className="text-xs text-zinc-500">
162
- JPG, PNG - Max size 10MB
163
- </div>
164
- </div>
165
- </Button>
166
- {value && (<Tooltip content="Clear">
167
- <Button onClick={handleClear} variant="text" icon className="mb-auto">
168
- <TrashIcon />
169
- </Button>
170
- </Tooltip>)}
171
- </>)}
172
- </div>
173
- </div>);
174
- }
@@ -1,2 +0,0 @@
1
- import type { PixelCrop } from "react-image-crop";
2
- export declare function canvasPreview(image: HTMLImageElement, canvas: HTMLCanvasElement, crop: PixelCrop, scale?: number, rotate?: number): Promise<void>;
@@ -1,37 +0,0 @@
1
- const TO_RADIANS = Math.PI / 180;
2
- export async function canvasPreview(image, canvas, crop, scale = 1, rotate = 0) {
3
- const ctx = canvas.getContext("2d");
4
- if (!ctx) {
5
- throw new Error("No 2d context");
6
- }
7
- const scaleX = image.naturalWidth / image.width;
8
- const scaleY = image.naturalHeight / image.height;
9
- // devicePixelRatio slightly increases sharpness on retina devices
10
- // at the expense of slightly slower render times and needing to
11
- // size the image back down if you want to download/upload and be
12
- // true to the images natural size.
13
- const pixelRatio = window.devicePixelRatio;
14
- // const pixelRatio = 1
15
- canvas.width = Math.floor(crop.width * scaleX * pixelRatio);
16
- canvas.height = Math.floor(crop.height * scaleY * pixelRatio);
17
- ctx.scale(pixelRatio, pixelRatio);
18
- ctx.imageSmoothingQuality = "high";
19
- const cropX = crop.x * scaleX;
20
- const cropY = crop.y * scaleY;
21
- const rotateRads = rotate * TO_RADIANS;
22
- const centerX = image.naturalWidth / 2;
23
- const centerY = image.naturalHeight / 2;
24
- ctx.save();
25
- // 5) Move the crop origin to the canvas origin (0,0)
26
- ctx.translate(-cropX, -cropY);
27
- // 4) Move the origin to the center of the original position
28
- ctx.translate(centerX, centerY);
29
- // 3) Rotate around the origin
30
- ctx.rotate(rotateRads);
31
- // 2) Scale the image
32
- ctx.scale(scale, scale);
33
- // 1) Move the center of the image to the origin (0,0)
34
- ctx.translate(-centerX, -centerY);
35
- ctx.drawImage(image, 0, 0, image.naturalWidth, image.naturalHeight, 0, 0, image.naturalWidth, image.naturalHeight);
36
- ctx.restore();
37
- }
@@ -1,3 +0,0 @@
1
- import PictureCropInput from "./PictureCropInput";
2
- export * from "./PictureCropInput";
3
- export default PictureCropInput;
@@ -1,3 +0,0 @@
1
- import PictureCropInput from "./PictureCropInput";
2
- export * from "./PictureCropInput";
3
- export default PictureCropInput;
@@ -1,13 +0,0 @@
1
- import * as RPopover from "@radix-ui/react-popover";
2
- import React, { type ComponentProps } from "react";
3
- declare function PopoverContent({ className, sideOffset, collisionPadding, children, noArrow, ...props }: ComponentProps<typeof RPopover.Content> & {
4
- noArrow?: boolean;
5
- }): React.JSX.Element;
6
- declare function PopoverArrow({ className, ...props }: ComponentProps<typeof RPopover.Arrow>): React.JSX.Element;
7
- declare const Popover: {
8
- Content: typeof PopoverContent;
9
- Root: React.FC<RPopover.PopoverProps>;
10
- Trigger: React.ForwardRefExoticComponent<RPopover.PopoverTriggerProps & React.RefAttributes<HTMLButtonElement>>;
11
- Arrow: typeof PopoverArrow;
12
- };
13
- export default Popover;
@@ -1,22 +0,0 @@
1
- import * as RPopover from "@radix-ui/react-popover";
2
- import React, {} from "react";
3
- import clsx from "../../utils/clsx";
4
- import { modalArrowClassName, modalContentClassName, } from "../../styles/Modal.classNames";
5
- function PopoverContent({ className, sideOffset = 4, collisionPadding = 8, children, noArrow, ...props }) {
6
- return (<RPopover.Portal>
7
- <RPopover.Content {...props} className={clsx(modalContentClassName, "ui-popover-content", className)} sideOffset={sideOffset} collisionPadding={collisionPadding}>
8
- {children}
9
- {!noArrow && <PopoverArrow />}
10
- </RPopover.Content>
11
- </RPopover.Portal>);
12
- }
13
- function PopoverArrow({ className, ...props }) {
14
- return (<RPopover.Arrow {...props} className={clsx(modalArrowClassName, "ui-popover-arrow", className)}/>);
15
- }
16
- const Popover = {
17
- Content: PopoverContent,
18
- Root: RPopover.Root,
19
- Trigger: RPopover.Trigger,
20
- Arrow: PopoverArrow,
21
- };
22
- export default Popover;
@@ -1,3 +0,0 @@
1
- import Popover from "./Popover";
2
- export * from "./Popover";
3
- export default Popover;
@@ -1,3 +0,0 @@
1
- import Popover from "./Popover";
2
- export * from "./Popover";
3
- export default Popover;
@@ -1,12 +0,0 @@
1
- import React, { type CSSProperties, type ReactElement, type ReactNode } from "react";
2
- export default function Resizable({ children, minWidth, maxWidth, width, onResize, }: {
3
- children: ReactElement;
4
- minWidth?: number;
5
- maxWidth?: number;
6
- width?: number;
7
- onResize: (width?: number) => void;
8
- }): React.ReactElement<{
9
- className?: string;
10
- children?: ReactNode;
11
- style?: CSSProperties;
12
- }, string | React.JSXElementConstructor<any>>;
@@ -1,54 +0,0 @@
1
- import React, { cloneElement, useEffect, useRef, useState, } from "react";
2
- import { useLatest } from "react-use";
3
- import clsx from "clsx";
4
- export default function Resizable({ children, minWidth, maxWidth, width, onResize, }) {
5
- const [internalWidth, setInternalWidth] = useState(width);
6
- const [isResizing, setResizing] = useState(false);
7
- const isResizingRef = useLatest(isResizing);
8
- const initialMouseXPos = useRef(0);
9
- const initialWidth = useRef(0);
10
- useEffect(() => {
11
- onResize(internalWidth);
12
- }, [internalWidth, onResize]);
13
- const onMouseDown = (e) => {
14
- const parent = e.currentTarget?.parentNode;
15
- const rect = parent.getBoundingClientRect();
16
- initialWidth.current = rect.width;
17
- initialMouseXPos.current = e.clientX;
18
- setResizing(true);
19
- };
20
- useEffect(() => {
21
- const onMouseMove = (e) => {
22
- if (isResizingRef.current) {
23
- let newWidth = initialWidth.current - (e.clientX - initialMouseXPos.current);
24
- if (minWidth !== undefined && newWidth < minWidth) {
25
- newWidth = minWidth;
26
- }
27
- if (maxWidth !== undefined && newWidth > maxWidth) {
28
- newWidth = maxWidth;
29
- }
30
- setInternalWidth(newWidth);
31
- }
32
- };
33
- const onMouseUp = () => {
34
- setResizing(false);
35
- };
36
- window.addEventListener("mousemove", onMouseMove);
37
- window.addEventListener("mouseup", onMouseUp);
38
- return () => {
39
- window.removeEventListener("mousemove", onMouseMove);
40
- window.removeEventListener("mouseup", onMouseUp);
41
- };
42
- }, [isResizingRef, maxWidth, minWidth, onResize]);
43
- const child = children;
44
- return cloneElement(child, {
45
- className: clsx("relative", child.props.className),
46
- style: { width: internalWidth },
47
- children: (<>
48
- <div className={clsx("absolute top-0 bottom-0 left-0 z-10 w-1 cursor-e-resize transition-colors select-none hover:bg-zinc-700", {
49
- "bg-zinc-700": isResizing,
50
- })} onMouseDown={onMouseDown}/>
51
- {child.props.children}
52
- </>),
53
- });
54
- }
@@ -1,3 +0,0 @@
1
- import Resizable from "./Resizable";
2
- export * from "./Resizable";
3
- export default Resizable;
@@ -1,3 +0,0 @@
1
- import Resizable from "./Resizable";
2
- export * from "./Resizable";
3
- export default Resizable;
@@ -1,9 +0,0 @@
1
- import type { ReactNode, Ref } from "react";
2
- export default function ScrollArea({ className, children, viewportClassName, ref, viewportRef, type, }: {
3
- children: ReactNode;
4
- className?: string;
5
- viewportClassName?: string;
6
- ref?: Ref<HTMLDivElement>;
7
- viewportRef?: Ref<HTMLDivElement>;
8
- type?: "auto" | "always" | "scroll" | "hover";
9
- }): import("react").JSX.Element;
@@ -1,16 +0,0 @@
1
- import { ScrollArea as RScrollArea } from "radix-ui";
2
- import clsx from "../../utils/clsx";
3
- export default function ScrollArea({ className, children, viewportClassName, ref, viewportRef, type, }) {
4
- return (<RScrollArea.Root className={clsx("overflow-hidden", className)} ref={ref} type={type}>
5
- <RScrollArea.Viewport className={clsx("h-full w-full", viewportClassName)} ref={viewportRef}>
6
- {children}
7
- </RScrollArea.Viewport>
8
- <RScrollArea.Scrollbar className="flex touch-none bg-zinc-700 p-0.5 transition-colors duration-[160ms] ease-out select-none hover:bg-zinc-600 data-[orientation=horizontal]:h-2.5 data-[orientation=horizontal]:flex-col data-[orientation=vertical]:w-2.5" orientation="vertical">
9
- <RScrollArea.Thumb className="relative flex-1 rounded-[10px] bg-zinc-500 before:absolute before:top-1/2 before:left-1/2 before:size-full before:min-h-11 before:min-w-11 before:-translate-x-1/2 before:-translate-y-1/2 hover:bg-zinc-400"/>
10
- </RScrollArea.Scrollbar>
11
- <RScrollArea.Scrollbar className="flex touch-none bg-zinc-700 p-0.5 transition-colors duration-[160ms] ease-out select-none hover:bg-zinc-600 data-[orientation=horizontal]:h-2.5 data-[orientation=horizontal]:flex-col data-[orientation=vertical]:w-2.5" orientation="horizontal">
12
- <RScrollArea.Thumb className="relative flex-1 rounded-[10px] bg-zinc-500 before:absolute before:top-1/2 before:left-1/2 before:size-full before:min-h-[44px] before:min-w-[44px] before:-translate-x-1/2 before:-translate-y-1/2"/>
13
- </RScrollArea.Scrollbar>
14
- <RScrollArea.Corner className="bg-zinc-600"/>
15
- </RScrollArea.Root>);
16
- }
@@ -1,3 +0,0 @@
1
- import ScrollArea from "./ScrollArea";
2
- export * from "./ScrollArea";
3
- export default ScrollArea;
@@ -1,3 +0,0 @@
1
- import ScrollArea from "./ScrollArea";
2
- export * from "./ScrollArea";
3
- export default ScrollArea;