@epic-web/workshop-app 4.6.6 → 4.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/client/assets/{_-COWH0sBh.js → _-Bd2gNcck.js} +2 -2
- package/build/client/assets/{_-COWH0sBh.js.map → _-Bd2gNcck.js.map} +1 -1
- package/build/client/assets/{_exerciseNumber-wyz3vbhs.js → _exerciseNumber-CFOo2dQj.js} +2 -2
- package/build/client/assets/{_exerciseNumber-wyz3vbhs.js.map → _exerciseNumber-CFOo2dQj.js.map} +1 -1
- package/build/client/assets/{_exerciseNumber_._stepNumber-C37pli7_.js → _exerciseNumber_._stepNumber-DCbWNWpZ.js} +2 -2
- package/build/client/assets/{_exerciseNumber_._stepNumber-C37pli7_.js.map → _exerciseNumber_._stepNumber-DCbWNWpZ.js.map} +1 -1
- package/build/client/assets/_exerciseNumber_.finished-P7xMAtl1.js +2 -0
- package/build/client/assets/_exerciseNumber_.finished-P7xMAtl1.js.map +1 -0
- package/build/client/assets/_layout-Bdd3mpVx.js +2 -0
- package/build/client/assets/_layout-Bdd3mpVx.js.map +1 -0
- package/build/client/assets/_layout-DHBLG7Ti.js +6 -0
- package/build/client/assets/_layout-DHBLG7Ti.js.map +1 -0
- package/build/client/assets/_layout-DaZNLfOL.js +2 -0
- package/build/client/assets/{_layout-BR-Qyofe.js.map → _layout-DaZNLfOL.js.map} +1 -1
- package/build/client/assets/{_layout-D0zbQZjf.js → _layout-rEQoj43V.js} +2 -2
- package/build/client/assets/{_layout-D0zbQZjf.js.map → _layout-rEQoj43V.js.map} +1 -1
- package/build/client/assets/{account-DesvwOeg.js → account-CnLkZd_O.js} +2 -2
- package/build/client/assets/{account-DesvwOeg.js.map → account-CnLkZd_O.js.map} +1 -1
- package/build/client/assets/{button-BfWwrI9B.js → button-CyZl24U2.js} +2 -2
- package/build/client/assets/{button-BfWwrI9B.js.map → button-CyZl24U2.js.map} +1 -1
- package/build/client/assets/{client-hints-BKxdo5Js.js → client-hints-BE5mB4r0.js} +2 -2
- package/build/client/assets/{client-hints-BKxdo5Js.js.map → client-hints-BE5mB4r0.js.map} +1 -1
- package/build/client/assets/components-BMzmvxYw.js +166 -0
- package/build/client/assets/components-BMzmvxYw.js.map +1 -0
- package/build/client/assets/diff-P5f7-8E4.js +2 -0
- package/build/client/assets/diff-P5f7-8E4.js.map +1 -0
- package/build/client/assets/diff-PfwTHr6-.js +2 -0
- package/build/client/assets/{diff-KDzcgGYL.js.map → diff-PfwTHr6-.js.map} +1 -1
- package/build/client/assets/{discord-0kv66Q6F.js → discord-COPE8EOZ.js} +2 -2
- package/build/client/assets/{discord-0kv66Q6F.js.map → discord-COPE8EOZ.js.map} +1 -1
- package/build/client/assets/discord-DIog7bBO.js +2 -0
- package/build/client/assets/discord-DIog7bBO.js.map +1 -0
- package/build/client/assets/entry.client-B0vV2fsa.js +43 -0
- package/build/client/assets/entry.client-B0vV2fsa.js.map +1 -0
- package/build/client/assets/{epic-video-BwtXsHGU.js → epic-video-CYnG2ziQ.js} +128 -128
- package/build/client/assets/epic-video-CYnG2ziQ.js.map +1 -0
- package/build/client/assets/{error-boundary-Bcric_4t.js → error-boundary-DxfVshQ5.js} +2 -2
- package/build/client/assets/{error-boundary-Bcric_4t.js.map → error-boundary-DxfVshQ5.js.map} +1 -1
- package/build/client/assets/finished-DP5ynR5u.js +2 -0
- package/build/client/assets/finished-DP5ynR5u.js.map +1 -0
- package/build/client/assets/index-4E9_Sx3m.js +42 -0
- package/build/client/assets/index-4E9_Sx3m.js.map +1 -0
- package/build/client/assets/{index-Bg9MMnnf.js → index-90bzTYUX.js} +2 -2
- package/build/client/assets/index-90bzTYUX.js.map +1 -0
- package/build/client/assets/{index-BQRtqn3g.js → index-BXefr1BB.js} +2 -2
- package/build/client/assets/{index-BQRtqn3g.js.map → index-BXefr1BB.js.map} +1 -1
- package/build/client/assets/index-Czg1ruVn.js +37 -0
- package/build/client/assets/index-Czg1ruVn.js.map +1 -0
- package/build/client/assets/{index-9nNr0Zqr.js → index-D6ukHE4T.js} +2 -2
- package/build/client/assets/{index-9nNr0Zqr.js.map → index-D6ukHE4T.js.map} +1 -1
- package/build/client/assets/index-Doi37489.js +3 -0
- package/build/client/assets/index-Doi37489.js.map +1 -0
- package/build/client/assets/{loading-C9f_vBoM.js → loading-CNWJVymJ.js} +2 -2
- package/build/client/assets/{loading-C9f_vBoM.js.map → loading-CNWJVymJ.js.map} +1 -1
- package/build/client/assets/{login-D8zyjBAb.js → login-DxG854vQ.js} +2 -2
- package/build/client/assets/{login-D8zyjBAb.js.map → login-DxG854vQ.js.map} +1 -1
- package/build/client/assets/manifest-805aa13a.js +1 -0
- package/build/client/assets/mdx-CR7Me1v_.js +2 -0
- package/build/client/assets/{mdx-BYvGbvEr.js.map → mdx-CR7Me1v_.js.map} +1 -1
- package/build/client/assets/misc-CypjEQkt.js +2 -0
- package/build/client/assets/misc-CypjEQkt.js.map +1 -0
- package/build/client/assets/{nav-chevrons-DOYtx9XE.js → nav-chevrons-BYKwyIgG.js} +2 -2
- package/build/client/assets/{nav-chevrons-DOYtx9XE.js.map → nav-chevrons-BYKwyIgG.js.map} +1 -1
- package/build/client/assets/{onboarding-euWyXpCL.js → onboarding-b9lcdh4n.js} +2 -2
- package/build/client/assets/{onboarding-euWyXpCL.js.map → onboarding-b9lcdh4n.js.map} +1 -1
- package/build/client/assets/{presence-BJPzwbUy.js → presence-DXXVJbaH.js} +2 -2
- package/build/client/assets/{presence-BJPzwbUy.js.map → presence-DXXVJbaH.js.map} +1 -1
- package/build/client/assets/progress-B_mReZVE.js +2 -0
- package/build/client/assets/progress-B_mReZVE.js.map +1 -0
- package/build/client/assets/{progress-bar-7LK87ZMh.js → progress-bar-DCrt7X4t.js} +2 -2
- package/build/client/assets/{progress-bar-7LK87ZMh.js.map → progress-bar-DCrt7X4t.js.map} +1 -1
- package/build/client/assets/{request-info-Dyls4H67.js → request-info-CUT0ULYN.js} +2 -2
- package/build/client/assets/{request-info-Dyls4H67.js.map → request-info-CUT0ULYN.js.map} +1 -1
- package/build/client/assets/{root-BQ7V6fP4.js → root-bgHbi7rA.js} +4 -4
- package/build/client/assets/root-bgHbi7rA.js.map +1 -0
- package/build/client/assets/{support-DUAHYT3r.js → support-DrY-qRGh.js} +2 -2
- package/build/client/assets/{support-DUAHYT3r.js.map → support-DrY-qRGh.js.map} +1 -1
- package/build/client/assets/tailwind-D2vjZZFL.css +1 -0
- package/build/client/assets/tooltip-CfmIzAYi.js +2 -0
- package/build/client/assets/tooltip-CfmIzAYi.js.map +1 -0
- package/build/client/assets/{use-event-source-aW6X9lN1.js → use-event-source-ySol3hbz.js} +2 -2
- package/build/client/assets/{use-event-source-aW6X9lN1.js.map → use-event-source-ySol3hbz.js.map} +1 -1
- package/build/client/assets/{user-73ocDYRe.js → user-C4QTtQw5.js} +2 -2
- package/build/client/assets/{user-73ocDYRe.js.map → user-C4QTtQw5.js.map} +1 -1
- package/build/server/index.js +840 -607
- package/build/server/index.js.map +1 -1
- package/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js +65 -3
- package/node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js +65 -3
- package/node_modules/@babel/runtime/package.json +1 -28
- package/node_modules/@conform-to/dom/dom.d.ts +17 -5
- package/node_modules/@conform-to/dom/form.d.ts +221 -122
- package/node_modules/@conform-to/dom/index.d.ts +24 -2
- package/node_modules/@conform-to/dom/intent.d.ts +92 -60
- package/node_modules/@conform-to/dom/package.json +1 -1
- package/node_modules/@conform-to/dom/parse.d.ts +47 -27
- package/node_modules/@conform-to/dom/types.d.ts +17 -14
- package/node_modules/@conform-to/dom/util.d.ts +4 -1
- package/node_modules/@conform-to/react/context.d.ts +187 -59
- package/node_modules/@conform-to/react/context.js +3 -5
- package/node_modules/@conform-to/react/context.mjs +4 -6
- package/node_modules/@conform-to/react/experimental.d.ts +0 -0
- package/node_modules/@conform-to/react/hooks.d.ts +53 -24
- package/node_modules/@conform-to/react/index.d.ts +28 -4
- package/node_modules/@conform-to/react/integrations.js +14 -1
- package/node_modules/@conform-to/react/integrations.mjs +14 -1
- package/node_modules/@conform-to/react/package.json +2 -2
- package/node_modules/@conform-to/zod/coercion.d.ts +14 -4
- package/node_modules/@conform-to/zod/constraint.d.ts +3 -1
- package/node_modules/@conform-to/zod/package.json +2 -2
- package/node_modules/@conform-to/zod/parse.d.ts +43 -25
- package/node_modules/@floating-ui/core/dist/floating-ui.core.browser.min.mjs +1 -1
- package/node_modules/@floating-ui/core/dist/floating-ui.core.browser.mjs +14 -3
- package/node_modules/@floating-ui/core/dist/floating-ui.core.d.mts +51 -51
- package/node_modules/@floating-ui/core/dist/floating-ui.core.d.ts +51 -51
- package/node_modules/@floating-ui/core/dist/floating-ui.core.esm.js +14 -3
- package/node_modules/@floating-ui/core/dist/floating-ui.core.mjs +14 -3
- package/node_modules/@floating-ui/core/dist/floating-ui.core.umd.js +14 -3
- package/node_modules/@floating-ui/core/dist/floating-ui.core.umd.min.js +1 -1
- package/node_modules/@floating-ui/core/package.json +2 -2
- package/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs +1 -1
- package/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.mjs +12 -11
- package/node_modules/@floating-ui/dom/dist/floating-ui.dom.d.mts +11 -8
- package/node_modules/@floating-ui/dom/dist/floating-ui.dom.d.ts +11 -8
- package/node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js +1 -12
- package/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs +1 -12
- package/node_modules/@floating-ui/dom/dist/floating-ui.dom.umd.js +12 -11
- package/node_modules/@floating-ui/dom/dist/floating-ui.dom.umd.min.js +1 -1
- package/node_modules/@floating-ui/dom/package.json +2 -2
- package/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.d.mts +12 -4
- package/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.d.ts +12 -4
- package/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.js +1 -0
- package/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs +1 -0
- package/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.umd.js +1 -0
- package/node_modules/@floating-ui/react-dom/package.json +1 -1
- package/node_modules/@floating-ui/utils/dist/floating-ui.utils.d.mts +11 -6
- package/node_modules/@floating-ui/utils/dist/floating-ui.utils.d.ts +11 -6
- package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.d.mts +2 -0
- package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.d.ts +2 -0
- package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.esm.js +13 -1
- package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs +13 -1
- package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.umd.js +13 -0
- package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.umd.min.js +1 -1
- package/node_modules/@floating-ui/utils/dom/floating-ui.utils.dom.d.ts +2 -0
- package/node_modules/@floating-ui/utils/dom/floating-ui.utils.dom.esm.js +13 -1
- package/node_modules/@floating-ui/utils/dom/floating-ui.utils.dom.umd.js +13 -0
- package/node_modules/@floating-ui/utils/package.json +1 -1
- package/node_modules/@radix-ui/number/dist/index.d.mts +2 -2
- package/node_modules/@radix-ui/number/dist/index.d.ts +2 -2
- package/node_modules/@radix-ui/number/dist/index.js +28 -10
- package/node_modules/@radix-ui/number/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/number/dist/index.mjs +6 -7
- package/node_modules/@radix-ui/number/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/number/package.json +1 -4
- package/node_modules/@radix-ui/primitive/dist/index.d.mts +2 -2
- package/node_modules/@radix-ui/primitive/dist/index.d.ts +2 -2
- package/node_modules/@radix-ui/primitive/dist/index.js +33 -13
- package/node_modules/@radix-ui/primitive/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/primitive/dist/index.mjs +11 -10
- package/node_modules/@radix-ui/primitive/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/primitive/package.json +1 -4
- package/node_modules/@radix-ui/react-accordion/dist/index.d.mts +40 -28
- package/node_modules/@radix-ui/react-accordion/dist/index.d.ts +40 -28
- package/node_modules/@radix-ui/react-accordion/dist/index.js +324 -316
- package/node_modules/@radix-ui/react-accordion/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-accordion/dist/index.mjs +293 -300
- package/node_modules/@radix-ui/react-accordion/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-accordion/package.json +12 -13
- package/node_modules/@radix-ui/react-arrow/dist/index.d.mts +8 -8
- package/node_modules/@radix-ui/react-arrow/dist/index.d.ts +8 -8
- package/node_modules/@radix-ui/react-arrow/dist/index.js +57 -37
- package/node_modules/@radix-ui/react-arrow/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-arrow/dist/index.mjs +25 -30
- package/node_modules/@radix-ui/react-arrow/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-arrow/package.json +4 -5
- package/node_modules/@radix-ui/react-collapsible/dist/index.d.mts +27 -16
- package/node_modules/@radix-ui/react-collapsible/dist/index.d.ts +27 -16
- package/node_modules/@radix-ui/react-collapsible/dist/index.js +176 -167
- package/node_modules/@radix-ui/react-collapsible/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-collapsible/dist/index.mjs +143 -153
- package/node_modules/@radix-ui/react-collapsible/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-collapsible/package.json +11 -12
- package/node_modules/@radix-ui/react-collection/dist/index.d.mts +27 -15
- package/node_modules/@radix-ui/react-collection/dist/index.d.ts +27 -15
- package/node_modules/@radix-ui/react-collection/dist/index.js +99 -112
- package/node_modules/@radix-ui/react-collection/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-collection/dist/index.mjs +68 -106
- package/node_modules/@radix-ui/react-collection/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-collection/package.json +7 -8
- package/node_modules/@radix-ui/react-compose-refs/dist/index.d.mts +5 -4
- package/node_modules/@radix-ui/react-compose-refs/dist/index.d.ts +5 -4
- package/node_modules/@radix-ui/react-compose-refs/dist/index.js +47 -30
- package/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-compose-refs/dist/index.mjs +16 -27
- package/node_modules/@radix-ui/react-compose-refs/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-compose-refs/package.json +2 -5
- package/node_modules/@radix-ui/react-context/dist/index.d.mts +10 -8
- package/node_modules/@radix-ui/react-context/dist/index.d.ts +10 -8
- package/node_modules/@radix-ui/react-context/dist/index.js +104 -123
- package/node_modules/@radix-ui/react-context/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-context/dist/index.mjs +73 -120
- package/node_modules/@radix-ui/react-context/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-context/package.json +2 -5
- package/node_modules/@radix-ui/react-direction/dist/index.d.mts +6 -5
- package/node_modules/@radix-ui/react-direction/dist/index.d.ts +6 -5
- package/node_modules/@radix-ui/react-direction/dist/index.js +47 -24
- package/node_modules/@radix-ui/react-direction/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-direction/dist/index.mjs +16 -20
- package/node_modules/@radix-ui/react-direction/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-direction/package.json +2 -5
- package/node_modules/@radix-ui/react-dismissable-layer/dist/index.d.mts +10 -10
- package/node_modules/@radix-ui/react-dismissable-layer/dist/index.d.ts +10 -10
- package/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +230 -270
- package/node_modules/@radix-ui/react-dismissable-layer/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs +199 -261
- package/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-dismissable-layer/package.json +9 -10
- package/node_modules/@radix-ui/react-focus-guards/dist/index.d.mts +4 -4
- package/node_modules/@radix-ui/react-focus-guards/dist/index.d.ts +4 -4
- package/node_modules/@radix-ui/react-focus-guards/dist/index.js +63 -39
- package/node_modules/@radix-ui/react-focus-guards/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-focus-guards/dist/index.mjs +32 -34
- package/node_modules/@radix-ui/react-focus-guards/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-focus-guards/package.json +2 -5
- package/node_modules/@radix-ui/react-focus-scope/dist/index.d.mts +8 -8
- package/node_modules/@radix-ui/react-focus-scope/dist/index.d.ts +8 -8
- package/node_modules/@radix-ui/react-focus-scope/dist/index.js +228 -282
- package/node_modules/@radix-ui/react-focus-scope/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-focus-scope/dist/index.mjs +197 -275
- package/node_modules/@radix-ui/react-focus-scope/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-focus-scope/package.json +6 -7
- package/node_modules/@radix-ui/react-id/dist/index.d.mts +2 -2
- package/node_modules/@radix-ui/react-id/dist/index.d.ts +2 -2
- package/node_modules/@radix-ui/react-id/dist/index.js +47 -26
- package/node_modules/@radix-ui/react-id/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-id/dist/index.mjs +14 -22
- package/node_modules/@radix-ui/react-id/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-id/package.json +3 -4
- package/node_modules/@radix-ui/react-popover/dist/index.d.mts +48 -37
- package/node_modules/@radix-ui/react-popover/dist/index.d.ts +48 -37
- package/node_modules/@radix-ui/react-popover/dist/index.js +319 -311
- package/node_modules/@radix-ui/react-popover/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-popover/dist/index.mjs +288 -291
- package/node_modules/@radix-ui/react-popover/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-popover/package.json +17 -18
- package/node_modules/@radix-ui/react-popper/dist/index.d.mts +36 -25
- package/node_modules/@radix-ui/react-popper/dist/index.d.ts +36 -25
- package/node_modules/@radix-ui/react-popper/dist/index.js +305 -321
- package/node_modules/@radix-ui/react-popper/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-popper/dist/index.mjs +284 -305
- package/node_modules/@radix-ui/react-popper/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-popper/package.json +12 -13
- package/node_modules/@radix-ui/react-portal/dist/index.d.mts +9 -9
- package/node_modules/@radix-ui/react-portal/dist/index.d.ts +9 -9
- package/node_modules/@radix-ui/react-portal/dist/index.js +52 -34
- package/node_modules/@radix-ui/react-portal/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-portal/dist/index.mjs +21 -27
- package/node_modules/@radix-ui/react-portal/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-portal/package.json +5 -5
- package/node_modules/@radix-ui/react-presence/dist/index.d.mts +5 -4
- package/node_modules/@radix-ui/react-presence/dist/index.d.ts +5 -4
- package/node_modules/@radix-ui/react-presence/dist/index.js +147 -132
- package/node_modules/@radix-ui/react-presence/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-presence/dist/index.mjs +116 -129
- package/node_modules/@radix-ui/react-presence/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-presence/package.json +5 -6
- package/node_modules/@radix-ui/react-primitive/dist/index.d.mts +8 -9
- package/node_modules/@radix-ui/react-primitive/dist/index.d.ts +8 -9
- package/node_modules/@radix-ui/react-primitive/dist/index.js +73 -100
- package/node_modules/@radix-ui/react-primitive/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-primitive/dist/index.mjs +42 -93
- package/node_modules/@radix-ui/react-primitive/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-primitive/package.json +4 -5
- package/node_modules/@radix-ui/react-roving-focus/dist/index.d.mts +25 -13
- package/node_modules/@radix-ui/react-roving-focus/dist/index.d.ts +25 -13
- package/node_modules/@radix-ui/react-roving-focus/dist/index.js +239 -247
- package/node_modules/@radix-ui/react-roving-focus/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-roving-focus/dist/index.mjs +209 -238
- package/node_modules/@radix-ui/react-roving-focus/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-roving-focus/package.json +12 -13
- package/node_modules/@radix-ui/react-select/dist/index.d.mts +77 -65
- package/node_modules/@radix-ui/react-select/dist/index.d.ts +77 -65
- package/node_modules/@radix-ui/react-select/dist/index.js +1107 -1235
- package/node_modules/@radix-ui/react-select/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-select/dist/index.mjs +1076 -1197
- package/node_modules/@radix-ui/react-select/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-select/package.json +23 -24
- package/node_modules/@radix-ui/react-slot/dist/index.d.mts +9 -7
- package/node_modules/@radix-ui/react-slot/dist/index.d.ts +9 -7
- package/node_modules/@radix-ui/react-slot/dist/index.js +107 -87
- package/node_modules/@radix-ui/react-slot/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-slot/dist/index.mjs +76 -80
- package/node_modules/@radix-ui/react-slot/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-slot/package.json +3 -4
- package/node_modules/@radix-ui/react-tabs/dist/index.d.mts +32 -21
- package/node_modules/@radix-ui/react-tabs/dist/index.d.ts +32 -21
- package/node_modules/@radix-ui/react-tabs/dist/index.js +217 -184
- package/node_modules/@radix-ui/react-tabs/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-tabs/dist/index.mjs +185 -169
- package/node_modules/@radix-ui/react-tabs/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-tabs/package.json +11 -12
- package/node_modules/@radix-ui/react-toast/dist/index.d.mts +43 -32
- package/node_modules/@radix-ui/react-toast/dist/index.d.ts +43 -32
- package/node_modules/@radix-ui/react-toast/dist/index.js +645 -715
- package/node_modules/@radix-ui/react-toast/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-toast/dist/index.mjs +614 -695
- package/node_modules/@radix-ui/react-toast/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-toast/package.json +15 -16
- package/node_modules/@radix-ui/react-use-callback-ref/dist/index.d.mts +2 -2
- package/node_modules/@radix-ui/react-use-callback-ref/dist/index.d.ts +2 -2
- package/node_modules/@radix-ui/react-use-callback-ref/dist/index.js +42 -23
- package/node_modules/@radix-ui/react-use-callback-ref/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs +11 -21
- package/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-use-callback-ref/package.json +2 -5
- package/node_modules/@radix-ui/react-use-controllable-state/dist/index.d.mts +4 -3
- package/node_modules/@radix-ui/react-use-controllable-state/dist/index.d.ts +4 -3
- package/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +75 -52
- package/node_modules/@radix-ui/react-use-controllable-state/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs +44 -50
- package/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-use-controllable-state/package.json +3 -4
- package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.d.mts +2 -2
- package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.d.ts +2 -2
- package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js +50 -29
- package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs +17 -25
- package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-use-escape-keydown/package.json +3 -4
- package/node_modules/@radix-ui/react-use-layout-effect/dist/index.d.mts +4 -3
- package/node_modules/@radix-ui/react-use-layout-effect/dist/index.d.ts +4 -3
- package/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +38 -17
- package/node_modules/@radix-ui/react-use-layout-effect/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs +7 -15
- package/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-use-layout-effect/package.json +2 -5
- package/node_modules/@radix-ui/react-use-previous/dist/index.d.mts +2 -2
- package/node_modules/@radix-ui/react-use-previous/dist/index.d.ts +2 -2
- package/node_modules/@radix-ui/react-use-previous/dist/index.js +45 -26
- package/node_modules/@radix-ui/react-use-previous/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-use-previous/dist/index.mjs +14 -24
- package/node_modules/@radix-ui/react-use-previous/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-use-previous/package.json +2 -5
- package/node_modules/@radix-ui/react-use-rect/dist/index.d.mts +4 -3
- package/node_modules/@radix-ui/react-use-rect/dist/index.d.ts +4 -3
- package/node_modules/@radix-ui/react-use-rect/dist/index.js +52 -32
- package/node_modules/@radix-ui/react-use-rect/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-use-rect/dist/index.mjs +19 -28
- package/node_modules/@radix-ui/react-use-rect/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-use-rect/package.json +3 -4
- package/node_modules/@radix-ui/react-use-size/dist/index.d.mts +2 -2
- package/node_modules/@radix-ui/react-use-size/dist/index.d.ts +2 -2
- package/node_modules/@radix-ui/react-use-size/dist/index.js +70 -57
- package/node_modules/@radix-ui/react-use-size/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-use-size/dist/index.mjs +39 -55
- package/node_modules/@radix-ui/react-use-size/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-use-size/package.json +3 -4
- package/node_modules/@radix-ui/react-visually-hidden/dist/index.d.mts +8 -8
- package/node_modules/@radix-ui/react-visually-hidden/dist/index.d.ts +8 -8
- package/node_modules/@radix-ui/react-visually-hidden/dist/index.js +64 -41
- package/node_modules/@radix-ui/react-visually-hidden/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs +33 -35
- package/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/react-visually-hidden/package.json +4 -5
- package/node_modules/@radix-ui/rect/dist/index.d.mts +3 -3
- package/node_modules/@radix-ui/rect/dist/index.d.ts +3 -3
- package/node_modules/@radix-ui/rect/dist/index.js +69 -66
- package/node_modules/@radix-ui/rect/dist/index.js.map +7 -1
- package/node_modules/@radix-ui/rect/dist/index.mjs +47 -63
- package/node_modules/@radix-ui/rect/dist/index.mjs.map +7 -1
- package/node_modules/@radix-ui/rect/package.json +1 -4
- package/node_modules/@remix-run/react/CHANGELOG.md +18 -0
- package/node_modules/@remix-run/react/dist/_virtual/_rollupPluginBabelHelpers.js +1 -1
- package/node_modules/@remix-run/react/dist/browser.js +14 -3
- package/node_modules/@remix-run/react/dist/components.d.ts +9 -0
- package/node_modules/@remix-run/react/dist/components.js +23 -19
- package/node_modules/@remix-run/react/dist/data.js +1 -1
- package/node_modules/@remix-run/react/dist/entry.d.ts +1 -0
- package/node_modules/@remix-run/react/dist/errorBoundaries.d.ts +5 -2
- package/node_modules/@remix-run/react/dist/errorBoundaries.js +26 -5
- package/node_modules/@remix-run/react/dist/errors.js +1 -1
- package/node_modules/@remix-run/react/dist/esm/_virtual/_rollupPluginBabelHelpers.js +1 -1
- package/node_modules/@remix-run/react/dist/esm/browser.js +14 -3
- package/node_modules/@remix-run/react/dist/esm/components.js +24 -20
- package/node_modules/@remix-run/react/dist/esm/data.js +1 -1
- package/node_modules/@remix-run/react/dist/esm/errorBoundaries.js +26 -5
- package/node_modules/@remix-run/react/dist/esm/errors.js +1 -1
- package/node_modules/@remix-run/react/dist/esm/fallback.js +1 -1
- package/node_modules/@remix-run/react/dist/esm/fog-of-war.js +226 -0
- package/node_modules/@remix-run/react/dist/esm/index.js +1 -1
- package/node_modules/@remix-run/react/dist/esm/invariant.js +1 -1
- package/node_modules/@remix-run/react/dist/esm/links.js +2 -2
- package/node_modules/@remix-run/react/dist/esm/markup.js +1 -1
- package/node_modules/@remix-run/react/dist/esm/routeModules.js +1 -1
- package/node_modules/@remix-run/react/dist/esm/routes.js +1 -1
- package/node_modules/@remix-run/react/dist/esm/scroll-restoration.js +1 -1
- package/node_modules/@remix-run/react/dist/esm/server.js +1 -1
- package/node_modules/@remix-run/react/dist/esm/single-fetch.js +1 -1
- package/node_modules/@remix-run/react/dist/fallback.js +1 -1
- package/node_modules/@remix-run/react/dist/fog-of-war.d.ts +37 -0
- package/node_modules/@remix-run/react/dist/fog-of-war.js +254 -0
- package/node_modules/@remix-run/react/dist/index.js +1 -1
- package/node_modules/@remix-run/react/dist/invariant.js +1 -1
- package/node_modules/@remix-run/react/dist/links.js +2 -2
- package/node_modules/@remix-run/react/dist/markup.js +1 -1
- package/node_modules/@remix-run/react/dist/routeModules.js +1 -1
- package/node_modules/@remix-run/react/dist/routes.d.ts +1 -1
- package/node_modules/@remix-run/react/dist/routes.js +1 -1
- package/node_modules/@remix-run/react/dist/scroll-restoration.js +1 -1
- package/node_modules/@remix-run/react/dist/server.js +1 -1
- package/node_modules/@remix-run/react/dist/single-fetch.js +1 -1
- package/node_modules/@remix-run/react/package.json +8 -8
- package/node_modules/@remix-run/router/CHANGELOG.md +9 -0
- package/node_modules/@remix-run/router/dist/index.d.ts +1 -1
- package/node_modules/@remix-run/router/dist/router.cjs.js +467 -80
- package/node_modules/@remix-run/router/dist/router.cjs.js.map +1 -1
- package/node_modules/@remix-run/router/dist/router.d.ts +11 -1
- package/node_modules/@remix-run/router/dist/router.js +457 -76
- package/node_modules/@remix-run/router/dist/router.js.map +1 -1
- package/node_modules/@remix-run/router/dist/router.umd.js +467 -80
- package/node_modules/@remix-run/router/dist/router.umd.js.map +1 -1
- package/node_modules/@remix-run/router/dist/router.umd.min.js +2 -2
- package/node_modules/@remix-run/router/dist/router.umd.min.js.map +1 -1
- package/node_modules/@remix-run/router/dist/utils.d.ts +9 -1
- package/node_modules/@remix-run/router/index.ts +1 -0
- package/node_modules/@remix-run/router/package.json +1 -1
- package/node_modules/@remix-run/router/router.ts +586 -73
- package/node_modules/@remix-run/router/utils.ts +51 -8
- package/node_modules/@remix-run/server-runtime/CHANGELOG.md +17 -0
- package/node_modules/@remix-run/server-runtime/dist/cookies.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/data.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/deprecations.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/dev.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/entry.d.ts +1 -0
- package/node_modules/@remix-run/server-runtime/dist/entry.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/errors.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/esm/cookies.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/esm/data.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/esm/deprecations.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/esm/dev.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/esm/entry.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/esm/errors.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/esm/formData.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/esm/headers.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/esm/index.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/esm/invariant.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/esm/markup.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/esm/mode.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/esm/responses.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/esm/routeMatching.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/esm/routes.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/esm/server.js +76 -11
- package/node_modules/@remix-run/server-runtime/dist/esm/serverHandoff.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/esm/sessions/cookieStorage.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/esm/sessions/memoryStorage.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/esm/sessions.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/esm/single-fetch.js +17 -8
- package/node_modules/@remix-run/server-runtime/dist/esm/upload/errors.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/esm/upload/memoryUploadHandler.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/esm/warnings.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/formData.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/headers.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/index.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/invariant.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/markup.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/mode.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/responses.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/routeMatching.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/routes.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/server.js +70 -5
- package/node_modules/@remix-run/server-runtime/dist/serverHandoff.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/sessions/cookieStorage.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/sessions/memoryStorage.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/sessions.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/single-fetch.d.ts +3 -0
- package/node_modules/@remix-run/server-runtime/dist/single-fetch.js +18 -7
- package/node_modules/@remix-run/server-runtime/dist/upload/errors.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/upload/memoryUploadHandler.js +1 -1
- package/node_modules/@remix-run/server-runtime/dist/warnings.js +1 -1
- package/node_modules/@remix-run/server-runtime/package.json +3 -3
- package/node_modules/deep-eql/index.js +10 -5
- package/node_modules/deep-eql/package.json +1 -1
- package/node_modules/framer-motion/dist/cjs/{dom-entry-DSxBucW4.js → dom-entry-GDJJhIpT.js} +59 -106
- package/node_modules/framer-motion/dist/cjs/dom-entry.js +1 -1
- package/node_modules/framer-motion/dist/cjs/index.js +123 -36
- package/node_modules/framer-motion/dist/dom.js +1 -1
- package/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs +3 -3
- package/node_modules/framer-motion/dist/es/motion/features/animation/index.mjs +6 -3
- package/node_modules/framer-motion/dist/es/motion/index.mjs +33 -13
- package/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs +6 -3
- package/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs +54 -3
- package/node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs +5 -2
- package/node_modules/framer-motion/dist/es/projection-entry.mjs +11 -0
- package/node_modules/framer-motion/dist/es/render/VisualElement.mjs +30 -78
- package/node_modules/framer-motion/dist/es/render/utils/animation-state.mjs +5 -1
- package/node_modules/framer-motion/dist/es/render/utils/motion-values.mjs +1 -1
- package/node_modules/framer-motion/dist/es/utils/mix/color.mjs +8 -2
- package/node_modules/framer-motion/dist/es/utils/mix/complex.mjs +1 -3
- package/node_modules/framer-motion/dist/es/utils/mix/immediate.mjs +5 -0
- package/node_modules/framer-motion/dist/es/value/index.mjs +1 -1
- package/node_modules/framer-motion/dist/es/value/types/color/rgba.mjs +1 -1
- package/node_modules/framer-motion/dist/framer-motion.dev.js +175 -134
- package/node_modules/framer-motion/dist/framer-motion.js +1 -1
- package/node_modules/framer-motion/dist/index.d.ts +78 -78
- package/node_modules/framer-motion/dist/three-entry.d.ts +59 -72
- package/node_modules/framer-motion/package.json +14 -28
- package/node_modules/react-remove-scroll/dist/es2015/SideEffect.js +15 -4
- package/node_modules/react-remove-scroll/dist/es2015/UI.js +2 -2
- package/node_modules/react-remove-scroll/dist/es2015/handleScroll.js +12 -4
- package/node_modules/react-remove-scroll/dist/es2015/types.d.ts +10 -2
- package/node_modules/react-remove-scroll/dist/es2019/SideEffect.js +15 -4
- package/node_modules/react-remove-scroll/dist/es2019/UI.js +2 -2
- package/node_modules/react-remove-scroll/dist/es2019/handleScroll.js +12 -4
- package/node_modules/react-remove-scroll/dist/es2019/types.d.ts +10 -2
- package/node_modules/react-remove-scroll/dist/es5/SideEffect.js +15 -4
- package/node_modules/react-remove-scroll/dist/es5/UI.js +2 -2
- package/node_modules/react-remove-scroll/dist/es5/handleScroll.js +12 -4
- package/node_modules/react-remove-scroll/dist/es5/types.d.ts +10 -2
- package/node_modules/react-remove-scroll/dist/index.js +93 -0
- package/node_modules/react-remove-scroll/package.json +4 -3
- package/node_modules/react-router/CHANGELOG.md +14 -0
- package/node_modules/react-router/dist/index.d.ts +4 -1
- package/node_modules/react-router/dist/index.js +3 -2
- package/node_modules/react-router/dist/index.js.map +1 -1
- package/node_modules/react-router/dist/main.js +1 -1
- package/node_modules/react-router/dist/react-router.development.js +3 -2
- package/node_modules/react-router/dist/react-router.development.js.map +1 -1
- package/node_modules/react-router/dist/react-router.production.min.js +2 -2
- package/node_modules/react-router/dist/react-router.production.min.js.map +1 -1
- package/node_modules/react-router/dist/umd/react-router.development.js +3 -2
- package/node_modules/react-router/dist/umd/react-router.development.js.map +1 -1
- package/node_modules/react-router/dist/umd/react-router.production.min.js +2 -2
- package/node_modules/react-router/dist/umd/react-router.production.min.js.map +1 -1
- package/node_modules/react-router/package.json +3 -3
- package/node_modules/react-router-dom/CHANGELOG.md +17 -0
- package/node_modules/react-router-dom/dist/dom.d.ts +29 -16
- package/node_modules/react-router-dom/dist/index.d.ts +18 -6
- package/node_modules/react-router-dom/dist/index.js +3 -1
- package/node_modules/react-router-dom/dist/index.js.map +1 -1
- package/node_modules/react-router-dom/dist/main.js +1 -1
- package/node_modules/react-router-dom/dist/react-router-dom.development.js +29 -1
- package/node_modules/react-router-dom/dist/react-router-dom.development.js.map +1 -1
- package/node_modules/react-router-dom/dist/react-router-dom.production.min.js +2 -2
- package/node_modules/react-router-dom/dist/react-router-dom.production.min.js.map +1 -1
- package/node_modules/react-router-dom/dist/server.js +4 -1
- package/node_modules/react-router-dom/dist/server.mjs +4 -1
- package/node_modules/react-router-dom/dist/umd/react-router-dom.development.js +29 -1
- package/node_modules/react-router-dom/dist/umd/react-router-dom.development.js.map +1 -1
- package/node_modules/react-router-dom/dist/umd/react-router-dom.production.min.js +2 -2
- package/node_modules/react-router-dom/dist/umd/react-router-dom.production.min.js.map +1 -1
- package/node_modules/react-router-dom/package.json +3 -3
- package/node_modules/react-router-dom/server.js +4 -1
- package/node_modules/react-router-dom/server.mjs +4 -1
- package/node_modules/{@remix-run/server-runtime/node_modules/source-map → source-map}/README.md +32 -112
- package/node_modules/source-map/dist/source-map.debug.js +3234 -0
- package/node_modules/source-map/dist/source-map.js +3233 -0
- package/node_modules/source-map/dist/source-map.min.js +2 -0
- package/node_modules/source-map/dist/source-map.min.js.map +1 -0
- package/node_modules/source-map/lib/array-set.js +121 -0
- package/node_modules/{@remix-run/server-runtime/node_modules/source-map → source-map}/lib/base64-vlq.js +40 -11
- package/node_modules/source-map/lib/base64.js +67 -0
- package/node_modules/{@remix-run/server-runtime/node_modules/source-map → source-map}/lib/binary-search.js +19 -15
- package/node_modules/source-map/lib/mapping-list.js +79 -0
- package/node_modules/source-map/lib/quick-sort.js +114 -0
- package/node_modules/source-map/lib/source-map-consumer.js +1145 -0
- package/node_modules/{@remix-run/server-runtime/node_modules/source-map → source-map}/lib/source-map-generator.js +169 -157
- package/node_modules/source-map/lib/source-node.js +413 -0
- package/node_modules/{@remix-run/server-runtime/node_modules/source-map → source-map}/lib/util.js +51 -109
- package/node_modules/{@remix-run/server-runtime/node_modules/source-map → source-map}/package.json +9 -27
- package/node_modules/source-map/source-map.d.ts +98 -0
- package/node_modules/source-map/source-map.js +8 -0
- package/node_modules/turbo-stream/dist/flatten.d.ts +1 -1
- package/node_modules/turbo-stream/dist/flatten.js +44 -9
- package/node_modules/turbo-stream/dist/turbo-stream.js +11 -2
- package/node_modules/turbo-stream/dist/turbo-stream.mjs +58 -7
- package/node_modules/turbo-stream/dist/unflatten.js +2 -0
- package/node_modules/turbo-stream/dist/utils.d.ts +1 -0
- package/node_modules/turbo-stream/dist/utils.js +2 -1
- package/node_modules/turbo-stream/package.json +1 -1
- package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/index.d.ts +1 -0
- package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/package.json +2 -1
- package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/readme.md +1 -0
- package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/is-literal.d.ts +6 -4
- package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/merge-deep.d.ts +8 -9
- package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/omit-deep.d.ts +3 -3
- package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/paths.d.ts +14 -8
- package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/schema.d.ts +12 -12
- package/node_modules/type-fest/source/simplify-deep.d.ts +115 -0
- package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/simplify.d.ts +1 -1
- package/package.json +4 -4
- package/build/client/assets/_exerciseNumber_.finished-DNtyBHjg.js +0 -2
- package/build/client/assets/_exerciseNumber_.finished-DNtyBHjg.js.map +0 -1
- package/build/client/assets/_layout-BR-Qyofe.js +0 -2
- package/build/client/assets/_layout-CNgYirUN.js +0 -2
- package/build/client/assets/_layout-CNgYirUN.js.map +0 -1
- package/build/client/assets/_layout-xu6a9He_.js +0 -2
- package/build/client/assets/_layout-xu6a9He_.js.map +0 -1
- package/build/client/assets/components-C5xBZAiL.js +0 -119
- package/build/client/assets/components-C5xBZAiL.js.map +0 -1
- package/build/client/assets/diff-BKsbFB6w.js +0 -42
- package/build/client/assets/diff-BKsbFB6w.js.map +0 -1
- package/build/client/assets/diff-KDzcgGYL.js +0 -2
- package/build/client/assets/discord-Xp0X4-Fl.js +0 -2
- package/build/client/assets/discord-Xp0X4-Fl.js.map +0 -1
- package/build/client/assets/entry.client-0j1eoieD.js +0 -80
- package/build/client/assets/entry.client-0j1eoieD.js.map +0 -1
- package/build/client/assets/epic-video-BwtXsHGU.js.map +0 -1
- package/build/client/assets/finished-Cu9PZd5Q.js +0 -2
- package/build/client/assets/finished-Cu9PZd5Q.js.map +0 -1
- package/build/client/assets/index-Bg9MMnnf.js.map +0 -1
- package/build/client/assets/index-D6ygCrVn.js +0 -37
- package/build/client/assets/index-D6ygCrVn.js.map +0 -1
- package/build/client/assets/index-r90CY6Wk.js +0 -8
- package/build/client/assets/index-r90CY6Wk.js.map +0 -1
- package/build/client/assets/manifest-b31ba37c.js +0 -1
- package/build/client/assets/mdx-BYvGbvEr.js +0 -2
- package/build/client/assets/misc-DNgC2Frq.js +0 -2
- package/build/client/assets/misc-DNgC2Frq.js.map +0 -1
- package/build/client/assets/progress-CF9Xwfxf.js +0 -2
- package/build/client/assets/progress-CF9Xwfxf.js.map +0 -1
- package/build/client/assets/root-BQ7V6fP4.js.map +0 -1
- package/build/client/assets/tailwind-Ck4g-nq0.css +0 -1
- package/build/client/assets/tooltip-Kw0lYWBI.js +0 -2
- package/build/client/assets/tooltip-Kw0lYWBI.js.map +0 -1
- package/node_modules/@babel/runtime/helpers/AsyncGenerator.js +0 -64
- package/node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js +0 -64
- package/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimitLoose.js +0 -10
- package/node_modules/@babel/runtime/helpers/esm/slicedToArrayLoose.js +0 -8
- package/node_modules/@babel/runtime/helpers/iterableToArrayLimitLoose.js +0 -10
- package/node_modules/@babel/runtime/helpers/slicedToArrayLoose.js +0 -8
- package/node_modules/@conform-to/dom/rollup.config.js +0 -100
- package/node_modules/@conform-to/react/rollup.config.js +0 -102
- package/node_modules/@conform-to/zod/rollup.config.js +0 -100
- package/node_modules/@radix-ui/number/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/primitive/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-accordion/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-arrow/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-collapsible/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-collection/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-compose-refs/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-context/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-direction/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-dismissable-layer/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-focus-guards/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-focus-scope/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-id/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-popover/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-popper/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-portal/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-presence/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-primitive/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-roving-focus/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-select/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-slot/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-tabs/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-toast/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-use-callback-ref/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-use-controllable-state/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-use-layout-effect/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-use-previous/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-use-rect/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-use-size/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-visually-hidden/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/rect/dist/index.d.ts.map +0 -1
- package/node_modules/@remix-run/server-runtime/node_modules/source-map/dist/source-map.js +0 -1
- package/node_modules/@remix-run/server-runtime/node_modules/source-map/lib/array-set.js +0 -100
- package/node_modules/@remix-run/server-runtime/node_modules/source-map/lib/base64.js +0 -18
- package/node_modules/@remix-run/server-runtime/node_modules/source-map/lib/mapping-list.js +0 -80
- package/node_modules/@remix-run/server-runtime/node_modules/source-map/lib/source-map-consumer.js +0 -1237
- package/node_modules/@remix-run/server-runtime/node_modules/source-map/lib/source-node.js +0 -404
- package/node_modules/@remix-run/server-runtime/node_modules/source-map/source-map.d.ts +0 -369
- package/node_modules/@remix-run/server-runtime/node_modules/source-map/source-map.js +0 -8
- package/node_modules/framer-motion/dist/projection.dev.js +0 -6659
- /package/node_modules/{@remix-run/server-runtime/node_modules/source-map → source-map}/LICENSE +0 -0
- /package/node_modules/{@remix-run/server-runtime/node_modules/source-map → source-map}/lib/mappings.wasm +0 -0
- /package/node_modules/{@remix-run/server-runtime/node_modules/source-map → source-map}/lib/read-wasm.js +0 -0
- /package/node_modules/{@remix-run/server-runtime/node_modules/source-map → source-map}/lib/wasm.js +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/and.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/array-indices.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/array-slice.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/array-splice.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/array-values.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/async-return-type.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/asyncify.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/basic.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/camel-case.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/camel-cased-properties-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/camel-cased-properties.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/conditional-except.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/conditional-keys.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/conditional-pick-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/conditional-pick.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/conditional-simplify.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/delimiter-case.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/delimiter-cased-properties-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/delimiter-cased-properties.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/distributed-omit.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/distributed-pick.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/empty-object.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/enforce-optional.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/entries.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/entry.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/exact.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/except.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/fixed-length-array.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/get.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/global-this.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/greater-than-or-equal.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/greater-than.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/has-optional-keys.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/has-readonly-keys.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/has-required-keys.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/has-writable-keys.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/if-any.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/if-empty-object.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/if-never.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/if-null.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/if-unknown.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/includes.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/int-range.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/internal.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/invariant-of.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/is-any.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/is-equal.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/is-float.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/is-integer.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/is-never.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/is-null.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/is-unknown.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/iterable-element.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/join.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/jsonifiable.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/jsonify.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/kebab-case.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/kebab-cased-properties-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/kebab-cased-properties.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/keys-of-union.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/last-array-element.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/less-than-or-equal.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/less-than.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/literal-to-primitive-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/literal-to-primitive.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/literal-union.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/merge-exclusive.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/merge.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/multidimensional-array.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/multidimensional-readonly-array.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/non-empty-object.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/numeric.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/observable-like.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/omit-index-signature.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/opaque.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/optional-keys-of.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/or.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/override-properties.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/package-json.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/partial-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/partial-on-undefined-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/pascal-case.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/pascal-cased-properties-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/pascal-cased-properties.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/pick-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/pick-index-signature.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/primitive.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/promisable.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/readonly-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/readonly-keys-of.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/readonly-tuple.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/replace.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/require-all-or-none.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/require-at-least-one.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/require-exactly-one.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/require-one-or-none.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/required-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/required-keys-of.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/screaming-snake-case.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/set-field-type.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/set-non-nullable.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/set-optional.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/set-parameter-type.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/set-readonly.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/set-required.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/set-return-type.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/shared-union-fields-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/single-key-object.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/snake-case.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/snake-cased-properties-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/snake-cased-properties.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/split-words.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/split.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/spread.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/string-key-of.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/string-slice.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/stringified.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/subtract.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/sum.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/tagged-union.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/trim.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/tsconfig-json.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/tuple-to-union.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/typed-array.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/undefined-on-partial-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/union-to-intersection.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/unknown-array.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/unknown-record.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/value-of.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/writable-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/writable-keys-of.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/writable.d.ts +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{j as e,r as l}from"./index-D6ygCrVn.js";import{E as t}from"./index-9nNr0Zqr.js";import{E as n}from"./epic-video-BwtXsHGU.js";import{L as a}from"./loading-C9f_vBoM.js";import{N as d}from"./nav-chevrons-DOYtx9XE.js";import{M as c,E as m}from"./mdx-BYvGbvEr.js";import{c as p}from"./misc-DNgC2Frq.js";import{g as f}from"./seo-Bu3_n5my.js";import{P as h}from"./progress-CF9Xwfxf.js";import{u as x,L as u}from"./components-C5xBZAiL.js";import"./index-Bg9MMnnf.js";import"./request-info-Dyls4H67.js";import"./tooltip-Kw0lYWBI.js";import"./client-hints-BKxdo5Js.js";import"./clsx-B-dksMZM.js";import"./progress-bar-7LK87ZMh.js";const V=({matches:s})=>{var o;const r=(o=s.find(i=>i.id==="root"))==null?void 0:o.data;return r?f({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}):[]},j={h1:()=>null};function q(){const s=x();return 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(u,{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-10 pt-8 scrollbar-thin scrollbar-thumb-scrollbar",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(c,{code:s.finishedCode,components:j})})}):"No finished instructions yet..."}),e.jsx(t,{elementQuery:`#${s.articleId}`}),e.jsx(h,{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(m,{file:s.workshopFinished.file,relativePath:s.workshopFinished.relativePath}):null,e.jsx(d,{prev:s.prevStepLink,next:{to:"/"}})]})]}),e.jsx(b,{workshopTitle:s.workshopTitle,workshopFormEmbedUrl:s.workshopFormEmbedUrl})]})})}function b({workshopTitle:s,workshopFormEmbedUrl:r}){const[o,i]=l.useState(!1);return e.jsxs("div",{className:"relative flex-shrink-0",children:[o?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:()=>i(!0),title:"Elaboration",src:r,className:p("absolute inset-0 flex h-full w-full transition-opacity duration-300",o?"opacity-100":"opacity-0")})]})}export{q as default,V as meta};
|
|
2
|
-
//# sourceMappingURL=finished-Cu9PZd5Q.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"finished-Cu9PZd5Q.js","sources":["../../../app/routes/_app+/finished.tsx"],"sourcesContent":["import { ElementScrollRestoration } from '@epic-web/restore-scroll'\nimport {\n\tgetExercises,\n\tgetWorkshopFinished,\n\tgetWorkshopRoot,\n\tgetWorkshopTitle,\n} from '@epic-web/workshop-utils/apps.server'\nimport {\n\tcombineServerTimings,\n\tgetServerTimeHeader,\n\tmakeTimings,\n\ttime,\n} from '@epic-web/workshop-utils/timing.server'\nimport { getPkgProp } from '@epic-web/workshop-utils/utils.server'\nimport {\n\tdefer,\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 { 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 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 workshopTitle = await getWorkshopTitle()\n\tconst workshopRoot = getWorkshopRoot()\n\tconst workshopFormTemplate = await getPkgProp(\n\t\tworkshopRoot,\n\t\t'epicshop.forms.workshop',\n\t\t'https://docs.google.com/forms/d/e/1FAIpQLSdRmj9p8-5zyoqRzxp3UpqSbC3aFkweXvvJIKes0a5s894gzg/viewform?hl=en&embedded=true&entry.2123647600={workshopTitle}',\n\t)\n\tconst workshopFormEmbedUrl = workshopFormTemplate.replace(\n\t\t'{workshopTitle}',\n\t\tencodeURIComponent(workshopTitle),\n\t)\n\treturn defer(\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\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-10 pt-8 scrollbar-thin scrollbar-thumb-scrollbar\"\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\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":["meta","matches","rootData","find","m","id","data","getSeoMetaTags","title","workshopTitle","description","ogTitle","ogDescription","instructor","requestInfo","mdxComponents","h1","ExerciseFinished","useLoaderData","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","src","cn"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-Bg9MMnnf.js","sources":["../../../../../node_modules/@conform-to/dom/_virtual/_rollupPluginBabelHelpers.mjs","../../../../../node_modules/@conform-to/dom/formdata.mjs","../../../../../node_modules/@conform-to/dom/util.mjs","../../../../../node_modules/@conform-to/dom/dom.mjs","../../../../../node_modules/@conform-to/dom/submission.mjs","../../../../../node_modules/@conform-to/dom/form.mjs","../../../../../node_modules/@conform-to/react/_virtual/_rollupPluginBabelHelpers.mjs","../../../../../node_modules/@conform-to/react/context.mjs","../../../../../node_modules/@conform-to/react/hooks.mjs","../../../../../node_modules/@conform-to/react/helpers.mjs","../../../../../node_modules/@conform-to/zod/_virtual/_rollupPluginBabelHelpers.mjs","../../../../../node_modules/@conform-to/zod/coercion.mjs","../../../../../node_modules/@conform-to/zod/parse.mjs","../../../app/utils/forms.tsx","../../../app/routes/theme/index.tsx"],"sourcesContent":["function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nexport { _defineProperty as defineProperty, _objectSpread2 as objectSpread2, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey };\n","/**\n * Construct a form data with the submitter value.\n * It utilizes the submitter argument on the FormData constructor from modern browsers\n * with fallback to append the submitter value in case it is not unsupported.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/FormData/FormData#parameters\n */\nfunction getFormData(form, submitter) {\n var payload = new FormData(form, submitter);\n if (submitter && submitter.type === 'submit' && submitter.name !== '') {\n var entries = payload.getAll(submitter.name);\n\n // This assumes the submitter value to be always unique, which should be fine in most cases\n if (!entries.includes(submitter.value)) {\n payload.append(submitter.name, submitter.value);\n }\n }\n return payload;\n}\n\n/**\n * Returns the paths from a name based on the JS syntax convention\n * @example\n * ```js\n * const paths = getPaths('todos[0].content'); // ['todos', 0, 'content']\n * ```\n */\nfunction getPaths(name) {\n if (!name) {\n return [];\n }\n return name.split(/\\.|(\\[\\d*\\])/).reduce((result, segment) => {\n if (typeof segment !== 'undefined' && segment !== '' && segment !== '__proto__' && segment !== 'constructor' && segment !== 'prototype') {\n if (segment.startsWith('[') && segment.endsWith(']')) {\n var index = segment.slice(1, -1);\n result.push(Number(index));\n } else {\n result.push(segment);\n }\n }\n return result;\n }, []);\n}\n\n/**\n * Returns a formatted name from the paths based on the JS syntax convention\n * @example\n * ```js\n * const name = formatPaths(['todos', 0, 'content']); // \"todos[0].content\"\n * ```\n */\nfunction formatPaths(paths) {\n return paths.reduce((name, path) => {\n if (typeof path === 'number') {\n return \"\".concat(name, \"[\").concat(Number.isNaN(path) ? '' : path, \"]\");\n }\n if (name === '' || path === '') {\n return [name, path].join('');\n }\n return [name, path].join('.');\n }, '');\n}\n\n/**\n * Format based on a prefix and a path\n */\nfunction formatName(prefix, path) {\n return typeof path !== 'undefined' ? formatPaths([...getPaths(prefix), path]) : prefix !== null && prefix !== void 0 ? prefix : '';\n}\n\n/**\n * Check if a name match the prefix paths\n */\nfunction isPrefix(name, prefix) {\n var paths = getPaths(name);\n var prefixPaths = getPaths(prefix);\n return paths.length >= prefixPaths.length && prefixPaths.every((path, index) => paths[index] === path);\n}\n\n/**\n * Assign a value to a target object by following the paths\n */\nfunction setValue(target, name, valueFn) {\n var paths = getPaths(name);\n var length = paths.length;\n var lastIndex = length - 1;\n var index = -1;\n var pointer = target;\n while (pointer != null && ++index < length) {\n var key = paths[index];\n var nextKey = paths[index + 1];\n var newValue = index != lastIndex ? Object.prototype.hasOwnProperty.call(pointer, key) && pointer[key] !== null ? pointer[key] : typeof nextKey === 'number' ? [] : {} : valueFn(pointer[key]);\n pointer[key] = newValue;\n pointer = pointer[key];\n }\n}\n\n/**\n * Retrive the value from a target object by following the paths\n */\nfunction getValue(target, name) {\n var pointer = target;\n for (var path of getPaths(name)) {\n if (typeof pointer === 'undefined' || pointer == null) {\n break;\n }\n if (!Object.prototype.hasOwnProperty.call(pointer, path)) {\n return;\n }\n if (isPlainObject(pointer) && typeof path === 'string') {\n pointer = pointer[path];\n } else if (Array.isArray(pointer) && typeof path === 'number') {\n pointer = pointer[path];\n } else {\n return;\n }\n }\n return pointer;\n}\n\n/**\n * Check if the value is a plain object\n */\nfunction isPlainObject(obj) {\n return !!obj && obj.constructor === Object && Object.getPrototypeOf(obj) === Object.prototype;\n}\n\n/**\n * Check if the value is a File\n */\nfunction isFile(obj) {\n // Skip checking if File is not defined\n if (typeof File === 'undefined') {\n return false;\n }\n return obj instanceof File;\n}\n\n/**\n * Normalize value by removing empty object or array, empty string and null values\n */\n\nfunction normalize(value) {\n var acceptFile = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (isPlainObject(value)) {\n var obj = Object.keys(value).sort().reduce((result, key) => {\n var data = normalize(value[key], acceptFile);\n if (typeof data !== 'undefined') {\n result[key] = data;\n }\n return result;\n }, {});\n if (Object.keys(obj).length === 0) {\n return;\n }\n return obj;\n }\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return undefined;\n }\n return value.map(item => normalize(item, acceptFile));\n }\n if (typeof value === 'string' && value === '' || value === null || isFile(value) && (!acceptFile || value.size === 0)) {\n return;\n }\n return value;\n}\n\n/**\n * Flatten a tree into a dictionary\n */\nfunction flatten(data) {\n var _options$resolve;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var result = {};\n var resolve = (_options$resolve = options.resolve) !== null && _options$resolve !== void 0 ? _options$resolve : data => data;\n function process(data, prefix) {\n var value = normalize(resolve(data));\n if (typeof value !== 'undefined') {\n result[prefix] = value;\n }\n if (Array.isArray(data)) {\n for (var i = 0; i < data.length; i++) {\n process(data[i], \"\".concat(prefix, \"[\").concat(i, \"]\"));\n }\n } else if (isPlainObject(data)) {\n for (var [key, _value] of Object.entries(data)) {\n process(_value, prefix ? \"\".concat(prefix, \".\").concat(key) : key);\n }\n }\n }\n if (data) {\n var _options$prefix;\n process(data, (_options$prefix = options.prefix) !== null && _options$prefix !== void 0 ? _options$prefix : '');\n }\n return result;\n}\n\nexport { flatten, formatName, formatPaths, getFormData, getPaths, getValue, isFile, isPlainObject, isPrefix, normalize, setValue };\n","function invariant(expectedCondition, message) {\n if (!expectedCondition) {\n throw new Error(message);\n }\n}\nfunction generateId() {\n return (Date.now() * Math.random()).toString(36);\n}\nfunction clone(data) {\n return JSON.parse(JSON.stringify(data));\n}\n\nexport { clone, generateId, invariant };\n","import { invariant } from './util.mjs';\n\n/**\n * Element that user can interact with,\n * includes `<input>`, `<select>` and `<textarea>`.\n */\n\n/**\n * HTML Element that can be used as a form control,\n * includes `<input>`, `<select>`, `<textarea>` and `<button>`.\n */\n\n/**\n * Form Control element. It can either be a submit button or a submit input.\n */\n\n/**\n * A type guard to check if the provided element is a form control\n */\nfunction isFormControl(element) {\n return element instanceof Element && (element.tagName === 'INPUT' || element.tagName === 'SELECT' || element.tagName === 'TEXTAREA' || element.tagName === 'BUTTON');\n}\n\n/**\n * A type guard to check if the provided element is a field element, which\n * is a form control excluding submit, button and reset type.\n */\nfunction isFieldElement(element) {\n return isFormControl(element) && element.type !== 'submit' && element.type !== 'button' && element.type !== 'reset';\n}\n\n/**\n * Resolves the action from the submit event\n * with respect to the submitter `formaction` attribute.\n */\nfunction getFormAction(event) {\n var _ref, _submitter$getAttribu;\n var form = event.target;\n var submitter = event.submitter;\n return (_ref = (_submitter$getAttribu = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute('formaction')) !== null && _submitter$getAttribu !== void 0 ? _submitter$getAttribu : form.getAttribute('action')) !== null && _ref !== void 0 ? _ref : \"\".concat(location.pathname).concat(location.search);\n}\n\n/**\n * Resolves the encoding type from the submit event\n * with respect to the submitter `formenctype` attribute.\n */\nfunction getFormEncType(event) {\n var _submitter$getAttribu2;\n var form = event.target;\n var submitter = event.submitter;\n var encType = (_submitter$getAttribu2 = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute('formenctype')) !== null && _submitter$getAttribu2 !== void 0 ? _submitter$getAttribu2 : form.enctype;\n if (encType === 'multipart/form-data') {\n return encType;\n }\n return 'application/x-www-form-urlencoded';\n}\n\n/**\n * Resolves the method from the submit event\n * with respect to the submitter `formmethod` attribute.\n */\nfunction getFormMethod(event) {\n var _ref2, _submitter$getAttribu3;\n var form = event.target;\n var submitter = event.submitter;\n var method = (_ref2 = (_submitter$getAttribu3 = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute('formmethod')) !== null && _submitter$getAttribu3 !== void 0 ? _submitter$getAttribu3 : form.getAttribute('method')) === null || _ref2 === void 0 ? void 0 : _ref2.toUpperCase();\n switch (method) {\n case 'POST':\n case 'PUT':\n case 'PATCH':\n case 'DELETE':\n return method;\n }\n return 'GET';\n}\n\n/**\n * Trigger a form submit event with an optional submitter.\n * If the submitter is not mounted, it will be appended to the form and removed after submission.\n */\nfunction requestSubmit(form, submitter) {\n invariant(!!form, 'Failed to submit the form. The element provided is null or undefined.');\n if (typeof form.requestSubmit === 'function') {\n form.requestSubmit(submitter);\n } else {\n var event = new SubmitEvent('submit', {\n bubbles: true,\n cancelable: true,\n submitter\n });\n form.dispatchEvent(event);\n }\n}\n\nexport { getFormAction, getFormEncType, getFormMethod, isFieldElement, isFormControl, requestSubmit };\n","import { objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\nimport { formatName, setValue, isPlainObject, getValue, normalize, flatten, isPrefix } from './formdata.mjs';\nimport { invariant } from './util.mjs';\n\n/**\n * The name to be used when submitting a form control\n */\nvar INTENT = '__intent__';\n\n/**\n * The name to be used when submitting a state\n */\nvar STATE = '__state__';\nfunction getSubmissionContext(body) {\n var intent = body.get(INTENT);\n var state = body.get(STATE);\n invariant((typeof intent === 'string' || intent === null) && (typeof state === 'string' || state === null), \"The input name \\\"\".concat(INTENT, \"\\\" and \\\"\").concat(STATE, \"\\\" are reserved by Conform. Please use another name for your input.\"));\n var context = {\n payload: {},\n fields: new Set(),\n intent: getIntent(intent)\n };\n if (state) {\n context.state = JSON.parse(state);\n }\n var _loop = function _loop(next) {\n if (name === INTENT || name === STATE) {\n return 1; // continue\n }\n context.fields.add(name);\n setValue(context.payload, name, prev => {\n if (!prev) {\n return next;\n } else if (Array.isArray(prev)) {\n return prev.concat(next);\n } else {\n return [prev, next];\n }\n });\n };\n for (var [name, next] of body.entries()) {\n if (_loop(next)) continue;\n }\n return context;\n}\nfunction parse(payload, options) {\n var context = getSubmissionContext(payload);\n var intent = context.intent;\n if (intent) {\n switch (intent.type) {\n case 'update':\n {\n var name = formatName(intent.payload.name, intent.payload.index);\n var _value = intent.payload.value;\n if (typeof intent.payload.value !== 'undefined') {\n if (name) {\n setValue(context.payload, name, () => _value);\n } else {\n context.payload = _value;\n }\n }\n break;\n }\n case 'reset':\n {\n var _name = formatName(intent.payload.name, intent.payload.index);\n if (_name) {\n setValue(context.payload, _name, () => undefined);\n } else {\n context.payload = {};\n }\n break;\n }\n case 'insert':\n case 'remove':\n case 'reorder':\n {\n setListValue(context.payload, intent);\n break;\n }\n }\n }\n var result = options.resolve(context.payload, intent);\n var mergeResolveResult = resolved => createSubmission(_objectSpread2(_objectSpread2({}, context), {}, {\n value: resolved.value,\n error: resolved.error\n }));\n if (result instanceof Promise) {\n return result.then(mergeResolveResult);\n }\n return mergeResolveResult(result);\n}\nfunction createSubmission(context) {\n if (context.intent || !context.value || context.error) {\n return {\n status: !context.intent ? 'error' : undefined,\n payload: context.payload,\n error: typeof context.error !== 'undefined' ? context.error : {},\n reply(options) {\n return replySubmission(context, options);\n }\n };\n }\n return {\n status: 'success',\n payload: context.payload,\n value: context.value,\n reply(options) {\n return replySubmission(context, options);\n }\n };\n}\nfunction replySubmission(context) {\n var _context$intent, _context$intent$paylo, _options$formErrors, _normalize;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if ('resetForm' in options && options.resetForm || ((_context$intent = context.intent) === null || _context$intent === void 0 ? void 0 : _context$intent.type) === 'reset' && ((_context$intent$paylo = context.intent.payload.name) !== null && _context$intent$paylo !== void 0 ? _context$intent$paylo : '') === '') {\n return {\n initialValue: null\n };\n }\n if ('hideFields' in options && options.hideFields) {\n for (var name of options.hideFields) {\n var _value2 = getValue(context.payload, name);\n if (typeof _value2 !== 'undefined') {\n setValue(context.payload, name, () => undefined);\n }\n }\n }\n var extraError = 'formErrors' in options || 'fieldErrors' in options ? normalize(_objectSpread2({\n '': (_options$formErrors = options.formErrors) !== null && _options$formErrors !== void 0 ? _options$formErrors : null\n }, options.fieldErrors)) : null;\n var error = context.error || extraError ? _objectSpread2(_objectSpread2({}, context.error), extraError) : undefined;\n return {\n status: context.intent ? undefined : error ? 'error' : 'success',\n intent: context.intent ? context.intent : undefined,\n initialValue: (_normalize = normalize(context.payload,\n // We can't serialize the file and send it back from the server, but we can preserve it in the client\n typeof document !== 'undefined')) !== null && _normalize !== void 0 ? _normalize : {},\n error,\n state: context.state,\n fields: Array.from(context.fields)\n };\n}\nfunction getIntent(serializedIntent) {\n if (!serializedIntent) {\n return null;\n }\n var control = JSON.parse(serializedIntent);\n if (typeof control.type !== 'string' || typeof control.payload === 'undefined') {\n throw new Error('Unknown form control intent');\n }\n return control;\n}\nfunction serializeIntent(intent) {\n switch (intent.type) {\n case 'insert':\n return JSON.stringify({\n type: intent.type,\n payload: _objectSpread2(_objectSpread2({}, intent.payload), {}, {\n defaultValue: serialize(intent.payload.defaultValue)\n })\n });\n case 'update':\n return JSON.stringify({\n type: intent.type,\n payload: _objectSpread2(_objectSpread2({}, intent.payload), {}, {\n value: serialize(intent.payload.value)\n })\n });\n default:\n return JSON.stringify(intent);\n }\n}\nfunction updateList(list, intent) {\n var _intent$payload$index;\n invariant(Array.isArray(list), \"Failed to update list. The value is not an array.\");\n switch (intent.type) {\n case 'insert':\n list.splice((_intent$payload$index = intent.payload.index) !== null && _intent$payload$index !== void 0 ? _intent$payload$index : list.length, 0, intent.payload.defaultValue);\n break;\n case 'remove':\n list.splice(intent.payload.index, 1);\n break;\n case 'reorder':\n list.splice(intent.payload.to, 0, ...list.splice(intent.payload.from, 1));\n break;\n default:\n throw new Error('Unknown list intent received');\n }\n}\nfunction setListValue(data, intent) {\n setValue(data, intent.payload.name, value => {\n var list = value !== null && value !== void 0 ? value : [];\n updateList(list, intent);\n return list;\n });\n}\n\n/**\n * A placeholder symbol for the root value of a nested object\n */\nvar root = Symbol.for('root');\nfunction setState(state, name, valueFn) {\n // The keys are sorted in desc so that the root value is handled last\n var keys = Object.keys(state).sort((prev, next) => next.localeCompare(prev));\n var target = {};\n var _loop2 = function _loop2() {\n var value = state[key];\n if (isPrefix(key, name) && key !== name) {\n setValue(target, key, currentValue => {\n if (typeof currentValue === 'undefined') {\n return value;\n }\n\n // As the key should be unique, if currentValue is already defined,\n // it must be either an object or an array\n\n // @ts-expect-error\n currentValue[root] = value;\n return currentValue;\n });\n\n // Remove the value from the data\n delete state[key];\n }\n };\n for (var key of keys) {\n _loop2();\n }\n var result = valueFn(getValue(target, name));\n Object.assign(state, flatten(result, {\n resolve(data) {\n if (isPlainObject(data) || Array.isArray(data)) {\n var _data$root;\n // @ts-expect-error\n return (_data$root = data[root]) !== null && _data$root !== void 0 ? _data$root : null;\n }\n return data;\n },\n prefix: name\n }));\n}\nfunction setListState(state, intent, getDefaultValue) {\n setState(state, intent.payload.name, value => {\n var list = value !== null && value !== void 0 ? value : [];\n switch (intent.type) {\n case 'insert':\n updateList(list, {\n type: intent.type,\n payload: _objectSpread2(_objectSpread2({}, intent.payload), {}, {\n defaultValue: getDefaultValue === null || getDefaultValue === void 0 ? void 0 : getDefaultValue(intent.payload.defaultValue)\n })\n });\n break;\n default:\n updateList(list, intent);\n break;\n }\n return list;\n });\n}\nfunction serialize(defaultValue) {\n if (isPlainObject(defaultValue)) {\n // @ts-expect-error FIXME\n return Object.entries(defaultValue).reduce((result, _ref) => {\n var [key, value] = _ref;\n result[key] = serialize(value);\n return result;\n }, {});\n } else if (Array.isArray(defaultValue)) {\n // @ts-expect-error FIXME\n return defaultValue.map(serialize);\n } else if (defaultValue instanceof Date) {\n // @ts-expect-error FIXME\n return defaultValue.toISOString();\n } else if (typeof defaultValue === 'boolean') {\n // @ts-expect-error FIXME\n return defaultValue ? 'on' : undefined;\n } else if (typeof defaultValue === 'number' || typeof defaultValue === 'bigint') {\n // @ts-expect-error FIXME\n return defaultValue.toString();\n } else {\n // @ts-expect-error FIXME\n return defaultValue !== null && defaultValue !== void 0 ? defaultValue : undefined;\n }\n}\n\nexport { INTENT, STATE, createSubmission, getIntent, getSubmissionContext, parse, replySubmission, root, serialize, serializeIntent, setListState, setListValue, setState, updateList };\n","import { objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\nimport { flatten, formatName, getValue, isPlainObject, isPrefix, setValue, normalize, getFormData, getPaths, formatPaths } from './formdata.mjs';\nimport { getFormAction, getFormEncType, getFormMethod, isFieldElement, requestSubmit } from './dom.mjs';\nimport { generateId, clone, invariant } from './util.mjs';\nimport { serialize, setListState, setListValue, setState, INTENT, serializeIntent, root, getSubmissionContext } from './submission.mjs';\n\nfunction createFormMeta(options, initialized) {\n var _lastResult$initialVa, _options$constraint, _lastResult$state$val, _lastResult$state, _ref;\n var lastResult = !initialized ? options.lastResult : undefined;\n var defaultValue = options.defaultValue ? serialize(options.defaultValue) : {};\n var initialValue = (_lastResult$initialVa = lastResult === null || lastResult === void 0 ? void 0 : lastResult.initialValue) !== null && _lastResult$initialVa !== void 0 ? _lastResult$initialVa : defaultValue;\n var result = {\n formId: options.formId,\n isValueUpdated: false,\n submissionStatus: lastResult === null || lastResult === void 0 ? void 0 : lastResult.status,\n defaultValue,\n initialValue,\n value: initialValue,\n constraint: (_options$constraint = options.constraint) !== null && _options$constraint !== void 0 ? _options$constraint : {},\n validated: (_lastResult$state$val = lastResult === null || lastResult === void 0 || (_lastResult$state = lastResult.state) === null || _lastResult$state === void 0 ? void 0 : _lastResult$state.validated) !== null && _lastResult$state$val !== void 0 ? _lastResult$state$val : {},\n key: !initialized ? getDefaultKey(defaultValue) : _objectSpread2({\n '': generateId()\n }, getDefaultKey(defaultValue)),\n // The `lastResult` should comes from the server which we won't expect the error to be null\n // We can consider adding a warning if it happens\n error: (_ref = lastResult === null || lastResult === void 0 ? void 0 : lastResult.error) !== null && _ref !== void 0 ? _ref : {}\n };\n handleIntent(result, lastResult === null || lastResult === void 0 ? void 0 : lastResult.intent, lastResult === null || lastResult === void 0 ? void 0 : lastResult.fields);\n return result;\n}\nfunction getDefaultKey(defaultValue, prefix) {\n return Object.entries(flatten(defaultValue, {\n prefix\n })).reduce((result, _ref2) => {\n var [key, value] = _ref2;\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n result[formatName(key, i)] = generateId();\n }\n }\n return result;\n }, {});\n}\nfunction setFieldsValidated(meta, fields) {\n for (var _name of Object.keys(meta.error).concat(fields !== null && fields !== void 0 ? fields : [])) {\n meta.validated[_name] = true;\n }\n}\nfunction handleIntent(meta, intent, fields, initialized) {\n var _fields$filter;\n if (!intent) {\n setFieldsValidated(meta, fields);\n return;\n }\n switch (intent.type) {\n case 'validate':\n {\n if (intent.payload.name) {\n meta.validated[intent.payload.name] = true;\n } else {\n setFieldsValidated(meta, fields);\n }\n break;\n }\n case 'update':\n {\n var {\n validated,\n value\n } = intent.payload;\n var _name2 = formatName(intent.payload.name, intent.payload.index);\n if (typeof value !== 'undefined') {\n updateValue(meta, _name2 !== null && _name2 !== void 0 ? _name2 : '', value);\n }\n if (typeof validated !== 'undefined') {\n // Clean up previous validated state\n if (_name2) {\n setState(meta.validated, _name2, () => undefined);\n } else {\n meta.validated = {};\n }\n if (validated) {\n if (isPlainObject(value) || Array.isArray(value)) {\n Object.assign(meta.validated, flatten(value, {\n resolve() {\n return true;\n },\n prefix: _name2\n }));\n }\n meta.validated[_name2 !== null && _name2 !== void 0 ? _name2 : ''] = true;\n } else if (_name2) {\n delete meta.validated[_name2];\n }\n }\n break;\n }\n case 'reset':\n {\n var _name3 = formatName(intent.payload.name, intent.payload.index);\n var _value = getValue(meta.defaultValue, _name3);\n updateValue(meta, _name3, _value);\n if (_name3) {\n setState(meta.validated, _name3, () => undefined);\n delete meta.validated[_name3];\n } else {\n meta.validated = {};\n }\n break;\n }\n case 'insert':\n case 'remove':\n case 'reorder':\n {\n if (initialized) {\n meta.initialValue = clone(meta.initialValue);\n meta.key = clone(meta.key);\n setListState(meta.key, intent, defaultValue => {\n if (!Array.isArray(defaultValue) && !isPlainObject(defaultValue)) {\n return generateId();\n }\n return Object.assign(getDefaultKey(defaultValue), {\n [root]: generateId()\n });\n });\n setListValue(meta.initialValue, intent);\n }\n setListState(meta.validated, intent);\n meta.validated[intent.payload.name] = true;\n break;\n }\n }\n var validatedFields = (_fields$filter = fields === null || fields === void 0 ? void 0 : fields.filter(name => meta.validated[name])) !== null && _fields$filter !== void 0 ? _fields$filter : [];\n meta.error = Object.entries(meta.error).reduce((result, _ref3) => {\n var [name, error] = _ref3;\n if (meta.validated[name] || validatedFields.some(field => isPrefix(name, field))) {\n result[name] = error;\n }\n return result;\n }, {});\n}\nfunction updateValue(meta, name, value) {\n if (name === '') {\n meta.initialValue = value;\n meta.value = value;\n meta.key = _objectSpread2(_objectSpread2({}, getDefaultKey(value)), {}, {\n '': generateId()\n });\n return;\n }\n meta.initialValue = clone(meta.initialValue);\n meta.value = clone(meta.value);\n meta.key = clone(meta.key);\n setValue(meta.initialValue, name, () => value);\n setValue(meta.value, name, () => value);\n if (isPlainObject(value) || Array.isArray(value)) {\n setState(meta.key, name, () => undefined);\n Object.assign(meta.key, getDefaultKey(value, name));\n }\n meta.key[name] = generateId();\n}\nfunction createStateProxy(fn) {\n var cache = {};\n return new Proxy(cache, {\n get(_, name, receiver) {\n var _cache$name;\n if (typeof name !== 'string') {\n return;\n }\n return (_cache$name = cache[name]) !== null && _cache$name !== void 0 ? _cache$name : cache[name] = fn(name, receiver);\n }\n });\n}\nfunction createValueProxy(value) {\n var val = normalize(value);\n return createStateProxy((name, proxy) => {\n if (name === '') {\n return val;\n }\n var paths = getPaths(name);\n var basename = formatPaths(paths.slice(0, -1));\n var key = formatPaths(paths.slice(-1));\n var parentValue = proxy[basename];\n return getValue(parentValue, key);\n });\n}\nfunction createConstraintProxy(constraint) {\n return createStateProxy((name, proxy) => {\n var _result;\n var result = constraint[name];\n if (!result) {\n var paths = getPaths(name);\n for (var i = paths.length - 1; i >= 0; i--) {\n var path = paths[i];\n if (typeof path === 'number' && !Number.isNaN(path)) {\n paths[i] = Number.NaN;\n break;\n }\n }\n var alternative = formatPaths(paths);\n if (name !== alternative) {\n result = proxy[alternative];\n }\n }\n return (_result = result) !== null && _result !== void 0 ? _result : {};\n });\n}\nfunction createKeyProxy(key) {\n return createStateProxy((name, proxy) => {\n var currentKey = key[name];\n var paths = getPaths(name);\n if (paths.length === 0) {\n return currentKey;\n }\n var parentKey = proxy[formatPaths(paths.slice(0, -1))];\n if (typeof parentKey === 'undefined') {\n return currentKey;\n }\n return \"\".concat(parentKey, \"/\").concat(currentKey !== null && currentKey !== void 0 ? currentKey : paths.at(-1));\n });\n}\nfunction createValidProxy(error) {\n return createStateProxy(name => {\n var keys = Object.keys(error);\n if (name === '') {\n return keys.length === 0;\n }\n for (var key of keys) {\n if (isPrefix(key, name) && typeof error[key] !== 'undefined') {\n return false;\n }\n }\n return true;\n });\n}\nfunction createDirtyProxy(defaultValue, value, shouldDirtyConsider) {\n return createStateProxy(name => JSON.stringify(defaultValue[name]) !== JSON.stringify(value[name], (key, value) => {\n if (name === '' && key === '' && value) {\n return Object.entries(value).reduce((result, _ref4) => {\n var [name, value] = _ref4;\n if (!shouldDirtyConsider(name)) {\n return result;\n }\n return Object.assign(result !== null && result !== void 0 ? result : {}, {\n [name]: value\n });\n }, undefined);\n }\n return value;\n }));\n}\nfunction shouldNotify(prev, next, cache, scope) {\n var compareFn = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : (prev, next) => JSON.stringify(prev) !== JSON.stringify(next);\n if (scope && prev !== next) {\n var _scope$prefix, _scope$name;\n var prefixes = (_scope$prefix = scope.prefix) !== null && _scope$prefix !== void 0 ? _scope$prefix : [];\n var names = (_scope$name = scope.name) !== null && _scope$name !== void 0 ? _scope$name : [];\n var list = prefixes.length === 0 ? names : Array.from(new Set([...Object.keys(prev), ...Object.keys(next)]));\n var _loop = function _loop(_name4) {\n if (prefixes.length === 0 || names.includes(_name4) || prefixes.some(prefix => isPrefix(_name4, prefix))) {\n var _cache$_name;\n (_cache$_name = cache[_name4]) !== null && _cache$_name !== void 0 ? _cache$_name : cache[_name4] = compareFn(prev[_name4], next[_name4]);\n if (cache[_name4]) {\n return {\n v: true\n };\n }\n }\n },\n _ret;\n for (var _name4 of list) {\n _ret = _loop(_name4);\n if (_ret) return _ret.v;\n }\n }\n return false;\n}\nfunction createFormContext(options) {\n var subscribers = [];\n var latestOptions = options;\n var meta = createFormMeta(options);\n var state = createFormState(meta);\n function getFormElement() {\n return document.forms.namedItem(latestOptions.formId);\n }\n function createFormState(next) {\n var prev = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : next;\n var state = arguments.length > 2 ? arguments[2] : undefined;\n var defaultValue = !state || prev.defaultValue !== next.defaultValue ? createValueProxy(next.defaultValue) : state.defaultValue;\n var initialValue = next.initialValue === next.defaultValue ? defaultValue : !state || prev.initialValue !== next.initialValue ? createValueProxy(next.initialValue) : state.initialValue;\n var value = next.value === next.initialValue ? initialValue : !state || prev.value !== next.value ? createValueProxy(next.value) : state.value;\n return {\n submissionStatus: next.submissionStatus,\n defaultValue,\n initialValue,\n value,\n error: !state || prev.error !== next.error ? next.error : state.error,\n validated: next.validated,\n constraint: !state || prev.constraint !== next.constraint ? createConstraintProxy(next.constraint) : state.constraint,\n key: !state || prev.key !== next.key ? createKeyProxy(next.key) : state.key,\n valid: !state || prev.error !== next.error ? createValidProxy(next.error) : state.valid,\n dirty: !state || prev.defaultValue !== next.defaultValue || prev.value !== next.value ? createDirtyProxy(defaultValue, value, key => {\n var _latestOptions$should, _latestOptions$should2;\n return (_latestOptions$should = (_latestOptions$should2 = latestOptions.shouldDirtyConsider) === null || _latestOptions$should2 === void 0 ? void 0 : _latestOptions$should2.call(latestOptions, key)) !== null && _latestOptions$should !== void 0 ? _latestOptions$should : true;\n }) : state.dirty\n };\n }\n function updateFormMeta(nextMeta) {\n var prevMeta = meta;\n var prevState = state;\n var nextState = createFormState(nextMeta, prevMeta, prevState);\n\n // Apply change before notifying subscribers\n meta = nextMeta;\n state = nextState;\n var cache = {\n value: {},\n error: {},\n initialValue: {},\n key: {},\n valid: {},\n dirty: {}\n };\n for (var subscriber of subscribers) {\n var _subscriber$getSubjec;\n var subject = (_subscriber$getSubjec = subscriber.getSubject) === null || _subscriber$getSubjec === void 0 ? void 0 : _subscriber$getSubjec.call(subscriber);\n if (!subject || subject.formId && prevMeta.formId !== nextMeta.formId || subject.status && prevState.submissionStatus !== nextState.submissionStatus || shouldNotify(prevState.error, nextState.error, cache.error, subject.error) || shouldNotify(prevState.initialValue, nextState.initialValue, cache.initialValue, subject.initialValue) || shouldNotify(prevState.key, nextState.key, cache.key, subject.key, (prev, next) => prev !== next) || shouldNotify(prevState.valid, nextState.valid, cache.valid, subject.valid, compareBoolean) || shouldNotify(prevState.dirty, nextState.dirty, cache.dirty, subject.dirty, compareBoolean) || shouldNotify(prevState.value, nextState.value, cache.value, subject.value)) {\n subscriber.callback();\n }\n }\n }\n function compareBoolean() {\n var prev = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var next = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return prev !== next;\n }\n function getSerializedState() {\n return JSON.stringify({\n validated: meta.validated\n });\n }\n function submit(event) {\n var form = event.target;\n var submitter = event.submitter;\n invariant(form === getFormElement(), \"The submit event is dispatched by form#\".concat(form.id, \" instead of form#\").concat(latestOptions.formId));\n var formData = getFormData(form, submitter);\n var result = {\n formData,\n action: getFormAction(event),\n encType: getFormEncType(event),\n method: getFormMethod(event)\n };\n if (typeof (latestOptions === null || latestOptions === void 0 ? void 0 : latestOptions.onValidate) === 'undefined') {\n return result;\n }\n var submission = latestOptions.onValidate({\n form,\n formData,\n submitter\n });\n if (submission.status === 'success' || submission.error !== null) {\n var _result2 = submission.reply();\n report(_objectSpread2(_objectSpread2({}, _result2), {}, {\n status: _result2.status !== 'success' ? _result2.status : undefined\n }));\n }\n return _objectSpread2(_objectSpread2({}, result), {}, {\n submission\n });\n }\n function resolveTarget(event) {\n var form = getFormElement();\n var element = event.target;\n if (!form || !isFieldElement(element) || element.form !== form || !element.form.isConnected || element.name === '') {\n return null;\n }\n return element;\n }\n function willValidate(element, eventName) {\n var {\n shouldValidate = 'onSubmit',\n shouldRevalidate = shouldValidate\n } = latestOptions;\n var validated = meta.validated[element.name];\n return validated ? shouldRevalidate === eventName && (eventName === 'onInput' || meta.isValueUpdated) : shouldValidate === eventName;\n }\n function updateFormValue(form) {\n var formData = new FormData(form);\n var result = getSubmissionContext(formData);\n updateFormMeta(_objectSpread2(_objectSpread2({}, meta), {}, {\n isValueUpdated: true,\n value: result.payload\n }));\n }\n function onInput(event) {\n var element = resolveTarget(event);\n if (!element || !element.form) {\n return;\n }\n if (event.defaultPrevented || !willValidate(element, 'onInput')) {\n updateFormValue(element.form);\n } else {\n dispatch({\n type: 'validate',\n payload: {\n name: element.name\n }\n });\n }\n }\n function onBlur(event) {\n var element = resolveTarget(event);\n if (!element || event.defaultPrevented || !willValidate(element, 'onBlur')) {\n return;\n }\n dispatch({\n type: 'validate',\n payload: {\n name: element.name\n }\n });\n }\n function reset() {\n updateFormMeta(createFormMeta(latestOptions, true));\n }\n function onReset(event) {\n var element = getFormElement();\n if (event.type !== 'reset' || event.target !== element || event.defaultPrevented) {\n return;\n }\n reset();\n }\n function report(result) {\n var _result$error, _result$state;\n var formElement = getFormElement();\n if (!result.initialValue) {\n reset();\n return;\n }\n var error = Object.entries((_result$error = result.error) !== null && _result$error !== void 0 ? _result$error : {}).reduce((result, _ref5) => {\n var [name, newError] = _ref5;\n var error = newError === null ? meta.error[name] : newError;\n if (error) {\n result[name] = error;\n }\n return result;\n }, {});\n var update = _objectSpread2(_objectSpread2({}, meta), {}, {\n isValueUpdated: false,\n submissionStatus: result.status,\n value: result.initialValue,\n validated: _objectSpread2(_objectSpread2({}, meta.validated), (_result$state = result.state) === null || _result$state === void 0 ? void 0 : _result$state.validated),\n error\n });\n handleIntent(update, result.intent, result.fields, true);\n updateFormMeta(update);\n if (formElement && result.status === 'error') {\n for (var element of formElement.elements) {\n if (isFieldElement(element) && meta.error[element.name]) {\n element.focus();\n break;\n }\n }\n }\n }\n function onUpdate(options) {\n var currentFormId = latestOptions.formId;\n var currentResult = latestOptions.lastResult;\n\n // Merge new options with the latest options\n Object.assign(latestOptions, options);\n if (latestOptions.formId !== currentFormId) {\n reset();\n } else if (options.lastResult && options.lastResult !== currentResult) {\n report(options.lastResult);\n }\n }\n function subscribe(callback, getSubject) {\n var subscriber = {\n callback,\n getSubject\n };\n subscribers.push(subscriber);\n return () => {\n subscribers = subscribers.filter(current => current !== subscriber);\n };\n }\n function getState() {\n return state;\n }\n function dispatch(intent) {\n var form = getFormElement();\n var submitter = document.createElement('button');\n var buttonProps = getControlButtonProps(intent);\n submitter.name = buttonProps.name;\n submitter.value = buttonProps.value;\n submitter.hidden = true;\n submitter.formNoValidate = true;\n form === null || form === void 0 || form.appendChild(submitter);\n requestSubmit(form, submitter);\n form === null || form === void 0 || form.removeChild(submitter);\n }\n function getControlButtonProps(intent) {\n return {\n name: INTENT,\n value: serializeIntent(intent),\n form: latestOptions.formId,\n formNoValidate: true\n };\n }\n function createFormControl(type) {\n var control = function control() {\n var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return dispatch({\n type,\n payload\n });\n };\n return Object.assign(control, {\n getButtonProps() {\n var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return getControlButtonProps({\n type,\n payload\n });\n }\n });\n }\n function observe() {\n var observer = new MutationObserver(mutations => {\n var form = getFormElement();\n if (!form) {\n return;\n }\n for (var mutation of mutations) {\n var nodes = mutation.type === 'childList' ? [...mutation.addedNodes, ...mutation.removedNodes] : [mutation.target];\n for (var node of nodes) {\n var element = isFieldElement(node) ? node : node instanceof HTMLElement ? node.querySelector('input,select,textarea') : null;\n if ((element === null || element === void 0 ? void 0 : element.form) === form) {\n updateFormValue(form);\n return;\n }\n }\n }\n });\n observer.observe(document, {\n subtree: true,\n childList: true,\n attributes: true,\n attributeFilter: ['form', 'name']\n });\n return () => {\n observer.disconnect();\n };\n }\n return {\n getFormId() {\n return meta.formId;\n },\n submit,\n onReset,\n onInput,\n onBlur,\n onUpdate,\n validate: createFormControl('validate'),\n reset: createFormControl('reset'),\n update: createFormControl('update'),\n insert: createFormControl('insert'),\n remove: createFormControl('remove'),\n reorder: createFormControl('reorder'),\n subscribe,\n getState,\n getSerializedState,\n observe\n };\n}\n\nexport { createFormContext };\n","function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nexport { _defineProperty as defineProperty, _objectSpread2 as objectSpread2, _objectWithoutProperties as objectWithoutProperties, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey };\n","import { objectWithoutProperties as _objectWithoutProperties, objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\nimport { STATE, formatPaths, getPaths, unstable_createFormContext, INTENT, isPrefix } from '@conform-to/dom';\nimport { useContext, useMemo, createContext, useCallback, useSyncExternalStore, useRef } from 'react';\nimport { jsx } from 'react/jsx-runtime';\n\nvar _excluded = [\"onSubmit\"];\nvar Form = /*#__PURE__*/createContext([]);\n\n// To hide the FormContext type from the public API\nvar wrappedSymbol = Symbol('wrapped');\nfunction getWrappedFormContext(context) {\n return context[wrappedSymbol];\n}\nfunction useFormContext(formId) {\n var contexts = useContext(Form);\n var form = formId ? contexts.find(context => formId === context.getFormId()) : contexts[0];\n if (!form) {\n throw new Error('Form context is not available');\n }\n return form;\n}\nfunction useFormState(form, subjectRef) {\n var subscribe = useCallback(callback => form.subscribe(callback, () => subjectRef === null || subjectRef === void 0 ? void 0 : subjectRef.current), [form, subjectRef]);\n return useSyncExternalStore(subscribe, form.getState, form.getState);\n}\nfunction FormProvider(props) {\n var forms = useContext(Form);\n var context = getWrappedFormContext(props.context);\n var value = useMemo(() => [context].concat(forms),\n // Put the latest form context first\n [forms, context]);\n return /*#__PURE__*/jsx(Form.Provider, {\n value: value,\n children: props.children\n });\n}\nfunction FormStateInput(props) {\n var context = useFormContext(props.formId);\n return /*#__PURE__*/jsx(\"input\", {\n type: \"hidden\",\n name: STATE,\n value: context.getSerializedState(),\n form: props.formId\n });\n}\nfunction useSubjectRef() {\n var initialSubject = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var subjectRef = useRef(initialSubject);\n\n // Reset the subject everytime the component is rerendered\n // This let us subscribe to data used in the last render only\n subjectRef.current = initialSubject;\n return subjectRef;\n}\nfunction updateSubjectRef(ref, subject, scope, name) {\n if (subject === 'status' || subject === 'formId') {\n ref.current[subject] = true;\n } else if (typeof scope !== 'undefined' && typeof name !== 'undefined') {\n var _ref$current$subject$, _ref$current$subject;\n ref.current[subject] = _objectSpread2(_objectSpread2({}, ref.current[subject]), {}, {\n [scope]: ((_ref$current$subject$ = (_ref$current$subject = ref.current[subject]) === null || _ref$current$subject === void 0 ? void 0 : _ref$current$subject[scope]) !== null && _ref$current$subject$ !== void 0 ? _ref$current$subject$ : []).concat(name)\n });\n }\n}\nfunction getMetadata(context, subjectRef, stateSnapshot) {\n var name = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n var id = name ? \"\".concat(context.getFormId(), \"-\").concat(name) : context.getFormId();\n var state = context.getState();\n return new Proxy({\n id,\n name,\n errorId: \"\".concat(id, \"-error\"),\n descriptionId: \"\".concat(id, \"-description\"),\n get initialValue() {\n return state.initialValue[name];\n },\n get value() {\n return state.value[name];\n },\n get errors() {\n return state.error[name];\n },\n get key() {\n return state.key[name];\n },\n get valid() {\n return state.valid[name];\n },\n get dirty() {\n return state.dirty[name];\n },\n get allErrors() {\n if (name === '') {\n return state.error;\n }\n var result = {};\n for (var [key, error] of Object.entries(state.error)) {\n if (isPrefix(key, name)) {\n result[key] = error;\n }\n }\n return result;\n },\n get getFieldset() {\n return () => new Proxy({}, {\n get(target, key, receiver) {\n if (typeof key === 'string') {\n return getFieldMetadata(context, subjectRef, stateSnapshot, name, key);\n }\n return Reflect.get(target, key, receiver);\n }\n });\n }\n }, {\n get(target, key, receiver) {\n // We want to minize re-render by identifying whether the field is used in a callback only\n // but there is no clear way to know if it is accessed during render or not\n // if the stateSnapshot is not the latest, then it must be accessed in a callback\n if (state === stateSnapshot) {\n switch (key) {\n case 'id':\n case 'errorId':\n case 'descriptionId':\n updateSubjectRef(subjectRef, 'formId');\n break;\n case 'key':\n case 'initialValue':\n case 'value':\n case 'valid':\n case 'dirty':\n updateSubjectRef(subjectRef, key, 'name', name);\n break;\n case 'errors':\n case 'allErrors':\n updateSubjectRef(subjectRef, 'error', key === 'errors' ? 'name' : 'prefix', name);\n break;\n }\n }\n return Reflect.get(target, key, receiver);\n }\n });\n}\nfunction getFieldMetadata(context, subjectRef, stateSnapshot) {\n var prefix = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n var key = arguments.length > 4 ? arguments[4] : undefined;\n var name = typeof key === 'undefined' ? prefix : formatPaths([...getPaths(prefix), key]);\n return new Proxy({}, {\n get(_, key, receiver) {\n var _state$constraint$nam;\n var metadata = getMetadata(context, subjectRef, stateSnapshot, name);\n var state = context.getState();\n switch (key) {\n case 'formId':\n if (state === stateSnapshot) {\n updateSubjectRef(subjectRef, 'formId');\n }\n return context.getFormId();\n case 'required':\n case 'minLength':\n case 'maxLength':\n case 'min':\n case 'max':\n case 'pattern':\n case 'step':\n case 'multiple':\n return (_state$constraint$nam = state.constraint[name]) === null || _state$constraint$nam === void 0 ? void 0 : _state$constraint$nam[key];\n case 'getFieldList':\n {\n return () => {\n var _state$initialValue$n;\n var initialValue = (_state$initialValue$n = state.initialValue[name]) !== null && _state$initialValue$n !== void 0 ? _state$initialValue$n : [];\n if (state === stateSnapshot) {\n updateSubjectRef(subjectRef, 'initialValue', 'name', name);\n }\n if (!Array.isArray(initialValue)) {\n throw new Error('The initial value at the given name is not a list');\n }\n return Array(initialValue.length).fill(0).map((_, index) => getFieldMetadata(context, subjectRef, stateSnapshot, name, index));\n };\n }\n }\n return Reflect.get(metadata, key, receiver);\n }\n });\n}\nfunction getFormMetadata(context, subjectRef, stateSnapshot, noValidate) {\n return new Proxy({}, {\n get(_, key, receiver) {\n var metadata = getMetadata(context, subjectRef, stateSnapshot);\n var state = context.getState();\n switch (key) {\n case 'context':\n return {\n [wrappedSymbol]: context\n };\n case 'status':\n if (state === stateSnapshot) {\n updateSubjectRef(subjectRef, 'status');\n }\n return state.submissionStatus;\n case 'validate':\n case 'update':\n case 'reset':\n case 'insert':\n case 'remove':\n case 'reorder':\n return context[key];\n case 'onSubmit':\n return context.submit;\n case 'noValidate':\n return noValidate;\n }\n return Reflect.get(metadata, key, receiver);\n }\n });\n}\nfunction createFormContext(options) {\n var {\n onSubmit\n } = options,\n rest = _objectWithoutProperties(options, _excluded);\n var context = unstable_createFormContext(rest);\n return _objectSpread2(_objectSpread2({}, context), {}, {\n submit(event) {\n var submitEvent = event.nativeEvent;\n var result = context.submit(submitEvent);\n if (!result.submission || result.submission.status === 'success' || result.submission.error === null) {\n if (!result.formData.has(INTENT)) {\n var _onSubmit;\n (_onSubmit = onSubmit) === null || _onSubmit === void 0 || _onSubmit(event, result);\n }\n } else {\n event.preventDefault();\n }\n },\n onUpdate(options) {\n onSubmit = options.onSubmit;\n context.onUpdate(options);\n }\n });\n}\n\nexport { Form, FormProvider, FormStateInput, createFormContext, getFieldMetadata, getFormMetadata, getMetadata, getWrappedFormContext, updateSubjectRef, useFormContext, useFormState, useSubjectRef };\n","import { objectWithoutProperties as _objectWithoutProperties, objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\nimport { useState, useEffect, useLayoutEffect, useId } from 'react';\nimport { createFormContext, useSubjectRef, useFormState, getFormMetadata, useFormContext, getFieldMetadata } from './context.mjs';\n\nvar _excluded = [\"id\"];\n\n/**\n * useLayoutEffect is client-only.\n * This basically makes it a no-op on server\n */\nvar useSafeLayoutEffect = typeof document === 'undefined' ? useEffect : useLayoutEffect;\nfunction useFormId(preferredId) {\n var id = useId();\n return preferredId !== null && preferredId !== void 0 ? preferredId : id;\n}\nfunction useNoValidate() {\n var defaultNoValidate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var [noValidate, setNoValidate] = useState(defaultNoValidate);\n useSafeLayoutEffect(() => {\n // This is necessary to fix an issue in strict mode with related to our proxy setup\n // It avoids the component from being rerendered without re-rendering the child\n // Which reset the proxy but failed to capture its usage within child component\n if (!noValidate) {\n setNoValidate(true);\n }\n }, [noValidate]);\n return noValidate;\n}\nfunction useForm(options) {\n var {\n id\n } = options,\n formConfig = _objectWithoutProperties(options, _excluded);\n var formId = useFormId(id);\n var [context] = useState(() => createFormContext(_objectSpread2(_objectSpread2({}, formConfig), {}, {\n formId\n })));\n useSafeLayoutEffect(() => {\n var disconnect = context.observe();\n document.addEventListener('input', context.onInput);\n document.addEventListener('focusout', context.onBlur);\n document.addEventListener('reset', context.onReset);\n return () => {\n disconnect();\n document.removeEventListener('input', context.onInput);\n document.removeEventListener('focusout', context.onBlur);\n document.removeEventListener('reset', context.onReset);\n };\n }, [context]);\n useSafeLayoutEffect(() => {\n context.onUpdate(_objectSpread2(_objectSpread2({}, formConfig), {}, {\n formId\n }));\n });\n var subjectRef = useSubjectRef();\n var stateSnapshot = useFormState(context, subjectRef);\n var noValidate = useNoValidate(options.defaultNoValidate);\n var form = getFormMetadata(context, subjectRef, stateSnapshot, noValidate);\n return [form, form.getFieldset()];\n}\nfunction useFormMetadata(formId) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var subjectRef = useSubjectRef();\n var context = useFormContext(formId);\n var stateSnapshot = useFormState(context, subjectRef);\n var noValidate = useNoValidate(options.defaultNoValidate);\n return getFormMetadata(context, subjectRef, stateSnapshot, noValidate);\n}\nfunction useField(name) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var subjectRef = useSubjectRef();\n var context = useFormContext(options.formId);\n var stateSnapshot = useFormState(context, subjectRef);\n var field = getFieldMetadata(context, subjectRef, stateSnapshot, name);\n var form = getFormMetadata(context, subjectRef, stateSnapshot, false);\n return [field, form];\n}\n\nexport { useField, useForm, useFormId, useFormMetadata, useNoValidate, useSafeLayoutEffect };\n","import { objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\n\n/**\n * Cleanup `undefined` from the result.\n * To minimize conflicts when merging with user defined props\n */\nfunction simplify(props) {\n for (var key in props) {\n if (props[key] === undefined) {\n delete props[key];\n }\n }\n return props;\n}\n\n/**\n * Derives aria attributes of a form control based on the field metadata.\n */\nfunction getAriaAttributes(metadata) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (typeof options.ariaAttributes !== 'undefined' && !options.ariaAttributes) {\n return {};\n }\n var invalid = options.ariaInvalid === 'allErrors' ? !metadata.valid : typeof metadata.errors !== 'undefined';\n var ariaDescribedBy = options.ariaDescribedBy;\n return simplify({\n 'aria-invalid': invalid || undefined,\n 'aria-describedby': invalid ? \"\".concat(metadata.errorId, \" \").concat(ariaDescribedBy !== null && ariaDescribedBy !== void 0 ? ariaDescribedBy : '').trim() : ariaDescribedBy\n });\n}\n\n/**\n * Derives the properties of a form element based on the form metadata,\n * including `id`, `onSubmit`, `noValidate`, `aria-invalid` and `aria-describedby`.\n *\n * @example\n * ```tsx\n * <form {...getFormProps(metadata)} />\n * ```\n */\nfunction getFormProps(metadata, options) {\n return simplify(_objectSpread2({\n id: metadata.id,\n onSubmit: metadata.onSubmit,\n noValidate: metadata.noValidate\n }, getAriaAttributes(metadata, options)));\n}\n\n/**\n * Derives the properties of a fieldset element based on the field metadata,\n * including `id`, `name`, `form`, `aria-invalid` and `aria-describedby`.\n *\n * @example\n * ```tsx\n * <fieldset {...getFieldsetProps(metadata)} />\n * ```\n */\nfunction getFieldsetProps(metadata, options) {\n return simplify(_objectSpread2({\n id: metadata.id,\n name: metadata.name,\n form: metadata.formId\n }, getAriaAttributes(metadata, options)));\n}\n\n/**\n * Derives common properties of a form control based on the field metadata,\n * including `key`, `id`, `name`, `form`, `required`, `autoFocus`, `aria-invalid` and `aria-describedby`.\n */\nfunction getFormControlProps(metadata, options) {\n return simplify(_objectSpread2({\n key: metadata.key,\n required: metadata.required || undefined\n }, getFieldsetProps(metadata, options)));\n}\n\n/**\n * Derives the properties of an input element based on the field metadata,\n * including common form control attributes like `key`, `id`, `name`, `form`, `autoFocus`, `aria-invalid`, `aria-describedby`\n * and constraint attributes such as `type`, `required`, `minLength`, `maxLength`, `min`, `max`, `step`, `pattern`, `multiple`.\n * Depends on the provided options, it will also set `defaultChecked` / `checked` if it is a checkbox or radio button,\n * or otherwise `defaultValue` / `value`.\n *\n * @see https://conform.guide/api/react/getInputProps\n * @example\n * ```tsx\n * // To setup an uncontrolled input\n * <input {...getInputProps(metadata, { type: 'text' })} />\n * // To setup an uncontrolled checkbox\n * <input {...getInputProps(metadata, { type: 'checkbox' })} />\n * // To setup an input without defaultValue\n * <input {...getInputProps(metadata, { value: false })} />\n * // To setup a radio button without defaultChecked state\n * <input {...getInputProps(metadata, { type: 'radio', value: false })} />\n * ```\n */\nfunction getInputProps(metadata, options) {\n var props = _objectSpread2(_objectSpread2({}, getFormControlProps(metadata, options)), {}, {\n type: options.type,\n minLength: metadata.minLength,\n maxLength: metadata.maxLength,\n min: metadata.min,\n max: metadata.max,\n step: metadata.step,\n pattern: metadata.pattern,\n multiple: metadata.multiple\n });\n if (typeof options.value === 'undefined' || options.value) {\n if (options.type === 'checkbox' || options.type === 'radio') {\n props.value = typeof options.value === 'string' ? options.value : 'on';\n props.defaultChecked = Array.isArray(metadata.initialValue) ? metadata.initialValue.includes(options.value) : metadata.initialValue === props.value;\n } else if (typeof metadata.initialValue === 'string') {\n props.defaultValue = metadata.initialValue;\n }\n }\n return simplify(props);\n}\n\n/**\n * Derives the properties of a select element based on the field metadata,\n * including common form control attributes like `key`, `id`, `name`, `form`, `autoFocus`, `aria-invalid`, `aria-describedby`\n * and constraint attributes such as `required` or `multiple`.\n * Depends on the provided options, it will also set `defaultValue` / `value`.\n *\n * @see https://conform.guide/api/react/getSelectProps\n * @example\n * ```tsx\n * // To setup an uncontrolled select\n * <select {...getSelectProps(metadata)} />\n * // To setup a select without defaultValue\n * <select {...getSelectProps(metadata, { value: false })} />\n * ```\n */\nfunction getSelectProps(metadata) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var props = _objectSpread2(_objectSpread2({}, getFormControlProps(metadata, options)), {}, {\n multiple: metadata.multiple\n });\n if (typeof options.value === 'undefined' || options.value) {\n var _metadata$initialValu;\n props.defaultValue = Array.isArray(metadata.initialValue) ? metadata.initialValue.map(item => \"\".concat(item !== null && item !== void 0 ? item : '')) : (_metadata$initialValu = metadata.initialValue) === null || _metadata$initialValu === void 0 ? void 0 : _metadata$initialValu.toString();\n }\n return simplify(props);\n}\n\n/**\n * Derives the properties of a textarea element based on the field metadata,\n * including common form control attributes like `key`, `id`, `name`, `form`, `autoFocus`, `aria-invalid`, `aria-describedby`\n * and constraint attributes such as `required`, `minLength` or `maxLength`.\n * Depends on the provided options, it will also set `defaultValue` / `value`.\n *\n * @see https://conform.guide/api/react/getTextareaProps\n * @example\n * ```tsx\n * // To setup an uncontrolled textarea\n * <textarea {...getTextareaProps(metadata)} />\n * // To setup a textarea without defaultValue\n * <textarea {...getTextareaProps(metadata, { value: false })} />\n * ```\n */\nfunction getTextareaProps(metadata) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var props = _objectSpread2(_objectSpread2({}, getFormControlProps(metadata, options)), {}, {\n minLength: metadata.minLength,\n maxLength: metadata.maxLength\n });\n if (typeof options.value === 'undefined' || options.value) {\n var _metadata$initialValu2;\n props.defaultValue = (_metadata$initialValu2 = metadata.initialValue) === null || _metadata$initialValu2 === void 0 ? void 0 : _metadata$initialValu2.toString();\n }\n return simplify(props);\n}\n\n/**\n * Derives the properties of a collection of checkboxes or radio buttons based on the field metadata,\n * including common form control attributes like `key`, `id`, `name`, `form`, `autoFocus`, `aria-invalid`, `aria-describedby` and `required`.\n *\n * @see https://conform.guide/api/react/getCollectionProps\n * @example\n * ```tsx\n * <fieldset>\n * {getCollectionProps(metadata, {\n * type: 'checkbox',\n * options: ['a', 'b', 'c']\n * }).map((props) => (\n * <div key={props.key}>\n * <label htmlFor={props.id}>{props.value}</label>\n * <input {...props} />\n * </div>\n * ))}\n * </fieldset>\n * ```\n */\nfunction getCollectionProps(metadata, options) {\n return options.options.map(value => {\n var _metadata$key;\n return simplify(_objectSpread2(_objectSpread2({}, getFormControlProps(metadata, options)), {}, {\n key: \"\".concat((_metadata$key = metadata.key) !== null && _metadata$key !== void 0 ? _metadata$key : '').concat(value),\n id: \"\".concat(metadata.id, \"-\").concat(value),\n type: options.type,\n value,\n defaultChecked: typeof options.value === 'undefined' || options.value ? options.type === 'checkbox' && Array.isArray(metadata.initialValue) ? metadata.initialValue.includes(value) : metadata.initialValue === value : undefined,\n // The required attribute doesn't make sense for checkbox group\n // As it would require all checkboxes to be checked instead of at least one\n // It is overriden with `undefiend` so it could be cleaned up properly\n required: options.type === 'checkbox' ? undefined : metadata.required\n }));\n });\n}\n\nexport { getAriaAttributes, getCollectionProps, getFieldsetProps, getFormControlProps, getFormProps, getInputProps, getSelectProps, getTextareaProps };\n","function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nexport { _defineProperty as defineProperty, _objectSpread2 as objectSpread2, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey };\n","import { objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\nimport { any, ZodArray, ZodObject, ZodEffects, ZodOptional, ZodDefault, ZodCatch, ZodIntersection, ZodUnion, ZodDiscriminatedUnion, ZodTuple, ZodNullable, ZodPipeline, lazy } from 'zod';\n\n/**\n * Helpers for coercing string value\n * Modify the value only if it's a string, otherwise return the value as-is\n */\nfunction coerceString(value, transform) {\n if (typeof value !== 'string') {\n return value;\n }\n if (value === '') {\n return undefined;\n }\n if (typeof transform !== 'function') {\n return value;\n }\n return transform(value);\n}\n\n/**\n * Helpers for coercing file\n * Modify the value only if it's a file, otherwise return the value as-is\n */\nfunction coerceFile(file) {\n if (typeof File !== 'undefined' && file instanceof File && file.name === '' && file.size === 0) {\n return undefined;\n }\n return file;\n}\n\n/**\n * A file schema is usually defined as `z.instanceof(File)`\n * which is implemented based on ZodAny with `superRefine`\n * Check the `instanceOfType` function on zod for more info\n */\nfunction isFileSchema(schema) {\n if (typeof File === 'undefined') {\n return false;\n }\n return schema._def.effect.type === 'refinement' && schema.innerType()._def.typeName === 'ZodAny' && schema.safeParse(new File([], '')).success && !schema.safeParse('').success;\n}\n\n/**\n * Reconstruct the provided schema with additional preprocessing steps\n * This coerce empty values to undefined and transform strings to the correct type\n */\nfunction enableTypeCoercion(type) {\n var cache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Map();\n var result = cache.get(type);\n\n // Return the cached schema if it's already processed\n // This is to prevent infinite recursion caused by z.lazy()\n if (result) {\n return result;\n }\n var schema = type;\n var def = type._def;\n if (def.typeName === 'ZodString' || def.typeName === 'ZodLiteral' || def.typeName === 'ZodEnum' || def.typeName === 'ZodNativeEnum') {\n schema = any().transform(value => coerceString(value)).pipe(type);\n } else if (def.typeName === 'ZodNumber') {\n schema = any().transform(value => coerceString(value, text => text.trim() === '' ? Number.NaN : Number(text))).pipe(type);\n } else if (def.typeName === 'ZodBoolean') {\n schema = any().transform(value => coerceString(value, text => text === 'on' ? true : text)).pipe(type);\n } else if (def.typeName === 'ZodDate') {\n schema = any().transform(value => coerceString(value, timestamp => {\n var date = new Date(timestamp);\n\n // z.date() does not expose a quick way to set invalid_date error\n // This gets around it by returning the original string if it's invalid\n // See https://github.com/colinhacks/zod/issues/1526\n if (isNaN(date.getTime())) {\n return timestamp;\n }\n return date;\n })).pipe(type);\n } else if (def.typeName === 'ZodBigInt') {\n schema = any().transform(value => coerceString(value, BigInt)).pipe(type);\n } else if (def.typeName === 'ZodArray') {\n schema = any().transform(value => {\n // No preprocess needed if the value is already an array\n if (Array.isArray(value)) {\n return value;\n }\n if (typeof value === 'undefined' || typeof coerceFile(coerceString(value)) === 'undefined') {\n return [];\n }\n\n // Wrap it in an array otherwise\n return [value];\n }).pipe(new ZodArray(_objectSpread2(_objectSpread2({}, def), {}, {\n type: enableTypeCoercion(def.type, cache)\n })));\n } else if (def.typeName === 'ZodObject') {\n var _shape = Object.fromEntries(Object.entries(def.shape()).map(_ref => {\n var [key, def] = _ref;\n return [key,\n // @ts-expect-error see message above\n enableTypeCoercion(def, cache)];\n }));\n schema = new ZodObject(_objectSpread2(_objectSpread2({}, def), {}, {\n shape: () => _shape\n }));\n } else if (def.typeName === 'ZodEffects') {\n if (isFileSchema(type)) {\n schema = any().transform(value => coerceFile(value)).pipe(type);\n } else {\n schema = new ZodEffects(_objectSpread2(_objectSpread2({}, def), {}, {\n schema: enableTypeCoercion(def.schema, cache)\n }));\n }\n } else if (def.typeName === 'ZodOptional') {\n schema = any().transform(value => coerceFile(coerceString(value))).pipe(new ZodOptional(_objectSpread2(_objectSpread2({}, def), {}, {\n innerType: enableTypeCoercion(def.innerType, cache)\n })));\n } else if (def.typeName === 'ZodDefault') {\n schema = any().transform(value => coerceFile(coerceString(value))).pipe(new ZodDefault(_objectSpread2(_objectSpread2({}, def), {}, {\n innerType: enableTypeCoercion(def.innerType, cache)\n })));\n } else if (def.typeName === 'ZodCatch') {\n schema = new ZodCatch(_objectSpread2(_objectSpread2({}, def), {}, {\n innerType: enableTypeCoercion(def.innerType, cache)\n }));\n } else if (def.typeName === 'ZodIntersection') {\n schema = new ZodIntersection(_objectSpread2(_objectSpread2({}, def), {}, {\n left: enableTypeCoercion(def.left, cache),\n right: enableTypeCoercion(def.right, cache)\n }));\n } else if (def.typeName === 'ZodUnion') {\n schema = new ZodUnion(_objectSpread2(_objectSpread2({}, def), {}, {\n options: def.options.map(option => enableTypeCoercion(option, cache))\n }));\n } else if (def.typeName === 'ZodDiscriminatedUnion') {\n schema = new ZodDiscriminatedUnion(_objectSpread2(_objectSpread2({}, def), {}, {\n options: def.options.map(option => enableTypeCoercion(option, cache)),\n optionsMap: new Map(Array.from(def.optionsMap.entries()).map(_ref2 => {\n var [discriminator, option] = _ref2;\n return [discriminator, enableTypeCoercion(option, cache)];\n }))\n }));\n } else if (def.typeName === 'ZodTuple') {\n schema = new ZodTuple(_objectSpread2(_objectSpread2({}, def), {}, {\n items: def.items.map(item => enableTypeCoercion(item, cache))\n }));\n } else if (def.typeName === 'ZodNullable') {\n schema = new ZodNullable(_objectSpread2(_objectSpread2({}, def), {}, {\n innerType: enableTypeCoercion(def.innerType, cache)\n }));\n } else if (def.typeName === 'ZodPipeline') {\n schema = new ZodPipeline(_objectSpread2(_objectSpread2({}, def), {}, {\n in: enableTypeCoercion(def.in, cache),\n out: enableTypeCoercion(def.out, cache)\n }));\n } else if (def.typeName === 'ZodLazy') {\n var inner = def.getter();\n schema = lazy(() => enableTypeCoercion(inner, cache));\n }\n if (type !== schema) {\n cache.set(type, schema);\n }\n return schema;\n}\n\nexport { coerceFile, coerceString, enableTypeCoercion, isFileSchema };\n","import { parse, formatPaths } from '@conform-to/dom';\nimport { enableTypeCoercion } from './coercion.mjs';\n\nfunction getError(zodError, formatError) {\n var result = {};\n for (var issue of zodError.errors) {\n var name = formatPaths(issue.path);\n switch (issue.message) {\n case conformZodMessage.VALIDATION_UNDEFINED:\n return null;\n case conformZodMessage.VALIDATION_SKIPPED:\n result[name] = null;\n break;\n default:\n {\n var _issues = result[name];\n if (_issues !== null) {\n if (_issues) {\n result[name] = _issues.concat(issue);\n } else {\n result[name] = [issue];\n }\n }\n break;\n }\n }\n }\n return Object.entries(result).reduce((result, _ref) => {\n var [name, issues] = _ref;\n result[name] = issues ? formatError(issues) : null;\n return result;\n }, {});\n}\nfunction parseWithZod(payload, options) {\n return parse(payload, {\n resolve(payload, intent) {\n var errorMap = options.errorMap;\n var schema = enableTypeCoercion(typeof options.schema === 'function' ? options.schema(intent) : options.schema);\n var resolveSubmission = result => {\n var _options$formatError;\n return {\n value: result.success ? result.data : undefined,\n error: !result.success ? getError(result.error, (_options$formatError = options.formatError) !== null && _options$formatError !== void 0 ? _options$formatError : issues => issues.map(issue => issue.message)) : undefined\n };\n };\n return options.async ? schema.safeParseAsync(payload, {\n errorMap\n }).then(result => resolveSubmission(result)) : resolveSubmission(schema.safeParse(payload, {\n errorMap\n }));\n }\n });\n}\nvar conformZodMessage = {\n VALIDATION_SKIPPED: '__skipped__',\n VALIDATION_UNDEFINED: '__undefined__'\n};\n\nexport { conformZodMessage, parseWithZod };\n","export type ListOfErrors = Array<string | null | undefined> | null | undefined\n\nexport function ErrorList({\n\tid,\n\terrors,\n}: {\n\terrors?: ListOfErrors\n\tid?: string\n}) {\n\tconst errorsToRender = errors?.filter(Boolean)\n\tif (!errorsToRender?.length) return null\n\treturn (\n\t\t<ul id={id} className=\"space-y-1\">\n\t\t\t{errorsToRender.map((e) => (\n\t\t\t\t<li key={e} className=\"text-danger text-[10px]\">\n\t\t\t\t\t{e}\n\t\t\t\t</li>\n\t\t\t))}\n\t\t</ul>\n\t)\n}\n","import { getFormProps, useForm } from '@conform-to/react'\nimport { parseWithZod } from '@conform-to/zod'\nimport { json, redirect, type ActionFunctionArgs } from '@remix-run/node'\nimport { useFetcher, useFetchers } from '@remix-run/react'\nimport * as React from 'react'\nimport { safeRedirect } from 'remix-utils/safe-redirect'\nimport { z } from 'zod'\nimport { Icon } from '#app/components/icons.tsx'\nimport { SimpleTooltip } from '#app/components/ui/tooltip.tsx'\nimport { useHints } from '#app/utils/client-hints.tsx'\nimport { ErrorList } from '#app/utils/forms.tsx'\nimport { useRequestInfo } from '#app/utils/request-info.ts'\nimport { setTheme } from './theme-session.server.ts'\n\nconst ROUTE_PATH = '/theme'\n\nconst ThemeFormSchema = z.object({\n\tredirectTo: z.string().optional(),\n\ttheme: z.enum(['system', 'light', 'dark']),\n})\n\nexport async function action({ request }: ActionFunctionArgs) {\n\tconst formData = await request.formData()\n\tconst submission = parseWithZod(formData, {\n\t\tschema: ThemeFormSchema,\n\t})\n\tif (submission.status !== 'success') {\n\t\treturn json(submission.reply(), {\n\t\t\t// You can also use the status to determine the HTTP status code\n\t\t\tstatus: submission.status === 'error' ? 400 : 200,\n\t\t})\n\t}\n\tconst { redirectTo, theme } = submission.value\n\n\tconst responseInit = {\n\t\theaders: { 'set-cookie': setTheme(theme) },\n\t}\n\tif (redirectTo) {\n\t\treturn redirect(safeRedirect(redirectTo), responseInit)\n\t} else {\n\t\treturn json(submission.reply(), responseInit)\n\t}\n}\n\nexport function ThemeSwitch() {\n\tconst requestInfo = useRequestInfo()\n\tconst fetcher = useFetcher<typeof action>()\n\tconst [isHydrated, setIsHydrated] = React.useState(false)\n\n\tReact.useEffect(() => {\n\t\tsetIsHydrated(true)\n\t}, [])\n\n\tconst [form] = useForm({\n\t\tid: 'onboarding',\n\t\tlastResult: fetcher.data,\n\t\tonValidate({ formData }) {\n\t\t\treturn parseWithZod(formData, { schema: ThemeFormSchema })\n\t\t},\n\t})\n\n\tconst mode = requestInfo.session.theme ?? 'system'\n\tconst nextMode =\n\t\tmode === 'system' ? 'light' : mode === 'light' ? 'dark' : 'system'\n\tconst modeLabel = {\n\t\tlight: <Icon size=\"md\" name=\"Sun\" title=\"Light mode\" />,\n\t\tdark: <Icon size=\"md\" name=\"Moon\" title=\"Dark mode\" />,\n\t\tsystem: <Icon size=\"md\" name=\"Laptop\" title=\"System mode\" />,\n\t}\n\n\treturn (\n\t\t<fetcher.Form method=\"POST\" action={ROUTE_PATH} {...getFormProps(form)}>\n\t\t\t<div className=\"flex gap-2\">\n\t\t\t\t{/*\n\t\t\t\t\tthis is for progressive enhancement so we redirect them to the page\n\t\t\t\t\tthey are on if the JavaScript hasn't had a chance to hydrate yet.\n\t\t\t\t*/}\n\t\t\t\t{isHydrated ? null : (\n\t\t\t\t\t<input type=\"hidden\" name=\"redirectTo\" value={requestInfo.path} />\n\t\t\t\t)}\n\t\t\t\t<input type=\"hidden\" name=\"theme\" value={nextMode} />\n\t\t\t\t<SimpleTooltip content={`Change theme from ${mode} mode`}>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\tname=\"intent\"\n\t\t\t\t\t\tvalue=\"update-theme\"\n\t\t\t\t\t\tclassName=\"flex h-8 w-8 cursor-pointer items-center justify-center\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{modeLabel[mode]}\n\t\t\t\t\t</button>\n\t\t\t\t</SimpleTooltip>\n\t\t\t</div>\n\t\t\t<ErrorList errors={form.errors} id={form.errorId} />\n\t\t</fetcher.Form>\n\t)\n}\n\n/**\n * @returns the user's theme preference, or the client hint theme if the user\n * has not set a preference.\n */\nexport function useTheme() {\n\tconst hints = useHints()\n\tconst requestInfo = useRequestInfo()\n\tconst fetchers = useFetchers()\n\tconst fetcher = fetchers.find(\n\t\t(f) => f.formData?.get('intent') === 'update-theme',\n\t)\n\tconst optimisticTheme = fetcher?.formData?.get('theme')\n\tif (optimisticTheme === 'system') return hints.theme\n\tif (optimisticTheme === 'light' || optimisticTheme === 'dark') {\n\t\treturn optimisticTheme\n\t}\n\treturn requestInfo.session.theme ?? hints.theme\n}\n"],"names":["ownKeys","o","r","_objectSpread2","_defineProperty","obj","key","value","_toPropertyKey","_toPrimitive","input","hint","prim","res","arg","getFormData","form","submitter","payload","entries","getPaths","name","result","segment","index","formatPaths","paths","path","formatName","prefix","isPrefix","prefixPaths","setValue","target","valueFn","length","lastIndex","pointer","nextKey","newValue","getValue","isPlainObject","isFile","normalize","acceptFile","data","item","flatten","_options$resolve","options","resolve","process","i","_value","_options$prefix","invariant","expectedCondition","message","generateId","clone","isFormControl","element","isFieldElement","getFormAction","event","_ref","_submitter$getAttribu","getFormEncType","_submitter$getAttribu2","encType","getFormMethod","_ref2","_submitter$getAttribu3","method","requestSubmit","INTENT","STATE","getSubmissionContext","body","intent","state","context","getIntent","_loop","next","prev","parse","_name","setListValue","mergeResolveResult","resolved","createSubmission","replySubmission","_context$intent","_context$intent$paylo","_options$formErrors","_normalize","_value2","extraError","error","serializedIntent","control","serializeIntent","serialize","updateList","list","_intent$payload$index","root","setState","keys","_loop2","currentValue","_data$root","setListState","getDefaultValue","defaultValue","createFormMeta","initialized","_lastResult$initialVa","_options$constraint","_lastResult$state$val","_lastResult$state","lastResult","initialValue","getDefaultKey","handleIntent","setFieldsValidated","meta","fields","_fields$filter","validated","_name2","updateValue","_name3","validatedFields","_ref3","field","createStateProxy","fn","cache","_","receiver","_cache$name","createValueProxy","val","proxy","basename","parentValue","createConstraintProxy","constraint","_result","alternative","createKeyProxy","currentKey","parentKey","createValidProxy","createDirtyProxy","shouldDirtyConsider","_ref4","shouldNotify","scope","compareFn","_scope$prefix","_scope$name","prefixes","names","_name4","_cache$_name","_ret","createFormContext","subscribers","latestOptions","createFormState","getFormElement","_latestOptions$should","_latestOptions$should2","updateFormMeta","nextMeta","prevMeta","prevState","nextState","subscriber","_subscriber$getSubjec","subject","compareBoolean","getSerializedState","submit","formData","submission","_result2","report","resolveTarget","willValidate","eventName","shouldValidate","shouldRevalidate","updateFormValue","onInput","dispatch","onBlur","reset","onReset","_result$error","_result$state","formElement","_ref5","newError","update","onUpdate","currentFormId","currentResult","subscribe","callback","getSubject","current","getState","buttonProps","getControlButtonProps","createFormControl","type","observe","observer","mutations","mutation","nodes","node","_objectWithoutPropertiesLoose","source","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","_excluded","wrappedSymbol","useFormState","subjectRef","useCallback","useSyncExternalStore","useSubjectRef","initialSubject","useRef","updateSubjectRef","ref","_ref$current$subject$","_ref$current$subject","getMetadata","stateSnapshot","id","getFieldMetadata","_state$constraint$nam","metadata","_state$initialValue$n","getFormMetadata","noValidate","onSubmit","rest","unstable_createFormContext","submitEvent","_onSubmit","useSafeLayoutEffect","useEffect","useLayoutEffect","useFormId","preferredId","useId","useNoValidate","defaultNoValidate","setNoValidate","useState","useForm","formConfig","formId","disconnect","simplify","props","getAriaAttributes","invalid","ariaDescribedBy","getFormProps","coerceString","transform","coerceFile","file","isFileSchema","schema","enableTypeCoercion","def","any","text","timestamp","date","ZodArray","_shape","ZodObject","ZodEffects","ZodOptional","ZodDefault","ZodCatch","ZodIntersection","ZodUnion","option","ZodDiscriminatedUnion","discriminator","ZodTuple","ZodNullable","ZodPipeline","inner","lazy","getError","zodError","formatError","issue","conformZodMessage","_issues","issues","parseWithZod","errorMap","resolveSubmission","_options$formatError","ErrorList","errors","errorsToRender","e","jsx","ROUTE_PATH","ThemeFormSchema","z","object","redirectTo","string","optional","theme","enum","ThemeSwitch","requestInfo","useRequestInfo","fetcher","useFetcher","isHydrated","setIsHydrated","React","onValidate","mode","session","nextMode","modeLabel","light","Icon","size","title","dark","system","jsxs","Form","action","children","className","SimpleTooltip","content","errorId","useTheme","hints","useHints","useFetchers","find","f","get","optimisticTheme"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12]}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
function en(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 ja=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function tn(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var vr={exports:{}},dt={};/**
|
|
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 rn=Symbol.for("react.transitional.element"),nn=Symbol.for("react.fragment");function gr(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:rn,type:e,key:n,ref:t!==void 0?t:null,props:r}}dt.Fragment=nn;dt.jsx=gr;dt.jsxs=gr;vr.exports=dt;var Oa=vr.exports,yr={exports:{}},L={};/**
|
|
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 Pt=Symbol.for("react.transitional.element"),an=Symbol.for("react.portal"),on=Symbol.for("react.fragment"),ln=Symbol.for("react.strict_mode"),sn=Symbol.for("react.profiler"),un=Symbol.for("react.consumer"),dn=Symbol.for("react.context"),cn=Symbol.for("react.forward_ref"),fn=Symbol.for("react.suspense"),hn=Symbol.for("react.memo"),Er=Symbol.for("react.lazy"),Gt=Symbol.iterator;function pn(e){return e===null||typeof e!="object"?null:(e=Gt&&e[Gt]||e["@@iterator"],typeof e=="function"?e:null)}var br={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},wr=Object.assign,Rr={};function Ue(e,t,r){this.props=e,this.context=t,this.refs=Rr,this.updater=r||br}Ue.prototype.isReactComponent={};Ue.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")};Ue.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function xr(){}xr.prototype=Ue.prototype;function St(e,t,r){this.props=e,this.context=t,this.refs=Rr,this.updater=r||br}var _t=St.prototype=new xr;_t.constructor=St;wr(_t,Ue.prototype);_t.isPureReactComponent=!0;var qt=Array.isArray,I={H:null,A:null,T:null},Pr=Object.prototype.hasOwnProperty;function Ct(e,t,r,n,a,l,o){return r=o.ref,{$$typeof:Pt,type:e,key:t,ref:r!==void 0?r:null,props:o}}function mn(e,t){return Ct(e.type,t,null,void 0,void 0,void 0,e.props)}function Dt(e){return typeof e=="object"&&e!==null&&e.$$typeof===Pt}function vn(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(r){return t[r]})}var Xt=/\/+/g;function mt(e,t){return typeof e=="object"&&e!==null&&e.key!=null?vn(""+e.key):t.toString(36)}function Qt(){}function gn(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(Qt,Qt):(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 je(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 Pt:case an:o=!0;break;case Er:return o=e._init,je(o(e._payload),t,r,n,a)}}if(o)return a=a(e),o=n===""?"."+mt(e,0):n,qt(a)?(r="",o!=null&&(r=o.replace(Xt,"$&/")+"/"),je(a,t,r,"",function(g){return g})):a!=null&&(Dt(a)&&(a=mn(a,r+(!a.key||e&&e.key===a.key?"":(""+a.key).replace(Xt,"$&/")+"/")+o)),t.push(a)),1;o=0;var d=n===""?".":n+":";if(qt(e))for(var u=0;u<e.length;u++)n=e[u],l=d+mt(n,u),o+=je(n,t,r,l,a);else if(u=pn(e),typeof u=="function")for(e=u.call(e),u=0;!(n=e.next()).done;)n=n.value,l=d+mt(n,u++),o+=je(n,t,r,l,a);else if(l==="object"){if(typeof e.then=="function")return je(gn(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 lt(e,t,r){if(e==null)return e;var n=[],a=0;return je(e,n,"","",function(l){return t.call(r,l,a++)}),n}function yn(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 Zt=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 En(){}L.Children={map:lt,forEach:function(e,t,r){lt(e,function(){t.apply(this,arguments)},r)},count:function(e){var t=0;return lt(e,function(){t++}),t},toArray:function(e){return lt(e,function(t){return t})||[]},only:function(e){if(!Dt(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};L.Component=Ue;L.Fragment=on;L.Profiler=sn;L.PureComponent=St;L.StrictMode=ln;L.Suspense=fn;L.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=I;L.act=function(){throw Error("act(...) is not supported in production builds of React.")};L.cache=function(e){return function(){return e.apply(null,arguments)}};L.cloneElement=function(e,t,r){if(e==null)throw Error("The argument must be a React element, but you passed "+e+".");var n=wr({},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)!Pr.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 d=Array(o),u=0;u<o;u++)d[u]=arguments[u+2];n.children=d}return Ct(e.type,a,null,void 0,void 0,l,n)};L.createContext=function(e){return e={$$typeof:dn,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:un,_context:e},e};L.createElement=function(e,t,r){var n,a={},l=null;if(t!=null)for(n in t.key!==void 0&&(l=""+t.key),t)Pr.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 d=Array(o),u=0;u<o;u++)d[u]=arguments[u+2];a.children=d}if(e&&e.defaultProps)for(n in o=e.defaultProps,o)a[n]===void 0&&(a[n]=o[n]);return Ct(e,l,null,void 0,void 0,null,a)};L.createRef=function(){return{current:null}};L.forwardRef=function(e){return{$$typeof:cn,render:e}};L.isValidElement=Dt;L.lazy=function(e){return{$$typeof:Er,_payload:{_status:-1,_result:e},_init:yn}};L.memo=function(e,t){return{$$typeof:hn,type:e,compare:t===void 0?null:t}};L.startTransition=function(e){var t=I.T,r=new Set;I.T={_callbacks:r};var n=I.T;try{var a=e();typeof a=="object"&&a!==null&&typeof a.then=="function"&&(r.forEach(function(l){return l(n,a)}),a.then(En,Zt))}catch(l){Zt(l)}finally{I.T=t}};L.unstable_useCacheRefresh=function(){return I.H.useCacheRefresh()};L.use=function(e){return I.H.use(e)};L.useActionState=function(e,t,r){return I.H.useActionState(e,t,r)};L.useCallback=function(e,t){return I.H.useCallback(e,t)};L.useContext=function(e){return I.H.useContext(e)};L.useDebugValue=function(){};L.useDeferredValue=function(e,t){return I.H.useDeferredValue(e,t)};L.useEffect=function(e,t){return I.H.useEffect(e,t)};L.useId=function(){return I.H.useId()};L.useImperativeHandle=function(e,t,r){return I.H.useImperativeHandle(e,t,r)};L.useInsertionEffect=function(e,t){return I.H.useInsertionEffect(e,t)};L.useLayoutEffect=function(e,t){return I.H.useLayoutEffect(e,t)};L.useMemo=function(e,t){return I.H.useMemo(e,t)};L.useOptimistic=function(e,t){return I.H.useOptimistic(e,t)};L.useReducer=function(e,t,r){return I.H.useReducer(e,t,r)};L.useRef=function(e){return I.H.useRef(e)};L.useState=function(e){return I.H.useState(e)};L.useSyncExternalStore=function(e,t,r){return I.H.useSyncExternalStore(e,t,r)};L.useTransition=function(){return I.H.useTransition()};L.version="19.0.0-rc-f994737d14-20240522";yr.exports=L;var y=yr.exports;const bn=tn(y),Aa=en({__proto__:null,default:bn},[y]);/**
|
|
18
|
-
* @remix-run/router v1.16.1
|
|
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 F(){return F=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},F.apply(this,arguments)}var $;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})($||($={}));const er="popstate";function Ua(e){e===void 0&&(e={});function t(n,a){let{pathname:l,search:o,hash:d}=n.location;return Ge("",{pathname:l,search:o,hash:d},a.state&&a.state.usr||null,a.state&&a.state.key||"default")}function r(n,a){return typeof a=="string"?a:qe(a)}return Rn(t,r,null,e)}function M(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Ae(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function wn(){return Math.random().toString(36).substr(2,8)}function tr(e,t){return{usr:e.state,key:e.key,idx:t}}function Ge(e,t,r,n){return r===void 0&&(r=null),F({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Ee(t):t,{state:r,key:t&&t.key||n||wn()})}function qe(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 Ee(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 Rn(e,t,r,n){n===void 0&&(n={});let{window:a=document.defaultView,v5Compat:l=!1}=n,o=a.history,d=$.Pop,u=null,g=h();g==null&&(g=0,o.replaceState(F({},o.state,{idx:g}),""));function h(){return(o.state||{idx:null}).idx}function p(){d=$.Pop;let C=h(),O=C==null?null:C-g;g=C,u&&u({action:d,location:w.location,delta:O})}function v(C,O){d=$.Push;let B=Ge(w.location,C,O);g=h()+1;let k=tr(B,g),pe=w.createHref(B);try{o.pushState(k,"",pe)}catch(ie){if(ie instanceof DOMException&&ie.name==="DataCloneError")throw ie;a.location.assign(pe)}l&&u&&u({action:d,location:w.location,delta:1})}function T(C,O){d=$.Replace;let B=Ge(w.location,C,O);g=h();let k=tr(B,g),pe=w.createHref(B);o.replaceState(k,"",pe),l&&u&&u({action:d,location:w.location,delta:0})}function P(C){let O=a.location.origin!=="null"?a.location.origin:a.location.href,B=typeof C=="string"?C:qe(C);return B=B.replace(/ $/,"%20"),M(O,"No window.location.(origin|href) available to create URL for href: "+B),new URL(B,O)}let w={get action(){return d},get location(){return e(a,o)},listen(C){if(u)throw new Error("A history only accepts one active listener");return a.addEventListener(er,p),u=C,()=>{a.removeEventListener(er,p),u=null}},createHref(C){return t(a,C)},createURL:P,encodeLocation(C){let O=P(C);return{pathname:O.pathname,search:O.search,hash:O.hash}},push:v,replace:T,go(C){return o.go(C)}};return w}var N;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(N||(N={}));const xn=new Set(["lazy","caseSensitive","path","id","index","children"]);function Pn(e){return e.index===!0}function Et(e,t,r,n){return r===void 0&&(r=[]),n===void 0&&(n={}),e.map((a,l)=>{let o=[...r,l],d=typeof a.id=="string"?a.id:o.join("-");if(M(a.index!==!0||!a.children,"Cannot specify children on an index route"),M(!n[d],'Found a route id collision on id "'+d+`". Route id's must be globally unique within Data Router usages`),Pn(a)){let u=F({},a,t(a),{id:d});return n[d]=u,u}else{let u=F({},a,t(a),{id:d,children:void 0});return n[d]=u,a.children&&(u.children=Et(a.children,t,o,n)),u}})}function Oe(e,t,r){r===void 0&&(r="/");let n=typeof t=="string"?Ee(t):t,a=Xe(n.pathname||"/",r);if(a==null)return null;let l=_r(e);Sn(l);let o=null;for(let d=0;o==null&&d<l.length;++d){let u=Nn(a);o=An(l[d],u)}return o}function Sr(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 _r(e,t,r,n){t===void 0&&(t=[]),r===void 0&&(r=[]),n===void 0&&(n="");let a=(l,o,d)=>{let u={relativePath:d===void 0?l.path||"":d,caseSensitive:l.caseSensitive===!0,childrenIndex:o,route:l};u.relativePath.startsWith("/")&&(M(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 g=fe([n,u.relativePath]),h=r.concat(u);l.children&&l.children.length>0&&(M(l.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+g+'".')),_r(l.children,t,h,g)),!(l.path==null&&!l.index)&&t.push({path:g,score:jn(g,l.index),routesMeta:h})};return e.forEach((l,o)=>{var d;if(l.path===""||!((d=l.path)!=null&&d.includes("?")))a(l,o);else for(let u of Cr(l.path))a(l,o,u)}),t}function Cr(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=Cr(n.join("/")),d=[];return d.push(...o.map(u=>u===""?l:[l,u].join("/"))),a&&d.push(...o),d.map(u=>e.startsWith("/")&&u===""?"/":u)}function Sn(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:On(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}const _n=/^:[\w-]+$/,Cn=3,Dn=2,Ln=1,Mn=10,Tn=-2,rr=e=>e==="*";function jn(e,t){let r=e.split("/"),n=r.length;return r.some(rr)&&(n+=Tn),t&&(n+=Dn),r.filter(a=>!rr(a)).reduce((a,l)=>a+(_n.test(l)?Cn:l===""?Ln:Mn),n)}function On(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 An(e,t){let{routesMeta:r}=e,n={},a="/",l=[];for(let o=0;o<r.length;++o){let d=r[o],u=o===r.length-1,g=a==="/"?t:t.slice(a.length)||"/",h=Un({path:d.relativePath,caseSensitive:d.caseSensitive,end:u},g);if(!h)return null;Object.assign(n,h.params);let p=d.route;l.push({params:n,pathname:fe([a,h.pathname]),pathnameBase:kn(fe([a,h.pathnameBase])),route:p}),h.pathnameBase!=="/"&&(a=fe([a,h.pathnameBase]))}return l}function Un(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=Fn(e.path,e.caseSensitive,e.end),a=t.match(r);if(!a)return null;let l=a[0],o=l.replace(/(.)\/+$/,"$1"),d=a.slice(1);return{params:n.reduce((g,h,p)=>{let{paramName:v,isOptional:T}=h;if(v==="*"){let w=d[p]||"";o=l.slice(0,l.length-w.length).replace(/(.)\/+$/,"$1")}const P=d[p];return T&&!P?g[v]=void 0:g[v]=(P||"").replace(/%2F/g,"/"),g},{}),pathname:l,pathnameBase:o,pattern:e}}function Fn(e,t,r){t===void 0&&(t=!1),r===void 0&&(r=!0),Ae(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,d,u)=>(n.push({paramName:d,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 Nn(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Ae(!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 Xe(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 In(e,t){t===void 0&&(t="/");let{pathname:r,search:n="",hash:a=""}=typeof e=="string"?Ee(e):e;return{pathname:r?r.startsWith("/")?r:Bn(r,t):t,search:zn(n),hash:Hn(a)}}function Bn(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 vt(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 Dr(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function Lt(e,t){let r=Dr(e);return t?r.map((n,a)=>a===e.length-1?n.pathname:n.pathnameBase):r.map(n=>n.pathnameBase)}function Mt(e,t,r,n){n===void 0&&(n=!1);let a;typeof e=="string"?a=Ee(e):(a=F({},e),M(!a.pathname||!a.pathname.includes("?"),vt("?","pathname","search",a)),M(!a.pathname||!a.pathname.includes("#"),vt("#","pathname","hash",a)),M(!a.search||!a.search.includes("#"),vt("#","search","hash",a)));let l=e===""||a.pathname==="",o=l?"/":a.pathname,d;if(o==null)d=r;else{let p=t.length-1;if(!n&&o.startsWith("..")){let v=o.split("/");for(;v[0]==="..";)v.shift(),p-=1;a.pathname=v.join("/")}d=p>=0?t[p]:"/"}let u=In(a,d),g=o&&o!=="/"&&o.endsWith("/"),h=(l||o===".")&&r.endsWith("/");return!u.pathname.endsWith("/")&&(g||h)&&(u.pathname+="/"),u}const fe=e=>e.join("/").replace(/\/\/+/g,"/"),kn=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),zn=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Hn=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;class bt extends Error{}class Fa{constructor(t,r){this.pendingKeysSet=new Set,this.subscribers=new Set,this.deferredKeys=[],M(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 bt("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[d,u]=o;return Object.assign(l,{[d]:this.trackPromise(d,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 bt)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 M(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]:Yn(a)})},{})}get pendingKeys(){return Array.from(this.pendingKeysSet)}}function $n(e){return e instanceof Promise&&e._tracked===!0}function Yn(e){if(!$n(e))return e;if(e._error)throw e._error;return e._data}const Na=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,F({},n,{headers:a}))};class Lr{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 Tt(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const Mr=["post","put","patch","delete"],Kn=new Set(Mr),Wn=["get",...Mr],Jn=new Set(Wn),Vn=new Set([301,302,303,307,308]),Gn=new Set([307,308]),gt={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},qn={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},We={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},jt=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Xn=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),Tr="remix-router-transitions";function Ia(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;M(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=Xn;let l={},o=Et(e.routes,a,void 0,l),d,u=e.basename||"/",g=e.unstable_dataStrategy||ta,h=F({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1,unstable_skipActionErrorRevalidation:!1},e.future),p=null,v=new Set,T=null,P=null,w=null,C=e.hydrationData!=null,O=Oe(o,e.history.location,u),B=null;if(O==null){let i=re(404,{pathname:e.history.location.pathname}),{matches:s,route:c}=fr(o);O=s,B={[c.id]:i}}let k,pe=O.some(i=>i.route.lazy),ie=O.some(i=>i.route.loader);if(pe)k=!1;else if(!ie)k=!0;else if(h.v7_partialHydration){let i=e.hydrationData?e.hydrationData.loaderData:null,s=e.hydrationData?e.hydrationData.errors:null,c=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=O.findIndex(E=>s[E.route.id]!==void 0);k=O.slice(0,m+1).every(c)}else k=O.every(c)}else k=e.hydrationData!=null;let Se,f={historyAction:e.history.action,location:e.history.location,matches:O,initialized:k,navigation:gt,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||B,fetchers:new Map,blockers:new Map},G=$.Pop,z=!1,A,q=!1,X=new Map,se=null,Z=!1,ue=!1,Ze=[],et=[],H=new Map,tt=0,Ie=-1,_e=new Map,de=new Set,Ce=new Map,Be=new Map,ce=new Set,be=new Map,we=new Map,ft=!1;function Br(){if(p=e.history.listen(i=>{let{action:s,location:c,delta:m}=i;if(ft){ft=!1;return}Ae(we.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 E=Kt({currentLocation:f.location,nextLocation:c,historyAction:s});if(E&&m!=null){ft=!0,e.history.go(m*-1),nt(E,{state:"blocked",location:c,proceed(){nt(E,{state:"proceeding",proceed:void 0,reset:void 0,location:c}),e.history.go(m)},reset(){let _=new Map(f.blockers);_.set(E,We),Q({blockers:_})}});return}return Re(s,c)}),r){ha(t,X);let i=()=>pa(t,X);t.addEventListener("pagehide",i),se=()=>t.removeEventListener("pagehide",i)}return f.initialized||Re($.Pop,f.location,{initialHydration:!0}),Se}function kr(){p&&p(),se&&se(),v.clear(),A&&A.abort(),f.fetchers.forEach((i,s)=>rt(s)),f.blockers.forEach((i,s)=>Yt(s))}function zr(i){return v.add(i),()=>v.delete(i)}function Q(i,s){s===void 0&&(s={}),f=F({},f,i);let c=[],m=[];h.v7_fetcherPersist&&f.fetchers.forEach((E,_)=>{E.state==="idle"&&(ce.has(_)?m.push(_):c.push(_))}),[...v].forEach(E=>E(f,{deletedFetchers:m,unstable_viewTransitionOpts:s.viewTransitionOpts,unstable_flushSync:s.flushSync===!0})),h.v7_fetcherPersist&&(c.forEach(E=>f.fetchers.delete(E)),m.forEach(E=>rt(E)))}function ke(i,s,c){var m,E;let{flushSync:_}=c===void 0?{}:c,R=f.actionData!=null&&f.navigation.formMethod!=null&&ae(f.navigation.formMethod)&&f.navigation.state==="loading"&&((m=i.state)==null?void 0:m._isRedirect)!==!0,b;s.actionData?Object.keys(s.actionData).length>0?b=s.actionData:b=null:R?b=f.actionData:b=null;let D=s.loaderData?dr(f.loaderData,s.loaderData,s.matches||[],s.errors):f.loaderData,S=f.blockers;S.size>0&&(S=new Map(S),S.forEach((x,U)=>S.set(U,We)));let K=z===!0||f.navigation.formMethod!=null&&ae(f.navigation.formMethod)&&((E=i.state)==null?void 0:E._isRedirect)!==!0;d&&(o=d,d=void 0),Z||G===$.Pop||(G===$.Push?e.history.push(i,i.state):G===$.Replace&&e.history.replace(i,i.state));let W;if(G===$.Pop){let x=X.get(f.location.pathname);x&&x.has(i.pathname)?W={currentLocation:f.location,nextLocation:i}:X.has(i.pathname)&&(W={currentLocation:i,nextLocation:f.location})}else if(q){let x=X.get(f.location.pathname);x?x.add(i.pathname):(x=new Set([i.pathname]),X.set(f.location.pathname,x)),W={currentLocation:f.location,nextLocation:i}}Q(F({},s,{actionData:b,loaderData:D,historyAction:G,location:i,initialized:!0,navigation:gt,revalidation:"idle",restoreScrollPosition:Jt(i,s.matches||f.matches),preventScrollReset:K,blockers:S}),{viewTransitionOpts:W,flushSync:_===!0}),G=$.Pop,z=!1,q=!1,Z=!1,ue=!1,Ze=[],et=[]}async function It(i,s){if(typeof i=="number"){e.history.go(i);return}let c=wt(f.location,f.matches,u,h.v7_prependBasename,i,h.v7_relativeSplatPath,s==null?void 0:s.fromRouteId,s==null?void 0:s.relative),{path:m,submission:E,error:_}=nr(h.v7_normalizeFormMethod,!1,c,s),R=f.location,b=Ge(f.location,m,s&&s.state);b=F({},b,e.history.encodeLocation(b));let D=s&&s.replace!=null?s.replace:void 0,S=$.Push;D===!0?S=$.Replace:D===!1||E!=null&&ae(E.formMethod)&&E.formAction===f.location.pathname+f.location.search&&(S=$.Replace);let K=s&&"preventScrollReset"in s?s.preventScrollReset===!0:void 0,W=(s&&s.unstable_flushSync)===!0,x=Kt({currentLocation:R,nextLocation:b,historyAction:S});if(x){nt(x,{state:"blocked",location:b,proceed(){nt(x,{state:"proceeding",proceed:void 0,reset:void 0,location:b}),It(i,s)},reset(){let U=new Map(f.blockers);U.set(x,We),Q({blockers:U})}});return}return await Re(S,b,{submission:E,pendingError:_,preventScrollReset:K,replace:s&&s.replace,enableViewTransition:s&&s.unstable_viewTransition,flushSync:W})}function Hr(){if(ht(),Q({revalidation:"loading"}),f.navigation.state!=="submitting"){if(f.navigation.state==="idle"){Re(f.historyAction,f.location,{startUninterruptedRevalidation:!0});return}Re(G||f.historyAction,f.navigation.location,{overrideNavigation:f.navigation})}}async function Re(i,s,c){A&&A.abort(),A=null,G=i,Z=(c&&c.startUninterruptedRevalidation)===!0,Xr(f.location,f.matches),z=(c&&c.preventScrollReset)===!0,q=(c&&c.enableViewTransition)===!0;let m=d||o,E=c&&c.overrideNavigation,_=Oe(m,s,u),R=(c&&c.flushSync)===!0;if(!_){let x=re(404,{pathname:s.pathname}),{matches:U,route:Y}=fr(m);pt(),ke(s,{matches:U,loaderData:{},errors:{[Y.id]:x}},{flushSync:R});return}if(f.initialized&&!ue&&la(f.location,s)&&!(c&&c.submission&&ae(c.submission.formMethod))){ke(s,{matches:_},{flushSync:R});return}A=new AbortController;let b=Te(e.history,s,A.signal,c&&c.submission),D;if(c&&c.pendingError)D=[Ve(_).route.id,{type:N.error,error:c.pendingError}];else if(c&&c.submission&&ae(c.submission.formMethod)){let x=await $r(b,s,c.submission,_,{replace:c.replace,flushSync:R});if(x.shortCircuited)return;D=x.pendingActionResult,E=yt(s,c.submission),R=!1,b=Te(e.history,b.url,b.signal)}let{shortCircuited:S,loaderData:K,errors:W}=await Yr(b,s,_,E,c&&c.submission,c&&c.fetcherSubmission,c&&c.replace,c&&c.initialHydration===!0,R,D);S||(A=null,ke(s,F({matches:_},cr(D),{loaderData:K,errors:W})))}async function $r(i,s,c,m,E){E===void 0&&(E={}),ht();let _=ca(s,c);Q({navigation:_},{flushSync:E.flushSync===!0});let R,b=xt(m,s);if(!b.route.action&&!b.route.lazy)R={type:N.error,error:re(405,{method:i.method,pathname:s.pathname,routeId:b.route.id})};else if(R=(await He("action",i,[b],m))[0],i.signal.aborted)return{shortCircuited:!0};if(Pe(R)){let D;return E&&E.replace!=null?D=E.replace:D=lr(R.response.headers.get("Location"),new URL(i.url),u)===f.location.pathname+f.location.search,await ze(i,R,{submission:c,replace:D}),{shortCircuited:!0}}if(xe(R))throw re(400,{type:"defer-action"});if(ne(R)){let D=Ve(m,b.route.id);return(E&&E.replace)!==!0&&(G=$.Push),{pendingActionResult:[D.route.id,R]}}return{pendingActionResult:[b.route.id,R]}}async function Yr(i,s,c,m,E,_,R,b,D,S){let K=m||yt(s,E),W=E||_||mr(K),x=d||o,[U,Y]=ar(e.history,f,c,W,s,h.v7_partialHydration&&b===!0,h.unstable_skipActionErrorRevalidation,ue,Ze,et,ce,Ce,de,x,u,S);if(pt(j=>!(c&&c.some(V=>V.route.id===j))||U&&U.some(V=>V.route.id===j)),Ie=++tt,U.length===0&&Y.length===0){let j=Ht();return ke(s,F({matches:c,loaderData:{},errors:S&&ne(S[1])?{[S[0]]:S[1].error}:null},cr(S),j?{fetchers:new Map(f.fetchers)}:{}),{flushSync:D}),{shortCircuited:!0}}if(!Z&&(!h.v7_partialHydration||!b)){Y.forEach(V=>{let ee=f.fetchers.get(V.key),J=Je(void 0,ee?ee.data:void 0);f.fetchers.set(V.key,J)});let j;S&&!ne(S[1])?j={[S[0]]:S[1].data}:f.actionData&&(Object.keys(f.actionData).length===0?j=null:j=f.actionData),Q(F({navigation:K},j!==void 0?{actionData:j}:{},Y.length>0?{fetchers:new Map(f.fetchers)}:{}),{flushSync:D})}Y.forEach(j=>{H.has(j.key)&&ve(j.key),j.controller&&H.set(j.key,j.controller)});let Ye=()=>Y.forEach(j=>ve(j.key));A&&A.signal.addEventListener("abort",Ye);let{loaderResults:ge,fetcherResults:De}=await Bt(f.matches,c,U,Y,i);if(i.signal.aborted)return{shortCircuited:!0};A&&A.signal.removeEventListener("abort",Ye),Y.forEach(j=>H.delete(j.key));let Le=hr([...ge,...De]);if(Le){if(Le.idx>=U.length){let j=Y[Le.idx-U.length].key;de.add(j)}return await ze(i,Le.result,{replace:R}),{shortCircuited:!0}}let{loaderData:Me,errors:le}=ur(f,c,U,ge,S,Y,De,be);be.forEach((j,V)=>{j.subscribe(ee=>{(ee||j.done)&&be.delete(V)})}),h.v7_partialHydration&&b&&f.errors&&Object.entries(f.errors).filter(j=>{let[V]=j;return!U.some(ee=>ee.route.id===V)}).forEach(j=>{let[V,ee]=j;le=Object.assign(le||{},{[V]:ee})});let at=Ht(),ot=$t(Ie),it=at||ot||Y.length>0;return F({loaderData:Me,errors:le},it?{fetchers:new Map(f.fetchers)}:{})}function Kr(i,s,c,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.");H.has(i)&&ve(i);let E=(m&&m.unstable_flushSync)===!0,_=d||o,R=wt(f.location,f.matches,u,h.v7_prependBasename,c,h.v7_relativeSplatPath,s,m==null?void 0:m.relative),b=Oe(_,R,u);if(!b){$e(i,s,re(404,{pathname:R}),{flushSync:E});return}let{path:D,submission:S,error:K}=nr(h.v7_normalizeFormMethod,!0,R,m);if(K){$e(i,s,K,{flushSync:E});return}let W=xt(b,D);if(z=(m&&m.preventScrollReset)===!0,S&&ae(S.formMethod)){Wr(i,s,D,W,b,E,S);return}Ce.set(i,{routeId:s,path:D}),Jr(i,s,D,W,b,E,S)}async function Wr(i,s,c,m,E,_,R){if(ht(),Ce.delete(i),!m.route.action&&!m.route.lazy){let J=re(405,{method:R.formMethod,pathname:c,routeId:s});$e(i,s,J,{flushSync:_});return}let b=f.fetchers.get(i);me(i,fa(R,b),{flushSync:_});let D=new AbortController,S=Te(e.history,c,D.signal,R);H.set(i,D);let K=tt,x=(await He("action",S,[m],E))[0];if(S.signal.aborted){H.get(i)===D&&H.delete(i);return}if(h.v7_fetcherPersist&&ce.has(i)){if(Pe(x)||ne(x)){me(i,ye(void 0));return}}else{if(Pe(x))if(H.delete(i),Ie>K){me(i,ye(void 0));return}else return de.add(i),me(i,Je(R)),ze(S,x,{fetcherSubmission:R});if(ne(x)){$e(i,s,x.error);return}}if(xe(x))throw re(400,{type:"defer-action"});let U=f.navigation.location||f.location,Y=Te(e.history,U,D.signal),Ye=d||o,ge=f.navigation.state!=="idle"?Oe(Ye,f.navigation.location,u):f.matches;M(ge,"Didn't find any matches after fetcher action");let De=++tt;_e.set(i,De);let Le=Je(R,x.data);f.fetchers.set(i,Le);let[Me,le]=ar(e.history,f,ge,R,U,!1,h.unstable_skipActionErrorRevalidation,ue,Ze,et,ce,Ce,de,Ye,u,[m.route.id,x]);le.filter(J=>J.key!==i).forEach(J=>{let Ke=J.key,Vt=f.fetchers.get(Ke),Zr=Je(void 0,Vt?Vt.data:void 0);f.fetchers.set(Ke,Zr),H.has(Ke)&&ve(Ke),J.controller&&H.set(Ke,J.controller)}),Q({fetchers:new Map(f.fetchers)});let at=()=>le.forEach(J=>ve(J.key));D.signal.addEventListener("abort",at);let{loaderResults:ot,fetcherResults:it}=await Bt(f.matches,ge,Me,le,Y);if(D.signal.aborted)return;D.signal.removeEventListener("abort",at),_e.delete(i),H.delete(i),le.forEach(J=>H.delete(J.key));let j=hr([...ot,...it]);if(j){if(j.idx>=Me.length){let J=le[j.idx-Me.length].key;de.add(J)}return ze(Y,j.result)}let{loaderData:V,errors:ee}=ur(f,f.matches,Me,ot,void 0,le,it,be);if(f.fetchers.has(i)){let J=ye(x.data);f.fetchers.set(i,J)}$t(De),f.navigation.state==="loading"&&De>Ie?(M(G,"Expected pending action"),A&&A.abort(),ke(f.navigation.location,{matches:ge,loaderData:V,errors:ee,fetchers:new Map(f.fetchers)})):(Q({errors:ee,loaderData:dr(f.loaderData,V,ge,ee),fetchers:new Map(f.fetchers)}),ue=!1)}async function Jr(i,s,c,m,E,_,R){let b=f.fetchers.get(i);me(i,Je(R,b?b.data:void 0),{flushSync:_});let D=new AbortController,S=Te(e.history,c,D.signal);H.set(i,D);let K=tt,x=(await He("loader",S,[m],E))[0];if(xe(x)&&(x=await Ur(x,S.signal,!0)||x),H.get(i)===D&&H.delete(i),!S.signal.aborted){if(ce.has(i)){me(i,ye(void 0));return}if(Pe(x))if(Ie>K){me(i,ye(void 0));return}else{de.add(i),await ze(S,x);return}if(ne(x)){$e(i,s,x.error);return}M(!xe(x),"Unhandled fetcher deferred data"),me(i,ye(x.data))}}async function ze(i,s,c){let{submission:m,fetcherSubmission:E,replace:_}=c===void 0?{}:c;s.response.headers.has("X-Remix-Revalidate")&&(ue=!0);let R=s.response.headers.get("Location");M(R,"Expected a Location header on the redirect Response"),R=lr(R,new URL(i.url),u);let b=Ge(f.location,R,{_isRedirect:!0});if(r){let U=!1;if(s.response.headers.has("X-Remix-Reload-Document"))U=!0;else if(jt.test(R)){const Y=e.history.createURL(R);U=Y.origin!==t.location.origin||Xe(Y.pathname,u)==null}if(U){_?t.location.replace(R):t.location.assign(R);return}}A=null;let D=_===!0?$.Replace:$.Push,{formMethod:S,formAction:K,formEncType:W}=f.navigation;!m&&!E&&S&&K&&W&&(m=mr(f.navigation));let x=m||E;if(Gn.has(s.response.status)&&x&&ae(x.formMethod))await Re(D,b,{submission:F({},x,{formAction:R}),preventScrollReset:z});else{let U=yt(b,m);await Re(D,b,{overrideNavigation:U,fetcherSubmission:E,preventScrollReset:z})}}async function He(i,s,c,m){try{let E=await ra(g,i,s,c,m,l,a);return await Promise.all(E.map((_,R)=>{if(sa(_)){let b=_.result;return{type:N.redirect,response:oa(b,s,c[R].route.id,m,u,h.v7_relativeSplatPath)}}return aa(_)}))}catch(E){return c.map(()=>({type:N.error,error:E}))}}async function Bt(i,s,c,m,E){let[_,...R]=await Promise.all([c.length?He("loader",E,c,s):[],...m.map(b=>{if(b.matches&&b.match&&b.controller){let D=Te(e.history,b.path,b.controller.signal);return He("loader",D,[b.match],b.matches).then(S=>S[0])}else return Promise.resolve({type:N.error,error:re(404,{pathname:b.path})})})]);return await Promise.all([pr(i,c,_,_.map(()=>E.signal),!1,f.loaderData),pr(i,m.map(b=>b.match),R,m.map(b=>b.controller?b.controller.signal:null),!0)]),{loaderResults:_,fetcherResults:R}}function ht(){ue=!0,Ze.push(...pt()),Ce.forEach((i,s)=>{H.has(s)&&(et.push(s),ve(s))})}function me(i,s,c){c===void 0&&(c={}),f.fetchers.set(i,s),Q({fetchers:new Map(f.fetchers)},{flushSync:(c&&c.flushSync)===!0})}function $e(i,s,c,m){m===void 0&&(m={});let E=Ve(f.matches,s);rt(i),Q({errors:{[E.route.id]:c},fetchers:new Map(f.fetchers)},{flushSync:(m&&m.flushSync)===!0})}function kt(i){return h.v7_fetcherPersist&&(Be.set(i,(Be.get(i)||0)+1),ce.has(i)&&ce.delete(i)),f.fetchers.get(i)||qn}function rt(i){let s=f.fetchers.get(i);H.has(i)&&!(s&&s.state==="loading"&&_e.has(i))&&ve(i),Ce.delete(i),_e.delete(i),de.delete(i),ce.delete(i),f.fetchers.delete(i)}function Vr(i){if(h.v7_fetcherPersist){let s=(Be.get(i)||0)-1;s<=0?(Be.delete(i),ce.add(i)):Be.set(i,s)}else rt(i);Q({fetchers:new Map(f.fetchers)})}function ve(i){let s=H.get(i);M(s,"Expected fetch controller: "+i),s.abort(),H.delete(i)}function zt(i){for(let s of i){let c=kt(s),m=ye(c.data);f.fetchers.set(s,m)}}function Ht(){let i=[],s=!1;for(let c of de){let m=f.fetchers.get(c);M(m,"Expected fetcher: "+c),m.state==="loading"&&(de.delete(c),i.push(c),s=!0)}return zt(i),s}function $t(i){let s=[];for(let[c,m]of _e)if(m<i){let E=f.fetchers.get(c);M(E,"Expected fetcher: "+c),E.state==="loading"&&(ve(c),_e.delete(c),s.push(c))}return zt(s),s.length>0}function Gr(i,s){let c=f.blockers.get(i)||We;return we.get(i)!==s&&we.set(i,s),c}function Yt(i){f.blockers.delete(i),we.delete(i)}function nt(i,s){let c=f.blockers.get(i)||We;M(c.state==="unblocked"&&s.state==="blocked"||c.state==="blocked"&&s.state==="blocked"||c.state==="blocked"&&s.state==="proceeding"||c.state==="blocked"&&s.state==="unblocked"||c.state==="proceeding"&&s.state==="unblocked","Invalid blocker state transition: "+c.state+" -> "+s.state);let m=new Map(f.blockers);m.set(i,s),Q({blockers:m})}function Kt(i){let{currentLocation:s,nextLocation:c,historyAction:m}=i;if(we.size===0)return;we.size>1&&Ae(!1,"A router only supports one blocker at a time");let E=Array.from(we.entries()),[_,R]=E[E.length-1],b=f.blockers.get(_);if(!(b&&b.state==="proceeding")&&R({currentLocation:s,nextLocation:c,historyAction:m}))return _}function pt(i){let s=[];return be.forEach((c,m)=>{(!i||i(m))&&(c.cancel(),s.push(m),be.delete(m))}),s}function qr(i,s,c){if(T=i,w=s,P=c||null,!C&&f.navigation===gt){C=!0;let m=Jt(f.location,f.matches);m!=null&&Q({restoreScrollPosition:m})}return()=>{T=null,w=null,P=null}}function Wt(i,s){return P&&P(i,s.map(m=>Sr(m,f.loaderData)))||i.key}function Xr(i,s){if(T&&w){let c=Wt(i,s);T[c]=w()}}function Jt(i,s){if(T){let c=Wt(i,s),m=T[c];if(typeof m=="number")return m}return null}function Qr(i){l={},d=Et(i,a,void 0,l)}return Se={get basename(){return u},get future(){return h},get state(){return f},get routes(){return o},get window(){return t},initialize:Br,subscribe:zr,enableScrollRestoration:qr,navigate:It,fetch:Kr,revalidate:Hr,createHref:i=>e.history.createHref(i),encodeLocation:i=>e.history.encodeLocation(i),getFetcher:kt,deleteFetcher:Vr,dispose:kr,getBlocker:Gr,deleteBlocker:Yt,_internalFetchControllers:H,_internalActiveDeferreds:be,_internalSetRoutes:Qr},Se}function Qn(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function wt(e,t,r,n,a,l,o,d){let u,g;if(o){u=[];for(let p of t)if(u.push(p),p.route.id===o){g=p;break}}else u=t,g=t[t.length-1];let h=Mt(a||".",Lt(u,l),Xe(e.pathname,r)||e.pathname,d==="path");return a==null&&(h.search=e.search,h.hash=e.hash),(a==null||a===""||a===".")&&g&&g.route.index&&!Ot(h.search)&&(h.search=h.search?h.search.replace(/^\?/,"?index&"):"?index"),n&&r!=="/"&&(h.pathname=h.pathname==="/"?r:fe([r,h.pathname])),qe(h)}function nr(e,t,r,n){if(!n||!Qn(n))return{path:r};if(n.formMethod&&!da(n.formMethod))return{path:r,error:re(405,{method:n.formMethod})};let a=()=>({path:r,error:re(400,{type:"invalid-body"})}),l=n.formMethod||"get",o=e?l.toUpperCase():l.toLowerCase(),d=Or(r);if(n.body!==void 0){if(n.formEncType==="text/plain"){if(!ae(o))return a();let v=typeof n.body=="string"?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce((T,P)=>{let[w,C]=P;return""+T+w+"="+C+`
|
|
27
|
-
`},""):String(n.body);return{path:r,submission:{formMethod:o,formAction:d,formEncType:n.formEncType,formData:void 0,json:void 0,text:v}}}else if(n.formEncType==="application/json"){if(!ae(o))return a();try{let v=typeof n.body=="string"?JSON.parse(n.body):n.body;return{path:r,submission:{formMethod:o,formAction:d,formEncType:n.formEncType,formData:void 0,json:v,text:void 0}}}catch{return a()}}}M(typeof FormData=="function","FormData is not available in this environment");let u,g;if(n.formData)u=Rt(n.formData),g=n.formData;else if(n.body instanceof FormData)u=Rt(n.body),g=n.body;else if(n.body instanceof URLSearchParams)u=n.body,g=sr(u);else if(n.body==null)u=new URLSearchParams,g=new FormData;else try{u=new URLSearchParams(n.body),g=sr(u)}catch{return a()}let h={formMethod:o,formAction:d,formEncType:n&&n.formEncType||"application/x-www-form-urlencoded",formData:g,json:void 0,text:void 0};if(ae(h.formMethod))return{path:r,submission:h};let p=Ee(r);return t&&p.search&&Ot(p.search)&&u.append("index",""),p.search="?"+u,{path:qe(p),submission:h}}function Zn(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 ar(e,t,r,n,a,l,o,d,u,g,h,p,v,T,P,w){let C=w?ne(w[1])?w[1].error:w[1].data:void 0,O=e.createURL(t.location),B=e.createURL(a),k=w&&ne(w[1])?w[0]:void 0,pe=k?Zn(r,k):r,ie=w?w[1].statusCode:void 0,Se=o&&ie&&ie>=400,f=pe.filter((z,A)=>{let{route:q}=z;if(q.lazy)return!0;if(q.loader==null)return!1;if(l)return typeof q.loader!="function"||q.loader.hydrate?!0:t.loaderData[q.id]===void 0&&(!t.errors||t.errors[q.id]===void 0);if(ea(t.loaderData,t.matches[A],z)||u.some(Z=>Z===z.route.id))return!0;let X=t.matches[A],se=z;return or(z,F({currentUrl:O,currentParams:X.params,nextUrl:B,nextParams:se.params},n,{actionResult:C,unstable_actionStatus:ie,defaultShouldRevalidate:Se?!1:d||O.pathname+O.search===B.pathname+B.search||O.search!==B.search||jr(X,se)}))}),G=[];return p.forEach((z,A)=>{if(l||!r.some(ue=>ue.route.id===z.routeId)||h.has(A))return;let q=Oe(T,z.path,P);if(!q){G.push({key:A,routeId:z.routeId,path:z.path,matches:null,match:null,controller:null});return}let X=t.fetchers.get(A),se=xt(q,z.path),Z=!1;v.has(A)?Z=!1:g.includes(A)?Z=!0:X&&X.state!=="idle"&&X.data===void 0?Z=d:Z=or(se,F({currentUrl:O,currentParams:t.matches[t.matches.length-1].params,nextUrl:B,nextParams:r[r.length-1].params},n,{actionResult:C,unstable_actionStatus:ie,defaultShouldRevalidate:Se?!1:d})),Z&&G.push({key:A,routeId:z.routeId,path:z.path,matches:q,match:se,controller:new AbortController})}),[f,G]}function ea(e,t,r){let n=!t||r.route.id!==t.route.id,a=e[r.route.id]===void 0;return n||a}function jr(e,t){let r=e.route.path;return e.pathname!==t.pathname||r!=null&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function or(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if(typeof r=="boolean")return r}return t.defaultShouldRevalidate}async function ir(e,t,r){if(!e.lazy)return;let n=await e.lazy();if(!e.lazy)return;let a=r[e.id];M(a,"No route found in manifest");let l={};for(let o in n){let u=a[o]!==void 0&&o!=="hasErrorBoundary";Ae(!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&&!xn.has(o)&&(l[o]=n[o])}Object.assign(a,l),Object.assign(a,F({},t(a),{lazy:void 0}))}function ta(e){return Promise.all(e.matches.map(t=>t.resolve()))}async function ra(e,t,r,n,a,l,o,d){let u=n.reduce((p,v)=>p.add(v.route.id),new Set),g=new Set,h=await e({matches:a.map(p=>{let v=u.has(p.route.id);return F({},p,{shouldLoad:v,resolve:P=>(g.add(p.route.id),v?na(t,r,p,l,o,P,d):Promise.resolve({type:N.data,result:void 0}))})}),request:r,params:a[0].params,context:d});return a.forEach(p=>M(g.has(p.route.id),'`match.resolve()` was not called for route id "'+p.route.id+'". You must call `match.resolve()` on every match passed to `dataStrategy` to ensure all routes are properly loaded.')),h.filter((p,v)=>u.has(a[v].route.id))}async function na(e,t,r,n,a,l,o){let d,u,g=h=>{let p,v=new Promise((w,C)=>p=C);u=()=>p(),t.signal.addEventListener("abort",u);let T=w=>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:o},...w!==void 0?[w]:[]),P;return l?P=l(w=>T(w)):P=(async()=>{try{return{type:"data",result:await T()}}catch(w){return{type:"error",result:w}}})(),Promise.race([P,v])};try{let h=r.route[e];if(r.route.lazy)if(h){let p,[v]=await Promise.all([g(h).catch(T=>{p=T}),ir(r.route,a,n)]);if(p!==void 0)throw p;d=v}else if(await ir(r.route,a,n),h=r.route[e],h)d=await g(h);else if(e==="action"){let p=new URL(t.url),v=p.pathname+p.search;throw re(405,{method:t.method,pathname:v,routeId:r.route.id})}else return{type:N.data,result:void 0};else if(h)d=await g(h);else{let p=new URL(t.url),v=p.pathname+p.search;throw re(404,{pathname:v})}M(d.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:N.error,result:h}}finally{u&&t.signal.removeEventListener("abort",u)}return d}async function aa(e){let{result:t,type:r,status:n}=e;if(Ar(t)){let o;try{let d=t.headers.get("Content-Type");d&&/\bapplication\/json\b/.test(d)?t.body==null?o=null:o=await t.json():o=await t.text()}catch(d){return{type:N.error,error:d}}return r===N.error?{type:N.error,error:new Lr(t.status,t.statusText,o),statusCode:t.status,headers:t.headers}:{type:N.data,data:o,statusCode:t.status,headers:t.headers}}if(r===N.error)return{type:N.error,error:t,statusCode:Tt(t)?t.status:n};if(ua(t)){var a,l;return{type:N.deferred,deferredData:t,statusCode:(a=t.init)==null?void 0:a.status,headers:((l=t.init)==null?void 0:l.headers)&&new Headers(t.init.headers)}}return{type:N.data,data:t,statusCode:n}}function oa(e,t,r,n,a,l){let o=e.headers.get("Location");if(M(o,"Redirects returned/thrown from loaders/actions must have a Location header"),!jt.test(o)){let d=n.slice(0,n.findIndex(u=>u.route.id===r)+1);o=wt(new URL(t.url),d,a,!0,o,l),e.headers.set("Location",o)}return e}function lr(e,t,r){if(jt.test(e)){let n=e,a=n.startsWith("//")?new URL(t.protocol+n):new URL(n),l=Xe(a.pathname,r)!=null;if(a.origin===t.origin&&l)return a.pathname+a.search+a.hash}return e}function Te(e,t,r,n){let a=e.createURL(Or(t)).toString(),l={signal:r};if(n&&ae(n.formMethod)){let{formMethod:o,formEncType:d}=n;l.method=o.toUpperCase(),d==="application/json"?(l.headers=new Headers({"Content-Type":d}),l.body=JSON.stringify(n.json)):d==="text/plain"?l.body=n.text:d==="application/x-www-form-urlencoded"&&n.formData?l.body=Rt(n.formData):l.body=n.formData}return new Request(a,l)}function Rt(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,typeof n=="string"?n:n.name);return t}function sr(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function ia(e,t,r,n,a,l){let o={},d=null,u,g=!1,h={},p=n&&ne(n[1])?n[1].error:void 0;return r.forEach((v,T)=>{let P=t[T].route.id;if(M(!Pe(v),"Cannot handle redirect results in processLoaderData"),ne(v)){let w=v.error;p!==void 0&&(w=p,p=void 0),d=d||{};{let C=Ve(e,P);d[C.route.id]==null&&(d[C.route.id]=w)}o[P]=void 0,g||(g=!0,u=Tt(v.error)?v.error.status:500),v.headers&&(h[P]=v.headers)}else xe(v)?(a.set(P,v.deferredData),o[P]=v.deferredData.data,v.statusCode!=null&&v.statusCode!==200&&!g&&(u=v.statusCode),v.headers&&(h[P]=v.headers)):(o[P]=v.data,v.statusCode&&v.statusCode!==200&&!g&&(u=v.statusCode),v.headers&&(h[P]=v.headers))}),p!==void 0&&n&&(d={[n[0]]:p},o[n[0]]=void 0),{loaderData:o,errors:d,statusCode:u||200,loaderHeaders:h}}function ur(e,t,r,n,a,l,o,d){let{loaderData:u,errors:g}=ia(t,r,n,a,d);for(let h=0;h<l.length;h++){let{key:p,match:v,controller:T}=l[h];M(o!==void 0&&o[h]!==void 0,"Did not find corresponding fetcher result");let P=o[h];if(!(T&&T.signal.aborted))if(ne(P)){let w=Ve(e.matches,v==null?void 0:v.route.id);g&&g[w.route.id]||(g=F({},g,{[w.route.id]:P.error})),e.fetchers.delete(p)}else if(Pe(P))M(!1,"Unhandled fetcher revalidation redirect");else if(xe(P))M(!1,"Unhandled fetcher deferred data");else{let w=ye(P.data);e.fetchers.set(p,w)}}return{loaderData:u,errors:g}}function dr(e,t,r,n){let a=F({},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 cr(e){return e?ne(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function Ve(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 fr(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 re(e,t){let{pathname:r,routeId:n,method:a,type:l}=t===void 0?{}:t,o="Unknown Server Error",d="Unknown @remix-run/router error";return e===400?(o="Bad Request",a&&r&&n?d="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"?d="defer() is not supported in actions":l==="invalid-body"&&(d="Unable to encode submission body")):e===403?(o="Forbidden",d='Route "'+n+'" does not match URL "'+r+'"'):e===404?(o="Not Found",d='No route matches URL "'+r+'"'):e===405&&(o="Method Not Allowed",a&&r&&n?d="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&&(d='Invalid request method "'+a.toUpperCase()+'"')),new Lr(e||500,o,new Error(d),!0)}function hr(e){for(let t=e.length-1;t>=0;t--){let r=e[t];if(Pe(r))return{result:r,idx:t}}}function Or(e){let t=typeof e=="string"?Ee(e):e;return qe(F({},t,{hash:""}))}function la(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function sa(e){return Ar(e.result)&&Vn.has(e.result.status)}function xe(e){return e.type===N.deferred}function ne(e){return e.type===N.error}function Pe(e){return(e&&e.type)===N.redirect}function ua(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 Ar(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function da(e){return Jn.has(e.toLowerCase())}function ae(e){return Kn.has(e.toLowerCase())}async function pr(e,t,r,n,a,l){for(let o=0;o<r.length;o++){let d=r[o],u=t[o];if(!u)continue;let g=e.find(p=>p.route.id===u.route.id),h=g!=null&&!jr(g,u)&&(l&&l[u.route.id])!==void 0;if(xe(d)&&(a||h)){let p=n[o];M(p,"Expected an AbortSignal for revalidating fetcher deferred result"),await Ur(d,p,a).then(v=>{v&&(r[o]=v||r[o])})}}}async function Ur(e,t,r){if(r===void 0&&(r=!1),!await e.deferredData.resolveData(t)){if(r)try{return{type:N.data,data:e.deferredData.unwrappedData}}catch(a){return{type:N.error,error:a}}return{type:N.data,data:e.deferredData.data}}}function Ot(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function xt(e,t){let r=typeof t=="string"?Ee(t).search:t.search;if(e[e.length-1].route.index&&Ot(r||""))return e[e.length-1];let n=Dr(e);return n[n.length-1]}function mr(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 yt(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 ca(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 Je(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 fa(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 ye(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 ha(e,t){try{let r=e.sessionStorage.getItem(Tr);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 pa(e,t){if(t.size>0){let r={};for(let[n,a]of t)r[n]=[...a];try{e.sessionStorage.setItem(Tr,JSON.stringify(r))}catch(n){Ae(!1,"Failed to save applied view transitions in sessionStorage ("+n+").")}}}/**
|
|
28
|
-
* React Router v6.23.1
|
|
29
|
-
*
|
|
30
|
-
* Copyright (c) Remix Software Inc.
|
|
31
|
-
*
|
|
32
|
-
* This source code is licensed under the MIT license found in the
|
|
33
|
-
* LICENSE.md file in the root directory of this source tree.
|
|
34
|
-
*
|
|
35
|
-
* @license MIT
|
|
36
|
-
*/function st(){return st=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},st.apply(this,arguments)}const At=y.createContext(null),ma=y.createContext(null),ut=y.createContext(null),Fe=y.createContext(null),Ut=y.createContext(null),he=y.createContext({outlet:null,matches:[],isDataRoute:!1}),Fr=y.createContext(null);function Ba(e,t){let{relative:r}=t===void 0?{}:t;Qe()||M(!1);let{basename:n,navigator:a}=y.useContext(Fe),{hash:l,pathname:o,search:d}=Ea(e,{relative:r}),u=o;return n!=="/"&&(u=o==="/"?n:fe([n,o])),a.createHref({pathname:u,search:d,hash:l})}function Qe(){return y.useContext(Ut)!=null}function Ft(){return Qe()||M(!1),y.useContext(Ut).location}function Nr(e){y.useContext(Fe).static||y.useLayoutEffect(e)}function ka(){let{isDataRoute:e}=y.useContext(he);return e?Da():va()}function va(){Qe()||M(!1);let e=y.useContext(At),{basename:t,future:r,navigator:n}=y.useContext(Fe),{matches:a}=y.useContext(he),{pathname:l}=Ft(),o=JSON.stringify(Lt(a,r.v7_relativeSplatPath)),d=y.useRef(!1);return Nr(()=>{d.current=!0}),y.useCallback(function(g,h){if(h===void 0&&(h={}),!d.current)return;if(typeof g=="number"){n.go(g);return}let p=Mt(g,JSON.parse(o),l,h.relative==="path");e==null&&t!=="/"&&(p.pathname=p.pathname==="/"?t:fe([t,p.pathname])),(h.replace?n.replace:n.push)(p,h.state,h)},[t,n,o,l,e])}const ga=y.createContext(null);function ya(e){let t=y.useContext(he).outlet;return t&&y.createElement(ga.Provider,{value:e},t)}function za(){let{matches:e}=y.useContext(he),t=e[e.length-1];return t?t.params:{}}function Ea(e,t){let{relative:r}=t===void 0?{}:t,{future:n}=y.useContext(Fe),{matches:a}=y.useContext(he),{pathname:l}=Ft(),o=JSON.stringify(Lt(a,n.v7_relativeSplatPath));return y.useMemo(()=>Mt(e,JSON.parse(o),l,r==="path"),[e,o,l,r])}function Ha(e,t,r,n){Qe()||M(!1);let{navigator:a}=y.useContext(Fe),{matches:l}=y.useContext(he),o=l[l.length-1],d=o?o.params:{};o&&o.pathname;let u=o?o.pathnameBase:"/";o&&o.route;let g=Ft(),h;h=g;let p=h.pathname||"/",v=p;if(u!=="/"){let w=u.replace(/^\//,"").split("/");v="/"+p.replace(/^\//,"").split("/").slice(w.length).join("/")}let T=Oe(e,{pathname:v});return Pa(T&&T.map(w=>Object.assign({},w,{params:Object.assign({},d,w.params),pathname:fe([u,a.encodeLocation?a.encodeLocation(w.pathname).pathname:w.pathname]),pathnameBase:w.pathnameBase==="/"?u:fe([u,a.encodeLocation?a.encodeLocation(w.pathnameBase).pathname:w.pathnameBase])})),l,r,n)}function ba(){let e=_a(),t=Tt(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 y.createElement(y.Fragment,null,y.createElement("h2",null,"Unexpected Application Error!"),y.createElement("h3",{style:{fontStyle:"italic"}},t),r?y.createElement("pre",{style:a},r):null,null)}const wa=y.createElement(ba,null);class Ra extends y.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?y.createElement(he.Provider,{value:this.props.routeContext},y.createElement(Fr.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function xa(e){let{routeContext:t,match:r,children:n}=e,a=y.useContext(At);return a&&a.static&&a.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=r.route.id),y.createElement(he.Provider,{value:t},n)}function Pa(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((l=r)!=null&&l.errors)e=r.matches;else return null}let o=e,d=(a=r)==null?void 0:a.errors;if(d!=null){let h=o.findIndex(p=>p.route.id&&(d==null?void 0:d[p.route.id])!==void 0);h>=0||M(!1),o=o.slice(0,Math.min(o.length,h+1))}let u=!1,g=-1;if(r&&n&&n.v7_partialHydration)for(let h=0;h<o.length;h++){let p=o[h];if((p.route.HydrateFallback||p.route.hydrateFallbackElement)&&(g=h),p.route.id){let{loaderData:v,errors:T}=r,P=p.route.loader&&v[p.route.id]===void 0&&(!T||T[p.route.id]===void 0);if(p.route.lazy||P){u=!0,g>=0?o=o.slice(0,g+1):o=[o[0]];break}}}return o.reduceRight((h,p,v)=>{let T,P=!1,w=null,C=null;r&&(T=d&&p.route.id?d[p.route.id]:void 0,w=p.route.errorElement||wa,u&&(g<0&&v===0?(P=!0,C=null):g===v&&(P=!0,C=p.route.hydrateFallbackElement||null)));let O=t.concat(o.slice(0,v+1)),B=()=>{let k;return T?k=w:P?k=C:p.route.Component?k=y.createElement(p.route.Component,null):p.route.element?k=p.route.element:k=h,y.createElement(xa,{match:p,routeContext:{outlet:h,matches:O,isDataRoute:r!=null},children:k})};return r&&(p.route.ErrorBoundary||p.route.errorElement||v===0)?y.createElement(Ra,{location:r.location,revalidation:r.revalidation,component:w,error:T,children:B(),routeContext:{outlet:null,matches:O,isDataRoute:!0}}):B()},null)}var Nt=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(Nt||{}),oe=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}(oe||{});function Ir(e){let t=y.useContext(At);return t||M(!1),t}function Ne(e){let t=y.useContext(ma);return t||M(!1),t}function Sa(e){let t=y.useContext(he);return t||M(!1),t}function ct(e){let t=Sa(),r=t.matches[t.matches.length-1];return r.route.id||M(!1),r.route.id}function $a(){return ct(oe.UseRouteId)}function Ya(){return Ne(oe.UseNavigation).navigation}function Ka(){let e=Ir(Nt.UseRevalidator),t=Ne(oe.UseRevalidator);return y.useMemo(()=>({revalidate:e.router.revalidate,state:t.revalidation}),[e.router.revalidate,t.revalidation])}function Wa(){let{matches:e,loaderData:t}=Ne(oe.UseMatches);return y.useMemo(()=>e.map(r=>Sr(r,t)),[e,t])}function Ja(){let e=Ne(oe.UseLoaderData),t=ct(oe.UseLoaderData);if(e.errors&&e.errors[t]!=null){console.error("You cannot `useLoaderData` in an errorElement (routeId: "+t+")");return}return e.loaderData[t]}function Va(e){return Ne(oe.UseRouteLoaderData).loaderData[e]}function _a(){var e;let t=y.useContext(Fr),r=Ne(oe.UseRouteError),n=ct(oe.UseRouteError);return t!==void 0?t:(e=r.errors)==null?void 0:e[n]}function Ca(){let e=y.useContext(ut);return e==null?void 0:e._data}function Ga(){let e=y.useContext(ut);return e==null?void 0:e._error}function Da(){let{router:e}=Ir(Nt.UseNavigateStable),t=ct(oe.UseNavigateStable),r=y.useRef(!1);return Nr(()=>{r.current=!0}),y.useCallback(function(a,l){l===void 0&&(l={}),r.current&&(typeof a=="number"?e.navigate(a):e.navigate(a,st({fromRouteId:t},l)))},[e,t])}function qa(e){return ya(e.context)}function Xa(e){let{basename:t="/",children:r=null,location:n,navigationType:a=$.Pop,navigator:l,static:o=!1,future:d}=e;Qe()&&M(!1);let u=t.replace(/^\/*/,"/"),g=y.useMemo(()=>({basename:u,navigator:l,static:o,future:st({v7_relativeSplatPath:!1},d)}),[u,d,l,o]);typeof n=="string"&&(n=Ee(n));let{pathname:h="/",search:p="",hash:v="",state:T=null,key:P="default"}=n,w=y.useMemo(()=>{let C=Xe(h,u);return C==null?null:{location:{pathname:C,search:p,hash:v,state:T,key:P},navigationType:a}},[u,h,p,v,T,P,a]);return w==null?null:y.createElement(Fe.Provider,{value:g},y.createElement(Ut.Provider,{children:r,value:w}))}function Qa(e){let{children:t,errorElement:r,resolve:n}=e;return y.createElement(Ma,{resolve:n,errorElement:r},y.createElement(Ta,null,t))}var te=function(e){return e[e.pending=0]="pending",e[e.success=1]="success",e[e.error=2]="error",e}(te||{});const La=new Promise(()=>{});class Ma extends y.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=te.pending;if(!(n instanceof Promise))l=te.success,a=Promise.resolve(),Object.defineProperty(a,"_tracked",{get:()=>!0}),Object.defineProperty(a,"_data",{get:()=>n});else if(this.state.error){l=te.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?te.error:"_data"in a?te.success:te.pending):(l=te.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===te.error&&a._error instanceof bt)throw La;if(l===te.error&&!r)throw a._error;if(l===te.error)return y.createElement(ut.Provider,{value:a,children:r});if(l===te.success)return y.createElement(ut.Provider,{value:a,children:t});throw a}}function Ta(e){let{children:t}=e,r=Ca(),n=typeof t=="function"?t(r):t;return y.createElement(y.Fragment,null,n)}function Za(e){let t={hasErrorBoundary:e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&Object.assign(t,{element:y.createElement(e.Component),Component:void 0}),e.HydrateFallback&&Object.assign(t,{hydrateFallbackElement:y.createElement(e.HydrateFallback),HydrateFallback:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:y.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}export{Aa as $,Ha as A,Ba as B,Un as C,At as D,Lr as E,Ee as F,bt as G,Fa as H,qn as I,Ja as J,Qa as K,Va as L,Ga as M,Fe as N,qa as O,bn as R,_a as a,za as b,Ya as c,ka as d,Ka as e,Wa as f,tn as g,ja as h,Tt as i,Oa as j,Na as k,Ia as l,Oe as m,Ua as n,Za as o,$a as p,he as q,y as r,M as s,Ea as t,Ft as u,fe as v,qe as w,Xe as x,ma as y,Xa as z};
|
|
37
|
-
//# sourceMappingURL=index-D6ygCrVn.js.map
|