codeforlife 2.11.5 → 2.11.7

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 (166) hide show
  1. package/dist/Countdown-CL7dyZrl.cjs +2 -0
  2. package/dist/{Countdown-BtUbr1J_.cjs.map → Countdown-CL7dyZrl.cjs.map} +1 -1
  3. package/dist/Countdown-snRYiLrs.js +28 -0
  4. package/dist/{Countdown-DhjAmB0u.js.map → Countdown-snRYiLrs.js.map} +1 -1
  5. package/dist/Image-B_6DmnVe.cjs +2 -0
  6. package/dist/{Image-CgRVUblT.cjs.map → Image-B_6DmnVe.cjs.map} +1 -1
  7. package/dist/{Image-DTOu0h-V.js → Image-mkNhOo5p.js} +3 -3
  8. package/dist/{Image-DTOu0h-V.js.map → Image-mkNhOo5p.js.map} +1 -1
  9. package/dist/LinkButton-BQMG96aQ.cjs +2 -0
  10. package/dist/{LinkButton-Kw2brLTK.cjs.map → LinkButton-BQMG96aQ.cjs.map} +1 -1
  11. package/dist/LinkButton-CRDs950E.js +12 -0
  12. package/dist/{LinkButton-sQ5jgHnX.js.map → LinkButton-CRDs950E.js.map} +1 -1
  13. package/dist/Navigate-Ch0ljYa-.cjs +2 -0
  14. package/dist/{Navigate-CrMwdIBB.cjs.map → Navigate-Ch0ljYa-.cjs.map} +1 -1
  15. package/dist/Navigate-Zt9DRJve.js +25 -0
  16. package/dist/{Navigate-ClPcw87e.js.map → Navigate-Zt9DRJve.js.map} +1 -1
  17. package/dist/api/endpoints/index.cjs.js +1 -1
  18. package/dist/api/endpoints/index.cjs.js.map +1 -1
  19. package/dist/api/endpoints/index.es.js +29 -28
  20. package/dist/api/endpoints/index.es.js.map +1 -1
  21. package/dist/api/index.cjs.js +1 -3
  22. package/dist/api/index.cjs.js.map +1 -1
  23. package/dist/api/index.es.js +33 -515
  24. package/dist/api/index.es.js.map +1 -1
  25. package/dist/api-DIgp_6Vr.cjs +2 -0
  26. package/dist/{api-9cnyvZj7.cjs.map → api-DIgp_6Vr.cjs.map} +1 -1
  27. package/dist/api-G8CV5bUa.cjs +2 -0
  28. package/dist/{api-CAH3GT1O.cjs.map → api-G8CV5bUa.cjs.map} +1 -1
  29. package/dist/{api-BFYu8ZvQ.js → api-uh8UKwsU.js} +25 -25
  30. package/dist/{api-BFYu8ZvQ.js.map → api-uh8UKwsU.js.map} +1 -1
  31. package/dist/auth-B6anBtxF.js +238 -0
  32. package/dist/{auth-Bb8WkZGN.js.map → auth-B6anBtxF.js.map} +1 -1
  33. package/dist/auth-C2OUeLmQ.cjs +2 -0
  34. package/dist/{auth-BwpsrTko.cjs.map → auth-C2OUeLmQ.cjs.map} +1 -1
  35. package/dist/components/form/index.cjs.js +1 -1
  36. package/dist/components/form/index.es.js +1 -1
  37. package/dist/components/index.cjs.js +1 -1
  38. package/dist/components/index.cjs.js.map +1 -1
  39. package/dist/components/index.es.js +118 -118
  40. package/dist/components/index.es.js.map +1 -1
  41. package/dist/components/page/index.cjs.js +1 -1
  42. package/dist/components/page/index.es.js +1 -1
  43. package/dist/components/router/index.cjs.js +1 -1
  44. package/dist/components/router/index.es.js +2 -2
  45. package/dist/components/table/index.cjs.js +1 -1
  46. package/dist/components/table/index.es.js +1 -1
  47. package/dist/features/index.cjs.js +1 -1
  48. package/dist/features/index.cjs.js.map +1 -1
  49. package/dist/features/index.es.js +24 -22
  50. package/dist/features/index.es.js.map +1 -1
  51. package/dist/general-BPbbmkeX.cjs +2 -0
  52. package/dist/{general-Bo6JGvKB.cjs.map → general-BPbbmkeX.cjs.map} +1 -1
  53. package/dist/hooks/index.cjs.js +1 -1
  54. package/dist/hooks/index.es.js +1 -1
  55. package/dist/index-B3QkMBQe.cjs +2 -0
  56. package/dist/{index-5C9hpxRF.cjs.map → index-B3QkMBQe.cjs.map} +1 -1
  57. package/dist/index-BIL7PoEV.js +622 -0
  58. package/dist/index-BIL7PoEV.js.map +1 -0
  59. package/dist/index-C08WO83n.js +237 -0
  60. package/dist/{index-hdS8RgRc.js.map → index-C08WO83n.js.map} +1 -1
  61. package/dist/{index-CHboZsxD.js → index-CDxf6gMv.js} +92 -92
  62. package/dist/{index-CHboZsxD.js.map → index-CDxf6gMv.js.map} +1 -1
  63. package/dist/index-D2B9uIE4.cjs +2 -0
  64. package/dist/{index-B89FjK7v.cjs.map → index-D2B9uIE4.cjs.map} +1 -1
  65. package/dist/index-Dadidnct.cjs +2 -0
  66. package/dist/index-Dadidnct.cjs.map +1 -0
  67. package/dist/index-IXGAdLKG.js +30 -0
  68. package/dist/{index-B3e_XaVG.js.map → index-IXGAdLKG.js.map} +1 -1
  69. package/dist/index-JY2Et3RQ.cjs +2 -0
  70. package/dist/{index-CwC9mpb3.cjs.map → index-JY2Et3RQ.cjs.map} +1 -1
  71. package/dist/{schemas-BMQZbhti.js → schemas-UIk-meAN.js} +2 -2
  72. package/dist/{schemas-BMQZbhti.js.map → schemas-UIk-meAN.js.map} +1 -1
  73. package/dist/schemas-hIW9-H6-.cjs +2 -0
  74. package/dist/{schemas-DXX4rh8i.cjs.map → schemas-hIW9-H6-.cjs.map} +1 -1
  75. package/dist/server/App.cjs.js +1 -1
  76. package/dist/server/App.cjs.js.map +1 -1
  77. package/dist/server/App.es.js +11 -11
  78. package/dist/server/App.es.js.map +1 -1
  79. package/dist/server/entry.cjs.js +1 -1
  80. package/dist/server/entry.cjs.js.map +1 -1
  81. package/dist/server/entry.es.js +17 -17
  82. package/dist/server/entry.es.js.map +1 -1
  83. package/dist/{session-D312kYKk.js → session-COyN01K0.js} +11 -10
  84. package/dist/{session-D312kYKk.js.map → session-COyN01K0.js.map} +1 -1
  85. package/dist/session-eOp0H-EC.cjs +2 -0
  86. package/dist/{session-CacrgFSv.cjs.map → session-eOp0H-EC.cjs.map} +1 -1
  87. package/dist/theme/components/index.cjs.js +1 -1
  88. package/dist/theme/components/index.es.js +1 -1
  89. package/dist/theme/index.cjs.js +1 -1
  90. package/dist/theme/index.cjs.js.map +1 -1
  91. package/dist/theme/index.es.js +49 -49
  92. package/dist/theme/index.es.js.map +1 -1
  93. package/dist/{urls-CGZI0f1w.cjs → urls-2gheISSO.cjs} +2 -2
  94. package/dist/{urls-CGZI0f1w.cjs.map → urls-2gheISSO.cjs.map} +1 -1
  95. package/dist/{urls-DP4a8kxP.js → urls-BG788CnL.js} +2 -2
  96. package/dist/{urls-DP4a8kxP.js.map → urls-BG788CnL.js.map} +1 -1
  97. package/dist/utils/api.cjs.js +1 -1
  98. package/dist/utils/api.es.js +2 -2
  99. package/dist/utils/router.cjs.js +1 -1
  100. package/dist/utils/router.cjs.js.map +1 -1
  101. package/dist/utils/router.es.js +2 -2
  102. package/dist/utils/store.cjs.js +1 -1
  103. package/dist/utils/store.cjs.js.map +1 -1
  104. package/dist/utils/store.es.js +6 -6
  105. package/dist/utils/test.cjs.js +1 -1
  106. package/dist/utils/test.cjs.js.map +1 -1
  107. package/dist/utils/test.es.js +9 -9
  108. package/dist/utils/test.es.js.map +1 -1
  109. package/dist/utils/theme.cjs.js +1 -1
  110. package/dist/utils/theme.es.js +2 -2
  111. package/package.json +1 -1
  112. package/dist/Countdown-BtUbr1J_.cjs +0 -2
  113. package/dist/Countdown-DhjAmB0u.js +0 -28
  114. package/dist/Image-CgRVUblT.cjs +0 -2
  115. package/dist/LinkButton-Kw2brLTK.cjs +0 -2
  116. package/dist/LinkButton-sQ5jgHnX.js +0 -12
  117. package/dist/Navigate-ClPcw87e.js +0 -25
  118. package/dist/Navigate-CrMwdIBB.cjs +0 -2
  119. package/dist/_commonjsHelpers-DKOUU3wS.cjs +0 -2
  120. package/dist/_commonjsHelpers-DKOUU3wS.cjs.map +0 -1
  121. package/dist/_commonjsHelpers-DaMA6jEr.js +0 -9
  122. package/dist/_commonjsHelpers-DaMA6jEr.js.map +0 -1
  123. package/dist/api-9cnyvZj7.cjs +0 -2
  124. package/dist/api-CAH3GT1O.cjs +0 -2
  125. package/dist/auth-Bb8WkZGN.js +0 -237
  126. package/dist/auth-BwpsrTko.cjs +0 -2
  127. package/dist/client-CUE3jVb4.js +0 -25227
  128. package/dist/client-CUE3jVb4.js.map +0 -1
  129. package/dist/client-C_dmBP2e.cjs +0 -251
  130. package/dist/client-C_dmBP2e.cjs.map +0 -1
  131. package/dist/emotion-server-create-instance.browser.esm-CgeoyX9a.js +0 -2122
  132. package/dist/emotion-server-create-instance.browser.esm-CgeoyX9a.js.map +0 -1
  133. package/dist/emotion-server-create-instance.browser.esm-CpbXhK4a.cjs +0 -6
  134. package/dist/emotion-server-create-instance.browser.esm-CpbXhK4a.cjs.map +0 -1
  135. package/dist/en-gb-B_rK7Jx1.js +0 -20
  136. package/dist/en-gb-B_rK7Jx1.js.map +0 -1
  137. package/dist/en-gb-CpyEkKq3.cjs +0 -2
  138. package/dist/en-gb-CpyEkKq3.cjs.map +0 -1
  139. package/dist/general-Bo6JGvKB.cjs +0 -2
  140. package/dist/index-5C9hpxRF.cjs +0 -2
  141. package/dist/index-B3e_XaVG.js +0 -30
  142. package/dist/index-B89FjK7v.cjs +0 -2
  143. package/dist/index-BRHFlEjS.js +0 -1187
  144. package/dist/index-BRHFlEjS.js.map +0 -1
  145. package/dist/index-CwC9mpb3.cjs +0 -2
  146. package/dist/index-DuArGzQE.cjs +0 -5
  147. package/dist/index-DuArGzQE.cjs.map +0 -1
  148. package/dist/index-hdS8RgRc.js +0 -237
  149. package/dist/jsx-runtime-B2pbW5Fp.cjs +0 -23
  150. package/dist/jsx-runtime-B2pbW5Fp.cjs.map +0 -1
  151. package/dist/jsx-runtime-lzYHhGH3.js +0 -285
  152. package/dist/jsx-runtime-lzYHhGH3.js.map +0 -1
  153. package/dist/rtk-query.modern-CjetfYPg.js +0 -3038
  154. package/dist/rtk-query.modern-CjetfYPg.js.map +0 -1
  155. package/dist/rtk-query.modern-PBCErCqb.cjs +0 -15
  156. package/dist/rtk-query.modern-PBCErCqb.cjs.map +0 -1
  157. package/dist/schemas-DXX4rh8i.cjs +0 -2
  158. package/dist/server.browser-DeLuEZOk.cjs +0 -205
  159. package/dist/server.browser-DeLuEZOk.cjs.map +0 -1
  160. package/dist/server.browser-gAvZ6xhz.js +0 -19744
  161. package/dist/server.browser-gAvZ6xhz.js.map +0 -1
  162. package/dist/session-CacrgFSv.cjs +0 -2
  163. package/dist/style-BgmNVuOg.cjs +0 -2
  164. package/dist/style-BgmNVuOg.cjs.map +0 -1
  165. package/dist/style-C3515J9T.js +0 -5
  166. package/dist/style-C3515J9T.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"schemas-DXX4rh8i.cjs","sources":["../src/api/schemas.ts"],"sourcesContent":["import * as yup from \"yup\"\n\nimport type {\n AdminSchoolTeacher,\n AdminSchoolTeacherUser,\n AuthFactor,\n Class,\n IndependentUser,\n NonAdminSchoolTeacher,\n NonAdminSchoolTeacherUser,\n NonSchoolTeacher,\n NonSchoolTeacherUser,\n OtpBypassToken,\n School,\n SchoolTeacher,\n SchoolTeacherUser,\n Student,\n StudentUser,\n Teacher,\n TeacherUser,\n User,\n} from \"./models\"\nimport { COUNTRY_ISO_CODES, UK_COUNTIES } from \"../utils/general\"\nimport {\n lowercaseAsciiAlphanumericString,\n numericId,\n unicodeAlphanumericString,\n uppercaseAsciiAlphanumericString,\n} from \"../utils/schema\"\nimport { type Schemas } from \"../utils/api\"\n\n// NOTE: do not use .required() here.\nconst id = {\n user: numericId(),\n teacher: numericId(),\n student: numericId(),\n school: numericId(),\n klass: uppercaseAsciiAlphanumericString().length(5),\n authFactor: numericId(),\n otpBypassToken: numericId(),\n}\n\n// -----------------------------------------------------------------------------\n// User Schemas\n// -----------------------------------------------------------------------------\n\nconst _userTeacher: Omit<Schemas<Teacher>, \"user\"> = {\n id: id.teacher.required(),\n school: id.school,\n is_admin: yup.bool().required(),\n}\n\nconst _userStudent: Omit<Schemas<Student>, \"user\"> = {\n id: id.student.required(),\n school: id.school.required(),\n klass: id.klass.required(),\n auto_gen_password: yup.string().required(),\n}\n\nexport const user: Schemas<User> = {\n id: id.user.required(),\n requesting_to_join_class: id.klass,\n first_name: unicodeAlphanumericString({\n spaces: true,\n specialChars: \"-'\",\n })\n .required()\n .max(150),\n last_name: unicodeAlphanumericString({\n spaces: true,\n specialChars: \"-'\",\n }).max(150),\n last_login: yup.date(),\n email: yup.string().email(),\n password: yup.string().required(),\n is_staff: yup.bool().required(),\n is_active: yup.bool().required(),\n date_joined: yup.date().required(),\n teacher: yup.object(_userTeacher).optional(),\n student: yup.object(_userStudent).optional(),\n}\n\nexport const teacherUser: Schemas<TeacherUser> = {\n ...user,\n password: user.password\n .min(10, \"must be at least 10 characters long\")\n .matches(/[A-Z]/, \"must contain at least one uppercase letter\")\n .matches(/[a-z]/, \"must contain at least one lowercase letter\")\n .matches(/[0-9]/, \"must contain at least one digit\")\n .matches(\n /[!@#$%^&*()_+\\-=[\\]{};':\"\\\\|,.<>/?]/,\n \"must contain at least one special character\",\n ),\n email: user.email.required(),\n last_name: user.last_name.required(),\n teacher: user.teacher.required(),\n student: yup.string().oneOf([undefined]),\n}\n\nconst _userSchoolTeacher: Omit<Schemas<SchoolTeacher>, \"user\"> = {\n ..._userTeacher,\n school: _userTeacher.school.required(),\n}\n\nexport const schoolTeacherUser: Schemas<SchoolTeacherUser> = {\n ...teacherUser,\n teacher: yup.object(_userSchoolTeacher),\n}\n\nconst _userAdminSchoolTeacher: Omit<Schemas<AdminSchoolTeacher>, \"user\"> = {\n ..._userSchoolTeacher,\n is_admin: _userSchoolTeacher.is_admin.isTrue(),\n}\n\nexport const adminSchoolTeacherUser: Schemas<AdminSchoolTeacherUser> = {\n ...schoolTeacherUser,\n teacher: yup.object(_userAdminSchoolTeacher),\n}\n\nconst _userNonAdminSchoolTeacher: Omit<\n Schemas<NonAdminSchoolTeacher>,\n \"user\"\n> = {\n ..._userSchoolTeacher,\n is_admin: _userSchoolTeacher.is_admin.isFalse(),\n}\n\nexport const nonAdminSchoolTeacherUser: Schemas<NonAdminSchoolTeacherUser> = {\n ...schoolTeacherUser,\n teacher: yup.object(_userNonAdminSchoolTeacher),\n}\n\nconst _userNonSchoolTeacher: Omit<Schemas<NonSchoolTeacher>, \"user\"> = {\n ..._userTeacher,\n school: yup.string().oneOf([undefined]),\n is_admin: _userTeacher.is_admin.isFalse(),\n}\n\nexport const nonSchoolTeacherUser: Schemas<NonSchoolTeacherUser> = {\n ...teacherUser,\n teacher: yup.object(_userNonSchoolTeacher),\n}\n\nexport const studentUser: Schemas<StudentUser> = {\n ...user,\n password: user.password.min(6, \"must be at least 6 characters long\"),\n email: user.email.oneOf([undefined]),\n last_name: user.last_name.oneOf([undefined]),\n teacher: yup.string().oneOf([undefined]),\n student: user.student.required(),\n}\n\nexport const indyUser: Schemas<IndependentUser> = {\n ...user,\n password: user.password\n .min(8, \"must be at least 8 characters long\")\n .matches(/[A-Z]/, \"must contain at least one uppercase letter\")\n .matches(/[a-z]/, \"must contain at least one lowercase letter\")\n .matches(/[0-9]/, \"must contain at least one digit\"),\n email: user.email.required(),\n last_name: user.last_name.required(),\n teacher: yup.string().oneOf([undefined]),\n student: yup.string().oneOf([undefined]),\n}\n\n// -----------------------------------------------------------------------------\n// Teacher Schemas\n// -----------------------------------------------------------------------------\n\nexport const teacher: Schemas<Teacher> = {\n ..._userTeacher,\n user: id.user.required(),\n}\n\nexport const schoolTeacher: Schemas<SchoolTeacher> = {\n ..._userSchoolTeacher,\n user: id.user.required(),\n}\n\nexport const adminSchoolTeacher: Schemas<AdminSchoolTeacher> = {\n ..._userAdminSchoolTeacher,\n user: id.user.required(),\n}\n\nexport const nonAdminSchoolTeacher: Schemas<NonAdminSchoolTeacher> = {\n ..._userNonAdminSchoolTeacher,\n user: id.user.required(),\n}\n\nexport const nonSchoolTeacher: Schemas<NonSchoolTeacher> = {\n ..._userNonSchoolTeacher,\n user: id.user.required(),\n}\n\n// -----------------------------------------------------------------------------\n// Other Schemas\n// -----------------------------------------------------------------------------\n\nexport const student: Schemas<Student> = {\n ..._userStudent,\n user: id.user.required(),\n}\n\nexport const school: Schemas<School> = {\n id: id.school.required(),\n name: unicodeAlphanumericString({\n spaces: true,\n specialChars: \"'.\",\n })\n .required()\n .max(200),\n country: yup.string().oneOf(COUNTRY_ISO_CODES),\n uk_county: yup.string().oneOf(UK_COUNTIES),\n}\n\nexport const klass: Schemas<Class> = {\n id: id.klass.required(),\n teacher: id.teacher.required(),\n school: id.school.required(),\n name: unicodeAlphanumericString({\n spaces: true,\n specialChars: \"-_\",\n })\n .required()\n .max(200),\n read_classmates_data: yup.bool().required(),\n receive_requests_until: yup.date(),\n}\n\nexport const authFactor: Schemas<AuthFactor> = {\n id: id.authFactor.required(),\n user: id.user.required(),\n type: yup\n .string()\n .oneOf([\"otp\"] as const)\n .required(),\n}\n\nexport const otpBypassToken: Schemas<OtpBypassToken> = {\n id: id.otpBypassToken.required(),\n user: id.user.required(),\n token: lowercaseAsciiAlphanumericString().required().length(8),\n}\n"],"names":["id","numericId","uppercaseAsciiAlphanumericString","_userTeacher","yup","_userStudent","user","unicodeAlphanumericString","teacherUser","_userSchoolTeacher","schoolTeacherUser","_userAdminSchoolTeacher","adminSchoolTeacherUser","_userNonAdminSchoolTeacher","nonAdminSchoolTeacherUser","_userNonSchoolTeacher","nonSchoolTeacherUser","studentUser","indyUser","teacher","schoolTeacher","adminSchoolTeacher","nonAdminSchoolTeacher","nonSchoolTeacher","student","school","COUNTRY_ISO_CODES","UK_COUNTIES","klass","authFactor","otpBypassToken","lowercaseAsciiAlphanumericString"],"mappings":"ofAgCMA,EAAK,CACT,KAAMC,EAAAA,UAAA,EACN,QAASA,EAAAA,UAAA,EACT,QAASA,EAAAA,UAAA,EACT,OAAQA,EAAAA,UAAA,EACR,MAAOC,EAAAA,iCAAA,EAAmC,OAAO,CAAC,EAClD,WAAYD,EAAAA,UAAA,EACZ,eAAgBA,EAAAA,UAAA,CAClB,EAMME,EAA+C,CACnD,GAAIH,EAAG,QAAQ,SAAA,EACf,OAAQA,EAAG,OACX,SAAUI,EAAI,KAAA,EAAO,SAAA,CACvB,EAEMC,EAA+C,CACnD,GAAIL,EAAG,QAAQ,SAAA,EACf,OAAQA,EAAG,OAAO,SAAA,EAClB,MAAOA,EAAG,MAAM,SAAA,EAChB,kBAAmBI,EAAI,OAAA,EAAS,SAAA,CAClC,EAEaE,EAAsB,CACjC,GAAIN,EAAG,KAAK,SAAA,EACZ,yBAA0BA,EAAG,MAC7B,WAAYO,EAAAA,0BAA0B,CACpC,OAAQ,GACR,aAAc,IAAA,CACf,EACE,SAAA,EACA,IAAI,GAAG,EACV,UAAWA,EAAAA,0BAA0B,CACnC,OAAQ,GACR,aAAc,IAAA,CACf,EAAE,IAAI,GAAG,EACV,WAAYH,EAAI,KAAA,EAChB,MAAOA,EAAI,OAAA,EAAS,MAAA,EACpB,SAAUA,EAAI,OAAA,EAAS,SAAA,EACvB,SAAUA,EAAI,KAAA,EAAO,SAAA,EACrB,UAAWA,EAAI,KAAA,EAAO,SAAA,EACtB,YAAaA,EAAI,KAAA,EAAO,SAAA,EACxB,QAASA,EAAI,OAAOD,CAAY,EAAE,SAAA,EAClC,QAASC,EAAI,OAAOC,CAAY,EAAE,SAAA,CACpC,EAEaG,EAAoC,CAC/C,GAAGF,EACH,SAAUA,EAAK,SACZ,IAAI,GAAI,qCAAqC,EAC7C,QAAQ,QAAS,4CAA4C,EAC7D,QAAQ,QAAS,4CAA4C,EAC7D,QAAQ,QAAS,iCAAiC,EAClD,QACC,sCACA,6CAAA,EAEJ,MAAOA,EAAK,MAAM,SAAA,EAClB,UAAWA,EAAK,UAAU,SAAA,EAC1B,QAASA,EAAK,QAAQ,SAAA,EACtB,QAASF,EAAI,OAAA,EAAS,MAAM,CAAC,MAAS,CAAC,CACzC,EAEMK,EAA2D,CAC/D,GAAGN,EACH,OAAQA,EAAa,OAAO,SAAA,CAC9B,EAEaO,EAAgD,CAC3D,GAAGF,EACH,QAASJ,EAAI,OAAOK,CAAkB,CACxC,EAEME,EAAqE,CACzE,GAAGF,EACH,SAAUA,EAAmB,SAAS,OAAA,CACxC,EAEaG,EAA0D,CACrE,GAAGF,EACH,QAASN,EAAI,OAAOO,CAAuB,CAC7C,EAEME,EAGF,CACF,GAAGJ,EACH,SAAUA,EAAmB,SAAS,QAAA,CACxC,EAEaK,EAAgE,CAC3E,GAAGJ,EACH,QAASN,EAAI,OAAOS,CAA0B,CAChD,EAEME,EAAiE,CACrE,GAAGZ,EACH,OAAQC,EAAI,OAAA,EAAS,MAAM,CAAC,MAAS,CAAC,EACtC,SAAUD,EAAa,SAAS,QAAA,CAClC,EAEaa,EAAsD,CACjE,GAAGR,EACH,QAASJ,EAAI,OAAOW,CAAqB,CAC3C,EAEaE,EAAoC,CAC/C,GAAGX,EACH,SAAUA,EAAK,SAAS,IAAI,EAAG,oCAAoC,EACnE,MAAOA,EAAK,MAAM,MAAM,CAAC,MAAS,CAAC,EACnC,UAAWA,EAAK,UAAU,MAAM,CAAC,MAAS,CAAC,EAC3C,QAASF,EAAI,OAAA,EAAS,MAAM,CAAC,MAAS,CAAC,EACvC,QAASE,EAAK,QAAQ,SAAA,CACxB,EAEaY,EAAqC,CAChD,GAAGZ,EACH,SAAUA,EAAK,SACZ,IAAI,EAAG,oCAAoC,EAC3C,QAAQ,QAAS,4CAA4C,EAC7D,QAAQ,QAAS,4CAA4C,EAC7D,QAAQ,QAAS,iCAAiC,EACrD,MAAOA,EAAK,MAAM,SAAA,EAClB,UAAWA,EAAK,UAAU,SAAA,EAC1B,QAASF,EAAI,OAAA,EAAS,MAAM,CAAC,MAAS,CAAC,EACvC,QAASA,EAAI,OAAA,EAAS,MAAM,CAAC,MAAS,CAAC,CACzC,EAMae,EAA4B,CACvC,GAAGhB,EACH,KAAMH,EAAG,KAAK,SAAA,CAChB,EAEaoB,EAAwC,CACnD,GAAGX,EACH,KAAMT,EAAG,KAAK,SAAA,CAChB,EAEaqB,EAAkD,CAC7D,GAAGV,EACH,KAAMX,EAAG,KAAK,SAAA,CAChB,EAEasB,EAAwD,CACnE,GAAGT,EACH,KAAMb,EAAG,KAAK,SAAA,CAChB,EAEauB,EAA8C,CACzD,GAAGR,EACH,KAAMf,EAAG,KAAK,SAAA,CAChB,EAMawB,EAA4B,CACvC,GAAGnB,EACH,KAAML,EAAG,KAAK,SAAA,CAChB,EAEayB,EAA0B,CACrC,GAAIzB,EAAG,OAAO,SAAA,EACd,KAAMO,EAAAA,0BAA0B,CAC9B,OAAQ,GACR,aAAc,IAAA,CACf,EACE,SAAA,EACA,IAAI,GAAG,EACV,QAASH,EAAI,SAAS,MAAMsB,EAAAA,iBAAiB,EAC7C,UAAWtB,EAAI,OAAA,EAAS,MAAMuB,EAAAA,WAAW,CAC3C,EAEaC,EAAwB,CACnC,GAAI5B,EAAG,MAAM,SAAA,EACb,QAASA,EAAG,QAAQ,SAAA,EACpB,OAAQA,EAAG,OAAO,SAAA,EAClB,KAAMO,EAAAA,0BAA0B,CAC9B,OAAQ,GACR,aAAc,IAAA,CACf,EACE,SAAA,EACA,IAAI,GAAG,EACV,qBAAsBH,EAAI,KAAA,EAAO,SAAA,EACjC,uBAAwBA,EAAI,KAAA,CAC9B,EAEayB,EAAkC,CAC7C,GAAI7B,EAAG,WAAW,SAAA,EAClB,KAAMA,EAAG,KAAK,SAAA,EACd,KAAMI,EACH,OAAA,EACA,MAAM,CAAC,KAAK,CAAU,EACtB,SAAA,CACL,EAEa0B,EAA0C,CACrD,GAAI9B,EAAG,eAAe,SAAA,EACtB,KAAMA,EAAG,KAAK,SAAA,EACd,MAAO+B,EAAAA,iCAAA,EAAmC,SAAA,EAAW,OAAO,CAAC,CAC/D"}
