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.
- package/dist/Countdown-DFI1RljW.js +28 -0
- package/dist/Countdown-DFI1RljW.js.map +1 -0
- package/dist/Countdown-zY3nMzmi.cjs +2 -0
- package/dist/Countdown-zY3nMzmi.cjs.map +1 -0
- package/dist/Image-D5jC9UoX.js +21 -0
- package/dist/Image-D5jC9UoX.js.map +1 -0
- package/dist/Image-mgT45r_B.cjs +2 -0
- package/dist/Image-mgT45r_B.cjs.map +1 -0
- package/dist/LinkButton-BYFkvL_O.cjs +2 -0
- package/dist/LinkButton-BYFkvL_O.cjs.map +1 -0
- package/dist/LinkButton-oK0RThqn.js +12 -0
- package/dist/LinkButton-oK0RThqn.js.map +1 -0
- package/dist/Navigate-Dq47aqC8.js +25 -0
- package/dist/Navigate-Dq47aqC8.js.map +1 -0
- package/dist/Navigate-dQocLhzN.cjs +2 -0
- package/dist/Navigate-dQocLhzN.cjs.map +1 -0
- package/dist/api/createApi.d.ts +7 -0
- package/dist/api/endpoints/authFactor.d.ts +11 -0
- package/dist/api/endpoints/index.cjs.js +2 -0
- package/dist/api/endpoints/index.cjs.js.map +1 -0
- package/dist/api/endpoints/index.d.ts +9 -0
- package/dist/api/endpoints/index.es.js +78 -0
- package/dist/api/endpoints/index.es.js.map +1 -0
- package/dist/api/endpoints/klass.d.ts +26 -0
- package/dist/api/endpoints/school.d.ts +11 -0
- package/dist/api/endpoints/session.d.ts +9 -0
- package/dist/api/endpoints/user.d.ts +19 -0
- package/dist/api/index.cjs.js +4 -0
- package/dist/api/index.cjs.js.map +1 -0
- package/dist/api/index.d.ts +5 -0
- package/dist/api/index.es.js +541 -0
- package/dist/api/index.es.js.map +1 -0
- package/dist/api/models.d.ts +92 -0
- package/dist/api/schemas.d.ts +20 -0
- package/dist/api/tagTypes.d.ts +3 -0
- package/dist/api/urls.d.ts +31 -0
- package/dist/api-Cbyt3rw0.js +92 -0
- package/dist/api-Cbyt3rw0.js.map +1 -0
- package/dist/api-CnMfjRk3.cjs +2 -0
- package/dist/api-CnMfjRk3.cjs.map +1 -0
- package/dist/api-Cs4Y-WeI.js +20 -0
- package/dist/api-Cs4Y-WeI.js.map +1 -0
- package/dist/api-DIgp_6Vr.cjs +2 -0
- package/dist/api-DIgp_6Vr.cjs.map +1 -0
- package/dist/auth-BPfUPjmM.js +237 -0
- package/dist/auth-BPfUPjmM.js.map +1 -0
- package/dist/auth-Vf1MgMci.cjs +2 -0
- package/dist/auth-Vf1MgMci.cjs.map +1 -0
- package/dist/components/App.d.ts +18 -0
- package/dist/components/ClickableTooltip.d.ts +6 -0
- package/dist/components/CopyIconButton.d.ts +7 -0
- package/dist/components/CopyIconButton.test.d.ts +1 -0
- package/dist/components/Countdown.d.ts +9 -0
- package/dist/components/DownloadFileButton.d.ts +13 -0
- package/dist/components/ElevatedAppBar.d.ts +8 -0
- package/dist/components/Image.d.ts +10 -0
- package/dist/components/InputFileButton.d.ts +7 -0
- package/dist/components/ItemizedList.d.ts +11 -0
- package/dist/components/OrderedGrid.d.ts +21 -0
- package/dist/components/ScrollIntoViewLink.d.ts +8 -0
- package/dist/components/SyncError.d.ts +5 -0
- package/dist/components/TablePagination.d.ts +20 -0
- package/dist/components/YouTubeVideo.d.ts +7 -0
- package/dist/components/form/ApiAutocompleteField.d.ts +14 -0
- package/dist/components/form/AutocompleteField.d.ts +11 -0
- package/dist/components/form/CheckboxField.d.ts +11 -0
- package/dist/components/form/CountryField.d.ts +10 -0
- package/dist/components/form/DatePickerField.d.ts +10 -0
- package/dist/components/form/EmailField.d.ts +5 -0
- package/dist/components/form/FirstNameField.d.ts +5 -0
- package/dist/components/form/Form.d.ts +36 -0
- package/dist/components/form/OtpField.d.ts +5 -0
- package/dist/components/form/PasswordField.d.ts +9 -0
- package/dist/components/form/RepeatField.d.ts +9 -0
- package/dist/components/form/SubmitButton.d.ts +6 -0
- package/dist/components/form/TextField.d.ts +14 -0
- package/dist/components/form/UkCountyField.d.ts +10 -0
- package/dist/components/form/index.cjs.js +2 -0
- package/dist/components/form/index.cjs.js.map +1 -0
- package/dist/components/form/index.d.ts +14 -0
- package/dist/components/form/index.es.js +18 -0
- package/dist/components/form/index.es.js.map +1 -0
- package/dist/components/index.cjs.js +11 -0
- package/dist/components/index.cjs.js.map +1 -0
- package/dist/components/index.d.ts +18 -0
- package/dist/components/index.es.js +383 -0
- package/dist/components/index.es.js.map +1 -0
- package/dist/components/page/Banner.d.ts +13 -0
- package/dist/components/page/Notification.d.ts +10 -0
- package/dist/components/page/Page.d.ts +19 -0
- package/dist/components/page/Section.d.ts +7 -0
- package/dist/components/page/TabBar.d.ts +13 -0
- package/dist/components/page/index.cjs.js +2 -0
- package/dist/components/page/index.cjs.js.map +1 -0
- package/dist/components/page/index.d.ts +5 -0
- package/dist/components/page/index.es.js +9 -0
- package/dist/components/page/index.es.js.map +1 -0
- package/dist/components/router/Link.d.ts +9 -0
- package/dist/components/router/LinkButton.d.ts +9 -0
- package/dist/components/router/LinkIconButton.d.ts +9 -0
- package/dist/components/router/LinkListItem.d.ts +9 -0
- package/dist/components/router/LinkTab.d.ts +9 -0
- package/dist/components/router/Navigate.d.ts +15 -0
- package/dist/components/router/index.cjs.js +2 -0
- package/dist/components/router/index.cjs.js.map +1 -0
- package/dist/components/router/index.d.ts +6 -0
- package/dist/components/router/index.es.js +11 -0
- package/dist/components/router/index.es.js.map +1 -0
- package/dist/components/table/CellStack.d.ts +7 -0
- package/dist/components/table/Table.d.ts +12 -0
- package/dist/components/table/index.cjs.js +2 -0
- package/dist/components/table/index.cjs.js.map +1 -0
- package/dist/components/table/index.d.ts +3 -0
- package/dist/components/table/index.es.js +9 -0
- package/dist/components/table/index.es.js.map +1 -0
- package/dist/en-gb-B_rK7Jx1.js +20 -0
- package/dist/en-gb-B_rK7Jx1.js.map +1 -0
- package/dist/en-gb-CpyEkKq3.cjs +2 -0
- package/dist/en-gb-CpyEkKq3.cjs.map +1 -0
- package/dist/features/InactiveDialog.d.ts +7 -0
- package/dist/features/ScreenTimeDialog.d.ts +7 -0
- package/dist/features/index.cjs.js +2 -0
- package/dist/features/index.cjs.js.map +1 -0
- package/dist/features/index.d.ts +4 -0
- package/dist/features/index.es.js +47 -0
- package/dist/features/index.es.js.map +1 -0
- package/dist/general-BPbbmkeX.cjs +2 -0
- package/dist/general-BPbbmkeX.cjs.map +1 -0
- package/dist/general-CtTJPCJn.js +58 -0
- package/dist/general-CtTJPCJn.js.map +1 -0
- package/dist/hooks/api.d.ts +15 -0
- package/dist/hooks/auth.d.ts +46 -0
- package/{src/hooks/form.tsx → dist/hooks/form.d.ts} +2 -5
- package/dist/hooks/general.d.ts +13 -0
- package/dist/hooks/index.cjs.js +2 -0
- package/dist/hooks/index.cjs.js.map +1 -0
- package/dist/hooks/index.d.ts +5 -0
- package/dist/hooks/index.es.js +25 -0
- package/dist/hooks/index.es.js.map +1 -0
- package/dist/hooks/router.d.ts +29 -0
- package/dist/index-2W--_sNE.js +30 -0
- package/dist/index-2W--_sNE.js.map +1 -0
- package/dist/index-BUMdUVBH.cjs +5 -0
- package/dist/index-BUMdUVBH.cjs.map +1 -0
- package/dist/index-B_Zy_zwA.cjs +2 -0
- package/dist/index-B_Zy_zwA.cjs.map +1 -0
- package/dist/index-BgsynEGX.cjs +2 -0
- package/dist/index-BgsynEGX.cjs.map +1 -0
- package/dist/index-CA-ugBSa.cjs +2 -0
- package/dist/index-CA-ugBSa.cjs.map +1 -0
- package/dist/index-CNtOlJ49.js +572 -0
- package/dist/index-CNtOlJ49.js.map +1 -0
- package/dist/index-DkM_cG3a.js +237 -0
- package/dist/index-DkM_cG3a.js.map +1 -0
- package/dist/index-Dqp7dpn3.js +1111 -0
- package/dist/index-Dqp7dpn3.js.map +1 -0
- package/dist/index.cjs.js +2 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.es.js +7 -0
- package/dist/index.es.js.map +1 -0
- package/dist/jsx-runtime-CeSfJrVB.cjs +31 -0
- package/dist/jsx-runtime-CeSfJrVB.cjs.map +1 -0
- package/dist/jsx-runtime-Dpn_P65e.js +634 -0
- package/dist/jsx-runtime-Dpn_P65e.js.map +1 -0
- package/dist/middlewares/index.cjs.js +2 -0
- package/dist/middlewares/index.cjs.js.map +1 -0
- package/dist/middlewares/index.d.ts +1 -0
- package/dist/middlewares/index.es.js +10 -0
- package/dist/middlewares/index.es.js.map +1 -0
- package/dist/middlewares/session.d.ts +2 -0
- package/dist/palette-CE2mKYse.cjs +2 -0
- package/dist/palette-CE2mKYse.cjs.map +1 -0
- package/dist/palette-C_L0akN_.js +43 -0
- package/dist/palette-C_L0akN_.js.map +1 -0
- package/dist/rtk-query.modern-CjetfYPg.js +3038 -0
- package/dist/rtk-query.modern-CjetfYPg.js.map +1 -0
- package/dist/rtk-query.modern-PBCErCqb.cjs +15 -0
- package/dist/rtk-query.modern-PBCErCqb.cjs.map +1 -0
- package/dist/schemas-BZbJpkD5.cjs +2 -0
- package/dist/schemas-BZbJpkD5.cjs.map +1 -0
- package/dist/schemas-DlOtf2vf.js +162 -0
- package/dist/schemas-DlOtf2vf.js.map +1 -0
- package/dist/scripts/index.d.ts +0 -0
- package/dist/server.cjs.js +6 -0
- package/dist/server.cjs.js.map +1 -0
- package/dist/server.d.ts +44 -0
- package/dist/server.es.js +127 -0
- package/dist/server.es.js.map +1 -0
- package/dist/session-CE2U7oL1.cjs +2 -0
- package/dist/session-CE2U7oL1.cjs.map +1 -0
- package/dist/session-CacrgFSv.cjs +2 -0
- package/dist/session-CacrgFSv.cjs.map +1 -0
- package/dist/session-D312kYKk.js +32 -0
- package/dist/session-D312kYKk.js.map +1 -0
- package/dist/session-oI-Ht2C8.js +30 -0
- package/dist/session-oI-Ht2C8.js.map +1 -0
- package/dist/settings/custom.d.ts +11 -0
- package/dist/settings/index.cjs.js +2 -0
- package/dist/settings/index.cjs.js.map +1 -0
- package/dist/settings/index.d.ts +4 -0
- package/dist/settings/index.es.js +17 -0
- package/dist/settings/index.es.js.map +1 -0
- package/dist/settings/vite.d.ts +10 -0
- package/dist/setupTests.d.ts +0 -0
- package/dist/slices/createSlice.d.ts +3 -0
- package/dist/slices/index.cjs.js +2 -0
- package/dist/slices/index.cjs.js.map +1 -0
- package/dist/slices/index.d.ts +2 -0
- package/dist/slices/index.es.js +6 -0
- package/dist/slices/index.es.js.map +1 -0
- package/dist/slices/session.d.ts +28 -0
- package/dist/style.css +1 -0
- package/dist/theme/ThemedBox.d.ts +10 -0
- package/dist/theme/colors.d.ts +18 -0
- package/dist/theme/components/MuiAccordion.d.ts +3 -0
- package/dist/theme/components/MuiAutocomplete.d.ts +3 -0
- package/dist/theme/components/MuiButton.d.ts +3 -0
- package/dist/theme/components/MuiCardActions.d.ts +3 -0
- package/dist/theme/components/MuiCheckbox.d.ts +3 -0
- package/dist/theme/components/MuiContainer.d.ts +3 -0
- package/dist/theme/components/MuiDialog.d.ts +3 -0
- package/dist/theme/components/MuiFormControlLabel.d.ts +3 -0
- package/dist/theme/components/MuiFormHelperText.d.ts +3 -0
- package/dist/theme/components/MuiGrid2.d.ts +3 -0
- package/dist/theme/components/MuiInputBase.d.ts +3 -0
- package/dist/theme/components/MuiLink.d.ts +3 -0
- package/dist/theme/components/MuiList.d.ts +3 -0
- package/dist/theme/components/MuiListItemText.d.ts +3 -0
- package/dist/theme/components/MuiMenu.d.ts +3 -0
- package/dist/theme/components/MuiMenuItem.d.ts +3 -0
- package/dist/theme/components/MuiSelect.d.ts +3 -0
- package/dist/theme/components/MuiTab.d.ts +3 -0
- package/dist/theme/components/MuiTable.d.ts +3 -0
- package/dist/theme/components/MuiTableBody.d.ts +3 -0
- package/dist/theme/components/MuiTableHead.d.ts +3 -0
- package/dist/theme/components/MuiTabs.d.ts +3 -0
- package/dist/theme/components/MuiTextField.d.ts +3 -0
- package/dist/theme/components/MuiToolbar.d.ts +3 -0
- package/dist/theme/components/MuiTypography.d.ts +3 -0
- package/dist/theme/components/_components.d.ts +11 -0
- package/dist/theme/components/index.cjs.js +2 -0
- package/dist/theme/components/index.cjs.js.map +1 -0
- package/dist/theme/components/index.d.ts +3 -0
- package/dist/theme/components/index.es.js +6 -0
- package/dist/theme/components/index.es.js.map +1 -0
- package/dist/theme/index.cjs.js +2 -0
- package/dist/theme/index.cjs.js.map +1 -0
- package/dist/theme/index.d.ts +7 -0
- package/dist/theme/index.es.js +222 -0
- package/dist/theme/index.es.js.map +1 -0
- package/dist/theme/palette.d.ts +79 -0
- package/dist/theme/spacing.d.ts +1 -0
- package/dist/theme/typography.d.ts +4 -0
- package/dist/urls-DtHr1d3H.js +14 -0
- package/dist/urls-DtHr1d3H.js.map +1 -0
- package/dist/urls-MaVXL_C2.cjs +2 -0
- package/dist/urls-MaVXL_C2.cjs.map +1 -0
- package/dist/utils/api.cjs.js +2 -0
- package/dist/utils/api.cjs.js.map +1 -0
- package/dist/utils/api.d.ts +72 -0
- package/dist/utils/api.es.js +16 -0
- package/dist/utils/api.es.js.map +1 -0
- package/dist/utils/api.test.d.ts +1 -0
- package/dist/utils/auth.cjs.js +2 -0
- package/dist/utils/auth.cjs.js.map +1 -0
- package/dist/utils/auth.d.ts +28 -0
- package/dist/utils/auth.es.js +117 -0
- package/dist/utils/auth.es.js.map +1 -0
- package/dist/utils/form.cjs.js +2 -0
- package/dist/utils/form.cjs.js.map +1 -0
- package/dist/utils/form.d.ts +25 -0
- package/dist/utils/form.es.js +76 -0
- package/dist/utils/form.es.js.map +1 -0
- package/dist/utils/form.test.d.ts +1 -0
- package/dist/utils/general.cjs.js +2 -0
- package/dist/utils/general.cjs.js.map +1 -0
- package/dist/utils/general.d.ts +30 -0
- package/{src/utils/general.ts → dist/utils/general.es.js} +87 -165
- package/dist/utils/general.es.js.map +1 -0
- package/dist/utils/general.test.d.ts +1 -0
- package/dist/utils/router.cjs.js +2 -0
- package/dist/utils/router.cjs.js.map +1 -0
- package/dist/utils/router.d.ts +19 -0
- package/dist/utils/router.es.js +33 -0
- package/dist/utils/router.es.js.map +1 -0
- package/dist/utils/router.test.d.ts +1 -0
- package/dist/utils/schema.cjs.js +2 -0
- package/dist/utils/schema.cjs.js.map +1 -0
- package/dist/utils/schema.d.ts +43 -0
- package/dist/utils/schema.es.js +123 -0
- package/dist/utils/schema.es.js.map +1 -0
- package/dist/utils/store.cjs.js +2 -0
- package/dist/utils/store.cjs.js.map +1 -0
- package/dist/utils/store.d.ts +10 -0
- package/dist/utils/store.es.js +20 -0
- package/dist/utils/store.es.js.map +1 -0
- package/dist/utils/test.cjs.js +2 -0
- package/dist/utils/test.cjs.js.map +1 -0
- package/dist/utils/test.d.ts +53 -0
- package/dist/utils/test.es.js +60 -0
- package/dist/utils/test.es.js.map +1 -0
- package/dist/utils/theme.cjs.js +2 -0
- package/dist/utils/theme.cjs.js.map +1 -0
- package/dist/utils/theme.d.ts +11 -0
- package/dist/utils/theme.es.js +12 -0
- package/dist/utils/theme.es.js.map +1 -0
- package/dist/utils/window.cjs.js +2 -0
- package/dist/utils/window.cjs.js.map +1 -0
- package/dist/utils/window.d.ts +2 -0
- package/dist/utils/window.es.js +11 -0
- package/dist/utils/window.es.js.map +1 -0
- package/package.json +142 -37
- package/.github/workflows/main.yml +0 -55
- package/.prettierignore +0 -1
- package/CHANGELOG.md +0 -2027
- package/CONTRIBUTING.md +0 -3
- package/eslint.config.js +0 -17
- package/src/api/createApi.ts +0 -91
- package/src/api/endpoints/authFactor.ts +0 -31
- package/src/api/endpoints/index.ts +0 -9
- package/src/api/endpoints/klass.ts +0 -87
- package/src/api/endpoints/school.ts +0 -34
- package/src/api/endpoints/session.ts +0 -47
- package/src/api/endpoints/user.ts +0 -70
- package/src/api/index.ts +0 -5
- package/src/api/models.ts +0 -145
- package/src/api/schemas.ts +0 -243
- package/src/api/tagTypes.ts +0 -12
- package/src/api/urls.ts +0 -13
- package/src/components/App.css +0 -38
- package/src/components/App.tsx +0 -152
- package/src/components/ClickableTooltip.tsx +0 -43
- package/src/components/CopyIconButton.test.tsx +0 -16
- package/src/components/CopyIconButton.tsx +0 -27
- package/src/components/Countdown.tsx +0 -42
- package/src/components/DownloadFileButton.tsx +0 -55
- package/src/components/ElevatedAppBar.tsx +0 -41
- package/src/components/Image.tsx +0 -41
- package/src/components/InputFileButton.tsx +0 -27
- package/src/components/ItemizedList.tsx +0 -63
- package/src/components/OrderedGrid.tsx +0 -92
- package/src/components/ScrollIntoViewLink.tsx +0 -22
- package/src/components/SyncError.tsx +0 -14
- package/src/components/TablePagination.tsx +0 -142
- package/src/components/YouTubeVideo.tsx +0 -26
- package/src/components/form/ApiAutocompleteField.tsx +0 -187
- package/src/components/form/AutocompleteField.tsx +0 -135
- package/src/components/form/CheckboxField.tsx +0 -86
- package/src/components/form/CountryField.tsx +0 -75
- package/src/components/form/DatePickerField.tsx +0 -126
- package/src/components/form/EmailField.tsx +0 -38
- package/src/components/form/FirstNameField.tsx +0 -40
- package/src/components/form/Form.tsx +0 -165
- package/src/components/form/OtpField.tsx +0 -28
- package/src/components/form/PasswordField.tsx +0 -71
- package/src/components/form/RepeatField.tsx +0 -123
- package/src/components/form/SubmitButton.tsx +0 -57
- package/src/components/form/TextField.tsx +0 -150
- package/src/components/form/UkCountyField.tsx +0 -68
- package/src/components/form/index.tsx +0 -35
- package/src/components/index.ts +0 -28
- package/src/components/page/Banner.tsx +0 -95
- package/src/components/page/Notification.tsx +0 -71
- package/src/components/page/Page.tsx +0 -73
- package/src/components/page/Section.tsx +0 -21
- package/src/components/page/TabBar.tsx +0 -131
- package/src/components/page/index.ts +0 -10
- package/src/components/router/Link.tsx +0 -23
- package/src/components/router/LinkButton.tsx +0 -22
- package/src/components/router/LinkIconButton.tsx +0 -22
- package/src/components/router/LinkListItem.tsx +0 -22
- package/src/components/router/LinkTab.tsx +0 -22
- package/src/components/router/Navigate.tsx +0 -33
- package/src/components/router/index.tsx +0 -9
- package/src/components/table/CellStack.tsx +0 -19
- package/src/components/table/Table.tsx +0 -55
- package/src/components/table/index.tsx +0 -8
- package/src/features/InactiveDialog.tsx +0 -40
- package/src/features/ScreenTimeDialog.tsx +0 -30
- package/src/features/index.ts +0 -4
- package/src/fonts/ttf/Inter-VariableFont_slnt,wght.ttf +0 -0
- package/src/fonts/ttf/SpaceGrotesk-VariableFont_wght.ttf +0 -0
- package/src/hooks/api.tsx +0 -39
- package/src/hooks/auth.tsx +0 -397
- package/src/hooks/general.tsx +0 -110
- package/src/hooks/index.ts +0 -5
- package/src/hooks/router.tsx +0 -168
- package/src/images/svg/brain.svg +0 -1
- package/src/index.ts +0 -2
- package/src/middlewares/index.ts +0 -1
- package/src/middlewares/session.ts +0 -21
- package/src/scripts/freshDesk.js +0 -473
- package/src/scripts/index.ts +0 -1
- package/src/server.js +0 -187
- package/src/settings/custom.ts +0 -22
- package/src/settings/index.ts +0 -7
- package/src/settings/vite.ts +0 -26
- package/src/setupTests.ts +0 -2
- package/src/slices/createSlice.ts +0 -8
- package/src/slices/index.ts +0 -2
- package/src/slices/session.ts +0 -32
- package/src/theme/ThemedBox.tsx +0 -265
- package/src/theme/colors.ts +0 -57
- package/src/theme/components/MuiAccordion.tsx +0 -13
- package/src/theme/components/MuiAutocomplete.tsx +0 -11
- package/src/theme/components/MuiButton.ts +0 -70
- package/src/theme/components/MuiCardActions.tsx +0 -12
- package/src/theme/components/MuiCheckbox.ts +0 -12
- package/src/theme/components/MuiContainer.ts +0 -19
- package/src/theme/components/MuiDialog.tsx +0 -16
- package/src/theme/components/MuiFormControlLabel.ts +0 -18
- package/src/theme/components/MuiFormHelperText.ts +0 -12
- package/src/theme/components/MuiGrid2.ts +0 -16
- package/src/theme/components/MuiInputBase.ts +0 -14
- package/src/theme/components/MuiLink.ts +0 -41
- package/src/theme/components/MuiList.ts +0 -12
- package/src/theme/components/MuiListItemText.ts +0 -18
- package/src/theme/components/MuiMenu.ts +0 -14
- package/src/theme/components/MuiMenuItem.ts +0 -15
- package/src/theme/components/MuiSelect.ts +0 -16
- package/src/theme/components/MuiTab.ts +0 -29
- package/src/theme/components/MuiTable.ts +0 -29
- package/src/theme/components/MuiTableBody.ts +0 -15
- package/src/theme/components/MuiTableHead.ts +0 -26
- package/src/theme/components/MuiTabs.ts +0 -26
- package/src/theme/components/MuiTextField.ts +0 -86
- package/src/theme/components/MuiToolbar.ts +0 -11
- package/src/theme/components/MuiTypography.ts +0 -12
- package/src/theme/components/_components.ts +0 -95
- package/src/theme/components/index.ts +0 -57
- package/src/theme/index.ts +0 -25
- package/src/theme/palette.ts +0 -98
- package/src/theme/spacing.ts +0 -8
- package/src/theme/typography.ts +0 -101
- package/src/utils/api.test.ts +0 -19
- package/src/utils/api.tsx +0 -339
- package/src/utils/auth.ts +0 -78
- package/src/utils/form.test.ts +0 -50
- package/src/utils/form.ts +0 -193
- package/src/utils/general.test.ts +0 -55
- package/src/utils/router.test.ts +0 -156
- package/src/utils/router.ts +0 -67
- package/src/utils/schema.ts +0 -290
- package/src/utils/store.ts +0 -31
- package/src/utils/test.tsx +0 -82
- package/src/utils/theme.tsx +0 -83
- package/src/utils/window.ts +0 -11
- package/src/vite-env.d.ts +0 -1
- package/tsconfig.app.json +0 -4
- package/tsconfig.json +0 -7
- package/tsconfig.node.json +0 -4
- package/types/fixes.d.ts +0 -18
- 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 {
|
|
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,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
|