@getv.design/embed 0.4.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- /*! @getv.design/embed v0.4.0. Free to use under the vDesign Embed Licence. © 2026 vDesign. https://getv.design/docs/licence/ */
2
- import{a as y}from"./chunks/chunk-Z7CAMO33.js";import"./chunks/chunk-ACYFDE3D.js";var d=["view","edit","play"];async function l(a,i,e){let o=e?.mode;if(!d.includes(o))throw new TypeError(`mount: mode must be one of ${d.join(", ")}; got ${String(o)}.`);if(o==="edit"){let{edit:t}=await import("./edit.js");return t(a,i,e)}let{view:s}=await import("./view.js"),n=await s(a,i,e);if(o==="view")return n;let r;try{r=await n.play(e.page===void 0?{}:{page:e.page})}catch(t){throw n.destroy(),t}return{goTo:t=>r.goTo(t),destroy(){r.destroy(),n.destroy()}}}export{l as mount,y as version};
1
+ /*! @getv.design/embed v0.5.1. Free to use under the vDesign Embed Licence. © 2026 vDesign. https://getv.design/docs/licence/ */
2
+ import{a as y}from"./chunks/chunk-OK6J2L2H.js";import"./chunks/chunk-7K6NORUY.js";var d=["view","edit","play"];async function l(a,i,e){let o=e?.mode;if(!d.includes(o))throw new TypeError(`mount: mode must be one of ${d.join(", ")}; got ${String(o)}.`);if(o==="edit"){let{edit:t}=await import("./edit.js");return t(a,i,e)}let{view:s}=await import("./view.js"),n=await s(a,i,e);if(o==="view")return n;let r;try{r=await n.play(e.page===void 0?{}:{page:e.page})}catch(t){throw n.destroy(),t}return{goTo:t=>r.goTo(t),destroy(){r.destroy(),n.destroy()}}}export{l as mount,y as version};
@@ -1,2 +1,2 @@
1
- /*! @getv.design/embed v0.4.0. Free to use under the vDesign Embed Licence. © 2026 vDesign. https://getv.design/docs/licence/ */
2
- import{a as f,b as p,d as u}from"./chunks/chunk-TQVHSS5W.js";import{e as F}from"./chunks/chunk-WZMAP7VR.js";import"./chunks/chunk-RYQFBGKS.js";import"./chunks/chunk-JWSC2HIX.js";import"./chunks/chunk-Z7CAMO33.js";import"./chunks/chunk-ACYFDE3D.js";function I(l,t={}){let o=l.renderer.rules,s=o.fence,i=new WeakMap;o.fence=(n,c,k,d,g)=>{let e=n[c];if(!e||!p(e.info))return s?s(n,c,k,d,g):"";let r=t.idPrefix;r||(r=i.get(n)??f(),i.set(n,r));let{resolveSrc:a,...w}=t;return u(e.content,e.info,{...w,idPrefix:r,...e.attrs?{attributes:e.attrs}:{},...a?{resolveSrc:m=>a(m,d)}:{}})}}var b=I;export{F as createRenderer,b as default,I as vdesignMarkdownIt};
1
+ /*! @getv.design/embed v0.5.1. Free to use under the vDesign Embed Licence. © 2026 vDesign. https://getv.design/docs/licence/ */
2
+ import{a as f,b as p,d as u}from"./chunks/chunk-VL77CJOG.js";import{e as F}from"./chunks/chunk-OQXGXTNC.js";import"./chunks/chunk-EFCLQF2H.js";import"./chunks/chunk-OMFQR6TE.js";import"./chunks/chunk-OK6J2L2H.js";import"./chunks/chunk-7K6NORUY.js";function I(l,t={}){let o=l.renderer.rules,s=o.fence,i=new WeakMap;o.fence=(n,c,k,d,g)=>{let e=n[c];if(!e||!p(e.info))return s?s(n,c,k,d,g):"";let r=t.idPrefix;r||(r=i.get(n)??f(),i.set(n,r));let{resolveSrc:a,...w}=t;return u(e.content,e.info,{...w,idPrefix:r,...e.attrs?{attributes:e.attrs}:{},...a?{resolveSrc:m=>a(m,d)}:{}})}}var b=I;export{F as createRenderer,b as default,I as vdesignMarkdownIt};
package/dist/markdown.js CHANGED
@@ -1,2 +1,2 @@
1
- /*! @getv.design/embed v0.4.0. Free to use under the vDesign Embed Licence. © 2026 vDesign. https://getv.design/docs/licence/ */
2
- import{a as b,b as c,c as d,d as e}from"./chunks/chunk-TQVHSS5W.js";import{e as a}from"./chunks/chunk-WZMAP7VR.js";import"./chunks/chunk-RYQFBGKS.js";import"./chunks/chunk-JWSC2HIX.js";import"./chunks/chunk-Z7CAMO33.js";import"./chunks/chunk-ACYFDE3D.js";export{b as createFenceIds,a as createRenderer,c as isVdFence,d as parseInfo,e as renderFence};
1
+ /*! @getv.design/embed v0.5.1. Free to use under the vDesign Embed Licence. © 2026 vDesign. https://getv.design/docs/licence/ */
2
+ import{a as b,b as c,c as d,d as e}from"./chunks/chunk-VL77CJOG.js";import{e as a}from"./chunks/chunk-OQXGXTNC.js";import"./chunks/chunk-EFCLQF2H.js";import"./chunks/chunk-OMFQR6TE.js";import"./chunks/chunk-OK6J2L2H.js";import"./chunks/chunk-7K6NORUY.js";export{b as createFenceIds,a as createRenderer,c as isVdFence,d as parseInfo,e as renderFence};
package/dist/marked.js CHANGED
@@ -1,2 +1,2 @@
1
- /*! @getv.design/embed v0.4.0. Free to use under the vDesign Embed Licence. © 2026 vDesign. https://getv.design/docs/licence/ */
2
- import{a as t,b as i,d as o}from"./chunks/chunk-TQVHSS5W.js";import{e as f}from"./chunks/chunk-WZMAP7VR.js";import"./chunks/chunk-RYQFBGKS.js";import"./chunks/chunk-JWSC2HIX.js";import"./chunks/chunk-Z7CAMO33.js";import"./chunks/chunk-ACYFDE3D.js";function p(r={}){let s=r.idPrefix??t();return{renderer:{code(e,d){let c=typeof e=="string"?e:e.text,n=typeof e=="string"?d:e.lang;return i(n)?o(c,n??"vd",{...r,idPrefix:s}):!1}}}}var a=p;export{f as createRenderer,a as default,p as vdesignMarked};
1
+ /*! @getv.design/embed v0.5.1. Free to use under the vDesign Embed Licence. © 2026 vDesign. https://getv.design/docs/licence/ */
2
+ import{a as t,b as i,d as o}from"./chunks/chunk-VL77CJOG.js";import{e as f}from"./chunks/chunk-OQXGXTNC.js";import"./chunks/chunk-EFCLQF2H.js";import"./chunks/chunk-OMFQR6TE.js";import"./chunks/chunk-OK6J2L2H.js";import"./chunks/chunk-7K6NORUY.js";function p(r={}){let s=r.idPrefix??t();return{renderer:{code(e,d){let c=typeof e=="string"?e:e.text,n=typeof e=="string"?d:e.lang;return i(n)?o(c,n??"vd",{...r,idPrefix:s}):!1}}}}var a=p;export{f as createRenderer,a as default,p as vdesignMarked};
package/dist/rehype.js CHANGED
@@ -1,2 +1,2 @@
1
- /*! @getv.design/embed v0.4.0. Free to use under the vDesign Embed Licence. © 2026 vDesign. https://getv.design/docs/licence/ */
2
- import{a as h,d as m}from"./chunks/chunk-TQVHSS5W.js";import{e as g}from"./chunks/chunk-WZMAP7VR.js";import"./chunks/chunk-RYQFBGKS.js";import"./chunks/chunk-JWSC2HIX.js";import"./chunks/chunk-Z7CAMO33.js";import"./chunks/chunk-ACYFDE3D.js";function x(e={}){let n,i=()=>e.renderer?Promise.resolve(e.renderer):n??=g({fonts:e.fonts??"exact",...e.fontBase===void 0?{}:{fontBase:e.fontBase}});return async(t,r)=>{let s=r?.path??r?.history?.at(-1);if(e.include&&!e.include(s))return;let o=[];if(v(t,(d,l,a)=>{if(d.type!=="element"||d.tagName!=="pre"||!l)return;let c=d.children?.find(p=>p.type==="element");c?.tagName!=="code"||!F(c)||o.push({parent:l,index:a,code:c})}),o.length===0)return;let u=await i(),f={...e};for(let d of["resolveSrc","fonts","fontBase","include"])delete f[d];let N=e.idPrefix??h(),R=e.resolveSrc??k;for(let{parent:d,index:l,code:a}of o){let c=typeof a.data?.meta=="string"?a.data.meta:"",p=m(y(a),`vd ${c}`,{...f,renderer:u,idPrefix:N,resolveSrc:H=>R(H,s)});d.children[l]={type:"raw",value:p}}}}var B=x;function F(e){let n=e.properties?.className;return(Array.isArray(n)?n:typeof n=="string"?n.split(/\s+/):[]).some(t=>t==="language-vd"||t==="language-vdesign")}function y(e){return e.type==="text"?e.value??"":(e.children??[]).map(y).join("")}function v(e,n,i,t=0){n(e,i,t),e.children?.forEach((r,s)=>v(r,n,e,s))}function k(e,n){let i=globalThis,t=i.process?.getBuiltinModule?.("node:fs"),r=i.process?.getBuiltinModule?.("node:path"),s=i.process?.cwd?.();if(!t||!r||s===void 0||/^[a-z][a-z0-9+.-]*:/i.test(e)||e.includes("\\")||!/\.vd(\.svg)?$/i.test(e))return;let o=n===void 0?s:r.dirname(r.resolve(s,n));try{let u=t.realpathSync(r.resolve(o,e)),f=t.realpathSync(s);return u.startsWith(f+r.sep)?t.readFileSync(u,"utf8"):void 0}catch{return}}export{B as default,x as rehypeVdesign};
1
+ /*! @getv.design/embed v0.5.1. Free to use under the vDesign Embed Licence. © 2026 vDesign. https://getv.design/docs/licence/ */
2
+ import{a as h,d as m}from"./chunks/chunk-VL77CJOG.js";import{e as g}from"./chunks/chunk-OQXGXTNC.js";import"./chunks/chunk-EFCLQF2H.js";import"./chunks/chunk-OMFQR6TE.js";import"./chunks/chunk-OK6J2L2H.js";import"./chunks/chunk-7K6NORUY.js";function x(e={}){let n,i=()=>e.renderer?Promise.resolve(e.renderer):n??=g({fonts:e.fonts??"exact",...e.fontBase===void 0?{}:{fontBase:e.fontBase}});return async(t,r)=>{let s=r?.path??r?.history?.at(-1);if(e.include&&!e.include(s))return;let o=[];if(v(t,(d,l,a)=>{if(d.type!=="element"||d.tagName!=="pre"||!l)return;let c=d.children?.find(p=>p.type==="element");c?.tagName!=="code"||!F(c)||o.push({parent:l,index:a,code:c})}),o.length===0)return;let u=await i(),f={...e};for(let d of["resolveSrc","fonts","fontBase","include"])delete f[d];let N=e.idPrefix??h(),R=e.resolveSrc??k;for(let{parent:d,index:l,code:a}of o){let c=typeof a.data?.meta=="string"?a.data.meta:"",p=m(y(a),`vd ${c}`,{...f,renderer:u,idPrefix:N,resolveSrc:H=>R(H,s)});d.children[l]={type:"raw",value:p}}}}var B=x;function F(e){let n=e.properties?.className;return(Array.isArray(n)?n:typeof n=="string"?n.split(/\s+/):[]).some(t=>t==="language-vd"||t==="language-vdesign")}function y(e){return e.type==="text"?e.value??"":(e.children??[]).map(y).join("")}function v(e,n,i,t=0){n(e,i,t),e.children?.forEach((r,s)=>v(r,n,e,s))}function k(e,n){let i=globalThis,t=i.process?.getBuiltinModule?.("node:fs"),r=i.process?.getBuiltinModule?.("node:path"),s=i.process?.cwd?.();if(!t||!r||s===void 0||/^[a-z][a-z0-9+.-]*:/i.test(e)||e.includes("\\")||!/\.vd(\.svg)?$/i.test(e))return;let o=n===void 0?s:r.dirname(r.resolve(s,n));try{let u=t.realpathSync(r.resolve(o,e)),f=t.realpathSync(s);return u.startsWith(f+r.sep)?t.readFileSync(u,"utf8"):void 0}catch{return}}export{B as default,x as rehypeVdesign};
package/dist/static.js CHANGED
@@ -1,2 +1,2 @@
1
- /*! @getv.design/embed v0.4.0. Free to use under the vDesign Embed Licence. © 2026 vDesign. https://getv.design/docs/licence/ */
2
- import{a as b,b as c,c as d,d as e,e as f,f as g}from"./chunks/chunk-WZMAP7VR.js";import"./chunks/chunk-RYQFBGKS.js";import"./chunks/chunk-JWSC2HIX.js";import{a}from"./chunks/chunk-Z7CAMO33.js";import"./chunks/chunk-ACYFDE3D.js";export{g as approximateRenderer,f as createRenderer,d as designOf,e as outline,b as parse,c as renderSvg,a as version};
1
+ /*! @getv.design/embed v0.5.1. Free to use under the vDesign Embed Licence. © 2026 vDesign. https://getv.design/docs/licence/ */
2
+ import{a as b,b as c,c as d,d as e,e as f,f as g}from"./chunks/chunk-OQXGXTNC.js";import"./chunks/chunk-EFCLQF2H.js";import"./chunks/chunk-OMFQR6TE.js";import{a}from"./chunks/chunk-OK6J2L2H.js";import"./chunks/chunk-7K6NORUY.js";export{g as approximateRenderer,f as createRenderer,d as designOf,e as outline,b as parse,c as renderSvg,a as version};
package/dist/view.js CHANGED
@@ -1,5 +1,5 @@
1
- /*! @getv.design/embed v0.4.0. Free to use under the vDesign Embed Licence. © 2026 vDesign. https://getv.design/docs/licence/ */
2
- import{c as Ct,e as Ye,f as de,g as Ae,h as It,i as Ne}from"./chunks/chunk-RYQFBGKS.js";import{A as At,B as Ke,E as Mt,F as Tt,G as Ot,H as _t,I as We,J as Lt,K as Pt,a as lt,b as ut,c as De,d as pt,e as Be,f as He,g as ht,h as Ue,i as mt,j as gt,k as yt,l as wt,n as xt,p as vt,t as je,u as bt,v as Et,w as St,x as kt,y as Ge,z as Fe}from"./chunks/chunk-JWSC2HIX.js";import{a as wn,b as ft}from"./chunks/chunk-Z7CAMO33.js";import"./chunks/chunk-ACYFDE3D.js";var xn=.8,vn=.2;function qe(e,t){let n=e.createElement("canvas").getContext("2d"),o=At(),l=new Map,a=new Map,g=new Set;function u(d){return`${d.italic?"italic ":""}${d.weight} ${d.size}px ${d.family}`}function S(){l.clear(),a.clear()}return{advance(d,y){if(!n)return o.advance(d,y);let w=u(y),E=`${w}\0${y.letterSpacing}\0${d}`,L=l.get(E);if(L!==void 0)return L;n.font=w;let x=n.measureText(d).width+y.letterSpacing*[...d].length;return l.set(E,x),x},metrics(d){if(!n)return o.metrics(d);let y=u(d),w=a.get(y);if(w)return w;n.font=y;let E=n.measureText("Hxg"),L=E.fontBoundingBoxAscent??d.size*xn,x=E.fontBoundingBoxDescent??d.size*vn,V={ascent:L,descent:x,lineGap:0};return a.set(y,V),V},load(d,y){let w=e.fonts;if(!w||typeof FontFace!="function")return!1;let E=!1;for(let L of Object.values(d.fonts))for(let x of bn(L)){let V=`${L.family}\0${x.src}\0${x.weight??400}\0${x.style??"normal"}`;if(g.has(V))continue;g.add(V);let _=x.src.startsWith("data:")?void 0:y?.(x.src),M={weight:String(x.weight??400),style:x.style??"normal"},H=Q=>{let R=new FontFace(L.family,typeof Q=="string"?`url(${Q})`:En(Q),M);w.add(R),R.load().then(()=>{S(),t?.()},()=>{w.delete(R)})};_===void 0?H(x.src):(E=!0,_.then(H,()=>{}))}return E},invalidate:S,destroy(){S(),g.clear()}}}function bn(e){return(e.faces??[]).flatMap(t=>t.src===void 0?[]:[{...t,src:t.src}])}function En(e){return e instanceof Uint8Array?e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength):e}var ze={x:0,y:0,zoom:1},Dt=.02,Ft=64;function Me(e){return Number.isFinite(e)?Math.min(Math.max(e,Dt),Ft):1}function $e(e,t){return{x:(t.x-e.x)/e.zoom,y:(t.y-e.y)/e.zoom}}function Ze(e,t){return{x:t.x*e.zoom+e.x,y:t.y*e.zoom+e.y}}function Te(e,t,i){let n=Me(e.zoom*i),o=$e(e,t);return{zoom:n,x:t.x-o.x*n,y:t.y-o.y*n}}function ye(e,t,i){return{...e,x:e.x+t,y:e.y+i}}function Xe(e){return`translate(${e.x} ${e.y}) scale(${e.zoom})`}function fe(e,t,i){let n={width:Math.max(1,t.width-i*2),height:Math.max(1,t.height-i*2)};if(e.width<=0||e.height<=0)return ze;let o=Me(Math.min(n.width/e.width,n.height/e.height));return{zoom:o,x:(t.width-e.width*o)/2-(e.x??0)*o,y:(t.height-e.height*o)/2-(e.y??0)*o}}var ne="http://www.w3.org/2000/svg",Nt="vd-viewer-styles",zt=`
1
+ /*! @getv.design/embed v0.5.1. Free to use under the vDesign Embed Licence. © 2026 vDesign. https://getv.design/docs/licence/ */
2
+ import{c as Ct,e as Ye,f as de,g as Ae,h as It,i as Ne}from"./chunks/chunk-EFCLQF2H.js";import{A as At,B as Ke,E as Mt,F as Tt,G as Ot,H as _t,I as We,J as Lt,K as Pt,a as lt,b as ut,c as De,d as pt,e as Be,f as He,g as ht,h as Ue,i as mt,j as gt,k as yt,l as wt,n as xt,p as vt,t as je,u as bt,v as Et,w as St,x as kt,y as Ge,z as Fe}from"./chunks/chunk-OMFQR6TE.js";import{a as wn,b as ft}from"./chunks/chunk-OK6J2L2H.js";import"./chunks/chunk-7K6NORUY.js";var xn=.8,vn=.2;function qe(e,t){let n=e.createElement("canvas").getContext("2d"),o=At(),l=new Map,a=new Map,g=new Set;function u(d){return`${d.italic?"italic ":""}${d.weight} ${d.size}px ${d.family}`}function S(){l.clear(),a.clear()}return{advance(d,y){if(!n)return o.advance(d,y);let w=u(y),E=`${w}\0${y.letterSpacing}\0${d}`,L=l.get(E);if(L!==void 0)return L;n.font=w;let x=n.measureText(d).width+y.letterSpacing*[...d].length;return l.set(E,x),x},metrics(d){if(!n)return o.metrics(d);let y=u(d),w=a.get(y);if(w)return w;n.font=y;let E=n.measureText("Hxg"),L=E.fontBoundingBoxAscent??d.size*xn,x=E.fontBoundingBoxDescent??d.size*vn,V={ascent:L,descent:x,lineGap:0};return a.set(y,V),V},load(d,y){let w=e.fonts;if(!w||typeof FontFace!="function")return!1;let E=!1;for(let L of Object.values(d.fonts))for(let x of bn(L)){let V=`${L.family}\0${x.src}\0${x.weight??400}\0${x.style??"normal"}`;if(g.has(V))continue;g.add(V);let _=x.src.startsWith("data:")?void 0:y?.(x.src),M={weight:String(x.weight??400),style:x.style??"normal"},H=Q=>{let R=new FontFace(L.family,typeof Q=="string"?`url(${Q})`:En(Q),M);w.add(R),R.load().then(()=>{S(),t?.()},()=>{w.delete(R)})};_===void 0?H(x.src):(E=!0,_.then(H,()=>{}))}return E},invalidate:S,destroy(){S(),g.clear()}}}function bn(e){return(e.faces??[]).flatMap(t=>t.src===void 0?[]:[{...t,src:t.src}])}function En(e){return e instanceof Uint8Array?e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength):e}var ze={x:0,y:0,zoom:1},Dt=.02,Ft=64;function Me(e){return Number.isFinite(e)?Math.min(Math.max(e,Dt),Ft):1}function $e(e,t){return{x:(t.x-e.x)/e.zoom,y:(t.y-e.y)/e.zoom}}function Ze(e,t){return{x:t.x*e.zoom+e.x,y:t.y*e.zoom+e.y}}function Te(e,t,i){let n=Me(e.zoom*i),o=$e(e,t);return{zoom:n,x:t.x-o.x*n,y:t.y-o.y*n}}function ye(e,t,i){return{...e,x:e.x+t,y:e.y+i}}function Xe(e){return`translate(${e.x} ${e.y}) scale(${e.zoom})`}function fe(e,t,i){let n={width:Math.max(1,t.width-i*2),height:Math.max(1,t.height-i*2)};if(e.width<=0||e.height<=0)return ze;let o=Me(Math.min(n.width/e.width,n.height/e.height));return{zoom:o,x:(t.width-e.width*o)/2-(e.x??0)*o,y:(t.height-e.height*o)/2-(e.y??0)*o}}var ne="http://www.w3.org/2000/svg",Nt="vd-viewer-styles",zt=`
3
3
  .vd-viewer {
4
4
  position: relative;
5
5
  overflow: hidden;
@@ -98,4 +98,4 @@ import{c as Ct,e as Ye,f as de,g as Ae,h as It,i as Ne}from"./chunks/chunk-RYQFB
98
98
  .vd-viewer--interacting .vd-viewer__page {
99
99
  filter: none;
100
100
  }
101
- `;function $t(e){if(e.getElementById(Nt))return;let t=e.createElement("style");t.id=Nt,t.textContent=zt,e.head.appendChild(t)}function Vt(e){if(!(e===void 0||typeof fetch!="function"))return async(t,i)=>{let n=e(t,i);if(n===void 0)return;let o=await fetch(n);return o.ok?new Uint8Array(await o.arrayBuffer()):void 0}}function Bt(e,t,i,n,o){return t?kn(e,t,i,n,o):Sn(e,i,n)}function Sn(e,t,i){let n=qe(e,i);return{measurer:n,update:o=>{n.load(o,t)},afterPaint:()=>{},destroy:()=>n.destroy()}}var Rt=new WeakMap;function kn(e,t,i,n,o){let l,a,g,u=()=>{if(!l)throw new Error("canvasFonts: update() before measuring");return l};return{measurer:{advance:(d,y)=>u().measurer.advance(d,y),metrics:d=>u().measurer.metrics(d),itemize:d=>u().measurer.itemize(d)},update(d){l&&d.fonts===a||(g?.(),l?.dispose(),l=t.forDocument(d,{...i?{loader:i}:{},...o?{asset:o}:{}}),a=d.fonts,g=l.onChange(n))},afterPaint(){let d=e.fonts;if(!l||!d||typeof FontFace!="function")return;let y=Rt.get(e);y||Rt.set(e,y=new Set);for(let w of l.usedFaces()){if(y.has(w.id))continue;y.add(w.id);let E=new FontFace(w.id,An(w.bytes),{weight:String(w.weight),style:w.style});d.add(E),E.load().catch(()=>d.delete(E))}},destroy(){g?.(),l?.dispose(),l=void 0}}}function An(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}var Mn=.01,Tn=.004,Ht=40,On=16;function Oe(e,t){$t(e.ownerDocument);let i=t.document,n=r=>Bt(e.ownerDocument,r,t.loadFont,()=>{U(i)},Vt(t.resolveAsset)),o=n(t.fonts),l={advance:(r,p)=>o.measurer.advance(r,p),metrics:r=>o.measurer.metrics(r),itemize:r=>o.measurer.itemize?.(r)??[r]};o.update(i);let a=Fe(i),g=()=>t.resolveAsset?{measure:l,resolveAsset:t.resolveAsset}:{measure:l},u=Ke(i,a,g()),S=t.camera??ze,d=t.interactive??!0,y=t.wheel??"always";e.classList.add("vd-viewer"),t.surface&&(e.style.background=t.surface);let w=e.ownerDocument.createElementNS(ne,"svg");w.setAttribute("class","vd-viewer__surface"),w.setAttribute("width","100%"),w.setAttribute("height","100%");let E=e.ownerDocument.createElementNS(ne,"g");E.setAttribute("class","vd-viewer__camera"),E.style.isolation="isolate",w.appendChild(E);let L=e.ownerDocument.createElementNS(ne,"defs");E.appendChild(L);let x=e.ownerDocument.createElementNS(ne,"rect");x.setAttribute("class","vd-viewer__page"),E.appendChild(x),e.appendChild(w);let V=new Map,_=null;function M(){let r=t.sample;return _&&r?r(u,_.timeline,_.t,{doc:i,resolution:a,options:g()}):u}function H(){E.setAttribute("transform",Xe(S))}function Q(r=!0){let p=M();ee(p);let O=u.background!==void 0;T(x,"x",String(u.x)),T(x,"y",String(u.y)),T(x,"width",String(O?u.width:0)),T(x,"height",String(O?u.height:0)),F(x,"fill",u.background??null);let b=new Set,I=x;for(let A of p.items){let N=A.part===void 0?A.id:`${A.id}\0${A.part}`;b.add(N);let C=V.get(N);(!C||C.tagName!==Ut(A))&&(C?.remove(),C=e.ownerDocument.createElementNS(ne,Ut(A)),C.setAttribute("data-vd-id",A.id),V.set(N,C)),Pn(C,A),I.nextSibling!==C&&E.insertBefore(C,I.nextSibling),I=C}for(let[A,N]of V)b.has(A)||(N.remove(),V.delete(A));o.afterPaint(),r&&t.onSceneChange?.(u,i)}let R=new Map;function ee(r){let p=[...r.gradients.map(Tt),...[...new Map(r.items.filter(A=>A.shadows.length>0).map(A=>[A.id,A])).values()].map(A=>_t(A)),...r.clips.map(Mt)],O=new Set(p);for(let[A,N]of R)O.has(A)||(N.remove(),R.delete(A));let b=p.filter(A=>!R.has(A));if(b.length===0)return;[...new DOMParser().parseFromString(`<svg xmlns="${ne}">${b.join("")}</svg>`,"image/svg+xml").documentElement.children].forEach((A,N)=>{let C=e.ownerDocument.importNode(A,!0);L.appendChild(C),R.set(b[N],C)})}function U(r){i=r,o.update(i),a=Fe(i),u=Ke(i,a,g()),Q()}function G(r){let p=e.getBoundingClientRect();return{x:r.clientX-p.left,y:r.clientY-p.top}}let B=0,D=0;function ae(){e.classList.add("vd-viewer--interacting"),D&&clearTimeout(D),D=setTimeout(()=>{D=0,e.classList.remove("vd-viewer--interacting")},180)}function j(){B&&(cancelAnimationFrame(B),B=0),H(),t.onCameraChange?.(S)}function h(r){S=r,j()}function X(r){S=r,ae(),!B&&(B=requestAnimationFrame(()=>{B=0,H(),t.onCameraChange?.(S)}))}let se=null,Y=null,le=!1,ue=d&&y==="always",re=new Map,K=null,ie=()=>{let[r,p]=[...re.values()];return!r||!p?null:{mid:{x:(r.x+p.x)/2,y:(r.y+p.y)/2},distance:Math.hypot(r.x-p.x,r.y-p.y)}},pe=r=>{let p=re.get(r.pointerId);if(!p)return;let O=G(r);if(re.set(r.pointerId,O),re.size===1){X(ye(S,O.x-p.x,O.y-p.y));return}let b=ie();if(K&&b){let I=ye(S,b.mid.x-K.mid.x,b.mid.y-K.mid.y);X(K.distance>0?Te(I,b.mid,b.distance/K.distance):I)}K=b},J=r=>{re.delete(r.pointerId)&&(e.hasPointerCapture(r.pointerId)&&e.releasePointerCapture(r.pointerId),K=ie())},he=r=>{if(y==="modifier"&&!r.ctrlKey&&!r.metaKey)return;r.preventDefault();let p=G(r),O=r.deltaMode===1?On:r.deltaMode===2?e.clientHeight||800:1,b=r.deltaX*O,I=r.deltaY*O;if(r.ctrlKey||r.metaKey){let A=r.ctrlKey?Mn:Tn,N=Math.max(-Ht,Math.min(Ht,I));X(Te(S,p,Math.exp(-N*A)));return}if(r.shiftKey&&b===0){X(ye(S,-I,0));return}X(ye(S,-b,-I))},q=r=>{if(r.pointerType==="touch"){if(!ue)return;r.preventDefault(),re.set(r.pointerId,G(r)),e.setPointerCapture(r.pointerId),K=ie();return}(r.button===1||r.button===0&&le)&&(r.preventDefault(),se=r.pointerId,Y=G(r),e.setPointerCapture(r.pointerId))},ge=r=>{if(r.pointerType==="touch"){pe(r);return}if(se!==r.pointerId||!Y)return;let p=G(r);X(ye(S,p.x-Y.x,p.y-Y.y)),Y=p},ce=r=>{if(r.pointerType==="touch"){J(r);return}se===r.pointerId&&(se=null,Y=null,e.hasPointerCapture(r.pointerId)&&e.releasePointerCapture(r.pointerId))},me=r=>{r.code==="Space"&&(le=!0)},f=r=>{r.code==="Space"&&(le=!1)};ue&&(e.style.touchAction="none"),d&&(e.addEventListener("wheel",he,{passive:!1}),e.addEventListener("pointerdown",q),e.addEventListener("pointermove",ge),e.addEventListener("pointerup",ce),e.addEventListener("pointercancel",ce),e.ownerDocument.addEventListener("keydown",me),e.ownerDocument.addEventListener("keyup",f)),H(),Q();let v={element:e,surface:w,update:U,getDocument:()=>i,getScene:()=>u,setTime(r){r===null&&_===null||(_=r,Q(!1))},getTime:()=>_,getResolution:()=>a,getMeasurer:()=>l,setFonts(r){o.destroy(),o=n(r),U(i)},getCamera:()=>S,setCamera:h,zoomBy(r,p){let O=e.getBoundingClientRect(),b=p??{x:O.width/2,y:O.height/2};h(Te(S,b,r))},fitToContent(r=32){let p=e.getBoundingClientRect();h(fe({x:u.x,y:u.y,width:u.width,height:u.height},{width:p.width||u.width,height:p.height||u.height},r))},screenToDocument:r=>$e(S,r),documentToScreen:r=>Ze(S,r),pointerPoint:G,hitTest(r,p){for(let O=u.items.length-1;O>=0;O--){let b=u.items[O];if(b&&Bn(b,r,Vn/S.zoom)&&(!p||p(b.id)))return b.id}return null},linkAt(r,p){for(let O=u.items.length-1;O>=0;O--){let b=u.items[O];if(b?.kind!=="text"||p&&!p(b.id))continue;let I=b.rotation===0?r:Ge(r,{x:b.x+b.w/2,y:b.y+b.h/2},-b.rotation);for(let A of b.lines){if(I.y<A.y||I.y>A.y+A.h)continue;let N=A.spans.find(C=>I.x>=C.x&&I.x<=C.x+C.w);if(N)return N.style.link}}},itemOf:r=>u.items.find(p=>p.id===r),elementOf:r=>V.get(r),destroy(){d&&(e.removeEventListener("wheel",he),e.removeEventListener("pointerdown",q),e.removeEventListener("pointermove",ge),e.removeEventListener("pointerup",ce),e.removeEventListener("pointercancel",ce),e.ownerDocument.removeEventListener("keydown",me),e.ownerDocument.removeEventListener("keyup",f)),B&&cancelAnimationFrame(B),D&&clearTimeout(D),B=0,D=0,o.destroy(),e.classList.remove("vd-viewer--interacting"),w.remove(),V.clear(),e.classList.remove("vd-viewer")}};return t.autoFit&&v.fitToContent(),v}var _n="vd-clip-";function Ln(e){return _n+e}function Gt(e){return`url(#${Ln(e)})`}function Ut(e){return Lt(e)||e.pose!==void 0?"g":Je(e)}function Je(e){switch(e.kind){case"ellipse":return"ellipse";case"frame":return"rect";case"image":return e.href===void 0?"rect":"image";case"rect":return"rect";case"text":return"text";case"vector":return"path"}}function Pn(e,t){if(e.tagName!=="g"){jt(e,t);return}F(e,"clip-path",t.clip===void 0?null:Gt(t.clip)),e.style.mixBlendMode=t.blend==="normal"?"":t.blend;let i=t.pose;F(e,"opacity",i&&i.opacity<1?String(i.opacity):null);let n=e.firstElementChild;if((!n||n.tagName!==Je(t))&&(n?.remove(),n=e.ownerDocument.createElementNS(ne,Je(t)),e.appendChild(n)),jt(n,{...t,clip:void 0,blend:"normal"}),i){let o=t.rotation===0?"":` ${We(t)}`;T(n,"transform",`${Pt(i)}${o}`),t.kind==="vector"&&Cn(n,t)}}function Cn(e,t){let i=t.pose?.trace;if(i!==void 0&&t.stroke!==void 0){let o=yt(t.contours)+1;T(e,"stroke-dasharray",`${o} ${o}`),T(e,"stroke-dashoffset",String(o*(1-i)))}let n=t.pose?.fillOpacity;F(e,"fill-opacity",n!==void 0&&n<1?String(n):null)}function jt(e,t){switch(F(e,"clip-path",t.clip===void 0?null:Gt(t.clip)),F(e,"transform",t.rotation===0?null:We(t)),e.style.mixBlendMode=t.blend==="normal"?"":t.blend,e.style.filter=t.shadows.length>0?`url(#${Ot}${t.id})`:"",t.kind){case"ellipse":$n(e,t);return;case"frame":In(e,t);return;case"image":Dn(e,t);return;case"rect":zn(e,t);return;case"text":Nn(e,t);return;case"vector":Rn(e,t);return}}function In(e,t){T(e,"class","vd-viewer__page"),T(e,"x",String(t.x)),T(e,"y",String(t.y)),T(e,"width",String(t.w)),T(e,"height",String(t.h)),F(e,"fill",t.background??null)}function Dn(e,t){if(T(e,"x",String(t.x)),T(e,"y",String(t.y)),T(e,"width",String(t.w)),T(e,"height",String(t.h)),F(e,"opacity",t.opacity<1?String(t.opacity):null),t.href===void 0){T(e,"class","vd-viewer__missing"),F(e,"rx",t.radius>0?String(t.radius):null);return}T(e,"href",t.href),T(e,"preserveAspectRatio",Fn[t.fit])}var Fn={cover:"xMidYMid slice",contain:"xMidYMid meet",fill:"none"};function Nn(e,t){F(e,"opacity",t.opacity<1?String(t.opacity):null),T(e,"xml:space","preserve");let i=t.lines.flatMap(o=>o.spans).filter(o=>o.text!==""),n=e.ownerDocument;for(;e.childNodes.length>i.length;)e.lastChild?.remove();for(;e.childNodes.length<i.length;)e.appendChild(n.createElementNS(ne,"tspan"));i.forEach((o,l)=>{let a=e.childNodes[l];a.textContent!==o.text&&(a.textContent=o.text),T(a,"x",String(o.x)),T(a,"y",String(o.y)),T(a,"font-family",o.style.family),T(a,"font-size",String(o.style.size)),T(a,"fill",o.style.fill),F(a,"font-weight",o.style.weight===400?null:String(o.style.weight)),F(a,"font-style",o.style.italic?"italic":null),F(a,"letter-spacing",o.style.letterSpacing===0?null:String(o.style.letterSpacing)),F(a,"data-vd-link",o.style.link??null);let g=[o.style.underline?"underline":"",o.style.strike?"line-through":""].filter(Boolean).join(" ");F(a,"text-decoration",g===""?null:g)})}function zn(e,t){F(e,"class",null),T(e,"x",String(t.x)),T(e,"y",String(t.y)),T(e,"width",String(t.w)),T(e,"height",String(t.h)),T(e,"fill",t.fill),F(e,"rx",t.radius>0?String(t.radius):null),F(e,"stroke",t.stroke??null),F(e,"stroke-width",t.stroke&&t.strokeWidth>0?String(t.strokeWidth):null),F(e,"opacity",t.opacity<1?String(t.opacity):null)}function Kt(e,t){T(e,"fill",t.fill),F(e,"stroke",t.stroke??null),F(e,"stroke-width",t.stroke&&t.strokeWidth>0?String(t.strokeWidth):null),F(e,"opacity",t.opacity<1?String(t.opacity):null)}function $n(e,t){T(e,"cx",String(t.x+t.w/2)),T(e,"cy",String(t.y+t.h/2)),T(e,"rx",String(t.w/2)),T(e,"ry",String(t.h/2)),Kt(e,t)}function Rn(e,t){T(e,"d",t.d),Kt(e,t),F(e,"fill-rule",t.rule==="nonzero"?null:t.rule),F(e,"stroke-linecap",t.cap==="butt"?null:t.cap),F(e,"stroke-linejoin",t.join==="miter"?null:t.join)}function T(e,t,i){e.getAttribute(t)!==i&&e.setAttribute(t,i)}function F(e,t,i){i===null?e.hasAttribute(t)&&e.removeAttribute(t):T(e,t,i)}var Vn=4;function Bn(e,t,i){let n=e.rotation===0?t:Ge(t,{x:e.x+e.w/2,y:e.y+e.h/2},-e.rotation),o=n.x>=e.x&&n.x<=e.x+e.w&&n.y>=e.y&&n.y<=e.y+e.h;if(e.kind==="ellipse"){let l=e.stroke!==void 0?e.strokeWidth/2:0,a=e.w/2+l,g=e.h/2+l;if(a<=0||g<=0)return!1;let u=(n.x-(e.x+e.w/2))/a,S=(n.y-(e.y+e.h/2))/g;return u*u+S*S<=1}if(e.kind==="vector"){let l=e.stroke!==void 0&&e.strokeWidth>0;return wt(e.contours,n,{fill:e.fill!=="none",rule:e.rule,reach:(l?e.strokeWidth/2:0)+i})}return o}function be(e,t){let i=new Map;for(let o of t.items)o.kind==="frame"&&o.w>0&&o.h>0&&i.set(o.id,{id:o.id,x:o.x,y:o.y,w:o.w,h:o.h});let n=e.root.children.flatMap(o=>{let l=o.type==="frame"?i.get(o.id):void 0;return l&&o.type==="frame"?[{...l,skip:o.skip===!0}]:[]});return n.length===0?[{id:null,x:t.x,y:t.y,w:t.width,h:t.height,skip:!1}]:n.every(o=>o.skip)?n.map(o=>({...o,skip:!1})):n}function Wt(e,t){return e.root.children.find(n=>n.type==="frame"&&ut(n,t)!==void 0)?.id}function Yt(e,t){let i=t===void 0?-1:e.findIndex(n=>n.id===t);return i!==-1?i:Math.max(0,e.findIndex(n=>!n.skip))}function Ee(e,t,i){for(let n=t+i;n>=0&&n<e.length;n+=i)if(!e[n]?.skip)return n;return t}function qt(e){return e.filter(t=>!t.skip).length}function Qe(e,t){return e[t]?.skip!==!1?null:e.slice(0,t+1).filter(i=>!i.skip).length}function Zt(e,t){if(!/^\d+$/.test(e))return null;let i=Number(e),n=t.findIndex((o,l)=>Qe(t,l)===i);return n===-1?null:n}function Xt(e,t,i){let n=Wt(e,i),o=t.findIndex(l=>l.id!==null&&l.id===n);return o===-1?null:o}var Hn=et(Et),Un=et(St),Jt=et(kt);function et(e){return`cubic-bezier(${e.join(", ")})`}function Qt(e,t,i,n,o){let l={opacity:i},a=jn(e,t,n,o);if(e==="cut")return{keyframes:t==="enter"?[{visibility:"hidden"},{visibility:"hidden"}]:[{visibility:"visible"},{visibility:"visible"}],easing:"linear"};if(e==="pop"){let g=`${o.x}px ${o.y}px`;l.scale="1",l.transformOrigin=g}else(e==="rise"||e==="drop")&&(l.translate="0 0");return t==="enter"?{keyframes:[a,l],easing:Hn}:{keyframes:[l,a],easing:Un}}function jn(e,t,i,n){switch(e){case"rise":return{opacity:0,translate:`0 ${t==="enter"?i:-i}px`};case"drop":return{opacity:0,translate:`0 ${t==="enter"?-i:i}px`};case"pop":return{opacity:0,scale:String(bt),transformOrigin:`${n.x}px ${n.y}px`};case"fade":case"cut":case"wipe":case"grow":case"count":case"draw":return{opacity:0}}}function en(e,t){let i=t==="forward"?"-100%":"100%",n=t==="forward"?"100%":"-100%";switch(e){case"cut":return null;case"fade":return{still:[{opacity:1},{opacity:0}],live:null,stillOnTop:!0};case"push":return{still:[{translate:"0 0"},{translate:`${i} 0`}],live:[{translate:`${n} 0`},{translate:"0 0"}],stillOnTop:!1};case"slide":return t==="forward"?{still:null,live:[{translate:"100% 0"},{translate:"0 0"}],stillOnTop:!1}:{still:[{translate:"0 0"},{translate:"100% 0"}],live:null,stillOnTop:!0}}}var Gn={enter:"cut",duration:0,steps:[[]],clicks:new Map,scroll:!1};function tt(e){let t=new Map,i=new Map,n=new Map;lt(e.root,(g,u)=>{u&&(i.set(g.id,u.id),n.set(u.id,[...n.get(u.id)??[],g.id]))});let o=gt(e),l=mt(e);for(let[g,u]of Object.entries(e.motion??{})){if(!l.has(g))continue;let S=[[]],d=new Map,y=pt(u);for(let w of u.lines){if(w.id===g||o.get(w.id)!==g)continue;let E=w.go===void 0?void 0:ht(w.go);E&&d.set(w.id,E);let L=w.enter!==void 0?"enter":w.exit!==void 0?"exit":null,x=w.enter??w.exit;L===null||x===void 0||(w.step&&S.push([]),S.at(-1).push({id:w.id,kind:L,effect:x,duration:x==="cut"?0:Be(w.duration,y,He),delay:Be(w.delay,y,0),together:w.together===!0}))}t.set(g,{enter:u.enter??"cut",duration:u.duration??He,steps:S,clicks:d,scroll:u.scroll===!0})}let a=g=>[g,...(n.get(g)??[]).flatMap(u=>a(u))];return{pages:t,parents:i,within:a}}function tn(e,t){let i=t?.id;return(i?e.pages.get(i):void 0)??Gn}function nt(e){let t=0,i=0;return e.map((n,o)=>(t=(o===0?0:n.together?t:i)+n.delay,i=t+n.duration,{build:n,at:t}))}function nn(e){return Math.max(0,...nt(e).map(({build:t,at:i})=>i+t.duration))}function we(e,t){let i=new Set,n=new Set;for(let o of e.steps.flat())n.has(o.id)||(n.add(o.id),o.kind==="enter"&&i.add(o.id));for(let o of e.steps.slice(0,t).flat())o.kind==="enter"?i.delete(o.id):i.add(o.id);return i}function rn(e,t,i){for(let n=i;n!==void 0;n=e.parents.get(n)){let o=t.clicks.get(n);if(o)return{id:n,target:o}}}function on(e,t,i){let n=[...e];for(;n.length>0;){let o=n.pop(),l=t.findIndex(a=>a.id!==null&&a.id===o);if(l!==-1&&l!==i)return{index:l,history:n}}return null}function sn(e,t,i){let n=Me(t.width/Math.max(1,e.w));if(e.h*n<=t.height)return{camera:fe({x:e.x,y:e.y,width:e.w,height:e.h},t,0),top:0,max:0};let o=e.h-t.height/n,l=Math.min(Math.max(0,i),o),a=(t.width-e.w*n)/2-e.x*n;return{camera:{zoom:n,x:a,y:0-(e.y+l)*n},top:l,max:o}}var _e=.9,rt=.1;function an(e,t){return e.deltaMode===1?e.deltaY*16:e.deltaMode===2?e.deltaY*t.height:e.deltaY}var Kn=1500,Wn=2e3,Yn=200,qn=50;function it(e,t){let i=e.ownerDocument;e.classList.add("vd-player"),e.tabIndex=-1;let n=new Set,o=new Set,l=!1,a=Oe(e,{document:t.document,...t.timeline?{sample:t.timeline.sample}:{},interactive:!1,surface:"#000",...t.fonts?{fonts:t.fonts}:{},...t.loadFont?{loadFont:t.loadFont}:{},...t.resolveAsset?{resolveAsset:t.resolveAsset}:{},onSceneChange:()=>{l&&q()}}),g=i.createElementNS(ne,"path");g.setAttribute("class","vd-player__mask"),g.setAttribute("fill","#000"),g.setAttribute("fill-rule","evenodd"),a.surface.appendChild(g);let u=i.createElement("div");u.className="vd-player__counter",u.setAttribute("aria-live","polite"),e.appendChild(u);let S=tt(t.document),d=be(t.document,a.getScene()),y=Yt(d,t.start),w=[],E=0,L=[],x,V=0,_="",M=0,H=0,Q=1,R=new Map,ee,U=0,G,B,D=i.defaultView,ae=()=>typeof a.surface.animate=="function"&&!(D?.matchMedia?.("(prefers-reduced-motion: reduce)").matches??!1),j=()=>tn(S,d[y]),h;function X(){let s=d[y]?.id;if(!t.timeline||!s)return;let c=a.getDocument();return Ue(c.motion?.[s])?t.timeline.of(c,s):void 0}function se(s,c){return Math.min(s.length,...s.steps.filter(m=>m>c))}function Y(){h&&(a.setTime({timeline:h.timeline,t:h.t}),h.timeline.camera&&J())}function le(s){if(!h||(h.frame=0,!h.playing))return;let c=h.last===0?0:s-h.last;h.last=s;let m=se(h.timeline,h.t);h.t=Math.min(m,t.sound?.position()??h.t+c),h.t>=m&&(h.playing=!1,t.sound?.stop()),Y(),h.playing&&(h.frame=D?.requestAnimationFrame(le)??0)}function ue(){if(h){if(!ae()||!D?.requestAnimationFrame){h.t=se(h.timeline,h.t),Y();return}h.playing=!0,h.last=0,t.sound?.play(h.timeline,h.t),h.frame=D.requestAnimationFrame(le)}}function re(){h?.frame&&D?.cancelAnimationFrame(h.frame),h=void 0,t.sound?.stop(),a.setTime(null)}function K(s,c){h={timeline:s,t:c?0:s.length,playing:!1,last:0,frame:0},t.sound?.prepare(a.getDocument(),s),Y(),c&&ue()}function ie(){let s=X();s?(E=j().steps.length,K(s,!0)):p()}function pe(){let s=e.getBoundingClientRect(),c=d[y];return{width:s.width||c?.w||1,height:s.height||c?.h||1}}function J(){let s=d[y];if(!s)return;let c=pe(),m=h?.timeline.camera&&t.timeline?t.timeline.camera(h.timeline,h.t,a.getScene(),{doc:a.getDocument(),resolution:a.getResolution()}):{x:s.x,y:s.y,w:s.w,h:s.h},k=fe({x:m.x,y:m.y,width:m.w,height:m.h},c,0);if(H=0,j().scroll){let P=sn(s,c,M);k=P.camera,M=P.top,H=P.max}Q=k.zoom,a.setCamera(k);let z=m.x*k.zoom+k.x,$=m.y*k.zoom+k.y,W=m.w*k.zoom,oe=m.h*k.zoom;g.setAttribute("d",`M0 0H${c.width}V${c.height}H0ZM${z} ${$}h${W}v${oe}h${-W}Z`),g.dataset.slide=s.id??""}function he(){let s=Qe(d,y),c=qt(d);u.textContent=s===null?"Skipped":`${s} / ${c}`,u.classList.add("vd-player__counter--shown"),G&&clearTimeout(G),G=setTimeout(()=>u.classList.remove("vd-player__counter--shown"),Kn),t.onChange?.(s,c)}function q(){let s=new Set;for(let c of n)for(let m of S.within(c))s.add(m);o=s;for(let c of a.surface.querySelectorAll("[data-vd-hidden]")){let m=c.getAttribute("data-vd-id");(m===null||!s.has(m))&&c.removeAttribute("data-vd-hidden")}for(let c of s)a.elementOf(c)?.setAttribute("data-vd-hidden","")}function ge(s){return S.within(s).flatMap(c=>{let m=a.elementOf(c);return m?[m]:[]})}function ce(s){let c=1/0,m=1/0,k=-1/0,z=-1/0;for(let $ of S.within(s)){let W=a.itemOf($);W&&(c=Math.min(c,W.x),m=Math.min(m,W.y),k=Math.max(k,W.x+W.w),z=Math.max(z,W.y+W.h))}return Number.isFinite(c)?{x:(c+k)/2,y:(m+z)/2}:{x:0,y:0}}function me(){if(!(L.length===0&&!x)){V+=1,E===0&&(E=1),n=we(j(),E),q();for(let s of L)s.cancel();L=[],x?.remove(),x=void 0}}function f(){return L.length===0&&!x?!1:(me(),!0)}function v(s,c){return new Promise(m=>{let k=!1,z=()=>{k||(k=!0,m())};Promise.all(s.map($=>$.finished)).then(z,()=>{k=!0}),setTimeout(()=>{if(!k){for(let $ of s)($.playState==="running"||$.playState==="paused")&&$.finish();z()}},c+qn)})}function r(s,c,m){if(s===y||!d[s])return;let k=j(),z=d[y]?.id;z&&R.set(z,ee===void 0?M:U),O(),y=s;let $=j(),W=d[s]?.id;M=c||!W?0:R.get(W)??0;let oe=m==="forward"?$:k,P=ae()?en(oe.enter,m):null;P&&(x=a.surface.cloneNode(!0),x.classList.add("vd-player__still"),x.setAttribute("aria-hidden","true"),P.stillOnTop?a.surface.after(x):a.surface.before(x)),re();let ke=X();if(J(),ke?(E=$.steps.length,n=new Set,K(ke,!1),c&&h&&(h.t=0),Y()):(E=c?0:$.steps.length,n=we($,E)),q(),he(),!P||!x){c&&ie();return}let Ie={duration:oe.duration,easing:Jt},te=[];P.still&&te.push(x.animate(P.still,{...Ie,fill:"forwards"})),P.live&&te.push(a.surface.animate(P.live,Ie)),L.push(...te);let xe=V;v(te,oe.duration).then(()=>{if(xe===V){L=L.filter(ve=>!te.includes(ve));for(let ve of te)ve.cancel();x?.remove(),x=void 0,c&&ie()}})}function p(){let s=j(),c=s.steps[E];if(c===void 0)return;E+=1;let m=we(s,E);if(c.length===0)return;if(!ae()){n=m,q();return}let k=new Set(c.filter(P=>P.kind==="enter").map(P=>P.id));n=new Set([...we(s,E-1)].filter(P=>!k.has(P))),q();let z=d[y],$=je*Math.min(z?.w??0,z?.h??0),W=V,oe=[];for(let{build:P,at:ke}of nt(c)){let Ie=ce(P.id),te=[];for(let xe of ge(P.id)){let ve=Number(xe.getAttribute("opacity")??1),{keyframes:gn,easing:yn}=Qt(P.effect,P.kind,Number.isFinite(ve)?ve:1,$,Ie);te.push(xe.animate(gn,{duration:P.duration,delay:ke,easing:yn,fill:P.kind==="enter"?"backwards":"forwards"}))}oe.push(...te),P.kind==="exit"&&te.length>0&&v(te,ke+P.duration).then(()=>{if(W===V){n.add(P.id),q();for(let xe of te)xe.cancel()}})}L.push(...oe),v(oe,nn(c)).then(()=>{if(W===V){L=L.filter(P=>!oe.includes(P)),n=m,q();for(let P of oe)P.cancel()}})}function O(){ee!==void 0&&D?.cancelAnimationFrame(ee),ee=void 0}function b(s){if(O(),U=Math.min(Math.max(0,s),H),!ae()||!D?.requestAnimationFrame){M=U,J();return}let c=M,m,k=z=>{m??=z;let $=Math.min(1,(z-m)/Yn);M=c+(U-c)*(1-(1-$)**3),J(),ee=$<1?D.requestAnimationFrame(k):void 0};ee=D.requestAnimationFrame(k)}function I(s,c){if(f())return;let m=ee===void 0?M:U;if(!(s>0?M>=H-.5:M<=.5)){b(m+s*pe().height/Q);return}c||(s>0?C():Z())}function A(s){if(!(!j().scroll||H<=0))switch(s.key){case" ":return s.shiftKey?-_e:_e;case"PageDown":return _e;case"PageUp":return-_e;case"ArrowDown":return rt;case"ArrowUp":return-rt;default:return}}function N(s){let c=Math.min(Math.max(0,s),d.length-1);if(c===y)return;let m=d[y]?.id;m&&w.push(m),r(c,!0,"forward")}function C(){if(!f()){if(h){if(h.playing){h.frame&&D?.cancelAnimationFrame(h.frame),h.playing=!1,t.sound?.stop(),h.t=se(h.timeline,h.t),Y();return}if(h.t<h.timeline.length){ue();return}}if(E<j().steps.length){p();return}N(Ee(d,y,1))}}function Z(){if(f())return;let s=on(w,d,y);if(s){w=s.history,r(s.index,!1,"back");return}r(Ee(d,y,-1),!1,"back")}function Pe(s){switch(s.kind){case"url":t.onLink?.(s.url);return;case"back":Z();return;case"next":N(Ee(d,y,1));return;case"frame":{let c=Xt(a.getDocument(),d,s.id);c===null?C():Re(c,s.id)}}}function Re(s,c){let m=s===y;m||N(s);let k=d[y];if(!k||!j().scroll)return;let z=k.id===c?void 0:a.itemOf(c),$=z?z.y-k.y:0;m?b($):(M=$,J())}function Se(s){let c=d[y];if(!c||s.x<c.x||s.y<c.y||s.x>c.x+c.w||s.y>c.y+c.h)return;let m=W=>!o.has(W),k=a.hitTest(s,m),z=k===null?void 0:rn(S,j(),k);if(z)return z.target;let $=a.linkAt(s,m);return $===void 0?void 0:De($)}let Ce=s=>{if(s.stopPropagation(),s.metaKey||s.ctrlKey||s.altKey)return;let c=s.key,m=A(s);if(m!==void 0){_="",I(m,s.repeat),s.preventDefault();return}if(/^\d$/.test(c))_+=c;else if(c==="Enter"&&_!==""){let k=Zt(_,d);_="",!f()&&k!==null&&N(k)}else if(c==="Escape")_!==""?_="":t.onExit?.();else if(["ArrowRight","ArrowDown","PageDown"," ","Enter"].includes(c))_="",C();else if(["ArrowLeft","ArrowUp","PageUp","Backspace"].includes(c))_="",Z();else if(c==="Home")f()||N(Ee(d,-1,1));else if(c==="End")f()||N(Ee(d,d.length,-1));else return;s.preventDefault()},at=s=>{if(f())return;let c=Se(a.screenToDocument(a.pointerPoint(s)));c?Pe(c):C()},ct=s=>{!j().scroll||H<=0||(s.preventDefault(),!(x||s.ctrlKey||s.metaKey)&&(O(),M=Math.min(Math.max(0,M+an(s,pe())/Q),H),J()))},Ve=s=>{if(e.classList.remove("vd-player--idle"),B&&clearTimeout(B),B=setTimeout(()=>e.classList.add("vd-player--idle"),Wn),!s)return;let c=a.screenToDocument(a.pointerPoint(s));e.classList.toggle("vd-player--link",Se(c)!==void 0)},dt=D&&"ResizeObserver"in D?new D.ResizeObserver(()=>J()):void 0;return dt?.observe(e),e.addEventListener("keydown",Ce),e.addEventListener("click",at),e.addEventListener("pointermove",Ve),e.addEventListener("wheel",ct,{passive:!1}),l=!0,J(),n=X()?new Set:we(j(),0),q(),he(),Ve(),e.focus({preventScroll:!0}),ie(),{viewer:a,index:()=>y,count:()=>d.length,next:C,back:Z,go(s){me(),N(s)},update(s){if(s===a.getDocument())return;me();let c=d[y]?.id;a.update(s),S=tt(s),d=be(s,a.getScene());let m=d.findIndex(z=>z.id===c);y=m===-1?Math.min(y,d.length-1):m,m===-1&&(O(),M=0),re();let k=X();k&&K(k,!1),J(),E=j().steps.length,n=k?new Set:we(j(),E),q()},refit:J,destroy(){V+=1,O(),h?.frame&&D?.cancelAnimationFrame(h.frame),h=void 0,t.sound?.stop();for(let s of L)s.cancel();L=[],x?.remove(),dt?.disconnect(),e.removeEventListener("wheel",ct),e.removeEventListener("keydown",Ce),e.removeEventListener("click",at),e.removeEventListener("pointermove",Ve),G&&clearTimeout(G),B&&clearTimeout(B),g.remove(),u.remove(),a.destroy(),e.classList.remove("vd-player","vd-player--idle","vd-player--link"),e.removeAttribute("tabindex")}}}function cn(e){let t=e,i=new Map,n=typeof URL.createObjectURL=="function"&&typeof URL.revokeObjectURL=="function";return{resolve(o){let l=i.get(o.hash);if(l!==void 0)return l;let a=t.get(o.hash);if(a===void 0)return;if(!n)return xt(o.type,a);let g;try{g=vt(a)}catch{return}let u=URL.createObjectURL(new Blob([g],{type:o.type}));return i.set(o.hash,u),u},replace(o){t=o;for(let[l,a]of i)o.has(l)||(URL.revokeObjectURL(a),i.delete(l))},destroy(){for(let o of i.values())URL.revokeObjectURL(o);i.clear(),t=new Map}}}var ot=["page","content","none"],dn=24;function Le(e){let t=e.getBoundingClientRect();return{width:t.width,height:t.height}}function fn(e,t){let i=t===void 0?void 0:e.itemOf(t);if(!(!i||i.w<=0||i.h<=0))return{x:i.x,y:i.y,width:i.w,height:i.h}}function ln(e,t,i,n){if(i==="none")return;let o=i==="page"?fn(e,n):void 0;if(!o){e.fitToContent(dn);return}let l=Le(t);e.setCamera(fe(o,{width:l.width||o.width,height:l.height||o.height},dn))}function un(e,t,i){let n=fn(e,i);if(!n)return;let o=e.getCamera(),l=Le(t),a=l.width||n.width*o.zoom,g=l.height||n.height*o.zoom;e.setCamera({zoom:o.zoom,x:a/2-(n.x+n.width/2)*o.zoom,y:g/2-(n.y+n.height/2)*o.zoom})}var st=Symbol.for("vdesign.embed.handover");function pn(e){return e[st]}var hn=["exact","browser"],mn=["ready","problems","page","fonts"];async function Zn(e,t){try{let{exactFontsAt:i}=await import("./chunks/fonts.js"),n=i(e);return(await n.ensure(t)).length===0?n:void 0}catch{return}}async function Qr(e,t,i={}){let n=i.fit??"page";if(!ot.includes(n))throw new TypeError(`view: fit must be one of ${ot.join(", ")}; got ${String(n)}.`);let o=i.fonts??"exact";if(!hn.includes(o))throw new TypeError(`view: fonts must be one of ${hn.join(", ")}; got ${String(o)}.`);let l=o==="exact"?It(i.fontBase,ft,e.ownerDocument.baseURI):void 0,a=pn(i),g=await Ye(t),u=a?.page!==void 0&&de(g.document).some(f=>f.id===a.page)?a.page:i.page===void 0?de(g.document)[0]?.id:Ae(g.document,i.page).id,S=a?.exact&&l?await Zn(l,g.document):void 0,d=e.ownerDocument,y=d.defaultView,w=cn(g.blocks),E=g.blocks,L=[...g.problems],x,V=()=>x?[...L,x]:[...L],_=d.createElement("div");_.className="vd-embed",_.style.width="100%",_.style.height="100%",e.appendChild(_);let M=Oe(_,{document:g.document,interactive:i.interactive??!0,wheel:"modifier",resolveAsset:f=>w.resolve(f),...i.surface?{surface:i.surface}:{},...a?{camera:a.camera}:{},...S?{fonts:S.library}:{}}),H={ready:new Set,problems:new Set,page:new Set,fonts:new Set},Q=!1,R=!1,ee=0,U,G,B=S,D=o==="browser"?"browser":void 0,ae;function j(){Q=!0;for(let f of H.ready)f()}function h(){for(let f of H.problems)f(V())}function X(f){D=f;for(let v of H.fonts)v(f)}function se(){return ae??=(async()=>{if(l)try{let{exactFontsAt:f}=await import("./chunks/fonts.js");return f(l)}catch{return}})(),ae}function Y(f){B=void 0,M.setFonts(void 0),U?.fonts(void 0),x=f,h(),X("browser")}async function le(){let f=await se();if(!R){if(!f){Y(Ne([],l?"the fonts chunk would not load":"no fontBase was given and this build has no default"));return}for(;;){let v=M.getDocument(),r=await f.ensure(v);if(R)return;if(r.length>0){Y(Ne(r));return}if(M.getDocument()===v)break}B=f,M.setFonts(f.library),U?.fonts(f),X("exact")}}function ue(){let f=re(u);if(f)for(let v of H.page)v(f)}function re(f){let v=de(M.getDocument()).find(r=>r.id===f);if(v)return v.name===void 0?{id:v.id}:{id:v.id,name:v.name}}let K=()=>ln(M,_,n,u),ie=()=>un(M,_,u);function pe(f){if(R)return;let v=Ae(M.getDocument(),f).id,r=v!==u;u=v,n==="page"?K():ie(),r&&ue()}function J(f){i.onLink?i.onLink(f):y?.open(f,"_blank","noopener,noreferrer")}let he=f=>{if(f.button!==0||U)return;let v=M.linkAt(M.screenToDocument(M.pointerPoint(f)));if(v===void 0)return;let r=De(v);if(r){if(f.preventDefault(),r.kind==="frame"){de(M.getDocument()).some(p=>p.id===r.id)&&pe(r.id);return}J(r.url)}};_.addEventListener("click",he);let q=Le(_),ge=y&&"ResizeObserver"in y?new y.ResizeObserver(()=>{let f=Le(_);f.width===q.width&&f.height===q.height||(q=f,K())}):void 0;ge?.observe(_),a||(n==="none"&&u!==void 0&&i.page!==void 0?ie():K()),j(),S?X("exact"):o==="exact"&&le();let ce={async load(f){if(R)throw new Error("view: this view was destroyed.");let v=++ee,r=await Ye(f),p=B,O=p?await p.ensure(r.document):[];if(G&&await G||R||v!==ee)return;O.length>0&&B===p&&Y(Ne(O)),w.replace(r.blocks),E=r.blocks,M.update(r.document),L=[...r.problems],U?.update(r.document),de(r.document).some(I=>I.id===u)||(u=de(r.document)[0]?.id,n==="page"?K():ie(),ue()),h(),j()},pages:()=>de(M.getDocument()).map(f=>f.name===void 0?{id:f.id}:{id:f.id,name:f.name}),goTo:pe,fit:()=>{R||K()},play(f={}){if(R)return Promise.reject(new Error("view: this view was destroyed."));try{return U?.stop(),Promise.resolve(me(M.getDocument(),f.page))}catch(v){return Promise.reject(v instanceof Error?v:new Error(String(v)))}},async edit(f={}){if(R)throw new Error("view: this view was destroyed.");if(G)throw new Error("view: edit() is already opening an editor.");let v;G=new Promise(p=>v=p);let r=!1;try{let{edit:p}=await import("./edit.js");if(R)throw new Error("view: this view was destroyed.");let O={camera:M.getCamera(),page:u,exact:B!==void 0},b=Ct(M.getDocument(),E,L),I=await p(e,b,{...i,...f,[st]:O});if(R)throw I.destroy(),new Error("view: this view was destroyed.");return r=!0,ce.destroy(),I}finally{G=void 0,v(r)}},on(f,v){if(!mn.includes(f))throw new TypeError(`view: on() takes one of ${mn.join(", ")}; got ${String(f)}.`);let r=H[f];if(r.add(v),f==="ready"&&Q&&queueMicrotask(()=>{r.has(v)&&v()}),f==="problems"&&queueMicrotask(()=>{r.has(v)&&v(V())}),f==="fonts"&&D!==void 0){let p=D;queueMicrotask(()=>{r.has(v)&&v(p)})}return()=>{r.delete(v)}},destroy(){if(!R){R=!0,U?.stop(),_.removeEventListener("click",he),ge?.disconnect(),M.destroy(),w.destroy(),_.remove();for(let f of Object.values(H))f.clear()}}};function me(f,v){let r=v===void 0?u:Ae(f,v).id,p=d.createElement("div");p.className="vd-embed__play",p.style.position="absolute",p.style.inset="0";let O=Z=>Z.stopPropagation();p.addEventListener("wheel",O);let b=d.activeElement;_.appendChild(p);let I=!1,A=()=>{if(I)return;I=!0,U===N&&(U=void 0),C.destroy(),p.removeEventListener("wheel",O);let Z=p.contains(d.activeElement);p.remove(),Z&&b&&"focus"in b&&typeof b.focus=="function"&&b.focus({preventScroll:!0})},N={stop:A,update:Z=>C.update(Z),fonts:Z=>C.viewer.setFonts(Z?.library)},C=it(p,{document:f,resolveAsset:Z=>w.resolve(Z),...B?{fonts:B.library}:{},...r===void 0?{}:{start:r},onExit:A,onLink:J});return U=N,{goTo(Z){if(I)return;let Pe=C.viewer.getDocument(),Re=Ae(Pe,Z).id,Se=be(Pe,C.viewer.getScene()).findIndex(Ce=>Ce.id===Re);Se!==-1&&C.go(Se)},destroy:A}}return ce}export{wn as version,Qr as view};
101
+ `;function $t(e){if(e.getElementById(Nt))return;let t=e.createElement("style");t.id=Nt,t.textContent=zt,e.head.appendChild(t)}function Vt(e){if(!(e===void 0||typeof fetch!="function"))return async(t,i)=>{let n=e(t,i);if(n===void 0)return;let o=await fetch(n);return o.ok?new Uint8Array(await o.arrayBuffer()):void 0}}function Bt(e,t,i,n,o){return t?kn(e,t,i,n,o):Sn(e,i,n)}function Sn(e,t,i){let n=qe(e,i);return{measurer:n,update:o=>{n.load(o,t)},afterPaint:()=>{},destroy:()=>n.destroy()}}var Rt=new WeakMap;function kn(e,t,i,n,o){let l,a,g,u=()=>{if(!l)throw new Error("canvasFonts: update() before measuring");return l};return{measurer:{advance:(d,y)=>u().measurer.advance(d,y),metrics:d=>u().measurer.metrics(d),itemize:d=>u().measurer.itemize(d)},update(d){l&&d.fonts===a||(g?.(),l?.dispose(),l=t.forDocument(d,{...i?{loader:i}:{},...o?{asset:o}:{}}),a=d.fonts,g=l.onChange(n))},afterPaint(){let d=e.fonts;if(!l||!d||typeof FontFace!="function")return;let y=Rt.get(e);y||Rt.set(e,y=new Set);for(let w of l.usedFaces()){if(y.has(w.id))continue;y.add(w.id);let E=new FontFace(w.id,An(w.bytes),{weight:String(w.weight),style:w.style});d.add(E),E.load().catch(()=>d.delete(E))}},destroy(){g?.(),l?.dispose(),l=void 0}}}function An(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}var Mn=.01,Tn=.004,Ht=40,On=16;function Oe(e,t){$t(e.ownerDocument);let i=t.document,n=r=>Bt(e.ownerDocument,r,t.loadFont,()=>{U(i)},Vt(t.resolveAsset)),o=n(t.fonts),l={advance:(r,p)=>o.measurer.advance(r,p),metrics:r=>o.measurer.metrics(r),itemize:r=>o.measurer.itemize?.(r)??[r]};o.update(i);let a=Fe(i),g=()=>t.resolveAsset?{measure:l,resolveAsset:t.resolveAsset}:{measure:l},u=Ke(i,a,g()),S=t.camera??ze,d=t.interactive??!0,y=t.wheel??"always";e.classList.add("vd-viewer"),t.surface&&(e.style.background=t.surface);let w=e.ownerDocument.createElementNS(ne,"svg");w.setAttribute("class","vd-viewer__surface"),w.setAttribute("width","100%"),w.setAttribute("height","100%");let E=e.ownerDocument.createElementNS(ne,"g");E.setAttribute("class","vd-viewer__camera"),E.style.isolation="isolate",w.appendChild(E);let L=e.ownerDocument.createElementNS(ne,"defs");E.appendChild(L);let x=e.ownerDocument.createElementNS(ne,"rect");x.setAttribute("class","vd-viewer__page"),E.appendChild(x),e.appendChild(w);let V=new Map,_=null;function M(){let r=t.sample;return _&&r?r(u,_.timeline,_.t,{doc:i,resolution:a,options:g()}):u}function H(){E.setAttribute("transform",Xe(S))}function Q(r=!0){let p=M();ee(p);let O=u.background!==void 0;T(x,"x",String(u.x)),T(x,"y",String(u.y)),T(x,"width",String(O?u.width:0)),T(x,"height",String(O?u.height:0)),F(x,"fill",u.background??null);let b=new Set,I=x;for(let A of p.items){let N=A.part===void 0?A.id:`${A.id}\0${A.part}`;b.add(N);let C=V.get(N);(!C||C.tagName!==Ut(A))&&(C?.remove(),C=e.ownerDocument.createElementNS(ne,Ut(A)),C.setAttribute("data-vd-id",A.id),V.set(N,C)),Pn(C,A),I.nextSibling!==C&&E.insertBefore(C,I.nextSibling),I=C}for(let[A,N]of V)b.has(A)||(N.remove(),V.delete(A));o.afterPaint(),r&&t.onSceneChange?.(u,i)}let R=new Map;function ee(r){let p=[...r.gradients.map(Tt),...[...new Map(r.items.filter(A=>A.shadows.length>0).map(A=>[A.id,A])).values()].map(A=>_t(A)),...r.clips.map(Mt)],O=new Set(p);for(let[A,N]of R)O.has(A)||(N.remove(),R.delete(A));let b=p.filter(A=>!R.has(A));if(b.length===0)return;[...new DOMParser().parseFromString(`<svg xmlns="${ne}">${b.join("")}</svg>`,"image/svg+xml").documentElement.children].forEach((A,N)=>{let C=e.ownerDocument.importNode(A,!0);L.appendChild(C),R.set(b[N],C)})}function U(r){i=r,o.update(i),a=Fe(i),u=Ke(i,a,g()),Q()}function G(r){let p=e.getBoundingClientRect();return{x:r.clientX-p.left,y:r.clientY-p.top}}let B=0,D=0;function ae(){e.classList.add("vd-viewer--interacting"),D&&clearTimeout(D),D=setTimeout(()=>{D=0,e.classList.remove("vd-viewer--interacting")},180)}function j(){B&&(cancelAnimationFrame(B),B=0),H(),t.onCameraChange?.(S)}function h(r){S=r,j()}function X(r){S=r,ae(),!B&&(B=requestAnimationFrame(()=>{B=0,H(),t.onCameraChange?.(S)}))}let se=null,Y=null,le=!1,ue=d&&y==="always",re=new Map,K=null,ie=()=>{let[r,p]=[...re.values()];return!r||!p?null:{mid:{x:(r.x+p.x)/2,y:(r.y+p.y)/2},distance:Math.hypot(r.x-p.x,r.y-p.y)}},pe=r=>{let p=re.get(r.pointerId);if(!p)return;let O=G(r);if(re.set(r.pointerId,O),re.size===1){X(ye(S,O.x-p.x,O.y-p.y));return}let b=ie();if(K&&b){let I=ye(S,b.mid.x-K.mid.x,b.mid.y-K.mid.y);X(K.distance>0?Te(I,b.mid,b.distance/K.distance):I)}K=b},J=r=>{re.delete(r.pointerId)&&(e.hasPointerCapture(r.pointerId)&&e.releasePointerCapture(r.pointerId),K=ie())},he=r=>{if(y==="modifier"&&!r.ctrlKey&&!r.metaKey)return;r.preventDefault();let p=G(r),O=r.deltaMode===1?On:r.deltaMode===2?e.clientHeight||800:1,b=r.deltaX*O,I=r.deltaY*O;if(r.ctrlKey||r.metaKey){let A=r.ctrlKey?Mn:Tn,N=Math.max(-Ht,Math.min(Ht,I));X(Te(S,p,Math.exp(-N*A)));return}if(r.shiftKey&&b===0){X(ye(S,-I,0));return}X(ye(S,-b,-I))},q=r=>{if(r.pointerType==="touch"){if(!ue)return;r.preventDefault(),re.set(r.pointerId,G(r)),e.setPointerCapture(r.pointerId),K=ie();return}(r.button===1||r.button===0&&le)&&(r.preventDefault(),se=r.pointerId,Y=G(r),e.setPointerCapture(r.pointerId))},ge=r=>{if(r.pointerType==="touch"){pe(r);return}if(se!==r.pointerId||!Y)return;let p=G(r);X(ye(S,p.x-Y.x,p.y-Y.y)),Y=p},ce=r=>{if(r.pointerType==="touch"){J(r);return}se===r.pointerId&&(se=null,Y=null,e.hasPointerCapture(r.pointerId)&&e.releasePointerCapture(r.pointerId))},me=r=>{r.code==="Space"&&(le=!0)},f=r=>{r.code==="Space"&&(le=!1)};ue&&(e.style.touchAction="none"),d&&(e.addEventListener("wheel",he,{passive:!1}),e.addEventListener("pointerdown",q),e.addEventListener("pointermove",ge),e.addEventListener("pointerup",ce),e.addEventListener("pointercancel",ce),e.ownerDocument.addEventListener("keydown",me),e.ownerDocument.addEventListener("keyup",f)),H(),Q();let v={element:e,surface:w,update:U,getDocument:()=>i,getScene:()=>u,setTime(r){r===null&&_===null||(_=r,Q(!1))},getTime:()=>_,getResolution:()=>a,getMeasurer:()=>l,setFonts(r){o.destroy(),o=n(r),U(i)},getCamera:()=>S,setCamera:h,zoomBy(r,p){let O=e.getBoundingClientRect(),b=p??{x:O.width/2,y:O.height/2};h(Te(S,b,r))},fitToContent(r=32){let p=e.getBoundingClientRect();h(fe({x:u.x,y:u.y,width:u.width,height:u.height},{width:p.width||u.width,height:p.height||u.height},r))},screenToDocument:r=>$e(S,r),documentToScreen:r=>Ze(S,r),pointerPoint:G,hitTest(r,p){for(let O=u.items.length-1;O>=0;O--){let b=u.items[O];if(b&&Bn(b,r,Vn/S.zoom)&&(!p||p(b.id)))return b.id}return null},linkAt(r,p){for(let O=u.items.length-1;O>=0;O--){let b=u.items[O];if(b?.kind!=="text"||p&&!p(b.id))continue;let I=b.rotation===0?r:Ge(r,{x:b.x+b.w/2,y:b.y+b.h/2},-b.rotation);for(let A of b.lines){if(I.y<A.y||I.y>A.y+A.h)continue;let N=A.spans.find(C=>I.x>=C.x&&I.x<=C.x+C.w);if(N)return N.style.link}}},itemOf:r=>u.items.find(p=>p.id===r),elementOf:r=>V.get(r),destroy(){d&&(e.removeEventListener("wheel",he),e.removeEventListener("pointerdown",q),e.removeEventListener("pointermove",ge),e.removeEventListener("pointerup",ce),e.removeEventListener("pointercancel",ce),e.ownerDocument.removeEventListener("keydown",me),e.ownerDocument.removeEventListener("keyup",f)),B&&cancelAnimationFrame(B),D&&clearTimeout(D),B=0,D=0,o.destroy(),e.classList.remove("vd-viewer--interacting"),w.remove(),V.clear(),e.classList.remove("vd-viewer")}};return t.autoFit&&v.fitToContent(),v}var _n="vd-clip-";function Ln(e){return _n+e}function Gt(e){return`url(#${Ln(e)})`}function Ut(e){return Lt(e)||e.pose!==void 0?"g":Je(e)}function Je(e){switch(e.kind){case"ellipse":return"ellipse";case"frame":return"rect";case"image":return e.href===void 0?"rect":"image";case"rect":return"rect";case"text":return"text";case"vector":return"path"}}function Pn(e,t){if(e.tagName!=="g"){jt(e,t);return}F(e,"clip-path",t.clip===void 0?null:Gt(t.clip)),e.style.mixBlendMode=t.blend==="normal"?"":t.blend;let i=t.pose;F(e,"opacity",i&&i.opacity<1?String(i.opacity):null);let n=e.firstElementChild;if((!n||n.tagName!==Je(t))&&(n?.remove(),n=e.ownerDocument.createElementNS(ne,Je(t)),e.appendChild(n)),jt(n,{...t,clip:void 0,blend:"normal"}),i){let o=t.rotation===0?"":` ${We(t)}`;T(n,"transform",`${Pt(i)}${o}`),t.kind==="vector"&&Cn(n,t)}}function Cn(e,t){let i=t.pose?.trace;if(i!==void 0&&t.stroke!==void 0){let o=yt(t.contours)+1;T(e,"stroke-dasharray",`${o} ${o}`),T(e,"stroke-dashoffset",String(o*(1-i)))}let n=t.pose?.fillOpacity;F(e,"fill-opacity",n!==void 0&&n<1?String(n):null)}function jt(e,t){switch(F(e,"clip-path",t.clip===void 0?null:Gt(t.clip)),F(e,"transform",t.rotation===0?null:We(t)),e.style.mixBlendMode=t.blend==="normal"?"":t.blend,e.style.filter=t.shadows.length>0?`url(#${Ot}${t.id})`:"",t.kind){case"ellipse":$n(e,t);return;case"frame":In(e,t);return;case"image":Dn(e,t);return;case"rect":zn(e,t);return;case"text":Nn(e,t);return;case"vector":Rn(e,t);return}}function In(e,t){T(e,"class","vd-viewer__page"),T(e,"x",String(t.x)),T(e,"y",String(t.y)),T(e,"width",String(t.w)),T(e,"height",String(t.h)),F(e,"fill",t.background??null)}function Dn(e,t){if(T(e,"x",String(t.x)),T(e,"y",String(t.y)),T(e,"width",String(t.w)),T(e,"height",String(t.h)),F(e,"opacity",t.opacity<1?String(t.opacity):null),t.href===void 0){T(e,"class","vd-viewer__missing"),F(e,"rx",t.radius>0?String(t.radius):null);return}T(e,"href",t.href),T(e,"preserveAspectRatio",Fn[t.fit])}var Fn={cover:"xMidYMid slice",contain:"xMidYMid meet",fill:"none"};function Nn(e,t){F(e,"opacity",t.opacity<1?String(t.opacity):null),T(e,"xml:space","preserve");let i=t.lines.flatMap(o=>o.spans).filter(o=>o.text!==""),n=e.ownerDocument;for(;e.childNodes.length>i.length;)e.lastChild?.remove();for(;e.childNodes.length<i.length;)e.appendChild(n.createElementNS(ne,"tspan"));i.forEach((o,l)=>{let a=e.childNodes[l];a.textContent!==o.text&&(a.textContent=o.text),T(a,"x",String(o.x)),T(a,"y",String(o.y)),T(a,"font-family",o.style.family),T(a,"font-size",String(o.style.size)),T(a,"fill",o.style.fill),F(a,"font-weight",o.style.weight===400?null:String(o.style.weight)),F(a,"font-style",o.style.italic?"italic":null),F(a,"letter-spacing",o.style.letterSpacing===0?null:String(o.style.letterSpacing)),F(a,"data-vd-link",o.style.link??null);let g=[o.style.underline?"underline":"",o.style.strike?"line-through":""].filter(Boolean).join(" ");F(a,"text-decoration",g===""?null:g)})}function zn(e,t){F(e,"class",null),T(e,"x",String(t.x)),T(e,"y",String(t.y)),T(e,"width",String(t.w)),T(e,"height",String(t.h)),T(e,"fill",t.fill),F(e,"rx",t.radius>0?String(t.radius):null),F(e,"stroke",t.stroke??null),F(e,"stroke-width",t.stroke&&t.strokeWidth>0?String(t.strokeWidth):null),F(e,"opacity",t.opacity<1?String(t.opacity):null)}function Kt(e,t){T(e,"fill",t.fill),F(e,"stroke",t.stroke??null),F(e,"stroke-width",t.stroke&&t.strokeWidth>0?String(t.strokeWidth):null),F(e,"opacity",t.opacity<1?String(t.opacity):null)}function $n(e,t){T(e,"cx",String(t.x+t.w/2)),T(e,"cy",String(t.y+t.h/2)),T(e,"rx",String(t.w/2)),T(e,"ry",String(t.h/2)),Kt(e,t)}function Rn(e,t){T(e,"d",t.d),Kt(e,t),F(e,"fill-rule",t.rule==="nonzero"?null:t.rule),F(e,"stroke-linecap",t.cap==="butt"?null:t.cap),F(e,"stroke-linejoin",t.join==="miter"?null:t.join)}function T(e,t,i){e.getAttribute(t)!==i&&e.setAttribute(t,i)}function F(e,t,i){i===null?e.hasAttribute(t)&&e.removeAttribute(t):T(e,t,i)}var Vn=4;function Bn(e,t,i){let n=e.rotation===0?t:Ge(t,{x:e.x+e.w/2,y:e.y+e.h/2},-e.rotation),o=n.x>=e.x&&n.x<=e.x+e.w&&n.y>=e.y&&n.y<=e.y+e.h;if(e.kind==="ellipse"){let l=e.stroke!==void 0?e.strokeWidth/2:0,a=e.w/2+l,g=e.h/2+l;if(a<=0||g<=0)return!1;let u=(n.x-(e.x+e.w/2))/a,S=(n.y-(e.y+e.h/2))/g;return u*u+S*S<=1}if(e.kind==="vector"){let l=e.stroke!==void 0&&e.strokeWidth>0;return wt(e.contours,n,{fill:e.fill!=="none",rule:e.rule,reach:(l?e.strokeWidth/2:0)+i})}return o}function be(e,t){let i=new Map;for(let o of t.items)o.kind==="frame"&&o.w>0&&o.h>0&&i.set(o.id,{id:o.id,x:o.x,y:o.y,w:o.w,h:o.h});let n=e.root.children.flatMap(o=>{if(o.type!=="frame"||o.component===!0)return[];let l=i.get(o.id);return l?[{...l,skip:o.skip===!0}]:[]});return n.length===0?[{id:null,x:t.x,y:t.y,w:t.width,h:t.height,skip:!1}]:n.every(o=>o.skip)?n.map(o=>({...o,skip:!1})):n}function Wt(e,t){return e.root.children.find(n=>n.type==="frame"&&ut(n,t)!==void 0)?.id}function Yt(e,t){let i=t===void 0?-1:e.findIndex(n=>n.id===t);return i!==-1?i:Math.max(0,e.findIndex(n=>!n.skip))}function Ee(e,t,i){for(let n=t+i;n>=0&&n<e.length;n+=i)if(!e[n]?.skip)return n;return t}function qt(e){return e.filter(t=>!t.skip).length}function Qe(e,t){return e[t]?.skip!==!1?null:e.slice(0,t+1).filter(i=>!i.skip).length}function Zt(e,t){if(!/^\d+$/.test(e))return null;let i=Number(e),n=t.findIndex((o,l)=>Qe(t,l)===i);return n===-1?null:n}function Xt(e,t,i){let n=Wt(e,i),o=t.findIndex(l=>l.id!==null&&l.id===n);return o===-1?null:o}var Hn=et(Et),Un=et(St),Jt=et(kt);function et(e){return`cubic-bezier(${e.join(", ")})`}function Qt(e,t,i,n,o){let l={opacity:i},a=jn(e,t,n,o);if(e==="cut")return{keyframes:t==="enter"?[{visibility:"hidden"},{visibility:"hidden"}]:[{visibility:"visible"},{visibility:"visible"}],easing:"linear"};if(e==="pop"){let g=`${o.x}px ${o.y}px`;l.scale="1",l.transformOrigin=g}else(e==="rise"||e==="drop")&&(l.translate="0 0");return t==="enter"?{keyframes:[a,l],easing:Hn}:{keyframes:[l,a],easing:Un}}function jn(e,t,i,n){switch(e){case"rise":return{opacity:0,translate:`0 ${t==="enter"?i:-i}px`};case"drop":return{opacity:0,translate:`0 ${t==="enter"?-i:i}px`};case"pop":return{opacity:0,scale:String(bt),transformOrigin:`${n.x}px ${n.y}px`};case"fade":case"cut":case"wipe":case"grow":case"count":case"draw":return{opacity:0}}}function en(e,t){let i=t==="forward"?"-100%":"100%",n=t==="forward"?"100%":"-100%";switch(e){case"cut":return null;case"fade":return{still:[{opacity:1},{opacity:0}],live:null,stillOnTop:!0};case"push":return{still:[{translate:"0 0"},{translate:`${i} 0`}],live:[{translate:`${n} 0`},{translate:"0 0"}],stillOnTop:!1};case"slide":return t==="forward"?{still:null,live:[{translate:"100% 0"},{translate:"0 0"}],stillOnTop:!1}:{still:[{translate:"0 0"},{translate:"100% 0"}],live:null,stillOnTop:!0}}}var Gn={enter:"cut",duration:0,steps:[[]],clicks:new Map,scroll:!1};function tt(e){let t=new Map,i=new Map,n=new Map;lt(e.root,(g,u)=>{u&&(i.set(g.id,u.id),n.set(u.id,[...n.get(u.id)??[],g.id]))});let o=gt(e),l=mt(e);for(let[g,u]of Object.entries(e.motion??{})){if(!l.has(g))continue;let S=[[]],d=new Map,y=pt(u);for(let w of u.lines){if(w.id===g||o.get(w.id)!==g)continue;let E=w.go===void 0?void 0:ht(w.go);E&&d.set(w.id,E);let L=w.enter!==void 0?"enter":w.exit!==void 0?"exit":null,x=w.enter??w.exit;L===null||x===void 0||(w.step&&S.push([]),S.at(-1).push({id:w.id,kind:L,effect:x,duration:x==="cut"?0:Be(w.duration,y,He),delay:Be(w.delay,y,0),together:w.together===!0}))}t.set(g,{enter:u.enter??"cut",duration:u.duration??He,steps:S,clicks:d,scroll:u.scroll===!0})}let a=g=>[g,...(n.get(g)??[]).flatMap(u=>a(u))];return{pages:t,parents:i,within:a}}function tn(e,t){let i=t?.id;return(i?e.pages.get(i):void 0)??Gn}function nt(e){let t=0,i=0;return e.map((n,o)=>(t=(o===0?0:n.together?t:i)+n.delay,i=t+n.duration,{build:n,at:t}))}function nn(e){return Math.max(0,...nt(e).map(({build:t,at:i})=>i+t.duration))}function we(e,t){let i=new Set,n=new Set;for(let o of e.steps.flat())n.has(o.id)||(n.add(o.id),o.kind==="enter"&&i.add(o.id));for(let o of e.steps.slice(0,t).flat())o.kind==="enter"?i.delete(o.id):i.add(o.id);return i}function rn(e,t,i){for(let n=i;n!==void 0;n=e.parents.get(n)){let o=t.clicks.get(n);if(o)return{id:n,target:o}}}function on(e,t,i){let n=[...e];for(;n.length>0;){let o=n.pop(),l=t.findIndex(a=>a.id!==null&&a.id===o);if(l!==-1&&l!==i)return{index:l,history:n}}return null}function sn(e,t,i){let n=Me(t.width/Math.max(1,e.w));if(e.h*n<=t.height)return{camera:fe({x:e.x,y:e.y,width:e.w,height:e.h},t,0),top:0,max:0};let o=e.h-t.height/n,l=Math.min(Math.max(0,i),o),a=(t.width-e.w*n)/2-e.x*n;return{camera:{zoom:n,x:a,y:0-(e.y+l)*n},top:l,max:o}}var _e=.9,rt=.1;function an(e,t){return e.deltaMode===1?e.deltaY*16:e.deltaMode===2?e.deltaY*t.height:e.deltaY}var Kn=1500,Wn=2e3,Yn=200,qn=50;function it(e,t){let i=e.ownerDocument;e.classList.add("vd-player"),e.tabIndex=-1;let n=new Set,o=new Set,l=!1,a=Oe(e,{document:t.document,...t.timeline?{sample:t.timeline.sample}:{},interactive:!1,surface:"#000",...t.fonts?{fonts:t.fonts}:{},...t.loadFont?{loadFont:t.loadFont}:{},...t.resolveAsset?{resolveAsset:t.resolveAsset}:{},onSceneChange:()=>{l&&q()}}),g=i.createElementNS(ne,"path");g.setAttribute("class","vd-player__mask"),g.setAttribute("fill","#000"),g.setAttribute("fill-rule","evenodd"),a.surface.appendChild(g);let u=i.createElement("div");u.className="vd-player__counter",u.setAttribute("aria-live","polite"),e.appendChild(u);let S=tt(t.document),d=be(t.document,a.getScene()),y=Yt(d,t.start),w=[],E=0,L=[],x,V=0,_="",M=0,H=0,Q=1,R=new Map,ee,U=0,G,B,D=i.defaultView,ae=()=>typeof a.surface.animate=="function"&&!(D?.matchMedia?.("(prefers-reduced-motion: reduce)").matches??!1),j=()=>tn(S,d[y]),h;function X(){let s=d[y]?.id;if(!t.timeline||!s)return;let c=a.getDocument();return Ue(c.motion?.[s])?t.timeline.of(c,s):void 0}function se(s,c){return Math.min(s.length,...s.steps.filter(m=>m>c))}function Y(){h&&(a.setTime({timeline:h.timeline,t:h.t}),h.timeline.camera&&J())}function le(s){if(!h||(h.frame=0,!h.playing))return;let c=h.last===0?0:s-h.last;h.last=s;let m=se(h.timeline,h.t);h.t=Math.min(m,t.sound?.position()??h.t+c),h.t>=m&&(h.playing=!1,t.sound?.stop()),Y(),h.playing&&(h.frame=D?.requestAnimationFrame(le)??0)}function ue(){if(h){if(!ae()||!D?.requestAnimationFrame){h.t=se(h.timeline,h.t),Y();return}h.playing=!0,h.last=0,t.sound?.play(h.timeline,h.t),h.frame=D.requestAnimationFrame(le)}}function re(){h?.frame&&D?.cancelAnimationFrame(h.frame),h=void 0,t.sound?.stop(),a.setTime(null)}function K(s,c){h={timeline:s,t:c?0:s.length,playing:!1,last:0,frame:0},t.sound?.prepare(a.getDocument(),s),Y(),c&&ue()}function ie(){let s=X();s?(E=j().steps.length,K(s,!0)):p()}function pe(){let s=e.getBoundingClientRect(),c=d[y];return{width:s.width||c?.w||1,height:s.height||c?.h||1}}function J(){let s=d[y];if(!s)return;let c=pe(),m=h?.timeline.camera&&t.timeline?t.timeline.camera(h.timeline,h.t,a.getScene(),{doc:a.getDocument(),resolution:a.getResolution()}):{x:s.x,y:s.y,w:s.w,h:s.h},k=fe({x:m.x,y:m.y,width:m.w,height:m.h},c,0);if(H=0,j().scroll){let P=sn(s,c,M);k=P.camera,M=P.top,H=P.max}Q=k.zoom,a.setCamera(k);let z=m.x*k.zoom+k.x,$=m.y*k.zoom+k.y,W=m.w*k.zoom,oe=m.h*k.zoom;g.setAttribute("d",`M0 0H${c.width}V${c.height}H0ZM${z} ${$}h${W}v${oe}h${-W}Z`),g.dataset.slide=s.id??""}function he(){let s=Qe(d,y),c=qt(d);u.textContent=s===null?"Skipped":`${s} / ${c}`,u.classList.add("vd-player__counter--shown"),G&&clearTimeout(G),G=setTimeout(()=>u.classList.remove("vd-player__counter--shown"),Kn),t.onChange?.(s,c)}function q(){let s=new Set;for(let c of n)for(let m of S.within(c))s.add(m);o=s;for(let c of a.surface.querySelectorAll("[data-vd-hidden]")){let m=c.getAttribute("data-vd-id");(m===null||!s.has(m))&&c.removeAttribute("data-vd-hidden")}for(let c of s)a.elementOf(c)?.setAttribute("data-vd-hidden","")}function ge(s){return S.within(s).flatMap(c=>{let m=a.elementOf(c);return m?[m]:[]})}function ce(s){let c=1/0,m=1/0,k=-1/0,z=-1/0;for(let $ of S.within(s)){let W=a.itemOf($);W&&(c=Math.min(c,W.x),m=Math.min(m,W.y),k=Math.max(k,W.x+W.w),z=Math.max(z,W.y+W.h))}return Number.isFinite(c)?{x:(c+k)/2,y:(m+z)/2}:{x:0,y:0}}function me(){if(!(L.length===0&&!x)){V+=1,E===0&&(E=1),n=we(j(),E),q();for(let s of L)s.cancel();L=[],x?.remove(),x=void 0}}function f(){return L.length===0&&!x?!1:(me(),!0)}function v(s,c){return new Promise(m=>{let k=!1,z=()=>{k||(k=!0,m())};Promise.all(s.map($=>$.finished)).then(z,()=>{k=!0}),setTimeout(()=>{if(!k){for(let $ of s)($.playState==="running"||$.playState==="paused")&&$.finish();z()}},c+qn)})}function r(s,c,m){if(s===y||!d[s])return;let k=j(),z=d[y]?.id;z&&R.set(z,ee===void 0?M:U),O(),y=s;let $=j(),W=d[s]?.id;M=c||!W?0:R.get(W)??0;let oe=m==="forward"?$:k,P=ae()?en(oe.enter,m):null;P&&(x=a.surface.cloneNode(!0),x.classList.add("vd-player__still"),x.setAttribute("aria-hidden","true"),P.stillOnTop?a.surface.after(x):a.surface.before(x)),re();let ke=X();if(J(),ke?(E=$.steps.length,n=new Set,K(ke,!1),c&&h&&(h.t=0),Y()):(E=c?0:$.steps.length,n=we($,E)),q(),he(),!P||!x){c&&ie();return}let Ie={duration:oe.duration,easing:Jt},te=[];P.still&&te.push(x.animate(P.still,{...Ie,fill:"forwards"})),P.live&&te.push(a.surface.animate(P.live,Ie)),L.push(...te);let xe=V;v(te,oe.duration).then(()=>{if(xe===V){L=L.filter(ve=>!te.includes(ve));for(let ve of te)ve.cancel();x?.remove(),x=void 0,c&&ie()}})}function p(){let s=j(),c=s.steps[E];if(c===void 0)return;E+=1;let m=we(s,E);if(c.length===0)return;if(!ae()){n=m,q();return}let k=new Set(c.filter(P=>P.kind==="enter").map(P=>P.id));n=new Set([...we(s,E-1)].filter(P=>!k.has(P))),q();let z=d[y],$=je*Math.min(z?.w??0,z?.h??0),W=V,oe=[];for(let{build:P,at:ke}of nt(c)){let Ie=ce(P.id),te=[];for(let xe of ge(P.id)){let ve=Number(xe.getAttribute("opacity")??1),{keyframes:gn,easing:yn}=Qt(P.effect,P.kind,Number.isFinite(ve)?ve:1,$,Ie);te.push(xe.animate(gn,{duration:P.duration,delay:ke,easing:yn,fill:P.kind==="enter"?"backwards":"forwards"}))}oe.push(...te),P.kind==="exit"&&te.length>0&&v(te,ke+P.duration).then(()=>{if(W===V){n.add(P.id),q();for(let xe of te)xe.cancel()}})}L.push(...oe),v(oe,nn(c)).then(()=>{if(W===V){L=L.filter(P=>!oe.includes(P)),n=m,q();for(let P of oe)P.cancel()}})}function O(){ee!==void 0&&D?.cancelAnimationFrame(ee),ee=void 0}function b(s){if(O(),U=Math.min(Math.max(0,s),H),!ae()||!D?.requestAnimationFrame){M=U,J();return}let c=M,m,k=z=>{m??=z;let $=Math.min(1,(z-m)/Yn);M=c+(U-c)*(1-(1-$)**3),J(),ee=$<1?D.requestAnimationFrame(k):void 0};ee=D.requestAnimationFrame(k)}function I(s,c){if(f())return;let m=ee===void 0?M:U;if(!(s>0?M>=H-.5:M<=.5)){b(m+s*pe().height/Q);return}c||(s>0?C():Z())}function A(s){if(!(!j().scroll||H<=0))switch(s.key){case" ":return s.shiftKey?-_e:_e;case"PageDown":return _e;case"PageUp":return-_e;case"ArrowDown":return rt;case"ArrowUp":return-rt;default:return}}function N(s){let c=Math.min(Math.max(0,s),d.length-1);if(c===y)return;let m=d[y]?.id;m&&w.push(m),r(c,!0,"forward")}function C(){if(!f()){if(h){if(h.playing){h.frame&&D?.cancelAnimationFrame(h.frame),h.playing=!1,t.sound?.stop(),h.t=se(h.timeline,h.t),Y();return}if(h.t<h.timeline.length){ue();return}}if(E<j().steps.length){p();return}N(Ee(d,y,1))}}function Z(){if(f())return;let s=on(w,d,y);if(s){w=s.history,r(s.index,!1,"back");return}r(Ee(d,y,-1),!1,"back")}function Pe(s){switch(s.kind){case"url":t.onLink?.(s.url);return;case"back":Z();return;case"next":N(Ee(d,y,1));return;case"frame":{let c=Xt(a.getDocument(),d,s.id);c===null?C():Re(c,s.id)}}}function Re(s,c){let m=s===y;m||N(s);let k=d[y];if(!k||!j().scroll)return;let z=k.id===c?void 0:a.itemOf(c),$=z?z.y-k.y:0;m?b($):(M=$,J())}function Se(s){let c=d[y];if(!c||s.x<c.x||s.y<c.y||s.x>c.x+c.w||s.y>c.y+c.h)return;let m=W=>!o.has(W),k=a.hitTest(s,m),z=k===null?void 0:rn(S,j(),k);if(z)return z.target;let $=a.linkAt(s,m);return $===void 0?void 0:De($)}let Ce=s=>{if(s.stopPropagation(),s.metaKey||s.ctrlKey||s.altKey)return;let c=s.key,m=A(s);if(m!==void 0){_="",I(m,s.repeat),s.preventDefault();return}if(/^\d$/.test(c))_+=c;else if(c==="Enter"&&_!==""){let k=Zt(_,d);_="",!f()&&k!==null&&N(k)}else if(c==="Escape")_!==""?_="":t.onExit?.();else if(["ArrowRight","ArrowDown","PageDown"," ","Enter"].includes(c))_="",C();else if(["ArrowLeft","ArrowUp","PageUp","Backspace"].includes(c))_="",Z();else if(c==="Home")f()||N(Ee(d,-1,1));else if(c==="End")f()||N(Ee(d,d.length,-1));else return;s.preventDefault()},at=s=>{if(f())return;let c=Se(a.screenToDocument(a.pointerPoint(s)));c?Pe(c):C()},ct=s=>{!j().scroll||H<=0||(s.preventDefault(),!(x||s.ctrlKey||s.metaKey)&&(O(),M=Math.min(Math.max(0,M+an(s,pe())/Q),H),J()))},Ve=s=>{if(e.classList.remove("vd-player--idle"),B&&clearTimeout(B),B=setTimeout(()=>e.classList.add("vd-player--idle"),Wn),!s)return;let c=a.screenToDocument(a.pointerPoint(s));e.classList.toggle("vd-player--link",Se(c)!==void 0)},dt=D&&"ResizeObserver"in D?new D.ResizeObserver(()=>J()):void 0;return dt?.observe(e),e.addEventListener("keydown",Ce),e.addEventListener("click",at),e.addEventListener("pointermove",Ve),e.addEventListener("wheel",ct,{passive:!1}),l=!0,J(),n=X()?new Set:we(j(),0),q(),he(),Ve(),e.focus({preventScroll:!0}),ie(),{viewer:a,index:()=>y,count:()=>d.length,next:C,back:Z,go(s){me(),N(s)},update(s){if(s===a.getDocument())return;me();let c=d[y]?.id;a.update(s),S=tt(s),d=be(s,a.getScene());let m=d.findIndex(z=>z.id===c);y=m===-1?Math.min(y,d.length-1):m,m===-1&&(O(),M=0),re();let k=X();k&&K(k,!1),J(),E=j().steps.length,n=k?new Set:we(j(),E),q()},refit:J,destroy(){V+=1,O(),h?.frame&&D?.cancelAnimationFrame(h.frame),h=void 0,t.sound?.stop();for(let s of L)s.cancel();L=[],x?.remove(),dt?.disconnect(),e.removeEventListener("wheel",ct),e.removeEventListener("keydown",Ce),e.removeEventListener("click",at),e.removeEventListener("pointermove",Ve),G&&clearTimeout(G),B&&clearTimeout(B),g.remove(),u.remove(),a.destroy(),e.classList.remove("vd-player","vd-player--idle","vd-player--link"),e.removeAttribute("tabindex")}}}function cn(e){let t=e,i=new Map,n=typeof URL.createObjectURL=="function"&&typeof URL.revokeObjectURL=="function";return{resolve(o){let l=i.get(o.hash);if(l!==void 0)return l;let a=t.get(o.hash);if(a===void 0)return;if(!n)return xt(o.type,a);let g;try{g=vt(a)}catch{return}let u=URL.createObjectURL(new Blob([g],{type:o.type}));return i.set(o.hash,u),u},replace(o){t=o;for(let[l,a]of i)o.has(l)||(URL.revokeObjectURL(a),i.delete(l))},destroy(){for(let o of i.values())URL.revokeObjectURL(o);i.clear(),t=new Map}}}var ot=["page","content","none"],dn=24;function Le(e){let t=e.getBoundingClientRect();return{width:t.width,height:t.height}}function fn(e,t){let i=t===void 0?void 0:e.itemOf(t);if(!(!i||i.w<=0||i.h<=0))return{x:i.x,y:i.y,width:i.w,height:i.h}}function ln(e,t,i,n){if(i==="none")return;let o=i==="page"?fn(e,n):void 0;if(!o){e.fitToContent(dn);return}let l=Le(t);e.setCamera(fe(o,{width:l.width||o.width,height:l.height||o.height},dn))}function un(e,t,i){let n=fn(e,i);if(!n)return;let o=e.getCamera(),l=Le(t),a=l.width||n.width*o.zoom,g=l.height||n.height*o.zoom;e.setCamera({zoom:o.zoom,x:a/2-(n.x+n.width/2)*o.zoom,y:g/2-(n.y+n.height/2)*o.zoom})}var st=Symbol.for("vdesign.embed.handover");function pn(e){return e[st]}var hn=["exact","browser"],mn=["ready","problems","page","fonts"];async function Zn(e,t){try{let{exactFontsAt:i}=await import("./chunks/fonts.js"),n=i(e);return(await n.ensure(t)).length===0?n:void 0}catch{return}}async function Qr(e,t,i={}){let n=i.fit??"page";if(!ot.includes(n))throw new TypeError(`view: fit must be one of ${ot.join(", ")}; got ${String(n)}.`);let o=i.fonts??"exact";if(!hn.includes(o))throw new TypeError(`view: fonts must be one of ${hn.join(", ")}; got ${String(o)}.`);let l=o==="exact"?It(i.fontBase,ft,e.ownerDocument.baseURI):void 0,a=pn(i),g=await Ye(t),u=a?.page!==void 0&&de(g.document).some(f=>f.id===a.page)?a.page:i.page===void 0?de(g.document)[0]?.id:Ae(g.document,i.page).id,S=a?.exact&&l?await Zn(l,g.document):void 0,d=e.ownerDocument,y=d.defaultView,w=cn(g.blocks),E=g.blocks,L=[...g.problems],x,V=()=>x?[...L,x]:[...L],_=d.createElement("div");_.className="vd-embed",_.style.width="100%",_.style.height="100%",e.appendChild(_);let M=Oe(_,{document:g.document,interactive:i.interactive??!0,wheel:"modifier",resolveAsset:f=>w.resolve(f),...i.surface?{surface:i.surface}:{},...a?{camera:a.camera}:{},...S?{fonts:S.library}:{}}),H={ready:new Set,problems:new Set,page:new Set,fonts:new Set},Q=!1,R=!1,ee=0,U,G,B=S,D=o==="browser"?"browser":void 0,ae;function j(){Q=!0;for(let f of H.ready)f()}function h(){for(let f of H.problems)f(V())}function X(f){D=f;for(let v of H.fonts)v(f)}function se(){return ae??=(async()=>{if(l)try{let{exactFontsAt:f}=await import("./chunks/fonts.js");return f(l)}catch{return}})(),ae}function Y(f){B=void 0,M.setFonts(void 0),U?.fonts(void 0),x=f,h(),X("browser")}async function le(){let f=await se();if(!R){if(!f){Y(Ne([],l?"the fonts chunk would not load":"no fontBase was given and this build has no default"));return}for(;;){let v=M.getDocument(),r=await f.ensure(v);if(R)return;if(r.length>0){Y(Ne(r));return}if(M.getDocument()===v)break}B=f,M.setFonts(f.library),U?.fonts(f),X("exact")}}function ue(){let f=re(u);if(f)for(let v of H.page)v(f)}function re(f){let v=de(M.getDocument()).find(r=>r.id===f);if(v)return v.name===void 0?{id:v.id}:{id:v.id,name:v.name}}let K=()=>ln(M,_,n,u),ie=()=>un(M,_,u);function pe(f){if(R)return;let v=Ae(M.getDocument(),f).id,r=v!==u;u=v,n==="page"?K():ie(),r&&ue()}function J(f){i.onLink?i.onLink(f):y?.open(f,"_blank","noopener,noreferrer")}let he=f=>{if(f.button!==0||U)return;let v=M.linkAt(M.screenToDocument(M.pointerPoint(f)));if(v===void 0)return;let r=De(v);if(r){if(f.preventDefault(),r.kind==="frame"){de(M.getDocument()).some(p=>p.id===r.id)&&pe(r.id);return}J(r.url)}};_.addEventListener("click",he);let q=Le(_),ge=y&&"ResizeObserver"in y?new y.ResizeObserver(()=>{let f=Le(_);f.width===q.width&&f.height===q.height||(q=f,K())}):void 0;ge?.observe(_),a||(n==="none"&&u!==void 0&&i.page!==void 0?ie():K()),j(),S?X("exact"):o==="exact"&&le();let ce={async load(f){if(R)throw new Error("view: this view was destroyed.");let v=++ee,r=await Ye(f),p=B,O=p?await p.ensure(r.document):[];if(G&&await G||R||v!==ee)return;O.length>0&&B===p&&Y(Ne(O)),w.replace(r.blocks),E=r.blocks,M.update(r.document),L=[...r.problems],U?.update(r.document),de(r.document).some(I=>I.id===u)||(u=de(r.document)[0]?.id,n==="page"?K():ie(),ue()),h(),j()},pages:()=>de(M.getDocument()).map(f=>f.name===void 0?{id:f.id}:{id:f.id,name:f.name}),goTo:pe,fit:()=>{R||K()},play(f={}){if(R)return Promise.reject(new Error("view: this view was destroyed."));try{return U?.stop(),Promise.resolve(me(M.getDocument(),f.page))}catch(v){return Promise.reject(v instanceof Error?v:new Error(String(v)))}},async edit(f={}){if(R)throw new Error("view: this view was destroyed.");if(G)throw new Error("view: edit() is already opening an editor.");let v;G=new Promise(p=>v=p);let r=!1;try{let{edit:p}=await import("./edit.js");if(R)throw new Error("view: this view was destroyed.");let O={camera:M.getCamera(),page:u,exact:B!==void 0},b=Ct(M.getDocument(),E,L),I=await p(e,b,{...i,...f,[st]:O});if(R)throw I.destroy(),new Error("view: this view was destroyed.");return r=!0,ce.destroy(),I}finally{G=void 0,v(r)}},on(f,v){if(!mn.includes(f))throw new TypeError(`view: on() takes one of ${mn.join(", ")}; got ${String(f)}.`);let r=H[f];if(r.add(v),f==="ready"&&Q&&queueMicrotask(()=>{r.has(v)&&v()}),f==="problems"&&queueMicrotask(()=>{r.has(v)&&v(V())}),f==="fonts"&&D!==void 0){let p=D;queueMicrotask(()=>{r.has(v)&&v(p)})}return()=>{r.delete(v)}},destroy(){if(!R){R=!0,U?.stop(),_.removeEventListener("click",he),ge?.disconnect(),M.destroy(),w.destroy(),_.remove();for(let f of Object.values(H))f.clear()}}};function me(f,v){let r=v===void 0?u:Ae(f,v).id,p=d.createElement("div");p.className="vd-embed__play",p.style.position="absolute",p.style.inset="0";let O=Z=>Z.stopPropagation();p.addEventListener("wheel",O);let b=d.activeElement;_.appendChild(p);let I=!1,A=()=>{if(I)return;I=!0,U===N&&(U=void 0),C.destroy(),p.removeEventListener("wheel",O);let Z=p.contains(d.activeElement);p.remove(),Z&&b&&"focus"in b&&typeof b.focus=="function"&&b.focus({preventScroll:!0})},N={stop:A,update:Z=>C.update(Z),fonts:Z=>C.viewer.setFonts(Z?.library)},C=it(p,{document:f,resolveAsset:Z=>w.resolve(Z),...B?{fonts:B.library}:{},...r===void 0?{}:{start:r},onExit:A,onLink:J});return U=N,{goTo(Z){if(I)return;let Pe=C.viewer.getDocument(),Re=Ae(Pe,Z).id,Se=be(Pe,C.viewer.getScene()).findIndex(Ce=>Ce.id===Re);Se!==-1&&C.go(Se)},destroy:A}}return ce}export{wn as version,Qr as view};
package/edit.css CHANGED
@@ -230,6 +230,20 @@
230
230
  user-select: none;
231
231
  }
232
232
 
233
+ /* Components keep their own colour everywhere they are drawn — the label, the
234
+ outline, the layer icon — Figma's purple, which designers already read as
235
+ "this is a component" without a legend. */
236
+ .vd-editor__page-label--component {
237
+ fill: var(--vd-component, #9b7bff);
238
+ }
239
+
240
+ .vd-editor__component-outline {
241
+ fill: none;
242
+ stroke: var(--vd-component, #9b7bff);
243
+ stroke-width: 1;
244
+ stroke-dasharray: 4 3;
245
+ }
246
+
233
247
  .vd-editor__page-label--hover {
234
248
  fill: var(--vd-page-label-hover, rgb(255 255 255 / 0.9));
235
249
  }
@@ -519,6 +533,74 @@
519
533
  opacity: 0.55;
520
534
  }
521
535
 
536
+ /* A part this instance changes: a small dot, the way Figma marks an override. */
537
+ .vd-layers__dot {
538
+ flex: 0 0 6px;
539
+ width: 6px;
540
+ height: 6px;
541
+ border-radius: 50%;
542
+ background: var(--vd-component, #9b7bff);
543
+ }
544
+
545
+ .vd-layers__row[data-kind='component'] .vd-layers__icon,
546
+ .vd-layers__row[data-kind='instance'] .vd-layers__icon,
547
+ .vd-layers__row[data-part='true'] .vd-layers__icon {
548
+ color: var(--vd-component, #9b7bff);
549
+ opacity: 1;
550
+ }
551
+
552
+ .vd-layers__components[hidden] {
553
+ display: none;
554
+ }
555
+
556
+ .vd-layers__components {
557
+ flex: 0 0 auto;
558
+ padding: 6px 0 8px;
559
+ border-bottom: 1px solid var(--vd-hairline, rgb(0 0 0 / 0.08));
560
+ }
561
+
562
+ .vd-layers__heading {
563
+ margin: 0;
564
+ padding: 4px 10px;
565
+ font-size: 11px;
566
+ font-weight: 600;
567
+ opacity: 0.6;
568
+ }
569
+
570
+ .vd-layers__component {
571
+ display: flex;
572
+ align-items: center;
573
+ gap: 6px;
574
+ width: 100%;
575
+ height: 28px;
576
+ padding: 0 10px;
577
+ border: 0;
578
+ background: none;
579
+ color: inherit;
580
+ font: inherit;
581
+ text-align: left;
582
+ cursor: grab;
583
+ }
584
+
585
+ .vd-layers__component:hover {
586
+ background: var(--vd-row-hover, rgb(0 0 0 / 0.04));
587
+ }
588
+
589
+ .vd-layers__component[aria-pressed='true'] {
590
+ background: var(--vd-row-selected, rgb(59 130 246 / 0.14));
591
+ }
592
+
593
+ .vd-layers__component .vd-layers__icon {
594
+ color: var(--vd-component, #9b7bff);
595
+ opacity: 1;
596
+ }
597
+
598
+ .vd-layers__uses {
599
+ margin-left: auto;
600
+ opacity: 0.5;
601
+ font-size: 11px;
602
+ }
603
+
522
604
  .vd-layers__preview {
523
605
  flex: 1 1 0;
524
606
  min-width: 0;
@@ -1292,6 +1374,17 @@
1292
1374
  color: var(--vd-muted, rgb(0 0 0 / 0.55));
1293
1375
  }
1294
1376
 
1377
+ /* A note under a row of controls needs the same gap a row has above it. */
1378
+ .vd-inspector__grid + .vd-inspector__note {
1379
+ margin-top: 8px;
1380
+ }
1381
+
1382
+ /* A property this instance changes: a bar in the component colour at the
1383
+ field's start, the mark Figma's designers read as "overridden". */
1384
+ .vd-inspector__overridden .vd-field__box {
1385
+ box-shadow: inset 2px 0 0 var(--vd-component, #9b7bff);
1386
+ }
1387
+
1295
1388
  .vd-inspector > .vd-inspector__section .vd-inspector__subhead:first-child {
1296
1389
  margin-top: 0;
1297
1390
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getv.design/embed",
3
- "version": "0.4.0",
3
+ "version": "0.5.1",
4
4
  "description": "Render, present and edit vDesign (.vd) documents in any web page. Free to use.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "author": {