@epic-web/workshop-app 6.1.0 → 6.3.0

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 (230) hide show
  1. package/build/client/assets/_-Kbj-HAPY.js +2 -0
  2. package/build/client/assets/{_-C_7mS1-0.js.map → _-Kbj-HAPY.js.map} +1 -1
  3. package/build/client/assets/{_basePickBy-DkOIaPL8.js → _basePickBy-WG4U0WMd.js} +2 -2
  4. package/build/client/assets/{_basePickBy-DkOIaPL8.js.map → _basePickBy-WG4U0WMd.js.map} +1 -1
  5. package/build/client/assets/{_baseUniq-BAqp_AZM.js → _baseUniq--zdZg7WG.js} +2 -2
  6. package/build/client/assets/{_baseUniq-BAqp_AZM.js.map → _baseUniq--zdZg7WG.js.map} +1 -1
  7. package/build/client/assets/_exerciseNumber-MXWVsKzI.js +2 -0
  8. package/build/client/assets/{_exerciseNumber-CdGNKLia.js.map → _exerciseNumber-MXWVsKzI.js.map} +1 -1
  9. package/build/client/assets/_exerciseNumber_._stepNumber-BfeokKD3.js +2 -0
  10. package/build/client/assets/{_exerciseNumber_._stepNumber-BNj079sn.js.map → _exerciseNumber_._stepNumber-BfeokKD3.js.map} +1 -1
  11. package/build/client/assets/_exerciseNumber_.finished-Dr6lECMK.js +2 -0
  12. package/build/client/assets/{_exerciseNumber_.finished-Ce6wQJ7W.js.map → _exerciseNumber_.finished-Dr6lECMK.js.map} +1 -1
  13. package/build/client/assets/_layout-Bv8l5wO7.js +2 -0
  14. package/build/client/assets/{_layout-C-qRb0Ym.js.map → _layout-Bv8l5wO7.js.map} +1 -1
  15. package/build/client/assets/{_layout-Tp2XmIFb.js → _layout-ePpFHa-S.js} +3 -3
  16. package/build/client/assets/{_layout-Tp2XmIFb.js.map → _layout-ePpFHa-S.js.map} +1 -1
  17. package/build/client/assets/accordion-DBvaz78c.js +2 -0
  18. package/build/client/assets/{accordion-PSsenYUI.js.map → accordion-DBvaz78c.js.map} +1 -1
  19. package/build/client/assets/account-BgHt6sNV.js +2 -0
  20. package/build/client/assets/{account-Jl0f1Zst.js.map → account-BgHt6sNV.js.map} +1 -1
  21. package/build/client/assets/app-By03B5QO.js +2 -0
  22. package/build/client/assets/{app-KDd3xjI9.js.map → app-By03B5QO.js.map} +1 -1
  23. package/build/client/assets/{arc-DWALijMH.js → arc-D-54mj1a.js} +2 -2
  24. package/build/client/assets/{arc-DWALijMH.js.map → arc-D-54mj1a.js.map} +1 -1
  25. package/build/client/assets/architectureDiagram-NQ2NVSRB-CamU9d2s.js +37 -0
  26. package/build/client/assets/{architectureDiagram-NQ2NVSRB-tX-q9elq.js.map → architectureDiagram-NQ2NVSRB-CamU9d2s.js.map} +1 -1
  27. package/build/client/assets/{blockDiagram-PHRCVELO-CDy5WrXO.js → blockDiagram-PHRCVELO-8PiJU5dn.js} +3 -3
  28. package/build/client/assets/{blockDiagram-PHRCVELO-CDy5WrXO.js.map → blockDiagram-PHRCVELO-8PiJU5dn.js.map} +1 -1
  29. package/build/client/assets/{button-cFpvwtjC.js → button-BoJWEKHp.js} +2 -2
  30. package/build/client/assets/{button-cFpvwtjC.js.map → button-BoJWEKHp.js.map} +1 -1
  31. package/build/client/assets/{c4Diagram-6F6E4RAY-CFbAkThh.js → c4Diagram-6F6E4RAY-a_Vz9FQp.js} +3 -3
  32. package/build/client/assets/{c4Diagram-6F6E4RAY-CFbAkThh.js.map → c4Diagram-6F6E4RAY-a_Vz9FQp.js.map} +1 -1
  33. package/build/client/assets/channel-olxjZBcv.js +2 -0
  34. package/build/client/assets/{channel-DHkyUdNE.js.map → channel-olxjZBcv.js.map} +1 -1
  35. package/build/client/assets/{chunk-353BL4L5-Dpooe8HA.js → chunk-353BL4L5-QtLxglxb.js} +2 -2
  36. package/build/client/assets/{chunk-353BL4L5-Dpooe8HA.js.map → chunk-353BL4L5-QtLxglxb.js.map} +1 -1
  37. package/build/client/assets/{chunk-67H74DCK-LD3kHetT.js → chunk-67H74DCK-N9VlvDsS.js} +2 -2
  38. package/build/client/assets/{chunk-67H74DCK-LD3kHetT.js.map → chunk-67H74DCK-N9VlvDsS.js.map} +1 -1
  39. package/build/client/assets/{chunk-6OLS64BW-DqN3K0zX.js → chunk-6OLS64BW-Bw6L54gk.js} +2 -2
  40. package/build/client/assets/{chunk-6OLS64BW-DqN3K0zX.js.map → chunk-6OLS64BW-Bw6L54gk.js.map} +1 -1
  41. package/build/client/assets/{chunk-AACKK3MU-956RrsQJ.js → chunk-AACKK3MU-CGRxti6k.js} +2 -2
  42. package/build/client/assets/{chunk-AACKK3MU-956RrsQJ.js.map → chunk-AACKK3MU-CGRxti6k.js.map} +1 -1
  43. package/build/client/assets/{chunk-BFAMUDN2-By_sWoWf.js → chunk-BFAMUDN2-D0k5yzNa.js} +2 -2
  44. package/build/client/assets/{chunk-BFAMUDN2-By_sWoWf.js.map → chunk-BFAMUDN2-D0k5yzNa.js.map} +1 -1
  45. package/build/client/assets/{chunk-E2GYISFI-CYbTdeHG.js → chunk-E2GYISFI-L538ejWD.js} +2 -2
  46. package/build/client/assets/{chunk-E2GYISFI-CYbTdeHG.js.map → chunk-E2GYISFI-L538ejWD.js.map} +1 -1
  47. package/build/client/assets/{chunk-QEP2MXWD-EMIn8SEG.js → chunk-QEP2MXWD-DdDxYCFZ.js} +2 -2
  48. package/build/client/assets/{chunk-QEP2MXWD-EMIn8SEG.js.map → chunk-QEP2MXWD-DdDxYCFZ.js.map} +1 -1
  49. package/build/client/assets/{chunk-SKB7J2MH-CPK45517.js → chunk-SKB7J2MH-BntWlIrL.js} +2 -2
  50. package/build/client/assets/{chunk-SKB7J2MH-CPK45517.js.map → chunk-SKB7J2MH-BntWlIrL.js.map} +1 -1
  51. package/build/client/assets/classDiagram-BGRH5UQR-C5Mv_s-i.js +2 -0
  52. package/build/client/assets/{classDiagram-BGRH5UQR-DMFCY4SY.js.map → classDiagram-BGRH5UQR-C5Mv_s-i.js.map} +1 -1
  53. package/build/client/assets/classDiagram-v2-O24JOBDK-C5Mv_s-i.js +2 -0
  54. package/build/client/assets/{classDiagram-v2-O24JOBDK-DMFCY4SY.js.map → classDiagram-v2-O24JOBDK-C5Mv_s-i.js.map} +1 -1
  55. package/build/client/assets/clone-B94ujfDo.js +2 -0
  56. package/build/client/assets/{clone-DgOnCE7a.js.map → clone-B94ujfDo.js.map} +1 -1
  57. package/build/client/assets/clsx-B-dksMZM.js +2 -0
  58. package/build/client/assets/clsx-B-dksMZM.js.map +1 -0
  59. package/build/client/assets/dagre-FFZHY6LT-UmchHP04.js +5 -0
  60. package/build/client/assets/{dagre-FFZHY6LT-D8_T6tZq.js.map → dagre-FFZHY6LT-UmchHP04.js.map} +1 -1
  61. package/build/client/assets/diagram-3EMPZRKU-CjmDnDXX.js +25 -0
  62. package/build/client/assets/{diagram-3EMPZRKU-BEeRqItD.js.map → diagram-3EMPZRKU-CjmDnDXX.js.map} +1 -1
  63. package/build/client/assets/diagram-5UYTHUR4-C85dABA1.js +25 -0
  64. package/build/client/assets/{diagram-5UYTHUR4-CikqdCuq.js.map → diagram-5UYTHUR4-C85dABA1.js.map} +1 -1
  65. package/build/client/assets/diagram-ZTM2IBQH-CH_XZ7tw.js +44 -0
  66. package/build/client/assets/{diagram-ZTM2IBQH-CDz-uqOk.js.map → diagram-ZTM2IBQH-CH_XZ7tw.js.map} +1 -1
  67. package/build/client/assets/diff-C1wUPjJK.js +2 -0
  68. package/build/client/assets/{diff-DLaUr4S6.js.map → diff-C1wUPjJK.js.map} +1 -1
  69. package/build/client/assets/diff-CxZ19SOv.js +2 -0
  70. package/build/client/assets/{diff-BXApfmyx.js.map → diff-CxZ19SOv.js.map} +1 -1
  71. package/build/client/assets/{discord-DOEtvB6W.js → discord-B5cRUOhZ.js} +2 -2
  72. package/build/client/assets/{discord-DOEtvB6W.js.map → discord-B5cRUOhZ.js.map} +1 -1
  73. package/build/client/assets/discord-BvZSO_OZ.js +2 -0
  74. package/build/client/assets/discord-BvZSO_OZ.js.map +1 -0
  75. package/build/client/assets/{epic-video-Buv6ZzQr.js → epic-video-CRkBFsAC.js} +2 -2
  76. package/build/client/assets/{epic-video-Buv6ZzQr.js.map → epic-video-CRkBFsAC.js.map} +1 -1
  77. package/build/client/assets/{erDiagram-R3QVA2FD-WzL917SV.js → erDiagram-R3QVA2FD-DbFybc7W.js} +3 -3
  78. package/build/client/assets/{erDiagram-R3QVA2FD-WzL917SV.js.map → erDiagram-R3QVA2FD-DbFybc7W.js.map} +1 -1
  79. package/build/client/assets/{error-boundary-B8bEOgxp.js → error-boundary-bzCOyChj.js} +2 -2
  80. package/build/client/assets/{error-boundary-B8bEOgxp.js.map → error-boundary-bzCOyChj.js.map} +1 -1
  81. package/build/client/assets/finished-D-PDIHdi.js +2 -0
  82. package/build/client/assets/{finished-BGX9JzP_.js.map → finished-D-PDIHdi.js.map} +1 -1
  83. package/build/client/assets/{flowDiagram-PKI6S5ZS-qimfuZS6.js → flowDiagram-PKI6S5ZS-b-Wr1zEn.js} +3 -3
  84. package/build/client/assets/{flowDiagram-PKI6S5ZS-qimfuZS6.js.map → flowDiagram-PKI6S5ZS-b-Wr1zEn.js.map} +1 -1
  85. package/build/client/assets/ganttDiagram-EK5VF46D-D25CAue3.js +268 -0
  86. package/build/client/assets/{ganttDiagram-EK5VF46D-R6ZSFdSM.js.map → ganttDiagram-EK5VF46D-D25CAue3.js.map} +1 -1
  87. package/build/client/assets/gitGraphDiagram-GW3U2K7C-B7Ue-jLz.js +66 -0
  88. package/build/client/assets/{gitGraphDiagram-GW3U2K7C-DV4MLocC.js.map → gitGraphDiagram-GW3U2K7C-B7Ue-jLz.js.map} +1 -1
  89. package/build/client/assets/{graph-DbEC4aH6.js → graph-9sAzMH8t.js} +2 -2
  90. package/build/client/assets/{graph-DbEC4aH6.js.map → graph-9sAzMH8t.js.map} +1 -1
  91. package/build/client/assets/{index-5iWKMrsc.js → index-8yBq10sZ.js} +2 -2
  92. package/build/client/assets/{index-5iWKMrsc.js.map → index-8yBq10sZ.js.map} +1 -1
  93. package/build/client/assets/index-CS_uCg-3.js +2 -0
  94. package/build/client/assets/{index-Bn3YwCqZ.js.map → index-CS_uCg-3.js.map} +1 -1
  95. package/build/client/assets/index-Cf0XLNVj.js +2 -0
  96. package/build/client/assets/{index-CUv7g3UR.js.map → index-Cf0XLNVj.js.map} +1 -1
  97. package/build/client/assets/{index-7Ba6ptu2.js → index-CtnHrWrs.js} +2 -2
  98. package/build/client/assets/{index-7Ba6ptu2.js.map → index-CtnHrWrs.js.map} +1 -1
  99. package/build/client/assets/{index-CZ8q0Nf8.js → index-DPhEf4uN.js} +2 -2
  100. package/build/client/assets/{index-CZ8q0Nf8.js.map → index-DPhEf4uN.js.map} +1 -1
  101. package/build/client/assets/index-Dqd5qiWh.js +2 -0
  102. package/build/client/assets/{index-DxbpRM0V.js.map → index-Dqd5qiWh.js.map} +1 -1
  103. package/build/client/assets/infoDiagram-RLU2ROGC-DDlCYHQW.js +3 -0
  104. package/build/client/assets/{infoDiagram-RLU2ROGC-BJyo6jex.js.map → infoDiagram-RLU2ROGC-DDlCYHQW.js.map} +1 -1
  105. package/build/client/assets/{journeyDiagram-EWQZEKCU-aQCeSbRC.js → journeyDiagram-EWQZEKCU-Bm8mUykI.js} +3 -3
  106. package/build/client/assets/{journeyDiagram-EWQZEKCU-aQCeSbRC.js.map → journeyDiagram-EWQZEKCU-Bm8mUykI.js.map} +1 -1
  107. package/build/client/assets/{kanban-definition-ILFWEQ3N-CLcq3V0h.js → kanban-definition-ILFWEQ3N-BoSNcgtS.js} +3 -3
  108. package/build/client/assets/{kanban-definition-ILFWEQ3N-CLcq3V0h.js.map → kanban-definition-ILFWEQ3N-BoSNcgtS.js.map} +1 -1
  109. package/build/client/assets/{layout-DInHBBCO.js → layout-Ba5kmwon.js} +2 -2
  110. package/build/client/assets/{layout-DInHBBCO.js.map → layout-Ba5kmwon.js.map} +1 -1
  111. package/build/client/assets/{linear-BoPQG8e5.js → linear-ZPMI8s6B.js} +2 -2
  112. package/build/client/assets/{linear-BoPQG8e5.js.map → linear-ZPMI8s6B.js.map} +1 -1
  113. package/build/client/assets/{loading-WTUNhoIS.js → loading-C810LASV.js} +2 -2
  114. package/build/client/assets/{loading-WTUNhoIS.js.map → loading-C810LASV.js.map} +1 -1
  115. package/build/client/assets/login-CQRwgkfM.js +2 -0
  116. package/build/client/assets/{login-BzcTSzkr.js.map → login-CQRwgkfM.js.map} +1 -1
  117. package/build/client/assets/manifest-eb55e374.js +1 -0
  118. package/build/client/assets/mdx-DH55rolp.js +3 -0
  119. package/build/client/assets/{mdx-BrER1Z2t.js.map → mdx-DH55rolp.js.map} +1 -1
  120. package/build/client/assets/{mermaid.core-Cvtu6qL8.js → mermaid.core-CG5oJ8_-.js} +5 -5
  121. package/build/client/assets/{mermaid.core-Cvtu6qL8.js.map → mermaid.core-CG5oJ8_-.js.map} +1 -1
  122. package/build/client/assets/mindmap-definition-CZNETY7S-Dr_MsV9M.js +96 -0
  123. package/build/client/assets/{mindmap-definition-CZNETY7S-BwcWuimP.js.map → mindmap-definition-CZNETY7S-Dr_MsV9M.js.map} +1 -1
  124. package/build/client/assets/misc-DsJGqoYt.js +2 -0
  125. package/build/client/assets/misc-DsJGqoYt.js.map +1 -0
  126. package/build/client/assets/{nav-chevrons-Cxzx0j13.js → nav-chevrons-CSVvCjJa.js} +2 -2
  127. package/build/client/assets/{nav-chevrons-Cxzx0j13.js.map → nav-chevrons-CSVvCjJa.js.map} +1 -1
  128. package/build/client/assets/onboarding-CyHu3NPX.js +2 -0
  129. package/build/client/assets/{onboarding-CpNLu5ws.js.map → onboarding-CyHu3NPX.js.map} +1 -1
  130. package/build/client/assets/{online-CyV51Rml.js → online-Cf3nj5JR.js} +2 -2
  131. package/build/client/assets/{online-CyV51Rml.js.map → online-Cf3nj5JR.js.map} +1 -1
  132. package/build/client/assets/pieDiagram-NIOCPIFQ-DGamF-m5.js +31 -0
  133. package/build/client/assets/{pieDiagram-NIOCPIFQ-BGD0lX78.js.map → pieDiagram-NIOCPIFQ-DGamF-m5.js.map} +1 -1
  134. package/build/client/assets/preferences-eb0Opp1D.js +2 -0
  135. package/build/client/assets/preferences-eb0Opp1D.js.map +1 -0
  136. package/build/client/assets/{presence-CLRBf5dp.js → presence-DXH0dXJd.js} +2 -2
  137. package/build/client/assets/{presence-CLRBf5dp.js.map → presence-DXH0dXJd.js.map} +1 -1
  138. package/build/client/assets/preview-B35cxJW7.js +2 -0
  139. package/build/client/assets/{preview-CMOIed2z.js.map → preview-B35cxJW7.js.map} +1 -1
  140. package/build/client/assets/{product-B0zJEdi_.js → product-B3wkyL3-.js} +2 -2
  141. package/build/client/assets/{product-B0zJEdi_.js.map → product-B3wkyL3-.js.map} +1 -1
  142. package/build/client/assets/{progress-DKsShYpv.js → progress-BP5cLKuW.js} +2 -2
  143. package/build/client/assets/{progress-DKsShYpv.js.map → progress-BP5cLKuW.js.map} +1 -1
  144. package/build/client/assets/{progress-bar-Cww9t8Vn.js → progress-bar-BagX2z6n.js} +2 -2
  145. package/build/client/assets/{progress-bar-Cww9t8Vn.js.map → progress-bar-BagX2z6n.js.map} +1 -1
  146. package/build/client/assets/{quadrantDiagram-2OG54O6I-75mVARIA.js → quadrantDiagram-2OG54O6I-DzYQA4wE.js} +5 -5
  147. package/build/client/assets/{quadrantDiagram-2OG54O6I-75mVARIA.js.map → quadrantDiagram-2OG54O6I-DzYQA4wE.js.map} +1 -1
  148. package/build/client/assets/{requirementDiagram-SO3GGRV7-9xtgDM0W.js → requirementDiagram-SO3GGRV7-CT4nmOnG.js} +3 -3
  149. package/build/client/assets/{requirementDiagram-SO3GGRV7-9xtgDM0W.js.map → requirementDiagram-SO3GGRV7-CT4nmOnG.js.map} +1 -1
  150. package/build/client/assets/{revalidation-ws-CkOwoVmm.js → revalidation-ws-De6AS3e6.js} +2 -2
  151. package/build/client/assets/{revalidation-ws-CkOwoVmm.js.map → revalidation-ws-De6AS3e6.js.map} +1 -1
  152. package/build/client/assets/root-CoMxWz2o.js +2 -0
  153. package/build/client/assets/root-CoMxWz2o.js.map +1 -0
  154. package/build/client/assets/sankeyDiagram-4UZDY2LN-ByZQvDvv.js +11 -0
  155. package/build/client/assets/{sankeyDiagram-4UZDY2LN-GnxcKs-y.js.map → sankeyDiagram-4UZDY2LN-ByZQvDvv.js.map} +1 -1
  156. package/build/client/assets/{sequenceDiagram-ZIKVLSP4-nwxzVXHz.js → sequenceDiagram-ZIKVLSP4-D8J9bTtT.js} +3 -3
  157. package/build/client/assets/{sequenceDiagram-ZIKVLSP4-nwxzVXHz.js.map → sequenceDiagram-ZIKVLSP4-D8J9bTtT.js.map} +1 -1
  158. package/build/client/assets/set-playground-fnyxfdJX.js +2 -0
  159. package/build/client/assets/{set-playground-Bx0yIjpY.js.map → set-playground-fnyxfdJX.js.map} +1 -1
  160. package/build/client/assets/stateDiagram-XX37X6EN-CDbaOeD7.js +2 -0
  161. package/build/client/assets/{stateDiagram-XX37X6EN-DplHO2WC.js.map → stateDiagram-XX37X6EN-CDbaOeD7.js.map} +1 -1
  162. package/build/client/assets/stateDiagram-v2-GD6S3NHB-ZW9khKM8.js +2 -0
  163. package/build/client/assets/{stateDiagram-v2-GD6S3NHB-CmsjuNaA.js.map → stateDiagram-v2-GD6S3NHB-ZW9khKM8.js.map} +1 -1
  164. package/build/client/assets/tailwind-CyQBDA3D.css +1 -0
  165. package/build/client/assets/test-Dr7hgef4.js +2 -0
  166. package/build/client/assets/{test-DUocKqAt.js.map → test-Dr7hgef4.js.map} +1 -1
  167. package/build/client/assets/{tests-Bmk7igTW.js → tests-EEL6JFzf.js} +2 -2
  168. package/build/client/assets/{tests-Bmk7igTW.js.map → tests-EEL6JFzf.js.map} +1 -1
  169. package/build/client/assets/{timeline-definition-RI47OAVP-Dhz4J7XS.js → timeline-definition-RI47OAVP-CpiFZiC9.js} +3 -3
  170. package/build/client/assets/{timeline-definition-RI47OAVP-Dhz4J7XS.js.map → timeline-definition-RI47OAVP-CpiFZiC9.js.map} +1 -1
  171. package/build/client/assets/{tooltip-Cm7A1uIP.js → tooltip-CTw4ab49.js} +2 -2
  172. package/build/client/assets/{tooltip-Cm7A1uIP.js.map → tooltip-CTw4ab49.js.map} +1 -1
  173. package/build/client/assets/{treemap-FKARHQ26-4Q6H4E9y.js → treemap-FKARHQ26-DW0onZEJ.js} +2 -2
  174. package/build/client/assets/{treemap-FKARHQ26-4Q6H4E9y.js.map → treemap-FKARHQ26-DW0onZEJ.js.map} +1 -1
  175. package/build/client/assets/workspace-structure-BU7brX4_.js +2 -0
  176. package/build/client/assets/workspace-structure-BU7brX4_.js.map +1 -0
  177. package/build/client/assets/{xychartDiagram-H2YORKM3-mIuoEWBr.js → xychartDiagram-H2YORKM3-pOb4n59k.js} +3 -3
  178. package/build/client/assets/{xychartDiagram-H2YORKM3-mIuoEWBr.js.map → xychartDiagram-H2YORKM3-pOb4n59k.js.map} +1 -1
  179. package/build/server/index.js +565 -271
  180. package/build/server/index.js.map +1 -1
  181. package/dist/server/index.js +7 -7
  182. package/package.json +1 -1
  183. package/start.js +6 -6
  184. package/build/client/assets/_-C_7mS1-0.js +0 -2
  185. package/build/client/assets/_exerciseNumber-CdGNKLia.js +0 -2
  186. package/build/client/assets/_exerciseNumber_._stepNumber-BNj079sn.js +0 -2
  187. package/build/client/assets/_exerciseNumber_.finished-Ce6wQJ7W.js +0 -2
  188. package/build/client/assets/_layout-C-qRb0Ym.js +0 -2
  189. package/build/client/assets/accordion-PSsenYUI.js +0 -2
  190. package/build/client/assets/account-Jl0f1Zst.js +0 -2
  191. package/build/client/assets/app-KDd3xjI9.js +0 -2
  192. package/build/client/assets/architectureDiagram-NQ2NVSRB-tX-q9elq.js +0 -37
  193. package/build/client/assets/channel-DHkyUdNE.js +0 -2
  194. package/build/client/assets/classDiagram-BGRH5UQR-DMFCY4SY.js +0 -2
  195. package/build/client/assets/classDiagram-v2-O24JOBDK-DMFCY4SY.js +0 -2
  196. package/build/client/assets/clone-DgOnCE7a.js +0 -2
  197. package/build/client/assets/dagre-FFZHY6LT-D8_T6tZq.js +0 -5
  198. package/build/client/assets/diagram-3EMPZRKU-BEeRqItD.js +0 -25
  199. package/build/client/assets/diagram-5UYTHUR4-CikqdCuq.js +0 -25
  200. package/build/client/assets/diagram-ZTM2IBQH-CDz-uqOk.js +0 -44
  201. package/build/client/assets/diff-BXApfmyx.js +0 -2
  202. package/build/client/assets/diff-DLaUr4S6.js +0 -2
  203. package/build/client/assets/discord-C86FbV-j.js +0 -2
  204. package/build/client/assets/discord-C86FbV-j.js.map +0 -1
  205. package/build/client/assets/finished-BGX9JzP_.js +0 -2
  206. package/build/client/assets/ganttDiagram-EK5VF46D-R6ZSFdSM.js +0 -268
  207. package/build/client/assets/gitGraphDiagram-GW3U2K7C-DV4MLocC.js +0 -66
  208. package/build/client/assets/index-Bn3YwCqZ.js +0 -2
  209. package/build/client/assets/index-CUv7g3UR.js +0 -2
  210. package/build/client/assets/index-DxbpRM0V.js +0 -2
  211. package/build/client/assets/infoDiagram-RLU2ROGC-BJyo6jex.js +0 -3
  212. package/build/client/assets/login-BzcTSzkr.js +0 -2
  213. package/build/client/assets/manifest-d7f923a9.js +0 -1
  214. package/build/client/assets/mdx-BrER1Z2t.js +0 -3
  215. package/build/client/assets/mindmap-definition-CZNETY7S-BwcWuimP.js +0 -96
  216. package/build/client/assets/misc-COGqV2fm.js +0 -2
  217. package/build/client/assets/misc-COGqV2fm.js.map +0 -1
  218. package/build/client/assets/onboarding-CpNLu5ws.js +0 -2
  219. package/build/client/assets/pieDiagram-NIOCPIFQ-BGD0lX78.js +0 -31
  220. package/build/client/assets/preferences-Dx_EUPYj.js +0 -2
  221. package/build/client/assets/preferences-Dx_EUPYj.js.map +0 -1
  222. package/build/client/assets/preview-CMOIed2z.js +0 -2
  223. package/build/client/assets/root-Ddu3Xxbb.js +0 -2
  224. package/build/client/assets/root-Ddu3Xxbb.js.map +0 -1
  225. package/build/client/assets/sankeyDiagram-4UZDY2LN-GnxcKs-y.js +0 -11
  226. package/build/client/assets/set-playground-Bx0yIjpY.js +0 -2
  227. package/build/client/assets/stateDiagram-XX37X6EN-DplHO2WC.js +0 -2
  228. package/build/client/assets/stateDiagram-v2-GD6S3NHB-CmsjuNaA.js +0 -2
  229. package/build/client/assets/tailwind-Dqccob1p.css +0 -1
  230. package/build/client/assets/test-DUocKqAt.js +0 -2
