@epic-web/workshop-app 4.13.3 → 4.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ #files h2{display:none}#files ul{display:flex;flex-direction:column;gap:.125rem;font-size:1rem;line-height:1.5rem}#files ul li code{font-family:var(--font-sans),ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}#files ul li span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}#files ul li[data-state=modified] button:before,#files ul li[data-state=modified] a:before{margin-right:.5rem;height:1rem;width:1rem;content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' viewBox='0 0 16 16' fill='rgb(251 146 60)' width='16' height='16' %3E%3Cpath d='M13.25 1c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0 1 13.25 15H2.75A1.75 1.75 0 0 1 1 13.25V2.75C1 1.784 1.784 1 2.75 1ZM2.75 2.5a.25.25 0 0 0-.25.25v10.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25V2.75a.25.25 0 0 0-.25-.25ZM8 10a2 2 0 1 1-.001-3.999A2 2 0 0 1 8 10Z'%3E%3C/path%3E%3C/svg%3E")}#files ul li[data-state=added] button:before,#files ul li[data-state=added] a:before{margin-right:.5rem;height:1rem;width:1rem;content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' viewBox='0 0 16 16' fill='rgb(16 185 129)' width='16' height='16'%3E%3Cpath d='M2.75 1h10.5c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0 1 13.25 15H2.75A1.75 1.75 0 0 1 1 13.25V2.75C1 1.784 1.784 1 2.75 1Zm10.5 1.5H2.75a.25.25 0 0 0-.25.25v10.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25V2.75a.25.25 0 0 0-.25-.25ZM8 4a.75.75 0 0 1 .75.75v2.5h2.5a.75.75 0 0 1 0 1.5h-2.5v2.5a.75.75 0 0 1-1.5 0v-2.5h-2.5a.75.75 0 0 1 0-1.5h2.5v-2.5A.75.75 0 0 1 8 4Z'%3E%3C/path%3E%3C/svg%3E")}#files ul li[data-state=deleted] button:before,#files ul li[data-state=deleted] a:before{margin-right:.5rem;height:1rem;width:1rem;content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' viewBox='0 0 16 16' fill='rgb(239 68 68)' width='16' height='16'%3E%3Cpath d='M13.25 1c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0 1 13.25 15H2.75A1.75 1.75 0 0 1 1 13.25V2.75C1 1.784 1.784 1 2.75 1ZM2.75 2.5a.25.25 0 0 0-.25.25v10.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25V2.75a.25.25 0 0 0-.25-.25Zm8.5 6.25h-6.5a.75.75 0 0 1 0-1.5h6.5a.75.75 0 0 1 0 1.5Z'%3E%3C/path%3E%3C/svg%3E")}.launch-editor-wrapper form .launch_button{display:flex;width:100%;align-items:center;border-radius:.25rem;padding:.25rem .5rem;outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.launch-editor-wrapper form .launch_button:hover{background-color:hsl(var(--foreground) / .2)}.launch-editor-wrapper form .launch_button:focus{background-color:hsl(var(--foreground) / .2)}.launch-editor-wrapper .not-allowed{cursor:not-allowed}.launch-editor-wrapper .not-allowed .launch_button{pointer-events:none}summary[data-state=modified]:before{padding-right:.25rem;content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' viewBox='0 0 16 16' fill='rgb(251 146 60)' width='16' height='16' %3E%3Cpath d='M13.25 1c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0 1 13.25 15H2.75A1.75 1.75 0 0 1 1 13.25V2.75C1 1.784 1.784 1 2.75 1ZM2.75 2.5a.25.25 0 0 0-.25.25v10.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25V2.75a.25.25 0 0 0-.25-.25ZM8 10a2 2 0 1 1-.001-3.999A2 2 0 0 1 8 10Z'%3E%3C/path%3E%3C/svg%3E")}body{-moz-tab-size:2ch;-o-tab-size:2ch;tab-size:2ch}.clip-path-button-outer{clip-path:polygon(0 0,100% 0,100% 70%,88% 100%,0 100%)}.clip-path-button{clip-path:polygon(0 0,100% 0,100% 70%,88.5% 100%,0 100%)}.shadow-on-scrollbox{background:linear-gradient(hsl(var(--background)) 30%,hsl(var(--foreground) / 0)),radial-gradient(farthest-side at 50% 0,hsl(var(--foreground) / .2),hsl(var(--foreground) / 0)) 0 0,linear-gradient(hsl(var(--foreground) / 0),hsl(var(--background)) 70%) 0 100%,radial-gradient(farthest-side at 50% 100%,hsl(var(--foreground) / .2),hsl(var(--foreground) / 0)) 0 100%;background-repeat:no-repeat;background-color:hsl(var(--background));background-size:100% 40px,100% 14px,100% 40px,100% 14px;background-attachment:local,scroll,local,local}.orientation-sideways{text-orientation:sideways;writing-mode:vertical-rl;--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.display-alt-down{display:none}.alt-down .display-alt-down{display:inherit}.alt-down .display-alt-up{display:none}:root{--base00: #121318;--base01: #2d2d2d;--base02: #424242;--base03: #637777;--base04: #555555;--base05: #d6deeb;--base06: #c8c8c8;--base07: #fafafa;--base08: #7fdbca;--base09: #f78c6c;--base0A: #c792ea;--base0B: #ecc48d;--base0C: #f78c6c;--base0D: #82aaff;--base0E: #c792ea;--base0F: #d3423e;--highlight-removed: #d3423e;--highlight-added: #7fdbca;--highlight-added-selection: #7fdbca4a;--highlight-removed-selection: #d3433e24}:root .light,:root.light{--base00: #f3f3f3;--base01: #e0e0e0;--base02: #d6d6d6;--base03: #989fb1;--base04: #969896;--base05: #2e3039;--base06: #282a2e;--base07: #1d1f21;--base08: #0c969b;--base09: #aa0982;--base0A: #994cc3;--base0B: #c96765;--base0C: #aa0982;--base0D: #4876d6;--base0E: #994cc3;--base0F: #d3423e;--highlight-removed: #d3423e;--highlight-added: #0c969b}.prose ul.list-none>li{padding-left:unset}.prose ul.list-none>li:before{content:unset}.dark .prose ol>li:before,.dark .prose ul>li:before{color:var(--color-gray-300)}.dark .dark\:prose-dark thead{color:var(--color-slate-500)}.prose pre[data-line-numbers=true],.prose pre[data-add],.prose pre[data-remove],.prose pre:has([data-highlight]){padding-left:0rem;padding-right:0rem}.prose pre:not([data-line-numbers=true]):has([data-highlight]){padding-left:0rem;padding-right:0rem}.prose pre:not([data-line-numbers=true]) .codeblock-line:before,.prose pre[data-line-numbers=true] .codeblock-line:before,.prose pre[data-remove] .codeblock-line:before,.prose pre[data-add] .codeblock-line:before{padding-left:0rem;content:attr(data-line-number);text-align:right;display:inline-block;width:4rem;color:var(--base03);padding-right:1.5rem;position:sticky;left:0;background-color:var(--base00)}.prose pre[data-line-numbers=false][data-line-numbers=false] .codeblock-line:before{content:" "}.prose pre[data-line-numbers=false]:not([data-add]):not([data-remove]):not(:has([data-highlight])) .codeblock-line:before{width:0;padding-right:0}.prose pre[data-line-numbers=false]:not([data-add]):not([data-remove]):has([data-highlight]) .codeblock-line:before{width:2rem}.prose pre[data-filename]{padding-top:2rem}.prose pre[data-filename][data-buttons][data-fullpath]{padding-top:3rem}.prose pre[data-lang]:not([data-nolang]){padding-bottom:2rem}.prose pre:not([data-lang]):not([data-nolang]){background-color:var(--base00);color:var(--base05)}.prose pre[data-line-numbers=true] [data-line-number]:before .codeblock-line[data-highlight=true]:before{background:var(--base0E)}.prose *:not(pre) code{background:var(--base00);color:var(--base05);padding:.2rem .4rem;border-radius:.2rem}.prose pre[data-add]:not([data-line-numbers=true]) [data-diff-line-number]:before,.prose pre[data-remove]:not([data-line-numbers=true]) [data-diff-line-number]:before{content:attr(data-diff-line-number)}.prose pre>code{display:inline-block;min-width:100%}.codeblock-line{display:block;position:relative;padding-right:1rem}.codeblock-line[data-highlight=true]:after,.prose pre[data-remove] .codeblock-line[data-remove]:after,.prose pre[data-add] .codeblock-line[data-add]:after{content:" ";position:absolute;left:0;top:0;width:100%;opacity:.15;pointer-events:none}.codeblock-line[data-highlight=true]:before{border-left:6px solid var(--base0E)}.codeblock-line[data-highlight=true]:after{background:var(--base0E)}.prose pre[data-remove][data-remove][data-remove] .codeblock-line[data-remove]:before{content:"-"}.prose pre[data-remove] .codeblock-line[data-remove]:after{background:var(--highlight-removed)}.prose pre[data-add][data-add][data-add] .codeblock-line[data-add]:before{content:"+"}.prose pre[data-add] .codeblock-line[data-add]:after{background:var(--highlight-added)}.prose pre[data-add] .codeblock-line[data-add]::-moz-selection,.prose pre[data-add] .codeblock-line[data-add] span::-moz-selection{background:var(--highlight-added-selection)}.prose pre[data-add] .codeblock-line[data-add]::selection,.prose pre[data-add] .codeblock-line[data-add] span::selection{background:var(--highlight-added-selection)}.prose pre[data-remove] .codeblock-line[data-remove]::-moz-selection,.prose pre[data-remove] .codeblock-line[data-remove] span::-moz-selection{background:var(--highlight-removed-selection)}.prose pre[data-remove] .codeblock-line[data-remove]::selection,.prose pre[data-remove] .codeblock-line[data-remove] span::selection{background:var(--highlight-removed-selection)}.prose pre{position:relative}.prose pre[data-filename]:before{content:attr(data-filename);position:absolute;left:8px;top:4px;font-size:.7rem;opacity:.7}.prose pre[data-lang]:not([data-nolang]):after{content:attr(data-lang);position:sticky;right:0;font-size:.7rem;opacity:.7;display:inline-block;transform:translate(-16px,24px);text-align:right;width:200px;margin-left:-200px}.prose>*{margin-bottom:1rem}.prose callout-muted a,.prose callout-info a,.prose callout-warning a,.prose callout-danger a,.prose callout-success a{text-decoration:underline}.prose callout-muted p,.prose callout-info p,.prose callout-warning p,.prose callout-danger p,.prose callout-success p{margin-bottom:0}.prose callout-muted,.prose callout-info,.prose callout-warning,.prose callout-danger,.prose callout-success{margin-top:0;margin-bottom:2rem;display:block;border-left:solid 4px;padding:.5rem 1rem;position:relative;border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.prose callout-muted,.prose callout-info,.prose callout-warning,.prose callout-danger,.prose callout-success,.prose callout-muted *,.prose callout-info *,.prose callout-warning *,.prose callout-danger *,.prose callout-success *{font-size:1rem}.prose callout-muted.aside,.prose callout-info.aside,.prose callout-warning.aside,.prose callout-danger.aside,.prose callout-success.aside,.prose callout-muted.aside *,.prose callout-info.aside *,.prose callout-warning.aside *,.prose callout-danger.aside *,.prose callout-success.aside *{font-size:.875rem}.prose callout-muted.important,.prose callout-info.important,.prose callout-warning.important,.prose callout-danger.important,.prose callout-success.important,.prose callout-muted.important *,.prose callout-info.important *,.prose callout-warning.important *,.prose callout-danger.important *,.prose callout-success.important *{font-size:1.25rem;font-weight:700}.prose callout-muted:before,.prose callout-info:before,.prose callout-warning:before,.prose callout-danger:before,.prose callout-success:before{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem;content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.1;pointer-events:none}.light .prose callout-warning,.light .prose callout-warning ol>li:before{color:#676000}.light .prose callout-warning:before{background:#ffd800}.prose callout-warning,.prose callout-warning ol>li:before{color:#ffd644}.prose callout-warning:before{background:#ffd644}.light .prose callout-muted,.light .prose callout-muted ol>li:before{color:#4c4b5e}.light .prose callout-muted:before{background:#3c3e4d}.prose callout-muted,.prose callout-muted ol>li:before{color:#b9b9c3}.prose callout-muted:before{background:#3c3e4d}.prose callout-info,.prose callout-info ol>li:before{color:#4b96ff}.prose callout-info:before{background:#4b96ff}.prose callout-danger,.prose callout-danger ol>li:before{color:#ff4545}.prose callout-danger:before{background:#ff4545}.prose callout-success,.prose callout-success ol>li:before{color:#30c85e}.prose callout-success:before{background:#30c85e}.prose callout-warning.notification .title,.prose callout-danger.notification .title{font-size:1.5rem;line-height:2rem}.prose callout-danger.notification pre{border:4px solid #ff4545;padding-block:1.5rem;margin-block:.5rem}.prose callout-warning.notification,.prose callout-danger.notification{margin-bottom:0!important}
@@ -1 +1 @@
1
- window.__remixManifest={"entry":{"module":"/assets/entry.client-Cs8lBz8l.js","imports":["/assets/index-Czg1ruVn.js","/assets/components-wgHiPsTg.js"],"css":[]},"routes":{"root":{"id":"root","path":"","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":true,"module":"/assets/root-CfGEU-lr.js","imports":["/assets/index-Czg1ruVn.js","/assets/components-wgHiPsTg.js","/assets/clsx-B-dksMZM.js","/assets/misc-S5ZD98sI.js","/assets/request-info-DHtGM4FI.js","/assets/tooltip-BtzSIxlB.js","/assets/client-hints-DLYDs4RF.js","/assets/error-boundary-BVTbN8PZ.js","/assets/progress-bar-wMXWRGq0.js","/assets/index-DjzedX4O.js","/assets/index-yEAxvbDV.js","/assets/presence-CW1_eiIo.js","/assets/seo-pBpFCWsy.js"],"css":[]},"routes/$":{"id":"routes/$","parentId":"root","path":"*","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":true,"module":"/assets/_-DYArYM0Z.js","imports":["/assets/index-Czg1ruVn.js","/assets/clsx-B-dksMZM.js","/assets/components-wgHiPsTg.js","/assets/misc-S5ZD98sI.js","/assets/error-boundary-BVTbN8PZ.js"],"css":[]},"routes/_app+/_layout":{"id":"routes/_app+/_layout","parentId":"root","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/_layout-dHX2Hcew.js","imports":["/assets/index-Czg1ruVn.js","/assets/clsx-B-dksMZM.js","/assets/components-wgHiPsTg.js","/assets/misc-S5ZD98sI.js","/assets/tooltip-BtzSIxlB.js","/assets/request-info-DHtGM4FI.js","/assets/client-hints-DLYDs4RF.js","/assets/index-C6ToujzV.js","/assets/user-CdUDQ7a8.js","/assets/presence-CW1_eiIo.js","/assets/progress-BwanvUpB.js","/assets/index-yEAxvbDV.js"],"css":[]},"routes/_app+/_exercises+/_layout":{"id":"routes/_app+/_exercises+/_layout","parentId":"routes/_app+/_layout","hasAction":false,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/_layout-DaZNLfOL.js","imports":["/assets/index-Czg1ruVn.js"],"css":[]},"routes/_app+/_exercises+/$exerciseNumber":{"id":"routes/_app+/_exercises+/$exerciseNumber","parentId":"routes/_app+/_exercises+/_layout","path":":exerciseNumber","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":true,"module":"/assets/_exerciseNumber-Ccwr4LZw.js","imports":["/assets/index-Czg1ruVn.js","/assets/components-wgHiPsTg.js","/assets/clsx-B-dksMZM.js","/assets/misc-S5ZD98sI.js","/assets/request-info-DHtGM4FI.js","/assets/tooltip-BtzSIxlB.js","/assets/client-hints-DLYDs4RF.js","/assets/index-yEAxvbDV.js","/assets/loading-B0uKxERz.js","/assets/user-CdUDQ7a8.js","/assets/epic-video-DJN9_SUj.js","/assets/progress-bar-wMXWRGq0.js","/assets/index-D6ukHE4T.js","/assets/mdx-BENF-kTQ.js","/assets/progress-BwanvUpB.js","/assets/seo-pBpFCWsy.js"],"css":["/assets/epic-video-DUnRvy1A.css"]},"routes/_app+/_exercises+/$exerciseNumber_.$stepNumber":{"id":"routes/_app+/_exercises+/$exerciseNumber_.$stepNumber","parentId":"routes/_app+/_exercises+/_layout","path":":exerciseNumber/:stepNumber","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":true,"module":"/assets/_exerciseNumber_._stepNumber-Ct5BCuA1.js","imports":["/assets/index-Czg1ruVn.js","/assets/clsx-B-dksMZM.js","/assets/components-wgHiPsTg.js","/assets/misc-S5ZD98sI.js"],"css":[]},"routes/_app+/_exercises+/$exerciseNumber_.$stepNumber.$type+/_layout":{"id":"routes/_app+/_exercises+/$exerciseNumber_.$stepNumber.$type+/_layout","parentId":"routes/_app+/_exercises+/$exerciseNumber_.$stepNumber","path":":type","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":true,"module":"/assets/_layout-Bn9QhWq9.js","imports":["/assets/index-Czg1ruVn.js","/assets/clsx-B-dksMZM.js","/assets/components-wgHiPsTg.js","/assets/misc-S5ZD98sI.js","/assets/tooltip-BtzSIxlB.js","/assets/request-info-DHtGM4FI.js","/assets/client-hints-DLYDs4RF.js","/assets/index-yEAxvbDV.js","/assets/loading-B0uKxERz.js","/assets/user-CdUDQ7a8.js","/assets/epic-video-DJN9_SUj.js","/assets/progress-bar-wMXWRGq0.js","/assets/index-C6ToujzV.js","/assets/mdx-BENF-kTQ.js","/assets/index-D6ukHE4T.js","/assets/diff-CpG96hGZ.js","/assets/error-boundary-BVTbN8PZ.js","/assets/nav-chevrons-DaXg0NPS.js","/assets/progress-BwanvUpB.js","/assets/seo-pBpFCWsy.js","/assets/discord-yZor-3t1.js","/assets/index-DjzedX4O.js","/assets/button-BA3iiLRs.js","/assets/use-event-source-ySol3hbz.js"],"css":["/assets/epic-video-DUnRvy1A.css"]},"routes/_app+/_exercises+/$exerciseNumber_.$stepNumber.index":{"id":"routes/_app+/_exercises+/$exerciseNumber_.$stepNumber.index","parentId":"routes/_app+/_exercises+/$exerciseNumber_.$stepNumber","index":true,"hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/_exerciseNumber_._stepNumber.index-l0sNRNKZ.js","imports":[],"css":[]},"routes/_app+/_exercises+/$exerciseNumber_.finished":{"id":"routes/_app+/_exercises+/$exerciseNumber_.finished","parentId":"routes/_app+/_exercises+/_layout","path":":exerciseNumber/finished","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/_exerciseNumber_.finished-gEWcHsfL.js","imports":["/assets/index-Czg1ruVn.js","/assets/components-wgHiPsTg.js","/assets/clsx-B-dksMZM.js","/assets/misc-S5ZD98sI.js","/assets/request-info-DHtGM4FI.js","/assets/tooltip-BtzSIxlB.js","/assets/client-hints-DLYDs4RF.js","/assets/index-yEAxvbDV.js","/assets/loading-B0uKxERz.js","/assets/user-CdUDQ7a8.js","/assets/epic-video-DJN9_SUj.js","/assets/progress-bar-wMXWRGq0.js","/assets/index-D6ukHE4T.js","/assets/nav-chevrons-DaXg0NPS.js","/assets/mdx-BENF-kTQ.js","/assets/progress-BwanvUpB.js","/assets/seo-pBpFCWsy.js"],"css":["/assets/epic-video-DUnRvy1A.css"]},"routes/_app+/account":{"id":"routes/_app+/account","parentId":"routes/_app+/_layout","path":"account","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/account-uvU1jIL2.js","imports":["/assets/index-Czg1ruVn.js","/assets/clsx-B-dksMZM.js","/assets/components-wgHiPsTg.js","/assets/misc-S5ZD98sI.js","/assets/request-info-DHtGM4FI.js","/assets/button-BA3iiLRs.js","/assets/tooltip-BtzSIxlB.js","/assets/user-CdUDQ7a8.js","/assets/presence-CW1_eiIo.js"],"css":[]},"routes/_app+/app.$appName+/$":{"id":"routes/_app+/app.$appName+/$","parentId":"routes/_app+/_layout","path":"app/:appName/*","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/_-l0sNRNKZ.js","imports":[],"css":[]},"routes/_app+/app.$appName+/api.$":{"id":"routes/_app+/app.$appName+/api.$","parentId":"routes/_app+/_layout","path":"app/:appName/api/*","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/api._-l0sNRNKZ.js","imports":[],"css":[]},"routes/_app+/app.$appName+/epic_ws[.js]":{"id":"routes/_app+/app.$appName+/epic_ws[.js]","parentId":"routes/_app+/_layout","path":"app/:appName/epic_ws.js","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/epic_ws_.js_-l0sNRNKZ.js","imports":[],"css":[]},"routes/_app+/app.$appName+/index":{"id":"routes/_app+/app.$appName+/index","parentId":"routes/_app+/_layout","path":"app/:appName/","index":true,"hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/index-K6Dvbx-E.js","imports":[],"css":[]},"routes/_app+/app.$appName+/test.$testName":{"id":"routes/_app+/app.$appName+/test.$testName","parentId":"routes/_app+/_layout","path":"app/:appName/test/:testName","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/test._testName-l0sNRNKZ.js","imports":[],"css":[]},"routes/_app+/discord":{"id":"routes/_app+/discord","parentId":"routes/_app+/_layout","path":"discord","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/discord-CgwNGD2p.js","imports":["/assets/index-Czg1ruVn.js","/assets/clsx-B-dksMZM.js","/assets/components-wgHiPsTg.js","/assets/misc-S5ZD98sI.js","/assets/user-CdUDQ7a8.js","/assets/discord-yZor-3t1.js"],"css":[]},"routes/_app+/finished":{"id":"routes/_app+/finished","parentId":"routes/_app+/_layout","path":"finished","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/finished-B9qjUR4B.js","imports":["/assets/index-Czg1ruVn.js","/assets/components-wgHiPsTg.js","/assets/clsx-B-dksMZM.js","/assets/misc-S5ZD98sI.js","/assets/request-info-DHtGM4FI.js","/assets/tooltip-BtzSIxlB.js","/assets/client-hints-DLYDs4RF.js","/assets/index-yEAxvbDV.js","/assets/loading-B0uKxERz.js","/assets/user-CdUDQ7a8.js","/assets/epic-video-DJN9_SUj.js","/assets/progress-bar-wMXWRGq0.js","/assets/index-D6ukHE4T.js","/assets/nav-chevrons-DaXg0NPS.js","/assets/mdx-BENF-kTQ.js","/assets/seo-pBpFCWsy.js","/assets/progress-BwanvUpB.js"],"css":["/assets/epic-video-DUnRvy1A.css"]},"routes/_app+/index":{"id":"routes/_app+/index","parentId":"routes/_app+/_layout","index":true,"hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":true,"module":"/assets/index-3HxjMIAS.js","imports":["/assets/index-Czg1ruVn.js","/assets/components-wgHiPsTg.js","/assets/clsx-B-dksMZM.js","/assets/misc-S5ZD98sI.js","/assets/request-info-DHtGM4FI.js","/assets/tooltip-BtzSIxlB.js","/assets/client-hints-DLYDs4RF.js","/assets/index-yEAxvbDV.js","/assets/loading-B0uKxERz.js","/assets/user-CdUDQ7a8.js","/assets/epic-video-DJN9_SUj.js","/assets/progress-bar-wMXWRGq0.js","/assets/index-D6ukHE4T.js","/assets/error-boundary-BVTbN8PZ.js","/assets/mdx-BENF-kTQ.js","/assets/progress-BwanvUpB.js"],"css":["/assets/epic-video-DUnRvy1A.css"]},"routes/_app+/login":{"id":"routes/_app+/login","parentId":"routes/_app+/_layout","path":"login","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/login-CHE9W6po.js","imports":["/assets/index-Czg1ruVn.js","/assets/clsx-B-dksMZM.js","/assets/components-wgHiPsTg.js","/assets/request-info-DHtGM4FI.js","/assets/client-hints-DLYDs4RF.js","/assets/use-event-source-ySol3hbz.js","/assets/button-BA3iiLRs.js","/assets/loading-B0uKxERz.js"],"css":[]},"routes/_app+/support":{"id":"routes/_app+/support","parentId":"routes/_app+/_layout","path":"support","hasAction":false,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/support-D1ydJNdm.js","imports":["/assets/index-Czg1ruVn.js","/assets/components-wgHiPsTg.js"],"css":[]},"routes/admin+/_layout":{"id":"routes/admin+/_layout","parentId":"root","path":"admin","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/_layout-B9Y-8OU6.js","imports":["/assets/index-Czg1ruVn.js","/assets/clsx-B-dksMZM.js","/assets/components-wgHiPsTg.js","/assets/misc-S5ZD98sI.js","/assets/tooltip-BtzSIxlB.js","/assets/progress-BwanvUpB.js"],"css":[]},"routes/admin+/apps":{"id":"routes/admin+/apps","parentId":"routes/admin+/_layout","path":"apps","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/apps-l0sNRNKZ.js","imports":[],"css":[]},"routes/admin+/cache":{"id":"routes/admin+/cache","parentId":"routes/admin+/_layout","path":"cache","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/cache-l0sNRNKZ.js","imports":[],"css":[]},"routes/apps":{"id":"routes/apps","parentId":"root","path":"apps","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/apps-DP2rzg_V.js","imports":[],"css":[]},"routes/diff":{"id":"routes/diff","parentId":"root","path":"diff","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/diff-Bd9WnUnR.js","imports":["/assets/index-Czg1ruVn.js","/assets/clsx-B-dksMZM.js","/assets/components-wgHiPsTg.js","/assets/misc-S5ZD98sI.js","/assets/tooltip-BtzSIxlB.js","/assets/request-info-DHtGM4FI.js","/assets/client-hints-DLYDs4RF.js","/assets/index-yEAxvbDV.js","/assets/loading-B0uKxERz.js","/assets/user-CdUDQ7a8.js","/assets/epic-video-DJN9_SUj.js","/assets/progress-bar-wMXWRGq0.js","/assets/index-C6ToujzV.js","/assets/mdx-BENF-kTQ.js","/assets/diff-CpG96hGZ.js","/assets/nav-chevrons-DaXg0NPS.js"],"css":["/assets/epic-video-DUnRvy1A.css"]},"routes/discord.callback":{"id":"routes/discord.callback","parentId":"root","path":"discord/callback","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/discord.callback-l0sNRNKZ.js","imports":[],"css":[]},"routes/exercises":{"id":"routes/exercises","parentId":"root","path":"exercises","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/exercises-l0sNRNKZ.js","imports":[],"css":[]},"routes/launch-editor":{"id":"routes/launch-editor","parentId":"root","path":"launch-editor","hasAction":true,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/launch-editor-l0sNRNKZ.js","imports":[],"css":[]},"routes/login-sse":{"id":"routes/login-sse","parentId":"root","path":"login-sse","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/login-sse-l0sNRNKZ.js","imports":[],"css":[]},"routes/og":{"id":"routes/og","parentId":"root","path":"og","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/og-l0sNRNKZ.js","imports":[],"css":[]},"routes/onboarding":{"id":"routes/onboarding","parentId":"root","path":"onboarding","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/onboarding-FD1FkQuu.js","imports":["/assets/index-Czg1ruVn.js","/assets/clsx-B-dksMZM.js","/assets/components-wgHiPsTg.js","/assets/misc-S5ZD98sI.js","/assets/request-info-DHtGM4FI.js","/assets/tooltip-BtzSIxlB.js","/assets/client-hints-DLYDs4RF.js","/assets/index-yEAxvbDV.js","/assets/loading-B0uKxERz.js","/assets/user-CdUDQ7a8.js","/assets/button-BA3iiLRs.js","/assets/epic-video-DJN9_SUj.js"],"css":["/assets/epic-video-DUnRvy1A.css"]},"routes/processes":{"id":"routes/processes","parentId":"root","path":"processes","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/processes-l0sNRNKZ.js","imports":[],"css":[]},"routes/progress":{"id":"routes/progress","parentId":"root","path":"progress","hasAction":true,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/progress-l0sNRNKZ.js","imports":[],"css":[]},"routes/set-playground":{"id":"routes/set-playground","parentId":"root","path":"set-playground","hasAction":true,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/set-playground-l0sNRNKZ.js","imports":[],"css":[]},"routes/start":{"id":"routes/start","parentId":"root","path":"start","hasAction":true,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/start-l0sNRNKZ.js","imports":[],"css":[]},"routes/test":{"id":"routes/test","parentId":"root","path":"test","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/test-l0sNRNKZ.js","imports":[],"css":[]},"routes/theme/index":{"id":"routes/theme/index","parentId":"root","path":"theme","hasAction":true,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/index-l0sNRNKZ.js","imports":[],"css":[]},"routes/update-mdx-cache":{"id":"routes/update-mdx-cache","parentId":"root","path":"update-mdx-cache","hasAction":true,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/update-mdx-cache-l0sNRNKZ.js","imports":[],"css":[]},"routes/video-player/index":{"id":"routes/video-player/index","parentId":"root","path":"video-player","hasAction":true,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/index-DP2rzg_V.js","imports":[],"css":[]}},"url":"/assets/manifest-78b57635.js","version":"78b57635"};
1
+ window.__remixManifest={"entry":{"module":"/assets/entry.client-Cs8lBz8l.js","imports":["/assets/index-Czg1ruVn.js","/assets/components-wgHiPsTg.js"],"css":[]},"routes":{"root":{"id":"root","path":"","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":true,"module":"/assets/root-B86bLhuo.js","imports":["/assets/index-Czg1ruVn.js","/assets/components-wgHiPsTg.js","/assets/clsx-B-dksMZM.js","/assets/misc-S5ZD98sI.js","/assets/request-info-DHtGM4FI.js","/assets/tooltip-BtzSIxlB.js","/assets/client-hints-DLYDs4RF.js","/assets/error-boundary-BVTbN8PZ.js","/assets/progress-bar-wMXWRGq0.js","/assets/index-DjzedX4O.js","/assets/index-yEAxvbDV.js","/assets/presence-CW1_eiIo.js","/assets/seo-pBpFCWsy.js"],"css":[]},"routes/$":{"id":"routes/$","parentId":"root","path":"*","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":true,"module":"/assets/_-DYArYM0Z.js","imports":["/assets/index-Czg1ruVn.js","/assets/clsx-B-dksMZM.js","/assets/components-wgHiPsTg.js","/assets/misc-S5ZD98sI.js","/assets/error-boundary-BVTbN8PZ.js"],"css":[]},"routes/_app+/_layout":{"id":"routes/_app+/_layout","parentId":"root","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/_layout-dHX2Hcew.js","imports":["/assets/index-Czg1ruVn.js","/assets/clsx-B-dksMZM.js","/assets/components-wgHiPsTg.js","/assets/misc-S5ZD98sI.js","/assets/tooltip-BtzSIxlB.js","/assets/request-info-DHtGM4FI.js","/assets/client-hints-DLYDs4RF.js","/assets/index-C6ToujzV.js","/assets/user-CdUDQ7a8.js","/assets/presence-CW1_eiIo.js","/assets/progress-BwanvUpB.js","/assets/index-yEAxvbDV.js"],"css":[]},"routes/_app+/_exercises+/_layout":{"id":"routes/_app+/_exercises+/_layout","parentId":"routes/_app+/_layout","hasAction":false,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/_layout-DaZNLfOL.js","imports":["/assets/index-Czg1ruVn.js"],"css":[]},"routes/_app+/_exercises+/$exerciseNumber":{"id":"routes/_app+/_exercises+/$exerciseNumber","parentId":"routes/_app+/_exercises+/_layout","path":":exerciseNumber","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":true,"module":"/assets/_exerciseNumber-Ccwr4LZw.js","imports":["/assets/index-Czg1ruVn.js","/assets/components-wgHiPsTg.js","/assets/clsx-B-dksMZM.js","/assets/misc-S5ZD98sI.js","/assets/request-info-DHtGM4FI.js","/assets/tooltip-BtzSIxlB.js","/assets/client-hints-DLYDs4RF.js","/assets/index-yEAxvbDV.js","/assets/loading-B0uKxERz.js","/assets/user-CdUDQ7a8.js","/assets/epic-video-DJN9_SUj.js","/assets/progress-bar-wMXWRGq0.js","/assets/index-D6ukHE4T.js","/assets/mdx-BENF-kTQ.js","/assets/progress-BwanvUpB.js","/assets/seo-pBpFCWsy.js"],"css":["/assets/epic-video-DUnRvy1A.css"]},"routes/_app+/_exercises+/$exerciseNumber_.$stepNumber":{"id":"routes/_app+/_exercises+/$exerciseNumber_.$stepNumber","parentId":"routes/_app+/_exercises+/_layout","path":":exerciseNumber/:stepNumber","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":true,"module":"/assets/_exerciseNumber_._stepNumber-Ct5BCuA1.js","imports":["/assets/index-Czg1ruVn.js","/assets/clsx-B-dksMZM.js","/assets/components-wgHiPsTg.js","/assets/misc-S5ZD98sI.js"],"css":[]},"routes/_app+/_exercises+/$exerciseNumber_.$stepNumber.$type+/_layout":{"id":"routes/_app+/_exercises+/$exerciseNumber_.$stepNumber.$type+/_layout","parentId":"routes/_app+/_exercises+/$exerciseNumber_.$stepNumber","path":":type","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":true,"module":"/assets/_layout-Bn9QhWq9.js","imports":["/assets/index-Czg1ruVn.js","/assets/clsx-B-dksMZM.js","/assets/components-wgHiPsTg.js","/assets/misc-S5ZD98sI.js","/assets/tooltip-BtzSIxlB.js","/assets/request-info-DHtGM4FI.js","/assets/client-hints-DLYDs4RF.js","/assets/index-yEAxvbDV.js","/assets/loading-B0uKxERz.js","/assets/user-CdUDQ7a8.js","/assets/epic-video-DJN9_SUj.js","/assets/progress-bar-wMXWRGq0.js","/assets/index-C6ToujzV.js","/assets/mdx-BENF-kTQ.js","/assets/index-D6ukHE4T.js","/assets/diff-CpG96hGZ.js","/assets/error-boundary-BVTbN8PZ.js","/assets/nav-chevrons-DaXg0NPS.js","/assets/progress-BwanvUpB.js","/assets/seo-pBpFCWsy.js","/assets/discord-yZor-3t1.js","/assets/index-DjzedX4O.js","/assets/button-BA3iiLRs.js","/assets/use-event-source-ySol3hbz.js"],"css":["/assets/epic-video-DUnRvy1A.css"]},"routes/_app+/_exercises+/$exerciseNumber_.$stepNumber.index":{"id":"routes/_app+/_exercises+/$exerciseNumber_.$stepNumber.index","parentId":"routes/_app+/_exercises+/$exerciseNumber_.$stepNumber","index":true,"hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/_exerciseNumber_._stepNumber.index-l0sNRNKZ.js","imports":[],"css":[]},"routes/_app+/_exercises+/$exerciseNumber_.finished":{"id":"routes/_app+/_exercises+/$exerciseNumber_.finished","parentId":"routes/_app+/_exercises+/_layout","path":":exerciseNumber/finished","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/_exerciseNumber_.finished-gEWcHsfL.js","imports":["/assets/index-Czg1ruVn.js","/assets/components-wgHiPsTg.js","/assets/clsx-B-dksMZM.js","/assets/misc-S5ZD98sI.js","/assets/request-info-DHtGM4FI.js","/assets/tooltip-BtzSIxlB.js","/assets/client-hints-DLYDs4RF.js","/assets/index-yEAxvbDV.js","/assets/loading-B0uKxERz.js","/assets/user-CdUDQ7a8.js","/assets/epic-video-DJN9_SUj.js","/assets/progress-bar-wMXWRGq0.js","/assets/index-D6ukHE4T.js","/assets/nav-chevrons-DaXg0NPS.js","/assets/mdx-BENF-kTQ.js","/assets/progress-BwanvUpB.js","/assets/seo-pBpFCWsy.js"],"css":["/assets/epic-video-DUnRvy1A.css"]},"routes/_app+/account":{"id":"routes/_app+/account","parentId":"routes/_app+/_layout","path":"account","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/account-uvU1jIL2.js","imports":["/assets/index-Czg1ruVn.js","/assets/clsx-B-dksMZM.js","/assets/components-wgHiPsTg.js","/assets/misc-S5ZD98sI.js","/assets/request-info-DHtGM4FI.js","/assets/button-BA3iiLRs.js","/assets/tooltip-BtzSIxlB.js","/assets/user-CdUDQ7a8.js","/assets/presence-CW1_eiIo.js"],"css":[]},"routes/_app+/app.$appName+/$":{"id":"routes/_app+/app.$appName+/$","parentId":"routes/_app+/_layout","path":"app/:appName/*","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/_-l0sNRNKZ.js","imports":[],"css":[]},"routes/_app+/app.$appName+/api.$":{"id":"routes/_app+/app.$appName+/api.$","parentId":"routes/_app+/_layout","path":"app/:appName/api/*","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/api._-l0sNRNKZ.js","imports":[],"css":[]},"routes/_app+/app.$appName+/epic_ws[.js]":{"id":"routes/_app+/app.$appName+/epic_ws[.js]","parentId":"routes/_app+/_layout","path":"app/:appName/epic_ws.js","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/epic_ws_.js_-l0sNRNKZ.js","imports":[],"css":[]},"routes/_app+/app.$appName+/index":{"id":"routes/_app+/app.$appName+/index","parentId":"routes/_app+/_layout","path":"app/:appName/","index":true,"hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/index-l0sNRNKZ.js","imports":[],"css":[]},"routes/_app+/app.$appName+/test.$testName":{"id":"routes/_app+/app.$appName+/test.$testName","parentId":"routes/_app+/_layout","path":"app/:appName/test/:testName","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/test._testName-l0sNRNKZ.js","imports":[],"css":[]},"routes/_app+/discord":{"id":"routes/_app+/discord","parentId":"routes/_app+/_layout","path":"discord","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/discord-CgwNGD2p.js","imports":["/assets/index-Czg1ruVn.js","/assets/clsx-B-dksMZM.js","/assets/components-wgHiPsTg.js","/assets/misc-S5ZD98sI.js","/assets/user-CdUDQ7a8.js","/assets/discord-yZor-3t1.js"],"css":[]},"routes/_app+/finished":{"id":"routes/_app+/finished","parentId":"routes/_app+/_layout","path":"finished","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/finished-B9qjUR4B.js","imports":["/assets/index-Czg1ruVn.js","/assets/components-wgHiPsTg.js","/assets/clsx-B-dksMZM.js","/assets/misc-S5ZD98sI.js","/assets/request-info-DHtGM4FI.js","/assets/tooltip-BtzSIxlB.js","/assets/client-hints-DLYDs4RF.js","/assets/index-yEAxvbDV.js","/assets/loading-B0uKxERz.js","/assets/user-CdUDQ7a8.js","/assets/epic-video-DJN9_SUj.js","/assets/progress-bar-wMXWRGq0.js","/assets/index-D6ukHE4T.js","/assets/nav-chevrons-DaXg0NPS.js","/assets/mdx-BENF-kTQ.js","/assets/seo-pBpFCWsy.js","/assets/progress-BwanvUpB.js"],"css":["/assets/epic-video-DUnRvy1A.css"]},"routes/_app+/index":{"id":"routes/_app+/index","parentId":"routes/_app+/_layout","index":true,"hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":true,"module":"/assets/index-3HxjMIAS.js","imports":["/assets/index-Czg1ruVn.js","/assets/components-wgHiPsTg.js","/assets/clsx-B-dksMZM.js","/assets/misc-S5ZD98sI.js","/assets/request-info-DHtGM4FI.js","/assets/tooltip-BtzSIxlB.js","/assets/client-hints-DLYDs4RF.js","/assets/index-yEAxvbDV.js","/assets/loading-B0uKxERz.js","/assets/user-CdUDQ7a8.js","/assets/epic-video-DJN9_SUj.js","/assets/progress-bar-wMXWRGq0.js","/assets/index-D6ukHE4T.js","/assets/error-boundary-BVTbN8PZ.js","/assets/mdx-BENF-kTQ.js","/assets/progress-BwanvUpB.js"],"css":["/assets/epic-video-DUnRvy1A.css"]},"routes/_app+/login":{"id":"routes/_app+/login","parentId":"routes/_app+/_layout","path":"login","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/login-CHE9W6po.js","imports":["/assets/index-Czg1ruVn.js","/assets/clsx-B-dksMZM.js","/assets/components-wgHiPsTg.js","/assets/request-info-DHtGM4FI.js","/assets/client-hints-DLYDs4RF.js","/assets/use-event-source-ySol3hbz.js","/assets/button-BA3iiLRs.js","/assets/loading-B0uKxERz.js"],"css":[]},"routes/_app+/support":{"id":"routes/_app+/support","parentId":"routes/_app+/_layout","path":"support","hasAction":false,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/support-D1ydJNdm.js","imports":["/assets/index-Czg1ruVn.js","/assets/components-wgHiPsTg.js"],"css":[]},"routes/admin+/_layout":{"id":"routes/admin+/_layout","parentId":"root","path":"admin","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/_layout-B9Y-8OU6.js","imports":["/assets/index-Czg1ruVn.js","/assets/clsx-B-dksMZM.js","/assets/components-wgHiPsTg.js","/assets/misc-S5ZD98sI.js","/assets/tooltip-BtzSIxlB.js","/assets/progress-BwanvUpB.js"],"css":[]},"routes/admin+/apps":{"id":"routes/admin+/apps","parentId":"routes/admin+/_layout","path":"apps","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/apps-DP2rzg_V.js","imports":[],"css":[]},"routes/admin+/cache":{"id":"routes/admin+/cache","parentId":"routes/admin+/_layout","path":"cache","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/cache-l0sNRNKZ.js","imports":[],"css":[]},"routes/apps":{"id":"routes/apps","parentId":"root","path":"apps","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/apps-l0sNRNKZ.js","imports":[],"css":[]},"routes/diff":{"id":"routes/diff","parentId":"root","path":"diff","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/diff-Bd9WnUnR.js","imports":["/assets/index-Czg1ruVn.js","/assets/clsx-B-dksMZM.js","/assets/components-wgHiPsTg.js","/assets/misc-S5ZD98sI.js","/assets/tooltip-BtzSIxlB.js","/assets/request-info-DHtGM4FI.js","/assets/client-hints-DLYDs4RF.js","/assets/index-yEAxvbDV.js","/assets/loading-B0uKxERz.js","/assets/user-CdUDQ7a8.js","/assets/epic-video-DJN9_SUj.js","/assets/progress-bar-wMXWRGq0.js","/assets/index-C6ToujzV.js","/assets/mdx-BENF-kTQ.js","/assets/diff-CpG96hGZ.js","/assets/nav-chevrons-DaXg0NPS.js"],"css":["/assets/epic-video-DUnRvy1A.css"]},"routes/discord.callback":{"id":"routes/discord.callback","parentId":"root","path":"discord/callback","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/discord.callback-l0sNRNKZ.js","imports":[],"css":[]},"routes/exercises":{"id":"routes/exercises","parentId":"root","path":"exercises","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/exercises-l0sNRNKZ.js","imports":[],"css":[]},"routes/launch-editor":{"id":"routes/launch-editor","parentId":"root","path":"launch-editor","hasAction":true,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/launch-editor-l0sNRNKZ.js","imports":[],"css":[]},"routes/login-sse":{"id":"routes/login-sse","parentId":"root","path":"login-sse","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/login-sse-l0sNRNKZ.js","imports":[],"css":[]},"routes/og":{"id":"routes/og","parentId":"root","path":"og","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/og-l0sNRNKZ.js","imports":[],"css":[]},"routes/onboarding":{"id":"routes/onboarding","parentId":"root","path":"onboarding","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/onboarding-FD1FkQuu.js","imports":["/assets/index-Czg1ruVn.js","/assets/clsx-B-dksMZM.js","/assets/components-wgHiPsTg.js","/assets/misc-S5ZD98sI.js","/assets/request-info-DHtGM4FI.js","/assets/tooltip-BtzSIxlB.js","/assets/client-hints-DLYDs4RF.js","/assets/index-yEAxvbDV.js","/assets/loading-B0uKxERz.js","/assets/user-CdUDQ7a8.js","/assets/button-BA3iiLRs.js","/assets/epic-video-DJN9_SUj.js"],"css":["/assets/epic-video-DUnRvy1A.css"]},"routes/processes":{"id":"routes/processes","parentId":"root","path":"processes","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/processes-l0sNRNKZ.js","imports":[],"css":[]},"routes/progress":{"id":"routes/progress","parentId":"root","path":"progress","hasAction":true,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/progress-l0sNRNKZ.js","imports":[],"css":[]},"routes/set-playground":{"id":"routes/set-playground","parentId":"root","path":"set-playground","hasAction":true,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/set-playground-l0sNRNKZ.js","imports":[],"css":[]},"routes/start":{"id":"routes/start","parentId":"root","path":"start","hasAction":true,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/start-l0sNRNKZ.js","imports":[],"css":[]},"routes/test":{"id":"routes/test","parentId":"root","path":"test","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/test-l0sNRNKZ.js","imports":[],"css":[]},"routes/theme/index":{"id":"routes/theme/index","parentId":"root","path":"theme","hasAction":true,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/index-DP2rzg_V.js","imports":[],"css":[]},"routes/update-mdx-cache":{"id":"routes/update-mdx-cache","parentId":"root","path":"update-mdx-cache","hasAction":true,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/update-mdx-cache-l0sNRNKZ.js","imports":[],"css":[]},"routes/video-player/index":{"id":"routes/video-player/index","parentId":"root","path":"video-player","hasAction":true,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/index-K6Dvbx-E.js","imports":[],"css":[]}},"url":"/assets/manifest-b122038e.js","version":"b122038e"};
@@ -1,4 +1,4 @@
1
- import{u as H,l as L,r as h,n as Y,R as m,j as c,c as Q,O as $,e as V}from"./index-Czg1ruVn.js";import{d as J,u as U,c as X}from"./misc-S5ZD98sI.js";import{G as z}from"./error-boundary-BVTbN8PZ.js";import{E as K}from"./progress-bar-wMXWRGq0.js";import{T as Z,J as ee}from"./index-DjzedX4O.js";import{T as te}from"./tooltip-BtzSIxlB.js";import{u as ne}from"./index-yEAxvbDV.js";import{C as ie}from"./client-hints-DLYDs4RF.js";import{P as re}from"./presence-CW1_eiIo.js";import{g as oe}from"./seo-pBpFCWsy.js";import{p as se,q as ae,_ as ce,u as T,M as ue,t as le,S as fe}from"./components-wgHiPsTg.js";import"./clsx-B-dksMZM.js";import"./request-info-DHtGM4FI.js";/**
1
+ import{u as H,l as L,r as h,n as Y,R as m,j as c,c as Q,O as V,e as $}from"./index-Czg1ruVn.js";import{d as J,u as U,c as X}from"./misc-S5ZD98sI.js";import{G as z}from"./error-boundary-BVTbN8PZ.js";import{E as K}from"./progress-bar-wMXWRGq0.js";import{T as Z,J as ee}from"./index-DjzedX4O.js";import{T as te}from"./tooltip-BtzSIxlB.js";import{u as ne}from"./index-yEAxvbDV.js";import{C as ie}from"./client-hints-DLYDs4RF.js";import{P as re}from"./presence-CW1_eiIo.js";import{g as oe}from"./seo-pBpFCWsy.js";import{p as se,q as ae,_ as ce,u as T,M as ue,t as le,S as fe}from"./components-wgHiPsTg.js";import"./clsx-B-dksMZM.js";import"./request-info-DHtGM4FI.js";/**
2
2
  * @remix-run/react v2.10.0
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
@@ -7,7 +7,7 @@ import{u as H,l as L,r as h,n as Y,R as m,j as c,c as Q,O as $,e as V}from"./ind
7
7
  * LICENSE.md file in the root directory of this source tree.
8
8
  *
9
9
  * @license MIT
10
- */let N="positions";function he({getKey:e,...n}){let{isSpaMode:r}=se(),t=H(),i=L();ae({getKey:e,storageKey:N});let o=h.useMemo(()=>{if(!e)return null;let a=e(t,i);return a!==t.key?a:null},[]);if(r)return null;let s=((a,l)=>{if(!window.history.state||!window.history.state.key){let u=Math.random().toString(32).slice(2);window.history.replaceState({key:u},"")}try{let x=JSON.parse(sessionStorage.getItem(a)||"{}")[l||window.history.state.key];typeof x=="number"&&window.scrollTo(0,x)}catch(u){console.error(u),sessionStorage.removeItem(a)}}).toString();return h.createElement("script",ce({},n,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${s})(${JSON.stringify(N)}, ${JSON.stringify(o)})`}}))}var O={linear:function(e,n,r,t){var i=r-n;return i*e/t+n},easeInQuad:function(e,n,r,t){var i=r-n;return i*(e/=t)*e+n},easeOutQuad:function(e,n,r,t){var i=r-n;return-i*(e/=t)*(e-2)+n},easeInOutQuad:function(e,n,r,t){var i=r-n;return(e/=t/2)<1?i/2*e*e+n:-i/2*(--e*(e-2)-1)+n},easeInCubic:function(e,n,r,t){var i=r-n;return i*(e/=t)*e*e+n},easeOutCubic:function(e,n,r,t){var i=r-n;return i*((e=e/t-1)*e*e+1)+n},easeInOutCubic:function(e,n,r,t){var i=r-n;return(e/=t/2)<1?i/2*e*e*e+n:i/2*((e-=2)*e*e+2)+n},easeInQuart:function(e,n,r,t){var i=r-n;return i*(e/=t)*e*e*e+n},easeOutQuart:function(e,n,r,t){var i=r-n;return-i*((e=e/t-1)*e*e*e-1)+n},easeInOutQuart:function(e,n,r,t){var i=r-n;return(e/=t/2)<1?i/2*e*e*e*e+n:-i/2*((e-=2)*e*e*e-2)+n},easeInQuint:function(e,n,r,t){var i=r-n;return i*(e/=t)*e*e*e*e+n},easeOutQuint:function(e,n,r,t){var i=r-n;return i*((e=e/t-1)*e*e*e*e+1)+n},easeInOutQuint:function(e,n,r,t){var i=r-n;return(e/=t/2)<1?i/2*e*e*e*e*e+n:i/2*((e-=2)*e*e*e*e+2)+n},easeInSine:function(e,n,r,t){var i=r-n;return-i*Math.cos(e/t*(Math.PI/2))+i+n},easeOutSine:function(e,n,r,t){var i=r-n;return i*Math.sin(e/t*(Math.PI/2))+n},easeInOutSine:function(e,n,r,t){var i=r-n;return-i/2*(Math.cos(Math.PI*e/t)-1)+n},easeInExpo:function(e,n,r,t){var i=r-n;return e==0?n:i*Math.pow(2,10*(e/t-1))+n},easeOutExpo:function(e,n,r,t){var i=r-n;return e==t?n+i:i*(-Math.pow(2,-10*e/t)+1)+n},easeInOutExpo:function(e,n,r,t){var i=r-n;return e===0?n:e===t?n+i:(e/=t/2)<1?i/2*Math.pow(2,10*(e-1))+n:i/2*(-Math.pow(2,-10*--e)+2)+n},easeInCirc:function(e,n,r,t){var i=r-n;return-i*(Math.sqrt(1-(e/=t)*e)-1)+n},easeOutCirc:function(e,n,r,t){var i=r-n;return i*Math.sqrt(1-(e=e/t-1)*e)+n},easeInOutCirc:function(e,n,r,t){var i=r-n;return(e/=t/2)<1?-i/2*(Math.sqrt(1-e*e)-1)+n:i/2*(Math.sqrt(1-(e-=2)*e)+1)+n},easeInElastic:function(e,n,r,t){var i=r-n,o,s,a;return a=1.70158,s=0,o=i,e===0?n:(e/=t)===1?n+i:(s||(s=t*.3),o<Math.abs(i)?(o=i,a=s/4):a=s/(2*Math.PI)*Math.asin(i/o),-(o*Math.pow(2,10*(e-=1))*Math.sin((e*t-a)*(2*Math.PI)/s))+n)},easeOutElastic:function(e,n,r,t){var i=r-n,o,s,a;return a=1.70158,s=0,o=i,e===0?n:(e/=t)===1?n+i:(s||(s=t*.3),o<Math.abs(i)?(o=i,a=s/4):a=s/(2*Math.PI)*Math.asin(i/o),o*Math.pow(2,-10*e)*Math.sin((e*t-a)*(2*Math.PI)/s)+i+n)},easeInOutElastic:function(e,n,r,t){var i=r-n,o,s,a;return a=1.70158,s=0,o=i,e===0?n:(e/=t/2)===2?n+i:(s||(s=t*(.3*1.5)),o<Math.abs(i)?(o=i,a=s/4):a=s/(2*Math.PI)*Math.asin(i/o),e<1?-.5*(o*Math.pow(2,10*(e-=1))*Math.sin((e*t-a)*(2*Math.PI)/s))+n:o*Math.pow(2,-10*(e-=1))*Math.sin((e*t-a)*(2*Math.PI)/s)*.5+i+n)},easeInBack:function(e,n,r,t,i){var o=r-n;return i===void 0&&(i=1.70158),o*(e/=t)*e*((i+1)*e-i)+n},easeOutBack:function(e,n,r,t,i){var o=r-n;return i===void 0&&(i=1.70158),o*((e=e/t-1)*e*((i+1)*e+i)+1)+n},easeInOutBack:function(e,n,r,t,i){var o=r-n;return i===void 0&&(i=1.70158),(e/=t/2)<1?o/2*(e*e*(((i*=1.525)+1)*e-i))+n:o/2*((e-=2)*e*(((i*=1.525)+1)*e+i)+2)+n},easeInBounce:function(e,n,r,t){var i=r-n,o;return o=O.easeOutBounce(t-e,0,i,t),i-o+n},easeOutBounce:function(e,n,r,t){var i=r-n;return(e/=t)<1/2.75?i*(7.5625*e*e)+n:e<2/2.75?i*(7.5625*(e-=1.5/2.75)*e+.75)+n:e<2.5/2.75?i*(7.5625*(e-=2.25/2.75)*e+.9375)+n:i*(7.5625*(e-=2.625/2.75)*e+.984375)+n},easeInOutBounce:function(e,n,r,t){var i=r-n,o;return e<t/2?(o=O.easeInBounce(e*2,0,i,t),o*.5+n):(o=O.easeOutBounce(e*2-t,0,i,t),o*.5+i*.5+n)}},pe=O;const ve=Y(pe);function de(e,n){for(var r=0;r<n.length;r++){var t=n[r];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}function ge(e,n,r){return n&&de(e.prototype,n),e}function y(){return y=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},y.apply(this,arguments)}function we(e,n){e.prototype=Object.create(n.prototype),e.prototype.constructor=e,C(e,n)}function C(e,n){return C=Object.setPrototypeOf||function(t,i){return t.__proto__=i,t},C(e,n)}function me(e){return e*Math.PI/180}function f(e,n){return e+Math.random()*(n-e)}function ye(e,n){return Math.floor(e+Math.random()*(n-e+1))}var w;(function(e){e[e.Circle=0]="Circle",e[e.Square=1]="Square",e[e.Strip=2]="Strip"})(w||(w={}));var p;(function(e){e[e.Positive=1]="Positive",e[e.Negative=-1]="Negative"})(p||(p={}));var xe=function(){function e(r,t,i,o){this.getOptions=t;var s=this.getOptions(),a=s.colors,l=s.initialVelocityX,u=s.initialVelocityY;this.context=r,this.x=i,this.y=o,this.w=f(5,20),this.h=f(5,20),this.radius=f(5,10),this.vx=f(-l,l),this.vy=f(-u,0),this.shape=ye(0,2),this.angle=me(f(0,360)),this.angularSpin=f(-.2,.2),this.color=a[Math.floor(Math.random()*a.length)],this.rotateY=f(0,1),this.rotationDirection=f(0,1)?p.Positive:p.Negative}var n=e.prototype;return n.update=function(){var t=this.getOptions(),i=t.gravity,o=t.wind,s=t.friction,a=t.opacity,l=t.drawShape;this.x+=this.vx,this.y+=this.vy,this.vy+=i,this.vx+=o,this.vx*=s,this.vy*=s,this.rotateY>=1&&this.rotationDirection===p.Positive?this.rotationDirection=p.Negative:this.rotateY<=-1&&this.rotationDirection===p.Negative&&(this.rotationDirection=p.Positive);var u=.1*this.rotationDirection;if(this.rotateY+=u,this.angle+=this.angularSpin,this.context.save(),this.context.translate(this.x,this.y),this.context.rotate(this.angle),this.context.scale(1,this.rotateY),this.context.rotate(this.angle),this.context.beginPath(),this.context.fillStyle=this.color,this.context.strokeStyle=this.color,this.context.globalAlpha=a,this.context.lineCap="round",this.context.lineWidth=2,l&&typeof l=="function")l.call(this,this.context);else switch(this.shape){case w.Circle:{this.context.beginPath(),this.context.arc(0,0,this.radius,0,2*Math.PI),this.context.fill();break}case w.Square:{this.context.fillRect(-this.w/2,-this.h/2,this.w,this.h);break}case w.Strip:{this.context.fillRect(-this.w/6,-this.h/2,this.w/3,this.h);break}default:throw new Error("Unknown type in Particle.ts")}this.context.closePath(),this.context.restore()},e}(),Oe=function(n,r){var t=this;this.x=0,this.y=0,this.w=0,this.h=0,this.lastNumberOfPieces=0,this.tweenInitTime=Date.now(),this.particles=[],this.particlesGenerated=0,this.removeParticleAt=function(o){t.particles.splice(o,1)},this.getParticle=function(){var o=f(t.x,t.w+t.x),s=f(t.y,t.h+t.y);return new xe(t.context,t.getOptions,o,s)},this.animate=function(){var o=t.canvas,s=t.context,a=t.particlesGenerated,l=t.lastNumberOfPieces,u=t.getOptions(),x=u.run,E=u.recycle,v=u.numberOfPieces,W=u.debug,A=u.tweenFunction,P=u.tweenDuration;if(!x)return!1;var M=t.particles.length,d=E?M:a,I=Date.now();if(d<v){l!==v&&(t.tweenInitTime=I,t.lastNumberOfPieces=v);for(var D=t.tweenInitTime,q=I-D>P?P:Math.max(0,I-D),G=A(q,d,v,P),F=Math.round(G-d),k=0;k<F;k+=1)t.particles.push(t.getParticle());t.particlesGenerated+=F}return W&&(s.font="12px sans-serif",s.fillStyle="#333",s.textAlign="right",s.fillText("Particles: "+M,o.width-10,o.height-20)),t.particles.forEach(function(g,R){g.update(),(g.y>o.height||g.y<-100||g.x>o.width+100||g.x<-100)&&(E&&d<=v?t.particles[R]=t.getParticle():t.removeParticleAt(R))}),M>0||d<v},this.canvas=n;var i=this.canvas.getContext("2d");if(!i)throw new Error("Could not get canvas context");this.context=i,this.getOptions=r},j={width:typeof window<"u"?window.innerWidth:300,height:typeof window<"u"?window.innerHeight:200,numberOfPieces:200,friction:.99,wind:0,gravity:.1,initialVelocityX:4,initialVelocityY:10,colors:["#f44336","#e91e63","#9c27b0","#673ab7","#3f51b5","#2196f3","#03a9f4","#00bcd4","#009688","#4CAF50","#8BC34A","#CDDC39","#FFEB3B","#FFC107","#FF9800","#FF5722","#795548"],opacity:1,debug:!1,tweenFunction:ve.easeInOutQuad,tweenDuration:5e3,recycle:!0,run:!0},Pe=function(){function e(n,r){var t=this;this.setOptionsWithDefaults=function(o){var s={confettiSource:{x:0,y:0,w:t.canvas.width,h:0}};t._options=y({},s,j,o),Object.assign(t,o.confettiSource)},this.update=function(){var o=t.options,s=o.run,a=o.onConfettiComplete,l=t.canvas,u=t.context;s&&(u.fillStyle="white",u.clearRect(0,0,l.width,l.height)),t.generator.animate()?t.rafId=requestAnimationFrame(t.update):(a&&typeof a=="function"&&t.generator.particlesGenerated>0&&a.call(t,t),t._options.run=!1)},this.reset=function(){t.generator&&t.generator.particlesGenerated>0&&(t.generator.particlesGenerated=0,t.generator.particles=[],t.generator.lastNumberOfPieces=0)},this.stop=function(){t.options={run:!1},t.rafId&&(cancelAnimationFrame(t.rafId),t.rafId=void 0)},this.canvas=n;var i=this.canvas.getContext("2d");if(!i)throw new Error("Could not get canvas context");this.context=i,this.generator=new Oe(this.canvas,function(){return t.options}),this.options=r,this.update()}return ge(e,[{key:"options",get:function(){return this._options},set:function(r){var t=this._options&&this._options.run,i=this._options&&this._options.recycle;this.setOptionsWithDefaults(r),this.generator&&(Object.assign(this.generator,this.options.confettiSource),typeof r.recycle=="boolean"&&r.recycle&&i===!1&&(this.generator.lastNumberOfPieces=this.generator.particles.length)),typeof r.run=="boolean"&&r.run&&t===!1&&this.update()}}]),e}(),B=m.createRef();function S(e){var n={},r={},t={},i=[].concat(Object.keys(j),["confettiSource","drawShape","onConfettiComplete"]),o=["canvasRef"];return Object.keys(e).forEach(function(s){var a=e[s];i.includes(s)?n[s]=a:o.includes(s)?o[s]=a:t[s]=a}),[n,t,r]}var _=function(e){we(n,e);function n(t){for(var i,o=arguments.length,s=new Array(o>1?o-1:0),a=1;a<o;a++)s[a-1]=arguments[a];return i=e.call.apply(e,[this,t].concat(s))||this,i.canvas=m.createRef(),i.canvas=t.canvasRef||B,i}var r=n.prototype;return r.componentDidMount=function(){if(this.canvas.current){var i=S(this.props)[0];this.confetti=new Pe(this.canvas.current,i)}},r.componentDidUpdate=function(){var i=S(this.props)[0];this.confetti&&(this.confetti.options=i)},r.componentWillUnmount=function(){this.confetti&&this.confetti.stop(),this.confetti=void 0},r.render=function(){var i=S(this.props),o=i[0],s=i[1],a=y({zIndex:2,position:"absolute",pointerEvents:"none",top:0,left:0,bottom:0,right:0},s.style);return m.createElement("canvas",Object.assign({width:o.width,height:o.height,ref:this.canvas},s,{style:a}))},n}(h.Component);_.defaultProps=y({},j);_.displayName="ConfettiReact";var Me=m.forwardRef(function(e,n){return m.createElement(_,Object.assign({canvasRef:B},e))});function Ie(){return()=>{}}function Se(){return h.useSyncExternalStore(Ie,()=>!0,()=>!1)}function Ce({children:e,fallback:n=null}){return Se()?h.createElement(h.Fragment,null,e()):h.createElement(h.Fragment,null,n)}function je({id:e}){return e?c.jsx(Ce,{children:()=>c.jsx(Me,{run:!!e,recycle:!1,numberOfPieces:800,width:window.innerWidth,height:window.innerHeight},e)}):null}function _e({toast:e}){return c.jsxs(c.Fragment,{children:[c.jsx(Z,{closeButton:!0,position:"top-center"}),e?c.jsx(Ee,{toast:e}):null]})}function Ee({toast:e}){const{id:n,type:r,title:t,description:i}=e;return h.useEffect(()=>{setTimeout(()=>{ee[r](t,{id:n,description:i})},0)},[i,n,t,r]),null}const De="/assets/app-BKC4z3M_.css",Fe="/assets/tailwind-BZciDTNv.css",Ve=()=>[{rel:"stylesheet",href:"/neogrotesk-font.css"},{rel:"stylesheet",href:"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,200;0,300;0,400;0,500;0,600;1,700&display=swap"},{rel:"stylesheet",href:Fe},{rel:"stylesheet",href:De},{rel:"mask-icon",href:"/favicons/favicon.svg"},{rel:"alternate icon",type:"image/png",href:"/favicon.png"},{rel:"icon",type:"image/svg+xml",href:"/favicon.svg"}],Je=({data:e})=>e?oe({instructor:e.instructor,title:e.workshopTitle,description:e.workshopSubtitle,requestInfo:e.requestInfo}):[];function b({children:e,env:n={},className:r}){const t=V();return h.useEffect(()=>{window.__epicshop??(window.__epicshop={}),window.__epicshop.handleFileChange=t.revalidate},[t]),c.jsxs("html",{lang:"en",className:r,children:[c.jsxs("head",{children:[c.jsx(ie,{}),c.jsx(ue,{}),c.jsx("meta",{charSet:"utf-8"}),c.jsx("meta",{name:"viewport",content:"width=device-width,initial-scale=1"}),c.jsx(le,{}),c.jsx("script",{dangerouslySetInnerHTML:{__html:`window.ENV = ${JSON.stringify(n)}`}})]}),c.jsxs("body",{className:"bg-background text-foreground scrollbar-thin scrollbar-thumb-scrollbar h-screen-safe",children:[e,c.jsx(he,{}),c.jsx(fe,{}),ENV.EPICSHOP_DEPLOYED?null:c.jsx("script",{dangerouslySetInnerHTML:{__html:Re()}})]})]})}function ke(){const e=T(),n=Q(),r=J.useSpinDelay(n.state!=="idle",{delay:400,minDuration:200}),t=U(),i=ne();return c.jsxs(b,{className:X("antialiased h-screen-safe",i,{"cursor-progress":r},t?"alt-down":null),env:e.ENV,children:[c.jsx($,{}),c.jsx(je,{id:e.confettiId}),c.jsx(_e,{toast:e.toast}),c.jsx(K,{})]})}function Ue(){const{user:e}=T();return c.jsx(re,{user:e,children:c.jsx(te,{children:c.jsx(ke,{})})})}function Xe(){return c.jsx(b,{className:"h-screen-safe",children:c.jsx(z,{})})}function Re(){return`
10
+ */let N="positions";function he({getKey:e,...n}){let{isSpaMode:r}=se(),t=H(),i=L();ae({getKey:e,storageKey:N});let o=h.useMemo(()=>{if(!e)return null;let a=e(t,i);return a!==t.key?a:null},[]);if(r)return null;let s=((a,l)=>{if(!window.history.state||!window.history.state.key){let u=Math.random().toString(32).slice(2);window.history.replaceState({key:u},"")}try{let x=JSON.parse(sessionStorage.getItem(a)||"{}")[l||window.history.state.key];typeof x=="number"&&window.scrollTo(0,x)}catch(u){console.error(u),sessionStorage.removeItem(a)}}).toString();return h.createElement("script",ce({},n,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${s})(${JSON.stringify(N)}, ${JSON.stringify(o)})`}}))}var O={linear:function(e,n,r,t){var i=r-n;return i*e/t+n},easeInQuad:function(e,n,r,t){var i=r-n;return i*(e/=t)*e+n},easeOutQuad:function(e,n,r,t){var i=r-n;return-i*(e/=t)*(e-2)+n},easeInOutQuad:function(e,n,r,t){var i=r-n;return(e/=t/2)<1?i/2*e*e+n:-i/2*(--e*(e-2)-1)+n},easeInCubic:function(e,n,r,t){var i=r-n;return i*(e/=t)*e*e+n},easeOutCubic:function(e,n,r,t){var i=r-n;return i*((e=e/t-1)*e*e+1)+n},easeInOutCubic:function(e,n,r,t){var i=r-n;return(e/=t/2)<1?i/2*e*e*e+n:i/2*((e-=2)*e*e+2)+n},easeInQuart:function(e,n,r,t){var i=r-n;return i*(e/=t)*e*e*e+n},easeOutQuart:function(e,n,r,t){var i=r-n;return-i*((e=e/t-1)*e*e*e-1)+n},easeInOutQuart:function(e,n,r,t){var i=r-n;return(e/=t/2)<1?i/2*e*e*e*e+n:-i/2*((e-=2)*e*e*e-2)+n},easeInQuint:function(e,n,r,t){var i=r-n;return i*(e/=t)*e*e*e*e+n},easeOutQuint:function(e,n,r,t){var i=r-n;return i*((e=e/t-1)*e*e*e*e+1)+n},easeInOutQuint:function(e,n,r,t){var i=r-n;return(e/=t/2)<1?i/2*e*e*e*e*e+n:i/2*((e-=2)*e*e*e*e+2)+n},easeInSine:function(e,n,r,t){var i=r-n;return-i*Math.cos(e/t*(Math.PI/2))+i+n},easeOutSine:function(e,n,r,t){var i=r-n;return i*Math.sin(e/t*(Math.PI/2))+n},easeInOutSine:function(e,n,r,t){var i=r-n;return-i/2*(Math.cos(Math.PI*e/t)-1)+n},easeInExpo:function(e,n,r,t){var i=r-n;return e==0?n:i*Math.pow(2,10*(e/t-1))+n},easeOutExpo:function(e,n,r,t){var i=r-n;return e==t?n+i:i*(-Math.pow(2,-10*e/t)+1)+n},easeInOutExpo:function(e,n,r,t){var i=r-n;return e===0?n:e===t?n+i:(e/=t/2)<1?i/2*Math.pow(2,10*(e-1))+n:i/2*(-Math.pow(2,-10*--e)+2)+n},easeInCirc:function(e,n,r,t){var i=r-n;return-i*(Math.sqrt(1-(e/=t)*e)-1)+n},easeOutCirc:function(e,n,r,t){var i=r-n;return i*Math.sqrt(1-(e=e/t-1)*e)+n},easeInOutCirc:function(e,n,r,t){var i=r-n;return(e/=t/2)<1?-i/2*(Math.sqrt(1-e*e)-1)+n:i/2*(Math.sqrt(1-(e-=2)*e)+1)+n},easeInElastic:function(e,n,r,t){var i=r-n,o,s,a;return a=1.70158,s=0,o=i,e===0?n:(e/=t)===1?n+i:(s||(s=t*.3),o<Math.abs(i)?(o=i,a=s/4):a=s/(2*Math.PI)*Math.asin(i/o),-(o*Math.pow(2,10*(e-=1))*Math.sin((e*t-a)*(2*Math.PI)/s))+n)},easeOutElastic:function(e,n,r,t){var i=r-n,o,s,a;return a=1.70158,s=0,o=i,e===0?n:(e/=t)===1?n+i:(s||(s=t*.3),o<Math.abs(i)?(o=i,a=s/4):a=s/(2*Math.PI)*Math.asin(i/o),o*Math.pow(2,-10*e)*Math.sin((e*t-a)*(2*Math.PI)/s)+i+n)},easeInOutElastic:function(e,n,r,t){var i=r-n,o,s,a;return a=1.70158,s=0,o=i,e===0?n:(e/=t/2)===2?n+i:(s||(s=t*(.3*1.5)),o<Math.abs(i)?(o=i,a=s/4):a=s/(2*Math.PI)*Math.asin(i/o),e<1?-.5*(o*Math.pow(2,10*(e-=1))*Math.sin((e*t-a)*(2*Math.PI)/s))+n:o*Math.pow(2,-10*(e-=1))*Math.sin((e*t-a)*(2*Math.PI)/s)*.5+i+n)},easeInBack:function(e,n,r,t,i){var o=r-n;return i===void 0&&(i=1.70158),o*(e/=t)*e*((i+1)*e-i)+n},easeOutBack:function(e,n,r,t,i){var o=r-n;return i===void 0&&(i=1.70158),o*((e=e/t-1)*e*((i+1)*e+i)+1)+n},easeInOutBack:function(e,n,r,t,i){var o=r-n;return i===void 0&&(i=1.70158),(e/=t/2)<1?o/2*(e*e*(((i*=1.525)+1)*e-i))+n:o/2*((e-=2)*e*(((i*=1.525)+1)*e+i)+2)+n},easeInBounce:function(e,n,r,t){var i=r-n,o;return o=O.easeOutBounce(t-e,0,i,t),i-o+n},easeOutBounce:function(e,n,r,t){var i=r-n;return(e/=t)<1/2.75?i*(7.5625*e*e)+n:e<2/2.75?i*(7.5625*(e-=1.5/2.75)*e+.75)+n:e<2.5/2.75?i*(7.5625*(e-=2.25/2.75)*e+.9375)+n:i*(7.5625*(e-=2.625/2.75)*e+.984375)+n},easeInOutBounce:function(e,n,r,t){var i=r-n,o;return e<t/2?(o=O.easeInBounce(e*2,0,i,t),o*.5+n):(o=O.easeOutBounce(e*2-t,0,i,t),o*.5+i*.5+n)}},pe=O;const ve=Y(pe);function de(e,n){for(var r=0;r<n.length;r++){var t=n[r];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}function ge(e,n,r){return n&&de(e.prototype,n),e}function y(){return y=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},y.apply(this,arguments)}function we(e,n){e.prototype=Object.create(n.prototype),e.prototype.constructor=e,C(e,n)}function C(e,n){return C=Object.setPrototypeOf||function(t,i){return t.__proto__=i,t},C(e,n)}function me(e){return e*Math.PI/180}function f(e,n){return e+Math.random()*(n-e)}function ye(e,n){return Math.floor(e+Math.random()*(n-e+1))}var w;(function(e){e[e.Circle=0]="Circle",e[e.Square=1]="Square",e[e.Strip=2]="Strip"})(w||(w={}));var p;(function(e){e[e.Positive=1]="Positive",e[e.Negative=-1]="Negative"})(p||(p={}));var xe=function(){function e(r,t,i,o){this.getOptions=t;var s=this.getOptions(),a=s.colors,l=s.initialVelocityX,u=s.initialVelocityY;this.context=r,this.x=i,this.y=o,this.w=f(5,20),this.h=f(5,20),this.radius=f(5,10),this.vx=f(-l,l),this.vy=f(-u,0),this.shape=ye(0,2),this.angle=me(f(0,360)),this.angularSpin=f(-.2,.2),this.color=a[Math.floor(Math.random()*a.length)],this.rotateY=f(0,1),this.rotationDirection=f(0,1)?p.Positive:p.Negative}var n=e.prototype;return n.update=function(){var t=this.getOptions(),i=t.gravity,o=t.wind,s=t.friction,a=t.opacity,l=t.drawShape;this.x+=this.vx,this.y+=this.vy,this.vy+=i,this.vx+=o,this.vx*=s,this.vy*=s,this.rotateY>=1&&this.rotationDirection===p.Positive?this.rotationDirection=p.Negative:this.rotateY<=-1&&this.rotationDirection===p.Negative&&(this.rotationDirection=p.Positive);var u=.1*this.rotationDirection;if(this.rotateY+=u,this.angle+=this.angularSpin,this.context.save(),this.context.translate(this.x,this.y),this.context.rotate(this.angle),this.context.scale(1,this.rotateY),this.context.rotate(this.angle),this.context.beginPath(),this.context.fillStyle=this.color,this.context.strokeStyle=this.color,this.context.globalAlpha=a,this.context.lineCap="round",this.context.lineWidth=2,l&&typeof l=="function")l.call(this,this.context);else switch(this.shape){case w.Circle:{this.context.beginPath(),this.context.arc(0,0,this.radius,0,2*Math.PI),this.context.fill();break}case w.Square:{this.context.fillRect(-this.w/2,-this.h/2,this.w,this.h);break}case w.Strip:{this.context.fillRect(-this.w/6,-this.h/2,this.w/3,this.h);break}default:throw new Error("Unknown type in Particle.ts")}this.context.closePath(),this.context.restore()},e}(),Oe=function(n,r){var t=this;this.x=0,this.y=0,this.w=0,this.h=0,this.lastNumberOfPieces=0,this.tweenInitTime=Date.now(),this.particles=[],this.particlesGenerated=0,this.removeParticleAt=function(o){t.particles.splice(o,1)},this.getParticle=function(){var o=f(t.x,t.w+t.x),s=f(t.y,t.h+t.y);return new xe(t.context,t.getOptions,o,s)},this.animate=function(){var o=t.canvas,s=t.context,a=t.particlesGenerated,l=t.lastNumberOfPieces,u=t.getOptions(),x=u.run,E=u.recycle,v=u.numberOfPieces,W=u.debug,A=u.tweenFunction,P=u.tweenDuration;if(!x)return!1;var M=t.particles.length,d=E?M:a,I=Date.now();if(d<v){l!==v&&(t.tweenInitTime=I,t.lastNumberOfPieces=v);for(var D=t.tweenInitTime,q=I-D>P?P:Math.max(0,I-D),G=A(q,d,v,P),F=Math.round(G-d),k=0;k<F;k+=1)t.particles.push(t.getParticle());t.particlesGenerated+=F}return W&&(s.font="12px sans-serif",s.fillStyle="#333",s.textAlign="right",s.fillText("Particles: "+M,o.width-10,o.height-20)),t.particles.forEach(function(g,R){g.update(),(g.y>o.height||g.y<-100||g.x>o.width+100||g.x<-100)&&(E&&d<=v?t.particles[R]=t.getParticle():t.removeParticleAt(R))}),M>0||d<v},this.canvas=n;var i=this.canvas.getContext("2d");if(!i)throw new Error("Could not get canvas context");this.context=i,this.getOptions=r},j={width:typeof window<"u"?window.innerWidth:300,height:typeof window<"u"?window.innerHeight:200,numberOfPieces:200,friction:.99,wind:0,gravity:.1,initialVelocityX:4,initialVelocityY:10,colors:["#f44336","#e91e63","#9c27b0","#673ab7","#3f51b5","#2196f3","#03a9f4","#00bcd4","#009688","#4CAF50","#8BC34A","#CDDC39","#FFEB3B","#FFC107","#FF9800","#FF5722","#795548"],opacity:1,debug:!1,tweenFunction:ve.easeInOutQuad,tweenDuration:5e3,recycle:!0,run:!0},Pe=function(){function e(n,r){var t=this;this.setOptionsWithDefaults=function(o){var s={confettiSource:{x:0,y:0,w:t.canvas.width,h:0}};t._options=y({},s,j,o),Object.assign(t,o.confettiSource)},this.update=function(){var o=t.options,s=o.run,a=o.onConfettiComplete,l=t.canvas,u=t.context;s&&(u.fillStyle="white",u.clearRect(0,0,l.width,l.height)),t.generator.animate()?t.rafId=requestAnimationFrame(t.update):(a&&typeof a=="function"&&t.generator.particlesGenerated>0&&a.call(t,t),t._options.run=!1)},this.reset=function(){t.generator&&t.generator.particlesGenerated>0&&(t.generator.particlesGenerated=0,t.generator.particles=[],t.generator.lastNumberOfPieces=0)},this.stop=function(){t.options={run:!1},t.rafId&&(cancelAnimationFrame(t.rafId),t.rafId=void 0)},this.canvas=n;var i=this.canvas.getContext("2d");if(!i)throw new Error("Could not get canvas context");this.context=i,this.generator=new Oe(this.canvas,function(){return t.options}),this.options=r,this.update()}return ge(e,[{key:"options",get:function(){return this._options},set:function(r){var t=this._options&&this._options.run,i=this._options&&this._options.recycle;this.setOptionsWithDefaults(r),this.generator&&(Object.assign(this.generator,this.options.confettiSource),typeof r.recycle=="boolean"&&r.recycle&&i===!1&&(this.generator.lastNumberOfPieces=this.generator.particles.length)),typeof r.run=="boolean"&&r.run&&t===!1&&this.update()}}]),e}(),B=m.createRef();function S(e){var n={},r={},t={},i=[].concat(Object.keys(j),["confettiSource","drawShape","onConfettiComplete"]),o=["canvasRef"];return Object.keys(e).forEach(function(s){var a=e[s];i.includes(s)?n[s]=a:o.includes(s)?o[s]=a:t[s]=a}),[n,t,r]}var _=function(e){we(n,e);function n(t){for(var i,o=arguments.length,s=new Array(o>1?o-1:0),a=1;a<o;a++)s[a-1]=arguments[a];return i=e.call.apply(e,[this,t].concat(s))||this,i.canvas=m.createRef(),i.canvas=t.canvasRef||B,i}var r=n.prototype;return r.componentDidMount=function(){if(this.canvas.current){var i=S(this.props)[0];this.confetti=new Pe(this.canvas.current,i)}},r.componentDidUpdate=function(){var i=S(this.props)[0];this.confetti&&(this.confetti.options=i)},r.componentWillUnmount=function(){this.confetti&&this.confetti.stop(),this.confetti=void 0},r.render=function(){var i=S(this.props),o=i[0],s=i[1],a=y({zIndex:2,position:"absolute",pointerEvents:"none",top:0,left:0,bottom:0,right:0},s.style);return m.createElement("canvas",Object.assign({width:o.width,height:o.height,ref:this.canvas},s,{style:a}))},n}(h.Component);_.defaultProps=y({},j);_.displayName="ConfettiReact";var Me=m.forwardRef(function(e,n){return m.createElement(_,Object.assign({canvasRef:B},e))});function Ie(){return()=>{}}function Se(){return h.useSyncExternalStore(Ie,()=>!0,()=>!1)}function Ce({children:e,fallback:n=null}){return Se()?h.createElement(h.Fragment,null,e()):h.createElement(h.Fragment,null,n)}function je({id:e}){return e?c.jsx(Ce,{children:()=>c.jsx(Me,{run:!!e,recycle:!1,numberOfPieces:800,width:window.innerWidth,height:window.innerHeight},e)}):null}function _e({toast:e}){return c.jsxs(c.Fragment,{children:[c.jsx(Z,{closeButton:!0,position:"top-center"}),e?c.jsx(Ee,{toast:e}):null]})}function Ee({toast:e}){const{id:n,type:r,title:t,description:i}=e;return h.useEffect(()=>{setTimeout(()=>{ee[r](t,{id:n,description:i})},0)},[i,n,t,r]),null}const De="/assets/app-BOiko_VU.css",Fe="/assets/tailwind-BZciDTNv.css",$e=()=>[{rel:"stylesheet",href:"/neogrotesk-font.css"},{rel:"stylesheet",href:"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,200;0,300;0,400;0,500;0,600;1,700&display=swap"},{rel:"stylesheet",href:Fe},{rel:"stylesheet",href:De},{rel:"mask-icon",href:"/favicons/favicon.svg"},{rel:"alternate icon",type:"image/png",href:"/favicon.png"},{rel:"icon",type:"image/svg+xml",href:"/favicon.svg"}],Je=({data:e})=>e?oe({instructor:e.instructor,title:e.workshopTitle,description:e.workshopSubtitle,requestInfo:e.requestInfo}):[];function b({children:e,env:n={},className:r}){const t=$();return h.useEffect(()=>{window.__epicshop??(window.__epicshop={}),window.__epicshop.handleFileChange=t.revalidate},[t]),c.jsxs("html",{lang:"en",className:r,children:[c.jsxs("head",{children:[c.jsx(ie,{}),c.jsx(ue,{}),c.jsx("meta",{charSet:"utf-8"}),c.jsx("meta",{name:"viewport",content:"width=device-width,initial-scale=1"}),c.jsx(le,{}),c.jsx("script",{dangerouslySetInnerHTML:{__html:`window.ENV = ${JSON.stringify(n)}`}})]}),c.jsxs("body",{className:"bg-background text-foreground scrollbar-thin scrollbar-thumb-scrollbar h-screen-safe",children:[e,c.jsx(he,{}),c.jsx(fe,{}),ENV.EPICSHOP_DEPLOYED?null:c.jsx("script",{dangerouslySetInnerHTML:{__html:Re()}})]})]})}function ke(){const e=T(),n=Q(),r=J.useSpinDelay(n.state!=="idle",{delay:400,minDuration:200}),t=U(),i=ne();return c.jsxs(b,{className:X("antialiased h-screen-safe",i,{"cursor-progress":r},t?"alt-down":null),env:e.ENV,children:[c.jsx(V,{}),c.jsx(je,{id:e.confettiId}),c.jsx(_e,{toast:e.toast}),c.jsx(K,{})]})}function Ue(){const{user:e}=T();return c.jsx(re,{user:e,children:c.jsx(te,{children:c.jsx(ke,{})})})}function Xe(){return c.jsx(b,{className:"h-screen-safe",children:c.jsx(z,{})})}function Re(){return`
11
11
  function epicLiveReloadConnect(config) {
12
12
  const protocol = location.protocol === "https:" ? "wss:" : "ws:";
13
13
  const host = location.hostname;
@@ -64,5 +64,5 @@ import{u as H,l as L,r as h,n as Y,R as m,j as c,c as Q,O as $,e as V}from"./ind
64
64
  };
65
65
  }
66
66
  epicLiveReloadConnect();
67
- `}export{Xe as ErrorBoundary,Ue as default,Ve as links,Je as meta};
68
- //# sourceMappingURL=root-CfGEU-lr.js.map
67
+ `}export{Xe as ErrorBoundary,Ue as default,$e as links,Je as meta};
68
+ //# sourceMappingURL=root-B86bLhuo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"root-CfGEU-lr.js","sources":["../../../../../node_modules/@remix-run/react/dist/esm/scroll-restoration.js","../../../../../node_modules/tween-functions/index.js","../../../../../node_modules/confetti-react/dist/confetti-react.esm.js","../../../../../node_modules/remix-utils/build/react/use-hydrated.js","../../../../../node_modules/remix-utils/build/react/client-only.js","../../../app/components/confetti.tsx","../../../app/components/toaster.tsx","../../../app/styles/app.css?url","../../../app/styles/tailwind.css?url","../../../app/root.tsx"],"sourcesContent":["/**\n * @remix-run/react v2.10.0\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { extends as _extends } from './_virtual/_rollupPluginBabelHelpers.js';\nimport * as React from 'react';\nimport { useLocation, useMatches, UNSAFE_useScrollRestoration } from 'react-router-dom';\nimport { useRemixContext } from './components.js';\n\nlet STORAGE_KEY = \"positions\";\n\n/**\n * This component will emulate the browser's scroll restoration on location\n * changes.\n *\n * @see https://remix.run/components/scroll-restoration\n */\nfunction ScrollRestoration({\n getKey,\n ...props\n}) {\n let {\n isSpaMode\n } = useRemixContext();\n let location = useLocation();\n let matches = useMatches();\n UNSAFE_useScrollRestoration({\n getKey,\n storageKey: STORAGE_KEY\n });\n\n // In order to support `getKey`, we need to compute a \"key\" here so we can\n // hydrate that up so that SSR scroll restoration isn't waiting on React to\n // hydrate. *However*, our key on the server is not the same as our key on\n // the client! So if the user's getKey implementation returns the SSR\n // location key, then let's ignore it and let our inline <script> below pick\n // up the client side history state key\n let key = React.useMemo(() => {\n if (!getKey) return null;\n let userKey = getKey(location, matches);\n return userKey !== location.key ? userKey : null;\n },\n // Nah, we only need this the first time for the SSR render\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n\n // In SPA Mode, there's nothing to restore on initial render since we didn't\n // render anything on the server\n if (isSpaMode) {\n return null;\n }\n let restoreScroll = ((STORAGE_KEY, restoreKey) => {\n if (!window.history.state || !window.history.state.key) {\n let key = Math.random().toString(32).slice(2);\n window.history.replaceState({\n key\n }, \"\");\n }\n try {\n let positions = JSON.parse(sessionStorage.getItem(STORAGE_KEY) || \"{}\");\n let storedY = positions[restoreKey || window.history.state.key];\n if (typeof storedY === \"number\") {\n window.scrollTo(0, storedY);\n }\n } catch (error) {\n console.error(error);\n sessionStorage.removeItem(STORAGE_KEY);\n }\n }).toString();\n return /*#__PURE__*/React.createElement(\"script\", _extends({}, props, {\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: {\n __html: `(${restoreScroll})(${JSON.stringify(STORAGE_KEY)}, ${JSON.stringify(key)})`\n }\n }));\n}\n\nexport { ScrollRestoration };\n","'use strict';\n\n// t: current time, b: beginning value, _c: final value, d: total duration\nvar tweenFunctions = {\n linear: function(t, b, _c, d) {\n var c = _c - b;\n return c * t / d + b;\n },\n easeInQuad: function(t, b, _c, d) {\n var c = _c - b;\n return c * (t /= d) * t + b;\n },\n easeOutQuad: function(t, b, _c, d) {\n var c = _c - b;\n return -c * (t /= d) * (t - 2) + b;\n },\n easeInOutQuad: function(t, b, _c, d) {\n var c = _c - b;\n if ((t /= d / 2) < 1) {\n return c / 2 * t * t + b;\n } else {\n return -c / 2 * ((--t) * (t - 2) - 1) + b;\n }\n },\n easeInCubic: function(t, b, _c, d) {\n var c = _c - b;\n return c * (t /= d) * t * t + b;\n },\n easeOutCubic: function(t, b, _c, d) {\n var c = _c - b;\n return c * ((t = t / d - 1) * t * t + 1) + b;\n },\n easeInOutCubic: function(t, b, _c, d) {\n var c = _c - b;\n if ((t /= d / 2) < 1) {\n return c / 2 * t * t * t + b;\n } else {\n return c / 2 * ((t -= 2) * t * t + 2) + b;\n }\n },\n easeInQuart: function(t, b, _c, d) {\n var c = _c - b;\n return c * (t /= d) * t * t * t + b;\n },\n easeOutQuart: function(t, b, _c, d) {\n var c = _c - b;\n return -c * ((t = t / d - 1) * t * t * t - 1) + b;\n },\n easeInOutQuart: function(t, b, _c, d) {\n var c = _c - b;\n if ((t /= d / 2) < 1) {\n return c / 2 * t * t * t * t + b;\n } else {\n return -c / 2 * ((t -= 2) * t * t * t - 2) + b;\n }\n },\n easeInQuint: function(t, b, _c, d) {\n var c = _c - b;\n return c * (t /= d) * t * t * t * t + b;\n },\n easeOutQuint: function(t, b, _c, d) {\n var c = _c - b;\n return c * ((t = t / d - 1) * t * t * t * t + 1) + b;\n },\n easeInOutQuint: function(t, b, _c, d) {\n var c = _c - b;\n if ((t /= d / 2) < 1) {\n return c / 2 * t * t * t * t * t + b;\n } else {\n return c / 2 * ((t -= 2) * t * t * t * t + 2) + b;\n }\n },\n easeInSine: function(t, b, _c, d) {\n var c = _c - b;\n return -c * Math.cos(t / d * (Math.PI / 2)) + c + b;\n },\n easeOutSine: function(t, b, _c, d) {\n var c = _c - b;\n return c * Math.sin(t / d * (Math.PI / 2)) + b;\n },\n easeInOutSine: function(t, b, _c, d) {\n var c = _c - b;\n return -c / 2 * (Math.cos(Math.PI * t / d) - 1) + b;\n },\n easeInExpo: function(t, b, _c, d) {\n var c = _c - b;\n return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;\n },\n easeOutExpo: function(t, b, _c, d) {\n var c = _c - b;\n return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;\n },\n easeInOutExpo: function(t, b, _c, d) {\n var c = _c - b;\n if (t === 0) {\n return b;\n }\n if (t === d) {\n return b + c;\n }\n if ((t /= d / 2) < 1) {\n return c / 2 * Math.pow(2, 10 * (t - 1)) + b;\n } else {\n return c / 2 * (-Math.pow(2, -10 * --t) + 2) + b;\n }\n },\n easeInCirc: function(t, b, _c, d) {\n var c = _c - b;\n return -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b;\n },\n easeOutCirc: function(t, b, _c, d) {\n var c = _c - b;\n return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;\n },\n easeInOutCirc: function(t, b, _c, d) {\n var c = _c - b;\n if ((t /= d / 2) < 1) {\n return -c / 2 * (Math.sqrt(1 - t * t) - 1) + b;\n } else {\n return c / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;\n }\n },\n easeInElastic: function(t, b, _c, d) {\n var c = _c - b;\n var a, p, s;\n s = 1.70158;\n p = 0;\n a = c;\n if (t === 0) {\n return b;\n } else if ((t /= d) === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n if (a < Math.abs(c)) {\n a = c;\n s = p / 4;\n } else {\n s = p / (2 * Math.PI) * Math.asin(c / a);\n }\n return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;\n },\n easeOutElastic: function(t, b, _c, d) {\n var c = _c - b;\n var a, p, s;\n s = 1.70158;\n p = 0;\n a = c;\n if (t === 0) {\n return b;\n } else if ((t /= d) === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n if (a < Math.abs(c)) {\n a = c;\n s = p / 4;\n } else {\n s = p / (2 * Math.PI) * Math.asin(c / a);\n }\n return a * Math.pow(2, -10 * t) * Math.sin((t * d - s) * (2 * Math.PI) / p) + c + b;\n },\n easeInOutElastic: function(t, b, _c, d) {\n var c = _c - b;\n var a, p, s;\n s = 1.70158;\n p = 0;\n a = c;\n if (t === 0) {\n return b;\n } else if ((t /= d / 2) === 2) {\n return b + c;\n }\n if (!p) {\n p = d * (0.3 * 1.5);\n }\n if (a < Math.abs(c)) {\n a = c;\n s = p / 4;\n } else {\n s = p / (2 * Math.PI) * Math.asin(c / a);\n }\n if (t < 1) {\n return -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;\n } else {\n return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p) * 0.5 + c + b;\n }\n },\n easeInBack: function(t, b, _c, d, s) {\n var c = _c - b;\n if (s === void 0) {\n s = 1.70158;\n }\n return c * (t /= d) * t * ((s + 1) * t - s) + b;\n },\n easeOutBack: function(t, b, _c, d, s) {\n var c = _c - b;\n if (s === void 0) {\n s = 1.70158;\n }\n return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;\n },\n easeInOutBack: function(t, b, _c, d, s) {\n var c = _c - b;\n if (s === void 0) {\n s = 1.70158;\n }\n if ((t /= d / 2) < 1) {\n return c / 2 * (t * t * (((s *= 1.525) + 1) * t - s)) + b;\n } else {\n return c / 2 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2) + b;\n }\n },\n easeInBounce: function(t, b, _c, d) {\n var c = _c - b;\n var v;\n v = tweenFunctions.easeOutBounce(d - t, 0, c, d);\n return c - v + b;\n },\n easeOutBounce: function(t, b, _c, d) {\n var c = _c - b;\n if ((t /= d) < 1 / 2.75) {\n return c * (7.5625 * t * t) + b;\n } else if (t < 2 / 2.75) {\n return c * (7.5625 * (t -= 1.5 / 2.75) * t + 0.75) + b;\n } else if (t < 2.5 / 2.75) {\n return c * (7.5625 * (t -= 2.25 / 2.75) * t + 0.9375) + b;\n } else {\n return c * (7.5625 * (t -= 2.625 / 2.75) * t + 0.984375) + b;\n }\n },\n easeInOutBounce: function(t, b, _c, d) {\n var c = _c - b;\n var v;\n if (t < d / 2) {\n v = tweenFunctions.easeInBounce(t * 2, 0, c, d);\n return v * 0.5 + b;\n } else {\n v = tweenFunctions.easeOutBounce(t * 2 - d, 0, c, d);\n return v * 0.5 + c * 0.5 + b;\n }\n }\n};\n\nmodule.exports = tweenFunctions;\n","import React, { Component } from 'react';\nimport tweens from 'tween-functions';\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction degreesToRads(degrees) {\n return degrees * Math.PI / 180;\n}\nfunction randomRange(min, max) {\n return min + Math.random() * (max - min);\n}\nfunction randomInt(min, max) {\n return Math.floor(min + Math.random() * (max - min + 1));\n}\n\nvar ParticleShape;\n\n(function (ParticleShape) {\n ParticleShape[ParticleShape[\"Circle\"] = 0] = \"Circle\";\n ParticleShape[ParticleShape[\"Square\"] = 1] = \"Square\";\n ParticleShape[ParticleShape[\"Strip\"] = 2] = \"Strip\";\n})(ParticleShape || (ParticleShape = {}));\n\nvar RotationDirection;\n\n(function (RotationDirection) {\n RotationDirection[RotationDirection[\"Positive\"] = 1] = \"Positive\";\n RotationDirection[RotationDirection[\"Negative\"] = -1] = \"Negative\";\n})(RotationDirection || (RotationDirection = {}));\n\nvar Particle = /*#__PURE__*/function () {\n function Particle(context, getOptions, x, y) {\n this.getOptions = getOptions;\n\n var _this$getOptions = this.getOptions(),\n colors = _this$getOptions.colors,\n initialVelocityX = _this$getOptions.initialVelocityX,\n initialVelocityY = _this$getOptions.initialVelocityY;\n\n this.context = context;\n this.x = x;\n this.y = y;\n this.w = randomRange(5, 20);\n this.h = randomRange(5, 20);\n this.radius = randomRange(5, 10);\n this.vx = randomRange(-initialVelocityX, initialVelocityX);\n this.vy = randomRange(-initialVelocityY, 0);\n this.shape = randomInt(0, 2);\n this.angle = degreesToRads(randomRange(0, 360));\n this.angularSpin = randomRange(-0.2, 0.2);\n this.color = colors[Math.floor(Math.random() * colors.length)];\n this.rotateY = randomRange(0, 1);\n this.rotationDirection = randomRange(0, 1) ? RotationDirection.Positive : RotationDirection.Negative;\n }\n\n var _proto = Particle.prototype;\n\n _proto.update = function update() {\n var _this$getOptions2 = this.getOptions(),\n gravity = _this$getOptions2.gravity,\n wind = _this$getOptions2.wind,\n friction = _this$getOptions2.friction,\n opacity = _this$getOptions2.opacity,\n drawShape = _this$getOptions2.drawShape;\n\n this.x += this.vx;\n this.y += this.vy;\n this.vy += gravity;\n this.vx += wind;\n this.vx *= friction;\n this.vy *= friction;\n\n if (this.rotateY >= 1 && this.rotationDirection === RotationDirection.Positive) {\n this.rotationDirection = RotationDirection.Negative;\n } else if (this.rotateY <= -1 && this.rotationDirection === RotationDirection.Negative) {\n this.rotationDirection = RotationDirection.Positive;\n }\n\n var rotateDelta = 0.1 * this.rotationDirection;\n this.rotateY += rotateDelta;\n this.angle += this.angularSpin;\n this.context.save();\n this.context.translate(this.x, this.y);\n this.context.rotate(this.angle);\n this.context.scale(1, this.rotateY);\n this.context.rotate(this.angle);\n this.context.beginPath();\n this.context.fillStyle = this.color;\n this.context.strokeStyle = this.color;\n this.context.globalAlpha = opacity;\n this.context.lineCap = 'round';\n this.context.lineWidth = 2;\n\n if (drawShape && typeof drawShape === 'function') {\n drawShape.call(this, this.context);\n } else {\n switch (this.shape) {\n case ParticleShape.Circle:\n {\n this.context.beginPath();\n this.context.arc(0, 0, this.radius, 0, 2 * Math.PI);\n this.context.fill();\n break;\n }\n\n case ParticleShape.Square:\n {\n this.context.fillRect(-this.w / 2, -this.h / 2, this.w, this.h);\n break;\n }\n\n case ParticleShape.Strip:\n {\n this.context.fillRect(-this.w / 6, -this.h / 2, this.w / 3, this.h);\n break;\n }\n\n default:\n {\n throw new Error('Unknown type in Particle.ts');\n }\n }\n }\n\n this.context.closePath();\n this.context.restore();\n };\n\n return Particle;\n}();\n\nvar ParticleGeneratorClass = function ParticleGeneratorClass(canvas, getOptions) {\n var _this = this;\n\n this.x = 0;\n this.y = 0;\n this.w = 0;\n this.h = 0;\n this.lastNumberOfPieces = 0;\n this.tweenInitTime = Date.now();\n this.particles = [];\n this.particlesGenerated = 0;\n\n this.removeParticleAt = function (i) {\n _this.particles.splice(i, 1);\n };\n\n this.getParticle = function () {\n var newParticleX = randomRange(_this.x, _this.w + _this.x);\n var newParticleY = randomRange(_this.y, _this.h + _this.y);\n return new Particle(_this.context, _this.getOptions, newParticleX, newParticleY);\n };\n\n this.animate = function () {\n var canvas = _this.canvas,\n context = _this.context,\n particlesGenerated = _this.particlesGenerated,\n lastNumberOfPieces = _this.lastNumberOfPieces;\n\n var _this$getOptions = _this.getOptions(),\n run = _this$getOptions.run,\n recycle = _this$getOptions.recycle,\n numberOfPieces = _this$getOptions.numberOfPieces,\n debug = _this$getOptions.debug,\n tweenFunction = _this$getOptions.tweenFunction,\n tweenDuration = _this$getOptions.tweenDuration;\n\n if (!run) {\n return false;\n }\n\n var nP = _this.particles.length;\n var activeCount = recycle ? nP : particlesGenerated;\n var now = Date.now(); // Initial population\n\n if (activeCount < numberOfPieces) {\n // Use the numberOfPieces prop as a key to reset the easing timing\n if (lastNumberOfPieces !== numberOfPieces) {\n _this.tweenInitTime = now;\n _this.lastNumberOfPieces = numberOfPieces;\n }\n\n var tweenInitTime = _this.tweenInitTime; // Add more than one piece per loop, otherwise the number of pieces would\n // be limitted by the RAF framerate\n\n var progressTime = now - tweenInitTime > tweenDuration ? tweenDuration : Math.max(0, now - tweenInitTime);\n var tweenedVal = tweenFunction(progressTime, activeCount, numberOfPieces, tweenDuration);\n var numToAdd = Math.round(tweenedVal - activeCount);\n\n for (var i = 0; i < numToAdd; i += 1) {\n _this.particles.push(_this.getParticle());\n }\n\n _this.particlesGenerated += numToAdd;\n }\n\n if (debug) {\n // Draw debug text\n context.font = '12px sans-serif';\n context.fillStyle = '#333';\n context.textAlign = 'right';\n context.fillText(\"Particles: \" + nP, canvas.width - 10, canvas.height - 20);\n } // Maintain the population\n\n\n _this.particles.forEach(function (p, i) {\n // Update each particle's position\n p.update(); // Prune the off-canvas particles\n\n if (p.y > canvas.height || p.y < -100 || p.x > canvas.width + 100 || p.x < -100) {\n if (recycle && activeCount <= numberOfPieces) {\n // Replace the particle with a brand new one\n _this.particles[i] = _this.getParticle();\n } else {\n _this.removeParticleAt(i);\n }\n }\n });\n\n return nP > 0 || activeCount < numberOfPieces;\n };\n\n this.canvas = canvas;\n var ctx = this.canvas.getContext('2d');\n\n if (!ctx) {\n throw new Error('Could not get canvas context');\n }\n\n this.context = ctx;\n this.getOptions = getOptions;\n};\n\nvar confettiDefaults = {\n width: typeof window !== 'undefined' ? window.innerWidth : 300,\n height: typeof window !== 'undefined' ? window.innerHeight : 200,\n numberOfPieces: 200,\n friction: 0.99,\n wind: 0,\n gravity: 0.1,\n initialVelocityX: 4,\n initialVelocityY: 10,\n colors: ['#f44336', '#e91e63', '#9c27b0', '#673ab7', '#3f51b5', '#2196f3', '#03a9f4', '#00bcd4', '#009688', '#4CAF50', '#8BC34A', '#CDDC39', '#FFEB3B', '#FFC107', '#FF9800', '#FF5722', '#795548'],\n opacity: 1.0,\n debug: false,\n tweenFunction: tweens.easeInOutQuad,\n tweenDuration: 5000,\n recycle: true,\n run: true\n};\nvar Confetti = /*#__PURE__*/function () {\n function Confetti(canvas, opts) {\n var _this = this;\n\n this.setOptionsWithDefaults = function (opts) {\n var computedConfettiDefaults = {\n confettiSource: {\n x: 0,\n y: 0,\n w: _this.canvas.width,\n h: 0\n }\n };\n _this._options = _extends({}, computedConfettiDefaults, confettiDefaults, opts);\n Object.assign(_this, opts.confettiSource);\n };\n\n this.update = function () {\n var _this$options = _this.options,\n run = _this$options.run,\n onConfettiComplete = _this$options.onConfettiComplete,\n canvas = _this.canvas,\n context = _this.context;\n\n if (run) {\n context.fillStyle = 'white';\n context.clearRect(0, 0, canvas.width, canvas.height);\n }\n\n if (_this.generator.animate()) {\n _this.rafId = requestAnimationFrame(_this.update);\n } else {\n if (onConfettiComplete && typeof onConfettiComplete === 'function' && _this.generator.particlesGenerated > 0) {\n onConfettiComplete.call(_this, _this);\n }\n\n _this._options.run = false;\n }\n };\n\n this.reset = function () {\n if (_this.generator && _this.generator.particlesGenerated > 0) {\n _this.generator.particlesGenerated = 0;\n _this.generator.particles = [];\n _this.generator.lastNumberOfPieces = 0;\n }\n };\n\n this.stop = function () {\n _this.options = {\n run: false\n };\n\n if (_this.rafId) {\n cancelAnimationFrame(_this.rafId);\n _this.rafId = undefined;\n }\n };\n\n this.canvas = canvas;\n var ctx = this.canvas.getContext('2d');\n\n if (!ctx) {\n throw new Error('Could not get canvas context');\n }\n\n this.context = ctx;\n this.generator = new ParticleGeneratorClass(this.canvas, function () {\n return _this.options;\n });\n this.options = opts;\n this.update();\n }\n\n _createClass(Confetti, [{\n key: \"options\",\n get: function get() {\n return this._options;\n },\n set: function set(opts) {\n var lastRunState = this._options && this._options.run;\n var lastRecycleState = this._options && this._options.recycle;\n this.setOptionsWithDefaults(opts);\n\n if (this.generator) {\n Object.assign(this.generator, this.options.confettiSource);\n\n if (typeof opts.recycle === 'boolean' && opts.recycle && lastRecycleState === false) {\n this.generator.lastNumberOfPieces = this.generator.particles.length;\n }\n }\n\n if (typeof opts.run === 'boolean' && opts.run && lastRunState === false) {\n this.update();\n }\n }\n }]);\n\n return Confetti;\n}();\n\nvar ref = /*#__PURE__*/React.createRef();\n\nfunction extractCanvasProps(props) {\n var confettiOptions = {};\n var refs = {};\n var rest = {};\n var confettiOptionKeys = [].concat(Object.keys(confettiDefaults), ['confettiSource', 'drawShape', 'onConfettiComplete']);\n var refProps = ['canvasRef'];\n Object.keys(props).forEach(function (prop) {\n var val = props[prop];\n\n if (confettiOptionKeys.includes(prop)) {\n confettiOptions[prop] = val;\n } else if (refProps.includes(prop)) {\n refProps[prop] = val;\n } else {\n rest[prop] = val;\n }\n });\n return [confettiOptions, rest, refs];\n}\n\nvar ConfettiReactInternal = /*#__PURE__*/function (_Component) {\n _inheritsLoose(ConfettiReactInternal, _Component);\n\n function ConfettiReactInternal(props) {\n var _this;\n\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this, props].concat(rest)) || this;\n _this.canvas = React.createRef();\n _this.canvas = props.canvasRef || ref;\n return _this;\n }\n\n var _proto = ConfettiReactInternal.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.canvas.current) {\n var opts = extractCanvasProps(this.props)[0];\n this.confetti = new Confetti(this.canvas.current, opts);\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var confettiOptions = extractCanvasProps(this.props)[0];\n\n if (this.confetti) {\n this.confetti.options = confettiOptions;\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.confetti) {\n this.confetti.stop();\n }\n\n this.confetti = undefined;\n };\n\n _proto.render = function render() {\n var _extractCanvasProps = extractCanvasProps(this.props),\n confettiOptions = _extractCanvasProps[0],\n passedProps = _extractCanvasProps[1];\n\n var canvasStyles = _extends({\n zIndex: 2,\n position: 'absolute',\n pointerEvents: 'none',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n }, passedProps.style);\n\n return React.createElement(\"canvas\", Object.assign({\n width: confettiOptions.width,\n height: confettiOptions.height,\n ref: this.canvas\n }, passedProps, {\n style: canvasStyles\n }));\n };\n\n return ConfettiReactInternal;\n}(Component);\n\nConfettiReactInternal.defaultProps = /*#__PURE__*/_extends({}, confettiDefaults);\nConfettiReactInternal.displayName = 'ConfettiReact'; // eslint-disable-next-line react/display-name\n\nvar Index = /*#__PURE__*/React.forwardRef(function (props, _ref) {\n return React.createElement(ConfettiReactInternal, Object.assign({\n canvasRef: ref\n }, props));\n});\n\nexport default Index;\nexport { Index };\n//# sourceMappingURL=confetti-react.esm.js.map\n","import { useSyncExternalStore } from \"react\";\nfunction subscribe() {\n return () => { };\n}\n/**\n * Return a boolean indicating if the JS has been hydrated already.\n * When doing Server-Side Rendering, the result will always be false.\n * When doing Client-Side Rendering, the result will always be false on the\n * first render and true from then on. Even if a new component renders it will\n * always start with true.\n *\n * Example: Disable a button that needs JS to work.\n * ```tsx\n * let hydrated = useHydrated();\n * return (\n * <button type=\"button\" disabled={!hydrated} onClick={doSomethingCustom}>\n * Click me\n * </button>\n * );\n * ```\n */\nexport function useHydrated() {\n return useSyncExternalStore(subscribe, () => true, () => false);\n}\n","import * as React from \"react\";\nimport { useHydrated } from \"./use-hydrated.js\";\n/**\n * Render the children only after the JS has loaded client-side. Use an optional\n * fallback component if the JS is not yet loaded.\n *\n * Example: Render a Chart component if JS loads, renders a simple FakeChart\n * component server-side or if there is no JS. The FakeChart can have only the\n * UI without the behavior or be a loading spinner or skeleton.\n * ```tsx\n * return (\n * <ClientOnly fallback={<FakeChart />}>\n * {() => <Chart />}\n * </ClientOnly>\n * );\n * ```\n */\nexport function ClientOnly({ children, fallback = null }) {\n return useHydrated() ? React.createElement(React.Fragment, null, children()) : React.createElement(React.Fragment, null, fallback);\n}\n","import { Index as ConfettiShower } from 'confetti-react'\nimport { ClientOnly } from 'remix-utils/client-only'\n\nexport function Confetti({ id }: { id?: string | null }) {\n\tif (!id) return null\n\n\treturn (\n\t\t<ClientOnly>\n\t\t\t{() => (\n\t\t\t\t<ConfettiShower\n\t\t\t\t\tkey={id}\n\t\t\t\t\trun={Boolean(id)}\n\t\t\t\t\trecycle={false}\n\t\t\t\t\tnumberOfPieces={800}\n\t\t\t\t\twidth={window.innerWidth}\n\t\t\t\t\theight={window.innerHeight}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</ClientOnly>\n\t)\n}\n","import { useEffect } from 'react'\nimport { Toaster, toast as showToast } from 'sonner'\nimport { type Toast } from '#app/utils/toast.server.ts'\n\nexport function EpicToaster({ toast }: { toast?: Toast | null }) {\n\treturn (\n\t\t<>\n\t\t\t<Toaster closeButton position=\"top-center\" />\n\t\t\t{toast ? <ShowToast toast={toast} /> : null}\n\t\t</>\n\t)\n}\n\nfunction ShowToast({ toast }: { toast: Toast }) {\n\tconst { id, type, title, description } = toast\n\tuseEffect(() => {\n\t\tsetTimeout(() => {\n\t\t\tshowToast[type](title, { id, description })\n\t\t}, 0)\n\t}, [description, id, title, type])\n\treturn null\n}\n","import \"/home/runner/work/epicshop/epicshop/packages/workshop-app/app/styles/app.css?transform-only\";export default \"__VITE_CSS_URL__2f686f6d652f72756e6e65722f776f726b2f6570696373686f702f6570696373686f702f7061636b616765732f776f726b73686f702d6170702f6170702f7374796c65732f6170702e6373733f7472616e73666f726d2d6f6e6c79__\"","import \"/home/runner/work/epicshop/epicshop/packages/workshop-app/app/styles/tailwind.css?transform-only\";export default \"__VITE_CSS_URL__2f686f6d652f72756e6e65722f776f726b2f6570696373686f702f6570696373686f702f7061636b616765732f776f726b73686f702d6170702f6170702f7374796c65732f7461696c77696e642e6373733f7472616e73666f726d2d6f6e6c79__\"","import path from 'node:path'\nimport { getPresentUsers } from '@epic-web/workshop-presence/presence.server'\nimport {\n\tgetApps,\n\tgetWorkshopInstructor,\n\tgetWorkshopSubtitle,\n\tgetWorkshopTitle,\n} from '@epic-web/workshop-utils/apps.server'\nimport {\n\tgetDiscordMember,\n\tgetPreferences,\n\tgetUserInfo,\n\treadOnboardingData,\n} from '@epic-web/workshop-utils/db.server'\nimport { makeTimings, time } from '@epic-web/workshop-utils/timing.server'\nimport { cssBundleHref } from '@remix-run/css-bundle'\nimport {\n\tjson,\n\tredirect,\n\ttype HeadersFunction,\n\ttype LinksFunction,\n\ttype LoaderFunctionArgs,\n\ttype MetaFunction,\n} from '@remix-run/node'\nimport {\n\tLinks,\n\tMeta,\n\tOutlet,\n\tScripts,\n\tScrollRestoration,\n\tuseLoaderData,\n\tuseNavigation,\n\tuseRevalidator,\n} from '@remix-run/react'\nimport { useEffect } from 'react'\nimport { useSpinDelay } from 'spin-delay'\nimport { Confetti } from './components/confetti.tsx'\nimport { GeneralErrorBoundary } from './components/error-boundary.tsx'\nimport { EpicProgress } from './components/progress-bar.tsx'\nimport { EpicToaster } from './components/toaster.tsx'\nimport { TooltipProvider } from './components/ui/tooltip.tsx'\nimport { useTheme } from './routes/theme/index.tsx'\nimport { getTheme } from './routes/theme/theme-session.server.ts'\nimport appStylesheetUrl from './styles/app.css?url'\nimport tailwindStylesheetUrl from './styles/tailwind.css?url'\nimport { ClientHintCheck, getHints } from './utils/client-hints.tsx'\nimport { getConfetti } from './utils/confetti.server.ts'\nimport { getEnv } from './utils/env.server.ts'\nimport { getProgress } from './utils/epic-api.ts'\nimport { cn, combineHeaders, getDomainUrl, useAltDown } from './utils/misc.tsx'\nimport { Presence } from './utils/presence.tsx'\nimport { getSeoMetaTags } from './utils/seo.ts'\nimport { getToast } from './utils/toast.server.ts'\n\nexport const links: LinksFunction = () => {\n\treturn [\n\t\t{ rel: 'stylesheet', href: '/neogrotesk-font.css' },\n\t\t{\n\t\t\trel: 'stylesheet',\n\t\t\thref: 'https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,200;0,300;0,400;0,500;0,600;1,700&display=swap',\n\t\t},\n\t\t{ rel: 'stylesheet', href: tailwindStylesheetUrl },\n\t\t{ rel: 'stylesheet', href: appStylesheetUrl },\n\t\t...(cssBundleHref ? [{ rel: 'stylesheet', href: cssBundleHref }] : []),\n\t\t{ rel: 'mask-icon', href: '/favicons/favicon.svg' },\n\t\t{\n\t\t\trel: 'alternate icon',\n\t\t\ttype: 'image/png',\n\t\t\thref: '/favicon.png',\n\t\t},\n\t\t{ rel: 'icon', type: 'image/svg+xml', href: '/favicon.svg' },\n\t]\n}\n\nexport const meta: MetaFunction<typeof loader> = ({ data }) => {\n\tif (!data) return []\n\n\treturn getSeoMetaTags({\n\t\tinstructor: data.instructor,\n\t\ttitle: data.workshopTitle,\n\t\tdescription: data.workshopSubtitle,\n\t\trequestInfo: data.requestInfo,\n\t})\n}\n\nexport async function loader({ request }: LoaderFunctionArgs) {\n\tconst timings = makeTimings('rootLoader')\n\tconst onboarding = await readOnboardingData()\n\tif (!ENV.EPICSHOP_DEPLOYED && !onboarding?.finishedTourVideo) {\n\t\tif (new URL(request.url).pathname !== '/onboarding') {\n\t\t\tthrow redirect('/onboarding')\n\t\t}\n\t}\n\tconst workshopTitle = await time(() => getWorkshopTitle(), {\n\t\ttype: 'getWorkshopTitle',\n\t\tdesc: 'getWorkshopTitle in root',\n\t\ttimings,\n\t})\n\tconst workshopSubtitle = await time(() => getWorkshopSubtitle(), {\n\t\ttype: 'getWorkshopSubtitle',\n\t\tdesc: 'getWorkshopSubtitle in root',\n\t\ttimings,\n\t})\n\tconst instructor = await time(() => getWorkshopInstructor(), {\n\t\ttype: 'getInstructor',\n\t\tdesc: 'getInstructor in root',\n\t\ttimings,\n\t})\n\n\tconst preferences = await getPreferences()\n\tconst progress = await getProgress({ timings }).catch((e) => {\n\t\tconsole.error('Failed to get progress', e)\n\t\tconst emptyProgress: Awaited<ReturnType<typeof getProgress>> = []\n\t\treturn emptyProgress\n\t})\n\tconst { toast, headers: toastHeaders } = await getToast(request)\n\tconst { confettiId, headers: confettiHeaders } = getConfetti(request)\n\tconst discordMember = await getDiscordMember()\n\tconst theme = getTheme(request)\n\tconst user = await getUserInfo()\n\tconst apps = await getApps({ request, timings })\n\tconst presentUsers = await getPresentUsers(user, { request, timings })\n\treturn json(\n\t\t{\n\t\t\tworkshopTitle,\n\t\t\tworkshopSubtitle,\n\t\t\tinstructor,\n\t\t\tapps: apps.map(({ name, fullPath, relativePath }) => ({\n\t\t\t\tname,\n\t\t\t\tfullPath,\n\t\t\t\trelativePath,\n\t\t\t})),\n\t\t\tENV: getEnv(),\n\t\t\trequestInfo: {\n\t\t\t\torigin: new URL(request.url).origin,\n\t\t\t\tdomain: getDomainUrl(request),\n\t\t\t\thints: getHints(request),\n\t\t\t\tpath: new URL(request.url).pathname,\n\t\t\t\tsession: { theme },\n\t\t\t\tseparator: path.sep,\n\t\t\t},\n\t\t\tprogress,\n\t\t\tpreferences,\n\t\t\tdiscordMember,\n\t\t\tuser,\n\t\t\ttoast,\n\t\t\tconfettiId,\n\t\t\tpresence: {\n\t\t\t\tusers: presentUsers,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\theaders: combineHeaders(toastHeaders, confettiHeaders, {\n\t\t\t\t'Server-Timing': timings.toString(),\n\t\t\t}),\n\t\t},\n\t)\n}\n\nexport const headers: HeadersFunction = ({ loaderHeaders }) => {\n\tconst headers = {\n\t\t'Cache-Control': loaderHeaders.get('Cache-Control') ?? '',\n\t\t'Server-Timing': loaderHeaders.get('Server-Timing') ?? '',\n\t}\n\treturn headers\n}\n\nfunction Document({\n\tchildren,\n\tenv = {},\n\tclassName,\n}: {\n\tchildren: React.ReactNode\n\tenv?: Record<string, unknown>\n\tclassName: string\n}) {\n\tconst revalidator = useRevalidator()\n\tuseEffect(() => {\n\t\twindow.__epicshop ??= {}\n\t\twindow.__epicshop.handleFileChange = revalidator.revalidate\n\t}, [revalidator])\n\treturn (\n\t\t<html lang=\"en\" className={className}>\n\t\t\t<head>\n\t\t\t\t<ClientHintCheck />\n\t\t\t\t<Meta />\n\t\t\t\t<meta charSet=\"utf-8\" />\n\t\t\t\t<meta name=\"viewport\" content=\"width=device-width,initial-scale=1\" />\n\t\t\t\t<Links />\n\t\t\t\t<script\n\t\t\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t\t\t__html: `window.ENV = ${JSON.stringify(env)}`,\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</head>\n\t\t\t<body className=\"bg-background text-foreground scrollbar-thin scrollbar-thumb-scrollbar h-screen-safe\">\n\t\t\t\t{children}\n\t\t\t\t<ScrollRestoration />\n\t\t\t\t<Scripts />\n\t\t\t\t{ENV.EPICSHOP_DEPLOYED ? null : (\n\t\t\t\t\t<script dangerouslySetInnerHTML={{ __html: getWebsocketJS() }} />\n\t\t\t\t)}\n\t\t\t</body>\n\t\t</html>\n\t)\n}\n\nfunction App() {\n\tconst data = useLoaderData<typeof loader>()\n\tconst navigation = useNavigation()\n\tconst showSpinner = useSpinDelay(navigation.state !== 'idle', {\n\t\tdelay: 400,\n\t\tminDuration: 200,\n\t})\n\tconst altDown = useAltDown()\n\n\tconst theme = useTheme()\n\treturn (\n\t\t<Document\n\t\t\tclassName={cn(\n\t\t\t\t'antialiased h-screen-safe',\n\t\t\t\ttheme,\n\t\t\t\t{ 'cursor-progress': showSpinner },\n\t\t\t\taltDown ? 'alt-down' : null,\n\t\t\t)}\n\t\t\tenv={data.ENV}\n\t\t>\n\t\t\t<Outlet />\n\t\t\t<Confetti id={data.confettiId} />\n\t\t\t<EpicToaster toast={data.toast} />\n\t\t\t<EpicProgress />\n\t\t</Document>\n\t)\n}\n\nexport default function AppWithProviders() {\n\tconst { user } = useLoaderData<typeof loader>()\n\treturn (\n\t\t<Presence user={user}>\n\t\t\t<TooltipProvider>\n\t\t\t\t<App />\n\t\t\t</TooltipProvider>\n\t\t</Presence>\n\t)\n}\n\nexport function ErrorBoundary() {\n\treturn (\n\t\t<Document className=\"h-screen-safe\">\n\t\t\t<GeneralErrorBoundary />\n\t\t</Document>\n\t)\n}\n\nfunction getWebsocketJS() {\n\tconst js = /* javascript */ `\n\tfunction epicLiveReloadConnect(config) {\n\t\tconst protocol = location.protocol === \"https:\" ? \"wss:\" : \"ws:\";\n\t\tconst host = location.hostname;\n\t\tconst port = location.port;\n\t\tconst socketPath = protocol + \"//\" + host + \":\" + port + \"/__ws\";\n\t\tconst ws = new WebSocket(socketPath);\n\t\tfunction handleFileChange(changedFiles) {\n\t\t\tconsole.log(\n\t\t\t\t['🐨 Reloading', window.frameElement?.getAttribute('title')]\n\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t.join(' '),\n\t\t\t\tchangedFiles\n\t\t\t);\n\t\t\tif (typeof window.__epicshop?.handleFileChange === \"function\") {\n\t\t\t\twindow.__epicshop?.handleFileChange();\n\t\t\t} else {\n\t\t\t\tsetTimeout(() => window.location.reload(), 200);\n\t\t\t}\n\t\t}\n\t\tfunction debounce(fn, ms) {\n\t\t\tlet timeout;\n\t\t\treturn function debouncedFn(...args) {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t\ttimeout = setTimeout(() => fn(...args), ms);\n\t\t\t};\n\t\t}\n\t\tconst debouncedHandleFileChange = debounce(handleFileChange, 50);\n\t\tws.onmessage = (message) => {\n\t\t\tconst event = JSON.parse(message.data);\n\t\t\tif (event.type !== 'epicshop:file-change') return;\n\t\t\tconst { filePaths } = event.data;\n\t\t\tdebouncedHandleFileChange(filePaths);\n\t\t};\n\t\tws.onopen = () => {\n\t\t\tif (config && typeof config.onOpen === \"function\") {\n\t\t\t\tconfig.onOpen();\n\t\t\t}\n\t\t};\n\t\tws.onclose = (event) => {\n\t\t\tif (event.code === 1006) {\n\t\t\t\tconsole.log(\"Epic Web dev server web socket closed. Reconnecting...\");\n\t\t\t\tsetTimeout(\n\t\t\t\t\t() =>\n\t\t\t\t\t\tepicLiveReloadConnect({\n\t\t\t\t\t\t\tonOpen: () => window.location.reload(),\n\t\t\t\t\t\t}),\n\t\t\t\t1000\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\t\tws.onerror = (error) => {\n\t\t\tconsole.log(\"Epic Web dev server web socket error:\");\n\t\t\tconsole.error(error);\n\t\t};\n\t}\n\tepicLiveReloadConnect();\n\t`\n\treturn js\n}\n"],"names":["STORAGE_KEY","ScrollRestoration","getKey","props","isSpaMode","useRemixContext","location","useLocation","matches","useMatches","UNSAFE_useScrollRestoration","key","React.useMemo","userKey","restoreScroll","restoreKey","storedY","error","React.createElement","_extends","tweenFunctions","t","b","_c","d","c","a","p","s","v","tweenFunctions_1","_defineProperties","target","i","descriptor","_createClass","Constructor","protoProps","staticProps","source","_inheritsLoose","subClass","superClass","_setPrototypeOf","o","degreesToRads","degrees","randomRange","min","max","randomInt","ParticleShape","RotationDirection","Particle","context","getOptions","x","y","_this$getOptions","colors","initialVelocityX","initialVelocityY","_proto","_this$getOptions2","gravity","wind","friction","opacity","drawShape","rotateDelta","ParticleGeneratorClass","canvas","_this","newParticleX","newParticleY","particlesGenerated","lastNumberOfPieces","run","recycle","numberOfPieces","debug","tweenFunction","tweenDuration","nP","activeCount","now","tweenInitTime","progressTime","tweenedVal","numToAdd","ctx","confettiDefaults","tweens","Confetti","opts","computedConfettiDefaults","_this$options","onConfettiComplete","lastRunState","lastRecycleState","ref","React","extractCanvasProps","confettiOptions","refs","rest","confettiOptionKeys","refProps","prop","val","ConfettiReactInternal","_Component","_len","_key","_extractCanvasProps","passedProps","canvasStyles","Component","Index","_ref","subscribe","useHydrated","useSyncExternalStore","ClientOnly","children","fallback","React.Fragment","id","jsx","ConfettiShower","EpicToaster","toast","jsxs","Fragment","Toaster","ShowToast","type","title","description","useEffect","showToast","appStylesheetUrl","tailwindStylesheetUrl","links","rel","href","meta","data","getSeoMetaTags","instructor","workshopTitle","workshopSubtitle","requestInfo","Document","env","className","revalidator","useRevalidator","window","__epicshop","handleFileChange","revalidate","lang","ClientHintCheck","Meta","charSet","name","content","Links","dangerouslySetInnerHTML","__html","JSON","stringify","Scripts","ENV","EPICSHOP_DEPLOYED","getWebsocketJS","App","useLoaderData","navigation","useNavigation","showSpinner","useSpinDelay","state","delay","minDuration","altDown","useAltDown","theme","useTheme","cn","Outlet","confettiId","EpicProgress","AppWithProviders","user","Presence","TooltipProvider","ErrorBoundary","GeneralErrorBoundary"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
1
+ {"version":3,"file":"root-B86bLhuo.js","sources":["../../../../../node_modules/@remix-run/react/dist/esm/scroll-restoration.js","../../../../../node_modules/tween-functions/index.js","../../../../../node_modules/confetti-react/dist/confetti-react.esm.js","../../../../../node_modules/remix-utils/build/react/use-hydrated.js","../../../../../node_modules/remix-utils/build/react/client-only.js","../../../app/components/confetti.tsx","../../../app/components/toaster.tsx","../../../app/styles/app.css?url","../../../app/styles/tailwind.css?url","../../../app/root.tsx"],"sourcesContent":["/**\n * @remix-run/react v2.10.0\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { extends as _extends } from './_virtual/_rollupPluginBabelHelpers.js';\nimport * as React from 'react';\nimport { useLocation, useMatches, UNSAFE_useScrollRestoration } from 'react-router-dom';\nimport { useRemixContext } from './components.js';\n\nlet STORAGE_KEY = \"positions\";\n\n/**\n * This component will emulate the browser's scroll restoration on location\n * changes.\n *\n * @see https://remix.run/components/scroll-restoration\n */\nfunction ScrollRestoration({\n getKey,\n ...props\n}) {\n let {\n isSpaMode\n } = useRemixContext();\n let location = useLocation();\n let matches = useMatches();\n UNSAFE_useScrollRestoration({\n getKey,\n storageKey: STORAGE_KEY\n });\n\n // In order to support `getKey`, we need to compute a \"key\" here so we can\n // hydrate that up so that SSR scroll restoration isn't waiting on React to\n // hydrate. *However*, our key on the server is not the same as our key on\n // the client! So if the user's getKey implementation returns the SSR\n // location key, then let's ignore it and let our inline <script> below pick\n // up the client side history state key\n let key = React.useMemo(() => {\n if (!getKey) return null;\n let userKey = getKey(location, matches);\n return userKey !== location.key ? userKey : null;\n },\n // Nah, we only need this the first time for the SSR render\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n\n // In SPA Mode, there's nothing to restore on initial render since we didn't\n // render anything on the server\n if (isSpaMode) {\n return null;\n }\n let restoreScroll = ((STORAGE_KEY, restoreKey) => {\n if (!window.history.state || !window.history.state.key) {\n let key = Math.random().toString(32).slice(2);\n window.history.replaceState({\n key\n }, \"\");\n }\n try {\n let positions = JSON.parse(sessionStorage.getItem(STORAGE_KEY) || \"{}\");\n let storedY = positions[restoreKey || window.history.state.key];\n if (typeof storedY === \"number\") {\n window.scrollTo(0, storedY);\n }\n } catch (error) {\n console.error(error);\n sessionStorage.removeItem(STORAGE_KEY);\n }\n }).toString();\n return /*#__PURE__*/React.createElement(\"script\", _extends({}, props, {\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: {\n __html: `(${restoreScroll})(${JSON.stringify(STORAGE_KEY)}, ${JSON.stringify(key)})`\n }\n }));\n}\n\nexport { ScrollRestoration };\n","'use strict';\n\n// t: current time, b: beginning value, _c: final value, d: total duration\nvar tweenFunctions = {\n linear: function(t, b, _c, d) {\n var c = _c - b;\n return c * t / d + b;\n },\n easeInQuad: function(t, b, _c, d) {\n var c = _c - b;\n return c * (t /= d) * t + b;\n },\n easeOutQuad: function(t, b, _c, d) {\n var c = _c - b;\n return -c * (t /= d) * (t - 2) + b;\n },\n easeInOutQuad: function(t, b, _c, d) {\n var c = _c - b;\n if ((t /= d / 2) < 1) {\n return c / 2 * t * t + b;\n } else {\n return -c / 2 * ((--t) * (t - 2) - 1) + b;\n }\n },\n easeInCubic: function(t, b, _c, d) {\n var c = _c - b;\n return c * (t /= d) * t * t + b;\n },\n easeOutCubic: function(t, b, _c, d) {\n var c = _c - b;\n return c * ((t = t / d - 1) * t * t + 1) + b;\n },\n easeInOutCubic: function(t, b, _c, d) {\n var c = _c - b;\n if ((t /= d / 2) < 1) {\n return c / 2 * t * t * t + b;\n } else {\n return c / 2 * ((t -= 2) * t * t + 2) + b;\n }\n },\n easeInQuart: function(t, b, _c, d) {\n var c = _c - b;\n return c * (t /= d) * t * t * t + b;\n },\n easeOutQuart: function(t, b, _c, d) {\n var c = _c - b;\n return -c * ((t = t / d - 1) * t * t * t - 1) + b;\n },\n easeInOutQuart: function(t, b, _c, d) {\n var c = _c - b;\n if ((t /= d / 2) < 1) {\n return c / 2 * t * t * t * t + b;\n } else {\n return -c / 2 * ((t -= 2) * t * t * t - 2) + b;\n }\n },\n easeInQuint: function(t, b, _c, d) {\n var c = _c - b;\n return c * (t /= d) * t * t * t * t + b;\n },\n easeOutQuint: function(t, b, _c, d) {\n var c = _c - b;\n return c * ((t = t / d - 1) * t * t * t * t + 1) + b;\n },\n easeInOutQuint: function(t, b, _c, d) {\n var c = _c - b;\n if ((t /= d / 2) < 1) {\n return c / 2 * t * t * t * t * t + b;\n } else {\n return c / 2 * ((t -= 2) * t * t * t * t + 2) + b;\n }\n },\n easeInSine: function(t, b, _c, d) {\n var c = _c - b;\n return -c * Math.cos(t / d * (Math.PI / 2)) + c + b;\n },\n easeOutSine: function(t, b, _c, d) {\n var c = _c - b;\n return c * Math.sin(t / d * (Math.PI / 2)) + b;\n },\n easeInOutSine: function(t, b, _c, d) {\n var c = _c - b;\n return -c / 2 * (Math.cos(Math.PI * t / d) - 1) + b;\n },\n easeInExpo: function(t, b, _c, d) {\n var c = _c - b;\n return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;\n },\n easeOutExpo: function(t, b, _c, d) {\n var c = _c - b;\n return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;\n },\n easeInOutExpo: function(t, b, _c, d) {\n var c = _c - b;\n if (t === 0) {\n return b;\n }\n if (t === d) {\n return b + c;\n }\n if ((t /= d / 2) < 1) {\n return c / 2 * Math.pow(2, 10 * (t - 1)) + b;\n } else {\n return c / 2 * (-Math.pow(2, -10 * --t) + 2) + b;\n }\n },\n easeInCirc: function(t, b, _c, d) {\n var c = _c - b;\n return -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b;\n },\n easeOutCirc: function(t, b, _c, d) {\n var c = _c - b;\n return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;\n },\n easeInOutCirc: function(t, b, _c, d) {\n var c = _c - b;\n if ((t /= d / 2) < 1) {\n return -c / 2 * (Math.sqrt(1 - t * t) - 1) + b;\n } else {\n return c / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;\n }\n },\n easeInElastic: function(t, b, _c, d) {\n var c = _c - b;\n var a, p, s;\n s = 1.70158;\n p = 0;\n a = c;\n if (t === 0) {\n return b;\n } else if ((t /= d) === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n if (a < Math.abs(c)) {\n a = c;\n s = p / 4;\n } else {\n s = p / (2 * Math.PI) * Math.asin(c / a);\n }\n return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;\n },\n easeOutElastic: function(t, b, _c, d) {\n var c = _c - b;\n var a, p, s;\n s = 1.70158;\n p = 0;\n a = c;\n if (t === 0) {\n return b;\n } else if ((t /= d) === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n if (a < Math.abs(c)) {\n a = c;\n s = p / 4;\n } else {\n s = p / (2 * Math.PI) * Math.asin(c / a);\n }\n return a * Math.pow(2, -10 * t) * Math.sin((t * d - s) * (2 * Math.PI) / p) + c + b;\n },\n easeInOutElastic: function(t, b, _c, d) {\n var c = _c - b;\n var a, p, s;\n s = 1.70158;\n p = 0;\n a = c;\n if (t === 0) {\n return b;\n } else if ((t /= d / 2) === 2) {\n return b + c;\n }\n if (!p) {\n p = d * (0.3 * 1.5);\n }\n if (a < Math.abs(c)) {\n a = c;\n s = p / 4;\n } else {\n s = p / (2 * Math.PI) * Math.asin(c / a);\n }\n if (t < 1) {\n return -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;\n } else {\n return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p) * 0.5 + c + b;\n }\n },\n easeInBack: function(t, b, _c, d, s) {\n var c = _c - b;\n if (s === void 0) {\n s = 1.70158;\n }\n return c * (t /= d) * t * ((s + 1) * t - s) + b;\n },\n easeOutBack: function(t, b, _c, d, s) {\n var c = _c - b;\n if (s === void 0) {\n s = 1.70158;\n }\n return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;\n },\n easeInOutBack: function(t, b, _c, d, s) {\n var c = _c - b;\n if (s === void 0) {\n s = 1.70158;\n }\n if ((t /= d / 2) < 1) {\n return c / 2 * (t * t * (((s *= 1.525) + 1) * t - s)) + b;\n } else {\n return c / 2 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2) + b;\n }\n },\n easeInBounce: function(t, b, _c, d) {\n var c = _c - b;\n var v;\n v = tweenFunctions.easeOutBounce(d - t, 0, c, d);\n return c - v + b;\n },\n easeOutBounce: function(t, b, _c, d) {\n var c = _c - b;\n if ((t /= d) < 1 / 2.75) {\n return c * (7.5625 * t * t) + b;\n } else if (t < 2 / 2.75) {\n return c * (7.5625 * (t -= 1.5 / 2.75) * t + 0.75) + b;\n } else if (t < 2.5 / 2.75) {\n return c * (7.5625 * (t -= 2.25 / 2.75) * t + 0.9375) + b;\n } else {\n return c * (7.5625 * (t -= 2.625 / 2.75) * t + 0.984375) + b;\n }\n },\n easeInOutBounce: function(t, b, _c, d) {\n var c = _c - b;\n var v;\n if (t < d / 2) {\n v = tweenFunctions.easeInBounce(t * 2, 0, c, d);\n return v * 0.5 + b;\n } else {\n v = tweenFunctions.easeOutBounce(t * 2 - d, 0, c, d);\n return v * 0.5 + c * 0.5 + b;\n }\n }\n};\n\nmodule.exports = tweenFunctions;\n","import React, { Component } from 'react';\nimport tweens from 'tween-functions';\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction degreesToRads(degrees) {\n return degrees * Math.PI / 180;\n}\nfunction randomRange(min, max) {\n return min + Math.random() * (max - min);\n}\nfunction randomInt(min, max) {\n return Math.floor(min + Math.random() * (max - min + 1));\n}\n\nvar ParticleShape;\n\n(function (ParticleShape) {\n ParticleShape[ParticleShape[\"Circle\"] = 0] = \"Circle\";\n ParticleShape[ParticleShape[\"Square\"] = 1] = \"Square\";\n ParticleShape[ParticleShape[\"Strip\"] = 2] = \"Strip\";\n})(ParticleShape || (ParticleShape = {}));\n\nvar RotationDirection;\n\n(function (RotationDirection) {\n RotationDirection[RotationDirection[\"Positive\"] = 1] = \"Positive\";\n RotationDirection[RotationDirection[\"Negative\"] = -1] = \"Negative\";\n})(RotationDirection || (RotationDirection = {}));\n\nvar Particle = /*#__PURE__*/function () {\n function Particle(context, getOptions, x, y) {\n this.getOptions = getOptions;\n\n var _this$getOptions = this.getOptions(),\n colors = _this$getOptions.colors,\n initialVelocityX = _this$getOptions.initialVelocityX,\n initialVelocityY = _this$getOptions.initialVelocityY;\n\n this.context = context;\n this.x = x;\n this.y = y;\n this.w = randomRange(5, 20);\n this.h = randomRange(5, 20);\n this.radius = randomRange(5, 10);\n this.vx = randomRange(-initialVelocityX, initialVelocityX);\n this.vy = randomRange(-initialVelocityY, 0);\n this.shape = randomInt(0, 2);\n this.angle = degreesToRads(randomRange(0, 360));\n this.angularSpin = randomRange(-0.2, 0.2);\n this.color = colors[Math.floor(Math.random() * colors.length)];\n this.rotateY = randomRange(0, 1);\n this.rotationDirection = randomRange(0, 1) ? RotationDirection.Positive : RotationDirection.Negative;\n }\n\n var _proto = Particle.prototype;\n\n _proto.update = function update() {\n var _this$getOptions2 = this.getOptions(),\n gravity = _this$getOptions2.gravity,\n wind = _this$getOptions2.wind,\n friction = _this$getOptions2.friction,\n opacity = _this$getOptions2.opacity,\n drawShape = _this$getOptions2.drawShape;\n\n this.x += this.vx;\n this.y += this.vy;\n this.vy += gravity;\n this.vx += wind;\n this.vx *= friction;\n this.vy *= friction;\n\n if (this.rotateY >= 1 && this.rotationDirection === RotationDirection.Positive) {\n this.rotationDirection = RotationDirection.Negative;\n } else if (this.rotateY <= -1 && this.rotationDirection === RotationDirection.Negative) {\n this.rotationDirection = RotationDirection.Positive;\n }\n\n var rotateDelta = 0.1 * this.rotationDirection;\n this.rotateY += rotateDelta;\n this.angle += this.angularSpin;\n this.context.save();\n this.context.translate(this.x, this.y);\n this.context.rotate(this.angle);\n this.context.scale(1, this.rotateY);\n this.context.rotate(this.angle);\n this.context.beginPath();\n this.context.fillStyle = this.color;\n this.context.strokeStyle = this.color;\n this.context.globalAlpha = opacity;\n this.context.lineCap = 'round';\n this.context.lineWidth = 2;\n\n if (drawShape && typeof drawShape === 'function') {\n drawShape.call(this, this.context);\n } else {\n switch (this.shape) {\n case ParticleShape.Circle:\n {\n this.context.beginPath();\n this.context.arc(0, 0, this.radius, 0, 2 * Math.PI);\n this.context.fill();\n break;\n }\n\n case ParticleShape.Square:\n {\n this.context.fillRect(-this.w / 2, -this.h / 2, this.w, this.h);\n break;\n }\n\n case ParticleShape.Strip:\n {\n this.context.fillRect(-this.w / 6, -this.h / 2, this.w / 3, this.h);\n break;\n }\n\n default:\n {\n throw new Error('Unknown type in Particle.ts');\n }\n }\n }\n\n this.context.closePath();\n this.context.restore();\n };\n\n return Particle;\n}();\n\nvar ParticleGeneratorClass = function ParticleGeneratorClass(canvas, getOptions) {\n var _this = this;\n\n this.x = 0;\n this.y = 0;\n this.w = 0;\n this.h = 0;\n this.lastNumberOfPieces = 0;\n this.tweenInitTime = Date.now();\n this.particles = [];\n this.particlesGenerated = 0;\n\n this.removeParticleAt = function (i) {\n _this.particles.splice(i, 1);\n };\n\n this.getParticle = function () {\n var newParticleX = randomRange(_this.x, _this.w + _this.x);\n var newParticleY = randomRange(_this.y, _this.h + _this.y);\n return new Particle(_this.context, _this.getOptions, newParticleX, newParticleY);\n };\n\n this.animate = function () {\n var canvas = _this.canvas,\n context = _this.context,\n particlesGenerated = _this.particlesGenerated,\n lastNumberOfPieces = _this.lastNumberOfPieces;\n\n var _this$getOptions = _this.getOptions(),\n run = _this$getOptions.run,\n recycle = _this$getOptions.recycle,\n numberOfPieces = _this$getOptions.numberOfPieces,\n debug = _this$getOptions.debug,\n tweenFunction = _this$getOptions.tweenFunction,\n tweenDuration = _this$getOptions.tweenDuration;\n\n if (!run) {\n return false;\n }\n\n var nP = _this.particles.length;\n var activeCount = recycle ? nP : particlesGenerated;\n var now = Date.now(); // Initial population\n\n if (activeCount < numberOfPieces) {\n // Use the numberOfPieces prop as a key to reset the easing timing\n if (lastNumberOfPieces !== numberOfPieces) {\n _this.tweenInitTime = now;\n _this.lastNumberOfPieces = numberOfPieces;\n }\n\n var tweenInitTime = _this.tweenInitTime; // Add more than one piece per loop, otherwise the number of pieces would\n // be limitted by the RAF framerate\n\n var progressTime = now - tweenInitTime > tweenDuration ? tweenDuration : Math.max(0, now - tweenInitTime);\n var tweenedVal = tweenFunction(progressTime, activeCount, numberOfPieces, tweenDuration);\n var numToAdd = Math.round(tweenedVal - activeCount);\n\n for (var i = 0; i < numToAdd; i += 1) {\n _this.particles.push(_this.getParticle());\n }\n\n _this.particlesGenerated += numToAdd;\n }\n\n if (debug) {\n // Draw debug text\n context.font = '12px sans-serif';\n context.fillStyle = '#333';\n context.textAlign = 'right';\n context.fillText(\"Particles: \" + nP, canvas.width - 10, canvas.height - 20);\n } // Maintain the population\n\n\n _this.particles.forEach(function (p, i) {\n // Update each particle's position\n p.update(); // Prune the off-canvas particles\n\n if (p.y > canvas.height || p.y < -100 || p.x > canvas.width + 100 || p.x < -100) {\n if (recycle && activeCount <= numberOfPieces) {\n // Replace the particle with a brand new one\n _this.particles[i] = _this.getParticle();\n } else {\n _this.removeParticleAt(i);\n }\n }\n });\n\n return nP > 0 || activeCount < numberOfPieces;\n };\n\n this.canvas = canvas;\n var ctx = this.canvas.getContext('2d');\n\n if (!ctx) {\n throw new Error('Could not get canvas context');\n }\n\n this.context = ctx;\n this.getOptions = getOptions;\n};\n\nvar confettiDefaults = {\n width: typeof window !== 'undefined' ? window.innerWidth : 300,\n height: typeof window !== 'undefined' ? window.innerHeight : 200,\n numberOfPieces: 200,\n friction: 0.99,\n wind: 0,\n gravity: 0.1,\n initialVelocityX: 4,\n initialVelocityY: 10,\n colors: ['#f44336', '#e91e63', '#9c27b0', '#673ab7', '#3f51b5', '#2196f3', '#03a9f4', '#00bcd4', '#009688', '#4CAF50', '#8BC34A', '#CDDC39', '#FFEB3B', '#FFC107', '#FF9800', '#FF5722', '#795548'],\n opacity: 1.0,\n debug: false,\n tweenFunction: tweens.easeInOutQuad,\n tweenDuration: 5000,\n recycle: true,\n run: true\n};\nvar Confetti = /*#__PURE__*/function () {\n function Confetti(canvas, opts) {\n var _this = this;\n\n this.setOptionsWithDefaults = function (opts) {\n var computedConfettiDefaults = {\n confettiSource: {\n x: 0,\n y: 0,\n w: _this.canvas.width,\n h: 0\n }\n };\n _this._options = _extends({}, computedConfettiDefaults, confettiDefaults, opts);\n Object.assign(_this, opts.confettiSource);\n };\n\n this.update = function () {\n var _this$options = _this.options,\n run = _this$options.run,\n onConfettiComplete = _this$options.onConfettiComplete,\n canvas = _this.canvas,\n context = _this.context;\n\n if (run) {\n context.fillStyle = 'white';\n context.clearRect(0, 0, canvas.width, canvas.height);\n }\n\n if (_this.generator.animate()) {\n _this.rafId = requestAnimationFrame(_this.update);\n } else {\n if (onConfettiComplete && typeof onConfettiComplete === 'function' && _this.generator.particlesGenerated > 0) {\n onConfettiComplete.call(_this, _this);\n }\n\n _this._options.run = false;\n }\n };\n\n this.reset = function () {\n if (_this.generator && _this.generator.particlesGenerated > 0) {\n _this.generator.particlesGenerated = 0;\n _this.generator.particles = [];\n _this.generator.lastNumberOfPieces = 0;\n }\n };\n\n this.stop = function () {\n _this.options = {\n run: false\n };\n\n if (_this.rafId) {\n cancelAnimationFrame(_this.rafId);\n _this.rafId = undefined;\n }\n };\n\n this.canvas = canvas;\n var ctx = this.canvas.getContext('2d');\n\n if (!ctx) {\n throw new Error('Could not get canvas context');\n }\n\n this.context = ctx;\n this.generator = new ParticleGeneratorClass(this.canvas, function () {\n return _this.options;\n });\n this.options = opts;\n this.update();\n }\n\n _createClass(Confetti, [{\n key: \"options\",\n get: function get() {\n return this._options;\n },\n set: function set(opts) {\n var lastRunState = this._options && this._options.run;\n var lastRecycleState = this._options && this._options.recycle;\n this.setOptionsWithDefaults(opts);\n\n if (this.generator) {\n Object.assign(this.generator, this.options.confettiSource);\n\n if (typeof opts.recycle === 'boolean' && opts.recycle && lastRecycleState === false) {\n this.generator.lastNumberOfPieces = this.generator.particles.length;\n }\n }\n\n if (typeof opts.run === 'boolean' && opts.run && lastRunState === false) {\n this.update();\n }\n }\n }]);\n\n return Confetti;\n}();\n\nvar ref = /*#__PURE__*/React.createRef();\n\nfunction extractCanvasProps(props) {\n var confettiOptions = {};\n var refs = {};\n var rest = {};\n var confettiOptionKeys = [].concat(Object.keys(confettiDefaults), ['confettiSource', 'drawShape', 'onConfettiComplete']);\n var refProps = ['canvasRef'];\n Object.keys(props).forEach(function (prop) {\n var val = props[prop];\n\n if (confettiOptionKeys.includes(prop)) {\n confettiOptions[prop] = val;\n } else if (refProps.includes(prop)) {\n refProps[prop] = val;\n } else {\n rest[prop] = val;\n }\n });\n return [confettiOptions, rest, refs];\n}\n\nvar ConfettiReactInternal = /*#__PURE__*/function (_Component) {\n _inheritsLoose(ConfettiReactInternal, _Component);\n\n function ConfettiReactInternal(props) {\n var _this;\n\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this, props].concat(rest)) || this;\n _this.canvas = React.createRef();\n _this.canvas = props.canvasRef || ref;\n return _this;\n }\n\n var _proto = ConfettiReactInternal.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.canvas.current) {\n var opts = extractCanvasProps(this.props)[0];\n this.confetti = new Confetti(this.canvas.current, opts);\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var confettiOptions = extractCanvasProps(this.props)[0];\n\n if (this.confetti) {\n this.confetti.options = confettiOptions;\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.confetti) {\n this.confetti.stop();\n }\n\n this.confetti = undefined;\n };\n\n _proto.render = function render() {\n var _extractCanvasProps = extractCanvasProps(this.props),\n confettiOptions = _extractCanvasProps[0],\n passedProps = _extractCanvasProps[1];\n\n var canvasStyles = _extends({\n zIndex: 2,\n position: 'absolute',\n pointerEvents: 'none',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n }, passedProps.style);\n\n return React.createElement(\"canvas\", Object.assign({\n width: confettiOptions.width,\n height: confettiOptions.height,\n ref: this.canvas\n }, passedProps, {\n style: canvasStyles\n }));\n };\n\n return ConfettiReactInternal;\n}(Component);\n\nConfettiReactInternal.defaultProps = /*#__PURE__*/_extends({}, confettiDefaults);\nConfettiReactInternal.displayName = 'ConfettiReact'; // eslint-disable-next-line react/display-name\n\nvar Index = /*#__PURE__*/React.forwardRef(function (props, _ref) {\n return React.createElement(ConfettiReactInternal, Object.assign({\n canvasRef: ref\n }, props));\n});\n\nexport default Index;\nexport { Index };\n//# sourceMappingURL=confetti-react.esm.js.map\n","import { useSyncExternalStore } from \"react\";\nfunction subscribe() {\n return () => { };\n}\n/**\n * Return a boolean indicating if the JS has been hydrated already.\n * When doing Server-Side Rendering, the result will always be false.\n * When doing Client-Side Rendering, the result will always be false on the\n * first render and true from then on. Even if a new component renders it will\n * always start with true.\n *\n * Example: Disable a button that needs JS to work.\n * ```tsx\n * let hydrated = useHydrated();\n * return (\n * <button type=\"button\" disabled={!hydrated} onClick={doSomethingCustom}>\n * Click me\n * </button>\n * );\n * ```\n */\nexport function useHydrated() {\n return useSyncExternalStore(subscribe, () => true, () => false);\n}\n","import * as React from \"react\";\nimport { useHydrated } from \"./use-hydrated.js\";\n/**\n * Render the children only after the JS has loaded client-side. Use an optional\n * fallback component if the JS is not yet loaded.\n *\n * Example: Render a Chart component if JS loads, renders a simple FakeChart\n * component server-side or if there is no JS. The FakeChart can have only the\n * UI without the behavior or be a loading spinner or skeleton.\n * ```tsx\n * return (\n * <ClientOnly fallback={<FakeChart />}>\n * {() => <Chart />}\n * </ClientOnly>\n * );\n * ```\n */\nexport function ClientOnly({ children, fallback = null }) {\n return useHydrated() ? React.createElement(React.Fragment, null, children()) : React.createElement(React.Fragment, null, fallback);\n}\n","import { Index as ConfettiShower } from 'confetti-react'\nimport { ClientOnly } from 'remix-utils/client-only'\n\nexport function Confetti({ id }: { id?: string | null }) {\n\tif (!id) return null\n\n\treturn (\n\t\t<ClientOnly>\n\t\t\t{() => (\n\t\t\t\t<ConfettiShower\n\t\t\t\t\tkey={id}\n\t\t\t\t\trun={Boolean(id)}\n\t\t\t\t\trecycle={false}\n\t\t\t\t\tnumberOfPieces={800}\n\t\t\t\t\twidth={window.innerWidth}\n\t\t\t\t\theight={window.innerHeight}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</ClientOnly>\n\t)\n}\n","import { useEffect } from 'react'\nimport { Toaster, toast as showToast } from 'sonner'\nimport { type Toast } from '#app/utils/toast.server.ts'\n\nexport function EpicToaster({ toast }: { toast?: Toast | null }) {\n\treturn (\n\t\t<>\n\t\t\t<Toaster closeButton position=\"top-center\" />\n\t\t\t{toast ? <ShowToast toast={toast} /> : null}\n\t\t</>\n\t)\n}\n\nfunction ShowToast({ toast }: { toast: Toast }) {\n\tconst { id, type, title, description } = toast\n\tuseEffect(() => {\n\t\tsetTimeout(() => {\n\t\t\tshowToast[type](title, { id, description })\n\t\t}, 0)\n\t}, [description, id, title, type])\n\treturn null\n}\n","import \"/home/runner/work/epicshop/epicshop/packages/workshop-app/app/styles/app.css?transform-only\";export default \"__VITE_CSS_URL__2f686f6d652f72756e6e65722f776f726b2f6570696373686f702f6570696373686f702f7061636b616765732f776f726b73686f702d6170702f6170702f7374796c65732f6170702e6373733f7472616e73666f726d2d6f6e6c79__\"","import \"/home/runner/work/epicshop/epicshop/packages/workshop-app/app/styles/tailwind.css?transform-only\";export default \"__VITE_CSS_URL__2f686f6d652f72756e6e65722f776f726b2f6570696373686f702f6570696373686f702f7061636b616765732f776f726b73686f702d6170702f6170702f7374796c65732f7461696c77696e642e6373733f7472616e73666f726d2d6f6e6c79__\"","import path from 'node:path'\nimport { getPresentUsers } from '@epic-web/workshop-presence/presence.server'\nimport {\n\tgetApps,\n\tgetWorkshopInstructor,\n\tgetWorkshopSubtitle,\n\tgetWorkshopTitle,\n} from '@epic-web/workshop-utils/apps.server'\nimport {\n\tgetDiscordMember,\n\tgetPreferences,\n\tgetUserInfo,\n\treadOnboardingData,\n} from '@epic-web/workshop-utils/db.server'\nimport { makeTimings, time } from '@epic-web/workshop-utils/timing.server'\nimport { cssBundleHref } from '@remix-run/css-bundle'\nimport {\n\tjson,\n\tredirect,\n\ttype HeadersFunction,\n\ttype LinksFunction,\n\ttype LoaderFunctionArgs,\n\ttype MetaFunction,\n} from '@remix-run/node'\nimport {\n\tLinks,\n\tMeta,\n\tOutlet,\n\tScripts,\n\tScrollRestoration,\n\tuseLoaderData,\n\tuseNavigation,\n\tuseRevalidator,\n} from '@remix-run/react'\nimport { useEffect } from 'react'\nimport { useSpinDelay } from 'spin-delay'\nimport { Confetti } from './components/confetti.tsx'\nimport { GeneralErrorBoundary } from './components/error-boundary.tsx'\nimport { EpicProgress } from './components/progress-bar.tsx'\nimport { EpicToaster } from './components/toaster.tsx'\nimport { TooltipProvider } from './components/ui/tooltip.tsx'\nimport { useTheme } from './routes/theme/index.tsx'\nimport { getTheme } from './routes/theme/theme-session.server.ts'\nimport appStylesheetUrl from './styles/app.css?url'\nimport tailwindStylesheetUrl from './styles/tailwind.css?url'\nimport { ClientHintCheck, getHints } from './utils/client-hints.tsx'\nimport { getConfetti } from './utils/confetti.server.ts'\nimport { getEnv } from './utils/env.server.ts'\nimport { getProgress } from './utils/epic-api.ts'\nimport { cn, combineHeaders, getDomainUrl, useAltDown } from './utils/misc.tsx'\nimport { Presence } from './utils/presence.tsx'\nimport { getSeoMetaTags } from './utils/seo.ts'\nimport { getToast } from './utils/toast.server.ts'\n\nexport const links: LinksFunction = () => {\n\treturn [\n\t\t{ rel: 'stylesheet', href: '/neogrotesk-font.css' },\n\t\t{\n\t\t\trel: 'stylesheet',\n\t\t\thref: 'https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,200;0,300;0,400;0,500;0,600;1,700&display=swap',\n\t\t},\n\t\t{ rel: 'stylesheet', href: tailwindStylesheetUrl },\n\t\t{ rel: 'stylesheet', href: appStylesheetUrl },\n\t\t...(cssBundleHref ? [{ rel: 'stylesheet', href: cssBundleHref }] : []),\n\t\t{ rel: 'mask-icon', href: '/favicons/favicon.svg' },\n\t\t{\n\t\t\trel: 'alternate icon',\n\t\t\ttype: 'image/png',\n\t\t\thref: '/favicon.png',\n\t\t},\n\t\t{ rel: 'icon', type: 'image/svg+xml', href: '/favicon.svg' },\n\t]\n}\n\nexport const meta: MetaFunction<typeof loader> = ({ data }) => {\n\tif (!data) return []\n\n\treturn getSeoMetaTags({\n\t\tinstructor: data.instructor,\n\t\ttitle: data.workshopTitle,\n\t\tdescription: data.workshopSubtitle,\n\t\trequestInfo: data.requestInfo,\n\t})\n}\n\nexport async function loader({ request }: LoaderFunctionArgs) {\n\tconst timings = makeTimings('rootLoader')\n\tconst onboarding = await readOnboardingData()\n\tif (!ENV.EPICSHOP_DEPLOYED && !onboarding?.finishedTourVideo) {\n\t\tif (new URL(request.url).pathname !== '/onboarding') {\n\t\t\tthrow redirect('/onboarding')\n\t\t}\n\t}\n\tconst workshopTitle = await time(() => getWorkshopTitle(), {\n\t\ttype: 'getWorkshopTitle',\n\t\tdesc: 'getWorkshopTitle in root',\n\t\ttimings,\n\t})\n\tconst workshopSubtitle = await time(() => getWorkshopSubtitle(), {\n\t\ttype: 'getWorkshopSubtitle',\n\t\tdesc: 'getWorkshopSubtitle in root',\n\t\ttimings,\n\t})\n\tconst instructor = await time(() => getWorkshopInstructor(), {\n\t\ttype: 'getInstructor',\n\t\tdesc: 'getInstructor in root',\n\t\ttimings,\n\t})\n\n\tconst preferences = await getPreferences()\n\tconst progress = await getProgress({ timings }).catch((e) => {\n\t\tconsole.error('Failed to get progress', e)\n\t\tconst emptyProgress: Awaited<ReturnType<typeof getProgress>> = []\n\t\treturn emptyProgress\n\t})\n\tconst { toast, headers: toastHeaders } = await getToast(request)\n\tconst { confettiId, headers: confettiHeaders } = getConfetti(request)\n\tconst discordMember = await getDiscordMember()\n\tconst theme = getTheme(request)\n\tconst user = await getUserInfo()\n\tconst apps = await getApps({ request, timings })\n\tconst presentUsers = await getPresentUsers(user, { request, timings })\n\treturn json(\n\t\t{\n\t\t\tworkshopTitle,\n\t\t\tworkshopSubtitle,\n\t\t\tinstructor,\n\t\t\tapps: apps.map(({ name, fullPath, relativePath }) => ({\n\t\t\t\tname,\n\t\t\t\tfullPath,\n\t\t\t\trelativePath,\n\t\t\t})),\n\t\t\tENV: getEnv(),\n\t\t\trequestInfo: {\n\t\t\t\torigin: new URL(request.url).origin,\n\t\t\t\tdomain: getDomainUrl(request),\n\t\t\t\thints: getHints(request),\n\t\t\t\tpath: new URL(request.url).pathname,\n\t\t\t\tsession: { theme },\n\t\t\t\tseparator: path.sep,\n\t\t\t},\n\t\t\tprogress,\n\t\t\tpreferences,\n\t\t\tdiscordMember,\n\t\t\tuser,\n\t\t\ttoast,\n\t\t\tconfettiId,\n\t\t\tpresence: {\n\t\t\t\tusers: presentUsers,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\theaders: combineHeaders(toastHeaders, confettiHeaders, {\n\t\t\t\t'Server-Timing': timings.toString(),\n\t\t\t}),\n\t\t},\n\t)\n}\n\nexport const headers: HeadersFunction = ({ loaderHeaders }) => {\n\tconst headers = {\n\t\t'Cache-Control': loaderHeaders.get('Cache-Control') ?? '',\n\t\t'Server-Timing': loaderHeaders.get('Server-Timing') ?? '',\n\t}\n\treturn headers\n}\n\nfunction Document({\n\tchildren,\n\tenv = {},\n\tclassName,\n}: {\n\tchildren: React.ReactNode\n\tenv?: Record<string, unknown>\n\tclassName: string\n}) {\n\tconst revalidator = useRevalidator()\n\tuseEffect(() => {\n\t\twindow.__epicshop ??= {}\n\t\twindow.__epicshop.handleFileChange = revalidator.revalidate\n\t}, [revalidator])\n\treturn (\n\t\t<html lang=\"en\" className={className}>\n\t\t\t<head>\n\t\t\t\t<ClientHintCheck />\n\t\t\t\t<Meta />\n\t\t\t\t<meta charSet=\"utf-8\" />\n\t\t\t\t<meta name=\"viewport\" content=\"width=device-width,initial-scale=1\" />\n\t\t\t\t<Links />\n\t\t\t\t<script\n\t\t\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t\t\t__html: `window.ENV = ${JSON.stringify(env)}`,\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</head>\n\t\t\t<body className=\"bg-background text-foreground scrollbar-thin scrollbar-thumb-scrollbar h-screen-safe\">\n\t\t\t\t{children}\n\t\t\t\t<ScrollRestoration />\n\t\t\t\t<Scripts />\n\t\t\t\t{ENV.EPICSHOP_DEPLOYED ? null : (\n\t\t\t\t\t<script dangerouslySetInnerHTML={{ __html: getWebsocketJS() }} />\n\t\t\t\t)}\n\t\t\t</body>\n\t\t</html>\n\t)\n}\n\nfunction App() {\n\tconst data = useLoaderData<typeof loader>()\n\tconst navigation = useNavigation()\n\tconst showSpinner = useSpinDelay(navigation.state !== 'idle', {\n\t\tdelay: 400,\n\t\tminDuration: 200,\n\t})\n\tconst altDown = useAltDown()\n\n\tconst theme = useTheme()\n\treturn (\n\t\t<Document\n\t\t\tclassName={cn(\n\t\t\t\t'antialiased h-screen-safe',\n\t\t\t\ttheme,\n\t\t\t\t{ 'cursor-progress': showSpinner },\n\t\t\t\taltDown ? 'alt-down' : null,\n\t\t\t)}\n\t\t\tenv={data.ENV}\n\t\t>\n\t\t\t<Outlet />\n\t\t\t<Confetti id={data.confettiId} />\n\t\t\t<EpicToaster toast={data.toast} />\n\t\t\t<EpicProgress />\n\t\t</Document>\n\t)\n}\n\nexport default function AppWithProviders() {\n\tconst { user } = useLoaderData<typeof loader>()\n\treturn (\n\t\t<Presence user={user}>\n\t\t\t<TooltipProvider>\n\t\t\t\t<App />\n\t\t\t</TooltipProvider>\n\t\t</Presence>\n\t)\n}\n\nexport function ErrorBoundary() {\n\treturn (\n\t\t<Document className=\"h-screen-safe\">\n\t\t\t<GeneralErrorBoundary />\n\t\t</Document>\n\t)\n}\n\nfunction getWebsocketJS() {\n\tconst js = /* javascript */ `\n\tfunction epicLiveReloadConnect(config) {\n\t\tconst protocol = location.protocol === \"https:\" ? \"wss:\" : \"ws:\";\n\t\tconst host = location.hostname;\n\t\tconst port = location.port;\n\t\tconst socketPath = protocol + \"//\" + host + \":\" + port + \"/__ws\";\n\t\tconst ws = new WebSocket(socketPath);\n\t\tfunction handleFileChange(changedFiles) {\n\t\t\tconsole.log(\n\t\t\t\t['🐨 Reloading', window.frameElement?.getAttribute('title')]\n\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t.join(' '),\n\t\t\t\tchangedFiles\n\t\t\t);\n\t\t\tif (typeof window.__epicshop?.handleFileChange === \"function\") {\n\t\t\t\twindow.__epicshop?.handleFileChange();\n\t\t\t} else {\n\t\t\t\tsetTimeout(() => window.location.reload(), 200);\n\t\t\t}\n\t\t}\n\t\tfunction debounce(fn, ms) {\n\t\t\tlet timeout;\n\t\t\treturn function debouncedFn(...args) {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t\ttimeout = setTimeout(() => fn(...args), ms);\n\t\t\t};\n\t\t}\n\t\tconst debouncedHandleFileChange = debounce(handleFileChange, 50);\n\t\tws.onmessage = (message) => {\n\t\t\tconst event = JSON.parse(message.data);\n\t\t\tif (event.type !== 'epicshop:file-change') return;\n\t\t\tconst { filePaths } = event.data;\n\t\t\tdebouncedHandleFileChange(filePaths);\n\t\t};\n\t\tws.onopen = () => {\n\t\t\tif (config && typeof config.onOpen === \"function\") {\n\t\t\t\tconfig.onOpen();\n\t\t\t}\n\t\t};\n\t\tws.onclose = (event) => {\n\t\t\tif (event.code === 1006) {\n\t\t\t\tconsole.log(\"Epic Web dev server web socket closed. Reconnecting...\");\n\t\t\t\tsetTimeout(\n\t\t\t\t\t() =>\n\t\t\t\t\t\tepicLiveReloadConnect({\n\t\t\t\t\t\t\tonOpen: () => window.location.reload(),\n\t\t\t\t\t\t}),\n\t\t\t\t1000\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\t\tws.onerror = (error) => {\n\t\t\tconsole.log(\"Epic Web dev server web socket error:\");\n\t\t\tconsole.error(error);\n\t\t};\n\t}\n\tepicLiveReloadConnect();\n\t`\n\treturn js\n}\n"],"names":["STORAGE_KEY","ScrollRestoration","getKey","props","isSpaMode","useRemixContext","location","useLocation","matches","useMatches","UNSAFE_useScrollRestoration","key","React.useMemo","userKey","restoreScroll","restoreKey","storedY","error","React.createElement","_extends","tweenFunctions","t","b","_c","d","c","a","p","s","v","tweenFunctions_1","_defineProperties","target","i","descriptor","_createClass","Constructor","protoProps","staticProps","source","_inheritsLoose","subClass","superClass","_setPrototypeOf","o","degreesToRads","degrees","randomRange","min","max","randomInt","ParticleShape","RotationDirection","Particle","context","getOptions","x","y","_this$getOptions","colors","initialVelocityX","initialVelocityY","_proto","_this$getOptions2","gravity","wind","friction","opacity","drawShape","rotateDelta","ParticleGeneratorClass","canvas","_this","newParticleX","newParticleY","particlesGenerated","lastNumberOfPieces","run","recycle","numberOfPieces","debug","tweenFunction","tweenDuration","nP","activeCount","now","tweenInitTime","progressTime","tweenedVal","numToAdd","ctx","confettiDefaults","tweens","Confetti","opts","computedConfettiDefaults","_this$options","onConfettiComplete","lastRunState","lastRecycleState","ref","React","extractCanvasProps","confettiOptions","refs","rest","confettiOptionKeys","refProps","prop","val","ConfettiReactInternal","_Component","_len","_key","_extractCanvasProps","passedProps","canvasStyles","Component","Index","_ref","subscribe","useHydrated","useSyncExternalStore","ClientOnly","children","fallback","React.Fragment","id","jsx","ConfettiShower","EpicToaster","toast","jsxs","Fragment","Toaster","ShowToast","type","title","description","useEffect","showToast","appStylesheetUrl","tailwindStylesheetUrl","links","rel","href","meta","data","getSeoMetaTags","instructor","workshopTitle","workshopSubtitle","requestInfo","Document","env","className","revalidator","useRevalidator","window","__epicshop","handleFileChange","revalidate","lang","ClientHintCheck","Meta","charSet","name","content","Links","dangerouslySetInnerHTML","__html","JSON","stringify","Scripts","ENV","EPICSHOP_DEPLOYED","getWebsocketJS","App","useLoaderData","navigation","useNavigation","showSpinner","useSpinDelay","state","delay","minDuration","altDown","useAltDown","theme","useTheme","cn","Outlet","confettiId","EpicProgress","AppWithProviders","user","Presence","TooltipProvider","ErrorBoundary","GeneralErrorBoundary"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
@@ -3272,7 +3272,7 @@ const route36 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
3272
3272
  action: action$c,
3273
3273
  useTheme
3274
3274
  }, Symbol.toStringTag, { value: "Module" }));
3275
- const appStylesheetUrl = "/assets/app-BKC4z3M_.css";
3275
+ const appStylesheetUrl = "/assets/app-BOiko_VU.css";
3276
3276
  const tailwindStylesheetUrl = "/assets/tailwind-BZciDTNv.css";
3277
3277
  const cookieName = "EpicShop_confetti";
3278
3278
  function getConfetti(request) {
@@ -13033,7 +13033,7 @@ const route31 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
13033
13033
  __proto__: null,
13034
13034
  loader
13035
13035
  }, Symbol.toStringTag, { value: "Module" }));
13036
- const serverManifest = { "entry": { "module": "/assets/entry.client-Cs8lBz8l.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-wgHiPsTg.js"], "css": [] }, "routes": { "root": { "id": "root", "parentId": void 0, "path": "", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/root-CfGEU-lr.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-wgHiPsTg.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-S5ZD98sI.js", "/assets/request-info-DHtGM4FI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/client-hints-DLYDs4RF.js", "/assets/error-boundary-BVTbN8PZ.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-DjzedX4O.js", "/assets/index-yEAxvbDV.js", "/assets/presence-CW1_eiIo.js", "/assets/seo-pBpFCWsy.js"], "css": [] }, "routes/$": { "id": "routes/$", "parentId": "root", "path": "*", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_-DYArYM0Z.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/misc-S5ZD98sI.js", "/assets/error-boundary-BVTbN8PZ.js"], "css": [] }, "routes/_app+/_layout": { "id": "routes/_app+/_layout", "parentId": "root", "path": void 0, "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-dHX2Hcew.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/misc-S5ZD98sI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/request-info-DHtGM4FI.js", "/assets/client-hints-DLYDs4RF.js", "/assets/index-C6ToujzV.js", "/assets/user-CdUDQ7a8.js", "/assets/presence-CW1_eiIo.js", "/assets/progress-BwanvUpB.js", "/assets/index-yEAxvbDV.js"], "css": [] }, "routes/_app+/_exercises+/_layout": { "id": "routes/_app+/_exercises+/_layout", "parentId": "routes/_app+/_layout", "path": void 0, "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-DaZNLfOL.js", "imports": ["/assets/index-Czg1ruVn.js"], "css": [] }, "routes/_app+/_exercises+/$exerciseNumber": { "id": "routes/_app+/_exercises+/$exerciseNumber", "parentId": "routes/_app+/_exercises+/_layout", "path": ":exerciseNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber-Ccwr4LZw.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-wgHiPsTg.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-S5ZD98sI.js", "/assets/request-info-DHtGM4FI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/client-hints-DLYDs4RF.js", "/assets/index-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video-DJN9_SUj.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-D6ukHE4T.js", "/assets/mdx-BENF-kTQ.js", "/assets/progress-BwanvUpB.js", "/assets/seo-pBpFCWsy.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber": { "id": "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber", "parentId": "routes/_app+/_exercises+/_layout", "path": ":exerciseNumber/:stepNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber_._stepNumber-Ct5BCuA1.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/misc-S5ZD98sI.js"], "css": [] }, "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber.$type+/_layout": { "id": "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber.$type+/_layout", "parentId": "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber", "path": ":type", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_layout-Bn9QhWq9.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/misc-S5ZD98sI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/request-info-DHtGM4FI.js", "/assets/client-hints-DLYDs4RF.js", "/assets/index-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video-DJN9_SUj.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-C6ToujzV.js", "/assets/mdx-BENF-kTQ.js", "/assets/index-D6ukHE4T.js", "/assets/diff-CpG96hGZ.js", "/assets/error-boundary-BVTbN8PZ.js", "/assets/nav-chevrons-DaXg0NPS.js", "/assets/progress-BwanvUpB.js", "/assets/seo-pBpFCWsy.js", "/assets/discord-yZor-3t1.js", "/assets/index-DjzedX4O.js", "/assets/button-BA3iiLRs.js", "/assets/use-event-source-ySol3hbz.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber.index": { "id": "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber.index", "parentId": "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_._stepNumber.index-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/_exercises+/$exerciseNumber_.finished": { "id": "routes/_app+/_exercises+/$exerciseNumber_.finished", "parentId": "routes/_app+/_exercises+/_layout", "path": ":exerciseNumber/finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_.finished-gEWcHsfL.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-wgHiPsTg.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-S5ZD98sI.js", "/assets/request-info-DHtGM4FI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/client-hints-DLYDs4RF.js", "/assets/index-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video-DJN9_SUj.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-D6ukHE4T.js", "/assets/nav-chevrons-DaXg0NPS.js", "/assets/mdx-BENF-kTQ.js", "/assets/progress-BwanvUpB.js", "/assets/seo-pBpFCWsy.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/account": { "id": "routes/_app+/account", "parentId": "routes/_app+/_layout", "path": "account", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/account-uvU1jIL2.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/misc-S5ZD98sI.js", "/assets/request-info-DHtGM4FI.js", "/assets/button-BA3iiLRs.js", "/assets/tooltip-BtzSIxlB.js", "/assets/user-CdUDQ7a8.js", "/assets/presence-CW1_eiIo.js"], "css": [] }, "routes/_app+/app.$appName+/$": { "id": "routes/_app+/app.$appName+/$", "parentId": "routes/_app+/_layout", "path": "app/:appName/*", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/api.$": { "id": "routes/_app+/app.$appName+/api.$", "parentId": "routes/_app+/_layout", "path": "app/:appName/api/*", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/api._-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/epic_ws[.js]": { "id": "routes/_app+/app.$appName+/epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/index": { "id": "routes/_app+/app.$appName+/index", "parentId": "routes/_app+/_layout", "path": "app/:appName/", "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-K6Dvbx-E.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/test.$testName": { "id": "routes/_app+/app.$appName+/test.$testName", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/:testName", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test._testName-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/discord": { "id": "routes/_app+/discord", "parentId": "routes/_app+/_layout", "path": "discord", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/discord-CgwNGD2p.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/misc-S5ZD98sI.js", "/assets/user-CdUDQ7a8.js", "/assets/discord-yZor-3t1.js"], "css": [] }, "routes/_app+/finished": { "id": "routes/_app+/finished", "parentId": "routes/_app+/_layout", "path": "finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/finished-B9qjUR4B.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-wgHiPsTg.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-S5ZD98sI.js", "/assets/request-info-DHtGM4FI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/client-hints-DLYDs4RF.js", "/assets/index-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video-DJN9_SUj.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-D6ukHE4T.js", "/assets/nav-chevrons-DaXg0NPS.js", "/assets/mdx-BENF-kTQ.js", "/assets/seo-pBpFCWsy.js", "/assets/progress-BwanvUpB.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/index": { "id": "routes/_app+/index", "parentId": "routes/_app+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/index-3HxjMIAS.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-wgHiPsTg.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-S5ZD98sI.js", "/assets/request-info-DHtGM4FI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/client-hints-DLYDs4RF.js", "/assets/index-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video-DJN9_SUj.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-D6ukHE4T.js", "/assets/error-boundary-BVTbN8PZ.js", "/assets/mdx-BENF-kTQ.js", "/assets/progress-BwanvUpB.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/login": { "id": "routes/_app+/login", "parentId": "routes/_app+/_layout", "path": "login", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/login-CHE9W6po.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/request-info-DHtGM4FI.js", "/assets/client-hints-DLYDs4RF.js", "/assets/use-event-source-ySol3hbz.js", "/assets/button-BA3iiLRs.js", "/assets/loading-B0uKxERz.js"], "css": [] }, "routes/_app+/support": { "id": "routes/_app+/support", "parentId": "routes/_app+/_layout", "path": "support", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/support-D1ydJNdm.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-wgHiPsTg.js"], "css": [] }, "routes/admin+/_layout": { "id": "routes/admin+/_layout", "parentId": "root", "path": "admin", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-B9Y-8OU6.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/misc-S5ZD98sI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/progress-BwanvUpB.js"], "css": [] }, "routes/admin+/apps": { "id": "routes/admin+/apps", "parentId": "routes/admin+/_layout", "path": "apps", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/apps-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/admin+/cache": { "id": "routes/admin+/cache", "parentId": "routes/admin+/_layout", "path": "cache", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/cache-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/apps": { "id": "routes/apps", "parentId": "root", "path": "apps", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/apps-DP2rzg_V.js", "imports": [], "css": [] }, "routes/diff": { "id": "routes/diff", "parentId": "root", "path": "diff", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/diff-Bd9WnUnR.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/misc-S5ZD98sI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/request-info-DHtGM4FI.js", "/assets/client-hints-DLYDs4RF.js", "/assets/index-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video-DJN9_SUj.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-C6ToujzV.js", "/assets/mdx-BENF-kTQ.js", "/assets/diff-CpG96hGZ.js", "/assets/nav-chevrons-DaXg0NPS.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/discord.callback": { "id": "routes/discord.callback", "parentId": "root", "path": "discord/callback", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/discord.callback-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/exercises": { "id": "routes/exercises", "parentId": "root", "path": "exercises", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/exercises-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/launch-editor": { "id": "routes/launch-editor", "parentId": "root", "path": "launch-editor", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/launch-editor-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/login-sse": { "id": "routes/login-sse", "parentId": "root", "path": "login-sse", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/login-sse-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/og": { "id": "routes/og", "parentId": "root", "path": "og", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/og-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/onboarding": { "id": "routes/onboarding", "parentId": "root", "path": "onboarding", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/onboarding-FD1FkQuu.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/misc-S5ZD98sI.js", "/assets/request-info-DHtGM4FI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/client-hints-DLYDs4RF.js", "/assets/index-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/button-BA3iiLRs.js", "/assets/epic-video-DJN9_SUj.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/processes": { "id": "routes/processes", "parentId": "root", "path": "processes", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/processes-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/progress": { "id": "routes/progress", "parentId": "root", "path": "progress", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/progress-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/set-playground": { "id": "routes/set-playground", "parentId": "root", "path": "set-playground", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/set-playground-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/start": { "id": "routes/start", "parentId": "root", "path": "start", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/start-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/test": { "id": "routes/test", "parentId": "root", "path": "test", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/theme/index": { "id": "routes/theme/index", "parentId": "root", "path": "theme", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/update-mdx-cache": { "id": "routes/update-mdx-cache", "parentId": "root", "path": "update-mdx-cache", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/update-mdx-cache-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/video-player/index": { "id": "routes/video-player/index", "parentId": "root", "path": "video-player", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-DP2rzg_V.js", "imports": [], "css": [] } }, "url": "/assets/manifest-78b57635.js", "version": "78b57635" };
13036
+ const serverManifest = { "entry": { "module": "/assets/entry.client-Cs8lBz8l.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-wgHiPsTg.js"], "css": [] }, "routes": { "root": { "id": "root", "parentId": void 0, "path": "", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/root-B86bLhuo.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-wgHiPsTg.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-S5ZD98sI.js", "/assets/request-info-DHtGM4FI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/client-hints-DLYDs4RF.js", "/assets/error-boundary-BVTbN8PZ.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-DjzedX4O.js", "/assets/index-yEAxvbDV.js", "/assets/presence-CW1_eiIo.js", "/assets/seo-pBpFCWsy.js"], "css": [] }, "routes/$": { "id": "routes/$", "parentId": "root", "path": "*", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_-DYArYM0Z.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/misc-S5ZD98sI.js", "/assets/error-boundary-BVTbN8PZ.js"], "css": [] }, "routes/_app+/_layout": { "id": "routes/_app+/_layout", "parentId": "root", "path": void 0, "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-dHX2Hcew.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/misc-S5ZD98sI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/request-info-DHtGM4FI.js", "/assets/client-hints-DLYDs4RF.js", "/assets/index-C6ToujzV.js", "/assets/user-CdUDQ7a8.js", "/assets/presence-CW1_eiIo.js", "/assets/progress-BwanvUpB.js", "/assets/index-yEAxvbDV.js"], "css": [] }, "routes/_app+/_exercises+/_layout": { "id": "routes/_app+/_exercises+/_layout", "parentId": "routes/_app+/_layout", "path": void 0, "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-DaZNLfOL.js", "imports": ["/assets/index-Czg1ruVn.js"], "css": [] }, "routes/_app+/_exercises+/$exerciseNumber": { "id": "routes/_app+/_exercises+/$exerciseNumber", "parentId": "routes/_app+/_exercises+/_layout", "path": ":exerciseNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber-Ccwr4LZw.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-wgHiPsTg.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-S5ZD98sI.js", "/assets/request-info-DHtGM4FI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/client-hints-DLYDs4RF.js", "/assets/index-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video-DJN9_SUj.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-D6ukHE4T.js", "/assets/mdx-BENF-kTQ.js", "/assets/progress-BwanvUpB.js", "/assets/seo-pBpFCWsy.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber": { "id": "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber", "parentId": "routes/_app+/_exercises+/_layout", "path": ":exerciseNumber/:stepNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber_._stepNumber-Ct5BCuA1.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/misc-S5ZD98sI.js"], "css": [] }, "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber.$type+/_layout": { "id": "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber.$type+/_layout", "parentId": "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber", "path": ":type", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_layout-Bn9QhWq9.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/misc-S5ZD98sI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/request-info-DHtGM4FI.js", "/assets/client-hints-DLYDs4RF.js", "/assets/index-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video-DJN9_SUj.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-C6ToujzV.js", "/assets/mdx-BENF-kTQ.js", "/assets/index-D6ukHE4T.js", "/assets/diff-CpG96hGZ.js", "/assets/error-boundary-BVTbN8PZ.js", "/assets/nav-chevrons-DaXg0NPS.js", "/assets/progress-BwanvUpB.js", "/assets/seo-pBpFCWsy.js", "/assets/discord-yZor-3t1.js", "/assets/index-DjzedX4O.js", "/assets/button-BA3iiLRs.js", "/assets/use-event-source-ySol3hbz.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber.index": { "id": "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber.index", "parentId": "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_._stepNumber.index-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/_exercises+/$exerciseNumber_.finished": { "id": "routes/_app+/_exercises+/$exerciseNumber_.finished", "parentId": "routes/_app+/_exercises+/_layout", "path": ":exerciseNumber/finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_.finished-gEWcHsfL.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-wgHiPsTg.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-S5ZD98sI.js", "/assets/request-info-DHtGM4FI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/client-hints-DLYDs4RF.js", "/assets/index-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video-DJN9_SUj.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-D6ukHE4T.js", "/assets/nav-chevrons-DaXg0NPS.js", "/assets/mdx-BENF-kTQ.js", "/assets/progress-BwanvUpB.js", "/assets/seo-pBpFCWsy.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/account": { "id": "routes/_app+/account", "parentId": "routes/_app+/_layout", "path": "account", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/account-uvU1jIL2.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/misc-S5ZD98sI.js", "/assets/request-info-DHtGM4FI.js", "/assets/button-BA3iiLRs.js", "/assets/tooltip-BtzSIxlB.js", "/assets/user-CdUDQ7a8.js", "/assets/presence-CW1_eiIo.js"], "css": [] }, "routes/_app+/app.$appName+/$": { "id": "routes/_app+/app.$appName+/$", "parentId": "routes/_app+/_layout", "path": "app/:appName/*", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/api.$": { "id": "routes/_app+/app.$appName+/api.$", "parentId": "routes/_app+/_layout", "path": "app/:appName/api/*", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/api._-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/epic_ws[.js]": { "id": "routes/_app+/app.$appName+/epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/index": { "id": "routes/_app+/app.$appName+/index", "parentId": "routes/_app+/_layout", "path": "app/:appName/", "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/test.$testName": { "id": "routes/_app+/app.$appName+/test.$testName", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/:testName", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test._testName-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/discord": { "id": "routes/_app+/discord", "parentId": "routes/_app+/_layout", "path": "discord", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/discord-CgwNGD2p.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/misc-S5ZD98sI.js", "/assets/user-CdUDQ7a8.js", "/assets/discord-yZor-3t1.js"], "css": [] }, "routes/_app+/finished": { "id": "routes/_app+/finished", "parentId": "routes/_app+/_layout", "path": "finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/finished-B9qjUR4B.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-wgHiPsTg.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-S5ZD98sI.js", "/assets/request-info-DHtGM4FI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/client-hints-DLYDs4RF.js", "/assets/index-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video-DJN9_SUj.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-D6ukHE4T.js", "/assets/nav-chevrons-DaXg0NPS.js", "/assets/mdx-BENF-kTQ.js", "/assets/seo-pBpFCWsy.js", "/assets/progress-BwanvUpB.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/index": { "id": "routes/_app+/index", "parentId": "routes/_app+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/index-3HxjMIAS.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-wgHiPsTg.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-S5ZD98sI.js", "/assets/request-info-DHtGM4FI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/client-hints-DLYDs4RF.js", "/assets/index-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video-DJN9_SUj.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-D6ukHE4T.js", "/assets/error-boundary-BVTbN8PZ.js", "/assets/mdx-BENF-kTQ.js", "/assets/progress-BwanvUpB.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/login": { "id": "routes/_app+/login", "parentId": "routes/_app+/_layout", "path": "login", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/login-CHE9W6po.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/request-info-DHtGM4FI.js", "/assets/client-hints-DLYDs4RF.js", "/assets/use-event-source-ySol3hbz.js", "/assets/button-BA3iiLRs.js", "/assets/loading-B0uKxERz.js"], "css": [] }, "routes/_app+/support": { "id": "routes/_app+/support", "parentId": "routes/_app+/_layout", "path": "support", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/support-D1ydJNdm.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-wgHiPsTg.js"], "css": [] }, "routes/admin+/_layout": { "id": "routes/admin+/_layout", "parentId": "root", "path": "admin", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-B9Y-8OU6.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/misc-S5ZD98sI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/progress-BwanvUpB.js"], "css": [] }, "routes/admin+/apps": { "id": "routes/admin+/apps", "parentId": "routes/admin+/_layout", "path": "apps", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/apps-DP2rzg_V.js", "imports": [], "css": [] }, "routes/admin+/cache": { "id": "routes/admin+/cache", "parentId": "routes/admin+/_layout", "path": "cache", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/cache-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/apps": { "id": "routes/apps", "parentId": "root", "path": "apps", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/apps-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/diff": { "id": "routes/diff", "parentId": "root", "path": "diff", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/diff-Bd9WnUnR.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/misc-S5ZD98sI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/request-info-DHtGM4FI.js", "/assets/client-hints-DLYDs4RF.js", "/assets/index-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video-DJN9_SUj.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-C6ToujzV.js", "/assets/mdx-BENF-kTQ.js", "/assets/diff-CpG96hGZ.js", "/assets/nav-chevrons-DaXg0NPS.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/discord.callback": { "id": "routes/discord.callback", "parentId": "root", "path": "discord/callback", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/discord.callback-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/exercises": { "id": "routes/exercises", "parentId": "root", "path": "exercises", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/exercises-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/launch-editor": { "id": "routes/launch-editor", "parentId": "root", "path": "launch-editor", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/launch-editor-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/login-sse": { "id": "routes/login-sse", "parentId": "root", "path": "login-sse", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/login-sse-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/og": { "id": "routes/og", "parentId": "root", "path": "og", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/og-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/onboarding": { "id": "routes/onboarding", "parentId": "root", "path": "onboarding", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/onboarding-FD1FkQuu.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/misc-S5ZD98sI.js", "/assets/request-info-DHtGM4FI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/client-hints-DLYDs4RF.js", "/assets/index-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/button-BA3iiLRs.js", "/assets/epic-video-DJN9_SUj.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/processes": { "id": "routes/processes", "parentId": "root", "path": "processes", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/processes-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/progress": { "id": "routes/progress", "parentId": "root", "path": "progress", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/progress-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/set-playground": { "id": "routes/set-playground", "parentId": "root", "path": "set-playground", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/set-playground-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/start": { "id": "routes/start", "parentId": "root", "path": "start", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/start-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/test": { "id": "routes/test", "parentId": "root", "path": "test", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/theme/index": { "id": "routes/theme/index", "parentId": "root", "path": "theme", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-DP2rzg_V.js", "imports": [], "css": [] }, "routes/update-mdx-cache": { "id": "routes/update-mdx-cache", "parentId": "root", "path": "update-mdx-cache", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/update-mdx-cache-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/video-player/index": { "id": "routes/video-player/index", "parentId": "root", "path": "video-player", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-K6Dvbx-E.js", "imports": [], "css": [] } }, "url": "/assets/manifest-b122038e.js", "version": "b122038e" };
13037
13037
  const mode = "production";
13038
13038
  const assetsBuildDirectory = "build/client";
13039
13039
  const basename = "/";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epic-web/workshop-app",
3
- "version": "4.13.3",
3
+ "version": "4.14.0",
4
4
  "sideEffects": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -44,8 +44,8 @@
44
44
  "@epic-web/invariant": "^1.0.0",
45
45
  "@epic-web/remember": "^1.0.2",
46
46
  "@epic-web/restore-scroll": "^1.1.1",
47
- "@epic-web/workshop-presence": "4.13.3",
48
- "@epic-web/workshop-utils": "4.13.3",
47
+ "@epic-web/workshop-presence": "4.14.0",
48
+ "@epic-web/workshop-utils": "4.14.0",
49
49
  "@mdx-js/mdx": "^3.0.1",
50
50
  "@mux/mux-player-react": "^2.6.0",
51
51
  "@paralleldrive/cuid2": "^2.2.2",
@@ -1 +0,0 @@
1
- #files h2{display:none}#files ul{display:flex;flex-direction:column;gap:.125rem;font-size:1rem;line-height:1.5rem}#files ul li code{font-family:var(--font-sans),ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}#files ul li span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}#files ul li[data-state=modified] button:before,#files ul li[data-state=modified] a:before{margin-right:.5rem;height:1rem;width:1rem;content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' viewBox='0 0 16 16' fill='rgb(251 146 60)' width='16' height='16' %3E%3Cpath d='M13.25 1c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0 1 13.25 15H2.75A1.75 1.75 0 0 1 1 13.25V2.75C1 1.784 1.784 1 2.75 1ZM2.75 2.5a.25.25 0 0 0-.25.25v10.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25V2.75a.25.25 0 0 0-.25-.25ZM8 10a2 2 0 1 1-.001-3.999A2 2 0 0 1 8 10Z'%3E%3C/path%3E%3C/svg%3E")}#files ul li[data-state=added] button:before,#files ul li[data-state=added] a:before{margin-right:.5rem;height:1rem;width:1rem;content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' viewBox='0 0 16 16' fill='rgb(16 185 129)' width='16' height='16'%3E%3Cpath d='M2.75 1h10.5c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0 1 13.25 15H2.75A1.75 1.75 0 0 1 1 13.25V2.75C1 1.784 1.784 1 2.75 1Zm10.5 1.5H2.75a.25.25 0 0 0-.25.25v10.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25V2.75a.25.25 0 0 0-.25-.25ZM8 4a.75.75 0 0 1 .75.75v2.5h2.5a.75.75 0 0 1 0 1.5h-2.5v2.5a.75.75 0 0 1-1.5 0v-2.5h-2.5a.75.75 0 0 1 0-1.5h2.5v-2.5A.75.75 0 0 1 8 4Z'%3E%3C/path%3E%3C/svg%3E")}#files ul li[data-state=deleted] button:before,#files ul li[data-state=deleted] a:before{margin-right:.5rem;height:1rem;width:1rem;content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' viewBox='0 0 16 16' fill='rgb(239 68 68)' width='16' height='16'%3E%3Cpath d='M13.25 1c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0 1 13.25 15H2.75A1.75 1.75 0 0 1 1 13.25V2.75C1 1.784 1.784 1 2.75 1ZM2.75 2.5a.25.25 0 0 0-.25.25v10.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25V2.75a.25.25 0 0 0-.25-.25Zm8.5 6.25h-6.5a.75.75 0 0 1 0-1.5h6.5a.75.75 0 0 1 0 1.5Z'%3E%3C/path%3E%3C/svg%3E")}.launch-editor-wrapper form .launch_button{display:flex;width:100%;align-items:center;border-radius:.25rem;padding:.25rem .5rem;outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.launch-editor-wrapper form .launch_button:hover{background-color:hsl(var(--foreground) / .2)}.launch-editor-wrapper form .launch_button:focus{background-color:hsl(var(--foreground) / .2)}.launch-editor-wrapper .not-allowed{cursor:not-allowed}.launch-editor-wrapper .not-allowed .launch_button{pointer-events:none}summary[data-state=modified]:before{padding-right:.25rem;content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' viewBox='0 0 16 16' fill='rgb(251 146 60)' width='16' height='16' %3E%3Cpath d='M13.25 1c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0 1 13.25 15H2.75A1.75 1.75 0 0 1 1 13.25V2.75C1 1.784 1.784 1 2.75 1ZM2.75 2.5a.25.25 0 0 0-.25.25v10.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25V2.75a.25.25 0 0 0-.25-.25ZM8 10a2 2 0 1 1-.001-3.999A2 2 0 0 1 8 10Z'%3E%3C/path%3E%3C/svg%3E")}body{-moz-tab-size:2ch;-o-tab-size:2ch;tab-size:2ch}.clip-path-button-outer{clip-path:polygon(0 0,100% 0,100% 70%,88% 100%,0 100%)}.clip-path-button{clip-path:polygon(0 0,100% 0,100% 70%,88.5% 100%,0 100%)}.shadow-on-scrollbox{background:linear-gradient(hsl(var(--background)) 30%,hsl(var(--foreground) / 0)),radial-gradient(farthest-side at 50% 0,hsl(var(--foreground) / .2),hsl(var(--foreground) / 0)) 0 0,linear-gradient(hsl(var(--foreground) / 0),hsl(var(--background)) 70%) 0 100%,radial-gradient(farthest-side at 50% 100%,hsl(var(--foreground) / .2),hsl(var(--foreground) / 0)) 0 100%;background-repeat:no-repeat;background-color:hsl(var(--background));background-size:100% 40px,100% 14px,100% 40px,100% 14px;background-attachment:local,scroll,local,local}.orientation-sideways{text-orientation:sideways;writing-mode:vertical-rl;--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.display-alt-down{display:none}.alt-down .display-alt-down{display:inherit}.alt-down .display-alt-up{display:none}:root{--base00: #121318;--base01: #2d2d2d;--base02: #424242;--base03: #637777;--base04: #555555;--base05: #d6deeb;--base06: #c8c8c8;--base07: #fafafa;--base08: #7fdbca;--base09: #f78c6c;--base0A: #c792ea;--base0B: #ecc48d;--base0C: #f78c6c;--base0D: #82aaff;--base0E: #c792ea;--base0F: #d3423e;--highlight-removed: #d3423e;--highlight-added: #7fdbca}:root .light,:root.light{--base00: #f3f3f3;--base01: #e0e0e0;--base02: #d6d6d6;--base03: #989fb1;--base04: #969896;--base05: #2e3039;--base06: #282a2e;--base07: #1d1f21;--base08: #0c969b;--base09: #aa0982;--base0A: #994cc3;--base0B: #c96765;--base0C: #aa0982;--base0D: #4876d6;--base0E: #994cc3;--base0F: #d3423e;--highlight-removed: #d3423e;--highlight-added: #0c969b}.prose ul.list-none>li{padding-left:unset}.prose ul.list-none>li:before{content:unset}.dark .prose ol>li:before,.dark .prose ul>li:before{color:var(--color-gray-300)}.dark .dark\:prose-dark thead{color:var(--color-slate-500)}.prose pre[data-line-numbers=true],.prose pre[data-add],.prose pre[data-remove],.prose pre:has([data-highlight]){padding-left:0rem;padding-right:0rem}.prose pre:not([data-line-numbers=true]):has([data-highlight]){padding-left:0rem;padding-right:0rem}.prose pre:not([data-line-numbers=true]) .codeblock-line:before,.prose pre[data-line-numbers=true] .codeblock-line:before,.prose pre[data-remove] .codeblock-line:before,.prose pre[data-add] .codeblock-line:before{padding-left:0rem;content:attr(data-line-number);text-align:right;display:inline-block;width:4rem;color:var(--base03);padding-right:1.5rem;position:sticky;left:0;background-color:var(--base00)}.prose pre[data-line-numbers=false][data-line-numbers=false] .codeblock-line:before{content:" "}.prose pre[data-line-numbers=false]:not([data-add]):not([data-remove]):not(:has([data-highlight])) .codeblock-line:before{width:0;padding-right:0}.prose pre[data-line-numbers=false]:not([data-add]):not([data-remove]):has([data-highlight]) .codeblock-line:before{width:2rem}.prose pre[data-filename]{padding-top:2rem}.prose pre[data-filename][data-buttons][data-fullpath]{padding-top:3rem}.prose pre[data-lang]:not([data-nolang]){padding-bottom:2rem}.prose pre:not([data-lang]):not([data-nolang]){background-color:var(--base00);color:var(--base05)}.prose pre[data-line-numbers=true] [data-line-number]:before .codeblock-line[data-highlight=true]:before{background:var(--base0E)}.prose *:not(pre) code{background:var(--base00);color:var(--base05);padding:.2rem .4rem;border-radius:.2rem}.prose pre[data-add]:not([data-line-numbers=true]) [data-diff-line-number]:before,.prose pre[data-remove]:not([data-line-numbers=true]) [data-diff-line-number]:before{content:attr(data-diff-line-number)}.prose pre>code{display:inline-block;min-width:100%}.codeblock-line{display:block;position:relative;padding-right:1rem}.codeblock-line[data-highlight=true]:after,.prose pre[data-remove] .codeblock-line[data-remove]:after,.prose pre[data-add] .codeblock-line[data-add]:after{content:" ";position:absolute;left:0;top:0;width:100%;opacity:.15;pointer-events:none}.codeblock-line[data-highlight=true]:before{border-left:6px solid var(--base0E)}.codeblock-line[data-highlight=true]:after{background:var(--base0E)}.prose pre[data-remove][data-remove][data-remove] .codeblock-line[data-remove]:before{content:"-"}.prose pre[data-remove] .codeblock-line[data-remove]:after{background:var(--highlight-removed)}.prose pre[data-add][data-add][data-add] .codeblock-line[data-add]:before{content:"+"}.prose pre[data-add] .codeblock-line[data-add]:after{background:var(--highlight-added)}.prose pre{position:relative}.prose pre[data-filename]:before{content:attr(data-filename);position:absolute;left:8px;top:4px;font-size:.7rem;opacity:.7}.prose pre[data-lang]:not([data-nolang]):after{content:attr(data-lang);position:sticky;right:0;font-size:.7rem;opacity:.7;display:inline-block;transform:translate(-16px,24px);text-align:right;width:200px;margin-left:-200px}.prose>*{margin-bottom:1rem}.prose callout-muted a,.prose callout-info a,.prose callout-warning a,.prose callout-danger a,.prose callout-success a{text-decoration:underline}.prose callout-muted p,.prose callout-info p,.prose callout-warning p,.prose callout-danger p,.prose callout-success p{margin-bottom:0}.prose callout-muted,.prose callout-info,.prose callout-warning,.prose callout-danger,.prose callout-success{margin-top:0;margin-bottom:2rem;display:block;border-left:solid 4px;padding:.5rem 1rem;position:relative;border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.prose callout-muted,.prose callout-info,.prose callout-warning,.prose callout-danger,.prose callout-success,.prose callout-muted *,.prose callout-info *,.prose callout-warning *,.prose callout-danger *,.prose callout-success *{font-size:1rem}.prose callout-muted.aside,.prose callout-info.aside,.prose callout-warning.aside,.prose callout-danger.aside,.prose callout-success.aside,.prose callout-muted.aside *,.prose callout-info.aside *,.prose callout-warning.aside *,.prose callout-danger.aside *,.prose callout-success.aside *{font-size:.875rem}.prose callout-muted.important,.prose callout-info.important,.prose callout-warning.important,.prose callout-danger.important,.prose callout-success.important,.prose callout-muted.important *,.prose callout-info.important *,.prose callout-warning.important *,.prose callout-danger.important *,.prose callout-success.important *{font-size:1.25rem;font-weight:700}.prose callout-muted:before,.prose callout-info:before,.prose callout-warning:before,.prose callout-danger:before,.prose callout-success:before{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem;content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.1;pointer-events:none}.light .prose callout-warning,.light .prose callout-warning ol>li:before{color:#676000}.light .prose callout-warning:before{background:#ffd800}.prose callout-warning,.prose callout-warning ol>li:before{color:#ffd644}.prose callout-warning:before{background:#ffd644}.light .prose callout-muted,.light .prose callout-muted ol>li:before{color:#4c4b5e}.light .prose callout-muted:before{background:#3c3e4d}.prose callout-muted,.prose callout-muted ol>li:before{color:#b9b9c3}.prose callout-muted:before{background:#3c3e4d}.prose callout-info,.prose callout-info ol>li:before{color:#4b96ff}.prose callout-info:before{background:#4b96ff}.prose callout-danger,.prose callout-danger ol>li:before{color:#ff4545}.prose callout-danger:before{background:#ff4545}.prose callout-success,.prose callout-success ol>li:before{color:#30c85e}.prose callout-success:before{background:#30c85e}.prose callout-warning.notification .title,.prose callout-danger.notification .title{font-size:1.5rem;line-height:2rem}.prose callout-danger.notification pre{border:4px solid #ff4545;padding-block:1.5rem;margin-block:.5rem}.prose callout-warning.notification,.prose callout-danger.notification{margin-bottom:0!important}