1
+ {"version":3,"file":"schemas-hIW9-H6-.cjs","sources":["../src/api/schemas.ts"],"sourcesContent":["import * as yup from \"yup\"\n\nimport type {\n AdminSchoolTeacher,\n AdminSchoolTeacherUser,\n AuthFactor,\n Class,\n IndependentUser,\n NonAdminSchoolTeacher,\n NonAdminSchoolTeacherUser,\n NonSchoolTeacher,\n NonSchoolTeacherUser,\n OtpBypassToken,\n School,\n SchoolTeacher,\n SchoolTeacherUser,\n Student,\n StudentUser,\n Teacher,\n TeacherUser,\n User,\n} from \"./models\"\nimport { COUNTRY_ISO_CODES, UK_COUNTIES } from \"../utils/general\"\nimport {\n lowercaseAsciiAlphanumericString,\n numericId,\n unicodeAlphanumericString,\n uppercaseAsciiAlphanumericString,\n} from \"../utils/schema\"\nimport { type Schemas } from \"../utils/api\"\n\n// NOTE: do not use .required() here.\nconst id = {\n user: numericId(),\n teacher: numericId(),\n student: numericId(),\n school: numericId(),\n klass: uppercaseAsciiAlphanumericString().length(5),\n authFactor: numericId(),\n otpBypassToken: numericId(),\n}\n\n// -----------------------------------------------------------------------------\n// User Schemas\n// -----------------------------------------------------------------------------\n\nconst _userTeacher: Omit<Schemas<Teacher>, \"user\"> = {\n id: id.teacher.required(),\n school: id.school,\n is_admin: yup.bool().required(),\n}\n\nconst _userStudent: Omit<Schemas<Student>, \"user\"> = {\n id: id.student.required(),\n school: id.school.required(),\n klass: id.klass.required(),\n auto_gen_password: yup.string().required(),\n}\n\nexport const user: Schemas<User> = {\n id: id.user.required(),\n requesting_to_join_class: id.klass,\n first_name: unicodeAlphanumericString({\n spaces: true,\n specialChars: \"-'\",\n })\n .required()\n .max(150),\n last_name: unicodeAlphanumericString({\n spaces: true,\n specialChars: \"-'\",\n }).max(150),\n last_login: yup.date(),\n email: yup.string().email(),\n password: yup.string().required(),\n is_staff: yup.bool().required(),\n is_active: yup.bool().required(),\n date_joined: yup.date().required(),\n teacher: yup.object(_userTeacher).optional(),\n student: yup.object(_userStudent).optional(),\n}\n\nexport const teacherUser: Schemas<TeacherUser> = {\n ...user,\n password: user.password\n .min(10, \"must be at least 10 characters long\")\n .matches(/[A-Z]/, \"must contain at least one uppercase letter\")\n .matches(/[a-z]/, \"must contain at least one lowercase letter\")\n .matches(/[0-9]/, \"must contain at least one digit\")\n .matches(\n /[!@#$%^&*()_+\\-=[\\]{};':\"\\\\|,.<>/?]/,\n \"must contain at least one special character\",\n ),\n email: user.email.required(),\n last_name: user.last_name.required(),\n teacher: user.teacher.required(),\n student: yup.string().oneOf([undefined]),\n}\n\nconst _userSchoolTeacher: Omit<Schemas<SchoolTeacher>, \"user\"> = {\n ..._userTeacher,\n school: _userTeacher.school.required(),\n}\n\nexport const schoolTeacherUser: Schemas<SchoolTeacherUser> = {\n ...teacherUser,\n teacher: yup.object(_userSchoolTeacher),\n}\n\nconst _userAdminSchoolTeacher: Omit<Schemas<AdminSchoolTeacher>, \"user\"> = {\n ..._userSchoolTeacher,\n is_admin: _userSchoolTeacher.is_admin.isTrue(),\n}\n\nexport const adminSchoolTeacherUser: Schemas<AdminSchoolTeacherUser> = {\n ...schoolTeacherUser,\n teacher: yup.object(_userAdminSchoolTeacher),\n}\n\nconst _userNonAdminSchoolTeacher: Omit<\n Schemas<NonAdminSchoolTeacher>,\n \"user\"\n> = {\n ..._userSchoolTeacher,\n is_admin: _userSchoolTeacher.is_admin.isFalse(),\n}\n\nexport const nonAdminSchoolTeacherUser: Schemas<NonAdminSchoolTeacherUser> = {\n ...schoolTeacherUser,\n teacher: yup.object(_userNonAdminSchoolTeacher),\n}\n\nconst _userNonSchoolTeacher: Omit<Schemas<NonSchoolTeacher>, \"user\"> = {\n ..._userTeacher,\n school: yup.string().oneOf([undefined]),\n is_admin: _userTeacher.is_admin.isFalse(),\n}\n\nexport const nonSchoolTeacherUser: Schemas<NonSchoolTeacherUser> = {\n ...teacherUser,\n teacher: yup.object(_userNonSchoolTeacher),\n}\n\nexport const studentUser: Schemas<StudentUser> = {\n ...user,\n password: user.password.min(6, \"must be at least 6 characters long\"),\n email: user.email.oneOf([undefined]),\n last_name: user.last_name.oneOf([undefined]),\n teacher: yup.string().oneOf([undefined]),\n student: user.student.required(),\n}\n\nexport const indyUser: Schemas<IndependentUser> = {\n ...user,\n password: user.password\n .min(8, \"must be at least 8 characters long\")\n .matches(/[A-Z]/, \"must contain at least one uppercase letter\")\n .matches(/[a-z]/, \"must contain at least one lowercase letter\")\n .matches(/[0-9]/, \"must contain at least one digit\"),\n email: user.email.required(),\n last_name: user.last_name.required(),\n teacher: yup.string().oneOf([undefined]),\n student: yup.string().oneOf([undefined]),\n}\n\n// -----------------------------------------------------------------------------\n// Teacher Schemas\n// -----------------------------------------------------------------------------\n\nexport const teacher: Schemas<Teacher> = {\n ..._userTeacher,\n user: id.user.required(),\n}\n\nexport const schoolTeacher: Schemas<SchoolTeacher> = {\n ..._userSchoolTeacher,\n user: id.user.required(),\n}\n\nexport const adminSchoolTeacher: Schemas<AdminSchoolTeacher> = {\n ..._userAdminSchoolTeacher,\n user: id.user.required(),\n}\n\nexport const nonAdminSchoolTeacher: Schemas<NonAdminSchoolTeacher> = {\n ..._userNonAdminSchoolTeacher,\n user: id.user.required(),\n}\n\nexport const nonSchoolTeacher: Schemas<NonSchoolTeacher> = {\n ..._userNonSchoolTeacher,\n user: id.user.required(),\n}\n\n// -----------------------------------------------------------------------------\n// Other Schemas\n// -----------------------------------------------------------------------------\n\nexport const student: Schemas<Student> = {\n ..._userStudent,\n user: id.user.required(),\n}\n\nexport const school: Schemas<School> = {\n id: id.school.required(),\n name: unicodeAlphanumericString({\n spaces: true,\n specialChars: \"'.\",\n })\n .required()\n .max(200),\n country: yup.string().oneOf(COUNTRY_ISO_CODES),\n uk_county: yup.string().oneOf(UK_COUNTIES),\n}\n\nexport const klass: Schemas<Class> = {\n id: id.klass.required(),\n teacher: id.teacher.required(),\n school: id.school.required(),\n name: unicodeAlphanumericString({\n spaces: true,\n specialChars: \"-_\",\n })\n .required()\n .max(200),\n read_classmates_data: yup.bool().required(),\n receive_requests_until: yup.date(),\n}\n\nexport const authFactor: Schemas<AuthFactor> = {\n id: id.authFactor.required(),\n user: id.user.required(),\n type: yup\n .string()\n .oneOf([\"otp\"] as const)\n .required(),\n}\n\nexport const otpBypassToken: Schemas<OtpBypassToken> = {\n id: id.otpBypassToken.required(),\n user: id.user.required(),\n token: lowercaseAsciiAlphanumericString().required().length(8),\n}\n"],"names":["id","numericId","uppercaseAsciiAlphanumericString","_userTeacher","yup","_userStudent","user","unicodeAlphanumericString","teacherUser","_userSchoolTeacher","schoolTeacherUser","_userAdminSchoolTeacher","adminSchoolTeacherUser","_userNonAdminSchoolTeacher","nonAdminSchoolTeacherUser","_userNonSchoolTeacher","nonSchoolTeacherUser","studentUser","indyUser","teacher","schoolTeacher","adminSchoolTeacher","nonAdminSchoolTeacher","nonSchoolTeacher","student","school","COUNTRY_ISO_CODES","UK_COUNTIES","klass","authFactor","otpBypassToken","lowercaseAsciiAlphanumericString"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const e=require("../jsx-runtime-B2pbW5Fp.cjs"),r=require("@mui/material"),n=require("@emotion/react");require("react");const o=require("react-redux");;/* empty css */const u=({children:s,emotionCache:t,theme:i,store:x,maxIdleSeconds:c=3600,maxTotalSeconds:a=3600})=>e.jsxRuntimeExports.jsx(n.CacheProvider,{value:t,children:e.jsxRuntimeExports.jsxs(r.ThemeProvider,{theme:i,children:[e.jsxRuntimeExports.jsx(r.CssBaseline,{}),e.jsxRuntimeExports.jsx(o.Provider,{store:x,children:s})]})});module.exports=u;
1
+ "use strict";const e=require("react/jsx-runtime"),r=require("@mui/material"),n=require("@emotion/react");require("react");const o=require("react-redux");;/* empty css */const u=({children:s,emotionCache:i,theme:t,store:c,maxIdleSeconds:a=3600,maxTotalSeconds:d=3600})=>e.jsx(n.CacheProvider,{value:i,children:e.jsxs(r.ThemeProvider,{theme:t,children:[e.jsx(r.CssBaseline,{}),e.jsx(o.Provider,{store:c,children:s})]})});module.exports=u;
2
2
  //# sourceMappingURL=App.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"App.cjs.js","sources":["../../src/server/App.tsx"],"sourcesContent":["import { CssBaseline, ThemeProvider } from \"@mui/material\"\nimport {\n type EmotionCache,\n CacheProvider as EmotionCacheProvider,\n} from \"@emotion/react\"\nimport { type JSX, type ReactNode } from \"react\"\nimport {\n Provider as StoreProvider,\n type ProviderProps as StoreProviderProps,\n} from \"react-redux\"\nimport { type Action } from \"redux\"\nimport { type ThemeProviderProps } from \"@mui/material\"\n\nimport \"./App.css\"\n// import { InactiveDialog, ScreenTimeDialog } from \"../features\"\n// import { useCountdown, useEventListener } from \"../hooks\"\n// import \"../scripts\"\n// import {\n// configureFreshworksWidget,\n// toggleOneTrustInfoDisplay,\n// } from \"../utils/window\"\n\nexport interface AppProps<A extends Action = Action, S = unknown> {\n children: ReactNode\n emotionCache: EmotionCache\n theme: ThemeProviderProps[\"theme\"]\n store: StoreProviderProps<A, S>[\"store\"]\n maxIdleSeconds?: number\n maxTotalSeconds?: number\n}\n\nconst App = <A extends Action = Action, S = unknown>({\n children,\n emotionCache,\n theme,\n store,\n // @ts-expect-error TODO\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n maxIdleSeconds = 60 * 60,\n // @ts-expect-error TODO\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n maxTotalSeconds = 60 * 60,\n}: AppProps<A, S>): JSX.Element => {\n // TODO: cannot use document during SSR\n // const root = document.getElementById(\"root\") as HTMLElement\n\n // const [idleSeconds, setIdleSeconds] = useCountdown(maxIdleSeconds)\n // const [totalSeconds, setTotalSeconds] = useCountdown(maxTotalSeconds)\n // const resetIdleSeconds = useCallback(() => {\n // setIdleSeconds(maxIdleSeconds)\n // }, [setIdleSeconds, maxIdleSeconds])\n\n // const isIdle = idleSeconds === 0\n // const tooMuchScreenTime = totalSeconds === 0\n\n // useEventListener(root, \"mousemove\", resetIdleSeconds)\n // useEventListener(root, \"keypress\", resetIdleSeconds)\n\n // React.useEffect(() => {\n // configureFreshworksWidget(\"hide\")\n // }, [])\n\n // if (import.meta.env.PROD) {\n // toggleOneTrustInfoDisplay()\n // }\n\n return (\n // https://mui.com/material-ui/guides/server-rendering/\n <EmotionCacheProvider value={emotionCache}>\n <ThemeProvider theme={theme}>\n <CssBaseline />\n <StoreProvider store={store}>\n {/* <InactiveDialog open={isIdle} onClose={resetIdleSeconds} />\n <ScreenTimeDialog\n open={!isIdle && tooMuchScreenTime}\n onClose={() => {\n setTotalSeconds(maxTotalSeconds)\n }}\n /> */}\n {children}\n </StoreProvider>\n </ThemeProvider>\n </EmotionCacheProvider>\n )\n}\n\nexport default App\n\n// TODO: figure out what to do with this\n// function useOneTrustScripts(): void {\n// const oneTrustEventTypes = [\n// useExternalScript({\n// props: {\n// src: \"https://cdn-ukwest.onetrust.com/consent/5da42396-cb12-4493-8d04-5179033cfbad/OtAutoBlock.js\",\n// type: \"text/javascript\",\n// },\n// eventTypes: [\"load\", \"error\"],\n// }),\n// useExternalScript({\n// props: {\n// src: \"https://cdn-ukwest.onetrust.com/scripttemplates/otSDKStub.js\",\n// type: \"text/javascript\",\n// charset: \"UTF-8\",\n// },\n// attrs: {\n// \"data-domain-script\": \"5da42396-cb12-4493-8d04-5179033cfbad\",\n// },\n// eventTypes: [\"load\", \"error\"],\n// }),\n// useExternalScript({\n// props: {\n// src: \"https://cdn-ukwest.onetrust.com/scripttemplates/202302.1.0/otBannerSdk.js\",\n// async: true,\n// type: \"text/javascript\",\n// },\n// eventTypes: [\"load\", \"error\"],\n// }),\n// ]\n// if (oneTrustEventTypes.some(t => t === \"error\")) {\n// alert(\"OneTrust failed to load!\")\n// }\n// }\n"],"names":["App","children","emotionCache","theme","store","maxIdleSeconds","maxTotalSeconds","EmotionCacheProvider","jsxs","ThemeProvider","jsx","CssBaseline","StoreProvider"],"mappings":"kMA+BA,MAAMA,EAAM,CAAyC,CACnD,SAAAC,EACA,aAAAC,EACA,MAAAC,EACA,MAAAC,EAGA,eAAAC,EAAiB,KAGjB,gBAAAC,EAAkB,IACpB,4BA0BKC,EAAAA,cAAA,CAAqB,MAAOL,EAC3B,SAAAM,EAAAA,kBAAAA,KAACC,EAAAA,eAAc,MAAAN,EACb,SAAA,CAAAO,EAAAA,kBAAAA,IAACC,EAAAA,YAAA,EAAY,EACbD,EAAAA,kBAAAA,IAACE,EAAAA,SAAA,CAAc,MAAAR,EAQZ,SAAAH,CAAA,CACH,CAAA,CAAA,CACF,CAAA,CACF"}
1
+ {"version":3,"file":"App.cjs.js","sources":["../../src/server/App.tsx"],"sourcesContent":["import { CssBaseline, ThemeProvider } from \"@mui/material\"\nimport {\n type EmotionCache,\n CacheProvider as EmotionCacheProvider,\n} from \"@emotion/react\"\nimport { type JSX, type ReactNode } from \"react\"\nimport {\n Provider as StoreProvider,\n type ProviderProps as StoreProviderProps,\n} from \"react-redux\"\nimport { type Action } from \"redux\"\nimport { type ThemeProviderProps } from \"@mui/material\"\n\nimport \"./App.css\"\n// import { InactiveDialog, ScreenTimeDialog } from \"../features\"\n// import { useCountdown, useEventListener } from \"../hooks\"\n// import \"../scripts\"\n// import {\n// configureFreshworksWidget,\n// toggleOneTrustInfoDisplay,\n// } from \"../utils/window\"\n\nexport interface AppProps<A extends Action = Action, S = unknown> {\n children: ReactNode\n emotionCache: EmotionCache\n theme: ThemeProviderProps[\"theme\"]\n store: StoreProviderProps<A, S>[\"store\"]\n maxIdleSeconds?: number\n maxTotalSeconds?: number\n}\n\nconst App = <A extends Action = Action, S = unknown>({\n children,\n emotionCache,\n theme,\n store,\n // @ts-expect-error TODO\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n maxIdleSeconds = 60 * 60,\n // @ts-expect-error TODO\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n maxTotalSeconds = 60 * 60,\n}: AppProps<A, S>): JSX.Element => {\n // TODO: cannot use document during SSR\n // const root = document.getElementById(\"root\") as HTMLElement\n\n // const [idleSeconds, setIdleSeconds] = useCountdown(maxIdleSeconds)\n // const [totalSeconds, setTotalSeconds] = useCountdown(maxTotalSeconds)\n // const resetIdleSeconds = useCallback(() => {\n // setIdleSeconds(maxIdleSeconds)\n // }, [setIdleSeconds, maxIdleSeconds])\n\n // const isIdle = idleSeconds === 0\n // const tooMuchScreenTime = totalSeconds === 0\n\n // useEventListener(root, \"mousemove\", resetIdleSeconds)\n // useEventListener(root, \"keypress\", resetIdleSeconds)\n\n // React.useEffect(() => {\n // configureFreshworksWidget(\"hide\")\n // }, [])\n\n // if (import.meta.env.PROD) {\n // toggleOneTrustInfoDisplay()\n // }\n\n return (\n // https://mui.com/material-ui/guides/server-rendering/\n <EmotionCacheProvider value={emotionCache}>\n <ThemeProvider theme={theme}>\n <CssBaseline />\n <StoreProvider store={store}>\n {/* <InactiveDialog open={isIdle} onClose={resetIdleSeconds} />\n <ScreenTimeDialog\n open={!isIdle && tooMuchScreenTime}\n onClose={() => {\n setTotalSeconds(maxTotalSeconds)\n }}\n /> */}\n {children}\n </StoreProvider>\n </ThemeProvider>\n </EmotionCacheProvider>\n )\n}\n\nexport default App\n\n// TODO: figure out what to do with this\n// function useOneTrustScripts(): void {\n// const oneTrustEventTypes = [\n// useExternalScript({\n// props: {\n// src: \"https://cdn-ukwest.onetrust.com/consent/5da42396-cb12-4493-8d04-5179033cfbad/OtAutoBlock.js\",\n// type: \"text/javascript\",\n// },\n// eventTypes: [\"load\", \"error\"],\n// }),\n// useExternalScript({\n// props: {\n// src: \"https://cdn-ukwest.onetrust.com/scripttemplates/otSDKStub.js\",\n// type: \"text/javascript\",\n// charset: \"UTF-8\",\n// },\n// attrs: {\n// \"data-domain-script\": \"5da42396-cb12-4493-8d04-5179033cfbad\",\n// },\n// eventTypes: [\"load\", \"error\"],\n// }),\n// useExternalScript({\n// props: {\n// src: \"https://cdn-ukwest.onetrust.com/scripttemplates/202302.1.0/otBannerSdk.js\",\n// async: true,\n// type: \"text/javascript\",\n// },\n// eventTypes: [\"load\", \"error\"],\n// }),\n// ]\n// if (oneTrustEventTypes.some(t => t === \"error\")) {\n// alert(\"OneTrust failed to load!\")\n// }\n// }\n"],"names":["App","children","emotionCache","theme","store","maxIdleSeconds","maxTotalSeconds","EmotionCacheProvider","jsxs","ThemeProvider","jsx","CssBaseline","StoreProvider"],"mappings":"wLA+BA,MAAMA,EAAM,CAAyC,CACnD,SAAAC,EACA,aAAAC,EACA,MAAAC,EACA,MAAAC,EAGA,eAAAC,EAAiB,KAGjB,gBAAAC,EAAkB,IACpB,UA0BKC,EAAAA,cAAA,CAAqB,MAAOL,EAC3B,SAAAM,EAAAA,KAACC,EAAAA,eAAc,MAAAN,EACb,SAAA,CAAAO,EAAAA,IAACC,EAAAA,YAAA,EAAY,EACbD,EAAAA,IAACE,EAAAA,SAAA,CAAc,MAAAR,EAQZ,SAAAH,CAAA,CACH,CAAA,CAAA,CACF,CAAA,CACF"}
@@ -1,28 +1,28 @@
1
- import { j as r } from "../jsx-runtime-lzYHhGH3.js";
2
- import { ThemeProvider as i, CssBaseline as t } from "@mui/material";
1
+ import { jsx as r, jsxs as t } from "react/jsx-runtime";
2
+ import { ThemeProvider as s, CssBaseline as d } from "@mui/material";
3
3
  import { CacheProvider as p } from "@emotion/react";
4
4
  import "react";
5
5
  import { Provider as a } from "react-redux";
6
6
  /* empty css */
7
- const u = ({
7
+ const P = ({
8
8
  children: o,
9
9
  emotionCache: e,
10
- theme: s,
11
- store: m,
10
+ theme: m,
11
+ store: i,
12
12
  // @ts-expect-error TODO
13
13
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
14
- maxIdleSeconds: d = 3600,
14
+ maxIdleSeconds: l = 3600,
15
15
  // @ts-expect-error TODO
16
16
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
17
- maxTotalSeconds: x = 3600
17
+ maxTotalSeconds: n = 3600
18
18
  }) => (
19
19
  // https://mui.com/material-ui/guides/server-rendering/
20
- /* @__PURE__ */ r.jsx(p, { value: e, children: /* @__PURE__ */ r.jsxs(i, { theme: s, children: [
21
- /* @__PURE__ */ r.jsx(t, {}),
22
- /* @__PURE__ */ r.jsx(a, { store: m, children: o })
20
+ /* @__PURE__ */ r(p, { value: e, children: /* @__PURE__ */ t(s, { theme: m, children: [
21
+ /* @__PURE__ */ r(d, {}),
22
+ /* @__PURE__ */ r(a, { store: i, children: o })
23
23
  ] }) })
24
24
  );
25
25
  export {
26
- u as default
26
+ P as default
27
27
  };
28
28
  //# sourceMappingURL=App.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"App.es.js","sources":["../../src/server/App.tsx"],"sourcesContent":["import { CssBaseline, ThemeProvider } from \"@mui/material\"\nimport {\n type EmotionCache,\n CacheProvider as EmotionCacheProvider,\n} from \"@emotion/react\"\nimport { type JSX, type ReactNode } from \"react\"\nimport {\n Provider as StoreProvider,\n type ProviderProps as StoreProviderProps,\n} from \"react-redux\"\nimport { type Action } from \"redux\"\nimport { type ThemeProviderProps } from \"@mui/material\"\n\nimport \"./App.css\"\n// import { InactiveDialog, ScreenTimeDialog } from \"../features\"\n// import { useCountdown, useEventListener } from \"../hooks\"\n// import \"../scripts\"\n// import {\n// configureFreshworksWidget,\n// toggleOneTrustInfoDisplay,\n// } from \"../utils/window\"\n\nexport interface AppProps<A extends Action = Action, S = unknown> {\n children: ReactNode\n emotionCache: EmotionCache\n theme: ThemeProviderProps[\"theme\"]\n store: StoreProviderProps<A, S>[\"store\"]\n maxIdleSeconds?: number\n maxTotalSeconds?: number\n}\n\nconst App = <A extends Action = Action, S = unknown>({\n children,\n emotionCache,\n theme,\n store,\n // @ts-expect-error TODO\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n maxIdleSeconds = 60 * 60,\n // @ts-expect-error TODO\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n maxTotalSeconds = 60 * 60,\n}: AppProps<A, S>): JSX.Element => {\n // TODO: cannot use document during SSR\n // const root = document.getElementById(\"root\") as HTMLElement\n\n // const [idleSeconds, setIdleSeconds] = useCountdown(maxIdleSeconds)\n // const [totalSeconds, setTotalSeconds] = useCountdown(maxTotalSeconds)\n // const resetIdleSeconds = useCallback(() => {\n // setIdleSeconds(maxIdleSeconds)\n // }, [setIdleSeconds, maxIdleSeconds])\n\n // const isIdle = idleSeconds === 0\n // const tooMuchScreenTime = totalSeconds === 0\n\n // useEventListener(root, \"mousemove\", resetIdleSeconds)\n // useEventListener(root, \"keypress\", resetIdleSeconds)\n\n // React.useEffect(() => {\n // configureFreshworksWidget(\"hide\")\n // }, [])\n\n // if (import.meta.env.PROD) {\n // toggleOneTrustInfoDisplay()\n // }\n\n return (\n // https://mui.com/material-ui/guides/server-rendering/\n <EmotionCacheProvider value={emotionCache}>\n <ThemeProvider theme={theme}>\n <CssBaseline />\n <StoreProvider store={store}>\n {/* <InactiveDialog open={isIdle} onClose={resetIdleSeconds} />\n <ScreenTimeDialog\n open={!isIdle && tooMuchScreenTime}\n onClose={() => {\n setTotalSeconds(maxTotalSeconds)\n }}\n /> */}\n {children}\n </StoreProvider>\n </ThemeProvider>\n </EmotionCacheProvider>\n )\n}\n\nexport default App\n\n// TODO: figure out what to do with this\n// function useOneTrustScripts(): void {\n// const oneTrustEventTypes = [\n// useExternalScript({\n// props: {\n// src: \"https://cdn-ukwest.onetrust.com/consent/5da42396-cb12-4493-8d04-5179033cfbad/OtAutoBlock.js\",\n// type: \"text/javascript\",\n// },\n// eventTypes: [\"load\", \"error\"],\n// }),\n// useExternalScript({\n// props: {\n// src: \"https://cdn-ukwest.onetrust.com/scripttemplates/otSDKStub.js\",\n// type: \"text/javascript\",\n// charset: \"UTF-8\",\n// },\n// attrs: {\n// \"data-domain-script\": \"5da42396-cb12-4493-8d04-5179033cfbad\",\n// },\n// eventTypes: [\"load\", \"error\"],\n// }),\n// useExternalScript({\n// props: {\n// src: \"https://cdn-ukwest.onetrust.com/scripttemplates/202302.1.0/otBannerSdk.js\",\n// async: true,\n// type: \"text/javascript\",\n// },\n// eventTypes: [\"load\", \"error\"],\n// }),\n// ]\n// if (oneTrustEventTypes.some(t => t === \"error\")) {\n// alert(\"OneTrust failed to load!\")\n// }\n// }\n"],"names":["App","children","emotionCache","theme","store","maxIdleSeconds","maxTotalSeconds","EmotionCacheProvider","jsxs","ThemeProvider","jsx","CssBaseline","StoreProvider"],"mappings":";;;;;;AA+BA,MAAMA,IAAM,CAAyC;AAAA,EACnD,UAAAC;AAAA,EACA,cAAAC;AAAA,EACA,OAAAC;AAAA,EACA,OAAAC;AAAA;AAAA;AAAA,EAGA,gBAAAC,IAAiB;AAAA;AAAA;AAAA,EAGjB,iBAAAC,IAAkB;AACpB;AAAA;AAAA,wBA0BKC,GAAA,EAAqB,OAAOL,GAC3B,UAAAM,gBAAAA,EAAAA,KAACC,KAAc,OAAAN,GACb,UAAA;AAAA,IAAAO,gBAAAA,EAAAA,IAACC,GAAA,EAAY;AAAA,IACbD,gBAAAA,EAAAA,IAACE,GAAA,EAAc,OAAAR,GAQZ,UAAAH,EAAA,CACH;AAAA,EAAA,EAAA,CACF,EAAA,CACF;AAAA;"}
1
+ {"version":3,"file":"App.es.js","sources":["../../src/server/App.tsx"],"sourcesContent":["import { CssBaseline, ThemeProvider } from \"@mui/material\"\nimport {\n type EmotionCache,\n CacheProvider as EmotionCacheProvider,\n} from \"@emotion/react\"\nimport { type JSX, type ReactNode } from \"react\"\nimport {\n Provider as StoreProvider,\n type ProviderProps as StoreProviderProps,\n} from \"react-redux\"\nimport { type Action } from \"redux\"\nimport { type ThemeProviderProps } from \"@mui/material\"\n\nimport \"./App.css\"\n// import { InactiveDialog, ScreenTimeDialog } from \"../features\"\n// import { useCountdown, useEventListener } from \"../hooks\"\n// import \"../scripts\"\n// import {\n// configureFreshworksWidget,\n// toggleOneTrustInfoDisplay,\n// } from \"../utils/window\"\n\nexport interface AppProps<A extends Action = Action, S = unknown> {\n children: ReactNode\n emotionCache: EmotionCache\n theme: ThemeProviderProps[\"theme\"]\n store: StoreProviderProps<A, S>[\"store\"]\n maxIdleSeconds?: number\n maxTotalSeconds?: number\n}\n\nconst App = <A extends Action = Action, S = unknown>({\n children,\n emotionCache,\n theme,\n store,\n // @ts-expect-error TODO\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n maxIdleSeconds = 60 * 60,\n // @ts-expect-error TODO\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n maxTotalSeconds = 60 * 60,\n}: AppProps<A, S>): JSX.Element => {\n // TODO: cannot use document during SSR\n // const root = document.getElementById(\"root\") as HTMLElement\n\n // const [idleSeconds, setIdleSeconds] = useCountdown(maxIdleSeconds)\n // const [totalSeconds, setTotalSeconds] = useCountdown(maxTotalSeconds)\n // const resetIdleSeconds = useCallback(() => {\n // setIdleSeconds(maxIdleSeconds)\n // }, [setIdleSeconds, maxIdleSeconds])\n\n // const isIdle = idleSeconds === 0\n // const tooMuchScreenTime = totalSeconds === 0\n\n // useEventListener(root, \"mousemove\", resetIdleSeconds)\n // useEventListener(root, \"keypress\", resetIdleSeconds)\n\n // React.useEffect(() => {\n // configureFreshworksWidget(\"hide\")\n // }, [])\n\n // if (import.meta.env.PROD) {\n // toggleOneTrustInfoDisplay()\n // }\n\n return (\n // https://mui.com/material-ui/guides/server-rendering/\n <EmotionCacheProvider value={emotionCache}>\n <ThemeProvider theme={theme}>\n <CssBaseline />\n <StoreProvider store={store}>\n {/* <InactiveDialog open={isIdle} onClose={resetIdleSeconds} />\n <ScreenTimeDialog\n open={!isIdle && tooMuchScreenTime}\n onClose={() => {\n setTotalSeconds(maxTotalSeconds)\n }}\n /> */}\n {children}\n </StoreProvider>\n </ThemeProvider>\n </EmotionCacheProvider>\n )\n}\n\nexport default App\n\n// TODO: figure out what to do with this\n// function useOneTrustScripts(): void {\n// const oneTrustEventTypes = [\n// useExternalScript({\n// props: {\n// src: \"https://cdn-ukwest.onetrust.com/consent/5da42396-cb12-4493-8d04-5179033cfbad/OtAutoBlock.js\",\n// type: \"text/javascript\",\n// },\n// eventTypes: [\"load\", \"error\"],\n// }),\n// useExternalScript({\n// props: {\n// src: \"https://cdn-ukwest.onetrust.com/scripttemplates/otSDKStub.js\",\n// type: \"text/javascript\",\n// charset: \"UTF-8\",\n// },\n// attrs: {\n// \"data-domain-script\": \"5da42396-cb12-4493-8d04-5179033cfbad\",\n// },\n// eventTypes: [\"load\", \"error\"],\n// }),\n// useExternalScript({\n// props: {\n// src: \"https://cdn-ukwest.onetrust.com/scripttemplates/202302.1.0/otBannerSdk.js\",\n// async: true,\n// type: \"text/javascript\",\n// },\n// eventTypes: [\"load\", \"error\"],\n// }),\n// ]\n// if (oneTrustEventTypes.some(t => t === \"error\")) {\n// alert(\"OneTrust failed to load!\")\n// }\n// }\n"],"names":["App","children","emotionCache","theme","store","maxIdleSeconds","maxTotalSeconds","EmotionCacheProvider","jsxs","ThemeProvider","jsx","CssBaseline","StoreProvider"],"mappings":";;;;;;AA+BA,MAAMA,IAAM,CAAyC;AAAA,EACnD,UAAAC;AAAA,EACA,cAAAC;AAAA,EACA,OAAAC;AAAA,EACA,OAAAC;AAAA;AAAA;AAAA,EAGA,gBAAAC,IAAiB;AAAA;AAAA;AAAA,EAGjB,iBAAAC,IAAkB;AACpB;AAAA;AAAA,oBA0BKC,GAAA,EAAqB,OAAOL,GAC3B,UAAA,gBAAAM,EAACC,KAAc,OAAAN,GACb,UAAA;AAAA,IAAA,gBAAAO,EAACC,GAAA,EAAY;AAAA,IACb,gBAAAD,EAACE,GAAA,EAAc,OAAAR,GAQZ,UAAAH,EAAA,CACH;AAAA,EAAA,EAAA,CACF,EAAA,CACF;AAAA;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../jsx-runtime-B2pbW5Fp.cjs"),o=require("react-router"),h=require("react"),E=require("@emotion/cache");require("@mui/material");require("@emotion/react");require("react-redux");;/* empty css */function d({key:t="css",prepend:r=!0,...n}={}){return E({key:t,prepend:r,...n})}async function v({App:t,routes:r,createEmotionCacheOptions:n={},...s}){const{default:i}=await Promise.resolve().then(()=>require("../emotion-server-create-instance.browser.esm-CpbXhK4a.cjs")),{renderToString:c}=await Promise.resolve().then(()=>require("../server.browser-DeLuEZOk.cjs")).then(a=>a.server_browser),{default:u}=await Promise.resolve().then(()=>require("../style-BgmNVuOg.cjs"));function j(a){const l=d(n),x=i(l),m=c(e.jsxRuntimeExports.jsx(h.StrictMode,{children:e.jsxRuntimeExports.jsx(t,{emotionCache:l,...s,children:e.jsxRuntimeExports.jsx(o.StaticRouter,{location:a,children:e.jsxRuntimeExports.jsx(o.Routes,{children:r})})})})),R=x.extractCriticalToChunks(m),q=x.constructStyleTagsFromChunks(R);return{html:m,head:`${q}<style data-cfl>${u}</style>`}}return{render:j}}async function y({App:t,routes:r,createEmotionCacheOptions:n={},...s}){const{hydrateRoot:i}=await Promise.resolve().then(()=>require("../client-C_dmBP2e.cjs")).then(u=>u.client),c=d(n);i(document.getElementById("root"),e.jsxRuntimeExports.jsx(h.StrictMode,{children:e.jsxRuntimeExports.jsx(t,{emotionCache:c,...s,children:e.jsxRuntimeExports.jsx(o.BrowserRouter,{children:e.jsxRuntimeExports.jsx(o.Routes,{children:r})})})}))}exports.client=y;exports.server=v;
1
+ "use strict";var q=Object.create;var h=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty;var w=(e,t,r,c)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of g(t))!v.call(e,o)&&o!==r&&h(e,o,{get:()=>t[o],enumerable:!(c=R(t,o))||c.enumerable});return e};var i=(e,t,r)=>(r=e!=null?q(p(e)):{},w(t||!e||!e.__esModule?h(r,"default",{value:e,enumerable:!0}):r,e));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),s=require("react-router"),m=require("react"),T=require("@emotion/cache");require("@mui/material");require("@emotion/react");require("react-redux");;/* empty css */function j({key:e="css",prepend:t=!0,...r}={}){return T({key:e,prepend:t,...r})}async function k({App:e,routes:t,createEmotionCacheOptions:r={},...c}){const{default:o}=await import("@emotion/server/create-instance"),{renderToString:a}=await import("react-dom/server"),{default:x}=await import("codeforlife/style.css?inline");function y(S){const u=j(r),l=o(u),d=a(n.jsx(m.StrictMode,{children:n.jsx(e,{emotionCache:u,...c,children:n.jsx(s.StaticRouter,{location:S,children:n.jsx(s.Routes,{children:t})})})})),f=l.extractCriticalToChunks(d),C=l.constructStyleTagsFromChunks(f);return{html:d,head:`${C}<style data-cfl>${x}</style>`}}return{render:y}}async function E({App:e,routes:t,createEmotionCacheOptions:r={},...c}){const{hydrateRoot:o}=await import("react-dom/client"),a=j(r);o(document.getElementById("root"),n.jsx(m.StrictMode,{children:n.jsx(e,{emotionCache:a,...c,children:n.jsx(s.BrowserRouter,{children:n.jsx(s.Routes,{children:t})})})}))}exports.client=E;exports.server=k;
2
2
  //# sourceMappingURL=entry.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"entry.cjs.js","sources":["../../src/server/entry.tsx"],"sourcesContent":["/**\n * © Ocado Group\n * Created on 20/10/2025 at 17:45:17(+01:00).\n *\n * The client and server entrypoints when doing server-side rendering.\n *\n * Helpful links:\n * https://mui.com/material-ui/guides/server-rendering/\n * https://github.com/remix-run/react-router/tree/main/examples/ssr\n */\n\nimport { BrowserRouter, Routes, StaticRouter } from \"react-router\"\nimport { type FC, type ReactNode, StrictMode } from \"react\"\nimport createCache, {\n type Options as CreateEmotionCacheOptions,\n} from \"@emotion/cache\"\n\nimport { type AppProps } from \"./App\"\n\n/**\n * Creates a new Emotion cache instance.\n */\nfunction createEmotionCache(\n {\n key = \"css\", // ensures all styles are generated with this prefix\n prepend = true, // loads MUI-styles first so we can override them easily\n ...otherOptions\n } = {} as CreateEmotionCacheOptions,\n) {\n return createCache({ key, prepend, ...otherOptions })\n}\n\nexport type EntryAppProps = Pick<AppProps, \"emotionCache\" | \"children\">\n\nexport type EntryKwArgs = {\n App: FC<EntryAppProps>\n routes: ReactNode\n createEmotionCacheOptions?: CreateEmotionCacheOptions\n}\n\nexport async function server({\n App,\n routes,\n createEmotionCacheOptions = {} as CreateEmotionCacheOptions,\n ...appProps\n}: EntryKwArgs) {\n const { default: createEmotionServer } = await import(\n \"@emotion/server/create-instance\"\n )\n const { renderToString } = await import(\"react-dom/server\")\n const { default: cflStyle } = await import(\"codeforlife/style.css?inline\")\n\n function render(path: string) {\n const emotionCache = createEmotionCache(createEmotionCacheOptions)\n const emotionServer = createEmotionServer(emotionCache)\n\n const html = renderToString(\n <StrictMode>\n <App emotionCache={emotionCache} {...appProps}>\n <StaticRouter location={path}>\n <Routes>{routes}</Routes>\n </StaticRouter>\n </App>\n </StrictMode>,\n )\n\n const emotionChunks = emotionServer.extractCriticalToChunks(html)\n const emotionCss = emotionServer.constructStyleTagsFromChunks(emotionChunks)\n\n return {\n html,\n head: `${emotionCss}<style data-cfl>${cflStyle}</style>`,\n }\n }\n\n return { render }\n}\n\nexport async function client({\n App,\n routes,\n createEmotionCacheOptions = {} as CreateEmotionCacheOptions,\n ...appProps\n}: EntryKwArgs) {\n const { hydrateRoot } = await import(\"react-dom/client\")\n\n const emotionCache = createEmotionCache(createEmotionCacheOptions)\n\n hydrateRoot(\n document.getElementById(\"root\") as HTMLElement,\n <StrictMode>\n <App emotionCache={emotionCache} {...appProps}>\n <BrowserRouter>\n <Routes>{routes}</Routes>\n </BrowserRouter>\n </App>\n </StrictMode>,\n )\n}\n"],"names":["createEmotionCache","key","prepend","otherOptions","createCache","server","App","routes","createEmotionCacheOptions","appProps","createEmotionServer","renderToString","n","cflStyle","render","path","emotionCache","emotionServer","html","StrictMode","jsx","StaticRouter","Routes","emotionChunks","emotionCss","client","hydrateRoot","BrowserRouter"],"mappings":"iTAsBA,SAASA,EACP,CACE,IAAAC,EAAM,MACN,QAAAC,EAAU,GACV,GAAGC,CACL,EAAI,GACJ,CACA,OAAOC,EAAY,CAAE,IAAAH,EAAK,QAAAC,EAAS,GAAGC,EAAc,CACtD,CAUA,eAAsBE,EAAO,CAC3B,IAAAC,EACA,OAAAC,EACA,0BAAAC,EAA4B,CAAA,EAC5B,GAAGC,CACL,EAAgB,CACd,KAAM,CAAE,QAASC,GAAwB,MAAM,QAAA,QAAA,EAAA,KAAA,IAAA,QAC7C,4DACF,CAAA,EACM,CAAE,eAAAC,CAAA,EAAmB,MAAM,QAAA,QAAA,EAAA,KAAA,IAAA,QAAO,gCAAkB,CAAA,EAAA,KAAAC,GAAAA,EAAA,cAAA,EACpD,CAAE,QAASC,GAAa,MAAM,QAAA,QAAA,EAAA,KAAA,IAAA,QAAO,uBAA8B,CAAA,EAEzE,SAASC,EAAOC,EAAc,CAC5B,MAAMC,EAAehB,EAAmBQ,CAAyB,EAC3DS,EAAgBP,EAAoBM,CAAY,EAEhDE,EAAOP,0BACVQ,EAAAA,WAAA,CACC,SAAAC,wBAACd,EAAA,CAAI,aAAAU,EAA6B,GAAGP,EACnC,SAAAW,wBAACC,EAAAA,aAAA,CAAa,SAAUN,EACtB,SAAAK,EAAAA,kBAAAA,IAACE,EAAAA,OAAA,CAAQ,SAAAf,CAAA,CAAO,EAClB,EACF,CAAA,CACF,CAAA,EAGIgB,EAAgBN,EAAc,wBAAwBC,CAAI,EAC1DM,EAAaP,EAAc,6BAA6BM,CAAa,EAE3E,MAAO,CACL,KAAAL,EACA,KAAM,GAAGM,CAAU,mBAAmBX,CAAQ,UAAA,CAElD,CAEA,MAAO,CAAE,OAAAC,CAAA,CACX,CAEA,eAAsBW,EAAO,CAC3B,IAAAnB,EACA,OAAAC,EACA,0BAAAC,EAA4B,CAAA,EAC5B,GAAGC,CACL,EAAgB,CACd,KAAM,CAAE,YAAAiB,CAAA,EAAgB,MAAM,QAAA,QAAA,EAAA,KAAA,IAAA,QAAO,wBAAkB,CAAA,EAAA,KAAAd,GAAAA,EAAA,MAAA,EAEjDI,EAAehB,EAAmBQ,CAAyB,EAEjEkB,EACE,SAAS,eAAe,MAAM,EAC9BN,wBAACD,EAAAA,WAAA,CACC,SAAAC,EAAAA,kBAAAA,IAACd,EAAA,CAAI,aAAAU,EAA6B,GAAGP,EACnC,SAAAW,EAAAA,kBAAAA,IAACO,EAAAA,cAAA,CACC,SAAAP,EAAAA,kBAAAA,IAACE,SAAA,CAAQ,SAAAf,CAAA,CAAO,EAClB,EACF,CAAA,CACF,CAAA,CAEJ"}
1
+ {"version":3,"file":"entry.cjs.js","sources":["../../src/server/entry.tsx"],"sourcesContent":["/**\n * © Ocado Group\n * Created on 20/10/2025 at 17:45:17(+01:00).\n *\n * The client and server entrypoints when doing server-side rendering.\n *\n * Helpful links:\n * https://mui.com/material-ui/guides/server-rendering/\n * https://github.com/remix-run/react-router/tree/main/examples/ssr\n */\n\nimport { BrowserRouter, Routes, StaticRouter } from \"react-router\"\nimport { type FC, type ReactNode, StrictMode } from \"react\"\nimport createCache, {\n type Options as CreateEmotionCacheOptions,\n} from \"@emotion/cache\"\n\nimport { type AppProps } from \"./App\"\n\n/**\n * Creates a new Emotion cache instance.\n */\nfunction createEmotionCache(\n {\n key = \"css\", // ensures all styles are generated with this prefix\n prepend = true, // loads MUI-styles first so we can override them easily\n ...otherOptions\n } = {} as CreateEmotionCacheOptions,\n) {\n return createCache({ key, prepend, ...otherOptions })\n}\n\nexport type EntryAppProps = Pick<AppProps, \"emotionCache\" | \"children\">\n\nexport type EntryKwArgs = {\n App: FC<EntryAppProps>\n routes: ReactNode\n createEmotionCacheOptions?: CreateEmotionCacheOptions\n}\n\nexport async function server({\n App,\n routes,\n createEmotionCacheOptions = {} as CreateEmotionCacheOptions,\n ...appProps\n}: EntryKwArgs) {\n const { default: createEmotionServer } = await import(\n \"@emotion/server/create-instance\"\n )\n const { renderToString } = await import(\"react-dom/server\")\n const { default: cflStyle } = await import(\"codeforlife/style.css?inline\")\n\n function render(path: string) {\n const emotionCache = createEmotionCache(createEmotionCacheOptions)\n const emotionServer = createEmotionServer(emotionCache)\n\n const html = renderToString(\n <StrictMode>\n <App emotionCache={emotionCache} {...appProps}>\n <StaticRouter location={path}>\n <Routes>{routes}</Routes>\n </StaticRouter>\n </App>\n </StrictMode>,\n )\n\n const emotionChunks = emotionServer.extractCriticalToChunks(html)\n const emotionCss = emotionServer.constructStyleTagsFromChunks(emotionChunks)\n\n return {\n html,\n head: `${emotionCss}<style data-cfl>${cflStyle}</style>`,\n }\n }\n\n return { render }\n}\n\nexport async function client({\n App,\n routes,\n createEmotionCacheOptions = {} as CreateEmotionCacheOptions,\n ...appProps\n}: EntryKwArgs) {\n const { hydrateRoot } = await import(\"react-dom/client\")\n\n const emotionCache = createEmotionCache(createEmotionCacheOptions)\n\n hydrateRoot(\n document.getElementById(\"root\") as HTMLElement,\n <StrictMode>\n <App emotionCache={emotionCache} {...appProps}>\n <BrowserRouter>\n <Routes>{routes}</Routes>\n </BrowserRouter>\n </App>\n </StrictMode>,\n )\n}\n"],"names":["createEmotionCache","key","prepend","otherOptions","createCache","server","App","routes","createEmotionCacheOptions","appProps","createEmotionServer","renderToString","cflStyle","render","path","emotionCache","emotionServer","html","StrictMode","jsx","StaticRouter","Routes","emotionChunks","emotionCss","client","hydrateRoot","BrowserRouter"],"mappings":"kvBAsBA,SAASA,EACP,CACE,IAAAC,EAAM,MACN,QAAAC,EAAU,GACV,GAAGC,CACL,EAAI,GACJ,CACA,OAAOC,EAAY,CAAE,IAAAH,EAAK,QAAAC,EAAS,GAAGC,EAAc,CACtD,CAUA,eAAsBE,EAAO,CAC3B,IAAAC,EACA,OAAAC,EACA,0BAAAC,EAA4B,CAAA,EAC5B,GAAGC,CACL,EAAgB,CACd,KAAM,CAAE,QAASC,GAAwB,KAAM,QAC7C,iCACF,EACM,CAAE,eAAAC,CAAA,EAAmB,KAAM,QAAO,kBAAkB,EACpD,CAAE,QAASC,GAAa,KAAM,QAAO,8BAA8B,EAEzE,SAASC,EAAOC,EAAc,CAC5B,MAAMC,EAAef,EAAmBQ,CAAyB,EAC3DQ,EAAgBN,EAAoBK,CAAY,EAEhDE,EAAON,QACVO,EAAAA,WAAA,CACC,SAAAC,MAACb,EAAA,CAAI,aAAAS,EAA6B,GAAGN,EACnC,SAAAU,MAACC,EAAAA,aAAA,CAAa,SAAUN,EACtB,SAAAK,EAAAA,IAACE,EAAAA,OAAA,CAAQ,SAAAd,CAAA,CAAO,EAClB,EACF,CAAA,CACF,CAAA,EAGIe,EAAgBN,EAAc,wBAAwBC,CAAI,EAC1DM,EAAaP,EAAc,6BAA6BM,CAAa,EAE3E,MAAO,CACL,KAAAL,EACA,KAAM,GAAGM,CAAU,mBAAmBX,CAAQ,UAAA,CAElD,CAEA,MAAO,CAAE,OAAAC,CAAA,CACX,CAEA,eAAsBW,EAAO,CAC3B,IAAAlB,EACA,OAAAC,EACA,0BAAAC,EAA4B,CAAA,EAC5B,GAAGC,CACL,EAAgB,CACd,KAAM,CAAE,YAAAgB,CAAA,EAAgB,KAAM,QAAO,kBAAkB,EAEjDV,EAAef,EAAmBQ,CAAyB,EAEjEiB,EACE,SAAS,eAAe,MAAM,EAC9BN,MAACD,EAAAA,WAAA,CACC,SAAAC,EAAAA,IAACb,EAAA,CAAI,aAAAS,EAA6B,GAAGN,EACnC,SAAAU,EAAAA,IAACO,EAAAA,cAAA,CACC,SAAAP,EAAAA,IAACE,SAAA,CAAQ,SAAAd,CAAA,CAAO,EAClB,EACF,CAAA,CACF,CAAA,CAEJ"}
@@ -1,37 +1,37 @@
1
- import { j as t } from "../jsx-runtime-lzYHhGH3.js";
2
- import { BrowserRouter as C, Routes as u, StaticRouter as y } from "react-router";
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import { BrowserRouter as S, Routes as l, StaticRouter as w } from "react-router";
3
3
  import { StrictMode as d } from "react";
4
- import S from "@emotion/cache";
4
+ import R from "@emotion/cache";
5
5
  import "@mui/material";
6
6
  import "@emotion/react";
7
7
  import "react-redux";
8
8
  /* empty css */
9
- function p({
9
+ function h({
10
10
  key: o = "css",
11
11
  // ensures all styles are generated with this prefix
12
12
  prepend: e = !0,
13
13
  // loads MUI-styles first so we can override them easily
14
14
  ...r
15
15
  } = {}) {
16
- return S({ key: o, prepend: e, ...r });
16
+ return R({ key: o, prepend: e, ...r });
17
17
  }
18
- async function $({
18
+ async function j({
19
19
  App: o,
20
20
  routes: e,
21
21
  createEmotionCacheOptions: r = {},
22
22
  ...n
23
23
  }) {
24
- const { default: c } = await import("../emotion-server-create-instance.browser.esm-CgeoyX9a.js"), { renderToString: i } = await import("../server.browser-gAvZ6xhz.js").then((a) => a.s), { default: s } = await import("../style-C3515J9T.js");
25
- function f(a) {
26
- const m = p(r), l = c(m), h = i(
27
- /* @__PURE__ */ t.jsx(d, { children: /* @__PURE__ */ t.jsx(o, { emotionCache: m, ...n, children: /* @__PURE__ */ t.jsx(y, { location: a, children: /* @__PURE__ */ t.jsx(u, { children: e }) }) }) })
28
- ), x = l.extractCriticalToChunks(h), j = l.constructStyleTagsFromChunks(x);
24
+ const { default: c } = await import("@emotion/server/create-instance"), { renderToString: i } = await import("react-dom/server"), { default: u } = await import("codeforlife/style.css?inline");
25
+ function p(f) {
26
+ const a = h(r), m = c(a), s = i(
27
+ /* @__PURE__ */ t(d, { children: /* @__PURE__ */ t(o, { emotionCache: a, ...n, children: /* @__PURE__ */ t(w, { location: f, children: /* @__PURE__ */ t(l, { children: e }) }) }) })
28
+ ), C = m.extractCriticalToChunks(s), y = m.constructStyleTagsFromChunks(C);
29
29
  return {
30
- html: h,
31
- head: `${j}<style data-cfl>${s}</style>`
30
+ html: s,
31
+ head: `${y}<style data-cfl>${u}</style>`
32
32
  };
33
33
  }
34
- return { render: f };
34
+ return { render: p };
35
35
  }
36
36
  async function F({
37
37
  App: o,
@@ -39,14 +39,14 @@ async function F({
39
39
  createEmotionCacheOptions: r = {},
40
40
  ...n
41
41
  }) {
42
- const { hydrateRoot: c } = await import("../client-CUE3jVb4.js").then((s) => s.c), i = p(r);
42
+ const { hydrateRoot: c } = await import("react-dom/client"), i = h(r);
43
43
  c(
44
44
  document.getElementById("root"),
45
- /* @__PURE__ */ t.jsx(d, { children: /* @__PURE__ */ t.jsx(o, { emotionCache: i, ...n, children: /* @__PURE__ */ t.jsx(C, { children: /* @__PURE__ */ t.jsx(u, { children: e }) }) }) })
45
+ /* @__PURE__ */ t(d, { children: /* @__PURE__ */ t(o, { emotionCache: i, ...n, children: /* @__PURE__ */ t(S, { children: /* @__PURE__ */ t(l, { children: e }) }) }) })
46
46
  );
47
47
  }
48
48
  export {
49
49
  F as client,
50
- $ as server
50
+ j as server
51
51
  };
52
52
  //# sourceMappingURL=entry.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"entry.es.js","sources":["../../src/server/entry.tsx"],"sourcesContent":["/**\n * © Ocado Group\n * Created on 20/10/2025 at 17:45:17(+01:00).\n *\n * The client and server entrypoints when doing server-side rendering.\n *\n * Helpful links:\n * https://mui.com/material-ui/guides/server-rendering/\n * https://github.com/remix-run/react-router/tree/main/examples/ssr\n */\n\nimport { BrowserRouter, Routes, StaticRouter } from \"react-router\"\nimport { type FC, type ReactNode, StrictMode } from \"react\"\nimport createCache, {\n type Options as CreateEmotionCacheOptions,\n} from \"@emotion/cache\"\n\nimport { type AppProps } from \"./App\"\n\n/**\n * Creates a new Emotion cache instance.\n */\nfunction createEmotionCache(\n {\n key = \"css\", // ensures all styles are generated with this prefix\n prepend = true, // loads MUI-styles first so we can override them easily\n ...otherOptions\n } = {} as CreateEmotionCacheOptions,\n) {\n return createCache({ key, prepend, ...otherOptions })\n}\n\nexport type EntryAppProps = Pick<AppProps, \"emotionCache\" | \"children\">\n\nexport type EntryKwArgs = {\n App: FC<EntryAppProps>\n routes: ReactNode\n createEmotionCacheOptions?: CreateEmotionCacheOptions\n}\n\nexport async function server({\n App,\n routes,\n createEmotionCacheOptions = {} as CreateEmotionCacheOptions,\n ...appProps\n}: EntryKwArgs) {\n const { default: createEmotionServer } = await import(\n \"@emotion/server/create-instance\"\n )\n const { renderToString } = await import(\"react-dom/server\")\n const { default: cflStyle } = await import(\"codeforlife/style.css?inline\")\n\n function render(path: string) {\n const emotionCache = createEmotionCache(createEmotionCacheOptions)\n const emotionServer = createEmotionServer(emotionCache)\n\n const html = renderToString(\n <StrictMode>\n <App emotionCache={emotionCache} {...appProps}>\n <StaticRouter location={path}>\n <Routes>{routes}</Routes>\n </StaticRouter>\n </App>\n </StrictMode>,\n )\n\n const emotionChunks = emotionServer.extractCriticalToChunks(html)\n const emotionCss = emotionServer.constructStyleTagsFromChunks(emotionChunks)\n\n return {\n html,\n head: `${emotionCss}<style data-cfl>${cflStyle}</style>`,\n }\n }\n\n return { render }\n}\n\nexport async function client({\n App,\n routes,\n createEmotionCacheOptions = {} as CreateEmotionCacheOptions,\n ...appProps\n}: EntryKwArgs) {\n const { hydrateRoot } = await import(\"react-dom/client\")\n\n const emotionCache = createEmotionCache(createEmotionCacheOptions)\n\n hydrateRoot(\n document.getElementById(\"root\") as HTMLElement,\n <StrictMode>\n <App emotionCache={emotionCache} {...appProps}>\n <BrowserRouter>\n <Routes>{routes}</Routes>\n </BrowserRouter>\n </App>\n </StrictMode>,\n )\n}\n"],"names":["createEmotionCache","key","prepend","otherOptions","createCache","server","App","routes","createEmotionCacheOptions","appProps","createEmotionServer","renderToString","n","cflStyle","render","path","emotionCache","emotionServer","html","StrictMode","jsx","StaticRouter","Routes","emotionChunks","emotionCss","client","hydrateRoot","BrowserRouter"],"mappings":";;;;;;;;AAsBA,SAASA,EACP;AAAA,EACE,KAAAC,IAAM;AAAA;AAAA,EACN,SAAAC,IAAU;AAAA;AAAA,EACV,GAAGC;AACL,IAAI,IACJ;AACA,SAAOC,EAAY,EAAE,KAAAH,GAAK,SAAAC,GAAS,GAAGC,GAAc;AACtD;AAUA,eAAsBE,EAAO;AAAA,EAC3B,KAAAC;AAAA,EACA,QAAAC;AAAA,EACA,2BAAAC,IAA4B,CAAA;AAAA,EAC5B,GAAGC;AACL,GAAgB;AACd,QAAM,EAAE,SAASC,MAAwB,MAAM,OAC7C,2DACF,GACM,EAAE,gBAAAC,EAAA,IAAmB,MAAM,OAAO,+BAAkB,EAAA,KAAA,CAAAC,MAAAA,EAAA,CAAA,GACpD,EAAE,SAASC,MAAa,MAAM,OAAO,sBAA8B;AAEzE,WAASC,EAAOC,GAAc;AAC5B,UAAMC,IAAehB,EAAmBQ,CAAyB,GAC3DS,IAAgBP,EAAoBM,CAAY,GAEhDE,IAAOP;AAAA,4BACVQ,GAAA,EACC,UAAAC,gBAAAA,MAACd,GAAA,EAAI,cAAAU,GAA6B,GAAGP,GACnC,UAAAW,gBAAAA,MAACC,GAAA,EAAa,UAAUN,GACtB,UAAAK,gBAAAA,EAAAA,IAACE,GAAA,EAAQ,UAAAf,EAAA,CAAO,GAClB,GACF,EAAA,CACF;AAAA,IAAA,GAGIgB,IAAgBN,EAAc,wBAAwBC,CAAI,GAC1DM,IAAaP,EAAc,6BAA6BM,CAAa;AAE3E,WAAO;AAAA,MACL,MAAAL;AAAA,MACA,MAAM,GAAGM,CAAU,mBAAmBX,CAAQ;AAAA,IAAA;AAAA,EAElD;AAEA,SAAO,EAAE,QAAAC,EAAA;AACX;AAEA,eAAsBW,EAAO;AAAA,EAC3B,KAAAnB;AAAA,EACA,QAAAC;AAAA,EACA,2BAAAC,IAA4B,CAAA;AAAA,EAC5B,GAAGC;AACL,GAAgB;AACd,QAAM,EAAE,aAAAiB,EAAA,IAAgB,MAAM,OAAO,uBAAkB,EAAA,KAAA,CAAAd,MAAAA,EAAA,CAAA,GAEjDI,IAAehB,EAAmBQ,CAAyB;AAEjE,EAAAkB;AAAA,IACE,SAAS,eAAe,MAAM;AAAA,IAC9BN,gBAAAA,MAACD,GAAA,EACC,UAAAC,gBAAAA,EAAAA,IAACd,GAAA,EAAI,cAAAU,GAA6B,GAAGP,GACnC,UAAAW,gBAAAA,EAAAA,IAACO,GAAA,EACC,UAAAP,gBAAAA,EAAAA,IAACE,GAAA,EAAQ,UAAAf,EAAA,CAAO,GAClB,GACF,EAAA,CACF;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"entry.es.js","sources":["../../src/server/entry.tsx"],"sourcesContent":["/**\n * © Ocado Group\n * Created on 20/10/2025 at 17:45:17(+01:00).\n *\n * The client and server entrypoints when doing server-side rendering.\n *\n * Helpful links:\n * https://mui.com/material-ui/guides/server-rendering/\n * https://github.com/remix-run/react-router/tree/main/examples/ssr\n */\n\nimport { BrowserRouter, Routes, StaticRouter } from \"react-router\"\nimport { type FC, type ReactNode, StrictMode } from \"react\"\nimport createCache, {\n type Options as CreateEmotionCacheOptions,\n} from \"@emotion/cache\"\n\nimport { type AppProps } from \"./App\"\n\n/**\n * Creates a new Emotion cache instance.\n */\nfunction createEmotionCache(\n {\n key = \"css\", // ensures all styles are generated with this prefix\n prepend = true, // loads MUI-styles first so we can override them easily\n ...otherOptions\n } = {} as CreateEmotionCacheOptions,\n) {\n return createCache({ key, prepend, ...otherOptions })\n}\n\nexport type EntryAppProps = Pick<AppProps, \"emotionCache\" | \"children\">\n\nexport type EntryKwArgs = {\n App: FC<EntryAppProps>\n routes: ReactNode\n createEmotionCacheOptions?: CreateEmotionCacheOptions\n}\n\nexport async function server({\n App,\n routes,\n createEmotionCacheOptions = {} as CreateEmotionCacheOptions,\n ...appProps\n}: EntryKwArgs) {\n const { default: createEmotionServer } = await import(\n \"@emotion/server/create-instance\"\n )\n const { renderToString } = await import(\"react-dom/server\")\n const { default: cflStyle } = await import(\"codeforlife/style.css?inline\")\n\n function render(path: string) {\n const emotionCache = createEmotionCache(createEmotionCacheOptions)\n const emotionServer = createEmotionServer(emotionCache)\n\n const html = renderToString(\n <StrictMode>\n <App emotionCache={emotionCache} {...appProps}>\n <StaticRouter location={path}>\n <Routes>{routes}</Routes>\n </StaticRouter>\n </App>\n </StrictMode>,\n )\n\n const emotionChunks = emotionServer.extractCriticalToChunks(html)\n const emotionCss = emotionServer.constructStyleTagsFromChunks(emotionChunks)\n\n return {\n html,\n head: `${emotionCss}<style data-cfl>${cflStyle}</style>`,\n }\n }\n\n return { render }\n}\n\nexport async function client({\n App,\n routes,\n createEmotionCacheOptions = {} as CreateEmotionCacheOptions,\n ...appProps\n}: EntryKwArgs) {\n const { hydrateRoot } = await import(\"react-dom/client\")\n\n const emotionCache = createEmotionCache(createEmotionCacheOptions)\n\n hydrateRoot(\n document.getElementById(\"root\") as HTMLElement,\n <StrictMode>\n <App emotionCache={emotionCache} {...appProps}>\n <BrowserRouter>\n <Routes>{routes}</Routes>\n </BrowserRouter>\n </App>\n </StrictMode>,\n )\n}\n"],"names":["createEmotionCache","key","prepend","otherOptions","createCache","server","App","routes","createEmotionCacheOptions","appProps","createEmotionServer","renderToString","cflStyle","render","path","emotionCache","emotionServer","html","StrictMode","jsx","StaticRouter","Routes","emotionChunks","emotionCss","client","hydrateRoot","BrowserRouter"],"mappings":";;;;;;;;AAsBA,SAASA,EACP;AAAA,EACE,KAAAC,IAAM;AAAA;AAAA,EACN,SAAAC,IAAU;AAAA;AAAA,EACV,GAAGC;AACL,IAAI,IACJ;AACA,SAAOC,EAAY,EAAE,KAAAH,GAAK,SAAAC,GAAS,GAAGC,GAAc;AACtD;AAUA,eAAsBE,EAAO;AAAA,EAC3B,KAAAC;AAAA,EACA,QAAAC;AAAA,EACA,2BAAAC,IAA4B,CAAA;AAAA,EAC5B,GAAGC;AACL,GAAgB;AACd,QAAM,EAAE,SAASC,MAAwB,MAAM,OAC7C,iCACF,GACM,EAAE,gBAAAC,EAAA,IAAmB,MAAM,OAAO,kBAAkB,GACpD,EAAE,SAASC,MAAa,MAAM,OAAO,8BAA8B;AAEzE,WAASC,EAAOC,GAAc;AAC5B,UAAMC,IAAef,EAAmBQ,CAAyB,GAC3DQ,IAAgBN,EAAoBK,CAAY,GAEhDE,IAAON;AAAA,wBACVO,GAAA,EACC,UAAA,gBAAAC,EAACb,GAAA,EAAI,cAAAS,GAA6B,GAAGN,GACnC,UAAA,gBAAAU,EAACC,GAAA,EAAa,UAAUN,GACtB,UAAA,gBAAAK,EAACE,GAAA,EAAQ,UAAAd,EAAA,CAAO,GAClB,GACF,EAAA,CACF;AAAA,IAAA,GAGIe,IAAgBN,EAAc,wBAAwBC,CAAI,GAC1DM,IAAaP,EAAc,6BAA6BM,CAAa;AAE3E,WAAO;AAAA,MACL,MAAAL;AAAA,MACA,MAAM,GAAGM,CAAU,mBAAmBX,CAAQ;AAAA,IAAA;AAAA,EAElD;AAEA,SAAO,EAAE,QAAAC,EAAA;AACX;AAEA,eAAsBW,EAAO;AAAA,EAC3B,KAAAlB;AAAA,EACA,QAAAC;AAAA,EACA,2BAAAC,IAA4B,CAAA;AAAA,EAC5B,GAAGC;AACL,GAAgB;AACd,QAAM,EAAE,aAAAgB,EAAA,IAAgB,MAAM,OAAO,kBAAkB,GAEjDV,IAAef,EAAmBQ,CAAyB;AAEjE,EAAAiB;AAAA,IACE,SAAS,eAAe,MAAM;AAAA,IAC9B,gBAAAN,EAACD,GAAA,EACC,UAAA,gBAAAC,EAACb,GAAA,EAAI,cAAAS,GAA6B,GAAGN,GACnC,UAAA,gBAAAU,EAACO,GAAA,EACC,UAAA,gBAAAP,EAACE,GAAA,EAAQ,UAAAd,EAAA,CAAO,GAClB,GACF,EAAA,CACF;AAAA,EAAA;AAEJ;"}
@@ -1,24 +1,25 @@
1
+ import "@reduxjs/toolkit/query/react";
1
2
  import { l, a as u } from "./session-oI-Ht2C8.js";
2
- function c(n, r = "session/login/") {
3
+ function d(n, r = "session/login/") {
3
4
  return n.mutation({
4
5
  query: (o) => ({ url: r, method: "POST", body: o }),
5
- async onQueryStarted(o, { dispatch: a, queryFulfilled: t }) {
6
+ async onQueryStarted(o, { dispatch: i, queryFulfilled: t }) {
6
7
  try {
7
- await t, a(u());
8
+ await t, i(u());
8
9
  } catch (e) {
9
10
  console.error("Failed to call login endpoint...", e);
10
11
  }
11
12
  }
12
13
  });
13
14
  }
14
- function d(n, r, o = "session/logout/") {
15
+ function y(n, r, o = "session/logout/") {
15
16
  return r.mutation({
16
17
  query: () => ({ url: o, method: "POST" }),
17
- async onQueryStarted(a, { dispatch: t, queryFulfilled: e }) {
18
+ async onQueryStarted(i, { dispatch: t, queryFulfilled: e }) {
18
19
  try {
19
20
  await e;
20
- } catch (i) {
21
- console.error("Failed to call logout endpoint...", i);
21
+ } catch (a) {
22
+ console.error("Failed to call logout endpoint...", a);
22
23
  } finally {
23
24
  t(l()), t(n.util.resetApiState());
24
25
  }
@@ -26,7 +27,7 @@ function d(n, r, o = "session/logout/") {
26
27
  });
27
28
  }
28
29
  export {
29
- c as a,
30
- d as b
30
+ d as a,
31
+ y as b
31
32
  };
32
- //# sourceMappingURL=session-D312kYKk.js.map
33
+ //# sourceMappingURL=session-COyN01K0.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-D312kYKk.js","sources":["../src/api/endpoints/session.ts"],"sourcesContent":["import { type Api, type EndpointBuilder } from \"@reduxjs/toolkit/query/react\"\n\nimport { login, logout } from \"../../slices/session\"\n\nexport type ExchangeOAuth2CodeArg = {\n code: string\n code_verifier: string\n redirect_uri: string\n}\n\nexport function buildLoginEndpoint<ResultType, QueryArg>(\n build: EndpointBuilder<any, any, any>,\n url: string = \"session/login/\",\n) {\n return build.mutation<ResultType, QueryArg>({\n query: body => ({ url, method: \"POST\", body }),\n async onQueryStarted(_, { dispatch, queryFulfilled }) {\n try {\n await queryFulfilled\n dispatch(login())\n } catch (error) {\n console.error(\"Failed to call login endpoint...\", error)\n }\n },\n })\n}\n\nexport function buildLogoutEndpoint<ResultType, QueryArg>(\n api: Api<any, any, any, any, any>,\n build: EndpointBuilder<any, any, any>,\n url: string = \"session/logout/\",\n) {\n return build.mutation<ResultType, QueryArg>({\n query: () => ({ url, method: \"POST\" }),\n async onQueryStarted(_, { dispatch, queryFulfilled }) {\n try {\n await queryFulfilled\n } catch (error) {\n console.error(\"Failed to call logout endpoint...\", error)\n } finally {\n dispatch(logout())\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access\n dispatch(api.util.resetApiState())\n }\n },\n })\n}\n"],"names":["buildLoginEndpoint","build","url","body","_","dispatch","queryFulfilled","login","error","buildLogoutEndpoint","api","logout"],"mappings":";AAUO,SAASA,EACdC,GACAC,IAAc,kBACd;AACA,SAAOD,EAAM,SAA+B;AAAA,IAC1C,OAAO,CAAAE,OAAS,EAAE,KAAAD,GAAK,QAAQ,QAAQ,MAAAC;IACvC,MAAM,eAAeC,GAAG,EAAE,UAAAC,GAAU,gBAAAC,KAAkB;AACpD,UAAI;AACF,cAAMA,GACND,EAASE,GAAO;AAAA,MAClB,SAASC,GAAO;AACd,gBAAQ,MAAM,oCAAoCA,CAAK;AAAA,MACzD;AAAA,IACF;AAAA,EAAA,CACD;AACH;AAEO,SAASC,EACdC,GACAT,GACAC,IAAc,mBACd;AACA,SAAOD,EAAM,SAA+B;AAAA,IAC1C,OAAO,OAAO,EAAE,KAAAC,GAAK,QAAQ,OAAA;AAAA,IAC7B,MAAM,eAAeE,GAAG,EAAE,UAAAC,GAAU,gBAAAC,KAAkB;AACpD,UAAI;AACF,cAAMA;AAAA,MACR,SAASE,GAAO;AACd,gBAAQ,MAAM,qCAAqCA,CAAK;AAAA,MAC1D,UAAA;AACE,QAAAH,EAASM,GAAQ,GAEjBN,EAASK,EAAI,KAAK,eAAe;AAAA,MACnC;AAAA,IACF;AAAA,EAAA,CACD;AACH;"}
1
+ {"version":3,"file":"session-COyN01K0.js","sources":["../src/api/endpoints/session.ts"],"sourcesContent":["import { type Api, type EndpointBuilder } from \"@reduxjs/toolkit/query/react\"\n\nimport { login, logout } from \"../../slices/session\"\n\nexport type ExchangeOAuth2CodeArg = {\n code: string\n code_verifier: string\n redirect_uri: string\n}\n\nexport function buildLoginEndpoint<ResultType, QueryArg>(\n build: EndpointBuilder<any, any, any>,\n url: string = \"session/login/\",\n) {\n return build.mutation<ResultType, QueryArg>({\n query: body => ({ url, method: \"POST\", body }),\n async onQueryStarted(_, { dispatch, queryFulfilled }) {\n try {\n await queryFulfilled\n dispatch(login())\n } catch (error) {\n console.error(\"Failed to call login endpoint...\", error)\n }\n },\n })\n}\n\nexport function buildLogoutEndpoint<ResultType, QueryArg>(\n api: Api<any, any, any, any, any>,\n build: EndpointBuilder<any, any, any>,\n url: string = \"session/logout/\",\n) {\n return build.mutation<ResultType, QueryArg>({\n query: () => ({ url, method: \"POST\" }),\n async onQueryStarted(_, { dispatch, queryFulfilled }) {\n try {\n await queryFulfilled\n } catch (error) {\n console.error(\"Failed to call logout endpoint...\", error)\n } finally {\n dispatch(logout())\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access\n dispatch(api.util.resetApiState())\n }\n },\n })\n}\n"],"names":["buildLoginEndpoint","build","url","body","_","dispatch","queryFulfilled","login","error","buildLogoutEndpoint","api","logout"],"mappings":";;AAUO,SAASA,EACdC,GACAC,IAAc,kBACd;AACA,SAAOD,EAAM,SAA+B;AAAA,IAC1C,OAAO,CAAAE,OAAS,EAAE,KAAAD,GAAK,QAAQ,QAAQ,MAAAC;IACvC,MAAM,eAAeC,GAAG,EAAE,UAAAC,GAAU,gBAAAC,KAAkB;AACpD,UAAI;AACF,cAAMA,GACND,EAASE,GAAO;AAAA,MAClB,SAASC,GAAO;AACd,gBAAQ,MAAM,oCAAoCA,CAAK;AAAA,MACzD;AAAA,IACF;AAAA,EAAA,CACD;AACH;AAEO,SAASC,EACdC,GACAT,GACAC,IAAc,mBACd;AACA,SAAOD,EAAM,SAA+B;AAAA,IAC1C,OAAO,OAAO,EAAE,KAAAC,GAAK,QAAQ,OAAA;AAAA,IAC7B,MAAM,eAAeE,GAAG,EAAE,UAAAC,GAAU,gBAAAC,KAAkB;AACpD,UAAI;AACF,cAAMA;AAAA,MACR,SAASE,GAAO;AACd,gBAAQ,MAAM,qCAAqCA,CAAK;AAAA,MAC1D,UAAA;AACE,QAAAH,EAASM,GAAQ,GAEjBN,EAASK,EAAI,KAAK,eAAe;AAAA,MACnC;AAAA,IACF;AAAA,EAAA,CACD;AACH;"}
@@ -0,0 +1,2 @@
1
+ "use strict";require("@reduxjs/toolkit/query/react");const u=require("./session-CE2U7oL1.cjs");function a(n,e="session/login/"){return n.mutation({query:o=>({url:e,method:"POST",body:o}),async onQueryStarted(o,{dispatch:r,queryFulfilled:t}){try{await t,r(u.login())}catch(i){console.error("Failed to call login endpoint...",i)}}})}function s(n,e,o="session/logout/"){return e.mutation({query:()=>({url:o,method:"POST"}),async onQueryStarted(r,{dispatch:t,queryFulfilled:i}){try{await i}catch(l){console.error("Failed to call logout endpoint...",l)}finally{t(u.logout()),t(n.util.resetApiState())}}})}exports.buildLoginEndpoint=a;exports.buildLogoutEndpoint=s;
2
+ //# sourceMappingURL=session-eOp0H-EC.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-CacrgFSv.cjs","sources":["../src/api/endpoints/session.ts"],"sourcesContent":["import { type Api, type EndpointBuilder } from \"@reduxjs/toolkit/query/react\"\n\nimport { login, logout } from \"../../slices/session\"\n\nexport type ExchangeOAuth2CodeArg = {\n code: string\n code_verifier: string\n redirect_uri: string\n}\n\nexport function buildLoginEndpoint<ResultType, QueryArg>(\n build: EndpointBuilder<any, any, any>,\n url: string = \"session/login/\",\n) {\n return build.mutation<ResultType, QueryArg>({\n query: body => ({ url, method: \"POST\", body }),\n async onQueryStarted(_, { dispatch, queryFulfilled }) {\n try {\n await queryFulfilled\n dispatch(login())\n } catch (error) {\n console.error(\"Failed to call login endpoint...\", error)\n }\n },\n })\n}\n\nexport function buildLogoutEndpoint<ResultType, QueryArg>(\n api: Api<any, any, any, any, any>,\n build: EndpointBuilder<any, any, any>,\n url: string = \"session/logout/\",\n) {\n return build.mutation<ResultType, QueryArg>({\n query: () => ({ url, method: \"POST\" }),\n async onQueryStarted(_, { dispatch, queryFulfilled }) {\n try {\n await queryFulfilled\n } catch (error) {\n console.error(\"Failed to call logout endpoint...\", error)\n } finally {\n dispatch(logout())\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access\n dispatch(api.util.resetApiState())\n }\n },\n })\n}\n"],"names":["buildLoginEndpoint","build","url","body","_","dispatch","queryFulfilled","login","error","buildLogoutEndpoint","api","logout"],"mappings":"uDAUO,SAASA,EACdC,EACAC,EAAc,iBACd,CACA,OAAOD,EAAM,SAA+B,CAC1C,MAAOE,IAAS,CAAE,IAAAD,EAAK,OAAQ,OAAQ,KAAAC,IACvC,MAAM,eAAeC,EAAG,CAAE,SAAAC,EAAU,eAAAC,GAAkB,CACpD,GAAI,CACF,MAAMA,EACND,EAASE,EAAAA,OAAO,CAClB,OAASC,EAAO,CACd,QAAQ,MAAM,mCAAoCA,CAAK,CACzD,CACF,CAAA,CACD,CACH,CAEO,SAASC,EACdC,EACAT,EACAC,EAAc,kBACd,CACA,OAAOD,EAAM,SAA+B,CAC1C,MAAO,KAAO,CAAE,IAAAC,EAAK,OAAQ,MAAA,GAC7B,MAAM,eAAeE,EAAG,CAAE,SAAAC,EAAU,eAAAC,GAAkB,CACpD,GAAI,CACF,MAAMA,CACR,OAASE,EAAO,CACd,QAAQ,MAAM,oCAAqCA,CAAK,CAC1D,QAAA,CACEH,EAASM,EAAAA,QAAQ,EAEjBN,EAASK,EAAI,KAAK,eAAe,CACnC,CACF,CAAA,CACD,CACH"}
1
+ {"version":3,"file":"session-eOp0H-EC.cjs","sources":["../src/api/endpoints/session.ts"],"sourcesContent":["import { type Api, type EndpointBuilder } from \"@reduxjs/toolkit/query/react\"\n\nimport { login, logout } from \"../../slices/session\"\n\nexport type ExchangeOAuth2CodeArg = {\n code: string\n code_verifier: string\n redirect_uri: string\n}\n\nexport function buildLoginEndpoint<ResultType, QueryArg>(\n build: EndpointBuilder<any, any, any>,\n url: string = \"session/login/\",\n) {\n return build.mutation<ResultType, QueryArg>({\n query: body => ({ url, method: \"POST\", body }),\n async onQueryStarted(_, { dispatch, queryFulfilled }) {\n try {\n await queryFulfilled\n dispatch(login())\n } catch (error) {\n console.error(\"Failed to call login endpoint...\", error)\n }\n },\n })\n}\n\nexport function buildLogoutEndpoint<ResultType, QueryArg>(\n api: Api<any, any, any, any, any>,\n build: EndpointBuilder<any, any, any>,\n url: string = \"session/logout/\",\n) {\n return build.mutation<ResultType, QueryArg>({\n query: () => ({ url, method: \"POST\" }),\n async onQueryStarted(_, { dispatch, queryFulfilled }) {\n try {\n await queryFulfilled\n } catch (error) {\n console.error(\"Failed to call logout endpoint...\", error)\n } finally {\n dispatch(logout())\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access\n dispatch(api.util.resetApiState())\n }\n },\n })\n}\n"],"names":["buildLoginEndpoint","build","url","body","_","dispatch","queryFulfilled","login","error","buildLogoutEndpoint","api","logout"],"mappings":"+FAUO,SAASA,EACdC,EACAC,EAAc,iBACd,CACA,OAAOD,EAAM,SAA+B,CAC1C,MAAOE,IAAS,CAAE,IAAAD,EAAK,OAAQ,OAAQ,KAAAC,IACvC,MAAM,eAAeC,EAAG,CAAE,SAAAC,EAAU,eAAAC,GAAkB,CACpD,GAAI,CACF,MAAMA,EACND,EAASE,EAAAA,OAAO,CAClB,OAASC,EAAO,CACd,QAAQ,MAAM,mCAAoCA,CAAK,CACzD,CACF,CAAA,CACD,CACH,CAEO,SAASC,EACdC,EACAT,EACAC,EAAc,kBACd,CACA,OAAOD,EAAM,SAA+B,CAC1C,MAAO,KAAO,CAAE,IAAAC,EAAK,OAAQ,MAAA,GAC7B,MAAM,eAAeE,EAAG,CAAE,SAAAC,EAAU,eAAAC,GAAkB,CACpD,GAAI,CACF,MAAMA,CACR,OAASE,EAAO,CACd,QAAQ,MAAM,oCAAqCA,CAAK,CAC1D,QAAA,CACEH,EAASM,EAAAA,QAAQ,EAEjBN,EAASK,EAAI,KAAK,eAAe,CACnC,CACF,CAAA,CACD,CACH"}
@@ -1,2 +1,2 @@
1
- "use strict";require("@mui/material");const e=require("../../index-B89FjK7v.cjs");module.exports=e.components;
1
+ "use strict";require("@mui/material");const e=require("../../index-D2B9uIE4.cjs");module.exports=e.components;
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1,5 +1,5 @@
1
1
  import "@mui/material";
2
- import { c as a } from "../../index-CHboZsxD.js";
2
+ import { c as a } from "../../index-CDxf6gMv.js";
3
3
  export {
4
4
  a as default
5
5
  };
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("@mui/material"),c=require("../index-B89FjK7v.cjs"),o=require("../palette-BnIdHKDE.cjs"),a=require("../jsx-runtime-B2pbW5Fp.cjs"),h=require("@mui/icons-material"),j=({options:t=x,withShapes:d=!1,userType:u,bgcolor:n,children:v,sx:M,...g})=>{let p,l,r;switch(u){case"teacher":n=n??o.primary[400],p="tertiary",l="secondary",r=o.palette.primary.contrastText;break;case"student":n=n??o.tertiary[500],p="secondary",l="primary",r=o.palette.tertiary.contrastText;break;case"independent":n=n??o.secondary[500],p="primary",l="tertiary",r=o.palette.secondary.contrastText;break}const y={display:{xs:"none",md:"block"},fontSize:"180px",position:"absolute"},m={color:r,textDecorationColor:r};function s(e,k,O,T="root"){return{...c.getStyleOverrides(e,O,T,t.components),...!c.includesClassNames(e,["no-override"])&&k}}const b=i.responsiveFontSizes(i.createTheme({...t,components:{...t.components,MuiTypography:{...t.components?.MuiTypography,styleOverrides:{...t.components?.MuiTypography?.styleOverrides,root:({ownerState:e})=>s(e,{...m},"MuiTypography")}},MuiFormHelperText:{...t.components?.MuiFormHelperText,styleOverrides:{...t.components?.MuiFormHelperText?.styleOverrides,root:({ownerState:e})=>s(e,{...m},"MuiFormHelperText")}},MuiLink:{...t.components?.MuiLink,styleOverrides:{...t.components?.MuiLink?.styleOverrides,root:({ownerState:e})=>s(e,{...m},"MuiLink")}},MuiButton:{...t.components?.MuiButton,styleOverrides:{...t.components?.MuiButton?.styleOverrides,contained:({ownerState:e})=>s(e,{...u==="independent"&&{backgroundColor:"white","&:hover":{backgroundColor:"#f6f5f5",boxShadow:["0px 6px 10px 0px rgba(0, 0, 0, 0.14)","0px 1px 18px 0px rgba(0, 0, 0, 0.12)","0px 3px 5px 0px rgba(0, 0, 0, 0.2);"].join()},[`&.${i.buttonClasses.disabled}`]:{backgroundColor:"white",color:r}}},"MuiButton","contained"),outlined:({ownerState:e})=>s(e,{...m,border:`2px solid ${r}`,"&:hover":{border:`2px solid ${r}`,backgroundColor:"transparent",textDecoration:"underline"}},"MuiButton","outlined")}},MuiCheckbox:{...t.components?.MuiCheckbox,styleOverrides:{...t.components?.MuiCheckbox?.styleOverrides,root:({ownerState:e})=>s(e,{color:`${r} !important`},"MuiCheckbox")}},MuiSvgIcon:{...t.components?.MuiSvgIcon,styleOverrides:{...t.components?.MuiSvgIcon?.styleOverrides,root:({ownerState:e})=>s(e,{"&.checkbox-error":{color:`${r} !important`}},"MuiSvgIcon")}}}}));return a.jsxRuntimeExports.jsx(i.ThemeProvider,{theme:b,children:a.jsxRuntimeExports.jsxs(i.Box,{sx:{...M,...d&&{paddingY:{xs:2,sm:3,md:5},paddingX:{xs:2,sm:5,md:10},marginX:{md:"90px"}},bgcolor:n,alignItems:"center",position:"relative"},...g,children:[d&&a.jsxRuntimeExports.jsxs(a.jsxRuntimeExports.Fragment,{children:[a.jsxRuntimeExports.jsx(h.Circle,{color:p,sx:{...y,top:"5%",left:"0%",transform:"translate(-60%, 0%)"}}),a.jsxRuntimeExports.jsx(h.Hexagon,{color:l,sx:{...y,bottom:"5%",right:"0%",transform:"translate(60%, 0%) rotate(90deg)"}})]}),v]})})},x={palette:o.palette,components:c.components,spacing:c.spacing,typography:c.typography},C=i.responsiveFontSizes(i.createTheme(x));exports.colors=o.colors;exports.ThemedBox=j;exports.theme=C;exports.themeOptions=x;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("@mui/material"),c=require("../index-D2B9uIE4.cjs"),o=require("../palette-BnIdHKDE.cjs"),a=require("react/jsx-runtime"),h=require("@mui/icons-material"),C=({options:t=m,withShapes:u=!1,userType:x,bgcolor:n,children:v,sx:M,...g})=>{let l,p,r;switch(x){case"teacher":n=n??o.primary[400],l="tertiary",p="secondary",r=o.palette.primary.contrastText;break;case"student":n=n??o.tertiary[500],l="secondary",p="primary",r=o.palette.tertiary.contrastText;break;case"independent":n=n??o.secondary[500],l="primary",p="tertiary",r=o.palette.secondary.contrastText;break}const y={display:{xs:"none",md:"block"},fontSize:"180px",position:"absolute"},d={color:r,textDecorationColor:r};function s(e,k,O,T="root"){return{...c.getStyleOverrides(e,O,T,t.components),...!c.includesClassNames(e,["no-override"])&&k}}const b=i.responsiveFontSizes(i.createTheme({...t,components:{...t.components,MuiTypography:{...t.components?.MuiTypography,styleOverrides:{...t.components?.MuiTypography?.styleOverrides,root:({ownerState:e})=>s(e,{...d},"MuiTypography")}},MuiFormHelperText:{...t.components?.MuiFormHelperText,styleOverrides:{...t.components?.MuiFormHelperText?.styleOverrides,root:({ownerState:e})=>s(e,{...d},"MuiFormHelperText")}},MuiLink:{...t.components?.MuiLink,styleOverrides:{...t.components?.MuiLink?.styleOverrides,root:({ownerState:e})=>s(e,{...d},"MuiLink")}},MuiButton:{...t.components?.MuiButton,styleOverrides:{...t.components?.MuiButton?.styleOverrides,contained:({ownerState:e})=>s(e,{...x==="independent"&&{backgroundColor:"white","&:hover":{backgroundColor:"#f6f5f5",boxShadow:["0px 6px 10px 0px rgba(0, 0, 0, 0.14)","0px 1px 18px 0px rgba(0, 0, 0, 0.12)","0px 3px 5px 0px rgba(0, 0, 0, 0.2);"].join()},[`&.${i.buttonClasses.disabled}`]:{backgroundColor:"white",color:r}}},"MuiButton","contained"),outlined:({ownerState:e})=>s(e,{...d,border:`2px solid ${r}`,"&:hover":{border:`2px solid ${r}`,backgroundColor:"transparent",textDecoration:"underline"}},"MuiButton","outlined")}},MuiCheckbox:{...t.components?.MuiCheckbox,styleOverrides:{...t.components?.MuiCheckbox?.styleOverrides,root:({ownerState:e})=>s(e,{color:`${r} !important`},"MuiCheckbox")}},MuiSvgIcon:{...t.components?.MuiSvgIcon,styleOverrides:{...t.components?.MuiSvgIcon?.styleOverrides,root:({ownerState:e})=>s(e,{"&.checkbox-error":{color:`${r} !important`}},"MuiSvgIcon")}}}}));return a.jsx(i.ThemeProvider,{theme:b,children:a.jsxs(i.Box,{sx:{...M,...u&&{paddingY:{xs:2,sm:3,md:5},paddingX:{xs:2,sm:5,md:10},marginX:{md:"90px"}},bgcolor:n,alignItems:"center",position:"relative"},...g,children:[u&&a.jsxs(a.Fragment,{children:[a.jsx(h.Circle,{color:l,sx:{...y,top:"5%",left:"0%",transform:"translate(-60%, 0%)"}}),a.jsx(h.Hexagon,{color:p,sx:{...y,bottom:"5%",right:"0%",transform:"translate(60%, 0%) rotate(90deg)"}})]}),v]})})},m={palette:o.palette,components:c.components,spacing:c.spacing,typography:c.typography},S=i.responsiveFontSizes(i.createTheme(m));exports.colors=o.colors;exports.ThemedBox=C;exports.theme=S;exports.themeOptions=m;
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../src/theme/ThemedBox.tsx","../../src/theme/index.ts"],"sourcesContent":["import {\n Box,\n type BoxProps,\n type CSSObject,\n type PaletteColor,\n type SxProps,\n type ThemeOptions,\n ThemeProvider,\n buttonClasses,\n createTheme,\n responsiveFontSizes,\n} from \"@mui/material\"\nimport {\n Circle as CircleIcon,\n Hexagon as HexagonIcon,\n} from \"@mui/icons-material\"\nimport type { CommonProps } from \"@mui/material/OverridableComponent\"\nimport type React from \"react\"\n\nimport { getStyleOverrides, includesClassNames } from \"../utils/theme\"\nimport { primary, secondary, tertiary } from \"./colors\"\nimport type Components from \"./components/_components\"\nimport palette from \"./palette\"\nimport { themeOptions } from \".\"\n\nexport interface ThemedBoxProps extends BoxProps {\n options?: ThemeOptions\n withShapes?: boolean\n userType: \"teacher\" | \"student\" | \"independent\"\n bgcolor?: string\n}\n\nconst ThemedBox: React.FC<ThemedBoxProps> = ({\n options = themeOptions,\n withShapes = false,\n userType,\n bgcolor,\n children,\n sx,\n ...otherBoxProps\n}) => {\n let circleColor: \"primary\" | \"secondary\" | \"tertiary\"\n let hexagonColor: \"primary\" | \"secondary\" | \"tertiary\"\n let contrastText: string\n switch (userType) {\n case \"teacher\":\n bgcolor = bgcolor ?? primary[400]\n circleColor = \"tertiary\"\n hexagonColor = \"secondary\"\n contrastText = (palette.primary as PaletteColor).contrastText\n break\n case \"student\":\n bgcolor = bgcolor ?? tertiary[500]\n circleColor = \"secondary\"\n hexagonColor = \"primary\"\n contrastText = palette.tertiary.contrastText\n break\n case \"independent\":\n bgcolor = bgcolor ?? secondary[500]\n circleColor = \"primary\"\n hexagonColor = \"tertiary\"\n contrastText = (palette.secondary as PaletteColor).contrastText\n break\n }\n\n const commonIconSxProps: SxProps = {\n display: { xs: \"none\", md: \"block\" },\n fontSize: \"180px\",\n position: \"absolute\",\n }\n\n const fontStyleOverrides = {\n color: contrastText,\n textDecorationColor: contrastText,\n }\n\n function overrideStyles(\n ownerState: CommonProps,\n styleOverrides: CSSObject,\n componentKey: keyof Components,\n muiClassName: string = \"root\",\n ): CSSObject {\n return {\n // Get the original styles.\n ...getStyleOverrides(\n ownerState,\n componentKey,\n muiClassName,\n options.components,\n ),\n // Override styles unless the class name 'no-override' is set.\n ...(!includesClassNames(ownerState, [\"no-override\"]) && styleOverrides),\n }\n }\n\n const theme = responsiveFontSizes(\n createTheme({\n ...options,\n components: {\n ...options.components,\n MuiTypography: {\n ...options.components?.MuiTypography,\n styleOverrides: {\n ...options.components?.MuiTypography?.styleOverrides,\n root: ({ ownerState }) =>\n overrideStyles(\n ownerState,\n {\n ...fontStyleOverrides,\n },\n \"MuiTypography\",\n ),\n },\n },\n MuiFormHelperText: {\n ...options.components?.MuiFormHelperText,\n styleOverrides: {\n ...options.components?.MuiFormHelperText?.styleOverrides,\n root: ({ ownerState }) =>\n overrideStyles(\n ownerState,\n {\n ...fontStyleOverrides,\n },\n \"MuiFormHelperText\",\n ),\n },\n },\n MuiLink: {\n ...options.components?.MuiLink,\n styleOverrides: {\n ...options.components?.MuiLink?.styleOverrides,\n root: ({ ownerState }) =>\n overrideStyles(\n ownerState,\n {\n ...fontStyleOverrides,\n },\n \"MuiLink\",\n ),\n },\n },\n MuiButton: {\n ...options.components?.MuiButton,\n styleOverrides: {\n ...options.components?.MuiButton?.styleOverrides,\n contained: ({ ownerState }) =>\n overrideStyles(\n ownerState,\n {\n ...(userType === \"independent\" && {\n backgroundColor: \"white\",\n \"&:hover\": {\n backgroundColor: \"#f6f5f5\",\n boxShadow: [\n \"0px 6px 10px 0px rgba(0, 0, 0, 0.14)\",\n \"0px 1px 18px 0px rgba(0, 0, 0, 0.12)\",\n \"0px 3px 5px 0px rgba(0, 0, 0, 0.2);\",\n ].join(),\n },\n [`&.${buttonClasses.disabled}`]: {\n backgroundColor: \"white\",\n color: contrastText,\n },\n }),\n },\n \"MuiButton\",\n \"contained\",\n ),\n outlined: ({ ownerState }) =>\n overrideStyles(\n ownerState,\n {\n ...fontStyleOverrides,\n border: `2px solid ${contrastText}`,\n \"&:hover\": {\n border: `2px solid ${contrastText}`,\n backgroundColor: \"transparent\",\n textDecoration: \"underline\",\n },\n },\n \"MuiButton\",\n \"outlined\",\n ),\n },\n },\n MuiCheckbox: {\n ...options.components?.MuiCheckbox,\n styleOverrides: {\n ...options.components?.MuiCheckbox?.styleOverrides,\n root: ({ ownerState }) =>\n overrideStyles(\n ownerState,\n {\n color: `${contrastText} !important`,\n },\n \"MuiCheckbox\",\n ),\n },\n },\n MuiSvgIcon: {\n ...options.components?.MuiSvgIcon,\n styleOverrides: {\n ...options.components?.MuiSvgIcon?.styleOverrides,\n root: ({ ownerState }) =>\n overrideStyles(\n ownerState,\n {\n \"&.checkbox-error\": {\n color: `${contrastText} !important`,\n },\n },\n \"MuiSvgIcon\",\n ),\n },\n },\n },\n }),\n )\n\n return (\n <ThemeProvider theme={theme}>\n <Box\n sx={{\n ...sx,\n ...(withShapes && {\n paddingY: { xs: 2, sm: 3, md: 5 },\n paddingX: { xs: 2, sm: 5, md: 10 },\n marginX: { md: \"90px\" },\n }),\n bgcolor,\n alignItems: \"center\",\n position: \"relative\",\n }}\n {...otherBoxProps}\n >\n {withShapes && (\n <>\n <CircleIcon\n color={circleColor}\n sx={{\n ...commonIconSxProps,\n top: \"5%\",\n left: \"0%\",\n transform: \"translate(-60%, 0%)\",\n }}\n />\n <HexagonIcon\n color={hexagonColor}\n sx={{\n ...commonIconSxProps,\n bottom: \"5%\",\n right: \"0%\",\n transform: \"translate(60%, 0%) rotate(90deg)\",\n }}\n />\n </>\n )}\n {children}\n </Box>\n </ThemeProvider>\n )\n}\n\nexport default ThemedBox\n","import {\n type ThemeOptions,\n createTheme,\n responsiveFontSizes,\n} from \"@mui/material\"\n\nimport components from \"./components\"\nimport palette from \"./palette\"\nimport spacing from \"./spacing\"\nimport typography from \"./typography\"\n\nexport * as colors from \"./colors\"\nexport * from \"./palette\"\nexport * from \"./ThemedBox\"\nexport { default as ThemedBox } from \"./ThemedBox\"\n\nexport const themeOptions: ThemeOptions = {\n palette,\n components,\n spacing,\n typography,\n}\n\nexport const theme = responsiveFontSizes(createTheme(themeOptions))\n"],"names":["ThemedBox","options","themeOptions","withShapes","userType","bgcolor","children","sx","otherBoxProps","circleColor","hexagonColor","contrastText","primary","palette","tertiary","secondary","commonIconSxProps","fontStyleOverrides","overrideStyles","ownerState","styleOverrides","componentKey","muiClassName","getStyleOverrides","includesClassNames","theme","responsiveFontSizes","createTheme","buttonClasses","jsx","ThemeProvider","jsxs","Box","Fragment","CircleIcon","HexagonIcon","components","spacing","typography"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../src/theme/ThemedBox.tsx","../../src/theme/index.ts"],"sourcesContent":["import {\n Box,\n type BoxProps,\n type CSSObject,\n type PaletteColor,\n type SxProps,\n type ThemeOptions,\n ThemeProvider,\n buttonClasses,\n createTheme,\n responsiveFontSizes,\n} from \"@mui/material\"\nimport {\n Circle as CircleIcon,\n Hexagon as HexagonIcon,\n} from \"@mui/icons-material\"\nimport type { CommonProps } from \"@mui/material/OverridableComponent\"\nimport type React from \"react\"\n\nimport { getStyleOverrides, includesClassNames } from \"../utils/theme\"\nimport { primary, secondary, tertiary } from \"./colors\"\nimport type Components from \"./components/_components\"\nimport palette from \"./palette\"\nimport { themeOptions } from \".\"\n\nexport interface ThemedBoxProps extends BoxProps {\n options?: ThemeOptions\n withShapes?: boolean\n userType: \"teacher\" | \"student\" | \"independent\"\n bgcolor?: string\n}\n\nconst ThemedBox: React.FC<ThemedBoxProps> = ({\n options = themeOptions,\n withShapes = false,\n userType,\n bgcolor,\n children,\n sx,\n ...otherBoxProps\n}) => {\n let circleColor: \"primary\" | \"secondary\" | \"tertiary\"\n let hexagonColor: \"primary\" | \"secondary\" | \"tertiary\"\n let contrastText: string\n switch (userType) {\n case \"teacher\":\n bgcolor = bgcolor ?? primary[400]\n circleColor = \"tertiary\"\n hexagonColor = \"secondary\"\n contrastText = (palette.primary as PaletteColor).contrastText\n break\n case \"student\":\n bgcolor = bgcolor ?? tertiary[500]\n circleColor = \"secondary\"\n hexagonColor = \"primary\"\n contrastText = palette.tertiary.contrastText\n break\n case \"independent\":\n bgcolor = bgcolor ?? secondary[500]\n circleColor = \"primary\"\n hexagonColor = \"tertiary\"\n contrastText = (palette.secondary as PaletteColor).contrastText\n break\n }\n\n const commonIconSxProps: SxProps = {\n display: { xs: \"none\", md: \"block\" },\n fontSize: \"180px\",\n position: \"absolute\",\n }\n\n const fontStyleOverrides = {\n color: contrastText,\n textDecorationColor: contrastText,\n }\n\n function overrideStyles(\n ownerState: CommonProps,\n styleOverrides: CSSObject,\n componentKey: keyof Components,\n muiClassName: string = \"root\",\n ): CSSObject {\n return {\n // Get the original styles.\n ...getStyleOverrides(\n ownerState,\n componentKey,\n muiClassName,\n options.components,\n ),\n // Override styles unless the class name 'no-override' is set.\n ...(!includesClassNames(ownerState, [\"no-override\"]) && styleOverrides),\n }\n }\n\n const theme = responsiveFontSizes(\n createTheme({\n ...options,\n components: {\n ...options.components,\n MuiTypography: {\n ...options.components?.MuiTypography,\n styleOverrides: {\n ...options.components?.MuiTypography?.styleOverrides,\n root: ({ ownerState }) =>\n overrideStyles(\n ownerState,\n {\n ...fontStyleOverrides,\n },\n \"MuiTypography\",\n ),\n },\n },\n MuiFormHelperText: {\n ...options.components?.MuiFormHelperText,\n styleOverrides: {\n ...options.components?.MuiFormHelperText?.styleOverrides,\n root: ({ ownerState }) =>\n overrideStyles(\n ownerState,\n {\n ...fontStyleOverrides,\n },\n \"MuiFormHelperText\",\n ),\n },\n },\n MuiLink: {\n ...options.components?.MuiLink,\n styleOverrides: {\n ...options.components?.MuiLink?.styleOverrides,\n root: ({ ownerState }) =>\n overrideStyles(\n ownerState,\n {\n ...fontStyleOverrides,\n },\n \"MuiLink\",\n ),\n },\n },\n MuiButton: {\n ...options.components?.MuiButton,\n styleOverrides: {\n ...options.components?.MuiButton?.styleOverrides,\n contained: ({ ownerState }) =>\n overrideStyles(\n ownerState,\n {\n ...(userType === \"independent\" && {\n backgroundColor: \"white\",\n \"&:hover\": {\n backgroundColor: \"#f6f5f5\",\n boxShadow: [\n \"0px 6px 10px 0px rgba(0, 0, 0, 0.14)\",\n \"0px 1px 18px 0px rgba(0, 0, 0, 0.12)\",\n \"0px 3px 5px 0px rgba(0, 0, 0, 0.2);\",\n ].join(),\n },\n [`&.${buttonClasses.disabled}`]: {\n backgroundColor: \"white\",\n color: contrastText,\n },\n }),\n },\n \"MuiButton\",\n \"contained\",\n ),\n outlined: ({ ownerState }) =>\n overrideStyles(\n ownerState,\n {\n ...fontStyleOverrides,\n border: `2px solid ${contrastText}`,\n \"&:hover\": {\n border: `2px solid ${contrastText}`,\n backgroundColor: \"transparent\",\n textDecoration: \"underline\",\n },\n },\n \"MuiButton\",\n \"outlined\",\n ),\n },\n },\n MuiCheckbox: {\n ...options.components?.MuiCheckbox,\n styleOverrides: {\n ...options.components?.MuiCheckbox?.styleOverrides,\n root: ({ ownerState }) =>\n overrideStyles(\n ownerState,\n {\n color: `${contrastText} !important`,\n },\n \"MuiCheckbox\",\n ),\n },\n },\n MuiSvgIcon: {\n ...options.components?.MuiSvgIcon,\n styleOverrides: {\n ...options.components?.MuiSvgIcon?.styleOverrides,\n root: ({ ownerState }) =>\n overrideStyles(\n ownerState,\n {\n \"&.checkbox-error\": {\n color: `${contrastText} !important`,\n },\n },\n \"MuiSvgIcon\",\n ),\n },\n },\n },\n }),\n )\n\n return (\n <ThemeProvider theme={theme}>\n <Box\n sx={{\n ...sx,\n ...(withShapes && {\n paddingY: { xs: 2, sm: 3, md: 5 },\n paddingX: { xs: 2, sm: 5, md: 10 },\n marginX: { md: \"90px\" },\n }),\n bgcolor,\n alignItems: \"center\",\n position: \"relative\",\n }}\n {...otherBoxProps}\n >\n {withShapes && (\n <>\n <CircleIcon\n color={circleColor}\n sx={{\n ...commonIconSxProps,\n top: \"5%\",\n left: \"0%\",\n transform: \"translate(-60%, 0%)\",\n }}\n />\n <HexagonIcon\n color={hexagonColor}\n sx={{\n ...commonIconSxProps,\n bottom: \"5%\",\n right: \"0%\",\n transform: \"translate(60%, 0%) rotate(90deg)\",\n }}\n />\n </>\n )}\n {children}\n </Box>\n </ThemeProvider>\n )\n}\n\nexport default ThemedBox\n","import {\n type ThemeOptions,\n createTheme,\n responsiveFontSizes,\n} from \"@mui/material\"\n\nimport components from \"./components\"\nimport palette from \"./palette\"\nimport spacing from \"./spacing\"\nimport typography from \"./typography\"\n\nexport * as colors from \"./colors\"\nexport * from \"./palette\"\nexport * from \"./ThemedBox\"\nexport { default as ThemedBox } from \"./ThemedBox\"\n\nexport const themeOptions: ThemeOptions = {\n palette,\n components,\n spacing,\n typography,\n}\n\nexport const theme = responsiveFontSizes(createTheme(themeOptions))\n"],"names":["ThemedBox","options","themeOptions","withShapes","userType","bgcolor","children","sx","otherBoxProps","circleColor","hexagonColor","contrastText","primary","palette","tertiary","secondary","commonIconSxProps","fontStyleOverrides","overrideStyles","ownerState","styleOverrides","componentKey","muiClassName","getStyleOverrides","includesClassNames","theme","responsiveFontSizes","createTheme","buttonClasses","jsx","ThemeProvider","jsxs","Box","Fragment","CircleIcon","HexagonIcon","components","spacing","typography"],"mappings":"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"}