@@ -13,7 +13,7 @@ import { getUserId, getSetClientIdCookieHeader } from "@epic-web/workshop-utils/
13
13
  import { z } from "zod";
14
14
  import { getApps, getExercises, getPlaygroundAppName, extractNumbersAndTypeFromAppNameOrPath, getAppFromFile, getAppByName, isProblemApp, isPlaygroundApp, isExerciseStepApp, getExercise, isSolutionApp, isExampleApp, getRelativePath as getRelativePath$1, getWorkshopRoot, setPlayground, requireExerciseApp, requireExercise, getExerciseApp, getAppDisplayName, getNextExerciseApp, getPrevExerciseApp, getAppPageRoute, getWorkshopFinished, getWorkshopInstructions } from "@epic-web/workshop-utils/apps.server";
15
15
  import { getEnv } from "@epic-web/workshop-utils/env.server";
16
- import { checkForUpdatesCached, getCommitInfo, getLatestWorkshopAppVersion } from "@epic-web/workshop-utils/git.server";
16
+ import { checkForExerciseChanges, checkForUpdatesCached, getCommitInfo, getLatestWorkshopAppVersion } from "@epic-web/workshop-utils/git.server";
17
17
  import { getUnmutedNotifications } from "@epic-web/workshop-utils/notifications.server";
18
18
  import { makeTimings, getServerTimeHeader, combineServerTimings, time } from "@epic-web/workshop-utils/timing.server";
19
19
  import { checkConnectionCached, dayjs } from "@epic-web/workshop-utils/utils.server";
@@ -628,6 +628,37 @@ function GeneralErrorBoundary({
628
628
  params
629
629
  }) : unexpectedErrorHandler(error) });
630
630
  }
631
+ function ExerciseWarningBanner() {
632
+ return /* @__PURE__ */ jsx("div", { className: "fixed left-0 right-0 top-0 z-50 border-b border-destructive bg-destructive", children: /* @__PURE__ */ jsxs("div", { className: "relative w-full p-4", children: [
633
+ /* @__PURE__ */ jsx(
634
+ Link,
635
+ {
636
+ to: "/workspace-structure",
637
+ className: "absolute inset-0 z-10 block h-full w-full",
638
+ "aria-label": "Learn more about workspace structure"
639
+ }
640
+ ),
641
+ /* @__PURE__ */ jsxs("div", { className: "container relative z-0 flex items-center justify-between", children: [
642
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
643
+ /* @__PURE__ */ jsx(
644
+ Icon,
645
+ {
646
+ name: "Error",
647
+ className: "h-5 w-5 text-destructive-foreground"
648
+ }
649
+ ),
650
+ /* @__PURE__ */ jsxs("div", { children: [
651
+ /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-destructive-foreground", children: "Warning: Changes detected in exercises directory" }),
652
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-destructive-foreground/80", children: "You should typically work in the playground directory, not the exercises directory." })
653
+ ] })
654
+ ] }),
655
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-xs text-destructive-foreground", children: [
656
+ /* @__PURE__ */ jsx("span", { children: "Learn more" }),
657
+ /* @__PURE__ */ jsx(Icon, { name: "ArrowRight", className: "h-3 w-3" })
658
+ ] })
659
+ ] })
660
+ ] }) });
661
+ }
631
662
  const showProgressBarField = /* @__PURE__ */ jsx("input", { type: "hidden", name: "show-progress-bar", value: "true" });
632
663
  function EpicProgress() {
633
664
  const transition = useNavigation();
@@ -837,7 +868,7 @@ function UpdateToast({
837
868
  }, [updatesAvailable, diffLink, remoteCommit]);
838
869
  return null;
839
870
  }
840
- async function action$d({
871
+ async function action$e({
841
872
  request
842
873
  }) {
843
874
  const formData = await request.formData();
@@ -902,10 +933,10 @@ function Notifications({
902
933
  }, [unmutedNotifications]);
903
934
  return null;
904
935
  }
905
- const route31 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
936
+ const route32 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
906
937
  __proto__: null,
907
938
  Notifications,
908
- action: action$d
939
+ action: action$e
909
940
  }, Symbol.toStringTag, { value: "Module" }));
910
941
  function useRequestInfo() {
911
942
  const data2 = useRouteLoaderData("root");
@@ -1002,7 +1033,7 @@ const ROUTE_PATH = "/theme";
1002
1033
  const ThemeFormSchema = z.object({
1003
1034
  theme: z.enum(["system", "light", "dark"])
1004
1035
  });
1005
- async function action$c({
1036
+ async function action$d({
1006
1037
  request
1007
1038
  }) {
1008
1039
  const formData = await request.formData();
@@ -1096,14 +1127,14 @@ function useTheme() {
1096
1127
  }
1097
1128
  return requestInfo.session.theme ?? hints.theme;
1098
1129
  }
1099
- const route47 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1130
+ const route48 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1100
1131
  __proto__: null,
1101
1132
  ThemeSwitch,
1102
- action: action$c,
1133
+ action: action$d,
1103
1134
  useTheme
1104
1135
  }, Symbol.toStringTag, { value: "Module" }));
1105
1136
  const appStylesheetUrl = "/assets/app-CpF0K1cW.css";
1106
- const tailwindStylesheetUrl = "/assets/tailwind-Dqccob1p.css";
1137
+ const tailwindStylesheetUrl = "/assets/tailwind-CyQBDA3D.css";
1107
1138
  const cookieName = "EpicShop_confetti";
1108
1139
  function getConfetti(request) {
1109
1140
  const cookieHeader = request.headers.get("cookie");
@@ -1432,7 +1463,7 @@ const meta$6 = ({
1432
1463
  requestInfo: data2.requestInfo
1433
1464
  });
1434
1465
  };
