@epic-web/workshop-app 5.1.1 → 5.2.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 (165) hide show
  1. package/build/client/assets/{_-ZHCWB__B.js → _-CWSCXcBv.js} +2 -2
  2. package/build/client/assets/{_-ZHCWB__B.js.map → _-CWSCXcBv.js.map} +1 -1
  3. package/build/client/assets/{_exerciseNumber-BFTlBdr4.js → _exerciseNumber-D6KsriIk.js} +2 -2
  4. package/build/client/assets/_exerciseNumber-D6KsriIk.js.map +1 -0
  5. package/build/client/assets/{_exerciseNumber_._stepNumber-_687iGFh.js → _exerciseNumber_._stepNumber-BA2Xhzqs.js} +2 -2
  6. package/build/client/assets/_exerciseNumber_._stepNumber-BA2Xhzqs.js.map +1 -0
  7. package/build/client/assets/{_exerciseNumber_.finished-BEfn-nJi.js → _exerciseNumber_.finished-DEzaS_Ji.js} +2 -2
  8. package/build/client/assets/_exerciseNumber_.finished-DEzaS_Ji.js.map +1 -0
  9. package/build/client/assets/{_layout-Cfbi6StB.js → _layout-88n0To1b.js} +2 -2
  10. package/build/client/assets/{_layout-Cfbi6StB.js.map → _layout-88n0To1b.js.map} +1 -1
  11. package/build/client/assets/{_layout-BriOqd2R.js → _layout-C5yGKUmm.js} +2 -2
  12. package/build/client/assets/_layout-C5yGKUmm.js.map +1 -0
  13. package/build/client/assets/{_layout-frPHZWgR.js → _layout-T2hZtl0D.js} +2 -2
  14. package/build/client/assets/_layout-T2hZtl0D.js.map +1 -0
  15. package/build/client/assets/{_layout-BLJr2x2F.js → _layout-gyrNluke.js} +2 -2
  16. package/build/client/assets/_layout-gyrNluke.js.map +1 -0
  17. package/build/client/assets/{accordion-DuE9VejZ.js → accordion-DC885Li1.js} +2 -2
  18. package/build/client/assets/{accordion-DuE9VejZ.js.map → accordion-DC885Li1.js.map} +1 -1
  19. package/build/client/assets/{account-DDuV9rZX.js → account-CPFwPYf1.js} +2 -2
  20. package/build/client/assets/account-CPFwPYf1.js.map +1 -0
  21. package/build/client/assets/app-CM8yuYni.js +2 -0
  22. package/build/client/assets/app-CM8yuYni.js.map +1 -0
  23. package/build/client/assets/{button-CMkJ8p0a.js → button-DQ001ob0.js} +2 -2
  24. package/build/client/assets/{button-CMkJ8p0a.js.map → button-DQ001ob0.js.map} +1 -1
  25. package/build/client/assets/components-9EGYHTc_.js +158 -0
  26. package/build/client/assets/components-9EGYHTc_.js.map +1 -0
  27. package/build/client/assets/{diff-B6thd_Sf.js → diff-assn_bSK.js} +2 -2
  28. package/build/client/assets/{diff-B6thd_Sf.js.map → diff-assn_bSK.js.map} +1 -1
  29. package/build/client/assets/diff-jlCv3hv0.js +2 -0
  30. package/build/client/assets/diff-jlCv3hv0.js.map +1 -0
  31. package/build/client/assets/{discord-C9bVfiZ6.js → discord-CHsbqaqM.js} +2 -2
  32. package/build/client/assets/discord-CHsbqaqM.js.map +1 -0
  33. package/build/client/assets/discord-DoeazikD.js +2 -0
  34. package/build/client/assets/discord-DoeazikD.js.map +1 -0
  35. package/build/client/assets/entry.client-BTYTUpFV.js +44 -0
  36. package/build/client/assets/entry.client-BTYTUpFV.js.map +1 -0
  37. package/build/client/assets/epic-video-GDpD7_Qt.js +3053 -0
  38. package/build/client/assets/epic-video-GDpD7_Qt.js.map +1 -0
  39. package/build/client/assets/{error-boundary-BcGxKpte.js → error-boundary-1-dmC941.js} +2 -2
  40. package/build/client/assets/{error-boundary-BcGxKpte.js.map → error-boundary-1-dmC941.js.map} +1 -1
  41. package/build/client/assets/{finished-C2dgX1d-.js → finished-DVV0zwmP.js} +2 -2
  42. package/build/client/assets/finished-DVV0zwmP.js.map +1 -0
  43. package/build/client/assets/{index-DBrRQJxF.js → index-BCxBKsqT.js} +2 -2
  44. package/build/client/assets/{index-DBrRQJxF.js.map → index-BCxBKsqT.js.map} +1 -1
  45. package/build/client/assets/index-BFGhCX_U.js +38 -0
  46. package/build/client/assets/index-BFGhCX_U.js.map +1 -0
  47. package/build/client/assets/index-BuA_RWlU.js +2 -0
  48. package/build/client/assets/index-BuA_RWlU.js.map +1 -0
  49. package/build/client/assets/index-BuoaxPEj.js +42 -0
  50. package/build/client/assets/index-BuoaxPEj.js.map +1 -0
  51. package/build/client/assets/index-CmmC-_8P.js +2 -0
  52. package/build/client/assets/index-CmmC-_8P.js.map +1 -0
  53. package/build/client/assets/{index-YtpQLUzj.js → index-DRH72MzK.js} +2 -2
  54. package/build/client/assets/{index-YtpQLUzj.js.map → index-DRH72MzK.js.map} +1 -1
  55. package/build/client/assets/{index-CuV1bRbu.js → index-KgMLc41c.js} +2 -2
  56. package/build/client/assets/index-KgMLc41c.js.map +1 -0
  57. package/build/client/assets/index-_J-F_Dnc.js +36 -0
  58. package/build/client/assets/index-_J-F_Dnc.js.map +1 -0
  59. package/build/client/assets/{loading-Br41_Pbf.js → loading-Dk0n07O3.js} +2 -2
  60. package/build/client/assets/{loading-Br41_Pbf.js.map → loading-Dk0n07O3.js.map} +1 -1
  61. package/build/client/assets/{login-kjV7hrVt.js → login-pZYDEC_l.js} +2 -2
  62. package/build/client/assets/login-pZYDEC_l.js.map +1 -0
  63. package/build/client/assets/{manifest-b22910a7.js → manifest-c9f53a94.js} +1 -1
  64. package/build/client/assets/mdx-hW1uYjc1.js +2 -0
  65. package/build/client/assets/mdx-hW1uYjc1.js.map +1 -0
  66. package/build/client/assets/misc-BJtHv_Jh.js +2 -0
  67. package/build/client/assets/misc-BJtHv_Jh.js.map +1 -0
  68. package/build/client/assets/{nav-chevrons-DYiI8EMU.js → nav-chevrons-CgbSMLeb.js} +2 -2
  69. package/build/client/assets/{nav-chevrons-DYiI8EMU.js.map → nav-chevrons-CgbSMLeb.js.map} +1 -1
  70. package/build/client/assets/{onboarding-B4Z_yevk.js → onboarding-DCuSqnkZ.js} +2 -2
  71. package/build/client/assets/onboarding-DCuSqnkZ.js.map +1 -0
  72. package/build/client/assets/{pe-CvPIToj6.js → pe-ChIwTk8v.js} +2 -2
  73. package/build/client/assets/pe-ChIwTk8v.js.map +1 -0
  74. package/build/client/assets/presence-CdyMdOKk.js +28 -0
  75. package/build/client/assets/presence-CdyMdOKk.js.map +1 -0
  76. package/build/client/assets/{preview-DZcdG4kw.js → preview-CW_12I0i.js} +2 -2
  77. package/build/client/assets/preview-CW_12I0i.js.map +1 -0
  78. package/build/client/assets/{product-mjsTrqXs.js → product-C1ynnrN_.js} +2 -2
  79. package/build/client/assets/{product-mjsTrqXs.js.map → product-C1ynnrN_.js.map} +1 -1
  80. package/build/client/assets/progress-DAB3nDa2.js +2 -0
  81. package/build/client/assets/progress-DAB3nDa2.js.map +1 -0
  82. package/build/client/assets/{progress-bar-F8_2mvYp.js → progress-bar-Cj5R4Zk7.js} +2 -2
  83. package/build/client/assets/{progress-bar-F8_2mvYp.js.map → progress-bar-Cj5R4Zk7.js.map} +1 -1
  84. package/build/client/assets/{request-info-DGnmXtfj.js → request-info-DCIQLE6H.js} +2 -2
  85. package/build/client/assets/{request-info-DGnmXtfj.js.map → request-info-DCIQLE6H.js.map} +1 -1
  86. package/build/client/assets/{revalidation-ws-DcvYvzyj.js → revalidation-ws-DU-PzW-_.js} +2 -2
  87. package/build/client/assets/{revalidation-ws-DcvYvzyj.js.map → revalidation-ws-DU-PzW-_.js.map} +1 -1
  88. package/build/client/assets/{root-Cl86OUog.js → root-DojjHZlY.js} +4 -4
  89. package/build/client/assets/root-DojjHZlY.js.map +1 -0
  90. package/build/client/assets/set-playground-S_rIwJAa.js +2 -0
  91. package/build/client/assets/set-playground-S_rIwJAa.js.map +1 -0
  92. package/build/client/assets/{support-B0E_F4Zh.js → support-BNS-kEhc.js} +2 -2
  93. package/build/client/assets/{support-B0E_F4Zh.js.map → support-BNS-kEhc.js.map} +1 -1
  94. package/build/client/assets/tailwind-B5AAMtGC.css +1 -0
  95. package/build/client/assets/test-CtH75Laz.js +2 -0
  96. package/build/client/assets/test-CtH75Laz.js.map +1 -0
  97. package/build/client/assets/{tests-BeAEgPAw.js → tests-CTs57UUU.js} +2 -2
  98. package/build/client/assets/tests-CTs57UUU.js.map +1 -0
  99. package/build/client/assets/tooltip-BgynKV2c.js +2 -0
  100. package/build/client/assets/tooltip-BgynKV2c.js.map +1 -0
  101. package/build/client/assets/use-event-source-x59d4R2Z.js +2 -0
  102. package/build/client/assets/use-event-source-x59d4R2Z.js.map +1 -0
  103. package/build/client/assets/{user-Boua6jiU.js → user-BBryXlM_.js} +2 -2
  104. package/build/client/assets/{user-Boua6jiU.js.map → user-BBryXlM_.js.map} +1 -1
  105. package/build/client/assets/{workshop-config-Ce9sSc3I.js → workshop-config-DJY2cXU_.js} +2 -2
  106. package/build/client/assets/{workshop-config-Ce9sSc3I.js.map → workshop-config-DJY2cXU_.js.map} +1 -1
  107. package/build/server/index.js +253 -238
  108. package/build/server/index.js.map +1 -1
  109. package/dist/server/index.js +7 -14
  110. package/package.json +68 -73
  111. package/build/client/assets/_exerciseNumber-BFTlBdr4.js.map +0 -1
  112. package/build/client/assets/_exerciseNumber_._stepNumber-_687iGFh.js.map +0 -1
  113. package/build/client/assets/_exerciseNumber_.finished-BEfn-nJi.js.map +0 -1
  114. package/build/client/assets/_layout-BLJr2x2F.js.map +0 -1
  115. package/build/client/assets/_layout-BriOqd2R.js.map +0 -1
  116. package/build/client/assets/_layout-frPHZWgR.js.map +0 -1
  117. package/build/client/assets/account-DDuV9rZX.js.map +0 -1
  118. package/build/client/assets/app-wbMCZEiv.js +0 -2
  119. package/build/client/assets/app-wbMCZEiv.js.map +0 -1
  120. package/build/client/assets/components-DZ8XIeZ3.js +0 -166
  121. package/build/client/assets/components-DZ8XIeZ3.js.map +0 -1
  122. package/build/client/assets/diff-BEk79KPK.js +0 -2
  123. package/build/client/assets/diff-BEk79KPK.js.map +0 -1
  124. package/build/client/assets/discord-C9bVfiZ6.js.map +0 -1
  125. package/build/client/assets/discord-DYeU0QX6.js +0 -2
  126. package/build/client/assets/discord-DYeU0QX6.js.map +0 -1
  127. package/build/client/assets/entry.client-CW5CUf_W.js +0 -43
  128. package/build/client/assets/entry.client-CW5CUf_W.js.map +0 -1
  129. package/build/client/assets/epic-video-bs7WmhbC.js +0 -2988
  130. package/build/client/assets/epic-video-bs7WmhbC.js.map +0 -1
  131. package/build/client/assets/finished-C2dgX1d-.js.map +0 -1
  132. package/build/client/assets/index-BczhSZ3e.js +0 -2
  133. package/build/client/assets/index-BczhSZ3e.js.map +0 -1
  134. package/build/client/assets/index-BjNhezSK.js +0 -42
  135. package/build/client/assets/index-BjNhezSK.js.map +0 -1
  136. package/build/client/assets/index-BvihEwfB.js +0 -36
  137. package/build/client/assets/index-BvihEwfB.js.map +0 -1
  138. package/build/client/assets/index-C2yr7Uiu.js +0 -2
  139. package/build/client/assets/index-C2yr7Uiu.js.map +0 -1
  140. package/build/client/assets/index-CuV1bRbu.js.map +0 -1
  141. package/build/client/assets/index-DF_XBInP.js +0 -37
  142. package/build/client/assets/index-DF_XBInP.js.map +0 -1
  143. package/build/client/assets/login-kjV7hrVt.js.map +0 -1
  144. package/build/client/assets/mdx-CRxPouxB.js +0 -2
  145. package/build/client/assets/mdx-CRxPouxB.js.map +0 -1
  146. package/build/client/assets/misc-BE75ioh8.js +0 -2
  147. package/build/client/assets/misc-BE75ioh8.js.map +0 -1
  148. package/build/client/assets/onboarding-B4Z_yevk.js.map +0 -1
  149. package/build/client/assets/pe-CvPIToj6.js.map +0 -1
  150. package/build/client/assets/presence-Dd98AJ_5.js +0 -28
  151. package/build/client/assets/presence-Dd98AJ_5.js.map +0 -1
  152. package/build/client/assets/preview-DZcdG4kw.js.map +0 -1
  153. package/build/client/assets/progress-Co-59mG2.js +0 -2
  154. package/build/client/assets/progress-Co-59mG2.js.map +0 -1
  155. package/build/client/assets/root-Cl86OUog.js.map +0 -1
  156. package/build/client/assets/set-playground-pMKmtPtz.js +0 -2
  157. package/build/client/assets/set-playground-pMKmtPtz.js.map +0 -1
  158. package/build/client/assets/tailwind-B9pSujyx.css +0 -1
  159. package/build/client/assets/test-B6zIK2V6.js +0 -2
  160. package/build/client/assets/test-B6zIK2V6.js.map +0 -1
  161. package/build/client/assets/tests-BeAEgPAw.js.map +0 -1
  162. package/build/client/assets/tooltip-6-WS-Xux.js +0 -2
  163. package/build/client/assets/tooltip-6-WS-Xux.js.map +0 -1
  164. package/build/client/assets/use-event-source-CCGBLG92.js +0 -2
  165. package/build/client/assets/use-event-source-CCGBLG92.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{a as i,b as a,j as o,i as c}from"./index-DF_XBInP.js";import{g as m}from"./misc-BE75ioh8.js";function f({defaultStatusHandler:s=({error:r})=>o.jsxs("p",{children:[r.status," ",r.data]}),statusHandlers:e,unexpectedErrorHandler:t=r=>o.jsx("p",{children:m(r)})}){const r=i(),n=a();return typeof document<"u"&&console.error(r),o.jsx("div",{className:"container flex items-center justify-center p-20 text-h2",children:c(r)?((e==null?void 0:e[r.status])??s)({error:r,params:n}):t(r)})}export{f as G};
