wb-slides
Version:
A slide-deck framework for React.
13 lines (12 loc) • 26 kB
JavaScript
Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),m=require("clsx"),R=require("react-syntax-highlighter"),O=require("./_commonjsHelpers-DwGv2jUC.cjs"),g=require("react"),ce=require("react-dom"),le=require("@mdx-js/react"),y=require("react-router");function ie({show:e,setShow:t,children:s,className:r}){return n.jsxs("label",{className:m("not-prose inline-flex items-baseline gap-2 rounded-md mt-2 px-3 py-1 text-sm cursor-pointer",r),children:[n.jsx("input",{type:"checkbox",className:"accent-red-500 w-3 h-3 translate-y-0.5",checked:e,onChange:()=>t(a=>!a)}),s]})}var k,I;function ue(){if(I)return k;I=1,k=e,e.displayName="jsx",e.aliases=[];function e(t){(function(s){var r=s.util.clone(s.languages.javascript),a=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,o=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,l=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function c(i,p){return i=i.replace(/<S>/g,function(){return a}).replace(/<BRACES>/g,function(){return o}).replace(/<SPREAD>/g,function(){return l}),RegExp(i,p)}l=c(l).source,s.languages.jsx=s.languages.extend("markup",r),s.languages.jsx.tag.pattern=c(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),s.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,s.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,s.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,s.languages.jsx.tag.inside.comment=r.comment,s.languages.insertBefore("inside","attr-name",{spread:{pattern:c(/<SPREAD>/.source),inside:s.languages.jsx}},s.languages.jsx.tag),s.languages.insertBefore("inside","special-attr",{script:{pattern:c(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:s.languages.jsx}}},s.languages.jsx.tag);var u=function(i){return i?typeof i=="string"?i:typeof i.content=="string"?i.content:i.content.map(u).join(""):""},f=function(i){for(var p=[],d=0;d<i.length;d++){var x=i[d],T=!1;if(typeof x!="string"&&(x.type==="tag"&&x.content[0]&&x.content[0].type==="tag"?x.content[0].content[0].content==="</"?p.length>0&&p[p.length-1].tagName===u(x.content[0].content[1])&&p.pop():x.content[x.content.length-1].content==="/>"||p.push({tagName:u(x.content[0].content[1]),openedBraces:0}):p.length>0&&x.type==="punctuation"&&x.content==="{"?p[p.length-1].openedBraces++:p.length>0&&p[p.length-1].openedBraces>0&&x.type==="punctuation"&&x.content==="}"?p[p.length-1].openedBraces--:T=!0),(T||typeof x=="string")&&p.length>0&&p[p.length-1].openedBraces===0){var v=u(x);d<i.length-1&&(typeof i[d+1]=="string"||i[d+1].type==="plain-text")&&(v+=u(i[d+1]),i.splice(d+1,1)),d>0&&(typeof i[d-1]=="string"||i[d-1].type==="plain-text")&&(v=u(i[d-1])+v,i.splice(d-1,1),d--),i[d]=new s.Token("plain-text",v,null,v)}x.content&&typeof x.content!="string"&&f(x.content)}};s.hooks.add("after-tokenize",function(i){i.language!=="jsx"&&i.language!=="tsx"||f(i.tokens)})})(t)}return k}var S,$;function de(){if($)return S;$=1,S=e,e.displayName="typescript",e.aliases=["ts"];function e(t){(function(s){s.languages.typescript=s.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),s.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete s.languages.typescript.parameter,delete s.languages.typescript["literal-property"];var r=s.languages.extend("typescript",{});delete r["class-name"],s.languages.typescript["class-name"].inside=r,s.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:r}}}}),s.languages.ts=s.languages.typescript})(t)}return S}var C,B;function ge(){if(B)return C;B=1;var e=ue(),t=de();C=s,s.displayName="tsx",s.aliases=[];function s(r){r.register(e),r.register(t),function(a){var o=a.util.clone(a.languages.typescript);a.languages.tsx=a.languages.extend("jsx",o),delete a.languages.tsx.parameter,delete a.languages.tsx["literal-property"];var l=a.languages.tsx.tag;l.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+l.pattern.source+")",l.pattern.flags),l.lookbehind=!0}(r)}return C}var pe=ge();const fe=O.getDefaultExportFromCjs(pe);var F,z;function xe(){if(z)return F;z=1,F=e,e.displayName="xmlDoc",e.aliases=[];function e(t){(function(s){function r(c,u){s.languages[c]&&s.languages.insertBefore(c,"comment",{"doc-comment":u})}var a=s.languages.markup.tag,o={pattern:/\/\/\/.*/,greedy:!0,alias:"comment",inside:{tag:a}},l={pattern:/'''.*/,greedy:!0,alias:"comment",inside:{tag:a}};r("csharp",o),r("fsharp",o),r("vbnet",l)})(t)}return F}var me=xe();const he=O.getDefaultExportFromCjs(me),ye={'pre[class*="language-"]':{color:"#d4d4d4",fontSize:"13px",textShadow:"none",fontFamily:'Menlo, Monaco, Consolas, "Andale Mono", "Ubuntu Mono", "Courier New", monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",padding:"1em",margin:".5em 0",overflow:"auto",background:"#1e1e1e"},'code[class*="language-"]':{color:"#d4d4d4",fontSize:"13px",textShadow:"none",fontFamily:'Menlo, Monaco, Consolas, "Andale Mono", "Ubuntu Mono", "Courier New", monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none"},'pre[class*="language-"]::selection':{textShadow:"none",background:"#264F78"},'code[class*="language-"]::selection':{textShadow:"none",background:"#264F78"},'pre[class*="language-"] *::selection':{textShadow:"none",background:"#264F78"},'code[class*="language-"] *::selection':{textShadow:"none",background:"#264F78"},':not(pre) > code[class*="language-"]':{padding:".1em .3em",borderRadius:".3em",color:"#db4c69",background:"#1e1e1e"},".namespace":{Opacity:".7"},"doctype.doctype-tag":{color:"#569CD6"},"doctype.name":{color:"#9cdcfe"},comment:{color:"#6a9955"},prolog:{color:"#6a9955"},punctuation:{color:"#d4d4d4"},".language-html .language-css .token.punctuation":{color:"#d4d4d4"},".language-html .language-javascript .token.punctuation":{color:"#d4d4d4"},property:{color:"#9cdcfe"},tag:{color:"#569cd6"},boolean:{color:"#569cd6"},number:{color:"#b5cea8"},constant:{color:"#9cdcfe"},symbol:{color:"#b5cea8"},inserted:{color:"#b5cea8"},unit:{color:"#b5cea8"},selector:{color:"#d7ba7d"},"attr-name":{color:"#9cdcfe"},string:{color:"#ce9178"},char:{color:"#ce9178"},builtin:{color:"#ce9178"},deleted:{color:"#ce9178"},".language-css .token.string.url":{textDecoration:"underline"},operator:{color:"#d4d4d4"},entity:{color:"#569cd6"},"operator.arrow":{color:"#569CD6"},atrule:{color:"#ce9178"},"atrule.rule":{color:"#c586c0"},"atrule.url":{color:"#9cdcfe"},"atrule.url.function":{color:"#dcdcaa"},"atrule.url.punctuation":{color:"#d4d4d4"},keyword:{color:"#569CD6"},"keyword.module":{color:"#c586c0"},"keyword.control-flow":{color:"#c586c0"},function:{color:"#dcdcaa"},"function.maybe-class-name":{color:"#dcdcaa"},regex:{color:"#d16969"},important:{color:"#569cd6"},italic:{fontStyle:"italic"},"class-name":{color:"#4ec9b0"},"maybe-class-name":{color:"#4ec9b0"},console:{color:"#9cdcfe"},parameter:{color:"#9cdcfe"},interpolation:{color:"#9cdcfe"},"punctuation.interpolation-punctuation":{color:"#569cd6"},variable:{color:"#9cdcfe"},"imports.maybe-class-name":{color:"#9cdcfe"},"exports.maybe-class-name":{color:"#9cdcfe"},escape:{color:"#d7ba7d"},"tag.punctuation":{color:"#808080"},cdata:{color:"#808080"},"attr-value":{color:"#ce9178"},"attr-value.punctuation":{color:"#ce9178"},"attr-value.punctuation.attr-equals":{color:"#d4d4d4"},namespace:{color:"#4ec9b0"},'pre[class*="language-javascript"]':{color:"#9cdcfe"},'code[class*="language-javascript"]':{color:"#9cdcfe"},'pre[class*="language-jsx"]':{color:"#9cdcfe"},'code[class*="language-jsx"]':{color:"#9cdcfe"},'pre[class*="language-typescript"]':{color:"#9cdcfe"},'code[class*="language-typescript"]':{color:"#9cdcfe"},'pre[class*="language-tsx"]':{color:"#9cdcfe"},'code[class*="language-tsx"]':{color:"#9cdcfe"},'pre[class*="language-css"]':{color:"#ce9178"},'code[class*="language-css"]':{color:"#ce9178"},'pre[class*="language-html"]':{color:"#d4d4d4"},'code[class*="language-html"]':{color:"#d4d4d4"},".language-regex .token.anchor":{color:"#dcdcaa"},".language-html .token.punctuation":{color:"#808080"},'pre[class*="language-"] > code[class*="language-"]':{position:"relative",zIndex:"1"},".line-highlight.line-highlight":{background:"#f7ebc6",boxShadow:"inset 5px 0 0 #f7d87c",zIndex:"0"}};R.PrismLight.registerLanguage("tsx",fe);R.PrismLight.registerLanguage("xml",he);function ve(e){const t=e.replace(/\r/g,"").split(`
`).filter(a=>a.trim()!=="// @ts-nocheck"),s=t.findIndex(a=>a.trim()),r=t.slice().reverse().findIndex(a=>a.trim());return t.slice(s,r?r*-1:t.length).join(`
`)}function be({code:e,language:t="tsx"}){return n.jsx("div",{className:"not-prose",children:n.jsx(R.PrismLight,{language:t,style:ye,children:ve(e)})})}function j({name:e,accessibleText:t,className:s}){return n.jsx("span",{className:m("material-symbols-outlined",s),"aria-label":t,children:e})}function je({title:e,children:t,className:s,prose:r}){return n.jsxs("details",{className:m("group rounded-lg border px-4 py-2 border-gray-700/50 bg-gray-950/50 open:border-gray-700/50 open:bg-gray-950/50",{"not-prose":!r},s),children:[n.jsxs("summary",{className:"flex items-center gap-3 leading-6 font-semibold select-none list-none not-prose",children:[n.jsx(j,{name:"chevron_right",className:"group-open:rotate-90 transition-transform"}),e]}),t]})}function we({src:e,alt:t=""}){const s=g.useId(),r=g.useRef(null),a=()=>{r.current?.showModal()};return n.jsxs(n.Fragment,{children:[n.jsx("button",{onClick:a,children:n.jsx("img",{src:e,alt:t,className:"w-[300px] cursor-zoom-in rounded shadow"})}),ce.createPortal(n.jsxs("dialog",{ref:r,id:s,className:"inset-0 bg-gray-900 p-4 fixed m-auto",closedby:"any",children:[n.jsx("button",{command:"close",commandfor:s,className:"auto top-2 right-2 w-8 h-8 pb-0.5 flex items-center justify-center mx-auto absolute z-10 hover:text-gray-200 hover:outline-1 rounded-full","aria-label":"Close",children:n.jsx("span",{className:"font-bold text-2xl",children:"×"})}),n.jsx("img",{src:e,alt:t,className:"max-w-full max-h-[80vh] mx-auto leading-0"})]}),document.body)]})}function Ne({data:e}){return n.jsx("div",{className:"not-prose bg-slate-900 pl-10 pr-4 py-2 rounded-xl max-w-7xl overflow-hidden",children:n.jsx(D,{propertyText:"root",data:e})})}function D({propertyText:e,data:t}){const s=typeof t;return s==="boolean"?n.jsxs("div",{className:"flex justify-start gap-4",children:[n.jsx("code",{className:"text-gray-300",children:e}),n.jsx("code",{className:"text-sky-400",children:"(boolean)"}),n.jsx("code",{className:"text-cyan-300",children:t?"true":"false"})]}):s==="number"?n.jsxs("div",{className:"flex justify-start gap-4",children:[n.jsx("code",{className:"text-gray-300",children:e}),n.jsx("code",{className:"text-sky-400",children:"(number)"}),n.jsx("code",{className:"text-cyan-300",children:t})]}):s==="string"?n.jsxs("div",{className:"flex justify-start gap-4",children:[n.jsx("code",{className:"text-gray-300",children:e}),n.jsx("code",{className:"text-sky-400",children:"(string)"}),n.jsxs("code",{className:"text-cyan-300",children:['"',t,'"']})]}):t?Array.isArray(t)?n.jsx(ke,{propertyText:e,data:t}):n.jsx(Se,{propertyText:e,data:t}):n.jsxs("div",{className:"flex justify-start gap-4",children:[n.jsx("code",{className:"text-gray-300",children:e}),n.jsx("code",{className:"text-sky-400",children:"(null)"})]})}function ke({propertyText:e,data:t}){const[s,r]=g.useState(!1);return Object.keys(t).length?n.jsxs("div",{className:"flex flex-col",children:[n.jsxs("div",{className:"flex gap-2 items-center justify-start",children:[n.jsx(P,{expanded:s,setExpanded:r}),n.jsx("button",{onClick:()=>r(a=>!a),children:n.jsx("code",{className:"text-gray-300",children:e})}),n.jsx("code",{className:"text-sky-400",children:"(array)"}),"(",Object.keys(t).length," items)"]}),s&&n.jsx("div",{className:"pl-6",children:t.map((a,o)=>n.jsx("div",{className:"flex gap-4 items-start justify-start",children:n.jsx(D,{propertyText:`[${o}]`,data:a})},o))})]}):n.jsxs("div",{className:"flex justify-start gap-4",children:[n.jsx("code",{className:"text-gray-300",children:e}),n.jsx("code",{className:"text-sky-400",children:"(array)"}),"(empty)"]})}function Se({propertyText:e,data:t}){const[s,r]=g.useState(!1),a=g.useMemo(()=>Object.entries(t).sort(([,o],[,l])=>{const c=typeof o,u=typeof l;return c===u?0:c==="object"&&o?-1:u==="object"&&l?1:0}),[t]);return a.length?n.jsxs("div",{className:"flex flex-col",children:[n.jsxs("div",{className:"flex gap-2 items-center justify-start",children:[n.jsx(P,{expanded:s,setExpanded:r}),n.jsx("button",{onClick:()=>r(o=>!o),children:n.jsx("code",{className:"text-gray-300",children:e})}),n.jsx("code",{className:"text-sky-400",children:"(object)"}),"(",Object.keys(t).length," items)"]}),s&&n.jsx("div",{className:"pl-6 ml-0.5",children:a.map(([o,l])=>n.jsx("div",{className:"flex gap-4 items-start justify-start",children:n.jsx(D,{propertyText:`"${o}"`,data:l})},o))})]}):n.jsxs("div",{className:"flex justify-start gap-4",children:[n.jsx("code",{className:"text-gray-300",children:e}),n.jsx("code",{className:"text-sky-400",children:"(object)"}),"(empty)"]})}function P({expanded:e,setExpanded:t}){const s=()=>t(r=>!r);return n.jsx("button",{className:m("absolute -translate-x-full -ml-2 rounded-sm flex gap-2 text-sm border px-1 py-0.5 w-5 h-5 items-center justify-center font-bold",{"bg-slate-400 text-black":e},e?"hover:bg-slate-300":"hover:bg-slate-600"),onClick:s,children:n.jsx("span",{children:e?"-":"+"})})}const W=3.9,H={Backspace:2,Tab:1.5,"\\":1.5,"Caps Lock":1.75,Enter:2.25,Shift:2.25,rShift:2.75,Control:1.25,Win:1.25,Alt:1.25,Space:6.25,rAlt:1.25,Fn:1.25,Ctx:1.25,rControl:1.25,kp0:2},J=g.createContext({baseKeySize:W}),Ce=J.Provider,U=()=>g.useContext(J),h=(e,t)=>`${e*t}vw`;function b(e,t=1,s=e){return{height:`${s}vw`,width:`${s*t}vw`}}function E(e){if(e.startsWith("r"))return e.slice(1);if(["Win","Fn","Ctx"].includes(e))return"";if(e.startsWith("kp"))return e.slice(2);const t={"`":"~",1:"!",2:"@",3:"#",4:"$",5:"%",6:"^",7:"&",8:"*",9:"(",0:")","-":"_","=":"+","[":"{","]":"}","\\":"|",";":":","'":'"',",":"<",".":">","/":"?"};return e in t?n.jsxs("div",{children:[n.jsx("div",{children:t[e]}),n.jsx("div",{children:e})]}):e}function Fe(e,t){return t==="null"?{style:{...b(e),opacity:.5},content:null}:t in H?{style:{...b(e,H[t]),borderRadius:h(e,.1),outlineOffset:h(e,-.05)},content:E(t),className:"outline"}:["kp+","kpEnter"].includes(t)?{style:{...b(e,.5,e*2),right:0,borderRadius:h(e,.1),outlineOffset:h(e,-.05)},content:E(t),className:"outline absolute"}:{style:{...b(e),borderRadius:h(e,.1),outlineOffset:h(e,-.05)},content:E(t),className:"outline"}}const Ee={style:e=>({gap:e(.5),marginBottom:e(.5)}),keys:[{style:e=>({gap:e(1)}),keys:["Esc",{style:e=>({gap:e(.5)}),keys:["F1,F2,F3,F4".split(","),"F5,F6,F7,F8".split(","),"F9,F10,F11,F12".split(",")]}]},["Print","Scroll","Pause"],[null,null,null,null]]},Ae={style:e=>({gap:e(.5)}),keys:[[..."`1234567890-=","Backspace"],["Insert","Home","Pg Up"],["Num Lock","kp/","kp*","kp-"]]},Re={style:e=>({gap:e(.5)}),keys:[["Tab",..."QWERTYUIOP[]\\"],["Delete","End","Pg Dn"],["kp7","kp8","kp9","kp+"]]},De={style:e=>({gap:e(.5)}),keys:[["Caps Lock",..."ASDFGHJKL;'","Enter"],[null,null,null],["kp4","kp5","kp6",null]]},Le={style:e=>({gap:e(.5)}),keys:[["Shift",..."ZXCVBNM,./","rShift"],[null,"Up",null],["kp1","kp2","kp3","kpEnter"]]},Me={style:e=>({gap:e(.5)}),keys:[["Control","Win","Alt","Space","rAlt","Fn","Ctx","rControl"],["Left","Down","Right"],["kp0","kp.",null]]},Te=[Ee,Ae,Re,De,Le,Me];function Z({value:e}){const{highlight:t,onClick:s,baseKeySize:r}=U();if(e===null)return n.jsx(Z,{value:"null"});const{style:a,className:o,content:l}=Fe(r,e),c=t?.includes(e);return n.jsx("button",{style:a,className:m(o,s?"hover:bg-white/10":"cursor-default",{"outline-green-400 outline-2 bg-green-400/20":c}),children:l})}function A({keys:e,style:t,className:s}){const{baseKeySize:r}=U();return n.jsx("div",{style:t?.(a=>h(r,a)),className:m("flex",s),children:e.map((a,o)=>Array.isArray(a)?n.jsx(A,{keys:a},o):typeof a=="object"&&a&&"keys"in a?n.jsx(A,{keys:a.keys,style:a.style,className:a.className},o):n.jsx(Z,{value:a},o))})}function Ie({baseKeySize:e=W,highlight:t,onClick:s}){return n.jsx("div",{className:"not-prose relative w-max outline p-3 rounded-md",style:{fontSize:h(e,.25)},children:n.jsx("div",{className:"relative w-max",children:n.jsx(Ce,{value:{highlight:t,onClick:s,baseKeySize:e},children:n.jsx(A,{keys:Te,className:"flex-col"})})})})}const q=g.createContext(!1);function V({className:e,children:t}){return g.useContext(q)?t:n.jsx(q.Provider,{value:!0,children:n.jsx("article",{className:m("prose dark:prose-invert w-full max-w-none",e),children:t})})}function $e({tooltip:e,children:t}){const s=g.useId();return n.jsxs(n.Fragment,{children:[n.jsx("button",{popoverTarget:s,children:t}),n.jsx("div",{id:s,className:`
fixed m-auto max-h-4/5 rounded-xl
py-4
backdrop:backdrop-blur-xs backdrop:backdrop-saturate-50
bg-gradient-to-br from-cyan-950 to-purple-950
`,popover:"auto",children:e})]})}const K=g.createContext([]);function w(){const e=g.useContext(K);return g.useMemo(()=>e.map((t,s)=>{const r=t.slides[0],a=s===0?"/":`/${t.slug}/${r.slug}/`;return{...t,path:a,slides:t.slides.map((o,l)=>{const c=!s&&!l?"/":`/${t.slug}/${o.slug}/`;return{...o,path:c}})}}),[e])}function X(){return y.useMatches().at(-1)?.data??{}}function Be(){const{slide:e}=X();return e}function N(){const{topicIndex:e,slideIndex:t}=X();return[e??0,t??0]}function ze(){const[e,t]=N();return e>0||t>0}function He(){const e=w(),t=e.length-1,s=e[t].slides.length-1,[r,a]=N();return r<t||a<s}function Q(){const e=w(),t=y.useNavigate(),s=g.useMemo(()=>e.flatMap((l,c)=>l.slides.map((u,f)=>({topic:l,topicIndex:c,slide:u,slideIndex:f,path:u.path}))),[e]),[r,a]=N(),o=s.findIndex(({topicIndex:l,slideIndex:c})=>l===r&&c===a);return[()=>{if(o<=0)return;const l=o-1,{path:c}=s[l];t(c)},()=>{if(o>=s.length-1)return;const l=o+1,{path:c}=s[l];t(c)}]}function G({open:e,setOpen:t}){const s=ze(),r=He(),[a,o]=Q();return n.jsxs("div",{className:m("flex items-center justify-between transition-all",e?"*:pointer-events-none":"*:pointer-events-auto",{"-translate-y-full opacity-0":e}),inert:e,children:[n.jsx(_,{className:"pr-0.5",disabled:!s,iconName:"chevron_left",onClick:()=>a()}),n.jsx("button",{className:"cursor-pointer p-2 text-slate-300 hover:text-slate-50",onClick:l=>{l.stopPropagation(),t(c=>!c)},"aria-label":"Open slide navigator",children:n.jsx("div",{className:"flex items-center justify-center border border-current rounded-full bg-cyan-950 outline-cyan-950 outline-3",children:n.jsx(j,{name:"more_horiz",className:"w-10 h-5 leading-5! block overflow-hidden"})})}),n.jsx(_,{className:"pl-0.5",disabled:!r,iconName:"chevron_right",onClick:()=>o()})]})}function _({className:e,disabled:t,iconClass:s,iconName:r,onClick:a}){return n.jsx("button",{onClick:a,onKeyDown:o=>{(o.key==="Enter"||o.key===" ")&&(o.stopPropagation(),o.preventDefault(),a?.())},disabled:t,className:m("cursor-pointer text-slate-300 pointer-events-auto p-2","disabled:text-slate-400 disabled:cursor-default"),children:n.jsx("div",{className:m("bg-cyan-950","border-2 rounded-full w-8 h-6 flex items-center justify-center","border-current",e),children:n.jsx(j,{name:r,className:s})})})}function L(e){return e.toString().normalize("NFD").replace(new RegExp("\\p{M}","gu"),"").toLowerCase().trim().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-")}function Y(e,t){return{path:t===0?"/":`/${e.slug}/`,children:e.slides.map((s,r)=>{const a=!t&&!r?"/":`/${e.slug}/${s.slug}/`;return{index:r===0,Component:s.component,path:a,loader:()=>({topic:e,topicIndex:t,slide:s,slideIndex:r}),HydrateFallback:()=>null}})}}function ee(e){return e.map(Y)}function te({LayoutComponent:e=M,children:t}){return{path:"/",element:n.jsx(e,{children:n.jsx(y.Outlet,{})}),children:t}}function ne({slides:e,children:t}){return n.jsx(K.Provider,{value:e,children:t})}function qe({slides:e,Layout:t=M}){const s=g.useMemo(()=>{const r=te({LayoutComponent:t,children:ee(e)}),a=new URL(document.baseURI).pathname||void 0;return y.createBrowserRouter([r],{basename:a})},[t,e]);return n.jsx(ne,{slides:e,children:n.jsx(y.RouterProvider,{router:s})})}function _e(e){return e}function Oe({title:e,slug:t,slides:s}){return{title:e,slug:t??L(e),slides:s}}function Pe(e){return"slug"in e&&e.slug?e.slug:L(e.title)}function se(e){return{...e,slug:Pe(e)}}function We(e){return{...se(e),type:"assignment"}}function re({open:e,setOpen:t}){const s=g.useRef(null),r=w(),[a,o]=N(),l=y.useNavigate();return g.useEffect(()=>{if(!e)return;const c=u=>{u.key==="Escape"&&(u.preventDefault(),t(!1))};return window.addEventListener("keydown",c),()=>{window.removeEventListener("keydown",c)}},[e,t]),g.useEffect(()=>{if(!s.current||!e)return;const u=document.querySelector("main");if(u)return u.inert=!0,()=>{u.inert=!1}},[e]),g.useEffect(()=>{e&&document.querySelector('a[data-current="true"]')?.focus()},[e]),n.jsx("nav",{ref:s,inert:!e,"aria-hidden":!e,"aria-label":"Slide navigation",className:m("transition-all duration-400 relative z-20",{"opacity-0 -translate-y-full":!e}),children:n.jsx("ul",{className:"flex justify-center -mx-4","aria-label":"Topics",children:r.map((c,u)=>n.jsxs("li",{className:"w-34 flex flex-col","aria-label":c.title,children:[n.jsx(y.Link,{to:c.path,onClick:f=>{f.stopPropagation(),t(!1)},onKeyDown:f=>{(f.key==="Enter"||f.key===" ")&&(f.target instanceof HTMLElement&&f.target.blur(),f.preventDefault(),f.stopPropagation(),l(c.path),t(!1))},className:`
h-16 flex items-center justify-center text-center border p-1 rounded mx-2 mb-4
py-2.5 leading-[1.2] bg-slate-100/75 text-black font-bold px-2
transition hover:bg-slate-200 pointer-events-auto
`,children:c.title}),n.jsx("ul",{className:"flex flex-col items-stretch gap-4 px-2",children:c.slides.map((f,i)=>{const p=u===a&&i===o;return n.jsx("li",{children:n.jsx(y.Link,{to:f.path,"data-current":p?"true":"false",onKeyDown:d=>{(d.key==="Enter"||d.key===" ")&&(d.target instanceof HTMLElement&&d.target.blur(),d.preventDefault(),d.stopPropagation(),l(f.path),t(!1))},onClick:d=>{document.activeElement instanceof HTMLElement&&document.activeElement.blur(),d.stopPropagation(),t(!1)},className:m("p-1 rounded transition hover:scale-105 w-full py-2.5 leading-[1.2] opacity-75 bg-slate-800 block text-center pointer-events-auto focus:outline-2 outline-sky-400",{"assignment-link":f.type==="assignment"},p?"border-2":"border"),children:f.title})},i)})})]},u))})})}function ae(){const[e,t]=Q();g.useEffect(()=>{const s=r=>{(r.key==="ArrowRight"||r.key===" ")&&t(),r.key==="ArrowLeft"&&e()};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[t,e]),g.useEffect(()=>{const s=r=>{r.target instanceof HTMLElement&&r.target.closest("main")||(r.preventDefault(),r.pageX>window.innerWidth/2?t():e())};return window.addEventListener("click",s),()=>window.removeEventListener("click",s)},[e,t])}function oe(){const[e,t]=g.useState(!1),s=r=>{r.stopPropagation(),document.activeElement instanceof HTMLElement&&document.activeElement.blur(),t(!1)};return g.useEffect(()=>{e?(document.documentElement.classList.remove("overflow-auto"),document.documentElement.classList.add("overflow-hidden")):(document.documentElement.classList.add("overflow-auto"),document.documentElement.classList.remove("overflow-hidden"))},[e]),ae(),n.jsxs("div",{className:m("fixed left-0 top-0 h-full w-[100svw] px-6 py-2 pointer-events-none isolate z-20",{"before:-z-10 before:bg-slate-800 before:absolute before:inset-0 before:opacity-80 transition-opacity":e}),children:[n.jsx("div",{onClick:s,className:m("absolute left-0 top-0 h-full w-[100svw] -z-10",e?"pointer-events-auto":"pointer-events-none"),"aria-hidden":"true"}),n.jsx(G,{open:e,setOpen:t}),n.jsx(re,{open:e,setOpen:t})]})}function M({children:e}){const{type:t}=Be()??{};return n.jsxs(n.Fragment,{children:[n.jsx("main",{className:"z-10 max-w-3xl p-12 w-full mx-auto bg-gray-950/50","data-slide-type":t,children:n.jsx(le.MDXProvider,{components:{wrapper:V},children:e})}),n.jsx(oe,{})]})}exports.Checkbox=ie;exports.Code=be;exports.Collapse=je;exports.ImagePreview=we;exports.JsonViewer=Ne;exports.Keyboard=Ie;exports.Layout=M;exports.MuiIcon=j;exports.Nav=oe;exports.Prose=V;exports.QuickBar=G;exports.SlideNav=re;exports.SlidesProvider=ne;exports.SlidesRouterProvider=qe;exports.Tooltip=$e;exports.createAssignment=We;exports.createRootRoute=te;exports.createSlide=se;exports.createSlides=_e;exports.createTopic=Oe;exports.slidesToRoutes=ee;exports.slugify=L;exports.topicToRoute=Y;exports.useNavTriggers=ae;exports.useSlides=w;
;