1435
- async function loader$z({
1466
+ async function loader$A({
1436
1467
  request
1437
1468
  }) {
1438
1469
  const timings = makeTimings("rootLoader");
@@ -1484,7 +1515,8 @@ async function loader$z({
1484
1515
  timings
1485
1516
  }),
1486
1517
  repoUpdates: checkForUpdatesCached(),
1487
- unmutedNotifications: getUnmutedNotifications()
1518
+ unmutedNotifications: getUnmutedNotifications(),
1519
+ exerciseChanges: checkForExerciseChanges()
1488
1520
  });
1489
1521
  const presentUsers = await getPresentUsers({
1490
1522
  request,
@@ -1533,7 +1565,8 @@ async function loader$z({
1533
1565
  presence: {
1534
1566
  users: presentUsers
1535
1567
  },
1536
- repoUpdates
1568
+ repoUpdates,
1569
+ exerciseChanges: asyncStuff.exerciseChanges
1537
1570
  }, {
1538
1571
  headers: combineHeaders(toastHeaders, confettiHeaders, {
1539
1572
  "Server-Timing": timings.toString()
@@ -1586,7 +1619,7 @@ function App() {
1586
1619
  "cursor-progress": showSpinner
1587
1620
  }, altDown ? "alt-down" : null),
1588
1621
  env: data2.ENV,
1589
- children: [/* @__PURE__ */ jsx(Outlet, {}), /* @__PURE__ */ jsx(Confetti, {
1622
+ children: [data2.exerciseChanges && !data2.preferences?.exerciseWarning?.dismissed && /* @__PURE__ */ jsx(ExerciseWarningBanner, {}), /* @__PURE__ */ jsx(Outlet, {}), /* @__PURE__ */ jsx(Confetti, {
1590
1623
  id: data2.confettiId
1591
1624
  }), /* @__PURE__ */ jsx(EpicToaster, {
1592
1625
  toast: data2.toast
@@ -1619,10 +1652,10 @@ const route0 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
1619
1652
  ErrorBoundary: ErrorBoundary$6,
1620
1653
  default: root,
1621
1654
  links,
1622
- loader: loader$z,
1655
+ loader: loader$A,
1623
1656
  meta: meta$6
1624
1657
  }, Symbol.toStringTag, { value: "Module" }));
1625
- async function loader$y({
1658
+ async function loader$z({
1626
1659
  params
1627
1660
  }) {
1628
1661
  const splat = params["*"];
@@ -1673,7 +1706,7 @@ const route1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
1673
1706
  __proto__: null,
1674
1707
  ErrorBoundary: ErrorBoundary$5,
1675
1708
  default: $,
1676
- loader: loader$y
1709
+ loader: loader$z
1677
1710
  }, Symbol.toStringTag, { value: "Module" }));
1678
1711
  function makeMediaQueryStore(mediaQuery, serverSnapshot) {
1679
1712
  function getSnapshot2() {
@@ -2026,7 +2059,7 @@ function useProgressItem({
2026
2059
  }
2027
2060
  return null;
2028
2061
  }
2029
- async function action$b({
2062
+ async function action$c({
2030
2063
  request
2031
2064
  }) {
2032
2065
  ensureUndeployed();
@@ -2166,10 +2199,10 @@ function ProgressToggle({
2166
2199
  })]
2167
2200
  });
2168
2201
  }
2169
- const route41 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2202
+ const route42 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2170
2203
  __proto__: null,
2171
2204
  ProgressToggle,
2172
- action: action$b,
2205
+ action: action$c,
2173
2206
  useEpicProgress,
2174
2207
  useExerciseProgressClassName,
2175
2208
  useNextExerciseRoute,
@@ -2177,7 +2210,7 @@ const route41 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
2177
2210
  useProgressItemClassName,
2178
2211
  useRequireEpicProgress
2179
2212
  }, Symbol.toStringTag, { value: "Module" }));
2180
- async function loader$x({
2213
+ async function loader$y({
2181
2214
  request
2182
2215
  }) {
2183
2216
  const timings = makeTimings("appLayoutLoader");
@@ -3230,7 +3263,7 @@ const route2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
3230
3263
  __proto__: null,
3231
3264
  default: _layout$3,
3232
3265
  headers: headers$b,
3233
- loader: loader$x
3266
+ loader: loader$y
3234
3267
  }, Symbol.toStringTag, { value: "Module" }));
3235
3268
  function PendingState() {
3236
3269
  return /* @__PURE__ */ jsx("span", { className: "inline-block animate-spin", children: "🌀" });
@@ -3305,7 +3338,7 @@ function LinkButton({
3305
3338
  const handle$9 = {
3306
3339
  getSitemapEntries: () => null
3307
3340
  };
3308
- async function loader$w({
3341
+ async function loader$x({
3309
3342
  request
3310
3343
  }) {
3311
3344
  ensureUndeployed();
@@ -3314,7 +3347,7 @@ async function loader$w({
3314
3347
  });
3315
3348
  return {};
3316
3349
  }
3317
- async function action$a({
3350
+ async function action$b({
3318
3351
  request
3319
3352
  }) {
3320
3353
  ensureUndeployed();
@@ -3459,10 +3492,10 @@ const account = UNSAFE_withComponentProps(function Account() {
3459
3492
  });
3460
3493
  const route3 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3461
3494
  __proto__: null,
3462
- action: action$a,
3495
+ action: action$b,
3463
3496
  default: account,
3464
3497
  handle: handle$9,
3465
- loader: loader$w
3498
+ loader: loader$x
3466
3499
  }, Symbol.toStringTag, { value: "Module" }));
3467
3500
  async function getForceFresh(filePath, cacheEntry) {
3468
3501
  if (!cacheEntry) return true;
@@ -3552,7 +3585,7 @@ async function firstExisting(...files) {
3552
3585
  }
3553
3586
  return null;
3554
3587
  }
3555
- async function loader$v({
3588
+ async function loader$w({
3556
3589
  request,
3557
3590
  params
3558
3591
  }) {
@@ -3634,9 +3667,9 @@ async function loader$v({
3634
3667
  }
3635
3668
  const route4 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3636
3669
  __proto__: null,
3637
- loader: loader$v
3670
+ loader: loader$w
3638
3671
  }, Symbol.toStringTag, { value: "Module" }));
3639
- async function loader$u(args) {
3672
+ async function loader$v(args) {
3640
3673
  const api = await getApiModule(args);
3641
3674
  invariantResponse(api.mod.loader, "Attempted to make a GET request to the api endpoint but the api module does not export a loader function", {
3642
3675
  status: 405
@@ -3648,7 +3681,7 @@ async function loader$u(args) {
3648
3681
  api.cleanupError(error);
3649
3682
  }
3650
3683
  }
3651
- async function action$9(args) {
3684
+ async function action$a(args) {
3652
3685
  const api = await getApiModule(args);
3653
3686
  invariantResponse(api.mod.action, "Attempted to make a non-GET request to the api endpoint but the api module does not export an action function", {
3654
3687
  status: 405
@@ -3753,10 +3786,10 @@ async function getApiModule({
3753
3786
  }
3754
3787
  const route5 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3755
3788
  __proto__: null,
3756
- action: action$9,
3757
- loader: loader$u
3789
+ action: action$a,
3790
+ loader: loader$v
3758
3791
  }, Symbol.toStringTag, { value: "Module" }));
3759
- async function loader$t({
3792
+ async function loader$u({
3760
3793
  request,
3761
3794
  params
3762
3795
  }) {
@@ -3840,9 +3873,9 @@ async function loader$t({
3840
3873
  }
3841
3874
  const route6 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3842
3875
  __proto__: null,
3843
- loader: loader$t
3876
+ loader: loader$u
3844
3877
  }, Symbol.toStringTag, { value: "Module" }));
3845
- async function loader$s({
3878
+ async function loader$t({
3846
3879
  request,
3847
3880
  params
3848
3881
  }) {
@@ -3938,9 +3971,9 @@ async function loader$s({
3938
3971
  }
3939
3972
  const route7 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3940
3973
  __proto__: null,
3941
- loader: loader$s
3974
+ loader: loader$t
3942
3975
  }, Symbol.toStringTag, { value: "Module" }));
3943
- async function loader$r({
3976
+ async function loader$s({
3944
3977
  request,
3945
3978
  params
3946
3979
  }) {
@@ -4092,15 +4125,15 @@ ${testScriptTag}`;
4092
4125
  }
4093
4126
  const route8 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
4094
4127
  __proto__: null,
4095
- loader: loader$r
4128
+ loader: loader$s
4096
4129
  }, Symbol.toStringTag, { value: "Module" }));
4097
4130
  const route9 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
4098
4131
  __proto__: null,
4099
- loader: loader$t
4132
+ loader: loader$u
4100
4133
  }, Symbol.toStringTag, { value: "Module" }));
4101
4134
  const route10 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
4102
4135
  __proto__: null,
4103
- loader: loader$t
4136
+ loader: loader$u
4104
4137
  }, Symbol.toStringTag, { value: "Module" }));
4105
4138
  const handle$8 = {
4106
4139
  getSitemapEntries: () => null
@@ -4265,7 +4298,7 @@ function shouldIgnoreHotkey(el) {
4265
4298
  }
4266
4299
  return false;
4267
4300
  }
4268
- async function action$8({
4301
+ async function action$9({
4269
4302
  request
4270
4303
  }) {
4271
4304
  const result = PlayerPreferencesSchema.safeParse(await request.json());
@@ -4460,10 +4493,10 @@ function getMaxResolutionValue(resolution) {
4460
4493
  if (resolution <= 1440) return MaxResolution.upTo1440p;
4461
4494
  return MaxResolution.upTo2160p;
4462
4495
  }
4463
- const route48 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
4496
+ const route49 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
4464
4497
  __proto__: null,
4465
4498
  MuxPlayer,
4466
- action: action$8,
4499
+ action: action$9,
4467
4500
  usePlayerPreferences
4468
4501
  }, Symbol.toStringTag, { value: "Module" }));
4469
4502
  function Loading({
@@ -5311,7 +5344,7 @@ const LaunchSchema = z.intersection(z.object({
5311
5344
  column: z.coerce.number().optional(),
5312
5345
  syncTo: getFileDescriptorSchema(z.string()).optional()
5313
5346
  }), getFileDescriptorSchema(z.array(z.string())));
5314
- async function action$7({
5347
+ async function action$8({
5315
5348
  request
5316
5349
  }) {
5317
5350
  ensureUndeployed();
@@ -5557,11 +5590,11 @@ function EditFileOnGitHub({
5557
5590
  });
5558
5591
  }
5559
5592
  const LaunchEditor = ENV.EPICSHOP_DEPLOYED ? LaunchGitHub : LaunchEditorImpl;
5560
- const route36 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
5593
+ const route37 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
5561
5594
  __proto__: null,
5562
5595
  EditFileOnGitHub,
5563
5596
  LaunchEditor,
5564
- action: action$7
5597
+ action: action$8
5565
5598
  }, Symbol.toStringTag, { value: "Module" }));
5566
5599
  function Mermaid({
5567
5600
  code,
@@ -5788,7 +5821,7 @@ const meta$5 = ({
5788
5821
  requestInfo: rootData.requestInfo
5789
5822
  });
5790
5823
  };
5791
- async function loader$q({
5824
+ async function loader$r({
5792
5825
  request,
5793
5826
  params
5794
5827
  }) {
@@ -5915,10 +5948,10 @@ const route13 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
5915
5948
  ErrorBoundary: ErrorBoundary$4,
5916
5949
  default: $exerciseNumber,
5917
5950
  headers: headers$a,
5918
- loader: loader$q,
5951
+ loader: loader$r,
5919
5952
  meta: meta$5
5920
5953
  }, Symbol.toStringTag, { value: "Module" }));
5921
- async function loader$p({
5954
+ async function loader$q({
5922
5955
  request,
5923
5956
  params
5924
5957
  }) {
@@ -5983,7 +6016,7 @@ const route14 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
5983
6016
  ErrorBoundary: ErrorBoundary$3,
5984
6017
  default: $exerciseNumber__$stepNumber,
5985
6018
  headers: headers$9,
5986
- loader: loader$p
6019
+ loader: loader$q
5987
6020
  }, Symbol.toStringTag, { value: "Module" }));
5988
6021
  function NavChevrons({
5989
6022
  prev,
@@ -6044,7 +6077,7 @@ const SetPlaygroundSchema = z.object({
6044
6077
  appName: z.string(),
6045
6078
  reset: z.string().nullable().optional().transform((v) => v === "true")
6046
6079
  });
6047
- async function action$6({
6080
+ async function action$7({
6048
6081
  request
6049
6082
  }) {
6050
6083
  ensureUndeployed();
@@ -6235,12 +6268,12 @@ function SetAppToPlayground({
6235
6268
  })
6236
6269
  });
6237
6270
  }
6238
- const route43 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
6271
+ const route44 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
6239
6272
  __proto__: null,
6240
6273
  PlaygroundChooser,
6241
6274
  SetAppToPlayground,
6242
6275
  SetPlayground,
6243
- action: action$6
6276
+ action: action$7
6244
6277
  }, Symbol.toStringTag, { value: "Module" }));
6245
6278
  const StepContext = React.createContext(null);
6246
6279
  function useStepContext() {
@@ -6580,7 +6613,7 @@ const meta$4 = ({
6580
6613
  requestInfo: rootData.requestInfo
6581
6614
  });
6582
6615
  };
6583
- async function loader$o({
6616
+ async function loader$p({
6584
6617
  request,
6585
6618
  params
6586
6619
  }) {
@@ -6830,10 +6863,10 @@ const route15 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
6830
6863
  ErrorBoundary: ErrorBoundary$2,
6831
6864
  default: _layout$1,
6832
6865
  headers: headers$8,
6833
- loader: loader$o,
6866
+ loader: loader$p,
6834
6867
  meta: meta$4
6835
6868
  }, Symbol.toStringTag, { value: "Module" }));
6836
- async function action$5({
6869
+ async function action$6({
6837
6870
  request
6838
6871
  }) {
6839
6872
  ensureUndeployed();
@@ -7005,12 +7038,12 @@ function AppStarter({
7005
7038
  })]
7006
7039
  });
7007
7040
  }
7008
- const route45 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7041
+ const route46 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7009
7042
  __proto__: null,
7010
7043
  AppStarter,
7011
7044
  AppStopper,
7012
7045
  PortStopper,
7013
- action: action$5
7046
+ action: action$6
7014
7047
  }, Symbol.toStringTag, { value: "Module" }));
7015
7048
  const historyCallDataSchema = z.intersection(
7016
7049
  z.object({
@@ -7481,7 +7514,7 @@ async function getAppRunningState(a) {
7481
7514
  const portIsAvailable = isRunning ? null : await isPortAvailable(a.dev.portNumber);
7482
7515
  return { isRunning, portIsAvailable };
7483
7516
  }
7484
- async function loader$n({
7517
+ async function loader$o({
7485
7518
  request,
7486
7519
  params
7487
7520
  }) {
@@ -7535,7 +7568,7 @@ const route16 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
7535
7568
  __proto__: null,
7536
7569
  default: app,
7537
7570
  headers: headers$7,
7538
- loader: loader$n
7571
+ loader: loader$o
7539
7572
  }, Symbol.toStringTag, { value: "Module" }));
7540
7573
  const AccordionComponent = ({
7541
7574
  title,
@@ -8409,7 +8442,7 @@ const testEventSchema = z.union([z.object({
8409
8442
  code: z.number().nullable()
8410
8443
  })]);
8411
8444
  const testEventQueueSchema = z.array(testEventSchema);
8412
- async function loader$m({
8445
+ async function loader$n({
8413
8446
  request
8414
8447
  }) {
8415
8448
  ensureUndeployed();
@@ -8502,7 +8535,7 @@ async function loader$m({
8502
8535
  };
8503
8536
  });
8504
8537
  }
8505
- async function action$4({
8538
+ async function action$5({
8506
8539
  request
8507
8540
  }) {
8508
8541
  ensureUndeployed();
@@ -8824,14 +8857,14 @@ function StopTest({
8824
8857
  })]
8825
8858
  });
8826
8859
  }
8827
- const route46 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
8860
+ const route47 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
8828
8861
  __proto__: null,
8829
8862
  ClearTest,
8830
8863
  StopTest,
8831
8864
  TestOutput,
8832
8865
  TestRunner,
8833
- action: action$4,
8834
- loader: loader$m
8866
+ action: action$5,
8867
+ loader: loader$n
8835
8868
  }, Symbol.toStringTag, { value: "Module" }));
8836
8869
  function Tests({
8837
8870
  appInfo: playgroundAppInfo,
@@ -8898,7 +8931,7 @@ function TestUI({
8898
8931
  }
8899
8932
  return /* @__PURE__ */ jsx("div", { className: "flex h-full items-center justify-center text-lg", children: /* @__PURE__ */ jsx("p", { children: "No tests here 😢 Sorry." }) });
8900
8933
  }
8901
- async function loader$l({
8934
+ async function loader$m({
8902
8935
  request,
8903
8936
  params
8904
8937
  }) {
@@ -9183,9 +9216,9 @@ const route17 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
9183
9216
  ErrorBoundary: ErrorBoundary$1,
9184
9217
  default: index$2,
9185
9218
  headers: headers$6,
9186
- loader: loader$l
9219
+ loader: loader$m
9187
9220
  }, Symbol.toStringTag, { value: "Module" }));
9188
- async function loader$k({
9221
+ async function loader$l({
9189
9222
  request,
9190
9223
  params
9191
9224
  }) {
@@ -9227,9 +9260,9 @@ const route18 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
9227
9260
  __proto__: null,
9228
9261
  default: test,
9229
9262
  headers: headers$5,
9230
- loader: loader$k
9263
+ loader: loader$l
9231
9264
  }, Symbol.toStringTag, { value: "Module" }));
9232
- async function loader$j({
9265
+ async function loader$k({
9233
9266
  params
9234
9267
  }) {
9235
9268
  const problemApp = await getExerciseApp({
@@ -9252,7 +9285,7 @@ async function loader$j({
9252
9285
  }
9253
9286
  const route19 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
9254
9287
  __proto__: null,
9255
- loader: loader$j
9288
+ loader: loader$k
9256
9289
  }, Symbol.toStringTag, { value: "Module" }));
9257
9290
  const meta$3 = ({
9258
9291
  data: data2,
@@ -9272,7 +9305,7 @@ const meta$3 = ({
9272
9305
  requestInfo: rootData.requestInfo
9273
9306
  });
9274
9307
  };
9275
- async function loader$i({
9308
+ async function loader$j({
9276
9309
  request,
9277
9310
  params
9278
9311
  }) {
@@ -9464,7 +9497,7 @@ const route20 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
9464
9497
  __proto__: null,
9465
9498
  default: $exerciseNumber__finished,
9466
9499
  headers: headers$4,
9467
- loader: loader$i,
9500
+ loader: loader$j,
9468
9501
  meta: meta$3
9469
9502
  }, Symbol.toStringTag, { value: "Module" }));
9470
9503
  const handle$6 = {
@@ -9486,7 +9519,7 @@ const meta$2 = ({
9486
9519
  requestInfo: rootData.requestInfo
9487
9520
  });
9488
9521
  };
9489
- async function loader$h({
9522
+ async function loader$i({
9490
9523
  request
9491
9524
  }) {
9492
9525
  const timings = makeTimings("finishedLoader");
@@ -9662,10 +9695,10 @@ const route21 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
9662
9695
  default: finished,
9663
9696
  handle: handle$6,
9664
9697
  headers: headers$3,
9665
- loader: loader$h,
9698
+ loader: loader$i,
9666
9699
  meta: meta$2
9667
9700
  }, Symbol.toStringTag, { value: "Module" }));
9668
- async function loader$g({
9701
+ async function loader$h({
9669
9702
  request
9670
9703
  }) {
9671
9704
  const timings = makeTimings("indexLoader");
@@ -9801,9 +9834,9 @@ const route22 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
9801
9834
  ErrorBoundary: ErrorBoundary7,
9802
9835
  default: index$1,
9803
9836
  headers: headers$2,
9804
- loader: loader$g
9837
+ loader: loader$h
9805
9838
  }, Symbol.toStringTag, { value: "Module" }));
9806
- async function loader$f({
9839
+ async function loader$g({
9807
9840
  request
9808
9841
  }) {
9809
9842
  const exercises = await getExercises({
@@ -9836,7 +9869,7 @@ const l = UNSAFE_withComponentProps(function LastExerciseRedirect() {
9836
9869
  const route23 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
9837
9870
  __proto__: null,
9838
9871
  default: l,
9839
- loader: loader$f
9872
+ loader: loader$g
9840
9873
  }, Symbol.toStringTag, { value: "Module" }));
9841
9874
  const EVENTS = {
9842
9875
  USER_CODE_RECEIVED: "USER_CODE_RECEIVED",
@@ -9923,7 +9956,7 @@ const AuthRejectedEventSchema = z.object({
9923
9956
  error: z.string().optional().default("Unknown error")
9924
9957
  });
9925
9958
  const EventSchema = z.union([CodeReceivedEventSchema, AuthResolvedEventSchema, AuthRejectedEventSchema]);
9926
- async function loader$e({
9959
+ async function loader$f({
9927
9960
  request
9928
9961
  }) {
9929
9962
  ensureUndeployed();
@@ -9966,21 +9999,21 @@ async function loader$e({
9966
9999
  };
9967
10000
  });
9968
10001
  }
9969
- const route37 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10002
+ const route38 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
9970
10003
  __proto__: null,
9971
10004
  EventSchema,
9972
- loader: loader$e
10005
+ loader: loader$f
9973
10006
  }, Symbol.toStringTag, { value: "Module" }));
9974
10007
  const handle$5 = {
9975
10008
  getSitemapEntries: () => null
9976
10009
  };
9977
- async function loader$d() {
10010
+ async function loader$e() {
9978
10011
  ensureUndeployed();
9979
10012
  const isAuthenticated = Boolean(await getAuthInfo());
9980
10013
  if (isAuthenticated) throw redirect("/account");
9981
10014
  return {};
9982
10015
  }
9983
- async function action$3() {
10016
+ async function action$4() {
9984
10017
  ensureUndeployed();
9985
10018
  void registerDevice();
9986
10019
  return {
@@ -10110,19 +10143,19 @@ const login = UNSAFE_withComponentProps(function Login() {
10110
10143
  });
10111
10144
  const route24 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10112
10145
  __proto__: null,
10113
- action: action$3,
10146
+ action: action$4,
10114
10147
  default: login,
10115
10148
  handle: handle$5,
10116
- loader: loader$d
10149
+ loader: loader$e
10117
10150
  }, Symbol.toStringTag, { value: "Module" }));
10118
- async function loader$c() {
10151
+ async function loader$d() {
10119
10152
  ensureUndeployed();
10120
10153
  const preferences2 = await getPreferences();
10121
10154
  return {
10122
10155
  preferences: preferences2
10123
10156
  };
10124
10157
  }
10125
- async function action$2({
10158
+ async function action$3({
10126
10159
  request
10127
10160
  }) {
10128
10161
  ensureUndeployed();
@@ -10132,6 +10165,7 @@ async function action$2({
10132
10165
  const fontSize = formData.get("fontSize");
10133
10166
  const optOutPresence = formData.get("optOutPresence") === "on";
10134
10167
  const persistPlayground = formData.get("persistPlayground") === "on";
10168
+ const dismissExerciseWarning = formData.get("dismissExerciseWarning") === "on";
10135
10169
  await setPreferences({
10136
10170
  player: {
10137
10171
  minResolution: minResolution ? Number(minResolution) : void 0,
@@ -10143,6 +10177,9 @@ async function action$2({
10143
10177
  },
10144
10178
  playground: {
10145
10179
  persist: persistPlayground
10180
+ },
10181
+ exerciseWarning: {
10182
+ dismissed: dismissExerciseWarning
10146
10183
  }
10147
10184
  });
10148
10185
  return redirectWithToast("/preferences", {
@@ -10157,175 +10194,204 @@ const preferences = UNSAFE_withComponentProps(function AccountSettings() {
10157
10194
  const fontSizePreference = data2?.preferences?.fontSize;
10158
10195
  const presencePreferences = data2?.preferences?.presence;
10159
10196
  const playgroundPreferences = data2?.preferences?.playground;
10197
+ const exerciseWarningPreferences = data2?.preferences?.exerciseWarning;
10160
10198
  const navigation = useNavigation();
10161
10199
  const isSubmitting = navigation.state === "submitting";
10162
- return /* @__PURE__ */ jsxs("main", {
10163
- className: "container mt-12 flex h-full w-full max-w-3xl flex-grow flex-col gap-4",
10164
- children: [/* @__PURE__ */ jsx("h1", {
10165
- className: "mb-4 text-h1",
10166
- children: "Preferences"
10167
- }), /* @__PURE__ */ jsxs(Form, {
10168
- method: "post",
10169
- className: "flex w-full max-w-sm flex-col gap-4",
10170
- children: [/* @__PURE__ */ jsxs("div", {
10171
- children: [/* @__PURE__ */ jsx("h2", {
10172
- className: "mb-2 text-body-xl",
10173
- children: "Video Player Preferences"
10174
- }), /* @__PURE__ */ jsxs("div", {
10175
- className: "flex items-center gap-2",
10176
- children: [/* @__PURE__ */ jsx("label", {
10177
- htmlFor: "minResolution",
10178
- children: "Minimum Resolution:"
10179
- }), /* @__PURE__ */ jsxs("select", {
10180
- id: "minResolution",
10181
- name: "minResolution",
10182
- defaultValue: playerPreferences?.minResolution,
10183
- className: "rounded-md border border-border bg-background px-2 py-1 text-foreground",
10184
- children: [/* @__PURE__ */ jsx("option", {
10185
- value: "",
10186
- children: "Auto"
10187
- }), /* @__PURE__ */ jsx("option", {
10188
- value: "480",
10189
- children: "480p"
10190
- }), /* @__PURE__ */ jsx("option", {
10191
- value: "720",
10192
- children: "720p"
10193
- }), /* @__PURE__ */ jsx("option", {
10194
- value: "1080",
10195
- children: "1080p"
10196
- }), /* @__PURE__ */ jsx("option", {
10197
- value: "1440",
10198
- children: "1440p"
10199
- }), /* @__PURE__ */ jsx("option", {
10200
- value: "2160",
10201
- children: "2160p (4K)"
10200
+ return /* @__PURE__ */ jsx("div", {
10201
+ className: "h-full w-full overflow-y-auto",
10202
+ children: /* @__PURE__ */ jsxs("main", {
10203
+ className: "container mt-12 flex w-full max-w-3xl flex-grow flex-col gap-4 pb-24",
10204
+ children: [/* @__PURE__ */ jsx("h1", {
10205
+ className: "mb-4 text-h1",
10206
+ children: "Preferences"
10207
+ }), /* @__PURE__ */ jsxs(Form, {
10208
+ method: "post",
10209
+ className: "flex w-full max-w-sm flex-col gap-4",
10210
+ children: [/* @__PURE__ */ jsxs("div", {
10211
+ children: [/* @__PURE__ */ jsx("h2", {
10212
+ className: "mb-2 text-body-xl",
10213
+ children: "Video Player Preferences"
10214
+ }), /* @__PURE__ */ jsxs("div", {
10215
+ className: "flex items-center gap-2",
10216
+ children: [/* @__PURE__ */ jsx("label", {
10217
+ htmlFor: "minResolution",
10218
+ children: "Minimum Resolution:"
10219
+ }), /* @__PURE__ */ jsxs("select", {
10220
+ id: "minResolution",
10221
+ name: "minResolution",
10222
+ defaultValue: playerPreferences?.minResolution,
10223
+ className: "rounded-md border border-border bg-background px-2 py-1 text-foreground",
10224
+ children: [/* @__PURE__ */ jsx("option", {
10225
+ value: "",
10226
+ children: "Auto"
10227
+ }), /* @__PURE__ */ jsx("option", {
10228
+ value: "480",
10229
+ children: "480p"
10230
+ }), /* @__PURE__ */ jsx("option", {
10231
+ value: "720",
10232
+ children: "720p"
10233
+ }), /* @__PURE__ */ jsx("option", {
10234
+ value: "1080",
10235
+ children: "1080p"
10236
+ }), /* @__PURE__ */ jsx("option", {
10237
+ value: "1440",
10238
+ children: "1440p"
10239
+ }), /* @__PURE__ */ jsx("option", {
10240
+ value: "2160",
10241
+ children: "2160p (4K)"
10242
+ })]
10243
+ })]
10244
+ }), /* @__PURE__ */ jsxs("div", {
10245
+ className: "flex items-center gap-2",
10246
+ children: [/* @__PURE__ */ jsx("label", {
10247
+ htmlFor: "maxResolution",
10248
+ children: "Maximum Resolution:"
10249
+ }), /* @__PURE__ */ jsxs("select", {
10250
+ id: "maxResolution",
10251
+ name: "maxResolution",
10252
+ defaultValue: playerPreferences?.maxResolution,
10253
+ className: "rounded-md border border-border bg-background px-2 py-1 text-foreground",
10254
+ children: [/* @__PURE__ */ jsx("option", {
10255
+ value: "",
10256
+ children: "Auto"
10257
+ }), /* @__PURE__ */ jsx("option", {
10258
+ value: "720",
10259
+ children: "720p"
10260
+ }), /* @__PURE__ */ jsx("option", {
10261
+ value: "1080",
10262
+ children: "1080p"
10263
+ }), /* @__PURE__ */ jsx("option", {
10264
+ value: "1440",
10265
+ children: "1440p"
10266
+ }), /* @__PURE__ */ jsx("option", {
10267
+ value: "2160",
10268
+ children: "2160p (4K)"
10269
+ })]
10202
10270
  })]
10203
10271
  })]
10204
10272
  }), /* @__PURE__ */ jsxs("div", {
10205
- className: "flex items-center gap-2",
10206
- children: [/* @__PURE__ */ jsx("label", {
10207
- htmlFor: "maxResolution",
10208
- children: "Maximum Resolution:"
10209
- }), /* @__PURE__ */ jsxs("select", {
10210
- id: "maxResolution",
10211
- name: "maxResolution",
10212
- defaultValue: playerPreferences?.maxResolution,
10213
- className: "rounded-md border border-border bg-background px-2 py-1 text-foreground",
10214
- children: [/* @__PURE__ */ jsx("option", {
10215
- value: "",
10216
- children: "Auto"
10217
- }), /* @__PURE__ */ jsx("option", {
10218
- value: "720",
10219
- children: "720p"
10220
- }), /* @__PURE__ */ jsx("option", {
10221
- value: "1080",
10222
- children: "1080p"
10223
- }), /* @__PURE__ */ jsx("option", {
10224
- value: "1440",
10225
- children: "1440p"
10226
- }), /* @__PURE__ */ jsx("option", {
10227
- value: "2160",
10228
- children: "2160p (4K)"
10273
+ children: [/* @__PURE__ */ jsxs("div", {
10274
+ className: "mb-2 flex items-center gap-2",
10275
+ children: [/* @__PURE__ */ jsx("h2", {
10276
+ className: "text-body-xl",
10277
+ children: "Font Size Preference"
10278
+ }), /* @__PURE__ */ jsx(SimpleTooltip, {
10279
+ content: "Defaults to 16px",
10280
+ children: /* @__PURE__ */ jsx(Icon, {
10281
+ name: "Question",
10282
+ tabIndex: 0
10283
+ })
10284
+ })]
10285
+ }), /* @__PURE__ */ jsxs("div", {
10286
+ className: "flex items-center gap-2",
10287
+ children: [/* @__PURE__ */ jsx("label", {
10288
+ htmlFor: "fontSize",
10289
+ children: "Font Size"
10290
+ }), /* @__PURE__ */ jsx("input", {
10291
+ type: "number",
10292
+ id: "fontSize",
10293
+ name: "fontSize",
10294
+ defaultValue: fontSizePreference ?? 16,
10295
+ step: "1",
10296
+ min: "12",
10297
+ max: "26",
10298
+ className: "rounded-md border border-border bg-background px-2 py-1 text-foreground"
10229
10299
  })]
10230
- })]
10231
- })]
10232
- }), /* @__PURE__ */ jsxs("div", {
10233
- children: [/* @__PURE__ */ jsxs("div", {
10234
- className: "mb-2 flex items-center gap-2",
10235
- children: [/* @__PURE__ */ jsx("h2", {
10236
- className: "text-body-xl",
10237
- children: "Font Size Preference"
10238
- }), /* @__PURE__ */ jsx(SimpleTooltip, {
10239
- content: "Defaults to 16px",
10240
- children: /* @__PURE__ */ jsx(Icon, {
10241
- name: "Question",
10242
- tabIndex: 0
10243
- })
10244
10300
  })]
10245
10301
  }), /* @__PURE__ */ jsxs("div", {
10246
- className: "flex items-center gap-2",
10247
- children: [/* @__PURE__ */ jsx("label", {
10248
- htmlFor: "fontSize",
10249
- children: "Font Size"
10250
- }), /* @__PURE__ */ jsx("input", {
10251
- type: "number",
10252
- id: "fontSize",
10253
- name: "fontSize",
10254
- defaultValue: fontSizePreference ?? 16,
10255
- step: "1",
10256
- min: "12",
10257
- max: "26",
10258
- className: "rounded-md border border-border bg-background px-2 py-1 text-foreground"
10259
- })]
10260
- })]
10261
- }), /* @__PURE__ */ jsxs("div", {
10262
- children: [/* @__PURE__ */ jsxs("div", {
10263
- className: "mb-2 flex items-center gap-2",
10264
- children: [/* @__PURE__ */ jsx("h2", {
10265
- className: "text-body-xl",
10266
- children: "Presence Preference"
10267
- }), /* @__PURE__ */ jsx(SimpleTooltip, {
10268
- content: "This controls whether your name and avatar are displayed in the pile of faces in navigation",
10269
- children: /* @__PURE__ */ jsx(Icon, {
10270
- name: "Question",
10271
- tabIndex: 0
10272
- })
10302
+ children: [/* @__PURE__ */ jsxs("div", {
10303
+ className: "mb-2 flex items-center gap-2",
10304
+ children: [/* @__PURE__ */ jsx("h2", {
10305
+ className: "text-body-xl",
10306
+ children: "Presence Preference"
10307
+ }), /* @__PURE__ */ jsx(SimpleTooltip, {
10308
+ content: "This controls whether your name and avatar are displayed in the pile of faces in navigation",
10309
+ children: /* @__PURE__ */ jsx(Icon, {
10310
+ name: "Question",
10311
+ tabIndex: 0
10312
+ })
10313
+ })]
10314
+ }), /* @__PURE__ */ jsxs("div", {
10315
+ className: "flex items-center gap-2",
10316
+ children: [/* @__PURE__ */ jsx("input", {
10317
+ type: "checkbox",
10318
+ id: "optOutPresence",
10319
+ name: "optOutPresence",
10320
+ defaultChecked: presencePreferences?.optOut
10321
+ }), /* @__PURE__ */ jsx("label", {
10322
+ htmlFor: "optOutPresence",
10323
+ children: "Opt out of presence features"
10324
+ })]
10273
10325
  })]
10274
10326
  }), /* @__PURE__ */ jsxs("div", {
10275
- className: "flex items-center gap-2",
10276
- children: [/* @__PURE__ */ jsx("input", {
10277
- type: "checkbox",
10278
- id: "optOutPresence",
10279
- name: "optOutPresence",
10280
- defaultChecked: presencePreferences?.optOut
10281
- }), /* @__PURE__ */ jsx("label", {
10282
- htmlFor: "optOutPresence",
10283
- children: "Opt out of presence features"
10284
- })]
10285
- })]
10286
- }), /* @__PURE__ */ jsxs("div", {
10287
- children: [/* @__PURE__ */ jsxs("div", {
10288
- className: "mb-2 flex items-center gap-2",
10289
- children: [/* @__PURE__ */ jsx("h2", {
10290
- className: "text-body-xl",
10291
- children: "Persist Playground"
10292
- }), /* @__PURE__ */ jsx(SimpleTooltip, {
10293
- content: `When enabled, clicking "Set to Playground" will save the current playground in the "saved-playgrounds" directory.`,
10294
- children: /* @__PURE__ */ jsx(Icon, {
10295
- name: "Question",
10296
- tabIndex: 0
10297
- })
10327
+ children: [/* @__PURE__ */ jsxs("div", {
10328
+ className: "mb-2 flex items-center gap-2",
10329
+ children: [/* @__PURE__ */ jsx("h2", {
10330
+ className: "text-body-xl",
10331
+ children: "Persist Playground"
10332
+ }), /* @__PURE__ */ jsx(SimpleTooltip, {
10333
+ content: `When enabled, clicking "Set to Playground" will save the current playground in the "saved-playgrounds" directory.`,
10334
+ children: /* @__PURE__ */ jsx(Icon, {
10335
+ name: "Question",
10336
+ tabIndex: 0
10337
+ })
10338
+ })]
10339
+ }), /* @__PURE__ */ jsxs("div", {
10340
+ className: "flex items-center gap-2",
10341
+ children: [/* @__PURE__ */ jsx("input", {
10342
+ type: "checkbox",
10343
+ id: "persistPlayground",
10344
+ name: "persistPlayground",
10345
+ defaultChecked: playgroundPreferences?.persist
10346
+ }), /* @__PURE__ */ jsx("label", {
10347
+ htmlFor: "persistPlayground",
10348
+ children: "Enable saving playground"
10349
+ })]
10298
10350
  })]
10299
10351
  }), /* @__PURE__ */ jsxs("div", {
10300
- className: "flex items-center gap-2",
10301
- children: [/* @__PURE__ */ jsx("input", {
10302
- type: "checkbox",
10303
- id: "persistPlayground",
10304
- name: "persistPlayground",
10305
- defaultChecked: playgroundPreferences?.persist
10306
- }), /* @__PURE__ */ jsx("label", {
10307
- htmlFor: "persistPlayground",
10308
- children: "Enable saving playground"
10352
+ children: [/* @__PURE__ */ jsxs("div", {
10353
+ className: "mb-2 flex items-center gap-2",
10354
+ children: [/* @__PURE__ */ jsx("h2", {
10355
+ className: "text-body-xl",
10356
+ children: "Exercise Directory Warning"
10357
+ }), /* @__PURE__ */ jsx(SimpleTooltip, {
10358
+ content: `When enabled, you'll see a warning banner when you have changes in the exercises directory. This helps remind you to work in the playground directory instead.`,
10359
+ children: /* @__PURE__ */ jsx(Icon, {
10360
+ name: "Question",
10361
+ tabIndex: 0
10362
+ })
10363
+ })]
10364
+ }), /* @__PURE__ */ jsxs("div", {
10365
+ className: "flex items-center gap-2",
10366
+ children: [/* @__PURE__ */ jsx("input", {
10367
+ type: "checkbox",
10368
+ id: "dismissExerciseWarning",
10369
+ name: "dismissExerciseWarning",
10370
+ defaultChecked: exerciseWarningPreferences?.dismissed
10371
+ }), /* @__PURE__ */ jsx("label", {
10372
+ htmlFor: "dismissExerciseWarning",
10373
+ children: "Dismiss exercise directory warnings"
10374
+ })]
10309
10375
  })]
10376
+ }), /* @__PURE__ */ jsx("div", {
10377
+ className: "h-4"
10378
+ }), /* @__PURE__ */ jsx(Button, {
10379
+ varient: "primary",
10380
+ type: "submit",
10381
+ name: "intent",
10382
+ value: "update-preferences",
10383
+ disabled: isSubmitting,
10384
+ children: isSubmitting ? "Updating..." : "Update Preferences"
10310
10385
  })]
10311
- }), /* @__PURE__ */ jsx("div", {
10312
- className: "h-4"
10313
- }), /* @__PURE__ */ jsx(Button, {
10314
- varient: "primary",
10315
- type: "submit",
10316
- name: "intent",
10317
- value: "update-preferences",
10318
- disabled: isSubmitting,
10319
- children: isSubmitting ? "Updating..." : "Update Preferences"
10320
10386
  })]
10321
- })]
10387
+ })
10322
10388
  });
10323
10389
  });
10324
10390
  const route25 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10325
10391
  __proto__: null,
10326
- action: action$2,
10392
+ action: action$3,
10327
10393
  default: preferences,
10328
- loader: loader$c
10394
+ loader: loader$d
10329
10395
  }, Symbol.toStringTag, { value: "Module" }));
