@codename/deck 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/deck.bundle.mjs +100 -94
- package/dist/deck.bundle.mjs.map +4 -4
- package/dist/deck.css +111 -0
- package/dist/deck.js +208 -91
- package/dist/deck.js.map +4 -4
- package/dist/deck.mjs +42 -36
- package/dist/deck.mjs.map +4 -4
- package/dist/template.mjs +3 -3
- package/dist/template.mjs.map +3 -3
- package/dist/types/blocks.d.ts +6 -4
- package/dist/types/figures.d.ts +68 -0
- package/dist/types/kit.d.ts +16 -0
- package/dist/types/mindmap.d.ts +69 -0
- package/dist/types/pptx.d.ts +3 -1
- package/dist/types/render.d.ts +21 -3
- package/dist/types/version.d.ts +1 -1
- package/docs/format.md +85 -4
- package/docs/host.md +3 -3
- package/docs/kits.md +10 -2
- package/package.json +1 -1
- package/src/blocks.js +26 -9
- package/src/deck.css +111 -0
- package/src/deck.js +11 -1
- package/src/figures.js +255 -0
- package/src/kit.js +35 -6
- package/src/mindmap.js +208 -0
- package/src/pptx.js +132 -17
- package/src/render.js +122 -19
- package/src/version.js +1 -1
package/dist/deck.mjs
CHANGED
|
@@ -1,50 +1,56 @@
|
|
|
1
|
-
function
|
|
1
|
+
function ue(e){let t=e.replace(/\r\n?/g,`
|
|
2
2
|
`).split(`
|
|
3
|
-
`).map(
|
|
4
|
-
`);return r?
|
|
3
|
+
`).map(s=>({indent:s.length-s.trimStart().length,text:Mt(s).trimEnd(),raw:s})),r=ke(t,{i:0},0);return r&&typeof r=="object"&&!Array.isArray(r)?r:{}}function Mt(e){let t="";for(let n=0;n<e.length;n++){let r=e[n];if(t)r===t&&(t="");else if(r==='"'||r==="'")t=r;else if(r==="#"&&(n===0||/\s/.test(e[n-1])))return e.slice(0,n)}return e}function ke(e,t,n){for(;t.i<e.length&&!e[t.i].text.trim();)t.i++;if(t.i>=e.length||e[t.i].indent<n)return null;let r=e[t.i].indent;if(/^-(\s|$)/.test(e[t.i].text.trim())){let a=[];for(;t.i<e.length;){let i=e[t.i];if(!i.text.trim()){t.i++;continue}if(i.indent!==r||!/^-(\s|$)/.test(i.text.trim()))break;let o=i.text.trim().slice(1).trim();if(t.i++,!o)a.push(ke(e,t,r+1));else if(/^[^'"[{][^:]*:(\s|$)/.test(o)){let c=i.raw.indexOf(o);e.splice(t.i,0,{indent:c,text:" ".repeat(c)+o,raw:" ".repeat(c)+o}),a.push(ke(e,t,c))}else a.push(xe(o))}return a}let s={};for(;t.i<e.length;){let a=e[t.i];if(!a.text.trim()){t.i++;continue}if(a.indent!==r)break;let i=/^("(?:[^"\\]|\\.)*"|'(?:[^']|'')*'|[^:]+?)\s*:(?:\s+(.*))?$/.exec(a.text.trim());if(t.i++,!i)continue;let o=String(xe(i[1])),c=(i[2]??"").trim();c==="|"||c===">"||/^[|>][+-]$/.test(c)?s[o]=Et(e,t,r,c[0]===">"):c?s[o]=xe(c):s[o]=ke(e,t,r+1)}return s}function Et(e,t,n,r){let s=[];for(;t.i<e.length&&(!e[t.i].raw.trim()||e[t.i].indent>n);)s.push(e[t.i++].raw);for(;s.length&&!s.at(-1)?.trim();)s.pop();let a=Math.min(...s.filter(o=>o.trim()).map(o=>o.length-o.trimStart().length)),i=s.map(o=>o.slice(a)).join(`
|
|
4
|
+
`);return r?i.replace(/([^\n])\n(?=[^\n])/g,"$1 "):i}function xe(e){let t=e.trim();if(t.startsWith("[")||t.startsWith("{")){let n=Ye(t,{i:0});if(n!==void 0)return n}if(/^"(?:[^"\\]|\\.)*"$/.test(t))try{return JSON.parse(t)}catch{return t.slice(1,-1)}return/^'(?:[^']|'')*'$/.test(t)?t.slice(1,-1).replace(/''/g,"'"):/^(true|yes|on)$/i.test(t)?!0:/^(false|no|off)$/i.test(t)?!1:/^(null|~)$/i.test(t)||t===""?null:/^[-+]?(\d+\.?\d*|\.\d+)(e[-+]?\d+)?$/i.test(t)?Number(t):t}function Ye(e,t){let n=()=>{for(;/\s/.test(e[t.i]??"");)t.i++},r=()=>{if(n(),e[t.i]==="["||e[t.i]==="{")return Ye(e,t);let i=t.i;if(e[t.i]==='"'||e[t.i]==="'"){let o=e[t.i++];for(;t.i<e.length&&!(e[t.i]===o&&e[t.i-1]!=="\\");)t.i++;t.i++}else for(;t.i<e.length&&!/[,\]}]/.test(e[t.i])&&!(e[t.i]===":"&&/^[\s,\]}]?$/.test(e[t.i+1]??""));)t.i++;return xe(e.slice(i,t.i))},s=e[t.i++];if(n(),s==="["){let i=[];for(;t.i<e.length&&e[t.i]!=="]";){if(i.push(r()),n(),e[t.i]===",")t.i++;else if(e[t.i]!=="]")return;n()}return t.i++,i}let a={};for(;t.i<e.length&&e[t.i]!=="}";){let i=r();if(n(),e[t.i]!==":")return;if(t.i++,a[String(i)]=r(),n(),e[t.i]===",")t.i++;else if(e[t.i]!=="}")return;n()}return t.i++,a}var Ot=/^::([\w-]+)::\s*$/;function we(e){let n=e.replace(/\r\n?/g,`
|
|
5
5
|
`).split(`
|
|
6
|
-
`),r=[0];for(let
|
|
7
|
-
`)):{},
|
|
8
|
-
`)),
|
|
9
|
-
`),
|
|
10
|
-
`).trim(),c=c.slice(0,
|
|
11
|
-
`:"")+
|
|
12
|
-
`:"")+
|
|
13
|
-
`),c=c.slice(0,
|
|
14
|
-
`),start:t[
|
|
15
|
-
`));for(let[
|
|
16
|
-
`).entries()){let q=/^\s*(`{3,}|~{3,})/.exec(M)?.[1],V=pt.exec(M)??(N.has(E)?[M,N.get(E)]:null);if(b)q&&M.trimStart().startsWith(b)&&(b="");else if(q)b=q;else if(V){S(),h=V[1],y=[],m=s+E+1;continue}y.push(M)}S();let U=g.filter((E,M)=>M>0||E.text.trim()||g.length===1),R=/^#{1,6}\s+(.+)$/m.exec(c.replace(/^```[\s\S]*?^```/gm,""));return{index:i,start:t[n?n[0]-1:s],end:t[r]-1,settings:o,slots:U,notes:p,title:String(o.title??R?.[1]??"").trim()}}var me=/^[a-z][a-z0-9-]{0,31}$/,gt=/^(auto|min-content|max-content|\d{1,2}(\.\d)?fr|\d{1,3}%)$/,ht=["Title Slide","Title and Content","Section Header","Two Content","Comparison","Title Only","Blank","Content with Caption","Picture with Caption"],Ge={align:["start","center","end"],justify:["start","center","end"],paper:["paper","fill","ink","soft"],title:["normal","large","huge"],logo:["small","big","none"]},ne=["top-end","top-start","bottom-end","bottom-start"],Ke=e=>typeof e=="string"&&e.length<=7e5&&/^data:image\/(png|jpeg|gif|webp|svg\+xml);base64,[a-z0-9+/]+=*$/i.test(e)?e:null,yt=e=>typeof e=="string"&&e.length<=3145728&&/^data:image\/(?:(?:png|jpeg|gif|webp|svg\+xml);base64,[a-z0-9+/]+=*|svg\+xml,[\w.!~*'()%/+=-]*)$/i.test(e)?e:null,Se={title:"cover","title-slide":"cover","two-columns":"two-cols","two-column":"two-cols",columns:"two-cols",comparison:"two-cols-header","three-columns":"three-cols","section-header":"section",divider:"section",big:"fact",number:"fact","image-text":"image-right",closing:"end",thanks:"end"},ge={name:"standard",tokens:{},pictures:{},layouts:Object.fromEntries(Object.entries({default:{label:{en:"Title and content",fr:"Titre et contenu"},pptx:"Title and Content"},cover:{label:{en:"Cover",fr:"Couverture"},justify:"center",paper:"fill",title:"huge",logo:"big",pptx:"Title Slide",numbered:!1},intro:{label:{en:"Introduction",fr:"Introduction"},justify:"center",paper:"fill",title:"large",logo:"big",pptx:"Title Slide",numbered:!1},section:{label:{en:"Section",fr:"Section"},justify:"center",paper:"ink",title:"huge",pptx:"Section Header",numbered:!1},center:{label:{en:"Centred",fr:"Centré"},justify:"center",align:"center",pptx:"Title Only"},statement:{label:{en:"Statement",fr:"Affirmation"},justify:"center",align:"center",title:"large",pptx:"Title Only"},fact:{label:{en:"Big number",fr:"Grand chiffre"},justify:"center",align:"center",title:"huge",pptx:"Title Only"},quote:{label:{en:"Quote",fr:"Citation"},justify:"center",pptx:"Title Only"},end:{label:{en:"Closing",fr:"Clôture"},justify:"center",align:"center",paper:"fill",title:"large",logo:"big",pptx:"Title Slide",numbered:!1},full:{label:{en:"Full",fr:"Plein cadre"},logo:"none",pptx:"Blank",numbered:!1},none:{label:{en:"Blank",fr:"Vide"},logo:"none",pptx:"Blank",numbered:!1},"two-cols":{label:{en:"Two columns",fr:"Deux colonnes"},slots:["default","right"],areas:"default right",columns:"1fr 1fr",pptx:"Two Content"},"two-cols-header":{label:{en:"Comparison",fr:"Comparaison"},slots:["default","left","right","bottom"],areas:"default default | left right | bottom bottom",columns:"1fr 1fr",rows:"auto 1fr auto",pptx:"Comparison"},"three-cols":{label:{en:"Three columns",fr:"Trois colonnes"},slots:["default","left","middle","right"],areas:"default default default | left middle right",columns:"1fr 1fr 1fr",rows:"auto 1fr",pptx:"Comparison"},"image-left":{label:{en:"Picture left",fr:"Image à gauche"},pptx:"Picture with Caption",justify:"center"},"image-right":{label:{en:"Picture right",fr:"Image à droite"},pptx:"Picture with Caption",justify:"center"},image:{label:{en:"Picture",fr:"Image"},logo:"none",pptx:"Blank",numbered:!1}}).map(([e,t])=>[e,$e(t).layout]))};function $e(e){let t=[];if(!e||typeof e!="object")return{layout:null,problems:["not a layout"]};let s={},r=Array.isArray(e.slots)||typeof e.slots=="string"?[e.slots].flat().map(String):e.slots&&typeof e.slots=="object"?Object.entries(e.slots).map(([m,b])=>(b&&typeof b=="object"&&(s[m]=bt(b)),m==="title"?"default":m)):["default"],n=[...new Set(r)];if(!n.every(m=>me.test(m)))return{layout:null,problems:["a slot name is not a-z, 0-9 and -"]};n.includes("default")||n.unshift("default");let o=(Array.isArray(e.areas)?e.areas.map(m=>[m].flat().join(" ")):String(e.areas??n.join(" ")).split(/\||\n/)).map(m=>m.trim().replace(/^"|"$/g,"").split(/\s+/)).filter(m=>m.length&&m[0]),a=o[0]?.length??0;if(!o.length||o.some(m=>m.length!==a)||o.flat().some(m=>m!=="."&&!n.includes(m)))return{layout:null,problems:["areas are not a rectangle of its slots"]};for(let m of n){let b=o.flatMap((N,U)=>N.map((R,E)=>[R,E,U])).filter(([N])=>N===m);if(!b.length){m!=="default"&&t.push(`slot ${m} has no area`);continue}let y=b.map(N=>N[1]),S=b.map(N=>N[2]);if(b.length!==(Math.max(...y)-Math.min(...y)+1)*(Math.max(...S)-Math.min(...S)+1))return{layout:null,problems:[`slot ${m} is not a rectangle`]}}let c=(m,b)=>{let y=m===void 0?Array(b).fill("1fr"):(Array.isArray(m)?m:String(m).split(/\s+/)).map(String);return y.length===b&&y.every(S=>gt.test(S))?y:null},p=c(e.columns,a),u=c(e.rows,o.length);if(!p||!u)return{layout:null,problems:["columns or rows are not tracks deck knows (auto, 1fr, 40%…), one per column or row"]};let l=(m,b)=>{let y=String(e[m]??b);return Ge[m].includes(y)?y:(t.push(`${m} ${y} is not one of ${Ge[m].join(", ")}`),b)},d=typeof e.label=="string"||e.label&&typeof e.label=="object"?e.label:void 0,g=Array.isArray(e.art)&&e.art.length<=8&&e.art.every(m=>typeof m=="string"&&me.test(m))?e.art:void 0;e.art!==void 0&&!g&&t.push("art is not 8 names at most");let h=m=>typeof m=="string"?m.slice(0,300):void 0;return{layout:{label:d,intent:h(e.intent),use_when:h(e.use_when),avoid_when:h(e.avoid_when),slots:n,budgets:s,areas:o,columns:p,rows:u,align:l("align","start"),justify:l("justify","start"),paper:l("paper","paper"),title:l("title","normal"),logo:l("logo","small"),pptx:ht.includes(e.pptx)?e.pptx:n.length>1?"Comparison":"Title and Content",numbered:e.numbered!==!1,art:g},problems:t}}function bt(e){let t={};for(let s of["max_words","max_chars","item_max_words","heading_max_words"])Number.isInteger(e[s])&&e[s]>0&&(t[s]=e[s]);return Array.isArray(e.items)&&e.items.length===2&&e.items.every(Number.isInteger)&&(t.items=e.items),typeof e.required=="boolean"&&(t.required=e.required),typeof e.kind=="string"&&/^[a-z-]{1,20}$/.test(e.kind)&&(t.kind=e.kind),t}function Xe(e){if(!e||typeof e!="object")return{};if(!JSON.stringify(e).includes('"$value"'))return e;let t=d=>d&&typeof d=="object"&&"$value"in d?d.$value:d,s=d=>{let g=t(d);return typeof g=="string"?g:typeof g?.hex=="string"?`${g.hex}${typeof g.alpha=="number"&&g.alpha<1?Math.round(Math.max(0,g.alpha)*255).toString(16).padStart(2,"0"):""}`:void 0},r=d=>{let g=t(d);return Array.isArray(g)?g.map(String):typeof g=="string"?[g]:void 0},n={bg:"paper",background:"paper",paper:"paper",fg:"ink",text:"ink",ink:"ink",accent:"primary",primary:"primary",muted:"muted",surface:"soft",soft:"soft"},i=d=>Object.fromEntries(Object.entries(d??{}).filter(([g])=>g in n).map(([g,h])=>[n[g],s(h)]).filter(([,g])=>g)),o=e.color??e.colour??{},a={...i(o),...i(o.light)},c=i(o.dark);Object.keys(c).length&&(a.dark=c);let p=e.font??e.fontFamily??{},u=r(p.heading??p.display??p.sans),l=r(p.body??p.text??p.sans);return(u||l)&&(a.fonts={heading:u??l,body:l??u}),a}function he(...e){let t={name:"standard",tokens:{},layouts:{...ge.layouts},pictures:{}},s=[];for(let r of e)if(!(!r||typeof r!="object")){if(typeof r.name=="string"&&(t.name=r.name),r.tokens&&typeof r.tokens=="object"){let n=Xe(r.tokens),i=n.dark&&typeof n.dark=="object"?{...t.tokens.dark,...n.dark}:t.tokens.dark;t.tokens={...t.tokens,...n,...i&&{dark:i}}}for(let[n,i]of Object.entries(r.pictures??{}))me.test(n)&&yt(i)?t.pictures[n]=i:s.push(`picture ${n}: not a picture inside the kit`);for(let[n,i]of Object.entries(r.layouts??r.types??{})){if(!me.test(n)){s.push(`layout ${n}: not a-z, 0-9 and -`);continue}if(i===!1){n!=="default"&&delete t.layouts[n];continue}let{layout:o,problems:a}=$e(i);s.push(...a.map(c=>`layout ${n}: ${c}`)),o&&(t.layouts[n]=o)}}for(let[r,n]of[["logo",t.tokens],["dark logo",t.tokens.dark]])n?.logo!==void 0&&!Ke(n.logo)&&(s.push(`${r}: not a picture inside the kit (PNG, JPEG, GIF, WebP or SVG as data:, 512 KB at most)`),delete n.logo);return t.tokens.logoAt!==void 0&&!ne.includes(t.tokens.logoAt)&&(s.push(`logoAt ${t.tokens.logoAt} is not one of ${ne.join(", ")}`),delete t.tokens.logoAt),{kit:t,problems:s}}function Ce(e,t,s){return typeof e.label=="string"?e.label:e.label?.[s]??e.label?.[s.split("-")[0]]??e.label?.en??t}function ve(e){let t=e.slots.map(n=>n.name);if(t.includes("middle"))return"three-cols";if(t.includes("left"))return"two-cols-header";if(t.includes("right"))return"two-cols";if(e.index===0)return"cover";let r=e.slots.map(n=>n.text).join(`
|
|
6
|
+
`),r=[0];for(let l of n)r.push(r.at(-1)+l.length+1);let s=[],a=0,i=null,o=!1;for(let l=0;l<n.length;l++){let d=n[l].trimEnd();if(o){o=Je(d,!0);continue}if(d.startsWith("---")&&!/^---\s*-/.test(d)){if((l>a||i)&&s.push({start:a,end:l,matter:i}),i=null,a=l+1,d[3]!=="-"&&n[l+1]?.trim()&&/^\s*([\w-]+\s*:|#\s)/.test(n[l+1])&&!/^#{1,6}\s/.test(n[l+1])){let m=l+1;for(;m<n.length&&n[m].trimEnd()!=="---";)m++;i=[l+1,m],l=m,a=m+1}}else if(/^\s*(`{3,}|~{3,})/.test(d)){let m=/^\s*(`{3,}|~{3,})/.exec(d)[1],h=l+1;for(;h<n.length&&!n[h].trimStart().startsWith(m);)h++;h<n.length&&(l=h)}else o=Je(d,!1)}(a<n.length||i)&&s.push({start:a,end:n.length,matter:i});let c=s.at(-1);if(s.length===1&&c){let l="",d=[];for(let m=c.start;m<c.end;m++){let h=/^\s*(`{3,}|~{3,})/.exec(n[m])?.[1];l?h&&n[m].trimStart().startsWith(l)&&(l=""):h?l=h:/^#{1,2}\s+\S/.test(n[m])&&d.push(m)}if(d.length>=2){s.pop();let m=d[0]>c.start&&!n.slice(c.start,d[0]).some(h=>h.trim())?d:[c.start,...d.slice(d[0]===c.start?1:0)];m.forEach((h,p)=>s.push({start:p===0?c.start:h,end:m[p+1]??c.end,matter:p===0?c.matter:null}))}}let u=s.map(({start:l,end:d,matter:m},h)=>Tt(n,r,l,d,m,h)).filter((l,d)=>d===0||l.slots.some(m=>m.text.trim())||Object.keys(l.settings).length);return u.forEach((l,d)=>{l.index=d}),{settings:u[0]?.settings??{},slides:u}}function Nt(e){let t=new Map,n=e.findIndex(o=>/^:{3,}[ \t]*\{?[ \t]*\.?columns\b/.test(o));if(n<0)return t;let r=/^:+/.exec(e[n])[0],s=e.findIndex((o,c)=>c>n&&o.trim()===r),a=e.map((o,c)=>[o,c]).filter(([o,c])=>Number(c)>n&&(s<0||Number(c)<s)&&/^:{3,}[ \t]*\{?[ \t]*\.?col(umn)?\b/.test(String(o))).map(([,o])=>Number(o));if(a.length<2)return t;let i=a.length===2?["left","right"]:["left","middle","right",...a.slice(3).map((o,c)=>`col-${c+4}`)];return a.forEach((o,c)=>t.set(o,i[c])),s>0&&e.slice(s+1).some(o=>o.trim())&&t.set(s,"bottom"),t}function Je(e,t){let n=0;for(;;)if(t){let r=e.indexOf("-->",n);if(r<0)return!0;t=!1,n=r+3}else{let r=e.indexOf("<!--",n);if(r<0)return!1;let s=e.indexOf("-->",r+4);if(s<0)return!0;n=s+3}}function Tt(e,t,n,r,s,a){let i=s?ue(e.slice(s[0],s[1]).join(`
|
|
7
|
+
`)):{},o=n;for(;o<r&&!e[o].trim();)o++;if(!s&&/^```ya?ml\s*$/.test(e[o]??"")){let S=o+1;for(;S<r&&!e[S].startsWith("```");)S++;i=ue(e.slice(o+1,S).join(`
|
|
8
|
+
`)),n=S+1}let c=e.slice(n,r).join(`
|
|
9
|
+
`),u="",l=/^(\?\?\?|Notes?:)[ \t]*(.*)$/m.exec(c);l&&l.index!==void 0&&!/^```/m.test(c.slice(l.index))&&(u=[l[2],c.slice(l.index+l[0].length)].join(`
|
|
10
|
+
`).trim(),c=c.slice(0,l.index)),c=c.replace(/<aside\b[^>]*class=["']?notes["']?[^>]*>([\s\S]*?)<\/aside>/gi,(S,C)=>(u+=(u?`
|
|
11
|
+
`:"")+C.replace(/<[^>]*>/g," ").replace(/[ \t]+/g," ").trim(),S.replace(/[^\n]/g," "))),c=c.replace(/^(:{3,})[ \t]*\{?[ \t]*\.?notes[ \t]*\}?[ \t]*\n([\s\S]*?)\n\1[ \t]*$/gm,(S,C,P)=>(u+=(u?`
|
|
12
|
+
`:"")+P.trim(),S.replace(/[^\n]/g," ")));let m=[...c.matchAll(/<!--([\s\S]*?)-->/g)].at(-1);m&&m.index!==void 0&&!c.slice(m.index+m[0].length).trim()&&(u=[m[1].trim(),u].filter(Boolean).join(`
|
|
13
|
+
`),c=c.slice(0,m.index));let h=[],p="default",f=n,y="",g=[],w=()=>h.push({name:p,text:g.join(`
|
|
14
|
+
`),start:t[f]}),b=Nt(c.split(`
|
|
15
|
+
`));for(let[S,C]of c.split(`
|
|
16
|
+
`).entries()){let P=/^\s*(`{3,}|~{3,})/.exec(C)?.[1],E=Ot.exec(C)??(b.has(S)?[C,b.get(S)]:null);if(y)P&&C.trimStart().startsWith(y)&&(y="");else if(P)y=P;else if(E){w(),p=E[1],g=[],f=n+S+1;continue}g.push(C)}w();let A=h.filter((S,C)=>C>0||S.text.trim()||h.length===1),v=/^#{1,6}\s+(.+)$/m.exec(c.replace(/^```[\s\S]*?^```/gm,""));return{index:a,start:t[s?s[0]-1:n],end:t[r]-1,settings:i,slots:A,notes:u,title:String(i.title??v?.[1]??"").trim()}}var Se=/^[a-z][a-z0-9-]{0,31}$/,Lt=/^(auto|min-content|max-content|\d{1,2}(\.\d)?fr|\d{1,3}%)$/,jt=["Title Slide","Title and Content","Section Header","Two Content","Comparison","Title Only","Blank","Content with Caption","Picture with Caption"],Qe={align:["start","center","end"],justify:["start","center","end"],paper:["paper","fill","ink","soft"],title:["normal","large","huge"],logo:["small","big","none"],lists:["bullets","mindmap","steps","metrics","timeline","process","agenda","pyramid","bento"],parts:["none","versus","matrix"]},de=["top-end","top-start","bottom-end","bottom-start"],et=e=>typeof e=="string"&&e.length<=7e5&&/^data:image\/(png|jpeg|gif|webp|svg\+xml);base64,[a-z0-9+/]+=*$/i.test(e)?e:null,Pt=e=>typeof e=="string"&&e.length<=3145728&&/^data:image\/(?:(?:png|jpeg|gif|webp|svg\+xml);base64,[a-z0-9+/]+=*|svg\+xml,[\w.!~*'()%/+=-]*)$/i.test(e)?e:null,Ze={title:"cover","title-slide":"cover","two-columns":"two-cols","two-column":"two-cols",columns:"two-cols",comparison:"two-cols-header","three-columns":"three-cols","section-header":"section",divider:"section",big:"fact",number:"fact","image-text":"image-right",closing:"end",thanks:"end","mind-map":"mindmap",map:"mindmap",toc:"summary",contents:"summary","table-of-contents":"summary",outline:"summary","sub-section":"subsection","subsection-header":"subsection",cards:"steps",kpi:"metrics",kpis:"metrics",stats:"metrics",numbers:"metrics",roadmap:"timeline",milestones:"timeline",chevrons:"process",schedule:"agenda",programme:"agenda",program:"agenda",hierarchy:"pyramid",mosaic:"bento",vs:"versus","face-off":"versus",quadrant:"matrix",quadrants:"matrix","2x2":"matrix"},$e={name:"standard",tokens:{},pictures:{},layouts:Object.fromEntries(Object.entries({default:{label:{en:"Title and content",fr:"Titre et contenu"},pptx:"Title and Content"},cover:{label:{en:"Cover",fr:"Couverture"},justify:"center",paper:"fill",title:"huge",logo:"big",pptx:"Title Slide",numbered:!1},intro:{label:{en:"Introduction",fr:"Introduction"},justify:"center",paper:"fill",title:"large",logo:"big",pptx:"Title Slide",numbered:!1},section:{label:{en:"Section",fr:"Section"},justify:"center",paper:"ink",title:"huge",pptx:"Section Header",numbered:!1},subsection:{label:{en:"Subsection",fr:"Sous-section"},justify:"center",paper:"soft",title:"large",pptx:"Section Header",numbered:!1},summary:{label:{en:"Contents",fr:"Sommaire"},contents:!0,pptx:"Title and Content"},center:{label:{en:"Centred",fr:"Centré"},justify:"center",align:"center",pptx:"Title Only"},statement:{label:{en:"Statement",fr:"Affirmation"},justify:"center",align:"center",title:"large",pptx:"Title Only"},fact:{label:{en:"Big number",fr:"Grand chiffre"},justify:"center",align:"center",title:"huge",pptx:"Title Only"},quote:{label:{en:"Quote",fr:"Citation"},justify:"center",pptx:"Title Only"},end:{label:{en:"Closing",fr:"Clôture"},justify:"center",align:"center",paper:"fill",title:"large",logo:"big",pptx:"Title Slide",numbered:!1},full:{label:{en:"Full",fr:"Plein cadre"},logo:"none",pptx:"Blank",numbered:!1},none:{label:{en:"Blank",fr:"Vide"},logo:"none",pptx:"Blank",numbered:!1},"two-cols":{label:{en:"Two columns",fr:"Deux colonnes"},slots:["default","right"],areas:"default right",columns:"1fr 1fr",pptx:"Two Content"},"two-cols-header":{label:{en:"Comparison",fr:"Comparaison"},slots:["default","left","right","bottom"],areas:"default default | left right | bottom bottom",columns:"1fr 1fr",rows:"auto 1fr auto",pptx:"Comparison"},"three-cols":{label:{en:"Three columns",fr:"Trois colonnes"},slots:["default","left","middle","right"],areas:"default default default | left middle right",columns:"1fr 1fr 1fr",rows:"auto 1fr",pptx:"Comparison"},"image-left":{label:{en:"Picture left",fr:"Image à gauche"},pptx:"Picture with Caption",justify:"center"},"image-right":{label:{en:"Picture right",fr:"Image à droite"},pptx:"Picture with Caption",justify:"center"},image:{label:{en:"Picture",fr:"Image"},logo:"none",pptx:"Blank",numbered:!1},mindmap:{label:{en:"Mind map",fr:"Carte mentale"},lists:"mindmap",pptx:"Title Only"},steps:{label:{en:"Steps",fr:"Étapes"},lists:"steps",pptx:"Title Only"},metrics:{label:{en:"Key figures",fr:"Chiffres clés"},lists:"metrics",pptx:"Title Only"},timeline:{label:{en:"Timeline",fr:"Frise"},lists:"timeline",pptx:"Title Only"},process:{label:{en:"Process",fr:"Processus"},lists:"process",pptx:"Title Only"},agenda:{label:{en:"Agenda",fr:"Programme"},lists:"agenda",pptx:"Title Only"},pyramid:{label:{en:"Pyramid",fr:"Pyramide"},lists:"pyramid",pptx:"Title Only"},bento:{label:{en:"Bento",fr:"Mosaïque"},lists:"bento",pptx:"Title Only"},versus:{label:{en:"Versus",fr:"Face à face"},parts:"versus",pptx:"Title Only"},matrix:{label:{en:"Matrix",fr:"Matrice"},parts:"matrix",pptx:"Title Only"}}).map(([e,t])=>[e,Le(t).layout]))};function Le(e){let t=[];if(!e||typeof e!="object")return{layout:null,problems:["not a layout"]};let n={},r=Array.isArray(e.slots)||typeof e.slots=="string"?[e.slots].flat().map(String):e.slots&&typeof e.slots=="object"?Object.entries(e.slots).map(([f,y])=>(y&&typeof y=="object"&&(n[f]=Ft(y)),f==="title"?"default":f)):["default"],s=[...new Set(r)];if(!s.every(f=>Se.test(f)))return{layout:null,problems:["a slot name is not a-z, 0-9 and -"]};s.includes("default")||s.unshift("default");let i=(Array.isArray(e.areas)?e.areas.map(f=>[f].flat().join(" ")):String(e.areas??s.join(" ")).split(/\||\n/)).map(f=>f.trim().replace(/^"|"$/g,"").split(/\s+/)).filter(f=>f.length&&f[0]),o=i[0]?.length??0;if(!i.length||i.some(f=>f.length!==o)||i.flat().some(f=>f!=="."&&!s.includes(f)))return{layout:null,problems:["areas are not a rectangle of its slots"]};for(let f of s){let y=i.flatMap((b,A)=>b.map((v,S)=>[v,S,A])).filter(([b])=>b===f);if(!y.length){f!=="default"&&t.push(`slot ${f} has no area`);continue}let g=y.map(b=>b[1]),w=y.map(b=>b[2]);if(y.length!==(Math.max(...g)-Math.min(...g)+1)*(Math.max(...w)-Math.min(...w)+1))return{layout:null,problems:[`slot ${f} is not a rectangle`]}}let c=(f,y)=>{let g=f===void 0?Array(y).fill("1fr"):(Array.isArray(f)?f:String(f).split(/\s+/)).map(String);return g.length===y&&g.every(w=>Lt.test(w))?g:null},u=c(e.columns,o),l=c(e.rows,i.length);if(!u||!l)return{layout:null,problems:["columns or rows are not tracks deck knows (auto, 1fr, 40%…), one per column or row"]};let d=(f,y)=>{let g=String(e[f]??y);return Qe[f].includes(g)?g:(t.push(`${f} ${g} is not one of ${Qe[f].join(", ")}`),y)},m=typeof e.label=="string"||e.label&&typeof e.label=="object"?e.label:void 0,h=Array.isArray(e.art)&&e.art.length<=8&&e.art.every(f=>typeof f=="string"&&Se.test(f))?e.art:void 0;e.art!==void 0&&!h&&t.push("art is not 8 names at most");let p=f=>typeof f=="string"?f.slice(0,300):void 0;return{layout:{label:m,intent:p(e.intent),use_when:p(e.use_when),avoid_when:p(e.avoid_when),slots:s,budgets:n,areas:i,columns:u,rows:l,align:d("align","start"),justify:d("justify","start"),paper:d("paper","paper"),title:d("title","normal"),logo:d("logo","small"),lists:d("lists","bullets"),parts:d("parts","none"),contents:e.contents===!0,pptx:jt.includes(e.pptx)?e.pptx:s.length>1?"Comparison":"Title and Content",numbered:e.numbered!==!1,art:h},problems:t}}function Ft(e){let t={};for(let n of["max_words","max_chars","item_max_words","heading_max_words"])Number.isInteger(e[n])&&e[n]>0&&(t[n]=e[n]);return Array.isArray(e.items)&&e.items.length===2&&e.items.every(Number.isInteger)&&(t.items=e.items),typeof e.required=="boolean"&&(t.required=e.required),typeof e.kind=="string"&&/^[a-z-]{1,20}$/.test(e.kind)&&(t.kind=e.kind),t}function tt(e){if(!e||typeof e!="object")return{};if(!JSON.stringify(e).includes('"$value"'))return e;let t=m=>m&&typeof m=="object"&&"$value"in m?m.$value:m,n=m=>{let h=t(m);return typeof h=="string"?h:typeof h?.hex=="string"?`${h.hex}${typeof h.alpha=="number"&&h.alpha<1?Math.round(Math.max(0,h.alpha)*255).toString(16).padStart(2,"0"):""}`:void 0},r=m=>{let h=t(m);return Array.isArray(h)?h.map(String):typeof h=="string"?[h]:void 0},s={bg:"paper",background:"paper",paper:"paper",fg:"ink",text:"ink",ink:"ink",accent:"primary",primary:"primary",muted:"muted",surface:"soft",soft:"soft"},a=m=>Object.fromEntries(Object.entries(m??{}).filter(([h])=>h in s).map(([h,p])=>[s[h],n(p)]).filter(([,h])=>h)),i=e.color??e.colour??{},o={...a(i),...a(i.light)},c=a(i.dark);Object.keys(c).length&&(o.dark=c);let u=e.font??e.fontFamily??{},l=r(u.heading??u.display??u.sans),d=r(u.body??u.text??u.sans);return(l||d)&&(o.fonts={heading:l??d,body:d??l}),o}function ve(...e){let t={name:"standard",tokens:{},layouts:{...$e.layouts},pictures:{}},n=[];for(let r of e)if(!(!r||typeof r!="object")){if(typeof r.name=="string"&&(t.name=r.name),r.tokens&&typeof r.tokens=="object"){let s=tt(r.tokens),a=s.dark&&typeof s.dark=="object"?{...t.tokens.dark,...s.dark}:t.tokens.dark;t.tokens={...t.tokens,...s,...a&&{dark:a}}}for(let[s,a]of Object.entries(r.pictures??{}))Se.test(s)&&Pt(a)?t.pictures[s]=a:n.push(`picture ${s}: not a picture inside the kit`);for(let[s,a]of Object.entries(r.layouts??r.types??{})){if(!Se.test(s)){n.push(`layout ${s}: not a-z, 0-9 and -`);continue}if(a===!1){s!=="default"&&delete t.layouts[s];continue}let{layout:i,problems:o}=Le(a);n.push(...o.map(c=>`layout ${s}: ${c}`)),i&&(t.layouts[s]=i)}}for(let[r,s]of[["logo",t.tokens],["dark logo",t.tokens.dark]])s?.logo!==void 0&&!et(s.logo)&&(n.push(`${r}: not a picture inside the kit (PNG, JPEG, GIF, WebP or SVG as data:, 512 KB at most)`),delete s.logo);return t.tokens.logoAt!==void 0&&!de.includes(t.tokens.logoAt)&&(n.push(`logoAt ${t.tokens.logoAt} is not one of ${de.join(", ")}`),delete t.tokens.logoAt),{kit:t,problems:n}}function je(e,t,n){return typeof e.label=="string"?e.label:e.label?.[n]??e.label?.[n.split("-")[0]]??e.label?.en??t}function Ae(e,t){let n=String(e.settings.layout??"").trim().toLowerCase();return t.layouts[n]?n:t.layouts[Ze[n]]?Ze[n]:nt(e)}function nt(e){let t=e.slots.map(s=>s.name);if(t.includes("middle"))return"three-cols";if(t.includes("left"))return"two-cols-header";if(t.includes("right"))return"two-cols";if(e.index===0)return"cover";let r=e.slots.map(s=>s.text).join(`
|
|
17
17
|
`).trim().split(`
|
|
18
|
-
`).filter(
|
|
19
|
-
`))?"fact":r.length&&r.every((
|
|
20
|
-
`)
|
|
18
|
+
`).filter(s=>s.trim());return r.length===1&&/^#{1,2}\s+\S/.test(r[0])?"section":/^#\s+[^\s]*\d[\d\s.,%€$£¥]*\S*\s*$/u.test(r[0]??"")&&r.length<=3&&!/^\s*[-*\d]+[.)]?\s/m.test(r.slice(1).join(`
|
|
19
|
+
`))?"fact":r.length&&r.every((s,a)=>s.startsWith(">")||a===r.length-1&&!s.startsWith("#"))&&r[0].startsWith(">")?"quote":"default"}var Rt=/^([ \t]*)(?:[-*+]|\d{1,9}[.)])(?:[ \t]+(?:\[[ xX]\][ \t]+)?|$)/;function st(e,t){let n=[],r=[],s=t,a=null;for(let i of e.split(`
|
|
20
|
+
`)){let o=s;if(s+=i.length+1,a){if(i.trimStart().startsWith(a.fence)&&!i.trim().slice(a.fence.length).trim()){let l=r.at(-1).item;(l.blocks??=[]).push({lang:a.lang,text:a.lines.join(`
|
|
21
|
+
`)}),a=null}else a.lines.push(i.slice(Math.min(a.indent,/^[ \t]*/.exec(i)?.[0].length??0)));continue}let c=/^([ \t]*)(`{3,}|~{3,})(.*)$/.exec(i);if(c&&r.length){a={fence:c[2],indent:c[1].length,lang:c[3].trim(),lines:[]};continue}let u=Rt.exec(i);if(u){let l=u[1].replace(/\t/g," ").length,d={text:i.slice(u[0].length).trim(),start:o+u[0].length,end:o+i.trimEnd().length,children:[]};for(;r.length&&r.at(-1).indent>=l;)r.pop();(r.at(-1)?.item.children??n).push(d),r.push({indent:l,item:d})}else if(i.trim()&&r.length){let l=r.at(-1).item;l.text=`${l.text} ${i.trim()}`.trim(),l.end=o+i.trimEnd().length}}return n}var Ce=e=>e.normalize("NFC").replace(/[*_`~]/g,"").replace(/\s+/g," ").trim().toLowerCase();function Pe(e){let t=[],n=new Map;for(let r of e){let s=Ce(r.text),a=s?n.get(s):void 0;if(a){a.children.push(...r.children),a.step=a.step||r.step;continue}let i={...r,children:[...r.children]};s&&n.set(s,i),t.push(i)}for(let r of t)r.children=Pe(r.children);return t}function It(e,{rtl:t=!1,aspect:n=0}={}){let r=fe(e,t,1);if(n>0&&r.width/r.height>n&&fe(e,t,4).height<r.width/n)r=fe(e,t,4);else if(n>0&&r.width/r.height>n){let s=1,a=4;for(let i=0;i<12;i++){let o=(s+a)/2;fe(e,t,o).height<r.width/n?s=o:a=o}r=fe(e,t,s)}return r}function fe(e,t,n){let r=b=>b<=1?2.4:1.5,s=b=>b<=1?.8*n:.3*Math.sqrt(n),a=(b,A)=>(b.inner=b.children.reduce((v,S)=>v+a(S,A+1),0)+s(A+1)*Math.max(0,b.children.length-1),b.span=Math.max(b.h,b.inner),b.span),i=[],o=(b,A,v,S,C,P)=>{let E=v+b.span/2;b.x=S>0?A:A-b.w,b.side=t?-S:S,b.y=E-b.h/2;let I=E-b.inner/2,B=A+S*b.w;for(let X of b.children){let K=B+S*r(C+1);o(X,K,I,S,C+1,P),i.push({branch:P,depth:C+1,x1:B,y1:E,x2:K,y2:I+X.span/2}),I+=X.span+s(C+1)}};for(let b of e.children)a(b,1);e.span=e.h,e.side=0,e.x=-e.w/2,e.y=-e.h/2;let c=b=>b.reduce((A,v)=>A+v.span,0)+s(1)*Math.max(0,b.length-1),u=e.children.length,l=u;for(let b=Math.ceil(u/2);b<=u;b++)Math.max(c(e.children.slice(0,b)),c(e.children.slice(b)))<Math.max(c(e.children.slice(0,l)),c(e.children.slice(l)))&&(l=b);for(let[b,A]of[[1,e.children.slice(0,l)],[-1,e.children.slice(l).reverse()]]){let v=-c(A)/2;for(let S of A){let C=b*(e.w/2+r(1));o(S,C,v,b,1,e.children.indexOf(S)),i.push({branch:e.children.indexOf(S),depth:1,x1:b*e.w/2,y1:0,x2:C,y2:v+S.span/2}),v+=S.span+s(1)}}let d=[],m=b=>{d.push(b),b.children.forEach(m)};m(e);let h=Math.min(...d.map(b=>b.x)),p=Math.max(...d.map(b=>b.x+b.w)),f=Math.min(...d.map(b=>b.y)),y=Math.max(...d.map(b=>b.y+b.h)),g=p-h,w=b=>t?g-(b-h):b-h;for(let b of d)b.x=t?g-(b.x-h)-b.w:b.x-h,b.y=b.y-f;for(let b of i)Object.assign(b,{x1:w(b.x1),x2:w(b.x2),y1:b.y1-f,y2:b.y2-f});return{width:g,height:y-f,lines:i}}var zt=({x1:e,y1:t,x2:n,y2:r})=>`M${e.toFixed(3)} ${t.toFixed(3)}C${((e+n)/2).toFixed(3)} ${t.toFixed(3)} ${((e+n)/2).toFixed(3)} ${r.toFixed(3)} ${n.toFixed(3)} ${r.toFixed(3)}`;function rt(e){let t=e.querySelector(".deck-map-plane"),n=t.querySelector(".deck-map-lines"),r=t.querySelector(".deck-map-tree > li"),s=()=>{if(!e.clientWidth||!e.clientHeight)return;let i=parseFloat(getComputedStyle(t).fontSize)||16,o=[],c=h=>{let p=h.firstElementChild,f=h.lastElementChild?.tagName==="UL"?[...h.lastElementChild.children]:[],y={w:p.offsetWidth/i,h:p.offsetHeight/i,children:f.map(c)};return o.push([p,y]),y},{width:u,height:l,lines:d}=It(c(r),{rtl:getComputedStyle(e).direction==="rtl",aspect:e.clientWidth/e.clientHeight});for(let[h,p]of o)h.style.setProperty("left",`${p.x/u*100}%`),h.style.setProperty("top",`${p.y/l*100}%`),h.setAttribute("data-side",p.side===1?"right":p.side===-1?"left":"middle");t.style.setProperty("width",`${u}em`),t.style.setProperty("height",`${l}em`),n.setAttribute("viewBox",`0 0 ${u.toFixed(3)} ${l.toFixed(3)}`);let m=[...n.children];for(let h of m)h.replaceChildren();for(let h of d){let p=document.createElementNS("http://www.w3.org/2000/svg","path");p.setAttribute("d",zt(h)),p.setAttribute("data-depth",String(h.depth)),m[h.branch]?.append(p)}t.style.setProperty("scale",String(Math.min(1,e.clientWidth/(u*i),e.clientHeight/(l*i))))},a=new ResizeObserver(s);a.observe(e);for(let i of t.querySelectorAll(".deck-map-node"))a.observe(i)}var at=/^\s*(?:[::—–|·-]\s*)?/,qt=/^\d{1,2}(?:[:h.]\d{2}|h)?(?:\s?[ap]\.?m\.?)?(?:\s?[–-]\s?\d{1,2}(?:[:h.]\d{2}|h)?(?:\s?[ap]\.?m\.?)?)?(?=\s|$)/i,Dt=/^[+−-]?[^\p{L}\p{N}\s]?\d[\d., ]*\S*(?=\s|$)/u,Bt={agenda:qt,metrics:Dt},ot=e=>e.type==="paragraph"&&e.raw.trim().split(`
|
|
22
|
+
`).every(t=>/^\s*(\*\*|__)\S/.test(t));function it(e,t,n){if(e.type==="paragraph"){let s=t;return e.raw.split(`
|
|
23
|
+
`).flatMap(a=>{let i=s;s+=a.length+1;let o=a.trim();if(!o)return[];let[c]=n(o);return[{tokens:c?.tokens??[],start:i+a.length-a.trimStart().length,end:i+a.trimEnd().length,blocks:[],step:0}]})}let r=0;return e.items.map(s=>{let a=e.raw.indexOf(s.raw,r);r=a+s.raw.length;let i=t+Math.max(0,a),o=/^\s*(?:[-*+]|\d+[.)])\s+(?:\[[ xX]\]\s+)?/.exec(s.raw),[c,...u]=s.tokens,l=c&&(c.type==="text"||c.type==="paragraph")?c:null,d=i+(o?.[0].length??0);return{tokens:l?l.tokens??[{type:"text",raw:l.text,text:l.text}]:[],start:d,end:l&&o&&!l.raw.trim().includes(`
|
|
24
|
+
`)?d+l.raw.trim().length:-1,blocks:(l?u:s.tokens).map(m=>({token:m,start:i+Math.max(0,s.raw.indexOf(m.raw))})),step:0}})}function Wt(e,t){let[n,...r]=e.tokens,s=e.end>=0,a=(o,c)=>{let u=o[0],l=u?.type==="text"?at.exec(u.raw)[0].length:0,d=(l?[{...u,raw:u.raw.slice(l),text:u.text.slice(at.exec(u.text)[0].length)},...o.slice(1)]:o).filter(m=>m.raw.trim()||m.type!=="text");return{rest:d,restAt:s&&d.length&&c+l<e.end?[c+l,e.end]:null}};if(n?.type==="strong")return{lead:n.tokens,leadAt:s?[e.start+2,e.start+n.raw.length-2]:null,...a(r,e.start+n.raw.length)};let i=n?.type==="text"&&Bt[t]?.exec(n.raw);if(i){let o=n.raw.slice(i[0].length);return{lead:[{type:"text",raw:i[0],text:i[0]}],leadAt:s?[e.start,e.start+i[0].length]:null,...a([...o?[{type:"text",raw:o,text:o}]:[],...r],e.start+i[0].length)}}return{lead:null,leadAt:null,rest:e.tokens,restAt:s?[e.start,e.end]:null}}function lt(e,t){let n=e.flatMap((a,i)=>a.type==="heading"?[{depth:a.depth,i}]:[]);if(!n.length)return new Set;let r=n.at(-1).depth,s=n.filter(a=>a.depth===r).map(a=>a.i);return new Set(s.length>t&&s[0]===e.findIndex(a=>a.type!=="space")?s.slice(1):s)}function _t(e,t,n,r=2){let s=e.map(o=>{let c=Ae(o,t),u=o.settings.level,l=o.settings.hideInToc,d=/^(#{1,6})\s/m.exec(o.slots.map(f=>f.text).join(`
|
|
25
|
+
`).replace(/^(`{3,}|~{3,})[\s\S]*?^\1/gm,""))?.[1].length??1,m=Number.isInteger(u)||c==="section"||c==="subsection",h=Number.isInteger(u)?u:c==="section"?1:c==="subsection"?2:d,p=!!o.title&&(l===!1||l!==!0&&o.index!==n&&!t.layouts[c]?.contents&&!["cover","intro","end"].includes(c));return{index:o.index,title:o.title,level:h,part:m,kept:p,shown:l===!1}}).filter(o=>o.kept),a=s.some(o=>o.part)?s.filter(o=>o.part||o.shown):s,i=Math.min(...a.map(o=>o.level));return a.map(({index:o,title:c,level:u})=>({index:o,title:c,level:u-i+1})).filter(o=>o.level<=Math.max(1,r))}var Me=(e,t,n)=>e.style.setProperty("grid-template-columns",`repeat(${t<=n?t:Math.ceil(t/2)}, minmax(0, 1fr))`);function ct(e,t,n){let r=t.map(p=>({entry:p,...Wt(p,e)})),s=r.length,a=x("div",{class:`deck-figure deck-${e}`,"data-count":s});a.style.setProperty("--deck-count",String(s));let i=p=>p?re(...p):void 0,o=p=>p.lead?x("span",{class:"deck-words deck-lead",dir:"auto","data-edit":i(p.leadAt)},_(p.lead,n)):null,c=p=>p.rest.length?x("span",{class:"deck-words deck-text",dir:"auto","data-edit":i(p.restAt)},_(p.rest,n)):null,u=p=>p.entry.blocks.map(({token:f,start:y})=>{let g=se(f,y,n,null);return g&&!g.matches(".deck-block, .deck-table, pre")&&g.classList.add("deck-words"),g}),l=(p,f)=>{if(p.entry.step)for(let y of f)y&&ne(y,p.entry.step)},d=(p,f,y)=>(p.style.setProperty("grid-column",String(f)),p.style.setProperty("grid-row",String(y)),p),m=p=>o(p)??c(p)??x("span",{class:"deck-words deck-lead"}),h=(p,f)=>x("div",{class:f},[p.lead?c(p):null,...u(p)]);switch(e){case"steps":Me(a,s,5);for(let[p,f]of r.entries()){let y=x("div",{class:"deck-card deck-shape"},[x("span",{class:"deck-words deck-badge deck-shape"},[n.number(p+1)]),o(f),c(f),...u(f)]);l(f,[y]),a.append(y)}break;case"metrics":Me(a,s,4);for(let p of r){let f=x("div",{class:"deck-metric deck-shape"},[o(p),c(p),...u(p)]);l(p,[f]),a.append(f)}break;case"timeline":Me(a,s,99),a.append(x("span",{class:"deck-timeline-line deck-shape"}));for(let[p,f]of r.entries()){let y=[d(o(f)??x("span",{class:"deck-lead"}),p+1,1),d(x("span",{class:"deck-dot deck-shape"}),p+1,2),d(x("div",{class:"deck-milestone"},[c(f),...u(f)]),p+1,3)];l(f,y),a.append(...y)}break;case"process":Me(a,s,99);for(let[p,f]of r.entries()){let y=[d(x("div",{class:"deck-chevron deck-shape","data-first":p===0||void 0,"data-last":p===s-1||void 0},[m(f)]),p+1,1),d(h(f,"deck-under"),p+1,2)];l(f,y),a.append(...y)}break;case"agenda":{let p=s>=7?[r.slice(0,Math.ceil(s/2)),r.slice(Math.ceil(s/2))]:[r];a.style.setProperty("grid-template-columns",`repeat(${p.length}, minmax(0, 1fr))`);for(let f of p)a.append(x("div",{class:"deck-agenda-col"},f.map(y=>{let g=x("div",{class:"deck-row deck-shape"},[o(y)??x("span",{class:"deck-lead"}),c(y),...u(y)]);return l(y,[g]),g})));break}case"pyramid":{let p=r.some(y=>y.lead&&(y.rest.length||y.entry.blocks.length));a.style.setProperty("grid-template-columns",p?"minmax(0, 1.15fr) minmax(0, 1fr)":"minmax(0, 30em)");let f=y=>Math.round(5e3*(.16+.84*y/s))/100;for(let[y,g]of r.entries()){let w=d(x("div",{class:"deck-level deck-shape"},[m(g)]),1,y+1);w.style.setProperty("clip-path",`polygon(${50-f(y)}% 0%, ${50+f(y)}% 0%, ${50+f(y+1)}% 100%, ${50-f(y+1)}% 100%)`),w.style.setProperty("padding-inline",`max(0.4em, ${Math.round((50-f(y))*100)/100}%)`);let b=[w,p?d(h(g,"deck-beside"),2,y+1):null];l(g,b),a.append(...b.filter(A=>A!==null))}break}case"bento":for(let[p,f]of r.entries()){let y=x("div",{class:`deck-tile deck-shape${p===0?" is-big":""}`},[o(f),c(f),...u(f)]);l(f,[y]),a.append(y)}break}return a}function dt(e,t){let n=x("div",{class:`deck-figure deck-${e}`,"data-count":t.length});e==="versus"&&n.style.setProperty("grid-template-columns",t.map(()=>"minmax(0, 1fr)").join(" auto "));for(let[r,s]of t.entries()){for(let i of s)i instanceof HTMLElement&&!i.matches(".deck-block, .deck-table, pre, .deck-picture")&&i.classList.add("deck-words");e==="versus"&&r>0&&n.append(x("span",{class:"deck-vs deck-shape deck-words","aria-hidden":"true"},["VS"]));let a=t.length>1&&(e==="versus"?r===t.length-1:r===1);n.append(x("div",{class:`deck-part deck-shape${a?" is-highlight":""}`},s))}return n}function pt(e,t,n){let r=e.deck?_t(e.deck.slides,e.kit,t,n):[];if(!r.length)return null;let s=0,a=r.map(({index:c,title:u,level:l})=>{let[d]=e.lex(`# ${u}`);return x("div",{class:`deck-row deck-shape${l>1?" is-sub":""}`,"data-go":c,role:"link",tabindex:0},[x("span",{class:"deck-words deck-lead"},l>1?[]:[e.number(++s)]),x("span",{class:"deck-words deck-text",dir:"auto"},_(d?.tokens??[{type:"text",text:u}],e))])}),i=a.length>=7?[a.slice(0,Math.ceil(a.length/2)),a.slice(Math.ceil(a.length/2))]:[a],o=x("div",{class:"deck-figure deck-agenda deck-contents","data-count":a.length},i.map(c=>x("div",{class:"deck-agenda-col"},c)));return o.style.setProperty("grid-template-columns",`repeat(${i.length}, minmax(0, 1fr))`),o}function x(e,t={},n=[]){let r=document.createElement(e);for(let[s,a]of Object.entries(t))a!==void 0&&a!==!1&&r.setAttribute(s,a===!0?"":String(a));for(let s of n)(s||s==="")&&r.append(s);return r}function Ht(e){let t=String(e??"").trim();return/^(https?:|mailto:|blob:|#)/i.test(t)||/^data:image\/(png|jpe?g|gif|webp|avif|svg\+xml);/i.test(t)?t:/^[a-z][\w+.-]*:/i.test(t)?null:t}function Ee(e,t){let n=Ae(e,t.kit),r=t.kit.layouts[n]??$e.layouts.default,s=String(e.settings.class??"").split(/\s+/).filter(g=>["invert","text-center","text-left"].includes(g)),a={step:0},i=new Map(e.slots.map(g=>[g.name,g])),o=r.slots,c=(r.art??[]).map(g=>t.kit.pictures?.[g]).filter(Boolean),u=x("section",{class:["deck-slide",`deck-layout-${n}`,...s.map(g=>`deck-class-${g}`),...c.length?["has-art"]:[]].join(" "),"data-index":e.index,"data-layout":n,"data-paper":r.paper,"data-align":r.align,"data-justify":r.justify,"data-title":r.title,"aria-roledescription":t.slide,role:"group"});for(let g of c)u.append(x("img",{class:"deck-art",src:g,alt:"","aria-hidden":"true"}));let l=x("div",{class:"deck-canvas"});l.style.setProperty("grid-template-areas",r.areas.map(g=>`"${g.map(w=>w==="."?".":`s-${w}`).join(" ")}"`).join(" ")),l.style.setProperty("grid-template-columns",r.columns.join(" ")),l.style.setProperty("grid-template-rows",r.rows.join(" ")),u.append(l);let d=e.settings.image??e.settings.background;if(typeof d=="string"&&["image-left","image-right","image","cover","quote"].includes(n)){let g=t.resolve(d);if(g){let w=x("div",{class:"deck-image",role:"img","aria-label":String(e.settings.alt??"")||void 0});w.style.setProperty("--deck-image",`url("${g.replace(/["\\\n]/g,encodeURIComponent)}")`),l.append(w),u.classList.add("has-image")}}for(let g of o){let w=i.get(g),b=x("div",{class:"deck-slot","data-slot":g},w?ut(w,t,a,r.lists,r.parts):[]);b.style.setProperty("grid-area",`s-${g}`),l.append(b)}let m=r.contents&&pt(t,e.index,Number(e.settings.maxDepth)||void 0);m&&l.querySelector(`.deck-slot[data-slot="${o[0]}"]`)?.append(m);for(let g of e.slots)o.includes(g.name)||l.append(x("div",{class:"deck-slot","data-slot":g.name},ut(g,t,a)));r.numbered&&e.settings.paginate!==!1&&u.append(x("span",{class:"deck-number","aria-hidden":"true"},[t.number(e.index+1)]));let{logo:h,logoAt:p,dark:f}=t.kit.tokens,y=de.includes(p)?p:de[0];if(h&&r.logo!=="none")for(let[g,w]of[[h,f?.logo?"has-dark":""],[f?.logo,"is-dark"]])g&&u.append(x("img",{class:`deck-logo ${w}`.trim(),src:g,alt:"","aria-hidden":"true","data-size":r.logo,"data-at":y}));return{element:u,steps:a.step}}function ut(e,t,n,r="bullets",s="none"){let a=t.lex(e.text),i=[],o=s==="none"?new Set:lt(a,s==="versus"?2:4),c=[],u=i,l=-1,d=r==="mindmap"&&!o.size,m=r!=="bullets"&&r!=="mindmap"&&!o.size,h=[],p=-1,f=[],y=-1,g=null,w=e.start,b="";for(let[A,v]of a.entries()){let S=w;if(w+=v.raw.length,o.has(A)&&(l<0&&(l=i.length),c.push(u=[])),m&&(v.type==="list"||ot(v))){p<0&&(p=i.length);let E=it(v,S,t.lex),I=b==="click"?++n.step:0;for(let B of E)B.step=I||(b==="clicks"?++n.step:0);h.push(...E);continue}if(d&&(v.type==="list"||v.type==="heading"&&i.length&&a.slice(A+1).find(E=>E.type!=="space")?.type==="list")){if(y<0&&(y=i.length),v.type==="heading"){g=se(v,S,t,null);continue}let E=st(v.raw,S);for(let I of E)b==="clicks"&&(I.step=!0);f.push({items:g?[{text:g.textContent??"",start:S,end:S,children:E,element:g,step:b==="clicks"}]:E,step:b==="clicks"}),g=null;continue}let C=v.type==="paragraph"?v.raw.trim().split(`
|
|
26
|
+
`).map(E=>E.trim()):[];if(C.length&&C.every(E=>/^:{3,}/.test(E))){for(let E of C)/^:{3,}[ \t]*\{?[ \t]*\.?incremental\b/.test(E)?b="clicks":/^:{3,}\s*$/.test(E)&&b==="clicks"&&(b="");continue}if(v.type==="html"){let E=/^\s*<(\/?)(v-clicks?|br)\b[^>]*>\s*$/i.exec(v.raw);if(E&&E[2]==="br")u.push(x("br"));else if(E)b=E[1]?"":E[2].toLowerCase()==="v-clicks"?"clicks":"click";else if(/<li\b/i.test(v.raw)){let I=x(/<ol\b/i.test(v.raw)?"ol":"ul",{dir:"auto"});for(let[,B,X]of v.raw.matchAll(/<li\b([^>]*)>([\s\S]*?)(?=<\/li>|<li\b|<\/[ou]l>|$)/gi)){let K=X.replace(/<!--[\s\S]*?-->/g,"").replace(/<[^>]*>/g," ").replace(/\s+/g," ").trim();if(!K)continue;let J=x("li",{dir:"auto"},[K]);(/\bv-click\b/.test(B)||b==="clicks")&&ne(J,++n.step),I.append(J)}I.childElementCount&&u.push(I)}else{let I=v.raw.replace(/<!--[\s\S]*?-->/g,"").replace(/<[^>]*>/g," ").replace(/\s+/g," ").trim();I&&u.push(x("p",{},[I]))}continue}let P=se(v,S,t,b==="clicks"?n:null);P&&((b==="click"||b==="clicks"&&v.type!=="list")&&ne(P,++n.step),u.push(P))}return f.length&&Ut(i,f.flatMap(A=>A.items),t,n,y),h.length&&i.splice(p,0,ct(r,h,t)),c.length&&i.splice(l,0,dt(s,c)),i}function Ut(e,t,n,r,s){let a=Pe(t),i=s>0&&e[0]instanceof HTMLElement&&e[0].matches("h1, h2, h3, h4, h5, h6, .deck-h")?e[0]:null,o;a.length===1&&(!i||Ce(i.textContent??"")===Ce(a[0].text))?o={...a[0],element:i??a[0].element}:a.length===1?o=a[0]:o={text:i?.textContent??"",start:0,end:0,children:a,element:i??void 0},i&&o.element===i&&(e.shift(),s--);let c=(p,f)=>{if(p.element)return p.element.classList.add("deck-map-node"),p.element.setAttribute("data-depth",String(f)),p.element;let[y]=p.text?n.lex(p.text):[],g=_(y?.tokens??[{type:"text",text:p.text}],n);return p.blocks?.length?x("div",{class:"deck-map-node has-block","data-depth":f},[p.text?x("span",{class:"deck-map-words",dir:"auto","data-edit":re(p.start,p.end)},g):null,...p.blocks.map(w=>se({type:"code",lang:w.lang,text:w.text,raw:w.text},p.start,n,null))]):x("span",{class:"deck-map-node","data-depth":f,dir:"auto","data-edit":re(p.start,p.end)},g)},u=(p,f)=>x("li",{},[c(p,f),p.children.length?x("ul",{},p.children.map(y=>u(y,f+1))):null]),l=document.createElementNS("http://www.w3.org/2000/svg","svg");l.setAttribute("class","deck-map-lines"),l.setAttribute("aria-hidden","true"),l.setAttribute("preserveAspectRatio","none");let d=o.children.map((p,f)=>{let y=u(p,1),g=document.createElementNS("http://www.w3.org/2000/svg","g");for(let w of[y,g])w.setAttribute("data-branch",String(f%6+1));if(p.step){let w=++r.step;ne(y,w),ne(g,w)}return l.append(g),y}),m=x("li",{},[c(o,0),d.length?x("ul",{},d):null]),h=x("div",{class:"deck-mindmap"},[x("div",{class:"deck-map-plane"},[l,x("ul",{class:"deck-map-tree"},[m])])]);rt(h),e.splice(s,0,h)}var ne=(e,t)=>{e.classList.add("deck-step"),e.setAttribute("data-step",String(t))};function se(e,t,n,r){switch(e.type){case"heading":{let s=/^\s*#{1,6}[ \t]+/.exec(e.raw),a=s?re(t+s[0].length,t+e.raw.replace(/\s*#*\s*$/,"").length):void 0;return n.headings==="real"?x(`h${e.depth}`,{dir:"auto","data-edit":a},_(e.tokens,n)):x("p",{class:`deck-h deck-h${e.depth}`,role:"heading","aria-level":Math.min(6,e.depth+2),dir:"auto","data-edit":a},_(e.tokens,n))}case"paragraph":{let s=e.tokens.length===1&&e.tokens[0].type==="image";return x("p",{dir:"auto",class:s?"deck-picture":void 0,"data-edit":s?void 0:re(t,t+e.raw.trimEnd().length)},_(e.tokens,n))}case"text":return x("p",{dir:"auto"},_(e.tokens??[{type:"text",text:e.text}],n));case"blockquote":return x("blockquote",{},Gt(e.tokens,t,e.raw,n));case"list":{let s=0,a=x(e.ordered?"ol":"ul",{start:e.ordered&&e.start!==1?e.start:void 0,class:e.items.some(i=>i.task)?"deck-tasks":void 0});for(let i of e.items){let o=e.raw.indexOf(i.raw,s);s=o+i.raw.length;let c=t+Math.max(0,o),u=/^\s*(?:[-*+]|\d+[.)])\s+(?:\[[ xX]\]\s+)?/.exec(i.raw),l=i.tokens.length===1&&i.tokens[0].type==="text"&&!/\n\s*\S/.test(i.raw.trim().split(`
|
|
21
27
|
`).slice(1).join(`
|
|
22
|
-
`)),
|
|
23
|
-
`).entries())c.append(x("span",{class:
|
|
24
|
-
`]));return x("pre",{dir:"ltr",class:
|
|
25
|
-
`),r=
|
|
26
|
-
`),r=
|
|
27
|
-
`,A:`[${r}](${
|
|
28
|
-
<html lang="${
|
|
28
|
+
`)),d=x("li",{dir:"auto","data-edit":l&&u?re(c+u[0].length,c+i.raw.trimEnd().length):void 0},[i.task?x("input",{type:"checkbox",checked:i.checked,disabled:!0,"aria-label":i.text}):null,...i.tokens.flatMap(m=>m.type==="text"?_(m.tokens??[{type:"text",text:m.text}],n):[se(m,c+Math.max(0,i.raw.indexOf(m.raw)),n,null)])]);r&&ne(d,++r.step),a.append(d)}return a}case"code":{let s=/^(\S*)\s*(?:\{([^}]*)\})?/.exec(e.lang??"")??[],a=(s[1]??"").toLowerCase(),i=n.blocks[a];if(i){let u=x("div",{class:`deck-block deck-${a}`,"data-source":e.text});return u.append(x("pre",{class:"deck-block-source",dir:"ltr"},[x("code",{},[e.text])])),queueMicrotask(()=>Promise.resolve(i(u,e.text,Vt(e.lang??""))).catch(()=>u.classList.add("is-failed"))),u}let o=Kt(s[2]??""),c=x("code",{class:a?`language-${a}`:void 0});for(let[u,l]of e.text.split(`
|
|
29
|
+
`).entries())c.append(x("span",{class:o.has(u+1)?"deck-line is-marked":"deck-line"},[l,`
|
|
30
|
+
`]));return x("pre",{dir:"ltr",class:o.size?"has-marks":void 0,tabindex:0},[c])}case"table":{let s=a=>a??void 0;return x("div",{class:"deck-table"},[x("table",{},[x("thead",{},[x("tr",{},e.header.map((a,i)=>x("th",{"data-align":s(e.align[i]),dir:"auto"},_(a.tokens,n))))]),x("tbody",{},e.rows.map(a=>x("tr",{},a.map((i,o)=>x("td",{"data-align":s(e.align[o]),dir:"auto"},_(i.tokens,n))))))])])}default:return null}}function Gt(e,t,n,r){let s=0;return e.map(a=>{let i=n.indexOf(a.raw,s);return s=Math.max(s,i+a.raw.length),se(a,t+Math.max(0,i),r,null)})}function Vt(e){let t=/\{[\s\S]*\}/.exec(e)?.[0];if(!t)return{};let n=ue(`options: ${t.replace(/\n/g," ")}`).options;return n&&typeof n=="object"&&!Array.isArray(n)?n:{}}function Kt(e){let t=new Set;for(let n of e.split(/[,|]/)){let[r,s]=n.split("-").map(a=>parseInt(a,10));if(Number.isFinite(r))for(let a=r;a<=(Number.isFinite(s)?s:r);a++)t.add(a)}return t}var re=(e,t)=>t>e?`${e}-${t}`:void 0;function _(e=[],t){return e.flatMap(n=>{switch(n.type){case"text":case"escape":return n.tokens?_(n.tokens,t):[n.text.replace(/&(amp|lt|gt|quot|#39);/g,(r,s)=>({amp:"&",lt:"<",gt:">",quot:'"',"#39":"'"})[s])];case"strong":return[x("strong",{},_(n.tokens,t))];case"em":return[x("em",{},_(n.tokens,t))];case"del":return[x("del",{},_(n.tokens,t))];case"codespan":return[x("code",{},[n.text.replace(/&(amp|lt|gt|quot|#39);/g,(r,s)=>({amp:"&",lt:"<",gt:">",quot:'"',"#39":"'"})[s])])];case"br":return[x("br")];case"link":{let r=Ht(n.href);return r?[x("a",{href:r,rel:"noopener noreferrer",target:r.startsWith("#")?void 0:"_blank"},_(n.tokens,t))]:_(n.tokens,t)}case"image":{let r=t.resolve(n.href);return r?[x("img",{src:r,alt:n.text,loading:"lazy"})]:[n.text]}case"html":return/^<br\s*\/?>$/i.test(n.raw)?[x("br")]:[];default:return n.text?[n.text]:[]}})}var Fe={default:{paper:"#fffdf8",ink:"#1d1b16",primary:"#f7c531",voice:"calm",radius:10},ocean:{paper:"#f6fafb",ink:"#0d2530",primary:"#0f766e",voice:"calm",radius:6},ember:{paper:"#fff8f3",ink:"#2a160c",primary:"#d9480f",voice:"bold",radius:2},ink:{paper:"#ffffff",ink:"#111111",primary:"#3b5bdb",voice:"elegant",radius:0}},Ie={calm:{heading:'ui-sans-serif, system-ui, "Segoe UI", Roboto, "Noto Sans", sans-serif',body:'ui-sans-serif, system-ui, "Segoe UI", Roboto, "Noto Sans", sans-serif'},elegant:{heading:'ui-serif, "Iowan Old Style", Georgia, "Noto Serif", serif',body:'ui-sans-serif, system-ui, "Segoe UI", Roboto, sans-serif'},bold:{heading:'"Avenir Next Condensed", "Arial Narrow", ui-sans-serif, system-ui, sans-serif',body:'ui-sans-serif, system-ui, "Segoe UI", Roboto, sans-serif'},friendly:{heading:'ui-rounded, "SF Pro Rounded", "Nunito", system-ui, sans-serif',body:'ui-rounded, "SF Pro Rounded", system-ui, sans-serif'}};function ze(e,t={}){let n=Fe[String(e.theme??"")]??Fe.default,r=typeof e.themeConfig=="object"&&e.themeConfig?e.themeConfig:{},s={...n,...ft(t),...ft(r)};return Ie[s.voice]||(s.voice="calm"),s}function ft(e){let t={};for(let n of["paper","ink","primary","muted","soft"])typeof e[n]=="string"&&V(e[n])&&(t[n]=e[n]);return e.dark&&typeof e.dark=="object"&&(t.dark=Object.fromEntries(Object.entries(e.dark).filter(([,n])=>typeof n=="string"&&V(n)))),e.fonts&&Array.isArray(e.fonts.heading)&&Array.isArray(e.fonts.body)&&(t.fonts={heading:e.fonts.heading.map(String),body:e.fonts.body.map(String)}),typeof e.voice=="string"&&(t.voice=e.voice),typeof e.radius=="number"&&(t.radius=e.radius),Array.isArray(e.series)&&e.series.length&&e.series.every(n=>typeof n=="string"&&V(n))&&(t.series=e.series.slice(0,6)),t}function qe(e,t){let n=V(e.paper)??[255,253,248],r=V(e.ink,n)??[29,27,22],s=t==="dark"?e.dark??{}:{},a=pe(V(s.paper??"",t==="dark"?[0,0,0]:[255,255,255])??(t==="dark"?ae(r,[0,0,0],.35):n)),i=pe(V(s.ink??"",a)??(t==="dark"?ae(n,[255,255,255],.2):r)),o=V(s.primary??e.primary,a)??[247,197,49],c=Oe(o,a,4.5),u=oe(i,o)>=oe(a,o)?i:a,l=(e.series??[]).map(m=>V(m,a)).filter(m=>m!==null),d=[0,1,2,3,4,5].map(m=>Oe(l[m%(l.length||1)]??Xt(o,m*57),a,3));return{paper:te(a),ink:te(i),muted:te(Oe(pe(V(s.muted??(t==="light"?e.muted??"":""),a)??ae(i,a,.38)),a,4.5)),line:te(ae(i,a,.82)),primary:te(c),onPrimary:te(u),soft:te(V(s.soft??(t==="light"?e.soft??"":""),a)??ae(o,a,.78)),series:d.map(te)}}function V(e,t=[255,255,255]){let n=String(e).trim(),r=/^#?([\da-f]{3,4}|[\da-f]{6}|[\da-f]{8})$/i.exec(n)?.[1],s=/^rgba?\(([^)]*)\)$/i.exec(n)?.[1].split(/[\s,/]+/).filter(Boolean),a=(l,d)=>l.endsWith("%")?parseFloat(l)/100*d:Number(l),[i,o,c,u=1]=r?(r.length<5?[...r].map(l=>l+l):r.match(/../g)).map((l,d)=>parseInt(l,16)/(d>2?255:1)):s?.length===3||s?.length===4?s.map((l,d)=>a(l,d>2?1:255)):[];return i!==void 0&&[i,o,c].every(l=>l>=0&&l<=255)&&u>=0&&u<=1?pe(ae(t,[i,o,c],u)):null}var te=e=>`#${e.map(t=>Math.round(Math.max(0,Math.min(255,t))).toString(16).padStart(2,"0")).join("")}`,pe=e=>e.map(t=>Math.round(Math.max(0,Math.min(255,t)))),ae=(e,t,n)=>e.map((r,s)=>r+(t[s]-r)*n);function Re(e){let[t,n,r]=e.map(s=>{let a=s/255;return a<=.03928?a/12.92:((a+.055)/1.055)**2.4});return .2126*t+.7152*n+.0722*r}function oe(e,t){let[n,r]=[Re(e),Re(t)].sort((s,a)=>a-s);return(n+.05)/(r+.05)}function Oe(e,t,n){let r=Re(t)>.18?[0,0,0]:[255,255,255],s=0,a=pe(e);for(;oe(a,t)<n&&s<1;)a=pe(ae(e,r,s=Math.min(1,s+.02)));return a}function Xt(e,t){let[n,r,s]=e.map(g=>g/255),a=Math.max(n,r,s),i=Math.min(n,r,s),o=(a+i)/2,c=a-i,u=c===0?0:c/(1-Math.abs(2*o-1)),l=c===0?0:a===n?(r-s)/c%6:a===r?(s-n)/c+2:(n-r)/c+4;l=(l*60+t+360)%360;let d=(1-Math.abs(2*o-1))*Math.max(u,.55),m=d*(1-Math.abs(l/60%2-1)),h=o-d/2,[p,f,y]=l<60?[d,m,0]:l<120?[m,d,0]:l<180?[0,d,m]:l<240?[0,m,d]:l<300?[m,0,d]:[d,0,m];return[p+h,f+h,y+h].map(g=>g*255)}var mt={en:{deck:"Slides",slide:"slide",carousel:"carousel",previous:"Previous",next:"Next",present:"Present full screen",presenter:"Presenter view",overview:"All slides",edit:"Change",scheme:"Light or dark",export:"Save as PowerPoint",source:"The deck as text",notes:"Notes",noNotes:"No notes for this slide.",upNext:"Next",last:"Last slide",where:"Slide {n} of {count}",saved:"Saved"},fr:{deck:"Diapositives",slide:"diapositive",carousel:"carrousel",previous:"Précédente",next:"Suivante",present:"Présenter en plein écran",presenter:"Vue présentateur",overview:"Toutes les diapositives",edit:"Modifier",scheme:"Clair ou sombre",export:"Enregistrer en PowerPoint",source:"La présentation en texte",notes:"Notes",noNotes:"Pas de notes pour cette diapositive.",upNext:"Ensuite",last:"Dernière diapositive",where:"Diapositive {n} sur {count}",saved:"Enregistré"},ar:{deck:"الشرائح",slide:"شريحة",carousel:"عرض شرائح",previous:"السابقة",next:"التالية",present:"العرض بملء الشاشة",presenter:"عرض المقدّم",overview:"كل الشرائح",edit:"تعديل",scheme:"فاتح أو داكن",export:"الحفظ بصيغة PowerPoint",source:"العرض كنص",notes:"الملاحظات",noNotes:"لا ملاحظات لهذه الشريحة.",upNext:"التالية",last:"الشريحة الأخيرة",where:"الشريحة {n} من {count}",saved:"تم الحفظ"},ja:{deck:"スライド",slide:"スライド",carousel:"カルーセル",previous:"前へ",next:"次へ",present:"全画面で発表",presenter:"発表者ビュー",overview:"すべてのスライド",edit:"編集",scheme:"ライトまたはダーク",export:"PowerPoint で保存",source:"テキストとしてのスライド",notes:"メモ",noNotes:"このスライドにメモはありません。",upNext:"次",last:"最後のスライド",where:"スライド {n} / {count}",saved:"保存しました"}},ht=e=>mt[e.split("-")[0].toLowerCase()]??mt.en;import{Lexer as Yt}from"marked";var Jt=/^(ar|he|fa|ur|ps|sd|ug|yi|dv|ckb)\b/i,Qt={back:"M15 5l-7 7 7 7",next:"M9 5l7 7-7 7",present:"M4 9V4h5M20 9V4h-5M4 15v5h5M20 15v5h-5",presenter:"M3 5h12v9H3zM18 8h3M18 12h3M6 19h6",grid:"M4 4h6v6H4zM14 4h6v6h-6zM4 14h6v6H4zM14 14h6v6h-6z",edit:"M4 20h4L19 9l-4-4L4 16zM13.5 6.5l4 4",scheme:"M12 3a9 9 0 1 0 9 9 7 7 0 0 1-9-9z",export:"M12 4v11M7 10l5 5 5-5M5 20h14"};function Zt(e){let t=document.createElementNS("http://www.w3.org/2000/svg","svg");t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("aria-hidden","true"),(e==="back"||e==="next")&&t.setAttribute("class","deck-flip");let n=document.createElementNS("http://www.w3.org/2000/svg","path");return n.setAttribute("d",Qt[e]),t.append(n),t}function en(e,t){let n=t.source.replace(/\r\n?/g,`
|
|
31
|
+
`),r=we(n),s=0,a=0,i=[],o=String(t.lang??r.settings.lang??document.documentElement.lang??"en")||"en",c=String(t.dir??r.settings.dir??(Jt.test(o)?"rtl":"ltr")),u={...ht(o),...t.strings},l=new Intl.NumberFormat(o).format,d=matchMedia("(prefers-color-scheme: dark)"),m="light",h=Date.now();e.classList.add("deck"),e.lang=o,e.dir=c;let p=x("div",{class:"deck-stage",tabindex:0,role:"region","aria-roledescription":u.carousel,"aria-label":u.deck}),f=x("span",{class:"deck-where","aria-live":"polite"}),y=(k,$,O)=>{let z=x("button",{type:"button","aria-label":$,"data-act":k},[Zt(k)]);return z.addEventListener("click",O),z},g=y("back",u.previous,()=>T(-1)),w=y("next",u.next,()=>T(1)),b=y("edit",u.edit,()=>F("is-editing")),A=y("presenter",u.presenter,()=>F("is-presenting")),v=y("grid",u.overview,()=>F("is-overview")),S=x("div",{class:"deck-bar"},[g,f,w,x("span",{class:"deck-gap"}),v,A,t.editable===!1?null:b,y("scheme",u.scheme,()=>{m=m==="dark"?"light":"dark",J()}),t.onExport?y("export",u.export,()=>t.onExport?.(Ke)):null,document.fullscreenEnabled?y("present",u.present,()=>Y()):null]),C=x("textarea",{class:"deck-source",spellcheck:"false","aria-label":u.source,dir:"auto"}),P=x("div",{class:"deck-next"}),E=x("div",{class:"deck-notes",dir:"auto","aria-label":u.notes}),I=x("span",{class:"deck-clock"}),B=x("div",{class:"deck-presenter"},[P,E]);e.replaceChildren(C,p,B,S),S.insertBefore(I,S.querySelector(".deck-gap"));let X=[],K=()=>{let k=ve(t.kit,r.settings.kit);return X=k.problems,k.kit};function J(){U.kit=K();let k=ze(r.settings,U.kit.tokens),$=qe(k,m),O=j=>j.map(W=>/^[\w-]+$/.test(W)?W:`"${W.replace(/["\\]/g,"")}"`).join(", "),z=k.fonts?{heading:O(k.fonts.heading),body:O(k.fonts.body)}:Ie[k.voice];for(let[j,W]of Object.entries({paper:$.paper,ink:$.ink,muted:$.muted,line:$.line,primary:$.primary,fill:k.primary,"on-fill":$.onPrimary,soft:$.soft,heading:z.heading,body:z.body,radius:`${k.radius}px`,...Object.fromEntries($.series.map((q,R)=>[`series-${R+1}`,q]))}))e.style.setProperty(`--deck-${j}`,W);e.dataset.scheme=m,e.dataset.fill=(j=>oe(j,[255,255,255])>oe(j,[0,0,0])?"dark":"light")(V(k.primary)??[247,197,49]),e.dispatchEvent(new CustomEvent("deck-scheme",{detail:{scheme:m,colours:$,tokens:k}}))}let H=()=>{let k=t.scheme??r.settings.colorSchema??"auto";m=k==="dark"||k==="auto"&&d.matches?"dark":"light"},U={blocks:t.blocks??{},resolve:t.resolve??(k=>k),headings:t.headings??"real",number:k=>l(k),total:0,kit:ve().kit,lex:t.lex??(k=>new Yt({gfm:!0}).lex(k)),slide:u.slide};function le(){U.total=r.slides.length,U.deck=r,i=r.slides.map(k=>Ee(k,U));for(let[k,{element:$}]of i.entries())$.setAttribute("aria-label",u.where.replace("{n}",l(k+1)).replace("{count}",l(i.length))),$.addEventListener("click",()=>{e.classList.contains("is-overview")&&(F("is-overview"),M(k,0))});p.replaceChildren(...i.map(({element:k})=>k)),s=Math.min(s,i.length-1),L(),requestAnimationFrame(()=>ce())}function ce(){for(let{element:k}of i)N(k)}function N(k){let $=!1;for(let O of k.querySelectorAll(".deck-slot")){let z=1;for(O.style.setProperty("--deck-fit","1");O.scrollHeight>O.clientHeight+1&&z>.6;)O.style.setProperty("--deck-fit",String(z=Math.round((z-.05)*100)/100));O.scrollHeight>O.clientHeight+1&&($=!0)}$?k.dataset.overflow="true":delete k.dataset.overflow}function L(){for(let[$,{element:O,steps:z}]of i.entries()){O.classList.toggle("is-shown",$===s),O.inert=$!==s&&!e.classList.contains("is-overview");for(let j of O.querySelectorAll(".deck-step"))j.classList.toggle("is-on",$<s||$===s&&Number(j.getAttribute("data-step"))<=a||z===0)}f.textContent=`${l(s+1)} / ${l(i.length)}`,g.toggleAttribute("disabled",s===0&&a===0),w.toggleAttribute("disabled",s>=i.length-1&&a>=(i[s]?.steps??0)),E.textContent=r.slides[s]?.notes||u.noNotes;let k=r.slides[s+1];P.replaceChildren(x("span",{},[k?u.upNext:u.last]),...k?[Ee(k,U).element]:[]),e.dispatchEvent(new CustomEvent("deck-move",{detail:{at:s,step:a}}))}function T(k){let $=i[s]?.steps??0;if(k>0&&a<$){a++,L();return}if(k<0&&a>0){a--,L();return}let O=s+k;O<0||O>=i.length||M(O,k>0?0:i[O].steps)}function M(k,$=0){if(k===s){a=$,L();return}let O=k>s,z=r.slides[O?k:s]?.settings??{},j=String(z.transition??r.settings.transition??"none"),[W,q]=j.split("|").map(ye=>ye.trim()),R=O?W:q??W;c==="rtl"&&(R=R.replace(/-(left|right)$/,(ye,be)=>be==="left"?"-right":"-left")),R==="view-transition"&&(R="morph");let ee=()=>{s=k,a=$,R==="morph"&&G(i[k].element),L()},Ct=matchMedia("(prefers-reduced-motion: reduce)").matches;if(!document.startViewTransition||R==="none"||Ct||e.classList.contains("is-overview"))return ee();R==="morph"&&G(i[s].element,i[k].element),document.documentElement.dataset.deckTransition=R;let Xe=document.startViewTransition(ee);Xe.ready.catch(()=>{}),Xe.finished.finally(()=>{delete document.documentElement.dataset.deckTransition;for(let{element:ye}of i)for(let be of ye.querySelectorAll("[data-morph]"))be.style.removeProperty("view-transition-name"),be.removeAttribute("data-morph")})}function G(k,$){let O=j=>`${j.tagName}:${j.tagName==="IMG"?j.getAttribute("src"):(j.textContent??"").trim().slice(0,80)}`,z=j=>[...j.querySelectorAll("h1, h2, h3, h4, .deck-h, li, p, img, .deck-block, blockquote, .deck-image, .deck-map-node")].filter(W=>!W.matches(".deck-mindmap li"));if($){let j=new Map(z($).map(q=>[O(q),q])),W=0;for(let q of z(k)){let R=j.get(O(q));if(!R||R.dataset.morph||q.closest("[data-morph]"))continue;let ee=`deck-m${W++}`;q.dataset.morph=R.dataset.morph=ee,q.style.setProperty("view-transition-name",ee)}return}for(let j of k.querySelectorAll("[data-morph]")){let W=j.dataset.morph;for(let q of p.querySelectorAll(`[data-morph="${W}"]`))q!==j&&q.style.removeProperty("view-transition-name");j.style.setProperty("view-transition-name",W)}}function F(k){for(let $ of["is-editing","is-presenting","is-overview"])$!==k&&e.classList.remove($);e.classList.toggle(k),b.setAttribute("aria-pressed",String(e.classList.contains("is-editing"))),A.setAttribute("aria-pressed",String(e.classList.contains("is-presenting"))),v.setAttribute("aria-pressed",String(e.classList.contains("is-overview"))),e.classList.contains("is-editing")&&(C.value=n,C.focus()),L(),requestAnimationFrame(()=>ce())}function Y(){p.requestFullscreen?.().then(()=>p.focus(),()=>{})}function Q(k){n=k.replace(/\r\n?/g,`
|
|
32
|
+
`),r=we(n),J(),le(),t.onChange?.(n)}let Z=0;C.addEventListener("input",k=>{k.isComposing||(clearTimeout(Z),Z=setTimeout(()=>Q(C.value),120))});let Ue=()=>{let k=C.selectionStart,$=r.slides.findIndex(O=>k>=O.start&&k<=O.end+1);$>=0&&$!==s&&(s=$,a=i[$]?.steps??0,L())};C.addEventListener("keyup",Ue),C.addEventListener("click",Ue),p.addEventListener("dblclick",k=>{if(t.editable===!1||document.fullscreenElement)return;let $=k.target.closest("[data-edit]");if(!$)return;let[O,z]=$.dataset.edit.split("-").map(Number);$.contentEditable="true",$.focus();let j=R=>{$.removeEventListener("keydown",W),$.removeEventListener("blur",q),$.contentEditable="false";let ee=De($);R&&ee!==n.slice(O,z)?Q(n.slice(0,O)+ee+n.slice(z)):le()},W=R=>{R.isComposing||(R.key==="Enter"&&!R.shiftKey&&(R.preventDefault(),j(!0)),R.key==="Escape"&&(R.preventDefault(),j(!1)))},q=()=>j(!0);$.addEventListener("keydown",W),$.addEventListener("blur",q)});let Ge=k=>k.target.closest(".deck-slide.is-shown [data-go]");e.addEventListener("keydown",k=>{let $=k.target;if($.isContentEditable||$===C||$.tagName==="BUTTON"&&(k.key===" "||k.key==="Enter")){(k.metaKey||k.ctrlKey)&&k.key==="s"&&(k.preventDefault(),t.onSave?.(n));return}let O=Ge(k);if(O&&k.key==="Enter"){k.preventDefault(),M(Number(O.dataset.go));return}let z=c==="rtl"?"ArrowLeft":"ArrowRight",j=c==="rtl"?"ArrowRight":"ArrowLeft";if(k.altKey||k.ctrlKey||k.metaKey){(k.metaKey||k.ctrlKey)&&k.key==="s"&&(k.preventDefault(),t.onSave?.(n));return}let q={[z]:()=>T(1),[j]:()=>T(-1),ArrowDown:()=>T(1),ArrowUp:()=>T(-1),PageDown:()=>T(1),PageUp:()=>T(-1)," ":()=>T(1),Home:()=>M(0),End:()=>M(i.length-1,i.at(-1)?.steps??0),f:Y,p:()=>F("is-presenting"),o:()=>F("is-overview"),e:()=>F("is-editing")}[k.key];q&&(k.preventDefault(),q())}),p.addEventListener("click",k=>{let $=Ge(k);$&&!e.classList.contains("is-editing")&&!e.classList.contains("is-overview")&&(k.stopPropagation(),M(Number($.dataset.go)))},!0),p.addEventListener("click",k=>{document.fullscreenElement&&!k.target.closest("a, button, input")&&T(1)});let Ve=0;p.addEventListener("touchstart",k=>{Ve=k.touches[0].clientX},{passive:!0}),p.addEventListener("touchend",k=>{let $=k.changedTouches[0].clientX-Ve;Math.abs($)>50&&T($<0==(c!=="rtl")?1:-1)}),d.addEventListener("change",()=>{H(),J()});let At=setInterval(()=>{let k=Math.floor((Date.now()-h)/1e3);I.textContent=e.classList.contains("is-presenting")?`${String(Math.floor(k/60)).padStart(2,"0")}:${String(k%60).padStart(2,"0")}`:""},1e3);H(),J(),le(),document.fonts?.ready.then(()=>ce());let Ke={root:e,stage:p,get source(){return n},get deck(){return r},get at(){return s},get scheme(){return m},get kit(){return U.kit},get kitProblems(){return X},lang:o,dir:c,slides:()=>i.map(({element:k})=>k),setSource:Q,go:M,toggle:F,present:Y,fitAll:ce,setScheme:k=>{m=k,J()},destroy:()=>clearInterval(At)};return Ke}function De(e){let t="";for(let n of e.childNodes)if(n.nodeType===Node.TEXT_NODE)t+=(n.textContent??"").replace(/([*_`[\]\\])/g,"\\$1");else if(n instanceof HTMLElement){let r=De(n);t+={STRONG:`**${r}**`,B:`**${r}**`,EM:`*${r}*`,I:`*${r}*`,CODE:`\`${n.textContent}\``,DEL:`~~${r}~~`,BR:`
|
|
33
|
+
`,A:`[${r}](${n.getAttribute("href")??""})`}[n.tagName]??r}return t.replace(/ /g," ").replace(/\n+$/,"")}var Ne="0.4.0";var Be='<script type="text/markdown" id="deck">',tn="<\/script>",gt=e=>e.replace(/<(\\*)(\/?script)/gi,"<\\$1$2"),yt=e=>e.replace(/<\\(\\*)(\/?script)/gi,"<$1$2"),me=e=>e.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<"),nn=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");function sn(e){if(/\\<(!--|\/?script)/i.test(e))throw new Error("This code cannot be held in a page as it is.");return e.replace(/<(!--|\/?script)/gi,"\\x3C$1")}function rn(e){let t=e.indexOf(Be);if(t<0)return null;let n=t+Be.length,r=e.slice(n).search(/<\/script/i);return r<0?null:yt(e.slice(n,n+r).replace(/^\n/,"").replace(/\n$/,""))}var bt=(e=Ne)=>`https://cdn.jsdelivr.net/npm/@codename/deck@${e}/dist/deck.js`;function an(e,{title:t="",lang:n="en",dir:r="auto",renderer:s={src:bt()},base:a,generator:i=`deck ${Ne}`}={}){let o=a?` data-base="${me(a)}"`:"",c="src"in s?`<script src="${me(s.src)}"${o}><\/script>`:`<script${o}>${sn(s.code)}<\/script>`;return`<!doctype html>
|
|
34
|
+
<html lang="${me(n)}" dir="${me(r)}">
|
|
29
35
|
<meta charset="utf-8">
|
|
30
36
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
31
|
-
<meta name="generator" content="${
|
|
32
|
-
<title>${
|
|
37
|
+
<meta name="generator" content="${me(i)}">
|
|
38
|
+
<title>${nn(t)}</title>
|
|
33
39
|
<style>#deck{display:block;white-space:pre-wrap;overflow-wrap:anywhere;font:1rem/1.6 ui-monospace,Menlo,Consolas,monospace;max-width:72ch;margin:2rem auto;padding:0 1rem}</style>
|
|
34
40
|
<body>
|
|
35
|
-
${
|
|
36
|
-
${
|
|
37
|
-
${
|
|
41
|
+
${Be}
|
|
42
|
+
${gt(e)}
|
|
43
|
+
${tn}
|
|
38
44
|
${c}
|
|
39
45
|
</html>
|
|
40
|
-
`}var xe=13.333,ze=7.5,st="h1, h2, h3, h4, h5, h6, .deck-h, p:not(.deck-picture), ul, ol, blockquote";function H(e){let t=/rgba?\(\s*([\d.]+)[,\s]+([\d.]+)[,\s]+([\d.]+)/.exec(e);return t?[t[1],t[2],t[3]].map(s=>Math.round(Number(s)).toString(16).padStart(2,"0")).join("").toUpperCase():e.replace("#","").toUpperCase().slice(0,6)||"000000"}async function Tt(e,{PptxGenJS:t,JSZip:s}){let r=new t;r.layout="LAYOUT_WIDE",r.title=e.deck.slides[0]?.title??"",r.rtlMode=e.dir==="rtl";let n=getComputedStyle(e.root),i=h=>h.split(",").map(m=>m.trim().replace(/^["']|["']$/g,"")).find(m=>!/^(ui-|system-ui|-apple|sans-serif|serif|monospace)/.test(m))??"Arial";r.theme={headFontFace:i(n.getPropertyValue("--deck-heading")),bodyFontFace:i(n.getPropertyValue("--deck-body"))};let o={slides:0,charts:0,pictures:0,tables:0,placeholders:0},a=e.dir==="rtl",c=e.slides(),p=new Map,u=[];for(let[h,m]of c.entries()){let b=m.getBoundingClientRect(),y=xe/b.width,S=v=>{let L=v.getBoundingClientRect();return{x:(L.left-b.left)*y,y:(L.top-b.top)*y,w:L.width*y,h:L.height*y}},N=v=>{let L=v.closest(".deck-slot")??v,{x:W,w}=S(L),{y:I,h:C}=S(v),T=getComputedStyle(L),K=parseFloat(T.paddingInlineStart)*y,X=parseFloat(T.paddingInlineEnd)*y;return{x:W+(a?X:K),y:I,w:w-K-X,h:C*1.08}},U=v=>getComputedStyle(v).justifyContent==="center"?"middle":"top",R=v=>Math.round(v*y*72*10)/10,E=getComputedStyle(m),M=m.dataset.layout??"default",q=[...m.querySelectorAll(".deck-slot")],V=q[0]?.firstElementChild,B=V&&V.matches("h1, h2, h3, .deck-h")?V:null,re=e.kit.layouts[M],J=`${re?Ce(re,M,e.lang):M}${m.classList.contains("deck-class-invert")?" (dark)":""}`;if(!p.has(J)){let v=[],L=[...m.querySelectorAll("img.deck-art")].map(C=>C.src),W=L.length&&await ae(L,xe*150,ze*150,!1,E.backgroundColor);W&&(v.push({image:{data:W,x:0,y:0,w:xe,h:ze}}),o.pictures++),B&&v.push({placeholder:{options:{name:"title",type:"title",...N(B),valign:"bottom",margin:0,fontFace:r.theme.headFontFace,color:H(getComputedStyle(B).color),align:a?"right":"left"},text:""}});for(let C of q){let T=S(C),K=B&&C===q[0]?S(B).y+S(B).h:T.y,X=C.firstElementChild&&C.firstElementChild!==B?N(C.firstElementChild):{x:T.x,w:T.w};v.push({placeholder:{options:{name:`body-${C.dataset.slot}`,type:"body",x:X.x,y:K+.08,w:X.w,h:Math.max(.3,T.y+T.h-K-.08),margin:0,valign:U(C),color:H(getComputedStyle(C).color)},text:""}})}let w=[...m.querySelectorAll(".deck-logo")].find(C=>getComputedStyle(C).display!=="none"),I=w&&await ae(w.src,w.clientWidth*3,w.clientHeight*3);w&&I&&(v.push({image:{data:I,...S(w)}}),o.pictures++),r.defineSlideMaster({title:J,background:{color:H(E.backgroundColor)},objects:v,slideNumber:re?.numbered!==!1?{x:a?.3:xe-.9,y:ze-.55,w:.6,h:.3,fontSize:10,color:H(n.getPropertyValue("--deck-muted").trim()||"#666666")}:void 0}),p.set(J,new Set(v.flatMap(C=>C.placeholder?[C.placeholder.options.name]:[])))}let le=p.get(J),F=r.addSlide({masterName:J});o.slides++;let Y=m.querySelector(".deck-image");if(Y){let v=/url\("?(.*?)"?\)/.exec(getComputedStyle(Y).backgroundImage)?.[1],L=v&&await ae(v,Y.clientWidth*2,Y.clientHeight*2,!0);L&&(F.addImage({data:L,...S(Y)}),o.pictures++)}B&&le.has("title")&&(F.addText(Fe(B,{pt:R,rtl:a,lang:e.lang}),{placeholder:"title"}),o.placeholders++);for(let v of q){let L=[...v.children].filter(w=>w!==B);if(L.length>0&&L.every(w=>w.matches(st))&&le.has(`body-${v.dataset.slot}`)){F.addText(L.flatMap(w=>Fe(w,{pt:R,rtl:a,lang:e.lang})),{placeholder:`body-${v.dataset.slot}`,valign:U(v),...rt(v)}),o.placeholders++;continue}for(let w of L){let I=S(w);if(w.matches(st))F.addText(Fe(w,{pt:R,rtl:a,lang:e.lang}),{...N(w),valign:"top",margin:0,...rt(v)});else if(w.matches("pre"))F.addText(w.textContent?.replace(/\n$/,"")??"",{...I,fontFace:"Consolas",fontSize:R(parseFloat(getComputedStyle(w).fontSize)),color:H(getComputedStyle(w).color),fill:{color:H(getComputedStyle(w).backgroundColor)},valign:"top",margin:6,rtlMode:!1,align:"left"});else if(w.matches(".deck-table"))It(F,w,I,{pt:R,rtl:a,lang:e.lang}),o.tables++;else if(w.matches(".deck-echarts")&&w.chart){let C=w.chart;zt(r,F,C,I,{pt:R,rtl:a,lang:e.lang,ink:H(E.color)})?o.charts++:(F.addImage({data:await ae(`data:image/svg+xml;charset=utf-8,${encodeURIComponent(C.renderToSVGString())}`,I.w/y*2,I.h/y*2),...I}),o.pictures++)}else{let C=w.querySelector("img");if(C){C.complete||(C.loading="eager",await C.decode().catch(()=>{}));let T=await ae(C.src,C.clientWidth*2,C.clientHeight*2);T&&(F.addImage({data:T,...S(C),altText:C.alt}),o.pictures++)}}}}let G=e.deck.slides[h]?.notes;G&&F.addNotes(G);let oe=e.deck.slides[h]?.settings??{};u.push(String(oe.transition??e.deck.settings.transition??"none").split("|")[0].trim())}let l=await s.loadAsync(await r.write({outputType:"arraybuffer",compression:!0}));for(let[h,m]of u.entries()){let b=`ppt/slides/slide${h+1}.xml`,y=await l.file(b)?.async("string");!y||m==="none"||l.file(b,y.replace(/<\/p:clrMapOvr>|(?=<p:timing|<\/p:sld>)/,S=>`${S}${Ft(m,a)}`))}let d=await l.file("ppt/theme/theme1.xml")?.async("string");if(d){let h=y=>H(n.getPropertyValue(`--deck-${y}`).trim()),m=[h("fill"),...[2,3,4,5,6].map(y=>h(`series-${y}`))],b=`<a:clrScheme name="Deck"><a:dk1><a:srgbClr val="${h("ink")}"/></a:dk1><a:lt1><a:srgbClr val="${h("paper")}"/></a:lt1><a:dk2><a:srgbClr val="${h("ink")}"/></a:dk2><a:lt2><a:srgbClr val="${h("soft")}"/></a:lt2>${m.map((y,S)=>`<a:accent${S+1}><a:srgbClr val="${y}"/></a:accent${S+1}>`).join("")}<a:hlink><a:srgbClr val="${h("primary")}"/></a:hlink><a:folHlink><a:srgbClr val="${h("primary")}"/></a:folHlink></a:clrScheme>`;l.file("ppt/theme/theme1.xml",d.replace(/<a:clrScheme[\s\S]*?<\/a:clrScheme>/,b))}return{blob:await l.generateAsync({type:"blob",compression:"DEFLATE",mimeType:"application/vnd.openxmlformats-officedocument.presentationml.presentation"}),report:o}}function rt(e){let t=e.firstElementChild,s=t?parseFloat(getComputedStyle(t).marginBlockEnd):0;return{paraSpaceAfter:Math.round(s*.5)}}function Fe(e,t){let s=[],r=(i,o)=>{let a=getComputedStyle(i),c={fontSize:t.pt(parseFloat(a.fontSize)),color:H(a.color),bold:Number(a.fontWeight)>=600,lang:t.lang,rtlMode:t.rtl,align:a.textAlign==="center"?"center":t.rtl?"right":"left",...o},p=Pt(i,c);p.length&&(p[p.length-1].options.breakLine=!0,s.push(...p))},n=(i,o)=>{let a=0;for(let c of i.children){a++;let p=[...c.children].filter(l=>l.matches("ul, ol")),u=c.cloneNode(!0);for(let l of[...u.children])l.matches("ul, ol, input")&&l.remove();c.after(u),r(u,{bullet:i.tagName==="OL"?{type:"number",startAt:a===1?Number(i.getAttribute("start")??1):void 0}:!0,indentLevel:o}),u.remove();for(let l of p)n(l,o+1)}};if(e.matches("ul, ol"))n(e,0);else if(e.matches("blockquote"))for(let i of e.children)r(i,{italic:getComputedStyle(i).fontStyle==="italic"});else r(e,{});return s}function Pt(e,t){let s=[],r=(n,i)=>{if(n.nodeType===Node.TEXT_NODE){let a=(n.textContent??"").replace(/\s+/g," ");a&&s.push({text:a,options:{...i}});return}if(!(n instanceof HTMLElement))return;if(n.tagName==="BR"){s.length&&(s[s.length-1].options.breakLine=!0);return}let o={...i};n.matches("strong, b")&&(o.bold=!0,o.color=H(getComputedStyle(n).color)),n.matches("em, i")&&(o.italic=!0),n.matches("del, s")&&(o.strike="sngStrike"),n.matches("code")&&(o.fontFace="Consolas"),n.matches("a[href]")&&(o.hyperlink={url:n.getAttribute("href")});for(let a of n.childNodes)r(a,o)};for(let n of e.childNodes)r(n,t);return s.length&&(s[0].text=s[0].text.trimStart(),s[s.length-1].text=s[s.length-1].text.trimEnd()),s.filter(n=>n.text)}function It(e,t,s,r){let n=[...t.querySelectorAll("tr")].map(a=>[...a.children].map(c=>{let p=getComputedStyle(c),u=c.getAttribute("data-align");return{text:c.textContent?.trim()??"",options:{bold:c.tagName==="TH",fontSize:r.pt(parseFloat(p.fontSize)),color:H(p.color),lang:r.lang,rtlMode:r.rtl,align:u==="center"?"center":u==="right"!==r.rtl?"right":"left",border:[{type:"none"},{type:"none"},{type:"solid",pt:c.tagName==="TH"?1.5:.75,color:H(p.borderBlockEndColor)},{type:"none"}]}}})),i=[...t.querySelector("tr")?.children??[]].map(a=>a.getBoundingClientRect().width),o=i.reduce((a,c)=>a+c,0)||1;e.addTable(r.rtl?n.map(a=>a.reverse()):n,{...s,colW:(r.rtl?i.reverse():i).map(a=>a/o*s.w),margin:.06})}function zt(e,t,s,r,n){let i=s.getOption(),o=i.series??[];if(!o.length)return!1;let a=new Set(o.map(l=>l.type)),c=(i.color??[]).map(H),p=l=>Array.isArray(l)?Number(l.at(-1)):Number(typeof l=="object"&&l!==null?l.value:l),u={...r,showLegend:o.length>1||a.has("pie"),legendPos:"b",legendFontSize:12,legendColor:n.ink,chartColors:c,showTitle:!!i.title?.[0]?.text,title:i.title?.[0]?.text,titleFontSize:16,titleColor:n.ink,catAxisLabelColor:n.ink,valAxisLabelColor:n.ink,dataLabelColor:n.ink,lang:n.lang};if(a.size===1&&a.has("pie")){let l=o[0],d=Array.isArray(l.radius)&&parseFloat(l.radius[0])>0;return t.addChart(d?e.charts.DOUGHNUT:e.charts.PIE,[{name:l.name??"",labels:l.data.map(g=>g.name),values:l.data.map(p)}],{...u,showPercent:!0,showLegend:!0,holeSize:d?55:void 0}),!0}if([...a].every(l=>l==="bar"||l==="line")){let l=i.yAxis?.[0]?.type==="category",d=(l?i.yAxis:i.xAxis)?.[0]?.data??[],g=b=>[{name:b.name??"",labels:d.map(String),values:b.data.map(p)}],h=b=>b.type==="bar"?e.charts.BAR:b.areaStyle?e.charts.AREA:e.charts.LINE,m={catAxisLabelFontSize:11,valAxisLabelFontSize:11,valGridLine:{color:"D9D9D9",size:.5},catAxisOrientation:n.rtl&&!l?"maxMin":"minMax",valAxisLabelFormatCode:"#,##0"};if(a.size===1){let b=o.flatMap(g);t.addChart(h(o[0]),b,{...u,...m,barDir:l?"bar":"col",barGrouping:o.some(y=>y.stack)?"stacked":"clustered",lineDataSymbol:"circle",lineSize:2})}else t.addChart(o.map(b=>({type:h(b),data:g(b),options:{barDir:l?"bar":"col",chartColors:[c[o.indexOf(b)%c.length]]}})),{...u,...m});return!0}if(a.size===1&&a.has("scatter")){let l=o[0].data.map(d=>Array.isArray(d)?d:[d.value?.[0],d.value?.[1]]);return t.addChart(e.charts.SCATTER,[{name:"X",values:l.map(d=>d[0])},{name:o[0].name??"Y",values:l.map(d=>d[1])}],{...u,lineSize:0,lineDataSymbolSize:8}),!0}if(a.size===1&&a.has("radar")){let l=i.radar?.[0]?.indicator??[];return t.addChart(e.charts.RADAR,o[0].data.map(d=>({name:d.name??"",labels:l.map(g=>g.name),values:d.value})),{...u,showLegend:!0,radarStyle:"standard"}),!0}return!1}function Ft(e,t){let s=r=>`<p:transition spd="med"><p:push dir="${r}"/></p:transition>`;return e==="view-transition"||e==="morph"?'<mc:AlternateContent xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"><mc:Choice xmlns:p159="http://schemas.microsoft.com/office/powerpoint/2015/09/main" Requires="p159"><p:transition spd="slow"><p159:morph option="byObject"/></p:transition></mc:Choice><mc:Fallback><p:transition spd="slow"><p:fade/></p:transition></mc:Fallback></mc:AlternateContent>':e==="slide-left"?s(t?"r":"l"):e==="slide-right"?s(t?"l":"r"):e==="slide-up"?s("u"):e==="slide-down"?s("d"):'<p:transition spd="med"><p:fade/></p:transition>'}async function ae(e,t,s,r=!1,n=""){try{let i=await Promise.all([e].flat().map(async d=>{let g=new Image;return g.crossOrigin="anonymous",g.src=d,await g.decode(),g})),o=i[0],a=document.createElement("canvas");a.width=Math.max(1,Math.round(t)),a.height=Math.max(1,Math.round(s));let c=a.getContext("2d"),p=o.naturalWidth||t,u=o.naturalHeight||s,l=r?Math.max(a.width/p,a.height/u):Math.min(a.width/p,a.height/u);if(!n)c.drawImage(o,(a.width-p*l)/2,(a.height-u*l)/2,p*l,u*l);else{c.fillStyle=n,c.fillRect(0,0,a.width,a.height);for(let d of i)c.drawImage(d,0,0,a.width,a.height)}return a.toDataURL(n?"image/jpeg":"image/png",.9)}catch{return null}}var De=new Map;function ot(e,t){return De.has(e)||De.set(e,new Promise((s,r)=>{let n=document.createElement("script");n.src=e,n.onload=()=>s(globalThis[t]),n.onerror=r,document.head.append(n)})),De.get(e)}var Re=(e,t,s,r)=>/node_modules\/$/.test(e)?`${e}${t}/${r}`:`${e}${t}@${s}/${r}`;function Dt({base:e,root:t,versions:s={}}){let{echarts:r="6.1.0",pele:n="1.10.0"}=s,i=new Set,o=null;t.addEventListener("deck-scheme",c=>{o=c.detail.colours;for(let p of i)p.chart.setOption(a(p.option,p.box),!0)});let a=(c,p)=>{let u=parseFloat(getComputedStyle(p).fontSize)||16,l=getComputedStyle(p).direction==="rtl",d=Math.round(u*.6),g=(h,m)=>h===void 0?void 0:[h].flat().map(b=>({axisLabel:{color:o?.muted,fontSize:d},axisLine:{lineStyle:{color:o?.line}},splitLine:{lineStyle:{color:o?.line}},nameTextStyle:{color:o?.muted,fontSize:d},...l&&m&&b.type==="category"?{inverse:!0}:{},...l&&!m?{position:"right"}:{},...b}));return{color:o?.series,backgroundColor:"transparent",animation:!matchMedia("(prefers-reduced-motion: reduce)").matches,textStyle:{fontFamily:getComputedStyle(t).getPropertyValue("--deck-body")||"system-ui",color:o?.ink,fontSize:d},...c,title:c.title?{...c.title,textStyle:{color:o?.ink,fontSize:Math.round(u*.8),...c.title?.textStyle}}:void 0,legend:c.legend?{itemWidth:d*1.6,itemHeight:d,...c.legend,textStyle:{color:o?.ink,fontSize:d,...c.legend?.textStyle}}:void 0,grid:{containLabel:!0,left:d,right:d,top:c.title?u*1.8:d,bottom:c.legend?u*1.6:d,...c.grid},xAxis:g(c.xAxis,!0),yAxis:g(c.yAxis,!1),toolbox:void 0,series:[c.series??[]].flat().map(h=>h.type==="pie"?{label:{color:o?.ink,fontSize:d},...h}:h)}};return{async echarts(c,p){let u=JSON.parse(p),l=await ot(Re(e,"echarts",r,"dist/echarts.min.js"),"echarts"),d=document.createElement("div");d.className="deck-chart",d.setAttribute("role","img"),d.setAttribute("aria-label",String(u.title?.text??"")),c.append(d);let g=l.init(d,null,{renderer:"svg",locale:document.documentElement.lang?.startsWith("ja")?"JA":"EN"}),h={chart:g,option:u,box:c};i.add(h),g.setOption(a(u,c)),new ResizeObserver(()=>{g.resize(),g.setOption(a(u,c),!0)}).observe(d),Object.assign(c,{chart:g})},async mermaid(c,p){let u=await ot(Re(e,"pele",n,"dist/pele.global.js"),"pele"),l=getComputedStyle(t).getPropertyValue("--deck-body")||"system-ui, sans-serif",{svg:d}=u.render(p,{fontFamily:l,links:!1,images:!1,autoDirection:!0,maxWidth:Math.max(320,c.clientWidth*1.4)}),g=`--pele-bg:transparent;--pele-fg:${o?.ink};--pele-muted:${o?.muted};--pele-line:${o?.muted};--pele-surface:${o?.soft};--pele-surface-alt:${o?.line};--pele-border:${o?.primary};--pele-accent:${o?.primary};--pele-font:${l.replace(/[<>"]/g,"")}`,h=document.createElement("img");h.alt=p,h.src=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(d.replace(/^(<svg\b[^>]*>)/,`$1<style>svg{${g}}</style>`))}`;let m=document.createElement("div");m.className="deck-diagram",m.append(h),c.append(m)}}}var it=/^(\s*(?:image|background|backgroundImage)\s*:\s*)(['"]?)([^'"\n#]+?)\2(\s*(?:#.*)?)$/gm,at=/(!\[[^\]\n]*\]\()(<[^>\n]+>|[^\s)\n]+)((?:\s+(?:"[^"\n]*"|'[^'\n]*'))?\))/g,Rt=e=>/^data:/i.test(e),qt=e=>/^(https?:)?\/\//i.test(e);function Bt(e){let t="";for(let s=0;s<e.length;s+=32768)t+=String.fromCharCode(...e.subarray(s,s+32768));return btoa(t)}async function Wt(e,t,{web:s=!1,largest:r=8*1024*1024}={}){let n=new Map,i=[...e.matchAll(at)].map(l=>l[2].replace(/^<|>$/g,"")).concat([...e.matchAll(it)].map(l=>l[3].trim())),o=[],a=[],c=[];for(let l of new Set(i)){if(Rt(l)||qt(l)&&!s||/^(#|mailto:|javascript:)/i.test(l))continue;let d=await t(l).catch(()=>null);if(!d||!/^image\/(png|jpeg|gif|webp|avif|svg\+xml)$/.test(d.type)){a.push(l),n.set(l,null);continue}if(d.bytes.length>r){c.push(l),n.set(l,null);continue}n.set(l,`data:${d.type};base64,${Bt(d.bytes)}`),o.push(l)}let p=l=>n.get(l)??null;return{source:e.replace(at,(l,d,g,h)=>{let m=p(g.replace(/^<|>$/g,""));return m?`${d}${m}${h}`:l}).replace(it,(l,d,g,h,m)=>{let b=p(h.trim());return b?`${d}${g}${b}${g}${m}`:l}),inlined:o,missing:a,kept:c}}var _t=/^(`{3,}|~{3,})[ \t]*(deck|slidev|markdown|md)?[ \t]*$/,Ht="layout|transition|class|image|background|clicks|title|level|hide|zoom|theme|colorSchema|lang|themeConfig|paginate|alt";function Ut(e){let t=e.replace(/\r\n?/g,`
|
|
46
|
+
`}var Te=13.333,We=7.5,kt="h1, h2, h3, h4, h5, h6, .deck-h, p:not(.deck-picture), ul, ol, blockquote";function D(e){let t=/rgba?\(\s*([\d.]+)[,\s]+([\d.]+)[,\s]+([\d.]+)/.exec(e);if(t)return[t[1],t[2],t[3]].map(r=>Math.round(Number(r)).toString(16).padStart(2,"0")).join("").toUpperCase();let n=/color\(srgb\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)/.exec(e);return n?[n[1],n[2],n[3]].map(r=>Math.round(Number(r)*255).toString(16).padStart(2,"0")).join("").toUpperCase():e.replace("#","").toUpperCase().slice(0,6)||"000000"}var ie=e=>{let t=/rgba\((?:[^,]*,){3}\s*([\d.]+)\s*\)|\/\s*([\d.]+)\s*\)/.exec(e);return e==="transparent"?0:Number(t?.[1]??t?.[2]??1)};async function on(e,{PptxGenJS:t,JSZip:n}){let r=new t;r.layout="LAYOUT_WIDE",r.title=e.deck.slides[0]?.title??"",r.rtlMode=e.dir==="rtl";let s=getComputedStyle(e.root),a=p=>p.split(",").map(f=>f.trim().replace(/^["']|["']$/g,"")).find(f=>!/^(ui-|system-ui|-apple|sans-serif|serif|monospace)/.test(f))??"Arial";r.theme={headFontFace:a(s.getPropertyValue("--deck-heading")),bodyFontFace:a(s.getPropertyValue("--deck-body"))};let i={slides:0,charts:0,pictures:0,tables:0,placeholders:0,maps:0,figures:0},o=e.dir==="rtl",c=e.slides(),u=new Map,l=[];for(let[p,f]of c.entries()){let y=f.getBoundingClientRect(),g=Te/y.width,w=N=>{let L=N.getBoundingClientRect();return{x:(L.left-y.left)*g,y:(L.top-y.top)*g,w:L.width*g,h:L.height*g}},b=N=>{let L=N.closest(".deck-slot")??N,{x:T,w:M}=w(L),{y:G,h:F}=w(N),Y=getComputedStyle(L),Q=parseFloat(Y.paddingInlineStart)*g,Z=parseFloat(Y.paddingInlineEnd)*g;return{x:T+(o?Z:Q),y:G,w:M-Q-Z,h:F*1.08}},A=async(N,L)=>{if(N.matches(".deck-echarts")&&N.chart){let G=N.chart;pn(r,H,G,L,{pt:S,rtl:o,lang:e.lang,ink:D(C.color)})?i.charts++:(H.addImage({data:await he(`data:image/svg+xml;charset=utf-8,${encodeURIComponent(G.renderToSVGString())}`,L.w/g*2,L.h/g*2),...L}),i.pictures++);return}let T=N.querySelector("img");if(!T)return;T.complete||(T.loading="eager",await T.decode().catch(()=>{}));let M=await he(T.src,T.clientWidth*2,T.clientHeight*2);M&&(H.addImage({data:M,...w(T),altText:T.alt}),i.pictures++)},v=N=>getComputedStyle(N).justifyContent==="center"?"middle":"top",S=N=>Math.round(N*g*72*10)/10,C=getComputedStyle(f),P=f.dataset.layout??"default",E=[...f.querySelectorAll(".deck-slot")],I=E[0]?.firstElementChild,B=I&&I.matches("h1, h2, h3, .deck-h")?I:null,X=e.kit.layouts[P],K=`${X?je(X,P,e.lang):P}${f.classList.contains("deck-class-invert")?" (dark)":""}`;if(!u.has(K)){let N=[],L=[...f.querySelectorAll("img.deck-art")].map(F=>F.src),T=L.length&&await he(L,Te*150,We*150,!1,C.backgroundColor);T&&(N.push({image:{data:T,x:0,y:0,w:Te,h:We}}),i.pictures++),B&&N.push({placeholder:{options:{name:"title",type:"title",...b(B),valign:"bottom",margin:0,fontFace:r.theme.headFontFace,color:D(getComputedStyle(B).color),align:o?"right":"left"},text:""}});for(let F of E){let Y=w(F),Q=B&&F===E[0]?w(B).y+w(B).h:Y.y,Z=F.firstElementChild&&F.firstElementChild!==B?b(F.firstElementChild):{x:Y.x,w:Y.w};N.push({placeholder:{options:{name:`body-${F.dataset.slot}`,type:"body",x:Z.x,y:Q+.08,w:Z.w,h:Math.max(.3,Y.y+Y.h-Q-.08),margin:0,valign:v(F),color:D(getComputedStyle(F).color)},text:""}})}let M=[...f.querySelectorAll(".deck-logo")].find(F=>getComputedStyle(F).display!=="none"),G=M&&await he(M.src,M.clientWidth*3,M.clientHeight*3);M&&G&&(N.push({image:{data:G,...w(M)}}),i.pictures++),r.defineSlideMaster({title:K,background:{color:D(C.backgroundColor)},objects:N,slideNumber:X?.numbered!==!1?{x:o?.3:Te-.9,y:We-.55,w:.6,h:.3,fontSize:10,color:D(s.getPropertyValue("--deck-muted").trim()||"#666666")}:void 0}),u.set(K,new Set(N.flatMap(F=>F.placeholder?[F.placeholder.options.name]:[])))}let J=u.get(K),H=r.addSlide({masterName:K});i.slides++;let U=f.querySelector(".deck-image");if(U){let N=/url\("?(.*?)"?\)/.exec(getComputedStyle(U).backgroundImage)?.[1],L=N&&await he(N,U.clientWidth*2,U.clientHeight*2,!0);L&&(H.addImage({data:L,...w(U)}),i.pictures++);let T=getComputedStyle(U,"::after");T.content!=="none"&&ie(T.backgroundColor)>0&&H.addShape(r.shapes.RECTANGLE,{...w(U),fill:{color:D(T.backgroundColor),transparency:Math.round((1-ie(T.backgroundColor))*100)},line:{type:"none"}})}B&&J.has("title")&&(H.addText(ge(B,{pt:S,rtl:o,lang:e.lang}),{placeholder:"title"}),i.placeholders++);for(let N of E){let L=[...N.children].filter(M=>M!==B);if(L.length>0&&L.every(M=>M.matches(kt))&&J.has(`body-${N.dataset.slot}`)){H.addText(L.flatMap(M=>ge(M,{pt:S,rtl:o,lang:e.lang})),{placeholder:`body-${N.dataset.slot}`,valign:v(N),...xt(N)}),i.placeholders++;continue}for(let M of L){let G=w(M);M.matches(kt)?H.addText(ge(M,{pt:S,rtl:o,lang:e.lang}),{...b(M),valign:"top",margin:0,...xt(N)}):M.matches("pre")?H.addText(M.textContent?.replace(/\n$/,"")??"",{...G,fontFace:"Consolas",fontSize:S(parseFloat(getComputedStyle(M).fontSize)),color:D(getComputedStyle(M).color),fill:{color:D(getComputedStyle(M).backgroundColor)},valign:"top",margin:6,rtlMode:!1,align:"left"}):M.matches(".deck-table")?(wt(H,M,G,{pt:S,rtl:o,lang:e.lang}),i.tables++):M.matches(".deck-mindmap")?(await ln(r,H,M,w,{pt:S,rtl:o,lang:e.lang},A),i.maps++):M.matches(".deck-figure")?(await cn(r,H,M,w,{pt:S,rtl:o,lang:e.lang},A),i.figures++):await A(M,G)}}let le=e.deck.slides[p]?.notes;le&&H.addNotes(le);let ce=e.deck.slides[p]?.settings??{};l.push(String(ce.transition??e.deck.settings.transition??"none").split("|")[0].trim())}let d=await n.loadAsync(await r.write({outputType:"arraybuffer",compression:!0}));for(let[p,f]of l.entries()){let y=`ppt/slides/slide${p+1}.xml`,g=await d.file(y)?.async("string");!g||f==="none"||d.file(y,g.replace(/<\/p:clrMapOvr>|(?=<p:timing|<\/p:sld>)/,w=>`${w}${un(f,o)}`))}let m=await d.file("ppt/theme/theme1.xml")?.async("string");if(m){let p=g=>D(s.getPropertyValue(`--deck-${g}`).trim()),f=[p("fill"),...[2,3,4,5,6].map(g=>p(`series-${g}`))],y=`<a:clrScheme name="Deck"><a:dk1><a:srgbClr val="${p("ink")}"/></a:dk1><a:lt1><a:srgbClr val="${p("paper")}"/></a:lt1><a:dk2><a:srgbClr val="${p("ink")}"/></a:dk2><a:lt2><a:srgbClr val="${p("soft")}"/></a:lt2>${f.map((g,w)=>`<a:accent${w+1}><a:srgbClr val="${g}"/></a:accent${w+1}>`).join("")}<a:hlink><a:srgbClr val="${p("primary")}"/></a:hlink><a:folHlink><a:srgbClr val="${p("primary")}"/></a:folHlink></a:clrScheme>`;d.file("ppt/theme/theme1.xml",m.replace(/<a:clrScheme[\s\S]*?<\/a:clrScheme>/,y))}return{blob:await d.generateAsync({type:"blob",compression:"DEFLATE",mimeType:"application/vnd.openxmlformats-officedocument.presentationml.presentation"}),report:i}}async function ln(e,t,n,r,s,a){let i=n.querySelector(".deck-map-plane"),o=n.querySelector(".deck-map-lines"),c=i.getBoundingClientRect().width/(i.offsetWidth||1),u=r(o),l=Number(o.getAttribute("viewBox")?.split(" ")[2])||1,d=u.w/l;for(let h of o.querySelectorAll("path")){let[p,f,,,,,y,g]=(h.getAttribute("d")?.match(/-?[\d.]+/g)??[]).map((S,C)=>(C%2?u.y:u.x)+Number(S)*d),w=Math.min(p,y),b=Math.min(f,g),A=(p+y)/2-w,v=getComputedStyle(h);t.addShape(e.shapes.CUSTOM_GEOMETRY,{x:w,y:b,w:Math.max(.01,Math.abs(y-p)),h:Math.max(.01,Math.abs(g-f)),line:{color:D(v.stroke),width:Math.round(parseFloat(v.strokeWidth)*d*72*10)/10},points:[{x:p-w,y:f-b},{x:y-w,y:g-b,curve:{type:"cubic",x1:A,y1:f-b,x2:A,y2:g-b}}]})}let m={...s,pt:h=>s.pt(h*c)};for(let h of n.querySelectorAll(".deck-map-node")){let p=getComputedStyle(h),f=r(h),y=p.textAlign==="left"||p.textAlign==="right"?p.textAlign:p.textAlign==="center"?"center":s.rtl?"right":"left",g=h.matches(".has-block")?h.querySelector(".deck-map-words"):h,w=g?ge(g,m).map(P=>({...P,options:{...P.options,align:y}})):[],b=parseFloat(p.borderTopWidth)||0,A=m.pt(parseFloat(p.paddingInlineStart)||0)/72,v=ie(p.backgroundColor)>0?{color:D(p.backgroundColor),transparency:Math.round((1-ie(p.backgroundColor))*100)}:void 0,S=v||b?f.w*.04:f.w*.08,C=y==="left"?f.x:y==="right"?f.x-S:f.x-S/2;if(t.addText(g===h&&w.length?w:"",{x:C,y:f.y,w:f.w+S,h:f.h,margin:[A*72,A*72,0,0],valign:"middle",align:y,wrap:!0,...v||b?{shape:e.shapes.ROUNDED_RECTANGLE,rectRadius:Math.min(f.h/2,m.pt(parseFloat(p.borderTopLeftRadius)||0)/72),fill:v}:{},...b?{line:{color:D(p.borderTopColor),width:Math.round(m.pt(b)*10)/10}}:{}}),g!==h){g&&t.addText(w,{...r(g),margin:0,valign:"middle",align:"center",wrap:!0});for(let P of h.querySelectorAll(".deck-block"))await a(P,r(P))}}}async function cn(e,t,n,r,s,a){let i=c=>s.pt(c)/72,o=c=>parseInt(getComputedStyle(c).zIndex,10)||0;for(let c of[...n.querySelectorAll(".deck-shape")].sort((u,l)=>o(u)-o(l))){let u=getComputedStyle(c),l=r(c),d=c.getBoundingClientRect(),m=ie(u.backgroundColor)>0?{color:D(u.backgroundColor),transparency:Math.round((1-ie(u.backgroundColor))*100)}:void 0,h=["Top","Right","Bottom","Left"].map(g=>({side:g,width:parseFloat(u[`border${g}Width`])||0,colour:u[`border${g}Color`]})).map(g=>({...g,width:ie(g.colour)>0?g.width:0})),p=h.every(g=>Math.abs(g.width-h[0].width)<.1),f=p&&h[0].width>0?{color:D(h[0].colour),width:Math.round(s.pt(h[0].width)*10)/10}:{type:"none"},y=/^polygon\((.*)\)$/.exec(u.clipPath)?.[1];if(y&&(m||p&&h[0].width)){let g=(b,A)=>[...b.replace(/^calc\(|\)$/g,"").matchAll(/([+-]?)\s*([\d.]+)(%|px)?/g)].reduce((v,[,S,C,P])=>v+(S==="-"?-1:1)*(P==="%"?Number(C)/100*A:i(Number(C))),0),w=y.split(/,(?![^(]*\))/).map(b=>b.trim().match(/calc\([^)]*\)|[-\d.]+(?:%|px)?/g)??[]).map(([b="0",A="0"])=>({x:g(b,l.w),y:g(A,l.h)}));t.addShape(e.shapes.CUSTOM_GEOMETRY,{...l,fill:m,line:f,points:[...w,{close:!0}]})}else if(m||f.width){let g=u.borderTopLeftRadius.endsWith("%")?Math.min(d.width,d.height)*parseFloat(u.borderTopLeftRadius)/100:parseFloat(u.borderTopLeftRadius)||0,b=g>=Math.min(d.width,d.height)/2-.5&&Math.abs(d.width-d.height)<1?e.shapes.OVAL:g>0?e.shapes.ROUNDED_RECTANGLE:e.shapes.RECTANGLE;t.addShape(b,{...l,fill:m,line:f,...b===e.shapes.ROUNDED_RECTANGLE?{rectRadius:Math.min(l.h/2,l.w/2,i(g))}:{}})}if(!p)for(let{side:g,width:w,colour:b}of h){if(!w)continue;let A=i(w),v={Top:{x:l.x,y:l.y+A/2,w:l.w,h:0},Bottom:{x:l.x,y:l.y+l.h-A/2,w:l.w,h:0},Left:{x:l.x+A/2,y:l.y,w:0,h:l.h},Right:{x:l.x+l.w-A/2,y:l.y,w:0,h:l.h}}[g];t.addShape(e.shapes.LINE,{...v,line:{color:D(b),width:Math.round(s.pt(w)*10)/10}})}}for(let c of n.querySelectorAll(".deck-words")){if(c.parentElement?.closest(".deck-words")||!c.textContent?.trim())continue;let u=getComputedStyle(c),l=r(c),d=u.textAlign==="center"?"center":u.textAlign==="left"||u.textAlign==="right"?u.textAlign:u.textAlign==="end"!==s.rtl?"right":"left",m=l.w*.08,h=d==="left"?l.x:d==="right"?l.x-m:l.x-m/2;t.addText(ge(c,s).map(p=>({...p,options:{...p.options,align:d}})),{x:h,y:l.y,w:l.w+m,h:l.h,margin:0,valign:c.matches(".deck-shape")?"middle":"top",align:d,wrap:!0})}for(let c of n.querySelectorAll(".deck-table"))wt(t,c,r(c),s);for(let c of n.querySelectorAll(".deck-block"))await a(c,r(c))}function xt(e){let t=e.firstElementChild,n=t?parseFloat(getComputedStyle(t).marginBlockEnd):0;return{paraSpaceAfter:Math.round(n*.5)}}function ge(e,t){let n=[],r=(a,i)=>{let o=getComputedStyle(a),c={fontSize:t.pt(parseFloat(o.fontSize)),color:D(o.color),bold:Number(o.fontWeight)>=600,lang:t.lang,rtlMode:t.rtl,align:o.textAlign==="center"?"center":t.rtl?"right":"left",...i},u=dn(a,c);u.length&&(u[u.length-1].options.breakLine=!0,n.push(...u))},s=(a,i)=>{let o=0;for(let c of a.children){o++;let u=[...c.children].filter(d=>d.matches("ul, ol")),l=c.cloneNode(!0);for(let d of[...l.children])d.matches("ul, ol, input")&&d.remove();c.after(l),r(l,{bullet:a.tagName==="OL"?{type:"number",startAt:o===1?Number(a.getAttribute("start")??1):void 0}:!0,indentLevel:i}),l.remove();for(let d of u)s(d,i+1)}};if(e.matches("ul, ol"))s(e,0);else if(e.matches("blockquote"))for(let a of e.children)r(a,{italic:getComputedStyle(a).fontStyle==="italic"});else r(e,{});return n}function dn(e,t){let n=[],r=(s,a)=>{if(s.nodeType===Node.TEXT_NODE){let o=(s.textContent??"").replace(/\s+/g," ");o&&n.push({text:o,options:{...a}});return}if(!(s instanceof HTMLElement))return;if(s.tagName==="BR"){n.length&&(n[n.length-1].options.breakLine=!0);return}let i={...a};s.matches("strong, b")&&(i.bold=!0,i.color=D(getComputedStyle(s).color)),s.matches("em, i")&&(i.italic=!0),s.matches("del, s")&&(i.strike="sngStrike"),s.matches("code")&&(i.fontFace="Consolas"),s.matches("a[href]")&&(i.hyperlink={url:s.getAttribute("href")});for(let o of s.childNodes)r(o,i)};for(let s of e.childNodes)r(s,t);return n.length&&(n[0].text=n[0].text.trimStart(),n[n.length-1].text=n[n.length-1].text.trimEnd()),n.filter(s=>s.text)}function wt(e,t,n,r){let s=[...t.querySelectorAll("tr")].map(o=>[...o.children].map(c=>{let u=getComputedStyle(c),l=c.getAttribute("data-align");return{text:c.textContent?.trim()??"",options:{bold:c.tagName==="TH",fontSize:r.pt(parseFloat(u.fontSize)),color:D(u.color),lang:r.lang,rtlMode:r.rtl,align:l==="center"?"center":l==="right"!==r.rtl?"right":"left",border:[{type:"none"},{type:"none"},{type:"solid",pt:c.tagName==="TH"?1.5:.75,color:D(u.borderBlockEndColor)},{type:"none"}]}}})),a=[...t.querySelector("tr")?.children??[]].map(o=>o.getBoundingClientRect().width),i=a.reduce((o,c)=>o+c,0)||1;e.addTable(r.rtl?s.map(o=>o.reverse()):s,{...n,colW:(r.rtl?a.reverse():a).map(o=>o/i*n.w),margin:.06})}function pn(e,t,n,r,s){let a=n.getOption(),i=a.series??[];if(!i.length)return!1;let o=new Set(i.map(d=>d.type)),c=(a.color??[]).map(D),u=d=>Array.isArray(d)?Number(d.at(-1)):Number(typeof d=="object"&&d!==null?d.value:d),l={...r,showLegend:i.length>1||o.has("pie"),legendPos:"b",legendFontSize:12,legendColor:s.ink,chartColors:c,showTitle:!!a.title?.[0]?.text,title:a.title?.[0]?.text,titleFontSize:16,titleColor:s.ink,catAxisLabelColor:s.ink,valAxisLabelColor:s.ink,dataLabelColor:s.ink,lang:s.lang};if(o.size===1&&o.has("pie")){let d=i[0],m=Array.isArray(d.radius)&&parseFloat(d.radius[0])>0;return t.addChart(m?e.charts.DOUGHNUT:e.charts.PIE,[{name:d.name??"",labels:d.data.map(h=>h.name),values:d.data.map(u)}],{...l,showPercent:!0,showLegend:!0,holeSize:m?55:void 0}),!0}if([...o].every(d=>d==="bar"||d==="line")){let d=a.yAxis?.[0]?.type==="category",m=(d?a.yAxis:a.xAxis)?.[0]?.data??[],h=y=>[{name:y.name??"",labels:m.map(String),values:y.data.map(u)}],p=y=>y.type==="bar"?e.charts.BAR:y.areaStyle?e.charts.AREA:e.charts.LINE,f={catAxisLabelFontSize:11,valAxisLabelFontSize:11,valGridLine:{color:"D9D9D9",size:.5},catAxisOrientation:s.rtl&&!d?"maxMin":"minMax",valAxisLabelFormatCode:"#,##0"};if(o.size===1){let y=i.flatMap(h);t.addChart(p(i[0]),y,{...l,...f,barDir:d?"bar":"col",barGrouping:i.some(g=>g.stack)?"stacked":"clustered",lineDataSymbol:"circle",lineSize:2})}else t.addChart(i.map(y=>({type:p(y),data:h(y),options:{barDir:d?"bar":"col",chartColors:[c[i.indexOf(y)%c.length]]}})),{...l,...f});return!0}if(o.size===1&&o.has("scatter")){let d=i[0].data.map(m=>Array.isArray(m)?m:[m.value?.[0],m.value?.[1]]);return t.addChart(e.charts.SCATTER,[{name:"X",values:d.map(m=>m[0])},{name:i[0].name??"Y",values:d.map(m=>m[1])}],{...l,lineSize:0,lineDataSymbolSize:8}),!0}if(o.size===1&&o.has("radar")){let d=a.radar?.[0]?.indicator??[];return t.addChart(e.charts.RADAR,i[0].data.map(m=>({name:m.name??"",labels:d.map(h=>h.name),values:m.value})),{...l,showLegend:!0,radarStyle:"standard"}),!0}return!1}function un(e,t){let n=r=>`<p:transition spd="med"><p:push dir="${r}"/></p:transition>`;return e==="view-transition"||e==="morph"?'<mc:AlternateContent xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"><mc:Choice xmlns:p159="http://schemas.microsoft.com/office/powerpoint/2015/09/main" Requires="p159"><p:transition spd="slow"><p159:morph option="byObject"/></p:transition></mc:Choice><mc:Fallback><p:transition spd="slow"><p:fade/></p:transition></mc:Fallback></mc:AlternateContent>':e==="slide-left"?n(t?"r":"l"):e==="slide-right"?n(t?"l":"r"):e==="slide-up"?n("u"):e==="slide-down"?n("d"):'<p:transition spd="med"><p:fade/></p:transition>'}async function he(e,t,n,r=!1,s=""){try{let a=await Promise.all([e].flat().map(async m=>{let h=new Image;return h.crossOrigin="anonymous",h.src=m,await h.decode(),h})),i=a[0],o=document.createElement("canvas");o.width=Math.max(1,Math.round(t)),o.height=Math.max(1,Math.round(n));let c=o.getContext("2d"),u=i.naturalWidth||t,l=i.naturalHeight||n,d=r?Math.max(o.width/u,o.height/l):Math.min(o.width/u,o.height/l);if(!s)c.drawImage(i,(o.width-u*d)/2,(o.height-l*d)/2,u*d,l*d);else{c.fillStyle=s,c.fillRect(0,0,o.width,o.height);for(let m of a)c.drawImage(m,0,0,o.width,o.height)}return o.toDataURL(s?"image/jpeg":"image/png",.9)}catch{return null}}var _e=new Map;function St(e,t){return _e.has(e)||_e.set(e,new Promise((n,r)=>{let s=document.createElement("script");s.src=e,s.onload=()=>n(globalThis[t]),s.onerror=r,document.head.append(s)})),_e.get(e)}var He=(e,t,n,r)=>/node_modules\/$/.test(e)?`${e}${t}/${r}`:`${e}${t}@${n}/${r}`;function fn({base:e,root:t,versions:n={}}){let{echarts:r="6.1.0",pele:s="1.10.0"}=n,a=new Set,i=new Set,o=null;t.addEventListener("deck-scheme",l=>{o=l.detail.colours;for(let d of a)d.chart.setOption(u(d.option,d.box),!0);for(let d of i)d.picture.src=c(d.svg)});let c=l=>{let d=getComputedStyle(t).getPropertyValue("--deck-body")||"system-ui, sans-serif",m=Array.from({length:8},(p,f)=>`--pele-series-${f+1}:${o?.series?.[f%(o?.series?.length||1)]}`).join(";"),h=`--pele-bg:transparent;--pele-fg:${o?.ink};--pele-muted:${o?.muted};--pele-line:${o?.muted};--pele-surface:${o?.soft};--pele-surface-alt:${o?.line};--pele-border:${o?.primary};--pele-accent:${o?.primary};${m};--pele-font:${d.replace(/[<>"]/g,"")}`;return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(l.replace(/^(<svg\b[^>]*>)/,`$1<style>svg{${h}}</style>`))}`},u=(l,d)=>{let m=parseFloat(getComputedStyle(d).fontSize)||16,h=getComputedStyle(d).direction==="rtl",p=Math.round(m*.6),f=(y,g)=>y===void 0?void 0:[y].flat().map(w=>({axisLabel:{color:o?.muted,fontSize:p},axisLine:{lineStyle:{color:o?.line}},splitLine:{lineStyle:{color:o?.line}},nameTextStyle:{color:o?.muted,fontSize:p},...h&&g&&w.type==="category"?{inverse:!0}:{},...h&&!g?{position:"right"}:{},...w}));return{color:o?.series,backgroundColor:"transparent",animation:!matchMedia("(prefers-reduced-motion: reduce)").matches,textStyle:{fontFamily:getComputedStyle(t).getPropertyValue("--deck-body")||"system-ui",color:o?.ink,fontSize:p},...l,title:l.title?{...l.title,textStyle:{color:o?.ink,fontSize:Math.round(m*.8),...l.title?.textStyle}}:void 0,legend:l.legend?{itemWidth:p*1.6,itemHeight:p,...l.legend,textStyle:{color:o?.ink,fontSize:p,...l.legend?.textStyle}}:void 0,grid:{containLabel:!0,left:p,right:p,top:l.title?m*1.8:p,bottom:l.legend?m*1.6:p,...l.grid},xAxis:f(l.xAxis,!0),yAxis:f(l.yAxis,!1),toolbox:void 0,series:[l.series??[]].flat().map(y=>y.type==="pie"?{label:{color:o?.ink,fontSize:p},...y}:y)}};return{async echarts(l,d){let m=JSON.parse(d),h=await St(He(e,"echarts",r,"dist/echarts.min.js"),"echarts"),p=document.createElement("div");p.className="deck-chart",p.setAttribute("role","img"),p.setAttribute("aria-label",String(m.title?.text??"")),l.append(p);let f=h.init(p,null,{renderer:"svg",locale:document.documentElement.lang?.startsWith("ja")?"JA":"EN"}),y={chart:f,option:m,box:l};a.add(y),f.setOption(u(m,l)),new ResizeObserver(()=>{f.resize(),f.setOption(u(m,l),!0)}).observe(p),Object.assign(l,{chart:f})},async mermaid(l,d,m={}){let h=await St(He(e,"pele",s,"dist/pele.global.js"),"pele"),p=getComputedStyle(t).getPropertyValue("--deck-body")||"system-ui, sans-serif",{scale:f,theme:y,...g}=m,{svg:w}=h.render(d,{fontFamily:p,links:!1,images:!1,autoDirection:!0,maxWidth:Math.max(320,l.clientWidth*1.4),...Object.keys(g).length&&{config:g}}),b=document.createElement("img");b.alt=d,b.src=c(w);let A=Number(f);if(A>0&&A<1)for(let S of["max-inline-size","max-block-size"])b.style.setProperty(S,`${A*100}%`);i.add({picture:b,svg:w});let v=document.createElement("div");v.className="deck-diagram",v.append(b),l.append(v)}}}var $t=/^(\s*(?:image|background|backgroundImage)\s*:\s*)(['"]?)([^'"\n#]+?)\2(\s*(?:#.*)?)$/gm,vt=/(!\[[^\]\n]*\]\()(<[^>\n]+>|[^\s)\n]+)((?:\s+(?:"[^"\n]*"|'[^'\n]*'))?\))/g,mn=e=>/^data:/i.test(e),hn=e=>/^(https?:)?\/\//i.test(e);function gn(e){let t="";for(let n=0;n<e.length;n+=32768)t+=String.fromCharCode(...e.subarray(n,n+32768));return btoa(t)}async function yn(e,t,{web:n=!1,largest:r=8*1024*1024}={}){let s=new Map,a=[...e.matchAll(vt)].map(d=>d[2].replace(/^<|>$/g,"")).concat([...e.matchAll($t)].map(d=>d[3].trim())),i=[],o=[],c=[];for(let d of new Set(a)){if(mn(d)||hn(d)&&!n||/^(#|mailto:|javascript:)/i.test(d))continue;let m=await t(d).catch(()=>null);if(!m||!/^image\/(png|jpeg|gif|webp|avif|svg\+xml)$/.test(m.type)){o.push(d),s.set(d,null);continue}if(m.bytes.length>r){c.push(d),s.set(d,null);continue}s.set(d,`data:${m.type};base64,${gn(m.bytes)}`),i.push(d)}let u=d=>s.get(d)??null;return{source:e.replace(vt,(d,m,h,p)=>{let f=u(h.replace(/^<|>$/g,""));return f?`${m}${f}${p}`:d}).replace($t,(d,m,h,p,f)=>{let y=u(p.trim());return y?`${m}${h}${y}${h}${f}`:d}),inlined:i,missing:o,kept:c}}var bn=/^(`{3,}|~{3,})[ \t]*(deck|slidev|markdown|md)?[ \t]*$/,kn="layout|transition|class|image|background|clicks|title|level|hide|zoom|theme|colorSchema|lang|themeConfig|paginate|alt";function xn(e){let t=e.replace(/\r\n?/g,`
|
|
41
47
|
`).split(`
|
|
42
|
-
`),
|
|
43
|
-
`),
|
|
44
|
-
$1---`),
|
|
48
|
+
`),n=[];for(let c=0;c<t.length;c++){let u=bn.exec(t[c]);if(!u)continue;let l=u[1],d=c+1,m=!1,h=[];for(;d<t.length;d++){let p=t[d].trimEnd();if(!m&&p===l)break;/^(`{3,}|~{3,})\s*\S/.test(p)&&!m?m=!0:m&&/^(`{3,}|~{3,})\s*$/.test(p)&&(m=!1),h.push(t[d])}n.push({tag:u[2]??"",body:h}),c=d}let r=n.find(c=>c.tag==="deck")??n.find(c=>c.body.filter(u=>/^---\s*$/.test(u)).length>=2);if(!r)return null;let s=[];r.tag!=="deck"&&s.push(`fenced as ${r.tag||"nothing"}`);let a=r.body.join(`
|
|
49
|
+
`),i=(c,u,l)=>{let d=a.replace(u,l);d!==a&&(s.push(c),a=d)};i("settings after an empty line",new RegExp(`^---[ \\t]*\\n\\s*\\n((?:(?:${kn})\\s*:.*\\n(?:[ \\t]+\\S.*\\n)*)+)---[ \\t]*$`,"gm"),`---
|
|
50
|
+
$1---`),i("steps without empty lines",/^[ \t]*(<\/?v-clicks?>)[ \t]*$/gm,`
|
|
45
51
|
$1
|
|
46
|
-
`);let a
|
|
47
|
-
${
|
|
52
|
+
`);let o=a.replace(/^```json[ \t]*\n([\s\S]*?)^```/gm,(c,u)=>u.includes('"series"')?`\`\`\`echarts
|
|
53
|
+
${u}\`\`\``:c);return o!==a&&(s.push("a chart fenced as json"),a=o),i("words after a slot marker",/^::([\w-]+)::[ \t]+(\S.*)$/gm,`::$1::
|
|
48
54
|
|
|
49
|
-
$2`),{source:
|
|
55
|
+
$2`),{source:a,mended:s}}export{de as CORNERS,Fe as LOOKS,$e as STANDARD,Ne as VERSION,oe as contrast,en as createDeck,xn as deckIn,fn as defaultBlocks,gt as escape,nt as inferLayout,yn as inlinePictures,je as labelOf,Le as layoutOf,He as libraryAt,et as logoOf,De as markdownOf,ve as mergeKits,we as parseDeck,rn as readDeckFile,Oe as readable,Ee as renderSlide,bt as rendererUrl,V as rgbOf,qe as schemeOf,on as toPptx,tt as tokensFrom,ze as tokensOf,yt as unescape,an as writeDeckFile};
|
|
50
56
|
//# sourceMappingURL=deck.mjs.map
|