@getv.design/embed 0.5.5 → 0.6.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.5.5. Free to use under the vDesign Embed Licence. © 2026 vDesign. https://getv.design/docs/licence/ */
2
- import{a as y}from"./chunks/chunk-OJEQYRTB.js";import"./chunks/chunk-565P424V.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.6.1. Free to use under the vDesign Embed Licence. © 2026 vDesign. https://getv.design/docs/licence/ */
2
+ import{a as y}from"./chunks/chunk-KF7NJEZQ.js";import"./chunks/chunk-DXK755VP.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.5.5. 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-JOUOURQK.js";import{e as F}from"./chunks/chunk-2ZC4KNI4.js";import"./chunks/chunk-NMTM7OEB.js";import"./chunks/chunk-5XTOQNJT.js";import"./chunks/chunk-OJEQYRTB.js";import"./chunks/chunk-565P424V.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.6.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-HHLJB4PE.js";import{e as F}from"./chunks/chunk-ER6HNUNJ.js";import"./chunks/chunk-FM6ZYYTD.js";import"./chunks/chunk-JAYW4VNL.js";import"./chunks/chunk-KF7NJEZQ.js";import"./chunks/chunk-DXK755VP.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.5.5. 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-JOUOURQK.js";import{e as a}from"./chunks/chunk-2ZC4KNI4.js";import"./chunks/chunk-NMTM7OEB.js";import"./chunks/chunk-5XTOQNJT.js";import"./chunks/chunk-OJEQYRTB.js";import"./chunks/chunk-565P424V.js";export{b as createFenceIds,a as createRenderer,c as isVdFence,d as parseInfo,e as renderFence};
1
+ /*! @getv.design/embed v0.6.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-HHLJB4PE.js";import{e as a}from"./chunks/chunk-ER6HNUNJ.js";import"./chunks/chunk-FM6ZYYTD.js";import"./chunks/chunk-JAYW4VNL.js";import"./chunks/chunk-KF7NJEZQ.js";import"./chunks/chunk-DXK755VP.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.5.5. 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-JOUOURQK.js";import{e as f}from"./chunks/chunk-2ZC4KNI4.js";import"./chunks/chunk-NMTM7OEB.js";import"./chunks/chunk-5XTOQNJT.js";import"./chunks/chunk-OJEQYRTB.js";import"./chunks/chunk-565P424V.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.6.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-HHLJB4PE.js";import{e as f}from"./chunks/chunk-ER6HNUNJ.js";import"./chunks/chunk-FM6ZYYTD.js";import"./chunks/chunk-JAYW4VNL.js";import"./chunks/chunk-KF7NJEZQ.js";import"./chunks/chunk-DXK755VP.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.5.5. 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-JOUOURQK.js";import{e as g}from"./chunks/chunk-2ZC4KNI4.js";import"./chunks/chunk-NMTM7OEB.js";import"./chunks/chunk-5XTOQNJT.js";import"./chunks/chunk-OJEQYRTB.js";import"./chunks/chunk-565P424V.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.6.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-HHLJB4PE.js";import{e as g}from"./chunks/chunk-ER6HNUNJ.js";import"./chunks/chunk-FM6ZYYTD.js";import"./chunks/chunk-JAYW4VNL.js";import"./chunks/chunk-KF7NJEZQ.js";import"./chunks/chunk-DXK755VP.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.5.5. 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-2ZC4KNI4.js";import"./chunks/chunk-NMTM7OEB.js";import"./chunks/chunk-5XTOQNJT.js";import{a}from"./chunks/chunk-OJEQYRTB.js";import"./chunks/chunk-565P424V.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.6.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-ER6HNUNJ.js";import"./chunks/chunk-FM6ZYYTD.js";import"./chunks/chunk-JAYW4VNL.js";import{a}from"./chunks/chunk-KF7NJEZQ.js";import"./chunks/chunk-DXK755VP.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.5.5. 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-NMTM7OEB.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-5XTOQNJT.js";import{a as wn,b as ft}from"./chunks/chunk-OJEQYRTB.js";import"./chunks/chunk-565P424V.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.6.1. Free to use under the vDesign Embed Licence. © 2026 vDesign. https://getv.design/docs/licence/ */
2
+ import{c as an,e as ct,f as de,g as Oe,h as cn,i as He}from"./chunks/chunk-FM6ZYYTD.js";import{$ as at,A as Ve,B as nt,C as Vt,D as Bt,E as rt,F as it,I as jt,J as Ht,K as Ut,L as Kt,M as ot,N as Be,O as Gt,P as Wt,Q as qt,R as Yt,S as Zt,T as st,U as Xt,V as Jt,W as Qt,X as en,Y as tn,Z as nn,_ as rn,a as Ze,aa as on,b as Tt,ba as je,c as Ot,ca as sn,d as Re,e as Ct,f as Xe,g as Je,h as Pt,i as Qe,j as _t,k as Lt,l as Dt,m as Ee,o as Ft,q as It,s as et,v as tt,w as Nt,x as $t,y as zt,z as Rt}from"./chunks/chunk-JAYW4VNL.js";import{a as qn,b as Mt}from"./chunks/chunk-KF7NJEZQ.js";import"./chunks/chunk-DXK755VP.js";var Yn=.8,Zn=.2;function lt(e,t){let r=e.createElement("canvas").getContext("2d"),i=Bt(),a=new Map,c=new Map,m=new Set;function d(f){return`${f.italic?"italic ":""}${f.weight} ${f.size}px ${f.family}`}function S(){a.clear(),c.clear()}return{advance(f,y){if(!r)return i.advance(f,y);let w=d(y),k=`${w}\0${y.letterSpacing}\0${f}`,_=a.get(k);if(_!==void 0)return _;r.font=w;let v=r.measureText(f).width+y.letterSpacing*[...f].length;return a.set(k,v),v},metrics(f){if(!r)return i.metrics(f);let y=d(f),w=c.get(y);if(w)return w;r.font=y;let k=r.measureText("Hxg"),_=k.fontBoundingBoxAscent??f.size*Yn,v=k.fontBoundingBoxDescent??f.size*Zn,I={ascent:_,descent:v,lineGap:0};return c.set(y,I),I},load(f,y){let w=e.fonts;if(!w||typeof FontFace!="function")return!1;let k=!1;for(let _ of Object.values(f.fonts))for(let v of Xn(_)){let I=`${_.family}\0${v.src}\0${v.weight??400}\0${v.style??"normal"}`;if(m.has(I))continue;m.add(I);let P=v.src.startsWith("data:")?void 0:y?.(v.src),T={weight:String(v.weight??400),style:v.style??"normal"},j=ee=>{let V=new FontFace(_.family,typeof ee=="string"?`url(${ee})`:Jn(ee),T);w.add(V),V.load().then(()=>{S(),t?.()},()=>{w.delete(V)})};P===void 0?j(v.src):(k=!0,P.then(j,()=>{}))}return k},invalidate:S,destroy(){S(),m.clear()}}}function Xn(e){return(e.faces??[]).flatMap(t=>t.src===void 0?[]:[{...t,src:t.src}])}function Jn(e){return e instanceof Uint8Array?e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength):e}var Ue={x:0,y:0,zoom:1},ln=.02,dn=64;function Ce(e){return Number.isFinite(e)?Math.min(Math.max(e,ln),dn):1}function Ke(e,t){return{x:(t.x-e.x)/e.zoom,y:(t.y-e.y)/e.zoom}}function dt(e,t){return{x:t.x*e.zoom+e.x,y:t.y*e.zoom+e.y}}function Pe(e,t,n){let r=Ce(e.zoom*n),i=Ke(e,t);return{zoom:r,x:t.x-i.x*r,y:t.y-i.y*r}}function we(e,t,n){return{...e,x:e.x+t,y:e.y+n}}function ft(e){return`translate(${e.x} ${e.y}) scale(${e.zoom})`}function fe(e,t,n){let r={width:Math.max(1,t.width-n*2),height:Math.max(1,t.height-n*2)};if(e.width<=0||e.height<=0)return Ue;let i=Ce(Math.min(r.width/e.width,r.height/e.height));return{zoom:i,x:(t.width-e.width*i)/2-(e.x??0)*i,y:(t.height-e.height*i)/2-(e.y??0)*i}}var H="http://www.w3.org/2000/svg",fn="vd-viewer-styles",un=`
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-NMTM7
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=>{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};
101
+ `;function pn(e){if(e.getElementById(fn))return;let t=e.createElement("style");t.id=fn,t.textContent=un,e.head.appendChild(t)}function mn(e){if(!(e===void 0||typeof fetch!="function"))return async(t,n)=>{let r=e(t,n);if(r===void 0)return;let i=await fetch(r);return i.ok?new Uint8Array(await i.arrayBuffer()):void 0}}function gn(e,t,n,r,i){return t?er(e,t,n,r,i):Qn(e,n,r)}function Qn(e,t,n){let r=lt(e,n);return{measurer:r,update:i=>{r.load(i,t)},afterPaint:()=>{},destroy:()=>r.destroy()}}var hn=new WeakMap;function er(e,t,n,r,i){let a,c,m,d=()=>{if(!a)throw new Error("canvasFonts: update() before measuring");return a};return{measurer:{advance:(f,y)=>d().measurer.advance(f,y),metrics:f=>d().measurer.metrics(f),itemize:f=>d().measurer.itemize(f)},update(f){a&&f.fonts===c||(m?.(),a?.dispose(),a=t.forDocument(f,{...n?{loader:n}:{},...i?{asset:i}:{}}),c=f.fonts,m=a.onChange(r))},afterPaint(){let f=e.fonts;if(!a||!f||typeof FontFace!="function")return;let y=hn.get(e);y||hn.set(e,y=new Set);for(let w of a.usedFaces()){if(y.has(w.id))continue;y.add(w.id);let k=new FontFace(w.id,tr(w.bytes),{weight:String(w.weight),style:w.style});f.add(k),k.load().catch(()=>f.delete(k))}},destroy(){m?.(),a?.dispose(),a=void 0}}}function tr(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}var nr=.01,rr=.004,yn=40,ir=16;function Fe(e,t){pn(e.ownerDocument);let n=t.document,r=o=>gn(e.ownerDocument,o,t.loadFont,()=>{K(n)},mn(t.resolveAsset)),i=r(t.fonts),a={advance:(o,p)=>i.measurer.advance(o,p),metrics:o=>i.measurer.metrics(o),itemize:o=>i.measurer.itemize?.(o)??[o]};i.update(n);let c=Ve(n),m=()=>t.resolveAsset?{measure:a,resolveAsset:t.resolveAsset}:{measure:a},d=it(n,c,m()),S=t.camera??Ue,f=t.interactive??!0,y=t.wheel??"always";e.classList.add("vd-viewer"),t.surface&&(e.style.background=t.surface);let w=e.ownerDocument.createElementNS(H,"svg");w.setAttribute("class","vd-viewer__surface"),w.setAttribute("width","100%"),w.setAttribute("height","100%");let k=e.ownerDocument.createElementNS(H,"g");k.setAttribute("class","vd-viewer__camera"),k.style.isolation="isolate",w.appendChild(k);let _=e.ownerDocument.createElementNS(H,"defs");k.appendChild(_);let v=e.ownerDocument.createElementNS(H,"rect");v.setAttribute("class","vd-viewer__page"),k.appendChild(v),e.appendChild(w);let I=new Map,P=null;function T(){let o=t.sample;return P&&o?o(d,P.timeline,P.t,{doc:n,resolution:c,options:m()}):d}function j(){k.setAttribute("transform",ft(S))}function ee(o=!0){let p=T();ne(p);let O=d.background!==void 0;C(v,"x",String(d.x)),C(v,"y",String(d.y)),C(v,"width",String(O?d.width:0)),C(v,"height",String(O?d.height:0)),M(v,"fill",d.background??null);let b=new Set,D=v;for(let E of p.items){if(E.backdrop!==void 0){let U=vn(E.id);b.add(U);let te=I.get(U);te||(te=e.ownerDocument.createElementNS(H,"g"),te.setAttribute("data-vd-id",E.id),I.set(U,te)),Le(te,Zt(p,E)),D.nextSibling!==te&&k.insertBefore(te,D.nextSibling),D=te}let $=E.kind==="border"?wn(E.id):E.part===void 0?E.id:`${E.id}\0${E.part}`;b.add($);let F=I.get($);(!F||F.tagName!==We(E))&&(F?.remove(),F=e.ownerDocument.createElementNS(H,We(E)),F.setAttribute("data-vd-id",E.id),I.set($,F)),kn(F,E),D.nextSibling!==F&&k.insertBefore(F,D.nextSibling),D=F}for(let[E,$]of I)b.has(E)||($.remove(),I.delete(E));dr(k,p),i.afterPaint(),o&&t.onSceneChange?.(d,n)}let V=new Map;function ne(o){let p=[...o.gradients.map(Kt),...[...new Map(o.items.filter(Be).map(E=>[E.id,E])).values()].map(E=>Gt(E)),...qt(o.items).map(Yt),...o.clips.map(jt),...o.items.filter(E=>E.mask!==void 0).map(nn)],O=new Set(p);for(let[E,$]of V)O.has(E)||($.remove(),V.delete(E));let b=p.filter(E=>!V.has(E));if(b.length===0)return;[...new DOMParser().parseFromString(`<svg xmlns="${H}">${b.join("")}</svg>`,"image/svg+xml").documentElement.children].forEach((E,$)=>{let F=e.ownerDocument.importNode(E,!0);_.appendChild(F),V.set(b[$],F)})}function K(o){n=o,i.update(n),c=Ve(n),d=it(n,c,m()),ee()}function W(o){let p=e.getBoundingClientRect();return{x:o.clientX-p.left,y:o.clientY-p.top}}let B=0,N=0;function ce(){e.classList.add("vd-viewer--interacting"),N&&clearTimeout(N),N=setTimeout(()=>{N=0,e.classList.remove("vd-viewer--interacting")},180)}function G(){B&&(cancelAnimationFrame(B),B=0),j(),t.onCameraChange?.(S)}function h(o){S=o,G()}function J(o){S=o,ce(),!B&&(B=requestAnimationFrame(()=>{B=0,j(),t.onCameraChange?.(S)}))}let ae=null,Z=null,ue=!1,pe=f&&y==="always",ie=new Map,q=null,oe=()=>{let[o,p]=[...ie.values()];return!o||!p?null:{mid:{x:(o.x+p.x)/2,y:(o.y+p.y)/2},distance:Math.hypot(o.x-p.x,o.y-p.y)}},he=o=>{let p=ie.get(o.pointerId);if(!p)return;let O=W(o);if(ie.set(o.pointerId,O),ie.size===1){J(we(S,O.x-p.x,O.y-p.y));return}let b=oe();if(q&&b){let D=we(S,b.mid.x-q.mid.x,b.mid.y-q.mid.y);J(q.distance>0?Pe(D,b.mid,b.distance/q.distance):D)}q=b},Q=o=>{ie.delete(o.pointerId)&&(e.hasPointerCapture(o.pointerId)&&e.releasePointerCapture(o.pointerId),q=oe())},me=o=>{if(y==="modifier"&&!o.ctrlKey&&!o.metaKey)return;o.preventDefault();let p=W(o),O=o.deltaMode===1?ir:o.deltaMode===2?e.clientHeight||800:1,b=o.deltaX*O,D=o.deltaY*O;if(o.ctrlKey||o.metaKey){let E=o.ctrlKey?nr:rr,$=Math.max(-yn,Math.min(yn,D));J(Pe(S,p,Math.exp(-$*E)));return}if(o.shiftKey&&b===0){J(we(S,-D,0));return}J(we(S,-b,-D))},X=o=>{if(o.pointerType==="touch"){if(!pe)return;o.preventDefault(),ie.set(o.pointerId,W(o)),e.setPointerCapture(o.pointerId),q=oe();return}(o.button===1||o.button===0&&ue)&&(o.preventDefault(),ae=o.pointerId,Z=W(o),e.setPointerCapture(o.pointerId))},ye=o=>{if(o.pointerType==="touch"){he(o);return}if(ae!==o.pointerId||!Z)return;let p=W(o);J(we(S,p.x-Z.x,p.y-Z.y)),Z=p},le=o=>{if(o.pointerType==="touch"){Q(o);return}ae===o.pointerId&&(ae=null,Z=null,e.hasPointerCapture(o.pointerId)&&e.releasePointerCapture(o.pointerId))},ge=o=>{o.code==="Space"&&(ue=!0)},u=o=>{o.code==="Space"&&(ue=!1)};pe&&(e.style.touchAction="none"),f&&(e.addEventListener("wheel",me,{passive:!1}),e.addEventListener("pointerdown",X),e.addEventListener("pointermove",ye),e.addEventListener("pointerup",le),e.addEventListener("pointercancel",le),e.ownerDocument.addEventListener("keydown",ge),e.ownerDocument.addEventListener("keyup",u)),j(),ee();let x={element:e,surface:w,update:K,getDocument:()=>n,getScene:()=>d,setTime(o){o===null&&P===null||(P=o,ee(!1))},getTime:()=>P,getResolution:()=>c,getMeasurer:()=>a,setFonts(o){i.destroy(),i=r(o),K(n)},getCamera:()=>S,setCamera:h,zoomBy(o,p){let O=e.getBoundingClientRect(),b=p??{x:O.width/2,y:O.height/2};h(Pe(S,b,o))},fitToContent(o=32){let p=e.getBoundingClientRect();h(fe({x:d.x,y:d.y,width:d.width,height:d.height},{width:p.width||d.width,height:p.height||d.height},o))},screenToDocument:o=>Ke(S,o),documentToScreen:o=>dt(S,o),pointerPoint:W,hitTest(o,p){for(let O=d.items.length-1;O>=0;O--){let b=d.items[O];if(b&&xr(b,o,vr/S.zoom)&&(!p||p(b.id)))return b.id}return null},linkAt(o,p){for(let O=d.items.length-1;O>=0;O--){let b=d.items[O];if(b?.kind!=="text"||p&&!p(b.id))continue;let D=b.rotation===0?o:et(o,{x:b.x+b.w/2,y:b.y+b.h/2},-b.rotation);for(let E of b.lines){if(D.y<E.y||D.y>E.y+E.h)continue;let $=E.spans.find(F=>D.x>=F.x&&D.x<=F.x+F.w);if($)return $.style.link}}},itemOf:o=>d.items.find(p=>p.id===o),elementOf:o=>I.get(o),elementsOf:o=>[I.get(vn(o)),I.get(o),I.get(wn(o))].filter(p=>p!==void 0),destroy(){f&&(e.removeEventListener("wheel",me),e.removeEventListener("pointerdown",X),e.removeEventListener("pointermove",ye),e.removeEventListener("pointerup",le),e.removeEventListener("pointercancel",le),e.ownerDocument.removeEventListener("keydown",ge),e.ownerDocument.removeEventListener("keyup",u)),B&&cancelAnimationFrame(B),N&&clearTimeout(N),B=0,N=0,i.destroy(),e.classList.remove("vd-viewer--interacting"),w.remove(),I.clear(),e.classList.remove("vd-viewer")}};return t.autoFit&&x.fitToContent(),x}function wn(e){return`${e}\0border`}function vn(e){return`${e}\0backdrop`}var or="vd-clip-";function sr(e){return or+e}function Ge(e){return`url(#${sr(e)})`}function We(e){return e.veil!==void 0||En(e)?"g":_e(e)}function ar(e){let{veil:t,...n}=e;return t===void 0?e:n}function En(e){return Xt(e)||e.pose!==void 0}function ke(e){return Ut(e)?"path":"rect"}function _e(e){if(e.mask!==void 0||je(e))return"g";switch(e.kind){case"border":return ke(e.radii);case"connector":return"g";case"ellipse":return"ellipse";case"frame":return ke(e.radii);case"image":return e.href===void 0&&e.video?.clip!==void 0?"g":e.href===void 0?ke(e.radii):Ze(e.radii)?"image":"g";case"rect":return ke(e.radii);case"text":return"text";case"vector":return"path"}}function kn(e,t){if(t.veil!==void 0){M(e,"clip-path",t.veil.clip===void 0?null:Ge(t.veil.clip)),e.style.filter=`url(#${Wt}${t.veil.id})`;let i=ar(t),a=e.firstElementChild;(!a||a.tagName!==We(i)||e.childElementCount!==1)&&(e.replaceChildren(),a=e.ownerDocument.createElementNS(H,We(i)),e.appendChild(a)),kn(a,i);return}if(!En(t)){ut(e,t);return}M(e,"clip-path",t.clip===void 0?null:Ge(t.clip)),e.style.mixBlendMode=t.blend==="normal"?"":t.blend;let n=t.pose;M(e,"opacity",n&&n.opacity<1?String(n.opacity):null);let r=e.firstElementChild;if((!r||r.tagName!==_e(t))&&(r?.remove(),r=e.ownerDocument.createElementNS(H,_e(t)),e.appendChild(r)),ut(r,{...t,clip:void 0,blend:"normal"}),n){let i=t.rotation===0||t.mask!==void 0?"":` ${st(t)}`;C(r,"transform",`${Jt(n)}${i}`),t.kind==="vector"&&cr(r,t)}}function cr(e,t){if(je(t))return;let n=t.pose?.trace;if(n!==void 0&&t.stroke!==void 0){let i=t.dash??[],a=Vt(i,Dt(t.contours),n);C(e,"stroke-dasharray",a.array.join(" ")),M(e,"stroke-dashoffset",a.offset!==0||i.length===0?String(a.offset):null)}let r=t.pose?.fillOpacity;M(e,"fill-opacity",r!==void 0&&r<1?String(r):null)}function ut(e,t){if(t.mask!==void 0){lr(e,t);return}if(M(e,"clip-path",t.clip===void 0?null:Ge(t.clip)),M(e,"transform",t.rotation===0?null:st(t)),e.style.mixBlendMode=t.blend==="normal"?"":t.blend,e.style.filter=Be(t)?`url(#${ot}${t.id})`:"",je(t)){let n="opacity"in t?t.opacity:1;M(e,"opacity",n<1?String(n):null),Le(e,sn(t));return}switch(t.kind){case"border":fr(e,t);return;case"connector":M(e,"opacity",t.opacity<1?String(t.opacity):null),Le(e,on(t));return;case"ellipse":yr(e,t);return;case"frame":ur(e,t);return;case"image":pr(e,t);return;case"rect":gr(e,t);return;case"text":mr(e,t);return;case"vector":wr(e,t);return}}function lr(e,t){M(e,"clip-path",t.clip===void 0?null:Ge(t.clip)),M(e,"transform",null),e.style.mixBlendMode=t.blend==="normal"?"":t.blend,e.style.filter=Be(t)?`url(#${ot}${t.id})`:"";let n="opacity"in t?t.opacity:1;M(e,"opacity",n<1?String(n):null);let r=e.ownerDocument,i=e.firstElementChild;(i?.tagName!=="g"||e.childElementCount!==1)&&(e.replaceChildren(),i=r.createElementNS(H,"g"),e.appendChild(i)),C(i,"clip-path",`url(#${Qt}${t.id})`);let a=en(t),c=i.firstElementChild;c?.tagName!==_e(a)&&(c?.remove(),c=r.createElementNS(H,_e(a)),i.appendChild(c)),ut(c,a);let m=tn(t),d=i.nextElementSibling;if(m===""){d?.remove();return}d||(d=r.createElementNS(H,"g"),e.appendChild(d)),Le(d,m)}var xn=new WeakMap;function dr(e,t){let n=new Map;for(let r of t.items)r.kind==="image"&&r.video?.clip!==void 0&&r.href===void 0&&n.set(r.id,r.video.at/1e3);if(n.size!==0)for(let r of e.querySelectorAll("video[data-vd-video]")){let i=n.get(r.getAttribute("data-vd-video")??"");if(i===void 0)continue;let a=r;if(a.muted=!0,!(Math.abs(a.currentTime-i)<1/60))try{a.currentTime=i}catch{}}}function Le(e,t){let n=xn.get(e);if(n?.markup===t&&n.first===e.firstChild&&n.last===e.lastChild)return;let r=new DOMParser().parseFromString(`<svg xmlns="${H}">${t}</svg>`,"image/svg+xml"),i=e.ownerDocument;e.replaceChildren(...[...r.documentElement.children].map(a=>i.importNode(a,!0))),xn.set(e,{markup:t,first:e.firstChild,last:e.lastChild})}function fr(e,t){M(e,"class",null),De(e,t,t.radii),C(e,"fill","none"),pt(e,t)}function pt(e,t){let n=nt(t);M(e,"stroke",n?.paint??null),M(e,"stroke-width",n?String(n.width):null),t.kind==="vector"&&t.pose?.trace!==void 0||(M(e,"stroke-dasharray",n&&n.dash.length>0?n.dash.join(" "):null),M(e,"stroke-dashoffset",null)),M(e,"stroke-linecap",n&&n.cap!=="butt"?n.cap:null),M(e,"stroke-linejoin",n&&n.join!=="miter"?n.join:null)}function ur(e,t){C(e,"class","vd-viewer__page"),De(e,t,t.radii),M(e,"fill",t.background??null)}function pr(e,t){if(M(e,"opacity",t.opacity<1?String(t.opacity):null),t.href===void 0&&t.video?.clip!==void 0){Le(e,rn(t));return}if(t.href===void 0){C(e,"class","vd-viewer__missing"),De(e,t,t.radii);return}if(e.tagName!=="g"){bn(e,t);return}let n=e.ownerDocument,r=e.firstElementChild;r?.tagName!=="clipPath"&&(e.replaceChildren(),r=n.createElementNS(H,"clipPath"),e.appendChild(r)),C(r,"id",at+t.id);let i=r.firstElementChild;i?.tagName!==ke(t.radii)&&(i?.remove(),i=n.createElementNS(H,ke(t.radii)),r.appendChild(i)),De(i,t,t.radii);let a=r.nextElementSibling;a?.tagName!=="image"&&(a?.remove(),a=n.createElementNS(H,"image"),e.appendChild(a)),bn(a,t),C(a,"clip-path",`url(#${at}${t.id})`)}function bn(e,t){C(e,"x",String(t.x)),C(e,"y",String(t.y)),C(e,"width",String(t.w)),C(e,"height",String(t.h)),C(e,"href",t.href??""),C(e,"preserveAspectRatio",hr[t.fit])}function De(e,t,n){if(e.tagName==="path"){C(e,"d",Ht(t,n));return}C(e,"x",String(t.x)),C(e,"y",String(t.y)),C(e,"width",String(t.w)),C(e,"height",String(t.h)),M(e,"rx",Ze(n)?null:String(n.tl))}var hr={cover:"xMidYMid slice",contain:"xMidYMid meet",fill:"none"};function mr(e,t){M(e,"opacity",t.opacity<1?String(t.opacity):null),C(e,"xml:space","preserve"),pt(e,t),M(e,"paint-order",nt(t)?"stroke":null);let n=t.lines.flatMap(i=>i.spans).filter(i=>i.text!==""),r=e.ownerDocument;for(;e.childNodes.length>n.length;)e.lastChild?.remove();for(;e.childNodes.length<n.length;)e.appendChild(r.createElementNS(H,"tspan"));n.forEach((i,a)=>{let c=e.childNodes[a];c.textContent!==i.text&&(c.textContent=i.text),C(c,"x",String(i.x)),C(c,"y",String(i.y)),C(c,"font-family",i.style.family),C(c,"font-size",String(i.style.size)),C(c,"fill",i.style.fill),M(c,"font-weight",i.style.weight===400?null:String(i.style.weight)),M(c,"font-style",i.style.italic?"italic":null),M(c,"letter-spacing",i.style.letterSpacing===0?null:String(i.style.letterSpacing)),M(c,"data-vd-link",i.style.link??null);let m=[i.style.underline?"underline":"",i.style.strike?"line-through":""].filter(Boolean).join(" ");M(c,"text-decoration",m===""?null:m)})}function gr(e,t){M(e,"class",null),De(e,t,t.radii),ht(e,t)}function ht(e,t){if(C(e,"fill",t.fill),M(e,"stroke",t.stroke??null),M(e,"stroke-width",t.stroke&&t.strokeWidth>0?String(t.strokeWidth):null),M(e,"opacity",t.opacity<1?String(t.opacity):null),t.kind==="vector"){if(t.pose?.trace===void 0){let n=t.stroke!==void 0?t.dash??[]:[];M(e,"stroke-dasharray",n.length>0?n.join(" "):null),M(e,"stroke-dashoffset",null)}return}pt(e,t)}function yr(e,t){C(e,"cx",String(t.x+t.w/2)),C(e,"cy",String(t.y+t.h/2)),C(e,"rx",String(t.w/2)),C(e,"ry",String(t.h/2)),ht(e,t)}function wr(e,t){C(e,"d",t.d),ht(e,t),M(e,"fill-rule",t.rule==="nonzero"?null:t.rule),M(e,"stroke-linecap",t.cap==="butt"?null:t.cap),M(e,"stroke-linejoin",t.join==="miter"?null:t.join)}function C(e,t,n){e.getAttribute(t)!==n&&e.setAttribute(t,n)}function M(e,t,n){n===null?e.hasAttribute(t)&&e.removeAttribute(t):C(e,t,n)}var vr=4;function xr(e,t,n){if(e.mask!==void 0&&!Ee(e.mask.contours,t,{fill:!0,rule:e.mask.rule,reach:n}))return!1;let r=e.rotation===0?t:et(t,{x:e.x+e.w/2,y:e.y+e.h/2},-e.rotation),i=r.x>=e.x&&r.x<=e.x+e.w&&r.y>=e.y&&r.y<=e.y+e.h;if(e.kind==="border")return!1;if(e.kind==="ellipse"){let a=rt(e),c=e.w/2+a,m=e.h/2+a;if(c<=0||m<=0)return!1;let d=(r.x-(e.x+e.w/2))/c,S=(r.y-(e.y+e.h/2))/m;return d*d+S*S<=1}if(e.kind==="connector"){let a=e.strokeWidth/2+n;return Ee(e.contours,r,{fill:!1,rule:"nonzero",reach:a})||Ee(e.filled.contours,r,{fill:!0,rule:"nonzero",reach:n})||Ee(e.lined.contours,r,{fill:!1,rule:"nonzero",reach:a})}if(e.kind==="vector"){let a=e.stroke!==void 0&&e.strokeWidth>0;return Ee(e.contours,r,{fill:e.fill!=="none",rule:e.rule,reach:(a?rt(e):0)+n})}return i}function Se(e,t){let n=new Map;for(let i of t.items)i.kind==="frame"&&i.w>0&&i.h>0&&n.set(i.id,{id:i.id,x:i.x,y:i.y,w:i.w,h:i.h});let r=e.root.children.flatMap(i=>{if(i.type!=="frame"||i.component===!0)return[];let a=n.get(i.id);return a?[{...a,skip:i.skip===!0}]:[]});return r.length===0?[{id:null,x:t.x,y:t.y,w:t.width,h:t.height,skip:!1}]:r.every(i=>i.skip)?r.map(i=>({...i,skip:!1})):r}function Sn(e,t){return e.root.children.find(r=>r.type==="frame"&&Ot(r,t)!==void 0)?.id}function An(e,t){let n=t===void 0?-1:e.findIndex(r=>r.id===t);return n!==-1?n:Math.max(0,e.findIndex(r=>!r.skip))}function Ae(e,t,n){for(let r=t+n;r>=0&&r<e.length;r+=n)if(!e[r]?.skip)return r;return t}function Mn(e){return e.filter(t=>!t.skip).length}function mt(e,t){return e[t]?.skip!==!1?null:e.slice(0,t+1).filter(n=>!n.skip).length}function Tn(e,t){if(!/^\d+$/.test(e))return null;let n=Number(e),r=t.findIndex((i,a)=>mt(t,a)===n);return r===-1?null:r}function On(e,t,n){let r=Sn(e,n),i=t.findIndex(a=>a.id!==null&&a.id===r);return i===-1?null:i}var br=gt($t),Er=gt(zt),Cn=gt(Rt);function gt(e){return`cubic-bezier(${e.join(", ")})`}function Pn(e,t,n,r,i){let a={opacity:n},c=kr(e,t,r,i);if(e==="cut")return{keyframes:t==="enter"?[{visibility:"hidden"},{visibility:"hidden"}]:[{visibility:"visible"},{visibility:"visible"}],easing:"linear"};if(e==="pop"){let m=`${i.x}px ${i.y}px`;a.scale="1",a.transformOrigin=m}else(e==="rise"||e==="drop")&&(a.translate="0 0");return t==="enter"?{keyframes:[c,a],easing:br}:{keyframes:[a,c],easing:Er}}function kr(e,t,n,r){switch(e){case"rise":return{opacity:0,translate:`0 ${t==="enter"?n:-n}px`};case"drop":return{opacity:0,translate:`0 ${t==="enter"?-n:n}px`};case"pop":return{opacity:0,scale:String(Nt),transformOrigin:`${r.x}px ${r.y}px`};case"fade":case"cut":case"wipe":case"grow":case"count":case"draw":return{opacity:0}}}function _n(e,t){let n=t==="forward"?"-100%":"100%",r=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:`${n} 0`}],live:[{translate:`${r} 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 Sr={enter:"cut",duration:0,steps:[[]],clicks:new Map,scroll:!1};function yt(e){let t=new Map,n=new Map,r=new Map;Tt(e.root,(m,d)=>{d&&(n.set(m.id,d.id),r.set(d.id,[...r.get(d.id)??[],m.id]))});let i=Lt(e),a=_t(e);for(let[m,d]of Object.entries(e.motion??{})){if(!a.has(m))continue;let S=[[]],f=new Map,y=Ct(d);for(let w of d.lines){if(w.id===m||i.get(w.id)!==m)continue;let k=w.go===void 0?void 0:Pt(w.go);k&&f.set(w.id,k);let _=w.enter!==void 0?"enter":w.exit!==void 0?"exit":null,v=w.enter??w.exit;_===null||v===void 0||(w.step&&S.push([]),S.at(-1).push({id:w.id,kind:_,effect:v,duration:v==="cut"?0:Xe(w.duration,y,Je),delay:Xe(w.delay,y,0),together:w.together===!0}))}t.set(m,{enter:d.enter??"cut",duration:d.duration??Je,steps:S,clicks:f,scroll:d.scroll===!0})}let c=m=>[m,...(r.get(m)??[]).flatMap(d=>c(d))];return{pages:t,parents:n,within:c}}function Ln(e,t){let n=t?.id;return(n?e.pages.get(n):void 0)??Sr}function wt(e){let t=0,n=0;return e.map((r,i)=>(t=(i===0?0:r.together?t:n)+r.delay,n=t+r.duration,{build:r,at:t}))}function Dn(e){return Math.max(0,...wt(e).map(({build:t,at:n})=>n+t.duration))}function ve(e,t){let n=new Set,r=new Set;for(let i of e.steps.flat())r.has(i.id)||(r.add(i.id),i.kind==="enter"&&n.add(i.id));for(let i of e.steps.slice(0,t).flat())i.kind==="enter"?n.delete(i.id):n.add(i.id);return n}function Fn(e,t,n){for(let r=n;r!==void 0;r=e.parents.get(r)){let i=t.clicks.get(r);if(i)return{id:r,target:i}}}function In(e,t,n){let r=[...e];for(;r.length>0;){let i=r.pop(),a=t.findIndex(c=>c.id!==null&&c.id===i);if(a!==-1&&a!==n)return{index:a,history:r}}return null}function Nn(e,t,n){let r=Ce(t.width/Math.max(1,e.w));if(e.h*r<=t.height)return{camera:fe({x:e.x,y:e.y,width:e.w,height:e.h},t,0),top:0,max:0};let i=e.h-t.height/r,a=Math.min(Math.max(0,n),i),c=(t.width-e.w*r)/2-e.x*r;return{camera:{zoom:r,x:c,y:0-(e.y+a)*r},top:a,max:i}}var Ie=.9,vt=.1;function $n(e,t){return e.deltaMode===1?e.deltaY*16:e.deltaMode===2?e.deltaY*t.height:e.deltaY}var Ar=1500,Mr=2e3,Tr=200,Or=50;function xt(e,t){let n=e.ownerDocument;e.classList.add("vd-player"),e.tabIndex=-1;let r=new Set,i=new Set,a=!1,c=Fe(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:()=>{a&&X()}}),m=n.createElementNS(H,"path");m.setAttribute("class","vd-player__mask"),m.setAttribute("fill","#000"),m.setAttribute("fill-rule","evenodd"),c.surface.appendChild(m);let d=n.createElement("div");d.className="vd-player__counter",d.setAttribute("aria-live","polite"),e.appendChild(d);let S=yt(t.document),f=Se(t.document,c.getScene()),y=An(f,t.start),w=[],k=0,_=[],v,I=0,P="",T=0,j=0,ee=1,V=new Map,ne,K=0,W,B,N=n.defaultView,ce=()=>typeof c.surface.animate=="function"&&!(N?.matchMedia?.("(prefers-reduced-motion: reduce)").matches??!1),G=()=>Ln(S,f[y]),h;function J(){let s=f[y]?.id;if(!t.timeline||!s)return;let l=c.getDocument();return Qe(l.motion?.[s])?t.timeline.of(l,s):void 0}function ae(s,l){return Math.min(s.length,...s.steps.filter(g=>g>l))}function Z(){h&&(c.setTime({timeline:h.timeline,t:h.t}),h.timeline.camera&&Q())}function ue(s){if(!h||(h.frame=0,!h.playing))return;let l=h.last===0?0:s-h.last;h.last=s;let g=ae(h.timeline,h.t);h.t=Math.min(g,t.sound?.position()??h.t+l),h.t>=g&&(h.playing=!1,t.sound?.stop()),Z(),h.playing&&(h.frame=N?.requestAnimationFrame(ue)??0)}function pe(){if(h){if(!ce()||!N?.requestAnimationFrame){h.t=ae(h.timeline,h.t),Z();return}h.playing=!0,h.last=0,t.sound?.play(h.timeline,h.t),h.frame=N.requestAnimationFrame(ue)}}function ie(){h?.frame&&N?.cancelAnimationFrame(h.frame),h=void 0,t.sound?.stop(),c.setTime(null)}function q(s,l){h={timeline:s,t:l?0:s.length,playing:!1,last:0,frame:0},t.sound?.prepare(c.getDocument(),s),Z(),l&&pe()}function oe(){let s=J();s?(k=G().steps.length,q(s,!0)):p()}function he(){let s=e.getBoundingClientRect(),l=f[y];return{width:s.width||l?.w||1,height:s.height||l?.h||1}}function Q(){let s=f[y];if(!s)return;let l=he(),g=h?.timeline.camera&&t.timeline?t.timeline.camera(h.timeline,h.t,c.getScene(),{doc:c.getDocument(),resolution:c.getResolution()}):{x:s.x,y:s.y,w:s.w,h:s.h},A=fe({x:g.x,y:g.y,width:g.w,height:g.h},l,0);if(j=0,G().scroll){let L=Nn(s,l,T);A=L.camera,T=L.top,j=L.max}ee=A.zoom,c.setCamera(A);let z=g.x*A.zoom+A.x,R=g.y*A.zoom+A.y,Y=g.w*A.zoom,se=g.h*A.zoom;m.setAttribute("d",`M0 0H${l.width}V${l.height}H0ZM${z} ${R}h${Y}v${se}h${-Y}Z`),m.dataset.slide=s.id??""}function me(){let s=mt(f,y),l=Mn(f);d.textContent=s===null?"Skipped":`${s} / ${l}`,d.classList.add("vd-player__counter--shown"),W&&clearTimeout(W),W=setTimeout(()=>d.classList.remove("vd-player__counter--shown"),Ar),t.onChange?.(s,l)}function X(){let s=new Set;for(let l of r)for(let g of S.within(l))s.add(g);i=s;for(let l of c.surface.querySelectorAll("[data-vd-hidden]")){let g=l.getAttribute("data-vd-id");(g===null||!s.has(g))&&l.removeAttribute("data-vd-hidden")}for(let l of s)for(let g of c.elementsOf(l))g.setAttribute("data-vd-hidden","")}function ye(s){return S.within(s).flatMap(l=>c.elementsOf(l))}function le(s){let l=1/0,g=1/0,A=-1/0,z=-1/0;for(let R of S.within(s)){let Y=c.itemOf(R);Y&&(l=Math.min(l,Y.x),g=Math.min(g,Y.y),A=Math.max(A,Y.x+Y.w),z=Math.max(z,Y.y+Y.h))}return Number.isFinite(l)?{x:(l+A)/2,y:(g+z)/2}:{x:0,y:0}}function ge(){if(!(_.length===0&&!v)){I+=1,k===0&&(k=1),r=ve(G(),k),X();for(let s of _)s.cancel();_=[],v?.remove(),v=void 0}}function u(){return _.length===0&&!v?!1:(ge(),!0)}function x(s,l){return new Promise(g=>{let A=!1,z=()=>{A||(A=!0,g())};Promise.all(s.map(R=>R.finished)).then(z,()=>{A=!0}),setTimeout(()=>{if(!A){for(let R of s)(R.playState==="running"||R.playState==="paused")&&R.finish();z()}},l+Or)})}function o(s,l,g){if(s===y||!f[s])return;let A=G(),z=f[y]?.id;z&&V.set(z,ne===void 0?T:K),O(),y=s;let R=G(),Y=f[s]?.id;T=l||!Y?0:V.get(Y)??0;let se=g==="forward"?R:A,L=ce()?_n(se.enter,g):null;L&&(v=c.surface.cloneNode(!0),v.classList.add("vd-player__still"),v.setAttribute("aria-hidden","true"),L.stillOnTop?c.surface.after(v):c.surface.before(v)),ie();let Te=J();if(Q(),Te?(k=R.steps.length,r=new Set,q(Te,!1),l&&h&&(h.t=0),Z()):(k=l?0:R.steps.length,r=ve(R,k)),X(),me(),!L||!v){l&&oe();return}let ze={duration:se.duration,easing:Cn},re=[];L.still&&re.push(v.animate(L.still,{...ze,fill:"forwards"})),L.live&&re.push(c.surface.animate(L.live,ze)),_.push(...re);let xe=I;x(re,se.duration).then(()=>{if(xe===I){_=_.filter(be=>!re.includes(be));for(let be of re)be.cancel();v?.remove(),v=void 0,l&&oe()}})}function p(){let s=G(),l=s.steps[k];if(l===void 0)return;k+=1;let g=ve(s,k);if(l.length===0)return;if(!ce()){r=g,X();return}let A=new Set(l.filter(L=>L.kind==="enter").map(L=>L.id));r=new Set([...ve(s,k-1)].filter(L=>!A.has(L))),X();let z=f[y],R=tt*Math.min(z?.w??0,z?.h??0),Y=I,se=[];for(let{build:L,at:Te}of wt(l)){let ze=le(L.id),re=[];for(let xe of ye(L.id)){let be=Number(xe.getAttribute("opacity")??1),{keyframes:Gn,easing:Wn}=Pn(L.effect,L.kind,Number.isFinite(be)?be:1,R,ze);re.push(xe.animate(Gn,{duration:L.duration,delay:Te,easing:Wn,fill:L.kind==="enter"?"backwards":"forwards"}))}se.push(...re),L.kind==="exit"&&re.length>0&&x(re,Te+L.duration).then(()=>{if(Y===I){r.add(L.id),X();for(let xe of re)xe.cancel()}})}_.push(...se),x(se,Dn(l)).then(()=>{if(Y===I){_=_.filter(L=>!se.includes(L)),r=g,X();for(let L of se)L.cancel()}})}function O(){ne!==void 0&&N?.cancelAnimationFrame(ne),ne=void 0}function b(s){if(O(),K=Math.min(Math.max(0,s),j),!ce()||!N?.requestAnimationFrame){T=K,Q();return}let l=T,g,A=z=>{g??=z;let R=Math.min(1,(z-g)/Tr);T=l+(K-l)*(1-(1-R)**3),Q(),ne=R<1?N.requestAnimationFrame(A):void 0};ne=N.requestAnimationFrame(A)}function D(s,l){if(u())return;let g=ne===void 0?T:K;if(!(s>0?T>=j-.5:T<=.5)){b(g+s*he().height/ee);return}l||(s>0?F():U())}function E(s){if(!(!G().scroll||j<=0))switch(s.key){case" ":return s.shiftKey?-Ie:Ie;case"PageDown":return Ie;case"PageUp":return-Ie;case"ArrowDown":return vt;case"ArrowUp":return-vt;default:return}}function $(s){let l=Math.min(Math.max(0,s),f.length-1);if(l===y)return;let g=f[y]?.id;g&&w.push(g),o(l,!0,"forward")}function F(){if(!u()){if(h){if(h.playing){h.frame&&N?.cancelAnimationFrame(h.frame),h.playing=!1,t.sound?.stop(),h.t=ae(h.timeline,h.t),Z();return}if(h.t<h.timeline.length){pe();return}}if(k<G().steps.length){p();return}$(Ae(f,y,1))}}function U(){if(u())return;let s=In(w,f,y);if(s){w=s.history,o(s.index,!1,"back");return}o(Ae(f,y,-1),!1,"back")}function te(s){switch(s.kind){case"url":t.onLink?.(s.url);return;case"back":U();return;case"next":$(Ae(f,y,1));return;case"frame":{let l=On(c.getDocument(),f,s.id);l===null?F():qe(l,s.id)}}}function qe(s,l){let g=s===y;g||$(s);let A=f[y];if(!A||!G().scroll)return;let z=A.id===l?void 0:c.itemOf(l),R=z?z.y-A.y:0;g?b(R):(T=R,Q())}function Me(s){let l=f[y];if(!l||s.x<l.x||s.y<l.y||s.x>l.x+l.w||s.y>l.y+l.h)return;let g=Y=>!i.has(Y),A=c.hitTest(s,g),z=A===null?void 0:Fn(S,G(),A);if(z)return z.target;let R=c.linkAt(s,g);return R===void 0?void 0:Re(R)}let $e=s=>{if(s.stopPropagation(),s.metaKey||s.ctrlKey||s.altKey)return;let l=s.key,g=E(s);if(g!==void 0){P="",D(g,s.repeat),s.preventDefault();return}if(/^\d$/.test(l))P+=l;else if(l==="Enter"&&P!==""){let A=Tn(P,f);P="",!u()&&A!==null&&$(A)}else if(l==="Escape")P!==""?P="":t.onExit?.();else if(["ArrowRight","ArrowDown","PageDown"," ","Enter"].includes(l))P="",F();else if(["ArrowLeft","ArrowUp","PageUp","Backspace"].includes(l))P="",U();else if(l==="Home")u()||$(Ae(f,-1,1));else if(l==="End")u()||$(Ae(f,f.length,-1));else return;s.preventDefault()},kt=s=>{if(u())return;let l=Me(c.screenToDocument(c.pointerPoint(s)));l?te(l):F()},St=s=>{!G().scroll||j<=0||(s.preventDefault(),!(v||s.ctrlKey||s.metaKey)&&(O(),T=Math.min(Math.max(0,T+$n(s,he())/ee),j),Q()))},Ye=s=>{if(e.classList.remove("vd-player--idle"),B&&clearTimeout(B),B=setTimeout(()=>e.classList.add("vd-player--idle"),Mr),!s)return;let l=c.screenToDocument(c.pointerPoint(s));e.classList.toggle("vd-player--link",Me(l)!==void 0)},At=N&&"ResizeObserver"in N?new N.ResizeObserver(()=>Q()):void 0;return At?.observe(e),e.addEventListener("keydown",$e),e.addEventListener("click",kt),e.addEventListener("pointermove",Ye),e.addEventListener("wheel",St,{passive:!1}),a=!0,Q(),r=J()?new Set:ve(G(),0),X(),me(),Ye(),e.focus({preventScroll:!0}),oe(),{viewer:c,index:()=>y,count:()=>f.length,next:F,back:U,go(s){ge(),$(s)},update(s){if(s===c.getDocument())return;ge();let l=f[y]?.id;c.update(s),S=yt(s),f=Se(s,c.getScene());let g=f.findIndex(z=>z.id===l);y=g===-1?Math.min(y,f.length-1):g,g===-1&&(O(),T=0),ie();let A=J();A&&q(A,!1),Q(),k=G().steps.length,r=A?new Set:ve(G(),k),X()},refit:Q,destroy(){I+=1,O(),h?.frame&&N?.cancelAnimationFrame(h.frame),h=void 0,t.sound?.stop();for(let s of _)s.cancel();_=[],v?.remove(),At?.disconnect(),e.removeEventListener("wheel",St),e.removeEventListener("keydown",$e),e.removeEventListener("click",kt),e.removeEventListener("pointermove",Ye),W&&clearTimeout(W),B&&clearTimeout(B),m.remove(),d.remove(),c.destroy(),e.classList.remove("vd-player","vd-player--idle","vd-player--link"),e.removeAttribute("tabindex")}}}function zn(e){let t=e,n=new Map,r=typeof URL.createObjectURL=="function"&&typeof URL.revokeObjectURL=="function";return{resolve(i){let a=n.get(i.hash);if(a!==void 0)return a;let c=t.get(i.hash);if(c===void 0)return;if(!r)return Ft(i.type,c);let m;try{m=It(c)}catch{return}let d=URL.createObjectURL(new Blob([m],{type:i.type}));return n.set(i.hash,d),d},replace(i){t=i;for(let[a,c]of n)i.has(a)||(URL.revokeObjectURL(c),n.delete(a))},destroy(){for(let i of n.values())URL.revokeObjectURL(i);n.clear(),t=new Map}}}var bt=["page","content","none"],Rn=24;function Ne(e){let t=e.getBoundingClientRect();return{width:t.width,height:t.height}}function Vn(e,t){let n=t===void 0?void 0:e.itemOf(t);if(!(!n||n.w<=0||n.h<=0))return{x:n.x,y:n.y,width:n.w,height:n.h}}function Bn(e,t,n,r){if(n==="none")return;let i=n==="page"?Vn(e,r):void 0;if(!i){e.fitToContent(Rn);return}let a=Ne(t);e.setCamera(fe(i,{width:a.width||i.width,height:a.height||i.height},Rn))}function jn(e,t,n){let r=Vn(e,n);if(!r)return;let i=e.getCamera(),a=Ne(t),c=a.width||r.width*i.zoom,m=a.height||r.height*i.zoom;e.setCamera({zoom:i.zoom,x:c/2-(r.x+r.width/2)*i.zoom,y:m/2-(r.y+r.height/2)*i.zoom})}var Et=Symbol.for("vdesign.embed.handover");function Hn(e){return e[Et]}var Un=["exact","browser"],Kn=["ready","problems","page","fonts"];async function Cr(e,t){try{let{exactFontsAt:n}=await import("./chunks/fonts.js"),r=n(e);return(await r.ensure(t)).length===0?r:void 0}catch{return}}async function Li(e,t,n={}){let r=n.fit??"page";if(!bt.includes(r))throw new TypeError(`view: fit must be one of ${bt.join(", ")}; got ${String(r)}.`);let i=n.fonts??"exact";if(!Un.includes(i))throw new TypeError(`view: fonts must be one of ${Un.join(", ")}; got ${String(i)}.`);let a=i==="exact"?cn(n.fontBase,Mt,e.ownerDocument.baseURI):void 0,c=Hn(n),m=await ct(t),d=c?.page!==void 0&&de(m.document).some(u=>u.id===c.page)?c.page:n.page===void 0?de(m.document)[0]?.id:Oe(m.document,n.page).id,S=c?.exact&&a?await Cr(a,m.document):void 0,f=e.ownerDocument,y=f.defaultView,w=zn(m.blocks),k=m.blocks,_=[...m.problems],v,I=()=>v?[..._,v]:[..._],P=f.createElement("div");P.className="vd-embed",P.style.width="100%",P.style.height="100%",e.appendChild(P);let T=Fe(P,{document:m.document,interactive:n.interactive??!0,wheel:"modifier",resolveAsset:u=>w.resolve(u),...n.surface?{surface:n.surface}:{},...c?{camera:c.camera}:{},...S?{fonts:S.library}:{}}),j={ready:new Set,problems:new Set,page:new Set,fonts:new Set},ee=!1,V=!1,ne=0,K,W,B=S,N=i==="browser"?"browser":void 0,ce;function G(){ee=!0;for(let u of j.ready)u()}function h(){for(let u of j.problems)u(I())}function J(u){N=u;for(let x of j.fonts)x(u)}function ae(){return ce??=(async()=>{if(a)try{let{exactFontsAt:u}=await import("./chunks/fonts.js");return u(a)}catch{return}})(),ce}function Z(u){B=void 0,T.setFonts(void 0),K?.fonts(void 0),v=u,h(),J("browser")}async function ue(){let u=await ae();if(!V){if(!u){Z(He([],a?"the fonts chunk would not load":"no fontBase was given and this build has no default"));return}for(;;){let x=T.getDocument(),o=await u.ensure(x);if(V)return;if(o.length>0){Z(He(o));return}if(T.getDocument()===x)break}B=u,T.setFonts(u.library),K?.fonts(u),J("exact")}}function pe(){let u=ie(d);if(u)for(let x of j.page)x(u)}function ie(u){let x=de(T.getDocument()).find(o=>o.id===u);if(x)return x.name===void 0?{id:x.id}:{id:x.id,name:x.name}}let q=()=>Bn(T,P,r,d),oe=()=>jn(T,P,d);function he(u){if(V)return;let x=Oe(T.getDocument(),u).id,o=x!==d;d=x,r==="page"?q():oe(),o&&pe()}function Q(u){n.onLink?n.onLink(u):y?.open(u,"_blank","noopener,noreferrer")}let me=u=>{if(u.button!==0||K)return;let x=T.linkAt(T.screenToDocument(T.pointerPoint(u)));if(x===void 0)return;let o=Re(x);if(o){if(u.preventDefault(),o.kind==="frame"){de(T.getDocument()).some(p=>p.id===o.id)&&he(o.id);return}Q(o.url)}};P.addEventListener("click",me);let X=Ne(P),ye=y&&"ResizeObserver"in y?new y.ResizeObserver(()=>{let u=Ne(P);u.width===X.width&&u.height===X.height||(X=u,q())}):void 0;ye?.observe(P),c||(r==="none"&&d!==void 0&&n.page!==void 0?oe():q()),G(),S?J("exact"):i==="exact"&&ue();let le={async load(u){if(V)throw new Error("view: this view was destroyed.");let x=++ne,o=await ct(u),p=B,O=p?await p.ensure(o.document):[];if(W&&await W||V||x!==ne)return;O.length>0&&B===p&&Z(He(O)),w.replace(o.blocks),k=o.blocks,T.update(o.document),_=[...o.problems],K?.update(o.document),de(o.document).some(D=>D.id===d)||(d=de(o.document)[0]?.id,r==="page"?q():oe(),pe()),h(),G()},pages:()=>de(T.getDocument()).map(u=>u.name===void 0?{id:u.id}:{id:u.id,name:u.name}),goTo:he,fit:()=>{V||q()},play(u={}){if(V)return Promise.reject(new Error("view: this view was destroyed."));try{return K?.stop(),Promise.resolve(ge(T.getDocument(),u.page))}catch(x){return Promise.reject(x instanceof Error?x:new Error(String(x)))}},async edit(u={}){if(V)throw new Error("view: this view was destroyed.");if(W)throw new Error("view: edit() is already opening an editor.");let x;W=new Promise(p=>x=p);let o=!1;try{let{edit:p}=await import("./edit.js");if(V)throw new Error("view: this view was destroyed.");let O={camera:T.getCamera(),page:d,exact:B!==void 0},b=an(T.getDocument(),k,_),D=await p(e,b,{...n,...u,[Et]:O});if(V)throw D.destroy(),new Error("view: this view was destroyed.");return o=!0,le.destroy(),D}finally{W=void 0,x(o)}},on(u,x){if(!Kn.includes(u))throw new TypeError(`view: on() takes one of ${Kn.join(", ")}; got ${String(u)}.`);let o=j[u];if(o.add(x),u==="ready"&&ee&&queueMicrotask(()=>{o.has(x)&&x()}),u==="problems"&&queueMicrotask(()=>{o.has(x)&&x(I())}),u==="fonts"&&N!==void 0){let p=N;queueMicrotask(()=>{o.has(x)&&x(p)})}return()=>{o.delete(x)}},destroy(){if(!V){V=!0,K?.stop(),P.removeEventListener("click",me),ye?.disconnect(),T.destroy(),w.destroy(),P.remove();for(let u of Object.values(j))u.clear()}}};function ge(u,x){let o=x===void 0?d:Oe(u,x).id,p=f.createElement("div");p.className="vd-embed__play",p.style.position="absolute",p.style.inset="0";let O=U=>U.stopPropagation();p.addEventListener("wheel",O);let b=f.activeElement;P.appendChild(p);let D=!1,E=()=>{if(D)return;D=!0,K===$&&(K=void 0),F.destroy(),p.removeEventListener("wheel",O);let U=p.contains(f.activeElement);p.remove(),U&&b&&"focus"in b&&typeof b.focus=="function"&&b.focus({preventScroll:!0})},$={stop:E,update:U=>F.update(U),fonts:U=>F.viewer.setFonts(U?.library)},F=xt(p,{document:u,resolveAsset:U=>w.resolve(U),...B?{fonts:B.library}:{},...o===void 0?{}:{start:o},onExit:E,onLink:Q});return K=$,{goTo(U){if(D)return;let te=F.viewer.getDocument(),qe=Oe(te,U).id,Me=Se(te,F.viewer.getScene()).findIndex($e=>$e.id===qe);Me!==-1&&F.go(Me)},destroy:E}}return le}export{qn as version,Li as view};
package/edit.css CHANGED
@@ -113,6 +113,37 @@
113
113
  shape-rendering: crispEdges;
114
114
  }
115
115
 
116
+ /* --- masks ---------------------------------------------------------------- */
117
+
118
+ /* The shape cutting a selected image (ROADMAP.md G2). It draws nothing, so
119
+ this outline is the only sight of it: dashed, as a parked node is, because
120
+ it is not what the handles act on. Solid while cropping, when the picture
121
+ is being framed against it. */
122
+ .vd-editor__mask {
123
+ fill: none;
124
+ stroke: var(--vd-selection, var(--vd-accent, #3b82f6));
125
+ stroke-width: 1.5;
126
+ stroke-dasharray: 4 3;
127
+ }
128
+
129
+ /* Under the dashes, in the halo's colour, so the outline reads on a white page
130
+ in the dark theme and a dark page in the light one. */
131
+ .vd-editor__mask-halo {
132
+ fill: none;
133
+ stroke: var(--vd-selection-halo, #fff);
134
+ stroke-width: 3.5;
135
+ }
136
+
137
+ .vd-editor__mask--crop {
138
+ stroke-width: 2;
139
+ stroke-dasharray: none;
140
+ }
141
+
142
+ /* The rest of the picture while cropping: there to place, not to read. */
143
+ .vd-editor__ghost {
144
+ opacity: 0.35;
145
+ }
146
+
116
147
  /* --- paths: point mode and the pen ---------------------------------------- */
117
148
 
118
149
  .vd-editor__path {
@@ -533,6 +564,12 @@
533
564
  opacity: 0.55;
534
565
  }
535
566
 
567
+ /* A mask (ROADMAP.md G2): listed under the image it cuts, and quieter than a
568
+ layer that draws, since it draws nothing. */
569
+ .vd-layers__row[data-mask='true'] .vd-layers__label {
570
+ opacity: 0.7;
571
+ }
572
+
536
573
  /* A part this instance changes: a small dot, the way Figma marks an override. */
537
574
  .vd-layers__dot {
538
575
  flex: 0 0 6px;
@@ -1333,6 +1370,17 @@
1333
1370
  outline-offset: 1px;
1334
1371
  }
1335
1372
 
1373
+ /* A multi-selection's effects that differ (G9): said, not a button, so it does not take hover. */
1374
+ .vd-inspector__empty.vd-effect__mixed:hover {
1375
+ border-style: dashed;
1376
+ color: var(--vd-muted, rgb(0 0 0 / 0.55));
1377
+ }
1378
+
1379
+ /* An effect's type sits closer to its values than to the effect above it (G9). */
1380
+ .vd-inspector__list > .vd-effect__type:not(:first-child) {
1381
+ margin-top: 6px;
1382
+ }
1383
+
1336
1384
  /* A list inside a section — shadows, stops — under a line naming it. */
1337
1385
  .vd-inspector__list {
1338
1386
  display: flex;
@@ -1368,6 +1416,56 @@
1368
1416
  height: 14px;
1369
1417
  }
1370
1418
 
1419
+ /*
1420
+ * The corners: the one Radius field across the row, and when the corners are
1421
+ * independent a field per corner beneath it, on the panel's own two columns so
1422
+ * every edge lines up with the rows above.
1423
+ */
1424
+ .vd-inspector__corners {
1425
+ display: grid;
1426
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
1427
+ gap: 8px;
1428
+ min-width: 0;
1429
+ }
1430
+
1431
+ /* Independent corners: a button inside the field at its end, pressed while open. */
1432
+ .vd-inspector__icon-button.vd-field__toggle {
1433
+ width: 20px;
1434
+ height: 20px;
1435
+ margin-right: -4px;
1436
+ border-radius: 4px;
1437
+ }
1438
+
1439
+ .vd-field__toggle svg {
1440
+ width: 14px;
1441
+ height: 14px;
1442
+ }
1443
+
1444
+ .vd-inspector__icon-button.vd-field__toggle:hover:not(:disabled) {
1445
+ background: var(--vd-rule, rgb(0 0 0 / 0.08));
1446
+ color: var(--vd-ink, #1a1a1f);
1447
+ }
1448
+
1449
+ /* Pressed is chosen, as a switch that is on is: Ink in light, lime in dark. */
1450
+ .vd-inspector__icon-button.vd-field__toggle[aria-pressed='true'],
1451
+ .vd-inspector__icon-button.vd-field__toggle[aria-pressed='true']:hover:not(:disabled) {
1452
+ background: var(--vd-chosen, var(--vd-ink, #1a1a1f));
1453
+ color: var(--vd-on-chosen, #ffffff);
1454
+ }
1455
+
1456
+ /* Each corner's mark is the radius mark turned to its corner; Lucide draws it top-right. */
1457
+ .vd-inspector__corner--tl .vd-field__prefix--icon svg {
1458
+ transform: rotate(-90deg);
1459
+ }
1460
+
1461
+ .vd-inspector__corner--br .vd-field__prefix--icon svg {
1462
+ transform: rotate(90deg);
1463
+ }
1464
+
1465
+ .vd-inspector__corner--bl .vd-field__prefix--icon svg {
1466
+ transform: rotate(180deg);
1467
+ }
1468
+
1371
1469
  .vd-inspector__note {
1372
1470
  margin: 0 0 8px;
1373
1471
  line-height: 1.5;
@@ -1600,10 +1698,14 @@ p.vd-inspector__subhead {
1600
1698
  cursor: default;
1601
1699
  }
1602
1700
 
1603
- .vd-inspector__button:hover {
1701
+ .vd-inspector__button:hover:not(:disabled) {
1604
1702
  background: var(--vd-input-bg, rgb(0 0 0 / 0.06));
1605
1703
  }
1606
1704
 
1705
+ .vd-inspector__button:disabled {
1706
+ opacity: 0.35;
1707
+ }
1708
+
1607
1709
  /*
1608
1710
  * Six alignments spread across the row. With three or more selected, the two
1609
1711
  * distributions follow after a gap, because "even out the gaps" is a
@@ -1624,6 +1726,19 @@ p.vd-inspector__subhead {
1624
1726
  margin-left: 8px;
1625
1727
  }
1626
1728
 
1729
+ /*
1730
+ * Merge's four marks across the whole row, each centred in a quarter, as the
1731
+ * Align row fills its width: no half of the row is left empty. Group and
1732
+ * Delete are the panel's ordinary 8px below.
1733
+ */
1734
+ .vd-inspector__merge {
1735
+ display: grid;
1736
+ grid-template-columns: repeat(4, minmax(0, 1fr));
1737
+ justify-items: center;
1738
+ gap: 8px;
1739
+ margin-bottom: 8px;
1740
+ }
1741
+
1627
1742
  .vd-inspector__icon-button {
1628
1743
  display: inline-flex;
1629
1744
  align-items: center;
@@ -1661,6 +1776,9 @@ p.vd-inspector__subhead {
1661
1776
  display: flex;
1662
1777
  flex-wrap: wrap;
1663
1778
  align-items: center;
1779
+ /* Lines pack to the top: a row grown by its neighbour's error message
1780
+ stretches this field too, and centring its one line would drop the box. */
1781
+ align-content: flex-start;
1664
1782
  min-width: 0;
1665
1783
  margin: 0;
1666
1784
  }
@@ -1824,6 +1942,21 @@ p.vd-inspector__subhead {
1824
1942
  display: inline-flex;
1825
1943
  }
1826
1944
 
1945
+ /* An attached connector end (G5): Detach is the row's one control, always shown. */
1946
+ .vd-field__detach--shown {
1947
+ display: inline-flex;
1948
+ }
1949
+
1950
+ /* What an attached end follows, read rather than typed: the input's type, ellipsed. */
1951
+ .vd-field__value {
1952
+ flex: 1 1 0;
1953
+ min-width: 0;
1954
+ overflow: hidden;
1955
+ font-size: 11.5px;
1956
+ text-overflow: ellipsis;
1957
+ white-space: nowrap;
1958
+ }
1959
+
1827
1960
  .vd-field__detach:hover {
1828
1961
  background: var(--vd-rule, rgb(0 0 0 / 0.06));
1829
1962
  color: var(--vd-ink, #1a1a1f);
@@ -1850,6 +1983,81 @@ p.vd-inspector__subhead {
1850
1983
  line-height: 1.4;
1851
1984
  }
1852
1985
 
1986
+ /*
1987
+ * A picture layer's fit, inside its row after the name: "photo · Cover". The
1988
+ * dropdown sheds its own box, so the row reads as one entry, as a gradient's
1989
+ * summary does; it keeps its focus ring, being its own Tab stop.
1990
+ */
1991
+ .vd-layer__fit {
1992
+ position: relative;
1993
+ flex: 0 0 auto;
1994
+ display: flex;
1995
+ flex-wrap: nowrap;
1996
+ align-items: center;
1997
+ font-family: var(--vd-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
1998
+ font-size: 11.5px;
1999
+ }
2000
+
2001
+ .vd-layer__fit::before {
2002
+ content: '·';
2003
+ margin-right: 6px;
2004
+ color: var(--vd-muted, rgb(0 0 0 / 0.55));
2005
+ }
2006
+
2007
+ .vd-layer__fit > .vd-select {
2008
+ flex: 0 0 auto;
2009
+ width: auto;
2010
+ height: 20px;
2011
+ gap: 2px;
2012
+ padding: 0 2px 0 4px;
2013
+ border-color: transparent;
2014
+ border-radius: 4px;
2015
+ background: transparent;
2016
+ }
2017
+
2018
+ .vd-layer__fit > .vd-select:hover {
2019
+ background: var(--vd-input-bg, rgb(0 0 0 / 0.05));
2020
+ }
2021
+
2022
+ .vd-layer__fit > .vd-select:focus-visible {
2023
+ border-color: var(--vd-accent, #3b82f6);
2024
+ }
2025
+
2026
+ .vd-layer__fit > .vd-listbox {
2027
+ left: auto;
2028
+ right: 0;
2029
+ min-width: 96px;
2030
+ }
2031
+
2032
+ /*
2033
+ * A picture layer naming a picture the document lacks (`fill-asset-missing`):
2034
+ * a warning mark where the swatch was, and the name muted, since the layer is
2035
+ * not drawn. The row's tooltip says why and what to do.
2036
+ */
2037
+ .vd-layer__missing {
2038
+ display: none;
2039
+ flex: 0 0 auto;
2040
+ color: var(--vd-warning, #b7791f);
2041
+ }
2042
+
2043
+ .vd-layer__missing svg {
2044
+ width: 16px;
2045
+ height: 16px;
2046
+ }
2047
+
2048
+ .vd-field--missing .vd-layer__missing {
2049
+ display: inline-flex;
2050
+ }
2051
+
2052
+ .vd-field--missing .vd-field__swatch {
2053
+ display: none;
2054
+ }
2055
+
2056
+ .vd-field--missing .vd-field__input {
2057
+ color: var(--vd-muted, rgb(0 0 0 / 0.55));
2058
+ text-decoration: line-through;
2059
+ }
2060
+
1853
2061
  /* A dropdown: our button and list, not the operating system's menu. */
1854
2062
  .vd-select {
1855
2063
  width: 100%;
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@getv.design/embed",
3
- "version": "0.5.5",
3
+ "version": "0.6.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": {
7
7
  "name": "vDesign",
8
- "email": "sagar@getv.design"
8
+ "email": "teams@getv.design"
9
9
  },
10
10
  "homepage": "https://getv.design/docs/embed/",
11
11
  "private": false,