10330
10396
  const handle$4 = {
10331
10397
  getSitemapEntries: () => null
@@ -10388,6 +10454,226 @@ const route26 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
10388
10454
  default: support,
10389
10455
  handle: handle$4
10390
10456
  }, Symbol.toStringTag, { value: "Module" }));
10457
+ async function loader$c() {
10458
+ ensureUndeployed();
10459
+ const preferences2 = await getPreferences();
10460
+ return {
10461
+ preferences: preferences2
10462
+ };
10463
+ }
10464
+ async function action$2({
10465
+ request
10466
+ }) {
10467
+ ensureUndeployed();
10468
+ const formData = await request.formData();
10469
+ const dismissed = formData.get("dismissWarning") === "on";
10470
+ await setPreferences({
10471
+ exerciseWarning: {
10472
+ dismissed
10473
+ }
10474
+ });
10475
+ return redirectWithToast("/workspace-structure", {
10476
+ title: "Preferences updated",
10477
+ description: "Your workspace structure warning preference has been updated.",
10478
+ type: "success"
10479
+ });
10480
+ }
10481
+ const workspaceStructure = UNSAFE_withComponentProps(function WorkspaceStructure() {
10482
+ const {
10483
+ preferences: preferences2
10484
+ } = useLoaderData();
10485
+ const navigation = useNavigation();
10486
+ const isSubmitting = navigation.state === "submitting";
10487
+ return /* @__PURE__ */ jsx("div", {
10488
+ className: "h-full w-full overflow-y-auto",
10489
+ children: /* @__PURE__ */ jsxs("main", {
10490
+ className: "container mt-12 flex w-full max-w-4xl flex-grow flex-col gap-6 pb-24",
10491
+ children: [/* @__PURE__ */ jsx("h1", {
10492
+ className: "text-h1",
10493
+ children: "Workshop Structure & Guidelines"
10494
+ }), /* @__PURE__ */ jsxs("div", {
10495
+ className: "rounded-lg border border-destructive bg-destructive/10 p-4",
10496
+ children: [/* @__PURE__ */ jsx("h2", {
10497
+ className: "mb-2 text-lg font-semibold text-destructive",
10498
+ children: "⚠️ Important: Work in the Right Directory"
10499
+ }), /* @__PURE__ */ jsx("p", {
10500
+ className: "text-sm text-destructive",
10501
+ children: /* @__PURE__ */ jsx("strong", {
10502
+ children: "Always work in the `playground` directory, not the `exercises` directory."
10503
+ })
10504
+ }), /* @__PURE__ */ jsxs("p", {
10505
+ className: "mt-2 text-sm text-destructive",
10506
+ children: ["To ", /* @__PURE__ */ jsx("strong", {
10507
+ children: "make this warning go away"
10508
+ }), ", either:", /* @__PURE__ */ jsxs("ol", {
10509
+ className: "list-decimal pl-4",
10510
+ children: [/* @__PURE__ */ jsxs("li", {
10511
+ children: [`Undo your changes in the exercises directory with: `, /* @__PURE__ */ jsx("code", {
10512
+ className: "rounded bg-background px-1 py-0.5 text-xs",
10513
+ children: "git checkout exercises/"
10514
+ })]
10515
+ }), /* @__PURE__ */ jsx("li", {
10516
+ children: "Read below and check the box once you understand how this is supposed to work."
10517
+ })]
10518
+ })]
10519
+ })]
10520
+ }), /* @__PURE__ */ jsxs("div", {
10521
+ className: "space-y-6",
10522
+ children: [/* @__PURE__ */ jsxs("section", {
10523
+ children: [/* @__PURE__ */ jsx("h2", {
10524
+ className: "mb-3 text-h2",
10525
+ children: "Directory Structure"
10526
+ }), /* @__PURE__ */ jsxs("div", {
10527
+ className: "space-y-4",
10528
+ children: [/* @__PURE__ */ jsxs("div", {
10529
+ className: "rounded-lg border border-border bg-muted p-4",
10530
+ children: [/* @__PURE__ */ jsx("h3", {
10531
+ className: "mb-2 text-lg font-semibold",
10532
+ children: "📁 exercises/"
10533
+ }), /* @__PURE__ */ jsxs("p", {
10534
+ className: "text-sm text-muted-foreground",
10535
+ children: [/* @__PURE__ */ jsx("strong", {
10536
+ children: "Templates only."
10537
+ }), " These are the original exercise files that serve as the starting point for each step.", /* @__PURE__ */ jsxs("strong", {
10538
+ className: "text-destructive",
10539
+ children: [" ", "Do not edit these files"]
10540
+ }), " ", "unless you're contributing to the workshop or are the instructor building the content."]
10541
+ })]
10542
+ }), /* @__PURE__ */ jsxs("div", {
10543
+ className: "rounded-lg border border-border bg-muted p-4",
10544
+ children: [/* @__PURE__ */ jsx("h3", {
10545
+ className: "mb-2 text-lg font-semibold",
10546
+ children: "🏗️ playground/"
10547
+ }), /* @__PURE__ */ jsxs("p", {
10548
+ className: "text-sm text-muted-foreground",
10549
+ children: [/* @__PURE__ */ jsx("strong", {
10550
+ children: "Your workspace."
10551
+ }), " This is where you practice and develop your skills.", /* @__PURE__ */ jsx("strong", {
10552
+ className: "text-primary",
10553
+ children: " Always work here"
10554
+ }), " to complete exercises and experiment with the code."]
10555
+ })]
10556
+ })]
10557
+ })]
10558
+ }), /* @__PURE__ */ jsxs("section", {
10559
+ children: [/* @__PURE__ */ jsx("h2", {
10560
+ className: "mb-3 text-h2",
10561
+ children: "Workshop UI Tabs"
10562
+ }), /* @__PURE__ */ jsxs("div", {
10563
+ className: "space-y-4",
10564
+ children: [/* @__PURE__ */ jsxs("div", {
10565
+ className: "rounded-lg border border-border bg-muted p-4",
10566
+ children: [/* @__PURE__ */ jsx("h3", {
10567
+ className: "mb-2 text-lg font-semibold",
10568
+ children: "🏗️ Playground Tab"
10569
+ }), /* @__PURE__ */ jsxs("p", {
10570
+ className: "text-sm text-muted-foreground",
10571
+ children: ["Shows the ", /* @__PURE__ */ jsx("strong", {
10572
+ children: "current state of your playground"
10573
+ }), " - this is your work in progress."]
10574
+ })]
10575
+ }), /* @__PURE__ */ jsxs("div", {
10576
+ className: "rounded-lg border border-border bg-muted p-4",
10577
+ children: [/* @__PURE__ */ jsx("h3", {
10578
+ className: "mb-2 text-lg font-semibold",
10579
+ children: "📋 Problem Tab"
10580
+ }), /* @__PURE__ */ jsxs("p", {
10581
+ className: "text-sm text-muted-foreground",
10582
+ children: ["Shows the ", /* @__PURE__ */ jsx("strong", {
10583
+ children: "current state of the problem"
10584
+ }), " - useful for referencing where you started in this exercise step."]
10585
+ })]
10586
+ }), /* @__PURE__ */ jsxs("div", {
10587
+ className: "rounded-lg border border-border bg-muted p-4",
10588
+ children: [/* @__PURE__ */ jsx("h3", {
10589
+ className: "mb-2 text-lg font-semibold",
10590
+ children: "✅ Solution Tab"
10591
+ }), /* @__PURE__ */ jsxs("p", {
10592
+ className: "text-sm text-muted-foreground",
10593
+ children: ["Shows the ", /* @__PURE__ */ jsx("strong", {
10594
+ children: "current state of the solution"
10595
+ }), " - useful for checking how things should work when you're finished and comparing to your own solution."]
10596
+ })]
10597
+ })]
10598
+ })]
10599
+ }), /* @__PURE__ */ jsxs("section", {
10600
+ children: [/* @__PURE__ */ jsx("h2", {
10601
+ className: "mb-3 text-h2",
10602
+ children: "Exceptions to the Rule"
10603
+ }), /* @__PURE__ */ jsxs("div", {
10604
+ className: "rounded-lg border border-border bg-muted p-4",
10605
+ children: [/* @__PURE__ */ jsxs("p", {
10606
+ className: "text-sm text-muted-foreground",
10607
+ children: ["The only times you should modify files in the", " ", /* @__PURE__ */ jsx("code", {
10608
+ className: "rounded bg-background px-1 py-0.5 text-xs",
10609
+ children: "exercises/"
10610
+ }), " ", "directory are:"]
10611
+ }), /* @__PURE__ */ jsxs("ul", {
10612
+ className: "mt-2 space-y-1 text-sm text-muted-foreground",
10613
+ children: [/* @__PURE__ */ jsxs("li", {
10614
+ children: ["• ", /* @__PURE__ */ jsx("strong", {
10615
+ children: "You're the instructor"
10616
+ }), " building or maintaining the workshop content"]
10617
+ }), /* @__PURE__ */ jsxs("li", {
10618
+ children: ["• ", /* @__PURE__ */ jsx("strong", {
10619
+ children: "You're contributing"
10620
+ }), " to the workshop source code (bug fixes, improvements, etc.)"]
10621
+ })]
10622
+ })]
10623
+ })]
10624
+ }), /* @__PURE__ */ jsxs("section", {
10625
+ children: [/* @__PURE__ */ jsx("h2", {
10626
+ className: "mb-3 text-h2",
10627
+ children: "Need a Refresher?"
10628
+ }), /* @__PURE__ */ jsxs("p", {
10629
+ className: "text-sm text-muted-foreground",
10630
+ children: ["For a complete overview of the typical workflow, check out the", " ", /* @__PURE__ */ jsx(Link, {
10631
+ to: "/onboarding",
10632
+ className: "text-primary underline hover:no-underline",
10633
+ children: "onboarding page"
10634
+ }), " ", "to review the expected workflow."]
10635
+ })]
10636
+ }), /* @__PURE__ */ jsx("hr", {}), /* @__PURE__ */ jsx("section", {
10637
+ children: /* @__PURE__ */ jsxs("div", {
10638
+ className: "rounded-lg border border-destructive bg-destructive/10 p-4",
10639
+ children: [/* @__PURE__ */ jsx("h2", {
10640
+ className: "mb-2 text-lg font-semibold text-destructive",
10641
+ children: "Make this warning go away"
10642
+ }), /* @__PURE__ */ jsxs(Form, {
10643
+ method: "post",
10644
+ className: "space-y-4",
10645
+ children: [/* @__PURE__ */ jsxs("div", {
10646
+ className: "flex items-center gap-2",
10647
+ children: [/* @__PURE__ */ jsx("input", {
10648
+ type: "checkbox",
10649
+ id: "dismissWarning",
10650
+ name: "dismissWarning",
10651
+ defaultChecked: preferences2?.exerciseWarning?.dismissed,
10652
+ className: "rounded border-border"
10653
+ }), /* @__PURE__ */ jsx("label", {
10654
+ htmlFor: "dismissWarning",
10655
+ className: "text-sm",
10656
+ children: "I understand this and do not need further warnings about editing the exercises directory"
10657
+ })]
10658
+ }), /* @__PURE__ */ jsx(Button, {
10659
+ type: "submit",
10660
+ varient: "primary",
10661
+ disabled: isSubmitting,
10662
+ children: isSubmitting ? "Saving..." : "Save Preference"
10663
+ })]
10664
+ })]
10665
+ })
10666
+ })]
10667
+ })]
10668
+ })
10669
+ });
10670
+ });
10671
+ const route27 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10672
+ __proto__: null,
10673
+ action: action$2,
10674
+ default: workspaceStructure,
10675
+ loader: loader$c
10676
+ }, Symbol.toStringTag, { value: "Module" }));
10391
10677
  const handle$3 = {
10392
10678
  getSitemapEntries: () => null
10393
10679
  };
