codeforlife 2.8.3 → 2.9.1

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 (454) hide show
  1. package/dist/Countdown-DFI1RljW.js +28 -0
  2. package/dist/Countdown-DFI1RljW.js.map +1 -0
  3. package/dist/Countdown-zY3nMzmi.cjs +2 -0
  4. package/dist/Countdown-zY3nMzmi.cjs.map +1 -0
  5. package/dist/Image-D5jC9UoX.js +21 -0
  6. package/dist/Image-D5jC9UoX.js.map +1 -0
  7. package/dist/Image-mgT45r_B.cjs +2 -0
  8. package/dist/Image-mgT45r_B.cjs.map +1 -0
  9. package/dist/LinkButton-BYFkvL_O.cjs +2 -0
  10. package/dist/LinkButton-BYFkvL_O.cjs.map +1 -0
  11. package/dist/LinkButton-oK0RThqn.js +12 -0
  12. package/dist/LinkButton-oK0RThqn.js.map +1 -0
  13. package/dist/Navigate-Dq47aqC8.js +25 -0
  14. package/dist/Navigate-Dq47aqC8.js.map +1 -0
  15. package/dist/Navigate-dQocLhzN.cjs +2 -0
  16. package/dist/Navigate-dQocLhzN.cjs.map +1 -0
  17. package/dist/api/createApi.d.ts +7 -0
  18. package/dist/api/endpoints/authFactor.d.ts +11 -0
  19. package/dist/api/endpoints/index.cjs.js +2 -0
  20. package/dist/api/endpoints/index.cjs.js.map +1 -0
  21. package/dist/api/endpoints/index.d.ts +9 -0
  22. package/dist/api/endpoints/index.es.js +78 -0
  23. package/dist/api/endpoints/index.es.js.map +1 -0
  24. package/dist/api/endpoints/klass.d.ts +26 -0
  25. package/dist/api/endpoints/school.d.ts +11 -0
  26. package/dist/api/endpoints/session.d.ts +9 -0
  27. package/dist/api/endpoints/user.d.ts +19 -0
  28. package/dist/api/index.cjs.js +4 -0
  29. package/dist/api/index.cjs.js.map +1 -0
  30. package/dist/api/index.d.ts +5 -0
  31. package/dist/api/index.es.js +541 -0
  32. package/dist/api/index.es.js.map +1 -0
  33. package/dist/api/models.d.ts +92 -0
  34. package/dist/api/schemas.d.ts +20 -0
  35. package/dist/api/tagTypes.d.ts +3 -0
  36. package/dist/api/urls.d.ts +31 -0
  37. package/dist/api-Cbyt3rw0.js +92 -0
  38. package/dist/api-Cbyt3rw0.js.map +1 -0
  39. package/dist/api-CnMfjRk3.cjs +2 -0
  40. package/dist/api-CnMfjRk3.cjs.map +1 -0
  41. package/dist/api-Cs4Y-WeI.js +20 -0
  42. package/dist/api-Cs4Y-WeI.js.map +1 -0
  43. package/dist/api-DIgp_6Vr.cjs +2 -0
  44. package/dist/api-DIgp_6Vr.cjs.map +1 -0
  45. package/dist/auth-BPfUPjmM.js +237 -0
  46. package/dist/auth-BPfUPjmM.js.map +1 -0
  47. package/dist/auth-Vf1MgMci.cjs +2 -0
  48. package/dist/auth-Vf1MgMci.cjs.map +1 -0
  49. package/dist/components/App.d.ts +18 -0
  50. package/dist/components/ClickableTooltip.d.ts +6 -0
  51. package/dist/components/CopyIconButton.d.ts +7 -0
  52. package/dist/components/CopyIconButton.test.d.ts +1 -0
  53. package/dist/components/Countdown.d.ts +9 -0
  54. package/dist/components/DownloadFileButton.d.ts +13 -0
  55. package/dist/components/ElevatedAppBar.d.ts +8 -0
  56. package/dist/components/Image.d.ts +10 -0
  57. package/dist/components/InputFileButton.d.ts +7 -0
  58. package/dist/components/ItemizedList.d.ts +11 -0
  59. package/dist/components/OrderedGrid.d.ts +21 -0
  60. package/dist/components/ScrollIntoViewLink.d.ts +8 -0
  61. package/dist/components/SyncError.d.ts +5 -0
  62. package/dist/components/TablePagination.d.ts +20 -0
  63. package/dist/components/YouTubeVideo.d.ts +7 -0
  64. package/dist/components/form/ApiAutocompleteField.d.ts +14 -0
  65. package/dist/components/form/AutocompleteField.d.ts +11 -0
  66. package/dist/components/form/CheckboxField.d.ts +11 -0
  67. package/dist/components/form/CountryField.d.ts +10 -0
  68. package/dist/components/form/DatePickerField.d.ts +10 -0
  69. package/dist/components/form/EmailField.d.ts +5 -0
  70. package/dist/components/form/FirstNameField.d.ts +5 -0
  71. package/dist/components/form/Form.d.ts +36 -0
  72. package/dist/components/form/OtpField.d.ts +5 -0
  73. package/dist/components/form/PasswordField.d.ts +9 -0
  74. package/dist/components/form/RepeatField.d.ts +9 -0
  75. package/dist/components/form/SubmitButton.d.ts +6 -0
  76. package/dist/components/form/TextField.d.ts +14 -0
  77. package/dist/components/form/UkCountyField.d.ts +10 -0
  78. package/dist/components/form/index.cjs.js +2 -0
  79. package/dist/components/form/index.cjs.js.map +1 -0
  80. package/dist/components/form/index.d.ts +14 -0
  81. package/dist/components/form/index.es.js +18 -0
  82. package/dist/components/form/index.es.js.map +1 -0
  83. package/dist/components/index.cjs.js +11 -0
  84. package/dist/components/index.cjs.js.map +1 -0
  85. package/dist/components/index.d.ts +18 -0
  86. package/dist/components/index.es.js +383 -0
  87. package/dist/components/index.es.js.map +1 -0
  88. package/dist/components/page/Banner.d.ts +13 -0
  89. package/dist/components/page/Notification.d.ts +10 -0
  90. package/dist/components/page/Page.d.ts +19 -0
  91. package/dist/components/page/Section.d.ts +7 -0
  92. package/dist/components/page/TabBar.d.ts +13 -0
  93. package/dist/components/page/index.cjs.js +2 -0
  94. package/dist/components/page/index.cjs.js.map +1 -0
  95. package/dist/components/page/index.d.ts +5 -0
  96. package/dist/components/page/index.es.js +9 -0
  97. package/dist/components/page/index.es.js.map +1 -0
  98. package/dist/components/router/Link.d.ts +9 -0
  99. package/dist/components/router/LinkButton.d.ts +9 -0
  100. package/dist/components/router/LinkIconButton.d.ts +9 -0
  101. package/dist/components/router/LinkListItem.d.ts +9 -0
  102. package/dist/components/router/LinkTab.d.ts +9 -0
  103. package/dist/components/router/Navigate.d.ts +15 -0
  104. package/dist/components/router/index.cjs.js +2 -0
  105. package/dist/components/router/index.cjs.js.map +1 -0
  106. package/dist/components/router/index.d.ts +6 -0
  107. package/dist/components/router/index.es.js +11 -0
  108. package/dist/components/router/index.es.js.map +1 -0
  109. package/dist/components/table/CellStack.d.ts +7 -0
  110. package/dist/components/table/Table.d.ts +12 -0
  111. package/dist/components/table/index.cjs.js +2 -0
  112. package/dist/components/table/index.cjs.js.map +1 -0
  113. package/dist/components/table/index.d.ts +3 -0
  114. package/dist/components/table/index.es.js +9 -0
  115. package/dist/components/table/index.es.js.map +1 -0
  116. package/dist/en-gb-B_rK7Jx1.js +20 -0
  117. package/dist/en-gb-B_rK7Jx1.js.map +1 -0
  118. package/dist/en-gb-CpyEkKq3.cjs +2 -0
  119. package/dist/en-gb-CpyEkKq3.cjs.map +1 -0
  120. package/dist/features/InactiveDialog.d.ts +7 -0
  121. package/dist/features/ScreenTimeDialog.d.ts +7 -0
  122. package/dist/features/index.cjs.js +2 -0
  123. package/dist/features/index.cjs.js.map +1 -0
  124. package/dist/features/index.d.ts +4 -0
  125. package/dist/features/index.es.js +47 -0
  126. package/dist/features/index.es.js.map +1 -0
  127. package/dist/general-BPbbmkeX.cjs +2 -0
  128. package/dist/general-BPbbmkeX.cjs.map +1 -0
  129. package/dist/general-CtTJPCJn.js +58 -0
  130. package/dist/general-CtTJPCJn.js.map +1 -0
  131. package/dist/hooks/api.d.ts +15 -0
  132. package/dist/hooks/auth.d.ts +46 -0
  133. package/{src/hooks/form.tsx → dist/hooks/form.d.ts} +2 -5
  134. package/dist/hooks/general.d.ts +13 -0
  135. package/dist/hooks/index.cjs.js +2 -0
  136. package/dist/hooks/index.cjs.js.map +1 -0
  137. package/dist/hooks/index.d.ts +5 -0
  138. package/dist/hooks/index.es.js +25 -0
  139. package/dist/hooks/index.es.js.map +1 -0
  140. package/dist/hooks/router.d.ts +29 -0
  141. package/dist/index-2W--_sNE.js +30 -0
  142. package/dist/index-2W--_sNE.js.map +1 -0
  143. package/dist/index-BUMdUVBH.cjs +5 -0
  144. package/dist/index-BUMdUVBH.cjs.map +1 -0
  145. package/dist/index-B_Zy_zwA.cjs +2 -0
  146. package/dist/index-B_Zy_zwA.cjs.map +1 -0
  147. package/dist/index-BgsynEGX.cjs +2 -0
  148. package/dist/index-BgsynEGX.cjs.map +1 -0
  149. package/dist/index-CA-ugBSa.cjs +2 -0
  150. package/dist/index-CA-ugBSa.cjs.map +1 -0
  151. package/dist/index-CNtOlJ49.js +572 -0
  152. package/dist/index-CNtOlJ49.js.map +1 -0
  153. package/dist/index-DkM_cG3a.js +237 -0
  154. package/dist/index-DkM_cG3a.js.map +1 -0
  155. package/dist/index-Dqp7dpn3.js +1111 -0
  156. package/dist/index-Dqp7dpn3.js.map +1 -0
  157. package/dist/index.cjs.js +2 -0
  158. package/dist/index.cjs.js.map +1 -0
  159. package/dist/index.d.ts +2 -0
  160. package/dist/index.es.js +7 -0
  161. package/dist/index.es.js.map +1 -0
  162. package/dist/jsx-runtime-CeSfJrVB.cjs +31 -0
  163. package/dist/jsx-runtime-CeSfJrVB.cjs.map +1 -0
  164. package/dist/jsx-runtime-Dpn_P65e.js +634 -0
  165. package/dist/jsx-runtime-Dpn_P65e.js.map +1 -0
  166. package/dist/middlewares/index.cjs.js +2 -0
  167. package/dist/middlewares/index.cjs.js.map +1 -0
  168. package/dist/middlewares/index.d.ts +1 -0
  169. package/dist/middlewares/index.es.js +10 -0
  170. package/dist/middlewares/index.es.js.map +1 -0
  171. package/dist/middlewares/session.d.ts +2 -0
  172. package/dist/palette-CE2mKYse.cjs +2 -0
  173. package/dist/palette-CE2mKYse.cjs.map +1 -0
  174. package/dist/palette-C_L0akN_.js +43 -0
  175. package/dist/palette-C_L0akN_.js.map +1 -0
  176. package/dist/rtk-query.modern-CjetfYPg.js +3038 -0
  177. package/dist/rtk-query.modern-CjetfYPg.js.map +1 -0
  178. package/dist/rtk-query.modern-PBCErCqb.cjs +15 -0
  179. package/dist/rtk-query.modern-PBCErCqb.cjs.map +1 -0
  180. package/dist/schemas-BZbJpkD5.cjs +2 -0
  181. package/dist/schemas-BZbJpkD5.cjs.map +1 -0
  182. package/dist/schemas-DlOtf2vf.js +162 -0
  183. package/dist/schemas-DlOtf2vf.js.map +1 -0
  184. package/dist/scripts/index.d.ts +0 -0
  185. package/dist/server.cjs.js +6 -0
  186. package/dist/server.cjs.js.map +1 -0
  187. package/dist/server.d.ts +44 -0
  188. package/dist/server.es.js +127 -0
  189. package/dist/server.es.js.map +1 -0
  190. package/dist/session-CE2U7oL1.cjs +2 -0
  191. package/dist/session-CE2U7oL1.cjs.map +1 -0
  192. package/dist/session-CacrgFSv.cjs +2 -0
  193. package/dist/session-CacrgFSv.cjs.map +1 -0
  194. package/dist/session-D312kYKk.js +32 -0
  195. package/dist/session-D312kYKk.js.map +1 -0
  196. package/dist/session-oI-Ht2C8.js +30 -0
  197. package/dist/session-oI-Ht2C8.js.map +1 -0
  198. package/dist/settings/custom.d.ts +11 -0
  199. package/dist/settings/index.cjs.js +2 -0
  200. package/dist/settings/index.cjs.js.map +1 -0
  201. package/dist/settings/index.d.ts +4 -0
  202. package/dist/settings/index.es.js +17 -0
  203. package/dist/settings/index.es.js.map +1 -0
  204. package/dist/settings/vite.d.ts +10 -0
  205. package/dist/setupTests.d.ts +0 -0
  206. package/dist/slices/createSlice.d.ts +3 -0
  207. package/dist/slices/index.cjs.js +2 -0
  208. package/dist/slices/index.cjs.js.map +1 -0
  209. package/dist/slices/index.d.ts +2 -0
  210. package/dist/slices/index.es.js +6 -0
  211. package/dist/slices/index.es.js.map +1 -0
  212. package/dist/slices/session.d.ts +28 -0
  213. package/dist/style.css +1 -0
  214. package/dist/theme/ThemedBox.d.ts +10 -0
  215. package/dist/theme/colors.d.ts +18 -0
  216. package/dist/theme/components/MuiAccordion.d.ts +3 -0
  217. package/dist/theme/components/MuiAutocomplete.d.ts +3 -0
  218. package/dist/theme/components/MuiButton.d.ts +3 -0
  219. package/dist/theme/components/MuiCardActions.d.ts +3 -0
  220. package/dist/theme/components/MuiCheckbox.d.ts +3 -0
  221. package/dist/theme/components/MuiContainer.d.ts +3 -0
  222. package/dist/theme/components/MuiDialog.d.ts +3 -0
  223. package/dist/theme/components/MuiFormControlLabel.d.ts +3 -0
  224. package/dist/theme/components/MuiFormHelperText.d.ts +3 -0
  225. package/dist/theme/components/MuiGrid2.d.ts +3 -0
  226. package/dist/theme/components/MuiInputBase.d.ts +3 -0
  227. package/dist/theme/components/MuiLink.d.ts +3 -0
  228. package/dist/theme/components/MuiList.d.ts +3 -0
  229. package/dist/theme/components/MuiListItemText.d.ts +3 -0
  230. package/dist/theme/components/MuiMenu.d.ts +3 -0
  231. package/dist/theme/components/MuiMenuItem.d.ts +3 -0
  232. package/dist/theme/components/MuiSelect.d.ts +3 -0
  233. package/dist/theme/components/MuiTab.d.ts +3 -0
  234. package/dist/theme/components/MuiTable.d.ts +3 -0
  235. package/dist/theme/components/MuiTableBody.d.ts +3 -0
  236. package/dist/theme/components/MuiTableHead.d.ts +3 -0
  237. package/dist/theme/components/MuiTabs.d.ts +3 -0
  238. package/dist/theme/components/MuiTextField.d.ts +3 -0
  239. package/dist/theme/components/MuiToolbar.d.ts +3 -0
  240. package/dist/theme/components/MuiTypography.d.ts +3 -0
  241. package/dist/theme/components/_components.d.ts +11 -0
  242. package/dist/theme/components/index.cjs.js +2 -0
  243. package/dist/theme/components/index.cjs.js.map +1 -0
  244. package/dist/theme/components/index.d.ts +3 -0
  245. package/dist/theme/components/index.es.js +6 -0
  246. package/dist/theme/components/index.es.js.map +1 -0
  247. package/dist/theme/index.cjs.js +2 -0
  248. package/dist/theme/index.cjs.js.map +1 -0
  249. package/dist/theme/index.d.ts +7 -0
  250. package/dist/theme/index.es.js +222 -0
  251. package/dist/theme/index.es.js.map +1 -0
  252. package/dist/theme/palette.d.ts +79 -0
  253. package/dist/theme/spacing.d.ts +1 -0
  254. package/dist/theme/typography.d.ts +4 -0
  255. package/dist/urls-DtHr1d3H.js +14 -0
  256. package/dist/urls-DtHr1d3H.js.map +1 -0
  257. package/dist/urls-MaVXL_C2.cjs +2 -0
  258. package/dist/urls-MaVXL_C2.cjs.map +1 -0
  259. package/dist/utils/api.cjs.js +2 -0
  260. package/dist/utils/api.cjs.js.map +1 -0
  261. package/dist/utils/api.d.ts +72 -0
  262. package/dist/utils/api.es.js +16 -0
  263. package/dist/utils/api.es.js.map +1 -0
  264. package/dist/utils/api.test.d.ts +1 -0
  265. package/dist/utils/auth.cjs.js +2 -0
  266. package/dist/utils/auth.cjs.js.map +1 -0
  267. package/dist/utils/auth.d.ts +28 -0
  268. package/dist/utils/auth.es.js +117 -0
  269. package/dist/utils/auth.es.js.map +1 -0
  270. package/dist/utils/form.cjs.js +2 -0
  271. package/dist/utils/form.cjs.js.map +1 -0
  272. package/dist/utils/form.d.ts +25 -0
  273. package/dist/utils/form.es.js +76 -0
  274. package/dist/utils/form.es.js.map +1 -0
  275. package/dist/utils/form.test.d.ts +1 -0
  276. package/dist/utils/general.cjs.js +2 -0
  277. package/dist/utils/general.cjs.js.map +1 -0
  278. package/dist/utils/general.d.ts +30 -0
  279. package/{src/utils/general.ts → dist/utils/general.es.js} +87 -165
  280. package/dist/utils/general.es.js.map +1 -0
  281. package/dist/utils/general.test.d.ts +1 -0
  282. package/dist/utils/router.cjs.js +2 -0
  283. package/dist/utils/router.cjs.js.map +1 -0
  284. package/dist/utils/router.d.ts +19 -0
  285. package/dist/utils/router.es.js +33 -0
  286. package/dist/utils/router.es.js.map +1 -0
  287. package/dist/utils/router.test.d.ts +1 -0
  288. package/dist/utils/schema.cjs.js +2 -0
  289. package/dist/utils/schema.cjs.js.map +1 -0
  290. package/dist/utils/schema.d.ts +43 -0
  291. package/dist/utils/schema.es.js +123 -0
  292. package/dist/utils/schema.es.js.map +1 -0
  293. package/dist/utils/store.cjs.js +2 -0
  294. package/dist/utils/store.cjs.js.map +1 -0
  295. package/dist/utils/store.d.ts +10 -0
  296. package/dist/utils/store.es.js +20 -0
  297. package/dist/utils/store.es.js.map +1 -0
  298. package/dist/utils/test.cjs.js +2 -0
  299. package/dist/utils/test.cjs.js.map +1 -0
  300. package/dist/utils/test.d.ts +53 -0
  301. package/dist/utils/test.es.js +60 -0
  302. package/dist/utils/test.es.js.map +1 -0
  303. package/dist/utils/theme.cjs.js +2 -0
  304. package/dist/utils/theme.cjs.js.map +1 -0
  305. package/dist/utils/theme.d.ts +11 -0
  306. package/dist/utils/theme.es.js +12 -0
  307. package/dist/utils/theme.es.js.map +1 -0
  308. package/dist/utils/window.cjs.js +2 -0
  309. package/dist/utils/window.cjs.js.map +1 -0
  310. package/dist/utils/window.d.ts +2 -0
  311. package/dist/utils/window.es.js +11 -0
  312. package/dist/utils/window.es.js.map +1 -0
  313. package/package.json +142 -37
  314. package/.github/workflows/main.yml +0 -55
  315. package/.prettierignore +0 -1
  316. package/CHANGELOG.md +0 -2027
  317. package/CONTRIBUTING.md +0 -3
  318. package/eslint.config.js +0 -17
  319. package/src/api/createApi.ts +0 -91
  320. package/src/api/endpoints/authFactor.ts +0 -31
  321. package/src/api/endpoints/index.ts +0 -9
  322. package/src/api/endpoints/klass.ts +0 -87
  323. package/src/api/endpoints/school.ts +0 -34
  324. package/src/api/endpoints/session.ts +0 -47
  325. package/src/api/endpoints/user.ts +0 -70
  326. package/src/api/index.ts +0 -5
  327. package/src/api/models.ts +0 -145
  328. package/src/api/schemas.ts +0 -243
  329. package/src/api/tagTypes.ts +0 -12
  330. package/src/api/urls.ts +0 -13
  331. package/src/components/App.css +0 -38
  332. package/src/components/App.tsx +0 -152
  333. package/src/components/ClickableTooltip.tsx +0 -43
  334. package/src/components/CopyIconButton.test.tsx +0 -16
  335. package/src/components/CopyIconButton.tsx +0 -27
  336. package/src/components/Countdown.tsx +0 -42
  337. package/src/components/DownloadFileButton.tsx +0 -55
  338. package/src/components/ElevatedAppBar.tsx +0 -41
  339. package/src/components/Image.tsx +0 -41
  340. package/src/components/InputFileButton.tsx +0 -27
  341. package/src/components/ItemizedList.tsx +0 -63
  342. package/src/components/OrderedGrid.tsx +0 -92
  343. package/src/components/ScrollIntoViewLink.tsx +0 -22
  344. package/src/components/SyncError.tsx +0 -14
  345. package/src/components/TablePagination.tsx +0 -142
  346. package/src/components/YouTubeVideo.tsx +0 -26
  347. package/src/components/form/ApiAutocompleteField.tsx +0 -187
  348. package/src/components/form/AutocompleteField.tsx +0 -135
  349. package/src/components/form/CheckboxField.tsx +0 -86
  350. package/src/components/form/CountryField.tsx +0 -75
  351. package/src/components/form/DatePickerField.tsx +0 -126
  352. package/src/components/form/EmailField.tsx +0 -38
  353. package/src/components/form/FirstNameField.tsx +0 -40
  354. package/src/components/form/Form.tsx +0 -165
  355. package/src/components/form/OtpField.tsx +0 -28
  356. package/src/components/form/PasswordField.tsx +0 -71
  357. package/src/components/form/RepeatField.tsx +0 -123
  358. package/src/components/form/SubmitButton.tsx +0 -57
  359. package/src/components/form/TextField.tsx +0 -150
  360. package/src/components/form/UkCountyField.tsx +0 -68
  361. package/src/components/form/index.tsx +0 -35
  362. package/src/components/index.ts +0 -28
  363. package/src/components/page/Banner.tsx +0 -95
  364. package/src/components/page/Notification.tsx +0 -71
  365. package/src/components/page/Page.tsx +0 -73
  366. package/src/components/page/Section.tsx +0 -21
  367. package/src/components/page/TabBar.tsx +0 -131
  368. package/src/components/page/index.ts +0 -10
  369. package/src/components/router/Link.tsx +0 -23
  370. package/src/components/router/LinkButton.tsx +0 -22
  371. package/src/components/router/LinkIconButton.tsx +0 -22
  372. package/src/components/router/LinkListItem.tsx +0 -22
  373. package/src/components/router/LinkTab.tsx +0 -22
  374. package/src/components/router/Navigate.tsx +0 -33
  375. package/src/components/router/index.tsx +0 -9
  376. package/src/components/table/CellStack.tsx +0 -19
  377. package/src/components/table/Table.tsx +0 -55
  378. package/src/components/table/index.tsx +0 -8
  379. package/src/features/InactiveDialog.tsx +0 -40
  380. package/src/features/ScreenTimeDialog.tsx +0 -30
  381. package/src/features/index.ts +0 -4
  382. package/src/fonts/ttf/Inter-VariableFont_slnt,wght.ttf +0 -0
  383. package/src/fonts/ttf/SpaceGrotesk-VariableFont_wght.ttf +0 -0
  384. package/src/hooks/api.tsx +0 -39
  385. package/src/hooks/auth.tsx +0 -397
  386. package/src/hooks/general.tsx +0 -110
  387. package/src/hooks/index.ts +0 -5
  388. package/src/hooks/router.tsx +0 -168
  389. package/src/images/svg/brain.svg +0 -1
  390. package/src/index.ts +0 -2
  391. package/src/middlewares/index.ts +0 -1
  392. package/src/middlewares/session.ts +0 -21
  393. package/src/scripts/freshDesk.js +0 -473
  394. package/src/scripts/index.ts +0 -1
  395. package/src/server.js +0 -187
  396. package/src/settings/custom.ts +0 -22
  397. package/src/settings/index.ts +0 -7
  398. package/src/settings/vite.ts +0 -26
  399. package/src/setupTests.ts +0 -2
  400. package/src/slices/createSlice.ts +0 -8
  401. package/src/slices/index.ts +0 -2
  402. package/src/slices/session.ts +0 -32
  403. package/src/theme/ThemedBox.tsx +0 -265
  404. package/src/theme/colors.ts +0 -57
  405. package/src/theme/components/MuiAccordion.tsx +0 -13
  406. package/src/theme/components/MuiAutocomplete.tsx +0 -11
  407. package/src/theme/components/MuiButton.ts +0 -70
  408. package/src/theme/components/MuiCardActions.tsx +0 -12
  409. package/src/theme/components/MuiCheckbox.ts +0 -12
  410. package/src/theme/components/MuiContainer.ts +0 -19
  411. package/src/theme/components/MuiDialog.tsx +0 -16
  412. package/src/theme/components/MuiFormControlLabel.ts +0 -18
  413. package/src/theme/components/MuiFormHelperText.ts +0 -12
  414. package/src/theme/components/MuiGrid2.ts +0 -16
  415. package/src/theme/components/MuiInputBase.ts +0 -14
  416. package/src/theme/components/MuiLink.ts +0 -41
  417. package/src/theme/components/MuiList.ts +0 -12
  418. package/src/theme/components/MuiListItemText.ts +0 -18
  419. package/src/theme/components/MuiMenu.ts +0 -14
  420. package/src/theme/components/MuiMenuItem.ts +0 -15
  421. package/src/theme/components/MuiSelect.ts +0 -16
  422. package/src/theme/components/MuiTab.ts +0 -29
  423. package/src/theme/components/MuiTable.ts +0 -29
  424. package/src/theme/components/MuiTableBody.ts +0 -15
  425. package/src/theme/components/MuiTableHead.ts +0 -26
  426. package/src/theme/components/MuiTabs.ts +0 -26
  427. package/src/theme/components/MuiTextField.ts +0 -86
  428. package/src/theme/components/MuiToolbar.ts +0 -11
  429. package/src/theme/components/MuiTypography.ts +0 -12
  430. package/src/theme/components/_components.ts +0 -95
  431. package/src/theme/components/index.ts +0 -57
  432. package/src/theme/index.ts +0 -25
  433. package/src/theme/palette.ts +0 -98
  434. package/src/theme/spacing.ts +0 -8
  435. package/src/theme/typography.ts +0 -101
  436. package/src/utils/api.test.ts +0 -19
  437. package/src/utils/api.tsx +0 -339
  438. package/src/utils/auth.ts +0 -78
  439. package/src/utils/form.test.ts +0 -50
  440. package/src/utils/form.ts +0 -193
  441. package/src/utils/general.test.ts +0 -55
  442. package/src/utils/router.test.ts +0 -156
  443. package/src/utils/router.ts +0 -67
  444. package/src/utils/schema.ts +0 -290
  445. package/src/utils/store.ts +0 -31
  446. package/src/utils/test.tsx +0 -82
  447. package/src/utils/theme.tsx +0 -83
  448. package/src/utils/window.ts +0 -11
  449. package/src/vite-env.d.ts +0 -1
  450. package/tsconfig.app.json +0 -4
  451. package/tsconfig.json +0 -7
  452. package/tsconfig.node.json +0 -4
  453. package/types/fixes.d.ts +0 -18
  454. package/vite.config.ts +0 -23
