@getv.design/embed 0.2.0 → 0.3.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/README.md +8 -3
- package/THIRD_PARTY_NOTICES.txt +1 -1
- package/dist/auto.js +2 -2
- package/dist/chunks/chunk-ACHGJ7UR.js +2 -0
- package/dist/chunks/{chunk-BESL4IJP.js → chunk-H7KHX34X.js} +1 -1
- package/dist/chunks/chunk-JIHH634P.js +10 -0
- package/dist/chunks/{chunk-62FKKJ5M.js → chunk-JWI4TIMM.js} +2 -2
- package/dist/chunks/{chunk-R6OULTHF.js → chunk-P57LNVS3.js} +2 -2
- package/dist/chunks/{chunk-DSFLLPRE.js → chunk-UAVO4POT.js} +2 -2
- package/dist/chunks/fonts.js +2 -2
- package/dist/cli.js +16 -16
- package/dist/edit.js +253 -32
- package/dist/index.js +2 -2
- package/dist/markdown-it.js +2 -2
- package/dist/markdown.js +2 -2
- package/dist/marked.js +2 -2
- package/dist/rehype.js +2 -2
- package/dist/static.js +2 -2
- package/dist/view.js +3 -3
- package/edit.css +215 -0
- package/package.json +1 -1
- package/dist/chunks/chunk-OMODSFXU.js +0 -10
- package/dist/chunks/chunk-T6H6KLK6.js +0 -2
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! @getv.design/embed v0.
|
|
2
|
-
import{a as y}from"./chunks/chunk-
|
|
1
|
+
/*! @getv.design/embed v0.3.1. Free to use under the vDesign Embed Licence. © 2026 Sagar Saini. https://getv.design/docs/licence/ */
|
|
2
|
+
import{a as y}from"./chunks/chunk-ACHGJ7UR.js";import"./chunks/chunk-H7KHX34X.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};
|
package/dist/markdown-it.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! @getv.design/embed v0.
|
|
2
|
-
import{a as f,b as p,d as u}from"./chunks/chunk-
|
|
1
|
+
/*! @getv.design/embed v0.3.1. Free to use under the vDesign Embed Licence. © 2026 Sagar Saini. https://getv.design/docs/licence/ */
|
|
2
|
+
import{a as f,b as p,d as u}from"./chunks/chunk-JWI4TIMM.js";import{e as F}from"./chunks/chunk-P57LNVS3.js";import"./chunks/chunk-UAVO4POT.js";import"./chunks/chunk-JIHH634P.js";import"./chunks/chunk-ACHGJ7UR.js";import"./chunks/chunk-H7KHX34X.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.
|
|
2
|
-
import{a as b,b as c,c as d,d as e}from"./chunks/chunk-
|
|
1
|
+
/*! @getv.design/embed v0.3.1. Free to use under the vDesign Embed Licence. © 2026 Sagar Saini. https://getv.design/docs/licence/ */
|
|
2
|
+
import{a as b,b as c,c as d,d as e}from"./chunks/chunk-JWI4TIMM.js";import{e as a}from"./chunks/chunk-P57LNVS3.js";import"./chunks/chunk-UAVO4POT.js";import"./chunks/chunk-JIHH634P.js";import"./chunks/chunk-ACHGJ7UR.js";import"./chunks/chunk-H7KHX34X.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.
|
|
2
|
-
import{a as t,b as i,d as o}from"./chunks/chunk-
|
|
1
|
+
/*! @getv.design/embed v0.3.1. Free to use under the vDesign Embed Licence. © 2026 Sagar Saini. https://getv.design/docs/licence/ */
|
|
2
|
+
import{a as t,b as i,d as o}from"./chunks/chunk-JWI4TIMM.js";import{e as f}from"./chunks/chunk-P57LNVS3.js";import"./chunks/chunk-UAVO4POT.js";import"./chunks/chunk-JIHH634P.js";import"./chunks/chunk-ACHGJ7UR.js";import"./chunks/chunk-H7KHX34X.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.
|
|
2
|
-
import{a as h,d as m}from"./chunks/chunk-
|
|
1
|
+
/*! @getv.design/embed v0.3.1. Free to use under the vDesign Embed Licence. © 2026 Sagar Saini. https://getv.design/docs/licence/ */
|
|
2
|
+
import{a as h,d as m}from"./chunks/chunk-JWI4TIMM.js";import{e as g}from"./chunks/chunk-P57LNVS3.js";import"./chunks/chunk-UAVO4POT.js";import"./chunks/chunk-JIHH634P.js";import"./chunks/chunk-ACHGJ7UR.js";import"./chunks/chunk-H7KHX34X.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.
|
|
2
|
-
import{a as b,b as c,c as d,d as e,e as f,f as g}from"./chunks/chunk-
|
|
1
|
+
/*! @getv.design/embed v0.3.1. Free to use under the vDesign Embed Licence. © 2026 Sagar Saini. 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-P57LNVS3.js";import"./chunks/chunk-UAVO4POT.js";import"./chunks/chunk-JIHH634P.js";import{a}from"./chunks/chunk-ACHGJ7UR.js";import"./chunks/chunk-H7KHX34X.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.
|
|
2
|
-
import{c as
|
|
1
|
+
/*! @getv.design/embed v0.3.1. Free to use under the vDesign Embed Licence. © 2026 Sagar Saini. 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-UAVO4POT.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 ft,b as ut,c as De,d as pt,e as Be,f as He,g as ht,h as je,i as mt,j as gt,k as yt,l as wt,n as xt,p as vt,t as Ue,u as bt,v as Et,w as St,x as kt,y as Ge,z as Fe}from"./chunks/chunk-JIHH634P.js";import{a as yn,b as lt}from"./chunks/chunk-ACHGJ7UR.js";import"./chunks/chunk-H7KHX34X.js";var wn=.8,xn=.2;function qe(e,t){let r=e.createElement("canvas").getContext("2d"),n=At(),p=new Map,a=new Map,y=new Set;function u(l){return`${l.italic?"italic ":""}${l.weight} ${l.size}px ${l.family}`}function g(){p.clear(),a.clear()}return{advance(l,w){if(!r)return n.advance(l,w);let b=u(w),A=`${b}\0${w.letterSpacing}\0${l}`,L=p.get(A);if(L!==void 0)return L;r.font=b;let x=r.measureText(l).width+w.letterSpacing*[...l].length;return p.set(A,x),x},metrics(l){if(!r)return n.metrics(l);let w=u(l),b=a.get(w);if(b)return b;r.font=w;let A=r.measureText("Hxg"),L=A.fontBoundingBoxAscent??l.size*wn,x=A.fontBoundingBoxDescent??l.size*xn,V={ascent:L,descent:x,lineGap:0};return a.set(w,V),V},load(l,w){let b=e.fonts;if(!b||typeof FontFace!="function")return!1;let A=!1;for(let L of Object.values(l.fonts))for(let x of vn(L)){let V=`${L.family}\0${x.src}\0${x.weight??400}\0${x.style??"normal"}`;if(y.has(V))continue;y.add(V);let _=x.src.startsWith("data:")?void 0:w?.(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})`:bn(Q),M);b.add(R),R.load().then(()=>{g(),t?.()},()=>{b.delete(R)})};_===void 0?H(x.src):(A=!0,_.then(H,()=>{}))}return A},invalidate:g,destroy(){g(),y.clear()}}}function vn(e){return e.faces??[]}function bn(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,o){let r=Me(e.zoom*o),n=$e(e,t);return{zoom:r,x:t.x-n.x*r,y:t.y-n.y*r}}function ye(e,t,o){return{...e,x:e.x+t,y:e.y+o}}function Xe(e){return`translate(${e.x} ${e.y}) scale(${e.zoom})`}function le(e,t,o){let r={width:Math.max(1,t.width-o*2),height:Math.max(1,t.height-o*2)};if(e.width<=0||e.height<=0)return ze;let n=Me(Math.min(r.width/e.width,r.height/e.height));return{zoom:n,x:(t.width-e.width*n)/2-(e.x??0)*n,y:(t.height-e.height*n)/2-(e.y??0)*n}}var ne="http://www.w3.org/2000/svg",Nt="vd-viewer-styles",zt=`
|
|
3
3
|
.vd-viewer {
|
|
4
4
|
position: relative;
|
|
5
5
|
overflow: hidden;
|
|
@@ -98,4 +98,4 @@ import{c as ut,e as ze,f as ce,g as Ee,h as pt,i as Le}from"./chunks/chunk-DSFLL
|
|
|
98
98
|
.vd-viewer--interacting .vd-viewer__page {
|
|
99
99
|
filter: none;
|
|
100
100
|
}
|
|
101
|
-
`;function wt(e){if(e.getElementById(gt))return;let t=e.createElement("style");t.id=gt,t.textContent=yt,e.head.appendChild(t)}function vt(e,t,r,i){return t?nn(e,t,r,i):tn(e,r,i)}function tn(e,t,r){let i=Ve(e,r);return{measurer:i,update:n=>{i.load(n,t)},afterPaint:()=>{},destroy:()=>i.destroy()}}var xt=new WeakMap;function nn(e,t,r,i){let n,u,s,m=()=>{if(!n)throw new Error("canvasFonts: update() before measuring");return n};return{measurer:{advance:(g,l)=>m().measurer.advance(g,l),metrics:g=>m().measurer.metrics(g),itemize:g=>m().measurer.itemize(g)},update(g){n&&g.fonts===u||(s?.(),n?.dispose(),n=t.forDocument(g,r?{loader:r}:{}),u=g.fonts,s=n.onChange(i))},afterPaint(){let g=e.fonts;if(!n||!g||typeof FontFace!="function")return;let l=xt.get(e);l||xt.set(e,l=new Set);for(let p of n.usedFaces()){if(l.has(p.id))continue;l.add(p.id);let M=new FontFace(p.id,rn(p.bytes),{weight:String(p.weight),style:p.style});g.add(M),M.load().catch(()=>g.delete(M))}},destroy(){s?.(),n?.dispose(),n=void 0}}}function rn(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}var on=.01,sn=.004,bt=40,an=16;function Ae(e,t){wt(e.ownerDocument);let r=t.document,i=a=>vt(e.ownerDocument,a,t.loadFont,()=>{z(r)}),n=i(t.fonts),u={advance:(a,v)=>n.measurer.advance(a,v),metrics:a=>n.measurer.metrics(a),itemize:a=>n.measurer.itemize?.(a)??[a]};n.update(r);let s=_e(r),m=()=>t.resolveAsset?{measure:u,resolveAsset:t.resolveAsset}:{measure:u},f=Ne(r,s,m()),g=t.camera??Pe,l=t.interactive??!0,p=t.wheel??"always";e.classList.add("vd-viewer"),t.surface&&(e.style.background=t.surface);let M=e.ownerDocument.createElementNS(J,"svg");M.setAttribute("class","vd-viewer__surface"),M.setAttribute("width","100%"),M.setAttribute("height","100%");let S=e.ownerDocument.createElementNS(J,"g");S.setAttribute("class","vd-viewer__camera"),S.style.isolation="isolate",M.appendChild(S);let O=e.ownerDocument.createElementNS(J,"defs");S.appendChild(O);let w=e.ownerDocument.createElementNS(J,"rect");w.setAttribute("class","vd-viewer__page"),S.appendChild(w),e.appendChild(M);let N=new Map;function _(){S.setAttribute("transform",$e(g))}function x(){X();let a=f.background!==void 0;A(w,"x",String(f.x)),A(w,"y",String(f.y)),A(w,"width",String(a?f.width:0)),A(w,"height",String(a?f.height:0)),I(w,"fill",f.background??null);let v=new Set,L=w;for(let E of f.items){v.add(E.id);let b=N.get(E.id);(!b||b.tagName!==Et(E))&&(b?.remove(),b=e.ownerDocument.createElementNS(J,Et(E)),b.setAttribute("data-vd-id",E.id),N.set(E.id,b)),fn(b,E),L.nextSibling!==b&&S.insertBefore(b,L.nextSibling),L=b}for(let[E,b]of N)v.has(E)||(b.remove(),N.delete(E));n.afterPaint(),t.onSceneChange?.(f,r)}let R=new Map;function X(){let a=[...f.gradients.map(at),...f.items.filter(b=>b.shadows.length>0).map(b=>dt(b)),...f.clips.map(st)],v=new Set(a);for(let[b,H]of R)v.has(b)||(H.remove(),R.delete(b));let L=a.filter(b=>!R.has(b));if(L.length===0)return;[...new DOMParser().parseFromString(`<svg xmlns="${J}">${L.join("")}</svg>`,"image/svg+xml").documentElement.children].forEach((b,H)=>{let d=e.ownerDocument.importNode(b,!0);O.appendChild(d),R.set(L[H],d)})}function z(a){r=a,n.update(r),s=_e(r),f=Ne(r,s,m()),x()}function G(a){let v=e.getBoundingClientRect();return{x:a.clientX-v.left,y:a.clientY-v.top}}let C=0,j=0;function Y(){e.classList.add("vd-viewer--interacting"),j&&clearTimeout(j),j=setTimeout(()=>{j=0,e.classList.remove("vd-viewer--interacting")},180)}function Z(){C&&(cancelAnimationFrame(C),C=0),_(),t.onCameraChange?.(g)}function te(a){g=a,Z()}function $(a){g=a,Y(),!C&&(C=requestAnimationFrame(()=>{C=0,_(),t.onCameraChange?.(g)}))}let Q=null,B=null,fe=!1,K=a=>{if(p==="modifier"&&!a.ctrlKey&&!a.metaKey)return;a.preventDefault();let v=G(a),L=a.deltaMode===1?an:a.deltaMode===2?e.clientHeight||800:1,E=a.deltaX*L,b=a.deltaY*L;if(a.ctrlKey||a.metaKey){let H=a.ctrlKey?on:sn,d=Math.max(-bt,Math.min(bt,b));$(De(g,v,Math.exp(-d*H)));return}if(a.shiftKey&&E===0){$(ke(g,-b,0));return}$(ke(g,-E,-b))},ge=a=>{(a.button===1||a.button===0&&fe)&&(a.preventDefault(),Q=a.pointerId,B=G(a),e.setPointerCapture(a.pointerId))},pe=a=>{if(Q!==a.pointerId||!B)return;let v=G(a);$(ke(g,v.x-B.x,v.y-B.y)),B=v},ne=a=>{Q===a.pointerId&&(Q=null,B=null,e.hasPointerCapture(a.pointerId)&&e.releasePointerCapture(a.pointerId))},W=a=>{a.code==="Space"&&(fe=!0)},re=a=>{a.code==="Space"&&(fe=!1)};l&&(e.addEventListener("wheel",K,{passive:!1}),e.addEventListener("pointerdown",ge),e.addEventListener("pointermove",pe),e.addEventListener("pointerup",ne),e.addEventListener("pointercancel",ne),e.ownerDocument.addEventListener("keydown",W),e.ownerDocument.addEventListener("keyup",re)),_(),x();let se={element:e,surface:M,update:z,getDocument:()=>r,getScene:()=>f,getResolution:()=>s,getMeasurer:()=>u,setFonts(a){n.destroy(),n=i(a),z(r)},getCamera:()=>g,setCamera:te,zoomBy(a,v){let L=e.getBoundingClientRect(),E=v??{x:L.width/2,y:L.height/2};te(De(g,E,a))},fitToContent(a=32){let v=e.getBoundingClientRect();te(de({x:f.x,y:f.y,width:f.width,height:f.height},{width:v.width||f.width,height:v.height||f.height},a))},screenToDocument:a=>Ce(g,a),documentToScreen:a=>Re(g,a),pointerPoint:G,hitTest(a,v){for(let L=f.items.length-1;L>=0;L--){let E=f.items[L];if(E&&xn(E,a,wn/g.zoom)&&(!v||v(E.id)))return E.id}return null},linkAt(a,v){for(let L=f.items.length-1;L>=0;L--){let E=f.items[L];if(E?.kind!=="text"||v&&!v(E.id))continue;let b=E.rotation===0?a:Ie(a,{x:E.x+E.w/2,y:E.y+E.h/2},-E.rotation);for(let H of E.lines){if(b.y<H.y||b.y>H.y+H.h)continue;let d=H.spans.find(y=>b.x>=y.x&&b.x<=y.x+y.w);if(d)return d.style.link}}},itemOf:a=>f.items.find(v=>v.id===a),elementOf:a=>N.get(a),destroy(){l&&(e.removeEventListener("wheel",K),e.removeEventListener("pointerdown",ge),e.removeEventListener("pointermove",pe),e.removeEventListener("pointerup",ne),e.removeEventListener("pointercancel",ne),e.ownerDocument.removeEventListener("keydown",W),e.ownerDocument.removeEventListener("keyup",re)),C&&cancelAnimationFrame(C),j&&clearTimeout(j),C=0,j=0,n.destroy(),e.classList.remove("vd-viewer--interacting"),M.remove(),N.clear(),e.classList.remove("vd-viewer")}};return t.autoFit&&se.fitToContent(),se}var cn="vd-clip-";function dn(e){return cn+e}function kt(e){return`url(#${dn(e)})`}function Et(e){return lt(e)?"g":Be(e)}function Be(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 fn(e,t){if(e.tagName!=="g"){St(e,t);return}I(e,"clip-path",t.clip===void 0?null:kt(t.clip)),e.style.mixBlendMode=t.blend==="normal"?"":t.blend;let r=e.firstElementChild;(!r||r.tagName!==Be(t))&&(r?.remove(),r=e.ownerDocument.createElementNS(J,Be(t)),e.appendChild(r)),St(r,{...t,clip:void 0,blend:"normal"})}function St(e,t){switch(I(e,"clip-path",t.clip===void 0?null:kt(t.clip)),I(e,"transform",t.rotation===0?null:ft(t)),e.style.mixBlendMode=t.blend==="normal"?"":t.blend,e.style.filter=t.shadows.length>0?`url(#${ct}${t.id})`:"",t.kind){case"ellipse":gn(e,t);return;case"frame":ln(e,t);return;case"image":un(e,t);return;case"rect":mn(e,t);return;case"text":hn(e,t);return;case"vector":yn(e,t);return}}function ln(e,t){A(e,"class","vd-viewer__page"),A(e,"x",String(t.x)),A(e,"y",String(t.y)),A(e,"width",String(t.w)),A(e,"height",String(t.h)),I(e,"fill",t.background??null)}function un(e,t){if(A(e,"x",String(t.x)),A(e,"y",String(t.y)),A(e,"width",String(t.w)),A(e,"height",String(t.h)),I(e,"opacity",t.opacity<1?String(t.opacity):null),t.href===void 0){A(e,"class","vd-viewer__missing"),I(e,"rx",t.radius>0?String(t.radius):null);return}A(e,"href",t.href),A(e,"preserveAspectRatio",pn[t.fit])}var pn={cover:"xMidYMid slice",contain:"xMidYMid meet",fill:"none"};function hn(e,t){I(e,"opacity",t.opacity<1?String(t.opacity):null),A(e,"xml:space","preserve");let r=t.lines.flatMap(n=>n.spans).filter(n=>n.text!==""),i=e.ownerDocument;for(;e.childNodes.length>r.length;)e.lastChild?.remove();for(;e.childNodes.length<r.length;)e.appendChild(i.createElementNS(J,"tspan"));r.forEach((n,u)=>{let s=e.childNodes[u];s.textContent!==n.text&&(s.textContent=n.text),A(s,"x",String(n.x)),A(s,"y",String(n.y)),A(s,"font-family",n.style.family),A(s,"font-size",String(n.style.size)),A(s,"fill",n.style.fill),I(s,"font-weight",n.style.weight===400?null:String(n.style.weight)),I(s,"font-style",n.style.italic?"italic":null),I(s,"letter-spacing",n.style.letterSpacing===0?null:String(n.style.letterSpacing)),I(s,"data-vd-link",n.style.link??null);let m=[n.style.underline?"underline":"",n.style.strike?"line-through":""].filter(Boolean).join(" ");I(s,"text-decoration",m===""?null:m)})}function mn(e,t){I(e,"class",null),A(e,"x",String(t.x)),A(e,"y",String(t.y)),A(e,"width",String(t.w)),A(e,"height",String(t.h)),A(e,"fill",t.fill),I(e,"rx",t.radius>0?String(t.radius):null),I(e,"stroke",t.stroke??null),I(e,"stroke-width",t.stroke&&t.strokeWidth>0?String(t.strokeWidth):null),I(e,"opacity",t.opacity<1?String(t.opacity):null)}function At(e,t){A(e,"fill",t.fill),I(e,"stroke",t.stroke??null),I(e,"stroke-width",t.stroke&&t.strokeWidth>0?String(t.strokeWidth):null),I(e,"opacity",t.opacity<1?String(t.opacity):null)}function gn(e,t){A(e,"cx",String(t.x+t.w/2)),A(e,"cy",String(t.y+t.h/2)),A(e,"rx",String(t.w/2)),A(e,"ry",String(t.h/2)),At(e,t)}function yn(e,t){A(e,"d",t.d),At(e,t),I(e,"fill-rule",t.rule==="nonzero"?null:t.rule),I(e,"stroke-linecap",t.cap==="butt"?null:t.cap),I(e,"stroke-linejoin",t.join==="miter"?null:t.join)}function A(e,t,r){e.getAttribute(t)!==r&&e.setAttribute(t,r)}function I(e,t,r){r===null?e.hasAttribute(t)&&e.removeAttribute(t):A(e,t,r)}var wn=4;function xn(e,t,r){let i=e.rotation===0?t:Ie(t,{x:e.x+e.w/2,y:e.y+e.h/2},-e.rotation),n=i.x>=e.x&&i.x<=e.x+e.w&&i.y>=e.y&&i.y<=e.y+e.h;if(e.kind==="ellipse"){let u=e.stroke!==void 0?e.strokeWidth/2:0,s=e.w/2+u,m=e.h/2+u;if(s<=0||m<=0)return!1;let f=(i.x-(e.x+e.w/2))/s,g=(i.y-(e.y+e.h/2))/m;return f*f+g*g<=1}if(e.kind==="vector"){let u=e.stroke!==void 0&&e.strokeWidth>0;return nt(e.contours,i,{fill:e.fill!=="none",rule:e.rule,reach:(u?e.strokeWidth/2:0)+r})}return n}function xe(e,t){let r=new Map;for(let n of t.items)n.kind==="frame"&&n.w>0&&n.h>0&&r.set(n.id,{id:n.id,x:n.x,y:n.y,w:n.w,h:n.h});let i=e.root.children.flatMap(n=>{let u=n.type==="frame"?r.get(n.id):void 0;return u&&n.type==="frame"?[{...u,skip:n.skip===!0}]:[]});return i.length===0?[{id:null,x:t.x,y:t.y,w:t.width,h:t.height,skip:!1}]:i.every(n=>n.skip)?i.map(n=>({...n,skip:!1})):i}function Mt(e,t){return e.root.children.find(i=>i.type==="frame"&&Je(i,t)!==void 0)?.id}function Ot(e,t){let r=t===void 0?-1:e.findIndex(i=>i.id===t);return r!==-1?r:Math.max(0,e.findIndex(i=>!i.skip))}function ve(e,t,r){for(let i=t+r;i>=0&&i<e.length;i+=r)if(!e[i]?.skip)return i;return t}function Tt(e){return e.filter(t=>!t.skip).length}function He(e,t){return e[t]?.skip!==!1?null:e.slice(0,t+1).filter(r=>!r.skip).length}function _t(e,t){if(!/^\d+$/.test(e))return null;let r=Number(e),i=t.findIndex((n,u)=>He(t,u)===r);return i===-1?null:i}function Lt(e,t,r){let i=Mt(e,r),n=t.findIndex(u=>u.id!==null&&u.id===i);return n===-1?null:n}var vn="cubic-bezier(0.2, 0, 0, 1)",bn="cubic-bezier(0.4, 0, 1, 1)",Pt="cubic-bezier(0.4, 0, 0.2, 1)";function Ct(e,t,r,i,n){let u={opacity:r},s=En(e,t,i,n);if(e==="cut")return{keyframes:t==="enter"?[{visibility:"hidden"},{visibility:"hidden"}]:[{visibility:"visible"},{visibility:"visible"}],easing:"linear"};if(e==="pop"){let m=`${n.x}px ${n.y}px`;u.scale="1",u.transformOrigin=m}else(e==="rise"||e==="drop")&&(u.translate="0 0");return t==="enter"?{keyframes:[s,u],easing:vn}:{keyframes:[u,s],easing:bn}}function En(e,t,r,i){switch(e){case"rise":return{opacity:0,translate:`0 ${t==="enter"?r:-r}px`};case"drop":return{opacity:0,translate:`0 ${t==="enter"?-r:r}px`};case"pop":return{opacity:0,scale:String(.85),transformOrigin:`${i.x}px ${i.y}px`};case"fade":case"cut":return{opacity:0}}}function Dt(e,t){let r=t==="forward"?"-100%":"100%",i=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:`${r} 0`}],live:[{translate:`${i} 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 Sn={enter:"cut",duration:0,steps:[[]],clicks:new Map,scroll:!1};function je(e){let t=new Map,r=new Map,i=new Map;Xe(e.root,(m,f)=>{f&&(r.set(m.id,f.id),i.set(f.id,[...i.get(f.id)??[],m.id]))});let n=tt(e),u=et(e);for(let[m,f]of Object.entries(e.motion??{})){if(!u.has(m))continue;let g=[[]],l=new Map;for(let p of f.lines){if(p.id===m||n.get(p.id)!==m)continue;let M=p.go===void 0?void 0:Qe(p.go);M&&l.set(p.id,M);let S=p.enter!==void 0?"enter":p.exit!==void 0?"exit":null,O=p.enter??p.exit;S===null||O===void 0||(p.step&&g.push([]),g.at(-1).push({id:p.id,kind:S,effect:O,duration:O==="cut"?0:p.duration??Fe,delay:p.delay??0,together:p.together===!0}))}t.set(m,{enter:f.enter??"cut",duration:f.duration??Fe,steps:g,clicks:l,scroll:f.scroll===!0})}let s=m=>[m,...(i.get(m)??[]).flatMap(f=>s(f))];return{pages:t,parents:r,within:s}}function Ft(e,t){let r=t?.id;return(r?e.pages.get(r):void 0)??Sn}function Ue(e){let t=0,r=0;return e.map((i,n)=>(t=(n===0?0:i.together?t:r)+i.delay,r=t+i.duration,{build:i,at:t}))}function It(e){return Math.max(0,...Ue(e).map(({build:t,at:r})=>r+t.duration))}function me(e,t){let r=new Set,i=new Set;for(let n of e.steps.flat())i.has(n.id)||(i.add(n.id),n.kind==="enter"&&r.add(n.id));for(let n of e.steps.slice(0,t).flat())n.kind==="enter"?r.delete(n.id):r.add(n.id);return r}function Nt(e,t,r){for(let i=r;i!==void 0;i=e.parents.get(i)){let n=t.clicks.get(i);if(n)return{id:i,target:n}}}function zt(e,t,r){let i=[...e];for(;i.length>0;){let n=i.pop(),u=t.findIndex(s=>s.id!==null&&s.id===n);if(u!==-1&&u!==r)return{index:u,history:i}}return null}function Vt(e,t,r){let i=Se(t.width/Math.max(1,e.w));if(e.h*i<=t.height)return{camera:de({x:e.x,y:e.y,width:e.w,height:e.h},t,0),top:0,max:0};let n=e.h-t.height/i,u=Math.min(Math.max(0,r),n),s=(t.width-e.w*i)/2-e.x*i;return{camera:{zoom:i,x:s,y:0-(e.y+u)*i},top:u,max:n}}var Me=.9,Ke=.1;function Rt(e,t){return e.deltaMode===1?e.deltaY*16:e.deltaMode===2?e.deltaY*t.height:e.deltaY}var An=1500,Mn=2e3,On=200,Tn=50;function We(e,t){let r=e.ownerDocument;e.classList.add("vd-player"),e.tabIndex=-1;let i=new Set,n=new Set,u=!1,s=Ae(e,{document:t.document,interactive:!1,surface:"#000",...t.fonts?{fonts:t.fonts}:{},...t.loadFont?{loadFont:t.loadFont}:{},...t.resolveAsset?{resolveAsset:t.resolveAsset}:{},onSceneChange:()=>{u&&K()}}),m=r.createElementNS(J,"path");m.setAttribute("class","vd-player__mask"),m.setAttribute("fill","#000"),m.setAttribute("fill-rule","evenodd"),s.surface.appendChild(m);let f=r.createElement("div");f.className="vd-player__counter",f.setAttribute("aria-live","polite"),e.appendChild(f);let g=je(t.document),l=xe(t.document,s.getScene()),p=Ot(l,t.start),M=[],S=0,O=[],w,N=0,_="",x=0,R=0,X=1,z=new Map,G,C=0,j,Y,Z=r.defaultView,te=()=>typeof s.surface.animate=="function"&&!(Z?.matchMedia?.("(prefers-reduced-motion: reduce)").matches??!1),$=()=>Ft(g,l[p]);function Q(){let o=e.getBoundingClientRect(),c=l[p];return{width:o.width||c?.w||1,height:o.height||c?.h||1}}function B(){let o=l[p];if(!o)return;let c=Q(),h=de({x:o.x,y:o.y,width:o.w,height:o.h},c,0);if(R=0,$().scroll){let q=Vt(o,c,x);h=q.camera,x=q.top,R=q.max}X=h.zoom,s.setCamera(h);let T=o.x*h.zoom+h.x,D=o.y*h.zoom+h.y,F=o.w*h.zoom,U=o.h*h.zoom;m.setAttribute("d",`M0 0H${c.width}V${c.height}H0ZM${T} ${D}h${F}v${U}h${-F}Z`),m.dataset.slide=o.id??""}function fe(){let o=He(l,p),c=Tt(l);f.textContent=o===null?"Skipped":`${o} / ${c}`,f.classList.add("vd-player__counter--shown"),j&&clearTimeout(j),j=setTimeout(()=>f.classList.remove("vd-player__counter--shown"),An),t.onChange?.(o,c)}function K(){let o=new Set;for(let c of i)for(let h of g.within(c))o.add(h);n=o;for(let c of s.surface.querySelectorAll("[data-vd-hidden]")){let h=c.getAttribute("data-vd-id");(h===null||!o.has(h))&&c.removeAttribute("data-vd-hidden")}for(let c of o)s.elementOf(c)?.setAttribute("data-vd-hidden","")}function ge(o){return g.within(o).flatMap(c=>{let h=s.elementOf(c);return h?[h]:[]})}function pe(o){let c=1/0,h=1/0,T=-1/0,D=-1/0;for(let F of g.within(o)){let U=s.itemOf(F);U&&(c=Math.min(c,U.x),h=Math.min(h,U.y),T=Math.max(T,U.x+U.w),D=Math.max(D,U.y+U.h))}return Number.isFinite(c)?{x:(c+T)/2,y:(h+D)/2}:{x:0,y:0}}function ne(){if(!(O.length===0&&!w)){N+=1,S===0&&(S=1),i=me($(),S),K();for(let o of O)o.cancel();O=[],w?.remove(),w=void 0}}function W(){return O.length===0&&!w?!1:(ne(),!0)}function re(o,c){return new Promise(h=>{let T=!1,D=()=>{T||(T=!0,h())};Promise.all(o.map(F=>F.finished)).then(D,()=>{T=!0}),setTimeout(()=>{if(!T){for(let F of o)(F.playState==="running"||F.playState==="paused")&&F.finish();D()}},c+Tn)})}function se(o,c,h){if(o===p||!l[o])return;let T=$(),D=l[p]?.id;D&&z.set(D,G===void 0?x:C),v(),p=o;let F=$(),U=l[o]?.id;x=c||!U?0:z.get(U)??0;let q=h==="forward"?F:T,P=te()?Dt(q.enter,h):null;if(P&&(w=s.surface.cloneNode(!0),w.classList.add("vd-player__still"),w.setAttribute("aria-hidden","true"),P.stillOnTop?s.surface.after(w):s.surface.before(w)),B(),S=c?0:F.steps.length,i=me(F,S),K(),fe(),!P||!w){c&&a();return}let be={duration:q.duration,easing:Pt},le=[];P.still&&le.push(w.animate(P.still,{...be,fill:"forwards"})),P.live&&le.push(s.surface.animate(P.live,be)),O.push(...le);let he=N;re(le,q.duration).then(()=>{if(he===N){O=O.filter(ue=>!le.includes(ue));for(let ue of le)ue.cancel();w?.remove(),w=void 0,c&&a()}})}function a(){let o=$(),c=o.steps[S];if(c===void 0)return;S+=1;let h=me(o,S);if(c.length===0)return;if(!te()){i=h,K();return}let T=new Set(c.filter(P=>P.kind==="enter").map(P=>P.id));i=new Set([...me(o,S-1)].filter(P=>!T.has(P))),K();let D=l[p],F=.04*Math.min(D?.w??0,D?.h??0),U=N,q=[];for(let{build:P,at:be}of Ue(c)){let le=pe(P.id),he=[];for(let ue of ge(P.id)){let Ze=Number(ue.getAttribute("opacity")??1),{keyframes:Yt,easing:Zt}=Ct(P.effect,P.kind,Number.isFinite(Ze)?Ze:1,F,le);he.push(ue.animate(Yt,{duration:P.duration,delay:be,easing:Zt,fill:P.kind==="enter"?"backwards":"forwards"}))}q.push(...he),P.kind==="exit"&&he.length>0&&re(he,be+P.duration).then(()=>{if(U===N){i.add(P.id),K();for(let ue of he)ue.cancel()}})}O.push(...q),re(q,It(c)).then(()=>{if(U===N){O=O.filter(P=>!q.includes(P)),i=h,K();for(let P of q)P.cancel()}})}function v(){G!==void 0&&Z?.cancelAnimationFrame(G),G=void 0}function L(o){if(v(),C=Math.min(Math.max(0,o),R),!te()||!Z?.requestAnimationFrame){x=C,B();return}let c=x,h,T=D=>{h??=D;let F=Math.min(1,(D-h)/On);x=c+(C-c)*(1-(1-F)**3),B(),G=F<1?Z.requestAnimationFrame(T):void 0};G=Z.requestAnimationFrame(T)}function E(o,c){if(W())return;let h=G===void 0?x:C;if(!(o>0?x>=R-.5:x<=.5)){L(h+o*Q().height/X);return}c||(o>0?d():y())}function b(o){if(!(!$().scroll||R<=0))switch(o.key){case" ":return o.shiftKey?-Me:Me;case"PageDown":return Me;case"PageUp":return-Me;case"ArrowDown":return Ke;case"ArrowUp":return-Ke;default:return}}function H(o){let c=Math.min(Math.max(0,o),l.length-1);if(c===p)return;let h=l[p]?.id;h&&M.push(h),se(c,!0,"forward")}function d(){if(!W()){if(S<$().steps.length){a();return}H(ve(l,p,1))}}function y(){if(W())return;let o=zt(M,l,p);if(o){M=o.history,se(o.index,!1,"back");return}se(ve(l,p,-1),!1,"back")}function k(o){switch(o.kind){case"url":t.onLink?.(o.url);return;case"back":y();return;case"next":H(ve(l,p,1));return;case"frame":{let c=Lt(s.getDocument(),l,o.id);c===null?d():V(c,o.id)}}}function V(o,c){let h=o===p;h||H(o);let T=l[p];if(!T||!$().scroll)return;let D=T.id===c?void 0:s.itemOf(c),F=D?D.y-T.y:0;h?L(F):(x=F,B())}function ie(o){let c=l[p];if(!c||o.x<c.x||o.y<c.y||o.x>c.x+c.w||o.y>c.y+c.h)return;let h=U=>!n.has(U),T=s.hitTest(o,h),D=T===null?void 0:Nt(g,$(),T);if(D)return D.target;let F=s.linkAt(o,h);return F===void 0?void 0:Te(F)}let oe=o=>{if(o.stopPropagation(),o.metaKey||o.ctrlKey||o.altKey)return;let c=o.key,h=b(o);if(h!==void 0){_="",E(h,o.repeat),o.preventDefault();return}if(/^\d$/.test(c))_+=c;else if(c==="Enter"&&_!==""){let T=_t(_,l);_="",!W()&&T!==null&&H(T)}else if(c==="Escape")_!==""?_="":t.onExit?.();else if(["ArrowRight","ArrowDown","PageDown"," ","Enter"].includes(c))_="",d();else if(["ArrowLeft","ArrowUp","PageUp","Backspace"].includes(c))_="",y();else if(c==="Home")W()||H(ve(l,-1,1));else if(c==="End")W()||H(ve(l,l.length,-1));else return;o.preventDefault()},ee=o=>{if(W())return;let c=ie(s.screenToDocument(s.pointerPoint(o)));c?k(c):d()},ye=o=>{!$().scroll||R<=0||(o.preventDefault(),!(w||o.ctrlKey||o.metaKey)&&(v(),x=Math.min(Math.max(0,x+Rt(o,Q())/X),R),B()))},we=o=>{if(e.classList.remove("vd-player--idle"),Y&&clearTimeout(Y),Y=setTimeout(()=>e.classList.add("vd-player--idle"),Mn),!o)return;let c=s.screenToDocument(s.pointerPoint(o));e.classList.toggle("vd-player--link",ie(c)!==void 0)},ae=Z&&"ResizeObserver"in Z?new Z.ResizeObserver(()=>B()):void 0;return ae?.observe(e),e.addEventListener("keydown",oe),e.addEventListener("click",ee),e.addEventListener("pointermove",we),e.addEventListener("wheel",ye,{passive:!1}),u=!0,B(),i=me($(),0),K(),fe(),we(),e.focus({preventScroll:!0}),a(),{viewer:s,index:()=>p,count:()=>l.length,next:d,back:y,go(o){ne(),H(o)},update(o){if(o===s.getDocument())return;ne();let c=l[p]?.id;s.update(o),g=je(o),l=xe(o,s.getScene());let h=l.findIndex(T=>T.id===c);p=h===-1?Math.min(p,l.length-1):h,h===-1&&(v(),x=0),B(),S=$().steps.length,i=me($(),S),K()},refit:B,destroy(){N+=1,v();for(let o of O)o.cancel();O=[],w?.remove(),ae?.disconnect(),e.removeEventListener("wheel",ye),e.removeEventListener("keydown",oe),e.removeEventListener("click",ee),e.removeEventListener("pointermove",we),j&&clearTimeout(j),Y&&clearTimeout(Y),m.remove(),f.remove(),s.destroy(),e.classList.remove("vd-player","vd-player--idle","vd-player--link"),e.removeAttribute("tabindex")}}}function $t(e){let t=e,r=new Map,i=typeof URL.createObjectURL=="function"&&typeof URL.revokeObjectURL=="function";return{resolve(n){let u=r.get(n.hash);if(u!==void 0)return u;let s=t.get(n.hash);if(s===void 0)return;if(!i)return rt(n.type,s);let m;try{m=it(s)}catch{return}let f=URL.createObjectURL(new Blob([m],{type:n.type}));return r.set(n.hash,f),f},replace(n){t=n;for(let[u,s]of r)n.has(u)||(URL.revokeObjectURL(s),r.delete(u))},destroy(){for(let n of r.values())URL.revokeObjectURL(n);r.clear(),t=new Map}}}var Ge=["page","content","none"],Bt=24;function Oe(e){let t=e.getBoundingClientRect();return{width:t.width,height:t.height}}function Ht(e,t){let r=t===void 0?void 0:e.itemOf(t);if(!(!r||r.w<=0||r.h<=0))return{x:r.x,y:r.y,width:r.w,height:r.h}}function jt(e,t,r,i){if(r==="none")return;let n=r==="page"?Ht(e,i):void 0;if(!n){e.fitToContent(Bt);return}let u=Oe(t);e.setCamera(de(n,{width:u.width||n.width,height:u.height||n.height},Bt))}function Ut(e,t,r){let i=Ht(e,r);if(!i)return;let n=e.getCamera(),u=Oe(t),s=u.width||i.width*n.zoom,m=u.height||i.height*n.zoom;e.setCamera({zoom:n.zoom,x:s/2-(i.x+i.width/2)*n.zoom,y:m/2-(i.y+i.height/2)*n.zoom})}var Ye=Symbol.for("vdesign.embed.handover");function Kt(e){return e[Ye]}var Wt=["exact","browser"],Gt=["ready","problems","page","fonts"];async function _n(e,t){try{let{exactFontsAt:r}=await import("./chunks/fonts.js"),i=r(e);return(await i.ensure(t)).length===0?i:void 0}catch{return}}async function Pr(e,t,r={}){let i=r.fit??"page";if(!Ge.includes(i))throw new TypeError(`view: fit must be one of ${Ge.join(", ")}; got ${String(i)}.`);let n=r.fonts??"exact";if(!Wt.includes(n))throw new TypeError(`view: fonts must be one of ${Wt.join(", ")}; got ${String(n)}.`);let u=n==="exact"?pt(r.fontBase,qe,e.ownerDocument.baseURI):void 0,s=Kt(r),m=await ze(t),f=s?.page!==void 0&&ce(m.document).some(d=>d.id===s.page)?s.page:r.page===void 0?ce(m.document)[0]?.id:Ee(m.document,r.page).id,g=s?.exact&&u?await _n(u,m.document):void 0,l=e.ownerDocument,p=l.defaultView,M=$t(m.blocks),S=m.blocks,O=[...m.problems],w,N=()=>w?[...O,w]:[...O],_=l.createElement("div");_.className="vd-embed",_.style.width="100%",_.style.height="100%",e.appendChild(_);let x=Ae(_,{document:m.document,interactive:r.interactive??!0,wheel:"modifier",resolveAsset:d=>M.resolve(d),...r.surface?{surface:r.surface}:{},...s?{camera:s.camera}:{},...g?{fonts:g.library}:{}}),R={ready:new Set,problems:new Set,page:new Set,fonts:new Set},X=!1,z=!1,G=0,C,j,Y=g,Z=n==="browser"?"browser":void 0,te;function $(){X=!0;for(let d of R.ready)d()}function Q(){for(let d of R.problems)d(N())}function B(d){Z=d;for(let y of R.fonts)y(d)}function fe(){return te??=(async()=>{if(u)try{let{exactFontsAt:d}=await import("./chunks/fonts.js");return d(u)}catch{return}})(),te}function K(d){Y=void 0,x.setFonts(void 0),C?.fonts(void 0),w=d,Q(),B("browser")}async function ge(){let d=await fe();if(!z){if(!d){K(Le([],u?"the fonts chunk would not load":"no fontBase was given and this build has no default"));return}for(;;){let y=x.getDocument(),k=await d.ensure(y);if(z)return;if(k.length>0){K(Le(k));return}if(x.getDocument()===y)break}Y=d,x.setFonts(d.library),C?.fonts(d),B("exact")}}function pe(){let d=ne(f);if(d)for(let y of R.page)y(d)}function ne(d){let y=ce(x.getDocument()).find(k=>k.id===d);if(y)return y.name===void 0?{id:y.id}:{id:y.id,name:y.name}}let W=()=>jt(x,_,i,f),re=()=>Ut(x,_,f);function se(d){if(z)return;let y=Ee(x.getDocument(),d).id,k=y!==f;f=y,i==="page"?W():re(),k&&pe()}function a(d){r.onLink?r.onLink(d):p?.open(d,"_blank","noopener,noreferrer")}let v=d=>{if(d.button!==0||C)return;let y=x.linkAt(x.screenToDocument(x.pointerPoint(d)));if(y===void 0)return;let k=Te(y);if(k){if(d.preventDefault(),k.kind==="frame"){ce(x.getDocument()).some(V=>V.id===k.id)&&se(k.id);return}a(k.url)}};_.addEventListener("click",v);let L=Oe(_),E=p&&"ResizeObserver"in p?new p.ResizeObserver(()=>{let d=Oe(_);d.width===L.width&&d.height===L.height||(L=d,W())}):void 0;E?.observe(_),s||(i==="none"&&f!==void 0&&r.page!==void 0?re():W()),$(),g?B("exact"):n==="exact"&&ge();let b={async load(d){if(z)throw new Error("view: this view was destroyed.");let y=++G,k=await ze(d),V=Y,ie=V?await V.ensure(k.document):[];if(j&&await j||z||y!==G)return;ie.length>0&&Y===V&&K(Le(ie)),M.replace(k.blocks),S=k.blocks,x.update(k.document),O=[...k.problems],C?.update(k.document),ce(k.document).some(ee=>ee.id===f)||(f=ce(k.document)[0]?.id,i==="page"?W():re(),pe()),Q(),$()},pages:()=>ce(x.getDocument()).map(d=>d.name===void 0?{id:d.id}:{id:d.id,name:d.name}),goTo:se,fit:()=>{z||W()},play(d={}){if(z)return Promise.reject(new Error("view: this view was destroyed."));try{return C?.stop(),Promise.resolve(H(x.getDocument(),d.page))}catch(y){return Promise.reject(y instanceof Error?y:new Error(String(y)))}},async edit(d={}){if(z)throw new Error("view: this view was destroyed.");if(j)throw new Error("view: edit() is already opening an editor.");let y;j=new Promise(V=>y=V);let k=!1;try{let{edit:V}=await import("./edit.js");if(z)throw new Error("view: this view was destroyed.");let ie={camera:x.getCamera(),page:f,exact:Y!==void 0},oe=ut(x.getDocument(),S,O),ee=await V(e,oe,{...r,...d,[Ye]:ie});if(z)throw ee.destroy(),new Error("view: this view was destroyed.");return k=!0,b.destroy(),ee}finally{j=void 0,y(k)}},on(d,y){if(!Gt.includes(d))throw new TypeError(`view: on() takes one of ${Gt.join(", ")}; got ${String(d)}.`);let k=R[d];if(k.add(y),d==="ready"&&X&&queueMicrotask(()=>{k.has(y)&&y()}),d==="problems"&&queueMicrotask(()=>{k.has(y)&&y(N())}),d==="fonts"&&Z!==void 0){let V=Z;queueMicrotask(()=>{k.has(y)&&y(V)})}return()=>{k.delete(y)}},destroy(){if(!z){z=!0,C?.stop(),_.removeEventListener("click",v),E?.disconnect(),x.destroy(),M.destroy(),_.remove();for(let d of Object.values(R))d.clear()}}};function H(d,y){let k=y===void 0?f:Ee(d,y).id,V=l.createElement("div");V.className="vd-embed__play",V.style.position="absolute",V.style.inset="0";let ie=o=>o.stopPropagation();V.addEventListener("wheel",ie);let oe=l.activeElement;_.appendChild(V);let ee=!1,ye=()=>{if(ee)return;ee=!0,C===we&&(C=void 0),ae.destroy(),V.removeEventListener("wheel",ie);let o=V.contains(l.activeElement);V.remove(),o&&oe&&"focus"in oe&&typeof oe.focus=="function"&&oe.focus({preventScroll:!0})},we={stop:ye,update:o=>ae.update(o),fonts:o=>ae.viewer.setFonts(o?.library)},ae=We(V,{document:d,resolveAsset:o=>M.resolve(o),...Y?{fonts:Y.library}:{},...k===void 0?{}:{start:k},onExit:ye,onLink:a});return C=we,{goTo(o){if(ee)return;let c=ae.viewer.getDocument(),h=Ee(c,o).id,T=xe(c,ae.viewer.getScene()).findIndex(D=>D.id===h);T!==-1&&ae.go(T)},destroy:ye}}return b}export{qt as version,Pr as view};
|
|
101
|
+
`;function $t(e){if(e.getElementById(Nt))return;let t=e.createElement("style");t.id=Nt,t.textContent=zt,e.head.appendChild(t)}function Vt(e,t,o,r){return t?Sn(e,t,o,r):En(e,o,r)}function En(e,t,o){let r=qe(e,o);return{measurer:r,update:n=>{r.load(n,t)},afterPaint:()=>{},destroy:()=>r.destroy()}}var Rt=new WeakMap;function Sn(e,t,o,r){let n,p,a,y=()=>{if(!n)throw new Error("canvasFonts: update() before measuring");return n};return{measurer:{advance:(g,l)=>y().measurer.advance(g,l),metrics:g=>y().measurer.metrics(g),itemize:g=>y().measurer.itemize(g)},update(g){n&&g.fonts===p||(a?.(),n?.dispose(),n=t.forDocument(g,o?{loader:o}:{}),p=g.fonts,a=n.onChange(r))},afterPaint(){let g=e.fonts;if(!n||!g||typeof FontFace!="function")return;let l=Rt.get(e);l||Rt.set(e,l=new Set);for(let w of n.usedFaces()){if(l.has(w.id))continue;l.add(w.id);let b=new FontFace(w.id,kn(w.bytes),{weight:String(w.weight),style:w.style});g.add(b),b.load().catch(()=>g.delete(b))}},destroy(){a?.(),n?.dispose(),n=void 0}}}function kn(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}var An=.01,Mn=.004,Bt=40,Tn=16;function Oe(e,t){$t(e.ownerDocument);let o=t.document,r=i=>Vt(e.ownerDocument,i,t.loadFont,()=>{j(o)}),n=r(t.fonts),p={advance:(i,f)=>n.measurer.advance(i,f),metrics:i=>n.measurer.metrics(i),itemize:i=>n.measurer.itemize?.(i)??[i]};n.update(o);let a=Fe(o),y=()=>t.resolveAsset?{measure:p,resolveAsset:t.resolveAsset}:{measure:p},u=Ke(o,a,y()),g=t.camera??ze,l=t.interactive??!0,w=t.wheel??"always";e.classList.add("vd-viewer"),t.surface&&(e.style.background=t.surface);let b=e.ownerDocument.createElementNS(ne,"svg");b.setAttribute("class","vd-viewer__surface"),b.setAttribute("width","100%"),b.setAttribute("height","100%");let A=e.ownerDocument.createElementNS(ne,"g");A.setAttribute("class","vd-viewer__camera"),A.style.isolation="isolate",b.appendChild(A);let L=e.ownerDocument.createElementNS(ne,"defs");A.appendChild(L);let x=e.ownerDocument.createElementNS(ne,"rect");x.setAttribute("class","vd-viewer__page"),A.appendChild(x),e.appendChild(b);let V=new Map,_=null;function M(){let i=t.sample;return _&&i?i(u,_.timeline,_.t,{doc:o,resolution:a,options:y()}):u}function H(){A.setAttribute("transform",Xe(g))}function Q(i=!0){let f=M();ee(f);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 E=new Set,I=x;for(let k of f.items){let N=k.part===void 0?k.id:`${k.id}\0${k.part}`;E.add(N);let C=V.get(N);(!C||C.tagName!==Ht(k))&&(C?.remove(),C=e.ownerDocument.createElementNS(ne,Ht(k)),C.setAttribute("data-vd-id",k.id),V.set(N,C)),Ln(C,k),I.nextSibling!==C&&A.insertBefore(C,I.nextSibling),I=C}for(let[k,N]of V)E.has(k)||(N.remove(),V.delete(k));n.afterPaint(),i&&t.onSceneChange?.(u,o)}let R=new Map;function ee(i){let f=[...i.gradients.map(Tt),...[...new Map(i.items.filter(k=>k.shadows.length>0).map(k=>[k.id,k])).values()].map(k=>_t(k)),...i.clips.map(Mt)],O=new Set(f);for(let[k,N]of R)O.has(k)||(N.remove(),R.delete(k));let E=f.filter(k=>!R.has(k));if(E.length===0)return;[...new DOMParser().parseFromString(`<svg xmlns="${ne}">${E.join("")}</svg>`,"image/svg+xml").documentElement.children].forEach((k,N)=>{let C=e.ownerDocument.importNode(k,!0);L.appendChild(C),R.set(E[N],C)})}function j(i){o=i,n.update(o),a=Fe(o),u=Ke(o,a,y()),Q()}function G(i){let f=e.getBoundingClientRect();return{x:i.clientX-f.left,y:i.clientY-f.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 U(){B&&(cancelAnimationFrame(B),B=0),H(),t.onCameraChange?.(g)}function h(i){g=i,U()}function X(i){g=i,ae(),!B&&(B=requestAnimationFrame(()=>{B=0,H(),t.onCameraChange?.(g)}))}let se=null,Y=null,fe=!1,ue=l&&w==="always",re=new Map,K=null,ie=()=>{let[i,f]=[...re.values()];return!i||!f?null:{mid:{x:(i.x+f.x)/2,y:(i.y+f.y)/2},distance:Math.hypot(i.x-f.x,i.y-f.y)}},pe=i=>{let f=re.get(i.pointerId);if(!f)return;let O=G(i);if(re.set(i.pointerId,O),re.size===1){X(ye(g,O.x-f.x,O.y-f.y));return}let E=ie();if(K&&E){let I=ye(g,E.mid.x-K.mid.x,E.mid.y-K.mid.y);X(K.distance>0?Te(I,E.mid,E.distance/K.distance):I)}K=E},J=i=>{re.delete(i.pointerId)&&(e.hasPointerCapture(i.pointerId)&&e.releasePointerCapture(i.pointerId),K=ie())},he=i=>{if(w==="modifier"&&!i.ctrlKey&&!i.metaKey)return;i.preventDefault();let f=G(i),O=i.deltaMode===1?Tn:i.deltaMode===2?e.clientHeight||800:1,E=i.deltaX*O,I=i.deltaY*O;if(i.ctrlKey||i.metaKey){let k=i.ctrlKey?An:Mn,N=Math.max(-Bt,Math.min(Bt,I));X(Te(g,f,Math.exp(-N*k)));return}if(i.shiftKey&&E===0){X(ye(g,-I,0));return}X(ye(g,-E,-I))},q=i=>{if(i.pointerType==="touch"){if(!ue)return;i.preventDefault(),re.set(i.pointerId,G(i)),e.setPointerCapture(i.pointerId),K=ie();return}(i.button===1||i.button===0&&fe)&&(i.preventDefault(),se=i.pointerId,Y=G(i),e.setPointerCapture(i.pointerId))},ge=i=>{if(i.pointerType==="touch"){pe(i);return}if(se!==i.pointerId||!Y)return;let f=G(i);X(ye(g,f.x-Y.x,f.y-Y.y)),Y=f},ce=i=>{if(i.pointerType==="touch"){J(i);return}se===i.pointerId&&(se=null,Y=null,e.hasPointerCapture(i.pointerId)&&e.releasePointerCapture(i.pointerId))},me=i=>{i.code==="Space"&&(fe=!0)},d=i=>{i.code==="Space"&&(fe=!1)};ue&&(e.style.touchAction="none"),l&&(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",d)),H(),Q();let v={element:e,surface:b,update:j,getDocument:()=>o,getScene:()=>u,setTime(i){i===null&&_===null||(_=i,Q(!1))},getTime:()=>_,getResolution:()=>a,getMeasurer:()=>p,setFonts(i){n.destroy(),n=r(i),j(o)},getCamera:()=>g,setCamera:h,zoomBy(i,f){let O=e.getBoundingClientRect(),E=f??{x:O.width/2,y:O.height/2};h(Te(g,E,i))},fitToContent(i=32){let f=e.getBoundingClientRect();h(le({x:u.x,y:u.y,width:u.width,height:u.height},{width:f.width||u.width,height:f.height||u.height},i))},screenToDocument:i=>$e(g,i),documentToScreen:i=>Ze(g,i),pointerPoint:G,hitTest(i,f){for(let O=u.items.length-1;O>=0;O--){let E=u.items[O];if(E&&Vn(E,i,Rn/g.zoom)&&(!f||f(E.id)))return E.id}return null},linkAt(i,f){for(let O=u.items.length-1;O>=0;O--){let E=u.items[O];if(E?.kind!=="text"||f&&!f(E.id))continue;let I=E.rotation===0?i:Ge(i,{x:E.x+E.w/2,y:E.y+E.h/2},-E.rotation);for(let k of E.lines){if(I.y<k.y||I.y>k.y+k.h)continue;let N=k.spans.find(C=>I.x>=C.x&&I.x<=C.x+C.w);if(N)return N.style.link}}},itemOf:i=>u.items.find(f=>f.id===i),elementOf:i=>V.get(i),destroy(){l&&(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",d)),B&&cancelAnimationFrame(B),D&&clearTimeout(D),B=0,D=0,n.destroy(),e.classList.remove("vd-viewer--interacting"),b.remove(),V.clear(),e.classList.remove("vd-viewer")}};return t.autoFit&&v.fitToContent(),v}var On="vd-clip-";function _n(e){return On+e}function Ut(e){return`url(#${_n(e)})`}function Ht(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 Ln(e,t){if(e.tagName!=="g"){jt(e,t);return}F(e,"clip-path",t.clip===void 0?null:Ut(t.clip)),e.style.mixBlendMode=t.blend==="normal"?"":t.blend;let o=t.pose;F(e,"opacity",o&&o.opacity<1?String(o.opacity):null);let r=e.firstElementChild;if((!r||r.tagName!==Je(t))&&(r?.remove(),r=e.ownerDocument.createElementNS(ne,Je(t)),e.appendChild(r)),jt(r,{...t,clip:void 0,blend:"normal"}),o){let n=t.rotation===0?"":` ${We(t)}`;T(r,"transform",`${Pt(o)}${n}`),t.kind==="vector"&&Pn(r,t)}}function Pn(e,t){let o=t.pose?.trace;if(o!==void 0&&t.stroke!==void 0){let n=yt(t.contours)+1;T(e,"stroke-dasharray",`${n} ${n}`),T(e,"stroke-dashoffset",String(n*(1-o)))}let r=t.pose?.fillOpacity;F(e,"fill-opacity",r!==void 0&&r<1?String(r):null)}function jt(e,t){switch(F(e,"clip-path",t.clip===void 0?null:Ut(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":zn(e,t);return;case"frame":Cn(e,t);return;case"image":In(e,t);return;case"rect":Nn(e,t);return;case"text":Fn(e,t);return;case"vector":$n(e,t);return}}function Cn(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 In(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",Dn[t.fit])}var Dn={cover:"xMidYMid slice",contain:"xMidYMid meet",fill:"none"};function Fn(e,t){F(e,"opacity",t.opacity<1?String(t.opacity):null),T(e,"xml:space","preserve");let o=t.lines.flatMap(n=>n.spans).filter(n=>n.text!==""),r=e.ownerDocument;for(;e.childNodes.length>o.length;)e.lastChild?.remove();for(;e.childNodes.length<o.length;)e.appendChild(r.createElementNS(ne,"tspan"));o.forEach((n,p)=>{let a=e.childNodes[p];a.textContent!==n.text&&(a.textContent=n.text),T(a,"x",String(n.x)),T(a,"y",String(n.y)),T(a,"font-family",n.style.family),T(a,"font-size",String(n.style.size)),T(a,"fill",n.style.fill),F(a,"font-weight",n.style.weight===400?null:String(n.style.weight)),F(a,"font-style",n.style.italic?"italic":null),F(a,"letter-spacing",n.style.letterSpacing===0?null:String(n.style.letterSpacing)),F(a,"data-vd-link",n.style.link??null);let y=[n.style.underline?"underline":"",n.style.strike?"line-through":""].filter(Boolean).join(" ");F(a,"text-decoration",y===""?null:y)})}function Nn(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 Gt(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 zn(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)),Gt(e,t)}function $n(e,t){T(e,"d",t.d),Gt(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,o){e.getAttribute(t)!==o&&e.setAttribute(t,o)}function F(e,t,o){o===null?e.hasAttribute(t)&&e.removeAttribute(t):T(e,t,o)}var Rn=4;function Vn(e,t,o){let r=e.rotation===0?t:Ge(t,{x:e.x+e.w/2,y:e.y+e.h/2},-e.rotation),n=r.x>=e.x&&r.x<=e.x+e.w&&r.y>=e.y&&r.y<=e.y+e.h;if(e.kind==="ellipse"){let p=e.stroke!==void 0?e.strokeWidth/2:0,a=e.w/2+p,y=e.h/2+p;if(a<=0||y<=0)return!1;let u=(r.x-(e.x+e.w/2))/a,g=(r.y-(e.y+e.h/2))/y;return u*u+g*g<=1}if(e.kind==="vector"){let p=e.stroke!==void 0&&e.strokeWidth>0;return wt(e.contours,r,{fill:e.fill!=="none",rule:e.rule,reach:(p?e.strokeWidth/2:0)+o})}return n}function be(e,t){let o=new Map;for(let n of t.items)n.kind==="frame"&&n.w>0&&n.h>0&&o.set(n.id,{id:n.id,x:n.x,y:n.y,w:n.w,h:n.h});let r=e.root.children.flatMap(n=>{let p=n.type==="frame"?o.get(n.id):void 0;return p&&n.type==="frame"?[{...p,skip:n.skip===!0}]:[]});return r.length===0?[{id:null,x:t.x,y:t.y,w:t.width,h:t.height,skip:!1}]:r.every(n=>n.skip)?r.map(n=>({...n,skip:!1})):r}function Kt(e,t){return e.root.children.find(r=>r.type==="frame"&&ut(r,t)!==void 0)?.id}function Wt(e,t){let o=t===void 0?-1:e.findIndex(r=>r.id===t);return o!==-1?o:Math.max(0,e.findIndex(r=>!r.skip))}function Ee(e,t,o){for(let r=t+o;r>=0&&r<e.length;r+=o)if(!e[r]?.skip)return r;return t}function Yt(e){return e.filter(t=>!t.skip).length}function Qe(e,t){return e[t]?.skip!==!1?null:e.slice(0,t+1).filter(o=>!o.skip).length}function qt(e,t){if(!/^\d+$/.test(e))return null;let o=Number(e),r=t.findIndex((n,p)=>Qe(t,p)===o);return r===-1?null:r}function Zt(e,t,o){let r=Kt(e,o),n=t.findIndex(p=>p.id!==null&&p.id===r);return n===-1?null:n}var Bn=et(Et),Hn=et(St),Xt=et(kt);function et(e){return`cubic-bezier(${e.join(", ")})`}function Jt(e,t,o,r,n){let p={opacity:o},a=jn(e,t,r,n);if(e==="cut")return{keyframes:t==="enter"?[{visibility:"hidden"},{visibility:"hidden"}]:[{visibility:"visible"},{visibility:"visible"}],easing:"linear"};if(e==="pop"){let y=`${n.x}px ${n.y}px`;p.scale="1",p.transformOrigin=y}else(e==="rise"||e==="drop")&&(p.translate="0 0");return t==="enter"?{keyframes:[a,p],easing:Bn}:{keyframes:[p,a],easing:Hn}}function jn(e,t,o,r){switch(e){case"rise":return{opacity:0,translate:`0 ${t==="enter"?o:-o}px`};case"drop":return{opacity:0,translate:`0 ${t==="enter"?-o:o}px`};case"pop":return{opacity:0,scale:String(bt),transformOrigin:`${r.x}px ${r.y}px`};case"fade":case"cut":case"wipe":case"grow":case"count":case"draw":return{opacity:0}}}function Qt(e,t){let o=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:`${o} 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 Un={enter:"cut",duration:0,steps:[[]],clicks:new Map,scroll:!1};function tt(e){let t=new Map,o=new Map,r=new Map;ft(e.root,(y,u)=>{u&&(o.set(y.id,u.id),r.set(u.id,[...r.get(u.id)??[],y.id]))});let n=gt(e),p=mt(e);for(let[y,u]of Object.entries(e.motion??{})){if(!p.has(y))continue;let g=[[]],l=new Map,w=pt(u);for(let b of u.lines){if(b.id===y||n.get(b.id)!==y)continue;let A=b.go===void 0?void 0:ht(b.go);A&&l.set(b.id,A);let L=b.enter!==void 0?"enter":b.exit!==void 0?"exit":null,x=b.enter??b.exit;L===null||x===void 0||(b.step&&g.push([]),g.at(-1).push({id:b.id,kind:L,effect:x,duration:x==="cut"?0:Be(b.duration,w,He),delay:Be(b.delay,w,0),together:b.together===!0}))}t.set(y,{enter:u.enter??"cut",duration:u.duration??He,steps:g,clicks:l,scroll:u.scroll===!0})}let a=y=>[y,...(r.get(y)??[]).flatMap(u=>a(u))];return{pages:t,parents:o,within:a}}function en(e,t){let o=t?.id;return(o?e.pages.get(o):void 0)??Un}function nt(e){let t=0,o=0;return e.map((r,n)=>(t=(n===0?0:r.together?t:o)+r.delay,o=t+r.duration,{build:r,at:t}))}function tn(e){return Math.max(0,...nt(e).map(({build:t,at:o})=>o+t.duration))}function we(e,t){let o=new Set,r=new Set;for(let n of e.steps.flat())r.has(n.id)||(r.add(n.id),n.kind==="enter"&&o.add(n.id));for(let n of e.steps.slice(0,t).flat())n.kind==="enter"?o.delete(n.id):o.add(n.id);return o}function nn(e,t,o){for(let r=o;r!==void 0;r=e.parents.get(r)){let n=t.clicks.get(r);if(n)return{id:r,target:n}}}function rn(e,t,o){let r=[...e];for(;r.length>0;){let n=r.pop(),p=t.findIndex(a=>a.id!==null&&a.id===n);if(p!==-1&&p!==o)return{index:p,history:r}}return null}function on(e,t,o){let r=Me(t.width/Math.max(1,e.w));if(e.h*r<=t.height)return{camera:le({x:e.x,y:e.y,width:e.w,height:e.h},t,0),top:0,max:0};let n=e.h-t.height/r,p=Math.min(Math.max(0,o),n),a=(t.width-e.w*r)/2-e.x*r;return{camera:{zoom:r,x:a,y:0-(e.y+p)*r},top:p,max:n}}var _e=.9,rt=.1;function sn(e,t){return e.deltaMode===1?e.deltaY*16:e.deltaMode===2?e.deltaY*t.height:e.deltaY}var Gn=1500,Kn=2e3,Wn=200,Yn=50;function it(e,t){let o=e.ownerDocument;e.classList.add("vd-player"),e.tabIndex=-1;let r=new Set,n=new Set,p=!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:()=>{p&&q()}}),y=o.createElementNS(ne,"path");y.setAttribute("class","vd-player__mask"),y.setAttribute("fill","#000"),y.setAttribute("fill-rule","evenodd"),a.surface.appendChild(y);let u=o.createElement("div");u.className="vd-player__counter",u.setAttribute("aria-live","polite"),e.appendChild(u);let g=tt(t.document),l=be(t.document,a.getScene()),w=Wt(l,t.start),b=[],A=0,L=[],x,V=0,_="",M=0,H=0,Q=1,R=new Map,ee,j=0,G,B,D=o.defaultView,ae=()=>typeof a.surface.animate=="function"&&!(D?.matchMedia?.("(prefers-reduced-motion: reduce)").matches??!1),U=()=>en(g,l[w]),h;function X(){let s=l[w]?.id;if(!t.timeline||!s)return;let c=a.getDocument();return je(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 fe(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(fe)??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(fe)}}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?(A=U().steps.length,K(s,!0)):f()}function pe(){let s=e.getBoundingClientRect(),c=l[w];return{width:s.width||c?.w||1,height:s.height||c?.h||1}}function J(){let s=l[w];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},S=le({x:m.x,y:m.y,width:m.w,height:m.h},c,0);if(H=0,U().scroll){let P=on(s,c,M);S=P.camera,M=P.top,H=P.max}Q=S.zoom,a.setCamera(S);let z=m.x*S.zoom+S.x,$=m.y*S.zoom+S.y,W=m.w*S.zoom,oe=m.h*S.zoom;y.setAttribute("d",`M0 0H${c.width}V${c.height}H0ZM${z} ${$}h${W}v${oe}h${-W}Z`),y.dataset.slide=s.id??""}function he(){let s=Qe(l,w),c=Yt(l);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"),Gn),t.onChange?.(s,c)}function q(){let s=new Set;for(let c of r)for(let m of g.within(c))s.add(m);n=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 g.within(s).flatMap(c=>{let m=a.elementOf(c);return m?[m]:[]})}function ce(s){let c=1/0,m=1/0,S=-1/0,z=-1/0;for(let $ of g.within(s)){let W=a.itemOf($);W&&(c=Math.min(c,W.x),m=Math.min(m,W.y),S=Math.max(S,W.x+W.w),z=Math.max(z,W.y+W.h))}return Number.isFinite(c)?{x:(c+S)/2,y:(m+z)/2}:{x:0,y:0}}function me(){if(!(L.length===0&&!x)){V+=1,A===0&&(A=1),r=we(U(),A),q();for(let s of L)s.cancel();L=[],x?.remove(),x=void 0}}function d(){return L.length===0&&!x?!1:(me(),!0)}function v(s,c){return new Promise(m=>{let S=!1,z=()=>{S||(S=!0,m())};Promise.all(s.map($=>$.finished)).then(z,()=>{S=!0}),setTimeout(()=>{if(!S){for(let $ of s)($.playState==="running"||$.playState==="paused")&&$.finish();z()}},c+Yn)})}function i(s,c,m){if(s===w||!l[s])return;let S=U(),z=l[w]?.id;z&&R.set(z,ee===void 0?M:j),O(),w=s;let $=U(),W=l[s]?.id;M=c||!W?0:R.get(W)??0;let oe=m==="forward"?$:S,P=ae()?Qt(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?(A=$.steps.length,r=new Set,K(ke,!1),c&&h&&(h.t=0),Y()):(A=c?0:$.steps.length,r=we($,A)),q(),he(),!P||!x){c&&ie();return}let Ie={duration:oe.duration,easing:Xt},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 f(){let s=U(),c=s.steps[A];if(c===void 0)return;A+=1;let m=we(s,A);if(c.length===0)return;if(!ae()){r=m,q();return}let S=new Set(c.filter(P=>P.kind==="enter").map(P=>P.id));r=new Set([...we(s,A-1)].filter(P=>!S.has(P))),q();let z=l[w],$=Ue*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:mn,easing:gn}=Jt(P.effect,P.kind,Number.isFinite(ve)?ve:1,$,Ie);te.push(xe.animate(mn,{duration:P.duration,delay:ke,easing:gn,fill:P.kind==="enter"?"backwards":"forwards"}))}oe.push(...te),P.kind==="exit"&&te.length>0&&v(te,ke+P.duration).then(()=>{if(W===V){r.add(P.id),q();for(let xe of te)xe.cancel()}})}L.push(...oe),v(oe,tn(c)).then(()=>{if(W===V){L=L.filter(P=>!oe.includes(P)),r=m,q();for(let P of oe)P.cancel()}})}function O(){ee!==void 0&&D?.cancelAnimationFrame(ee),ee=void 0}function E(s){if(O(),j=Math.min(Math.max(0,s),H),!ae()||!D?.requestAnimationFrame){M=j,J();return}let c=M,m,S=z=>{m??=z;let $=Math.min(1,(z-m)/Wn);M=c+(j-c)*(1-(1-$)**3),J(),ee=$<1?D.requestAnimationFrame(S):void 0};ee=D.requestAnimationFrame(S)}function I(s,c){if(d())return;let m=ee===void 0?M:j;if(!(s>0?M>=H-.5:M<=.5)){E(m+s*pe().height/Q);return}c||(s>0?C():Z())}function k(s){if(!(!U().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),l.length-1);if(c===w)return;let m=l[w]?.id;m&&b.push(m),i(c,!0,"forward")}function C(){if(!d()){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(A<U().steps.length){f();return}N(Ee(l,w,1))}}function Z(){if(d())return;let s=rn(b,l,w);if(s){b=s.history,i(s.index,!1,"back");return}i(Ee(l,w,-1),!1,"back")}function Pe(s){switch(s.kind){case"url":t.onLink?.(s.url);return;case"back":Z();return;case"next":N(Ee(l,w,1));return;case"frame":{let c=Zt(a.getDocument(),l,s.id);c===null?C():Re(c,s.id)}}}function Re(s,c){let m=s===w;m||N(s);let S=l[w];if(!S||!U().scroll)return;let z=S.id===c?void 0:a.itemOf(c),$=z?z.y-S.y:0;m?E($):(M=$,J())}function Se(s){let c=l[w];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=>!n.has(W),S=a.hitTest(s,m),z=S===null?void 0:nn(g,U(),S);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=k(s);if(m!==void 0){_="",I(m,s.repeat),s.preventDefault();return}if(/^\d$/.test(c))_+=c;else if(c==="Enter"&&_!==""){let S=qt(_,l);_="",!d()&&S!==null&&N(S)}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")d()||N(Ee(l,-1,1));else if(c==="End")d()||N(Ee(l,l.length,-1));else return;s.preventDefault()},at=s=>{if(d())return;let c=Se(a.screenToDocument(a.pointerPoint(s)));c?Pe(c):C()},ct=s=>{!U().scroll||H<=0||(s.preventDefault(),!(x||s.ctrlKey||s.metaKey)&&(O(),M=Math.min(Math.max(0,M+sn(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"),Kn),!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}),p=!0,J(),r=X()?new Set:we(U(),0),q(),he(),Ve(),e.focus({preventScroll:!0}),ie(),{viewer:a,index:()=>w,count:()=>l.length,next:C,back:Z,go(s){me(),N(s)},update(s){if(s===a.getDocument())return;me();let c=l[w]?.id;a.update(s),g=tt(s),l=be(s,a.getScene());let m=l.findIndex(z=>z.id===c);w=m===-1?Math.min(w,l.length-1):m,m===-1&&(O(),M=0),re();let S=X();S&&K(S,!1),J(),A=U().steps.length,r=S?new Set:we(U(),A),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),y.remove(),u.remove(),a.destroy(),e.classList.remove("vd-player","vd-player--idle","vd-player--link"),e.removeAttribute("tabindex")}}}function an(e){let t=e,o=new Map,r=typeof URL.createObjectURL=="function"&&typeof URL.revokeObjectURL=="function";return{resolve(n){let p=o.get(n.hash);if(p!==void 0)return p;let a=t.get(n.hash);if(a===void 0)return;if(!r)return xt(n.type,a);let y;try{y=vt(a)}catch{return}let u=URL.createObjectURL(new Blob([y],{type:n.type}));return o.set(n.hash,u),u},replace(n){t=n;for(let[p,a]of o)n.has(p)||(URL.revokeObjectURL(a),o.delete(p))},destroy(){for(let n of o.values())URL.revokeObjectURL(n);o.clear(),t=new Map}}}var ot=["page","content","none"],cn=24;function Le(e){let t=e.getBoundingClientRect();return{width:t.width,height:t.height}}function dn(e,t){let o=t===void 0?void 0:e.itemOf(t);if(!(!o||o.w<=0||o.h<=0))return{x:o.x,y:o.y,width:o.w,height:o.h}}function ln(e,t,o,r){if(o==="none")return;let n=o==="page"?dn(e,r):void 0;if(!n){e.fitToContent(cn);return}let p=Le(t);e.setCamera(le(n,{width:p.width||n.width,height:p.height||n.height},cn))}function fn(e,t,o){let r=dn(e,o);if(!r)return;let n=e.getCamera(),p=Le(t),a=p.width||r.width*n.zoom,y=p.height||r.height*n.zoom;e.setCamera({zoom:n.zoom,x:a/2-(r.x+r.width/2)*n.zoom,y:y/2-(r.y+r.height/2)*n.zoom})}var st=Symbol.for("vdesign.embed.handover");function un(e){return e[st]}var pn=["exact","browser"],hn=["ready","problems","page","fonts"];async function qn(e,t){try{let{exactFontsAt:o}=await import("./chunks/fonts.js"),r=o(e);return(await r.ensure(t)).length===0?r:void 0}catch{return}}async function Jr(e,t,o={}){let r=o.fit??"page";if(!ot.includes(r))throw new TypeError(`view: fit must be one of ${ot.join(", ")}; got ${String(r)}.`);let n=o.fonts??"exact";if(!pn.includes(n))throw new TypeError(`view: fonts must be one of ${pn.join(", ")}; got ${String(n)}.`);let p=n==="exact"?It(o.fontBase,lt,e.ownerDocument.baseURI):void 0,a=un(o),y=await Ye(t),u=a?.page!==void 0&&de(y.document).some(d=>d.id===a.page)?a.page:o.page===void 0?de(y.document)[0]?.id:Ae(y.document,o.page).id,g=a?.exact&&p?await qn(p,y.document):void 0,l=e.ownerDocument,w=l.defaultView,b=an(y.blocks),A=y.blocks,L=[...y.problems],x,V=()=>x?[...L,x]:[...L],_=l.createElement("div");_.className="vd-embed",_.style.width="100%",_.style.height="100%",e.appendChild(_);let M=Oe(_,{document:y.document,interactive:o.interactive??!0,wheel:"modifier",resolveAsset:d=>b.resolve(d),...o.surface?{surface:o.surface}:{},...a?{camera:a.camera}:{},...g?{fonts:g.library}:{}}),H={ready:new Set,problems:new Set,page:new Set,fonts:new Set},Q=!1,R=!1,ee=0,j,G,B=g,D=n==="browser"?"browser":void 0,ae;function U(){Q=!0;for(let d of H.ready)d()}function h(){for(let d of H.problems)d(V())}function X(d){D=d;for(let v of H.fonts)v(d)}function se(){return ae??=(async()=>{if(p)try{let{exactFontsAt:d}=await import("./chunks/fonts.js");return d(p)}catch{return}})(),ae}function Y(d){B=void 0,M.setFonts(void 0),j?.fonts(void 0),x=d,h(),X("browser")}async function fe(){let d=await se();if(!R){if(!d){Y(Ne([],p?"the fonts chunk would not load":"no fontBase was given and this build has no default"));return}for(;;){let v=M.getDocument(),i=await d.ensure(v);if(R)return;if(i.length>0){Y(Ne(i));return}if(M.getDocument()===v)break}B=d,M.setFonts(d.library),j?.fonts(d),X("exact")}}function ue(){let d=re(u);if(d)for(let v of H.page)v(d)}function re(d){let v=de(M.getDocument()).find(i=>i.id===d);if(v)return v.name===void 0?{id:v.id}:{id:v.id,name:v.name}}let K=()=>ln(M,_,r,u),ie=()=>fn(M,_,u);function pe(d){if(R)return;let v=Ae(M.getDocument(),d).id,i=v!==u;u=v,r==="page"?K():ie(),i&&ue()}function J(d){o.onLink?o.onLink(d):w?.open(d,"_blank","noopener,noreferrer")}let he=d=>{if(d.button!==0||j)return;let v=M.linkAt(M.screenToDocument(M.pointerPoint(d)));if(v===void 0)return;let i=De(v);if(i){if(d.preventDefault(),i.kind==="frame"){de(M.getDocument()).some(f=>f.id===i.id)&&pe(i.id);return}J(i.url)}};_.addEventListener("click",he);let q=Le(_),ge=w&&"ResizeObserver"in w?new w.ResizeObserver(()=>{let d=Le(_);d.width===q.width&&d.height===q.height||(q=d,K())}):void 0;ge?.observe(_),a||(r==="none"&&u!==void 0&&o.page!==void 0?ie():K()),U(),g?X("exact"):n==="exact"&&fe();let ce={async load(d){if(R)throw new Error("view: this view was destroyed.");let v=++ee,i=await Ye(d),f=B,O=f?await f.ensure(i.document):[];if(G&&await G||R||v!==ee)return;O.length>0&&B===f&&Y(Ne(O)),b.replace(i.blocks),A=i.blocks,M.update(i.document),L=[...i.problems],j?.update(i.document),de(i.document).some(I=>I.id===u)||(u=de(i.document)[0]?.id,r==="page"?K():ie(),ue()),h(),U()},pages:()=>de(M.getDocument()).map(d=>d.name===void 0?{id:d.id}:{id:d.id,name:d.name}),goTo:pe,fit:()=>{R||K()},play(d={}){if(R)return Promise.reject(new Error("view: this view was destroyed."));try{return j?.stop(),Promise.resolve(me(M.getDocument(),d.page))}catch(v){return Promise.reject(v instanceof Error?v:new Error(String(v)))}},async edit(d={}){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(f=>v=f);let i=!1;try{let{edit:f}=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},E=Ct(M.getDocument(),A,L),I=await f(e,E,{...o,...d,[st]:O});if(R)throw I.destroy(),new Error("view: this view was destroyed.");return i=!0,ce.destroy(),I}finally{G=void 0,v(i)}},on(d,v){if(!hn.includes(d))throw new TypeError(`view: on() takes one of ${hn.join(", ")}; got ${String(d)}.`);let i=H[d];if(i.add(v),d==="ready"&&Q&&queueMicrotask(()=>{i.has(v)&&v()}),d==="problems"&&queueMicrotask(()=>{i.has(v)&&v(V())}),d==="fonts"&&D!==void 0){let f=D;queueMicrotask(()=>{i.has(v)&&v(f)})}return()=>{i.delete(v)}},destroy(){if(!R){R=!0,j?.stop(),_.removeEventListener("click",he),ge?.disconnect(),M.destroy(),b.destroy(),_.remove();for(let d of Object.values(H))d.clear()}}};function me(d,v){let i=v===void 0?u:Ae(d,v).id,f=l.createElement("div");f.className="vd-embed__play",f.style.position="absolute",f.style.inset="0";let O=Z=>Z.stopPropagation();f.addEventListener("wheel",O);let E=l.activeElement;_.appendChild(f);let I=!1,k=()=>{if(I)return;I=!0,j===N&&(j=void 0),C.destroy(),f.removeEventListener("wheel",O);let Z=f.contains(l.activeElement);f.remove(),Z&&E&&"focus"in E&&typeof E.focus=="function"&&E.focus({preventScroll:!0})},N={stop:k,update:Z=>C.update(Z),fonts:Z=>C.viewer.setFonts(Z?.library)},C=it(f,{document:d,resolveAsset:Z=>b.resolve(Z),...B?{fonts:B.library}:{},...i===void 0?{}:{start:i},onExit:k,onLink:J});return j=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:k}}return ce}export{yn as version,Jr as view};
|
package/edit.css
CHANGED
|
@@ -624,6 +624,221 @@
|
|
|
624
624
|
* strip-model.ts — 12 above, a 64 tile, 6, a 14 caption, 8 below — and the
|
|
625
625
|
* host shifts the camera by half of it, so change both or neither.
|
|
626
626
|
*/
|
|
627
|
+
.vd-timeline {
|
|
628
|
+
box-sizing: border-box;
|
|
629
|
+
display: flex;
|
|
630
|
+
align-items: center;
|
|
631
|
+
gap: 12px;
|
|
632
|
+
flex: 0 0 44px;
|
|
633
|
+
height: 44px;
|
|
634
|
+
min-width: 0;
|
|
635
|
+
padding: 0 12px;
|
|
636
|
+
border-top: 1px solid var(--vd-rule, rgb(0 0 0 / 0.12));
|
|
637
|
+
background: var(--vd-strip-bg, #ffffff);
|
|
638
|
+
color: var(--vd-ink, #1a1a1f);
|
|
639
|
+
font-family: var(--vd-font, system-ui, -apple-system, sans-serif);
|
|
640
|
+
font-size: 12px;
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
.vd-timeline[hidden] {
|
|
644
|
+
display: none;
|
|
645
|
+
}
|
|
646
|
+
|
|
647
|
+
.vd-timeline__play,
|
|
648
|
+
.vd-timeline__follow,
|
|
649
|
+
.vd-timeline__sound,
|
|
650
|
+
.vd-timeline__metronome {
|
|
651
|
+
display: inline-flex;
|
|
652
|
+
align-items: center;
|
|
653
|
+
justify-content: center;
|
|
654
|
+
width: 28px;
|
|
655
|
+
height: 28px;
|
|
656
|
+
padding: 0;
|
|
657
|
+
border: 0;
|
|
658
|
+
border-radius: 6px;
|
|
659
|
+
background: transparent;
|
|
660
|
+
color: inherit;
|
|
661
|
+
cursor: pointer;
|
|
662
|
+
}
|
|
663
|
+
|
|
664
|
+
.vd-timeline__play:hover,
|
|
665
|
+
.vd-timeline__follow:hover,
|
|
666
|
+
.vd-timeline__sound:hover,
|
|
667
|
+
.vd-timeline__metronome:hover,
|
|
668
|
+
.vd-timeline__music:hover:not(:disabled) {
|
|
669
|
+
background: var(--vd-hover, rgb(0 0 0 / 0.06));
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
/* On is filled as well as coloured: in light the accent is close to the ink,
|
|
673
|
+
and a toggle that only changes hue reads as off. */
|
|
674
|
+
.vd-timeline__follow[aria-pressed='true'],
|
|
675
|
+
.vd-timeline__metronome[aria-pressed='true'] {
|
|
676
|
+
background: color-mix(in srgb, currentColor 12%, transparent);
|
|
677
|
+
color: var(--vd-accent, #3b82f6);
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
.vd-timeline__follow[hidden],
|
|
681
|
+
.vd-timeline__sound[hidden],
|
|
682
|
+
.vd-timeline__metronome[hidden] {
|
|
683
|
+
display: none;
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
/*
|
|
687
|
+
* The page's music: its name, a slot waiting for a track, or an offer to add
|
|
688
|
+
* one. A button, because a click picks a file; a drop on the canvas does the
|
|
689
|
+
* same. Sized to its words up to a point, then ellipsed, so a long file name
|
|
690
|
+
* never pushes the clock off the bar.
|
|
691
|
+
*/
|
|
692
|
+
.vd-timeline__music {
|
|
693
|
+
display: inline-flex;
|
|
694
|
+
align-items: center;
|
|
695
|
+
gap: 6px;
|
|
696
|
+
max-width: 180px;
|
|
697
|
+
height: 28px;
|
|
698
|
+
padding: 0 8px;
|
|
699
|
+
border: 0;
|
|
700
|
+
border-radius: 6px;
|
|
701
|
+
background: transparent;
|
|
702
|
+
color: inherit;
|
|
703
|
+
font: inherit;
|
|
704
|
+
cursor: pointer;
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
.vd-timeline__music:disabled {
|
|
708
|
+
cursor: default;
|
|
709
|
+
}
|
|
710
|
+
|
|
711
|
+
.vd-timeline__music > svg {
|
|
712
|
+
flex: 0 0 auto;
|
|
713
|
+
}
|
|
714
|
+
|
|
715
|
+
.vd-timeline__music-name {
|
|
716
|
+
overflow: hidden;
|
|
717
|
+
text-overflow: ellipsis;
|
|
718
|
+
white-space: nowrap;
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
.vd-timeline__music[data-state='none'],
|
|
722
|
+
.vd-timeline__music[data-state='slot'] {
|
|
723
|
+
color: var(--vd-muted, #6b6b76);
|
|
724
|
+
}
|
|
725
|
+
|
|
726
|
+
.vd-timeline__play:focus-visible,
|
|
727
|
+
.vd-timeline__follow:focus-visible,
|
|
728
|
+
.vd-timeline__sound:focus-visible,
|
|
729
|
+
.vd-timeline__metronome:focus-visible,
|
|
730
|
+
.vd-timeline__music:focus-visible,
|
|
731
|
+
.vd-timeline__track:focus-visible {
|
|
732
|
+
outline: 2px solid var(--vd-accent, #3b82f6);
|
|
733
|
+
outline-offset: 1px;
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
.vd-timeline__page {
|
|
737
|
+
max-width: 140px;
|
|
738
|
+
overflow: hidden;
|
|
739
|
+
text-overflow: ellipsis;
|
|
740
|
+
white-space: nowrap;
|
|
741
|
+
font-weight: 600;
|
|
742
|
+
}
|
|
743
|
+
|
|
744
|
+
.vd-timeline__track {
|
|
745
|
+
position: relative;
|
|
746
|
+
flex: 1 1 auto;
|
|
747
|
+
min-width: 80px;
|
|
748
|
+
height: 20px;
|
|
749
|
+
border-radius: 4px;
|
|
750
|
+
background: var(--vd-track, rgb(0 0 0 / 0.06));
|
|
751
|
+
cursor: pointer;
|
|
752
|
+
touch-action: none;
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
.vd-timeline__fill {
|
|
756
|
+
position: absolute;
|
|
757
|
+
inset: 0 auto 0 0;
|
|
758
|
+
border-radius: 4px;
|
|
759
|
+
background: color-mix(in srgb, var(--vd-accent, #3b82f6) 18%, transparent);
|
|
760
|
+
pointer-events: none;
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
.vd-timeline[data-rest='true'] .vd-timeline__fill {
|
|
764
|
+
background: transparent;
|
|
765
|
+
}
|
|
766
|
+
|
|
767
|
+
.vd-timeline__ticks,
|
|
768
|
+
.vd-timeline__grid {
|
|
769
|
+
position: absolute;
|
|
770
|
+
inset: 0;
|
|
771
|
+
}
|
|
772
|
+
|
|
773
|
+
/* A bar line of the page's tempo: under the ticks, and faint, a ruler rather than marks. */
|
|
774
|
+
.vd-timeline__bar {
|
|
775
|
+
position: absolute;
|
|
776
|
+
top: 3px;
|
|
777
|
+
bottom: 3px;
|
|
778
|
+
width: 1px;
|
|
779
|
+
background: var(--vd-rule, rgb(0 0 0 / 0.12));
|
|
780
|
+
pointer-events: none;
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
.vd-timeline__tick {
|
|
784
|
+
position: absolute;
|
|
785
|
+
top: 6px;
|
|
786
|
+
width: 6px;
|
|
787
|
+
height: 8px;
|
|
788
|
+
margin-left: -3px;
|
|
789
|
+
border-radius: 2px;
|
|
790
|
+
background: var(--vd-muted, #8a8a96);
|
|
791
|
+
}
|
|
792
|
+
|
|
793
|
+
.vd-timeline__tick--camera {
|
|
794
|
+
top: 5px;
|
|
795
|
+
width: 8px;
|
|
796
|
+
height: 8px;
|
|
797
|
+
margin-left: -4px;
|
|
798
|
+
border-radius: 1px;
|
|
799
|
+
transform: rotate(45deg);
|
|
800
|
+
background: var(--vd-accent, #3b82f6);
|
|
801
|
+
}
|
|
802
|
+
|
|
803
|
+
.vd-timeline__head {
|
|
804
|
+
position: absolute;
|
|
805
|
+
top: -2px;
|
|
806
|
+
bottom: -2px;
|
|
807
|
+
width: 2px;
|
|
808
|
+
margin-left: -1px;
|
|
809
|
+
background: var(--vd-accent, #3b82f6);
|
|
810
|
+
pointer-events: none;
|
|
811
|
+
}
|
|
812
|
+
|
|
813
|
+
.vd-timeline-shade {
|
|
814
|
+
fill: rgb(0 0 0 / 0.55);
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
.vd-timeline-shot {
|
|
818
|
+
fill: none;
|
|
819
|
+
stroke: var(--vd-selection, var(--vd-accent, #3b82f6));
|
|
820
|
+
stroke-width: 1.5;
|
|
821
|
+
}
|
|
822
|
+
|
|
823
|
+
.vd-timeline[data-rest='true'] .vd-timeline__head {
|
|
824
|
+
display: none;
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
.vd-timeline__clock {
|
|
828
|
+
font-variant-numeric: tabular-nums;
|
|
829
|
+
color: var(--vd-muted, #6b6b76);
|
|
830
|
+
white-space: nowrap;
|
|
831
|
+
}
|
|
832
|
+
|
|
833
|
+
@media (max-width: 767px) {
|
|
834
|
+
.vd-timeline__page,
|
|
835
|
+
.vd-timeline__follow,
|
|
836
|
+
.vd-timeline__music,
|
|
837
|
+
.vd-timeline__metronome {
|
|
838
|
+
display: none;
|
|
839
|
+
}
|
|
840
|
+
}
|
|
841
|
+
|
|
627
842
|
.vd-strip {
|
|
628
843
|
box-sizing: border-box;
|
|
629
844
|
/* The drop line and the context menu are placed against it. */
|