@@ -10440,7 +10726,7 @@ const _layout = UNSAFE_withComponentProps(function AdminLayout() {
10440
10726
  })]
10441
10727
  });
10442
10728
  });
10443
- const route27 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10729
+ const route28 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10444
10730
  __proto__: null,
10445
10731
  default: _layout,
10446
10732
  handle: handle$3,
@@ -10453,7 +10739,7 @@ async function loader$b() {
10453
10739
  apps
10454
10740
  });
10455
10741
  }
10456
- const route28 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10742
+ const route29 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10457
10743
  __proto__: null,
10458
10744
  loader: loader$b
10459
10745
  }, Symbol.toStringTag, { value: "Module" }));
@@ -10464,7 +10750,7 @@ async function loader$a() {
10464
10750
  entries
10465
10751
  });
10466
10752
  }
10467
- const route29 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10753
+ const route30 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10468
10754
  __proto__: null,
10469
10755
  loader: loader$a
10470
10756
  }, Symbol.toStringTag, { value: "Module" }));
@@ -10769,7 +11055,7 @@ function Pinger({
10769
11055
  })]
10770
11056
  });
10771
11057
  }
10772
- const route30 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11058
+ const route31 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10773
11059
  __proto__: null,
10774
11060
  action: action$1,
10775
11061
  default: index,