@@ -0,0 +1,58 @@
1
+ import { useState as d, useEffect as i } from "react";
2
+ function f({
3
+ props: r,
4
+ attrs: t,
5
+ eventTypes: o
6
+ }) {
7
+ const [c, s] = d();
8
+ return i(() => {
9
+ if (document.querySelector(`script[src="${r.src}"]`))
10
+ throw Error("already exists");
11
+ const e = document.createElement("script");
12
+ Object.entries(r).forEach(([n, u]) => {
13
+ e[n] = u;
14
+ }), t !== void 0 && Object.entries(t).forEach(([n, u]) => {
15
+ e.setAttribute(n, u);
16
+ });
17
+ function a(n) {
18
+ s(n.type);
19
+ }
20
+ return o?.forEach((n) => {
21
+ e.addEventListener(n, a);
22
+ }), document.head.appendChild(e), () => {
23
+ o?.forEach((n) => {
24
+ e.removeEventListener(n, a);
25
+ }), document.head.removeChild(e);
26
+ };
27
+ }, [o, t, r]), c;
28
+ }
29
+ function h(r, t = 1) {
30
+ if (r <= 0) throw Error("seconds must be > 0");
31
+ if (t <= 0) throw Error("interval must be > 0");
32
+ const [o, c] = d(r);
33
+ return i(() => {
34
+ const s = setInterval(() => {
35
+ c((e) => (e = e - t, e < 0 ? 0 : e));
36
+ }, t * 1e3);
37
+ return () => {
38
+ clearInterval(s);
39
+ };
40
+ }, [t]), [o, c];
41
+ }
42
+ function m(r, t, o, c = {}) {
43
+ const { options: s, deps: e = [] } = c;
44
+ i(
45
+ () => (r.addEventListener(t, o, s), () => {
46
+ r.removeEventListener(t, o, s);
47
+ }),
48
+ // TODO: simplify this hook.
49
+ // eslint-disable-next-line react-hooks/exhaustive-deps
50
+ e
51
+ );
52
+ }
53
+ export {
54
+ h as a,
55
+ m as b,
56
+ f as u
57
+ };
58
+ //# sourceMappingURL=general-CtTJPCJn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"general-CtTJPCJn.js","sources":["../src/hooks/general.tsx"],"sourcesContent":["import {\n type DependencyList,\n type Dispatch,\n type SetStateAction,\n useEffect,\n useState,\n} from \"react\"\n\nexport function useExternalScript<EventType extends keyof HTMLElementEventMap>({\n props,\n attrs,\n eventTypes,\n}: {\n props: Partial<HTMLScriptElement> & { src: string }\n attrs?: Record<string, string>\n eventTypes?: EventType[]\n}): EventType | undefined {\n const [eventType, setEventType] = useState<EventType>()\n\n useEffect(() => {\n if (\n document.querySelector<HTMLScriptElement>(`script[src=\"${props.src}\"]`)\n ) {\n throw Error(\"already exists\")\n }\n\n const script = document.createElement(\"script\")\n\n Object.entries(props).forEach(([key, value]) => {\n // @ts-expect-error value is assignable\n script[key] = value\n })\n\n if (attrs !== undefined) {\n Object.entries(attrs).forEach(([key, value]) => {\n script.setAttribute(key, value)\n })\n }\n\n function eventListener(event: Event): void {\n setEventType(event.type as EventType)\n }\n\n eventTypes?.forEach(eventType => {\n script.addEventListener(eventType, eventListener)\n })\n\n document.head.appendChild(script)\n\n return () => {\n eventTypes?.forEach(eventType => {\n script.removeEventListener(eventType, eventListener)\n })\n\n document.head.removeChild(script)\n }\n }, [eventTypes, attrs, props])\n\n return eventType\n}\n\nexport function useCountdown(\n seconds: number,\n interval: number = 1,\n): [number, Dispatch<SetStateAction<number>>] {\n if (seconds <= 0) throw Error(\"seconds must be > 0\")\n if (interval <= 0) throw Error(\"interval must be > 0\")\n\n const [_seconds, _setSeconds] = useState(seconds)\n\n useEffect(() => {\n const countdown = setInterval(() => {\n _setSeconds(seconds => {\n seconds = seconds - interval\n return seconds < 0 ? 0 : seconds\n })\n }, interval * 1000)\n\n return () => {\n clearInterval(countdown)\n }\n }, [interval])\n\n return [_seconds, _setSeconds]\n}\n\nexport function useEventListener<EventType extends keyof HTMLElementEventMap>(\n element: HTMLElement,\n type: EventType,\n listener: (this: HTMLElement, ev: HTMLElementEventMap[EventType]) => any,\n kwArgs: {\n options?: boolean | AddEventListenerOptions\n deps?: DependencyList\n } = {},\n): void {\n const { options, deps = [] } = kwArgs\n\n useEffect(\n () => {\n element.addEventListener(type, listener, options)\n\n return () => {\n element.removeEventListener(type, listener, options)\n }\n },\n // TODO: simplify this hook.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n deps,\n )\n}\n"],"names":["useExternalScript","props","attrs","eventTypes","eventType","setEventType","useState","useEffect","script","key","value","eventListener","event","useCountdown","seconds","interval","_seconds","_setSeconds","countdown","useEventListener","element","type","listener","kwArgs","options","deps"],"mappings":";AAQO,SAASA,EAA+D;AAAA,EAC7E,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,YAAAC;AACF,GAI0B;AACxB,QAAM,CAACC,GAAWC,CAAY,IAAIC,EAAA;AAElC,SAAAC,EAAU,MAAM;AACd,QACE,SAAS,cAAiC,eAAeN,EAAM,GAAG,IAAI;AAEtE,YAAM,MAAM,gBAAgB;AAG9B,UAAMO,IAAS,SAAS,cAAc,QAAQ;AAE9C,WAAO,QAAQP,CAAK,EAAE,QAAQ,CAAC,CAACQ,GAAKC,CAAK,MAAM;AAE9C,MAAAF,EAAOC,CAAG,IAAIC;AAAA,IAChB,CAAC,GAEGR,MAAU,UACZ,OAAO,QAAQA,CAAK,EAAE,QAAQ,CAAC,CAACO,GAAKC,CAAK,MAAM;AAC9C,MAAAF,EAAO,aAAaC,GAAKC,CAAK;AAAA,IAChC,CAAC;AAGH,aAASC,EAAcC,GAAoB;AACzC,MAAAP,EAAaO,EAAM,IAAiB;AAAA,IACtC;AAEA,WAAAT,GAAY,QAAQ,CAAAC,MAAa;AAC/B,MAAAI,EAAO,iBAAiBJ,GAAWO,CAAa;AAAA,IAClD,CAAC,GAED,SAAS,KAAK,YAAYH,CAAM,GAEzB,MAAM;AACX,MAAAL,GAAY,QAAQ,CAAAC,MAAa;AAC/B,QAAAI,EAAO,oBAAoBJ,GAAWO,CAAa;AAAA,MACrD,CAAC,GAED,SAAS,KAAK,YAAYH,CAAM;AAAA,IAClC;AAAA,EACF,GAAG,CAACL,GAAYD,GAAOD,CAAK,CAAC,GAEtBG;AACT;AAEO,SAASS,EACdC,GACAC,IAAmB,GACyB;AAC5C,MAAID,KAAW,EAAG,OAAM,MAAM,qBAAqB;AACnD,MAAIC,KAAY,EAAG,OAAM,MAAM,sBAAsB;AAErD,QAAM,CAACC,GAAUC,CAAW,IAAIX,EAASQ,CAAO;AAEhD,SAAAP,EAAU,MAAM;AACd,UAAMW,IAAY,YAAY,MAAM;AAClC,MAAAD,EAAY,CAAAH,OACVA,IAAUA,IAAUC,GACbD,IAAU,IAAI,IAAIA,EAC1B;AAAA,IACH,GAAGC,IAAW,GAAI;AAElB,WAAO,MAAM;AACX,oBAAcG,CAAS;AAAA,IACzB;AAAA,EACF,GAAG,CAACH,CAAQ,CAAC,GAEN,CAACC,GAAUC,CAAW;AAC/B;AAEO,SAASE,EACdC,GACAC,GACAC,GACAC,IAGI,CAAA,GACE;AACN,QAAM,EAAE,SAAAC,GAAS,MAAAC,IAAO,CAAA,MAAOF;AAE/B,EAAAhB;AAAA,IACE,OACEa,EAAQ,iBAAiBC,GAAMC,GAAUE,CAAO,GAEzC,MAAM;AACX,MAAAJ,EAAQ,oBAAoBC,GAAMC,GAAUE,CAAO;AAAA,IACrD;AAAA;AAAA;AAAA,IAIFC;AAAA,EAAA;AAEJ;"}
@@ -0,0 +1,15 @@
1
+ import { Dispatch, SetStateAction } from 'react';
2
+ export type Pagination = {
3
+ page: number;
4
+ limit: number;
5
+ offset: number;
6
+ };
7
+ export type SetPagination = Dispatch<SetStateAction<{
8
+ page: number;
9
+ limit: number;
10
+ }>>;
11
+ export type UsePaginationOptions = Partial<{
12
+ page: number;
13
+ limit: number;
14
+ }>;
15
+ export declare function usePagination(options?: UsePaginationOptions): [Pagination, SetPagination];
@@ -0,0 +1,46 @@
1
+ import { ReactNode, ReactPortal, ReactElement, JSXElementConstructor } from 'react';
2
+ import { TypedUseMutation } from '@reduxjs/toolkit/query/react';
3
+ import { AuthFactor, User } from '../api';
4
+ import { OAuth2CodeChallenge, OAuth2CodeChallengeLengths, OAuth2RequestCodeUrlSearchParams } from '../utils/auth';
5
+ import { ExchangeOAuth2CodeArg } from '../api/endpoints/session';
6
+ export interface SessionMetadata {
7
+ user_id: User["id"];
8
+ user_type: "teacher" | "student" | "indy";
9
+ auth_factors: Array<AuthFactor["type"]>;
10
+ otp_bypass_token_exists: boolean;
11
+ }
12
+ export declare function useSessionMetadata<T = SessionMetadata>(cookieName?: string): T | undefined;
13
+ export declare namespace useSessionMetadata {
14
+ var predefine: <SessionMetadata>(cookieName?: string) => () => SessionMetadata | undefined;
15
+ }
16
+ export type UseSessionChildrenFunction<Required extends boolean> = (metadata: Required extends true ? SessionMetadata : SessionMetadata | undefined) => ReactNode;
17
+ export type UseSessionChildren<UserType extends SessionMetadata["user_type"] | undefined> = ReactNode | (UserType extends undefined ? UseSessionChildrenFunction<false> : UseSessionChildrenFunction<true>);
18
+ export type UseSessionOptions<UserType extends SessionMetadata["user_type"] | undefined> = Partial<{
19
+ userType: UserType;
20
+ next: boolean;
21
+ }>;
22
+ export declare function useSession<UserType extends SessionMetadata["user_type"] | undefined = undefined>(children: UseSessionChildren<UserType>, options?: UseSessionOptions<UserType>): string | number | bigint | boolean | import("react/jsx-runtime").JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | ReactPortal | ReactElement<unknown, string | JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | null | undefined;
23
+ export declare function useOAuth2State(provider: string, length?: number, storageKey?: string): [string | undefined, () => void];
24
+ export declare function useOAuth2CodeChallenge(provider: string, length?: OAuth2CodeChallengeLengths, storageKey?: string): [OAuth2CodeChallenge | undefined, () => void];
25
+ interface BaseUseOAuth2KwArgs<SessionMetadata> {
26
+ provider: string;
27
+ authUri: string;
28
+ clientId: string;
29
+ redirectUri: string;
30
+ scope: string;
31
+ responseType?: "code";
32
+ accessType?: "offline";
33
+ prompt?: string;
34
+ useLoginMutation: TypedUseMutation<SessionMetadata, ExchangeOAuth2CodeArg, any>;
35
+ onCreateSession: (result: SessionMetadata) => void;
36
+ onRetrieveSession: (metadata: SessionMetadata) => void;
37
+ }
38
+ interface UseOAuth2KwArgs<SessionMetadata> extends BaseUseOAuth2KwArgs<SessionMetadata> {
39
+ useSessionMetadata: () => SessionMetadata | undefined;
40
+ }
41
+ export type OAuth2 = [string, OAuth2RequestCodeUrlSearchParams] | [];
42
+ export declare const useOAuth2: {
43
+ <SessionMetadata>(kwargs: UseOAuth2KwArgs<SessionMetadata>): OAuth2;
44
+ (kwargs: BaseUseOAuth2KwArgs<SessionMetadata>): OAuth2;
45
+ };
46
+ export {};
@@ -1,11 +1,8 @@
1
- import { useRef } from "react"
2
-
1
+ import { RefObject } from 'react';
3
2
  /**
4
3
  * Shorthand for a reference to a HTML input element since this is so common for
5
4
  * forms.
6
5
  *
7
6
  * @returns Ref object to a HTML input element.
8
7
  */
