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
@@ -1,41 +0,0 @@
1
- import { Box, type BoxProps } from "@mui/material"
2
- import { type FC } from "react"
3
-
4
- import { openInNewTab } from "../utils/general"
5
-
6
- export interface ImageProps extends Omit<BoxProps, "component"> {
7
- alt: string
8
- src: string
9
- href?: string
10
- hrefInNewTab?: boolean
11
- }
12
-
13
- const Image: FC<ImageProps> = ({ href, hrefInNewTab = false, ...props }) => {
14
- let {
15
- onClick,
16
- style = {},
17
- ...otherProps // eslint-disable-line prefer-const
18
- } = props
19
-
20
- if (style.width === undefined) {
21
- style.width = "100%"
22
- }
23
-
24
- // Override onClick if href provided.
25
- if (href !== undefined) {
26
- style = { ...style, cursor: "pointer" }
27
- if (hrefInNewTab) {
28
- onClick = () => {
29
- openInNewTab(href)
30
- }
31
- } else {
32
- onClick = () => {
33
- window.location.replace(href)
34
- }
35
- }
36
- }
37
-
38
- return <Box component="img" onClick={onClick} style={style} {...otherProps} />
39
- }
40
-
41
- export default Image
@@ -1,27 +0,0 @@
1
- import { Button, type ButtonProps } from "@mui/material"
2
- import {
3
- type DetailedHTMLProps,
4
- type FC,
5
- type InputHTMLAttributes,
6
- } from "react"
7
-
8
- export interface InputFileButtonProps
9
- extends Omit<ButtonProps<"label">, "component"> {
10
- inputProps?: Omit<
11
- DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>,
12
- "type" | "hidden"
13
- >
14
- }
15
-
16
- const InputFileButton: FC<InputFileButtonProps> = ({
17
- children,
18
- inputProps,
19
- ...otherButtonProps
20
- }) => (
21
- <Button component="label" {...otherButtonProps}>
22
- {children}
23
- <input type="file" hidden {...inputProps} />
24
- </Button>
25
- )
26
-
27
- export default InputFileButton
@@ -1,63 +0,0 @@
1
- import { type FC, type ReactElement } from "react"
2
- import {
3
- List,
4
- type ListItem,
5
- type ListItemText,
6
- type ListProps,
7
- } from "@mui/material"
8
-
9
- type ListItemElement =
10
- | ReactElement<typeof ListItem | typeof ListItemText>
11
- | string
12
-
13
- export interface ItemizedListProps {
14
- styleType:
15
- | "unset"
16
- | "initial"
17
- | "inherit"
18
- | "upper-roman"
19
- | "upper-latin"
20
- | "upper-alpha"
21
- | "square"
22
- | "none"
23
- | "lower-roman"
24
- | "lower-latin"
25
- | "lower-greek"
26
- | "lower-alpha"
27
- | "georgian"
28
- | "disc"
29
- | "decimal-leading-zero"
30
- | "decimal"
31
- | "armenian"
32
- | "circle"
33
- listProps?: ListProps
34
- pl?: number
35
- children: ListItemElement | ListItemElement[]
36
- }
37
-
38
- const ItemizedList: FC<ItemizedListProps> = ({
39
- styleType,
40
- listProps = {},
41
- pl = 4,
42
- children,
43
- }) => {
44
- const { sx, ...otherProps } = listProps
45
- const listItemProps = { display: "list-item" }
46
-
47
- return (
48
- <List
49
- sx={{
50
- listStyleType: styleType,
51
- pl,
52
- ".MuiListItem-root": listItemProps,
53
- ".MuiListItemText-root": listItemProps,
54
- ...sx,
55
- }}
56
- {...otherProps}
57
- >
58
- {children}
59
- </List>
60
- )
61
- }
62
-
63
- export default ItemizedList
@@ -1,92 +0,0 @@
1
- import { type FC, type ReactElement } from "react"
2
- import { Unstable_Grid2 as Grid, type Grid2Props } from "@mui/material"
3
-
4
- interface ItemProps
5
- extends Omit<
6
- Grid2Props,
7
- | "key"
8
- | "order"
9
- | "xs"
10
- | "sm"
11
- | "md"
12
- | "lg"
13
- | "xl"
14
- | "xsOffset"
15
- | "smOffset"
16
- | "mdOffset"
17
- | "lgOffset"
18
- | "xlOffset"
19
- > {}
20
-
21
- interface GlobalItemProps extends ItemProps {
22
- xs: number
23
- sm: number
24
- md: number
25
- lg: number
26
- xl: number
27
- }
28
-
29
- export interface OrderedGridProps {
30
- rows: Array<
31
- Array<{
32
- element: ReactElement
33
- itemProps?: ItemProps
34
- }>
35
- >
36
- containerProps?: Omit<Grid2Props, "container">
37
- globalItemProps: GlobalItemProps
38
- }
39
-
40
- const OrderedGrid: FC<OrderedGridProps> = ({
41
- rows,
42
- containerProps = {},
43
- globalItemProps,
44
- }) => {
45
- const columns = Number(containerProps.columns ?? 12)
46
-
47
- const getItemsPerRow = (size: number): number => Math.floor(columns / size)
48
-
49
- const getOrder = (
50
- rowIndex: number,
51
- itemIndex: number,
52
- size: number,
53
- ): number =>
54
- Math.floor(itemIndex / getItemsPerRow(size)) * rows.length + rowIndex
55
-
56
- const getOffset = (itemIndex: number, size: number): number => {
57
- const itemsOnLastRow = rows[0].length % getItemsPerRow(size)
58
- return itemsOnLastRow !== 0 && itemIndex === rows[0].length - 1
59
- ? (columns - itemsOnLastRow * size) / 2
60
- : 0
61
- }
62
-
63
- return (
64
- <Grid container {...containerProps}>
65
- {rows.map((row, rowIndex) =>
66
- row.map(({ element, itemProps = {} }, itemIndex) => (
67
- <Grid
68
- key={`${rowIndex}-${itemIndex}`}
69
- order={{
70
- xs: getOrder(rowIndex, itemIndex, globalItemProps.xs),
71
- sm: getOrder(rowIndex, itemIndex, globalItemProps.sm),
72
- md: getOrder(rowIndex, itemIndex, globalItemProps.md),
73
- lg: getOrder(rowIndex, itemIndex, globalItemProps.lg),
74
- xl: getOrder(rowIndex, itemIndex, globalItemProps.xl),
75
- }}
76
- xsOffset={getOffset(itemIndex, globalItemProps.xs)}
77
- smOffset={getOffset(itemIndex, globalItemProps.sm)}
78
- mdOffset={getOffset(itemIndex, globalItemProps.md)}
79
- lgOffset={getOffset(itemIndex, globalItemProps.lg)}
80
- xlOffset={getOffset(itemIndex, globalItemProps.xl)}
81
- {...globalItemProps}
82
- {...itemProps}
83
- >
84
- {element}
85
- </Grid>
86
- )),
87
- )}
88
- </Grid>
89
- )
90
- }
91
-
92
- export default OrderedGrid
@@ -1,22 +0,0 @@
1
- import { Link, type LinkProps } from "@mui/material"
2
- import { type FC } from "react"
3
- export interface ScrollIntoViewLinkProps extends Omit<LinkProps, "onClick"> {
4
- elementId: string
5
- options?: ScrollIntoViewOptions
6
- }
7
-
8
- const ScrollIntoViewLink: FC<ScrollIntoViewLinkProps> = ({
9
- elementId,
10
- options,
11
- ...linkProps
12
- }) => (
13
- <Link
14
- {...linkProps}
15
- onClick={() => {
16
- const element = document.getElementById(elementId)
17
- element?.scrollIntoView(options)
18
- }}
19
- />
20
- )
21
-
22
- export default ScrollIntoViewLink
@@ -1,14 +0,0 @@
1
- import { Stack, Typography } from "@mui/material"
2
- import { type FC } from "react"
3
- import { SyncProblem as SyncProblemIcon } from "@mui/icons-material"
4
-
5
- export interface SyncErrorProps {}
6
-
7
- const SyncError: FC<SyncErrorProps> = () => (
8
- <Stack alignItems="center" alignContent="center">
9
- <SyncProblemIcon color="error" />
10
- <Typography color="error.main">Failed to sync data</Typography>
11
- </Stack>
12
- )
13
-
14
- export default SyncError
@@ -1,142 +0,0 @@
1
- import {
2
- type ElementType,
3
- type JSX,
4
- type JSXElementConstructor,
5
- type ReactNode,
6
- useEffect,
7
- } from "react"
8
- import {
9
- TablePagination as MuiTablePagination,
10
- type TablePaginationProps as MuiTablePaginationProps,
11
- Stack,
12
- type StackProps,
13
- type TablePaginationBaseProps,
14
- } from "@mui/material"
15
- import type { TypedUseLazyQuery } from "@reduxjs/toolkit/query/react"
16
-
17
- import { type ListArg, type ListResult, handleResultState } from "../utils/api"
18
- import { type Pagination, usePagination } from "../hooks/api"
19
-
20
- export type TablePaginationProps<
21
- QueryArg extends ListArg,
22
- ResultType extends ListResult<any>,
23
- RootComponent extends
24
- ElementType = JSXElementConstructor<TablePaginationBaseProps>,
25
- AdditionalProps = {},
26
- > = Omit<
27
- MuiTablePaginationProps<RootComponent, AdditionalProps>,
28
- | "component"
29
- | "count"
30
- | "rowsPerPage"
31
- | "onRowsPerPageChange"
32
- | "rowsPerPageOptions"
33
- | "page"
34
- | "onPageChange"
35
- > &
36
- Partial<
37
- Pick<
38
- MuiTablePaginationProps<RootComponent, AdditionalProps>,
39
- "onRowsPerPageChange" | "onPageChange"
40
- >
41
- > & {
42
- children: (
43
- data: ResultType["data"],
44
- pagination: Pagination & { count?: number; maxLimit?: number },
45
- ) => ReactNode
46
- useLazyListQuery: TypedUseLazyQuery<ResultType, QueryArg, any>
47
- preferCacheValue?: boolean
48
- filters?: Omit<QueryArg, "limit" | "offset">
49
- rowsPerPageOptions?: number[]
50
- stackProps?: StackProps
51
- page?: number
52
- rowsPerPage?: number
53
- }
54
-
55
- const TablePagination = <
56
- QueryArg extends ListArg,
57
- ResultType extends ListResult<any>,
58
- RootComponent extends
59
- ElementType = JSXElementConstructor<TablePaginationBaseProps>,
60
- AdditionalProps = {},
61
- >({
62
- children,
63
- useLazyListQuery,
64
- preferCacheValue,
65
- filters,
66
- page: initialPage = 0,
67
- rowsPerPage: initialLimit = 50,
68
- rowsPerPageOptions = [50, 100, 150],
69
- stackProps,
70
- onRowsPerPageChange,
71
- onPageChange,
72
- ...tablePaginationProps
73
- }: TablePaginationProps<
74
- QueryArg,
75
- ResultType,
76
- RootComponent,
77
- AdditionalProps
78
- >): JSX.Element => {
79
- const [trigger, result] = useLazyListQuery()
80
- const [{ limit, page, offset }, setPagination] = usePagination({
81
- page: initialPage,
82
- limit: initialLimit,
83
- })
84
-
85
- useEffect(
86
- () => {
87
- void trigger({ limit, offset, ...filters } as QueryArg, preferCacheValue)
88
- },
89
- // eslint-disable-next-line react-hooks/exhaustive-deps
90
- [
91
- trigger,
92
- limit,
93
- offset,
94
- // eslint-disable-next-line react-hooks/exhaustive-deps,@typescript-eslint/no-unsafe-assignment
95
- ...Object.values(filters || {}),
96
- preferCacheValue,
97
- ],
98
- )
99
-
100
- const { count, max_limit } = result.data || {}
101
-
102
- if (max_limit) {
103
- rowsPerPageOptions = rowsPerPageOptions.filter(
104
- option => option <= max_limit,
105
- )
106
- }
107
-
108
- return (
109
- <Stack {...stackProps}>
110
- {handleResultState(result, ({ data }) =>
111
- children(data, {
112
- limit,
113
- page,
114
- offset,
115
- count,
116
- maxLimit: max_limit,
117
- }),
118
- )}
119
- <MuiTablePagination
120
- component="div"
121
- count={count ?? 0}
122
- rowsPerPage={limit}
123
- onRowsPerPageChange={event => {
124
- setPagination({ limit: parseInt(event.target.value), page: 0 })
125
- // eslint-disable-next-line @typescript-eslint/no-unsafe-call
126
- if (onRowsPerPageChange) onRowsPerPageChange(event)
127
- }}
128
- page={page}
129
- onPageChange={(event, page) => {
130
- setPagination(({ limit }) => ({ limit, page }))
131
- // eslint-disable-next-line @typescript-eslint/no-unsafe-call
132
- if (onPageChange) onPageChange(event, page)
133
- }}
134
- // ascending order
135
- rowsPerPageOptions={rowsPerPageOptions.sort((a, b) => a - b)}
136
- {...tablePaginationProps}
137
- />
138
- </Stack>
139
- )
140
- }
141
-
142
- export default TablePagination
@@ -1,26 +0,0 @@
1
- import { Box, type BoxProps } from "@mui/material"
2
- import { type FC } from "react"
3
-
4
- export interface YouTubeVideoProps extends Omit<BoxProps, "component"> {
5
- src: string
6
- }
7
-
8
- const YouTubeVideo: FC<YouTubeVideoProps> = ({
9
- src,
10
- style = {},
11
- ...otherProps
12
- }) => {
13
- return (
14
- <Box
15
- component="iframe"
16
- width="100%"
17
- src={src}
18
- title="YouTube video player"
19
- allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen"
20
- style={{ border: "0px", aspectRatio: "16 / 9", ...style }}
21
- {...otherProps}
22
- />
23
- )
24
- }
25
-
26
- export default YouTubeVideo
@@ -1,187 +0,0 @@
1
- import { Button, type ChipTypeMap, CircularProgress } from "@mui/material"
2
- import {
3
- Children,
4
- type ElementType,
5
- type ForwardRefRenderFunction,
6
- type HTMLAttributes,
7
- type JSX,
8
- forwardRef,
9
- useEffect,
10
- useState,
11
- } from "react"
12
- import type { TypedUseLazyQuery } from "@reduxjs/toolkit/query/react"
13
-
14
- import {
15
- AutocompleteField,
16
- type AutocompleteFieldProps,
17
- } from "../../components/form"
18
- import type { ListArg, ListResult, ModelId } from "../../utils/api"
19
- import SyncError from "../SyncError"
20
- import { usePagination } from "../../hooks/api"
21
-
22
- export interface ApiAutocompleteFieldProps<
23
- SearchKey extends keyof Omit<QueryArg, "limit" | "offset">,
24
- // api type args
25
- QueryArg extends ListArg,
26
- ResultType extends ListResult<any>,
27
- // autocomplete type args
28
- Multiple extends boolean | undefined = false,
29
- DisableClearable extends boolean | undefined = false,
30
- FreeSolo extends boolean | undefined = false,
31
- ChipComponent extends ElementType = ChipTypeMap["defaultComponent"],
32
- > extends Omit<
33
- AutocompleteFieldProps<
34
- ModelId,
35
- Multiple,
36
- DisableClearable,
37
- FreeSolo,
38
- ChipComponent
39
- >,
40
- | "options"
41
- | "ListboxComponent"
42
- | "filterOptions"
43
- | "getOptionLabel"
44
- | "getOptionKey"
45
- | "onInputChange"
46
- > {
47
- useLazyListQuery: TypedUseLazyQuery<ResultType, QueryArg, any>
48
- filterOptions?: Omit<QueryArg, "limit" | "offset" | SearchKey>
49
- getOptionLabel: (result: ResultType["data"][number]) => string
50
- getOptionKey?: (result: ResultType["data"][number]) => ModelId
51
- searchKey: SearchKey
52
- }
53
-
54
- const ApiAutocompleteField = <
55
- SearchKey extends keyof Omit<QueryArg, "limit" | "offset">,
56
- // api type args
57
- QueryArg extends ListArg,
58
- ResultType extends ListResult<any>,
59
- // autocomplete type args
60
- Multiple extends boolean | undefined = false,
61
- DisableClearable extends boolean | undefined = false,
62
- FreeSolo extends boolean | undefined = false,
63
- ChipComponent extends ElementType = ChipTypeMap["defaultComponent"],
64
- >({
65
- useLazyListQuery,
66
- filterOptions,
67
- getOptionLabel,
68
- getOptionKey = result => result.id as ModelId,
69
- searchKey,
70
- ...otherAutocompleteFieldProps
71
- }: ApiAutocompleteFieldProps<
72
- SearchKey,
73
- // api type args
74
- QueryArg,
75
- ResultType,
76
- // autocomplete type args
77
- Multiple,
78
- DisableClearable,
79
- FreeSolo,
80
- ChipComponent
81
- >): JSX.Element => {
82
- const [search, setSearch] = useState("")
83
- const [trigger, { isLoading, isError }] = useLazyListQuery()
84
- const [{ limit, offset }, setPagination] = usePagination()
85
- const [{ options, hasMore }, setState] = useState<{
86
- options: Record<ModelId, ResultType["data"][number]>
87
- hasMore: boolean
88
- }>({ options: {}, hasMore: true })
89
-
90
- // Call api
91
- useEffect(
92
- () => {
93
- const arg = { limit, offset, ...filterOptions } as QueryArg
94
- // @ts-expect-error search key can index arg
95
- if (search) arg[searchKey] = search
96
-
97
- trigger(arg, true)
98
- .unwrap()
99
- .then(({ data, offset, limit, count }) => {
100
- setState(({ options: previousOptions }) => {
101
- const options = { ...previousOptions }
102
- data.forEach(result => {
103
- options[getOptionKey(result)] = result
104
- })
105
- return { options, hasMore: offset + limit < count }
106
- })
107
- })
108
- .catch(error => {
109
- if (error) console.error(error)
110
- // TODO: gracefully handle error
111
- })
112
- },
113
- // eslint-disable-next-line react-hooks/exhaustive-deps
114
- [
115
- trigger,
116
- limit,
117
- offset,
118
- searchKey,
119
- search,
120
- // eslint-disable-next-line react-hooks/exhaustive-deps
121
- ...Object.values(filterOptions || {}),
122
- ],
123
- )
124
-
125
- // Get options keys
126
- let optionKeys: ModelId[] = Object.keys(options)
127
- if (!optionKeys.length) return <></>
128
- if (typeof getOptionKey(Object.values(options)[0]) === "number") {
129
- optionKeys = optionKeys.map(Number)
130
- }
131
-
132
- function loadNextPage() {
133
- setPagination(({ page, limit }) => ({ page: page + 1, limit }))
134
- }
135
-
136
- const ListboxComponent: ForwardRefRenderFunction<
137
- unknown,
138
- HTMLAttributes<HTMLElement>
139
- > = ({ children, ...props }, ref) => {
140
- const listItems = Children.toArray(children)
141
- if (isLoading) listItems.push(<CircularProgress key="is-loading" />)
142
- else {
143
- if (isError) listItems.push(<SyncError key="is-error" />)
144
- if (hasMore) {
145
- listItems.push(
146
- <Button key="load-more" onClick={loadNextPage}>
147
- Load more
148
- </Button>,
149
- )
150
- }
151
- }
152
-
153
- return (
154
- <ul
155
- {...props}
156
- // @ts-expect-error ref is assignable
157
- ref={ref}
158
- onScroll={event => {
159
- // If not already loading and scrolled to bottom
160
- if (
161
- !isLoading &&
162
- event.currentTarget.clientHeight + event.currentTarget.scrollTop >=
163
- event.currentTarget.scrollHeight
164
- ) {
165
- loadNextPage()
166
- }
167
- }}
168
- >
169
- {listItems}
170
- </ul>
171
- )
172
- }
173
-
174
- return (
175
- <AutocompleteField
176
- options={optionKeys}
177
- getOptionLabel={id => getOptionLabel(options[id])}
178
- onInputChange={(_, value, reason) => {
179
- setSearch(reason === "input" ? value : "")
180
- }}
181
- ListboxComponent={forwardRef(ListboxComponent)}
182
- {...otherAutocompleteFieldProps}
183
- />
184
- )
185
- }
186
-
187
- export default ApiAutocompleteField