@@ -10862,7 +11148,7 @@ const version = UNSAFE_withComponentProps(function Version() {
10862
11148
  })]
10863
11149
  });
10864
11150
  });
10865
- const route32 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11151
+ const route33 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10866
11152
  __proto__: null,
10867
11153
  default: version,
10868
11154
  handle: handle$1,
@@ -10885,7 +11171,7 @@ async function loader$7({
10885
11171
  }
10886
11172
  });
10887
11173
  }
10888
- const route33 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11174
+ const route34 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10889
11175
  __proto__: null,
10890
11176
  loader: loader$7
10891
11177
  }, Symbol.toStringTag, { value: "Module" }));
@@ -10994,7 +11280,7 @@ const diff = UNSAFE_withComponentProps(function DiffViewer() {
10994
11280
  })]
10995
11281
  });
10996
11282
  });
10997
- const route34 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11283
+ const route35 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10998
11284
  __proto__: null,
10999
11285
  default: diff,
11000
11286
  loader: loader$6
@@ -11015,7 +11301,7 @@ async function loader$5({
11015
11301
  }
11016
11302
  });
11017
11303
  }
11018
- const route35 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11304
+ const route36 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11019
11305
  __proto__: null,
11020
11306
  loader: loader$5
11021
11307
  }, Symbol.toStringTag, { value: "Module" }));
@@ -11321,7 +11607,7 @@ function OgLayout({
11321
11607
  })]
11322
11608
  });
11323
11609
  }
11324
- const route38 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11610
+ const route39 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11325
11611
  __proto__: null,
11326
11612
  loader: loader$4
11327
11613
  }, Symbol.toStringTag, { value: "Module" }));
@@ -11408,7 +11694,7 @@ const onboarding = UNSAFE_withComponentProps(function Onboarding() {
11408
11694
  })]
11409
11695
  });
11410
11696
  });
11411
- const route39 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11697
+ const route40 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11412
11698
  __proto__: null,
11413
11699
  action,
11414
11700
  default: onboarding,
@@ -11447,7 +11733,7 @@ async function loader$2() {
11447
11733
  testProcesses
11448
11734
  });
11449
11735
  }
11450
- const route40 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11736
+ const route41 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11451
11737
  __proto__: null,
11452
11738
  loader: loader$2
11453
11739
  }, Symbol.toStringTag, { value: "Module" }));
@@ -11459,7 +11745,7 @@ function loader$1({
11459
11745
  value: `${getDomainUrl(request)}/sitemap.xml`
11460
11746
  }]);
11461
11747
  }
11462
- const route42 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11748
+ const route43 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11463
11749
  __proto__: null,
11464
11750
  loader: loader$1
11465
11751
  }, Symbol.toStringTag, { value: "Module" }));
@@ -11475,11 +11761,11 @@ async function loader({
11475
11761
  }
11476
11762
  });
11477
11763
  }
11478
- const route44 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11764
+ const route45 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11479
11765
  __proto__: null,
11480
11766
  loader
11481
11767
  }, Symbol.toStringTag, { value: "Module" }));