2
- //# sourceMappingURL=error-boundary-BcGxKpte.js.map
1
+ import{a as i,b as a,j as o,i as c}from"./index-BFGhCX_U.js";import{g as m}from"./misc-BJtHv_Jh.js";function f({defaultStatusHandler:s=({error:r})=>o.jsxs("p",{children:[r.status," ",r.data]}),statusHandlers:e,unexpectedErrorHandler:t=r=>o.jsx("p",{children:m(r)})}){const r=i(),n=a();return typeof document<"u"&&console.error(r),o.jsx("div",{className:"container flex items-center justify-center p-20 text-h2",children:c(r)?((e==null?void 0:e[r.status])??s)({error:r,params:n}):t(r)})}export{f as G};
2
+ //# sourceMappingURL=error-boundary-1-dmC941.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"error-boundary-BcGxKpte.js","sources":["../../../app/components/error-boundary.tsx"],"sourcesContent":["import {\n\tisRouteErrorResponse,\n\tuseParams,\n\tuseRouteError,\n\ttype ErrorResponse,\n} from '@remix-run/react'\nimport { getErrorMessage } from '#app/utils/misc.tsx'\n\ntype StatusHandler = (info: {\n\terror: ErrorResponse\n\tparams: Record<string, string | undefined>\n}) => React.ReactNode | null\n\nexport function GeneralErrorBoundary({\n\tdefaultStatusHandler = ({ error }) => (\n\t\t<p>\n\t\t\t{error.status} {error.data}\n\t\t</p>\n\t),\n\tstatusHandlers,\n\tunexpectedErrorHandler = (error) => <p>{getErrorMessage(error)}</p>,\n}: {\n\tdefaultStatusHandler?: StatusHandler\n\tstatusHandlers?: Record<number, StatusHandler>\n\tunexpectedErrorHandler?: (error: unknown) => React.ReactNode | null\n}) {\n\tconst error = useRouteError()\n\tconst params = useParams()\n\n\tif (typeof document !== 'undefined') {\n\t\tconsole.error(error)\n\t}\n\n\treturn (\n\t\t<div className=\"container flex items-center justify-center p-20 text-h2\">\n\t\t\t{isRouteErrorResponse(error)\n\t\t\t\t? (statusHandlers?.[error.status] ?? defaultStatusHandler)({\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tparams,\n\t\t\t\t\t})\n\t\t\t\t: unexpectedErrorHandler(error)}\n\t\t</div>\n\t)\n}\n"],"names":["GeneralErrorBoundary","defaultStatusHandler","error","statusHandlers","unexpectedErrorHandler","getErrorMessage","useRouteError","params","useParams","jsx","isRouteErrorResponse"],"mappings":"oGAaO,SAASA,EAAqB,CACpC,qBAAAC,EAAuB,CAAC,CAAE,MAAAC,CAAM,WAC9B,IACC,CAAA,SAAA,CAAMA,EAAA,OAAO,IAAEA,EAAM,IAAA,EACvB,EAED,eAAAC,EACA,uBAAAC,EAA0BF,SAAW,IAAG,CAAA,SAAAG,EAAgBH,CAAK,EAAE,CAChE,EAIG,CACF,MAAMA,EAAQI,IACRC,EAASC,IAEX,OAAA,OAAO,SAAa,KACvB,QAAQ,MAAMN,CAAK,EAInBO,EAAA,IAAC,MAAI,CAAA,UAAU,0DACb,SAAAC,EAAqBR,CAAK,IACvBC,GAAA,YAAAA,EAAiBD,EAAM,UAAWD,GAAsB,CACzD,MAAAC,EACA,OAAAK,CACA,CAAA,EACAH,EAAuBF,CAAK,CAChC,CAAA,CAEF"}
1
+ {"version":3,"file":"error-boundary-1-dmC941.js","sources":["../../../app/components/error-boundary.tsx"],"sourcesContent":["import {\n\tisRouteErrorResponse,\n\tuseParams,\n\tuseRouteError,\n\ttype ErrorResponse,\n} from '@remix-run/react'\nimport { getErrorMessage } from '#app/utils/misc.tsx'\n\ntype StatusHandler = (info: {\n\terror: ErrorResponse\n\tparams: Record<string, string | undefined>\n}) => React.ReactNode | null\n\nexport function GeneralErrorBoundary({\n\tdefaultStatusHandler = ({ error }) => (\n\t\t<p>\n\t\t\t{error.status} {error.data}\n\t\t</p>\n\t),\n\tstatusHandlers,\n\tunexpectedErrorHandler = (error) => <p>{getErrorMessage(error)}</p>,\n}: {\n\tdefaultStatusHandler?: StatusHandler\n\tstatusHandlers?: Record<number, StatusHandler>\n\tunexpectedErrorHandler?: (error: unknown) => React.ReactNode | null\n}) {\n\tconst error = useRouteError()\n\tconst params = useParams()\n\n\tif (typeof document !== 'undefined') {\n\t\tconsole.error(error)\n\t}\n\n\treturn (\n\t\t<div className=\"container flex items-center justify-center p-20 text-h2\">\n\t\t\t{isRouteErrorResponse(error)\n\t\t\t\t? (statusHandlers?.[error.status] ?? defaultStatusHandler)({\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tparams,\n\t\t\t\t\t})\n\t\t\t\t: unexpectedErrorHandler(error)}\n\t\t</div>\n\t)\n}\n"],"names":["GeneralErrorBoundary","defaultStatusHandler","error","statusHandlers","unexpectedErrorHandler","getErrorMessage","useRouteError","params","useParams","jsx","isRouteErrorResponse"],"mappings":"oGAaO,SAASA,EAAqB,CACpC,qBAAAC,EAAuB,CAAC,CAAE,MAAAC,CAAM,WAC9B,IACC,CAAA,SAAA,CAAMA,EAAA,OAAO,IAAEA,EAAM,IAAA,EACvB,EAED,eAAAC,EACA,uBAAAC,EAA0BF,SAAW,IAAG,CAAA,SAAAG,EAAgBH,CAAK,EAAE,CAChE,EAIG,CACF,MAAMA,EAAQI,IACRC,EAASC,IAEX,OAAA,OAAO,SAAa,KACvB,QAAQ,MAAMN,CAAK,EAInBO,EAAA,IAAC,MAAI,CAAA,UAAU,0DACb,SAAAC,EAAqBR,CAAK,IACvBC,GAAA,YAAAA,EAAiBD,EAAM,UAAWD,GAAsB,CACzD,MAAAC,EACA,OAAAK,CACA,CAAA,EACAH,EAAuBF,CAAK,CAChC,CAAA,CAEF"}
@@ -1,2 +1,2 @@
1
- import{j as e,r as t}from"./index-DF_XBInP.js";import{E as l}from"./index-DBrRQJxF.js";import{E as n}from"./epic-video-bs7WmhbC.js";import{L as a}from"./loading-Br41_Pbf.js";import{N as d}from"./nav-chevrons-DYiI8EMU.js";import{u as c}from"./revalidation-ws-DcvYvzyj.js";import{M as m,E as p}from"./mdx-CRxPouxB.js";import{a as f}from"./misc-BE75ioh8.js";import{g as h}from"./seo-pBpFCWsy.js";import{P as x}from"./progress-Co-59mG2.js";import{u,L as j}from"./components-DZ8XIeZ3.js";import"./index-BvihEwfB.js";import"./request-info-DGnmXtfj.js";import"./tooltip-6-WS-Xux.js";import"./pe-CvPIToj6.js";import"./user-Boua6jiU.js";import"./workshop-config-Ce9sSc3I.js";import"./progress-bar-F8_2mvYp.js";const H={getSitemapEntries:()=>[{route:"/finished"}]},U=({matches:s})=>{var i;const r=(i=s.find(o=>o.id==="root"))==null?void 0:i.data;return r?h({title:`🎉 ${r==null?void 0:r.workshopTitle}`,description:`Elaboration for ${r==null?void 0:r.workshopTitle}`,ogTitle:`Finished ${r==null?void 0:r.workshopTitle}`,ogDescription:"You finished! Time to submit feedback.",instructor:r.instructor,requestInfo:r.requestInfo}):[]},b={h1:()=>null};function z(){const s=u();return c({watchPaths:["./exercises/FINISHED.mdx"]}),e.jsx("div",{className:"flex h-full flex-grow flex-col",children:e.jsxs("main",{className:"grid h-full flex-grow grid-cols-1 grid-rows-2 lg:grid-cols-2 lg:grid-rows-1",children:[e.jsxs("div",{className:"relative col-span-1 row-span-1 flex h-full flex-col lg:border-r",children:[e.jsx("h1",{className:"h-14 border-b pl-10 pr-5 text-sm font-medium uppercase leading-none",children:e.jsx("div",{className:"flex h-14 flex-wrap items-center justify-between gap-x-2 py-2",children:e.jsxs("div",{className:"flex items-center justify-start gap-x-2",children:[e.jsx(j,{to:"/",className:"hover:underline",children:s.workshopTitle}),e.jsx("span",{children:"/"}),e.jsx("span",{children:"Elaboration"})]})})}),e.jsx("article",{className:"shadow-on-scrollbox h-full w-full max-w-none flex-1 scroll-pt-6 space-y-6 overflow-y-auto p-2 scrollbar-thin scrollbar-thumb-scrollbar sm:p-10 sm:pt-8",id:s.articleId,children:s.finishedCode?e.jsx(n,{epicVideoInfosPromise:s.epicVideoInfosPromise,children:e.jsx("div",{className:"prose dark:prose-invert sm:prose-lg",children:e.jsx(m,{code:s.finishedCode,components:b})})}):"No finished instructions yet..."}),e.jsx(l,{elementQuery:`#${s.articleId}`}),e.jsx(x,{type:"workshop-finished",className:"h-14 border-t px-6"}),e.jsxs("div",{className:"flex h-16 justify-between border-b-4 border-t lg:border-b-0",children:[e.jsx("div",{}),s.workshopFinished.status==="success"?e.jsx(p,{file:s.workshopFinished.file,relativePath:s.workshopFinished.relativePath}):null,e.jsx(d,{prev:s.prevStepLink,next:{to:"/"}})]})]}),e.jsx(g,{workshopTitle:s.workshopTitle,workshopFormEmbedUrl:s.workshopFormEmbedUrl})]})})}function g({workshopTitle:s,workshopFormEmbedUrl:r}){const[i,o]=t.useState(!1);return e.jsxs("div",{className:"relative flex-shrink-0",children:[i?null:e.jsx("div",{className:"absolute inset-0 z-10 flex items-center justify-center",children:e.jsx(a,{children:e.jsxs("span",{children:["Loading ",s," Elaboration form"]})})}),e.jsx("iframe",{onLoad:()=>o(!0),onError:()=>o(!0),title:"Elaboration",src:r,className:f("absolute inset-0 flex h-full w-full transition-opacity duration-300",i?"opacity-100":"opacity-0")})]})}export{z as default,H as handle,U as meta};
2
- //# sourceMappingURL=finished-C2dgX1d-.js.map
1
+ import{j as e,r as t}from"./index-BFGhCX_U.js";import{E as l}from"./index-BCxBKsqT.js";import{E as n}from"./epic-video-GDpD7_Qt.js";import{L as a}from"./loading-Dk0n07O3.js";import{N as d}from"./nav-chevrons-CgbSMLeb.js";import{u as c}from"./revalidation-ws-DU-PzW-_.js";import{M as m,E as p}from"./mdx-hW1uYjc1.js";import{a as f}from"./misc-BJtHv_Jh.js";import{g as h}from"./seo-pBpFCWsy.js";import{P as x}from"./progress-DAB3nDa2.js";import{u,L as j}from"./components-9EGYHTc_.js";import"./index-_J-F_Dnc.js";import"./request-info-DCIQLE6H.js";import"./tooltip-BgynKV2c.js";import"./pe-ChIwTk8v.js";import"./user-BBryXlM_.js";import"./workshop-config-DJY2cXU_.js";import"./progress-bar-Cj5R4Zk7.js";const H={getSitemapEntries:()=>[{route:"/finished"}]},U=({matches:s})=>{var i;const r=(i=s.find(o=>o.id==="root"))==null?void 0:i.data;return r?h({title:`🎉 ${r==null?void 0:r.workshopTitle}`,description:`Elaboration for ${r==null?void 0:r.workshopTitle}`,ogTitle:`Finished ${r==null?void 0:r.workshopTitle}`,ogDescription:"You finished! Time to submit feedback.",instructor:r.instructor,requestInfo:r.requestInfo}):[]},b={h1:()=>null};function z(){const s=u();return c({watchPaths:["./exercises/FINISHED.mdx"]}),e.jsx("div",{className:"flex h-full flex-grow flex-col",children:e.jsxs("main",{className:"grid h-full flex-grow grid-cols-1 grid-rows-2 lg:grid-cols-2 lg:grid-rows-1",children:[e.jsxs("div",{className:"relative col-span-1 row-span-1 flex h-full flex-col lg:border-r",children:[e.jsx("h1",{className:"h-14 border-b pl-10 pr-5 text-sm font-medium uppercase leading-none",children:e.jsx("div",{className:"flex h-14 flex-wrap items-center justify-between gap-x-2 py-2",children:e.jsxs("div",{className:"flex items-center justify-start gap-x-2",children:[e.jsx(j,{to:"/",className:"hover:underline",children:s.workshopTitle}),e.jsx("span",{children:"/"}),e.jsx("span",{children:"Elaboration"})]})})}),e.jsx("article",{className:"shadow-on-scrollbox h-full w-full max-w-none flex-1 scroll-pt-6 space-y-6 overflow-y-auto p-2 scrollbar-thin scrollbar-thumb-scrollbar sm:p-10 sm:pt-8",id:s.articleId,children:s.finishedCode?e.jsx(n,{epicVideoInfosPromise:s.epicVideoInfosPromise,children:e.jsx("div",{className:"prose dark:prose-invert sm:prose-lg",children:e.jsx(m,{code:s.finishedCode,components:b})})}):"No finished instructions yet..."}),e.jsx(l,{elementQuery:`#${s.articleId}`}),e.jsx(x,{type:"workshop-finished",className:"h-14 border-t px-6"}),e.jsxs("div",{className:"flex h-16 justify-between border-b-4 border-t lg:border-b-0",children:[e.jsx("div",{}),s.workshopFinished.status==="success"?e.jsx(p,{file:s.workshopFinished.file,relativePath:s.workshopFinished.relativePath}):null,e.jsx(d,{prev:s.prevStepLink,next:{to:"/"}})]})]}),e.jsx(g,{workshopTitle:s.workshopTitle,workshopFormEmbedUrl:s.workshopFormEmbedUrl})]})})}function g({workshopTitle:s,workshopFormEmbedUrl:r}){const[i,o]=t.useState(!1);return e.jsxs("div",{className:"relative flex-shrink-0",children:[i?null:e.jsx("div",{className:"absolute inset-0 z-10 flex items-center justify-center",children:e.jsx(a,{children:e.jsxs("span",{children:["Loading ",s," Elaboration form"]})})}),e.jsx("iframe",{onLoad:()=>o(!0),onError:()=>o(!0),title:"Elaboration",src:r,className:f("absolute inset-0 flex h-full w-full transition-opacity duration-300",i?"opacity-100":"opacity-0")})]})}export{z as default,H as handle,U as meta};
2
+ //# sourceMappingURL=finished-DVV0zwmP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finished-DVV0zwmP.js","sources":["../../../app/routes/_app+/finished.tsx"],"sourcesContent":["import { ElementScrollRestoration } from '@epic-web/restore-scroll'\nimport {\n\tgetExercises,\n\tgetWorkshopFinished,\n} from '@epic-web/workshop-utils/apps.server'\nimport { getWorkshopConfig } from '@epic-web/workshop-utils/config.server'\nimport {\n\tcombineServerTimings,\n\tgetServerTimeHeader,\n\tmakeTimings,\n\ttime,\n} from '@epic-web/workshop-utils/timing.server'\nimport { type SEOHandle } from '@nasa-gcn/remix-seo'\nimport {\n\tunstable_data as data,\n\ttype HeadersFunction,\n\ttype LoaderFunctionArgs,\n\ttype MetaFunction,\n} from '@remix-run/node'\nimport { Link, useLoaderData } from '@remix-run/react'\nimport slugify from '@sindresorhus/slugify'\nimport * as React from 'react'\nimport { EpicVideoInfoProvider } from '#app/components/epic-video.tsx'\nimport { Loading } from '#app/components/loading.tsx'\nimport { NavChevrons } from '#app/components/nav-chevrons.tsx'\nimport { useRevalidationWS } from '#app/components/revalidation-ws.js'\nimport { type loader as rootLoader } from '#app/root.tsx'\nimport { getEpicVideoInfos } from '#app/utils/epic-api.ts'\nimport { Mdx } from '#app/utils/mdx.tsx'\nimport { cn } from '#app/utils/misc.tsx'\nimport { getSeoMetaTags } from '#app/utils/seo.js'\nimport { EditFileOnGitHub } from '../launch-editor.tsx'\nimport { ProgressToggle } from '../progress.tsx'\n\nexport const handle: SEOHandle = {\n\tgetSitemapEntries: () => [{ route: '/finished' }],\n}\n\nexport const meta: MetaFunction<typeof loader, { root: typeof rootLoader }> = ({\n\tmatches,\n}) => {\n\tconst rootData = matches.find((m) => m.id === 'root')?.data\n\tif (!rootData) return []\n\n\treturn getSeoMetaTags({\n\t\ttitle: `🎉 ${rootData?.workshopTitle}`,\n\t\tdescription: `Elaboration for ${rootData?.workshopTitle}`,\n\t\togTitle: `Finished ${rootData?.workshopTitle}`,\n\t\togDescription: `You finished! Time to submit feedback.`,\n\t\tinstructor: rootData.instructor,\n\t\trequestInfo: rootData.requestInfo,\n\t})\n}\n\nexport async function loader({ request }: LoaderFunctionArgs) {\n\tconst timings = makeTimings('finishedLoader')\n\tconst exercises = await getExercises({ request, timings })\n\tconst compiledFinished = await time(() => getWorkshopFinished({ request }), {\n\t\ttimings,\n\t\ttype: 'compileMdx',\n\t\tdesc: 'compileMdx in finished',\n\t})\n\n\tconst lastExercises = exercises[exercises.length - 1]\n\tconst workshopConfig = getWorkshopConfig()\n\tconst workshopTitle = workshopConfig.title\n\tconst workshopFormTemplate = workshopConfig.forms.workshop\n\tconst workshopFormEmbedUrl = workshopFormTemplate.replace(\n\t\t'{workshopTitle}',\n\t\tencodeURIComponent(workshopTitle),\n\t)\n\treturn data(\n\t\t{\n\t\t\tarticleId: `workshop-${slugify(workshopTitle)}-finished`,\n\t\t\tworkshopTitle,\n\t\t\tworkshopFormEmbedUrl,\n\t\t\tfinishedCode:\n\t\t\t\tcompiledFinished.compiled.status === 'success'\n\t\t\t\t\t? compiledFinished.compiled.code\n\t\t\t\t\t: null,\n\t\t\tepicVideoInfosPromise:\n\t\t\t\tcompiledFinished.compiled.status === 'success'\n\t\t\t\t\t? getEpicVideoInfos(compiledFinished.compiled.epicVideoEmbeds, {\n\t\t\t\t\t\t\trequest,\n\t\t\t\t\t\t})\n\t\t\t\t\t: null,\n\t\t\tworkshopFinished: {\n\t\t\t\tstatus: compiledFinished.compiled.status,\n\t\t\t\tfile: compiledFinished.file,\n\t\t\t\trelativePath: compiledFinished.relativePath,\n\t\t\t},\n\t\t\tprevStepLink: lastExercises\n\t\t\t\t? {\n\t\t\t\t\t\tto: `/${lastExercises.exerciseNumber}/finished`,\n\t\t\t\t\t}\n\t\t\t\t: null,\n\t\t},\n\t\t{\n\t\t\theaders: {\n\t\t\t\t'Server-Timing': getServerTimeHeader(timings),\n\t\t\t},\n\t\t},\n\t)\n}\n\nexport const headers: HeadersFunction = ({ loaderHeaders, parentHeaders }) => {\n\tconst headers = {\n\t\t'Cache-Control': loaderHeaders.get('Cache-Control') ?? '',\n\t\t'Server-Timing': combineServerTimings(loaderHeaders, parentHeaders),\n\t}\n\treturn headers\n}\n\nconst mdxComponents = { h1: () => null }\n\nexport default function ExerciseFinished() {\n\tconst data = useLoaderData<typeof loader>()\n\tuseRevalidationWS({ watchPaths: ['./exercises/FINISHED.mdx'] })\n\treturn (\n\t\t<div className=\"flex h-full flex-grow flex-col\">\n\t\t\t<main className=\"grid h-full flex-grow grid-cols-1 grid-rows-2 lg:grid-cols-2 lg:grid-rows-1\">\n\t\t\t\t<div className=\"relative col-span-1 row-span-1 flex h-full flex-col lg:border-r\">\n\t\t\t\t\t<h1 className=\"h-14 border-b pl-10 pr-5 text-sm font-medium uppercase leading-none\">\n\t\t\t\t\t\t<div className=\"flex h-14 flex-wrap items-center justify-between gap-x-2 py-2\">\n\t\t\t\t\t\t\t<div className=\"flex items-center justify-start gap-x-2\">\n\t\t\t\t\t\t\t\t<Link to=\"/\" className=\"hover:underline\">\n\t\t\t\t\t\t\t\t\t{data.workshopTitle}\n\t\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t\t<span>/</span>\n\t\t\t\t\t\t\t\t<span>Elaboration</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</h1>\n\t\t\t\t\t<article\n\t\t\t\t\t\tclassName=\"shadow-on-scrollbox h-full w-full max-w-none flex-1 scroll-pt-6 space-y-6 overflow-y-auto p-2 scrollbar-thin scrollbar-thumb-scrollbar sm:p-10 sm:pt-8\"\n\t\t\t\t\t\tid={data.articleId}\n\t\t\t\t\t>\n\t\t\t\t\t\t{data.finishedCode ? (\n\t\t\t\t\t\t\t<EpicVideoInfoProvider\n\t\t\t\t\t\t\t\tepicVideoInfosPromise={data.epicVideoInfosPromise}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div className=\"prose dark:prose-invert sm:prose-lg\">\n\t\t\t\t\t\t\t\t\t<Mdx code={data.finishedCode} components={mdxComponents} />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</EpicVideoInfoProvider>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t// TODO: render a random dad joke...\n\t\t\t\t\t\t\t'No finished instructions yet...'\n\t\t\t\t\t\t)}\n\t\t\t\t\t</article>\n\t\t\t\t\t<ElementScrollRestoration elementQuery={`#${data.articleId}`} />\n\t\t\t\t\t<ProgressToggle\n\t\t\t\t\t\ttype=\"workshop-finished\"\n\t\t\t\t\t\tclassName=\"h-14 border-t px-6\"\n\t\t\t\t\t/>\n\t\t\t\t\t<div className=\"flex h-16 justify-between border-b-4 border-t lg:border-b-0\">\n\t\t\t\t\t\t<div />\n\t\t\t\t\t\t{data.workshopFinished.status === 'success' ? (\n\t\t\t\t\t\t\t<EditFileOnGitHub\n\t\t\t\t\t\t\t\tfile={data.workshopFinished.file}\n\t\t\t\t\t\t\t\trelativePath={data.workshopFinished.relativePath}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t<NavChevrons prev={data.prevStepLink} next={{ to: '/' }} />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<Survey\n\t\t\t\t\tworkshopTitle={data.workshopTitle}\n\t\t\t\t\tworkshopFormEmbedUrl={data.workshopFormEmbedUrl}\n\t\t\t\t/>\n\t\t\t</main>\n\t\t</div>\n\t)\n}\n\nfunction Survey({\n\tworkshopTitle,\n\tworkshopFormEmbedUrl,\n}: {\n\tworkshopTitle: string\n\tworkshopFormEmbedUrl: string\n}) {\n\tconst [iframeLoaded, setIframeLoaded] = React.useState(false)\n\treturn (\n\t\t<div className=\"relative flex-shrink-0\">\n\t\t\t{!iframeLoaded ? (\n\t\t\t\t<div className=\"absolute inset-0 z-10 flex items-center justify-center\">\n\t\t\t\t\t<Loading>\n\t\t\t\t\t\t<span>Loading {workshopTitle} Elaboration form</span>\n\t\t\t\t\t</Loading>\n\t\t\t\t</div>\n\t\t\t) : null}\n\t\t\t<iframe\n\t\t\t\tonLoad={() => setIframeLoaded(true)}\n\t\t\t\t// show what would have shown if there is an error\n\t\t\t\tonError={() => setIframeLoaded(true)}\n\t\t\t\ttitle=\"Elaboration\"\n\t\t\t\tsrc={workshopFormEmbedUrl}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'absolute inset-0 flex h-full w-full transition-opacity duration-300',\n\t\t\t\t\tiframeLoaded ? 'opacity-100' : 'opacity-0',\n\t\t\t\t)}\n\t\t\t/>\n\t\t</div>\n\t)\n}\n"],"names":["handle","getSitemapEntries","route","meta","matches","rootData","find","m","id","data","getSeoMetaTags","title","workshopTitle","description","ogTitle","ogDescription","instructor","requestInfo","mdxComponents","h1","ExerciseFinished","useLoaderData","useRevalidationWS","watchPaths","className","children","jsxs","jsx","Link","to","articleId","finishedCode","EpicVideoInfoProvider","epicVideoInfosPromise","Mdx","code","components","ElementScrollRestoration","elementQuery","ProgressToggle","type","workshopFinished","status","EditFileOnGitHub","file","relativePath","NavChevrons","prev","prevStepLink","next","Survey","workshopFormEmbedUrl","iframeLoaded","setIframeLoaded","React","Loading","onLoad","onError","src","cn"],"mappings":"6rBAkCO,MAAMA,EAAoB,CAChCC,kBAAmBA,IAAM,CAAC,CAAEC,MAAO,YAAa,CACjD,EAEaC,EAAiEA,CAAC,CAC9EC,QAAAA,CACD,IAAM,OACC,MAAAC,GAAWD,EAAAA,EAAQE,KAAMC,GAAMA,EAAEC,KAAO,MAAM,IAAnCJ,YAAAA,EAAsCK,KACnD,OAACJ,EAEEK,EAAe,CACrBC,MAAO,MAAMN,GAAAA,YAAAA,EAAUO,aAAa,GACpCC,YAAa,mBAAmBR,GAAAA,YAAAA,EAAUO,aAAa,GACvDE,QAAS,YAAYT,GAAAA,YAAAA,EAAUO,aAAa,GAC5CG,cAAe,yCACfC,WAAYX,EAASW,WACrBC,YAAaZ,EAASY,WACvB,CAAC,EATqB,EAUvB,EA6DMC,EAAgB,CAAEC,GAAIA,IAAM,IAAK,EAEvC,SAAwBC,GAAmB,CAC1C,MAAMX,EAAOY,IACbC,OAAAA,EAAkB,CAAEC,WAAY,CAAC,0BAA0B,CAAE,CAAC,QAE5D,MAAI,CAAAC,UAAU,iCACdC,SAACC,EAAA,KAAA,OAAA,CAAKF,UAAU,8EACfC,SAAA,CAACC,EAAA,KAAA,MAAA,CAAIF,UAAU,kEACdC,SAAA,CAACE,EAAA,IAAA,KAAA,CAAGH,UAAU,sEACbC,SAACE,EAAA,IAAA,MAAA,CAAIH,UAAU,gEACdC,SAAAC,EAAA,KAAC,MAAI,CAAAF,UAAU,0CACdC,SAAA,CAAAE,EAAA,IAACC,GAAKC,GAAG,IAAIL,UAAU,kBACrBC,SAAAhB,EAAKG,aACP,CAAA,EACAe,EAAA,IAAC,QAAKF,SAAC,GAAA,CAAA,EACPE,EAAA,IAAC,QAAKF,SAAW,aAAA,CAAA,CAAA,EAClB,EACD,CACD,CAAA,EACAE,EAAA,IAAC,UAAA,CACAH,UAAU,yJACVhB,GAAIC,EAAKqB,UAERL,SAAAhB,EAAKsB,aACLJ,EAAAA,IAACK,EAAA,CACAC,sBAAuBxB,EAAKwB,sBAE5BR,SAAAE,EAAA,IAAC,MAAI,CAAAH,UAAU,sCACdC,SAAAE,EAAA,IAACO,EAAI,CAAAC,KAAM1B,EAAKsB,aAAcK,WAAYlB,EAAe,EAC1D,CAAA,CACD,EAGA,iCAAA,CAEF,QACCmB,EAAyB,CAAAC,aAAc,IAAI7B,EAAKqB,SAAS,EAAI,CAAA,EAC9DH,EAAA,IAACY,EAAA,CACAC,KAAK,oBACLhB,UAAU,oBAAA,CACX,EACAE,EAAA,KAAC,MAAI,CAAAF,UAAU,8DACdC,SAAA,CAAAE,EAAAA,IAAC,MAAI,EAAA,EACJlB,EAAKgC,iBAAiBC,SAAW,UACjCf,EAAAA,IAACgB,EAAA,CACAC,KAAMnC,EAAKgC,iBAAiBG,KAC5BC,aAAcpC,EAAKgC,iBAAiBI,aACrC,EACG,KACJlB,EAAA,IAACmB,GAAYC,KAAMtC,EAAKuC,aAAcC,KAAM,CAAEpB,GAAI,GAAI,CAAG,CAAA,CAAA,CAC1D,CAAA,CAAA,CACD,CAAA,EACAF,EAAA,IAACuB,EAAA,CACAtC,cAAeH,EAAKG,cACpBuC,qBAAsB1C,EAAK0C,oBAAA,CAC5B,CAAA,EACD,CACD,CAAA,CAEF,CAEA,SAASD,EAAO,CACftC,cAAAA,EACAuC,qBAAAA,CACD,EAGG,CACF,KAAM,CAACC,EAAcC,CAAe,EAAIC,WAAe,EAAK,EAE3D,OAAA5B,EAAAA,KAAC,MAAI,CAAAF,UAAU,yBACbC,SAAA,CAAC2B,EAME,WALF,MAAI,CAAA5B,UAAU,yDACdC,SAACE,EAAA,IAAA4B,EAAA,CACA9B,gBAAC,OAAK,CAAAA,SAAA,CAAA,WAASb,EAAc,mBAAA,EAAiB,EAC/C,EACD,EAEDe,EAAA,IAAC,SAAA,CACA6B,OAAQA,IAAMH,EAAgB,EAAI,EAElCI,QAASA,IAAMJ,EAAgB,EAAI,EACnC1C,MAAM,cACN+C,IAAKP,EACL3B,UAAWmC,EACV,sEACAP,EAAe,cAAgB,WAChC,CAAA,CACD,CAAA,CACD,CAAA,CAEF"}
@@ -1,2 +1,2 @@
1
- import{c as m,u as y,r as l,j as w}from"./index-DF_XBInP.js";const h={vertical:"scrollTop",horizontal:"scrollLeft"};function v({elementQuery:r,direction:S="vertical",...d}){const e=`position:${r}`,p=m(),f=y(),a=h[S],i=l.useCallback(()=>{const t=document.querySelector(r);if(!t)return;let o={};try{const s=JSON.parse(sessionStorage.getItem(e)||"{}");typeof s=="object"&&s!==null&&(o=s)}catch(s){console.warn("Error parsing scroll positions from sessionStorage:",s)}const n={...o,[f.key]:t[a]};sessionStorage.setItem(e,JSON.stringify(n))},[e,r,f.key]);l.useEffect(()=>{if(p.state==="idle"){const t=document.querySelector(r);if(!t)return;try{const n=JSON.parse(sessionStorage.getItem(e)||"{}")[window.history.state.key];typeof n=="number"&&(t[a]=n)}catch(o){console.error(o),sessionStorage.removeItem(e)}}else i()},[e,r,p.state,i]),l.useEffect(()=>(window.addEventListener("pagehide",i),()=>{window.removeEventListener("pagehide",i)}),[i]);function g(t,o,n){const s=document.querySelector(o);if(!s){console.warn(`Element not found: ${o}. Cannot restore scroll.`);return}if(!window.history.state||!window.history.state.key){const c=Math.random().toString(32).slice(2);window.history.replaceState({key:c},"")}try{const u=JSON.parse(sessionStorage.getItem(t)||"{}")[window.history.state.key];typeof u=="number"&&(s[n]=u)}catch(c){console.error(c),sessionStorage.removeItem(t)}}return w.jsx("script",{...d,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${g})(${JSON.stringify(e)}, ${JSON.stringify(r)}, ${JSON.stringify(a)})`}})}export{v as E};
2
- //# sourceMappingURL=index-DBrRQJxF.js.map
1
+ import{c as m,u as y,r as l,j as w}from"./index-BFGhCX_U.js";const h={vertical:"scrollTop",horizontal:"scrollLeft"};function v({elementQuery:r,direction:S="vertical",...d}){const e=`position:${r}`,p=m(),f=y(),a=h[S],i=l.useCallback(()=>{const t=document.querySelector(r);if(!t)return;let o={};try{const s=JSON.parse(sessionStorage.getItem(e)||"{}");typeof s=="object"&&s!==null&&(o=s)}catch(s){console.warn("Error parsing scroll positions from sessionStorage:",s)}const n={...o,[f.key]:t[a]};sessionStorage.setItem(e,JSON.stringify(n))},[e,r,f.key]);l.useEffect(()=>{if(p.state==="idle"){const t=document.querySelector(r);if(!t)return;try{const n=JSON.parse(sessionStorage.getItem(e)||"{}")[window.history.state.key];typeof n=="number"&&(t[a]=n)}catch(o){console.error(o),sessionStorage.removeItem(e)}}else i()},[e,r,p.state,i]),l.useEffect(()=>(window.addEventListener("pagehide",i),()=>{window.removeEventListener("pagehide",i)}),[i]);function g(t,o,n){const s=document.querySelector(o);if(!s){console.warn(`Element not found: ${o}. Cannot restore scroll.`);return}if(!window.history.state||!window.history.state.key){const c=Math.random().toString(32).slice(2);window.history.replaceState({key:c},"")}try{const u=JSON.parse(sessionStorage.getItem(t)||"{}")[window.history.state.key];typeof u=="number"&&(s[n]=u)}catch(c){console.error(c),sessionStorage.removeItem(t)}}return w.jsx("script",{...d,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${g})(${JSON.stringify(e)}, ${JSON.stringify(r)}, ${JSON.stringify(a)})`}})}export{v as E};
2
+ //# sourceMappingURL=index-BCxBKsqT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-DBrRQJxF.js","sources":["../../../../../node_modules/@epic-web/restore-scroll/dist/index.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback, useEffect } from 'react';\nimport { useLocation, useNavigation } from 'react-router-dom';\nconst DIRECTION = {\n vertical: 'scrollTop',\n horizontal: 'scrollLeft',\n};\nexport function ElementScrollRestoration({ elementQuery, direction = 'vertical', ...props }) {\n const STORAGE_KEY = `position:${elementQuery}`;\n const navigation = useNavigation();\n const location = useLocation();\n const scrollAttribute = DIRECTION[direction];\n const updatePositions = useCallback(() => {\n const element = document.querySelector(elementQuery);\n if (!element)\n return;\n let positions = {};\n try {\n const rawPositions = JSON.parse(sessionStorage.getItem(STORAGE_KEY) || '{}');\n if (typeof rawPositions === 'object' && rawPositions !== null) {\n positions = rawPositions;\n }\n }\n catch (error) {\n console.warn(`Error parsing scroll positions from sessionStorage:`, error);\n }\n const newPositions = {\n ...positions,\n [location.key]: element[scrollAttribute],\n };\n sessionStorage.setItem(STORAGE_KEY, JSON.stringify(newPositions));\n }, [STORAGE_KEY, elementQuery, location.key]);\n useEffect(() => {\n if (navigation.state === 'idle') {\n const element = document.querySelector(elementQuery);\n if (!element)\n return;\n try {\n const positions = JSON.parse(sessionStorage.getItem(STORAGE_KEY) || '{}');\n const stored = positions[window.history.state.key];\n if (typeof stored === 'number') {\n element[scrollAttribute] = stored;\n }\n }\n catch (error) {\n console.error(error);\n sessionStorage.removeItem(STORAGE_KEY);\n }\n }\n else {\n updatePositions();\n }\n }, [STORAGE_KEY, elementQuery, navigation.state, updatePositions]);\n useEffect(() => {\n window.addEventListener('pagehide', updatePositions);\n return () => {\n window.removeEventListener('pagehide', updatePositions);\n };\n }, [updatePositions]);\n function restoreScroll(storageKey, elementQuery, scrollAttribute) {\n const element = document.querySelector(elementQuery);\n if (!element) {\n console.warn(`Element not found: ${elementQuery}. Cannot restore scroll.`);\n return;\n }\n if (!window.history.state || !window.history.state.key) {\n const key = Math.random().toString(32).slice(2);\n window.history.replaceState({ key }, '');\n }\n try {\n const positions = JSON.parse(sessionStorage.getItem(storageKey) || '{}');\n const stored = positions[window.history.state.key];\n if (typeof stored === 'number') {\n element[scrollAttribute] = stored;\n }\n }\n catch (error) {\n console.error(error);\n sessionStorage.removeItem(storageKey);\n }\n }\n return (_jsx(\"script\", { ...props, suppressHydrationWarning: true, dangerouslySetInnerHTML: {\n __html: `(${restoreScroll})(${JSON.stringify(STORAGE_KEY)}, ${JSON.stringify(elementQuery)}, ${JSON.stringify(scrollAttribute)})`,\n } }));\n}\n"],"names":["DIRECTION","ElementScrollRestoration","elementQuery","direction","props","STORAGE_KEY","navigation","useNavigation","location","useLocation","scrollAttribute","updatePositions","useCallback","element","positions","rawPositions","error","newPositions","useEffect","stored","restoreScroll","storageKey","key","_jsx"],"mappings":"6DAGA,MAAMA,EAAY,CACd,SAAU,YACV,WAAY,YAChB,EACO,SAASC,EAAyB,CAAE,aAAAC,EAAc,UAAAC,EAAY,WAAY,GAAGC,CAAK,EAAI,CACzF,MAAMC,EAAc,YAAYH,CAAY,GACtCI,EAAaC,IACbC,EAAWC,IACXC,EAAkBV,EAAUG,CAAS,EACrCQ,EAAkBC,EAAAA,YAAY,IAAM,CACtC,MAAMC,EAAU,SAAS,cAAcX,CAAY,EACnD,GAAI,CAACW,EACD,OACJ,IAAIC,EAAY,CAAA,EAChB,GAAI,CACA,MAAMC,EAAe,KAAK,MAAM,eAAe,QAAQV,CAAW,GAAK,IAAI,EACvE,OAAOU,GAAiB,UAAYA,IAAiB,OACrDD,EAAYC,EAEnB,OACMC,EAAO,CACV,QAAQ,KAAK,sDAAuDA,CAAK,CAC5E,CACD,MAAMC,EAAe,CACjB,GAAGH,EACH,CAACN,EAAS,GAAG,EAAGK,EAAQH,CAAe,CACnD,EACQ,eAAe,QAAQL,EAAa,KAAK,UAAUY,CAAY,CAAC,CACnE,EAAE,CAACZ,EAAaH,EAAcM,EAAS,GAAG,CAAC,EAC5CU,EAAAA,UAAU,IAAM,CACZ,GAAIZ,EAAW,QAAU,OAAQ,CAC7B,MAAMO,EAAU,SAAS,cAAcX,CAAY,EACnD,GAAI,CAACW,EACD,OACJ,GAAI,CAEA,MAAMM,EADY,KAAK,MAAM,eAAe,QAAQd,CAAW,GAAK,IAAI,EAC/C,OAAO,QAAQ,MAAM,GAAG,EAC7C,OAAOc,GAAW,WAClBN,EAAQH,CAAe,EAAIS,EAElC,OACMH,EAAO,CACV,QAAQ,MAAMA,CAAK,EACnB,eAAe,WAAWX,CAAW,CACxC,CACJ,MAEGM,GAEZ,EAAO,CAACN,EAAaH,EAAcI,EAAW,MAAOK,CAAe,CAAC,EACjEO,EAAAA,UAAU,KACN,OAAO,iBAAiB,WAAYP,CAAe,EAC5C,IAAM,CACT,OAAO,oBAAoB,WAAYA,CAAe,CAClE,GACO,CAACA,CAAe,CAAC,EACpB,SAASS,EAAcC,EAAYnB,EAAcQ,EAAiB,CAC9D,MAAMG,EAAU,SAAS,cAAcX,CAAY,EACnD,GAAI,CAACW,EAAS,CACV,QAAQ,KAAK,sBAAsBX,CAAY,0BAA0B,EACzE,MACH,CACD,GAAI,CAAC,OAAO,QAAQ,OAAS,CAAC,OAAO,QAAQ,MAAM,IAAK,CACpD,MAAMoB,EAAM,KAAK,OAAQ,EAAC,SAAS,EAAE,EAAE,MAAM,CAAC,EAC9C,OAAO,QAAQ,aAAa,CAAE,IAAAA,CAAK,EAAE,EAAE,CAC1C,CACD,GAAI,CAEA,MAAMH,EADY,KAAK,MAAM,eAAe,QAAQE,CAAU,GAAK,IAAI,EAC9C,OAAO,QAAQ,MAAM,GAAG,EAC7C,OAAOF,GAAW,WAClBN,EAAQH,CAAe,EAAIS,EAElC,OACMH,EAAO,CACV,QAAQ,MAAMA,CAAK,EACnB,eAAe,WAAWK,CAAU,CACvC,CACJ,CACD,OAAQE,EAAAA,IAAK,SAAU,CAAE,GAAGnB,EAAO,yBAA0B,GAAM,wBAAyB,CACpF,OAAQ,IAAIgB,CAAa,KAAK,KAAK,UAAUf,CAAW,CAAC,KAAK,KAAK,UAAUH,CAAY,CAAC,KAAK,KAAK,UAAUQ,CAAe,CAAC,GACjI,CAAA,CAAE,CACX","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index-BCxBKsqT.js","sources":["../../../../../node_modules/@epic-web/restore-scroll/dist/index.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback, useEffect } from 'react';\nimport { useLocation, useNavigation } from 'react-router-dom';\nconst DIRECTION = {\n vertical: 'scrollTop',\n horizontal: 'scrollLeft',\n};\nexport function ElementScrollRestoration({ elementQuery, direction = 'vertical', ...props }) {\n const STORAGE_KEY = `position:${elementQuery}`;\n const navigation = useNavigation();\n const location = useLocation();\n const scrollAttribute = DIRECTION[direction];\n const updatePositions = useCallback(() => {\n const element = document.querySelector(elementQuery);\n if (!element)\n return;\n let positions = {};\n try {\n const rawPositions = JSON.parse(sessionStorage.getItem(STORAGE_KEY) || '{}');\n if (typeof rawPositions === 'object' && rawPositions !== null) {\n positions = rawPositions;\n }\n }\n catch (error) {\n console.warn(`Error parsing scroll positions from sessionStorage:`, error);\n }\n const newPositions = {\n ...positions,\n [location.key]: element[scrollAttribute],\n };\n sessionStorage.setItem(STORAGE_KEY, JSON.stringify(newPositions));\n }, [STORAGE_KEY, elementQuery, location.key]);\n useEffect(() => {\n if (navigation.state === 'idle') {\n const element = document.querySelector(elementQuery);\n if (!element)\n return;\n try {\n const positions = JSON.parse(sessionStorage.getItem(STORAGE_KEY) || '{}');\n const stored = positions[window.history.state.key];\n if (typeof stored === 'number') {\n element[scrollAttribute] = stored;\n }\n }\n catch (error) {\n console.error(error);\n sessionStorage.removeItem(STORAGE_KEY);\n }\n }\n else {\n updatePositions();\n }\n }, [STORAGE_KEY, elementQuery, navigation.state, updatePositions]);\n useEffect(() => {\n window.addEventListener('pagehide', updatePositions);\n return () => {\n window.removeEventListener('pagehide', updatePositions);\n };\n }, [updatePositions]);\n function restoreScroll(storageKey, elementQuery, scrollAttribute) {\n const element = document.querySelector(elementQuery);\n if (!element) {\n console.warn(`Element not found: ${elementQuery}. Cannot restore scroll.`);\n return;\n }\n if (!window.history.state || !window.history.state.key) {\n const key = Math.random().toString(32).slice(2);\n window.history.replaceState({ key }, '');\n }\n try {\n const positions = JSON.parse(sessionStorage.getItem(storageKey) || '{}');\n const stored = positions[window.history.state.key];\n if (typeof stored === 'number') {\n element[scrollAttribute] = stored;\n }\n }\n catch (error) {\n console.error(error);\n sessionStorage.removeItem(storageKey);\n }\n }\n return (_jsx(\"script\", { ...props, suppressHydrationWarning: true, dangerouslySetInnerHTML: {\n __html: `(${restoreScroll})(${JSON.stringify(STORAGE_KEY)}, ${JSON.stringify(elementQuery)}, ${JSON.stringify(scrollAttribute)})`,\n } }));\n}\n"],"names":["DIRECTION","ElementScrollRestoration","elementQuery","direction","props","STORAGE_KEY","navigation","useNavigation","location","useLocation","scrollAttribute","updatePositions","useCallback","element","positions","rawPositions","error","newPositions","useEffect","stored","restoreScroll","storageKey","key","_jsx"],"mappings":"6DAGA,MAAMA,EAAY,CACd,SAAU,YACV,WAAY,YAChB,EACO,SAASC,EAAyB,CAAE,aAAAC,EAAc,UAAAC,EAAY,WAAY,GAAGC,CAAK,EAAI,CACzF,MAAMC,EAAc,YAAYH,CAAY,GACtCI,EAAaC,IACbC,EAAWC,IACXC,EAAkBV,EAAUG,CAAS,EACrCQ,EAAkBC,EAAAA,YAAY,IAAM,CACtC,MAAMC,EAAU,SAAS,cAAcX,CAAY,EACnD,GAAI,CAACW,EACD,OACJ,IAAIC,EAAY,CAAA,EAChB,GAAI,CACA,MAAMC,EAAe,KAAK,MAAM,eAAe,QAAQV,CAAW,GAAK,IAAI,EACvE,OAAOU,GAAiB,UAAYA,IAAiB,OACrDD,EAAYC,EAEnB,OACMC,EAAO,CACV,QAAQ,KAAK,sDAAuDA,CAAK,CAC5E,CACD,MAAMC,EAAe,CACjB,GAAGH,EACH,CAACN,EAAS,GAAG,EAAGK,EAAQH,CAAe,CACnD,EACQ,eAAe,QAAQL,EAAa,KAAK,UAAUY,CAAY,CAAC,CACnE,EAAE,CAACZ,EAAaH,EAAcM,EAAS,GAAG,CAAC,EAC5CU,EAAAA,UAAU,IAAM,CACZ,GAAIZ,EAAW,QAAU,OAAQ,CAC7B,MAAMO,EAAU,SAAS,cAAcX,CAAY,EACnD,GAAI,CAACW,EACD,OACJ,GAAI,CAEA,MAAMM,EADY,KAAK,MAAM,eAAe,QAAQd,CAAW,GAAK,IAAI,EAC/C,OAAO,QAAQ,MAAM,GAAG,EAC7C,OAAOc,GAAW,WAClBN,EAAQH,CAAe,EAAIS,EAElC,OACMH,EAAO,CACV,QAAQ,MAAMA,CAAK,EACnB,eAAe,WAAWX,CAAW,CACxC,CACJ,MAEGM,GAEZ,EAAO,CAACN,EAAaH,EAAcI,EAAW,MAAOK,CAAe,CAAC,EACjEO,EAAAA,UAAU,KACN,OAAO,iBAAiB,WAAYP,CAAe,EAC5C,IAAM,CACT,OAAO,oBAAoB,WAAYA,CAAe,CAClE,GACO,CAACA,CAAe,CAAC,EACpB,SAASS,EAAcC,EAAYnB,EAAcQ,EAAiB,CAC9D,MAAMG,EAAU,SAAS,cAAcX,CAAY,EACnD,GAAI,CAACW,EAAS,CACV,QAAQ,KAAK,sBAAsBX,CAAY,0BAA0B,EACzE,MACH,CACD,GAAI,CAAC,OAAO,QAAQ,OAAS,CAAC,OAAO,QAAQ,MAAM,IAAK,CACpD,MAAMoB,EAAM,KAAK,OAAQ,EAAC,SAAS,EAAE,EAAE,MAAM,CAAC,EAC9C,OAAO,QAAQ,aAAa,CAAE,IAAAA,CAAK,EAAE,EAAE,CAC1C,CACD,GAAI,CAEA,MAAMH,EADY,KAAK,MAAM,eAAe,QAAQE,CAAU,GAAK,IAAI,EAC9C,OAAO,QAAQ,MAAM,GAAG,EAC7C,OAAOF,GAAW,WAClBN,EAAQH,CAAe,EAAIS,EAElC,OACMH,EAAO,CACV,QAAQ,MAAMA,CAAK,EACnB,eAAe,WAAWK,CAAU,CACvC,CACJ,CACD,OAAQE,EAAAA,IAAK,SAAU,CAAE,GAAGnB,EAAO,yBAA0B,GAAM,wBAAyB,CACpF,OAAQ,IAAIgB,CAAa,KAAK,KAAK,UAAUf,CAAW,CAAC,KAAK,KAAK,UAAUH,CAAY,CAAC,KAAK,KAAK,UAAUQ,CAAe,CAAC,GACjI,CAAA,CAAE,CACX","x_google_ignoreList":[0]}
@@ -0,0 +1,38 @@
1
+ function mn(e,t){for(var r=0;r<t.length;r++){const n=t[r];if(typeof n!="string"&&!Array.isArray(n)){for(const a in n)if(a!=="default"&&!(a in e)){const l=Object.getOwnPropertyDescriptor(n,a);l&&Object.defineProperty(e,a,l.get?l:{enumerable:!0,get:()=>n[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var Qa=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function vn(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var _r={exports:{}},Rt={};/**
2
+ * @license React
3
+ * react-jsx-runtime.production.js
4
+ *
5
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */var gn=Symbol.for("react.transitional.element"),yn=Symbol.for("react.fragment");function Mr(e,t,r){var n=null;if(r!==void 0&&(n=""+r),t.key!==void 0&&(n=""+t.key),"key"in t){r={};for(var a in t)a!=="key"&&(r[a]=t[a])}else r=t;return t=r.ref,{$$typeof:gn,type:e,key:n,ref:t!==void 0?t:null,props:r}}Rt.Fragment=yn;Rt.jsx=Mr;Rt.jsxs=Mr;_r.exports=Rt;var Za=_r.exports,Lr={exports:{}},T={};/**
10
+ * @license React
11
+ * react.production.js
12
+ *
13
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
14
+ *
15
+ * This source code is licensed under the MIT license found in the
16
+ * LICENSE file in the root directory of this source tree.
17
+ */var Ut=Symbol.for("react.transitional.element"),bn=Symbol.for("react.portal"),En=Symbol.for("react.fragment"),Rn=Symbol.for("react.strict_mode"),wn=Symbol.for("react.profiler"),Pn=Symbol.for("react.consumer"),xn=Symbol.for("react.context"),Dn=Symbol.for("react.forward_ref"),Sn=Symbol.for("react.suspense"),Cn=Symbol.for("react.memo"),Tr=Symbol.for("react.lazy"),sr=Symbol.iterator;function _n(e){return e===null||typeof e!="object"?null:(e=sr&&e[sr]||e["@@iterator"],typeof e=="function"?e:null)}var jr={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Or=Object.assign,Ar={};function ze(e,t,r){this.props=e,this.context=t,this.refs=Ar,this.updater=r||jr}ze.prototype.isReactComponent={};ze.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};ze.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Ur(){}Ur.prototype=ze.prototype;function Nt(e,t,r){this.props=e,this.context=t,this.refs=Ar,this.updater=r||jr}var Ft=Nt.prototype=new Ur;Ft.constructor=Nt;Or(Ft,ze.prototype);Ft.isPureReactComponent=!0;var ur=Array.isArray,$={H:null,A:null,T:null,S:null},Nr=Object.prototype.hasOwnProperty;function It(e,t,r,n,a,l,o){return r=o.ref,{$$typeof:Ut,type:e,key:t,ref:r!==void 0?r:null,props:o}}function Mn(e,t){return It(e.type,t,null,void 0,void 0,void 0,e.props)}function Bt(e){return typeof e=="object"&&e!==null&&e.$$typeof===Ut}function Ln(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(r){return t[r]})}var dr=/\/+/g;function Ct(e,t){return typeof e=="object"&&e!==null&&e.key!=null?Ln(""+e.key):t.toString(36)}function cr(){}function Tn(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(cr,cr):(e.status="pending",e.then(function(t){e.status==="pending"&&(e.status="fulfilled",e.value=t)},function(t){e.status==="pending"&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function Ie(e,t,r,n,a){var l=typeof e;(l==="undefined"||l==="boolean")&&(e=null);var o=!1;if(e===null)o=!0;else switch(l){case"bigint":case"string":case"number":o=!0;break;case"object":switch(e.$$typeof){case Ut:case bn:o=!0;break;case Tr:return o=e._init,Ie(o(e._payload),t,r,n,a)}}if(o)return a=a(e),o=n===""?"."+Ct(e,0):n,ur(a)?(r="",o!=null&&(r=o.replace(dr,"$&/")+"/"),Ie(a,t,r,"",function(h){return h})):a!=null&&(Bt(a)&&(a=Mn(a,r+(a.key==null||e&&e.key===a.key?"":(""+a.key).replace(dr,"$&/")+"/")+o)),t.push(a)),1;o=0;var c=n===""?".":n+":";if(ur(e))for(var u=0;u<e.length;u++)n=e[u],l=c+Ct(n,u),o+=Ie(n,t,r,l,a);else if(u=_n(e),typeof u=="function")for(e=u.call(e),u=0;!(n=e.next()).done;)n=n.value,l=c+Ct(n,u++),o+=Ie(n,t,r,l,a);else if(l==="object"){if(typeof e.then=="function")return Ie(Tn(e),t,r,n,a);throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.")}return o}function vt(e,t,r){if(e==null)return e;var n=[],a=0;return Ie(e,n,"","",function(l){return t.call(r,l,a++)}),n}function jn(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(r){(e._status===0||e._status===-1)&&(e._status=1,e._result=r)},function(r){(e._status===0||e._status===-1)&&(e._status=2,e._result=r)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var fr=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)};function On(){}T.Children={map:vt,forEach:function(e,t,r){vt(e,function(){t.apply(this,arguments)},r)},count:function(e){var t=0;return vt(e,function(){t++}),t},toArray:function(e){return vt(e,function(t){return t})||[]},only:function(e){if(!Bt(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};T.Component=ze;T.Fragment=En;T.Profiler=wn;T.PureComponent=Nt;T.StrictMode=Rn;T.Suspense=Sn;T.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=$;T.act=function(){throw Error("act(...) is not supported in production builds of React.")};T.cache=function(e){return function(){return e.apply(null,arguments)}};T.cloneElement=function(e,t,r){if(e==null)throw Error("The argument must be a React element, but you passed "+e+".");var n=Or({},e.props),a=e.key,l=void 0;if(t!=null)for(o in t.ref!==void 0&&(l=void 0),t.key!==void 0&&(a=""+t.key),t)!Nr.call(t,o)||o==="key"||o==="__self"||o==="__source"||o==="ref"&&t.ref===void 0||(n[o]=t[o]);var o=arguments.length-2;if(o===1)n.children=r;else if(1<o){for(var c=Array(o),u=0;u<o;u++)c[u]=arguments[u+2];n.children=c}return It(e.type,a,null,void 0,void 0,l,n)};T.createContext=function(e){return e={$$typeof:xn,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:Pn,_context:e},e};T.createElement=function(e,t,r){var n,a={},l=null;if(t!=null)for(n in t.key!==void 0&&(l=""+t.key),t)Nr.call(t,n)&&n!=="key"&&n!=="__self"&&n!=="__source"&&(a[n]=t[n]);var o=arguments.length-2;if(o===1)a.children=r;else if(1<o){for(var c=Array(o),u=0;u<o;u++)c[u]=arguments[u+2];a.children=c}if(e&&e.defaultProps)for(n in o=e.defaultProps,o)a[n]===void 0&&(a[n]=o[n]);return It(e,l,null,void 0,void 0,null,a)};T.createRef=function(){return{current:null}};T.forwardRef=function(e){return{$$typeof:Dn,render:e}};T.isValidElement=Bt;T.lazy=function(e){return{$$typeof:Tr,_payload:{_status:-1,_result:e},_init:jn}};T.memo=function(e,t){return{$$typeof:Cn,type:e,compare:t===void 0?null:t}};T.startTransition=function(e){var t=$.T,r={};$.T=r;try{var n=e(),a=$.S;a!==null&&a(r,n),typeof n=="object"&&n!==null&&typeof n.then=="function"&&n.then(On,fr)}catch(l){fr(l)}finally{$.T=t}};T.unstable_useCacheRefresh=function(){return $.H.useCacheRefresh()};T.use=function(e){return $.H.use(e)};T.useActionState=function(e,t,r){return $.H.useActionState(e,t,r)};T.useCallback=function(e,t){return $.H.useCallback(e,t)};T.useContext=function(e){return $.H.useContext(e)};T.useDebugValue=function(){};T.useDeferredValue=function(e,t){return $.H.useDeferredValue(e,t)};T.useEffect=function(e,t){return $.H.useEffect(e,t)};T.useId=function(){return $.H.useId()};T.useImperativeHandle=function(e,t,r){return $.H.useImperativeHandle(e,t,r)};T.useInsertionEffect=function(e,t){return $.H.useInsertionEffect(e,t)};T.useLayoutEffect=function(e,t){return $.H.useLayoutEffect(e,t)};T.useMemo=function(e,t){return $.H.useMemo(e,t)};T.useOptimistic=function(e,t){return $.H.useOptimistic(e,t)};T.useReducer=function(e,t,r){return $.H.useReducer(e,t,r)};T.useRef=function(e){return $.H.useRef(e)};T.useState=function(e){return $.H.useState(e)};T.useSyncExternalStore=function(e,t,r){return $.H.useSyncExternalStore(e,t,r)};T.useTransition=function(){return $.H.useTransition()};T.version="19.0.0-rc-1460d67c-20241003";Lr.exports=T;var b=Lr.exports;const An=vn(b),qa=mn({__proto__:null,default:An},[b]);/**
18
+ * @remix-run/router v1.19.2
19
+ *
20
+ * Copyright (c) Remix Software Inc.
21
+ *
22
+ * This source code is licensed under the MIT license found in the
23
+ * LICENSE.md file in the root directory of this source tree.
24
+ *
25
+ * @license MIT
26
+ */function H(){return H=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},H.apply(this,arguments)}var G;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(G||(G={}));const hr="popstate";function eo(e){e===void 0&&(e={});function t(n,a){let{pathname:l,search:o,hash:c}=n.location;return Ze("",{pathname:l,search:o,hash:c},a.state&&a.state.usr||null,a.state&&a.state.key||"default")}function r(n,a){return typeof a=="string"?a:et(a)}return Nn(t,r,null,e)}function j(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function ke(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function Un(){return Math.random().toString(36).substr(2,8)}function pr(e,t){return{usr:e.state,key:e.key,idx:t}}function Ze(e,t,r,n){return r===void 0&&(r=null),H({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?xe(t):t,{state:r,key:t&&t.key||n||Un()})}function et(e){let{pathname:t="/",search:r="",hash:n=""}=e;return r&&r!=="?"&&(t+=r.charAt(0)==="?"?r:"?"+r),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function xe(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}function Nn(e,t,r,n){n===void 0&&(n={});let{window:a=document.defaultView,v5Compat:l=!1}=n,o=a.history,c=G.Pop,u=null,h=v();h==null&&(h=0,o.replaceState(H({},o.state,{idx:h}),""));function v(){return(o.state||{idx:null}).idx}function p(){c=G.Pop;let _=v(),I=_==null?null:_-h;h=_,u&&u({action:c,location:x.location,delta:I})}function E(_,I){c=G.Push;let U=Ze(x.location,_,I);h=v()+1;let Z=pr(U,h),K=x.createHref(U);try{o.pushState(Z,"",K)}catch(ie){if(ie instanceof DOMException&&ie.name==="DataCloneError")throw ie;a.location.assign(K)}l&&u&&u({action:c,location:x.location,delta:1})}function R(_,I){c=G.Replace;let U=Ze(x.location,_,I);h=v();let Z=pr(U,h),K=x.createHref(U);o.replaceState(Z,"",K),l&&u&&u({action:c,location:x.location,delta:0})}function M(_){let I=a.location.origin!=="null"?a.location.origin:a.location.href,U=typeof _=="string"?_:et(_);return U=U.replace(/ $/,"%20"),j(I,"No window.location.(origin|href) available to create URL for href: "+U),new URL(U,I)}let x={get action(){return c},get location(){return e(a,o)},listen(_){if(u)throw new Error("A history only accepts one active listener");return a.addEventListener(hr,p),u=_,()=>{a.removeEventListener(hr,p),u=null}},createHref(_){return t(a,_)},createURL:M,encodeLocation(_){let I=M(_);return{pathname:I.pathname,search:I.search,hash:I.hash}},push:E,replace:R,go(_){return o.go(_)}};return x}var F;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(F||(F={}));const Fn=new Set(["lazy","caseSensitive","path","id","index","children"]);function In(e){return e.index===!0}function qe(e,t,r,n){return r===void 0&&(r=[]),n===void 0&&(n={}),e.map((a,l)=>{let o=[...r,String(l)],c=typeof a.id=="string"?a.id:o.join("-");if(j(a.index!==!0||!a.children,"Cannot specify children on an index route"),j(!n[c],'Found a route id collision on id "'+c+`". Route id's must be globally unique within Data Router usages`),In(a)){let u=H({},a,t(a),{id:c});return n[c]=u,u}else{let u=H({},a,t(a),{id:c,children:void 0});return n[c]=u,a.children&&(u.children=qe(a.children,t,o,n)),u}})}function Le(e,t,r){return r===void 0&&(r="/"),yt(e,t,r,!1)}function yt(e,t,r,n){let a=typeof t=="string"?xe(t):t,l=tt(a.pathname||"/",r);if(l==null)return null;let o=Ir(e);Bn(o);let c=null;for(let u=0;c==null&&u<o.length;++u){let h=Xn(l);c=Vn(o[u],h,n)}return c}function Fr(e,t){let{route:r,pathname:n,params:a}=e;return{id:r.id,pathname:n,params:a,data:t[r.id],handle:r.handle}}function Ir(e,t,r,n){t===void 0&&(t=[]),r===void 0&&(r=[]),n===void 0&&(n="");let a=(l,o,c)=>{let u={relativePath:c===void 0?l.path||"":c,caseSensitive:l.caseSensitive===!0,childrenIndex:o,route:l};u.relativePath.startsWith("/")&&(j(u.relativePath.startsWith(n),'Absolute route path "'+u.relativePath+'" nested under path '+('"'+n+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),u.relativePath=u.relativePath.slice(n.length));let h=ge([n,u.relativePath]),v=r.concat(u);l.children&&l.children.length>0&&(j(l.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+h+'".')),Ir(l.children,t,v,h)),!(l.path==null&&!l.index)&&t.push({path:h,score:Kn(h,l.index),routesMeta:v})};return e.forEach((l,o)=>{var c;if(l.path===""||!((c=l.path)!=null&&c.includes("?")))a(l,o);else for(let u of Br(l.path))a(l,o,u)}),t}function Br(e){let t=e.split("/");if(t.length===0)return[];let[r,...n]=t,a=r.endsWith("?"),l=r.replace(/\?$/,"");if(n.length===0)return a?[l,""]:[l];let o=Br(n.join("/")),c=[];return c.push(...o.map(u=>u===""?l:[l,u].join("/"))),a&&c.push(...o),c.map(u=>e.startsWith("/")&&u===""?"/":u)}function Bn(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:Jn(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}const kn=/^:[\w-]+$/,zn=3,Hn=2,$n=1,Wn=10,Yn=-2,mr=e=>e==="*";function Kn(e,t){let r=e.split("/"),n=r.length;return r.some(mr)&&(n+=Yn),t&&(n+=Hn),r.filter(a=>!mr(a)).reduce((a,l)=>a+(kn.test(l)?zn:l===""?$n:Wn),n)}function Jn(e,t){return e.length===t.length&&e.slice(0,-1).every((n,a)=>n===t[a])?e[e.length-1]-t[t.length-1]:0}function Vn(e,t,r){r===void 0&&(r=!1);let{routesMeta:n}=e,a={},l="/",o=[];for(let c=0;c<n.length;++c){let u=n[c],h=c===n.length-1,v=l==="/"?t:t.slice(l.length)||"/",p=vr({path:u.relativePath,caseSensitive:u.caseSensitive,end:h},v),E=u.route;if(!p&&h&&r&&!n[n.length-1].route.index&&(p=vr({path:u.relativePath,caseSensitive:u.caseSensitive,end:!1},v)),!p)return null;Object.assign(a,p.params),o.push({params:a,pathname:ge([l,p.pathname]),pathnameBase:qn(ge([l,p.pathnameBase])),route:E}),p.pathnameBase!=="/"&&(l=ge([l,p.pathnameBase]))}return o}function vr(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=Gn(e.path,e.caseSensitive,e.end),a=t.match(r);if(!a)return null;let l=a[0],o=l.replace(/(.)\/+$/,"$1"),c=a.slice(1);return{params:n.reduce((h,v,p)=>{let{paramName:E,isOptional:R}=v;if(E==="*"){let x=c[p]||"";o=l.slice(0,l.length-x.length).replace(/(.)\/+$/,"$1")}const M=c[p];return R&&!M?h[E]=void 0:h[E]=(M||"").replace(/%2F/g,"/"),h},{}),pathname:l,pathnameBase:o,pattern:e}}function Gn(e,t,r){t===void 0&&(t=!1),r===void 0&&(r=!0),ke(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let n=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,c,u)=>(n.push({paramName:c,isOptional:u!=null}),u?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(n.push({paramName:"*"}),a+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":e!==""&&e!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),n]}function Xn(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return ke(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function tt(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&n!=="/"?null:e.slice(r)||"/"}function Qn(e,t){t===void 0&&(t="/");let{pathname:r,search:n="",hash:a=""}=typeof e=="string"?xe(e):e;return{pathname:r?r.startsWith("/")?r:Zn(r,t):t,search:ea(n),hash:ta(a)}}function Zn(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(a=>{a===".."?r.length>1&&r.pop():a!=="."&&r.push(a)}),r.length>1?r.join("/"):"/"}function _t(e,t,r,n){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(n)+"]. Please separate it out to the ")+("`to."+r+"` field. Alternatively you may provide the full path as ")+'a string in <Link to="..."> and the router will parse it for you.'}function kr(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function kt(e,t){let r=kr(e);return t?r.map((n,a)=>a===r.length-1?n.pathname:n.pathnameBase):r.map(n=>n.pathnameBase)}function zt(e,t,r,n){n===void 0&&(n=!1);let a;typeof e=="string"?a=xe(e):(a=H({},e),j(!a.pathname||!a.pathname.includes("?"),_t("?","pathname","search",a)),j(!a.pathname||!a.pathname.includes("#"),_t("#","pathname","hash",a)),j(!a.search||!a.search.includes("#"),_t("#","search","hash",a)));let l=e===""||a.pathname==="",o=l?"/":a.pathname,c;if(o==null)c=r;else{let p=t.length-1;if(!n&&o.startsWith("..")){let E=o.split("/");for(;E[0]==="..";)E.shift(),p-=1;a.pathname=E.join("/")}c=p>=0?t[p]:"/"}let u=Qn(a,c),h=o&&o!=="/"&&o.endsWith("/"),v=(l||o===".")&&r.endsWith("/");return!u.pathname.endsWith("/")&&(h||v)&&(u.pathname+="/"),u}const ge=e=>e.join("/").replace(/\/\/+/g,"/"),qn=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),ea=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,ta=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;class ra{constructor(t,r){this.type="DataWithResponseInit",this.data=t,this.init=r||null}}function to(e,t){return new ra(e,typeof t=="number"?{status:t}:t)}class Tt extends Error{}class ro{constructor(t,r){this.pendingKeysSet=new Set,this.subscribers=new Set,this.deferredKeys=[],j(t&&typeof t=="object"&&!Array.isArray(t),"defer() only accepts plain objects");let n;this.abortPromise=new Promise((l,o)=>n=o),this.controller=new AbortController;let a=()=>n(new Tt("Deferred data aborted"));this.unlistenAbortSignal=()=>this.controller.signal.removeEventListener("abort",a),this.controller.signal.addEventListener("abort",a),this.data=Object.entries(t).reduce((l,o)=>{let[c,u]=o;return Object.assign(l,{[c]:this.trackPromise(c,u)})},{}),this.done&&this.unlistenAbortSignal(),this.init=r}trackPromise(t,r){if(!(r instanceof Promise))return r;this.deferredKeys.push(t),this.pendingKeysSet.add(t);let n=Promise.race([r,this.abortPromise]).then(a=>this.onSettle(n,t,void 0,a),a=>this.onSettle(n,t,a));return n.catch(()=>{}),Object.defineProperty(n,"_tracked",{get:()=>!0}),n}onSettle(t,r,n,a){if(this.controller.signal.aborted&&n instanceof Tt)return this.unlistenAbortSignal(),Object.defineProperty(t,"_error",{get:()=>n}),Promise.reject(n);if(this.pendingKeysSet.delete(r),this.done&&this.unlistenAbortSignal(),n===void 0&&a===void 0){let l=new Error('Deferred data for key "'+r+'" resolved/rejected with `undefined`, you must resolve/reject with a value or `null`.');return Object.defineProperty(t,"_error",{get:()=>l}),this.emit(!1,r),Promise.reject(l)}return a===void 0?(Object.defineProperty(t,"_error",{get:()=>n}),this.emit(!1,r),Promise.reject(n)):(Object.defineProperty(t,"_data",{get:()=>a}),this.emit(!1,r),a)}emit(t,r){this.subscribers.forEach(n=>n(t,r))}subscribe(t){return this.subscribers.add(t),()=>this.subscribers.delete(t)}cancel(){this.controller.abort(),this.pendingKeysSet.forEach((t,r)=>this.pendingKeysSet.delete(r)),this.emit(!0)}async resolveData(t){let r=!1;if(!this.done){let n=()=>this.cancel();t.addEventListener("abort",n),r=await new Promise(a=>{this.subscribe(l=>{t.removeEventListener("abort",n),(l||this.done)&&a(l)})})}return r}get done(){return this.pendingKeysSet.size===0}get unwrappedData(){return j(this.data!==null&&this.done,"Can only unwrap data on initialized and settled deferreds"),Object.entries(this.data).reduce((t,r)=>{let[n,a]=r;return Object.assign(t,{[n]:aa(a)})},{})}get pendingKeys(){return Array.from(this.pendingKeysSet)}}function na(e){return e instanceof Promise&&e._tracked===!0}function aa(e){if(!na(e))return e;if(e._error)throw e._error;return e._data}const no=function(t,r){r===void 0&&(r=302);let n=r;typeof n=="number"?n={status:n}:typeof n.status>"u"&&(n.status=302);let a=new Headers(n.headers);return a.set("Location",t),new Response(null,H({},n,{headers:a}))};class jt{constructor(t,r,n,a){a===void 0&&(a=!1),this.status=t,this.statusText=r||"",this.internal=a,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}}function wt(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const zr=["post","put","patch","delete"],oa=new Set(zr),ia=["get",...zr],la=new Set(ia),sa=new Set([301,302,303,307,308]),ua=new Set([307,308]),Mt={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},da={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Ge={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},Ht=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,ca=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),Hr="remix-router-transitions";function ao(e){const t=e.window?e.window:typeof window<"u"?window:void 0,r=typeof t<"u"&&typeof t.document<"u"&&typeof t.document.createElement<"u",n=!r;j(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let a;if(e.mapRouteProperties)a=e.mapRouteProperties;else if(e.detectErrorBoundary){let i=e.detectErrorBoundary;a=s=>({hasErrorBoundary:i(s)})}else a=ca;let l={},o=qe(e.routes,a,void 0,l),c,u=e.basename||"/",h=e.unstable_dataStrategy||ga,v=e.unstable_patchRoutesOnNavigation,p=H({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1,v7_skipActionErrorRevalidation:!1},e.future),E=null,R=new Set,M=1e3,x=new Set,_=null,I=null,U=null,Z=e.hydrationData!=null,K=Le(o,e.history.location,u),ie=null;if(K==null&&!v){let i=ee(404,{pathname:e.history.location.pathname}),{matches:s,route:d}=Dr(o);K=s,ie={[d.id]:i}}K&&!e.hydrationData&&dt(K,o,e.history.location.pathname).active&&(K=null);let de;if(K)if(K.some(i=>i.route.lazy))de=!1;else if(!K.some(i=>i.route.loader))de=!0;else if(p.v7_partialHydration){let i=e.hydrationData?e.hydrationData.loaderData:null,s=e.hydrationData?e.hydrationData.errors:null,d=m=>m.route.loader?typeof m.route.loader=="function"&&m.route.loader.hydrate===!0?!1:i&&i[m.route.id]!==void 0||s&&s[m.route.id]!==void 0:!0;if(s){let m=K.findIndex(y=>s[y.route.id]!==void 0);de=K.slice(0,m+1).every(d)}else de=K.every(d)}else de=e.hydrationData!=null;else if(de=!1,K=[],p.v7_partialHydration){let i=dt(null,o,e.history.location.pathname);i.active&&i.matches&&(K=i.matches)}let We,f={historyAction:e.history.action,location:e.history.location,matches:K,initialized:de,navigation:Mt,restoreScrollPosition:e.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||ie,fetchers:new Map,blockers:new Map},z=G.Pop,Q=!1,B,te=!1,ae=new Map,le=null,je=!1,De=!1,nt=[],at=new Set,J=new Map,ot=0,Ye=-1,Oe=new Map,ce=new Set,Ae=new Map,Ke=new Map,fe=new Set,Se=new Map,Ce=new Map,Xr=new Map,it;function Qr(){if(E=e.history.listen(i=>{let{action:s,location:d,delta:m}=i;if(it){it(),it=void 0;return}ke(Ce.size===0||m!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let y=nr({currentLocation:f.location,nextLocation:d,historyAction:s});if(y&&m!=null){let D=new Promise(C=>{it=C});e.history.go(m*-1),st(y,{state:"blocked",location:d,proceed(){st(y,{state:"proceeding",proceed:void 0,reset:void 0,location:d}),D.then(()=>e.history.go(m))},reset(){let C=new Map(f.blockers);C.set(y,Ge),q({blockers:C})}});return}return _e(s,d)}),r){ja(t,ae);let i=()=>Oa(t,ae);t.addEventListener("pagehide",i),le=()=>t.removeEventListener("pagehide",i)}return f.initialized||_e(G.Pop,f.location,{initialHydration:!0}),We}function Zr(){E&&E(),le&&le(),R.clear(),B&&B.abort(),f.fetchers.forEach((i,s)=>lt(s)),f.blockers.forEach((i,s)=>rr(s))}function qr(i){return R.add(i),()=>R.delete(i)}function q(i,s){s===void 0&&(s={}),f=H({},f,i);let d=[],m=[];p.v7_fetcherPersist&&f.fetchers.forEach((y,D)=>{y.state==="idle"&&(fe.has(D)?m.push(D):d.push(D))}),[...R].forEach(y=>y(f,{deletedFetchers:m,unstable_viewTransitionOpts:s.viewTransitionOpts,unstable_flushSync:s.flushSync===!0})),p.v7_fetcherPersist&&(d.forEach(y=>f.fetchers.delete(y)),m.forEach(y=>lt(y)))}function Ue(i,s,d){var m,y;let{flushSync:D}=d===void 0?{}:d,C=f.actionData!=null&&f.navigation.formMethod!=null&&se(f.navigation.formMethod)&&f.navigation.state==="loading"&&((m=i.state)==null?void 0:m._isRedirect)!==!0,g;s.actionData?Object.keys(s.actionData).length>0?g=s.actionData:g=null:C?g=f.actionData:g=null;let S=s.loaderData?Pr(f.loaderData,s.loaderData,s.matches||[],s.errors):f.loaderData,w=f.blockers;w.size>0&&(w=new Map(w),w.forEach((N,k)=>w.set(k,Ge)));let P=Q===!0||f.navigation.formMethod!=null&&se(f.navigation.formMethod)&&((y=i.state)==null?void 0:y._isRedirect)!==!0;c&&(o=c,c=void 0),je||z===G.Pop||(z===G.Push?e.history.push(i,i.state):z===G.Replace&&e.history.replace(i,i.state));let A;if(z===G.Pop){let N=ae.get(f.location.pathname);N&&N.has(i.pathname)?A={currentLocation:f.location,nextLocation:i}:ae.has(i.pathname)&&(A={currentLocation:i,nextLocation:f.location})}else if(te){let N=ae.get(f.location.pathname);N?N.add(i.pathname):(N=new Set([i.pathname]),ae.set(f.location.pathname,N)),A={currentLocation:f.location,nextLocation:i}}q(H({},s,{actionData:g,loaderData:S,historyAction:z,location:i,initialized:!0,navigation:Mt,revalidation:"idle",restoreScrollPosition:or(i,s.matches||f.matches),preventScrollReset:P,blockers:w}),{viewTransitionOpts:A,flushSync:D===!0}),z=G.Pop,Q=!1,te=!1,je=!1,De=!1,nt=[]}async function Gt(i,s){if(typeof i=="number"){e.history.go(i);return}let d=Ot(f.location,f.matches,u,p.v7_prependBasename,i,p.v7_relativeSplatPath,s==null?void 0:s.fromRouteId,s==null?void 0:s.relative),{path:m,submission:y,error:D}=gr(p.v7_normalizeFormMethod,!1,d,s),C=f.location,g=Ze(f.location,m,s&&s.state);g=H({},g,e.history.encodeLocation(g));let S=s&&s.replace!=null?s.replace:void 0,w=G.Push;S===!0?w=G.Replace:S===!1||y!=null&&se(y.formMethod)&&y.formAction===f.location.pathname+f.location.search&&(w=G.Replace);let P=s&&"preventScrollReset"in s?s.preventScrollReset===!0:void 0,A=(s&&s.unstable_flushSync)===!0,N=nr({currentLocation:C,nextLocation:g,historyAction:w});if(N){st(N,{state:"blocked",location:g,proceed(){st(N,{state:"proceeding",proceed:void 0,reset:void 0,location:g}),Gt(i,s)},reset(){let k=new Map(f.blockers);k.set(N,Ge),q({blockers:k})}});return}return await _e(w,g,{submission:y,pendingError:D,preventScrollReset:P,replace:s&&s.replace,enableViewTransition:s&&s.unstable_viewTransition,flushSync:A})}function en(){if(xt(),q({revalidation:"loading"}),f.navigation.state!=="submitting"){if(f.navigation.state==="idle"){_e(f.historyAction,f.location,{startUninterruptedRevalidation:!0});return}_e(z||f.historyAction,f.navigation.location,{overrideNavigation:f.navigation,enableViewTransition:te===!0})}}async function _e(i,s,d){B&&B.abort(),B=null,z=i,je=(d&&d.startUninterruptedRevalidation)===!0,cn(f.location,f.matches),Q=(d&&d.preventScrollReset)===!0,te=(d&&d.enableViewTransition)===!0;let m=c||o,y=d&&d.overrideNavigation,D=Le(m,s,u),C=(d&&d.flushSync)===!0,g=dt(D,m,s.pathname);if(g.active&&g.matches&&(D=g.matches),!D){let{error:O,notFoundMatches:X,route:V}=Dt(s.pathname);Ue(s,{matches:X,loaderData:{},errors:{[V.id]:O}},{flushSync:C});return}if(f.initialized&&!De&&Pa(f.location,s)&&!(d&&d.submission&&se(d.submission.formMethod))){Ue(s,{matches:D},{flushSync:C});return}B=new AbortController;let S=Fe(e.history,s,B.signal,d&&d.submission),w;if(d&&d.pendingError)w=[Be(D).route.id,{type:F.error,error:d.pendingError}];else if(d&&d.submission&&se(d.submission.formMethod)){let O=await tn(S,s,d.submission,D,g.active,{replace:d.replace,flushSync:C});if(O.shortCircuited)return;if(O.pendingActionResult){let[X,V]=O.pendingActionResult;if(ne(V)&&wt(V.error)&&V.error.status===404){B=null,Ue(s,{matches:O.matches,loaderData:{},errors:{[X]:V.error}});return}}D=O.matches||D,w=O.pendingActionResult,y=Lt(s,d.submission),C=!1,g.active=!1,S=Fe(e.history,S.url,S.signal)}let{shortCircuited:P,matches:A,loaderData:N,errors:k}=await rn(S,s,D,g.active,y,d&&d.submission,d&&d.fetcherSubmission,d&&d.replace,d&&d.initialHydration===!0,C,w);P||(B=null,Ue(s,H({matches:A||D},xr(w),{loaderData:N,errors:k})))}async function tn(i,s,d,m,y,D){D===void 0&&(D={}),xt();let C=La(s,d);if(q({navigation:C},{flushSync:D.flushSync===!0}),y){let w=await ct(m,s.pathname,i.signal);if(w.type==="aborted")return{shortCircuited:!0};if(w.type==="error"){let{boundaryId:P,error:A}=ut(s.pathname,w);return{matches:w.partialMatches,pendingActionResult:[P,{type:F.error,error:A}]}}else if(w.matches)m=w.matches;else{let{notFoundMatches:P,error:A,route:N}=Dt(s.pathname);return{matches:P,pendingActionResult:[N.id,{type:F.error,error:A}]}}}let g,S=Qe(m,s);if(!S.route.action&&!S.route.lazy)g={type:F.error,error:ee(405,{method:i.method,pathname:s.pathname,routeId:S.route.id})};else if(g=(await Je("action",f,i,[S],m,null))[S.route.id],i.signal.aborted)return{shortCircuited:!0};if(Te(g)){let w;return D&&D.replace!=null?w=D.replace:w=Er(g.response.headers.get("Location"),new URL(i.url),u)===f.location.pathname+f.location.search,await Me(i,g,!0,{submission:d,replace:w}),{shortCircuited:!0}}if(Pe(g))throw ee(400,{type:"defer-action"});if(ne(g)){let w=Be(m,S.route.id);return(D&&D.replace)!==!0&&(z=G.Push),{matches:m,pendingActionResult:[w.route.id,g]}}return{matches:m,pendingActionResult:[S.route.id,g]}}async function rn(i,s,d,m,y,D,C,g,S,w,P){let A=y||Lt(s,D),N=D||C||Cr(A),k=!je&&(!p.v7_partialHydration||!S);if(m){if(k){let W=Xt(P);q(H({navigation:A},W!==void 0?{actionData:W}:{}),{flushSync:w})}let L=await ct(d,s.pathname,i.signal);if(L.type==="aborted")return{shortCircuited:!0};if(L.type==="error"){let{boundaryId:W,error:re}=ut(s.pathname,L);return{matches:L.partialMatches,loaderData:{},errors:{[W]:re}}}else if(L.matches)d=L.matches;else{let{error:W,notFoundMatches:re,route:Y}=Dt(s.pathname);return{matches:re,loaderData:{},errors:{[Y.id]:W}}}}let O=c||o,[X,V]=yr(e.history,f,d,N,s,p.v7_partialHydration&&S===!0,p.v7_skipActionErrorRevalidation,De,nt,at,fe,Ae,ce,O,u,P);if(St(L=>!(d&&d.some(W=>W.route.id===L))||X&&X.some(W=>W.route.id===L)),Ye=++ot,X.length===0&&V.length===0){let L=er();return Ue(s,H({matches:d,loaderData:{},errors:P&&ne(P[1])?{[P[0]]:P[1].error}:null},xr(P),L?{fetchers:new Map(f.fetchers)}:{}),{flushSync:w}),{shortCircuited:!0}}if(k){let L={};if(!m){L.navigation=A;let W=Xt(P);W!==void 0&&(L.actionData=W)}V.length>0&&(L.fetchers=nn(V)),q(L,{flushSync:w})}V.forEach(L=>{J.has(L.key)&&Ee(L.key),L.controller&&J.set(L.key,L.controller)});let Ve=()=>V.forEach(L=>Ee(L.key));B&&B.signal.addEventListener("abort",Ve);let{loaderResults:pe,fetcherResults:Ne}=await Qt(f,d,X,V,i);if(i.signal.aborted)return{shortCircuited:!0};B&&B.signal.removeEventListener("abort",Ve),V.forEach(L=>J.delete(L.key));let Re=gt(pe);if(Re)return await Me(i,Re.result,!0,{replace:g}),{shortCircuited:!0};if(Re=gt(Ne),Re)return ce.add(Re.key),await Me(i,Re.result,!0,{replace:g}),{shortCircuited:!0};let{loaderData:ft,errors:me}=wr(f,d,X,pe,P,V,Ne,Se);Se.forEach((L,W)=>{L.subscribe(re=>{(re||L.done)&&Se.delete(W)})}),p.v7_partialHydration&&S&&f.errors&&Object.entries(f.errors).filter(L=>{let[W]=L;return!X.some(re=>re.route.id===W)}).forEach(L=>{let[W,re]=L;me=Object.assign(me||{},{[W]:re})});let ht=er(),pt=tr(Ye),mt=ht||pt||V.length>0;return H({matches:d,loaderData:ft,errors:me},mt?{fetchers:new Map(f.fetchers)}:{})}function Xt(i){if(i&&!ne(i[1]))return{[i[0]]:i[1].data};if(f.actionData)return Object.keys(f.actionData).length===0?null:f.actionData}function nn(i){return i.forEach(s=>{let d=f.fetchers.get(s.key),m=Xe(void 0,d?d.data:void 0);f.fetchers.set(s.key,m)}),new Map(f.fetchers)}function an(i,s,d,m){if(n)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");J.has(i)&&Ee(i);let y=(m&&m.unstable_flushSync)===!0,D=c||o,C=Ot(f.location,f.matches,u,p.v7_prependBasename,d,p.v7_relativeSplatPath,s,m==null?void 0:m.relative),g=Le(D,C,u),S=dt(g,D,C);if(S.active&&S.matches&&(g=S.matches),!g){he(i,s,ee(404,{pathname:C}),{flushSync:y});return}let{path:w,submission:P,error:A}=gr(p.v7_normalizeFormMethod,!0,C,m);if(A){he(i,s,A,{flushSync:y});return}let N=Qe(g,w);if(Q=(m&&m.preventScrollReset)===!0,P&&se(P.formMethod)){on(i,s,w,N,g,S.active,y,P);return}Ae.set(i,{routeId:s,path:w}),ln(i,s,w,N,g,S.active,y,P)}async function on(i,s,d,m,y,D,C,g){xt(),Ae.delete(i);function S(Y){if(!Y.route.action&&!Y.route.lazy){let ve=ee(405,{method:g.formMethod,pathname:d,routeId:s});return he(i,s,ve,{flushSync:C}),!0}return!1}if(!D&&S(m))return;let w=f.fetchers.get(i);be(i,Ta(g,w),{flushSync:C});let P=new AbortController,A=Fe(e.history,d,P.signal,g);if(D){let Y=await ct(y,d,A.signal);if(Y.type==="aborted")return;if(Y.type==="error"){let{error:ve}=ut(d,Y);he(i,s,ve,{flushSync:C});return}else if(Y.matches){if(y=Y.matches,m=Qe(y,d),S(m))return}else{he(i,s,ee(404,{pathname:d}),{flushSync:C});return}}J.set(i,P);let N=ot,O=(await Je("action",f,A,[m],y,i))[m.route.id];if(A.signal.aborted){J.get(i)===P&&J.delete(i);return}if(p.v7_fetcherPersist&&fe.has(i)){if(Te(O)||ne(O)){be(i,we(void 0));return}}else{if(Te(O))if(J.delete(i),Ye>N){be(i,we(void 0));return}else return ce.add(i),be(i,Xe(g)),Me(A,O,!1,{fetcherSubmission:g});if(ne(O)){he(i,s,O.error);return}}if(Pe(O))throw ee(400,{type:"defer-action"});let X=f.navigation.location||f.location,V=Fe(e.history,X,P.signal),Ve=c||o,pe=f.navigation.state!=="idle"?Le(Ve,f.navigation.location,u):f.matches;j(pe,"Didn't find any matches after fetcher action");let Ne=++ot;Oe.set(i,Ne);let Re=Xe(g,O.data);f.fetchers.set(i,Re);let[ft,me]=yr(e.history,f,pe,g,X,!1,p.v7_skipActionErrorRevalidation,De,nt,at,fe,Ae,ce,Ve,u,[m.route.id,O]);me.filter(Y=>Y.key!==i).forEach(Y=>{let ve=Y.key,lr=f.fetchers.get(ve),pn=Xe(void 0,lr?lr.data:void 0);f.fetchers.set(ve,pn),J.has(ve)&&Ee(ve),Y.controller&&J.set(ve,Y.controller)}),q({fetchers:new Map(f.fetchers)});let ht=()=>me.forEach(Y=>Ee(Y.key));P.signal.addEventListener("abort",ht);let{loaderResults:pt,fetcherResults:mt}=await Qt(f,pe,ft,me,V);if(P.signal.aborted)return;P.signal.removeEventListener("abort",ht),Oe.delete(i),J.delete(i),me.forEach(Y=>J.delete(Y.key));let L=gt(pt);if(L)return Me(V,L.result,!1);if(L=gt(mt),L)return ce.add(L.key),Me(V,L.result,!1);let{loaderData:W,errors:re}=wr(f,pe,ft,pt,void 0,me,mt,Se);if(f.fetchers.has(i)){let Y=we(O.data);f.fetchers.set(i,Y)}tr(Ne),f.navigation.state==="loading"&&Ne>Ye?(j(z,"Expected pending action"),B&&B.abort(),Ue(f.navigation.location,{matches:pe,loaderData:W,errors:re,fetchers:new Map(f.fetchers)})):(q({errors:re,loaderData:Pr(f.loaderData,W,pe,re),fetchers:new Map(f.fetchers)}),De=!1)}async function ln(i,s,d,m,y,D,C,g){let S=f.fetchers.get(i);be(i,Xe(g,S?S.data:void 0),{flushSync:C});let w=new AbortController,P=Fe(e.history,d,w.signal);if(D){let O=await ct(y,d,P.signal);if(O.type==="aborted")return;if(O.type==="error"){let{error:X}=ut(d,O);he(i,s,X,{flushSync:C});return}else if(O.matches)y=O.matches,m=Qe(y,d);else{he(i,s,ee(404,{pathname:d}),{flushSync:C});return}}J.set(i,w);let A=ot,k=(await Je("loader",f,P,[m],y,i))[m.route.id];if(Pe(k)&&(k=await $t(k,P.signal,!0)||k),J.get(i)===w&&J.delete(i),!P.signal.aborted){if(fe.has(i)){be(i,we(void 0));return}if(Te(k))if(Ye>A){be(i,we(void 0));return}else{ce.add(i),await Me(P,k,!1);return}if(ne(k)){he(i,s,k.error);return}j(!Pe(k),"Unhandled fetcher deferred data"),be(i,we(k.data))}}async function Me(i,s,d,m){let{submission:y,fetcherSubmission:D,replace:C}=m===void 0?{}:m;s.response.headers.has("X-Remix-Revalidate")&&(De=!0);let g=s.response.headers.get("Location");j(g,"Expected a Location header on the redirect Response"),g=Er(g,new URL(i.url),u);let S=Ze(f.location,g,{_isRedirect:!0});if(r){let O=!1;if(s.response.headers.has("X-Remix-Reload-Document"))O=!0;else if(Ht.test(g)){const X=e.history.createURL(g);O=X.origin!==t.location.origin||tt(X.pathname,u)==null}if(O){C?t.location.replace(g):t.location.assign(g);return}}B=null;let w=C===!0||s.response.headers.has("X-Remix-Replace")?G.Replace:G.Push,{formMethod:P,formAction:A,formEncType:N}=f.navigation;!y&&!D&&P&&A&&N&&(y=Cr(f.navigation));let k=y||D;if(ua.has(s.response.status)&&k&&se(k.formMethod))await _e(w,S,{submission:H({},k,{formAction:g}),preventScrollReset:Q,enableViewTransition:d?te:void 0});else{let O=Lt(S,y);await _e(w,S,{overrideNavigation:O,fetcherSubmission:D,preventScrollReset:Q,enableViewTransition:d?te:void 0})}}async function Je(i,s,d,m,y,D){let C,g={};try{C=await ya(h,i,s,d,m,y,D,l,a)}catch(S){return m.forEach(w=>{g[w.route.id]={type:F.error,error:S}}),g}for(let[S,w]of Object.entries(C))if(Da(w)){let P=w.result;g[S]={type:F.redirect,response:Ra(P,d,S,y,u,p.v7_relativeSplatPath)}}else g[S]=await Ea(w);return g}async function Qt(i,s,d,m,y){let D=i.matches,C=Je("loader",i,y,d,s,null),g=Promise.all(m.map(async P=>{if(P.matches&&P.match&&P.controller){let N=(await Je("loader",i,Fe(e.history,P.path,P.controller.signal),[P.match],P.matches,P.key))[P.match.route.id];return{[P.key]:N}}else return Promise.resolve({[P.key]:{type:F.error,error:ee(404,{pathname:P.path})}})})),S=await C,w=(await g).reduce((P,A)=>Object.assign(P,A),{});return await Promise.all([_a(s,S,y.signal,D,i.loaderData),Ma(s,w,m)]),{loaderResults:S,fetcherResults:w}}function xt(){De=!0,nt.push(...St()),Ae.forEach((i,s)=>{J.has(s)&&(at.add(s),Ee(s))})}function be(i,s,d){d===void 0&&(d={}),f.fetchers.set(i,s),q({fetchers:new Map(f.fetchers)},{flushSync:(d&&d.flushSync)===!0})}function he(i,s,d,m){m===void 0&&(m={});let y=Be(f.matches,s);lt(i),q({errors:{[y.route.id]:d},fetchers:new Map(f.fetchers)},{flushSync:(m&&m.flushSync)===!0})}function Zt(i){return p.v7_fetcherPersist&&(Ke.set(i,(Ke.get(i)||0)+1),fe.has(i)&&fe.delete(i)),f.fetchers.get(i)||da}function lt(i){let s=f.fetchers.get(i);J.has(i)&&!(s&&s.state==="loading"&&Oe.has(i))&&Ee(i),Ae.delete(i),Oe.delete(i),ce.delete(i),fe.delete(i),at.delete(i),f.fetchers.delete(i)}function sn(i){if(p.v7_fetcherPersist){let s=(Ke.get(i)||0)-1;s<=0?(Ke.delete(i),fe.add(i)):Ke.set(i,s)}else lt(i);q({fetchers:new Map(f.fetchers)})}function Ee(i){let s=J.get(i);j(s,"Expected fetch controller: "+i),s.abort(),J.delete(i)}function qt(i){for(let s of i){let d=Zt(s),m=we(d.data);f.fetchers.set(s,m)}}function er(){let i=[],s=!1;for(let d of ce){let m=f.fetchers.get(d);j(m,"Expected fetcher: "+d),m.state==="loading"&&(ce.delete(d),i.push(d),s=!0)}return qt(i),s}function tr(i){let s=[];for(let[d,m]of Oe)if(m<i){let y=f.fetchers.get(d);j(y,"Expected fetcher: "+d),y.state==="loading"&&(Ee(d),Oe.delete(d),s.push(d))}return qt(s),s.length>0}function un(i,s){let d=f.blockers.get(i)||Ge;return Ce.get(i)!==s&&Ce.set(i,s),d}function rr(i){f.blockers.delete(i),Ce.delete(i)}function st(i,s){let d=f.blockers.get(i)||Ge;j(d.state==="unblocked"&&s.state==="blocked"||d.state==="blocked"&&s.state==="blocked"||d.state==="blocked"&&s.state==="proceeding"||d.state==="blocked"&&s.state==="unblocked"||d.state==="proceeding"&&s.state==="unblocked","Invalid blocker state transition: "+d.state+" -> "+s.state);let m=new Map(f.blockers);m.set(i,s),q({blockers:m})}function nr(i){let{currentLocation:s,nextLocation:d,historyAction:m}=i;if(Ce.size===0)return;Ce.size>1&&ke(!1,"A router only supports one blocker at a time");let y=Array.from(Ce.entries()),[D,C]=y[y.length-1],g=f.blockers.get(D);if(!(g&&g.state==="proceeding")&&C({currentLocation:s,nextLocation:d,historyAction:m}))return D}function Dt(i){let s=ee(404,{pathname:i}),d=c||o,{matches:m,route:y}=Dr(d);return St(),{notFoundMatches:m,route:y,error:s}}function ut(i,s){return{boundaryId:Be(s.partialMatches).route.id,error:ee(400,{type:"route-discovery",pathname:i,message:s.error!=null&&"message"in s.error?s.error:String(s.error)})}}function St(i){let s=[];return Se.forEach((d,m)=>{(!i||i(m))&&(d.cancel(),s.push(m),Se.delete(m))}),s}function dn(i,s,d){if(_=i,U=s,I=d||null,!Z&&f.navigation===Mt){Z=!0;let m=or(f.location,f.matches);m!=null&&q({restoreScrollPosition:m})}return()=>{_=null,U=null,I=null}}function ar(i,s){return I&&I(i,s.map(m=>Fr(m,f.loaderData)))||i.key}function cn(i,s){if(_&&U){let d=ar(i,s);_[d]=U()}}function or(i,s){if(_){let d=ar(i,s),m=_[d];if(typeof m=="number")return m}return null}function dt(i,s,d){if(v){if(x.has(d))return{active:!1,matches:i};if(i){if(Object.keys(i[0].params).length>0)return{active:!0,matches:yt(s,d,u,!0)}}else return{active:!0,matches:yt(s,d,u,!0)||[]}}return{active:!1,matches:null}}async function ct(i,s,d){let m=i;for(;;){let y=c==null,D=c||o;try{await ma(v,s,m,D,l,a,Xr,d)}catch(S){return{type:"error",error:S,partialMatches:m}}finally{y&&(o=[...o])}if(d.aborted)return{type:"aborted"};let C=Le(D,s,u);if(C)return ir(s,x),{type:"success",matches:C};let g=yt(D,s,u,!0);if(!g||m.length===g.length&&m.every((S,w)=>S.route.id===g[w].route.id))return ir(s,x),{type:"success",matches:null};m=g}}function ir(i,s){if(s.size>=M){let d=s.values().next().value;s.delete(d)}s.add(i)}function fn(i){l={},c=qe(i,a,void 0,l)}function hn(i,s){let d=c==null;Wr(i,s,c||o,l,a),d&&(o=[...o],q({}))}return We={get basename(){return u},get future(){return p},get state(){return f},get routes(){return o},get window(){return t},initialize:Qr,subscribe:qr,enableScrollRestoration:dn,navigate:Gt,fetch:an,revalidate:en,createHref:i=>e.history.createHref(i),encodeLocation:i=>e.history.encodeLocation(i),getFetcher:Zt,deleteFetcher:sn,dispose:Zr,getBlocker:un,deleteBlocker:rr,patchRoutes:hn,_internalFetchControllers:J,_internalActiveDeferreds:Se,_internalSetRoutes:fn},We}function fa(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function Ot(e,t,r,n,a,l,o,c){let u,h;if(o){u=[];for(let p of t)if(u.push(p),p.route.id===o){h=p;break}}else u=t,h=t[t.length-1];let v=zt(a||".",kt(u,l),tt(e.pathname,r)||e.pathname,c==="path");return a==null&&(v.search=e.search,v.hash=e.hash),(a==null||a===""||a===".")&&h&&h.route.index&&!Wt(v.search)&&(v.search=v.search?v.search.replace(/^\?/,"?index&"):"?index"),n&&r!=="/"&&(v.pathname=v.pathname==="/"?r:ge([r,v.pathname])),et(v)}function gr(e,t,r,n){if(!n||!fa(n))return{path:r};if(n.formMethod&&!Ca(n.formMethod))return{path:r,error:ee(405,{method:n.formMethod})};let a=()=>({path:r,error:ee(400,{type:"invalid-body"})}),l=n.formMethod||"get",o=e?l.toUpperCase():l.toLowerCase(),c=Yr(r);if(n.body!==void 0){if(n.formEncType==="text/plain"){if(!se(o))return a();let E=typeof n.body=="string"?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce((R,M)=>{let[x,_]=M;return""+R+x+"="+_+`
27
+ `},""):String(n.body);return{path:r,submission:{formMethod:o,formAction:c,formEncType:n.formEncType,formData:void 0,json:void 0,text:E}}}else if(n.formEncType==="application/json"){if(!se(o))return a();try{let E=typeof n.body=="string"?JSON.parse(n.body):n.body;return{path:r,submission:{formMethod:o,formAction:c,formEncType:n.formEncType,formData:void 0,json:E,text:void 0}}}catch{return a()}}}j(typeof FormData=="function","FormData is not available in this environment");let u,h;if(n.formData)u=At(n.formData),h=n.formData;else if(n.body instanceof FormData)u=At(n.body),h=n.body;else if(n.body instanceof URLSearchParams)u=n.body,h=Rr(u);else if(n.body==null)u=new URLSearchParams,h=new FormData;else try{u=new URLSearchParams(n.body),h=Rr(u)}catch{return a()}let v={formMethod:o,formAction:c,formEncType:n&&n.formEncType||"application/x-www-form-urlencoded",formData:h,json:void 0,text:void 0};if(se(v.formMethod))return{path:r,submission:v};let p=xe(r);return t&&p.search&&Wt(p.search)&&u.append("index",""),p.search="?"+u,{path:et(p),submission:v}}function ha(e,t){let r=e;if(t){let n=e.findIndex(a=>a.route.id===t);n>=0&&(r=e.slice(0,n))}return r}function yr(e,t,r,n,a,l,o,c,u,h,v,p,E,R,M,x){let _=x?ne(x[1])?x[1].error:x[1].data:void 0,I=e.createURL(t.location),U=e.createURL(a),Z=x&&ne(x[1])?x[0]:void 0,K=Z?ha(r,Z):r,ie=x?x[1].statusCode:void 0,de=o&&ie&&ie>=400,We=K.filter((z,Q)=>{let{route:B}=z;if(B.lazy)return!0;if(B.loader==null)return!1;if(l)return typeof B.loader!="function"||B.loader.hydrate?!0:t.loaderData[B.id]===void 0&&(!t.errors||t.errors[B.id]===void 0);if(pa(t.loaderData,t.matches[Q],z)||u.some(le=>le===z.route.id))return!0;let te=t.matches[Q],ae=z;return br(z,H({currentUrl:I,currentParams:te.params,nextUrl:U,nextParams:ae.params},n,{actionResult:_,actionStatus:ie,defaultShouldRevalidate:de?!1:c||I.pathname+I.search===U.pathname+U.search||I.search!==U.search||$r(te,ae)}))}),f=[];return p.forEach((z,Q)=>{if(l||!r.some(je=>je.route.id===z.routeId)||v.has(Q))return;let B=Le(R,z.path,M);if(!B){f.push({key:Q,routeId:z.routeId,path:z.path,matches:null,match:null,controller:null});return}let te=t.fetchers.get(Q),ae=Qe(B,z.path),le=!1;E.has(Q)?le=!1:h.has(Q)?(h.delete(Q),le=!0):te&&te.state!=="idle"&&te.data===void 0?le=c:le=br(ae,H({currentUrl:I,currentParams:t.matches[t.matches.length-1].params,nextUrl:U,nextParams:r[r.length-1].params},n,{actionResult:_,actionStatus:ie,defaultShouldRevalidate:de?!1:c})),le&&f.push({key:Q,routeId:z.routeId,path:z.path,matches:B,match:ae,controller:new AbortController})}),[We,f]}function pa(e,t,r){let n=!t||r.route.id!==t.route.id,a=e[r.route.id]===void 0;return n||a}function $r(e,t){let r=e.route.path;return e.pathname!==t.pathname||r!=null&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function br(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if(typeof r=="boolean")return r}return t.defaultShouldRevalidate}async function ma(e,t,r,n,a,l,o,c){let u=[t,...r.map(h=>h.route.id)].join("-");try{let h=o.get(u);h||(h=e({path:t,matches:r,patch:(v,p)=>{c.aborted||Wr(v,p,n,a,l)}}),o.set(u,h)),h&&xa(h)&&await h}finally{o.delete(u)}}function Wr(e,t,r,n,a){if(e){var l;let o=n[e];j(o,"No route found to patch children into: routeId = "+e);let c=qe(t,a,[e,"patch",String(((l=o.children)==null?void 0:l.length)||"0")],n);o.children?o.children.push(...c):o.children=c}else{let o=qe(t,a,["patch",String(r.length||"0")],n);r.push(...o)}}async function va(e,t,r){if(!e.lazy)return;let n=await e.lazy();if(!e.lazy)return;let a=r[e.id];j(a,"No route found in manifest");let l={};for(let o in n){let u=a[o]!==void 0&&o!=="hasErrorBoundary";ke(!u,'Route "'+a.id+'" has a static property "'+o+'" defined but its lazy function is also returning a value for this property. '+('The lazy route property "'+o+'" will be ignored.')),!u&&!Fn.has(o)&&(l[o]=n[o])}Object.assign(a,l),Object.assign(a,H({},t(a),{lazy:void 0}))}async function ga(e){let{matches:t}=e,r=t.filter(a=>a.shouldLoad);return(await Promise.all(r.map(a=>a.resolve()))).reduce((a,l,o)=>Object.assign(a,{[r[o].route.id]:l}),{})}async function ya(e,t,r,n,a,l,o,c,u,h){let v=l.map(R=>R.route.lazy?va(R.route,u,c):void 0),p=l.map((R,M)=>{let x=v[M],_=a.some(U=>U.route.id===R.route.id);return H({},R,{shouldLoad:_,resolve:async U=>(U&&n.method==="GET"&&(R.route.lazy||R.route.loader)&&(_=!0),_?ba(t,n,R,x,U,h):Promise.resolve({type:F.data,result:void 0}))})}),E=await e({matches:p,request:n,params:l[0].params,fetcherKey:o,context:h});try{await Promise.all(v)}catch{}return E}async function ba(e,t,r,n,a,l){let o,c,u=h=>{let v,p=new Promise((M,x)=>v=x);c=()=>v(),t.signal.addEventListener("abort",c);let E=M=>typeof h!="function"?Promise.reject(new Error("You cannot call the handler for a route which defines a boolean "+('"'+e+'" [routeId: '+r.route.id+"]"))):h({request:t,params:r.params,context:l},...M!==void 0?[M]:[]),R=(async()=>{try{return{type:"data",result:await(a?a(x=>E(x)):E())}}catch(M){return{type:"error",result:M}}})();return Promise.race([R,p])};try{let h=r.route[e];if(n)if(h){let v,[p]=await Promise.all([u(h).catch(E=>{v=E}),n]);if(v!==void 0)throw v;o=p}else if(await n,h=r.route[e],h)o=await u(h);else if(e==="action"){let v=new URL(t.url),p=v.pathname+v.search;throw ee(405,{method:t.method,pathname:p,routeId:r.route.id})}else return{type:F.data,result:void 0};else if(h)o=await u(h);else{let v=new URL(t.url),p=v.pathname+v.search;throw ee(404,{pathname:p})}j(o.result!==void 0,"You defined "+(e==="action"?"an action":"a loader")+" for route "+('"'+r.route.id+"\" but didn't return anything from your `"+e+"` ")+"function. Please return a value or `null`.")}catch(h){return{type:F.error,result:h}}finally{c&&t.signal.removeEventListener("abort",c)}return o}async function Ea(e){let{result:t,type:r}=e;if(Kr(t)){let h;try{let v=t.headers.get("Content-Type");v&&/\bapplication\/json\b/.test(v)?t.body==null?h=null:h=await t.json():h=await t.text()}catch(v){return{type:F.error,error:v}}return r===F.error?{type:F.error,error:new jt(t.status,t.statusText,h),statusCode:t.status,headers:t.headers}:{type:F.data,data:h,statusCode:t.status,headers:t.headers}}if(r===F.error){if(Sr(t)){var n;if(t.data instanceof Error){var a;return{type:F.error,error:t.data,statusCode:(a=t.init)==null?void 0:a.status}}t=new jt(((n=t.init)==null?void 0:n.status)||500,void 0,t.data)}return{type:F.error,error:t,statusCode:wt(t)?t.status:void 0}}if(Sa(t)){var l,o;return{type:F.deferred,deferredData:t,statusCode:(l=t.init)==null?void 0:l.status,headers:((o=t.init)==null?void 0:o.headers)&&new Headers(t.init.headers)}}if(Sr(t)){var c,u;return{type:F.data,data:t.data,statusCode:(c=t.init)==null?void 0:c.status,headers:(u=t.init)!=null&&u.headers?new Headers(t.init.headers):void 0}}return{type:F.data,data:t}}function Ra(e,t,r,n,a,l){let o=e.headers.get("Location");if(j(o,"Redirects returned/thrown from loaders/actions must have a Location header"),!Ht.test(o)){let c=n.slice(0,n.findIndex(u=>u.route.id===r)+1);o=Ot(new URL(t.url),c,a,!0,o,l),e.headers.set("Location",o)}return e}function Er(e,t,r){if(Ht.test(e)){let n=e,a=n.startsWith("//")?new URL(t.protocol+n):new URL(n),l=tt(a.pathname,r)!=null;if(a.origin===t.origin&&l)return a.pathname+a.search+a.hash}return e}function Fe(e,t,r,n){let a=e.createURL(Yr(t)).toString(),l={signal:r};if(n&&se(n.formMethod)){let{formMethod:o,formEncType:c}=n;l.method=o.toUpperCase(),c==="application/json"?(l.headers=new Headers({"Content-Type":c}),l.body=JSON.stringify(n.json)):c==="text/plain"?l.body=n.text:c==="application/x-www-form-urlencoded"&&n.formData?l.body=At(n.formData):l.body=n.formData}return new Request(a,l)}function At(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,typeof n=="string"?n:n.name);return t}function Rr(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function wa(e,t,r,n,a){let l={},o=null,c,u=!1,h={},v=r&&ne(r[1])?r[1].error:void 0;return e.forEach(p=>{if(!(p.route.id in t))return;let E=p.route.id,R=t[E];if(j(!Te(R),"Cannot handle redirect results in processLoaderData"),ne(R)){let M=R.error;v!==void 0&&(M=v,v=void 0),o=o||{};{let x=Be(e,E);o[x.route.id]==null&&(o[x.route.id]=M)}l[E]=void 0,u||(u=!0,c=wt(R.error)?R.error.status:500),R.headers&&(h[E]=R.headers)}else Pe(R)?(n.set(E,R.deferredData),l[E]=R.deferredData.data,R.statusCode!=null&&R.statusCode!==200&&!u&&(c=R.statusCode),R.headers&&(h[E]=R.headers)):(l[E]=R.data,R.statusCode&&R.statusCode!==200&&!u&&(c=R.statusCode),R.headers&&(h[E]=R.headers))}),v!==void 0&&r&&(o={[r[0]]:v},l[r[0]]=void 0),{loaderData:l,errors:o,statusCode:c||200,loaderHeaders:h}}function wr(e,t,r,n,a,l,o,c){let{loaderData:u,errors:h}=wa(t,n,a,c);return l.forEach(v=>{let{key:p,match:E,controller:R}=v,M=o[p];if(j(M,"Did not find corresponding fetcher result"),!(R&&R.signal.aborted))if(ne(M)){let x=Be(e.matches,E==null?void 0:E.route.id);h&&h[x.route.id]||(h=H({},h,{[x.route.id]:M.error})),e.fetchers.delete(p)}else if(Te(M))j(!1,"Unhandled fetcher revalidation redirect");else if(Pe(M))j(!1,"Unhandled fetcher deferred data");else{let x=we(M.data);e.fetchers.set(p,x)}}),{loaderData:u,errors:h}}function Pr(e,t,r,n){let a=H({},t);for(let l of r){let o=l.route.id;if(t.hasOwnProperty(o)?t[o]!==void 0&&(a[o]=t[o]):e[o]!==void 0&&l.route.loader&&(a[o]=e[o]),n&&n.hasOwnProperty(o))break}return a}function xr(e){return e?ne(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function Be(e,t){return(t?e.slice(0,e.findIndex(n=>n.route.id===t)+1):[...e]).reverse().find(n=>n.route.hasErrorBoundary===!0)||e[0]}function Dr(e){let t=e.length===1?e[0]:e.find(r=>r.index||!r.path||r.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function ee(e,t){let{pathname:r,routeId:n,method:a,type:l,message:o}=t===void 0?{}:t,c="Unknown Server Error",u="Unknown @remix-run/router error";return e===400?(c="Bad Request",l==="route-discovery"?u='Unable to match URL "'+r+'" - the `unstable_patchRoutesOnNavigation()` '+(`function threw the following error:
28
+ `+o):a&&r&&n?u="You made a "+a+' request to "'+r+'" but '+('did not provide a `loader` for route "'+n+'", ')+"so there is no way to handle the request.":l==="defer-action"?u="defer() is not supported in actions":l==="invalid-body"&&(u="Unable to encode submission body")):e===403?(c="Forbidden",u='Route "'+n+'" does not match URL "'+r+'"'):e===404?(c="Not Found",u='No route matches URL "'+r+'"'):e===405&&(c="Method Not Allowed",a&&r&&n?u="You made a "+a.toUpperCase()+' request to "'+r+'" but '+('did not provide an `action` for route "'+n+'", ')+"so there is no way to handle the request.":a&&(u='Invalid request method "'+a.toUpperCase()+'"')),new jt(e||500,c,new Error(u),!0)}function gt(e){let t=Object.entries(e);for(let r=t.length-1;r>=0;r--){let[n,a]=t[r];if(Te(a))return{key:n,result:a}}}function Yr(e){let t=typeof e=="string"?xe(e):e;return et(H({},t,{hash:""}))}function Pa(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function xa(e){return typeof e=="object"&&e!=null&&"then"in e}function Da(e){return Kr(e.result)&&sa.has(e.result.status)}function Pe(e){return e.type===F.deferred}function ne(e){return e.type===F.error}function Te(e){return(e&&e.type)===F.redirect}function Sr(e){return typeof e=="object"&&e!=null&&"type"in e&&"data"in e&&"init"in e&&e.type==="DataWithResponseInit"}function Sa(e){let t=e;return t&&typeof t=="object"&&typeof t.data=="object"&&typeof t.subscribe=="function"&&typeof t.cancel=="function"&&typeof t.resolveData=="function"}function Kr(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function Ca(e){return la.has(e.toLowerCase())}function se(e){return oa.has(e.toLowerCase())}async function _a(e,t,r,n,a){let l=Object.entries(t);for(let o=0;o<l.length;o++){let[c,u]=l[o],h=e.find(E=>(E==null?void 0:E.route.id)===c);if(!h)continue;let v=n.find(E=>E.route.id===h.route.id),p=v!=null&&!$r(v,h)&&(a&&a[h.route.id])!==void 0;Pe(u)&&p&&await $t(u,r,!1).then(E=>{E&&(t[c]=E)})}}async function Ma(e,t,r){for(let n=0;n<r.length;n++){let{key:a,routeId:l,controller:o}=r[n],c=t[a];e.find(h=>(h==null?void 0:h.route.id)===l)&&Pe(c)&&(j(o,"Expected an AbortController for revalidating fetcher deferred result"),await $t(c,o.signal,!0).then(h=>{h&&(t[a]=h)}))}}async function $t(e,t,r){if(r===void 0&&(r=!1),!await e.deferredData.resolveData(t)){if(r)try{return{type:F.data,data:e.deferredData.unwrappedData}}catch(a){return{type:F.error,error:a}}return{type:F.data,data:e.deferredData.data}}}function Wt(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function Qe(e,t){let r=typeof t=="string"?xe(t).search:t.search;if(e[e.length-1].route.index&&Wt(r||""))return e[e.length-1];let n=kr(e);return n[n.length-1]}function Cr(e){let{formMethod:t,formAction:r,formEncType:n,text:a,formData:l,json:o}=e;if(!(!t||!r||!n)){if(a!=null)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:void 0,text:a};if(l!=null)return{formMethod:t,formAction:r,formEncType:n,formData:l,json:void 0,text:void 0};if(o!==void 0)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:o,text:void 0}}}function Lt(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function La(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}function Xe(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function Ta(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}function we(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function ja(e,t){try{let r=e.sessionStorage.getItem(Hr);if(r){let n=JSON.parse(r);for(let[a,l]of Object.entries(n||{}))l&&Array.isArray(l)&&t.set(a,new Set(l||[]))}}catch{}}function Oa(e,t){if(t.size>0){let r={};for(let[n,a]of t)r[n]=[...a];try{e.sessionStorage.setItem(Hr,JSON.stringify(r))}catch(n){ke(!1,"Failed to save applied view transitions in sessionStorage ("+n+").")}}}/**
29
+ * React Router v6.26.2
30
+ *
31
+ * Copyright (c) Remix Software Inc.
32
+ *
33
+ * This source code is licensed under the MIT license found in the
34
+ * LICENSE.md file in the root directory of this source tree.
35
+ *
36
+ * @license MIT
37
+ */function bt(){return bt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},bt.apply(this,arguments)}const Yt=b.createContext(null),Aa=b.createContext(null),Et=b.createContext(null),He=b.createContext(null),Kt=b.createContext(null),ye=b.createContext({outlet:null,matches:[],isDataRoute:!1}),Jr=b.createContext(null);function oo(e,t){let{relative:r}=t===void 0?{}:t;rt()||j(!1);let{basename:n,navigator:a}=b.useContext(He),{hash:l,pathname:o,search:c}=Ia(e,{relative:r}),u=o;return n!=="/"&&(u=o==="/"?n:ge([n,o])),a.createHref({pathname:u,search:c,hash:l})}function rt(){return b.useContext(Kt)!=null}function Jt(){return rt()||j(!1),b.useContext(Kt).location}function Vr(e){b.useContext(He).static||b.useLayoutEffect(e)}function io(){let{isDataRoute:e}=b.useContext(ye);return e?Ja():Ua()}function Ua(){rt()||j(!1);let e=b.useContext(Yt),{basename:t,future:r,navigator:n}=b.useContext(He),{matches:a}=b.useContext(ye),{pathname:l}=Jt(),o=JSON.stringify(kt(a,r.v7_relativeSplatPath)),c=b.useRef(!1);return Vr(()=>{c.current=!0}),b.useCallback(function(h,v){if(v===void 0&&(v={}),!c.current)return;if(typeof h=="number"){n.go(h);return}let p=zt(h,JSON.parse(o),l,v.relative==="path");e==null&&t!=="/"&&(p.pathname=p.pathname==="/"?t:ge([t,p.pathname])),(v.replace?n.replace:n.push)(p,v.state,v)},[t,n,o,l,e])}const Na=b.createContext(null);function Fa(e){let t=b.useContext(ye).outlet;return t&&b.createElement(Na.Provider,{value:e},t)}function lo(){let{matches:e}=b.useContext(ye),t=e[e.length-1];return t?t.params:{}}function Ia(e,t){let{relative:r}=t===void 0?{}:t,{future:n}=b.useContext(He),{matches:a}=b.useContext(ye),{pathname:l}=Jt(),o=JSON.stringify(kt(a,n.v7_relativeSplatPath));return b.useMemo(()=>zt(e,JSON.parse(o),l,r==="path"),[e,o,l,r])}function so(e,t,r,n){rt()||j(!1);let{navigator:a}=b.useContext(He),{matches:l}=b.useContext(ye),o=l[l.length-1],c=o?o.params:{};o&&o.pathname;let u=o?o.pathnameBase:"/";o&&o.route;let h=Jt(),v;v=h;let p=v.pathname||"/",E=p;if(u!=="/"){let x=u.replace(/^\//,"").split("/");E="/"+p.replace(/^\//,"").split("/").slice(x.length).join("/")}let R=Le(e,{pathname:E});return $a(R&&R.map(x=>Object.assign({},x,{params:Object.assign({},c,x.params),pathname:ge([u,a.encodeLocation?a.encodeLocation(x.pathname).pathname:x.pathname]),pathnameBase:x.pathnameBase==="/"?u:ge([u,a.encodeLocation?a.encodeLocation(x.pathnameBase).pathname:x.pathnameBase])})),l,r,n)}function Ba(){let e=Ya(),t=wt(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,a={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return b.createElement(b.Fragment,null,b.createElement("h2",null,"Unexpected Application Error!"),b.createElement("h3",{style:{fontStyle:"italic"}},t),r?b.createElement("pre",{style:a},r):null,null)}const ka=b.createElement(Ba,null);class za extends b.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,r){return r.location!==t.location||r.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:r.error,location:r.location,revalidation:t.revalidation||r.revalidation}}componentDidCatch(t,r){console.error("React Router caught the following error during render",t,r)}render(){return this.state.error!==void 0?b.createElement(ye.Provider,{value:this.props.routeContext},b.createElement(Jr.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function Ha(e){let{routeContext:t,match:r,children:n}=e,a=b.useContext(Yt);return a&&a.static&&a.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=r.route.id),b.createElement(ye.Provider,{value:t},n)}function $a(e,t,r,n){var a;if(t===void 0&&(t=[]),r===void 0&&(r=null),n===void 0&&(n=null),e==null){var l;if(!r)return null;if(r.errors)e=r.matches;else if((l=n)!=null&&l.v7_partialHydration&&t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let o=e,c=(a=r)==null?void 0:a.errors;if(c!=null){let v=o.findIndex(p=>p.route.id&&(c==null?void 0:c[p.route.id])!==void 0);v>=0||j(!1),o=o.slice(0,Math.min(o.length,v+1))}let u=!1,h=-1;if(r&&n&&n.v7_partialHydration)for(let v=0;v<o.length;v++){let p=o[v];if((p.route.HydrateFallback||p.route.hydrateFallbackElement)&&(h=v),p.route.id){let{loaderData:E,errors:R}=r,M=p.route.loader&&E[p.route.id]===void 0&&(!R||R[p.route.id]===void 0);if(p.route.lazy||M){u=!0,h>=0?o=o.slice(0,h+1):o=[o[0]];break}}}return o.reduceRight((v,p,E)=>{let R,M=!1,x=null,_=null;r&&(R=c&&p.route.id?c[p.route.id]:void 0,x=p.route.errorElement||ka,u&&(h<0&&E===0?(M=!0,_=null):h===E&&(M=!0,_=p.route.hydrateFallbackElement||null)));let I=t.concat(o.slice(0,E+1)),U=()=>{let Z;return R?Z=x:M?Z=_:p.route.Component?Z=b.createElement(p.route.Component,null):p.route.element?Z=p.route.element:Z=v,b.createElement(Ha,{match:p,routeContext:{outlet:v,matches:I,isDataRoute:r!=null},children:Z})};return r&&(p.route.ErrorBoundary||p.route.errorElement||E===0)?b.createElement(za,{location:r.location,revalidation:r.revalidation,component:x,error:R,children:U(),routeContext:{outlet:null,matches:I,isDataRoute:!0}}):U()},null)}var Vt=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(Vt||{}),ue=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(ue||{});function Gr(e){let t=b.useContext(Yt);return t||j(!1),t}function $e(e){let t=b.useContext(Aa);return t||j(!1),t}function Wa(e){let t=b.useContext(ye);return t||j(!1),t}function Pt(e){let t=Wa(),r=t.matches[t.matches.length-1];return r.route.id||j(!1),r.route.id}function uo(){return Pt(ue.UseRouteId)}function co(){return $e(ue.UseNavigation).navigation}function fo(){let e=Gr(Vt.UseRevalidator),t=$e(ue.UseRevalidator);return b.useMemo(()=>({revalidate:e.router.revalidate,state:t.revalidation}),[e.router.revalidate,t.revalidation])}function ho(){let{matches:e,loaderData:t}=$e(ue.UseMatches);return b.useMemo(()=>e.map(r=>Fr(r,t)),[e,t])}function po(){let e=$e(ue.UseLoaderData),t=Pt(ue.UseLoaderData);if(e.errors&&e.errors[t]!=null){console.error("You cannot `useLoaderData` in an errorElement (routeId: "+t+")");return}return e.loaderData[t]}function mo(e){return $e(ue.UseRouteLoaderData).loaderData[e]}function Ya(){var e;let t=b.useContext(Jr),r=$e(ue.UseRouteError),n=Pt(ue.UseRouteError);return t!==void 0?t:(e=r.errors)==null?void 0:e[n]}function Ka(){let e=b.useContext(Et);return e==null?void 0:e._data}function vo(){let e=b.useContext(Et);return e==null?void 0:e._error}function Ja(){let{router:e}=Gr(Vt.UseNavigateStable),t=Pt(ue.UseNavigateStable),r=b.useRef(!1);return Vr(()=>{r.current=!0}),b.useCallback(function(a,l){l===void 0&&(l={}),r.current&&(typeof a=="number"?e.navigate(a):e.navigate(a,bt({fromRouteId:t},l)))},[e,t])}function go(e){return Fa(e.context)}function yo(e){let{basename:t="/",children:r=null,location:n,navigationType:a=G.Pop,navigator:l,static:o=!1,future:c}=e;rt()&&j(!1);let u=t.replace(/^\/*/,"/"),h=b.useMemo(()=>({basename:u,navigator:l,static:o,future:bt({v7_relativeSplatPath:!1},c)}),[u,c,l,o]);typeof n=="string"&&(n=xe(n));let{pathname:v="/",search:p="",hash:E="",state:R=null,key:M="default"}=n,x=b.useMemo(()=>{let _=tt(v,u);return _==null?null:{location:{pathname:_,search:p,hash:E,state:R,key:M},navigationType:a}},[u,v,p,E,R,M,a]);return x==null?null:b.createElement(He.Provider,{value:h},b.createElement(Kt.Provider,{children:r,value:x}))}function bo(e){let{children:t,errorElement:r,resolve:n}=e;return b.createElement(Ga,{resolve:n,errorElement:r},b.createElement(Xa,null,t))}var oe=function(e){return e[e.pending=0]="pending",e[e.success=1]="success",e[e.error=2]="error",e}(oe||{});const Va=new Promise(()=>{});class Ga extends b.Component{constructor(t){super(t),this.state={error:null}}static getDerivedStateFromError(t){return{error:t}}componentDidCatch(t,r){console.error("<Await> caught the following error during render",t,r)}render(){let{children:t,errorElement:r,resolve:n}=this.props,a=null,l=oe.pending;if(!(n instanceof Promise))l=oe.success,a=Promise.resolve(),Object.defineProperty(a,"_tracked",{get:()=>!0}),Object.defineProperty(a,"_data",{get:()=>n});else if(this.state.error){l=oe.error;let o=this.state.error;a=Promise.reject().catch(()=>{}),Object.defineProperty(a,"_tracked",{get:()=>!0}),Object.defineProperty(a,"_error",{get:()=>o})}else n._tracked?(a=n,l="_error"in a?oe.error:"_data"in a?oe.success:oe.pending):(l=oe.pending,Object.defineProperty(n,"_tracked",{get:()=>!0}),a=n.then(o=>Object.defineProperty(n,"_data",{get:()=>o}),o=>Object.defineProperty(n,"_error",{get:()=>o})));if(l===oe.error&&a._error instanceof Tt)throw Va;if(l===oe.error&&!r)throw a._error;if(l===oe.error)return b.createElement(Et.Provider,{value:a,children:r});if(l===oe.success)return b.createElement(Et.Provider,{value:a,children:t});throw a}}function Xa(e){let{children:t}=e,r=Ka(),n=typeof t=="function"?t(r):t;return b.createElement(b.Fragment,null,n)}function Eo(e){let t={hasErrorBoundary:e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&Object.assign(t,{element:b.createElement(e.Component),Component:void 0}),e.HydrateFallback&&Object.assign(t,{hydrateFallbackElement:b.createElement(e.HydrateFallback),HydrateFallback:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:b.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}export{ge as A,qa as B,vr as C,Yt as D,jt as E,xe as F,Tt as G,ro as H,da as I,to as J,no as K,po as L,bo as M,He as N,go as O,vo as P,mo as Q,An as R,Ya as a,lo as b,co as c,fo as d,io as e,ao as f,eo as g,Eo as h,wt as i,Za as j,ho as k,vn as l,Le as m,Qa as n,Aa as o,yo as p,so as q,b as r,tt as s,oo as t,Jt as u,Ia as v,et as w,uo as x,ye as y,j as z};
38
+ //# sourceMappingURL=index-BFGhCX_U.js.map