@epic-web/workshop-app 4.6.5 → 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-D5XVFEL6.js → _exerciseNumber-CFOo2dQj.js} +2 -2
- package/build/client/assets/{_exerciseNumber-D5XVFEL6.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-BXq0yevS.js → root-bgHbi7rA.js} +4 -4
- package/build/client/assets/root-bgHbi7rA.js.map +1 -0
- package/build/client/assets/{seo-CHrqghsC.js → seo-Bu3_n5my.js} +2 -2
- package/build/client/assets/{seo-CHrqghsC.js.map → seo-Bu3_n5my.js.map} +1 -1
- 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 +850 -616
- 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-B7SgnqdS.js +0 -2
- package/build/client/assets/_exerciseNumber_.finished-B7SgnqdS.js.map +0 -1
- package/build/client/assets/_layout-BG1Jwh7V.js +0 -2
- package/build/client/assets/_layout-BG1Jwh7V.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/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-BI2-0Ykt.js +0 -2
- package/build/client/assets/finished-BI2-0Ykt.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-f472ec85.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-BXq0yevS.js.map +0 -1
- package/build/client/assets/tailwind-Ck4g-nq0.css +0 -1
- package/build/client/assets/tooltip-Kw0lYWBI.js +0 -2
- package/build/client/assets/tooltip-Kw0lYWBI.js.map +0 -1
- package/node_modules/@babel/runtime/helpers/AsyncGenerator.js +0 -64
- package/node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js +0 -64
- package/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimitLoose.js +0 -10
- package/node_modules/@babel/runtime/helpers/esm/slicedToArrayLoose.js +0 -8
- package/node_modules/@babel/runtime/helpers/iterableToArrayLimitLoose.js +0 -10
- package/node_modules/@babel/runtime/helpers/slicedToArrayLoose.js +0 -8
- package/node_modules/@conform-to/dom/rollup.config.js +0 -100
- package/node_modules/@conform-to/react/rollup.config.js +0 -102
- package/node_modules/@conform-to/zod/rollup.config.js +0 -100
- package/node_modules/@radix-ui/number/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/primitive/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-accordion/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-arrow/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-collapsible/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-collection/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-compose-refs/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-context/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-direction/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-dismissable-layer/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-focus-guards/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-focus-scope/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-id/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-popover/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-popper/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-portal/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-presence/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-primitive/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-roving-focus/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-select/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-slot/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-tabs/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-toast/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-use-callback-ref/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-use-controllable-state/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-use-layout-effect/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-use-previous/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-use-rect/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-use-size/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/react-visually-hidden/dist/index.d.ts.map +0 -1
- package/node_modules/@radix-ui/rect/dist/index.d.ts.map +0 -1
- package/node_modules/@remix-run/server-runtime/node_modules/source-map/dist/source-map.js +0 -1
- package/node_modules/@remix-run/server-runtime/node_modules/source-map/lib/array-set.js +0 -100
- package/node_modules/@remix-run/server-runtime/node_modules/source-map/lib/base64.js +0 -18
- package/node_modules/@remix-run/server-runtime/node_modules/source-map/lib/mapping-list.js +0 -80
- package/node_modules/@remix-run/server-runtime/node_modules/source-map/lib/source-map-consumer.js +0 -1237
- package/node_modules/@remix-run/server-runtime/node_modules/source-map/lib/source-node.js +0 -404
- package/node_modules/@remix-run/server-runtime/node_modules/source-map/source-map.d.ts +0 -369
- package/node_modules/@remix-run/server-runtime/node_modules/source-map/source-map.js +0 -8
- package/node_modules/framer-motion/dist/projection.dev.js +0 -6659
- /package/node_modules/{@remix-run/server-runtime/node_modules/source-map → source-map}/LICENSE +0 -0
- /package/node_modules/{@remix-run/server-runtime/node_modules/source-map → source-map}/lib/mappings.wasm +0 -0
- /package/node_modules/{@remix-run/server-runtime/node_modules/source-map → source-map}/lib/read-wasm.js +0 -0
- /package/node_modules/{@remix-run/server-runtime/node_modules/source-map → source-map}/lib/wasm.js +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/and.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/array-indices.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/array-slice.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/array-splice.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/array-values.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/async-return-type.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/asyncify.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/basic.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/camel-case.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/camel-cased-properties-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/camel-cased-properties.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/conditional-except.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/conditional-keys.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/conditional-pick-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/conditional-pick.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/conditional-simplify.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/delimiter-case.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/delimiter-cased-properties-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/delimiter-cased-properties.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/distributed-omit.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/distributed-pick.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/empty-object.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/enforce-optional.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/entries.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/entry.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/exact.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/except.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/fixed-length-array.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/get.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/global-this.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/greater-than-or-equal.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/greater-than.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/has-optional-keys.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/has-readonly-keys.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/has-required-keys.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/has-writable-keys.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/if-any.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/if-empty-object.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/if-never.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/if-null.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/if-unknown.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/includes.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/int-range.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/internal.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/invariant-of.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/is-any.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/is-equal.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/is-float.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/is-integer.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/is-never.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/is-null.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/is-unknown.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/iterable-element.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/join.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/jsonifiable.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/jsonify.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/kebab-case.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/kebab-cased-properties-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/kebab-cased-properties.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/keys-of-union.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/last-array-element.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/less-than-or-equal.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/less-than.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/literal-to-primitive-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/literal-to-primitive.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/literal-union.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/merge-exclusive.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/merge.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/multidimensional-array.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/multidimensional-readonly-array.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/non-empty-object.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/numeric.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/observable-like.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/omit-index-signature.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/opaque.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/optional-keys-of.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/or.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/override-properties.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/package-json.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/partial-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/partial-on-undefined-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/pascal-case.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/pascal-cased-properties-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/pascal-cased-properties.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/pick-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/pick-index-signature.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/primitive.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/promisable.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/readonly-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/readonly-keys-of.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/readonly-tuple.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/replace.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/require-all-or-none.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/require-at-least-one.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/require-exactly-one.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/require-one-or-none.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/required-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/required-keys-of.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/screaming-snake-case.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/set-field-type.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/set-non-nullable.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/set-optional.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/set-parameter-type.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/set-readonly.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/set-required.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/set-return-type.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/shared-union-fields-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/single-key-object.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/snake-case.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/snake-cased-properties-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/snake-cased-properties.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/split-words.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/split.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/spread.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/string-key-of.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/string-slice.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/stringified.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/subtract.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/sum.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/tagged-union.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/trim.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/tsconfig-json.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/tuple-to-union.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/typed-array.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/undefined-on-partial-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/union-to-intersection.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/unknown-array.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/unknown-record.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/value-of.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/writable-deep.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/writable-keys-of.d.ts +0 -0
- /package/node_modules/{remix-utils/node_modules/type-fest → type-fest}/source/writable.d.ts +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @remix-run/react v2.
|
|
2
|
+
* @remix-run/react v2.10.0
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -78,7 +78,8 @@ class RemixErrorBoundary extends React__namespace.Component {
|
|
|
78
78
|
render() {
|
|
79
79
|
if (this.state.error) {
|
|
80
80
|
return /*#__PURE__*/React__namespace.createElement(RemixRootDefaultErrorBoundary, {
|
|
81
|
-
error: this.state.error
|
|
81
|
+
error: this.state.error,
|
|
82
|
+
isOutsideRemixApp: true
|
|
82
83
|
});
|
|
83
84
|
} else {
|
|
84
85
|
return this.props.children;
|
|
@@ -90,7 +91,8 @@ class RemixErrorBoundary extends React__namespace.Component {
|
|
|
90
91
|
* When app's don't provide a root level ErrorBoundary, we default to this.
|
|
91
92
|
*/
|
|
92
93
|
function RemixRootDefaultErrorBoundary({
|
|
93
|
-
error
|
|
94
|
+
error,
|
|
95
|
+
isOutsideRemixApp
|
|
94
96
|
}) {
|
|
95
97
|
console.error(error);
|
|
96
98
|
let heyDeveloper = /*#__PURE__*/React__namespace.createElement("script", {
|
|
@@ -119,7 +121,8 @@ function RemixRootDefaultErrorBoundary({
|
|
|
119
121
|
errorInstance = new Error(errorString);
|
|
120
122
|
}
|
|
121
123
|
return /*#__PURE__*/React__namespace.createElement(BoundaryShell, {
|
|
122
|
-
title: "Application Error!"
|
|
124
|
+
title: "Application Error!",
|
|
125
|
+
isOutsideRemixApp: isOutsideRemixApp
|
|
123
126
|
}, /*#__PURE__*/React__namespace.createElement("h1", {
|
|
124
127
|
style: {
|
|
125
128
|
fontSize: "24px"
|
|
@@ -136,13 +139,31 @@ function RemixRootDefaultErrorBoundary({
|
|
|
136
139
|
function BoundaryShell({
|
|
137
140
|
title,
|
|
138
141
|
renderScripts,
|
|
142
|
+
isOutsideRemixApp,
|
|
139
143
|
children
|
|
140
144
|
}) {
|
|
141
145
|
var _routeModules$root;
|
|
142
146
|
let {
|
|
143
147
|
routeModules
|
|
144
148
|
} = components.useRemixContext();
|
|
145
|
-
|
|
149
|
+
|
|
150
|
+
// Generally speaking, when the root route has a Layout we want to use that
|
|
151
|
+
// as the app shell instead of the default `BoundaryShell` wrapper markup below.
|
|
152
|
+
// This is true for `loader`/`action` errors, most render errors, and
|
|
153
|
+
// `HydrateFallback` scenarios.
|
|
154
|
+
|
|
155
|
+
// However, render errors thrown from the `Layout` present a bit of an issue
|
|
156
|
+
// because if the `Layout` itself throws during the `ErrorBoundary` pass and
|
|
157
|
+
// we bubble outside the `RouterProvider` to the wrapping `RemixErrorBoundary`,
|
|
158
|
+
// by returning only `children` here we'll be trying to append a `<div>` to
|
|
159
|
+
// the `document` and the DOM will throw, putting React into an error/hydration
|
|
160
|
+
// loop.
|
|
161
|
+
|
|
162
|
+
// Instead, if we're ever rendering from the outermost `RemixErrorBoundary`
|
|
163
|
+
// during hydration that wraps `RouterProvider`, then we can't trust the
|
|
164
|
+
// `Layout` and should fallback to the default app shell so we're always
|
|
165
|
+
// returning an `<html>` document.
|
|
166
|
+
if ((_routeModules$root = routeModules.root) !== null && _routeModules$root !== void 0 && _routeModules$root.Layout && !isOutsideRemixApp) {
|
|
146
167
|
return children;
|
|
147
168
|
}
|
|
148
169
|
return /*#__PURE__*/React__namespace.createElement("html", {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @remix-run/react v2.
|
|
2
|
+
* @remix-run/react v2.10.0
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -18,6 +18,7 @@ import { deserializeErrors } from './errors.js';
|
|
|
18
18
|
import { createClientRoutesWithHMRRevalidationOptOut, createClientRoutes, shouldHydrateRouteLoader } from './routes.js';
|
|
19
19
|
import { decodeViaTurboStream, getSingleFetchDataStrategy } from './single-fetch.js';
|
|
20
20
|
import invariant from './invariant.js';
|
|
21
|
+
import { initFogOfWar, useFogOFWarDiscovery } from './fog-of-war.js';
|
|
21
22
|
|
|
22
23
|
/* eslint-disable prefer-let/prefer-let */
|
|
23
24
|
|
|
@@ -168,7 +169,7 @@ function RemixBrowser(_props) {
|
|
|
168
169
|
...window.__remixContext.state.loaderData
|
|
169
170
|
}
|
|
170
171
|
};
|
|
171
|
-
let initialMatches = matchRoutes(routes, window.location);
|
|
172
|
+
let initialMatches = matchRoutes(routes, window.location, window.__remixContext.basename);
|
|
172
173
|
if (initialMatches) {
|
|
173
174
|
for (let match of initialMatches) {
|
|
174
175
|
let routeId = match.route.id;
|
|
@@ -194,6 +195,10 @@ function RemixBrowser(_props) {
|
|
|
194
195
|
hydrationData.errors = deserializeErrors(hydrationData.errors);
|
|
195
196
|
}
|
|
196
197
|
}
|
|
198
|
+
let {
|
|
199
|
+
enabled: isFogOfWarEnabled,
|
|
200
|
+
patchRoutesOnMiss
|
|
201
|
+
} = initFogOfWar(window.__remixManifest, window.__remixRouteModules, window.__remixContext.future, window.__remixContext.isSpaMode, window.__remixContext.basename);
|
|
197
202
|
|
|
198
203
|
// We don't use createBrowserRouter here because we need fine-grained control
|
|
199
204
|
// over initialization to support synchronous `clientLoader` flows.
|
|
@@ -212,7 +217,10 @@ function RemixBrowser(_props) {
|
|
|
212
217
|
},
|
|
213
218
|
hydrationData,
|
|
214
219
|
mapRouteProperties: UNSAFE_mapRouteProperties,
|
|
215
|
-
unstable_dataStrategy: window.__remixContext.future.unstable_singleFetch ? getSingleFetchDataStrategy(window.__remixManifest, window.__remixRouteModules) : undefined
|
|
220
|
+
unstable_dataStrategy: window.__remixContext.future.unstable_singleFetch ? getSingleFetchDataStrategy(window.__remixManifest, window.__remixRouteModules) : undefined,
|
|
221
|
+
...(isFogOfWarEnabled ? {
|
|
222
|
+
unstable_patchRoutesOnMiss: patchRoutesOnMiss
|
|
223
|
+
} : {})
|
|
216
224
|
});
|
|
217
225
|
|
|
218
226
|
// We can call initialize() immediately if the router doesn't have any
|
|
@@ -266,6 +274,9 @@ function RemixBrowser(_props) {
|
|
|
266
274
|
});
|
|
267
275
|
}, [location]);
|
|
268
276
|
|
|
277
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
278
|
+
useFogOFWarDiscovery(router, window.__remixManifest, window.__remixRouteModules, window.__remixContext.future, window.__remixContext.isSpaMode);
|
|
279
|
+
|
|
269
280
|
// We need to include a wrapper RemixErrorBoundary here in case the root error
|
|
270
281
|
// boundary also throws and we need to bubble up outside of the router entirely.
|
|
271
282
|
// Then we need a stateful location here so the user can back-button navigate
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @remix-run/react v2.
|
|
2
|
+
* @remix-run/react v2.10.0
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -10,11 +10,12 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import { extends as _extends } from './_virtual/_rollupPluginBabelHelpers.js';
|
|
12
12
|
import * as React from 'react';
|
|
13
|
-
import { useHref, NavLink as NavLink$1, Link as Link$1, matchRoutes, useLocation, Await as Await$1,
|
|
13
|
+
import { useHref, NavLink as NavLink$1, Link as Link$1, matchRoutes, useLocation, Await as Await$1, useAsyncError, useMatches as useMatches$1, useLoaderData as useLoaderData$1, useRouteLoaderData as useRouteLoaderData$1, useActionData as useActionData$1, useFetcher as useFetcher$1, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext } from 'react-router-dom';
|
|
14
14
|
import invariant from './invariant.js';
|
|
15
15
|
import { getKeyedLinksForMatches, isPageLinkDescriptor, getNewMatchesForLinks, getDataLinkHrefs, getModuleLinkHrefs, getKeyedPrefetchLinks } from './links.js';
|
|
16
16
|
import { escapeHtml, createHtml } from './markup.js';
|
|
17
17
|
import { addRevalidationParam, singleFetchUrl } from './single-fetch.js';
|
|
18
|
+
import { isFogOfWarEnabled, getPartialManifest } from './fog-of-war.js';
|
|
18
19
|
|
|
19
20
|
function useDataRouterContext() {
|
|
20
21
|
let context = React.useContext(UNSAFE_DataRouterContext);
|
|
@@ -41,6 +42,13 @@ function useRemixContext() {
|
|
|
41
42
|
////////////////////////////////////////////////////////////////////////////////
|
|
42
43
|
// Public API
|
|
43
44
|
|
|
45
|
+
/**
|
|
46
|
+
* Defines the discovery behavior of the link:
|
|
47
|
+
*
|
|
48
|
+
* - "render": Eagerly discover when the link is rendered (default)
|
|
49
|
+
* - "none": No eager discovery - discover when the link is clicked
|
|
50
|
+
*/
|
|
51
|
+
|
|
44
52
|
/**
|
|
45
53
|
* Defines the prefetching behavior of the link:
|
|
46
54
|
*
|
|
@@ -119,6 +127,7 @@ const ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;
|
|
|
119
127
|
let NavLink = /*#__PURE__*/React.forwardRef(({
|
|
120
128
|
to,
|
|
121
129
|
prefetch = "none",
|
|
130
|
+
discover = "render",
|
|
122
131
|
...props
|
|
123
132
|
}, forwardedRef) => {
|
|
124
133
|
let isAbsolute = typeof to === "string" && ABSOLUTE_URL_REGEX.test(to);
|
|
@@ -126,7 +135,8 @@ let NavLink = /*#__PURE__*/React.forwardRef(({
|
|
|
126
135
|
let [shouldPrefetch, ref, prefetchHandlers] = usePrefetchBehavior(prefetch, props);
|
|
127
136
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(NavLink$1, _extends({}, props, prefetchHandlers, {
|
|
128
137
|
ref: mergeRefs(forwardedRef, ref),
|
|
129
|
-
to: to
|
|
138
|
+
to: to,
|
|
139
|
+
"data-discover": !isAbsolute && discover === "render" ? "true" : undefined
|
|
130
140
|
})), shouldPrefetch && !isAbsolute ? /*#__PURE__*/React.createElement(PrefetchPageLinks, {
|
|
131
141
|
page: href
|
|
132
142
|
}) : null);
|
|
@@ -142,6 +152,7 @@ NavLink.displayName = "NavLink";
|
|
|
142
152
|
let Link = /*#__PURE__*/React.forwardRef(({
|
|
143
153
|
to,
|
|
144
154
|
prefetch = "none",
|
|
155
|
+
discover = "render",
|
|
145
156
|
...props
|
|
146
157
|
}, forwardedRef) => {
|
|
147
158
|
let isAbsolute = typeof to === "string" && ABSOLUTE_URL_REGEX.test(to);
|
|
@@ -149,7 +160,8 @@ let Link = /*#__PURE__*/React.forwardRef(({
|
|
|
149
160
|
let [shouldPrefetch, ref, prefetchHandlers] = usePrefetchBehavior(prefetch, props);
|
|
150
161
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Link$1, _extends({}, props, prefetchHandlers, {
|
|
151
162
|
ref: mergeRefs(forwardedRef, ref),
|
|
152
|
-
to: to
|
|
163
|
+
to: to,
|
|
164
|
+
"data-discover": !isAbsolute && discover === "render" ? "true" : undefined
|
|
153
165
|
})), shouldPrefetch && !isAbsolute ? /*#__PURE__*/React.createElement(PrefetchPageLinks, {
|
|
154
166
|
page: href
|
|
155
167
|
}) : null);
|
|
@@ -472,7 +484,7 @@ function Scripts(props) {
|
|
|
472
484
|
let {
|
|
473
485
|
matches: routerMatches
|
|
474
486
|
} = useDataRouterStateContext();
|
|
475
|
-
let
|
|
487
|
+
let enableFogOfWar = isFogOfWarEnabled(future, isSpaMode);
|
|
476
488
|
|
|
477
489
|
// Let <RemixServer> know that we hydrated and we should render the single
|
|
478
490
|
// fetch streaming scripts
|
|
@@ -567,8 +579,11 @@ function Scripts(props) {
|
|
|
567
579
|
}).join(",\n");
|
|
568
580
|
return `Object.assign(__remixContext.state.loaderData[${JSON.stringify(routeId)}], {${promiseKeyValues}});`;
|
|
569
581
|
}).join("\n") + (deferredScripts.length > 0 ? `__remixContext.a=${deferredScripts.length};` : "");
|
|
570
|
-
let routeModulesScript = !isStatic ? " " : `${(_manifest$hmr = manifest.hmr) !== null && _manifest$hmr !== void 0 && _manifest$hmr.runtime ? `import ${JSON.stringify(manifest.hmr.runtime)};` : ""}import ${JSON.stringify(manifest.url)};
|
|
582
|
+
let routeModulesScript = !isStatic ? " " : `${(_manifest$hmr = manifest.hmr) !== null && _manifest$hmr !== void 0 && _manifest$hmr.runtime ? `import ${JSON.stringify(manifest.hmr.runtime)};` : ""}${enableFogOfWar ? "" : `import ${JSON.stringify(manifest.url)}`};
|
|
571
583
|
${matches.map((match, index) => `import * as route${index} from ${JSON.stringify(manifest.routes[match.route.id].module)};`).join("\n")}
|
|
584
|
+
${enableFogOfWar ?
|
|
585
|
+
// Inline a minimal manifest with the SSR matches
|
|
586
|
+
`window.__remixManifest = ${JSON.stringify(getPartialManifest(manifest, router), null, 2)};` : ""}
|
|
572
587
|
window.__remixRouteModules = {${matches.map((match, index) => `${JSON.stringify(match.route.id)}:route${index}`).join(",")}};
|
|
573
588
|
|
|
574
589
|
import(${JSON.stringify(manifest.entry.module)});`;
|
|
@@ -597,27 +612,16 @@ import(${JSON.stringify(manifest.entry.module)});`;
|
|
|
597
612
|
}));
|
|
598
613
|
}
|
|
599
614
|
}
|
|
600
|
-
|
|
601
|
-
// avoid waterfall when importing the next route module
|
|
602
|
-
let nextMatches = React.useMemo(() => {
|
|
603
|
-
if (navigation.location) {
|
|
604
|
-
// FIXME: can probably use transitionManager `nextMatches`
|
|
605
|
-
let matches = matchRoutes(router.routes, navigation.location, router.basename);
|
|
606
|
-
invariant(matches, `No routes match path "${navigation.location.pathname}"`);
|
|
607
|
-
return matches;
|
|
608
|
-
}
|
|
609
|
-
return [];
|
|
610
|
-
}, [navigation.location, router.routes, router.basename]);
|
|
611
|
-
let routePreloads = matches.concat(nextMatches).map(match => {
|
|
615
|
+
let routePreloads = matches.map(match => {
|
|
612
616
|
let route = manifest.routes[match.route.id];
|
|
613
617
|
return (route.imports || []).concat([route.module]);
|
|
614
618
|
}).flat(1);
|
|
615
619
|
let preloads = isHydrated ? [] : manifest.entry.imports.concat(routePreloads);
|
|
616
|
-
return isHydrated ? null : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("link", {
|
|
620
|
+
return isHydrated ? null : /*#__PURE__*/React.createElement(React.Fragment, null, !enableFogOfWar ? /*#__PURE__*/React.createElement("link", {
|
|
617
621
|
rel: "modulepreload",
|
|
618
622
|
href: manifest.url,
|
|
619
623
|
crossOrigin: props.crossOrigin
|
|
620
|
-
}), /*#__PURE__*/React.createElement("link", {
|
|
624
|
+
}) : null, /*#__PURE__*/React.createElement("link", {
|
|
621
625
|
rel: "modulepreload",
|
|
622
626
|
href: manifest.entry.module,
|
|
623
627
|
crossOrigin: props.crossOrigin
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @remix-run/react v2.
|
|
2
|
+
* @remix-run/react v2.10.0
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -54,7 +54,8 @@ class RemixErrorBoundary extends React.Component {
|
|
|
54
54
|
render() {
|
|
55
55
|
if (this.state.error) {
|
|
56
56
|
return /*#__PURE__*/React.createElement(RemixRootDefaultErrorBoundary, {
|
|
57
|
-
error: this.state.error
|
|
57
|
+
error: this.state.error,
|
|
58
|
+
isOutsideRemixApp: true
|
|
58
59
|
});
|
|
59
60
|
} else {
|
|
60
61
|
return this.props.children;
|
|
@@ -66,7 +67,8 @@ class RemixErrorBoundary extends React.Component {
|
|
|
66
67
|
* When app's don't provide a root level ErrorBoundary, we default to this.
|
|
67
68
|
*/
|
|
68
69
|
function RemixRootDefaultErrorBoundary({
|
|
69
|
-
error
|
|
70
|
+
error,
|
|
71
|
+
isOutsideRemixApp
|
|
70
72
|
}) {
|
|
71
73
|
console.error(error);
|
|
72
74
|
let heyDeveloper = /*#__PURE__*/React.createElement("script", {
|
|
@@ -95,7 +97,8 @@ function RemixRootDefaultErrorBoundary({
|
|
|
95
97
|
errorInstance = new Error(errorString);
|
|
96
98
|
}
|
|
97
99
|
return /*#__PURE__*/React.createElement(BoundaryShell, {
|
|
98
|
-
title: "Application Error!"
|
|
100
|
+
title: "Application Error!",
|
|
101
|
+
isOutsideRemixApp: isOutsideRemixApp
|
|
99
102
|
}, /*#__PURE__*/React.createElement("h1", {
|
|
100
103
|
style: {
|
|
101
104
|
fontSize: "24px"
|
|
@@ -112,13 +115,31 @@ function RemixRootDefaultErrorBoundary({
|
|
|
112
115
|
function BoundaryShell({
|
|
113
116
|
title,
|
|
114
117
|
renderScripts,
|
|
118
|
+
isOutsideRemixApp,
|
|
115
119
|
children
|
|
116
120
|
}) {
|
|
117
121
|
var _routeModules$root;
|
|
118
122
|
let {
|
|
119
123
|
routeModules
|
|
120
124
|
} = useRemixContext();
|
|
121
|
-
|
|
125
|
+
|
|
126
|
+
// Generally speaking, when the root route has a Layout we want to use that
|
|
127
|
+
// as the app shell instead of the default `BoundaryShell` wrapper markup below.
|
|
128
|
+
// This is true for `loader`/`action` errors, most render errors, and
|
|
129
|
+
// `HydrateFallback` scenarios.
|
|
130
|
+
|
|
131
|
+
// However, render errors thrown from the `Layout` present a bit of an issue
|
|
132
|
+
// because if the `Layout` itself throws during the `ErrorBoundary` pass and
|
|
133
|
+
// we bubble outside the `RouterProvider` to the wrapping `RemixErrorBoundary`,
|
|
134
|
+
// by returning only `children` here we'll be trying to append a `<div>` to
|
|
135
|
+
// the `document` and the DOM will throw, putting React into an error/hydration
|
|
136
|
+
// loop.
|
|
137
|
+
|
|
138
|
+
// Instead, if we're ever rendering from the outermost `RemixErrorBoundary`
|
|
139
|
+
// during hydration that wraps `RouterProvider`, then we can't trust the
|
|
140
|
+
// `Layout` and should fallback to the default app shell so we're always
|
|
141
|
+
// returning an `<html>` document.
|
|
142
|
+
if ((_routeModules$root = routeModules.root) !== null && _routeModules$root !== void 0 && _routeModules$root.Layout && !isOutsideRemixApp) {
|
|
122
143
|
return children;
|
|
123
144
|
}
|
|
124
145
|
return /*#__PURE__*/React.createElement("html", {
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @remix-run/react v2.10.0
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) Remix Software Inc.
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE.md file in the root directory of this source tree.
|
|
8
|
+
*
|
|
9
|
+
* @license MIT
|
|
10
|
+
*/
|
|
11
|
+
import { matchRoutes } from '@remix-run/router';
|
|
12
|
+
import * as React from 'react';
|
|
13
|
+
import { createClientRoutes } from './routes.js';
|
|
14
|
+
|
|
15
|
+
// 7.5k to come in under the ~8k limit for most browsers
|
|
16
|
+
// https://stackoverflow.com/a/417184
|
|
17
|
+
const URL_LIMIT = 7680;
|
|
18
|
+
let fogOfWar = null;
|
|
19
|
+
function isFogOfWarEnabled(future, isSpaMode) {
|
|
20
|
+
return future.unstable_fogOfWar === true && !isSpaMode;
|
|
21
|
+
}
|
|
22
|
+
function getPartialManifest(manifest, router) {
|
|
23
|
+
// Start with our matches for this pathname
|
|
24
|
+
let routeIds = new Set(router.state.matches.map(m => m.route.id));
|
|
25
|
+
let segments = router.state.location.pathname.split("/").filter(Boolean);
|
|
26
|
+
let paths = ["/"];
|
|
27
|
+
|
|
28
|
+
// We've already matched to the last segment
|
|
29
|
+
segments.pop();
|
|
30
|
+
|
|
31
|
+
// Traverse each path for our parents and match in case they have pathless/index
|
|
32
|
+
// children we need to include in the initial manifest
|
|
33
|
+
while (segments.length > 0) {
|
|
34
|
+
paths.push(`/${segments.join("/")}`);
|
|
35
|
+
segments.pop();
|
|
36
|
+
}
|
|
37
|
+
paths.forEach(path => {
|
|
38
|
+
let matches = matchRoutes(router.routes, path, router.basename);
|
|
39
|
+
if (matches) {
|
|
40
|
+
matches.forEach(m => routeIds.add(m.route.id));
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
let initialRoutes = [...routeIds].reduce((acc, id) => Object.assign(acc, {
|
|
44
|
+
[id]: manifest.routes[id]
|
|
45
|
+
}), {});
|
|
46
|
+
return {
|
|
47
|
+
...manifest,
|
|
48
|
+
routes: initialRoutes
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function initFogOfWar(manifest, routeModules, future, isSpaMode, basename) {
|
|
52
|
+
if (!isFogOfWarEnabled(future, isSpaMode)) {
|
|
53
|
+
return {
|
|
54
|
+
enabled: false
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
fogOfWar = {
|
|
58
|
+
nextPaths: new Set(),
|
|
59
|
+
knownGoodPaths: new Set(),
|
|
60
|
+
known404Paths: new Set()
|
|
61
|
+
};
|
|
62
|
+
return {
|
|
63
|
+
enabled: true,
|
|
64
|
+
patchRoutesOnMiss: async ({
|
|
65
|
+
path,
|
|
66
|
+
patch
|
|
67
|
+
}) => {
|
|
68
|
+
if (fogOfWar.known404Paths.has(path) || fogOfWar.knownGoodPaths.has(path)) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
await fetchAndApplyManifestPatches([path], fogOfWar, manifest, routeModules, future, isSpaMode, basename, patch);
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
function useFogOFWarDiscovery(router, manifest, routeModules, future, isSpaMode) {
|
|
76
|
+
React.useEffect(() => {
|
|
77
|
+
var _navigator$connection;
|
|
78
|
+
// Don't prefetch if not enabled or if the user has `saveData` enabled
|
|
79
|
+
if (!isFogOfWarEnabled(future, isSpaMode) || ((_navigator$connection = navigator.connection) === null || _navigator$connection === void 0 ? void 0 : _navigator$connection.saveData) === true) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Register a link href for patching
|
|
84
|
+
function registerPath(path) {
|
|
85
|
+
if (!path) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
let url = new URL(path, window.location.origin);
|
|
89
|
+
let {
|
|
90
|
+
knownGoodPaths,
|
|
91
|
+
known404Paths,
|
|
92
|
+
nextPaths
|
|
93
|
+
} = fogOfWar;
|
|
94
|
+
if (knownGoodPaths.has(url.pathname) || known404Paths.has(url.pathname)) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
nextPaths.add(url.pathname);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Fetch patches for all currently rendered links
|
|
101
|
+
async function fetchPatches() {
|
|
102
|
+
let lazyPaths = getFogOfWarPaths(fogOfWar);
|
|
103
|
+
if (lazyPaths.length === 0) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
try {
|
|
107
|
+
await fetchAndApplyManifestPatches(lazyPaths, fogOfWar, manifest, routeModules, future, isSpaMode, router.basename, router.patchRoutes);
|
|
108
|
+
} catch (e) {
|
|
109
|
+
console.error("Failed to fetch manifest patches", e);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Register and fetch patches for all initially-rendered links
|
|
114
|
+
document.body.querySelectorAll("a[data-discover]").forEach(a => registerPath(a.getAttribute("href")));
|
|
115
|
+
fetchPatches();
|
|
116
|
+
|
|
117
|
+
// Setup a MutationObserver to fetch all subsequently rendered links
|
|
118
|
+
let debouncedFetchPatches = debounce(fetchPatches, 100);
|
|
119
|
+
function isElement(node) {
|
|
120
|
+
return node.nodeType === Node.ELEMENT_NODE;
|
|
121
|
+
}
|
|
122
|
+
let observer = new MutationObserver(records => {
|
|
123
|
+
let links = new Set();
|
|
124
|
+
records.forEach(r => {
|
|
125
|
+
[r.target, ...r.addedNodes].forEach(node => {
|
|
126
|
+
if (!isElement(node)) return;
|
|
127
|
+
if (node.tagName === "A" && node.getAttribute("data-discover")) {
|
|
128
|
+
links.add(node);
|
|
129
|
+
} else if (node.tagName !== "A") {
|
|
130
|
+
node.querySelectorAll("a[data-discover]").forEach(el => links.add(el));
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
links.forEach(link => registerPath(link.getAttribute("href")));
|
|
135
|
+
debouncedFetchPatches();
|
|
136
|
+
});
|
|
137
|
+
observer.observe(document.documentElement, {
|
|
138
|
+
subtree: true,
|
|
139
|
+
childList: true,
|
|
140
|
+
attributes: true,
|
|
141
|
+
attributeFilter: ["data-discover", "href"]
|
|
142
|
+
});
|
|
143
|
+
return () => observer.disconnect();
|
|
144
|
+
}, [future, isSpaMode, manifest, routeModules, router]);
|
|
145
|
+
}
|
|
146
|
+
function getFogOfWarPaths(fogOfWar, router) {
|
|
147
|
+
let {
|
|
148
|
+
knownGoodPaths,
|
|
149
|
+
known404Paths,
|
|
150
|
+
nextPaths
|
|
151
|
+
} = fogOfWar;
|
|
152
|
+
return Array.from(nextPaths.keys()).filter(path => {
|
|
153
|
+
if (knownGoodPaths.has(path)) {
|
|
154
|
+
nextPaths.delete(path);
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
157
|
+
if (known404Paths.has(path)) {
|
|
158
|
+
nextPaths.delete(path);
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
return true;
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
async function fetchAndApplyManifestPatches(paths, _fogOfWar, manifest, routeModules, future, isSpaMode, basename, patchRoutes) {
|
|
165
|
+
let {
|
|
166
|
+
nextPaths,
|
|
167
|
+
knownGoodPaths,
|
|
168
|
+
known404Paths
|
|
169
|
+
} = _fogOfWar;
|
|
170
|
+
let manifestPath = `${basename ?? "/"}/__manifest`.replace(/\/+/g, "/");
|
|
171
|
+
let url = new URL(manifestPath, window.location.origin);
|
|
172
|
+
url.searchParams.set("version", manifest.version);
|
|
173
|
+
paths.forEach(path => url.searchParams.append("p", path));
|
|
174
|
+
|
|
175
|
+
// If the URL is nearing the ~8k limit on GET requests, skip this optimization
|
|
176
|
+
// step and just let discovery happen on link click. We also wipe out the
|
|
177
|
+
// nextPaths Set here so we can start filling it with fresh links
|
|
178
|
+
if (url.toString().length > URL_LIMIT) {
|
|
179
|
+
nextPaths.clear();
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
let res = await fetch(url);
|
|
183
|
+
if (!res.ok) {
|
|
184
|
+
throw new Error(`${res.status} ${res.statusText}`);
|
|
185
|
+
} else if (res.status >= 400) {
|
|
186
|
+
throw new Error(await res.text());
|
|
187
|
+
}
|
|
188
|
+
let data = await res.json();
|
|
189
|
+
|
|
190
|
+
// Capture this before we apply the patches to the manifest
|
|
191
|
+
let knownRoutes = new Set(Object.keys(manifest.routes));
|
|
192
|
+
|
|
193
|
+
// Patch routes we don't know about yet into the manifest
|
|
194
|
+
let patches = Object.values(data.patches).reduce((acc, route) => !knownRoutes.has(route.id) ? Object.assign(acc, {
|
|
195
|
+
[route.id]: route
|
|
196
|
+
}) : acc, {});
|
|
197
|
+
Object.assign(manifest.routes, patches);
|
|
198
|
+
|
|
199
|
+
// Track legit 404s so we don't try to fetch them again
|
|
200
|
+
data.notFoundPaths.forEach(p => known404Paths.add(p));
|
|
201
|
+
|
|
202
|
+
// Track matched paths so we don't have to fetch them again
|
|
203
|
+
paths.forEach(p => knownGoodPaths.add(p));
|
|
204
|
+
|
|
205
|
+
// Identify all parentIds for which we have new children to add and patch
|
|
206
|
+
// in their new children
|
|
207
|
+
let parentIds = new Set();
|
|
208
|
+
Object.values(patches).forEach(patch => {
|
|
209
|
+
if (!patch.parentId || !patches[patch.parentId]) {
|
|
210
|
+
parentIds.add(patch.parentId);
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
parentIds.forEach(parentId => patchRoutes(parentId || null, createClientRoutes(patches, routeModules, null, future, isSpaMode, parentId)));
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
// Thanks Josh!
|
|
217
|
+
// https://www.joshwcomeau.com/snippets/javascript/debounce/
|
|
218
|
+
function debounce(callback, wait) {
|
|
219
|
+
let timeoutId;
|
|
220
|
+
return (...args) => {
|
|
221
|
+
window.clearTimeout(timeoutId);
|
|
222
|
+
timeoutId = window.setTimeout(() => callback(...args), wait);
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
export { fetchAndApplyManifestPatches, getPartialManifest, initFogOfWar, isFogOfWarEnabled, useFogOFWarDiscovery };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @remix-run/react v2.
|
|
2
|
+
* @remix-run/react v2.10.0
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -169,7 +169,7 @@ function getNewMatchesForLinks(page, nextMatches, currentMatches, manifest, loca
|
|
|
169
169
|
}
|
|
170
170
|
function getDataLinkHrefs(page, matches, manifest) {
|
|
171
171
|
let path = parsePathPatch(page);
|
|
172
|
-
return dedupeHrefs(matches.filter(match => manifest.routes[match.route.id].hasLoader).map(match => {
|
|
172
|
+
return dedupeHrefs(matches.filter(match => manifest.routes[match.route.id].hasLoader && !manifest.routes[match.route.id].hasClientLoader).map(match => {
|
|
173
173
|
let {
|
|
174
174
|
pathname,
|
|
175
175
|
search
|