@epic-web/workshop-app 4.6.6 → 4.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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-a1fde59b.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 +841 -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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-90bzTYUX.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 { 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 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 var context = unstable_createFormContext(options);\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: 'theme-switcher',\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","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","unstable_createFormContext","submitEvent","_onSubmit","_excluded","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,2 +1,2 @@
|
|
|
1
|
-
import{j as e}from"./index-
|
|
2
|
-
//# sourceMappingURL=index-
|
|
1
|
+
import{j as e}from"./index-Czg1ruVn.js";import{E as t}from"./index-D6ukHE4T.js";import{E as a}from"./epic-video-CYnG2ziQ.js";import{G as l}from"./error-boundary-DxfVshQ5.js";import{M as i,E as m}from"./mdx-CR7Me1v_.js";import{c as n}from"./misc-CypjEQkt.js";import{P as c,u as d}from"./progress-B_mReZVE.js";import{u as p,L as x}from"./components-BMzmvxYw.js";import"./index-90bzTYUX.js";import"./request-info-CUT0ULYN.js";import"./tooltip-CfmIzAYi.js";import"./client-hints-BE5mB4r0.js";import"./loading-CNWJVymJ.js";import"./clsx-B-dksMZM.js";import"./progress-bar-DCrt7X4t.js";function h({exercise:r}){const s=d(r.exerciseNumber);return e.jsx("li",{children:e.jsxs(x,{className:n("relative flex items-center gap-4 px-4 py-3 text-lg font-semibold transition after:absolute after:right-10 after:-translate-x-2 after:opacity-0 after:transition after:content-['→'] hover:bg-gray-50 hover:after:translate-x-0 hover:after:opacity-100 dark:hover:bg-white/5",s),to:`${r.exerciseNumber.toString().padStart(2,"0")}`,children:[e.jsx("span",{className:"text-xs font-normal tabular-nums opacity-50",children:r.exerciseNumber}),e.jsx("span",{children:r.title})]})},r.exerciseNumber)}const f={h1:()=>null};function G(){const r=p(),s=e.jsxs("ul",{className:"flex flex-col divide-y divide-border dark:divide-border/50",children:[e.jsx("strong",{className:"px-10 pb-3 font-mono text-xs uppercase",children:"Exercises"}),r.exercises.map(o=>e.jsx(h,{exercise:o},o.exerciseNumber))]});return e.jsxs("main",{className:"relative flex h-full w-full max-w-5xl flex-col justify-between border-r md:w-3/4 xl:w-2/3",children:[e.jsxs("article",{id:r.articleId,className:"shadow-on-scrollbox flex w-full flex-1 flex-col gap-12 overflow-y-scroll px-3 py-4 pt-6 scrollbar-thin scrollbar-thumb-scrollbar md:px-10 md:py-12 md:pt-16",children:[e.jsx("div",{children:e.jsx("h1",{className:"px-10 text-[clamp(3rem,6vw,8.5rem)] font-extrabold leading-none",children:r.title})}),e.jsxs("div",{className:"w-full max-w-none scroll-pt-6 border-t px-3 pt-3 md:px-10 md:pt-8",children:[e.jsx("h2",{className:"pb-5 font-mono text-xs font-semibold uppercase",children:"Intro"}),r.workshopReadme.compiled.status==="success"&&r.workshopReadme.compiled.code?e.jsx(a,{epicVideoInfosPromise:r.epicVideoInfosPromise,children:e.jsx("div",{className:"prose dark:prose-invert sm:prose-lg",children:e.jsx(i,{code:r.workshopReadme.compiled.code,components:f})})}):r.workshopReadme.compiled.status==="error"?e.jsxs("div",{className:"text-red-500",children:["There was an error:",e.jsx("pre",{children:r.workshopReadme.compiled.error})]}):"No instructions yet..."]}),e.jsx("div",{className:"pb-5 pt-10",children:r.workshopReadme.compiled.status==="success"&&r.workshopReadme.compiled.code&&r.workshopReadme.compiled.code.length>500?s:null})]}),e.jsx(t,{elementQuery:`#${r.articleId}`}),e.jsx(c,{type:"workshop-instructions",className:"h-14 border-t px-6"}),e.jsx("div",{className:"flex h-16 justify-center border-t",children:e.jsx(m,{file:r.workshopReadme.file,relativePath:r.workshopReadme.relativePath})})]})}function S(){return e.jsx(l,{})}export{S as ErrorBoundary,G as default};
|
|
2
|
+
//# sourceMappingURL=index-BXefr1BB.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-BXefr1BB.js","sources":["../../../app/routes/_app+/index.tsx"],"sourcesContent":["import { ElementScrollRestoration } from '@epic-web/restore-scroll'\nimport {\n\tgetExercises,\n\tgetWorkshopInstructions,\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 {\n\tdefer,\n\ttype HeadersFunction,\n\ttype LoaderFunctionArgs,\n\ttype SerializeFrom,\n} from '@remix-run/node'\nimport { Link, useLoaderData } from '@remix-run/react'\nimport slugify from '@sindresorhus/slugify'\nimport { EpicVideoInfoProvider } from '#app/components/epic-video.tsx'\nimport { GeneralErrorBoundary } from '#app/components/error-boundary.tsx'\nimport { EditFileOnGitHub } from '#app/routes/launch-editor.tsx'\nimport { getEpicVideoInfos } from '#app/utils/epic-api.ts'\nimport { Mdx } from '#app/utils/mdx.tsx'\nimport { cn } from '#app/utils/misc.tsx'\nimport { ProgressToggle, useExerciseProgressClassName } from '../progress.tsx'\n\nexport async function loader({ request }: LoaderFunctionArgs) {\n\tconst timings = makeTimings('indexLoader')\n\tconst [title, exercises, workshopReadme] = await Promise.all([\n\t\ttime(() => getWorkshopTitle(), {\n\t\t\ttimings,\n\t\t\ttype: 'getWorkshopTitle',\n\t\t\tdesc: 'getWorkshopTitle in index',\n\t\t}),\n\t\ttime(() => getExercises({ request, timings }), {\n\t\t\ttimings,\n\t\t\ttype: 'getExercises',\n\t\t\tdesc: 'getExercises in index',\n\t\t}),\n\t\ttime(() => getWorkshopInstructions({ request }), {\n\t\t\ttimings,\n\t\t\ttype: 'compileMdx',\n\t\t\tdesc: 'compileMdx in index',\n\t\t}),\n\t])\n\n\treturn defer(\n\t\t{\n\t\t\tarticleId: `workshop-${slugify(title)}-instructions`,\n\t\t\ttitle:\n\t\t\t\tworkshopReadme.compiled.status === 'success'\n\t\t\t\t\t? workshopReadme.compiled.title\n\t\t\t\t\t: title,\n\t\t\texercises: exercises.map((e) => ({\n\t\t\t\texerciseNumber: e.exerciseNumber,\n\t\t\t\ttitle: e.title,\n\t\t\t})),\n\t\t\tworkshopReadme,\n\t\t\tepicVideoInfosPromise:\n\t\t\t\tworkshopReadme.compiled.status === 'success'\n\t\t\t\t\t? getEpicVideoInfos(workshopReadme.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},\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\nfunction ExerciseListItem({\n\texercise,\n}: {\n\texercise: SerializeFrom<typeof loader>['exercises'][number]\n}) {\n\tconst progressClassName = useExerciseProgressClassName(\n\t\texercise.exerciseNumber,\n\t)\n\treturn (\n\t\t<li key={exercise.exerciseNumber}>\n\t\t\t<Link\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"relative flex items-center gap-4 px-4 py-3 text-lg font-semibold transition after:absolute after:right-10 after:-translate-x-2 after:opacity-0 after:transition after:content-['→'] hover:bg-gray-50 hover:after:translate-x-0 hover:after:opacity-100 dark:hover:bg-white/5\",\n\t\t\t\t\tprogressClassName,\n\t\t\t\t)}\n\t\t\t\tto={`${exercise.exerciseNumber.toString().padStart(2, '0')}`}\n\t\t\t>\n\t\t\t\t<span className=\"text-xs font-normal tabular-nums opacity-50\">\n\t\t\t\t\t{exercise.exerciseNumber}\n\t\t\t\t</span>\n\t\t\t\t<span>{exercise.title}</span>\n\t\t\t</Link>\n\t\t</li>\n\t)\n}\n\nconst mdxComponents = { h1: () => null }\n\nexport default function Index() {\n\tconst data = useLoaderData<typeof loader>()\n\n\tconst exerciseLinks = (\n\t\t<ul className=\"flex flex-col divide-y divide-border dark:divide-border/50\">\n\t\t\t<strong className=\"px-10 pb-3 font-mono text-xs uppercase\">\n\t\t\t\tExercises\n\t\t\t</strong>\n\t\t\t{data.exercises.map((exercise) => (\n\t\t\t\t<ExerciseListItem key={exercise.exerciseNumber} exercise={exercise} />\n\t\t\t))}\n\t\t</ul>\n\t)\n\treturn (\n\t\t<main className=\"relative flex h-full w-full max-w-5xl flex-col justify-between border-r md:w-3/4 xl:w-2/3\">\n\t\t\t<article\n\t\t\t\tid={data.articleId}\n\t\t\t\tclassName=\"shadow-on-scrollbox flex w-full flex-1 flex-col gap-12 overflow-y-scroll px-3 py-4 pt-6 scrollbar-thin scrollbar-thumb-scrollbar md:px-10 md:py-12 md:pt-16\"\n\t\t\t>\n\t\t\t\t<div>\n\t\t\t\t\t<h1 className=\"px-10 text-[clamp(3rem,6vw,8.5rem)] font-extrabold leading-none\">\n\t\t\t\t\t\t{data.title}\n\t\t\t\t\t</h1>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"w-full max-w-none scroll-pt-6 border-t px-3 pt-3 md:px-10 md:pt-8\">\n\t\t\t\t\t<h2 className=\"pb-5 font-mono text-xs font-semibold uppercase\">\n\t\t\t\t\t\tIntro\n\t\t\t\t\t</h2>\n\t\t\t\t\t{data.workshopReadme.compiled.status === 'success' &&\n\t\t\t\t\tdata.workshopReadme.compiled.code ? (\n\t\t\t\t\t\t<EpicVideoInfoProvider\n\t\t\t\t\t\t\tepicVideoInfosPromise={data.epicVideoInfosPromise}\n\t\t\t\t\t\t>\n\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<Mdx\n\t\t\t\t\t\t\t\t\tcode={data.workshopReadme.compiled.code}\n\t\t\t\t\t\t\t\t\tcomponents={mdxComponents}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</EpicVideoInfoProvider>\n\t\t\t\t\t) : data.workshopReadme.compiled.status === 'error' ? (\n\t\t\t\t\t\t<div className=\"text-red-500\">\n\t\t\t\t\t\t\tThere was an error:\n\t\t\t\t\t\t\t<pre>{data.workshopReadme.compiled.error}</pre>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t'No instructions yet...'\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t<div className=\"pb-5 pt-10\">\n\t\t\t\t\t{data.workshopReadme.compiled.status === 'success' &&\n\t\t\t\t\tdata.workshopReadme.compiled.code &&\n\t\t\t\t\tdata.workshopReadme.compiled.code.length > 500\n\t\t\t\t\t\t? exerciseLinks\n\t\t\t\t\t\t: null}\n\t\t\t\t</div>\n\t\t\t</article>\n\t\t\t<ElementScrollRestoration elementQuery={`#${data.articleId}`} />\n\t\t\t<ProgressToggle\n\t\t\t\ttype=\"workshop-instructions\"\n\t\t\t\tclassName=\"h-14 border-t px-6\"\n\t\t\t/>\n\t\t\t<div className=\"flex h-16 justify-center border-t\">\n\t\t\t\t<EditFileOnGitHub\n\t\t\t\t\tfile={data.workshopReadme.file}\n\t\t\t\t\trelativePath={data.workshopReadme.relativePath}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</main>\n\t)\n}\n\nexport function ErrorBoundary() {\n\treturn <GeneralErrorBoundary />\n}\n"],"names":["ExerciseListItem","exercise","progressClassName","useExerciseProgressClassName","exerciseNumber","children","jsxs","Link","className","cn","to","toString","padStart","jsx","title","mdxComponents","h1","Index","data","useLoaderData","exerciseLinks","exercises","map","id","articleId","workshopReadme","compiled","status","code","EpicVideoInfoProvider","epicVideoInfosPromise","Mdx","components","error","length","ElementScrollRestoration","elementQuery","ProgressToggle","type","EditFileOnGitHub","file","relativePath","ErrorBoundary","GeneralErrorBoundary"],"mappings":"okBAmFA,SAASA,EAAiB,CACzBC,SAAAA,CACD,EAEG,CACF,MAAMC,EAAoBC,EACzBF,EAASG,cACV,EACA,aACE,KACA,CAAAC,SAAAC,EAAA,KAACC,EAAA,CACAC,UAAWC,EACV,+QACAP,CACD,EACAQ,GAAI,GAAGT,EAASG,eAAeO,SAAW,EAAAC,SAAS,EAAG,GAAG,CAAC,GAE1DP,SAAA,CAAAQ,EAAA,IAAC,OAAK,CAAAL,UAAU,8CACdH,SAAAJ,EAASG,cACX,CAAA,EACAS,EAAA,IAAC,OAAM,CAAAR,SAAAJ,EAASa,KAAM,CAAA,CAAA,EACvB,CAAA,EAZQb,EAASG,cAalB,CAEF,CAEA,MAAMW,EAAgB,CAAEC,GAAIA,IAAM,IAAK,EAEvC,SAAwBC,GAAQ,CAC/B,MAAMC,EAAOC,IAEPC,EACLd,EAAA,KAAC,KAAG,CAAAE,UAAU,6DACbH,SAAA,CAACQ,EAAA,IAAA,SAAA,CAAOL,UAAU,yCAAyCH,SAE3D,WAAA,CAAA,EACCa,EAAKG,UAAUC,IAAKrB,SACnBD,EAA+C,CAAAC,SAAAA,CAAA,EAAzBA,EAASG,cAAoC,CACpE,CAAA,CACF,CAAA,EAGA,OAAAE,EAAAA,KAAC,OAAK,CAAAE,UAAU,4FACfH,SAAA,CAAAC,EAAA,KAAC,UAAA,CACAiB,GAAIL,EAAKM,UACThB,UAAU,8JAEVH,SAAA,CAAAQ,EAAA,IAAC,OACAR,SAACQ,EAAA,IAAA,KAAA,CAAGL,UAAU,kEACZH,SAAAa,EAAKJ,MACP,CACD,CAAA,EACAR,EAAA,KAAC,MAAI,CAAAE,UAAU,oEACdH,SAAA,CAACQ,EAAA,IAAA,KAAA,CAAGL,UAAU,iDAAiDH,SAE/D,OAAA,CAAA,EACCa,EAAKO,eAAeC,SAASC,SAAW,WACzCT,EAAKO,eAAeC,SAASE,KAC5Bf,EAAAA,IAACgB,EAAA,CACAC,sBAAuBZ,EAAKY,sBAE5BzB,SAAAQ,EAAA,IAAC,MAAI,CAAAL,UAAU,sCACdH,SAAAQ,EAAA,IAACkB,EAAA,CACAH,KAAMV,EAAKO,eAAeC,SAASE,KACnCI,WAAYjB,EACb,EACD,CAAA,CACD,EACGG,EAAKO,eAAeC,SAASC,SAAW,QAC3CrB,EAAA,KAAC,MAAI,CAAAE,UAAU,eAAeH,SAAA,CAAA,sBAE5BQ,EAAA,IAAA,MAAA,CAAKR,SAAKa,EAAAO,eAAeC,SAASO,KAAM,CAAA,CAAA,CAC1C,CAAA,EAEA,wBAAA,CAEF,CAAA,EACApB,EAAA,IAAC,OAAIL,UAAU,aACbH,WAAKoB,eAAeC,SAASC,SAAW,WACzCT,EAAKO,eAAeC,SAASE,MAC7BV,EAAKO,eAAeC,SAASE,KAAKM,OAAS,IACxCd,EACA,IACJ,CAAA,CAAA,CAAA,CACD,QACCe,EAAyB,CAAAC,aAAc,IAAIlB,EAAKM,SAAS,EAAI,CAAA,EAC9DX,EAAA,IAACwB,EAAA,CACAC,KAAK,wBACL9B,UAAU,oBAAA,CACX,EACAK,EAAA,IAAC,MAAI,CAAAL,UAAU,oCACdH,SAAAQ,EAAA,IAAC0B,EAAA,CACAC,KAAMtB,EAAKO,eAAee,KAC1BC,aAAcvB,EAAKO,eAAegB,aACnC,CACD,CAAA,CAAA,CACD,CAAA,CAEF,CAEO,SAASC,GAAgB,CAC/B,aAAQC,EAAqB,CAAA,CAAA,CAC9B"}
|