11482
- const serverManifest = { "entry": { "module": "/assets/entry.client-anc4-dZY.js", "imports": ["/assets/jsx-runtime-EKYJJIwR.js", "/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/index-Bp_2FjuO.js"], "css": [] }, "routes": { "root": { "id": "root", "parentId": void 0, "path": "", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": true, "module": "/assets/root-Ddu3Xxbb.js", "imports": ["/assets/jsx-runtime-EKYJJIwR.js", "/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/index-Bp_2FjuO.js", "/assets/misc-COGqV2fm.js", "/assets/pe-DoDyGTeN.js", "/assets/error-boundary-B8bEOgxp.js", "/assets/progress-bar-Cww9t8Vn.js", "/assets/index-LNXI3Vlr.js", "/assets/tooltip-Cm7A1uIP.js", "/assets/index-5iWKMrsc.js", "/assets/presence-CLRBf5dp.js", "/assets/seo-t5J-DRxw.js", "/assets/online-CyV51Rml.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/$": { "id": "routes/$", "parentId": "root", "path": "*", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": true, "module": "/assets/_-C_7mS1-0.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/error-boundary-B8bEOgxp.js", "/assets/misc-COGqV2fm.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/_layout": { "id": "routes/_app+/_layout", "parentId": "root", "path": void 0, "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/_layout-Tp2XmIFb.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/misc-COGqV2fm.js", "/assets/pe-DoDyGTeN.js", "/assets/product-B0zJEdi_.js", "/assets/revalidation-ws-CkOwoVmm.js", "/assets/tooltip-Cm7A1uIP.js", "/assets/index-7Ba6ptu2.js", "/assets/user-BQ8D2Fty.js", "/assets/workshop-config-5VcXxeyp.js", "/assets/online-CyV51Rml.js", "/assets/presence-CLRBf5dp.js", "/assets/progress-DKsShYpv.js", "/assets/index-5iWKMrsc.js", "/assets/index-Bp_2FjuO.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/account": { "id": "routes/_app+/account", "parentId": "routes/_app+/_layout", "path": "account", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/account-Jl0f1Zst.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/button-cFpvwtjC.js", "/assets/misc-COGqV2fm.js", "/assets/tooltip-Cm7A1uIP.js", "/assets/user-BQ8D2Fty.js", "/assets/workshop-config-5VcXxeyp.js", "/assets/index-Bp_2FjuO.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/app.$appName+/$": { "id": "routes/_app+/app.$appName+/$", "parentId": "routes/_app+/_layout", "path": "app/:appName/*", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/_-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/app.$appName+/api.$": { "id": "routes/_app+/app.$appName+/api.$", "parentId": "routes/_app+/_layout", "path": "app/:appName/api/*", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/api._-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/app.$appName+/epic_ws[.js]": { "id": "routes/_app+/app.$appName+/epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/app.$appName+/index": { "id": "routes/_app+/app.$appName+/index", "parentId": "routes/_app+/_layout", "path": "app/:appName", "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/index-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/app.$appName+/test.$testName": { "id": "routes/_app+/app.$appName+/test.$testName", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/:testName", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/test._testName-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/app.$appName+/test.epic_ws[.js]": { "id": "routes/_app+/app.$appName+/test.epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/test.epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/app.epic_ws[.js]": { "id": "routes/_app+/app.epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/app.epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/discord": { "id": "routes/_app+/discord", "parentId": "routes/_app+/_layout", "path": "discord", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/discord-C86FbV-j.js", "imports": ["/assets/discord-DOEtvB6W.js", "/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/misc-COGqV2fm.js", "/assets/user-BQ8D2Fty.js", "/assets/workshop-config-5VcXxeyp.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/exercise+/_layout": { "id": "routes/_app+/exercise+/_layout", "parentId": "routes/_app+/_layout", "path": "exercise", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/_layout-dHfVo9gJ.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/exercise+/$exerciseNumber": { "id": "routes/_app+/exercise+/$exerciseNumber", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber-CdGNKLia.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/index-_jNKXw67.js", "/assets/epic-video-Buv6ZzQr.js", "/assets/revalidation-ws-CkOwoVmm.js", "/assets/mdx-BrER1Z2t.js", "/assets/progress-DKsShYpv.js", "/assets/misc-COGqV2fm.js", "/assets/seo-t5J-DRxw.js", "/assets/index-5iWKMrsc.js", "/assets/tooltip-Cm7A1uIP.js", "/assets/index-Bp_2FjuO.js", "/assets/pe-DoDyGTeN.js", "/assets/online-CyV51Rml.js", "/assets/loading-WTUNhoIS.js", "/assets/user-BQ8D2Fty.js", "/assets/workshop-config-5VcXxeyp.js", "/assets/progress-bar-Cww9t8Vn.js"], "css": ["/assets/epic-video-D2Xftn6t.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber/:stepNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber_._stepNumber-BNj079sn.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/misc-COGqV2fm.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "path": ":type", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": true, "module": "/assets/_layout-C-qRb0Ym.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/index-_jNKXw67.js", "/assets/error-boundary-B8bEOgxp.js", "/assets/nav-chevrons-Cxzx0j13.js", "/assets/revalidation-ws-CkOwoVmm.js", "/assets/mdx-BrER1Z2t.js", "/assets/progress-DKsShYpv.js", "/assets/set-playground-Bx0yIjpY.js", "/assets/misc-COGqV2fm.js", "/assets/seo-t5J-DRxw.js", "/assets/epic-video-Buv6ZzQr.js", "/assets/tooltip-Cm7A1uIP.js", "/assets/index-5iWKMrsc.js", "/assets/index-7Ba6ptu2.js", "/assets/index-Bp_2FjuO.js", "/assets/progress-bar-Cww9t8Vn.js", "/assets/pe-DoDyGTeN.js", "/assets/index-CZ8q0Nf8.js", "/assets/online-CyV51Rml.js", "/assets/loading-WTUNhoIS.js", "/assets/user-BQ8D2Fty.js", "/assets/workshop-config-5VcXxeyp.js"], "css": ["/assets/epic-video-D2Xftn6t.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/app": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/app", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": "app", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/app-KDd3xjI9.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/preview-CMOIed2z.js", "/assets/misc-COGqV2fm.js", "/assets/button-cFpvwtjC.js", "/assets/loading-WTUNhoIS.js", "/assets/index-5iWKMrsc.js", "/assets/tooltip-Cm7A1uIP.js", "/assets/index-Bp_2FjuO.js", "/assets/pe-DoDyGTeN.js", "/assets/progress-bar-Cww9t8Vn.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/index": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/index", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": true, "module": "/assets/index-CUv7g3UR.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/tooltip-Cm7A1uIP.js", "/assets/index-CZ8q0Nf8.js", "/assets/misc-COGqV2fm.js", "/assets/diff-DLaUr4S6.js", "/assets/error-boundary-B8bEOgxp.js", "/assets/loading-WTUNhoIS.js", "/assets/discord-DOEtvB6W.js", "/assets/online-CyV51Rml.js", "/assets/index-LNXI3Vlr.js", "/assets/set-playground-Bx0yIjpY.js", "/assets/tests-Bmk7igTW.js", "/assets/preview-CMOIed2z.js", "/assets/index-Bp_2FjuO.js", "/assets/index-7Ba6ptu2.js", "/assets/accordion-PSsenYUI.js", "/assets/mdx-BrER1Z2t.js", "/assets/epic-video-Buv6ZzQr.js", "/assets/index-5iWKMrsc.js", "/assets/pe-DoDyGTeN.js", "/assets/user-BQ8D2Fty.js", "/assets/workshop-config-5VcXxeyp.js", "/assets/progress-bar-Cww9t8Vn.js", "/assets/revalidation-ws-CkOwoVmm.js", "/assets/use-event-source-DDlZtAwc.js", "/assets/button-cFpvwtjC.js"], "css": ["/assets/epic-video-D2Xftn6t.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/test": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/test", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": "test", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/test-DUocKqAt.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/tests-Bmk7igTW.js", "/assets/epic-video-Buv6ZzQr.js", "/assets/index-5iWKMrsc.js", "/assets/misc-COGqV2fm.js", "/assets/tooltip-Cm7A1uIP.js", "/assets/index-Bp_2FjuO.js", "/assets/pe-DoDyGTeN.js", "/assets/online-CyV51Rml.js", "/assets/loading-WTUNhoIS.js", "/assets/user-BQ8D2Fty.js", "/assets/workshop-config-5VcXxeyp.js", "/assets/accordion-PSsenYUI.js", "/assets/index-CZ8q0Nf8.js", "/assets/index-7Ba6ptu2.js", "/assets/use-event-source-DDlZtAwc.js", "/assets/set-playground-Bx0yIjpY.js", "/assets/progress-bar-Cww9t8Vn.js"], "css": ["/assets/epic-video-D2Xftn6t.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.index": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.index", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_._stepNumber.index-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/exercise+/$exerciseNumber_.finished": { "id": "routes/_app+/exercise+/$exerciseNumber_.finished", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber/finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_.finished-Ce6wQJ7W.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/index-_jNKXw67.js", "/assets/epic-video-Buv6ZzQr.js", "/assets/misc-COGqV2fm.js", "/assets/loading-WTUNhoIS.js", "/assets/nav-chevrons-Cxzx0j13.js", "/assets/revalidation-ws-CkOwoVmm.js", "/assets/mdx-BrER1Z2t.js", "/assets/progress-DKsShYpv.js", "/assets/index-5iWKMrsc.js", "/assets/online-CyV51Rml.js", "/assets/seo-t5J-DRxw.js", "/assets/user-BQ8D2Fty.js", "/assets/workshop-config-5VcXxeyp.js", "/assets/index-Bp_2FjuO.js", "/assets/progress-bar-Cww9t8Vn.js", "/assets/pe-DoDyGTeN.js", "/assets/tooltip-Cm7A1uIP.js"], "css": ["/assets/epic-video-D2Xftn6t.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/finished": { "id": "routes/_app+/finished", "parentId": "routes/_app+/_layout", "path": "finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/finished-BGX9JzP_.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/index-_jNKXw67.js", "/assets/epic-video-Buv6ZzQr.js", "/assets/misc-COGqV2fm.js", "/assets/loading-WTUNhoIS.js", "/assets/nav-chevrons-Cxzx0j13.js", "/assets/revalidation-ws-CkOwoVmm.js", "/assets/mdx-BrER1Z2t.js", "/assets/online-CyV51Rml.js", "/assets/seo-t5J-DRxw.js", "/assets/progress-DKsShYpv.js", "/assets/index-5iWKMrsc.js", "/assets/user-BQ8D2Fty.js", "/assets/workshop-config-5VcXxeyp.js", "/assets/index-Bp_2FjuO.js", "/assets/progress-bar-Cww9t8Vn.js", "/assets/pe-DoDyGTeN.js", "/assets/tooltip-Cm7A1uIP.js"], "css": ["/assets/epic-video-D2Xftn6t.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/index": { "id": "routes/_app+/index", "parentId": "routes/_app+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": true, "module": "/assets/index-Bn3YwCqZ.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/index-_jNKXw67.js", "/assets/epic-video-Buv6ZzQr.js", "/assets/error-boundary-B8bEOgxp.js", "/assets/mdx-BrER1Z2t.js", "/assets/misc-COGqV2fm.js", "/assets/progress-DKsShYpv.js", "/assets/index-5iWKMrsc.js", "/assets/tooltip-Cm7A1uIP.js", "/assets/index-Bp_2FjuO.js", "/assets/pe-DoDyGTeN.js", "/assets/online-CyV51Rml.js", "/assets/loading-WTUNhoIS.js", "/assets/user-BQ8D2Fty.js", "/assets/workshop-config-5VcXxeyp.js", "/assets/progress-bar-Cww9t8Vn.js"], "css": ["/assets/epic-video-D2Xftn6t.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/l": { "id": "routes/_app+/l", "parentId": "routes/_app+/_layout", "path": "l", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/l-D9C1VDbZ.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/login": { "id": "routes/_app+/login", "parentId": "routes/_app+/_layout", "path": "login", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/login-BzcTSzkr.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/use-event-source-DDlZtAwc.js", "/assets/button-cFpvwtjC.js", "/assets/loading-WTUNhoIS.js", "/assets/product-B0zJEdi_.js", "/assets/workshop-config-5VcXxeyp.js", "/assets/index-5iWKMrsc.js", "/assets/misc-COGqV2fm.js", "/assets/tooltip-Cm7A1uIP.js", "/assets/index-Bp_2FjuO.js", "/assets/pe-DoDyGTeN.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/preferences": { "id": "routes/_app+/preferences", "parentId": "routes/_app+/_layout", "path": "preferences", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/preferences-Dx_EUPYj.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/button-cFpvwtjC.js", "/assets/misc-COGqV2fm.js", "/assets/tooltip-Cm7A1uIP.js", "/assets/index-Bp_2FjuO.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/support": { "id": "routes/_app+/support", "parentId": "routes/_app+/_layout", "path": "support", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/support-BnsTkkCH.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/admin+/_layout": { "id": "routes/admin+/_layout", "parentId": "root", "path": "admin", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/_layout-B3FchrR9.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/admin+/apps": { "id": "routes/admin+/apps", "parentId": "routes/admin+/_layout", "path": "apps", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/apps-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/admin+/cache": { "id": "routes/admin+/cache", "parentId": "routes/admin+/_layout", "path": "cache", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/cache-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/admin+/index": { "id": "routes/admin+/index", "parentId": "routes/admin+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/index-DxbpRM0V.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/misc-COGqV2fm.js", "/assets/tooltip-Cm7A1uIP.js", "/assets/progress-DKsShYpv.js", "/assets/index-Bp_2FjuO.js", "/assets/pe-DoDyGTeN.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/admin+/notifications": { "id": "routes/admin+/notifications", "parentId": "routes/admin+/_layout", "path": "notifications", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/notifications-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/admin+/version": { "id": "routes/admin+/version", "parentId": "routes/admin+/_layout", "path": "version", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/version-CG_ZHfTC.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/workshop-config-5VcXxeyp.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/apps": { "id": "routes/apps", "parentId": "root", "path": "apps", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/apps-DP2rzg_V.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/diff": { "id": "routes/diff", "parentId": "root", "path": "diff", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/diff-BXApfmyx.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/misc-COGqV2fm.js", "/assets/diff-DLaUr4S6.js", "/assets/nav-chevrons-Cxzx0j13.js", "/assets/accordion-PSsenYUI.js", "/assets/tooltip-Cm7A1uIP.js", "/assets/index-Bp_2FjuO.js", "/assets/index-CZ8q0Nf8.js", "/assets/index-7Ba6ptu2.js", "/assets/mdx-BrER1Z2t.js", "/assets/epic-video-Buv6ZzQr.js", "/assets/index-5iWKMrsc.js", "/assets/pe-DoDyGTeN.js", "/assets/online-CyV51Rml.js", "/assets/loading-WTUNhoIS.js", "/assets/user-BQ8D2Fty.js", "/assets/workshop-config-5VcXxeyp.js", "/assets/progress-bar-Cww9t8Vn.js", "/assets/revalidation-ws-CkOwoVmm.js"], "css": ["/assets/epic-video-D2Xftn6t.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/exercises": { "id": "routes/exercises", "parentId": "root", "path": "exercises", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/exercises-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/launch-editor": { "id": "routes/launch-editor", "parentId": "root", "path": "launch-editor", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/launch-editor-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/login-sse": { "id": "routes/login-sse", "parentId": "root", "path": "login-sse", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/login-sse-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/og": { "id": "routes/og", "parentId": "root", "path": "og", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/og-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/onboarding": { "id": "routes/onboarding", "parentId": "root", "path": "onboarding", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/onboarding-CpNLu5ws.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/button-cFpvwtjC.js", "/assets/epic-video-Buv6ZzQr.js", "/assets/misc-COGqV2fm.js", "/assets/index-5iWKMrsc.js", "/assets/tooltip-Cm7A1uIP.js", "/assets/index-Bp_2FjuO.js", "/assets/pe-DoDyGTeN.js", "/assets/online-CyV51Rml.js", "/assets/loading-WTUNhoIS.js", "/assets/user-BQ8D2Fty.js", "/assets/workshop-config-5VcXxeyp.js"], "css": ["/assets/epic-video-D2Xftn6t.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/processes": { "id": "routes/processes", "parentId": "root", "path": "processes", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/processes-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/progress": { "id": "routes/progress", "parentId": "root", "path": "progress", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/progress-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/robots[.]txt": { "id": "routes/robots[.]txt", "parentId": "root", "path": "robots.txt", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/robots_._txt-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/set-playground": { "id": "routes/set-playground", "parentId": "root", "path": "set-playground", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/set-playground-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/sitemap[.]xml": { "id": "routes/sitemap[.]xml", "parentId": "root", "path": "sitemap.xml", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/sitemap_._xml-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/start": { "id": "routes/start", "parentId": "root", "path": "start", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/start-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/test": { "id": "routes/test", "parentId": "root", "path": "test", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/test-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/theme/index": { "id": "routes/theme/index", "parentId": "root", "path": "theme", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/index-DP2rzg_V.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/video-player/index": { "id": "routes/video-player/index", "parentId": "root", "path": "video-player", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/index-K6Dvbx-E.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 } }, "url": "/assets/manifest-d7f923a9.js", "version": "d7f923a9", "sri": void 0 };
11768
+ const serverManifest = { "entry": { "module": "/assets/entry.client-anc4-dZY.js", "imports": ["/assets/jsx-runtime-EKYJJIwR.js", "/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/index-Bp_2FjuO.js"], "css": [] }, "routes": { "root": { "id": "root", "parentId": void 0, "path": "", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": true, "module": "/assets/root-CoMxWz2o.js", "imports": ["/assets/jsx-runtime-EKYJJIwR.js", "/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/index-Bp_2FjuO.js", "/assets/misc-DsJGqoYt.js", "/assets/pe-DoDyGTeN.js", "/assets/error-boundary-bzCOyChj.js", "/assets/progress-bar-BagX2z6n.js", "/assets/index-LNXI3Vlr.js", "/assets/tooltip-CTw4ab49.js", "/assets/index-8yBq10sZ.js", "/assets/presence-DXH0dXJd.js", "/assets/seo-t5J-DRxw.js", "/assets/clsx-B-dksMZM.js", "/assets/online-Cf3nj5JR.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/$": { "id": "routes/$", "parentId": "root", "path": "*", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": true, "module": "/assets/_-Kbj-HAPY.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/error-boundary-bzCOyChj.js", "/assets/misc-DsJGqoYt.js", "/assets/clsx-B-dksMZM.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/_layout": { "id": "routes/_app+/_layout", "parentId": "root", "path": void 0, "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/_layout-ePpFHa-S.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/clsx-B-dksMZM.js", "/assets/pe-DoDyGTeN.js", "/assets/misc-DsJGqoYt.js", "/assets/product-B3wkyL3-.js", "/assets/revalidation-ws-De6AS3e6.js", "/assets/tooltip-CTw4ab49.js", "/assets/index-CtnHrWrs.js", "/assets/user-BQ8D2Fty.js", "/assets/workshop-config-5VcXxeyp.js", "/assets/online-Cf3nj5JR.js", "/assets/presence-DXH0dXJd.js", "/assets/progress-BP5cLKuW.js", "/assets/index-8yBq10sZ.js", "/assets/index-Bp_2FjuO.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/account": { "id": "routes/_app+/account", "parentId": "routes/_app+/_layout", "path": "account", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/account-BgHt6sNV.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/button-BoJWEKHp.js", "/assets/misc-DsJGqoYt.js", "/assets/tooltip-CTw4ab49.js", "/assets/user-BQ8D2Fty.js", "/assets/workshop-config-5VcXxeyp.js", "/assets/clsx-B-dksMZM.js", "/assets/index-Bp_2FjuO.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/app.$appName+/$": { "id": "routes/_app+/app.$appName+/$", "parentId": "routes/_app+/_layout", "path": "app/:appName/*", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/_-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/app.$appName+/api.$": { "id": "routes/_app+/app.$appName+/api.$", "parentId": "routes/_app+/_layout", "path": "app/:appName/api/*", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/api._-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/app.$appName+/epic_ws[.js]": { "id": "routes/_app+/app.$appName+/epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/app.$appName+/index": { "id": "routes/_app+/app.$appName+/index", "parentId": "routes/_app+/_layout", "path": "app/:appName", "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/index-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/app.$appName+/test.$testName": { "id": "routes/_app+/app.$appName+/test.$testName", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/:testName", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/test._testName-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/app.$appName+/test.epic_ws[.js]": { "id": "routes/_app+/app.$appName+/test.epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/test.epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/app.epic_ws[.js]": { "id": "routes/_app+/app.epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/app.epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/discord": { "id": "routes/_app+/discord", "parentId": "routes/_app+/_layout", "path": "discord", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/discord-BvZSO_OZ.js", "imports": ["/assets/discord-B5cRUOhZ.js", "/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/misc-DsJGqoYt.js", "/assets/clsx-B-dksMZM.js", "/assets/user-BQ8D2Fty.js", "/assets/workshop-config-5VcXxeyp.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/exercise+/_layout": { "id": "routes/_app+/exercise+/_layout", "parentId": "routes/_app+/_layout", "path": "exercise", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/_layout-dHfVo9gJ.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/exercise+/$exerciseNumber": { "id": "routes/_app+/exercise+/$exerciseNumber", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber-MXWVsKzI.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/index-_jNKXw67.js", "/assets/epic-video-CRkBFsAC.js", "/assets/revalidation-ws-De6AS3e6.js", "/assets/mdx-DH55rolp.js", "/assets/progress-BP5cLKuW.js", "/assets/misc-DsJGqoYt.js", "/assets/seo-t5J-DRxw.js", "/assets/index-8yBq10sZ.js", "/assets/tooltip-CTw4ab49.js", "/assets/index-Bp_2FjuO.js", "/assets/pe-DoDyGTeN.js", "/assets/online-Cf3nj5JR.js", "/assets/loading-C810LASV.js", "/assets/user-BQ8D2Fty.js", "/assets/workshop-config-5VcXxeyp.js", "/assets/clsx-B-dksMZM.js", "/assets/progress-bar-BagX2z6n.js"], "css": ["/assets/epic-video-D2Xftn6t.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber/:stepNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber_._stepNumber-BfeokKD3.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/misc-DsJGqoYt.js", "/assets/clsx-B-dksMZM.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "path": ":type", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": true, "module": "/assets/_layout-Bv8l5wO7.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/index-_jNKXw67.js", "/assets/error-boundary-bzCOyChj.js", "/assets/nav-chevrons-CSVvCjJa.js", "/assets/revalidation-ws-De6AS3e6.js", "/assets/mdx-DH55rolp.js", "/assets/progress-BP5cLKuW.js", "/assets/set-playground-fnyxfdJX.js", "/assets/misc-DsJGqoYt.js", "/assets/seo-t5J-DRxw.js", "/assets/epic-video-CRkBFsAC.js", "/assets/tooltip-CTw4ab49.js", "/assets/index-8yBq10sZ.js", "/assets/index-CtnHrWrs.js", "/assets/clsx-B-dksMZM.js", "/assets/index-Bp_2FjuO.js", "/assets/progress-bar-BagX2z6n.js", "/assets/pe-DoDyGTeN.js", "/assets/index-DPhEf4uN.js", "/assets/online-Cf3nj5JR.js", "/assets/loading-C810LASV.js", "/assets/user-BQ8D2Fty.js", "/assets/workshop-config-5VcXxeyp.js"], "css": ["/assets/epic-video-D2Xftn6t.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/app": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/app", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": "app", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/app-By03B5QO.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/preview-B35cxJW7.js", "/assets/misc-DsJGqoYt.js", "/assets/clsx-B-dksMZM.js", "/assets/button-BoJWEKHp.js", "/assets/loading-C810LASV.js", "/assets/index-8yBq10sZ.js", "/assets/tooltip-CTw4ab49.js", "/assets/index-Bp_2FjuO.js", "/assets/pe-DoDyGTeN.js", "/assets/progress-bar-BagX2z6n.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/index": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/index", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": true, "module": "/assets/index-Cf0XLNVj.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/tooltip-CTw4ab49.js", "/assets/index-DPhEf4uN.js", "/assets/clsx-B-dksMZM.js", "/assets/diff-C1wUPjJK.js", "/assets/error-boundary-bzCOyChj.js", "/assets/misc-DsJGqoYt.js", "/assets/loading-C810LASV.js", "/assets/discord-B5cRUOhZ.js", "/assets/online-Cf3nj5JR.js", "/assets/index-LNXI3Vlr.js", "/assets/set-playground-fnyxfdJX.js", "/assets/tests-EEL6JFzf.js", "/assets/preview-B35cxJW7.js", "/assets/index-Bp_2FjuO.js", "/assets/index-CtnHrWrs.js", "/assets/accordion-DBvaz78c.js", "/assets/mdx-DH55rolp.js", "/assets/epic-video-CRkBFsAC.js", "/assets/index-8yBq10sZ.js", "/assets/pe-DoDyGTeN.js", "/assets/user-BQ8D2Fty.js", "/assets/workshop-config-5VcXxeyp.js", "/assets/progress-bar-BagX2z6n.js", "/assets/revalidation-ws-De6AS3e6.js", "/assets/use-event-source-DDlZtAwc.js", "/assets/button-BoJWEKHp.js"], "css": ["/assets/epic-video-D2Xftn6t.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/test": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/test", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": "test", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/test-Dr7hgef4.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/tests-EEL6JFzf.js", "/assets/epic-video-CRkBFsAC.js", "/assets/index-8yBq10sZ.js", "/assets/misc-DsJGqoYt.js", "/assets/clsx-B-dksMZM.js", "/assets/tooltip-CTw4ab49.js", "/assets/index-Bp_2FjuO.js", "/assets/pe-DoDyGTeN.js", "/assets/online-Cf3nj5JR.js", "/assets/loading-C810LASV.js", "/assets/user-BQ8D2Fty.js", "/assets/workshop-config-5VcXxeyp.js", "/assets/accordion-DBvaz78c.js", "/assets/index-DPhEf4uN.js", "/assets/index-CtnHrWrs.js", "/assets/use-event-source-DDlZtAwc.js", "/assets/set-playground-fnyxfdJX.js", "/assets/progress-bar-BagX2z6n.js"], "css": ["/assets/epic-video-D2Xftn6t.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.index": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.index", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_._stepNumber.index-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/exercise+/$exerciseNumber_.finished": { "id": "routes/_app+/exercise+/$exerciseNumber_.finished", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber/finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_.finished-Dr6lECMK.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/index-_jNKXw67.js", "/assets/epic-video-CRkBFsAC.js", "/assets/misc-DsJGqoYt.js", "/assets/loading-C810LASV.js", "/assets/nav-chevrons-CSVvCjJa.js", "/assets/revalidation-ws-De6AS3e6.js", "/assets/mdx-DH55rolp.js", "/assets/progress-BP5cLKuW.js", "/assets/index-8yBq10sZ.js", "/assets/online-Cf3nj5JR.js", "/assets/seo-t5J-DRxw.js", "/assets/user-BQ8D2Fty.js", "/assets/workshop-config-5VcXxeyp.js", "/assets/clsx-B-dksMZM.js", "/assets/index-Bp_2FjuO.js", "/assets/progress-bar-BagX2z6n.js", "/assets/pe-DoDyGTeN.js", "/assets/tooltip-CTw4ab49.js"], "css": ["/assets/epic-video-D2Xftn6t.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/finished": { "id": "routes/_app+/finished", "parentId": "routes/_app+/_layout", "path": "finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/finished-D-PDIHdi.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/index-_jNKXw67.js", "/assets/epic-video-CRkBFsAC.js", "/assets/misc-DsJGqoYt.js", "/assets/loading-C810LASV.js", "/assets/nav-chevrons-CSVvCjJa.js", "/assets/revalidation-ws-De6AS3e6.js", "/assets/mdx-DH55rolp.js", "/assets/online-Cf3nj5JR.js", "/assets/seo-t5J-DRxw.js", "/assets/progress-BP5cLKuW.js", "/assets/index-8yBq10sZ.js", "/assets/user-BQ8D2Fty.js", "/assets/workshop-config-5VcXxeyp.js", "/assets/clsx-B-dksMZM.js", "/assets/index-Bp_2FjuO.js", "/assets/progress-bar-BagX2z6n.js", "/assets/pe-DoDyGTeN.js", "/assets/tooltip-CTw4ab49.js"], "css": ["/assets/epic-video-D2Xftn6t.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/index": { "id": "routes/_app+/index", "parentId": "routes/_app+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": true, "module": "/assets/index-CS_uCg-3.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/index-_jNKXw67.js", "/assets/epic-video-CRkBFsAC.js", "/assets/error-boundary-bzCOyChj.js", "/assets/mdx-DH55rolp.js", "/assets/misc-DsJGqoYt.js", "/assets/progress-BP5cLKuW.js", "/assets/index-8yBq10sZ.js", "/assets/tooltip-CTw4ab49.js", "/assets/index-Bp_2FjuO.js", "/assets/pe-DoDyGTeN.js", "/assets/online-Cf3nj5JR.js", "/assets/loading-C810LASV.js", "/assets/user-BQ8D2Fty.js", "/assets/workshop-config-5VcXxeyp.js", "/assets/clsx-B-dksMZM.js", "/assets/progress-bar-BagX2z6n.js"], "css": ["/assets/epic-video-D2Xftn6t.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/l": { "id": "routes/_app+/l", "parentId": "routes/_app+/_layout", "path": "l", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/l-D9C1VDbZ.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/login": { "id": "routes/_app+/login", "parentId": "routes/_app+/_layout", "path": "login", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/login-CQRwgkfM.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/use-event-source-DDlZtAwc.js", "/assets/button-BoJWEKHp.js", "/assets/loading-C810LASV.js", "/assets/product-B3wkyL3-.js", "/assets/workshop-config-5VcXxeyp.js", "/assets/index-8yBq10sZ.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-DsJGqoYt.js", "/assets/tooltip-CTw4ab49.js", "/assets/index-Bp_2FjuO.js", "/assets/pe-DoDyGTeN.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/preferences": { "id": "routes/_app+/preferences", "parentId": "routes/_app+/_layout", "path": "preferences", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/preferences-eb0Opp1D.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/button-BoJWEKHp.js", "/assets/misc-DsJGqoYt.js", "/assets/tooltip-CTw4ab49.js", "/assets/clsx-B-dksMZM.js", "/assets/index-Bp_2FjuO.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/support": { "id": "routes/_app+/support", "parentId": "routes/_app+/_layout", "path": "support", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/support-BnsTkkCH.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/_app+/workspace-structure": { "id": "routes/_app+/workspace-structure", "parentId": "routes/_app+/_layout", "path": "workspace-structure", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/workspace-structure-BU7brX4_.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/button-BoJWEKHp.js", "/assets/clsx-B-dksMZM.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/admin+/_layout": { "id": "routes/admin+/_layout", "parentId": "root", "path": "admin", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/_layout-B3FchrR9.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/admin+/apps": { "id": "routes/admin+/apps", "parentId": "routes/admin+/_layout", "path": "apps", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/apps-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/admin+/cache": { "id": "routes/admin+/cache", "parentId": "routes/admin+/_layout", "path": "cache", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/cache-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/admin+/index": { "id": "routes/admin+/index", "parentId": "routes/admin+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/index-Dqd5qiWh.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/misc-DsJGqoYt.js", "/assets/tooltip-CTw4ab49.js", "/assets/progress-BP5cLKuW.js", "/assets/clsx-B-dksMZM.js", "/assets/index-Bp_2FjuO.js", "/assets/pe-DoDyGTeN.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/admin+/notifications": { "id": "routes/admin+/notifications", "parentId": "routes/admin+/_layout", "path": "notifications", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/notifications-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/admin+/version": { "id": "routes/admin+/version", "parentId": "routes/admin+/_layout", "path": "version", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/version-CG_ZHfTC.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/workshop-config-5VcXxeyp.js"], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/apps": { "id": "routes/apps", "parentId": "root", "path": "apps", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/apps-DP2rzg_V.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/diff": { "id": "routes/diff", "parentId": "root", "path": "diff", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/diff-CxZ19SOv.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/misc-DsJGqoYt.js", "/assets/diff-C1wUPjJK.js", "/assets/nav-chevrons-CSVvCjJa.js", "/assets/clsx-B-dksMZM.js", "/assets/accordion-DBvaz78c.js", "/assets/tooltip-CTw4ab49.js", "/assets/index-Bp_2FjuO.js", "/assets/index-DPhEf4uN.js", "/assets/index-CtnHrWrs.js", "/assets/mdx-DH55rolp.js", "/assets/epic-video-CRkBFsAC.js", "/assets/index-8yBq10sZ.js", "/assets/pe-DoDyGTeN.js", "/assets/online-Cf3nj5JR.js", "/assets/loading-C810LASV.js", "/assets/user-BQ8D2Fty.js", "/assets/workshop-config-5VcXxeyp.js", "/assets/progress-bar-BagX2z6n.js", "/assets/revalidation-ws-De6AS3e6.js"], "css": ["/assets/epic-video-D2Xftn6t.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/exercises": { "id": "routes/exercises", "parentId": "root", "path": "exercises", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/exercises-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/launch-editor": { "id": "routes/launch-editor", "parentId": "root", "path": "launch-editor", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/launch-editor-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/login-sse": { "id": "routes/login-sse", "parentId": "root", "path": "login-sse", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/login-sse-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/og": { "id": "routes/og", "parentId": "root", "path": "og", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/og-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/onboarding": { "id": "routes/onboarding", "parentId": "root", "path": "onboarding", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/onboarding-CyHu3NPX.js", "imports": ["/assets/chunk-QMGIS6GS-CG5cA6CX.js", "/assets/jsx-runtime-EKYJJIwR.js", "/assets/button-BoJWEKHp.js", "/assets/epic-video-CRkBFsAC.js", "/assets/clsx-B-dksMZM.js", "/assets/index-8yBq10sZ.js", "/assets/misc-DsJGqoYt.js", "/assets/tooltip-CTw4ab49.js", "/assets/index-Bp_2FjuO.js", "/assets/pe-DoDyGTeN.js", "/assets/online-Cf3nj5JR.js", "/assets/loading-C810LASV.js", "/assets/user-BQ8D2Fty.js", "/assets/workshop-config-5VcXxeyp.js"], "css": ["/assets/epic-video-D2Xftn6t.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/processes": { "id": "routes/processes", "parentId": "root", "path": "processes", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/processes-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/progress": { "id": "routes/progress", "parentId": "root", "path": "progress", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/progress-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/robots[.]txt": { "id": "routes/robots[.]txt", "parentId": "root", "path": "robots.txt", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/robots_._txt-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/set-playground": { "id": "routes/set-playground", "parentId": "root", "path": "set-playground", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/set-playground-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/sitemap[.]xml": { "id": "routes/sitemap[.]xml", "parentId": "root", "path": "sitemap.xml", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/sitemap_._xml-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/start": { "id": "routes/start", "parentId": "root", "path": "start", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/start-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/test": { "id": "routes/test", "parentId": "root", "path": "test", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/test-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/theme/index": { "id": "routes/theme/index", "parentId": "root", "path": "theme", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/index-DP2rzg_V.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/video-player/index": { "id": "routes/video-player/index", "parentId": "root", "path": "video-player", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasErrorBoundary": false, "module": "/assets/index-K6Dvbx-E.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 } }, "url": "/assets/manifest-eb55e374.js", "version": "eb55e374", "sri": void 0 };
11483
11769
  const assetsBuildDirectory = "build/client";
11484
11770
  const basename = "/";
11485
11771
  const future = { "unstable_middleware": false, "unstable_optimizeDeps": false, "unstable_splitRouteModules": false, "unstable_subResourceIntegrity": false, "unstable_viteEnvironmentApi": false };
@@ -11706,13 +11992,21 @@ const routes = {
11706
11992
  caseSensitive: void 0,
11707
11993
  module: route26
11708
11994
  },
11995
+ "routes/_app+/workspace-structure": {
11996
+ id: "routes/_app+/workspace-structure",
11997
+ parentId: "routes/_app+/_layout",
11998
+ path: "workspace-structure",
11999
+ index: void 0,
12000
+ caseSensitive: void 0,
12001
+ module: route27
12002
+ },
11709
12003
  "routes/admin+/_layout": {
11710
12004
  id: "routes/admin+/_layout",
11711
12005
  parentId: "root",
11712
12006
  path: "admin",
11713
12007
  index: void 0,
11714
12008
  caseSensitive: void 0,
11715
- module: route27
12009
+ module: route28
11716
12010
  },
11717
12011
  "routes/admin+/apps": {
11718
12012
  id: "routes/admin+/apps",
@@ -11720,7 +12014,7 @@ const routes = {
11720
12014
  path: "apps",
11721
12015
  index: void 0,
11722
12016
  caseSensitive: void 0,
11723
- module: route28
12017
+ module: route29
11724
12018
  },
11725
12019
  "routes/admin+/cache": {
11726
12020
  id: "routes/admin+/cache",
@@ -11728,7 +12022,7 @@ const routes = {
11728
12022
  path: "cache",
11729
12023
  index: void 0,
11730
12024
  caseSensitive: void 0,
11731
- module: route29
12025
+ module: route30
11732
12026
  },
11733
12027
  "routes/admin+/index": {
11734
12028
  id: "routes/admin+/index",
@@ -11736,7 +12030,7 @@ const routes = {
11736
12030
  path: void 0,
11737
12031
  index: true,
11738
12032
  caseSensitive: void 0,
11739
- module: route30
12033
+ module: route31
11740
12034
  },
11741
12035
  "routes/admin+/notifications": {
11742
12036
  id: "routes/admin+/notifications",
@@ -11744,7 +12038,7 @@ const routes = {
11744
12038
  path: "notifications",
11745
12039
  index: void 0,
11746
12040
  caseSensitive: void 0,
11747
- module: route31
12041
+ module: route32
11748
12042
  },
11749
12043
  "routes/admin+/version": {
11750
12044
  id: "routes/admin+/version",
@@ -11752,7 +12046,7 @@ const routes = {
11752
12046
  path: "version",
11753
12047
  index: void 0,
11754
12048
  caseSensitive: void 0,
11755
- module: route32
12049
+ module: route33
11756
12050
  },
11757
12051
  "routes/apps": {
11758
12052
  id: "routes/apps",
@@ -11760,7 +12054,7 @@ const routes = {
11760
12054
  path: "apps",
11761
12055
  index: void 0,
11762
12056
  caseSensitive: void 0,
11763
- module: route33
12057
+ module: route34
11764
12058
  },
11765
12059
  "routes/diff": {
11766
12060
  id: "routes/diff",
@@ -11768,7 +12062,7 @@ const routes = {
11768
12062
  path: "diff",
11769
12063
  index: void 0,
11770
12064
  caseSensitive: void 0,
11771
- module: route34
12065
+ module: route35
11772
12066
  },
11773
12067
  "routes/exercises": {
11774
12068
  id: "routes/exercises",
@@ -11776,7 +12070,7 @@ const routes = {
11776
12070
  path: "exercises",
11777
12071
  index: void 0,
11778
12072
  caseSensitive: void 0,
11779
- module: route35
12073
+ module: route36
11780
12074
  },
11781
12075
  "routes/launch-editor": {
11782
12076
  id: "routes/launch-editor",
@@ -11784,7 +12078,7 @@ const routes = {
11784
12078
  path: "launch-editor",
11785
12079
  index: void 0,
11786
12080
  caseSensitive: void 0,
11787
- module: route36
12081
+ module: route37
11788
12082
  },
11789
12083
  "routes/login-sse": {
11790
12084
  id: "routes/login-sse",
@@ -11792,7 +12086,7 @@ const routes = {
11792
12086
  path: "login-sse",
11793
12087
  index: void 0,
11794
12088
  caseSensitive: void 0,
11795
- module: route37
12089
+ module: route38
11796
12090
  },
11797
12091
  "routes/og": {
11798
12092
  id: "routes/og",
@@ -11800,7 +12094,7 @@ const routes = {
11800
12094
  path: "og",
11801
12095
  index: void 0,
11802
12096
  caseSensitive: void 0,
11803
- module: route38
12097
+ module: route39
11804
12098
  },
11805
12099
  "routes/onboarding": {
11806
12100
  id: "routes/onboarding",
@@ -11808,7 +12102,7 @@ const routes = {
11808
12102
  path: "onboarding",
11809
12103
  index: void 0,
11810
12104
  caseSensitive: void 0,
11811
- module: route39
12105
+ module: route40
11812
12106
  },
11813
12107
  "routes/processes": {
11814
12108
  id: "routes/processes",
@@ -11816,7 +12110,7 @@ const routes = {
11816
12110
  path: "processes",
11817
12111
  index: void 0,
11818
12112
  caseSensitive: void 0,
11819
- module: route40
12113
+ module: route41
11820
12114
  },
11821
12115
  "routes/progress": {
11822
12116
  id: "routes/progress",
@@ -11824,7 +12118,7 @@ const routes = {
11824
12118
  path: "progress",
11825
12119
  index: void 0,
11826
12120
  caseSensitive: void 0,
11827
- module: route41
12121
+ module: route42
11828
12122
  },
11829
12123
  "routes/robots[.]txt": {
11830
12124
  id: "routes/robots[.]txt",
@@ -11832,7 +12126,7 @@ const routes = {
11832
12126
  path: "robots.txt",
11833
12127
  index: void 0,
11834
12128
  caseSensitive: void 0,
11835
- module: route42
12129
+ module: route43
11836
12130
  },
11837
12131
  "routes/set-playground": {
11838
12132
  id: "routes/set-playground",
@@ -11840,7 +12134,7 @@ const routes = {
11840
12134
  path: "set-playground",
11841
12135
  index: void 0,
11842
12136
  caseSensitive: void 0,
11843
- module: route43
12137
+ module: route44
11844
12138
  },
11845
12139
  "routes/sitemap[.]xml": {
11846
12140
  id: "routes/sitemap[.]xml",
@@ -11848,7 +12142,7 @@ const routes = {
11848
12142
  path: "sitemap.xml",
11849
12143
  index: void 0,
11850
12144
  caseSensitive: void 0,
11851
- module: route44
12145
+ module: route45
11852
12146
  },
11853
12147
  "routes/start": {
11854
12148
  id: "routes/start",
@@ -11856,7 +12150,7 @@ const routes = {
11856
12150
  path: "start",
11857
12151
  index: void 0,
11858
12152
  caseSensitive: void 0,
11859
- module: route45
12153
+ module: route46
11860
12154
  },
11861
12155
  "routes/test": {
11862
12156
  id: "routes/test",
@@ -11864,7 +12158,7 @@ const routes = {
11864
12158
  path: "test",
11865
12159
  index: void 0,
11866
12160
  caseSensitive: void 0,
11867
- module: route46
12161
+ module: route47
11868
12162
  },
11869
12163
  "routes/theme/index": {
11870
12164
  id: "routes/theme/index",
@@ -11872,7 +12166,7 @@ const routes = {
11872
12166
  path: "theme",
11873
12167
  index: void 0,
11874
12168
  caseSensitive: void 0,
11875
- module: route47
12169
+ module: route48
11876
12170
  },
11877
12171
  "routes/video-player/index": {
11878
12172
  id: "routes/video-player/index",
@@ -11880,7 +12174,7 @@ const routes = {
11880
12174
  path: "video-player",
11881
12175
  index: void 0,
11882
12176
  caseSensitive: void 0,
11883
- module: route48
12177
+ module: route49
11884
12178
  }
11885
12179
  };
11886
12180
  export {