9
- export function useInputRef() {
10
- return useRef<HTMLInputElement>(null)
11
- }
8
+ export declare function useInputRef(): RefObject<HTMLInputElement | null>;
@@ -0,0 +1,13 @@
1
+ import { DependencyList, Dispatch, SetStateAction } from 'react';
2
+ export declare function useExternalScript<EventType extends keyof HTMLElementEventMap>({ props, attrs, eventTypes, }: {
3
+ props: Partial<HTMLScriptElement> & {
4
+ src: string;
5
+ };
6
+ attrs?: Record<string, string>;
7
+ eventTypes?: EventType[];
8
+ }): EventType | undefined;
9
+ export declare function useCountdown(seconds: number, interval?: number): [number, Dispatch<SetStateAction<number>>];
10
+ export declare function useEventListener<EventType extends keyof HTMLElementEventMap>(element: HTMLElement, type: EventType, listener: (this: HTMLElement, ev: HTMLElementEventMap[EventType]) => any, kwArgs?: {
11
+ options?: boolean | AddEventListenerOptions;
12
+ deps?: DependencyList;
13
+ }): void;
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../api-DIgp_6Vr.cjs"),e=require("../auth-Vf1MgMci.cjs"),t=require("react"),u=require("../general-BPbbmkeX.cjs");function a(){return t.useRef(null)}exports.usePagination=s.usePagination;exports.useLocation=e.useLocation;exports.useNavigate=e.useNavigate;exports.useOAuth2=e.useOAuth2;exports.useOAuth2CodeChallenge=e.useOAuth2CodeChallenge;exports.useOAuth2State=e.useOAuth2State;exports.useParams=e.useParams;exports.useParamsRequired=e.useParamsRequired;exports.useSearchParams=e.useSearchParams;exports.useSession=e.useSession;exports.useSessionMetadata=e.useSessionMetadata;exports.useCountdown=u.useCountdown;exports.useEventListener=u.useEventListener;exports.useExternalScript=u.useExternalScript;exports.useInputRef=a;
2
+ //# sourceMappingURL=index.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs.js","sources":["../../src/hooks/form.tsx"],"sourcesContent":["import { useRef } from \"react\"\n\n/**\n * Shorthand for a reference to a HTML input element since this is so common for\n * forms.\n *\n * @returns Ref object to a HTML input element.\n */\nexport function useInputRef() {\n return useRef<HTMLInputElement>(null)\n}\n"],"names":["useInputRef","useRef"],"mappings":"iNAQO,SAASA,GAAc,CAC5B,OAAOC,EAAAA,OAAyB,IAAI,CACtC"}
@@ -0,0 +1,5 @@
1
+ export * from './api';
2
+ export * from './auth';
3
+ export * from './form';
4
+ export * from './general';
5
+ export * from './router';
@@ -0,0 +1,25 @@
1
+ import { u as r } from "../api-Cs4Y-WeI.js";
2
+ import { f as n, e as i, d as f, c as m, b as p, h, i as c, g as d, a as l, u as x } from "../auth-BPfUPjmM.js";
3
+ import { useRef as e } from "react";
4
+ import { a as g, b as P, u as A } from "../general-CtTJPCJn.js";
5
+ function a() {
6
+ return e(null);
7
+ }
8
+ export {
9
+ g as useCountdown,
10
+ P as useEventListener,
11
+ A as useExternalScript,
12
+ a as useInputRef,
13
+ n as useLocation,
14
+ i as useNavigate,
15
+ f as useOAuth2,
16
+ m as useOAuth2CodeChallenge,
17
+ p as useOAuth2State,
18
+ r as usePagination,
19
+ h as useParams,
20
+ c as useParamsRequired,
21
+ d as useSearchParams,
22
+ l as useSession,
23
+ x as useSessionMetadata
24
+ };
25
+ //# sourceMappingURL=index.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es.js","sources":["../../src/hooks/form.tsx"],"sourcesContent":["import { useRef } from \"react\"\n\n/**\n * Shorthand for a reference to a HTML input element since this is so common for\n * forms.\n *\n * @returns Ref object to a HTML input element.\n */\nexport function useInputRef() {\n return useRef<HTMLInputElement>(null)\n}\n"],"names":["useInputRef","useRef"],"mappings":";;;;AAQO,SAASA,IAAc;AAC5B,SAAOC,EAAyB,IAAI;AACtC;"}
@@ -0,0 +1,29 @@
1
+ import { Location, Params, To, NavigateOptions as _NavigateOptions } from 'react-router-dom';
2
+ import { ObjectShape } from 'yup';
3
+ import { ReactNode, ReactPortal, ReactElement, JSXElementConstructor } from 'react';
4
+ import { ObjectSchemaFromShape, TryValidateSyncOnErrorRT, TryValidateSyncOptions, TryValidateSyncRT } from '../utils/schema';
5
+ import { PageState } from '../components/page';
6
+ import { ReadOnly } from '../utils/router';
7
+ export type NavigateOptions<State extends Record<string, any> = Record<string, any>> = Omit<_NavigateOptions, "state"> & {
8
+ state?: State & Partial<PageState>;
9
+ next?: boolean;
10
+ };
11
+ export type Navigate = {
12
+ <State extends Record<string, any> = Record<string, any>>(to: To, options?: NavigateOptions<State>): void;
13
+ (delta: number): void;
14
+ };
15
+ export declare function useNavigate(): Navigate;
16
+ export declare function useLocation<State = {}>(): Location<null | Partial<PageState & State>>;
17
+ export declare function useSearchParams(): {
18
+ [k: string]: string;
19
+ };
20
+ export declare function useSearchParams<OnErrorRT extends TryValidateSyncOnErrorRT<ObjectSchemaFromShape<Shape>>, Shape extends ObjectShape = {}>(shape: Shape, validateOptions?: TryValidateSyncOptions<ObjectSchemaFromShape<Shape>, OnErrorRT>): TryValidateSyncRT<ObjectSchemaFromShape<Shape>, OnErrorRT>;
21
+ export declare function useParams(): ReadOnly<Params<string>>;
22
+ export declare function useParams<OnErrorRT extends TryValidateSyncOnErrorRT<ObjectSchemaFromShape<Shape>>, Shape extends ObjectShape = {}>(shape: Shape, validateOptions?: TryValidateSyncOptions<ObjectSchemaFromShape<Shape>, OnErrorRT>): TryValidateSyncRT<ObjectSchemaFromShape<Shape>, OnErrorRT>;
23
+ export declare function useParamsRequired<OnErrorRT extends TryValidateSyncOnErrorRT<ObjectSchemaFromShape<Shape>>, Shape extends ObjectShape = {}>({ shape, children, onValidationError, onValidationSuccess, validateOptions, }: {
24
+ shape: Shape;
25
+ children: (data: NonNullable<TryValidateSyncRT<ObjectSchemaFromShape<Shape>, OnErrorRT>>) => ReactNode;
26
+ onValidationError: (navigate: Navigate) => void;
27
+ onValidationSuccess?: (params: NonNullable<TryValidateSyncRT<ObjectSchemaFromShape<Shape>, OnErrorRT>>) => void;
28
+ validateOptions?: TryValidateSyncOptions<ObjectSchemaFromShape<Shape>, OnErrorRT>;
29
+ }): string | number | bigint | boolean | import("react/jsx-runtime").JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | ReactPortal | ReactElement<unknown, string | JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | null | undefined;
@@ -0,0 +1,30 @@
1
+ import { j as e } from "./jsx-runtime-Dpn_P65e.js";
2
+ import { isValidElement as d } from "react";
3
+ import { TableContainer as m, Table as T, TableHead as p, TableRow as n, TableCell as o, TableBody as f, Stack as y } from "@mui/material";
4
+ const u = ({
5
+ headers: t,
6
+ children: s,
7
+ containerProps: r,
8
+ headProps: i,
9
+ headRowProps: c,
10
+ bodyProps: j,
11
+ ...x
12
+ }) => /* @__PURE__ */ e.jsx(m, { ...r, children: /* @__PURE__ */ e.jsxs(T, { ...x, children: [
13
+ /* @__PURE__ */ e.jsx(p, { ...i, children: /* @__PURE__ */ e.jsx(n, { ...c, children: t.map((l, b) => {
14
+ const a = `table-head-cell-${b}`;
15
+ return typeof l == "string" || d(l) ? /* @__PURE__ */ e.jsx(o, { children: l }, a) : /* @__PURE__ */ e.jsx(o, { ...l }, a);
16
+ }) }) }),
17
+ /* @__PURE__ */ e.jsx(f, { ...j, children: s })
18
+ ] }) }), C = ({ cellProps: t, ...s }) => /* @__PURE__ */ e.jsx(o, { ...t, children: /* @__PURE__ */ e.jsx(y, { ...s }) }), g = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
19
+ __proto__: null,
20
+ BodyRow: n,
21
+ Cell: o,
22
+ CellStack: C,
23
+ Table: u
24
+ }, Symbol.toStringTag, { value: "Module" }));
25
+ export {
26
+ C,
27
+ u as T,
28
+ g as i
29
+ };
30
+ //# sourceMappingURL=index-2W--_sNE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-2W--_sNE.js","sources":["../src/components/table/Table.tsx","../src/components/table/CellStack.tsx"],"sourcesContent":["import { type FC, type ReactNode, isValidElement } from \"react\"\nimport {\n Table as MuiTable,\n type TableProps as MuiTableProps,\n TableBody,\n type TableBodyProps,\n TableCell,\n type TableCellProps,\n TableContainer,\n type TableContainerProps,\n TableHead,\n type TableHeadProps,\n TableRow,\n type TableRowProps,\n} from \"@mui/material\"\n\nexport interface TableProps extends MuiTableProps {\n headers: Array<ReactNode | TableCellProps>\n children: ReactNode\n containerProps?: TableContainerProps\n headProps?: TableHeadProps\n headRowProps?: TableRowProps\n bodyProps?: TableBodyProps\n}\n\nconst Table: FC<TableProps> = ({\n headers,\n children,\n containerProps,\n headProps,\n headRowProps,\n bodyProps,\n ...tableProps\n}) => (\n <TableContainer {...containerProps}>\n <MuiTable {...tableProps}>\n <TableHead {...headProps}>\n <TableRow {...headRowProps}>\n {headers.map((header, index) => {\n const key = `table-head-cell-${index}`\n\n return typeof header === \"string\" || isValidElement(header) ? (\n <TableCell key={key}>{header}</TableCell>\n ) : (\n <TableCell key={key} {...(header as TableCellProps)} />\n )\n })}\n </TableRow>\n </TableHead>\n <TableBody {...bodyProps}>{children}</TableBody>\n </MuiTable>\n </TableContainer>\n)\n\nexport default Table\n","import {\n Stack,\n type StackProps,\n TableCell,\n type TableCellProps,\n} from \"@mui/material\"\nimport { type FC } from \"react\"\n\nexport interface CellStackProps extends StackProps {\n cellProps?: TableCellProps\n}\n\nconst CellStack: FC<CellStackProps> = ({ cellProps, ...stackProps }) => (\n <TableCell {...cellProps}>\n <Stack {...stackProps} />\n </TableCell>\n)\n\nexport default CellStack\n"],"names":["Table","headers","children","containerProps","headProps","headRowProps","bodyProps","tableProps","TableContainer","jsxs","MuiTable","jsx","TableHead","TableRow","header","index","key","isValidElement","TableCell","TableBody","CellStack","cellProps","stackProps","Stack"],"mappings":";;;AAyBA,MAAMA,IAAwB,CAAC;AAAA,EAC7B,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,WAAAC;AAAA,EACA,cAAAC;AAAA,EACA,WAAAC;AAAA,EACA,GAAGC;AACL,4BACGC,GAAA,EAAgB,GAAGL,GAClB,UAAAM,gBAAAA,EAAAA,KAACC,GAAA,EAAU,GAAGH,GACZ,UAAA;AAAA,EAAAI,gBAAAA,EAAAA,IAACC,GAAA,EAAW,GAAGR,GACb,UAAAO,gBAAAA,EAAAA,IAACE,GAAA,EAAU,GAAGR,GACX,UAAAJ,EAAQ,IAAI,CAACa,GAAQC,MAAU;AAC9B,UAAMC,IAAM,mBAAmBD,CAAK;AAEpC,WAAO,OAAOD,KAAW,YAAYG,EAAeH,CAAM,IACxDH,gBAAAA,EAAAA,IAACO,GAAA,EAAqB,UAAAJ,EAAA,GAANE,CAAa,IAE7BL,gBAAAA,EAAAA,IAACO,GAAA,EAAqB,GAAIJ,KAAVE,CAAqC;AAAA,EAEzD,CAAC,GACH,GACF;AAAA,EACAL,gBAAAA,EAAAA,IAACQ,GAAA,EAAW,GAAGb,GAAY,UAAAJ,EAAA,CAAS;AAAA,EAAA,CACtC,EAAA,CACF,GCvCIkB,IAAgC,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,MACrDX,gBAAAA,EAAAA,IAACO,GAAA,EAAW,GAAGG,GACb,UAAAV,gBAAAA,EAAAA,IAACY,GAAA,EAAO,GAAGD,GAAY,EAAA,CACzB;;;;;;;"}
@@ -0,0 +1,5 @@
1
+ "use strict";const l=require("./jsx-runtime-CeSfJrVB.cjs"),E=require("@mui/material"),b=require("react"),Ve=require("./api-CnMfjRk3.cjs"),qe=require("./api-DIgp_6Vr.cjs"),B=require("formik"),z=require("yup"),V=require("./utils/form.cjs.js"),O=require("./utils/general.cjs.js");require("./en-gb-CpyEkKq3.cjs");const ge=require("@mui/x-date-pickers"),D=require("dayjs"),se=require("@mui/icons-material");require("./settings/index.cjs.js");require("./session-CE2U7oL1.cjs");require("js-cookie");const $e=require("./schemas-BZbJpkD5.cjs");require("./urls-MaVXL_C2.cjs");function $(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}function fe(){return fe=Object.assign?Object.assign.bind():function(n){for(var o=1;o<arguments.length;o++){var i=arguments[o];for(var e in i)({}).hasOwnProperty.call(i,e)&&(n[e]=i[e])}return n},fe.apply(null,arguments)}const Ee=({useLazyListQuery:n,filterOptions:o,getOptionLabel:i,getOptionKey:e=a=>a.id,searchKey:t,...r})=>{const[a,u]=b.useState(""),[s,{isLoading:h,isError:c}]=n(),[{limit:x,offset:g},y]=qe.usePagination(),[{options:Y,hasMore:M},f]=b.useState({options:{},hasMore:!0});b.useEffect(()=>{const j={limit:x,offset:g,...o};a&&(j[t]=a),s(j,!0).unwrap().then(({data:T,offset:k,limit:F,count:w})=>{f(({options:C})=>{const R={...C};return T.forEach(L=>{R[e(L)]=L}),{options:R,hasMore:k+F<w}})}).catch(T=>{T&&console.error(T)})},[s,x,g,t,a,...Object.values(o||{})]);let d=Object.keys(Y);if(!d.length)return l.jsxRuntimeExports.jsx(l.jsxRuntimeExports.Fragment,{});typeof e(Object.values(Y)[0])=="number"&&(d=d.map(Number));function m(){y(({page:j,limit:T})=>({page:j+1,limit:T}))}const p=({children:j,...T},k)=>{const F=b.Children.toArray(j);return h?F.push(l.jsxRuntimeExports.jsx(E.CircularProgress,{},"is-loading")):(c&&F.push(l.jsxRuntimeExports.jsx(Ve.SyncError,{},"is-error")),M&&F.push(l.jsxRuntimeExports.jsx(E.Button,{onClick:m,children:"Load more"},"load-more"))),l.jsxRuntimeExports.jsx("ul",{...T,ref:k,onScroll:w=>{!h&&w.currentTarget.clientHeight+w.currentTarget.scrollTop>=w.currentTarget.scrollHeight&&m()},children:F})};return l.jsxRuntimeExports.jsx(H,{options:d,getOptionLabel:j=>i(Y[j]),onInputChange:(j,T,k)=>{u(k==="input"?T:"")},ListboxComponent:b.forwardRef(p),...r})},H=({textFieldProps:n,options:o,validateOptions:i,...e})=>{const{id:t,name:r,required:a,...u}=n,s=r.split("."),h="not a valid option";let c=typeof o[0]=="string"?z.string().oneOf(o,h):z.number().oneOf(o,h);a&&(c=c.required());const x={name:r,type:typeof o[0]=="string"?"text":"number",validate:V.schemaToFieldValidator(c,i)};return l.jsxRuntimeExports.jsx(B.Field,{...x,children:({form:g,meta:y})=>{const Y=O.getNestedProperty(g.values,s),M=O.getNestedProperty(g.touched,s),f=O.getNestedProperty(g.errors,s);return l.jsxRuntimeExports.jsx(E.Autocomplete,{options:o,defaultValue:y.initialValue===""?void 0:y.initialValue,renderInput:({id:d,...m})=>l.jsxRuntimeExports.jsx(E.TextField,{id:t??r,name:r,required:a,type:"text",value:Y,error:M&&!!f,helperText:M&&f,...u,...m}),onChange:(d,m)=>{g.setFieldValue(r,m??void 0,!0)},onBlur:g.handleBlur,...e})}})},we=({id:n,name:o,formControlLabelProps:i,required:e=!1,errorMessage:t="this is a required field",validateOptions:r,...a})=>{const u=o.split(".");let s=z.bool();e&&(s=s.oneOf([!0],t));const h={name:o,type:"checkbox",validate:V.schemaToFieldValidator(s,r)};return l.jsxRuntimeExports.jsx(B.Field,{...h,children:({form:c,meta:x})=>{const g=O.getNestedProperty(c.touched,u),y=O.getNestedProperty(c.errors,u),Y=O.getNestedProperty(c.values,u),M=g&&!!y;return l.jsxRuntimeExports.jsxs(E.FormControl,{error:M,required:e,children:[l.jsxRuntimeExports.jsx(E.FormControlLabel,{control:l.jsxRuntimeExports.jsx(E.Checkbox,{defaultChecked:x.initialValue,id:n??o,name:o,value:Y,onChange:c.handleChange,onBlur:c.handleBlur,...a}),...i}),M&&l.jsxRuntimeExports.jsx(E.FormHelperText,{children:y})]})}})},Fe=({textFieldProps:n,...o})=>{const{name:i="country",label:e="Country",placeholder:t="Select your country",...r}=n||{};return l.jsxRuntimeExports.jsx(H,{options:O.COUNTRY_ISO_CODES,getOptionLabel:a=>O.COUNTRY_ISO_CODE_MAPPING[a],textFieldProps:{name:i,label:e,placeholder:t,...r},...o})};var K={exports:{}},He=K.exports,ye;function We(){return ye||(ye=1,(function(n,o){(function(i,e){n.exports=e()})(He,(function(){var i="week",e="year";return function(t,r,a){var u=r.prototype;u.week=function(s){if(s===void 0&&(s=null),s!==null)return this.add(7*(s-this.week()),"day");var h=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var c=a(this).startOf(e).add(1,e).date(h),x=a(this).endOf(i);if(c.isBefore(x))return 1}var g=a(this).startOf(e).date(h).startOf(i).subtract(1,"millisecond"),y=this.diff(g,i,!0);return y<0?a(this).startOf("week").week():Math.ceil(y)},u.weeks=function(s){return s===void 0&&(s=null),this.week(s)}}}))})(K)),K.exports}var Ge=We();const Ze=$(Ge);var J={exports:{}},Xe=J.exports,je;function Qe(){return je||(je=1,(function(n,o){(function(i,e){n.exports=e()})(Xe,(function(){var i={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},e=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,t=/\d/,r=/\d\d/,a=/\d\d?/,u=/\d*[^-_:/,()\s\d]+/,s={},h=function(f){return(f=+f)+(f>68?1900:2e3)},c=function(f){return function(d){this[f]=+d}},x=[/[+-]\d\d:?(\d\d)?|Z/,function(f){(this.zone||(this.zone={})).offset=(function(d){if(!d||d==="Z")return 0;var m=d.match(/([+-]|\d\d)/g),p=60*m[1]+(+m[2]||0);return p===0?0:m[0]==="+"?-p:p})(f)}],g=function(f){var d=s[f];return d&&(d.indexOf?d:d.s.concat(d.f))},y=function(f,d){var m,p=s.meridiem;if(p){for(var j=1;j<=24;j+=1)if(f.indexOf(p(j,0,d))>-1){m=j>12;break}}else m=f===(d?"pm":"PM");return m},Y={A:[u,function(f){this.afternoon=y(f,!1)}],a:[u,function(f){this.afternoon=y(f,!0)}],Q:[t,function(f){this.month=3*(f-1)+1}],S:[t,function(f){this.milliseconds=100*+f}],SS:[r,function(f){this.milliseconds=10*+f}],SSS:[/\d{3}/,function(f){this.milliseconds=+f}],s:[a,c("seconds")],ss:[a,c("seconds")],m:[a,c("minutes")],mm:[a,c("minutes")],H:[a,c("hours")],h:[a,c("hours")],HH:[a,c("hours")],hh:[a,c("hours")],D:[a,c("day")],DD:[r,c("day")],Do:[u,function(f){var d=s.ordinal,m=f.match(/\d+/);if(this.day=m[0],d)for(var p=1;p<=31;p+=1)d(p).replace(/\[|\]/g,"")===f&&(this.day=p)}],w:[a,c("week")],ww:[r,c("week")],M:[a,c("month")],MM:[r,c("month")],MMM:[u,function(f){var d=g("months"),m=(g("monthsShort")||d.map((function(p){return p.slice(0,3)}))).indexOf(f)+1;if(m<1)throw new Error;this.month=m%12||m}],MMMM:[u,function(f){var d=g("months").indexOf(f)+1;if(d<1)throw new Error;this.month=d%12||d}],Y:[/[+-]?\d+/,c("year")],YY:[r,function(f){this.year=h(f)}],YYYY:[/\d{4}/,c("year")],Z:x,ZZ:x};function M(f){var d,m;d=f,m=s&&s.formats;for(var p=(f=d.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(R,L,v){var S=v&&v.toUpperCase();return L||m[v]||i[v]||m[S].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(A,_,N){return _||N.slice(1)}))}))).match(e),j=p.length,T=0;T<j;T+=1){var k=p[T],F=Y[k],w=F&&F[0],C=F&&F[1];p[T]=C?{regex:w,parser:C}:k.replace(/^\[|\]$/g,"")}return function(R){for(var L={},v=0,S=0;v<j;v+=1){var A=p[v];if(typeof A=="string")S+=A.length;else{var _=A.regex,N=A.parser,W=R.slice(S),U=_.exec(W)[0];N.call(L,U),R=R.replace(U,"")}}return(function(I){var G=I.afternoon;if(G!==void 0){var P=I.hours;G?P<12&&(I.hours+=12):P===12&&(I.hours=0),delete I.afternoon}})(L),L}}return function(f,d,m){m.p.customParseFormat=!0,f&&f.parseTwoDigitYear&&(h=f.parseTwoDigitYear);var p=d.prototype,j=p.parse;p.parse=function(T){var k=T.date,F=T.utc,w=T.args;this.$u=F;var C=w[1];if(typeof C=="string"){var R=w[2]===!0,L=w[3]===!0,v=R||L,S=w[2];L&&(S=w[2]),s=this.$locale(),!R&&S&&(s=m.Ls[S]),this.$d=(function(W,U,I,G){try{if(["x","X"].indexOf(U)>-1)return new Date((U==="X"?1e3:1)*W);var P=M(U)(W),ne=P.year,Z=P.month,_e=P.day,Be=P.hours,Ne=P.minutes,Ie=P.seconds,Ue=P.milliseconds,pe=P.zone,xe=P.week,ie=new Date,oe=_e||(ne||Z?1:ie.getDate()),ae=ne||ie.getFullYear(),X=0;ne&&!Z||(X=Z>0?Z-1:ie.getMonth());var Q,ue=Be||0,ce=Ne||0,de=Ie||0,le=Ue||0;return pe?new Date(Date.UTC(ae,X,oe,ue,ce,de,le+60*pe.offset*1e3)):I?new Date(Date.UTC(ae,X,oe,ue,ce,de,le)):(Q=new Date(ae,X,oe,ue,ce,de,le),xe&&(Q=G(Q).week(xe).toDate()),Q)}catch{return new Date("")}})(k,C,F,m),this.init(),S&&S!==!0&&(this.$L=this.locale(S).$L),v&&k!=this.format(C)&&(this.$d=new Date("")),s={}}else if(C instanceof Array)for(var A=C.length,_=1;_<=A;_+=1){w[1]=C[_-1];var N=m.apply(this,w);if(N.isValid()){this.$d=N.$d,this.$L=N.$L,this.init();break}_===A&&(this.$d=new Date(""))}else j.call(this,T)}}}))})(J)),J.exports}var Ke=Qe();const Je=$(Ke);var ee={exports:{}},et=ee.exports,Me;function tt(){return Me||(Me=1,(function(n,o){(function(i,e){n.exports=e()})(et,(function(){var i={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};return function(e,t,r){var a=t.prototype,u=a.format;r.en.formats=i,a.format=function(s){s===void 0&&(s="YYYY-MM-DDTHH:mm:ssZ");var h=this.$locale().formats,c=(function(x,g){return x.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(y,Y,M){var f=M&&M.toUpperCase();return Y||g[M]||i[M]||g[f].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(d,m,p){return m||p.slice(1)}))}))})(s,h===void 0?{}:h);return u.call(this,c)}}}))})(ee)),ee.exports}var rt=tt();const st=$(rt);var te={exports:{}},nt=te.exports,Te;function it(){return Te||(Te=1,(function(n,o){(function(i,e){n.exports=e()})(nt,(function(){return function(i,e,t){e.prototype.isBetween=function(r,a,u,s){var h=t(r),c=t(a),x=(s=s||"()")[0]==="(",g=s[1]===")";return(x?this.isAfter(h,u):!this.isBefore(h,u))&&(g?this.isBefore(c,u):!this.isAfter(c,u))||(x?this.isBefore(h,u):!this.isAfter(h,u))&&(g?this.isAfter(c,u):!this.isBefore(c,u))}}}))})(te)),te.exports}var ot=it();const at=$(ot);var re={exports:{}},ut=re.exports,Oe;function ct(){return Oe||(Oe=1,(function(n,o){(function(i,e){n.exports=e()})(ut,(function(){return function(i,e){var t=e.prototype,r=t.format;t.format=function(a){var u=this,s=this.$locale();if(!this.isValid())return r.bind(this)(a);var h=this.$utils(),c=(a||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(x){switch(x){case"Q":return Math.ceil((u.$M+1)/3);case"Do":return s.ordinal(u.$D);case"gggg":return u.weekYear();case"GGGG":return u.isoWeekYear();case"wo":return s.ordinal(u.week(),"W");case"w":case"ww":return h.s(u.week(),x==="w"?1:2,"0");case"W":case"WW":return h.s(u.isoWeek(),x==="W"?1:2,"0");case"k":case"kk":return h.s(String(u.$H===0?24:u.$H),x==="k"?1:2,"0");case"X":return Math.floor(u.$d.getTime()/1e3);case"x":return u.$d.getTime();case"z":return"["+u.offsetName()+"]";case"zzz":return"["+u.offsetName("long")+"]";default:return x}}));return r.bind(this)(c)}}}))})(re)),re.exports}var dt=ct();const lt=$(dt),Ye=new Set;function ht(n,o="warning"){if(process.env.NODE_ENV==="production")return;const i=Array.isArray(n)?n.join(`
2
+ `):n;Ye.has(i)||(Ye.add(i),o==="error"?console.error(i):console.warn(i))}D.extend(st);D.extend(Ze);D.extend(at);D.extend(lt);const ft={YY:"year",YYYY:{sectionType:"year",contentType:"digit",maxLength:4},M:{sectionType:"month",contentType:"digit",maxLength:2},MM:"month",MMM:{sectionType:"month",contentType:"letter"},MMMM:{sectionType:"month",contentType:"letter"},D:{sectionType:"day",contentType:"digit",maxLength:2},DD:"day",Do:{sectionType:"day",contentType:"digit-with-letter"},d:{sectionType:"weekDay",contentType:"digit",maxLength:2},dd:{sectionType:"weekDay",contentType:"letter"},ddd:{sectionType:"weekDay",contentType:"letter"},dddd:{sectionType:"weekDay",contentType:"letter"},A:"meridiem",a:"meridiem",H:{sectionType:"hours",contentType:"digit",maxLength:2},HH:"hours",h:{sectionType:"hours",contentType:"digit",maxLength:2},hh:"hours",m:{sectionType:"minutes",contentType:"digit",maxLength:2},mm:"minutes",s:{sectionType:"seconds",contentType:"digit",maxLength:2},ss:"seconds"},mt={year:"YYYY",month:"MMMM",monthShort:"MMM",dayOfMonth:"D",dayOfMonthFull:"Do",weekday:"dddd",weekdayShort:"dd",hours24h:"HH",hours12h:"hh",meridiem:"A",minutes:"mm",seconds:"ss",fullDate:"ll",keyboardDate:"L",shortDate:"MMM D",normalDate:"D MMMM",normalDateWithWeekday:"ddd, MMM D",fullTime:"LT",fullTime12h:"hh:mm A",fullTime24h:"HH:mm",keyboardDateTime:"L LT",keyboardDateTime12h:"L hh:mm A",keyboardDateTime24h:"L HH:mm"},he=["Missing UTC plugin","To be able to use UTC or timezones, you have to enable the `utc` plugin","Find more information on https://mui.com/x/react-date-pickers/timezone/#day-js-and-utc"].join(`
3
+ `),De=["Missing timezone plugin","To be able to use timezones, you have to enable both the `utc` and the `timezone` plugin","Find more information on https://mui.com/x/react-date-pickers/timezone/#day-js-and-timezone"].join(`
4
+ `),pt=(n,o)=>o?(...i)=>n(...i).locale(o):n;class xt{constructor({locale:o,formats:i}={}){this.isMUIAdapter=!0,this.isTimezoneCompatible=!0,this.lib="dayjs",this.dayjs=void 0,this.locale=void 0,this.formats=void 0,this.escapedCharacters={start:"[",end:"]"},this.formatTokenMap=ft,this.setLocaleToValue=e=>{const t=this.getCurrentLocaleCode();return t===e.locale()?e:e.locale(t)},this.hasUTCPlugin=()=>typeof D.utc<"u",this.hasTimezonePlugin=()=>typeof D.tz<"u",this.isSame=(e,t,r)=>{const a=this.setTimezone(t,this.getTimezone(e));return e.format(r)===a.format(r)},this.cleanTimezone=e=>{switch(e){case"default":return;case"system":return D.tz.guess();default:return e}},this.createSystemDate=e=>{if(this.hasUTCPlugin()&&this.hasTimezonePlugin()){const t=D.tz.guess();return t!=="UTC"?D.tz(e,t):D(e)}return D(e)},this.createUTCDate=e=>{if(!this.hasUTCPlugin())throw new Error(he);return D.utc(e)},this.createTZDate=(e,t)=>{if(!this.hasUTCPlugin())throw new Error(he);if(!this.hasTimezonePlugin())throw new Error(De);const r=e!==void 0&&!e.endsWith("Z");return D(e).tz(this.cleanTimezone(t),r)},this.getLocaleFormats=()=>{const e=D.Ls,t=this.locale||"en";let r=e[t];return r===void 0&&(process.env.NODE_ENV!=="production"&&ht(["MUI X: Your locale has not been found.","Either the locale key is not a supported one. Locales supported by dayjs are available here: https://github.com/iamkun/dayjs/tree/dev/src/locale.","Or you forget to import the locale from 'dayjs/locale/{localeUsed}'","fallback on English locale."]),r=e.en),r.formats},this.adjustOffset=e=>{if(!this.hasTimezonePlugin())return e;const t=this.getTimezone(e);if(t!=="UTC"){const r=e.tz(this.cleanTimezone(t),!0);if(r.$offset===(e.$offset??0))return e;e.$offset=r.$offset}return e},this.date=(e,t="default")=>{if(e===null)return null;let r;return t==="UTC"?r=this.createUTCDate(e):t==="system"||t==="default"&&!this.hasTimezonePlugin()?r=this.createSystemDate(e):r=this.createTZDate(e,t),this.locale===void 0?r:r.locale(this.locale)},this.getInvalidDate=()=>D(new Date("Invalid date")),this.getTimezone=e=>{if(this.hasTimezonePlugin()){const t=e.$x?.$timezone;if(t)return t}return this.hasUTCPlugin()&&e.isUTC()?"UTC":"system"},this.setTimezone=(e,t)=>{if(this.getTimezone(e)===t)return e;if(t==="UTC"){if(!this.hasUTCPlugin())throw new Error(he);return e.utc()}if(t==="system")return e.local();if(!this.hasTimezonePlugin()){if(t==="default")return e;throw new Error(De)}return D.tz(e,this.cleanTimezone(t))},this.toJsDate=e=>e.toDate(),this.parse=(e,t)=>e===""?null:this.dayjs(e,t,this.locale,!0),this.getCurrentLocaleCode=()=>this.locale||"en",this.is12HourCycleInCurrentLocale=()=>/A|a/.test(this.getLocaleFormats().LT||""),this.expandFormat=e=>{const t=this.getLocaleFormats(),r=a=>a.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(u,s,h)=>s||h.slice(1));return e.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(a,u,s)=>{const h=s&&s.toUpperCase();return u||t[s]||r(t[h])})},this.isValid=e=>e==null?!1:e.isValid(),this.format=(e,t)=>this.formatByString(e,this.formats[t]),this.formatByString=(e,t)=>this.dayjs(e).format(t),this.formatNumber=e=>e,this.isEqual=(e,t)=>e===null&&t===null?!0:e===null||t===null?!1:e.toDate().getTime()===t.toDate().getTime(),this.isSameYear=(e,t)=>this.isSame(e,t,"YYYY"),this.isSameMonth=(e,t)=>this.isSame(e,t,"YYYY-MM"),this.isSameDay=(e,t)=>this.isSame(e,t,"YYYY-MM-DD"),this.isSameHour=(e,t)=>e.isSame(t,"hour"),this.isAfter=(e,t)=>e>t,this.isAfterYear=(e,t)=>this.hasUTCPlugin()?!this.isSameYear(e,t)&&e.utc()>t.utc():e.isAfter(t,"year"),this.isAfterDay=(e,t)=>this.hasUTCPlugin()?!this.isSameDay(e,t)&&e.utc()>t.utc():e.isAfter(t,"day"),this.isBefore=(e,t)=>e<t,this.isBeforeYear=(e,t)=>this.hasUTCPlugin()?!this.isSameYear(e,t)&&e.utc()<t.utc():e.isBefore(t,"year"),this.isBeforeDay=(e,t)=>this.hasUTCPlugin()?!this.isSameDay(e,t)&&e.utc()<t.utc():e.isBefore(t,"day"),this.isWithinRange=(e,[t,r])=>e>=t&&e<=r,this.startOfYear=e=>this.adjustOffset(e.startOf("year")),this.startOfMonth=e=>this.adjustOffset(e.startOf("month")),this.startOfWeek=e=>this.adjustOffset(this.setLocaleToValue(e).startOf("week")),this.startOfDay=e=>this.adjustOffset(e.startOf("day")),this.endOfYear=e=>this.adjustOffset(e.endOf("year")),this.endOfMonth=e=>this.adjustOffset(e.endOf("month")),this.endOfWeek=e=>this.adjustOffset(this.setLocaleToValue(e).endOf("week")),this.endOfDay=e=>this.adjustOffset(e.endOf("day")),this.addYears=(e,t)=>this.adjustOffset(t<0?e.subtract(Math.abs(t),"year"):e.add(t,"year")),this.addMonths=(e,t)=>this.adjustOffset(t<0?e.subtract(Math.abs(t),"month"):e.add(t,"month")),this.addWeeks=(e,t)=>this.adjustOffset(t<0?e.subtract(Math.abs(t),"week"):e.add(t,"week")),this.addDays=(e,t)=>this.adjustOffset(t<0?e.subtract(Math.abs(t),"day"):e.add(t,"day")),this.addHours=(e,t)=>this.adjustOffset(t<0?e.subtract(Math.abs(t),"hour"):e.add(t,"hour")),this.addMinutes=(e,t)=>this.adjustOffset(t<0?e.subtract(Math.abs(t),"minute"):e.add(t,"minute")),this.addSeconds=(e,t)=>this.adjustOffset(t<0?e.subtract(Math.abs(t),"second"):e.add(t,"second")),this.getYear=e=>e.year(),this.getMonth=e=>e.month(),this.getDate=e=>e.date(),this.getHours=e=>e.hour(),this.getMinutes=e=>e.minute(),this.getSeconds=e=>e.second(),this.getMilliseconds=e=>e.millisecond(),this.setYear=(e,t)=>this.adjustOffset(e.set("year",t)),this.setMonth=(e,t)=>this.adjustOffset(e.set("month",t)),this.setDate=(e,t)=>this.adjustOffset(e.set("date",t)),this.setHours=(e,t)=>this.adjustOffset(e.set("hour",t)),this.setMinutes=(e,t)=>this.adjustOffset(e.set("minute",t)),this.setSeconds=(e,t)=>this.adjustOffset(e.set("second",t)),this.setMilliseconds=(e,t)=>this.adjustOffset(e.set("millisecond",t)),this.getDaysInMonth=e=>e.daysInMonth(),this.getWeekArray=e=>{const t=this.startOfWeek(this.startOfMonth(e)),r=this.endOfWeek(this.endOfMonth(e));let a=0,u=t;const s=[];for(;u<r;){const h=Math.floor(a/7);s[h]=s[h]||[],s[h].push(u),u=this.addDays(u,1),a+=1}return s},this.getWeekNumber=e=>e.week(),this.getYearRange=([e,t])=>{const r=this.startOfYear(e),a=this.endOfYear(t),u=[];let s=r;for(;this.isBefore(s,a);)u.push(s),s=this.addYears(s,1);return u},this.dayjs=pt(D,o),this.locale=o,this.formats=fe({},mt,i),D.extend(Je)}getDayOfWeek(o){return o.day()+1}}const be=({name:n,required:o,minDate:i,maxDate:e,validateOptions:t,...r})=>{const a=n.split(".");function u(c){return c.locale("en-gb").format("L")}let s=z.date();o&&(s=s.required()),i&&(s=s.min(i,`this field must be after or equal to ${u(i)}`)),e&&(s=s.max(e,`this field must be before or equal to ${u(e)}`));const h={name:n,type:"date",validate:V.schemaToFieldValidator(s,t)};return l.jsxRuntimeExports.jsx(B.Field,{...h,children:({form:c})=>{const x=O.getNestedProperty(c.errors,a),g=O.getNestedProperty(c.touched,a);let y=O.getNestedProperty(c.values,a);y=y?D(y):null;function Y(M){c.setFieldValue(n,M&&M.isValid()?M.format("YYYY-MM-DD"):null,!0)}return l.jsxRuntimeExports.jsx(ge.LocalizationProvider,{dateAdapter:xt,adapterLocale:"en-gb",children:l.jsxRuntimeExports.jsx(ge.DatePicker,{name:n,value:y,minDate:i,maxDate:e,onChange:Y,slotProps:{textField:{id:n,onChange:M=>{Y(M)},onBlur:c.handleBlur,required:o,error:g&&!!x,helperText:g&&x}},...r})})}})},q=({id:n,name:o,schema:i,type:e="text",required:t=!1,dirty:r=!1,unique:a=!1,uniqueCaseInsensitive:u=!1,split:s,validateOptions:h,...c})=>{const[x,g]=b.useState(""),y=o.split(".");function Y(){let d=i;if(d=t?d.required():d.optional(),r&&!s&&(d=d.notOneOf([x],"cannot be initial value")),!s)return d;let m=z.array().of(d);return m=t?m.required().min(1):m.optional(),(a||u)&&(m=m.test({message:"cannot have duplicates",test:p=>Array.isArray(p)&&p.length>=2&&p.every(j=>typeof j=="string")?new Set(u?p.map(j=>j.toLowerCase()):p).size===p.length:!0})),r&&(m=m.notOneOf([x],"cannot be initial value")),m}const M={name:o,type:e,validate:V.schemaToFieldValidator(Y(),h)},f=({form:d})=>{const m=O.getNestedProperty(d.initialValues,y),p=O.getNestedProperty(d.values,y),j=O.getNestedProperty(d.errors,y),T=O.getNestedProperty(d.touched,y);return b.useEffect(()=>{g(m)},[m]),b.useEffect(()=>{d.setFieldValue(o,s&&typeof p=="string"?p.split(s):p,!0)},[p]),l.jsxRuntimeExports.jsx(E.TextField,{id:n??o,name:o,type:e,required:t,value:p,onChange:d.handleChange,onBlur:d.handleBlur,error:T&&!!j,helperText:T&&j,...c})};return l.jsxRuntimeExports.jsx(B.Field,{...M,children:f})},Pe=({name:n="email",label:o="Email address",placeholder:i="Enter your email address",InputProps:e={},...t})=>l.jsxRuntimeExports.jsx(q,{type:"email",schema:z.string().email(),name:n,label:o,placeholder:i,InputProps:{endAdornment:l.jsxRuntimeExports.jsx(E.InputAdornment,{position:"end",children:l.jsxRuntimeExports.jsx(se.EmailOutlined,{})}),...e},...t}),ke=({name:n="first_name",label:o="First name",placeholder:i="Enter your first name",InputProps:e={},...t})=>l.jsxRuntimeExports.jsx(q,{schema:$e.user.first_name,name:n,label:o,placeholder:i,InputProps:{endAdornment:l.jsxRuntimeExports.jsx(E.InputAdornment,{position:"end",children:l.jsxRuntimeExports.jsx(se.PersonOutlined,{})}),...e},...t}),Ce={behavior:"smooth",block:"start"},gt=({scrollIntoViewOptions:n=Ce,...o})=>{const i=b.useRef(null);return b.useEffect(()=>{i.current&&i.current.scrollIntoView(n)},[n]),l.jsxRuntimeExports.jsx(E.FormHelperText,{ref:i,error:!0,...o})},Le=({children:n,scrollIntoViewOptions:o=Ce,nonFieldErrorsProps:i,fieldRefs:e=[],...t})=>l.jsxRuntimeExports.jsx(B.Formik,{...t,children:r=>{const a=!!Object.keys(r.errors).length,u=a&&typeof r.errors.__all__=="string";if(a&&!u&&r.isSubmitting&&e.length){const s=O.getKeyPaths(r.errors),h=e.find(({name:c})=>s.includes(c))?.inputRef.current;h&&h.scrollIntoView(o)}return l.jsxRuntimeExports.jsxs(l.jsxRuntimeExports.Fragment,{children:[u&&l.jsxRuntimeExports.jsx(gt,{...i,children:r.errors.__all__}),l.jsxRuntimeExports.jsx(B.Form,{children:typeof n=="function"?n(r):n})]})}}),yt=({useMutation:n,submitOptions:o,...i})=>{const[e]=n();return l.jsxRuntimeExports.jsx(Le,{...i,onSubmit:V.submitForm(e,i.initialValues,o)})},Se=n=>"onSubmit"in n?l.jsxRuntimeExports.jsx(Le,{...n}):yt(n),Re=({name:n="otp",label:o="OTP",placeholder:i="Enter your OTP",...e})=>l.jsxRuntimeExports.jsx(q,{name:n,label:o,schema:z.string().matches(/^[0-9]{6}$/,"Must be exactly 6 digits."),placeholder:i,required:!0,...e}),jt=({id:n,repeatName:o,setValue:i,fieldProps:e,name:t,label:r,placeholder:a,type:u,...s})=>{const{form:h}=e,c=t.split("."),x=O.getNestedProperty(h.values,c),g=o.split("."),y=O.getNestedProperty(h.values,g),Y=O.getNestedProperty(h.touched,g),M=O.getNestedProperty(h.errors,g);return b.useEffect(()=>{i(x)},[i,x]),l.jsxRuntimeExports.jsx(E.TextField,{required:!0,type:u,label:r??`Repeat ${t.replace("_"," ")}`,placeholder:a??`Enter your ${t.replace("_"," ")} again`,id:n??o,name:o,value:y,onChange:h.handleChange,onBlur:h.handleBlur,error:Y&&!!M,helperText:Y&&M,...s})},me=({name:n,type:o="text",validateOptions:i,...e})=>{const[t,r]=b.useState(""),a=`${n}_repeat`,u={name:a,type:o,validate:V.schemaToFieldValidator(z.string().required().equals([t],"does not match"),i)};return l.jsxRuntimeExports.jsx(B.Field,{...u,children:s=>l.jsxRuntimeExports.jsx(jt,{name:n,type:o,repeatName:a,setValue:r,fieldProps:s,...e})})},ve=({name:n="password",label:o="Password",placeholder:i="Enter your password",schema:e=z.string(),InputProps:t={},withRepeatField:r=!1,repeatFieldProps:a={},...u})=>{const[s,h]=b.useState(!1),c=s?"text":"password",x=l.jsxRuntimeExports.jsx(E.InputAdornment,{position:"end",children:l.jsxRuntimeExports.jsx(E.IconButton,{onClick:()=>{h(g=>!g)},edge:"end",children:s?l.jsxRuntimeExports.jsx(se.Visibility,{}):l.jsxRuntimeExports.jsx(se.VisibilityOff,{})})});return l.jsxRuntimeExports.jsxs(l.jsxRuntimeExports.Fragment,{children:[l.jsxRuntimeExports.jsx(q,{autoComplete:"off",type:c,name:n,label:o,schema:e,placeholder:i,InputProps:{endAdornment:x,...t},...u}),r&&l.jsxRuntimeExports.jsx(me,{name:n,type:c,...a,InputProps:{endAdornment:x,...a.InputProps}})]})},ze=({children:n="Submit",...o})=>{function i(e,t){t=t||{};for(const r in e){const a=e[r];t[r]=a instanceof Object&&a.constructor===Object?i(a,t):!0}return t}return l.jsxRuntimeExports.jsx(B.Field,{name:"submit",type:"submit",children:({form:e})=>l.jsxRuntimeExports.jsx(E.Button,{type:"button",onClick:()=>{e.setTouched(i(e.values),!0).then(t=>{const r=!!(t&&Object.keys(t).length);e.setSubmitting(r),r||e.submitForm()})},...o,children:n})})},Ae=({textFieldProps:n,...o})=>{const{name:i="uk_county",label:e="UK county",placeholder:t="Select your UK county",...r}=n||{};return l.jsxRuntimeExports.jsx(H,{options:O.UK_COUNTIES,textFieldProps:{name:i,label:e,placeholder:t,...r},...o})},Mt=Object.freeze(Object.defineProperty({__proto__:null,ApiAutocompleteField:Ee,AutocompleteField:H,CheckboxField:we,CountryField:Fe,DatePickerField:be,EmailField:Pe,FirstNameField:ke,Form:Se,OtpField:Re,PasswordField:ve,RepeatField:me,SubmitButton:ze,TextField:q,UkCountyField:Ae},Symbol.toStringTag,{value:"Module"}));exports.ApiAutocompleteField=Ee;exports.AutocompleteField=H;exports.CheckboxField=we;exports.CountryField=Fe;exports.DatePickerField=be;exports.EmailField=Pe;exports.FirstNameField=ke;exports.Form=Se;exports.OtpField=Re;exports.PasswordField=ve;exports.RepeatField=me;exports.SubmitButton=ze;exports.TextField=q;exports.UkCountyField=Ae;exports.index=Mt;
5
+ //# sourceMappingURL=index-BUMdUVBH.cjs.map