@epic-web/workshop-app 5.6.0 → 5.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/client/assets/{_-hAKYb2AG.js → _-CjjFMNGC.js} +2 -2
- package/build/client/assets/{_-hAKYb2AG.js.map → _-CjjFMNGC.js.map} +1 -1
- package/build/client/assets/_exerciseNumber-CqkGzsgV.js +2 -0
- package/build/client/assets/{_exerciseNumber-PTdG9GGB.js.map → _exerciseNumber-CqkGzsgV.js.map} +1 -1
- package/build/client/assets/{_exerciseNumber_._stepNumber-03erOIGo.js → _exerciseNumber_._stepNumber-BNWGPi9m.js} +2 -2
- package/build/client/assets/{_exerciseNumber_._stepNumber-03erOIGo.js.map → _exerciseNumber_._stepNumber-BNWGPi9m.js.map} +1 -1
- package/build/client/assets/_exerciseNumber_.finished-CdNhLhKg.js +2 -0
- package/build/client/assets/{_exerciseNumber_.finished-DQg4F1NL.js.map → _exerciseNumber_.finished-CdNhLhKg.js.map} +1 -1
- package/build/client/assets/_layout-BMa5nZcJ.js +2 -0
- package/build/client/assets/{_layout-DHoH74NH.js.map → _layout-BMa5nZcJ.js.map} +1 -1
- package/build/client/assets/{_layout-B4JGpA3A.js → _layout-CwTidn3v.js} +2 -2
- package/build/client/assets/{_layout-B4JGpA3A.js.map → _layout-CwTidn3v.js.map} +1 -1
- package/build/client/assets/{_layout-BJbMl6SJ.js → _layout-DV29dlKr.js} +2 -2
- package/build/client/assets/{_layout-BJbMl6SJ.js.map → _layout-DV29dlKr.js.map} +1 -1
- package/build/client/assets/{_layout-Bu0lel3p.js → _layout-Muw3ERYT.js} +3 -3
- package/build/client/assets/{_layout-Bu0lel3p.js.map → _layout-Muw3ERYT.js.map} +1 -1
- package/build/client/assets/{accordion-DLg7gJkp.js → accordion-C-sW--in.js} +2 -2
- package/build/client/assets/{accordion-DLg7gJkp.js.map → accordion-C-sW--in.js.map} +1 -1
- package/build/client/assets/account-Cc968svU.js +2 -0
- package/build/client/assets/account-Cc968svU.js.map +1 -0
- package/build/client/assets/app-BOqXK9hi.js +2 -0
- package/build/client/assets/{app-DJDjmdlu.js.map → app-BOqXK9hi.js.map} +1 -1
- package/build/client/assets/{app-b7uXHF5m.css → app-C3e6tFRf.css} +1 -1
- package/build/client/assets/{button-39zQyNX6.js → button-BS845Tjo.js} +2 -2
- package/build/client/assets/{button-39zQyNX6.js.map → button-BS845Tjo.js.map} +1 -1
- package/build/client/assets/{components-DUNtf72c.js → components-DrvY4pal.js} +4 -4
- package/build/client/assets/{components-DUNtf72c.js.map → components-DrvY4pal.js.map} +1 -1
- package/build/client/assets/diff-D0e_PrB7.js +2 -0
- package/build/client/assets/{diff-B3oaU_KB.js.map → diff-D0e_PrB7.js.map} +1 -1
- package/build/client/assets/{diff-BNCREJvf.js → diff-DtvfyjPI.js} +2 -2
- package/build/client/assets/{diff-BNCREJvf.js.map → diff-DtvfyjPI.js.map} +1 -1
- package/build/client/assets/{discord-CEOqKs_c.js → discord-BfP_Rny5.js} +2 -2
- package/build/client/assets/{discord-CEOqKs_c.js.map → discord-BfP_Rny5.js.map} +1 -1
- package/build/client/assets/discord-DILzAZN8.js +2 -0
- package/build/client/assets/discord-DILzAZN8.js.map +1 -0
- package/build/client/assets/{entry.client-CrlHhRMR.js → entry.client-CQusg5Iz.js} +2 -2
- package/build/client/assets/{entry.client-CrlHhRMR.js.map → entry.client-CQusg5Iz.js.map} +1 -1
- package/build/client/assets/epic-video-qHKPWPt1.js +3053 -0
- package/build/client/assets/epic-video-qHKPWPt1.js.map +1 -0
- package/build/client/assets/error-boundary-Beul7lrT.js +2 -0
- package/build/client/assets/{error-boundary-3zItlMUO.js.map → error-boundary-Beul7lrT.js.map} +1 -1
- package/build/client/assets/finished-DUKfL220.js +2 -0
- package/build/client/assets/{finished-rUzUjnEm.js.map → finished-DUKfL220.js.map} +1 -1
- package/build/client/assets/{index-CV3nxGFp.js → index-BHwOR8R1.js} +2 -2
- package/build/client/assets/{index-CV3nxGFp.js.map → index-BHwOR8R1.js.map} +1 -1
- package/build/client/assets/index-BOQWfIQC.js +36 -0
- package/build/client/assets/index-BOQWfIQC.js.map +1 -0
- package/build/client/assets/{index-DFqQCjCw.js → index-BPegC-d3.js} +2 -2
- package/build/client/assets/{index-DFqQCjCw.js.map → index-BPegC-d3.js.map} +1 -1
- package/build/client/assets/{index-LjRZeU7x.js → index-CB8bjE90.js} +2 -2
- package/build/client/assets/{index-LjRZeU7x.js.map → index-CB8bjE90.js.map} +1 -1
- package/build/client/assets/{index-C_B1-9rF.js → index-CGzylDPY.js} +2 -2
- package/build/client/assets/{index-C_B1-9rF.js.map → index-CGzylDPY.js.map} +1 -1
- package/build/client/assets/index-DbCT6N5p.js +2 -0
- package/build/client/assets/{index-DE-jwnOP.js.map → index-DbCT6N5p.js.map} +1 -1
- package/build/client/assets/{index-DDqzbGM2.js → index-cZQeGrqL.js} +2 -2
- package/build/client/assets/{index-DDqzbGM2.js.map → index-cZQeGrqL.js.map} +1 -1
- package/build/client/assets/{index-CLNXC84j.js → index-egcHQOpF.js} +2 -2
- package/build/client/assets/{index-CLNXC84j.js.map → index-egcHQOpF.js.map} +1 -1
- package/build/client/assets/index-oED4uZLa.js +2 -0
- package/build/client/assets/{index-mivnjq36.js.map → index-oED4uZLa.js.map} +1 -1
- package/build/client/assets/{loading-DW_I206H.js → loading-C2wPVvQw.js} +2 -2
- package/build/client/assets/{loading-DW_I206H.js.map → loading-C2wPVvQw.js.map} +1 -1
- package/build/client/assets/login-DoU7gifi.js +2 -0
- package/build/client/assets/{login-CdNej0Z7.js.map → login-DoU7gifi.js.map} +1 -1
- package/build/client/assets/manifest-3096dc61.js +1 -0
- package/build/client/assets/mdx-CsS30JUo.js +2 -0
- package/build/client/assets/{mdx-C9dqA6IZ.js.map → mdx-CsS30JUo.js.map} +1 -1
- package/build/client/assets/{misc-DIdEn_jt.js → misc-BtjCSy-T.js} +2 -2
- package/build/client/assets/{misc-DIdEn_jt.js.map → misc-BtjCSy-T.js.map} +1 -1
- package/build/client/assets/{nav-chevrons-B3SvZV8B.js → nav-chevrons-2hLTwAZb.js} +2 -2
- package/build/client/assets/{nav-chevrons-B3SvZV8B.js.map → nav-chevrons-2hLTwAZb.js.map} +1 -1
- package/build/client/assets/onboarding-Cu6eD7KS.js +2 -0
- package/build/client/assets/{onboarding-CC9zz4rl.js.map → onboarding-Cu6eD7KS.js.map} +1 -1
- package/build/client/assets/{pe-D5h19vSo.js → pe-DXT2FOp1.js} +2 -2
- package/build/client/assets/{pe-D5h19vSo.js.map → pe-DXT2FOp1.js.map} +1 -1
- package/build/client/assets/preferences-br0VSK51.js +2 -0
- package/build/client/assets/preferences-br0VSK51.js.map +1 -0
- package/build/client/assets/{presence-D1DPz__2.js → presence-CrYBA3ta.js} +3 -3
- package/build/client/assets/{presence-D1DPz__2.js.map → presence-CrYBA3ta.js.map} +1 -1
- package/build/client/assets/preview-C2y4Z0qO.js +2 -0
- package/build/client/assets/{preview-BEtmdi0E.js.map → preview-C2y4Z0qO.js.map} +1 -1
- package/build/client/assets/{product-CYOFfeJM.js → product-gqq_YQBW.js} +2 -2
- package/build/client/assets/{product-CYOFfeJM.js.map → product-gqq_YQBW.js.map} +1 -1
- package/build/client/assets/{progress-D6SP0Gec.js → progress-D-HsH4j3.js} +2 -2
- package/build/client/assets/{progress-D6SP0Gec.js.map → progress-D-HsH4j3.js.map} +1 -1
- package/build/client/assets/{progress-bar-CBDBzRQ2.js → progress-bar-CTPCfvDi.js} +2 -2
- package/build/client/assets/{progress-bar-CBDBzRQ2.js.map → progress-bar-CTPCfvDi.js.map} +1 -1
- package/build/client/assets/revalidation-ws-DYaJNyw1.js +2 -0
- package/build/client/assets/{revalidation-ws-DK5QOPlL.js.map → revalidation-ws-DYaJNyw1.js.map} +1 -1
- package/build/client/assets/{root-Bg-hxaOK.js → root-C1pLsthM.js} +3 -3
- package/build/client/assets/{root-Bg-hxaOK.js.map → root-C1pLsthM.js.map} +1 -1
- package/build/client/assets/{set-playground-CMoUFgkO.js → set-playground-DQzAhC0t.js} +2 -2
- package/build/client/assets/{set-playground-CMoUFgkO.js.map → set-playground-DQzAhC0t.js.map} +1 -1
- package/build/client/assets/{support-CPzYlWkd.js → support-lgEG2piy.js} +2 -2
- package/build/client/assets/{support-CPzYlWkd.js.map → support-lgEG2piy.js.map} +1 -1
- package/build/client/assets/tailwind-CRGTilRc.css +1 -0
- package/build/client/assets/test-CDWRwwO-.js +2 -0
- package/build/client/assets/{test-C8wkLh9a.js.map → test-CDWRwwO-.js.map} +1 -1
- package/build/client/assets/{tests-CiM4RPOf.js → tests-LWW8wCYZ.js} +3 -3
- package/build/client/assets/{tests-CiM4RPOf.js.map → tests-LWW8wCYZ.js.map} +1 -1
- package/build/client/assets/{tooltip-BoVikCa-.js → tooltip-Bp9KHnLy.js} +2 -2
- package/build/client/assets/{tooltip-BoVikCa-.js.map → tooltip-Bp9KHnLy.js.map} +1 -1
- package/build/client/assets/{use-event-source-M87p8Tme.js → use-event-source-AZJtQsFX.js} +2 -2
- package/build/client/assets/{use-event-source-M87p8Tme.js.map → use-event-source-AZJtQsFX.js.map} +1 -1
- package/build/client/assets/{user-CbbIYEs8.js → user-C0j04V55.js} +2 -2
- package/build/client/assets/{user-CbbIYEs8.js.map → user-C0j04V55.js.map} +1 -1
- package/build/client/assets/{version-CIF3cX3N.js → version-D61Qvt0X.js} +2 -2
- package/build/client/assets/{version-CIF3cX3N.js.map → version-D61Qvt0X.js.map} +1 -1
- package/build/client/assets/{workshop-config-C5sYl312.js → workshop-config-oL_FWDKq.js} +2 -2
- package/build/client/assets/{workshop-config-C5sYl312.js.map → workshop-config-oL_FWDKq.js.map} +1 -1
- package/build/server/index.js +517 -445
- package/build/server/index.js.map +1 -1
- package/package.json +3 -3
- package/build/client/assets/_exerciseNumber-PTdG9GGB.js +0 -2
- package/build/client/assets/_exerciseNumber_.finished-DQg4F1NL.js +0 -2
- package/build/client/assets/_layout-DHoH74NH.js +0 -2
- package/build/client/assets/account-DLDPrc9J.js +0 -2
- package/build/client/assets/account-DLDPrc9J.js.map +0 -1
- package/build/client/assets/app-DJDjmdlu.js +0 -2
- package/build/client/assets/diff-B3oaU_KB.js +0 -2
- package/build/client/assets/discord-CpIgvYus.js +0 -2
- package/build/client/assets/discord-CpIgvYus.js.map +0 -1
- package/build/client/assets/epic-video-D8ex9vao.js +0 -2
- package/build/client/assets/epic-video-D8ex9vao.js.map +0 -1
- package/build/client/assets/error-boundary-3zItlMUO.js +0 -2
- package/build/client/assets/finished-rUzUjnEm.js +0 -2
- package/build/client/assets/index-BajUQsFT.js +0 -3053
- package/build/client/assets/index-BajUQsFT.js.map +0 -1
- package/build/client/assets/index-DE-jwnOP.js +0 -2
- package/build/client/assets/index-DH1w3QmP.js +0 -36
- package/build/client/assets/index-DH1w3QmP.js.map +0 -1
- package/build/client/assets/index-mivnjq36.js +0 -2
- package/build/client/assets/login-CdNej0Z7.js +0 -2
- package/build/client/assets/manifest-62ea49c4.js +0 -1
- package/build/client/assets/mdx-C9dqA6IZ.js +0 -2
- package/build/client/assets/onboarding-CC9zz4rl.js +0 -2
- package/build/client/assets/preview-BEtmdi0E.js +0 -2
- package/build/client/assets/request-info-vBkaf3Rk.js +0 -2
- package/build/client/assets/request-info-vBkaf3Rk.js.map +0 -1
- package/build/client/assets/revalidation-ws-DK5QOPlL.js +0 -2
- package/build/client/assets/tailwind-B5AAMtGC.css +0 -1
- package/build/client/assets/test-C8wkLh9a.js +0 -2
- /package/build/client/assets/{index-DUnRvy1A.css → epic-video-DUnRvy1A.css} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as l,j as t,e as xe}from"./index-C_B1-9rF.js";import{h as pe,u as O,n as ve,P,f as N,e as K,d as he,g as ge,S as je}from"./tooltip-BoVikCa-.js";import{f as be,u as B}from"./index-DFqQCjCw.js";import{u as $,I as E,c as we}from"./misc-DIdEn_jt.js";import{D as Ne}from"./diff-BNCREJvf.js";import{G as ye}from"./error-boundary-3zItlMUO.js";import{L as Ce}from"./loading-DW_I206H.js";import{D as Te,u as Pe}from"./discord-CEOqKs_c.js";import{u as V,A as Ee,L as H,e as Ie}from"./components-DUNtf72c.js";import{J as Se}from"./index-LjRZeU7x.js";import{S as De}from"./set-playground-CMoUFgkO.js";import{P as Re,a as Fe}from"./tests-CiM4RPOf.js";import{P as F}from"./preview-BEtmdi0E.js";import"./index-CV3nxGFp.js";import"./accordion-DLg7gJkp.js";import"./mdx-C9dqA6IZ.js";import"./epic-video-D8ex9vao.js";import"./index-DH1w3QmP.js";import"./request-info-vBkaf3Rk.js";import"./pe-D5h19vSo.js";import"./index-BajUQsFT.js";import"./user-CbbIYEs8.js";import"./workshop-config-C5sYl312.js";import"./progress-bar-CBDBzRQ2.js";import"./revalidation-ws-DK5QOPlL.js";import"./use-event-source-M87p8Tme.js";import"./button-39zQyNX6.js";function _e(e,n=[]){let r=[];function s(p,o){const c=l.createContext(o),m=r.length;r=[...r,o];function d(u){const{scope:x,children:w,...f}=u,g=(x==null?void 0:x[e][m])||c,a=l.useMemo(()=>f,Object.values(f));return t.jsx(g.Provider,{value:a,children:w})}function v(u,x){const w=(x==null?void 0:x[e][m])||c,f=l.useContext(w);if(f)return f;if(o!==void 0)return o;throw new Error(`\`${u}\` must be used within \`${p}\``)}return d.displayName=p+"Provider",[d,v]}const i=()=>{const p=r.map(o=>l.createContext(o));return function(c){const m=(c==null?void 0:c[e])||p;return l.useMemo(()=>({[`__scope${e}`]:{...c,[e]:m}}),[c,m])}};return i.scopeName=e,[s,Ae(i,...n)]}function Ae(...e){const n=e[0];if(e.length===1)return n;const r=()=>{const s=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(p){const o=s.reduce((c,{useScope:m,scopeName:d})=>{const u=m(p)[`__scope${d}`];return{...c,...u}},{});return l.useMemo(()=>({[`__scope${n.scopeName}`]:o}),[o])}};return r.scopeName=n.scopeName,r}var R="rovingFocusGroup.onEntryFocus",ke={bubbles:!1,cancelable:!0},I="RovingFocusGroup",[_,Y,Le]=be(I),[Ue,z]=_e(I,[Le]),[Me,Ge]=Ue(I),J=l.forwardRef((e,n)=>t.jsx(_.Provider,{scope:e.__scopeRovingFocusGroup,children:t.jsx(_.Slot,{scope:e.__scopeRovingFocusGroup,children:t.jsx(Oe,{...e,ref:n})})}));J.displayName=I;var Oe=l.forwardRef((e,n)=>{const{__scopeRovingFocusGroup:r,orientation:s,loop:i=!1,dir:p,currentTabStopId:o,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:m,onEntryFocus:d,preventScrollOnEntryFocus:v=!1,...u}=e,x=l.useRef(null),w=pe(n,x),f=B(p),[g=null,a]=O({prop:o,defaultProp:c,onChange:m}),[h,b]=l.useState(!1),C=ve(d),le=Y(r),S=l.useRef(!1),[ce,U]=l.useState(0);return l.useEffect(()=>{const j=x.current;if(j)return j.addEventListener(R,C),()=>j.removeEventListener(R,C)},[C]),t.jsx(Me,{scope:r,orientation:s,dir:f,loop:i,currentTabStopId:g,onItemFocus:l.useCallback(j=>a(j),[a]),onItemShiftTab:l.useCallback(()=>b(!0),[]),onFocusableItemAdd:l.useCallback(()=>U(j=>j+1),[]),onFocusableItemRemove:l.useCallback(()=>U(j=>j-1),[]),children:t.jsx(P.div,{tabIndex:h||ce===0?-1:0,"data-orientation":s,...u,ref:w,style:{outline:"none",...e.style},onMouseDown:N(e.onMouseDown,()=>{S.current=!0}),onFocus:N(e.onFocus,j=>{const ue=!S.current;if(j.target===j.currentTarget&&ue&&!h){const M=new CustomEvent(R,ke);if(j.currentTarget.dispatchEvent(M),!M.defaultPrevented){const D=le().filter(y=>y.focusable),de=D.find(y=>y.active),fe=D.find(y=>y.id===g),me=[de,fe,...D].filter(Boolean).map(y=>y.ref.current);Q(me,v)}}S.current=!1}),onBlur:N(e.onBlur,()=>b(!1))})})}),W="RovingFocusGroupItem",q=l.forwardRef((e,n)=>{const{__scopeRovingFocusGroup:r,focusable:s=!0,active:i=!1,tabStopId:p,...o}=e,c=K(),m=p||c,d=Ge(W,r),v=d.currentTabStopId===m,u=Y(r),{onFocusableItemAdd:x,onFocusableItemRemove:w}=d;return l.useEffect(()=>{if(s)return x(),()=>w()},[s,x,w]),t.jsx(_.ItemSlot,{scope:r,id:m,focusable:s,active:i,children:t.jsx(P.span,{tabIndex:v?0:-1,"data-orientation":d.orientation,...o,ref:n,onMouseDown:N(e.onMouseDown,f=>{s?d.onItemFocus(m):f.preventDefault()}),onFocus:N(e.onFocus,()=>d.onItemFocus(m)),onKeyDown:N(e.onKeyDown,f=>{if(f.key==="Tab"&&f.shiftKey){d.onItemShiftTab();return}if(f.target!==f.currentTarget)return;const g=$e(f,d.orientation,d.dir);if(g!==void 0){if(f.metaKey||f.ctrlKey||f.altKey||f.shiftKey)return;f.preventDefault();let h=u().filter(b=>b.focusable).map(b=>b.ref.current);if(g==="last")h.reverse();else if(g==="prev"||g==="next"){g==="prev"&&h.reverse();const b=h.indexOf(f.currentTarget);h=d.loop?Ve(h,b+1):h.slice(b+1)}setTimeout(()=>Q(h))}})})})});q.displayName=W;var Ke={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Be(e,n){return n!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function $e(e,n,r){const s=Be(e.key,r);if(!(n==="vertical"&&["ArrowLeft","ArrowRight"].includes(s))&&!(n==="horizontal"&&["ArrowUp","ArrowDown"].includes(s)))return Ke[s]}function Q(e,n=!1){const r=document.activeElement;for(const s of e)if(s===r||(s.focus({preventScroll:n}),document.activeElement!==r))return}function Ve(e,n){return e.map((r,s)=>e[(n+s)%e.length])}var He=J,Ye=q,k="Tabs",[ze,Ft]=he(k,[z]),X=z(),[Je,L]=ze(k),Z=l.forwardRef((e,n)=>{const{__scopeTabs:r,value:s,onValueChange:i,defaultValue:p,orientation:o="horizontal",dir:c,activationMode:m="automatic",...d}=e,v=B(c),[u,x]=O({prop:s,onChange:i,defaultProp:p});return t.jsx(Je,{scope:r,baseId:K(),value:u,onValueChange:x,orientation:o,dir:v,activationMode:m,children:t.jsx(P.div,{dir:v,"data-orientation":o,...d,ref:n})})});Z.displayName=k;var ee="TabsList",te=l.forwardRef((e,n)=>{const{__scopeTabs:r,loop:s=!0,...i}=e,p=L(ee,r),o=X(r);return t.jsx(He,{asChild:!0,...o,orientation:p.orientation,dir:p.dir,loop:s,children:t.jsx(P.div,{role:"tablist","aria-orientation":p.orientation,...i,ref:n})})});te.displayName=ee;var re="TabsTrigger",se=l.forwardRef((e,n)=>{const{__scopeTabs:r,value:s,disabled:i=!1,...p}=e,o=L(re,r),c=X(r),m=ae(o.baseId,s),d=ie(o.baseId,s),v=s===o.value;return t.jsx(Ye,{asChild:!0,...c,focusable:!i,active:v,children:t.jsx(P.button,{type:"button",role:"tab","aria-selected":v,"aria-controls":d,"data-state":v?"active":"inactive","data-disabled":i?"":void 0,disabled:i,id:m,...p,ref:n,onMouseDown:N(e.onMouseDown,u=>{!i&&u.button===0&&u.ctrlKey===!1?o.onValueChange(s):u.preventDefault()}),onKeyDown:N(e.onKeyDown,u=>{[" ","Enter"].includes(u.key)&&o.onValueChange(s)}),onFocus:N(e.onFocus,()=>{const u=o.activationMode!=="manual";!v&&!i&&u&&o.onValueChange(s)})})})});se.displayName=re;var ne="TabsContent",oe=l.forwardRef((e,n)=>{const{__scopeTabs:r,value:s,forceMount:i,children:p,...o}=e,c=L(ne,r),m=ae(c.baseId,s),d=ie(c.baseId,s),v=s===c.value,u=l.useRef(v);return l.useEffect(()=>{const x=requestAnimationFrame(()=>u.current=!1);return()=>cancelAnimationFrame(x)},[]),t.jsx(ge,{present:i||v,children:({present:x})=>t.jsx(P.div,{"data-state":v?"active":"inactive","data-orientation":c.orientation,role:"tabpanel","aria-labelledby":m,hidden:!x,id:d,tabIndex:0,...o,ref:n,style:{...e.style,animationDuration:u.current?"0s":void 0},children:x&&p})})});oe.displayName=ne;function ae(e,n){return`${e}-trigger-${n}`}function ie(e,n){return`${e}-content-${n}`}var We=Z,qe=te,Qe=se,T=oe;function Xe(){return t.jsxs("div",{className:"flex h-full w-full flex-col gap-4 pt-4",children:[t.jsx("div",{className:"text-center",children:t.jsx(Te,{})}),t.jsx("div",{className:"flex-1 overflow-y-scroll bg-accent pb-4 scrollbar-thin scrollbar-thumb-scrollbar",children:t.jsx(Ze,{})})]})}function Ze(){const e=V(),n=Pe(),r=$();return t.jsxs("div",{className:"flex h-full flex-col items-center justify-between",children:[t.jsx(l.Suspense,{fallback:t.jsx("div",{className:"flex h-full w-full flex-col items-center justify-center",children:t.jsx(Ce,{children:"Loading Discord Posts"})}),children:t.jsx(Ee,{resolve:e.discordPostsPromise,errorElement:t.jsx("div",{className:"text-red-500",children:"There was a problem loading the discord posts"}),children:s=>t.jsx("ul",{className:"flex w-full flex-col gap-4 p-3 xl:p-12",children:s.map(i=>t.jsx("li",{className:"rounded-xl border bg-background transition-all duration-200 focus-within:-translate-y-1 focus-within:shadow-lg hover:-translate-y-1 hover:shadow-lg",children:t.jsx(et,{thread:i})},i.id))})})}),t.jsx("div",{children:t.jsxs(H,{to:r&&!n.includes("oauth")?n.replace(/^https/,"discord"):n,target:n.includes("oauth")?void 0:"_blank",rel:"noreferrer noopener",onClick:r?s=>{s.preventDefault(),window.open(s.currentTarget.href,"_blank","noreferrer noopener")}:void 0,className:"flex items-center gap-2 p-2 text-xl hover:underline",children:["Create Post ",t.jsx(E,{name:"ExternalLink"})]})})]})}function et({thread:e}){const n=e.reactions.filter(r=>r.count);return t.jsx("div",{children:t.jsxs("div",{className:"flex flex-col gap-2 p-4",children:[t.jsxs("div",{className:"flex gap-4",children:[t.jsxs("div",{className:"flex flex-col gap-1",children:[e.tags.length?t.jsx("div",{className:"flex gap-2",children:e.tags.map(r=>t.jsxs("div",{className:"flex items-center justify-center gap-1 rounded-full bg-accent px-2 py-1 text-sm",children:[t.jsx("span",{className:"h-3 w-3 leading-3",children:t.jsx(G,{name:r.emojiName,url:r.emojiUrl})}),t.jsx("span",{children:r.name})]},r.name))}):null,t.jsx("strong",{className:"text-xl font-bold",children:e.name}),t.jsxs("div",{className:"flex items-start gap-1",children:[t.jsxs("div",{className:"flex items-center gap-1",children:[e.authorAvatarUrl?t.jsx("img",{src:e.authorAvatarUrl,alt:"",className:"h-6 w-6 rounded-full"}):null,t.jsxs("span",{children:[t.jsx("span",{className:"font-bold",style:e.authorHexAccentColor?{color:e.authorHexAccentColor}:{},children:e.authorDisplayName}),":"," "]})]}),t.jsx("span",{className:"flex-1 overflow-ellipsis text-muted-foreground",children:e.messagePreview})]})]}),e.previewImageUrl?t.jsx("img",{src:e.previewImageUrl,alt:"",className:"h-28 w-28 rounded-lg object-cover"}):null]}),t.jsxs("div",{className:"flex justify-between",children:[t.jsxs("div",{className:"flex items-center gap-3",children:[t.jsx("span",{children:n.length?t.jsx("ul",{className:"flex items-center gap-2",children:n.map((r,s)=>t.jsxs("li",{className:"flex items-center gap-1 rounded-md border border-blue-600 bg-blue-500/20 px-[5px] py-[0.5px] text-sm",children:[t.jsx("span",{className:"h-3 w-3 leading-3",children:t.jsx(G,{name:r.emojiName,url:r.emojiUrl})}),t.jsx("span",{children:r.count})]},s))}):null}),t.jsxs("span",{className:"flex items-center gap-1",children:[t.jsxs("span",{className:"inline-flex items-center gap-1",children:[t.jsx(E,{name:"Chat"})," ",e.messageCount]}),` · ${e.lastUpdatedDisplay}`]})]}),t.jsxs("span",{className:"flex items-center gap-4",children:[t.jsx("a",{href:e.link.replace(/^https/,"discord"),children:t.jsx(E,{name:"Discord"})}),t.jsx("a",{href:e.link,target:"_blank",rel:"noreferrer noopener",children:t.jsx(E,{name:"ExternalLink"})})]})]})]})})}function G({name:e,url:n}){return n?t.jsx("img",{src:n,alt:e,className:"h-full w-full"}):e||null}function tt({appInfo:e,inBrowserBrowserRef:n,problemAppName:r,allApps:s,isUpToDate:i}){return t.jsx(Re,{playgroundAppName:e==null?void 0:e.appName,problemAppName:r,allApps:s,isUpToDate:i,children:(e==null?void 0:e.dev.type)==="none"?t.jsxs("div",{children:[t.jsx("div",{className:"text-foreground-secondary flex h-full items-center justify-center text-2xl",children:"Non-UI playground"}),t.jsx("div",{children:t.jsxs("div",{className:"text-foreground-secondary flex flex-wrap gap-1 text-center",children:["Navigate to"," ",t.jsx(je,{content:e.fullPath,children:t.jsx("span",{className:"underline",onClick:()=>{navigator.clipboard.writeText(e.fullPath),Se.success("Copied playground path to clipboard")},children:"the playground directory"})})," ","in your editor and terminal to work on this exercise!"]})})]}):e?t.jsx(F,{id:e.appName,appInfo:e,inBrowserBrowserRef:n}):t.jsxs("div",{className:"flex flex-col justify-center gap-2",children:[t.jsx("p",{children:"Please set the playground first"}),r?t.jsx(De,{appName:r}):null]})})}const A=["playground","problem","solution","tests","diff","chat"],rt=e=>!!(e&&A.includes(e));function st(e,n,r){const s=new URLSearchParams(e);return r===null?s.delete(n):s.set(n,r),s}function _t(){var v,u,x,w,f,g;const e=V(),[n]=Ie(),r=n.get("preview"),s=l.useRef(null),i=$(),p=xe();function o(a){var h,b,C;if(a==="tests")return ENV.EPICSHOP_DEPLOYED||!e.playground||e.playground.test.type==="none";if(a==="problem"||a==="solution"){if(((h=e[a])==null?void 0:h.dev.type)==="none")return!0;if(ENV.EPICSHOP_DEPLOYED)return((b=e[a])==null?void 0:b.dev.type)!=="browser"&&!((C=e[a])!=null&&C.stackBlitzUrl)}return!!(a==="playground"&&ENV.EPICSHOP_DEPLOYED)}const c=rt(r)?r:A.find(a=>!o(a)),m=`/diff?${new URLSearchParams({app1:((v=e.problem)==null?void 0:v.name)??"",app2:((u=e.solution)==null?void 0:u.name)??""})}`;function d(a){a.altKey&&!a.ctrlKey&&!a.shiftKey&&!a.metaKey&&(a.preventDefault(),p(m))}return t.jsxs(We,{className:"relative flex flex-col overflow-y-auto sm:col-span-1 sm:row-span-1",value:c,children:[t.jsx(qe,{className:"h-14 min-h-14 overflow-x-hidden border-b scrollbar-thin scrollbar-thumb-scrollbar",children:A.map(a=>{const h=o(a);return t.jsx(Qe,{value:a,hidden:h,asChild:!0,children:t.jsx(H,{id:`${a}-tab`,className:we("clip-path-button relative h-full px-6 py-4 font-mono text-sm uppercase outline-none radix-state-active:z-10 radix-state-active:bg-foreground radix-state-active:text-background radix-state-active:hover:bg-foreground/80 radix-state-active:hover:text-background/80 radix-state-inactive:hover:bg-foreground/20 radix-state-inactive:hover:text-foreground/80 focus:bg-foreground/80 focus:text-background/80",h?"hidden":"inline-block"),preventScrollReset:!0,prefetch:"intent",onClick:d,to:a==="diff"&&i?m:`?${st(n,"preview",a==="playground"?null:a)}`,children:a})},a)})}),t.jsxs("div",{className:"relative z-10 flex min-h-96 flex-grow flex-col overflow-y-auto",children:[t.jsx(T,{value:"playground",className:"flex w-full flex-grow items-center justify-center self-start radix-state-inactive:hidden",children:t.jsx(tt,{appInfo:e.playground,problemAppName:(x=e.problem)==null?void 0:x.name,inBrowserBrowserRef:s,allApps:e.allApps,isUpToDate:((w=e.playground)==null?void 0:w.isUpToDate)??!1})}),t.jsx(T,{value:"problem",className:"flex w-full flex-grow items-center justify-center self-start radix-state-inactive:hidden",children:t.jsx(F,{appInfo:e.problem,inBrowserBrowserRef:s})}),t.jsx(T,{value:"solution",className:"flex w-full flex-grow items-center justify-center self-start radix-state-inactive:hidden",children:t.jsx(F,{appInfo:e.solution,inBrowserBrowserRef:s})}),t.jsx(T,{value:"tests",className:"flex w-full flex-grow items-start justify-center self-start overflow-hidden radix-state-inactive:hidden",children:t.jsx(Fe,{appInfo:e.playground,problemAppName:(f=e.problem)==null?void 0:f.name,allApps:e.allApps,isUpToDate:((g=e.playground)==null?void 0:g.isUpToDate)??!1})}),t.jsx(T,{value:"diff",className:"flex h-full w-full flex-grow items-start justify-center self-start radix-state-inactive:hidden",children:t.jsx(Ne,{diff:e.diff,allApps:e.allApps})}),t.jsx(T,{value:"chat",className:"flex h-full w-full flex-grow items-start justify-center self-start radix-state-inactive:hidden",children:t.jsx(Xe,{})})]})]})}function At(){return t.jsx(ye,{statusHandlers:{404:()=>t.jsx("p",{children:"Sorry, we couldn't find an app here."})}})}export{At as ErrorBoundary,_t as default};
|
|
2
|
-
//# sourceMappingURL=index-DE-jwnOP.js.map
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import{r as V,d as $e,j as E}from"./index-C_B1-9rF.js";import{a as I,Z as He,b as Be,c as Je,d as ze,e as Ke,f as qe,g as We,h as Ge,i as Ye,j as Xe,k as Qe,l as xe,m as er,u as le,z as pe}from"./request-info-vBkaf3Rk.js";import{I as te}from"./misc-DIdEn_jt.js";import{S as rr}from"./tooltip-BoVikCa-.js";import{u as tr}from"./pe-D5h19vSo.js";import{a as nr,b as ar}from"./components-DUNtf72c.js";function ye(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),t.push.apply(t,n)}return t}function y(e){for(var r=1;r<arguments.length;r++){var t=arguments[r]!=null?arguments[r]:{};r%2?ye(Object(t),!0).forEach(function(n){ir(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ye(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function ir(e,r,t){return r=ur(r),r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function or(e,r){if(typeof e!="object"||e===null)return e;var t=e[Symbol.toPrimitive];if(t!==void 0){var n=t.call(e,r||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(r==="string"?String:Number)(e)}function ur(e){var r=or(e,"string");return typeof r=="symbol"?r:String(r)}function sr(e,r){var t=new FormData(e,r);if(r&&r.type==="submit"&&r.name!==""){var n=t.getAll(r.name);n.includes(r.value)||t.append(r.name,r.value)}return t}function T(e){return e?e.split(/\.|(\[\d*\])/).reduce((r,t)=>{if(typeof t<"u"&&t!==""&&t!=="__proto__"&&t!=="constructor"&&t!=="prototype")if(t.startsWith("[")&&t.endsWith("]")){var n=t.slice(1,-1);r.push(Number(n))}else r.push(t);return r},[]):[]}function _(e){return e.reduce((r,t)=>typeof t=="number"?"".concat(r,"[").concat(Number.isNaN(t)?"":t,"]"):r===""||t===""?[r,t].join(""):[r,t].join("."),"")}function z(e,r){return typeof r<"u"?_([...T(e),r]):e??""}function W(e,r){var t=T(e),n=T(r);return t.length>=n.length&&n.every((a,i)=>t[i]===a)}function F(e,r,t){for(var n=T(r),a=n.length,i=a-1,u=-1,o=e;o!=null&&++u<a;){var s=n[u],c=n[u+1],m=u!=i?Object.prototype.hasOwnProperty.call(o,s)&&o[s]!==null?o[s]:typeof c=="number"?[]:{}:t(o[s]);o[s]=m,o=o[s]}}function x(e,r){var t=e;for(var n of T(r)){if(typeof t>"u"||t==null)break;if(!Object.prototype.hasOwnProperty.call(t,n))return;if(D(t)&&typeof n=="string")t=t[n];else if(Array.isArray(t)&&typeof n=="number")t=t[n];else return}return t}function D(e){return!!e&&e.constructor===Object&&Object.getPrototypeOf(e)===Object.prototype}function lr(e){return typeof File>"u"?!1:e instanceof File}function R(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(D(e)){var t=Object.keys(e).sort().reduce((n,a)=>{var i=R(e[a],r);return typeof i<"u"&&(n[a]=i),n},{});return Object.keys(t).length===0?void 0:t}if(Array.isArray(e))return e.length===0?void 0:e.map(n=>R(n,r));if(!(typeof e=="string"&&e===""||e===null||lr(e)&&(!r||e.size===0)))return e}function de(e){var r,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n={},a=(r=t.resolve)!==null&&r!==void 0?r:o=>o;function i(o,s){var c=R(a(o));if(typeof c<"u"&&(n[s]=c),Array.isArray(o))for(var m=0;m<o.length;m++)i(o[m],"".concat(s,"[").concat(m,"]"));else if(D(o))for(var[g,N]of Object.entries(o))i(N,s?"".concat(s,".").concat(g):g)}if(e){var u;i(e,(u=t.prefix)!==null&&u!==void 0?u:"")}return n}function ee(e,r){if(!e)throw new Error(r)}function $(){return(Date.now()*Math.random()).toString(36)}function B(e){return JSON.parse(JSON.stringify(e))}function dr(e){return e instanceof Element&&(e.tagName==="INPUT"||e.tagName==="SELECT"||e.tagName==="TEXTAREA"||e.tagName==="BUTTON")}function ne(e){return dr(e)&&e.type!=="submit"&&e.type!=="button"&&e.type!=="reset"}function fr(e){var r,t,n=e.target,a=e.submitter;return(r=(t=a==null?void 0:a.getAttribute("formaction"))!==null&&t!==void 0?t:n.getAttribute("action"))!==null&&r!==void 0?r:"".concat(location.pathname).concat(location.search)}function cr(e){var r,t=e.target,n=e.submitter,a=(r=n==null?void 0:n.getAttribute("formenctype"))!==null&&r!==void 0?r:t.enctype;return a==="multipart/form-data"?a:"application/x-www-form-urlencoded"}function vr(e){var r,t,n=e.target,a=e.submitter,i=(r=(t=a==null?void 0:a.getAttribute("formmethod"))!==null&&t!==void 0?t:n.getAttribute("method"))===null||r===void 0?void 0:r.toUpperCase();switch(i){case"POST":case"PUT":case"PATCH":case"DELETE":return i}return"GET"}function mr(e,r){if(ee(!!e,"Failed to submit the form. The element provided is null or undefined."),typeof e.requestSubmit=="function")e.requestSubmit(r);else{var t=new SubmitEvent("submit",{bubbles:!0,cancelable:!0,submitter:r});e.dispatchEvent(t)}}var J="__intent__",ae="__state__";function Pe(e){var r=e.get(J),t=e.get(ae);ee((typeof r=="string"||r===null)&&(typeof t=="string"||t===null),'The input name "'.concat(J,'" and "').concat(ae,'" are reserved by Conform. Please use another name for your input.'));var n={payload:{},fields:new Set,intent:gr(r)};t&&(n.state=JSON.parse(t));var a=function(s){if(i===J||i===ae)return 1;n.fields.add(i),F(n.payload,i,c=>c?Array.isArray(c)?c.concat(s):[c,s]:s)};for(var[i,u]of e.entries())a(u);return n}function pr(e,r){var t=Pe(e),n=t.intent;if(n)switch(n.type){case"update":{var a=z(n.payload.name,n.payload.index),i=n.payload.value;typeof n.payload.value<"u"&&(a?F(t.payload,a,()=>i):t.payload=i);break}case"reset":{var u=z(n.payload.name,n.payload.index);u?F(t.payload,u,()=>{}):t.payload={};break}case"insert":case"remove":case"reorder":{Ee(t.payload,n);break}}var o=r.resolve(t.payload,n),s=c=>yr(y(y({},t),{},{value:c.value,error:c.error}));return o instanceof Promise?o.then(s):s(o)}function yr(e){return e.intent||!e.value||e.error?{status:e.intent?void 0:"error",payload:e.payload,error:typeof e.error<"u"?e.error:{},reply(r){return ge(e,r)}}:{status:"success",payload:e.payload,value:e.value,reply(r){return ge(e,r)}}}function ge(e){var r,t,n,a,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if("resetForm"in i&&i.resetForm||((r=e.intent)===null||r===void 0?void 0:r.type)==="reset"&&((t=e.intent.payload.name)!==null&&t!==void 0?t:"")==="")return{initialValue:null};if("hideFields"in i&&i.hideFields)for(var u of i.hideFields){var o=x(e.payload,u);typeof o<"u"&&F(e.payload,u,()=>{})}var s="formErrors"in i||"fieldErrors"in i?R(y({"":(n=i.formErrors)!==null&&n!==void 0?n:null},i.fieldErrors)):null,c=e.error||s?y(y({},e.error),s):void 0,m=(a=R(e.payload,typeof document<"u"))!==null&&a!==void 0?a:{};return{status:e.intent?void 0:c?"error":"success",intent:e.intent?e.intent:void 0,initialValue:m,error:c,state:e.state,fields:Array.from(e.fields)}}function gr(e){if(!e)return null;var r=JSON.parse(e);if(typeof r.type!="string"||typeof r.payload>"u")throw new Error("Unknown form control intent");return r}function hr(e){switch(e.type){case"insert":return JSON.stringify({type:e.type,payload:y(y({},e.payload),{},{defaultValue:K(e.payload.defaultValue)})});case"update":return JSON.stringify({type:e.type,payload:y(y({},e.payload),{},{value:K(e.payload.value)})});default:return JSON.stringify(e)}}function oe(e,r){var t;switch(ee(Array.isArray(e),"Failed to update list. The value is not an array."),r.type){case"insert":e.splice((t=r.payload.index)!==null&&t!==void 0?t:e.length,0,r.payload.defaultValue);break;case"remove":e.splice(r.payload.index,1);break;case"reorder":e.splice(r.payload.to,0,...e.splice(r.payload.from,1));break;default:throw new Error("Unknown list intent received")}}function Ee(e,r){F(e,r.payload.name,t=>{var n=t??[];return oe(n,r),n})}var ue=Symbol.for("root");function Q(e,r,t){var n=Object.keys(e).sort((s,c)=>c.localeCompare(s)),a={},i=function(){var c=e[u];W(u,r)&&u!==r&&(F(a,u,m=>typeof m>"u"?c:(m[ue]=c,m)),delete e[u])};for(var u of n)i();var o=t(x(a,r));Object.assign(e,de(o,{resolve(s){if(D(s)||Array.isArray(s)){var c;return(c=s[ue])!==null&&c!==void 0?c:null}return s},prefix:r}))}function he(e,r,t){Q(e,r.payload.name,n=>{var a=n??[];switch(r.type){case"insert":oe(a,{type:r.type,payload:y(y({},r.payload),{},{defaultValue:t==null?void 0:t(r.payload.defaultValue)})});break;default:oe(a,r);break}return a})}function K(e){return D(e)?Object.entries(e).reduce((r,t)=>{var[n,a]=t;return r[n]=K(a),r},{}):Array.isArray(e)?e.map(K):e instanceof Date?e.toISOString():typeof e=="boolean"?e?"on":void 0:typeof e=="number"||typeof e=="bigint"?e.toString():e??void 0}function be(e,r){var t,n,a,i,u,o=r?void 0:e.lastResult,s=e.defaultValue?K(e.defaultValue):{},c=(t=o==null?void 0:o.initialValue)!==null&&t!==void 0?t:s,m={formId:e.formId,isValueUpdated:!1,submissionStatus:o==null?void 0:o.status,defaultValue:s,initialValue:c,value:c,constraint:(n=e.constraint)!==null&&n!==void 0?n:{},validated:(a=o==null||(i=o.state)===null||i===void 0?void 0:i.validated)!==null&&a!==void 0?a:{},key:r?y({"":$()},q(s)):q(s),error:(u=o==null?void 0:o.error)!==null&&u!==void 0?u:{}};return Ie(m,o==null?void 0:o.intent,o==null?void 0:o.fields),m}function q(e,r){return Object.entries(de(e,{prefix:r})).reduce((t,n)=>{var[a,i]=n;if(Array.isArray(i))for(var u=0;u<i.length;u++)t[z(a,u)]=$();return t},{})}function Oe(e,r){for(var t of Object.keys(e.error).concat(r??[]))e.validated[t]=!0}function Ie(e,r,t,n){var a;if(!r){Oe(e,t);return}switch(r.type){case"validate":{r.payload.name?e.validated[r.payload.name]=!0:Oe(e,t);break}case"update":{var{validated:i,value:u}=r.payload,o=z(r.payload.name,r.payload.index);typeof u<"u"&&Se(e,o??"",u),typeof i<"u"&&(o?Q(e.validated,o,()=>{}):e.validated={},i?((D(u)||Array.isArray(u))&&Object.assign(e.validated,de(u,{resolve(){return!0},prefix:o})),e.validated[o??""]=!0):o&&delete e.validated[o]);break}case"reset":{var s=z(r.payload.name,r.payload.index),c=x(e.defaultValue,s);Se(e,s,c),s?(Q(e.validated,s,()=>{}),delete e.validated[s]):e.validated={};break}case"insert":case"remove":case"reorder":{n&&(e.initialValue=B(e.initialValue),e.key=B(e.key),he(e.key,r,g=>!Array.isArray(g)&&!D(g)?$():Object.assign(q(g),{[ue]:$()})),Ee(e.initialValue,r)),he(e.validated,r),e.validated[r.payload.name]=!0;break}}var m=(a=t==null?void 0:t.filter(g=>e.validated[g]))!==null&&a!==void 0?a:[];e.error=Object.entries(e.error).reduce((g,N)=>{var[P,k]=N;return(e.validated[P]||m.some(j=>W(P,j)))&&(g[P]=k),g},{})}function Se(e,r,t){if(r===""){e.initialValue=t,e.value=t,e.key=y(y({},q(t)),{},{"":$()});return}e.initialValue=B(e.initialValue),e.value=B(e.value),e.key=B(e.key),F(e.initialValue,r,()=>t),F(e.value,r,()=>t),(D(t)||Array.isArray(t))&&(Q(e.key,r,()=>{}),Object.assign(e.key,q(t,r))),e.key[r]=$()}function G(e){var r={};return new Proxy(r,{get(t,n,a){var i;if(typeof n=="string")return(i=r[n])!==null&&i!==void 0?i:r[n]=e(n,a)}})}function ie(e){var r=R(e);return G((t,n)=>{if(t==="")return r;var a=T(t),i=_(a.slice(0,-1)),u=_(a.slice(-1)),o=n[i];return x(o,u)})}function br(e){return G((r,t)=>{var n,a=e[r];if(!a){for(var i=T(r),u=i.length-1;u>=0;u--){var o=i[u];if(typeof o=="number"&&!Number.isNaN(o)){i[u]=Number.NaN;break}}var s=_(i);r!==s&&(a=t[s])}return(n=a)!==null&&n!==void 0?n:{}})}function Or(e){return G((r,t)=>{var n=e[r],a=T(r);if(a.length===0)return n;var i=t[_(a.slice(0,-1))];return typeof i>"u"?n:"".concat(i,"/").concat(n??a.at(-1))})}function Sr(e){return G(r=>{var t=Object.keys(e);if(r==="")return t.length===0;for(var n of t)if(W(n,r)&&typeof e[n]<"u")return!1;return!0})}function wr(e,r,t){return G(n=>JSON.stringify(e[n])!==JSON.stringify(r[n],(a,i)=>n===""&&a===""&&i?Object.entries(i).reduce((u,o)=>{var[s,c]=o;return t(s)?Object.assign(u??{},{[s]:c}):u},void 0):i))}function M(e,r,t,n){var a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:(P,k)=>JSON.stringify(P)!==JSON.stringify(k);if(n&&e!==r){var i,u,o=(i=n.prefix)!==null&&i!==void 0?i:[],s=(u=n.name)!==null&&u!==void 0?u:[],c=o.length===0?s:Array.from(new Set([...Object.keys(e),...Object.keys(r)])),m=function(k){if(o.length===0||s.includes(k)||o.some(H=>W(k,H))){var j;if((j=t[k])!==null&&j!==void 0||(t[k]=a(e[k],r[k])),t[k])return{v:!0}}},g;for(var N of c)if(g=m(N),g)return g.v}return!1}function kr(e){var r=[],t=e,n=be(e),a=u(n);function i(){return document.forms.namedItem(t.formId)}function u(l){var f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:l,d=arguments.length>2?arguments[2]:void 0,v=!d||f.defaultValue!==l.defaultValue?ie(l.defaultValue):d.defaultValue,b=l.initialValue===l.defaultValue?v:!d||f.initialValue!==l.initialValue?ie(l.initialValue):d.initialValue,h=l.value===l.initialValue?b:!d||f.value!==l.value?ie(l.value):d.value;return{submissionStatus:l.submissionStatus,defaultValue:v,initialValue:b,value:h,error:!d||f.error!==l.error?l.error:d.error,validated:l.validated,constraint:!d||f.constraint!==l.constraint?br(l.constraint):d.constraint,key:!d||f.key!==l.key?Or(l.key):d.key,valid:!d||f.error!==l.error?Sr(l.error):d.valid,dirty:!d||f.defaultValue!==l.defaultValue||f.value!==l.value?wr(v,h,O=>{var w,Z;return(w=(Z=t.shouldDirtyConsider)===null||Z===void 0?void 0:Z.call(t,O))!==null&&w!==void 0?w:!0}):d.dirty}}function o(l){var f=n,d=a,v=u(l,f,d);n=l,a=v;var b={value:{},error:{},initialValue:{},key:{},valid:{},dirty:{}};for(var h of r){var O,w=(O=h.getSubject)===null||O===void 0?void 0:O.call(h);(!w||w.formId&&f.formId!==l.formId||w.status&&d.submissionStatus!==v.submissionStatus||M(d.error,v.error,b.error,w.error)||M(d.initialValue,v.initialValue,b.initialValue,w.initialValue)||M(d.key,v.key,b.key,w.key,(Z,Y)=>Z!==Y)||M(d.valid,v.valid,b.valid,w.valid,s)||M(d.dirty,v.dirty,b.dirty,w.dirty,s)||M(d.value,v.value,b.value,w.value))&&h.callback()}}function s(){var l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return l!==f}function c(){return JSON.stringify({validated:n.validated})}function m(l){var f=l.target,d=l.submitter;ee(f===i(),"The submit event is dispatched by form#".concat(f.id," instead of form#").concat(t.formId));var v=sr(f,d),b={formData:v,action:fr(l),encType:cr(l),method:vr(l)};if(typeof(t==null?void 0:t.onValidate)>"u")return b;var h=t.onValidate({form:f,formData:v,submitter:d});if(h.status==="success"||h.error!==null){var O=h.reply();fe(y(y({},O),{},{status:O.status!=="success"?O.status:void 0}))}return y(y({},b),{},{submission:h})}function g(l){var f=i(),d=l.target;return!f||!ne(d)||d.form!==f||!d.form.isConnected||d.name===""?null:d}function N(l,f){var{shouldValidate:d="onSubmit",shouldRevalidate:v=d}=t,b=n.validated[l.name];return b?v===f&&(f==="onInput"||n.isValueUpdated):d===f}function P(l){var f=new FormData(l),d=Pe(f);o(y(y({},n),{},{isValueUpdated:!0,value:d.payload}))}function k(l){var f=g(l);!f||!f.form||(l.defaultPrevented||!N(f,"onInput")?P(f.form):re({type:"validate",payload:{name:f.name}}))}function j(l){var f=g(l);!f||l.defaultPrevented||!N(f,"onBlur")||re({type:"validate",payload:{name:f.name}})}function H(){o(be(t,!0))}function _e(l){var f=i();l.type!=="reset"||l.target!==f||l.defaultPrevented||H()}function fe(l){var f,d,v=i();if(!l.initialValue){H();return}var b=Object.entries((f=l.error)!==null&&f!==void 0?f:{}).reduce((w,Z)=>{var[Y,ve]=Z,me=ve===null?n.error[Y]:ve;return me&&(w[Y]=me),w},{}),h=y(y({},n),{},{isValueUpdated:!1,submissionStatus:l.status,value:l.initialValue,validated:y(y({},n.validated),(d=l.state)===null||d===void 0?void 0:d.validated),error:b});if(Ie(h,l.intent,l.fields,!0),o(h),v&&l.status==="error"){for(var O of v.elements)if(ne(O)&&n.error[O.name]){O.focus();break}}}function Le(l){var f=t.formId,d=t.lastResult;Object.assign(t,l),t.formId!==f?H():l.lastResult&&l.lastResult!==d&&fe(l.lastResult)}function Me(l,f){var d={callback:l,getSubject:f};return r.push(d),()=>{r=r.filter(v=>v!==d)}}function Ue(){return a}function re(l){var f=i(),d=document.createElement("button"),v=ce(l);d.name=v.name,d.value=v.value,d.hidden=!0,d.formNoValidate=!0,f==null||f.appendChild(d),mr(f,d),f==null||f.removeChild(d)}function ce(l){return{name:J,value:hr(l),form:t.formId,formNoValidate:!0}}function L(l){var f=function(){var v=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return re({type:l,payload:v})};return Object.assign(f,{getButtonProps(){var d=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return ce({type:l,payload:d})}})}function Re(){var l=new MutationObserver(f=>{var d=i();if(d)for(var v of f){var b=v.type==="childList"?[...v.addedNodes,...v.removedNodes]:[v.target];for(var h of b){var O=ne(h)?h:h instanceof HTMLElement?h.querySelector("input,select,textarea"):null;if((O==null?void 0:O.form)===d){P(d);return}}}});return l.observe(document,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["form","name"]}),()=>{l.disconnect()}}return{getFormId(){return n.formId},submit:m,onReset:_e,onInput:k,onBlur:j,onUpdate:Le,validate:L("validate"),reset:L("reset"),update:L("update"),insert:L("insert"),remove:L("remove"),reorder:L("reorder"),subscribe:Me,getState:Ue,getSerializedState:c,observe:Re}}function we(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),t.push.apply(t,n)}return t}function A(e){for(var r=1;r<arguments.length;r++){var t=arguments[r]!=null?arguments[r]:{};r%2?we(Object(t),!0).forEach(function(n){Nr(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):we(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function Nr(e,r,t){return r=Vr(r),r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function Pr(e,r){if(e==null)return{};var t={},n=Object.keys(e),a,i;for(i=0;i<n.length;i++)a=n[i],!(r.indexOf(a)>=0)&&(t[a]=e[a]);return t}function Er(e,r){if(e==null)return{};var t=Pr(e,r),n,a;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],!(r.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(t[n]=e[n])}return t}function Ir(e,r){if(typeof e!="object"||e===null)return e;var t=e[Symbol.toPrimitive];if(t!==void 0){var n=t.call(e,r||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(r==="string"?String:Number)(e)}function Vr(e){var r=Ir(e,"string");return typeof r=="symbol"?r:String(r)}var jr=Symbol("wrapped");function Ar(e,r){var t=V.useCallback(n=>e.subscribe(n,()=>r==null?void 0:r.current),[e,r]);return V.useSyncExternalStore(t,e.getState,e.getState)}function Tr(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=V.useRef(e);return r.current=e,r}function U(e,r,t,n){if(r==="status"||r==="formId")e.current[r]=!0;else if(typeof t<"u"&&typeof n<"u"){var a,i;e.current[r]=A(A({},e.current[r]),{},{[t]:((a=(i=e.current[r])===null||i===void 0?void 0:i[t])!==null&&a!==void 0?a:[]).concat(n)})}}function Ve(e,r,t){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"",a=n?"".concat(e.getFormId(),"-").concat(n):e.getFormId(),i=e.getState();return new Proxy({id:a,name:n,errorId:"".concat(a,"-error"),descriptionId:"".concat(a,"-description"),get initialValue(){return i.initialValue[n]},get value(){return i.value[n]},get errors(){return i.error[n]},get key(){return i.key[n]},get valid(){return i.valid[n]},get dirty(){return i.dirty[n]},get allErrors(){if(n==="")return i.error;var u={};for(var[o,s]of Object.entries(i.error))W(o,n)&&(u[o]=s);return u},get getFieldset(){return()=>new Proxy({},{get(u,o,s){return typeof o=="string"?je(e,r,t,n,o):Reflect.get(u,o,s)}})}},{get(u,o,s){if(i===t)switch(o){case"id":case"errorId":case"descriptionId":U(r,"formId");break;case"key":case"initialValue":case"value":case"valid":case"dirty":U(r,o,"name",n);break;case"errors":case"allErrors":U(r,"error",o==="errors"?"name":"prefix",n);break}return Reflect.get(u,o,s)}})}function je(e,r,t){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"",a=arguments.length>4?arguments[4]:void 0,i=typeof a>"u"?n:_([...T(n),a]);return new Proxy({},{get(u,o,s){var c,m=Ve(e,r,t,i),g=e.getState();switch(o){case"formId":return g===t&&U(r,"formId"),e.getFormId();case"required":case"minLength":case"maxLength":case"min":case"max":case"pattern":case"step":case"multiple":return(c=g.constraint[i])===null||c===void 0?void 0:c[o];case"getFieldList":return()=>{var N,P=(N=g.initialValue[i])!==null&&N!==void 0?N:[];if(g===t&&U(r,"initialValue","name",i),!Array.isArray(P))throw new Error("The initial value at the given name is not a list");return Array(P.length).fill(0).map((k,j)=>je(e,r,t,i,j))}}return Reflect.get(m,o,s)}})}function Cr(e,r,t,n){return new Proxy({},{get(a,i,u){var o=Ve(e,r,t),s=e.getState();switch(i){case"context":return{[jr]:e};case"status":return s===t&&U(r,"status"),s.submissionStatus;case"validate":case"update":case"reset":case"insert":case"remove":case"reorder":return e[i];case"onSubmit":return e.submit;case"noValidate":return n}return Reflect.get(o,i,u)}})}function Fr(e){var{onSubmit:r}=e,t=kr(e);return A(A({},t),{},{submit(n){var a=n.nativeEvent,i=t.submit(a);if(!i.submission||i.submission.status==="success"||i.submission.error===null){if(!i.formData.has(J)){var u;(u=r)===null||u===void 0||u(n,i)}}else n.preventDefault()},onUpdate(n){r=n.onSubmit,t.onUpdate(n)}})}var Dr=["id"],se=typeof document>"u"?V.useEffect:V.useLayoutEffect;function Zr(e){var r=V.useId();return e??r}function _r(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,[r,t]=V.useState(e);return se(()=>{r||t(!0)},[r]),r}function Lr(e){var{id:r}=e,t=Er(e,Dr),n=Zr(r),[a]=V.useState(()=>Fr(A(A({},t),{},{formId:n})));se(()=>{var c=a.observe();return document.addEventListener("input",a.onInput),document.addEventListener("focusout",a.onBlur),document.addEventListener("reset",a.onReset),()=>{c(),document.removeEventListener("input",a.onInput),document.removeEventListener("focusout",a.onBlur),document.removeEventListener("reset",a.onReset)}},[a]),se(()=>{a.onUpdate(A(A({},t),{},{formId:n}))});var i=Tr(),u=Ar(a,i),o=_r(e.defaultNoValidate),s=Cr(a,i,u,o);return[s,s.getFieldset()]}function Ae(e){for(var r in e)e[r]===void 0&&delete e[r];return e}function Mr(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(typeof r.ariaAttributes<"u"&&!r.ariaAttributes)return{};var t=r.ariaInvalid==="allErrors"?!e.valid:typeof e.errors<"u",n=r.ariaDescribedBy;return Ae({"aria-invalid":t||void 0,"aria-describedby":t?"".concat(e.errorId," ").concat(n??"").trim():n})}function Ur(e,r){return Ae(A({id:e.id,onSubmit:e.onSubmit,noValidate:e.noValidate},Mr(e,r)))}function ke(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),t.push.apply(t,n)}return t}function p(e){for(var r=1;r<arguments.length;r++){var t=arguments[r]!=null?arguments[r]:{};r%2?ke(Object(t),!0).forEach(function(n){Rr(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ke(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function Rr(e,r,t){return r=Hr(r),r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function $r(e,r){if(typeof e!="object"||e===null)return e;var t=e[Symbol.toPrimitive];if(t!==void 0){var n=t.call(e,r||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(r==="string"?String:Number)(e)}function Hr(e){var r=$r(e,"string");return typeof r=="symbol"?r:String(r)}var Te="__EMPTY_STRING__";function C(e,r){if(typeof e!="string")return e;if(e!=="")return e===Te?"":typeof r!="function"?e:r(e)}function X(e){if(!(typeof File<"u"&&e instanceof File&&e.name===""&&e.size===0))return e}function Br(e){return typeof File>"u"?!1:e._def.effect.type==="refinement"&&e.innerType()._def.typeName==="ZodAny"&&e.safeParse(new File([],"")).success&&!e.safeParse("").success}function S(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:new Map,t=r.get(e);if(t)return t;var n=e,a=e._def;if(a.typeName==="ZodString"||a.typeName==="ZodLiteral"||a.typeName==="ZodEnum"||a.typeName==="ZodNativeEnum")n=I().transform(u=>C(u)).pipe(e);else if(a.typeName==="ZodNumber")n=I().transform(u=>C(u,o=>o.trim()===""?o:Number(o))).pipe(e);else if(a.typeName==="ZodBoolean")n=I().transform(u=>C(u,o=>o==="on"?!0:o)).pipe(e);else if(a.typeName==="ZodDate")n=I().transform(u=>C(u,o=>{var s=new Date(o);return isNaN(s.getTime())?o:s})).pipe(e);else if(a.typeName==="ZodBigInt")n=I().transform(u=>C(u,o=>{if(o.trim()==="")return o;try{return BigInt(o)}catch{return o}})).pipe(e);else if(a.typeName==="ZodArray")n=I().transform(u=>Array.isArray(u)?u:typeof u>"u"||typeof X(C(u))>"u"?[]:[u]).pipe(new He(p(p({},a),{},{type:S(a.type,r)})));else if(a.typeName==="ZodObject")n=I().transform(u=>typeof u>"u"?{}:u).pipe(new Be(p(p({},a),{},{shape:()=>Object.fromEntries(Object.entries(a.shape()).map(u=>{var[o,s]=u;return[o,S(s,r)]}))})));else if(a.typeName==="ZodEffects")Br(e)?n=I().transform(u=>X(u)).pipe(e):n=new Je(p(p({},a),{},{schema:S(a.schema,r)}));else if(a.typeName==="ZodOptional")n=I().transform(u=>X(C(u))).pipe(new ze(p(p({},a),{},{innerType:S(a.innerType,r)})));else if(a.typeName==="ZodDefault")n=I().transform(u=>X(C(u))).pipe(new Ke(p(p({},a),{},{defaultValue:()=>{var u=a.defaultValue();return u===""?Te:u},innerType:S(a.innerType,r)})));else if(a.typeName==="ZodCatch")n=new qe(p(p({},a),{},{innerType:S(a.innerType,r)}));else if(a.typeName==="ZodIntersection")n=new We(p(p({},a),{},{left:S(a.left,r),right:S(a.right,r)}));else if(a.typeName==="ZodUnion")n=new Ge(p(p({},a),{},{options:a.options.map(u=>S(u,r))}));else if(a.typeName==="ZodDiscriminatedUnion")n=new Ye(p(p({},a),{},{options:a.options.map(u=>S(u,r)),optionsMap:new Map(Array.from(a.optionsMap.entries()).map(u=>{var[o,s]=u;return[o,S(s,r)]}))}));else if(a.typeName==="ZodTuple")n=new Xe(p(p({},a),{},{items:a.items.map(u=>S(u,r))}));else if(a.typeName==="ZodNullable")n=new Qe(p(p({},a),{},{innerType:S(a.innerType,r)}));else if(a.typeName==="ZodPipeline")n=new xe(p(p({},a),{},{in:S(a.in,r),out:S(a.out,r)}));else if(a.typeName==="ZodLazy"){var i=a.getter();n=er(()=>S(i,r))}return e!==n&&r.set(e,n),n}function Jr(e,r){var t={};for(var n of e.errors){var a=_(n.path);switch(n.message){case Ne.VALIDATION_UNDEFINED:return null;case Ne.VALIDATION_SKIPPED:t[a]=null;break;default:{var i=t[a];i!==null&&(i?t[a]=i.concat(n):t[a]=[n]);break}}}return Object.entries(t).reduce((u,o)=>{var[s,c]=o;return u[s]=c?r(c):null,u},{})}function zr(e,r){return pr(e,{resolve(t,n){var a=r.errorMap,i=S(typeof r.schema=="function"?r.schema(n):r.schema),u=o=>{var s;return{value:o.success?o.data:void 0,error:o.success?void 0:Jr(o.error,(s=r.formatError)!==null&&s!==void 0?s:c=>c.map(m=>m.message))}};return r.async?i.safeParseAsync(t,{errorMap:a}).then(o=>u(o)):u(i.safeParse(t,{errorMap:a}))}})}var Ne={VALIDATION_SKIPPED:"__skipped__",VALIDATION_UNDEFINED:"__undefined__"};function Kr(e){function r(a,i){var s;const u=e[i];if(!u)throw new Error(`Unknown client hint: ${typeof i=="string"?i:"Unknown"}`);const o=(s=a.split(";").map(c=>c.trim()).find(c=>c.startsWith(u.cookieName+"=")))==null?void 0:s.split("=")[1];return o?decodeURIComponent(o):null}function t(a){const i=typeof document<"u"?document.cookie:typeof a<"u"?a.headers.get("Cookie")??"":"";return Object.entries(e).reduce((u,[o,s])=>{const c=o;return"transform"in s?u[c]=s.transform(r(i,c)??s.fallback):u[c]=r(i,c)??s.fallback,u},{})}function n(){return`
|
|
2
|
-
// This block of code allows us to check if the client hints have changed and
|
|
3
|
-
// force a reload of the page with updated hints if they have so you don't get
|
|
4
|
-
// a flash of incorrect content.
|
|
5
|
-
function checkClientHints() {
|
|
6
|
-
if (!navigator.cookieEnabled) return;
|
|
7
|
-
|
|
8
|
-
// set a short-lived cookie to make sure we can set cookies
|
|
9
|
-
document.cookie = "canSetCookies=1; Max-Age=60; SameSite=Lax; path=/";
|
|
10
|
-
const canSetCookies = document.cookie.includes("canSetCookies=1");
|
|
11
|
-
document.cookie = "canSetCookies=; Max-Age=-1; path=/";
|
|
12
|
-
if (!canSetCookies) return;
|
|
13
|
-
|
|
14
|
-
const cookies = document.cookie.split(';').map(c => c.trim()).reduce((acc, cur) => {
|
|
15
|
-
const [key, value] = cur.split('=');
|
|
16
|
-
acc[key] = value;
|
|
17
|
-
return acc;
|
|
18
|
-
}, {});
|
|
19
|
-
|
|
20
|
-
let cookieChanged = false;
|
|
21
|
-
const hints = [
|
|
22
|
-
${Object.values(e).map(a=>{const i=JSON.stringify(a.cookieName);return`{ name: ${i}, actual: String(${a.getValueCode}), value: cookies[${i}] != null ? cookies[${i}] : encodeURIComponent("${a.fallback}") }`}).join(`,
|
|
23
|
-
`)}
|
|
24
|
-
];
|
|
25
|
-
for (const hint of hints) {
|
|
26
|
-
document.cookie = encodeURIComponent(hint.name) + '=' + encodeURIComponent(hint.actual) + '; Max-Age=31536000; path=/';
|
|
27
|
-
if (decodeURIComponent(hint.value) !== hint.actual) {
|
|
28
|
-
cookieChanged = true;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
if (cookieChanged) window.location.reload();
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
checkClientHints();
|
|
35
|
-
`}return{getHints:t,getClientHintCheckScript:n}}const Ce={cookieName:"CH-prefers-color-scheme",getValueCode:"window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'",fallback:"light",transform(e){return e==="dark"?"dark":"light"}};function qr(e,r=Ce.cookieName){const t=window.matchMedia("(prefers-color-scheme: dark)");function n(){const a=t.matches?"dark":"light";document.cookie=`${r}=${a}; Max-Age=31536000; Path=/`,e(a)}return t.addEventListener("change",n),function(){t.removeEventListener("change",n)}}const Fe={cookieName:"CH-reduced-motion",getValueCode:"window.matchMedia('(prefers-reduced-motion: reduce)').matches ? 'reduce' : 'no-preference'",fallback:"no-preference",transform(e){return e==="reduce"?"reduce":"no-preference"}};function Wr(e,r=Fe.cookieName){const t=window.matchMedia("(prefers-reduced-motion: reduce)");function n(){const a=t.matches?"reduce":"no-preference";document.cookie=`${r}=${a}; Max-Age=31536000; Path=/`,e(a)}return t.addEventListener("change",n),function(){t.removeEventListener("change",n)}}const Gr={cookieName:"CH-time-zone",getValueCode:"Intl.DateTimeFormat().resolvedOptions().timeZone",fallback:"UTC"},De="EpicShop_CH-prefers-color-scheme",Ze="EpicShop_CH-reduced-motion",Yr=Kr({theme:{...Ce,cookieName:De},timeZone:{...Gr,cookieName:"EpicShop_CH-time-zone"},reducedMotion:{...Fe,cookieName:Ze}});function Xr(){return le().hints}function ut(){const{revalidate:e}=$e();return V.useEffect(()=>qr(()=>e(),De),[e]),V.useEffect(()=>Wr(()=>e(),Ze),[e]),E.jsx("script",{dangerouslySetInnerHTML:{__html:Yr.getClientHintCheckScript()}})}function Qr({id:e,errors:r}){const t=r==null?void 0:r.filter(Boolean);return t!=null&&t.length?E.jsx("ul",{id:e,className:"space-y-1",children:t.map(n=>E.jsx("li",{className:"text-danger text-[10px]",children:n},n))}):null}const xr="/theme",et=pe.object({theme:pe.enum(["system","light","dark"])});function st(){const e=le(),r=tr(),t=nr(),[n]=Lr({lastResult:t.data,onValidate({formData:o}){return zr(o,{schema:et})}}),a=e.session.theme??"system",i=a==="system"?"light":a==="light"?"dark":"system",u={light:E.jsx(te,{size:"md",name:"Sun",title:"Light mode"}),dark:E.jsx(te,{size:"md",name:"Moon",title:"Dark mode"}),system:E.jsx(te,{size:"md",name:"Laptop",title:"System mode"})};return E.jsxs(t.Form,{method:"POST",action:xr,...Ur(n),children:[E.jsxs("div",{className:"flex gap-2",children:[r,E.jsx("input",{type:"hidden",name:"theme",value:i}),E.jsx(rr,{content:`Change theme from ${a} mode`,children:E.jsx("button",{type:"submit",name:"intent",value:"update-theme",className:"flex h-8 w-8 cursor-pointer items-center justify-center",children:u[a]})})]}),E.jsx(Qr,{errors:n.errors,id:n.errorId})]})}function lt(){var i;const e=Xr(),r=le(),n=ar().find(u=>{var o;return((o=u.formData)==null?void 0:o.get("intent"))==="update-theme"}),a=(i=n==null?void 0:n.formData)==null?void 0:i.get("theme");return a==="system"?e.theme:a==="light"||a==="dark"?a:r.session.theme??e.theme}export{ut as C,st as T,Xr as a,lt as u};
|
|
36
|
-
//# sourceMappingURL=index-DH1w3QmP.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-DH1w3QmP.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","../../../../../node_modules/@epic-web/client-hints/dist/index.js","../../../../../node_modules/@epic-web/client-hints/dist/color-scheme.js","../../../../../node_modules/@epic-web/client-hints/dist/reduced-motion.js","../../../../../node_modules/@epic-web/client-hints/dist/time-zone.js","../../../app/utils/client-hints.tsx","../../../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, _ref;\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 var initialValue = (_ref = 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'\n // We need the file on the client because it's treated as the form value\n // But we will exclude the File type for now as it's only used by the internal\n // form state and we will remove the need to preserve the file on the client soon\n )) !== null && _ref !== void 0 ? _ref : {};\n return {\n status: context.intent ? undefined : error ? 'error' : 'success',\n intent: context.intent ? context.intent : undefined,\n initialValue,\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, _ref2) => {\n var [key, value] = _ref2;\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 * A special string value to represent empty string\n * Used to prevent empty string from being stripped to undefined when using `.default()`\n */\nvar EMPTY_STRING = '__EMPTY_STRING__';\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 (value === EMPTY_STRING) {\n return '';\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 strips empty values to undefined and coerces string 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() === '' ? text : 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, text => {\n var date = new Date(text);\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 text;\n }\n return date;\n })).pipe(type);\n } else if (def.typeName === 'ZodBigInt') {\n schema = any().transform(value => coerceString(value, text => {\n if (text.trim() === '') {\n return text;\n }\n try {\n return BigInt(text);\n } catch (_unused) {\n return text;\n }\n })).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 schema = any().transform(value => {\n if (typeof value === 'undefined') {\n // Defaults it to an empty object\n return {};\n }\n return value;\n }).pipe(new ZodObject(_objectSpread2(_objectSpread2({}, def), {}, {\n 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 })));\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 defaultValue: () => {\n var value = def.defaultValue();\n if (value === '') {\n return EMPTY_STRING;\n }\n return value;\n },\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 function getHintUtils(hints) {\n function getCookieValue(cookieString, name) {\n const hint = hints[name];\n if (!hint) {\n throw new Error(`Unknown client hint: ${typeof name === 'string' ? name : 'Unknown'}`);\n }\n const value = cookieString\n .split(';')\n .map((c) => c.trim())\n .find((c) => c.startsWith(hint.cookieName + '='))\n ?.split('=')[1];\n return value ? decodeURIComponent(value) : null;\n }\n function getHints(request) {\n const cookieString = typeof document !== 'undefined'\n ? document.cookie\n : typeof request !== 'undefined'\n ? request.headers.get('Cookie') ?? ''\n : '';\n return Object.entries(hints).reduce((acc, [name, hint]) => {\n const hintName = name;\n if ('transform' in hint) {\n // @ts-expect-error - this is fine (PRs welcome though)\n acc[hintName] = hint.transform(getCookieValue(cookieString, hintName) ?? hint.fallback);\n }\n else {\n // @ts-expect-error - this is fine (PRs welcome though)\n acc[hintName] = getCookieValue(cookieString, hintName) ?? hint.fallback;\n }\n return acc;\n }, {});\n }\n /**\n * This returns a string of JavaScript that can be used to check if the client\n * hints have changed and will reload the page if they have.\n */\n function getClientHintCheckScript() {\n return `\n// This block of code allows us to check if the client hints have changed and\n// force a reload of the page with updated hints if they have so you don't get\n// a flash of incorrect content.\nfunction checkClientHints() {\n\tif (!navigator.cookieEnabled) return;\n\n\t// set a short-lived cookie to make sure we can set cookies\n\tdocument.cookie = \"canSetCookies=1; Max-Age=60; SameSite=Lax; path=/\";\n\tconst canSetCookies = document.cookie.includes(\"canSetCookies=1\");\n\tdocument.cookie = \"canSetCookies=; Max-Age=-1; path=/\";\n\tif (!canSetCookies) return;\n\n\tconst cookies = document.cookie.split(';').map(c => c.trim()).reduce((acc, cur) => {\n\t\tconst [key, value] = cur.split('=');\n\t\tacc[key] = value;\n\t\treturn acc;\n\t}, {});\n\n\tlet cookieChanged = false;\n\tconst hints = [\n\t${Object.values(hints)\n .map((hint) => {\n const cookieName = JSON.stringify(hint.cookieName);\n return `{ name: ${cookieName}, actual: String(${hint.getValueCode}), value: cookies[${cookieName}] != null ? cookies[${cookieName}] : encodeURIComponent(\"${hint.fallback}\") }`;\n })\n .join(',\\n')}\n\t];\n\tfor (const hint of hints) {\n\t\tdocument.cookie = encodeURIComponent(hint.name) + '=' + encodeURIComponent(hint.actual) + '; Max-Age=31536000; path=/';\n\t\tif (decodeURIComponent(hint.value) !== hint.actual) {\n\t\t\tcookieChanged = true;\n\t\t}\n\t}\n\tif (cookieChanged) window.location.reload();\n}\n\ncheckClientHints();\n`;\n }\n return { getHints, getClientHintCheckScript };\n}\n","export const clientHint = {\n cookieName: 'CH-prefers-color-scheme',\n getValueCode: `window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'`,\n fallback: 'light',\n transform(value) {\n return value === 'dark' ? 'dark' : 'light';\n },\n};\n/**\n * Subscribe to changes in the user's color scheme preference. Optionally pass\n * in a cookie name to use for the cookie that will be set if different from the\n * default.\n */\nexport function subscribeToSchemeChange(subscriber, cookieName = clientHint.cookieName) {\n const schemaMatch = window.matchMedia('(prefers-color-scheme: dark)');\n function handleThemeChange() {\n const value = schemaMatch.matches ? 'dark' : 'light';\n document.cookie = `${cookieName}=${value}; Max-Age=31536000; Path=/`;\n subscriber(value);\n }\n schemaMatch.addEventListener('change', handleThemeChange);\n return function cleanupSchemaChange() {\n schemaMatch.removeEventListener('change', handleThemeChange);\n };\n}\n","export const clientHint = {\n cookieName: 'CH-reduced-motion',\n getValueCode: `window.matchMedia('(prefers-reduced-motion: reduce)').matches ? 'reduce' : 'no-preference'`,\n fallback: 'no-preference',\n transform(value) {\n return value === 'reduce' ? 'reduce' : 'no-preference';\n },\n};\n/**\n * Subscribe to changes in the user's motion preference. Optionally pass\n * in a cookie name to use for the cookie that will be set if different from the\n * default.\n */\nexport function subscribeToMotionChange(subscriber, cookieName = clientHint.cookieName) {\n const motionMatch = window.matchMedia('(prefers-reduced-motion: reduce)');\n function handleMotionChange() {\n const value = motionMatch.matches ? 'reduce' : 'no-preference';\n document.cookie = `${cookieName}=${value}; Max-Age=31536000; Path=/`;\n subscriber(value);\n }\n motionMatch.addEventListener('change', handleMotionChange);\n return function cleanupMotionChange() {\n motionMatch.removeEventListener('change', handleMotionChange);\n };\n}\n","export const clientHint = {\n cookieName: 'CH-time-zone',\n getValueCode: 'Intl.DateTimeFormat().resolvedOptions().timeZone',\n fallback: 'UTC',\n};\n","/**\n * This file contains utilities for using client hints for user preference which\n * are needed by the server, but are only known by the browser.\n */\nimport { getHintUtils } from '@epic-web/client-hints'\nimport {\n\tclientHint as colorSchemeHint,\n\tsubscribeToSchemeChange,\n} from '@epic-web/client-hints/color-scheme'\nimport {\n\tclientHint as reducedMotionHint,\n\tsubscribeToMotionChange,\n} from '@epic-web/client-hints/reduced-motion'\nimport { clientHint as timeZoneHint } from '@epic-web/client-hints/time-zone'\nimport { useRevalidator } from '@remix-run/react'\nimport * as React from 'react'\nimport { useRequestInfo } from './request-info.ts'\n\nconst themeCookieName = 'EpicShop_CH-prefers-color-scheme'\nconst motionCookieName = 'EpicShop_CH-reduced-motion'\nconst hintsUtils = getHintUtils({\n\ttheme: {\n\t\t...colorSchemeHint,\n\t\tcookieName: themeCookieName,\n\t},\n\ttimeZone: {\n\t\t...timeZoneHint,\n\t\tcookieName: 'EpicShop_CH-time-zone',\n\t},\n\treducedMotion: {\n\t\t...reducedMotionHint,\n\t\tcookieName: motionCookieName,\n\t},\n\t// add other hints here\n})\n\nexport const { getHints } = hintsUtils\n\n/**\n * @returns an object with the client hints and their values\n */\nexport function useHints() {\n\tconst requestInfo = useRequestInfo()\n\treturn requestInfo.hints\n}\n\n/**\n * @returns inline script element that checks for client hints and sets cookies\n * if they are not set then reloads the page if any cookie was set to an\n * inaccurate value.\n */\nexport function ClientHintCheck() {\n\tconst { revalidate } = useRevalidator()\n\tReact.useEffect(\n\t\t() => subscribeToSchemeChange(() => revalidate(), themeCookieName),\n\t\t[revalidate],\n\t)\n\tReact.useEffect(\n\t\t() => subscribeToMotionChange(() => revalidate(), motionCookieName),\n\t\t[revalidate],\n\t)\n\n\treturn (\n\t\t<script\n\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t__html: hintsUtils.getClientHintCheckScript(),\n\t\t\t}}\n\t\t/>\n\t)\n}\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 { unstable_data as data, type ActionFunctionArgs } from '@remix-run/node'\nimport { useFetcher, useFetchers } from '@remix-run/react'\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 { dataWithPE, usePERedirectInput } from '#app/utils/pe.js'\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\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 data(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 { theme } = submission.value\n\n\tconst responseInit = {\n\t\theaders: { 'set-cookie': setTheme(theme) },\n\t}\n\treturn dataWithPE(formData, submission.reply(), responseInit)\n}\n\nexport function ThemeSwitch() {\n\tconst requestInfo = useRequestInfo()\n\tconst peRedirectInput = usePERedirectInput()\n\tconst fetcher = useFetcher<typeof action>()\n\n\tconst [form] = useForm({\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{peRedirectInput}\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","_value2","extraError","error","initialValue","serializedIntent","control","serializeIntent","serialize","updateList","list","_intent$payload$index","root","setState","keys","_loop2","_key","currentValue","_data$root","setListState","getDefaultValue","defaultValue","createFormMeta","initialized","_lastResult$initialVa","_options$constraint","_lastResult$state$val","_lastResult$state","lastResult","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","EMPTY_STRING","coerceString","transform","coerceFile","file","isFileSchema","schema","enableTypeCoercion","def","any","text","date","ZodArray","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","getHintUtils","hints","getCookieValue","cookieString","_a","getHints","request","acc","hintName","getClientHintCheckScript","cookieName","clientHint","subscribeToSchemeChange","schemaMatch","handleThemeChange","subscribeToMotionChange","motionMatch","handleMotionChange","themeCookieName","motionCookieName","hintsUtils","colorSchemeHint","timeZoneHint","reducedMotionHint","useHints","useRequestInfo","ClientHintCheck","revalidate","useRevalidator","React.useEffect","jsx","ErrorList","errors","errorsToRender","e","ROUTE_PATH","ThemeFormSchema","z","object","theme","enum","ThemeSwitch","requestInfo","peRedirectInput","usePERedirectInput","fetcher","useFetcher","onValidate","mode","session","nextMode","modeLabel","light","Icon","size","title","dark","system","jsxs","Form","action","children","className","SimpleTooltip","content","errorId","useTheme","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,13,14,15,16]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{j as e}from"./index-C_B1-9rF.js";import{E as t}from"./index-CLNXC84j.js";import{E as a}from"./epic-video-D8ex9vao.js";import{G as i}from"./error-boundary-3zItlMUO.js";import{M as l,E as m}from"./mdx-C9dqA6IZ.js";import{a as n}from"./misc-DIdEn_jt.js";import{P as d,u as c}from"./progress-D6SP0Gec.js";import{u as p,L as x}from"./components-DUNtf72c.js";import"./index-DH1w3QmP.js";import"./request-info-vBkaf3Rk.js";import"./tooltip-BoVikCa-.js";import"./pe-D5h19vSo.js";import"./index-BajUQsFT.js";import"./loading-DW_I206H.js";import"./user-CbbIYEs8.js";import"./workshop-config-C5sYl312.js";import"./progress-bar-CBDBzRQ2.js";function h({exercise:r}){const s=c(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 V(){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,7.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(l,{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(d,{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 B(){return e.jsx(i,{})}export{B as ErrorBoundary,V as default};
|
|
2
|
-
//# sourceMappingURL=index-mivnjq36.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as i,e as g,d as v,j as e}from"./index-C_B1-9rF.js";import{u as j}from"./use-event-source-M87p8Tme.js";import{a as y,B as R}from"./button-39zQyNX6.js";import{L as b}from"./loading-DW_I206H.js";import{L as C}from"./product-CYOFfeJM.js";import{u as N}from"./workshop-config-C5sYl312.js";import{z as t}from"./request-info-vBkaf3Rk.js";import{a as S}from"./components-DUNtf72c.js";import"./misc-DIdEn_jt.js";import"./index-DH1w3QmP.js";import"./tooltip-BoVikCa-.js";import"./pe-D5h19vSo.js";const s={USER_CODE_RECEIVED:"USER_CODE_RECEIVED",AUTH_RESOLVED:"AUTH_RESOLVED",AUTH_REJECTED:"AUTH_REJECTED"},k=t.object({type:t.literal(s.USER_CODE_RECEIVED),code:t.string(),url:t.string()}),_=t.object({type:t.literal(s.AUTH_RESOLVED)}),w=t.object({type:t.literal(s.AUTH_REJECTED),error:t.string().optional().default("Unknown error")}),D=t.union([k,_,w]),W={getSitemapEntries:()=>null};function Y(){var m;const{product:{displayName:a}}=N(),l=S(),[f,x]=i.useState(!1),[c,p]=i.useState(null),[o,h]=i.useState(null),d=g(),u=v(),n=j("/login-sse");return i.useEffect(()=>{if(!n)return;const E=JSON.parse(n),r=D.safeParse(E);if(!r.success){console.error(r.error.flatten());return}switch(r.data.type){case s.USER_CODE_RECEIVED:{h(r.data);break}case s.AUTH_RESOLVED:{u.revalidate(),d("/");break}case s.AUTH_REJECTED:{p(r.data.error);break}}},[n,d,u]),e.jsx("main",{className:"flex h-full w-full flex-grow flex-col items-center justify-center p-10",children:e.jsxs("div",{className:"flex flex-col items-center",children:[e.jsx(C,{className:"h-16 w-16"}),e.jsxs("h1",{className:"pt-5 text-2xl font-semibold md:text-3xl",children:["Login to ",a]}),e.jsxs("div",{className:"flex w-full flex-col items-center pt-5",children:[o?e.jsxs("div",{className:"flex w-full max-w-md flex-col items-center gap-3",children:[e.jsxs("div",{className:"my-2 flex w-full flex-col items-center gap-2",children:[e.jsx("p",{className:"text-lg",children:"Your verification code is: "}),e.jsx("div",{className:"mb-3 w-full bg-gray-100 px-5 py-3 text-center text-lg font-bold dark:bg-black/40",children:e.jsx("code",{children:o.code})}),e.jsxs("p",{className:"text-base",children:["You'll use this to verify your device on ",a,". Click verify code below to open the verification page."]})]}),e.jsx(y,{varient:"primary",to:o.url,target:"_blank",rel:"noreferrer",onClick:()=>x(!0),children:"Verify Auth Code"}),f?e.jsxs("div",{className:"justify-center pt-5 text-center opacity-60",children:[e.jsx(b,{className:"justify-center",children:"Waiting for confirmation"}),e.jsxs("p",{className:"pt-2",children:["Please open"," ",e.jsx("a",{href:o.url,target:"_blank",className:"underline",children:"your auth page"})," ","in a new tab to continue."]})]}):null]}):e.jsxs("div",{className:"flex flex-col items-center gap-8",children:[e.jsxs("div",{className:"flex max-w-lg flex-col gap-2 gap-3 pt-3 text-base text-gray-700 dark:text-gray-300",children:[e.jsxs("p",{children:["If you have access to this workshop on ",a,", you'll be able to watch videos, track progress, run tests, view the diffs, and more!"]}),e.jsxs("p",{children:["First you need to authenticate your device by requesting an access code and verifying on ",a,"."]})]}),e.jsx(l.Form,{method:"POST",children:e.jsx(R,{varient:"primary",type:"submit",children:l.state==="idle"&&((m=l.data)==null?void 0:m.status)!=="pending"?"Retrieve Auth Code":"Retrieving Auth Code..."})})]}),c?e.jsxs("div",{className:"mt-4 text-red-500",children:["There was an error: ",e.jsx("pre",{children:c})]}):null]})]})})}export{Y as default,W as handle};
|
|
2
|
-
//# sourceMappingURL=login-CdNej0Z7.js.map
|