@majapisoftwares/ui 4.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (436) hide show
  1. package/base.css +359 -0
  2. package/bootstrap/AppProps.d.ts +10 -0
  3. package/bootstrap/AppProps.js +1 -0
  4. package/bootstrap/index.d.ts +1 -0
  5. package/bootstrap/index.js +1 -0
  6. package/bootstrap/modeScript.d.ts +2 -0
  7. package/bootstrap/modeScript.js +35 -0
  8. package/bootstrap/nprogress.d.ts +1 -0
  9. package/bootstrap/nprogress.js +19 -0
  10. package/bootstrap/scrolledScript.d.ts +2 -0
  11. package/bootstrap/scrolledScript.js +27 -0
  12. package/bootstrap/setupFocusManager.d.ts +1 -0
  13. package/bootstrap/setupFocusManager.js +13 -0
  14. package/bootstrap/suppressConsoleLog.d.ts +1 -0
  15. package/bootstrap/suppressConsoleLog.js +8 -0
  16. package/components/Accordion/Accordion.d.ts +19 -0
  17. package/components/Accordion/Accordion.jsx +27 -0
  18. package/components/Accordion/index.d.ts +3 -0
  19. package/components/Accordion/index.jsx +3 -0
  20. package/components/Alert/Alert.d.ts +31 -0
  21. package/components/Alert/Alert.jsx +53 -0
  22. package/components/Alert/index.d.ts +3 -0
  23. package/components/Alert/index.jsx +3 -0
  24. package/components/Aurora/Aurora.d.ts +10 -0
  25. package/components/Aurora/Aurora.jsx +189 -0
  26. package/components/Aurora/index.d.ts +3 -0
  27. package/components/Aurora/index.jsx +3 -0
  28. package/components/Autocomplete/Autocomplete.d.ts +7 -0
  29. package/components/Autocomplete/Autocomplete.jsx +23 -0
  30. package/components/Autocomplete/UnstyledAutocomplete.d.ts +36 -0
  31. package/components/Autocomplete/UnstyledAutocomplete.jsx +73 -0
  32. package/components/Autocomplete/index.d.ts +5 -0
  33. package/components/Autocomplete/index.jsx +5 -0
  34. package/components/BackgroundEffects/BottomBlurryPoint.d.ts +3 -0
  35. package/components/BackgroundEffects/BottomBlurryPoint.jsx +14 -0
  36. package/components/BackgroundEffects/TopBlurryPoint.d.ts +3 -0
  37. package/components/BackgroundEffects/TopBlurryPoint.jsx +14 -0
  38. package/components/Badge/Badge.d.ts +42 -0
  39. package/components/Badge/Badge.jsx +50 -0
  40. package/components/Badge/index.d.ts +3 -0
  41. package/components/Badge/index.jsx +3 -0
  42. package/components/Breadcrumbs/Breadcrumbs.d.ts +11 -0
  43. package/components/Breadcrumbs/Breadcrumbs.jsx +42 -0
  44. package/components/Breadcrumbs/index.d.ts +3 -0
  45. package/components/Breadcrumbs/index.jsx +3 -0
  46. package/components/Button/Button.d.ts +111 -0
  47. package/components/Button/Button.jsx +129 -0
  48. package/components/Button/UnstyledButton.d.ts +10 -0
  49. package/components/Button/UnstyledButton.jsx +13 -0
  50. package/components/Button/index.d.ts +3 -0
  51. package/components/Button/index.jsx +3 -0
  52. package/components/Carousel/Carousel.d.ts +19 -0
  53. package/components/Carousel/Carousel.jsx +55 -0
  54. package/components/Carousel/index.d.ts +3 -0
  55. package/components/Carousel/index.jsx +3 -0
  56. package/components/Checkbox/Checkbox.d.ts +14 -0
  57. package/components/Checkbox/Checkbox.jsx +45 -0
  58. package/components/Checkbox/index.d.ts +3 -0
  59. package/components/Checkbox/index.js +3 -0
  60. package/components/Code/Code.d.ts +12 -0
  61. package/components/Code/Code.jsx +25 -0
  62. package/components/Code/Json.d.ts +5 -0
  63. package/components/Code/Json.jsx +7 -0
  64. package/components/Code/index.d.ts +4 -0
  65. package/components/Code/index.jsx +4 -0
  66. package/components/ConfirmationButton/ConfirmationButton.d.ts +17 -0
  67. package/components/ConfirmationButton/ConfirmationButton.jsx +13 -0
  68. package/components/ConfirmationButton/index.d.ts +3 -0
  69. package/components/ConfirmationButton/index.jsx +3 -0
  70. package/components/ContextMenu/ContextMenu.d.ts +28 -0
  71. package/components/ContextMenu/ContextMenu.jsx +70 -0
  72. package/components/ContextMenu/index.d.ts +3 -0
  73. package/components/ContextMenu/index.jsx +3 -0
  74. package/components/CopyButton/CopyButton.d.ts +7 -0
  75. package/components/CopyButton/CopyButton.jsx +29 -0
  76. package/components/CopyButton/index.d.ts +3 -0
  77. package/components/CopyButton/index.jsx +3 -0
  78. package/components/DateInput/DateInput.d.ts +6 -0
  79. package/components/DateInput/DateInput.jsx +19 -0
  80. package/components/DateInput/DateTimeInput.d.ts +3 -0
  81. package/components/DateInput/DateTimeInput.jsx +8 -0
  82. package/components/DateInput/index.d.ts +4 -0
  83. package/components/DateInput/index.jsx +4 -0
  84. package/components/DateInput/useRefValue.d.ts +5 -0
  85. package/components/DateInput/useRefValue.js +48 -0
  86. package/components/DatePicker/DatePicker.d.ts +19 -0
  87. package/components/DatePicker/DatePicker.jsx +55 -0
  88. package/components/DatePicker/index.d.ts +3 -0
  89. package/components/DatePicker/index.jsx +3 -0
  90. package/components/DateRangePicker/DateRangePicker.d.ts +16 -0
  91. package/components/DateRangePicker/DateRangePicker.jsx +56 -0
  92. package/components/DateRangePicker/index.d.ts +3 -0
  93. package/components/DateRangePicker/index.jsx +3 -0
  94. package/components/Dialog/Dialog.d.ts +25 -0
  95. package/components/Dialog/Dialog.jsx +35 -0
  96. package/components/Dialog/Dialogs.d.ts +1 -0
  97. package/components/Dialog/Dialogs.jsx +21 -0
  98. package/components/Dialog/dialogs.state.d.ts +21 -0
  99. package/components/Dialog/dialogs.state.js +40 -0
  100. package/components/Dialog/index.d.ts +6 -0
  101. package/components/Dialog/index.jsx +7 -0
  102. package/components/Drawer/Drawer.d.ts +15 -0
  103. package/components/Drawer/Drawer.jsx +72 -0
  104. package/components/Drawer/index.d.ts +3 -0
  105. package/components/Drawer/index.jsx +3 -0
  106. package/components/DropdownMenu/DropdownMenu.d.ts +33 -0
  107. package/components/DropdownMenu/DropdownMenu.jsx +74 -0
  108. package/components/DropdownMenu/index.d.ts +3 -0
  109. package/components/DropdownMenu/index.jsx +3 -0
  110. package/components/ErrorBoundary/ErrorBoundary.d.ts +18 -0
  111. package/components/ErrorBoundary/ErrorBoundary.jsx +32 -0
  112. package/components/ErrorBoundary/index.d.ts +3 -0
  113. package/components/ErrorBoundary/index.jsx +3 -0
  114. package/components/ErrorPage/Error404Page.d.ts +1 -0
  115. package/components/ErrorPage/Error404Page.jsx +4 -0
  116. package/components/ErrorPage/Error500Page.d.ts +1 -0
  117. package/components/ErrorPage/Error500Page.jsx +4 -0
  118. package/components/ErrorPage/ErrorPage.d.ts +11 -0
  119. package/components/ErrorPage/ErrorPage.jsx +23 -0
  120. package/components/FileInput/FileInput.d.ts +47 -0
  121. package/components/FileInput/FileInput.jsx +144 -0
  122. package/components/FileInput/PreviewFile.d.ts +13 -0
  123. package/components/FileInput/PreviewFile.jsx +55 -0
  124. package/components/FileInput/index.d.ts +3 -0
  125. package/components/FileInput/index.jsx +3 -0
  126. package/components/FileSelect/FileSelect.d.ts +31 -0
  127. package/components/FileSelect/FileSelect.jsx +143 -0
  128. package/components/FileSelect/index.d.ts +3 -0
  129. package/components/FileSelect/index.jsx +3 -0
  130. package/components/Footer/Footer.d.ts +19 -0
  131. package/components/Footer/Footer.jsx +30 -0
  132. package/components/Footer/index.d.ts +3 -0
  133. package/components/Footer/index.jsx +3 -0
  134. package/components/GridPattern/GridPattern.d.ts +2 -0
  135. package/components/GridPattern/GridPattern.jsx +12 -0
  136. package/components/GridPattern/index.d.ts +3 -0
  137. package/components/GridPattern/index.jsx +3 -0
  138. package/components/Group/Group.d.ts +5 -0
  139. package/components/Group/Group.jsx +6 -0
  140. package/components/Group/index.d.ts +3 -0
  141. package/components/Group/index.jsx +3 -0
  142. package/components/Header/Header.d.ts +5 -0
  143. package/components/Header/Header.jsx +19 -0
  144. package/components/Header/index.d.ts +3 -0
  145. package/components/Header/index.jsx +3 -0
  146. package/components/ImageInput/ImageInput.d.ts +4 -0
  147. package/components/ImageInput/ImageInput.jsx +8 -0
  148. package/components/ImageInput/index.d.ts +3 -0
  149. package/components/ImageInput/index.jsx +3 -0
  150. package/components/Input/Input.d.ts +14 -0
  151. package/components/Input/Input.jsx +57 -0
  152. package/components/Input/InputIcon.d.ts +9 -0
  153. package/components/Input/InputIcon.jsx +7 -0
  154. package/components/Input/MultiSelectInput.d.ts +13 -0
  155. package/components/Input/MultiSelectInput.jsx +28 -0
  156. package/components/Input/NumericInput.d.ts +6 -0
  157. package/components/Input/NumericInput.jsx +6 -0
  158. package/components/Input/PatternInput.d.ts +6 -0
  159. package/components/Input/PatternInput.jsx +6 -0
  160. package/components/Input/UnstyledInput.d.ts +22 -0
  161. package/components/Input/UnstyledInput.jsx +28 -0
  162. package/components/Input/index.d.ts +6 -0
  163. package/components/Input/index.jsx +6 -0
  164. package/components/Input2/InputWrapper.d.ts +11 -0
  165. package/components/Input2/InputWrapper.jsx +11 -0
  166. package/components/Link/Link.d.ts +3 -0
  167. package/components/Link/Link.jsx +9 -0
  168. package/components/Link/index.d.ts +3 -0
  169. package/components/Link/index.jsx +3 -0
  170. package/components/Loading/Loading.d.ts +3 -0
  171. package/components/Loading/Loading.jsx +13 -0
  172. package/components/Loading/index.d.ts +3 -0
  173. package/components/Loading/index.jsx +3 -0
  174. package/components/Magnet/Magnet.d.ts +13 -0
  175. package/components/Magnet/Magnet.jsx +50 -0
  176. package/components/Magnet/index.d.ts +3 -0
  177. package/components/Magnet/index.jsx +3 -0
  178. package/components/Markdown/Markdown.d.ts +8 -0
  179. package/components/Markdown/Markdown.jsx +13 -0
  180. package/components/Markdown/index.d.ts +3 -0
  181. package/components/Markdown/index.jsx +3 -0
  182. package/components/Menu/Menu.d.ts +28 -0
  183. package/components/Menu/Menu.jsx +54 -0
  184. package/components/Modal/Modal.d.ts +45 -0
  185. package/components/Modal/Modal.jsx +65 -0
  186. package/components/Modal/index.d.ts +4 -0
  187. package/components/Modal/index.jsx +4 -0
  188. package/components/Modal/useModalState.d.ts +6 -0
  189. package/components/Modal/useModalState.js +16 -0
  190. package/components/ModeToggle/ModeToggle.d.ts +9 -0
  191. package/components/ModeToggle/ModeToggle.jsx +12 -0
  192. package/components/ModeToggle/index.d.ts +4 -0
  193. package/components/ModeToggle/index.jsx +5 -0
  194. package/components/ModeToggle/useModeToggle.d.ts +1 -0
  195. package/components/ModeToggle/useModeToggle.js +21 -0
  196. package/components/MultiSelect/MultiSelect.d.ts +28 -0
  197. package/components/MultiSelect/MultiSelect.jsx +130 -0
  198. package/components/MultiSelect/index.d.ts +3 -0
  199. package/components/MultiSelect/index.jsx +3 -0
  200. package/components/MultiText/MultiText.d.ts +23 -0
  201. package/components/MultiText/MultiText.jsx +119 -0
  202. package/components/MultiText/index.d.ts +3 -0
  203. package/components/MultiText/index.jsx +3 -0
  204. package/components/NavigationDrawer/NavigationDrawer.d.ts +9 -0
  205. package/components/NavigationDrawer/NavigationDrawer.jsx +29 -0
  206. package/components/NavigationDrawer/NavigationItem.d.ts +13 -0
  207. package/components/NavigationDrawer/NavigationItem.jsx +24 -0
  208. package/components/NavigationDrawer/index.d.ts +6 -0
  209. package/components/NavigationDrawer/index.jsx +6 -0
  210. package/components/NavigationDrawer/navigationDrawer.state.d.ts +9 -0
  211. package/components/NavigationDrawer/navigationDrawer.state.js +19 -0
  212. package/components/NoSsr/NoSsr.d.ts +4 -0
  213. package/components/NoSsr/NoSsr.jsx +8 -0
  214. package/components/NoSsr/index.d.ts +3 -0
  215. package/components/NoSsr/index.jsx +3 -0
  216. package/components/Noise/Noise.d.ts +11 -0
  217. package/components/Noise/Noise.jsx +69 -0
  218. package/components/Noise/index.d.ts +3 -0
  219. package/components/Noise/index.jsx +3 -0
  220. package/components/Notifications/Notifications.d.ts +3 -0
  221. package/components/Notifications/Notifications.jsx +60 -0
  222. package/components/Notifications/index.d.ts +5 -0
  223. package/components/Notifications/index.jsx +6 -0
  224. package/components/Notifications/notifications.state.d.ts +24 -0
  225. package/components/Notifications/notifications.state.js +41 -0
  226. package/components/Orb/Orb.d.ts +8 -0
  227. package/components/Orb/Orb.jsx +258 -0
  228. package/components/Orb/index.d.ts +3 -0
  229. package/components/Orb/index.jsx +3 -0
  230. package/components/Pagination/Pagination.d.ts +13 -0
  231. package/components/Pagination/Pagination.jsx +64 -0
  232. package/components/Pagination/index.d.ts +3 -0
  233. package/components/Pagination/index.jsx +3 -0
  234. package/components/Particles/Particles.d.ts +18 -0
  235. package/components/Particles/Particles.jsx +205 -0
  236. package/components/Particles/index.d.ts +3 -0
  237. package/components/Particles/index.jsx +3 -0
  238. package/components/PictureCropInput/PictureCropInput.d.ts +17 -0
  239. package/components/PictureCropInput/PictureCropInput.jsx +153 -0
  240. package/components/PictureCropInput/canvasPreview.d.ts +2 -0
  241. package/components/PictureCropInput/canvasPreview.js +37 -0
  242. package/components/PictureCropInput/index.d.ts +3 -0
  243. package/components/PictureCropInput/index.js +3 -0
  244. package/components/Popover/Popover.d.ts +13 -0
  245. package/components/Popover/Popover.jsx +22 -0
  246. package/components/Popover/index.d.ts +3 -0
  247. package/components/Popover/index.jsx +3 -0
  248. package/components/Resizable/Resizable.d.ts +12 -0
  249. package/components/Resizable/Resizable.jsx +54 -0
  250. package/components/Resizable/index.d.ts +3 -0
  251. package/components/Resizable/index.jsx +3 -0
  252. package/components/ScrollArea/ScrollArea.d.ts +9 -0
  253. package/components/ScrollArea/ScrollArea.jsx +16 -0
  254. package/components/ScrollArea/index.d.ts +3 -0
  255. package/components/ScrollArea/index.jsx +3 -0
  256. package/components/Select/Select.d.ts +24 -0
  257. package/components/Select/Select.jsx +55 -0
  258. package/components/Select/index.d.ts +3 -0
  259. package/components/Select/index.jsx +3 -0
  260. package/components/Skeleton/Skeleton.d.ts +2 -0
  261. package/components/Skeleton/Skeleton.jsx +8 -0
  262. package/components/Skeleton/index.d.ts +3 -0
  263. package/components/Skeleton/index.jsx +3 -0
  264. package/components/Slider/Slider.d.ts +10 -0
  265. package/components/Slider/Slider.jsx +21 -0
  266. package/components/Slider/index.d.ts +3 -0
  267. package/components/Slider/index.jsx +3 -0
  268. package/components/Spotlight/Spotlight.d.ts +30 -0
  269. package/components/Spotlight/Spotlight.jsx +77 -0
  270. package/components/Spotlight/index.d.ts +3 -0
  271. package/components/Spotlight/index.jsx +3 -0
  272. package/components/SpotlightCard/SpotlightCard.d.ts +7 -0
  273. package/components/SpotlightCard/SpotlightCard.jsx +35 -0
  274. package/components/SpotlightCard/index.d.ts +3 -0
  275. package/components/SpotlightCard/index.jsx +3 -0
  276. package/components/Stack/Stack.d.ts +4 -0
  277. package/components/Stack/Stack.jsx +5 -0
  278. package/components/Stack/index.d.ts +3 -0
  279. package/components/Stack/index.jsx +3 -0
  280. package/components/StarBorder/StarBorder.d.ts +11 -0
  281. package/components/StarBorder/StarBorder.jsx +19 -0
  282. package/components/StarBorder/index.d.ts +3 -0
  283. package/components/StarBorder/index.jsx +3 -0
  284. package/components/Switch/Switch.d.ts +16 -0
  285. package/components/Switch/Switch.jsx +24 -0
  286. package/components/Switch/index.d.ts +3 -0
  287. package/components/Switch/index.jsx +3 -0
  288. package/components/Table/DataTable.d.ts +57 -0
  289. package/components/Table/DataTable.jsx +155 -0
  290. package/components/Table/Table.d.ts +27 -0
  291. package/components/Table/Table.jsx +31 -0
  292. package/components/Table/TableActionButton.d.ts +6 -0
  293. package/components/Table/TableActionButton.jsx +20 -0
  294. package/components/Table/TableBody.d.ts +6 -0
  295. package/components/Table/TableBody.jsx +10 -0
  296. package/components/Table/TableCell.d.ts +9 -0
  297. package/components/Table/TableCell.jsx +18 -0
  298. package/components/Table/TableFooter.d.ts +5 -0
  299. package/components/Table/TableFooter.jsx +5 -0
  300. package/components/Table/TableFooterWithPagination.d.ts +13 -0
  301. package/components/Table/TableFooterWithPagination.jsx +57 -0
  302. package/components/Table/TableHead.d.ts +5 -0
  303. package/components/Table/TableHead.jsx +9 -0
  304. package/components/Table/TableHeadContext.d.ts +4 -0
  305. package/components/Table/TableHeadContext.jsx +3 -0
  306. package/components/Table/TableHeader.d.ts +7 -0
  307. package/components/Table/TableHeader.jsx +15 -0
  308. package/components/Table/TableRow.d.ts +8 -0
  309. package/components/Table/TableRow.jsx +9 -0
  310. package/components/Table/index.d.ts +3 -0
  311. package/components/Table/index.jsx +3 -0
  312. package/components/Tabs/Tabs.d.ts +9 -0
  313. package/components/Tabs/Tabs.jsx +13 -0
  314. package/components/Tabs/index.d.ts +3 -0
  315. package/components/Tabs/index.jsx +3 -0
  316. package/components/TabsSwitcher/Tab.d.ts +15 -0
  317. package/components/TabsSwitcher/Tab.jsx +18 -0
  318. package/components/TabsSwitcher/TabsSwitcher.d.ts +22 -0
  319. package/components/TabsSwitcher/TabsSwitcher.jsx +31 -0
  320. package/components/TabsSwitcher/index.d.ts +4 -0
  321. package/components/TabsSwitcher/index.jsx +4 -0
  322. package/components/Text/Text.d.ts +24 -0
  323. package/components/Text/Text.jsx +28 -0
  324. package/components/Text/index.d.ts +3 -0
  325. package/components/Text/index.jsx +3 -0
  326. package/components/Textarea/Textarea.d.ts +5 -0
  327. package/components/Textarea/Textarea.jsx +6 -0
  328. package/components/Textarea/index.d.ts +3 -0
  329. package/components/Textarea/index.js +3 -0
  330. package/components/Threads/Threads.d.ts +9 -0
  331. package/components/Threads/Threads.jsx +203 -0
  332. package/components/Threads/index.d.ts +3 -0
  333. package/components/Threads/index.jsx +3 -0
  334. package/components/Tooltip/Tooltip.d.ts +11 -0
  335. package/components/Tooltip/Tooltip.jsx +21 -0
  336. package/components/Tooltip/index.d.ts +3 -0
  337. package/components/Tooltip/index.jsx +3 -0
  338. package/components/VisibilityActivatedButton/VisibilityActivatedButton.d.ts +7 -0
  339. package/components/VisibilityActivatedButton/VisibilityActivatedButton.jsx +18 -0
  340. package/components/VisibilityActivatedButton/index.d.ts +3 -0
  341. package/components/VisibilityActivatedButton/index.jsx +3 -0
  342. package/form.d.ts +82 -0
  343. package/form.js +113 -0
  344. package/form2.d.ts +15 -0
  345. package/form2.jsx +29 -0
  346. package/hooks/useBeforeUnload.d.ts +1 -0
  347. package/hooks/useBeforeUnload.js +17 -0
  348. package/hooks/useDebounceEffect.d.ts +2 -0
  349. package/hooks/useDebounceEffect.js +14 -0
  350. package/hooks/useDebouncedValue.d.ts +2 -0
  351. package/hooks/useDebouncedValue.js +14 -0
  352. package/hooks/useLagRadar.d.ts +1 -0
  353. package/hooks/useLagRadar.jsx +124 -0
  354. package/hooks/useMediaQuery.d.ts +1 -0
  355. package/hooks/useMediaQuery.js +37 -0
  356. package/hooks/useMutationWindowCloseProtection.d.ts +2 -0
  357. package/hooks/useMutationWindowCloseProtection.js +13 -0
  358. package/hooks/useScroll.d.ts +3 -0
  359. package/hooks/useScroll.js +47 -0
  360. package/hooks/useTranslation.d.ts +4 -0
  361. package/hooks/useTranslation.js +11 -0
  362. package/hooks/useWhyDidYouUpdate.d.ts +3 -0
  363. package/hooks/useWhyDidYouUpdate.js +44 -0
  364. package/imgur.d.ts +1 -0
  365. package/imgur.js +13 -0
  366. package/package.json +9 -0
  367. package/styles/DayPicker.classNames.d.ts +29 -0
  368. package/styles/DayPicker.classNames.js +30 -0
  369. package/styles/DayPicker.classNames.ts +81 -0
  370. package/styles/Dropdown.classNames.d.ts +6 -0
  371. package/styles/Dropdown.classNames.js +7 -0
  372. package/styles/Dropdown.classNames.ts +38 -0
  373. package/styles/Input.css +23 -0
  374. package/styles/Modal.classNames.d.ts +2 -0
  375. package/styles/Modal.classNames.js +3 -0
  376. package/styles/Modal.classNames.ts +15 -0
  377. package/styles/MultiText.css +40 -0
  378. package/styles/Pagination.css +19 -0
  379. package/styles/Tabs.css +23 -0
  380. package/tsconfig.tsbuildinfo +1 -0
  381. package/types.d.ts +6 -0
  382. package/types.js +1 -0
  383. package/utils/UseState.d.ts +3 -0
  384. package/utils/UseState.js +1 -0
  385. package/utils/blobToText.d.ts +1 -0
  386. package/utils/blobToText.js +13 -0
  387. package/utils/capitalize.d.ts +1 -0
  388. package/utils/capitalize.js +6 -0
  389. package/utils/clsx.d.ts +2 -0
  390. package/utils/clsx.js +5 -0
  391. package/utils/copy2DToClipboard.d.ts +1 -0
  392. package/utils/copy2DToClipboard.js +44 -0
  393. package/utils/cpfCpnjUtils.d.ts +3 -0
  394. package/utils/cpfCpnjUtils.js +43 -0
  395. package/utils/createLocalStorageStateHydration.d.ts +1 -0
  396. package/utils/createLocalStorageStateHydration.js +18 -0
  397. package/utils/createStateHydration.d.ts +3 -0
  398. package/utils/createStateHydration.js +49 -0
  399. package/utils/csvBlobToJson.d.ts +2 -0
  400. package/utils/csvBlobToJson.js +60 -0
  401. package/utils/downloadArrayAsCSV.d.ts +1 -0
  402. package/utils/downloadArrayAsCSV.js +34 -0
  403. package/utils/emailRegExp.d.ts +2 -0
  404. package/utils/emailRegExp.js +3 -0
  405. package/utils/fakeArray.d.ts +1 -0
  406. package/utils/fakeArray.js +3 -0
  407. package/utils/filterBoolean.d.ts +1 -0
  408. package/utils/filterBoolean.js +3 -0
  409. package/utils/formatClock.d.ts +1 -0
  410. package/utils/formatClock.js +21 -0
  411. package/utils/formatTime.d.ts +2 -0
  412. package/utils/formatTime.js +40 -0
  413. package/utils/getInitials.d.ts +4 -0
  414. package/utils/getInitials.js +8 -0
  415. package/utils/isBrowser.d.ts +12 -0
  416. package/utils/isBrowser.js +26 -0
  417. package/utils/ms.d.ts +6 -0
  418. package/utils/ms.js +31 -0
  419. package/utils/preventDefault.d.ts +1 -0
  420. package/utils/preventDefault.js +3 -0
  421. package/utils/recursiveChildrenMap.d.ts +2 -0
  422. package/utils/recursiveChildrenMap.js +16 -0
  423. package/utils/setSelectionRange.d.ts +1 -0
  424. package/utils/setSelectionRange.js +55 -0
  425. package/utils/smoothScrollToHref.d.ts +2 -0
  426. package/utils/smoothScrollToHref.js +10 -0
  427. package/utils/stopPropagation.d.ts +2 -0
  428. package/utils/stopPropagation.js +3 -0
  429. package/utils/stripHtml.d.ts +1 -0
  430. package/utils/stripHtml.js +4 -0
  431. package/utils/stripLineBreak.d.ts +1 -0
  432. package/utils/stripLineBreak.js +4 -0
  433. package/utils/stripMarkdown.d.ts +1 -0
  434. package/utils/stripMarkdown.js +28 -0
  435. package/utils/xlsxBlobToJson.d.ts +2 -0
  436. package/utils/xlsxBlobToJson.js +59 -0
package/types.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import { Dispatch, SetStateAction, useState } from "react";
2
+ export type NoUndefinedState<T> = T extends [
3
+ infer S | undefined,
4
+ Dispatch<SetStateAction<infer S | undefined>>
5
+ ] ? [S, Dispatch<SetStateAction<S>>] : never;
6
+ export type UseStateTuple<T> = NoUndefinedState<ReturnType<typeof useState<T>>>;
package/types.js ADDED
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import { Dispatch, SetStateAction } from "react";
2
+ type UseState<S> = [S, Dispatch<SetStateAction<S>>];
3
+ export default UseState;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export default function blobToText(file: Blob, encoding?: string): Promise<string>;
@@ -0,0 +1,13 @@
1
+ export default function blobToText(file, encoding) {
2
+ const reader = new FileReader();
3
+ return new Promise((resolve, reject) => {
4
+ reader.onload = function (e) {
5
+ const contents = e.target?.result;
6
+ resolve(contents);
7
+ };
8
+ reader.onerror = function (e) {
9
+ reject(e.target?.error);
10
+ };
11
+ reader.readAsText(file, encoding);
12
+ });
13
+ }
@@ -0,0 +1 @@
1
+ export default function capitalize<T extends string | undefined>(text: T): T;
@@ -0,0 +1,6 @@
1
+ export default function capitalize(text) {
2
+ return text
3
+ ?.split(" ")
4
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
5
+ .join(" ");
6
+ }
@@ -0,0 +1,2 @@
1
+ import originalClsx from "clsx";
2
+ export default function clsx(...args: Parameters<typeof originalClsx>): string;
package/utils/clsx.js ADDED
@@ -0,0 +1,5 @@
1
+ import originalClsx from "clsx";
2
+ import { twMerge } from "tailwind-merge";
3
+ export default function clsx(...args) {
4
+ return twMerge(originalClsx(...args));
5
+ }
@@ -0,0 +1 @@
1
+ export default function copy2DToClipboard(array: (string | number)[][]): void;
@@ -0,0 +1,44 @@
1
+ // copied from https://stackoverflow.com/questions/400212/how-do-i-copy-to-the-clipboard-in-javascript
2
+ function fallbackCopyTextToClipboard(text) {
3
+ const textArea = document.createElement("textarea");
4
+ textArea.value = text;
5
+ // Avoid scrolling to bottom
6
+ textArea.style.top = "0";
7
+ textArea.style.left = "0";
8
+ textArea.style.position = "fixed";
9
+ document.body.appendChild(textArea);
10
+ textArea.focus();
11
+ textArea.select();
12
+ try {
13
+ // noinspection JSDeprecatedSymbols
14
+ document.execCommand("copy");
15
+ }
16
+ catch (err) {
17
+ console.error("Fallback: Oops, unable to copy", err);
18
+ }
19
+ document.body.removeChild(textArea);
20
+ }
21
+ function copyTextToClipboard(text) {
22
+ if (!navigator.clipboard) {
23
+ fallbackCopyTextToClipboard(text);
24
+ return;
25
+ }
26
+ navigator.clipboard.writeText(text).then(function () {
27
+ // console.log('Async: Copying to clipboard was successful!');
28
+ }, function (err) {
29
+ console.error("Async: Could not copy text: ", err);
30
+ });
31
+ }
32
+ export default function copy2DToClipboard(array) {
33
+ let csv = "", row, cell;
34
+ for (row = 0; row < array.length; row++) {
35
+ for (cell = 0; cell < array[row].length; cell++) {
36
+ csv += (array[row][cell] + "").replace(/[\n\t]+/g, " ");
37
+ if (cell + 1 < array[row].length)
38
+ csv += "\t";
39
+ }
40
+ if (row + 1 < array.length)
41
+ csv += "\n";
42
+ }
43
+ copyTextToClipboard(csv);
44
+ }
@@ -0,0 +1,3 @@
1
+ export declare function formatCpfCnpj(input?: string): string;
2
+ export declare function isCpf(cpf: string): boolean;
3
+ export declare function stripCpfCnpjFormatting(value: string): string;
@@ -0,0 +1,43 @@
1
+ export function formatCpfCnpj(input = "") {
2
+ // Remove any non-digit characters
3
+ const cleanInput = input.replace(/\D/g, "");
4
+ if (cleanInput.length === 11) {
5
+ // Format as CPF (Individual Taxpayer Registry)
6
+ return cleanInput.replace(/(\d{3})(\d{3})(\d{3})(\d{2})/, "$1.$2.$3-$4");
7
+ }
8
+ else if (cleanInput.length === 14) {
9
+ // Format as CNPJ (National Registry of Legal Entities)
10
+ return cleanInput.replace(/(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})/, "$1.$2.$3/$4-$5");
11
+ }
12
+ return cleanInput;
13
+ }
14
+ export function isCpf(cpf) {
15
+ cpf = cpf.replace(/\D+/g, "");
16
+ if (cpf.length !== 11 || /^(\d)\1{10}$/.test(cpf)) {
17
+ return false;
18
+ }
19
+ let sum = 0;
20
+ let rest;
21
+ // Valida o primeiro dígito verificador
22
+ for (let i = 1; i <= 9; i++) {
23
+ sum += parseInt(cpf.charAt(i - 1)) * (11 - i);
24
+ }
25
+ rest = (sum * 10) % 11;
26
+ if (rest === 10 || rest === 11)
27
+ rest = 0;
28
+ if (rest !== parseInt(cpf.charAt(9))) {
29
+ return false;
30
+ }
31
+ sum = 0;
32
+ // Valida o segundo dígito verificador
33
+ for (let i = 1; i <= 10; i++) {
34
+ sum += parseInt(cpf.charAt(i - 1)) * (12 - i);
35
+ }
36
+ rest = (sum * 10) % 11;
37
+ if (rest === 10 || rest === 11)
38
+ rest = 0;
39
+ return rest === parseInt(cpf.charAt(10));
40
+ }
41
+ export function stripCpfCnpjFormatting(value) {
42
+ return value.replace(/\D+/g, "");
43
+ }
@@ -0,0 +1 @@
1
+ export default function createLocalStorageStateHydration<T extends object>(localStorageName: string, state: T, properties?: (keyof T)[]): void;
@@ -0,0 +1,18 @@
1
+ import { snapshot, subscribe } from "valtio";
2
+ import { omit } from "lodash-es";
3
+ export default function createLocalStorageStateHydration(localStorageName, state, properties) {
4
+ const retypedState = state;
5
+ if (!retypedState._hydrated) {
6
+ retypedState._hydrated = true;
7
+ subscribe(state, () => {
8
+ localStorage.setItem(localStorageName, JSON.stringify(omit(snapshot(retypedState), [
9
+ "_hydrated",
10
+ ...Object.keys(retypedState).filter((p) => properties && !properties.includes(p)),
11
+ ])));
12
+ });
13
+ const hydratedState = localStorage.getItem(localStorageName);
14
+ if (hydratedState) {
15
+ Object.assign(retypedState, JSON.parse(hydratedState));
16
+ }
17
+ }
18
+ }
@@ -0,0 +1,3 @@
1
+ import type { OptionsType } from "cookies-next";
2
+ export default function createStateHydration<T extends object>(cookieName: string, state: T, properties?: (keyof T)[]): (cookies?: object) => void;
3
+ export declare const getCookies: (options?: OptionsType) => Promise<Record<string, string>>;
@@ -0,0 +1,49 @@
1
+ import { getCookies as cnGetCookies, setCookie } from "cookies-next";
2
+ import ms from "ms";
3
+ import { snapshot, subscribe } from "valtio";
4
+ import { omit } from "lodash-es";
5
+ export default function createStateHydration(cookieName, state, properties) {
6
+ const retypedState = state;
7
+ if (!retypedState._hydration) {
8
+ subscribe(state, () => {
9
+ setCookie(cookieName, omit(snapshot(retypedState), [
10
+ "_hydration",
11
+ ...Object.keys(retypedState).filter((p) => properties && !properties.includes(p)),
12
+ ]), {
13
+ maxAge: ms("30d"),
14
+ path: "/",
15
+ });
16
+ });
17
+ }
18
+ return function hydrate(cookies) {
19
+ const retypedCookies = cookies;
20
+ if (!retypedCookies?._lastUpdate ||
21
+ !retypedState._hydration ||
22
+ retypedState._hydration < +retypedCookies._lastUpdate) {
23
+ retypedState._hydration = retypedCookies?._lastUpdate
24
+ ? +retypedCookies._lastUpdate
25
+ : Date.now();
26
+ if (cookies?.[cookieName]) {
27
+ try {
28
+ const cookieValueString = cookies[cookieName];
29
+ const cookieValue = JSON.parse(cookieValueString);
30
+ if (typeof cookieValue === "object") {
31
+ for (const property of properties || Object.keys(state)) {
32
+ if (cookieValue[property]) {
33
+ state[property] = cookieValue[property];
34
+ }
35
+ }
36
+ }
37
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
38
+ }
39
+ catch (e) {
40
+ // do nothing
41
+ }
42
+ }
43
+ }
44
+ };
45
+ }
46
+ export const getCookies = async (options) => ({
47
+ ...(await cnGetCookies(options)),
48
+ _lastUpdate: Date.now().toString(),
49
+ });
@@ -0,0 +1,2 @@
1
+ import { ChangeEvent } from "react";
2
+ export default function csvBlobToJson(event: ChangeEvent<HTMLInputElement>, encoding: "windows-1252" | "utf8"): Promise<Record<string, string>[] | null>;
@@ -0,0 +1,60 @@
1
+ import { showNotification } from "../components/Notifications";
2
+ import blobToText from "./blobToText";
3
+ export default async function csvBlobToJson(event, encoding) {
4
+ if (!event.target.files?.[0]) {
5
+ showNotification({
6
+ icon: "error",
7
+ message: "Nenhum arquivo foi selecionado",
8
+ });
9
+ }
10
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
11
+ const csv = await blobToText(event.target.files[0], encoding);
12
+ event.target.value = "";
13
+ const rows = csv.trim().split("\r\n");
14
+ const headers = rows
15
+ .shift()
16
+ ?.split(";")
17
+ .reduce((acc, header) => {
18
+ // existing header concatenate amount of headers with the same name
19
+ if (acc.includes(header)) {
20
+ const amount = acc.filter((h) => h === header).length;
21
+ acc.push(`${header} ${amount + 1}`);
22
+ }
23
+ else {
24
+ acc.push(header);
25
+ }
26
+ return acc;
27
+ }, []);
28
+ if (!headers) {
29
+ return null;
30
+ }
31
+ const wrongValues = [];
32
+ const json = [];
33
+ for (const row of rows) {
34
+ const object = {};
35
+ const values = row.split(";");
36
+ if (values.length !== headers.length) {
37
+ wrongValues.push(values);
38
+ }
39
+ else {
40
+ for (let i = 0; i < headers.length; i++) {
41
+ object[headers[i]] = values[i];
42
+ }
43
+ json.push(object);
44
+ }
45
+ }
46
+ if (wrongValues.length) {
47
+ showNotification({
48
+ icon: "error",
49
+ message: `A planilha está sendo importada em segundo plano mas ${wrongValues.length} items foram ignorados por estarem com o formato errado`,
50
+ });
51
+ console.error(wrongValues);
52
+ }
53
+ else {
54
+ showNotification({
55
+ icon: "success",
56
+ message: "A planilha está sendo importada em segundo plano",
57
+ });
58
+ }
59
+ return json;
60
+ }
@@ -0,0 +1 @@
1
+ export default function downloadArrayAsCSV(data: (string | undefined)[][], filename?: string): void;
@@ -0,0 +1,34 @@
1
+ export default function downloadArrayAsCSV(data, filename = "data.csv") {
2
+ // Function to escape fields with commas or double quotes
3
+ const escapeCSVField = (field) => {
4
+ if (field.includes('"')) {
5
+ field = field.replace(/"/g, '""'); // Escape double quotes
6
+ }
7
+ if (field.includes(",") || field.includes("\n")) {
8
+ field = `"${field}"`; // Enclose in double quotes
9
+ }
10
+ return field;
11
+ };
12
+ // Step 1: Convert the array to a CSV string with proper escaping
13
+ const csvContent = data
14
+ .map((row) => row.filter(Boolean).map(escapeCSVField).join(","))
15
+ .join("\n");
16
+ // Add BOM for UTF-8 encoding
17
+ const bom = "\uFEFF";
18
+ // Step 2: Create a Blob object from the CSV string with BOM
19
+ const blob = new Blob([bom + csvContent], {
20
+ type: "text/csv;charset=utf-8;",
21
+ });
22
+ // Step 3: Create a download link for the Blob and trigger a click event on the link
23
+ const link = document.createElement("a");
24
+ if (link.download !== undefined) {
25
+ // feature detection
26
+ const url = URL.createObjectURL(blob);
27
+ link.setAttribute("href", url);
28
+ link.setAttribute("download", filename);
29
+ link.style.visibility = "hidden";
30
+ document.body.appendChild(link);
31
+ link.click();
32
+ document.body.removeChild(link);
33
+ }
34
+ }
@@ -0,0 +1,2 @@
1
+ declare const emailRegExp: RegExp;
2
+ export default emailRegExp;
@@ -0,0 +1,3 @@
1
+ /* eslint-disable no-useless-escape */
2
+ const emailRegExp = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
3
+ export default emailRegExp;
@@ -0,0 +1 @@
1
+ export default function fakeArray(n: number): number[];
@@ -0,0 +1,3 @@
1
+ export default function fakeArray(n) {
2
+ return Array.from(Array(n).keys());
3
+ }
@@ -0,0 +1 @@
1
+ export default function filterBoolean<T>(array: (T | null | undefined)[]): T[];
@@ -0,0 +1,3 @@
1
+ export default function filterBoolean(array) {
2
+ return array.filter(Boolean);
3
+ }
@@ -0,0 +1 @@
1
+ export default function formatClock(time?: number): string;
@@ -0,0 +1,21 @@
1
+ export default function formatClock(time) {
2
+ if (time === undefined) {
3
+ return "";
4
+ }
5
+ const totalSeconds = Math.floor(time / 1000);
6
+ const hours = Math.floor(totalSeconds / 3600);
7
+ const minutes = Math.floor((totalSeconds % 3600) / 60);
8
+ const remainingSeconds = totalSeconds % 60;
9
+ let formattedTime = "";
10
+ if (hours > 0) {
11
+ formattedTime += `${hours.toString().padStart(2, "0")}:`;
12
+ }
13
+ if (minutes > 0) {
14
+ formattedTime += `${minutes.toString().padStart(2, "0")}:`;
15
+ }
16
+ else {
17
+ formattedTime += `00:`;
18
+ }
19
+ formattedTime += remainingSeconds.toString().padStart(2, "0");
20
+ return formattedTime.trim();
21
+ }
@@ -0,0 +1,2 @@
1
+ export default function formatTime(time: number): string;
2
+ export declare function parseFormattedTime(formattedTime: string): number;
@@ -0,0 +1,40 @@
1
+ export default function formatTime(time) {
2
+ const totalSeconds = Math.floor(time / 1000);
3
+ const hours = Math.floor(totalSeconds / 3600);
4
+ const minutes = Math.floor((totalSeconds % 3600) / 60);
5
+ const remainingSeconds = totalSeconds % 60;
6
+ let formattedTime = "";
7
+ if (hours > 0) {
8
+ formattedTime += `${hours}h `;
9
+ }
10
+ if (minutes > 0) {
11
+ formattedTime += `${minutes}m `;
12
+ }
13
+ if (remainingSeconds > 0) {
14
+ formattedTime += `${remainingSeconds}s`;
15
+ }
16
+ return formattedTime.trim();
17
+ }
18
+ export function parseFormattedTime(formattedTime) {
19
+ if (!formattedTime) {
20
+ return 0;
21
+ }
22
+ const timeParts = formattedTime.split(" ");
23
+ let totalMilliseconds = 0;
24
+ timeParts.forEach((part) => {
25
+ const unit = part.slice(-1); // Get the last character (h, m, or s)
26
+ const value = parseFloat(part.slice(0, -1)); // Get the numeric value
27
+ if (!isNaN(value)) {
28
+ if (unit === "h") {
29
+ totalMilliseconds += value * 3600000; // Convert hours to milliseconds
30
+ }
31
+ else if (unit === "m") {
32
+ totalMilliseconds += value * 60000; // Convert minutes to milliseconds
33
+ }
34
+ else if (unit === "s") {
35
+ totalMilliseconds += value * 1000; // Convert seconds to milliseconds
36
+ }
37
+ }
38
+ });
39
+ return totalMilliseconds;
40
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Gets all the initials of a name.
3
+ */
4
+ export default function getInitials(name: string, separator?: string): string;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Gets all the initials of a name.
3
+ */
4
+ export default function getInitials(name, separator = " ") {
5
+ const splitName = name.split(separator).slice(0, 2);
6
+ const splitInitials = splitName.map((n) => n.charAt(0));
7
+ return splitInitials.join("");
8
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Tells if the current scope is a browser.
3
+ */
4
+ export declare const isBrowser: boolean;
5
+ /**
6
+ * Tells if the current scope is a touch device.
7
+ */
8
+ export declare const isTouchDevice: boolean;
9
+ /**
10
+ * Tells if the current scope is a iOS device.
11
+ */
12
+ export declare const is_iOS: boolean;
@@ -0,0 +1,26 @@
1
+ /* eslint-disable @typescript-eslint/ban-ts-comment */
2
+ /* istanbul ignore file */
3
+ // noinspection JSUnusedGlobalSymbols
4
+ /**
5
+ * Tells if the current scope is a browser.
6
+ */
7
+ export const isBrowser = typeof window !== "undefined";
8
+ /**
9
+ * Tells if the current scope is a touch device.
10
+ */
11
+ export const isTouchDevice = isBrowser &&
12
+ (!!(typeof window !== "undefined" &&
13
+ ("ontouchstart" in window ||
14
+ // @ts-ignore: "DocumentTouch" exists on touch devices only
15
+ (window.DocumentTouch &&
16
+ typeof document !== "undefined" &&
17
+ // @ts-ignore: "DocumentTouch" exists on touch devices only
18
+ document instanceof window.DocumentTouch))) ||
19
+ !!(typeof navigator !== "undefined" &&
20
+ // @ts-ignore: "maxTouchPoints" exists on touch devices only
21
+ (navigator.maxTouchPoints || navigator.msMaxTouchPoints)));
22
+ /**
23
+ * Tells if the current scope is a iOS device.
24
+ */
25
+ export const is_iOS = typeof navigator !== "undefined" &&
26
+ /iPad|iPhone|iPod/.test(navigator.userAgent);
package/utils/ms.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import { StringValue } from "ms";
2
+ export declare function ms(value: number, options?: {
3
+ long: boolean;
4
+ locale?: string;
5
+ }): string;
6
+ export declare function ms(value: StringValue): number;
package/utils/ms.js ADDED
@@ -0,0 +1,31 @@
1
+ import vms from "ms";
2
+ const locale = {
3
+ ["en"]: {
4
+ day: "day",
5
+ hour: "hour",
6
+ minute: "minute",
7
+ second: "second",
8
+ },
9
+ ["pt-BR"]: {
10
+ day: "dia",
11
+ hour: "hora",
12
+ minute: "minuto",
13
+ second: "segundo",
14
+ },
15
+ ["undefined"]: {
16
+ day: "day",
17
+ hour: "hour",
18
+ second: "second",
19
+ minute: "minute",
20
+ },
21
+ };
22
+ export function ms(value, options) {
23
+ if (typeof value === "number") {
24
+ return vms(value, options)
25
+ .replace("day", locale[String(options?.locale)].day)
26
+ .replace("hour", locale[String(options?.locale)].hour)
27
+ .replace("minute", locale[String(options?.locale)].minute)
28
+ .replace("second", locale[String(options?.locale)].second);
29
+ }
30
+ return vms(value);
31
+ }
@@ -0,0 +1 @@
1
+ export default function preventDefault(event: Event): void;
@@ -0,0 +1,3 @@
1
+ export default function preventDefault(event) {
2
+ event.preventDefault();
3
+ }
@@ -0,0 +1,2 @@
1
+ import { ReactElement, ReactNode } from "react";
2
+ export default function recursiveChildrenMap<P>(children: ReactNode, fn: (child: ReactElement<P>) => ReactElement<P>): ReactNode;
@@ -0,0 +1,16 @@
1
+ import { Children, cloneElement, isValidElement, } from "react";
2
+ export default function recursiveChildrenMap(children, fn) {
3
+ return Children.map(children, (child) => {
4
+ if (!isValidElement(child)) {
5
+ return child;
6
+ }
7
+ const childProps = child.props;
8
+ if (childProps?.children) {
9
+ child = cloneElement(child, {
10
+ children: recursiveChildrenMap(childProps.children, fn),
11
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
+ });
13
+ }
14
+ return fn(child);
15
+ });
16
+ }
@@ -0,0 +1 @@
1
+ export default function setSelectionRange(el: Element, start: number, end: number): void;
@@ -0,0 +1,55 @@
1
+ /* eslint-disable @typescript-eslint/ban-ts-comment */
2
+ // noinspection JSUnresolvedReference
3
+ function getTextNodesIn(node) {
4
+ const textNodes = [];
5
+ if (node.nodeType == 3) {
6
+ textNodes.push(node);
7
+ }
8
+ else {
9
+ const children = node.childNodes;
10
+ for (let i = 0, len = children.length; i < len; ++i) {
11
+ textNodes.push(...getTextNodesIn(children[i]));
12
+ }
13
+ }
14
+ return textNodes;
15
+ }
16
+ export default function setSelectionRange(el, start, end) {
17
+ if (document.createRange && window.getSelection) {
18
+ const range = document.createRange();
19
+ range.selectNodeContents(el);
20
+ const textNodes = getTextNodesIn(el);
21
+ let foundStart = false;
22
+ let charCount = 0, endCharCount;
23
+ for (let i = 0, textNode; (textNode = textNodes[i++]);) {
24
+ // @ts-ignore
25
+ endCharCount = charCount + textNode.length;
26
+ if (!foundStart &&
27
+ start >= charCount &&
28
+ (start < endCharCount ||
29
+ (start == endCharCount && i <= textNodes.length))) {
30
+ range.setStart(textNode, start - charCount);
31
+ foundStart = true;
32
+ }
33
+ if (foundStart && end <= endCharCount) {
34
+ range.setEnd(textNode, end - charCount);
35
+ break;
36
+ }
37
+ charCount = endCharCount;
38
+ }
39
+ const sel = window.getSelection();
40
+ sel.removeAllRanges();
41
+ sel.addRange(range);
42
+ }
43
+ else {
44
+ // @ts-ignore
45
+ if (document.selection && document.body.createTextRange) {
46
+ // @ts-ignore
47
+ const textRange = document.body.createTextRange();
48
+ textRange.moveToElementText(el);
49
+ textRange.collapse(true);
50
+ textRange.moveEnd("character", end);
51
+ textRange.moveStart("character", start);
52
+ textRange.select();
53
+ }
54
+ }
55
+ }
@@ -0,0 +1,2 @@
1
+ import { MouseEvent } from "react";
2
+ export default function smoothScrollToHref(event: MouseEvent): void;
@@ -0,0 +1,10 @@
1
+ export default function smoothScrollToHref(event) {
2
+ event.preventDefault();
3
+ const href = event.currentTarget.getAttribute("href");
4
+ if (href) {
5
+ const target = document.getElementById(href.split("#")[1]);
6
+ if (target) {
7
+ target.scrollIntoView({ behavior: "smooth" });
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,2 @@
1
+ import { MouseEvent, TouchEvent } from "react";
2
+ export default function stopPropagation(event: MouseEvent | TouchEvent): void;
@@ -0,0 +1,3 @@
1
+ export default function stopPropagation(event) {
2
+ event.stopPropagation();
3
+ }
@@ -0,0 +1 @@
1
+ export declare function stripHtml(input?: string): string | undefined;