@getv.design/embed 0.6.0 → 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/LICENSE +1 -1
- package/README.md +3 -3
- package/THIRD_PARTY_NOTICES.txt +1 -1
- package/dist/auto.js +2 -2
- package/dist/chunks/{chunk-UN7F6SH4.js → chunk-DXK755VP.js} +1 -1
- package/dist/chunks/{chunk-7P37TP37.js → chunk-ER6HNUNJ.js} +2 -2
- package/dist/chunks/{chunk-RSOCS6S4.js → chunk-FM6ZYYTD.js} +2 -2
- package/dist/chunks/{chunk-FXERLAK5.js → chunk-HHLJB4PE.js} +2 -2
- package/dist/chunks/{chunk-P42KFNKD.js → chunk-JAYW4VNL.js} +1 -1
- package/dist/chunks/chunk-KF7NJEZQ.js +2 -0
- package/dist/chunks/fonts.js +2 -2
- package/dist/cli.js +2 -2
- package/dist/edit.js +2 -2
- 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 +2 -2
- package/package.json +2 -2
- package/dist/chunks/chunk-VTEBIFPH.js +0 -2
package/dist/edit.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @getv.design/embed v0.6.
|
|
1
|
+
/*! @getv.design/embed v0.6.1. Free to use under the vDesign Embed Licence. © 2026 vDesign. https://getv.design/docs/licence/ */
|
|
2
2
|
function _t(e){return{expr:e}}function ve(e){return typeof e=="object"&&e!==null&&typeof e.expr=="string"}var Bt=["radiusTL","radiusTR","radiusBR","radiusBL"],Cn=["radius",...Bt];var F1={radiusTL:"tl",radiusTR:"tr",radiusBR:"br",radiusBL:"bl"};function Zn(e){let t=e.radius??0,n=r=>Math.max(0,e[r]??t);return{tl:n("radiusTL"),tr:n("radiusTR"),br:n("radiusBR"),bl:n("radiusBL")}}function Ao(e,t,n){let r=Math.max(0,t),o=Math.max(0,n),s=1,i=(a,d)=>{d>0&&(s=Math.min(s,a/d))};return i(r,e.tl+e.tr),i(r,e.bl+e.br),i(o,e.tl+e.bl),i(o,e.tr+e.br),s>=1?e:{tl:e.tl*s,tr:e.tr*s,br:e.br*s,bl:e.bl*s}}function $o(e,t,n){return Ao(Zn(e),t,n)}function Jt(e){return e.tl<=0&&e.tr<=0&&e.br<=0&&e.bl<=0}function Vc(e){return e.tl===e.tr&&e.tr===e.br&&e.br===e.bl}function Hc(e,t){return e[F1[t]]}function zs(e){let t=e;return Bt.some(n=>t[n]!==void 0)}var B1=/^(?:\d+(?:\.\d*)?|\.\d+)$/;function Uc(e){if(!e.startsWith('"'))return;let t;try{let a=JSON.parse(e);if(typeof a!="string")return;t=a}catch{return}let n=t.trim().split(/\s+/).filter(a=>a!=="");if(n.length<2)return;if(n.length>4)return{error:`the shorthand takes one to four corners, got ${n.length}: "${t}"`};for(let a of n){if(/^[$@(]/.test(a))return{error:`the shorthand takes numbers \u2014 bind one corner with its own cell, e.g. radiusTL=${a}`};if(!B1.test(a))return/^(-?\d+(?:\.\d+)?)px$/.exec(a)&&!a.startsWith("-")?{error:`drop the unit: radius="${n.map(c=>c.replace(/px$/,"")).join(" ")}"`}:{error:/^-\d/.test(a)?`a radius cannot be negative, got ${a}`:`the shorthand takes plain numbers, got "${a}"`}}let[r,o=r,s=r,i=o]=n;return{corners:[["radiusTL",r],["radiusTR",o],["radiusBR",s],["radiusBL",i]]}}function Ca(e){if(e.radius!==void 0)return;let t=[];for(let n of Bt){let r=e[n];if(typeof r!="number"||!(r>=0)||!Number.isFinite(r))return;t.push(r)}return t}var Cr=["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],kg=["frame","rect","ellipse","vector"];function Aa(e){return kg.includes(e)}var Qn=["left","center","right","justify"],er=["top","middle","bottom"],Zt=["cover","contain","fill"],Ar=["nonzero","evenodd"],tr=["butt","round","square"],$r=["miter","round","bevel"],Sg=["canvas","frame","group","instance"];function $a(e){return Sg.includes(e)}function me(e){return $a(e.type)}function Ne(e){return e.type==="group"}function te(e){return me(e)?e.children:[]}var _g={canvas:["w","h"],connector:["x1","y1","x2","y2","strokeWidth","opacity","blur"],ellipse:["x","y","w","h","rotation","strokeWidth","opacity","blur","backdrop"],frame:["x","y","w","h","strokeWidth",...Cn,"blur","backdrop"],group:[],instance:["x","y","w","h"],image:["x","y","w","h","rotation","strokeWidth",...Cn,"opacity","blur"],rect:["x","y","w","h","rotation","strokeWidth",...Cn,"opacity","blur","backdrop"],text:["x","y","w","h","rotation","size","weight","lineHeight","letterSpacing","strokeWidth","opacity","blur"],video:["x","y","w","h","rotation","strokeWidth",...Cn,"opacity","blur"],vector:["x","y","w","h","rotation","strokeWidth","opacity","blur","backdrop"]};function Vt(e){return _g[e.type]}function de(e,t,n){if(t(e,n)!==!1&&me(e))for(let r of e.children)de(r,t,e)}function z(e,t){let n;return de(e,r=>{if(n)return!1;r.id===t&&(n=r)}),n}function Le(e,t){let n;return de(e,(r,o)=>{r.id===t&&o&&(n=o)}),n}function Oa(e){return Eg(e,"hidden")}function Ta(e){return Eg(e,"locked")}function Eg(e,t){let n=new Set,r=(o,s)=>{let i=s||o[t]===!0;i&&n.add(o.id);for(let a of te(o))r(a,i)};return r(e,!1),n}function js(e,t,n){let r,o=(s,i)=>{let a=i??(s[n]===!0?s.id:void 0);return s.id===t?(r=a,!0):te(s).some(d=>o(d,a))};return o(e,void 0),r}var La=["light","dark"],Pa=["must","should"],Da=["no-gradient","contrast","font-only","logo-min"];var Mg=["role","logo","rule","guide","review"];function Na(e){return Mg.includes(e)}function Ra(e="",t=1){return{slug:e,version:t,changes:[],sources:[],roles:{},logos:{},rules:{},guides:{},review:[]}}function zc(e){let t=/^([a-z0-9][a-z0-9-]*)(?:@(\d+))?$/.exec(e);if(!t)return;let n=t[2]===void 0?1:Number(t[2]);if(!(!Number.isSafeInteger(n)||n<1))return{slug:t[1],version:n}}function jc(e){return`${e.slug}@${e.version}`}function Or(e){return Gc(e,()=>{})??e}function Kc(e,t){return e===t?!0:e===void 0||t===void 0?!1:JSON.stringify(Or(e))===JSON.stringify(Or(t))}function Gc(e,t){let n=Ks(e),r=n?.version;if(!n||typeof n.slug!="string"||typeof r!="number"||!Number.isSafeInteger(r)||r<1){t('`brand` must be an object with a "slug" and a "version" counting from 1');return}let o=l=>{let p={};for(let[m,g]of Object.entries(Ks(l)??{}))typeof g=="string"&&(p[m]=g);return p},s=(l,p)=>{let m={};for(let[g,b]of Object.entries(Ks(l)??{})){let w=Ks(b),k=w?p(w):void 0;k===void 0?t(`brand: could not read ${g}`):m[g]=k}return m},i=(l,p)=>{let m=[];for(let g of Array.isArray(l)?l:[]){let b=Ks(g),w=b?p(b):void 0;w===void 0?t("brand: could not read a list entry"):m.push(w)}return m},a=l=>typeof l=="string"?l:void 0,d=l=>typeof l=="number"?l:void 0,c=(l,p)=>p===void 0?{}:{[l]:p};return{slug:n.slug,version:r,...c("id",a(n.id)),...c("theme",La.includes(n.theme)?n.theme:void 0),...c("strict",n.strict===!0?!0:void 0),...c("summary",a(n.summary)),changes:i(n.changes,l=>{let p=d(l.version),m=a(l.note);if(!(p===void 0||m===void 0))return{version:p,note:m,...c("at",a(l.at))}}),sources:i(n.sources,l=>{let p=a(l.kind);return p===void 0?void 0:{kind:p,props:o(l.props)}}),roles:s(n.roles,l=>{let p=a(l.light);return p===void 0?void 0:{light:p,...c("dark",a(l.dark))}}),logos:s(n.logos,l=>{let p=a(l.asset);if(p!==void 0)return{asset:p,...c("min",d(l.min)),...c("clear",d(l.clear))}}),rules:s(n.rules,l=>{let p=l.level,m=a(l.text);if(!Pa.includes(p)||m===void 0)return;let g=o(l.params);return delete g.check,{level:p,text:m,...c("check",a(l.check)),...Object.keys(g).length===0?{}:{params:g}}}),guides:s(n.guides,l=>({entries:i(l.entries,V1)})),review:i(n.review,l=>{let p=a(l.target);if(p!==void 0)return{target:p,...c("from",a(l.from)),...c("note",a(l.note))}})}}function V1(e){let t=e.kind,n=e.text;if(t==="line"||t==="banned"||t==="avoid")return typeof n=="string"?{kind:t,text:n}:void 0;if(t==="rewrite"){let{from:r,to:o}=e;return typeof r=="string"&&typeof o=="string"?{kind:t,from:r,to:o}:void 0}if(t==="ref"||t==="approved"||t==="rejected"){let{asset:r,note:o}=e;return typeof r!="string"?void 0:{kind:t,asset:r,...typeof o=="string"?{note:o}:{}}}}function Ks(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}var H1=8,U1=new Set(["type","id","children","component","overrides"]);function nr(e){return!U1.has(e)}function Ht(e,t){return`${e}.${t}`}function lt(e){let t=new Map,n=r=>{if(r.type!=="instance"){r.type==="frame"&&r.component===!0&&t.set(r.id,r);for(let o of te(r))n(o)}};return n(e),t}function An(e,t){let n=[],r=o=>{if(o.type==="instance"){(t===void 0||o.component===t)&&n.push(o);return}for(let s of te(o))r(s)};return r(e),n}function Lt(e,t){let n,r=(o,s)=>{if(o.id===t)return s&&(n={instance:s,key:t.slice(s.id.length+1)}),!0;let i=s??(o.type==="instance"?o:void 0);return te(o).some(a=>r(a,i))};return r(e,void 0),n}function Ba(e,t){let n,r=(o,s)=>{if(o.id===t)return n=s,!0;let i=o.type==="instance"?o:s;return te(o).some(a=>r(a,i))};return r(e,void 0),n}function Xc(e,t,n,r){let o=lt(e).get(t.component),s=o?z(o,n):void 0;return s?s[r]:void 0}function Yc(e,t,n,r,o){let s={...e?.[t]};r===void 0||Fa(r,o)?delete s[n]:s[n]=r;let i={...e};return Object.keys(s).length===0?delete i[t]:i[t]=s,Object.keys(i).length===0?void 0:i}function $n(e){let t=e;for(let n=0;n<H1;n+=1){let r=lt(t),o=Cg(t,r);if(o===t)return t;t=o}return t}var qc=new WeakMap;function Cg(e,t){if(e.type==="instance"){let o=t.get(e.component)??null;if(qc.has(e)&&qc.get(e)===o)return e;let s=Ag(e,t,new Set),i=Fa(s,e.children)?e:{...e,children:s};return qc.set(i,o),i}if(!me(e))return e;let n=!1,r=e.children.map(o=>{let s=Cg(o,t);return s!==o&&(n=!0),s});return n?{...e,children:r}:e}function Ag(e,t,n){let r=t.get(e.component);if(!r||n.has(r.id))return[];let o=new Set(n).add(r.id),s=r.children.map(i=>Wc(i,e.id,t,o));return z1(s,e.id,e.overrides)}function Wc(e,t,n,r){let o=Ht(t,e.id);if(e.type==="instance"){let s={...e,id:o};return{...s,children:Ag(s,n,r)}}if(e.type==="frame"){let s={...e};return delete s.component,{...s,id:o,children:e.children.map(i=>Wc(i,t,n,r))}}return me(e)?{...e,id:o,children:e.children.map(s=>Wc(s,t,n,r))}:{...e,id:o}}function z1(e,t,n){if(n===void 0)return[...e];let r=new Map;for(let[s,i]of Object.entries(n))r.set(Ht(t,s),i);let o=s=>{let i=r.get(s.id),a=s;if(i){let d={...s};for(let[c,l]of Object.entries(i))nr(c)&&(d[c]=l);a=d}return me(a)?{...a,children:a.children.map(o)}:a};return e.map(o)}function Gs(e){let t=[],n=lt(e);for(let s of An(e)){let i=n.get(s.component);if(!i){t.push({severity:"error",code:"missing-component",message:`${s.id} places ${s.component}, which is not a component \u2014 mark a frame with component, or point component= at one`,nodeId:s.id});continue}if(Ia(i,i.id,n,new Set)){t.push({severity:"error",code:"component-cycle",message:`${i.id} holds an instance of itself, so ${s.id} cannot be drawn`,nodeId:s.id});continue}for(let a of Object.keys(s.overrides??{}))z(s,Ht(s.id,a))||t.push({severity:"warning",code:"orphaned-override",message:`${s.id} overrides ${a}, which ${i.id} no longer has`,nodeId:s.id})}for(let[s]of n)e.type==="canvas"&&e.children.some(i=>i.id===s)||t.push({severity:"warning",code:"component-not-top-level",message:`${s} is a component inside another frame \u2014 keep components in the row below the pages, at the top level`,nodeId:s});let r=new Map,o=s=>{r.set(s.id,(r.get(s.id)??0)+1);for(let i of te(s))o(i)};o(e);for(let s of An(e))for(let i of s.children){let a=d=>{(r.get(d.id)??0)>1&&t.push({severity:"error",code:"duplicate-id",message:`${d.id} is both a node and a part of ${s.id} \u2014 rename one`,nodeId:d.id});for(let c of te(d))a(c)};a(i)}return t}function Ia(e,t,n,r){return te(e).some(o=>{if(o.type==="instance"){if(o.component===t)return!0;if(r.has(o.component))return!1;r.add(o.component);let s=n.get(o.component);return s!==void 0&&Ia(s,t,n,r)}return Ia(o,t,n,r)})}function Jc(e,t,n){if(t===n)return!0;let r=lt(e),o=r.get(t);return o!==void 0&&Ia(o,n,r,new Set)}function Zc(e,t){let n,r=(o,s)=>{let i=o.type==="frame"&&o.component===!0?o.id:s;return o.id===t?(n=s,!0):o.type==="instance"?!1:te(o).some(a=>r(a,i))};return r(e,void 0),n}function qs(e,t){let n=e.overrides??{},r=[],o=new Set,s=a=>{let d=a.id.slice(e.id.length+1);n[d]!==void 0&&!o.has(d)&&(r.push({key:d,type:a.type}),o.add(d));for(let c of te(a))s(c)};for(let a of e.children)s(a);let i=Object.keys(n).filter(a=>!o.has(a)).sort().map(a=>({key:a,type:void 0}));return[...r,...i].map(({key:a,type:d})=>{let c=d===void 0?[]:t(d),l=m=>m==="content"?-1:c.includes(m)?c.indexOf(m):c.length,p=Object.entries(n[a]??{}).sort(([m],[g])=>l(m)-l(g)||(m<g?-1:m>g?1:0));return[a,p]})}function Ws(e){return lt(e).size>0||An(e).length>0}function Fa(e,t){if(e===t)return!0;if(typeof e!="object"||typeof t!="object"||e===null||t===null)return!1;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((s,i)=>Fa(s,t[i]));let n=e,r=t,o=new Set([...Object.keys(n),...Object.keys(r)]);for(let s of o)if(!Fa(n[s],r[s]))return!1;return!0}var Tr=["design","brand"],rr="design",$g=new WeakMap;function Ze(e){let t=e.brand?.theme==="dark"?e.themes?.dark:void 0;if(t===void 0)return e.tokens;let n=$g.get(e);if(n!==void 0)return n;let r={...e.tokens,...t};return $g.set(e,r),r}var Og=4,Tg=5,Lg=6,Pg=7,Qc=8,Xs=[1,2,3,4,5,6,7,8],Ys=Qc;function Et(e){return e.root!==void 0&&Dg(e.root)?Qc:e.root!==void 0&&Ng(e.root)?Pg:e.root!==void 0&&Ws(e.root)?Lg:e.kind==="brand"||e.brand!==void 0||e.themes!==void 0||j1(e.fonts)?Tg:Og}function Dg(e){let t=!1;return de(e,n=>(n.type==="video"&&(t=!0),t?!1:void 0)),t}function Ng(e){let t=!1;return de(e,n=>(n.type==="connector"&&(t=!0),t?!1:void 0)),t}function j1(e){return Object.values(e??{}).some(t=>(t.faces??[]).some(n=>n.asset!==void 0))}var dn="doc";function Oo(e){return{type:"canvas",...e}}function el(e){return{type:"connector",...e}}function tl(e){return{type:"ellipse",...e}}function Va(e){return{type:"frame",...e}}function nl(e){return{type:"group",...e}}function rl(e){return{type:"video",...e}}function ol(e){return{type:"image",...e}}function sl(e){return{type:"rect",...e}}function il(e){return{type:"text",...e}}function To(e){return{type:"vector",...e}}function Js(e={}){let t=e.kind??rr,n=un(e.themes),r=$n(e.root??Oo({id:dn,children:[]}));return{version:Et({kind:t,root:r,...e.fonts===void 0?{}:{fonts:e.fonts},...e.brand===void 0?{}:{brand:e.brand},...n===void 0?{}:{themes:n}}),kind:t,...e.title===void 0?{}:{title:e.title},tokens:e.tokens??{},fonts:e.fonts??{},assets:e.assets??{},...e.motion===void 0||Object.keys(e.motion).length===0?{}:{motion:e.motion},...e.brand===void 0?{}:{brand:e.brand},...n===void 0?{}:{themes:n},root:r}}function un(e){let t=e?.dark;return t===void 0||Object.keys(t).length===0?void 0:{dark:t}}function Qt(e){let t=e.trim();if(t.startsWith("#")){let r=t.slice(1);return r===""?void 0:{kind:"frame",id:r}}let n;try{n=new URL(t)}catch{return}if(!(n.protocol!=="https:"&&n.protocol!=="mailto:"))return{kind:"url",url:t}}var Zs=["beat","bar"];var K1=/^(\d+(?:\.\d+)?)(beats?|bars?)$/;function Lr(e){let t=K1.exec(e);if(!t)return;let n=Number(t[1]);if(Number.isFinite(n))return{count:n,unit:t[2].startsWith("bar")?"bar":"beat"}}function Pr(e,t){return`${String(Math.round(e*1e6)/1e6)}${t}${e===1?"":"s"}`}function Dr(e){return typeof e=="string"&&Lr(e)!==void 0}function en(e){let t=e?.bpm;if(t===void 0)return;let n=e?.meter??4,r=6e4/t;return{bpm:t,meter:n,beat:r,bar:r*n}}function ft(e,t,n){if(e===void 0)return n;if(typeof e=="number")return e;let r=Lr(e);return!r||!t?n:r.count*(r.unit==="bar"?t.bar:t.beat)}function al(e,t,n){let r=t==="bar"?n.bar:n.beat,o=Math.ceil((e-1)/r);return Math.max(0,o)*r}function Qs(e){return`${Math.round(e)} ms`}var Lo=36e5;var dl=50,ul=16e3,cl=320,ei=["from","volume","fadein","fadeout","loop"];function ll(e,t){return e===t?!0:e===void 0||t===void 0?!1:e.asset===t.asset&&ei.every(n=>e[n]===t[n])}function fl(e,t){let n=e?.music;if(!n)return[];let r=en(e),o=t[n.asset]?.ms,s=ft(n.fadeout,r);return[{asset:n.asset,at:0,from:n.from??0,volume:n.volume??1,fadeIn:ft(n.fadein,r,0),...s===void 0?{}:{fadeOut:s},loop:n.loop===!0,...o===void 0?{}:{sourceMs:o}}]}var Do=["cut","fade","push","slide"],ti=["cut","fade","rise","drop","pop","wipe","grow","count","draw"],Po=["cut","fade","rise","drop","pop"],ni=["pulse"],ri=["out","in","inout","linear","spring"],oi=["word","letter"],or=["left","right","top","bottom"],si=400,cn=1e4,sr=18e4,ln=7680;function On(e){let t=e.trim();return t==="back"?{kind:"back"}:t==="next"?{kind:"next"}:Qt(t)}function Tn(e){return e===void 0||e.enter===void 0&&e.duration===void 0&&e.scroll!==!0&&e.length===void 0&&e.w===void 0&&e.h===void 0&&e.bpm===void 0&&e.meter===void 0&&e.music===void 0&&e.lines.length===0}function No(e){return e.camera===!0||e.enter!==void 0||e.exit!==void 0||e.emphasis!==void 0||e.go!==void 0}var G1=["id","camera","enter","exit","emphasis","from","by","stagger","duration","hold","delay","at","after","with","step","together","on","ease","pad","go"],q1=["camera","emphasis","from","by","stagger","hold","at","after","with","on","ease","pad"];function Nr(e){return e===void 0?!1:e.length!==void 0||e.w!==void 0||e.h!==void 0||e.bpm!==void 0||e.meter!==void 0||e.music!==void 0?!0:e.lines.some(t=>q1.some(n=>t[n]!==void 0)||t.enter!==void 0&&!Po.includes(t.enter)||t.exit!==void 0&&!Po.includes(t.exit))}function Ha(e,t){return e===t?!0:e===void 0||t===void 0||e.enter!==t.enter||e.duration!==t.duration||e.length!==t.length||e.w!==t.w||e.h!==t.h||e.bpm!==t.bpm||e.meter!==t.meter||!ll(e.music,t.music)||e.scroll===!0!=(t.scroll===!0)||e.lines.length!==t.lines.length?!1:e.lines.every((n,r)=>{let o=t.lines[r];return G1.every(s=>n[s]===o[s])})}function Ro(e){let t=e.motion;if(!t)return[];let n=e.root.children.map(o=>o.id).filter(o=>o in t),r=Object.keys(t).filter(o=>!n.includes(o)).sort();return[...n,...r]}function Ln(e){return new Set(e.root.children.filter(t=>t.type==="frame"&&t.component!==!0).map(t=>t.id))}function Ut(e){let t=new Map;for(let n of e.root.children)n.type!=="frame"||n.component===!0||de(n,r=>{t.set(r.id,n.id)});return t}function pl(e){let t=new Set;return de(e,n=>{t.add(n.id)}),t}function Io(e,t){let n=e.motion;if(!n)return[];let r=[],o=Ln(e),s=Ut(e),i=pl(e.root),a=(d,c)=>{let l=t?.(d,c);return l===void 0?"":`Line ${l}: `};for(let d of Ro(e)){let c=n[d];if(!c)continue;if(!o.has(d)){r.push({severity:"warning",code:"motion-not-a-page",message:`${a(d)}motion ${d}: ${d} is not a page (a top-level frame), so none of it plays`,nodeId:d});continue}let l=new Set;for(let p of c.lines){let m=a(d,p.id);for(let w of["after","with"]){let k=p[w];k!==void 0&&!l.has(k)&&r.push({severity:"warning",code:"motion-anchor-missing",message:`${m}motion ${d}: ${w}=${k} names no line above, so it starts after the line above instead`,nodeId:p.id})}p.camera!==!0&&l.add(p.id);let g=i.has(p.id)?z(e.root,p.id):void 0;g&&r.push(...W1(p,g,m,d)),i.has(p.id)?s.get(p.id)!==d&&r.push({severity:"warning",code:"motion-wrong-page",message:`${m}motion ${d}: ${p.id} is not on ${d}, so Play skips it`,nodeId:p.id}):r.push({severity:"warning",code:"unknown-reference",message:`${m}motion ${d}: no node ${p.id}`,nodeId:p.id});let b=p.go===void 0?void 0:On(p.go);b?.kind==="frame"&&!J1(e,b.id)&&r.push({severity:"warning",code:"unknown-reference",message:`${m}motion ${d}: go=#${b.id} names no frame`,nodeId:p.id})}}return r}function W1(e,t,n,r){let o=[],s=(a,d)=>{o.push({severity:"warning",code:a,message:`${n}motion ${r}: ${d}`,nodeId:t.id})};if(e.camera===!0)return o;let i=e.enter??e.exit;return i==="count"&&(t.type!=="text"||!/\d/.test(ir(t.content)))&&s("count-no-number",`${t.id} has no number to count, so it fades in instead`),i==="draw"&&!Y1(t)&&s("draw-no-stroke",`${t.id} has no stroked vector to draw, so it fades in instead`),e.by!==void 0&&t.type!=="text"?s("by-not-text",`by=${e.by} splits text, and ${t.id} is a ${t.type}`):e.by!==void 0&&t.type==="text"&&X1(t)&&s("by-rotated",`${t.id} is rotated, so by=${e.by} enters it whole`),e.stagger!==void 0&&e.by===void 0&&te(t).length===0&&s("stagger-no-children",`${t.id} has no children to stagger: split a text with by=word`),o}function X1(e){let t=e.rotation;return t!==void 0&&t!==0}function Y1(e){let t=!1;return de(e,n=>((n.type==="vector"&&n.stroke!==void 0||n.type==="connector")&&(t=!0),t?!1:void 0)),t}function ir(e){return typeof e=="string"?e:e.map(t=>typeof t=="string"?t:t.text).join("")}function J1(e,t){let n=!1;return de(e.root,r=>{if(n)return!1;r.id===t&&(n=r.type==="frame")}),n}function Rg(e,t){let n=t.motion;if(!n||!e.motion)return n;let r=Ut(e),o=Ut(t),s=pl(e.root),i=pl(t.root),a=p=>s.has(p)&&!i.has(p),d=!1,c={},l=[];for(let[p,m]of Object.entries(n)){if(a(p)){d=!0;continue}let g=[];for(let w of m.lines){let k=w,_=w.go===void 0?void 0:On(w.go);if(_?.kind==="frame"&&a(_.id)){let M=Q1(w);k=No(M)?M:void 0,d=!0}if(k&&(k.after!==void 0&&a(k.after)||k.with!==void 0&&a(k.with))&&(k=Z1(k,a),d=!0),k&&a(w.id))k=void 0,d=!0;else if(k&&r.get(w.id)===p&&o.get(w.id)!==p){let M=o.get(w.id);M!==void 0&&l.push([M,k]),k=void 0,d=!0}k&&g.push(k)}let b={...m,lines:g};Tn(b)||(c[p]=b)}for(let[p,m]of l){let g=c[p]??{lines:[]};c[p]={...g,lines:[...g.lines,m]}}return d?Object.keys(c).length===0?void 0:c:n}function Z1(e,t){let n={...e};return e.after!==void 0&&t(e.after)&&delete n.after,e.with!==void 0&&t(e.with)&&delete n.with,n}function Q1(e){let t={...e};return delete t.go,t}function hl(e,t){let n={...e};return t===void 0||Object.keys(t).length===0?delete n.motion:n.motion=t,n}function ml(e,t){let n=Rg(e,t);if(n===t.motion)return[];let r=new Set([...Object.keys(t.motion??{}),...Object.keys(n??{})]),o=[];for(let s of r){let i=n?.[s];Ha(t.motion?.[s],i)||o.push({op:"setMotion",page:s,value:i})}return o}var Ig={canvas:["type","id","name","w","h","background","children"],connector:["type","id","name","x1","y1","x2","y2","route","start","end","stroke","strokeWidth","dash","cap","opacity","blend","shadow","blur","hidden","locked"],frame:["type","id","name","x","y","w","h","background","stroke","strokeWidth","dash","strokeAlign","cap","radius","radiusTL","radiusTR","radiusBR","radiusBL","clip","skip","component","blend","shadow","blur","backdrop","hidden","locked","children"],ellipse:["type","id","name","x","y","w","h","rotation","fill","stroke","strokeWidth","dash","strokeAlign","cap","opacity","blend","shadow","blur","backdrop","hidden","locked"],group:["type","id","name","hidden","locked","children"],instance:["type","id","name","component","x","y","w","h","overrides","hidden","locked"],image:["type","id","name","x","y","w","h","rotation","src","fit","mask","stroke","strokeWidth","dash","strokeAlign","cap","radius","radiusTL","radiusTR","radiusBR","radiusBL","opacity","blend","shadow","blur","hidden","locked"],rect:["type","id","name","x","y","w","h","rotation","fill","stroke","strokeWidth","dash","strokeAlign","cap","radius","radiusTL","radiusTR","radiusBR","radiusBL","opacity","blend","shadow","blur","backdrop","hidden","locked"],text:["type","id","name","x","y","w","h","rotation","content","font","size","weight","lineHeight","letterSpacing","align","valign","italic","fill","stroke","strokeWidth","dash","opacity","blend","shadow","blur","hidden","locked"],vector:["type","id","name","x","y","w","h","rotation","view","d","fill","stroke","strokeWidth","dash","strokeAlign","opacity","rule","cap","join","blend","shadow","blur","backdrop","hidden","locked"],video:["type","id","name","x","y","w","h","rotation","src","fit","start","end","poster","muted","loop","mask","stroke","strokeWidth","dash","strokeAlign","cap","radius","radiusTL","radiusTR","radiusBR","radiusBL","opacity","blend","shadow","blur","hidden","locked"]},Fg=["text","font","size","weight","italic","underline","strike","fill","letterSpacing","link"],eS=["family","fallback","faces"],tS=["src","asset","weight","style"],Fe=" ";function xl(e){let t=["{",`${Fe}"version": ${K(Et(e))},`,`${Fe}"kind": ${JSON.stringify(e.kind)},`,...e.title===void 0?[]:[`${Fe}"title": ${JSON.stringify(e.title)},`],`${Fe}"tokens": ${rS(e.tokens,Fe)},`];return Object.keys(e.fonts).length>0&&t.push(`${Fe}"fonts": ${oS(e.fonts,Fe)},`),e.motion!==void 0&&t.push(`${Fe}"motion": ${nS(e,Fe)},`),e.brand!==void 0&&t.push(`${Fe}"brand": ${JSON.stringify(Or(e.brand))},`),e.themes?.dark!==void 0&&Object.keys(e.themes.dark).length>0&&t.push(`${Fe}"themes": ${JSON.stringify({dark:e.themes.dark})},`),t.push(`${Fe}"root": ${gl(e.root,Fe)}`,"}"),`${t.join(`
|
|
3
3
|
`)}
|
|
4
4
|
`}function Ua(e){return`${gl(e,"")}
|
|
@@ -3095,7 +3095,7 @@ button.vd-field__swatch:focus-visible {
|
|
|
3095
3095
|
`,t);return n===-1?t:n+1}function T2(e,t,n){let r=e.indexOf(t,n);return r===-1?n:r}function _u(e,t){for(let n=0;n<e.length;n+=1){let r=e[n];if(t<=r.end)return n}return Math.max(0,e.length-1)}function Eu(e,t,n,r){let o=ks(e,t),s=_u(o,n),i=e.lines[s],a=o[s];if(!i||!a)return{x:0,y:0,h:0,line:0};let d=Math.max(0,Math.min(n-a.start,Lv(i))),c=(L2(i,d)??i.style)?.fill;return{x:_m(i,d,r),y:i.y,h:i.h,line:s,...c!==void 0?{fill:c}:{}}}function L2(e,t){let n=0;for(let r of e.spans)if(n+=r.text.length,t<=n)return r.style;return e.spans[e.spans.length-1]?.style}function Xi(e,t,n,r){let o=ks(e,t);if(e.lines.length===0)return 0;let s=e.lines.findIndex(d=>n.y<d.y+d.h);s===-1&&(s=e.lines.length-1);let i=e.lines[s];return o[s].start+Tv(i,n.x,r)}function Tv(e,t,n){let r=0,o=1/0,s=0,i=(a,d)=>{let c=Math.abs(d-t);c<o&&(o=c,r=a)};i(0,e.spans[0]?.x??0);for(let a of e.spans){for(let d of Cm(a.text))d!==0&&i(s+d,a.x+n.advance(a.text.slice(0,d),a.style));s+=a.text.length}return r}function _m(e,t,n){let r=0,o=e.spans[0]?.x??0;for(let s of e.spans){if(t<=r)return s.x;if(t>=r+s.text.length){o=s.x+s.w,r+=s.text.length;continue}return s.x+n.advance(s.text.slice(0,t-r),s.style)}return o}function Lv(e){return e.spans.reduce((t,n)=>t+n.text.length,0)}function Em(e,t,n,r,o){let s=Math.min(n,r),i=Math.max(n,r);if(s===i)return[];let a=ks(e,t),d=[];return e.lines.forEach((c,l)=>{let p=a[l];if(!p)return;let m=Math.max(s,p.start),g=Math.min(i,p.end);if(g<=m)return;let b=Lv(c),w=_m(c,Math.min(m-p.start,b),o),k=_m(c,Math.min(g-p.start,b),o),_=Math.max(k-w,g>p.end-1&&g>m?4:0);_>0&&d.push({x:w,y:c.y,w:_,h:c.h})}),d}function Mm(e,t,n,r,o){let s=ks(e,t),a=_u(s,n)+r,d=e.lines[a],c=s[a];if(!d||!c)return r===-1?0:t.length;let l=Eu(e,t,n,o);return Math.min(c.start+Tv(d,l.x,o),c.end)}function Cm(e){let t=[0];for(let{index:n,segment:r}of P2.segment(e))t.push(n+r.length);return t}var P2=new Intl.Segmenter(void 0,{granularity:"grapheme"});function Mu(e,t){let n=0;for(let r of Cm(e)){if(r>=t)break;n=r}return n}function Am(e,t){for(let n of Cm(e))if(n>t)return n;return e.length}function Pv(e,t){return t>=e.length?e.length:Mu(e,t+1)}var D2=/[\p{L}\p{N}_]/u;function $m(e,t){let n=Math.max(0,Math.min(t,e.length)),r=a=>D2.test(e[a]??""),o=n;if(!r(o)&&o>0&&r(o-1)&&(o-=1),!r(o))return{from:n,to:n};let s=o,i=o;for(;s>0&&r(s-1);)s-=1;for(;i<e.length&&r(i);)i+=1;return{from:s,to:i}}function Cu(e,t,n){let r=ks(e,t),o=r[_u(r,n)];return o?{from:o.start,to:o.end}:{from:0,to:t.length}}var N2=700,R2=400,I2=600,Dv=1,F2=1,Fv=700;function Om(e){let t=0,n=0,r=null,o=!1,s=0,i=!1,a=0,d=0;function c(){return lo(e.content())}function l($){let P=c();return Pv(P,Math.max(0,Math.min(Math.round($),P.length)))}function p(){return{from:Math.min(t,n),to:Math.max(t,n)}}function m($,P=$){let C=t!==$||n!==P;t=l($),n=l(P),C&&g(),r=null,e.invalidate()}function g(){o=!1,s&&(clearTimeout(s),s=0)}function b(){s&&clearTimeout(s),s=setTimeout(g,Fv)}function w($,P){e.write($,o,P),o=!0,b()}function k($,P){let{from:C,to:G}=p(),ee=r??void 0;w(ws(e.content(),C,G,$,ee),P),t=n=C+$.length,r=null,e.invalidate()}function _($,P){$!==P&&(w(ws(e.content(),$,P,""),"Delete text"),t=n=Math.min($,P),e.invalidate())}function M($,P){let{from:C,to:G}=p();if(C!==G){_(C,G);return}let ee=c();if($===-1){if(C===0)return;let oe=P?Rv(ee,C):Mu(ee,C);_(oe,C);return}if(C>=ee.length)return;let fe=P?Iv(ee,C):Am(ee,C);_(C,fe)}function R($,P){let C=c();return P?$===-1?Rv(C,n):Iv(C,n):$===-1?Mu(C,n):Am(C,n)}let B=$=>$.weight??e.base().weight,D=$=>$.italic??e.base().italic,V=$=>B($)>=I2;function T($){let{from:P,to:C}=p();if(r||P===C)return $(r??po(e.content(),P));let G=0;for(let ee of kn(e.content())){let fe=G+ee.text.length;if(Math.min(fe,C)>Math.max(G,P)&&!$(ee))return!1;G=fe}return!0}function O($,P,C,G){let ee=P({});return T(P)?{[$]:ee?G:void 0}:{[$]:ee?void 0:C}}function j($,P){let C=Se=>Math.max(F2,(Se.size??e.base().size)+$),{from:G,to:ee}=p();if(G===ee){P({size:C(r??po(e.content(),G))});return}let fe=e.content(),oe=0;for(let Se of kn(e.content())){let be=oe+Se.text.length,v=Math.max(oe,G),N=Math.min(be,ee);N>v&&(fe=ku(fe,v,N,{size:C(Se)})),oe=be}g(),w(fe,"Format text"),g(),e.invalidate()}return{id:e.id,getSelection:()=>({anchor:t,head:n}),setSelection($,P){m($,P??$)},caret(){return Eu(e.layout(),c(),n,e.measure())},highlight(){let{from:$,to:P}=p();return Em(e.layout(),c(),$,P,e.measure())},pointTo($,P){let C=Xi(e.layout(),c(),$,e.measure());m(P?t:C,C)},selectWordAt($){let P=Xi(e.layout(),c(),$,e.measure()),C=$m(c(),P);m(C.from,C.to)},selectLineAt($){let P=Xi(e.layout(),c(),$,e.measure()),C=Cu(e.layout(),c(),P);m(C.from,C.to)},selectAll(){m(0,c().length)},format($){let{from:P,to:C}=p();if(P===C){r={...po(e.content(),P),...$},e.invalidate();return}g(),w(ku(e.content(),P,C,$),"Format text"),g(),e.invalidate()},activeMark(){if(r)return r;let{from:$,to:P}=p();return Sm(e.content(),$,P)},composing:()=>i,handleKey($){if(i)return!1;let P=$.metaKey||$.ctrlKey,C=$.altKey||$.ctrlKey&&!$.metaKey;if(P&&$.shiftKey&&!$.altKey&&($.code==="Period"||$.code==="Comma"))return j($.code==="Period"?Dv:-Dv,G=>this.format(G)),!0;switch($.key){case"Escape":return e.close("escape"),!0;case"ArrowLeft":case"ArrowRight":{let G=$.key==="ArrowLeft"?-1:1,{from:ee,to:fe}=p();if(!$.shiftKey&&ee!==fe)m(G===-1?ee:fe);else{let oe=$.metaKey?Nv(e,c(),n,G):R(G,C);m($.shiftKey?t:oe,oe)}return!0}case"ArrowUp":case"ArrowDown":{let G=$.key==="ArrowUp"?-1:1,ee=P?G===-1?0:c().length:Mm(e.layout(),c(),n,G,e.measure());return m($.shiftKey?t:ee,ee),!0}case"PageUp":case"PageDown":{let G=$.key==="PageUp"?0:c().length;return m($.shiftKey?t:G,G),!0}case"Home":case"End":{let G=Nv(e,c(),n,$.key==="Home"?-1:1);return m($.shiftKey?t:G,G),!0}case"Backspace":return M(-1,C||P),!0;case"Delete":return M(1,C||P),!0;case"Enter":return P?e.close("done"):k(`
|
|
3096
3096
|
`,"Type text"),!0;case"Tab":return!1;case"a":case"A":return P?(m(0,c().length),!0):!1;case"b":case"B":return P?(this.format(O("weight",V,N2,R2)),!0):!1;case"i":case"I":return P?(this.format(O("italic",D,!0,!1)),!0):!1;case"u":case"U":return P?(this.format({underline:this.activeMark().underline===!0?void 0:!0}),!0):!1;case"x":case"X":return!P||!$.shiftKey||$.altKey?!1:(this.format({strike:this.activeMark().strike===!0?void 0:!0}),!0);default:return!1}},handleInput($){if(!i)switch($.inputType){case"insertText":case"insertReplacementText":case"insertFromPaste":case"insertFromDrop":case"insertFromYank":k(B2($),"Type text");return;case"insertParagraph":case"insertLineBreak":k(`
|
|
3097
3097
|
`,"Type text");return;case"deleteContentBackward":case"deleteWordBackward":M(-1,$.inputType==="deleteWordBackward");return;case"deleteContentForward":case"deleteWordForward":M(1,$.inputType==="deleteWordForward");return;case"deleteByCut":case"deleteByDrag":{let{from:P,to:C}=p();_(P,C);return}default:return}},handleCompositionStart(){i=!0;let{from:$,to:P}=p();a=$,d=P,g()},handleCompositionUpdate($){w(ws(e.content(),a,d,$),"Type text"),d=a+$.length,t=n=d,e.invalidate()},handleCompositionEnd($){w(ws(e.content(),a,d,$),"Type text"),i=!1,d=a+$.length,t=n=d,g(),e.invalidate()},breakBurst:g,destroy(){g()}}}function B2(e){return typeof e.data=="string"?e.data:e.dataTransfer?.getData("text/plain")??""}function Nv(e,t,n,r){let o=Cu(e.layout(),t,n);return r===-1?o.from:o.to}var Au=/[\p{L}\p{N}_]/u;function Rv(e,t){let n=t;for(;n>0&&!Au.test(e[n-1]??"");)n-=1;for(;n>0&&Au.test(e[n-1]??"");)n-=1;return n}function Iv(e,t){let n=t;for(;n<e.length&&!Au.test(e[n]??"");)n+=1;for(;n<e.length&&Au.test(e[n]??"");)n+=1;return n}function Tm(e){return fo(e)===0}var Bv=10;function $u(e,t){let n=t.x+t.w/2,r=t.y+t.h/2;return[{id:e,side:"left",at:{x:t.x,y:r}},{id:e,side:"right",at:{x:t.x+t.w,y:r}},{id:e,side:"top",at:{x:n,y:t.y}},{id:e,side:"bottom",at:{x:n,y:t.y+t.h}}]}function Vv(e,t,n,r){let o=a=>Math.hypot(a.at.x-e.x,a.at.y-e.y),s=a=>a.reduce((d,c)=>d===null||o(c)<o(d)?c:d,null);if(t)return s($u(t.id,t.box));let i=n.flatMap(({id:a,box:d})=>$u(a,d).filter(c=>o(c)<=r));return s(i)}function V2(e){switch(e){case"left":return["left","cy"];case"right":return["right","cy"];case"top":return["cx","top"];case"bottom":return["cx","bottom"]}}function Ou(e,t,n,r){let[o,s]=e==="start"?["x1","y1"]:["x2","y2"];if(t){let[i,a]=V2(t.side);return{[o]:_t(`@${t.id}.${i}`),[s]:_t(`@${t.id}.${a}`)}}return{[o]:Math.round((n.x-r.x)*100)/100,[s]:Math.round((n.y-r.y)*100)/100}}function Hv(e,t){let n=t.x-e.x,r=t.y-e.y,o=Math.hypot(n,r);if(o===0)return t;let s=Math.PI/4,i=Math.round(Math.atan2(r,n)/s)*s;return{x:e.x+Math.cos(i)*o,y:e.y+Math.sin(i)*o}}var Lm={v:"select",f:"frame",r:"rect",o:"ellipse",l:"line",p:"pen",t:"text"};var Pm="host:",Uv="#ffffff",zv={w:1920,h:1080},H2=100,Tu=20,U2=15,jv=1,Kv=10,Gv=2,z2=32,j2={ne:0,se:90,sw:180,nw:270,n:0,e:90,s:180,w:270},qv={w:240,h:28},K2={text:"Add text",frame:"Add page",rect:"Draw rectangle",ellipse:"Draw ellipse"};function G2(e,t){let n=t.x-e.x,r=t.y-e.y,o=Math.max(Math.abs(n),Math.abs(r));return{x:e.x+Math.sign(n||1)*o,y:e.y+Math.sign(r||1)*o}}var q2={KeyA:"left",KeyD:"right",KeyW:"top",KeyS:"bottom",KeyH:"hcenter",KeyV:"vcenter"},W2={KeyH:"x",KeyV:"y"},X2={KeyU:"union",KeyS:"subtract",KeyI:"intersect",KeyX:"exclude"},Wv={ArrowLeft:[-1,0],ArrowRight:[1,0],ArrowUp:[0,-1],ArrowDown:[0,1]},Y2={left:"Align left",hcenter:"Align horizontal centres",right:"Align right",top:"Align top",vcenter:"Align vertical centres",bottom:"Align bottom"},Dm=null,J2=220,Xv={lock:!0,hide:!0},Pu="application/x-vdesign-component",Z2=new Set(["x","y","w","h","rotation"]),Q2={cover:"xMidYMid slice",contain:"xMidYMid meet",fill:"none"},eA=["x","y","w","h"],tA={front:"Bring to front",forward:"Bring forward",backward:"Send backward",back:"Send to back"},nA=11,jn=2,rA={metaKey:!1,ctrlKey:!1},oA=10;function Rm(e,t){uo(e.ownerDocument),e.classList.add("vd-editor"),e.hasAttribute("tabindex")||(e.tabIndex=0);let n=t.document,r=[],o=t.tool??"select",s=null,i=null,a=null,d=null,c={ids:[],label:null},l=null,p=[],m=!1,g=new Set,b=null,w=!1,k=!1,_=null,M=null,R={...Xv,...t.features},B=null,D=new qi,V=0,T=null,O={dx:0,dy:0},j=null,$=new Map,P=e.ownerDocument.createElement("div");P.style.position="absolute",P.style.inset="0",e.appendChild(P),e.style.touchAction="none";let C=Rd(P,{sample:Kf,document:n,...t.camera?{camera:t.camera}:{},...t.surface?{surface:t.surface}:{},...t.interactive===void 0?{}:{interactive:t.interactive},...t.wheel?{wheel:t.wheel}:{},...t.resolveAsset?{resolveAsset:t.resolveAsset}:{},...t.fonts?{fonts:t.fonts}:{},onSceneChange:(u,f)=>{f===n&&ke("scene",{scene:u,document:f})},onCameraChange:u=>{ee?.setZoom(u.zoom),ce(),ke("camera",u),!(V>0)&&(Ue(),ke("navigate",u))}}),G=kv(e,u=>C.documentToScreen(u)),ee=t.chrome===!1?null:Bb(e,{onTool:Mn,onUndo:Vs,onRedo:Hs,onZoomReset:()=>C.fitToContent(),onPlay:t.onPlay,playHint:t.playHint,formatKeys:t.formatKeys}),fe=t.chrome===!1?null:fu(e,{onCommand:i1,...t.formatKeys?{formatKeys:t.formatKeys}:{}}),oe=n,Se=n,be=[],v=null,N=[],I=null,F=null,q=new Map,Y=null,Q=null,Te=null,Ct=[],_e=dt,Rt=null,ae=null,H=null,J=null,Oe=!1,se=e.ownerDocument.createElement("textarea");se.className="vd-editor__input",se.setAttribute("aria-hidden","true"),se.tabIndex=-1,se.autocapitalize="off",se.autocomplete="off",se.spellcheck=!1,e.appendChild(se);function ke(u,f){let h=$.get(u);if(h)for(let x of h)x(f)}function ye(u,f){let h=$.get(u)??new Set;return h.add(f),$.set(u,h),()=>h.delete(f)}function Ge(u){V+=1;try{u()}finally{V-=1}}function Ue(){T!==null&&(e.ownerDocument.defaultView?.cancelAnimationFrame(T),T=null)}function Os(u){let f=C.linkAt(u),h=f===void 0?void 0:Qt(f);return h?h.kind==="url"?t.onOpenLink?(t.onOpenLink(h.url),!0):!1:z(n.root,h.id)?(he([h.id]),At([h.id]),!0):!1:!1}function At(u,f={}){if(v!==null)return j={target:u,options:f},!1;let h=ek(u);if(!h)return!1;let x=e.getBoundingClientRect(),y=x.width>0&&x.height>0,S=y?{width:x.width,height:x.height-Zw(x)}:{width:h.w+96,height:h.h+96},E=f.fit==="always"?cu(h,S):om(h,S,C.getCamera());if(!E)return!1;Ue(),f.by==="person"&&ke("navigate",E);let A=e.ownerDocument.defaultView,L=A?.matchMedia?.("(prefers-reduced-motion: reduce)").matches??!1;if(f.animate===!1||L||!y||!A?.requestAnimationFrame)return Ge(()=>C.setCamera(E)),!0;let U=C.getCamera(),W=A.performance.now();O={dx:0,dy:0};let X=ie=>{let re=Math.min(1,Math.max(0,(ie-W)/J2)),xe=re===1?E:av(U,E,dv(re),S);Ge(()=>C.setCamera(yn(xe,O.dx,O.dy))),T=re===1?null:A.requestAnimationFrame(X)};return T=A.requestAnimationFrame(X),!0}function Zw(u){let f=ee?.element.getBoundingClientRect();return!f||f.height===0?0:Math.max(0,u.bottom-f.top)}function Qw(u,f){T!==null&&(O={dx:O.dx+u,dy:O.dy+f}),Ge(()=>C.setCamera(yn(C.getCamera(),u,f)))}function da(){if(j===null||v!==null)return;let{target:u,options:f}=j;j=null,At(u,f)}function ek(u){if(u==="content"){let h=C.getScene();return uu([{x:h.x,y:h.y,w:h.width,h:h.height}])}let f=[];for(let h of rm(n,u)){let x=qe(h);x&&f.push(x)}return uu(f)}function wt(u){return C.getResolution().nodes.get(u)}function an(u){let f=wt(u);return f?{x:f.x,y:f.y,w:f.w,h:f.h}:void 0}function qe(u){return ro(u,n,C.getResolution())}function kt(u){let f=wt(u);return f?{x:f.absX,y:f.absY,w:f.w,h:f.h}:void 0}function Wn(u){return wt(u)?.values.rotation??0}function ox(){let u=Ls();if(u.length===0)return null;for(let f of u){let h=z(n.root,f);if(!h||!Yl.includes(h.type))return null}return u}function Xn(u,f=new Set){let h=C.getResolution(),x=null;return de(n.root,y=>{if(f.has(y.id)||!It(y.id)||y.type==="instance")return!1;if(y.type!=="frame")return;let S=h.nodes.get(y.id);if(!S)return!1;let E={x:S.absX,y:S.absY,w:S.w,h:S.h};if(!Mt(E,u.x,u.y))return!1;x=y.id}),x}function Yt(u){let f=wt(u);return f?{x:f.absX,y:f.absY}:{x:0,y:0}}function $t(){return B?.of!==n&&(B={of:n,hidden:Oa(n.root),locked:Ta(n.root)}),B}function It(u){let{hidden:f,locked:h}=$t();return!f.has(u)&&!h.has(u)}function ge(){return r.filter(It)}function yo(u){let f=C.hitTest(u,x=>!$t().locked.has(x));if(f===null)return null;let h=_===null||Ke(n.root,f).includes(_);return Bd(f,n,h?_:null)}function tk(){return Bi(n,ge(),C.getResolution())}function Ts(){return ge().length<2?null:fm(tk())}function ua(u){let f=[];for(let h of u)for(let x of no(h,n)){let y=an(x);y&&f.push({member:h,node:x,frame:y})}return f}function ca(u,f){let h=z(n.root,u);if(!h)return"literal";let x=h[f];return x===void 0?"literal":md(x).kind}function nk(u){let f=z(n.root,u),h={};if(!f)return h;let x=[...eA,...ji(f).flatMap(y=>y.props)];for(let y of x)h[y]=ca(u,y);return h}function sx(u,f){let h="none";for(let x of u){let y=ac(x,f);if(y==="expression")return"expression";y==="token"&&(h="token")}return h}function ac(u,f){let h="none";for(let x of f){let y=ca(u,x);if(y==="complex")return"expression";y==="token"&&(h="token")}return h}let ht=null;function pe(u,f){if(u.length===0)return;let h=Vo(n,Vd(n,u,an)),x=Ae(n,h);n=x.document,ht?(fc(ht.started,ht.label,h,x.inverse),ht.started=!0):D.push({label:f,ops:h,inverse:x.inverse}),la(h,f)}function rk(u){ht={label:u,started:!1}}function ix(){ht=null}function ax(u,f){u.length!==0&&(n=Ae(n,u).document,la(u,f))}function la(u,f){s=null,Q=null,Te=null,C.update(n),ee?.setHistory(D.canUndo,D.canRedo),ce(),ke("change",{document:n,ops:u,label:f}),ke("problems",dc())}function dc(){return[...C.getScene().problems,...mf(n)]}function he(u){let f=u.filter(x=>x!==n.root.id&&z(n.root,x)),h=f.length!==r.length||f.some((x,y)=>r[y]!==x);r=[...f],H&&(f.length!==1||f[0]!==H.id)&&(H=null),M!==null&&(f.length!==1||f[0]!==M)&&(M=null),h&&(fe?.close(),Te=null,ke("selection",r)),ce()}function ok(u,f){let h=z(n.root,u);if(!h)return[];let x=C.getCamera().zoom;if(Math.min(f.w,f.h)*x<Ip)return[];let y=nA/x,S=wt(u);return ji(h).flatMap(E=>E.handles(h,f,S?.values??{},y).map(A=>({id:A.id,at:A.at,bound:ca(u,A.prop)!=="literal"})))}function dx(u,f){let h=wt(u)?.values??{};return h[f]??(f==="radius"?0:h.radius??0)}function sk(){let u=[];for(let U of ge()){let W=qe(U);W&&u.push(W)}let f=Wt(u);if(!f)return null;let h=ge().length===1?ge()[0]:void 0,x=h===void 0?void 0:z(n.root,h),y=h===void 0||!x||me(x),S=new Set,E=Ls();for(let U of hp){let W=Id(U);E.some(X=>W.some(ie=>ca(X,ie)!=="literal"))&&S.add(U)}let A=!y&&h!==void 0?Wn(h):0,L=A!==0&&h!==void 0?kt(h):void 0;return{frame:L??f,...L?{rotation:A}:{},rotatable:ox()!==null,handles:ae===null&&x?.type!=="connector",boundHandles:S,adjusters:ae!==null||y||h===void 0||L?[]:ok(h,f)}}function Ls(){return[...new Set(ge().flatMap(u=>no(u,n)))]}function ik(u){return u?v?.kind==="adjust"?`r ${Z(I??v.from)}`:v?.kind==="rotate"?`${Z(F??0)}\xB0`:!v&&Q&&ge().length===1?`r ${Z(dx(ge()[0],Q.prop))}`:v?.kind==="move"?`${Z(u.frame.x)}, ${Z(u.frame.y)}`:`${Z(u.frame.w)} \xD7 ${Z(u.frame.h)}`:null}function ak(){let f=v!==null&&v.kind!=="space"&&v.kind!=="reorder"?null:Ts();if(!f)return{spacers:[],rings:[],lead:null};let h=v?.kind==="space"?v.spacer:null;return{spacers:hm(f).map(x=>({id:x.id,axis:x.axis,at:x.at,label:x.id===(h??Te)?String(Z(x.gap)):null})),rings:mm(f).map(x=>({id:x.id,at:x.at})),lead:v?.kind==="reorder"?qe(v.id)??null:null}}function dk(u){let f=[];return de(n.root,(h,x)=>{if(h.id===u||!It(h.id))return!1;if(h.type==="canvas"||h.type==="group"||h.type==="connector"||h.type==="frame"&&x?.id===n.root.id)return;let y=kt(h.id);return y&&f.push({id:h.id,box:y}),h.type==="instance"?!1:void 0}),f}function fa(u,f,h){if(h.metaKey||h.ctrlKey)return null;let x=dk(f),y=C.hitTest(u,A=>A!==f&&It(A)),S=y===null?null:uk(y,x),E=S===null?null:x.find(A=>A.id===S)??null;return Vv(u,E,x,Bv/C.getCamera().zoom)}function uk(u,f){if(f.some(x=>x.id===u))return u;let h=Ba(n.root,u);return h!==void 0&&f.some(x=>x.id===h.id)?h.id:null}function ux(u,f,h){return h.shiftKey?(_e=dt,Hv(f,u)):(_e=du(u,Ct,wo(h)),{x:u.x+_e.dx,y:u.y+_e.dy})}function ck(u,f,h,x){let y=Le(oe.root,u),S=y?Yt(y.id):{x:0,y:0};return Object.entries(Ou(f,h,x,S)).map(([E,A])=>({op:"set",id:u,prop:E,value:A}))}function lk(u,f,h){if(z(n.root,u)?.type!=="connector"||Je(n,u))return!1;let y=G.hitLineEnd(f),S=C.itemOf(u);if(y===null||S?.kind!=="connector")return!1;let E=y==="start"?{x:S.x1,y:S.y1}:{x:S.x2,y:S.y2},A=y==="start"?{x:S.x2,y:S.y2}:{x:S.x1,y:S.y1};return St(h),mt({kind:"end",pointerId:h,id:u,end:y,fixed:A,current:E,anchor:null}),ce(),!0}function fk(u,f,h,x){if(ko(u,f)<jn*2||h!==null&&x!==null&&h.id===x.id&&h.side===x.side)return;let y=Jn(Xn(u)??_??n.root.id),S=z(n.root,y)??n.root,E=Yt(y),A=pn(n.root,"line");pe([{op:"insert",parent:y,index:te(S).length,node:el({id:A,...Ou("start",h,u,E),...Ou("end",x,f,E),...t.defaultStroke===void 0?{}:{stroke:t.defaultStroke}})}],"Draw line"),he([A]),Mn("select")}function pk(){if(v?.kind==="line"){let y=v.to??null;return{from:v.origin,to:v.current,draft:!0,attached:{start:v.from!==null,end:v.to!==null},anchors:y?uc(y.id):[],chosen:y?.at??null,target:y?kt(y.id)??null:null}}if(o==="line"&&!v&&i)return{from:i.at,to:i.at,draft:!1,attached:{start:!1,end:!1},anchors:uc(i.id),chosen:i.at,target:kt(i.id)??null};let u=ge().length===1?ge()[0]:void 0;if(u===void 0||ae)return null;let f=C.itemOf(u);if(f?.kind!=="connector")return null;let h=v?.kind==="end"?v.anchor:null,x=In(n).get(u);return{from:{x:f.x1,y:f.y1},to:{x:f.x2,y:f.y2},draft:!1,attached:{start:x?.start!==void 0,end:x?.end!==void 0},anchors:h?uc(h.id):[],chosen:h?.at??null,target:h?kt(h.id)??null:null}}function hk(){let u=ge().length===1?ge()[0]:void 0;return u!==void 0&&z(n.root,u)?.type==="connector"}function uc(u){let f=kt(u);return f?$u(u,f).map(h=>h.at):[]}function ce(){if(!k)return;let u=Rk(),f=u||hk()?null:sk(),h=s!==null&&!r.includes(s)&&!v?s:null,x=h===null?void 0:C.itemOf(h),y=x?.kind==="connector"?x.contours:null,S=h!==null&&y===null?qe(h)??null:null,E={...wv,...ak(),hover:S,members:ge().length>1?ge().flatMap(A=>qe(A)??[]):[],box:f,badge:ik(f),caret:cx(),textSelection:lx(),draft:v?.kind==="create"?to(v.origin,v.current):null,draftEllipse:v?.kind==="create"&&o==="ellipse",marquee:v?.kind==="marquee"?to(v.origin,v.current):null,guides:v?_e.guides:[],measures:v?_e.measures:[],presence:c.ids.length===0?null:{frames:c.ids.flatMap(A=>qe(A)??[]),label:c.label},highlight:Gi(n,p).flatMap(A=>qe(A.id)??[]),slots:b1(),masks:Wk(),parked:r.filter(A=>!It(A)).flatMap(A=>qe(A)??[]),lockHint:yk(),path:u,turn:bk(),pageLabels:xk(),line:pk(),hoverLine:y};G.render(E)}let pa=null;function mk(u){pa?.of!==n&&(pa={of:n,counts:new Map});let f=pa.counts.get(u);return f===void 0&&(f=Ud(n,[u]),pa.counts.set(u,f)),f}function xk(){if(a)return[];let u=C.getResolution().nodes;return n.root.children.flatMap(f=>{if(f.type!=="frame")return[];let h=u.get(f.id);if(!h)return[];let x=Fi(h),y=f.name,S=typeof y=="string"&&y!==""?y:f.id,E=r.includes(f.id)?"selected":s===f.id?"hover":"idle";if(f.component!==!0)return[{id:f.id,frame:x,label:S,state:E}];let A=mk(f.id);return[{id:f.id,frame:x,label:`\u25C6 ${S} \xB7 ${A} ${A===1?"use":"uses"}`,state:E,component:!0}]})}function gk(u){let f=G.pageLabelRect(u),h=z(n.root,u);if(!f||!h)return;let x=h.name,y=e.ownerDocument.createElement("input");y.className="vd-editor__rename",y.type="text",y.spellcheck=!1,y.value=typeof x=="string"&&x!==""?x:"",y.placeholder=u,y.setAttribute("aria-label",`Name of ${u}`),y.style.left=`${f.x-4}px`,y.style.top=`${f.y-2}px`,y.style.width=`${Math.max(120,f.w+40)}px`;let S=!1,E=A=>{if(S)return;S=!0;let L=y.value.trim();y.remove(),a=null,A&&L!==(typeof x=="string"?x:"")&&pg(u,"name",L===""?void 0:L,"Rename"),ce(),e.focus({preventScroll:!0})};y.addEventListener("keydown",A=>{A.stopPropagation(),A.key==="Enter"?(A.preventDefault(),E(!0)):A.key==="Escape"&&(A.preventDefault(),E(!1))}),y.addEventListener("pointerdown",A=>A.stopPropagation()),y.addEventListener("blur",()=>E(!0)),a=y,e.appendChild(y),ce(),y.focus(),y.select()}function yk(){if(d===null||v||!$t().locked.has(d))return null;let u=qe(d);return u?{frame:u,label:d}:null}function ha(u){let f=C.itemOf(u);if(f?.kind!=="text")return null;let h=f.lines[0]?.y??f.y,x={lines:f.lines.map(y=>({y:y.y-h,h:y.h,baseline:y.baseline-h,w:y.w,spans:y.spans.map(S=>({text:S.text,style:S.style,x:S.x-f.x,w:S.w})),...y.style?{style:y.style}:{}})),width:Math.max(0,...f.lines.map(y=>y.w)),height:f.height};return{item:f,layout:x,top:h}}function cc(){return o==="text"?"text":o!=="select"?"crosshair":"arrow"}function cx(){if(!ae)return null;let u=ha(ae.id);if(!u)return null;let f=ae.caret();return{x:u.item.x+f.x,y:u.top+f.y,h:f.h,...f.fill!==void 0?{fill:f.fill}:{}}}function lx(){if(!ae)return[];let u=ha(ae.id);return u?ae.highlight().map(f=>({x:u.item.x+f.x,y:u.top+f.y,w:f.w,h:f.h})):[]}function lc(u){if(!ae)return null;let f=ha(ae.id);if(!f)return null;let h=bo(ae.id,u);return{x:h.x-f.item.x,y:h.y-f.top}}function bo(u,f){let h=Wn(u),x=h===0?void 0:kt(u);return x?je(f,Re(x),-h):f}function bk(){let u=ae?.id??H?.id;if(u===void 0)return null;let f=Wn(u),h=f===0?void 0:kt(u);return h?{angle:f,centre:Re(h)}:null}function vk(u){let f=z(n.root,u);if(!f||f.type!=="text"||typeof f.h!="number")return[];let h=C.itemOf(u);if(h?.kind!=="text")return[];let x=Z(Math.ceil(h.height));return x>f.h?[{op:"set",id:u,prop:"h",value:x}]:[]}function wk(u,f,h,x){let y=ht?ht.started:h,S=ht?.label??x;ht&&(ht.started=!0);let E=[{op:"set",id:u,prop:"content",value:f}],A=Ae(n,E);n=A.document,C.update(n);let L=vk(u);if(L.length===0){fc(y,S,E,A.inverse),la(E,S);return}let U=Ae(n,L);n=U.document,C.update(n);let W=[...E,...L];fc(y,S,W,[...U.inverse,...A.inverse]),la(W,S)}function fc(u,f,h,x){let y={label:f,ops:h,inverse:x};u&&D.amend(y)||D.push(y)}function Ps(u,f){let h=z(n.root,u);if(!h||h.type!=="text"||ae?.id===u)return;_r("done"),Mn("select"),he([u]),ae=Om({id:u,content:()=>{let y=z(n.root,u);return y?.type==="text"?y.content:""},base:()=>{let y=z(n.root,u);return{weight:wt(u)?.values.weight??bd,italic:y?.type==="text"&&y.italic===!0,size:wt(u)?.values.size??yd}},layout:()=>ha(u)?.layout??{lines:[],width:0,height:0},measure:()=>C.getMeasurer(),write:(y,S,E)=>wk(u,y,S,E),invalidate:()=>{ce(),fx(),ke("selection",r)},close:y=>_r(y)});let x=f?lc(f):null;x?ae.pointTo(x,!1):ae.selectAll(),e.classList.add("vd-editor--editing"),se.value="",se.focus({preventScroll:!0}),ce(),fx()}function _r(u){let f=ae;if(!f)return;ae=null,Oe=!1,f.destroy(),e.classList.remove("vd-editor--editing","vd-editor--typing"),ke("selection",r);let h=z(n.root,f.id);h?.type==="text"&&Tm(h.content)&&!Je(n,f.id)&&(pe([{op:"remove",id:f.id}],"Remove empty text"),he([])),e.ownerDocument.activeElement===se&&e.focus({preventScroll:!0}),ce()}function fx(){let u=cx();if(!u)return;let f=C.documentToScreen({x:u.x,y:u.y});se.style.left=`${Math.round(f.x)}px`,se.style.top=`${Math.round(f.y)}px`}let vo=0;function px(){e.classList.add("vd-editor--typing"),vo&&clearTimeout(vo),vo=setTimeout(()=>{vo=0,e.classList.remove("vd-editor--typing")},520)}function pc(u){return hx(oe,u,q,Y)}function hx(u,f,h,x){let y=oo(u,f);return y.length>0&&x?[...y,...fs(u,y,h,x)]:y}function mx(){let u=new Map;for(let f of ge())for(let h of no(f,n)){let x=an(h);x&&u.set(h,x)}for(let f of Ds([...u.keys()])){let h=an(f);h&&u.set(f,h)}return u}function xx(u,f,h,x,y){if(u.length===0)return[];let S={...f,x:f.x+x.x,y:f.y+x.y},E={...h,x:h.x+x.x,y:h.y+x.y},A=Re(S),L=Re(E);return u.flatMap(U=>{let W=je(Re(U.page),A,-y),X={x:W.x-U.page.w/2,y:W.y-U.page.h/2,w:U.page.w,h:U.page.h},ie=Kd(X,U.rotation-y,S,E),re=je(Re(ie),L,y),xe=re.x-ie.w/2-U.offset.x,ue=re.y-ie.h/2-U.offset.y;return[{nodeId:U.id,prop:"x",from:U.page.x-U.offset.x,to:Z(xe)},{nodeId:U.id,prop:"y",from:U.page.y-U.offset.y,to:Z(ue)},{nodeId:U.id,prop:"w",from:U.page.w,to:Z(ie.w)},{nodeId:U.id,prop:"h",from:U.page.h,to:Z(ie.h)}]})}function Ds(u){return qh(n,u,M)}function gx(u,f,h){let x=[];for(let[y,S]of u)x.push({nodeId:y,prop:"x",from:S.x,to:S.x+f}),x.push({nodeId:y,prop:"y",from:S.y,to:S.y+h});return x}function Er(u){ma(Sa(pc(u),oe))}function ma(u,f=u){let h=y=>{let S=Y?.nodes.get(y);return S?{x:0,y:0,w:S.w,h:S.h}:void 0},x=Vd(oe,u,h);N=Vd(oe,f,h),C.update(x.length>0?Ae(oe,x).document:oe),ce()}function yx(){let u=Wt(ge().flatMap(y=>qe(y)??[]));if(!u)return null;let f=new Map,h=new Map,x=Ls();for(let y of[...x,...Ds(x)]){let S=kt(y),E=an(y);!S||!E||(f.set(y,S),h.set(y,{x:S.x-E.x,y:S.y-E.y}))}return f.size===0?null:{bounds:u,frames:f,offsets:h}}function bx(u,f){let h=wp(u.frames,u.bounds,f),x=[];for(let[y,S]of h){let E=u.frames.get(y),A=u.offsets.get(y);if(!E||!A)continue;let L=Wn(y),U=L===0?S:Kd(E,L,u.bounds,f);x.push({nodeId:y,prop:"x",from:E.x-A.x,to:U.x-A.x},{nodeId:y,prop:"y",from:E.y-A.y,to:U.y-A.y},{nodeId:y,prop:"w",from:E.w,to:U.w},{nodeId:y,prop:"h",from:E.h,to:U.h})}return x}function kk(u,f){let h=ox();if(!h)return!1;let x=ge().length===1&&h.length===1?h[0]:void 0,y=Wt(ge().flatMap(L=>qe(L)??[])),S=x!==void 0?kt(x):y;if(!S)return!1;let E=new Set(Ds(h)),A=[...h,...E].flatMap(L=>{let U=kt(L),W=an(L);return!U||!W?[]:[{id:L,frame:U,rotation:Wn(L),offset:{x:U.x-W.x,y:U.y-W.y},...E.has(L)?{follower:!0}:{}}]});return A.length===0?!1:(St(f),mt({kind:"rotate",pointerId:f,origin:u,centre:Re(S),targets:A}),!0)}function Sk(u,f,h){let x=yx();return x?(St(h),mt({kind:"scale",pointerId:h,origin:u,handle:f,...x}),!0):!1}function _k(u){let f=yx();if(!f)return;let h=oo(n,bx(f,u));if(h.length===0)return;let x=u.w!==f.bounds.w||u.h!==f.bounds.h;pe([...h,...fs(n,h,Xr(n),Pe(n))],x?"Resize":"Move")}function Ek(u,f,h){let x=bu(u),y=Ts();if(!x||!y)return!1;let S=wn(y,x.axis)?.gaps[x.index],E=ua(ge());return S===void 0||E.length===0?!1:(St(h),mt({kind:"space",pointerId:h,origin:f,axis:x.axis,spacer:u,layout:y,gap:S,parts:E}),!0)}function Mk(u,f){let h=u.axis==="x"?f.x-u.origin.x:f.y-u.origin.y,x=Math.max(0,u.gap+h);Er(hc(u.parts,u.axis,vu(u.layout,u.axis,x)))}function Ck(u,f){let h=Ts(),x=h?wn(h,u):void 0;if(!h||!x||x.gaps.length===0)return;let y=Sa(oo(n,hc(ua(ge()),u,vu(h,u,Math.max(0,f)))));y.length!==0&&pe([...y,...fs(n,y,Xr(n),Pe(n))],"Spacing")}function Ak(u){let f=Ts(),h=f?wn(f,u)?.gaps:void 0;return!h||h.length===0?null:pm(h)?h[0]??null:"mixed"}function hc(u,f,h){return u.map(x=>{let y=f==="x"?x.frame.x:x.frame.y;return{nodeId:x.node,prop:f,from:y,to:y+(h.get(x.member)??0)}})}function $k(u,f,h){let x=Ts();if(!x||!x.order.includes(u))return!1;let y=ua(ge()),S=x.items.find(E=>E.id===u)?.frame;return y.length===0||!S?!1:(St(h),mt({kind:"reorder",pointerId:h,id:u,layout:x,parts:y,grab:{x:f.x-S.x,y:f.y-S.y},to:x.order.indexOf(u),swap:!1}),!0)}function Ok(u,f,h){u.to=ym(u.layout,f),u.swap=h;let x=Tk(u),y=new Map(x);y.set(u.id,{x:f.x-u.grab.x,y:f.y-u.grab.y}),ma(pc(vx(u,y)),pc(vx(u,x)))}function Tk(u){let f=u.layout.order.indexOf(u.id);if(f===-1||u.to===f)return new Map;if(u.swap){let h=u.layout.order[u.to];return h===void 0?new Map:wm(u.layout,u.id,h)}return vm(u.layout,bm(u.layout.order,f,u.to))}function vx(u,f){let h=new Map(u.layout.items.map(y=>[y.id,y.frame])),x=[];for(let y of u.parts){let S=f.get(y.member),E=h.get(y.member);!S||!E||x.push({nodeId:y.node,prop:"x",from:y.frame.x,to:y.frame.x+(S.x-E.x)},{nodeId:y.node,prop:"y",from:y.frame.y,to:y.frame.y+(S.y-E.y)})}return x}function mt(u,f=[],h=n){Se=h,be=f,oe=n,v=u,N=[],q=Xr(n),Y=Pe(n),_e=dt,Ct=Lk(u)?Qh(n,Y,Pk(u)):[]}function Lk(u){return u.kind==="move"||u.kind==="resize"||u.kind==="scale"||u.kind==="create"||u.kind==="line"||u.kind==="end"}function Pk(u){return u.kind==="move"||u.kind==="scale"?new Set(ge()):u.kind==="resize"||u.kind==="end"?new Set([u.id]):new Set}function wo(u){return u.metaKey||u.ctrlKey?0:Zh/C.getCamera().zoom}function En(u){let f=[...be,...N];v=null,N=[],be=[],I=null,F=null,_e=dt,n=Se,C.update(n),pe(f,u),ce()}function Dk(){let u=N.length>0?Ae(oe,N).document:oe,f=Ds(ge()),h=new Set([...ge(),...f].flatMap(L=>wx(L,u))),x=[],y=new Map,S=(L,U,W)=>{let X=z(u.root,U);if(!X||!me(X))return;y.set(L,U),x.push({op:"move",id:L,parent:U,index:te(X).length});let ie={x:Yt(W).x-Yt(U).x,y:Yt(W).y-Yt(U).y};if(!(ie.x===0&&ie.y===0))for(let re of no(L,u)){let xe=an(re);xe&&(x.push({op:"set",id:re,prop:"x",value:Z(xe.x+ie.x)}),x.push({op:"set",id:re,prop:"y",value:Z(xe.y+ie.y)}))}};for(let L of ge()){if(Je(u,L)||Hn(u,L))continue;let U=z(u.root,L),W=Le(u.root,L);if(!U||!W)continue;let X=qe(L);if(!X)continue;let ie={x:X.x+X.w/2,y:X.y+X.h/2},re=Xn(ie,h)??n.root.id;re!==W.id&&S(L,re,W.id)}let E=Ye(u.root).links;for(let L of f){let U=[...E].find(([ie,re])=>re===L&&y.has(ie))?.[0],W=U===void 0?void 0:y.get(U),X=Le(u.root,L);W===void 0||!X||X.id===W||S(L,W,X.id)}if(x.length===0)return[];let A=Ae(u,x).document;return[...x,...ps(u,A,h)]}function wx(u,f){let h=z(f.root,u);if(!h)return[];let x=[];return de(h,y=>{x.push(y.id)}),x}function mc(){if(!v)return;v=null,N=[],I=null,F=null,_e=dt;let u=be.length>0;n=Se,be=[],u&&he(r.filter(f=>z(n.root,f))),C.update(n),ce()}let Nk=5,xa=8;function kx(u,f=n,h=C.getResolution()){let x=z(f.root,u),y=h.nodes.get(u);if(x?.type!=="vector"||!y)return;let S={x:y.absX,y:y.absY,w:Math.max(0,y.w),h:Math.max(0,y.h)};return{node:x,view:Ir(x.view,S.w,S.h),box:S}}function Ns(u,f=n,h=C.getResolution()){let x=kx(u,f,h);if(x)return Be(ar(x.node.d).contours,Fr(x.view,x.box))}function Yn(u,f,h,x=n,y=C.getResolution()){let S=kx(u,x,y);if(!S)return[];let{node:E,view:A,box:L}=S,U=Be(f,bl(A,L)),W=[],X=(We,Ot,Tt)=>{Ot!==Tt&&W.push({op:"set",id:u,prop:We,value:Ot})};X("d",ze(U),E.d);let ie=[E.x,E.y,E.w,E.h].every(We=>typeof We=="number"),re=Kt(U),xe=Kt(f);if(!h||!ie||!re||!xe)return W;let ue=L.x-E.x,De=L.y-E.y;return X("view",Pn(re),E.view),X("x",Z(xe.x-ue),E.x),X("y",Z(xe.y-De),E.y),X("w",Z(xe.w),E.w),X("h",Z(xe.h),E.h),W}function Mr(u){return z(n.root,u)?.type!=="vector"||!It(u)?!1:(ae&&_r("done"),J&&ga(),he([u]),H={id:u,picked:new Set},o!=="select"&&Mn("select"),Ft(null),ce(),!0)}function Rs(){H&&(H=null,ce())}function Rk(){if(J){let h=J.contours[J.contour],x=h?.anchors??[],y=x[x.length-1],S=x[0],E=J.hover,A=E!==null&&S!==void 0&&x.length>=2&&!h?.closed&&ko(S,E)<=xa;return{contours:J.contours,anchors:x.map((L,U)=>({key:it(J?.contour??0,U),at:L,selected:U===x.length-1})),handles:y?Pp(J.contours,new Set([it(J.contour,x.length-1)])):[],pending:y&&E&&!J.dragging&&!h?.closed?{from:y,...y.out?{c1:y.out}:{},to:E}:null,closeAt:A?S:null}}if(!H)return null;let u=Ns(H.id);if(!u)return null;let f=new Set(Tp(u,H.picked));return{contours:u,anchors:u.flatMap((h,x)=>h.anchors.map((y,S)=>({key:it(x,S),at:y,selected:f.has(it(x,S))}))),handles:Pp(u,f)}}function ko(u,f){return Math.hypot(u.x-f.x,u.y-f.y)*C.getCamera().zoom}function Ik(u,f,h,x){if(!H)return!1;let y=H.id,S=Ns(y);if(!S)return H=null,!1;u.preventDefault(),St(u.pointerId);let E=G.hitPath(f);if(E?.kind==="handle"){let L=kb(E.key),U=L?S[L.contour]?.anchors[L.index]:void 0;if(L&&U)return mt({kind:"pathHandle",pointerId:u.pointerId,id:y,start:S,contour:L.contour,index:L.index,side:L.side,smooth:Gd(U),last:S}),!0}if(E?.kind==="anchor")return u.altKey?(H.picked=new Set([E.key]),pe(Yn(y,Sb(S,E.key),!1),"Convert point"),!0):(u.shiftKey?H.picked.has(E.key)?H.picked.delete(E.key):H.picked.add(E.key):H.picked.has(E.key)||(H.picked=new Set([E.key])),mt({kind:"points",pointerId:u.pointerId,id:y,origin:h,start:S,keys:new Set(H.picked),lead:E.key,moved:!1,last:S}),ce(),!0);let A=vl(S,h);if(A&&A.distance*C.getCamera().zoom<=Nk){if(x>=2){let X=wl(S,A.contour,A.segment,A.t);return H.picked=new Set([it(A.contour,A.segment+1)]),pe(Yn(y,X,!1),"Add point"),!0}let L=S[A.contour],U=L.anchors[A.segment],W=L.anchors[(A.segment+1)%L.anchors.length];return mt({kind:"segment",pointerId:u.pointerId,id:y,origin:h,start:S,contour:A.contour,segment:A.segment,t:A.t,straight:!U?.out&&!W?.in,last:S}),!0}return mt({kind:"pointMarquee",pointerId:u.pointerId,origin:h,current:h,additive:u.shiftKey}),!0}function Fk(u,f,h,x){let y=Op(u.start,u.lead);if(!y||x===0)return{dx:f,dy:h};let S=y.x+f,E=y.y+h,A=x,L=x,U=f,W=h;return u.start.forEach((X,ie)=>X.anchors.forEach((re,xe)=>{u.keys.has(it(ie,xe))||(Math.abs(re.x-S)<A&&(A=Math.abs(re.x-S),U=re.x-y.x),Math.abs(re.y-E)<L&&(L=Math.abs(re.y-E),W=re.y-y.y))})),{dx:U,dy:W}}function Bk(u,f){if(!v)return!1;let h=(x,y)=>{Y&&ma(Yn(y,x,!1,oe,Y))};switch(v.kind){case"points":{let x=f;u.shiftKey&&(x=zi(v.origin,f));let y={dx:x.x-v.origin.x,dy:x.y-v.origin.y};if(!v.moved&&Math.hypot(y.dx,y.dy)*C.getCamera().zoom<jn)return!0;v.moved=!0;let{dx:S,dy:E}=u.shiftKey?y:Fk(v,y.dx,y.dy,wo(u));return v.last=Xd(v.start,v.keys,S,E),h(v.last,v.id),!0}case"pathHandle":{let x=v.start[v.contour]?.anchors[v.index],y=u.shiftKey&&x?zi(x,f):f;return v.last=qd(v.start,v.contour,v.index,v.side,y,{smooth:v.smooth,breakSmooth:u.altKey}),h(v.last,v.id),!0}case"segment":return v.last=Eb(v.start,v.contour,v.segment,v.t,f.x-v.origin.x,f.y-v.origin.y,v.straight),h(v.last,v.id),!0;case"pointMarquee":return v.current=f,ce(),!0;default:return!1}}function Vk(u){if(!v)return!1;switch(v.kind){case"points":case"pathHandle":case"segment":{let f=v.kind!=="points"||v.moved,h=v.kind==="points"?v.keys.size===1?"Move point":"Move points":v.kind==="pathHandle"?"Adjust curve":"Reshape";return N=f&&Y?Yn(v.id,v.last,!0,oe,Y):[],En(h),!0}case"pointMarquee":{let f=to(v.origin,v.current),h=v.additive;if(v=null,_e=dt,!H)return!0;let x=C.getCamera().zoom;if(f.w*x<jn&&f.h*x<jn){if(C.hitTest(u)===H.id)H.picked=new Set;else{Rs();let E=yo(u);he(E===null?[]:[E])}return ce(),!0}let y=Ns(H.id)??[],S=Lp(y).filter(E=>{let A=Op(y,E);return A!==void 0&&Mt(f,A.x,A.y)});return H.picked=new Set(h?[...H.picked,...S]:S),ce(),!0}default:return!1}}function Hk(u){if(!H)return!1;let f=H.id,h=u.metaKey||u.ctrlKey;if(u.key==="Escape"||u.key==="Enter"&&!h)return u.preventDefault(),v?mc():Rs(),!0;let x=Ns(f);if(!x)return!1;let y=new Set(Tp(x,H.picked));if(u.key==="Delete"||u.key==="Backspace"){if(u.preventDefault(),y.size===0)return!0;let A=_b(x,y);return H.picked=new Set,A.length===0?(Rs(),Mo(),!0):(pe(Yn(f,A,!0),y.size===1?"Delete point":"Delete points"),!0)}let S=u.shiftKey?Kv:jv,E=Wv[u.key];return E&&!h?(u.preventDefault(),y.size>0&&pe(Yn(f,Xd(x,y,E[0]*S,E[1]*S),!0),"Nudge points"),!0):h&&u.key.toLowerCase()==="a"?(u.preventDefault(),H.picked=new Set(Lp(x)),ce(),!0):h&&!u.shiftKey&&u.code==="KeyJ"?(u.preventDefault(),pe(Yn(f,Mb(x,y),!0),"Close path"),!0):!1}function Uk(u,f){if(u.preventDefault(),St(u.pointerId),!J){J=zk(f)??{contours:[{closed:!1,anchors:[{x:f.x,y:f.y}]}],contour:0,target:null,hover:null,dragging:null};let E=J.contours[J.contour];J.dragging={pointerId:u.pointerId,index:E.anchors.length-1,origin:f},ce();return}let h=J.contours[J.contour],x=h.anchors[0],y=h.anchors[h.anchors.length-1];if(x&&h.anchors.length>=2&&ko(x,f)<=xa){J.contours[J.contour]={...h,closed:!0},J.dragging={pointerId:u.pointerId,index:0,origin:x},ce();return}let S=u.shiftKey&&y?zi(y,f):f;J.contours[J.contour]={...h,anchors:[...h.anchors,{x:S.x,y:S.y}]},J.dragging={pointerId:u.pointerId,index:h.anchors.length,origin:S},ce()}function zk(u){let f=r.length===1?r[0]:null;if(f===null||!It(f))return null;let h=Ns(f);if(!h)return null;for(let x=0;x<h.length;x+=1){let y=h[x];if(y.closed||y.anchors.length<1)continue;let S=y.anchors[0],E=y.anchors[y.anchors.length-1],A=ko(E,u)<=xa,L=!A&&ko(S,u)<=xa;if(!A&&!L)continue;let U=[...h];return L&&(U[x]=Cb(y)),{contours:U,contour:x,target:f,hover:null,dragging:null}}return null}function jk(u,f){if(!J)return;let h=J.dragging;if(!h||h.pointerId!==u.pointerId){let L=J.contours[J.contour],U=L?.anchors[L.anchors.length-1];J.hover=u.shiftKey&&U?zi(U,f):f,ce();return}if(ko(h.origin,f)<jn)return;let x=J.contours[J.contour],y=x.anchors[h.index];if(!y)return;let S={x:2*y.x-f.x,y:2*y.y-f.y},E=u.altKey?y.in:S,A=[...x.anchors];A[h.index]={x:y.x,y:y.y,...E?{in:E}:{},out:f},J.contours[J.contour]={...x,anchors:A},ce()}function Kk(u){!J?.dragging||J.dragging.pointerId!==u.pointerId||(Bc(u.pointerId),J.dragging=null,J.contours[J.contour]?.closed?ga():ce())}function ga(){if(!J)return;let u=J;J=null;let f=u.contours[u.contour];if(!f||f.anchors.length<2){ce();return}if(u.target!==null){pe(Yn(u.target,u.contours,!0),"Extend path"),Mn("select"),Mr(u.target);return}let h=Kt(u.contours),x=f.anchors[0];if(!h)return;let y=Jn(Xn(x)??_??n.root.id),S=z(n.root,y)??n.root,E=Yt(y),A=Be(u.contours,U=>({x:U.x-h.x,y:U.y-h.y})),L=pn(n.root,"path");pe([{op:"insert",parent:y,index:te(S).length,node:To({id:L,x:Z(h.x-E.x),y:Z(h.y-E.y),w:Z(h.w),h:Z(h.h),view:Pn({x:0,y:0,w:h.w,h:h.h}),d:ze(A),fill:"none",stroke:t.defaultStroke??"#1f2937",strokeWidth:2,cap:"round",join:"round"})}],"Draw path"),Mn("select"),Mr(L)}function xc(u=ge()){let f=[],h=[];for(let x of u){let y=z(n.root,x),S=Le(n.root,x),E=wt(x);if(!y||!S||!E||y.type!=="rect"&&y.type!=="ellipse"||Je(n,x))continue;let A=Math.max(0,E.w),L=Math.max(0,E.h),U=y.type==="rect"?Dn(A,L,Zn(E.values)):Vr(A,L),W=To({id:x,...y.name===void 0?{}:{name:y.name},x:y.x,y:y.y,w:y.w,h:y.h,view:Pn({x:0,y:0,w:A,h:L}),d:ze(U),...y.fill===void 0?{}:{fill:y.fill},...y.stroke===void 0?{}:{stroke:y.stroke},...y.strokeWidth===void 0?{}:{strokeWidth:y.strokeWidth},...y.dash===void 0?{}:{dash:y.dash},...y.strokeAlign===void 0?{}:{strokeAlign:y.strokeAlign},...y.cap===void 0?{}:{cap:y.cap},...y.opacity===void 0?{}:{opacity:y.opacity},...y.hidden?{hidden:!0}:{},...y.locked?{locked:!0}:{}}),X=S.children.findIndex(ie=>ie.id===x);f.push({op:"remove",id:x},{op:"insert",parent:S.id,index:X,node:W}),h.push(x)}h.length!==0&&(pe(f,h.length===1?"Convert to vector":`Convert ${h.length} to vector`),he(h),h.length===1&&Mr(h[0]))}function gc(){return r.filter(u=>u!==n.root.id)}function yc(u=gc()){return Jo(n,u)}function Sx(u=gc()){return t.merge!==void 0&&yc(u)===void 0}function bc(u,f=gc()){if(!t.merge)return null;let h;try{h=t.merge(n,{verb:u,ids:f})}catch(x){h={ok:!1,...Zo(x)}}return h.ok?(_=null,pe(h.ops,`${Yo[u]} ${f.length} shapes`),he([h.id]),h.id):(ke("notice",{message:lu(h)}),null)}function Is(u=r){return Vb(n,u)}function vc(u=r){let f=Is(u);return f.ok?(pe(Hb(f.pair),"Mask with shape"),he([f.pair.image]),!0):(ke("notice",{message:f.why}),!1)}function ya(u=r){return Ub(n,u)}function wc(u=r){let f=ya(u);return f.length===0?!1:(M!==null&&f.includes(M)&&(M=null),pe(Gh(f),f.length===1?"Release mask":"Release masks"),!0)}function ba(u){return!Ye(n.root).links.has(u)||!It(u)?!1:(he([u]),M=u,ce(),ke("selection",r),!0)}function kc(){return M===null?!1:(M=null,ce(),ke("selection",r),!0)}function Gk(){let u=r.flatMap(y=>z(n.root,y)??[]),f=u.length===2&&u.some(st),h=ya(),x=r.length===1?r[0]:null;return{offer:f&&!(h.length>0&&!Is().ok),can:Is().ok,release:h.length>0,crop:x!==null&&M!==x&&Ye(n.root).links.has(x)}}function qk(){let u=Is(),f=ya(),h=u.ok?z(n.root,u.pair.image):void 0,x=u.ok&&h!==void 0&&st(h)&&h.mask===u.pair.shape;u.ok&&!x?vc():f.length>0?wc():u.ok||ke("notice",{message:u.why})}function Wk(){let u=C.getScene(),f=[],h=new Set;for(let x of u.items){let y=x.mask;if(y===void 0||!r.includes(x.id)&&!r.includes(y.id))continue;let S=`${x.id}\0${y.id}`;if(h.has(S))continue;h.add(S);let E=M===x.id,A=E&&x.kind==="image"&&x.href!==void 0?{href:x.href,frame:{x:x.x,y:x.y,w:x.w,h:x.h},rotation:x.rotation,aspect:Q2[x.fit]}:void 0;f.push({contours:y.contours,cropping:E,...A===void 0?{}:{ghost:A}})}return f}function _x(){return ge().filter(u=>{let f=z(n.root,u)?.type;return f==="rect"||f==="ellipse"}).length}let Xk=450,Ex=4,Fs={x:0,y:0,at:0,count:0};function Yk(u){let f=Date.now(),x=Math.abs(u.x-Fs.x)<=Ex&&Math.abs(u.y-Fs.y)<=Ex&&f-Fs.at<=Xk?Fs.count+1:1;return Fs={x:u.x,y:u.y,at:f,count:x},x}let Mx=u=>{if(w=u.pointerType==="touch",w){g.add(u.pointerId),b=g.size===1?{pointerId:u.pointerId,screen:C.pointerPoint(u)}:null;return}if(u.button!==0||m)return;let f=C.pointerPoint(u),h=C.screenToDocument(f);Rt=h;let x=Yk(f);if(ae){let L=lc(h),U=C.itemOf(ae.id),W=bo(ae.id,h);if(L&&U&&Mt(U,W.x,W.y)){u.preventDefault(),St(u.pointerId),Oe=!0,x>=3?ae.selectLineAt(L):x===2?ae.selectWordAt(L):ae.pointTo(L,u.shiftKey),se.focus({preventScroll:!0}),ce();return}_r("blur")}if(e.focus({preventScroll:!0}),o==="select"&&(u.metaKey||u.ctrlKey)&&Os(h)){u.preventDefault();return}if(o==="pen"){Uk(u,h);return}if(H&&o==="select"&&Ik(u,f,bo(H.id,h),x))return;if(o==="line"){u.preventDefault(),St(u.pointerId);let L=fa(h,null,u),U=L?.at??h;mt({kind:"line",pointerId:u.pointerId,origin:U,from:L,current:U,to:null}),ce();return}if(o!=="select"){u.preventDefault(),St(u.pointerId),mt({kind:"create",pointerId:u.pointerId,origin:h,current:h}),ce();return}let y=ge().length===1?ge()[0]:null;if(y!==null&&lk(y,f,u.pointerId)){u.preventDefault();return}if(y!==null){let L=z(n.root,y),U=G.hitAdjuster(f),W=L&&U?eu(L,U.id):void 0,X=W?qe(y):void 0;if(L&&W&&X&&U){u.preventDefault(),St(u.pointerId);let ue=W.propOf(L,U.id,u.altKey);mt({kind:"adjust",pointerId:u.pointerId,id:y,adjuster:W,handleId:U.id,prop:ue,frame:X,from:dx(y,ue)});return}let ie=L&&!me(L)?G.hitHandle(f):null,re=ie?an(y):void 0,xe=re?kt(y):void 0;if(ie&&re&&xe){u.preventDefault(),St(u.pointerId),mt({kind:"resize",pointerId:u.pointerId,origin:h,id:y,handle:ie.handle,frame:re,offset:{x:xe.x-re.x,y:xe.y-re.y},rotation:Wn(y),riders:Ds([y]).flatMap(ue=>{let De=kt(ue),We=an(ue);return!De||!We?[]:[{id:ue,page:De,offset:{x:De.x-We.x,y:De.y-We.y},rotation:Wn(ue)}]})});return}}let S=ge().length>0?G.hitHandle(f):null;if(S&&Sk(h,S.handle,u.pointerId)){u.preventDefault();return}let E=G.hitPageLabel(f);if(E!==null){if(u.preventDefault(),_=null,u.shiftKey){he(r.includes(E)?r.filter(L=>L!==E):[...r,E]);return}if(r.includes(E)||he([E]),x===2){gk(E);return}Sc(h,u.pointerId,u.altKey);return}if(ge().length>0&&G.hitRotate(f)!==null&&kk(h,u.pointerId)){u.preventDefault();return}if(ge().length>1){let L=G.hitRing(f);if(L!==null&&$k(L,h,u.pointerId)){u.preventDefault();return}let U=G.hitSpacer(f);if(U!==null&&Ek(U,h,u.pointerId)){u.preventDefault();return}}if(M!==null&&!u.shiftKey){let L=kt(M),U=bo(M,h);if(L&&Mt(L,U.x,U.y)){Sc(h,u.pointerId,!1)&&u.preventDefault();return}}let A=yo(h);if(A===null){u.preventDefault(),St(u.pointerId),_=null,u.shiftKey||he([]),mt({kind:"marquee",pointerId:u.pointerId,origin:h,current:h});return}_!==null&&!Ke(n.root,A).includes(_)&&(_=null),u.shiftKey?he(r.includes(A)?r.filter(L=>L!==A):[...r,A]):r.includes(A)||he([A]),Sc(h,u.pointerId,u.altKey)&&u.preventDefault()};function Jk(u){ae&&_r("blur");let f=yo(C.screenToDocument(u));f!==null&&_!==null&&!Ke(n.root,f).includes(_)&&(_=null),f===null&&(_=null),he(f===null?[]:[f])}function Sc(u,f,h){let x=n,y=[];if(h){let E=eg({x:0,y:0});E&&(y=E.ops,n=Ae(n,y).document,C.update(n),he(E.ids))}let S=mx();return S.size===0?(n=x,C.update(n),!1):(St(f),mt({kind:"move",pointerId:f,origin:u,frames:S,bounds:Wt(ge().flatMap(E=>qe(E)??[]))},y,x),!0)}let Cx=u=>{let f=C.pointerPoint(u);if(u.pointerType==="touch"){b?.pointerId===u.pointerId&&Math.hypot(b.screen.x-f.x,b.screen.y-f.y)>oA&&(b=null);return}if(Rt=C.screenToDocument(f),Oe&&ae){let x=lc(Rt);x&&ae.pointTo(x,!0);return}if(J&&o==="pen"){jk(u,Rt);return}if(!v){a1(f);return}if(v.pointerId!==u.pointerId)return;let h=Rt;if(!Bk(u,H?bo(H.id,h):h))switch(v.kind){case"move":{let x=h.x-v.origin.x,y=h.y-v.origin.y;if(v.bounds){let S={...v.bounds,x:v.bounds.x+x,y:v.bounds.y+y};_e=em(S,Ct,wo(u)),x+=_e.dx,y+=_e.dy}Er(gx(v.frames,x,y));return}case"resize":{let{id:x,handle:y,frame:S,origin:E,offset:A,rotation:L}=v,U=h.x-E.x,W=h.y-E.y;if(L!==0){_e=dt;let re=bb(S,y,U,W,L);Er([...Fd(S,re).map(xe=>({nodeId:x,prop:xe,from:S[xe],to:re[xe]})),...xx(v.riders,S,re,A,L)]);return}let X=Vn(S,y,U,W);_e=au({...X,x:X.x+A.x,y:X.y+A.y},y,Ct,wo(u)),U+=_e.dx,W+=_e.dy;let ie=Vn(S,y,U,W);Er([...Fd(S,ie).map(re=>({nodeId:x,prop:re,from:S[re],to:ie[re]})),...xx(v.riders,S,ie,A,0)]);return}case"scale":{let{handle:x,bounds:y,origin:S,frames:E,offsets:A}=v,L=h.x-S.x,U=h.y-S.y,W=Vn(y,x,L,U);_e=au(W,x,Ct,wo(u)),L+=_e.dx,U+=_e.dy,Er(bx({bounds:y,frames:E,offsets:A},Vn(y,x,L,U)));return}case"space":Mk(v,h);return;case"reorder":Ok(v,h,u.metaKey||u.ctrlKey);return;case"rotate":{let{centre:x,origin:y,targets:S}=v,E=S[0],A=vb(x,y,h,E?.rotation??0,u.shiftKey?U2:void 0);F=Wo((E?.rotation??0)+A);let L=[],U=S.filter(W=>W.follower!==!0).length===1;for(let W of wb(S,x,A)){let X=S.find(ie=>ie.id===W.id);X&&(L.push({nodeId:W.id,prop:"rotation",from:X.rotation,to:W.rotation}),!(U&&X.follower!==!0)&&L.push({nodeId:W.id,prop:"x",from:X.frame.x-X.offset.x,to:Z(W.frame.x-X.offset.x)},{nodeId:W.id,prop:"y",from:X.frame.y-X.offset.y,to:Z(W.frame.y-X.offset.y)}))}Er(L);return}case"adjust":{let x=v.adjuster.valueAt(v.frame,v.handleId,h);I=x,Er([{nodeId:v.id,prop:v.prop,from:v.from,to:x}]);return}case"line":{v.to=fa(h,null,u),v.to&&(_e=dt),v.current=v.to?.at??ux(h,v.origin,u),ce();return}case"end":{v.anchor=fa(h,v.id,u),v.anchor&&(_e=dt),v.current=v.anchor?.at??ux(h,v.fixed,u),ma(ck(v.id,v.end,v.anchor,v.current));return}case"create":{_e=du(h,Ct,wo(u));let x={x:h.x+_e.dx,y:h.y+_e.dy};v.current=u.shiftKey&&o!=="text"?G2(v.origin,x):x,ce();return}case"marquee":{v.current=h,ce();return}}},va=u=>{if(u.pointerType==="touch"){if(g.delete(u.pointerId),b?.pointerId!==u.pointerId)return;b=null,u.type==="pointerup"&&Jk(C.pointerPoint(u));return}if(Oe){Oe=!1,Bc(u.pointerId),se.focus({preventScroll:!0});return}if(J){Kk(u);return}if(!v||v.pointerId!==u.pointerId)return;Bc(u.pointerId);let f=C.screenToDocument(C.pointerPoint(u));if(!Vk(H?bo(H.id,f):f))switch(v.kind){case"line":{let{origin:h,current:x,from:y,to:S}=v;v=null,_e=dt,ce(),fk(h,x,y,S);return}case"end":En(v.anchor?"Attach end":"Move end");return;case"create":{let h=to(v.origin,v.current),x=o==="text"?"text":o==="frame"?"frame":o==="ellipse"?"ellipse":"rect";v=null,_e=dt,ce();let y=h.w<jn||h.h<jn;if(y&&x!=="text")return;let S=y?{x:h.x,y:h.y,w:qv.w,h:qv.h}:h,E=Jn(Xn({x:S.x,y:S.y})??_??n.root.id),A=z(n.root,E)??n.root,L=Yt(E),U={x:Math.round(S.x-L.x),y:Math.round(S.y-L.y),w:Math.round(S.w),h:Math.round(S.h)},W=pn(n.root,x);pe([{op:"insert",parent:E,index:te(A).length,node:x==="text"?il({...U,id:W,content:""}):x==="frame"?Va({...U,id:W,background:Uv,children:[]}):x==="ellipse"?tl({...U,id:W,fill:t.defaultFill??"#3b82f6"}):sl({...U,id:W,fill:t.defaultFill??"#3b82f6"})}],K2[x]),he([W]),Mn("select"),x==="text"&&Ps(W);return}case"marquee":{let h=to(v.origin,v.current),x=u.shiftKey;if(v=null,_e=dt,h.w>=jn||h.h>=jn){let y=R1(h);he(x?[...new Set([...r,...y])]:y)}ce();return}case"move":{let h=Dk();h.length>0&&(N=[...N,...h]),En(be.length>0?"Duplicate":"Move");return}case"resize":En("Resize");return;case"scale":En(r.length===1?"Resize group":`Resize ${r.length} elements`);return;case"space":En("Spacing");return;case"reorder":En(v.swap?"Swap":"Reorder");return;case"adjust":En("Corner radius");return;case"rotate":En("Rotate");return}},wa=null;function Zk(u,f,h){let x=mx();if(x.size===0)return;let y=hx(n,gx(x,u,f),Xr(n),Pe(n));if(y.length===0)return;let S="Nudge",E=r.join(`
|
|
3098
|
-
`),A=h&&wa!==null&&wa.selection===E&&D.top===wa.entry;ht===null?(ht={label:S,started:A},pe(y,S),ix()):pe(y,S),wa=D.top?{entry:D.top,selection:E}:null}function Ax(){C.fitToContent()}function $x(){C.setCamera({...C.getCamera(),zoom:1})}function Qk(){let u=Wt(r.flatMap(h=>qe(h)??[]));if(!u)return;let f=e.getBoundingClientRect();C.setCamera(bn({x:u.x,y:u.y,width:u.w,height:u.h},{width:f.width||u.w,height:f.height||u.h},z2))}function Ox(u,f){if((u.metaKey||u.ctrlKey)&&!u.altKey){let x=u.code==="Equal"?Gv:u.code==="Minus"?1/Gv:null;return x!==null?(u.preventDefault(),C.zoomBy(x),!0):u.code==="Digit0"&&!u.shiftKey?(u.preventDefault(),$x(),!0):!1}return f||!u.shiftKey||u.altKey?!1:u.code==="Digit1"?(u.preventDefault(),Ax(),!0):u.code==="Digit2"?r.length===0?!1:(u.preventDefault(),Qk(),!0):!1}function Tx(u){return u.ctrlKey&&!u.metaKey&&!u.altKey&&!u.shiftKey&&u.key.toLowerCase()==="y"}function Lx(u){return Ke(n.root,u).slice(0,-1).reverse().find(h=>{let x=z(n.root,h);return x!==void 0&&Bs(x)})??null}function e1(){if(r.length!==1)return!1;let u=z(n.root,r[0]);if(!u||!(Bs(u)||u.type==="frame"))return!1;let f=te(u).map(h=>h.id).filter(It);return f.length===0?!1:(Bs(u)&&Lc(u.id),he(f),!0)}function t1(){let u=r[0];if(u===void 0)return!1;let f=Le(n.root,u);return!f||f.id===n.root.id?!1:f.id===_?(Pc(),!0):(_=Lx(f.id),he([f.id]),!0)}function n1(u){let f=u===1?r[r.length-1]:r[0];if(f===void 0)return!1;let h=Le(n.root,f);if(!h)return!1;let x=te(h).map(E=>E.id).filter(E=>E===f||It(E)),y=x.indexOf(f),S=x[(y+u+x.length)%x.length];return S!==void 0&&he([S]),!0}let Px=u=>{if(Lu(u.target))return;if(ae){let y=(u.metaKey||u.ctrlKey)&&u.key.toLowerCase()==="z";if(y||Tx(u)){u.preventDefault(),ae.breakBurst(),u.shiftKey||!y?Hs():Vs();return}Ox(u,!0);return}if(J&&(u.key==="Enter"||u.key==="Escape")){u.preventDefault(),ga();return}if(Hk(u))return;if((u.metaKey||u.ctrlKey)&&u.shiftKey&&u.code==="KeyO"){if(_x()===0)return;u.preventDefault(),xc();return}if(u.key==="Enter"&&u.shiftKey&&!Ss(u)){t1()&&u.preventDefault();return}if(u.key==="Enter"&&!Ss(u)&&r.length===1){let y=r[0];if(z(n.root,y)?.type==="vector"&&Mr(y)){u.preventDefault();return}}if(u.key==="Enter"&&!Ss(u)&&r.length===1){let y=r[0];if(z(n.root,y)?.type==="text"){u.preventDefault(),Ps(y);return}}if(u.key==="Enter"&&!Ss(u)){if(kc()){u.preventDefault();return}let y=r.length===1?r[0]:null;if(y!==null&&ba(y)){u.preventDefault();return}}if(u.key==="Enter"&&!Ss(u)){e1()&&u.preventDefault();return}if(u.key==="Tab"&&!Ss(u)){n1(u.shiftKey?-1:1)&&u.preventDefault();return}if(u.code==="Space"&&!m){m=!0,xt(at("grab"));return}let f=u.metaKey||u.ctrlKey;if(f&&u.key.toLowerCase()==="z"){u.preventDefault(),u.shiftKey?Hs():Vs();return}if(Tx(u)){u.preventDefault(),Hs();return}if(Ox(u,!1))return;if(f&&u.shiftKey&&!u.altKey&&u.code==="KeyL"){if(!R.lock||r.length===0)return;u.preventDefault(),Eo(r,"locked");return}if(f&&u.shiftKey&&!u.altKey&&u.code==="KeyH"){if(!R.hide||r.length===0)return;u.preventDefault(),Eo(r,"hidden");return}if(f&&u.altKey&&!u.shiftKey&&u.code==="KeyK"){if(!Vi(n,r))return;u.preventDefault(),Rc();return}if(f&&u.altKey&&!u.shiftKey&&u.code==="KeyM"&&!u.getModifierState("AltGraph")){if(r.length===0)return;u.preventDefault(),qk();return}if(f&&u.altKey&&!u.shiftKey&&u.code==="KeyB"){if(!r.some(y=>z(n.root,y)?.type==="instance"))return;u.preventDefault(),Ic();return}if(f&&u.key.toLowerCase()==="g"){u.preventDefault(),u.shiftKey?Oc():$c();return}if(f&&u.key.toLowerCase()==="a"){u.preventDefault(),Dc();return}if(f&&!u.altKey&&u.key.toLowerCase()==="d"){u.preventDefault(),Cc();return}if(u.altKey){let y=u.shiftKey&&!f?X2[u.code]:void 0;if(y&&t.merge){u.preventDefault();let A=yc();A?ke("notice",{message:lu(A)}):bc(y);return}let S=q2[u.code];if(S&&!f){u.preventDefault(),Yx(S);return}let E=W2[u.code];if(E&&u.ctrlKey){u.preventDefault(),Zx(E);return}}if(u.key==="]"||u.key==="["){if(r.length===0)return;u.preventDefault();let y=u.key==="]";Tc(f?y?"front":"back":y?"forward":"backward");return}if(u.key==="Escape"){if(v)mc();else{if(kc())return;_!==null?Pc():he([])}return}if(u.key==="Delete"||u.key==="Backspace"){if(r.length===0)return;u.preventDefault(),Mo();return}let h=Wv[u.key];if(h&&!f&&!u.altKey){if(r.length===0||(u.preventDefault(),v||J))return;let y=u.shiftKey?Kv:jv;Zk(h[0]*y,h[1]*y,u.repeat);return}let x=f||u.altKey?void 0:Lm[u.key.toLowerCase()];x&&Mn(x)};function Dx(){if(!ae)return null;let u=z(n.root,ae.id);if(u?.type!=="text")return null;let{anchor:f,head:h}=ae.getSelection();return f===h?null:lo(km(u.content,f,h))}let Nx=u=>{if(Lu(u.target))return;let f=Dx()??So();f!==null&&(u.preventDefault(),u.clipboardData?.setData("text/plain",f))},Rx=u=>{if(Lu(u.target))return;let f=Dx();if(f!==null&&ae){u.preventDefault(),u.clipboardData?.setData("text/plain",f);let{anchor:x,head:y}=ae.getSelection();ae.breakBurst(),ae.setSelection(x,y),ae.handleInput({inputType:"deleteByCut",data:null});return}let h=So();h!==null&&(u.preventDefault(),u.clipboardData?.setData("text/plain",h),Mo())},Ix=u=>{if(Lu(u.target))return;u.preventDefault();let f=Dp(u.clipboardData);if(f&&!ae){let x=w1();x?Mc(x,f):ng(f,Rt??void 0);return}let h=u.clipboardData?.getData("text/plain")||void 0;if(ae&&h!==void 0){ae.handleInput({inputType:"insertFromPaste",data:h});return}Ec(h)},Fx=u=>{u.code==="Space"&&(m=!1,xt(at(cc())))},Bx=u=>{if(!fe)return;u.preventDefault(),v&&mc();let f=C.pointerPoint(u),h=C.screenToDocument(f),x=yo(h),y=r1(h),S=C.hitTest(h),E=S!==null&&r.some(L=>Ke(n.root,S).includes(L));x===null?E||he([]):r.includes(x)||he([x]);let A=(t.menuExtras?.(r)??[]).map(L=>"separator"in L?L:{...L,id:`${Pm}${L.id}`});fe.open(f,sm(o1(y),A))};function r1(u){let{locked:f}=$t(),h=[];for(let x of[...C.getScene().items].reverse()){if(!f.has(x.id)||!C.hitTest(u,S=>S===x.id))continue;let y=js(n.root,x.id,"locked");y!==void 0&&!h.includes(y)&&h.push(y)}return h}function o1(u=[]){let f=r.length===1?z(n.root,r[0]):void 0,h=[];if(f){let x=f;for(let y of Vt(f)){let S=x[y];S===void 0||!ve(S)||md(S).kind!=="literal"&&h.push({prop:y,source:`=${S.expr}`})}}return{count:r.length,hasGroup:r.some(x=>{let y=z(n.root,x);return y!==void 0&&Ne(y)}),canPaste:Dm!==null,isText:r.length===1&&z(n.root,r[0])?.type==="text",isVector:ge().length===1&&z(n.root,ge()[0])?.type==="vector",convertible:_x(),...t.merge===void 0?{}:{mergeable:Sx()},mask:Gk(),bound:h,lock:R.lock?r.every(x=>$t().locked.has(x))?"unlock":"lock":null,hide:R.hide?r.every(x=>$t().hidden.has(x))?"show":"hide":null,locksHere:u,anyLocked:Nc("locked").length>0,hiddenCount:Nc("hidden").length,components:s1()}}function s1(){let u=r.length===1?r[0]:void 0,f=u===void 0?void 0:ug(u),h=f===void 0?void 0:z(n.root,f),x=0;if(u!==void 0&&f!==void 0&&h?.type==="instance"){let y=h.overrides??{};x=u===f?Object.keys(y).length:y[u.slice(f.length+1)]===void 0?0:1}return{create:Vi(n,r),instance:h?.type==="instance"&&u===f,part:f!==void 0&&u!==f,component:u!==void 0&&Hn(n,u),overrides:x,uses:Ud(n,r.filter(y=>Hn(n,y)))}}function i1(u){if(e.focus({preventScroll:!0}),u.startsWith(Pm)){t.onMenuCommand?.(u.slice(Pm.length),[...r]);return}if(u.startsWith("unlock:")){_o([u.slice(7)],"locked",!1);return}if(u.startsWith("detach:")){let f=u.slice(7),h=r[0];h!==void 0&&hg(h,f);return}switch(u){case"copy":So();return;case"cut":tg();return;case"editText":{let f=r[0];f!==void 0&&Ps(f);return}case"editPoints":{let f=r[0];f!==void 0&&Mr(f);return}case"toVector":return xc();case"mask":vc();return;case"releaseMask":wc();return;case"crop":r.length===1&&ba(r[0]);return;case"merge:union":case"merge:subtract":case"merge:intersect":case"merge:exclude":bc(u.slice(6));return;case"duplicate":return Cc();case"paste":return Ec();case"group":return $c();case"ungroup":return Oc();case"createComponent":Rc();return;case"detachInstance":return Ic();case"goToComponent":{let f=r[0];f!==void 0&&lg(f);return}case"resetOverrides":{let f=r[0];f!==void 0&&cg(f);return}case"placeInstance":{let f=r[0];f!==void 0&&Fc(f);return}case"front":case"forward":case"backward":case"back":return Tc(u);case"delete":return Mo();case"selectAll":return Dc();case"toggleLock":return Eo(r,"locked");case"toggleHidden":return Eo(r,"hidden");case"unlockAll":return Ma("locked");case"showAll":return Ma("hidden");case"fit":return Ax();case"zoom100":return $x()}}let Vx=u=>{if(w||o!=="select"||m||H)return;let f=C.screenToDocument(C.pointerPoint(u)),h=C.hitTest(f,A=>!$t().locked.has(A));if(h===null)return;let x=Ea().find(A=>A.id===h);if(x){u.preventDefault(),k1(x);return}let y=z(n.root,h);if(y?.type==="text"){u.preventDefault(),Ps(h,f);return}if(y?.type==="vector"){u.preventDefault(),Mr(h);return}if(yo(f)===h&&ba(h)){u.preventDefault();return}let S=Ke(n.root,h),E=_===null?1:S.indexOf(_)+1;for(let A=Math.max(E,1);A<S.length;A+=1){let L=S[A];if(L===void 0)break;let U=z(n.root,L);if(!(!U||!Bs(U))){u.preventDefault(),Lc(L),he([S[A+1]??L]);return}}},Hx=u=>Array.from(u.dataTransfer?.types??[]).includes("Files"),Ux=()=>t.importImage!==void 0||t.importAudio!==void 0||t.importVideo!==void 0,zx=u=>Array.from(u.dataTransfer?.types??[]).includes(Pu),jx=u=>{if(zx(u)){u.preventDefault(),u.dataTransfer&&(u.dataTransfer.dropEffect="copy");return}if(!Hx(u)||!Ux())return;u.preventDefault(),u.dataTransfer&&(u.dataTransfer.dropEffect="copy");let f=C.screenToDocument(C.pointerPoint(u)),h=og(f)?.id??null;h!==l&&(l=h,ce())},Kx=u=>{u.relatedTarget instanceof Node&&e.contains(u.relatedTarget)||l!==null&&(l=null,ce())},Gx=u=>{if(zx(u)){u.preventDefault();let A=u.dataTransfer?.getData(Pu)??"";e.focus({preventScroll:!0}),Fc(A,C.screenToDocument(C.pointerPoint(u)));return}if(!Hx(u)||!Ux())return;u.preventDefault();let f=C.screenToDocument(C.pointerPoint(u)),h=og(f);l=null,ce();let x=Array.from(u.dataTransfer?.files??[]),y=x.find(Db);if(y&&t.importAudio){let A=Xn(f),L=A===null?void 0:Ut(n).get(A),U=Jd(n),W=L!==void 0&&U.includes(L)?L:Zd(n,r,null)??L??null;W!==null&&rg(y,W);return}let S=x.find($b);if(S&&t.importVideo){y1(S,f,v1(f));return}if(!t.importImage)return;let E=x.find(A=>A.type.startsWith("image/"));E&&(h?Mc(h,E):ng(E,f))},qx=()=>{Rt=null,d=null,!v&&(s===null&&Q===null&&Te===null||(s=null,Q=null,Te=null,ce()))};function Wx(){let u=ge().length===1?ge()[0]:void 0,f=u===void 0?void 0:z(n.root,u);return u!==void 0&&f&&!me(f)?Wn(u):0}function a1(u){if(m){xt(at("grab"));return}if(H){Ft(null),xt(at("arrow"));return}if(o!=="select"){if(Ft(null),_c(null),ka(null),xt(at(o==="text"?"text":"crosshair")),o==="line"||i!==null){let S=o==="line"?fa(C.screenToDocument(u),null,rA):null;(S?.at.x!==i?.at.x||S?.at.y!==i?.at.y)&&(i=S,ce())}return}let f=ge().length===1?ge()[0]:null;if(f!==null){let S=G.hitAdjuster(u);if(S){let E=z(n.root,f),A=E?eu(E,S.id):void 0;Ft(null);let L=A&&E?A.propOf(E,S.id,!1):void 0;_c(L===void 0?null:{id:S.id,prop:L}),xt(at("radius",{badge:L===void 0?"none":ac(f,[L])}));return}_c(null)}if(ge().length>0){let S=G.hitHandle(u);if(S){Ft(null);let L=Id(S.handle);xt(at("resize",{angle:mp(S.handle)+Wx(),badge:sx(Ls(),L)}));return}let E=G.hitPageLabel(u);if(E!==null){Ft(E),xt(at("arrow"));return}let A=G.hitRotate(u);if(A!==null){Ft(null),xt(at("rotate",{angle:j2[A]+Wx()}));return}}let h=G.hitPageLabel(u);if(h!==null){d=null,Ft(h),xt(at("arrow"));return}if(ge().length>1){if(G.hitRing(u)!==null){Ft(null),ka(null),xt(at("grab"));return}let E=G.hitSpacer(u),A=E===null?null:bu(E);if(E!==null&&A){Ft(null),ka(E),xt(at("resize",{angle:A.axis==="x"?0:90,badge:sx(Ls(),[A.axis])}));return}ka(null)}let x=C.screenToDocument(u),y=yo(x);d=d1(x,y),Ft(y),ce(),xt(at("arrow",{badge:y===null?"none":ac(y,["x","y"])}))}function d1(u,f){let h=C.hitTest(u);if(h===null||!$t().locked.has(h))return null;let x=js(n.root,h,"locked");return x===void 0?null:f===null||Ke(n.root,x).includes(f)?x:null}function Ft(u){s!==u&&(s=u,ce())}function _c(u){Q?.id!==u?.id&&(Q=u,ce())}function ka(u){Te!==u&&(Te=u,ce())}function xt(u){e.style.cursor!==u&&(e.style.cursor=u)}function Mn(u){o!==u&&(o=u,J&&u!=="pen"&&ga(),u!=="select"&&Rs(),ee?.setTool(o),u!=="select"&&Ft(null),xt(at(cc())),ke("tool",o))}function u1(u){if(u.length===0)return null;if(u.length>1)return Wt(u.map(x=>x.frame))??null;let f=u[0],h=Le(n.root,f.id);return h?ro(h.id,n,C.getResolution())??null:null}function Xx(u,f,h){let x=Sa(oo(n,hc(ua(r),u,f)));x.length!==0&&pe([...x,...fs(n,x,Xr(n),Pe(n))],h)}function Sa(u,f=n){if(u.length===0)return[...u];let h=Ye(f.root).links;if(h.size===0)return[...u];let x=new Set(u.flatMap(A=>A.op==="set"?[A.id]:[])),y=Pe(f),S=Pe(Ae(f,u).document),E=[];for(let[A,L]of h){if(A===M||!x.has(A)||x.has(L))continue;let U=y.nodes.get(A),W=S.nodes.get(A),X=y.nodes.get(L);if(!U||!W||!X)continue;let ie={x:U.absX,y:U.absY,w:U.w,h:U.h},re={x:W.absX,y:W.absY,w:W.w,h:W.h},xe=U.values.rotation??0,ue=W.values.rotation??0;if(ie.x===re.x&&ie.y===re.y&&ie.w===re.w&&ie.h===re.h&&xe===ue)continue;let We={x:X.absX,y:X.absY,w:X.w,h:X.h},Ot={x:X.absX-X.x,y:X.absY-X.y},Tt=X.values.rotation??0,Co=je(Re(We),Re(ie),-xe),I1={x:Co.x-We.w/2,y:Co.y-We.h/2,w:We.w,h:We.h},Us=Kd(I1,Tt-xe,ie,re),wg=je(Re(Us),Re(re),ue);E.push({nodeId:L,prop:"x",from:X.x,to:Z(wg.x-Us.w/2-Ot.x)},{nodeId:L,prop:"y",from:X.y,to:Z(wg.y-Us.h/2-Ot.y)},{nodeId:L,prop:"w",from:X.w,to:Z(Us.w)},{nodeId:L,prop:"h",from:X.h,to:Z(Us.h)}),ue!==xe&&E.push({nodeId:L,prop:"rotation",from:Tt,to:Wo(Tt+ue-xe)})}return E.length===0?[...u]:[...u,...oo(f,E)]}function Yx(u){let f=Bi(n,r,C.getResolution()),h=u1(f);h&&Xx(Qd(u),Rp(f,h,u),Y2[u])}function Jx(u){let f=Bi(n,r,C.getResolution());if(f.length<3)return null;let h=xm(f,u),x=gm(h);return x===null?null:{gap:x,series:h}}function Zx(u){let f=Jx(u);f&&Xx(u,wu(f.series,f.gap),u==="x"?"Distribute horizontally":"Distribute vertically")}function c1(){let u=Gi(n,[...r,...ms(n,r)]);if(u.length===0)return null;let f=C.getResolution(),h={};for(let x of u)de(x,y=>{let S=f.nodes.get(y.id)?.values;S&&(h[y.id]=S)});return{nodes:u,tokens:n.tokens,fonts:n.fonts,resolved:h}}function l1(u){return new Map(Object.entries(u.resolved))}function f1(u){let f=Object.entries(u.tokens).filter(([h])=>n.tokens[h]===void 0).map(([h,x])=>({op:"setToken",name:h,value:x}));for(let[h,x]of Object.entries(u.fonts))n.fonts[h]===void 0&&f.push({op:"setFont",name:h,family:x});return f}function Qx(u,f,h){let x=f1(u),y=x.length>0?Ae(n,x).document:n,S=mb(y,u.components??[],ie=>dg(`This file already has a component called ${ie}, and it is not the same as the one you copied. Use the one in this file? Cancel brings yours in beside it as a separate component.`));S.ops.length>0&&(x.push(...S.ops),y=Ae(y,S.ops).document);let E=Jh(u,y),A=E.remap,L=E.nodes.map(ie=>jd(ie,S));if(L.length===0)return null;L.forEach((ie,re)=>{let xe=u.nodes[re];if(!xe)return;let ue=f(xe,re,y),De={op:"insert",parent:ue.parent,index:ue.index,node:ie};x.push(De),y=Ae(y,[De]).document});let U=kp(y,A,l1(u),h);U.length>0&&(y=Ae(y,U).document);let W=p1(L),X=Ye(y.root).shapes;return{ops:[...x,...U,...ps(n,y)],ids:[...A.values()].filter(ie=>W.has(ie)&&!X.has(ie))}}function p1(u){let f=new Set;for(let h of u)f.add(h.id);return f}function eg(u){let f=c1();return f?Qx(f,(h,x,y)=>{let S=Le(y.root,h.id)??y.root,E=te(S).findIndex(A=>A.id===h.id);return{parent:S.id,index:E===-1?te(S).length:E+1}},u):null}function So(){let u=Xh(n,r,C.getResolution());return u!==null&&(Dm=u),u}function tg(){if(r.some(f=>Je(n,f)))return So();let u=So();return u!==null&&(r=[...r,...ms(n,r)],Mo()),u}function h1(u){let f=[];for(let h of u.nodes){let x=u.resolved[h.id];if(!x)continue;let{x1:y,y1:S,x2:E,y2:A}=x,L=y!==void 0&&S!==void 0&&E!==void 0&&A!==void 0?fi({x1:y,y1:S,x2:E,y2:A}):x,{x:U,y:W,w:X,h:ie}=L;U===void 0||W===void 0||X===void 0||ie===void 0||f.push({x:U,y:W,w:X,h:ie})}return Wt(f)??null}function Ec(u,f){let h=Yh(u??Dm??"");if(!h)return;let x=f??Rt,y=h1(h),S=m1(h),E=L=>Qx(h,(U,W,X)=>({parent:L,index:te(z(X.root,L)??X.root).length}),x1(h,L,y,x)),A=E(S);A&&S!==_a()&&g1(A.ops)&&(A=E(_a())),A&&(pe(A.ops,A.ids.length===1?"Paste":`Paste ${A.ids.length} elements`),he(A.ids))}function _a(){return Jn(_??n.root.id)}function m1(u){if(u.nodes.some(y=>y.type==="frame"&&y.component===!0))return n.root.id;if(_!==null||r.length===0)return _a();let f=new Set(u.nodes.map(y=>y.id)),h=r.length===1?z(n.root,r[0]):void 0;if(h?.type==="frame"&&!f.has(h.id))return Jn(h.id);let x=new Set(r.map(y=>Le(n.root,y)?.id??n.root.id));return x.size!==1?_a():Jn([...x][0])}function x1(u,f,h,x){let y={x:Tu,y:Tu};if(!h)return y;let S={x:h.x+h.w/2,y:h.y+h.h/2},E=f===n.root.id?void 0:wt(f);return E?x!==null&&x.x>=E.absX&&x.x<=E.absX+E.w&&x.y>=E.absY&&x.y<=E.absY+E.h?{x:x.x-E.absX-S.x,y:x.y-E.absY-S.y}:u.nodes.some(W=>Le(n.root,W.id)?.id===f)?y:h.x>=0&&h.y>=0&&h.x+h.w<=E.w&&h.y+h.h<=E.h?{x:0,y:0}:{x:E.w/2-S.x,y:E.h/2-S.y}:x?{x:x.x-S.x,y:x.y-S.y}:y}function g1(u){let f=h=>Gs(h).filter(x=>x.code==="component-cycle").length;return f(Ae(n,u).document.root)>f(n.root)}async function ng(u,f){let h=t.importImage;if(!h)return;let x=await Yd(u,t.maxImageEdge??2560);if(!x)return;let y=await h(new File([x.bytes],u.name,{type:x.type}));if(!y)return;let S=Jn((f?Xn(f):void 0)??_??n.root.id),E=z(n.root,S)??n.root,A=Yt(S),L=C.getResolution().nodes.get(S),{w:U,h:W}=Np(x.width,x.height,L?.w&&L.w>0?L.w:x.width,L?.h&&L.h>0?L.h:x.height),X=f??Rt,ie=Math.round((X?X.x-U/2:A.x)-A.x),re=Math.round((X?X.y-W/2:A.y)-A.y),xe=sg(n,u.name),ue=pn(n.root,"image");pe([{op:"setAsset",name:xe,value:y},{op:"insert",parent:S,index:te(E).length,node:ol({id:ue,x:ie,y:re,w:U,h:W,src:xe,fit:"cover"})}],"Place image"),he([ue])}async function y1(u,f,h){let x=t.importVideo;if(!x)return;let y=await Tb(u),S=u.type===""?new File([u],u.name,{type:Ob(u)}):u,E=await x(S,y?.ms);if(!E)return;if(h){pe([{op:"setAsset",name:h.src,value:E}],"Place video"),he([h.id]);return}let A=sg(n,u.name),L=Jn(Xn(f)??_??n.root.id),U=z(n.root,L)??n.root,W=Yt(L),X=C.getResolution().nodes.get(L),ie=y?.width??1920,re=y?.height??1080,{w:xe,h:ue}=Np(ie,re,X?.w&&X.w>0?X.w:ie,X?.h&&X.h>0?X.h:re),De=pn(n.root,"video");pe([{op:"setAsset",name:A,value:E},{op:"insert",parent:L,index:te(U).length,node:rl({id:De,x:Math.round(f.x-xe/2-W.x),y:Math.round(f.y-ue/2-W.y),w:xe,h:ue,src:A,fit:"cover",muted:!0})}],"Place video"),he([De])}async function rg(u,f){let h=t.importAudio;if(!h)return!1;let x=await h(u);return x?(pe(Rb(n,f,Nb(n,f,u.name),x),"Add music"),!0):!1}function Ea(){return t.importImage?Sv(n,$t().hidden):[]}function b1(){return Ea().flatMap(u=>{let f=qe(u.id);return f?[{frame:f,label:u.label,target:u.id===l}]:[]})}function v1(u){let f=null;return de(n.root,h=>{if(h.type!=="video"||typeof h.src!="string"||h.src===""||n.assets[h.src]!==void 0)return;let x=qe(h.id);x!==void 0&&Mt(x,u.x,u.y)&&(f=h)}),f}function og(u){return Ea().filter(h=>{let x=qe(h.id);return x!==void 0&&Mt(x,u.x,u.y)}).at(-1)??null}function w1(){return r.length!==1?null:Ea().find(u=>u.id===r[0])??null}async function Mc(u,f){let h=t.importImage;if(!h)return;let x=await Yd(f,t.maxImageEdge??2560);if(!x)return;let y=await h(new File([x.bytes],f.name,{type:x.type}));!y||n.assets[u.src]!==void 0||(pe([{op:"setAsset",name:u.src,value:y}],"Add image"),he([u.id]))}function k1(u){let f=e.ownerDocument.createElement("input");f.type="file",f.accept="image/*",f.addEventListener("change",()=>{let h=f.files?.[0];h&&Mc(u,h)}),f.click()}function sg(u,f){let h=f.replace(/\.[^.]+$/,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"image";if(u.assets[h]===void 0)return h;for(let x=2;;x+=1){let y=`${h}-${x}`;if(u.assets[y]===void 0)return y}}function Cc(){if(r.some(f=>Je(n,f)))return;let u=eg(S1());u&&(pe(u.ops,u.ids.length===1?"Duplicate":`Duplicate ${u.ids.length} elements`),he(u.ids))}function S1(){let u={x:Tu,y:Tu},f=r.length===1?r[0]:void 0;if(f===void 0||!Hn(n,f))return u;let h=C.getResolution(),x=h.nodes.get(f);if(!x)return u;let y=Hi(n,h);return{x:y.x-x.absX,y:y.y-x.absY}}function Ac(u,f){if(u.length===0)return;let h=Ae(n,u).document;pe([...u,...ps(n,h)],f)}function $c(){if(r.some(f=>Je(n,f)))return;let u=yp(n,r);u&&(Ac(u.ops,"Group"),he([u.groupId]))}function Oc(){let u=r.filter(y=>{let S=z(n.root,y);return S!==void 0&&Ne(S)&&!Je(n,y)});if(u.length===0)return;let f=n,h=[],x=[];for(let y of u){let S=z(f.root,y);S&&x.push(...te(S).map(A=>A.id));let E=bp(f,y);E.length!==0&&(h.push(...E),f=Ae(f,E).document)}_!==null&&u.includes(_)&&(_=null),Ac(h,u.length===1?"Ungroup":`Ungroup ${u.length} groups`),he(x)}function Tc(u){r.some(f=>Je(n,f))||Ac(vp(n,r,u),tA[u])}function _1(u,f,h){let x=z(n.root,f);if(!x||!me(x))return;let y=new Set(Ke(n.root,f));if(x.type==="instance"||Je(n,f)||f!==n.root.id&&u.some(ue=>Hn(n,ue)))return;let S=u.filter(ue=>ue!==n.root.id&&z(n.root,ue)&&!y.has(ue)&&!Je(n,ue)),E=fr(n.root,f),A=[...S,...qh(n,S).filter(ue=>fr(n.root,ue)!==E&&!y.has(ue))];if(A.length===0)return;let L=new Set(A),U=te(x).filter(ue=>!L.has(ue.id))[h]?.id,W=[],X=n;for(let ue of A){let De=te(z(X.root,f)??X.root).filter(Tt=>Tt.id!==ue),We=U===void 0?-1:De.findIndex(Tt=>Tt.id===U),Ot={op:"move",id:ue,parent:f,index:We===-1?De.length:We};W.push(Ot),X=Ae(X,[Ot]).document}if(A.every(ue=>M1(n,X,ue)))return;let ie=new Set(A.filter(ue=>Le(n.root,ue)?.id!==f).flatMap(ue=>wx(ue,X))),re=[];for(let ue of A){let De=ig(n,ue),We=ig(X,ue),Ot={x:De.x-We.x,y:De.y-We.y};if(!(Ot.x===0&&Ot.y===0))for(let Tt of no(ue,X)){let Co=an(Tt);Co&&(re.push({op:"set",id:Tt,prop:"x",value:Z(Co.x+Ot.x)}),re.push({op:"set",id:Tt,prop:"y",value:Z(Co.y+Ot.y)}))}}let xe=Ae(X,re).document;pe([...W,...re,...ps(n,xe,ie)],A.length===1?`Move ${A[0]}`:`Move ${A.length} layers`)}function E1(u={}){let f=n.root.children,h=f.filter(ue=>ue.type==="frame"&&ue.component!==!0),x=h.find(ue=>ue.id===u.after),y=C.getResolution(),S=x?y.nodes.get(x.id):void 0,E=S&&S.w>0?S.w:zv.w,A=S&&S.h>0?S.h:zv.h,L=null,U=-1/0;for(let ue of h.length>0?h:f){let De=y.nodes.get(ue.id);!De||De.absX+De.w<=U||(U=De.absX+De.w,L={x:U+H2,y:De.absY})}let W=L??{x:0,y:0},X=x??h[h.length-1],ie=X?f.indexOf(X)+1:f.length,re=pn(n.root,"frame"),xe=x?.type==="frame"?x.background:void 0;return pe([{op:"insert",parent:n.root.id,index:ie,node:Va({id:re,x:Z(W.x),y:Z(W.y),w:Z(E),h:Z(A),background:xe??Uv,children:[]})}],"Add frame"),he([re]),re}function M1(u,f,h){let x=Le(u.root,h),y=Le(f.root,h);return x?.id===y?.id&&x?.children.findIndex(S=>S.id===h)===y?.children.findIndex(S=>S.id===h)}function ig(u,f){let h=Ke(u.root,f).slice(0,-1).reverse(),x=Pe(u);for(let y of h){let S=z(u.root,y);if(!S||Ne(S))continue;let E=x.nodes.get(y);return E?{x:E.absX,y:E.absY}:{x:0,y:0}}return{x:0,y:0}}function Lc(u){let f=z(n.root,u);!f||!Bs(f)||(_=u,ce())}function Pc(){if(_===null)return;let u=_;_=Lx(u),he([u])}function Dc(){let u=z(n.root,_??n.root.id)??n.root,f=Ye(n.root).shapes;he(te(u).map(h=>h.id).filter(h=>It(h)&&!f.has(h)))}let C1={locked:["Lock","Unlock"],hidden:["Hide","Show"]};function ag(u){return u==="locked"?$t().locked:$t().hidden}function _o(u,f,h){let x=u.filter(E=>E!==n.root.id&&z(n.root,E)),y=h?x.filter(E=>!ag(f).has(E)):[...new Set(x.flatMap(E=>{let A=js(n.root,E,f);return A===void 0?[]:[A]}))];if(y.length===0)return;let S=C1[f][h?0:1];pe(y.map(E=>({op:"set",id:E,prop:f,value:h?!0:void 0})),y.length===1?`${S} ${y[0]}`:`${S} ${y.length} layers`)}function Eo(u,f){u.length!==0&&_o(u,f,!u.every(h=>ag(f).has(h)))}function Nc(u){let f=[];return de(n.root,h=>{h[u]===!0&&f.push(h.id)}),f}function Ma(u){let f=Nc(u);if(f.length===0)return;let h=u==="locked"?"Unlock all":"Show all";pe(f.map(x=>({op:"set",id:x,prop:u,value:void 0})),h)}function A1(u){R={...Xv,...u},fe?.close()}function Mo(){let u=r.filter(L=>L!==n.root.id),f=u.filter(L=>Je(n,L)),h=u.filter(L=>!Je(n,L)),x=h.filter(L=>Hn(n,L)),y=Ud(n,x);if(y>0){let U=`${x.length===1?x[0]:`${x.length} components`} is used in ${y} ${y===1?"place":"places"}. Delete it and detach ${y===1?"that instance":"those instances"}? Each keeps what it shows.`;if(!dg(U))return}let S=h.filter(L=>!x.includes(L)),E=[...f.map(L=>({op:"set",id:L,prop:"hidden",value:!0})),...x.length>0?Ap(n,x,C.getResolution()):[],...Gh(zb(n,S)),...O1(S),...S.map(L=>({op:"remove",id:L}))];if(E.length===0)return;let A=u.length;he([]),pe(E,A===1?"Delete element":`Delete ${A} elements`)}function $1(u,f){if(z(n.root,u)?.type!=="connector")return;let x=wt(u)?.values??{},[y,S]=f==="start"?["x1","y1"]:["x2","y2"];pe([{op:"set",id:u,prop:y,value:Z(x[y]??0)},{op:"set",id:u,prop:S,value:Z(x[S]??0)}],"Detach end")}function O1(u){let f=new Set;for(let x of u){let y=z(n.root,x);y&&de(y,S=>{f.add(S.id)})}let h=[];for(let[x,y]of In(n)){if(f.has(x))continue;let S=wt(x)?.values??{};for(let[E,A,L]of[["start","x1","y1"],["end","x2","y2"]]){let U=y[E];U===void 0||!f.has(U)||h.push({op:"set",id:x,prop:A,value:Z(S[A]??0)},{op:"set",id:x,prop:L,value:Z(S[L]??0)})}}return h}function dg(u){if(t.confirm)return t.confirm(u);let f=e.ownerDocument.defaultView;return typeof f?.confirm=="function"?f.confirm(u):!0}function Bs(u){return Ne(u)||u.type==="instance"}function Jn(u){let f=Ke(n.root,u),h=f.findIndex(x=>z(n.root,x)?.type==="instance");return h<=0?u:f[h-1]}function Rc(u=r){let f=Sp(n,[...u,...ms(n,u)],C.getResolution());return f?(_=null,pe(f.ops,"Create component"),he([f.instanceId]),f.flattened.length>0&&ke("notice",{message:`Made ${f.componentId}. ${f.flattened.length===1?"One position":`${f.flattened.length} positions`} measured from the page became numbers so the page looks the same: ${f.flattened.join(", ")}.`}),f.instanceId):null}function Ic(u=r){let f=u.filter(S=>z(n.root,S)?.type==="instance"),h=[],x=n,y=C.getResolution();for(let S of f){let E=Hd(x,S,y);E&&(h.push(...E),x=Ae(x,E).document)}h.length!==0&&(_!==null&&f.includes(_)&&(_=null),pe(h,f.length===1?"Detach instance":`Detach ${f.length} instances`),he(f.filter(S=>z(n.root,S)!==void 0)))}function ug(u){return z(n.root,u)?.type==="instance"&&!Je(n,u)?u:Lt(n.root,u)?.instance.id}function cg(u,f){let h=ug(u);if(h===void 0)return;let x=f??(h===u?void 0:u);pe(_p(n,h,x),x===void 0?"Reset overrides":"Reset part")}function T1(u,f){pe(Ep(n,u,f),`Swap to ${f}`)}function lg(u){let f=z(n.root,u),h=f?.type==="instance"?f:Ba(n.root,u);if(h?.type!=="instance")return;let x=z(n.root,h.component);x&&(_=null,he([x.id]),At([x.id]))}function Fc(u,f){let h=z(n.root,u);if(h?.type!=="frame"||h.component!==!0)return null;let x=f??L1(),y=Xn(x)??n.root.id,S=Yt(y),E=wt(u),A=Cp(n,u,y,{x:Math.round(x.x-S.x-(E?.w??0)/2),y:Math.round(x.y-S.y-(E?.h??0)/2)});return A?(pe(A.ops,`Place ${u}`),he([A.id]),A.id):null}function L1(){let u=e.getBoundingClientRect();return C.screenToDocument({x:u.width/2,y:u.height/2})}function Vs(){ht=null;let u=D.undo();u&&ax(u.ops,`Undo ${u.entry.label}`),fg()}function Hs(){ht=null;let u=D.redo();u&&ax(u.ops,`Redo ${u.entry.label}`),fg()}function fg(){if(!ae)return;let{anchor:u,head:f}=ae.getSelection();ae.setSelection(u,f)}function P1(u){if(!D.isTail(u))return!1;for(let f=u.length;f>0;f-=1)Vs();return!0}function pg(u,f,h,x){let y=z(n.root,u);if(!y)return;let S=y[f];if(sA(S,h))return;let E={op:"set",id:u,prop:f,value:h},A=st(y)&&Z2.has(f);pe(A?Sa([E]):[E],x??`Set ${f}`)}function D1(u,f){let h=n.brand?.theme==="dark"?n.themes?.dark:void 0;if(h!==void 0&&u in h){if(h[u]===f)return;pe([{op:"setTheme",value:{...n.themes,dark:{...h,[u]:f}}}],`Set $${u} in dark`);return}n.tokens[u]!==f&&pe([{op:"setToken",name:u,value:f}],`Set $${u}`)}function N1(u){u in n.tokens&&pe([{op:"setToken",name:u,value:void 0}],`Remove $${u}`)}function hg(u,f){let h=wt(u)?.values[f];h!==void 0&&pe([{op:"set",id:u,prop:f,value:Z(h)}],`Detach ${f}`)}function R1(u){let f=z(n.root,_??n.root.id)??n.root,h=[],x=Ye(n.root).shapes;for(let y of te(f)){if(!It(y.id)||x.has(y.id))continue;let S=qe(y.id);S&&xp(S,u)&&h.push(y.id)}return h}function St(u){typeof e.setPointerCapture=="function"&&e.setPointerCapture(u)}function Bc(u){e.hasPointerCapture?.(u)&&e.releasePointerCapture(u)}let mg=u=>{ae&&(px(),ae.handleKey(u)&&(u.preventDefault(),u.stopPropagation()))},xg=u=>{ae&&(u.preventDefault(),px(),ae.handleInput(u))},gg=()=>ae?.handleCompositionStart(),yg=u=>ae?.handleCompositionUpdate(u.data??""),bg=u=>ae?.handleCompositionEnd(u.data??""),vg=u=>{if(!e.ownerDocument.hasFocus())return;let f=u.relatedTarget;f instanceof Element&&f.closest("[data-vd-keeps-text]")||_r("blur")};return se.addEventListener("keydown",mg),se.addEventListener("beforeinput",xg),se.addEventListener("compositionstart",gg),se.addEventListener("compositionupdate",yg),se.addEventListener("compositionend",bg),se.addEventListener("blur",vg),e.addEventListener("pointerdown",Mx),e.addEventListener("pointermove",Cx),e.addEventListener("pointerup",va),e.addEventListener("pointercancel",va),e.addEventListener("pointerup",da),e.addEventListener("pointercancel",da),e.addEventListener("pointerleave",qx),e.addEventListener("dblclick",Vx),e.addEventListener("contextmenu",Bx),e.addEventListener("keydown",Px),e.addEventListener("keyup",Fx),e.addEventListener("copy",Nx),e.addEventListener("cut",Rx),e.addEventListener("paste",Ix),e.addEventListener("dragover",jx),e.addEventListener("dragleave",Kx),e.addEventListener("drop",Gx),k=!0,ee?.setTool(o),ee?.setHistory(!1,!1),ee?.setZoom(C.getCamera().zoom),xt(at(cc())),t.autoFit&&!t.camera&&Ge(()=>C.fitToContent()),t.history&&(D.restore(t.history),ee?.setHistory(D.canUndo,D.canRedo)),t.selection&&t.selection.length>0&&he(t.selection),ce(),{element:e,viewer:C,getDocument:()=>n,update(u){n=u,C.update(n),he(r),ce(),ke("problems",dc())},applyOps:(u,f)=>pe(u,f??"Apply changes"),setDocument:(u,f)=>pe(Cl(n,fp(u,n.root.id)),f??"Replace document"),getSelection:()=>r,setSelection:he,selectAll:Dc,deleteSelection:Mo,detachEnd:$1,lock:u=>_o(u??r,"locked",!0),unlock:u=>_o(u??r,"locked",!1),toggleLock:u=>Eo(u??r,"locked"),unlockAll:()=>Ma("locked"),hide:u=>_o(u??r,"hidden",!0),show:u=>_o(u??r,"hidden",!1),toggleHidden:u=>Eo(u??r,"hidden"),showAll:()=>Ma("hidden"),isLocked:u=>$t().locked.has(u),isHidden:u=>$t().hidden.has(u),setFeatures:A1,getFeatures:()=>R,moveLayers:_1,addFrame:E1,copy:So,cut:tg,paste:Ec,duplicate:Cc,group:$c,ungroup:Oc,reorder:Tc,scaleSelection:_k,getSpacing:Ak,setSpacing:Ck,align:Yx,distribute:Zx,canDistribute:u=>Jx(u)!==null,editText:Ps,endTextEditing:()=>_r("done"),getEditingText:()=>ae?.id??null,formatText:u=>ae?.format(u),getTextFormat:()=>ae?.activeMark()??{},getTextSelectionRects:lx,getTextRange:()=>{if(!ae)return null;let{anchor:u,head:f}=ae.getSelection();return{from:Math.min(u,f),to:Math.max(u,f)}},createComponent:Rc,detachInstance:Ic,resetOverrides:cg,swapComponent:T1,goToComponent:lg,placeInstance:Fc,getEnteredGroup:()=>_,enterGroup:Lc,exitGroup:Pc,getTool:()=>o,editPoints:Mr,stopEditingPoints:Rs,getPointEditing:()=>H?.id??null,convertToVector:u=>xc(u),merge:(u,f)=>bc(u,f),canMerge:u=>Sx(u),offersMerge:()=>t.merge!==void 0,mergeRefusal:()=>yc(),formatKeys:u=>(t.formatKeys??so)(u),mask:u=>vc(u),maskRefusal:u=>{let f=Is(u);return f.ok?void 0:f.why},maskedIn:u=>ya(u),releaseMask:u=>wc(u),crop:u=>ba(u),stopCropping:()=>{kc()},getCropping:()=>M,setTool:Mn,beginEdit:rk,endEdit:ix,undo:Vs,redo:Hs,canUndo:()=>D.canUndo,canRedo:()=>D.canRedo,getHistory:()=>D.snapshot(),setProperty:pg,fontFamilies:()=>{let u=new Map;for(let f of t.fonts?.faces()??[]){let h=u.get(f.family)??{weights:new Set,italic:!1};h.weights.add(f.weight),f.style==="italic"?h.italic=!0:(h.css===void 0||f.weight===400)&&(h.css=f.id),u.set(f.family,h)}return[...u.entries()].sort(([f],[h])=>f.localeCompare(h)).map(([f,h])=>({family:f,weights:[...h.weights].sort((x,y)=>x-y),italic:h.italic,...h.css===void 0?{}:{css:h.css}}))},assetUrl:u=>{let f=n.assets[u];return f?t.resolveAsset?.(f,u):void 0},addMusic:rg,canAddMusic:()=>t.importAudio!==void 0,setToken:D1,removeToken:N1,bindingsOf:nk,unbind:hg,getResolution:()=>C.getResolution(),getCamera:()=>C.getCamera(),getProblems:dc,on:ye,reveal:At,panBy:Qw,setPresence(u,f){c={ids:[...u],label:f??null},ce()},setHighlight(u){u.length===0&&p.length===0||(p=[...u],ce())},isHistoryTail:u=>D.isTail(u),undoTail:P1,historyTop:()=>D.top,destroy(){Ue(),e.removeEventListener("pointerup",da),e.removeEventListener("pointercancel",da),e.removeEventListener("pointerdown",Mx),e.removeEventListener("pointermove",Cx),e.removeEventListener("pointerup",va),e.removeEventListener("pointercancel",va),e.removeEventListener("pointerleave",qx),se.removeEventListener("keydown",mg),se.removeEventListener("beforeinput",xg),se.removeEventListener("compositionstart",gg),se.removeEventListener("compositionupdate",yg),se.removeEventListener("compositionend",bg),se.removeEventListener("blur",vg),se.remove(),vo&&clearTimeout(vo),e.removeEventListener("dblclick",Vx),e.removeEventListener("contextmenu",Bx),e.removeEventListener("copy",Nx),e.removeEventListener("cut",Rx),e.removeEventListener("paste",Ix),e.removeEventListener("dragover",jx),e.removeEventListener("dragleave",Kx),e.removeEventListener("drop",Gx),e.removeEventListener("keydown",Px),e.removeEventListener("keyup",Fx),fe?.destroy(),ee?.destroy(),G.destroy(),C.destroy(),P.remove(),$.clear(),e.style.cursor="",e.classList.remove("vd-editor")}}}function sA(e,t){return e===t?!0:ve(e)&&ve(t)?e.expr===t.expr:!1}function Ss(e){return e.metaKey||e.ctrlKey||e.altKey}function Lu(e){if(!(e instanceof HTMLElement)||e.classList.contains("vd-editor__input"))return!1;let t=e.tagName;return t==="INPUT"||t==="TEXTAREA"||e.isContentEditable}var m4=new Set(wr);function Ji(e){return e.map(t=>({value:t,label:`${t.charAt(0).toUpperCase()}${t.slice(1)}`}))}var uA=[{value:"nonzero",label:"Non-zero"},{value:"evenodd",label:"Even-odd"}].filter(e=>Ar.includes(e.value)),cA=Ji(tr),Yv=Ji(Zt),lA=Ji($r),fA=[{value:"left",label:"Left",icon:bt("text-left")},{value:"center",label:"Centre",icon:bt("text-center")},{value:"right",label:"Right",icon:bt("text-right")},{value:"justify",label:"Justify",icon:bt("text-justify")}].filter(e=>Qn.includes(e.value)),pA=[{value:"top",label:"Top",icon:bt("text-top")},{value:"middle",label:"Middle",icon:bt("text-middle")},{value:"bottom",label:"Bottom",icon:bt("text-bottom")}].filter(e=>er.includes(e.value)),Im={prop:"x",label:"X",kind:"number",prefix:"X"},Fm={prop:"y",label:"Y",kind:"number",prefix:"Y"},Ru={prop:"w",label:"W",kind:"number",prefix:"W"},Iu={prop:"h",label:"H",kind:"number",prefix:"H"},hA={prop:"rotation",label:"Rotation",kind:"number",icon:"rotate",fallback:"0"},Zv={prop:"opacity",label:"Opacity",kind:"number",icon:"opacity",percent:!0,fallback:"100%"},Du={prop:"radius",label:"Radius",kind:"radius",icon:"radius",span:"wide",fallback:"0"};var _s={heading:"Position",props:[Im,Fm,Ru,Iu,hA,Zv]},Nu={prop:"fill",label:"Fill",kind:"colour"},Fu={prop:"stroke",label:"Stroke",kind:"colour",span:"half"},Bu={prop:"strokeWidth",label:"Stroke width",kind:"number",prefix:"Width",fallback:"0"},Bm={present:"stroke",empty:"No stroke",add:{stroke:"#000000",strokeWidth:1},clear:["stroke","strokeWidth","dash","strokeAlign","cap","join"]},mA=[{value:"center",label:"Centre"},{value:"inside",label:"Inside"},{value:"outside",label:"Outside"}].filter(e=>Ur.includes(e.value)),Qv={prop:"strokeAlign",label:"Stroke position",kind:"select",options:mA,prefix:"Align",span:"half"},Vu={prop:"dash",label:"Dash",kind:"dash",prefix:"Dash",fallback:"Solid",span:"half"},Vm={prop:"cap",label:"Cap",kind:"select",options:cA,prefix:"Cap",span:"half"},xA={prop:"join",label:"Join",kind:"select",options:lA,prefix:"Join",span:"half"},Yi={heading:"Stroke",props:[Fu,Bu,Qv,Vu,Vm],optional:Bm},Jv=Ji(ur),gA=[{heading:"Line",props:[{prop:"start",label:"From",kind:"attachment",prefix:"From"},{prop:"x1",label:"From X",kind:"number",prefix:"X1"},{prop:"y1",label:"From Y",kind:"number",prefix:"Y1"},{prop:"end",label:"To",kind:"attachment",prefix:"To"},{prop:"x2",label:"To X",kind:"number",prefix:"X2"},{prop:"y2",label:"To Y",kind:"number",prefix:"Y2"},{prop:"route",label:"Route",kind:"select",options:Ji(Hr),prefix:"Route",span:"half"},{...Zv,span:"half"},{prop:"start",label:"Start head",kind:"select",options:Jv,prefix:"Start",span:"half"},{prop:"end",label:"End head",kind:"select",options:Jv,prefix:"End",span:"half"}]},{heading:"Stroke",props:[{...Fu,fallback:ci},{...Bu,fallback:String(li)},Vu,Vm]}],x4={instance:[{heading:"Instance",props:[Im,Fm,Ru,Iu]}],connector:gA,frame:[{heading:"Frame",props:[Im,Fm,Ru,Iu,Du,{prop:"clip",label:"Clip content",kind:"toggle"}]},{heading:"Fill",props:[{prop:"background",label:"Fill",kind:"colour"}]},Yi],canvas:[{heading:"Canvas",props:[Ru,Iu,{prop:"background",label:"Fill",kind:"colour"}]}],text:[_s,{heading:"Text",props:[{prop:"font",label:"Font",kind:"font",fallback:"Default"},{prop:"weight",label:"Style",kind:"style",span:"half"},{prop:"size",label:"Size",kind:"number",icon:"font-size",fallback:"16"},{prop:"lineHeight",label:"Line height",kind:"number",icon:"line-height",fallback:"Auto"},{prop:"letterSpacing",label:"Letter spacing",kind:"number",icon:"letter-spacing",fallback:"0"},{prop:"align",label:"Align",kind:"segmented",options:fA,span:"half"},{prop:"valign",label:"Vertical",kind:"segmented",options:pA,span:"half"}]},{heading:"Fill",props:[Nu]},{heading:"Stroke",props:[Fu,Bu,Vu],optional:Bm},{heading:"Link",props:[{prop:"content",label:"Link",kind:"link",icon:"link"}]}],rect:[{heading:"Position",props:[..._s.props,Du]},{heading:"Fill",props:[Nu]},Yi],ellipse:[_s,{heading:"Fill",props:[Nu]},Yi],image:[{heading:"Position",props:[..._s.props,Du]},{heading:"Image",props:[{prop:"fit",label:"Fit",kind:"select",options:Yv,prefix:"Fit"}]},Yi],video:[{heading:"Position",props:[..._s.props,Du]},{heading:"Video",props:[{prop:"fit",label:"Fit",kind:"select",options:Yv,prefix:"Fit"},{prop:"poster",label:"Poster frame (ms)",kind:"number",prefix:"Poster",fallback:"Start"},{prop:"start",label:"Trim start (ms)",kind:"number",prefix:"In",fallback:"0"},{prop:"end",label:"Trim end (ms)",kind:"number",prefix:"Out",fallback:"End"},{prop:"muted",label:"Muted",kind:"toggle",span:"half"},{prop:"loop",label:"Loop",kind:"toggle",span:"half"}]},Yi],vector:[_s,{heading:"Fill",props:[{...Nu,span:"half"},{prop:"rule",label:"Fill rule",kind:"select",options:uA,prefix:"Rule",span:"half"}]},{heading:"Stroke",props:[Fu,Bu,Qv,Vu,Vm,xA],optional:Bm}]};var g4=Cr.map(e=>({value:e,label:e.split("-").map((t,n)=>n===0?t.charAt(0).toUpperCase()+t.slice(1):t).join(" ")}));function Hu(e,t,n){let r=0;return e<n.left?r|=1:e>n.right&&(r|=2),t<n.top?r|=4:t>n.bottom&&(r|=8),r}function Yu(e,t){let[[n,r],[o,s]]=e,i=Hu(n,r,t),a=Hu(o,s,t);for(;;)if(i|a){if(i&a)return!1;{let{top:d,right:c,bottom:l,left:p}=t,m,g,b=a>i?a:i;b&8?(m=n+(o-n)*(l-r)/(s-r),g=l):b&4?(m=n+(o-n)*(d-r)/(s-r),g=d):b&2?(g=r+(s-r)*(c-n)/(o-n),m=c):b&1&&(g=r+(s-r)*(p-n)/(o-n),m=p),b==i?(n=m,r=g,i=Hu(n,r,t)):(o=m,s=g,a=Hu(o,s,t))}}else return!0}function Gu(e,t){return e.left<=t.right&&t.left<=e.right&&e.top<=t.bottom&&t.top<=e.bottom}function Cs(e,t){return e?{top:Math.min(e.top,t.top),right:Math.max(e.right,t.right),bottom:Math.max(e.bottom,t.bottom),left:Math.min(e.left,t.left)}:t}function Hm(e,t){return e?{top:Math.min(e.top,t[1]),right:Math.max(e.right,t[0]),bottom:Math.max(e.bottom,t[1]),left:Math.min(e.left,t[0])}:{top:t[1],right:t[0],bottom:t[1],left:t[0]}}function Zi(e){return Math.max(e.right-e.left,e.bottom-e.top)}function Qi(e,t){return{top:e[1]-t,right:e[0]+t,bottom:e[1]+t,left:e[0]-t}}function CA(e,t){return{top:e.top-t,right:e.right+t,bottom:e.bottom+t,left:e.left-t}}var ta=class e{constructor(t,n,r=16){this.boundingBox=t,this.depth=n,this.innerNodeCapacity=r,this.subtrees=null,this.pairs=[]}insert(t,n){if(!Gu(t,this.boundingBox))return!1;if(this.subtrees){for(let r=0;r<this.subtrees.length;r++)this.subtrees[r].insert(t,n);return!0}if(this.depth>0&&this.pairs.length>=this.innerNodeCapacity){this.ensureSubtrees();for(let r=0;r<this.pairs.length;r++){let[o,s]=this.pairs[r];for(let i=0;i<this.subtrees.length;i++)this.subtrees[i].insert(o,s)}this.pairs.length=0;for(let r=0;r<this.subtrees.length;r++)this.subtrees[r].insert(t,n);return!0}return this.pairs.push([t,n]),!0}find(t,n=new Set){if(!Gu(t,this.boundingBox))return n;for(let r=0;r<this.pairs.length;r++){let[o,s]=this.pairs[r];Gu(t,o)&&n.add(s)}if(this.subtrees)for(let r=0;r<this.subtrees.length;r++)this.subtrees[r].find(t,n);return n}findOnLineSegment(t,n=new Set){if(!Yu(t,this.boundingBox))return n;for(let[r,o]of this.pairs)Yu(t,r)&&n.add(o);if(this.subtrees)for(let r of this.subtrees)r.findOnLineSegment(t,n);return n}ensureSubtrees(){if(this.subtrees)return;let{top:t,right:n,bottom:r,left:o}=this.boundingBox,s=(this.boundingBox.left+this.boundingBox.right)/2,i=(this.boundingBox.top+this.boundingBox.bottom)/2;this.subtrees=[new e({top:t,right:s,bottom:i,left:o},this.depth-1,this.innerNodeCapacity),new e({top:t,right:n,bottom:i,left:s},this.depth-1,this.innerNodeCapacity),new e({top:i,right:s,bottom:r,left:o},this.depth-1,this.innerNodeCapacity),new e({top:i,right:n,bottom:r,left:s},this.depth-1,this.innerNodeCapacity)]}},ew=typeof process<"u"&&process.env.PATH_BOOL_DEV_ASSERTS;ew==="1"||ew==="0"||typeof process<"u"&&process.env.NODE_ENV;var bw=128,jm=1024,ea=2e4,AA=6,kr=1e-10,tw=1e-16,$A=1e-12,OA=.001,Xt={point:1e-6,linear:1e-4,param:1e-8,collinear:Number.MIN_VALUE*64},TA=50;function LA(e){let t=Number.isFinite(e)&&e>0?Math.min(1,e/TA):1;return{point:Xt.point*t,linear:Xt.linear*t,param:Xt.param,collinear:Xt.collinear}}var Uu=1e-12;function PA(e){let t=e[1],n=e[2],r=e[3],o=e[4],s=-t[0]+3*n[0]-3*r[0]+o[0],i=-t[1]+3*n[1]-3*r[1]+o[1],a=3*t[0]-6*n[0]+3*r[0],d=3*t[1]-6*n[1]+3*r[1],c=-3*t[0]+3*n[0],l=-3*t[1]+3*n[1],p=i*a-s*d,m=s*l-i*c,g=(-3*s*s*l*l+6*s*i*c*l+4*s*a*d*l-4*s*d*d*c-3*i*i*c*c-4*i*a*a*l+4*i*a*d*c)/(s*s*d*d-2*s*i*a*d+i*i*a*a);if(g<0)return null;let b=(m/p+Math.sqrt(g))/2,w=(m/p-Math.sqrt(g))/2;return Uu<=b&&b<=1-Uu&&Uu<=w&&w<=1-Uu?[b,w]:null}var nw=typeof Float32Array<"u"?Float32Array:Array;function DA(e,t){if(e===t){var n=t[1];e[1]=t[2],e[2]=n}else e[0]=t[0],e[1]=t[2],e[2]=t[1],e[3]=t[3];return e}function vw(e,t){var n=Math.sin(t),r=Math.cos(t);return e[0]=r,e[1]=n,e[2]=-n,e[3]=r,e}function NA(e,t,n){var r=t[0],o=t[1],s=t[2],i=t[3],a=t[4],d=t[5],c=n[0],l=n[1],p=n[2],m=n[3],g=n[4],b=n[5];return e[0]=r*c+s*l,e[1]=o*c+i*l,e[2]=r*p+s*m,e[3]=o*p+i*m,e[4]=r*g+s*b+a,e[5]=o*g+i*b+d,e}function RA(e,t,n){var r=t[0],o=t[1],s=t[2],i=t[3],a=t[4],d=t[5],c=Math.sin(n),l=Math.cos(n);return e[0]=r*l+s*c,e[1]=o*l+i*c,e[2]=r*-c+s*l,e[3]=o*-c+i*l,e[4]=a,e[5]=d,e}function IA(e,t,n){var r=t[0],o=t[1],s=t[2],i=t[3],a=t[4],d=t[5],c=n[0],l=n[1];return e[0]=r*c,e[1]=o*c,e[2]=s*l,e[3]=i*l,e[4]=a,e[5]=d,e}function FA(e,t){var n=Math.sin(t),r=Math.cos(t);return e[0]=r,e[1]=n,e[2]=-n,e[3]=r,e[4]=0,e[5]=0,e}function BA(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=t[0],e[5]=t[1],e}var VA=NA;function HA(){var e=new nw(2);return nw!=Float32Array&&(e[0]=0,e[1]=0),e}function Km(e,t,n){return e[0]=t,e[1]=n,e}function na(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e}function UA(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e}function Ju(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e}function zA(e){var t=e[0],n=e[1];return t*t+n*n}function rw(e,t){var n=t[0],r=t[1],o=n*n+r*r;return o>0&&(o=1/Math.sqrt(o)),e[0]=t[0]*o,e[1]=t[1]*o,e}function Ms(e,t){return e[0]*t[0]+e[1]*t[1]}function He(e,t,n,r){var o=t[0],s=t[1];return e[0]=o+r*(n[0]-o),e[1]=s+r*(n[1]-s),e}function Zu(e,t,n){var r=t[0],o=t[1];return e[0]=n[0]*r+n[2]*o,e[1]=n[1]*r+n[3]*o,e}function zu(e,t,n){var r=t[0],o=t[1];return e[0]=n[0]*r+n[2]*o+n[4],e[1]=n[1]*r+n[3]*o+n[5],e}function jA(e,t,n,r){var o=t[0]-n[0],s=t[1]-n[1],i=Math.sin(r),a=Math.cos(r);return e[0]=o*a-s*i+n[0],e[1]=o*i+s*a+n[1],e}var Kn=UA,ow=zA;(function(){var e=HA();return function(t,n,r,o,s,i){var a,d;for(n||(n=2),r||(r=0),o?d=Math.min(o*n+r,t.length):d=t.length,a=r;a<d;a+=n)e[0]=t[a],e[1]=t[a+1],s(e,e,i),t[a]=e[0],t[a+1]=e[1];return t}})();var Qu=2*Math.PI;function KA(e,t,n,r,o){return(e-t)/(n-t)*(o-r)+r}function ct(e,t,n){return e+(t-e)*n}function Gn(e){return e/180*Math.PI}function sw(e,t){return Math.atan2(e[0]*t[1]-e[1]*t[0],Ms(e,t))}function Ce(){return[0,0]}function ut(e,t,n=0){return Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n}function ww(){return new Float64Array([1,0,0,1])}function iw(){return new Float64Array([1,0,0,1,0,0])}function ec(e){return Number.isFinite(e)}function aw([e,t]){return Number.isFinite(e)&&Number.isFinite(t)}function kw(e){if(!Number.isFinite(e))return 0;let t=(e%360+360)%360;return t>180&&(t-=360),t}function ho(e,t,n,r){let o=n[0]-t[0],s=n[1]-t[1],i=o*o+s*s;if(i<=r*r){let d=e[0]-t[0],c=e[1]-t[1];return Math.hypot(d,c)}return Math.abs((e[0]-t[0])*s-(e[1]-t[1])*o)/Math.sqrt(i)}function As(e,t=kr){let n=e[1],r=_n(e),o=r[0]-n[0],s=r[1]-n[1],i=o*o+s*s<=t*t;switch(e[0]){case"L":return!0;case"Q":return ho(e[2],n,r,t)<=t;case"C":return ho(e[2],n,r,t)<=t&&ho(e[3],n,r,t)<=t;case"A":return i||!Number.isFinite(e[2])||!Number.isFinite(e[3])||Math.abs(e[2])<=t||Math.abs(e[3])<=t}}function GA(e,t){let n=e[1],r=_n(e);if(e[0]==="A")return!ec(e[2])||!ec(e[3])||Math.abs(e[2])<=kr||Math.abs(e[3])<=kr?["L",n,r]:mo(e);if(e[0]!=="C"&&e[0]!=="Q")return e;let o=r[0]-n[0],s=r[1]-n[1],i=o*o+s*s;if(o===0&&s===0){if(e[0]==="Q")return["L",n,r];let p=b=>(b[0]-n[0])**2+(b[1]-n[1])**2,[m,g]=p(e[2])>=p(e[3])?[e[2],e[3]]:[e[3],e[2]];return ho(g,n,m,kr)<=kr?["L",n,r]:e}if(i<=t*t)return e;let a=p=>((p[0]-n[0])*o+(p[1]-n[1])*s)/i,d=t/Math.sqrt(i);if(e[0]==="Q"){if(ho(e[2],n,r,t)>t)return e;let p=a(e[2]);return p<-d||p>1+d?e:["L",n,r]}if(ho(e[2],n,r,t)>t||ho(e[3],n,r,t)>t)return e;let c=a(e[2]),l=a(e[3]);return c<-d||l-c<-d||l>1+d?e:["L",n,r]}function mo(e){let t=Math.abs(e[2]),n=Math.abs(e[3]),r=e[4];return t<n&&([t,n]=[n,t],r+=90),t===n?r=0:r=(kw(r)%180+180)%180,["A",e[1],t,n,r,e[5],e[6],e[7]]}function tc(e){return e[1]}function _n(e){switch(e[0]){case"L":return e[2];case"C":return e[4];case"Q":return e[3];case"A":return e[7]}}function ra(e){switch(e[0]){case"L":return["L",e[2],e[1]];case"C":return["C",e[4],e[3],e[2],e[1]];case"Q":return["Q",e[3],e[2],e[1]];case"A":return["A",e[7],e[2],e[3],e[4],e[5],!e[6],e[1]]}}var xo=(()=>{let e=Ce(),t=ww(),n=Ce(),r=Ce();return function([s,i,a,d,c,l,p,m]){if(!aw(i)||!aw(m)||(c=kw(c),!ec(a)||!ec(d)||Math.abs(a)<=kr||Math.abs(d)<=kr))return null;vw(t,-Gn(c)),Kn(e,i,m),Ju(e,e,.5),Zu(e,e,t);let g=a*a,b=d*d,w=e[0]*e[0],k=e[1]*e[1];a=Math.abs(a),d=Math.abs(d);let _=w/g+k/b;if(_>1){let C=Math.sqrt(_);a*=C,d*=C;let G=Math.abs(_);g*=G,b*=G}let M=l===p?-1:1,R=g*k+b*w;if(R===0)return null;let B=g*b-g*k-b*w,D=Math.max(0,B/R),V=Math.sqrt(D),T=M*V*(a*e[1]/d),O=M*V*(-d*e[0]/a);DA(t,t),na(n,i,m),Ju(n,n,.5),Zu(r,[T,O],t),na(r,r,n);let j=[(e[0]-T)/a,(e[1]-O)/d],$=sw([1,0],j),P=sw(j,[(-e[0]-T)/a,(-e[1]-O)/d]);return!p&&P>0?P-=Qu:p&&P<0&&(P+=Qu),{center:[r[0],r[1]],theta1:$,deltaTheta:P,rx:a,ry:d,phi:c}}})(),dw=(()=>{let e=Ce(),t=Ce(),n=ww();return function({center:o,theta1:s,deltaTheta:i,rx:a,ry:d,phi:c}){vw(n,Gn(c)),Km(e,a*Math.cos(s),d*Math.sin(s)),Zu(e,e,n),na(e,e,o),Km(t,a*Math.cos(s+i),d*Math.sin(s+i)),Zu(t,t,n),na(t,t,o);let l=Math.abs(i)>Math.PI,p=i>0;return["A",[e[0],e[1]],a,d,c,l,p,[t[0],t[1]]]}})(),nc=(()=>{let e=Ce(),t=Ce(),n=Ce(),r=Ce(),o=Ce(),s=Ce();return function(a,d,c){if(As(a))return He(s,a[1],_n(a),d),c[0]=s[0],c[1]=s[1],c;switch(a[0]){case"L":He(s,a[1],a[2],d);break;case"C":He(e,a[1],a[2],d),He(t,a[2],a[3],d),He(n,a[3],a[4],d),He(r,e,t,d),He(o,t,n,d),He(s,r,o,d);break;case"Q":He(e,a[1],a[2],d),He(t,a[2],a[3],d),He(s,e,t,d);break;case"A":{let l=xo(a);if(!l){He(s,a[1],a[7],d);break}let{deltaTheta:p,phi:m,theta1:g,rx:b,ry:w,center:k}=l,_=g+d*p;Km(s,b*Math.cos(_),w*Math.sin(_)),jA(s,s,[0,0],Gn(m)),na(s,s,k);break}}return c[0]=s[0],c[1]=s[1],c}})(),Sn=(()=>{let e=Ce();return function(n,r){return nc(n,r,e),[e[0],e[1]]}})(),Sw=(()=>{let e=Ce();return function(n,r,o){if(As(n)){let s=n[1],i=_n(n);return o[0]=i[0]-s[0],o[1]=i[1]-s[1],o}switch(n[0]){case"Q":{let s=n[1],i=n[2],a=n[3],d=i[0]-s[0],c=i[1]-s[1],l=a[0]-i[0],p=a[1]-i[1];return o[0]=2*((1-r)*d+r*l),o[1]=2*((1-r)*c+r*p),o}case"C":{let s=n[1],i=n[2],a=n[3],d=n[4],c=i[0]-s[0],l=i[1]-s[1],p=a[0]-i[0],m=a[1]-i[1],g=d[0]-a[0],b=d[1]-a[1],w=1-r;return o[0]=3*(w*w*c+2*w*r*p+r*r*g),o[1]=3*(w*w*l+2*w*r*m+r*r*b),o}case"A":{let s=xo(mo(n));if(!s)return o[0]=n[7][0]-n[1][0],o[1]=n[7][1]-n[1][1],o;let{deltaTheta:i,phi:a,theta1:d,rx:c,ry:l}=s,p=d+r*i,m=Math.cos(Gn(a)),g=Math.sin(Gn(a)),b=-c*Math.sin(p)*i,w=l*Math.cos(p)*i;return e[0]=m*b-g*w,e[1]=g*b+m*w,o[0]=e[0],o[1]=e[1],o}}}})(),Xm=(()=>{let e=iw(),t=iw();return function(r,o=Math.PI/2){let s=xo(mo(r));if(!s)return[["L",r[1],r[7]]];let{center:i,theta1:a,deltaTheta:d,rx:c,ry:l,phi:p}=s,m=Math.ceil(Math.abs(d)/o);BA(e,i),RA(e,e,Gn(p)),IA(e,e,[c,l]);let g=[],b=d/m,w=4/3*Math.tan(b/4),k=Math.sin(b),_=Math.cos(b);for(let M=0;M<m;M++){let R=[1,0],B=[1,w],D=[_+w*k,k-w*_],V=[_,k];FA(t,a+M*b),VA(t,e,t),zu(R,R,t),zu(B,B,t),zu(D,D,t),zu(V,V,t),g.push(["C",R,B,D,V])}return g}})();function qA(e,t,n,r,o){let s=ct(e,t,o),i=ct(t,n,o),a=ct(n,r,o),d=ct(s,i,o),c=ct(i,a,o);return ct(d,c,o)}function uw(e,t,n,r){let o=Math.min(e,r),s=Math.max(e,r);function i(m){if(!(0<m&&m<1))return;let g=qA(e,t,n,r,m);o=Math.min(o,g),s=Math.max(s,g)}let a=3*(-e+3*t-3*n+r),d=6*(e-2*t+n),c=3*(t-e);if(Math.abs(a)<=1e-12*Math.max(Math.abs(d),Math.abs(c)))return d!==0&&i(-c/d),[o,s];let l=d*d-4*a*c;if(l<0)return[o,s];let p=-.5*(d+(d<0?-1:1)*Math.sqrt(l));return i(p/a),p!==0&&i(c/p),[o,s]}function WA(e,t,n,r){let o=ct(e,t,r),s=ct(t,n,r);return ct(o,s,r)}function cw(e,t,n){let r=Math.min(e,n),o=Math.max(e,n),s=e-2*t+n;if(s===0)return[r,o];let i=(e-t)/s;if(0<=i&&i<=1){let a=WA(e,t,n,i);r=Math.min(r,a),o=Math.max(o,a)}return[r,o]}function XA(e,t,n){let r=Math.min(t,n),o=Math.max(t,n);return e+Qu*Math.ceil((r-e)/Qu)<=o}function Nt(e){if(As(e)){let t=e[1],n=_n(e);return{top:Math.min(t[1],n[1]),right:Math.max(t[0],n[0]),bottom:Math.max(t[1],n[1]),left:Math.min(t[0],n[0])}}switch(e[0]){case"L":return{top:Math.min(e[1][1],e[2][1]),right:Math.max(e[1][0],e[2][0]),bottom:Math.max(e[1][1],e[2][1]),left:Math.min(e[1][0],e[2][0])};case"C":{let[t,n]=uw(e[1][0],e[2][0],e[3][0],e[4][0]),[r,o]=uw(e[1][1],e[2][1],e[3][1],e[4][1]);return{top:r,right:n,bottom:o,left:t}}case"Q":{let[t,n]=cw(e[1][0],e[2][0],e[3][0]),[r,o]=cw(e[1][1],e[2][1],e[3][1]);return{top:r,right:n,bottom:o,left:t}}case"A":{let t=xo(mo(e));if(!t)return Hm(Qi(e[1],0),e[7]);let{theta1:n,deltaTheta:r,phi:o,center:s,rx:i,ry:a}=t;if(o===0||i===a){let l=n+r,p=Hm(Qi(e[1],0),e[7]),m=Gn(o),g=[[Math.PI-m,[s[0]-i,s[1]]],[-Math.PI/2-m,[s[0],s[1]-a]],[-m,[s[0]+i,s[1]]],[Math.PI/2-m,[s[0],s[1]+a]]];for(let[b,w]of g)XA(b,n,l)&&(p=Hm(p,w));return CA(p,1e-11)}let d=Xm(e,Math.PI/16),c=null;for(let l of d)c=Cs(c,Nt(l));return c||Qi(e[1],0)}}}function Gm(e,t){let n=e[1],r=e[2],o=He(Ce(),n,r,t);return[["L",n,o],["L",o,r]]}function qu(e,t){let n=e[1],r=e[2],o=e[3],s=e[4],i=He(Ce(),n,r,t),a=He(Ce(),r,o,t),d=He(Ce(),o,s,t),c=He(Ce(),i,a,t),l=He(Ce(),a,d,t),p=He(Ce(),c,l,t);return[["C",n,i,c,p],["C",p,l,d,s]]}function YA(e,t){let n=e[1],r=e[2],o=e[3],s=He(Ce(),n,r,t),i=He(Ce(),r,o,t),a=He(Ce(),s,i,t);return[["Q",n,s,a],["Q",a,i,o]]}function JA(e,t){let n=xo(mo(e));if(!n)return Gm(["L",e[1],e[7]],t);let r=n.deltaTheta*t;return[dw({...n,deltaTheta:r}),dw({...n,theta1:n.theta1+r,deltaTheta:n.deltaTheta-r})]}function Ym(e,t){if(As(e))return Gm(["L",e[1],_n(e)],t);switch(e[0]){case"L":return Gm(e,t);case"C":return qu(e,t);case"Q":return YA(e,t);case"A":return JA(e,t)}}function qm([[e,t],[n,r]],[[o,s],[i,a]],d){let c=n-e,l=o-i,p=o-e,m=r-t,g=s-a,b=s-t,w=c*g-m*l;if(Math.abs(w)<d.collinear)return null;let k=(p*g-b*l)/w,_=(c*b-m*p)/w;return-d.param<=k&&k<=1+d.param&&-d.param<=_&&_<=1+d.param?[k,_]:null}function ZA(e,t,n){return!!qm(e,t,n)}function Es(e){let[t,n]=Ym(e.seg,.5),r=(e.startParam+e.endParam)/2;return[{seg:t,startParam:e.startParam,endParam:r,boundingBox:Nt(t)},{seg:n,startParam:r,endParam:e.endParam,boundingBox:Nt(n)}]}function lw(e){switch(e[0]){case"L":return[e[1],e[2]];case"C":return[e[1],e[4]];case"Q":return[e[1],e[3]];case"A":return[e[1],e[7]]}}function QA({seg:e,boundingBox:t},{seg:n,boundingBox:r},o){return e[0]==="L"?n[0]==="L"?ZA([e[1],e[2]],[n[1],n[2]],o):Yu([e[1],e[2]],r):n[0]==="L"?Yu([n[1],n[2]],t):Gu(t,r)}function rc(e,t,n){let r=e[0];if(t[0]!==r)return!1;switch(r){case"L":return ut(e[1],t[1],n)&&ut(e[2],t[2],n);case"C":return ut(e[1],t[1],n)&&ut(e[2],t[2],n)&&ut(e[3],t[3],n)&&ut(e[4],t[4],n);case"Q":return ut(e[1],t[1],n)&&ut(e[2],t[2],n)&&ut(e[3],t[3],n);case"A":return ut(e[1],t[1],n)&&Math.abs(e[2]-t[2])<n&&Math.abs(e[3]-t[3])<n&&(Math.abs(e[2]-e[3])<n||Math.abs(e[4]-t[4])<n)&&e[5]===t[5]&&e[6]===t[6]&&ut(e[7],t[7],n)}}function e$(e,t,n){let r=Kn([0,0],e[1],e[0]),o=Kn([0,0],t[1],t[0]);rw(r,r),rw(o,o);let s=Math.abs(Ms(r,o));return Math.abs(s-1)<n}var t$=(()=>{let e=Ce(),t=Ce(),n=Ce(),r=Ce(),o=Ce(),s=Ce();return function(a,d){Kn(e,a[1],a[0]),Kn(t,d[1],d[0]),Ju(e,e,1/ow(e)),Ju(t,t,1/ow(t));let c=[];Kn(n,d[0],a[0]);let l=Ms(n,e);l>=0&&l<=1&&c.push([l,0]),Kn(r,d[1],a[0]);let p=Ms(r,e);p>=0&&p<=1&&c.push([p,1]),Kn(o,a[0],d[0]);let m=Ms(o,t);m>=0&&m<=1&&c.push([0,m]),Kn(s,a[1],d[0]);let g=Ms(s,t);return g>=0&&g<=1&&c.push([1,g]),c}})(),fw=8;function n$(e,t,n,r,o){for(let s=1;s<fw;s++){let i=s/fw,a=Sn(e,ct(n.t0,r.t0,i)),d=Sn(t,ct(n.t1,r.t1,i));if(Math.hypot(a[0]-d[0],a[1]-d[1])>o.point)return!1}return!0}var Um=2*Math.PI;function r$(e,t,n){if(e[0]!=="A"||t[0]!=="A")return null;let r=xo(mo(e)),o=xo(mo(t));if(!r||!o||Math.abs(r.center[0]-o.center[0])>n.point||Math.abs(r.center[1]-o.center[1])>n.point||Math.abs(r.rx-o.rx)>n.point||Math.abs(r.ry-o.ry)>n.point)return null;let s=Math.max(r.rx,r.ry);if(!(s>0))return null;let i=n.point/s;if(Math.abs(r.rx-r.ry)>n.point){let M=Math.abs(((r.phi-o.phi)%180+180)%180);if(Math.min(M,180-M)>i*180/Math.PI)return null}if(Math.abs(r.deltaTheta)<i||Math.abs(o.deltaTheta)<i)return null;let a=Gn(r.phi),d=Gn(o.phi),c=(M,R)=>{let B=M.theta1+R,D=M.theta1+M.deltaTheta+R;return B<=D?[B,D]:[D,B]},[l,p]=c(r,a),[m,g]=c(o,d),b=(M,R,B)=>{let D=(B-R-M.theta1)/M.deltaTheta;return D<0?0:D>1?1:D},w=[],k=Math.floor((l-g)/Um),_=Math.ceil((p-m)/Um);for(let M=k;M<=_;M++){let R=M*Um,B=Math.max(l,m+R),D=Math.min(p,g+R);if(!(D<B-i)){if(D-B<=i){let V=(B+D)/2;w.push([b(r,a,V),b(o,d,V-R)]);continue}w.push([b(r,a,B),b(o,d,B-R)]),w.push([b(r,a,D),b(o,d,D-R)])}}return w}function pw(e){switch(e[0]){case"L":return e[2];case"C":return e[4];case"Q":return e[3];case"A":return e[7]}}function o$(e,t,n){return e[0]!==t[0]||!ut(e[1],pw(t),n.point)||!ut(pw(e),t[1],n.point)?!1:rc(e,ra(t),n.point)}var hw=16;function s$(e,t,n,r){if(n.length<2)return null;let o=n[0],s=n[n.length-1],i=s.t0-o.t0,a=s.t1-o.t1;if(Math.abs(i)<r.param||Math.abs(a)<r.param)return null;let d=a/i;if(!Number.isFinite(d))return null;let c=B=>o.t1+(B-o.t0)*d,l=B=>o.t0+(B-o.t1)/d,p=l(0),m=l(1),g=Math.max(0,Math.min(p,m)),b=Math.min(1,Math.max(p,m));if(!(b>g))return null;let w=B=>B<0?0:B>1?1:B,k=B=>B<r.param?0:B>1-r.param?1:B;g=k(g),b=k(b);let _=[[g,k(w(c(g)))],[b,k(w(c(b)))]],M=Sn(e,_[0][0]),R=Sn(e,_[1][0]);if(Math.hypot(M[0]-R[0],M[1]-R[1])<=r.point)return null;for(let B=0;B<=hw;B++){let D=B/hw,V=Sn(e,ct(_[0][0],_[1][0],D)),T=Sn(t,ct(_[0][1],_[1][1],D));if(Math.hypot(V[0]-T[0],V[1]-T[1])>r.point)return null}return _}function i$(e,t,n,r){if(n.length<=1)return n.map(a=>[a.t0,a.t1]);let o=[...n].sort((a,d)=>a.t0-d.t0),s=[[o[0]]];for(let a=1;a<o.length;a++){let d=s[s.length-1],c=d[d.length-1];n$(e,t,c,o[a],r)?d.push(o[a]):s.push([o[a]])}let i=e[0]===t[0];return s.flatMap(a=>{let d=i?s$(e,t,a,r):null;return d||[d$(e,t,a)]})}var a$=40,ju=(Math.sqrt(5)-1)/2;function d$(e,t,n){let r=n[0];for(let b of n)b.gap<r.gap&&(r=b);if(n.length<2)return[r.t0,r.t1];let o=n[0],s=n[n.length-1],i=b=>{let w=ct(o.t0,s.t0,b),k=ct(o.t1,s.t1,b),_=Sn(e,w),M=Sn(t,k);return{t0:w,t1:k,gap:Math.hypot(_[0]-M[0],_[1]-M[1])}},a=0,d=1,c=d-ju*(d-a),l=a+ju*(d-a),p=i(c),m=i(l);for(let b=0;b<a$;b++)p.gap<m.gap?(d=l,l=c,m=p,c=d-ju*(d-a),p=i(c)):(a=c,c=l,p=m,l=a+ju*(d-a),m=i(l));let g=p.gap<m.gap?p:m;return g.gap<r.gap?[g.t0,g.t1]:[r.t0,r.t1]}function u$(e,t,n){let r=e,o=t;if(r[0]==="L"&&o[0]==="L"){let m=[r[1],r[2]],g=[o[1],o[2]];if(e$(m,g,n.collinear))return t$(m,g);let b=qm(m,g,n);return b?[b]:[]}let s=r$(r,o,n);if(s)return s;let i=[[{seg:r,startParam:0,endParam:1,boundingBox:Nt(r)},{seg:o,startParam:0,endParam:1,boundingBox:Nt(o)}]],a=[];function d(m,g){let b=Sn(e,m),w=Sn(t,g);a.push({t0:m,t1:g,gap:Math.hypot(b[0]-w[0],b[1]-w[1])})}function c(m,g){let b=lw(m.seg),w=lw(g.seg),k=qm(b,w,n);k&&d(ct(m.startParam,m.endParam,k[0]),ct(g.startParam,g.endParam,k[1]))}function l(m){return As(m.seg,kr)||Zi(m.boundingBox)<=n.linear||m.endParam-m.startParam<n.param}let p=0;for(;i.length;){if(p++>bw){for(let[b,w]of i)c(b,w);break}let m=[],g=!1;for(let[b,w]of i){if(rc(b.seg,w.seg,n.point)){d(b.startParam,w.startParam),d(b.endParam,w.endParam);continue}if(o$(b.seg,w.seg,n)){d(b.startParam,w.endParam),d(b.endParam,w.startParam);continue}let k=l(b),_=l(w);if(k&&_)c(b,w);else{let M,R;if(!k&&!_){let B=Zi(b.boundingBox),D=Zi(w.boundingBox);B>D?(M=Es(b),R=[w]):D>B?(M=[b],R=Es(w)):(M=Es(b),R=Es(w))}else M=k?[b]:Es(b),R=_?[w]:Es(w);for(let B of M){for(let D of R)if(QA(B,D,n)&&(m.push([B,D]),m.length>=ea)){g=!0;break}if(m.length>=ea)break}}if(m.length>=ea)break}if(g){for(let[b,w]of i)c(b,w);break}i=m}return i$(e,t,a,n)}var mw=Object.hasOwn;function qn(e){let t=new WeakMap;return(n,...r)=>{if(t.has(n))return t.get(n);{let o=e(n,...r);return t.set(n,o),o}}}function*c$(e,t){let n=0;for(let r of e)yield t(r,n++)}var zm=2*Math.PI,l$=8,_w=8,vt;(function(e){e[e.Union=0]="Union",e[e.Difference=1]="Difference",e[e.Intersection=2]="Intersection",e[e.Exclusion=3]="Exclusion",e[e.Division=4]="Division",e[e.Fracture=5]="Fracture"})(vt||(vt={}));var go;(function(e){e[e.NonZero=0]="NonZero",e[e.EvenOdd=1]="EvenOdd"})(go||(go={}));function f$(e){return e.values().next().value}function p$(e,t){let n=new Array(e).fill(!1);return n[t]=!0,n}function h$(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function m$(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Ku(e,t){for(let n=0;n<t.length;n++)t[n]&&(e[n]=!0)}function xw(e,t,n){let[,r,o]=e,s=n?-1:1;for(let i=0;i<t.length;i++)t[i]&&(r.windings[i]+=s,o.windings[i]-=s)}function Ew(){let e=0;return qn(()=>e++)}function x$(e,t){return n=>({seg:n,parents:p$(e,t)})}function g$(e,t){for(let n=0;n<e.length;n++){let r=e[n];if(r.seg[0]!=="C")continue;let o=PA(r.seg);if(!o)continue;o[0]>o[1]&&o.reverse();let[s,i]=o;if(Math.abs(s-i)<Xt.param){let[a,d]=qu(r.seg,s);e[n]={seg:a,parents:r.parents},e.push({seg:d,parents:r.parents})}else{let[a,d]=qu(r.seg,s),[c,l]=qu(d,(i-s)/(1-s));e[n]={seg:a,parents:r.parents},e.push({seg:c,parents:r.parents},{seg:l,parents:r.parents})}}}function y$(e,t){let n=e.map(c=>({...c,boundingBox:Nt(c.seg)})),r=n.reduce((c,{boundingBox:l})=>Cs(c,l),null);if(!r)return{edges:[],totalBoundingBox:null};let o=new ta(r,l$),s={};function i(c,l){mw(s,c)||(s[c]=[]),s[c].push(l)}let a=0;for(let c=0;c<n.length;c++){let l=n[c],p=o.find(l.boundingBox);for(let m of p){if(a>=ea)break;let g=e[m],b=u$(l.seg,g.seg,t);for(let[w,k]of b)i(c,w),i(m,k);a++}if(o.insert(l.boundingBox,c),a>=ea)break}let d=[];for(let c=0;c<n.length;c++){let l=n[c];if(!mw(s,c)){d.push(l);continue}let p=s[c];p.sort((b,w)=>b-w),p.length+1>jm&&(p.length=Math.max(0,jm-1));let m=l.seg,g=0;for(let b=0;b<p.length;b++){let w=p[b];if(w>1-Xt.param)break;let k=(w-g)/(1-g);if(g=w,k<Xt.param||k>1-Xt.param)continue;let[_,M]=Ym(m,k);d.push({seg:_,boundingBox:Nt(_),parents:l.parents}),m=M}d.push({seg:m,boundingBox:Nt(m),parents:l.parents})}return{edges:d,totalBoundingBox:r}}function b$(e,t,n){let r=new ta(t,_w),o=[];function s(g){let b=Qi(g,n.point),w=r.find(b);if(w.size)return f$(w);{let k={point:g,outgoingEdges:[]};return r.insert(b,k),o.push(k),k}}let i=Ew(),a=new Map;function d(g,b){return a.get(g)?.get(b)}function c(g,b){let w=a.get(g);w||(w=new Map,a.set(g,w));let k=w.get(b);return k||(k=[],w.set(b,k)),k}let l=e.flatMap(g=>{let b=tc(g.seg),w=_n(g.seg);if(ut(b,w,n.point))switch(g.seg[0]){case"L":return[];case"C":if(ut(g.seg[1],g.seg[2],n.point)&&ut(g.seg[3],g.seg[4],n.point))return[];break;case"Q":if(ut(g.seg[1],g.seg[2],n.point))return[];break;case"A":return[]}let k=s(b),_=s(w),M=i(k),R=i(_),B=d(M,R);if(B){let O=B.find(j=>rc(j[0].seg,g.seg,n.point));if(O)return xw(O,g.parents,!1),Ku(O[1].parents,g.parents),Ku(O[2].parents,g.parents),[]}let D=d(R,M);if(D){let O=ra(g.seg),j=D.find($=>rc($[0].seg,O,n.point));if(j)return xw(j,g.parents,!0),Ku(j[1].parents,g.parents),Ku(j[2].parents,g.parents),[]}let V={...g,parents:g.parents.slice(),incidentVertices:[k,_],directionFlag:!1,windings:g.parents.map(O=>O?1:0),twin:null},T={...g,parents:g.parents.slice(),incidentVertices:[_,k],directionFlag:!0,windings:g.parents.map(O=>O?-1:0),twin:V};return V.twin=T,k.outgoingEdges.push(V),_.outgoingEdges.push(T),c(M,R).push([g,V,T]),[V,T]});for(let g of l)for(let b=0;b<g.parents.length;b++)g.parents[b]=g.windings[b]!==0;let p=g=>g.windings.some(b=>b!==0),m=l.filter(p);for(let g of o)g.outgoingEdges=g.outgoingEdges.filter(p);return{edges:m,vertices:o.filter(g=>g.outgoingEdges.length)}}function Wu(e){return e.outgoingEdges.length}function v$({vertices:e}){let t=[],n=[],r=0,o=qn(p=>{let m={outgoingEdges:[]};return n.push(m),m}),s=Ew(),i=new Map;function a(p,m){return i.get(p)?.get(m)}function d(p,m,g){let b=i.get(p);b||(b=new Map,i.set(p,b)),b.set(m,g)}let c=new WeakSet;for(let p of e){if(Wu(p)===2)continue;let m=o(p);for(let g of p.outgoingEdges){let b=[],w=g;for(;h$(w.parents,g.parents)&&w.directionFlag===g.directionFlag&&m$(w.windings,g.windings)&&Wu(w.incidentVertices[1])===2;){b.push(w.seg),c.add(w.incidentVertices[1]);let[T,O]=w.incidentVertices[1].outgoingEdges;w=T.twin===w?O:T}b.push(w.seg);let k=o(w.incidentVertices[1]),_=s(g),M=s(w),R=s(w.twin),B=s(g.twin),D=a(R,B)??null,V={segments:b,parents:g.parents,incidentVertices:[m,k],directionFlag:g.directionFlag,windings:g.windings,twin:D,id:r++};D&&(D.twin=V),d(_,M,V),m.outgoingEdges.push(V),t.push(V)}}let l=[];for(let p of e){if(Wu(p)!==2||c.has(p))continue;let m=p.outgoingEdges[0],g={segments:[],parents:m.parents,directionFlag:m.directionFlag,windings:m.windings};do{g.segments.push(m.seg),c.add(m.incidentVertices[0]);let[b,w]=m.incidentVertices[1].outgoingEdges;m=b.twin===m?w:b}while(m.incidentVertices[0]!==p);l.push(g)}return{edges:t,vertices:n,cycles:l}}function w$(e,t){function n(i){let a=new WeakSet,d=new WeakMap;function c(l,p,m){if(d.has(l))return d.get(l);d.set(l,m);let g=1/0;for(let b of l.outgoingEdges)b.parents[i]&&b!==p&&(g=Math.min(g,c(b.incidentVertices[1],b.twin,m+1)));return g<=m&&a.add(l),g}for(let l of e.edges)l.parents[i]&&c(l.incidentVertices[0],null,0);return a}let r=[];for(let i=0;i<t;i++)r.push(n(i));function o(i){return r.some(a=>a.has(i))}function s(i){for(let a=0;a<t;a++)if(i.parents[a]&&r[a].has(i.incidentVertices[0])&&r[a].has(i.incidentVertices[1]))return!0;return!1}e.vertices=e.vertices.filter(o);for(let i of e.vertices)i.outgoingEdges=i.outgoingEdges.filter(s);e.edges=e.edges.filter(s)}var Mw=(()=>{let e=Ce();return function({directionFlag:n,segments:r}){return Sw(r[0],n?1:0,e),Math.hypot(e[0],e[1])}})(),gw=(()=>{let e=Ce(),t=Ce(),n=Ce();return function(o,s=0){let{directionFlag:i,segments:a}=o,d=a[0],l=i?1:0;if(s>0){let _=Mw(o),M=_>0?Math.min(OA,s/_):Xt.param;l=i?1-M:M}if(Sw(d,l,n),i&&(n[0]=-n[0],n[1]=-n[1]),n[0]*n[0]+n[1]*n[1]>=tw)return Math.atan2(n[1],n[0]);nc(d,l,e);let m=Xt.param;for(let _=0;_<AA;_++){let M=i?Math.max(0,l-m):Math.min(1,l+m);nc(d,M,t);let R=t[0]-e[0],B=t[1]-e[1];if(R*R+B*B>=tw)return Math.atan2(B,R);m*=2}let g=tc(d),b=_n(d),w=b[0]-g[0],k=b[1]-g[1];return i&&(w=-w,k=-k),Math.atan2(k,w)}})();function k$({vertices:e}){for(let t of e){if(Wu(t)>2){let n=new WeakMap,r=1/0;for(let i of t.outgoingEdges){let a=Mw(i);a>0&&(r=Math.min(r,a))}let o=Number.isFinite(r)?Xt.param*r:Xt.param,s=new WeakMap;for(let i of t.outgoingEdges){let a=gw(i);n.set(i,a),s.set(i,S$(gw(i,o)-a))}t.outgoingEdges.sort((i,a)=>{let d=s.get(i),c=s.get(a),l=Math.max($A,Math.abs(d),Math.abs(c)),p=n.get(i)-n.get(a);return Math.abs(p)>l?p:d-c})}for(let n=0;n<t.outgoingEdges.length;n++)t.outgoingEdges[n].indexInVertex=n}}function S$(e){return((e+Math.PI)%zm+zm)%zm-Math.PI}function _$(e){let{outgoingEdges:t}=e.incidentVertices[1],n=e.twin?.indexInVertex;return t[(n+1)%t.length]}var Cw=qn(e=>e.incidentEdges.flatMap(t=>{let r=[],o=Ce();for(let s of t.segments)for(let i=0;i<64;i++){let a=i/64,d=t.directionFlag?1-a:a;nc(s,d,o),r.push([o[0],o[1]])}return r}));function Aw(e,t,n){let r=e>=n,o=t<n;return r===o}function Wm(e,t,n){return Aw(e[1],t[1],n[1])?KA(n[1],e[1],t[1],e[0],t[0])>=n[0]:!1}function E$(e,t){if(e.length<=2)return 0;let n=e[e.length-1],r=0;for(let o of e)Wm(n,o,t)&&(r+=o[1]>n[1]?-1:1),n=o;return r}var M$=qn(e=>{let t=Cw(e),n=0;for(let r=0;r<t.length;r++){let o=t[r],s=t[(r+1)%t.length];n+=o[0]*s[1]-s[0]*o[1]}return n/2}),C$=qn(e=>{let t=Cw(e);for(let n=0;n<t.length;n++){let r=t[n],o=t[(n+1)%t.length],s=t[(n+2)%t.length],i=[(r[0]+o[0]+s[0])/3,(r[1]+o[1]+s[1])/3],a=E$(t,i);if(a!==0)return{winding:a,point:i}}});function A$({edges:e,cycles:t}){let n=[],r=new WeakMap;for(let d of e){if(r.has(d))continue;let c={incidentEdges:[],flags:[]},l=d;do{let p=r.get(l.twin)??null,m={segments:l.segments,parents:l.parents,incidentVertex:c,directionFlag:l.directionFlag,windings:l.windings,twin:p};p&&(p.twin=m),r.set(l,m),c.incidentEdges.push(m),l=_$(l)}while(l!==d);n.push(c)}for(let d of t){let c={incidentEdges:[],flags:[]},l={segments:d.segments,parents:d.parents,incidentVertex:c,directionFlag:d.directionFlag,windings:d.windings,twin:null},p={incidentEdges:[],flags:[]},m={segments:[...d.segments].reverse(),parents:d.parents,incidentVertex:p,directionFlag:!d.directionFlag,windings:d.windings.map(g=>-g),twin:l};l.twin=m,c.incidentEdges.push(l),p.incidentEdges.push(m),n.push(c,p)}let o=d=>M$(d)>0,s=[],i=new WeakSet,a=new WeakSet;for(let d of n){if(i.has(d))continue;let c=[],l=[],p=g=>{i.has(g)||c.push(g),i.add(g);for(let b of g.incidentEdges){if(a.has(b))continue;let{twin:w}=b;l.push(b,w),a.add(b),a.add(w),p(w.incidentVertex)}};p(d);let m=c.find(o);s.push({vertices:c,edges:l,outerFace:m})}return s}function Xu(e,t){return Aw(e.top,e.bottom,t[1])&&e.right>=t[0]}function $$(e,t,n,r=Nt(e)){if(!Xu(r,t))return 0;let o=[{boundingBox:r,seg:e}],s=0,i=0;for(;o.length>0;){if(i++>bw||o.length>jm){for(let{seg:d}of o)Wm(tc(d),_n(d),t)&&s++;break}let a=[];for(let{boundingBox:d,seg:c}of o)if(As(c)||Zi(d)<n.linear)Wm(tc(c),_n(c),t)&&s++;else{let l=Ym(c,.5),p=Nt(l[0]);Xu(p,t)&&a.push({boundingBox:p,seg:l[0]});let m=Nt(l[1]);Xu(m,t)&&a.push({boundingBox:m,seg:l[1]})}o=a}return s}var O$=qn(e=>{for(let t of e.vertices)if(t!==e.outerFace)return C$(t).point}),$w=qn(e=>e.incidentEdges.flatMap(t=>t.segments.map(n=>({seg:n,boundingBox:Nt(n)})))),Ow=qn(e=>{let t=null;for(let{boundingBox:n}of $w(e))t=Cs(t,n);return t}),T$=qn(e=>{let t=null;for(let n of e.vertices)n!==e.outerFace&&(t=Cs(t,Ow(n)));return t});function Tw(e,t,n){return t[0]>=e.left-n.point&&t[0]<=e.right+n.point&&t[1]>=e.top-n.point&&t[1]<=e.bottom+n.point}function L$({top:e,right:t,bottom:n,left:r}){return(t-r)*(n-e)}function P$(e,t,n){for(let r of e.vertices){if(r===e.outerFace||!Tw(Ow(r),t,n))continue;let o=0;for(let{seg:s,boundingBox:i}of $w(r))Xu(i,t)&&(o+=$$(s,t,n,i));if(o%2===1)return r}return null}function D$(e,t){if(e.length===0)return[];let n=null,r=e.map((a,d)=>{let c=O$(a),l=T$(a);return n=Cs(n,l),{index:d,component:a,interiorPoint:c,boundingBox:l,area:L$(l)}}),o=new WeakMap;for(let a of e)o.set(a,{component:a,outgoingEdges:new Map});let s=new ta(n,_w);for(let a of r)s.insert(a.boundingBox,a.index);let i=[];for(let a of r){let d=a.interiorPoint,c=Qi(d,t.point),l=s.find(c),p=null,m=null;for(let w of l){if(w===a.index)continue;let k=r[w];if(!Tw(k.boundingBox,d,t))continue;let _=P$(k.component,d,t);_&&(!p||k.area<p.area)&&(p=k,m=_)}let g=o.get(a.component);if(!p||!m){i.push(g);continue}let b=o.get(p.component);b.outgoingEdges.has(m)?b.outgoingEdges.get(m).push(g):b.outgoingEdges.set(m,[g])}return i}function N$(e,t){switch(t){case go.NonZero:return e!==0;case go.EvenOdd:return e%2!==0}}function R$(e,t){let n=t.length;function r(o,s){let i=new WeakSet;function a(d,c){if(!i.has(d)){i.add(d),d.flags=c.map((l,p)=>N$(l,t[p]));for(let l of d.incidentEdges){let p=l.twin,m=c.slice();for(let g=0;g<n;g++)m[g]+=l.windings[g];a(p.incidentVertex,m)}if(o.outgoingEdges.has(d)){let l=o.outgoingEdges.get(d);for(let p of l)r(p,c)}}}a(o.component.outerFace,s)}for(let o of e)r(o,new Array(n).fill(0))}function*I$(e,t){function*n(r){for(let o of r.component.vertices)t(o)&&(yield o);for(let o of r.outgoingEdges.values())for(let s of o)yield*n(s)}for(let r of e)yield*n(r)}function*yw(e){function t(o){return e.has(o.incidentVertex)===e.has(o.twin.incidentVertex)}let n=new WeakMap;for(let o of e){let s=o.incidentEdges[o.incidentEdges.length-1];for(let i of o.incidentEdges)n.set(s,i),s=i}let r=new WeakSet;for(let o of e)for(let s of o.incidentEdges){if(t(s)||r.has(s))continue;let i=s;do for(i.directionFlag?yield*c$(i.segments,ra):yield*i.segments,r.add(i),i=n.get(i);t(i);)i=n.get(i.twin);while(i!==s)}}function Lw(e,t){let n=[],r=[];function o(s){for(let i of s.component.vertices){if(!t(i)||i===s.component.outerFace)continue;let a=[];for(let d of i.incidentEdges)d.directionFlag?a.push(...d.segments.map(ra)):a.push(...d.segments);if(s.outgoingEdges.has(i))for(let d of s.outgoingEdges.get(i)){let{outerFace:c}=d.component;for(let l of c.incidentEdges)l.directionFlag?a.push(...l.segments.map(ra)):a.push(...l.segments)}n.push(i),r.push(a)}for(let i of s.outgoingEdges.values())for(let a of i)o(a)}for(let s of e)o(s);return{faces:n,paths:r}}function F$(e,t){return Lw(e,t).paths}function B$(e,t){function n(r){for(let[o,s]of r.outgoingEdges){if(t.has(o))for(let i of s){let{outerFace:a}=i.component;t.add(a)}for(let i of s)n(i)}}for(let r of e)n(r)}var V$={[vt.Union]:e=>e.some(Boolean),[vt.Difference]:e=>e[0]&&!e.slice(1).some(Boolean),[vt.Intersection]:e=>e.every(Boolean),[vt.Exclusion]:e=>e.reduce((t,n)=>t+(n?1:0),0)%2===1,[vt.Division]:e=>e[0],[vt.Fracture]:e=>e.some(Boolean)},oa=class{constructor(t){let n=t.length,r=t.flatMap(({path:m},g)=>m.map(x$(n,g))),o=null;for(let{seg:m}of r)o=Cs(o,Nt(m));let s=LA(o?Zi(o):0);for(let m of r)m.seg=GA(m.seg,s.point);g$(r);let{edges:i,totalBoundingBox:a}=y$(r,s);if(!a){this.nestingTrees=[];return}let d=b$(i,a,s),c=v$(d);w$(c,n),k$(c);let l=A$(c),p=D$(l,s);R$(p,t.map(({fillRule:m})=>m)),this.nestingTrees=p}get(t){let n=r=>V$[t](r.flags);switch(t){case vt.Division:case vt.Fracture:return F$(this.nestingTrees,n);default:{let r=new Set(I$(this.nestingTrees,n));return[[...yw(r)]]}}}getFaces(){return this.getRegions().paths}buildShape(t){let{faces:n}=this.getRegions(),r=new Set;for(let o of t){let s=n[o];s&&r.add(s)}return B$(this.nestingTrees,r),[...yw(r)]}getRegions(){return this.regions??(this.regions=Lw(this.nestingTrees,t=>t.flags.some(Boolean)))}};var Pw={union:vt.Union,subtract:vt.Difference,intersect:vt.Intersection,exclude:vt.Exclusion},sa=.001,H$=.01;function Dw(e,t){let n=t.map(s=>({path:G$(s.contours.filter(i=>!K$(i))),fillRule:s.evenOdd?go.EvenOdd:go.NonZero})),r=s=>s.path.length===0;if(e==="intersect"&&n.some(r))return[];if(e==="subtract"&&r(n[0]))return[];let o=n.filter(s=>!r(s));return o.length===0?[]:z$(e,o).flatMap(q$).map(W$).filter(X$)}var U$=[.001,.003,.007];function z$(e,t){try{return new oa([...t]).get(Pw[e])}catch(n){for(let r of U$){let o=t.map((s,i)=>({fillRule:s.fillRule,path:i===0?s.path:j$(s.path,r*i,r*i*.618)}));try{return new oa(o).get(Pw[e])}catch{}}throw n}}function j$(e,t,n){let r=o=>[o[0]+t,o[1]+n];return e.map(o=>o[0]==="L"?["L",r(o[1]),r(o[2])]:o[0]==="C"?["C",r(o[1]),r(o[2]),r(o[3]),r(o[4])]:o[0]==="Q"?["Q",r(o[1]),r(o[2]),r(o[3])]:["A",r(o[1]),o[2],o[3],o[4],o[5],o[6],r(o[7])])}function K$(e){let t=[],n=zt(e);for(let i=0;i<n;i+=1)t.push(...dr(jt(e,i),.1));!e.closed&&e.anchors.length>0&&t.push(e.anchors[0]);let r=t[0];if(!r)return!0;let o=r;for(let i of t)Math.hypot(i.x-r.x,i.y-r.y)>Math.hypot(o.x-r.x,o.y-r.y)&&(o=i);let s=Math.hypot(o.x-r.x,o.y-r.y);return s<=sa?!0:t.every(i=>Math.abs((o.x-r.x)*(i.y-r.y)-(o.y-r.y)*(i.x-r.x))/s<=sa)}function G$(e){let t=[];for(let n of e){let r=zt(n);if(r!==0){for(let o=0;o<r;o+=1){let[s,i,a,d]=jt(n,o);ja(n,o)?oc(s,d)||t.push(["L",Sr(s),Sr(d)]):t.push(["C",Sr(s),Sr(i),Sr(a),Sr(d)])}if(!n.closed){let o=n.anchors[0],s=n.anchors[n.anchors.length-1];oc(o,s)||t.push(["L",Sr(s),Sr(o)])}}}return t}function Sr(e){return[e.x,e.y]}function q$(e){let t=[],n,r=()=>{n&&n.anchors.length>1&&t.push({closed:!0,anchors:n.anchors}),n=void 0};for(let o of e)for(let s of Nw(o)){let[i,a,d,c]=s;if(n){let g=n.anchors[n.anchors.length-1];oc(g,i)||r()}n||(n={anchors:[{x:i.x,y:i.y}],start:i});let l=a===void 0||d===void 0,p=n.anchors,m=p[p.length-1];if(l||(p[p.length-1]={...m,out:a}),oc(c,n.start)&&p.length>1){l||(p[0]={...p[0],in:d}),r();continue}p.push(l?{x:c.x,y:c.y}:{x:c.x,y:c.y,in:d})}return r(),t}function Nw(e){let t=n=>({x:n[0],y:n[1]});if(e[0]==="L")return[[t(e[1]),void 0,void 0,t(e[2])]];if(e[0]==="C")return[[t(e[1]),t(e[2]),t(e[3]),t(e[4])]];if(e[0]==="Q"){let[n,r,o]=[t(e[1]),t(e[2]),t(e[3])];return[[n,{x:n.x+(r.x-n.x)*2/3,y:n.y+(r.y-n.y)*2/3},{x:o.x+(r.x-o.x)*2/3,y:o.y+(r.y-o.y)*2/3},o]]}return Xm(e).flatMap(Nw)}function W$(e){let t=[...e.anchors],n=!0;for(;n&&t.length>3;){n=!1;for(let r=0;r<t.length;r+=1){if(!e.closed&&(r===0||r===t.length-1))continue;let o=t[(r-1+t.length)%t.length],s=t[r],i=t[(r+1)%t.length];if(o.out||s.in||s.out||i.in)continue;let a=(s.x-o.x)*(i.y-s.y)-(s.y-o.y)*(i.x-s.x),d=(s.x-o.x)*(i.x-s.x)+(s.y-o.y)*(i.y-s.y),c=Math.hypot(i.x-o.x,i.y-o.y);if(d>=0&&Math.abs(a)<=sa*Math.max(c,1)){t.splice(r,1),n=!0;break}}}return{closed:e.closed,anchors:t}}function X$(e){if(e.anchors.length<2)return!1;let t=[],n=zt(e);for(let o=0;o<n;o+=1)t.push(...dr(jt(e,o),.1));let r=0;for(let o=0;o<t.length;o+=1){let s=t[o],i=t[(o+1)%t.length];r+=s.x*i.y-i.x*s.y}return Math.abs(r/2)>=H$}function oc(e,t){return Math.abs(e.x-t.x)<=sa&&Math.abs(e.y-t.y)<=sa}function Jm(e,t){let n=bi(e,{x:t.x,y:t.y,w:t.w,h:t.h},t.values);return n===void 0?void 0:{contours:n.contours,evenOdd:n.rule==="evenodd"}}var Y$=["name","fill","stroke","strokeWidth","dash","strokeAlign","opacity","cap","join","blend","shadow","blur","backdrop","hidden","locked"];function ia(e){return Math.round(e*100)/100}var Rw=e=>Math.floor(e*100+1e-9)/100,Iw=e=>Math.ceil(e*100-1e-9)/100;function Zm(e,t){let n=Jo(e,t.ids,t.as);if(n)return{ok:!1,...n};try{return J$(e,t)}catch(r){return{ok:!1,...Zo(r)}}}function J$(e,t){let n=Pe(e),r=ef(e,t.ids),o=z(e.root,r[0]),s=Le(e.root,o.id);if(!s)return{ok:!1,code:"unknown-reference",message:`No node ${o.id}`};let i=[];for(let P of r){let C=z(e.root,P),G=n.nodes.get(P),ee=G&&Jm(C,G);if(!ee)return{ok:!1,code:"merge-not-a-shape",message:`${P} has no outline`,nodeId:P};i.push(ee)}let a=Dw(t.verb,i),d=Kt(a);if(a.length===0||!d||d.w<=0||d.h<=0)return{ok:!1,code:"merge-empty",message:`${Yo[t.verb]} of ${r.join(", ")} leaves nothing${t.verb==="intersect"?": the shapes do not all overlap":""}; nothing was changed`};let c=Rw(d.x),l=Rw(d.y),p=Math.max(.01,ia(Iw(d.x+d.w)-c)),m=Math.max(.01,ia(Iw(d.y+d.h)-l)),g=ze(Be(a,P=>({x:P.x-c,y:P.y-l}))),b=o,w={};for(let P of Y$)b[P]!==void 0&&(w[P]=b[P]);let k=r.some(P=>z(e.root,P)?.locked===!0),_=t.as??o.id,M=To({...w,...k?{locked:!0}:{},id:_,x:c,y:l,w:p,h:m,view:Pn({x:0,y:0,w:p,h:m}),d:g,...a.length>1?{rule:"evenodd"}:{}}),R=s.children.findIndex(P=>P.id===o.id),B=Z$(e,r,s.id),D=[...r.map(P=>({op:"remove",id:P})),...B.map(P=>({op:"remove",id:P})),{op:"insert",parent:s.id,index:R,node:M},...Q$(e,o.id,_)],V=[];de(e.root,P=>{st(P)&&P.mask!==void 0&&P.mask!==_&&r.includes(P.mask)&&V.push({op:"set",id:P.id,prop:"mask",value:_})});let T=[...Vo(e,[...D,...V])],O=Ae(e,T).document,j=new Set([...r,_]),$=new Set([...r.filter(P=>P!==_),...B]);return{ok:!0,id:_,ops:[...T,...eO(n,O,j,$)]}}function Z$(e,t,n){let r=new Set(t),o=[],s=i=>{if(r.has(i.id))return!0;if(!me(i))return!1;let a=i.children.length>0;for(let d of i.children)s(d)||(a=!1);return a&&i.type==="group"&&i.id!==n?(o.push(i.id),!0):!1};return s(e.root),o.filter(i=>{let a=Le(e.root,i);for(;a;){if(o.includes(a.id))return!1;a=Le(e.root,a.id)}return!0})}function Q$(e,t,n){if(t===n||!e.motion)return[];let r=[];for(let[o,s]of Object.entries(e.motion)){if(!s.lines.some(a=>a.id===t||a.after===t))continue;let i=s.lines.map(a=>({...a,...a.id===t?{id:n}:{},...a.after===t?{after:n}:{}}));r.push({op:"setMotion",page:o,value:{...s,lines:i}})}return r}function eO(e,t,n,r){let o=Pe(t),s=[];for(let[i,a]of o.nodes){if(n.has(i))continue;let d=e.nodes.get(i),c=z(t.root,i);if(!d||!c||nO(t,i))continue;let l=c;for(let p of Vt(c)){let m=d.values[p],g=a.values[p];m===void 0||g===void 0||ia(m)===ia(g)&&!tO(l[p],r)||s.push({op:"set",id:i,prop:p,value:ia(m)})}}return s}function tO(e,t){if(!ve(e))return!1;let n=tt(e.expr);return n.ok&&on(n.ast).nodes.some(r=>t.has(r))}function nO(e,t){let n=Le(e.root,t);for(;n;){if(n.type==="instance")return!0;n=Le(e.root,n.id)}return!1}function Fw(e){let t=e,n=new Map,r=typeof URL.createObjectURL=="function"&&typeof URL.revokeObjectURL=="function";return{resolve(o){let s=n.get(o.hash);if(s!==void 0)return s;let i=t.get(o.hash);if(i===void 0)return;if(!r)return Ul(o.type,i);let a;try{a=jl(i)}catch{return}let d=URL.createObjectURL(new Blob([a],{type:o.type}));return n.set(o.hash,d),d},replace(o){t=o;for(let[s,i]of n)o.has(s)||(URL.revokeObjectURL(i),n.delete(s))},destroy(){for(let o of n.values())URL.revokeObjectURL(o);n.clear(),t=new Map}}}var Qm="0.6.0",Bw="https://cdn.jsdelivr.net/npm/@getv.design/embed@0.6.0/fonts/";var rO=Symbol.for(`vdesign.embed.documents@${Qm}`),Vw=globalThis[rO]??=new WeakMap,oO=/^Line (\d+): /;function tx(e){let t=oO.exec(e.message);return{...t?{line:Number(t[1])}:{},code:e.code,message:e.message,severity:e.severity}}function ex(e){if(typeof e!="string")return ic(gi("").document,new Map,[{code:"not-text",message:`parse() takes .vd text, not ${e===null?"null":typeof e}.`,severity:"error"}]);let t=sO(e);if(t.vd===void 0)return ic(gi("").document,new Map,[{code:"not-vd",message:"This SVG carries no vDesign document: only a .vd.svg exported from vDesign does.",severity:"error"}]);let{head:n,blocks:r}=Bl(t.vd),o=gi(n),s=o.problems.map(tx).map(i=>i.line===void 0?i:{...i,line:i.line+t.offset});return ic(o.document,r,s)}function sO(e){if(!nf(e))return{vd:e,offset:0};let t=tf(e);if(t===void 0)return{vd:void 0,offset:0};let n=e.indexOf("<vd:document"),r=e.indexOf("</vd:document",n),o=e.indexOf("<![CDATA[",n);if(o===-1||r!==-1&&o>r){let a=e.indexOf(">",n)+1,d=e.slice(0,a).split(`
|
|
3098
|
+
`),A=h&&wa!==null&&wa.selection===E&&D.top===wa.entry;ht===null?(ht={label:S,started:A},pe(y,S),ix()):pe(y,S),wa=D.top?{entry:D.top,selection:E}:null}function Ax(){C.fitToContent()}function $x(){C.setCamera({...C.getCamera(),zoom:1})}function Qk(){let u=Wt(r.flatMap(h=>qe(h)??[]));if(!u)return;let f=e.getBoundingClientRect();C.setCamera(bn({x:u.x,y:u.y,width:u.w,height:u.h},{width:f.width||u.w,height:f.height||u.h},z2))}function Ox(u,f){if((u.metaKey||u.ctrlKey)&&!u.altKey){let x=u.code==="Equal"?Gv:u.code==="Minus"?1/Gv:null;return x!==null?(u.preventDefault(),C.zoomBy(x),!0):u.code==="Digit0"&&!u.shiftKey?(u.preventDefault(),$x(),!0):!1}return f||!u.shiftKey||u.altKey?!1:u.code==="Digit1"?(u.preventDefault(),Ax(),!0):u.code==="Digit2"?r.length===0?!1:(u.preventDefault(),Qk(),!0):!1}function Tx(u){return u.ctrlKey&&!u.metaKey&&!u.altKey&&!u.shiftKey&&u.key.toLowerCase()==="y"}function Lx(u){return Ke(n.root,u).slice(0,-1).reverse().find(h=>{let x=z(n.root,h);return x!==void 0&&Bs(x)})??null}function e1(){if(r.length!==1)return!1;let u=z(n.root,r[0]);if(!u||!(Bs(u)||u.type==="frame"))return!1;let f=te(u).map(h=>h.id).filter(It);return f.length===0?!1:(Bs(u)&&Lc(u.id),he(f),!0)}function t1(){let u=r[0];if(u===void 0)return!1;let f=Le(n.root,u);return!f||f.id===n.root.id?!1:f.id===_?(Pc(),!0):(_=Lx(f.id),he([f.id]),!0)}function n1(u){let f=u===1?r[r.length-1]:r[0];if(f===void 0)return!1;let h=Le(n.root,f);if(!h)return!1;let x=te(h).map(E=>E.id).filter(E=>E===f||It(E)),y=x.indexOf(f),S=x[(y+u+x.length)%x.length];return S!==void 0&&he([S]),!0}let Px=u=>{if(Lu(u.target))return;if(ae){let y=(u.metaKey||u.ctrlKey)&&u.key.toLowerCase()==="z";if(y||Tx(u)){u.preventDefault(),ae.breakBurst(),u.shiftKey||!y?Hs():Vs();return}Ox(u,!0);return}if(J&&(u.key==="Enter"||u.key==="Escape")){u.preventDefault(),ga();return}if(Hk(u))return;if((u.metaKey||u.ctrlKey)&&u.shiftKey&&u.code==="KeyO"){if(_x()===0)return;u.preventDefault(),xc();return}if(u.key==="Enter"&&u.shiftKey&&!Ss(u)){t1()&&u.preventDefault();return}if(u.key==="Enter"&&!Ss(u)&&r.length===1){let y=r[0];if(z(n.root,y)?.type==="vector"&&Mr(y)){u.preventDefault();return}}if(u.key==="Enter"&&!Ss(u)&&r.length===1){let y=r[0];if(z(n.root,y)?.type==="text"){u.preventDefault(),Ps(y);return}}if(u.key==="Enter"&&!Ss(u)){if(kc()){u.preventDefault();return}let y=r.length===1?r[0]:null;if(y!==null&&ba(y)){u.preventDefault();return}}if(u.key==="Enter"&&!Ss(u)){e1()&&u.preventDefault();return}if(u.key==="Tab"&&!Ss(u)){n1(u.shiftKey?-1:1)&&u.preventDefault();return}if(u.code==="Space"&&!m){m=!0,xt(at("grab"));return}let f=u.metaKey||u.ctrlKey;if(f&&u.key.toLowerCase()==="z"){u.preventDefault(),u.shiftKey?Hs():Vs();return}if(Tx(u)){u.preventDefault(),Hs();return}if(Ox(u,!1))return;if(f&&u.shiftKey&&!u.altKey&&u.code==="KeyL"){if(!R.lock||r.length===0)return;u.preventDefault(),Eo(r,"locked");return}if(f&&u.shiftKey&&!u.altKey&&u.code==="KeyH"){if(!R.hide||r.length===0)return;u.preventDefault(),Eo(r,"hidden");return}if(f&&u.altKey&&!u.shiftKey&&u.code==="KeyK"){if(!Vi(n,r))return;u.preventDefault(),Rc();return}if(f&&u.altKey&&!u.shiftKey&&u.code==="KeyM"&&!u.getModifierState("AltGraph")){if(r.length===0)return;u.preventDefault(),qk();return}if(f&&u.altKey&&!u.shiftKey&&u.code==="KeyB"){if(!r.some(y=>z(n.root,y)?.type==="instance"))return;u.preventDefault(),Ic();return}if(f&&u.key.toLowerCase()==="g"){u.preventDefault(),u.shiftKey?Oc():$c();return}if(f&&u.key.toLowerCase()==="a"){u.preventDefault(),Dc();return}if(f&&!u.altKey&&u.key.toLowerCase()==="d"){u.preventDefault(),Cc();return}if(u.altKey){let y=u.shiftKey&&!f?X2[u.code]:void 0;if(y&&t.merge){u.preventDefault();let A=yc();A?ke("notice",{message:lu(A)}):bc(y);return}let S=q2[u.code];if(S&&!f){u.preventDefault(),Yx(S);return}let E=W2[u.code];if(E&&u.ctrlKey){u.preventDefault(),Zx(E);return}}if(u.key==="]"||u.key==="["){if(r.length===0)return;u.preventDefault();let y=u.key==="]";Tc(f?y?"front":"back":y?"forward":"backward");return}if(u.key==="Escape"){if(v)mc();else{if(kc())return;_!==null?Pc():he([])}return}if(u.key==="Delete"||u.key==="Backspace"){if(r.length===0)return;u.preventDefault(),Mo();return}let h=Wv[u.key];if(h&&!f&&!u.altKey){if(r.length===0||(u.preventDefault(),v||J))return;let y=u.shiftKey?Kv:jv;Zk(h[0]*y,h[1]*y,u.repeat);return}let x=f||u.altKey?void 0:Lm[u.key.toLowerCase()];x&&Mn(x)};function Dx(){if(!ae)return null;let u=z(n.root,ae.id);if(u?.type!=="text")return null;let{anchor:f,head:h}=ae.getSelection();return f===h?null:lo(km(u.content,f,h))}let Nx=u=>{if(Lu(u.target))return;let f=Dx()??So();f!==null&&(u.preventDefault(),u.clipboardData?.setData("text/plain",f))},Rx=u=>{if(Lu(u.target))return;let f=Dx();if(f!==null&&ae){u.preventDefault(),u.clipboardData?.setData("text/plain",f);let{anchor:x,head:y}=ae.getSelection();ae.breakBurst(),ae.setSelection(x,y),ae.handleInput({inputType:"deleteByCut",data:null});return}let h=So();h!==null&&(u.preventDefault(),u.clipboardData?.setData("text/plain",h),Mo())},Ix=u=>{if(Lu(u.target))return;u.preventDefault();let f=Dp(u.clipboardData);if(f&&!ae){let x=w1();x?Mc(x,f):ng(f,Rt??void 0);return}let h=u.clipboardData?.getData("text/plain")||void 0;if(ae&&h!==void 0){ae.handleInput({inputType:"insertFromPaste",data:h});return}Ec(h)},Fx=u=>{u.code==="Space"&&(m=!1,xt(at(cc())))},Bx=u=>{if(!fe)return;u.preventDefault(),v&&mc();let f=C.pointerPoint(u),h=C.screenToDocument(f),x=yo(h),y=r1(h),S=C.hitTest(h),E=S!==null&&r.some(L=>Ke(n.root,S).includes(L));x===null?E||he([]):r.includes(x)||he([x]);let A=(t.menuExtras?.(r)??[]).map(L=>"separator"in L?L:{...L,id:`${Pm}${L.id}`});fe.open(f,sm(o1(y),A))};function r1(u){let{locked:f}=$t(),h=[];for(let x of[...C.getScene().items].reverse()){if(!f.has(x.id)||!C.hitTest(u,S=>S===x.id))continue;let y=js(n.root,x.id,"locked");y!==void 0&&!h.includes(y)&&h.push(y)}return h}function o1(u=[]){let f=r.length===1?z(n.root,r[0]):void 0,h=[];if(f){let x=f;for(let y of Vt(f)){let S=x[y];S===void 0||!ve(S)||md(S).kind!=="literal"&&h.push({prop:y,source:`=${S.expr}`})}}return{count:r.length,hasGroup:r.some(x=>{let y=z(n.root,x);return y!==void 0&&Ne(y)}),canPaste:Dm!==null,isText:r.length===1&&z(n.root,r[0])?.type==="text",isVector:ge().length===1&&z(n.root,ge()[0])?.type==="vector",convertible:_x(),...t.merge===void 0?{}:{mergeable:Sx()},mask:Gk(),bound:h,lock:R.lock?r.every(x=>$t().locked.has(x))?"unlock":"lock":null,hide:R.hide?r.every(x=>$t().hidden.has(x))?"show":"hide":null,locksHere:u,anyLocked:Nc("locked").length>0,hiddenCount:Nc("hidden").length,components:s1()}}function s1(){let u=r.length===1?r[0]:void 0,f=u===void 0?void 0:ug(u),h=f===void 0?void 0:z(n.root,f),x=0;if(u!==void 0&&f!==void 0&&h?.type==="instance"){let y=h.overrides??{};x=u===f?Object.keys(y).length:y[u.slice(f.length+1)]===void 0?0:1}return{create:Vi(n,r),instance:h?.type==="instance"&&u===f,part:f!==void 0&&u!==f,component:u!==void 0&&Hn(n,u),overrides:x,uses:Ud(n,r.filter(y=>Hn(n,y)))}}function i1(u){if(e.focus({preventScroll:!0}),u.startsWith(Pm)){t.onMenuCommand?.(u.slice(Pm.length),[...r]);return}if(u.startsWith("unlock:")){_o([u.slice(7)],"locked",!1);return}if(u.startsWith("detach:")){let f=u.slice(7),h=r[0];h!==void 0&&hg(h,f);return}switch(u){case"copy":So();return;case"cut":tg();return;case"editText":{let f=r[0];f!==void 0&&Ps(f);return}case"editPoints":{let f=r[0];f!==void 0&&Mr(f);return}case"toVector":return xc();case"mask":vc();return;case"releaseMask":wc();return;case"crop":r.length===1&&ba(r[0]);return;case"merge:union":case"merge:subtract":case"merge:intersect":case"merge:exclude":bc(u.slice(6));return;case"duplicate":return Cc();case"paste":return Ec();case"group":return $c();case"ungroup":return Oc();case"createComponent":Rc();return;case"detachInstance":return Ic();case"goToComponent":{let f=r[0];f!==void 0&&lg(f);return}case"resetOverrides":{let f=r[0];f!==void 0&&cg(f);return}case"placeInstance":{let f=r[0];f!==void 0&&Fc(f);return}case"front":case"forward":case"backward":case"back":return Tc(u);case"delete":return Mo();case"selectAll":return Dc();case"toggleLock":return Eo(r,"locked");case"toggleHidden":return Eo(r,"hidden");case"unlockAll":return Ma("locked");case"showAll":return Ma("hidden");case"fit":return Ax();case"zoom100":return $x()}}let Vx=u=>{if(w||o!=="select"||m||H)return;let f=C.screenToDocument(C.pointerPoint(u)),h=C.hitTest(f,A=>!$t().locked.has(A));if(h===null)return;let x=Ea().find(A=>A.id===h);if(x){u.preventDefault(),k1(x);return}let y=z(n.root,h);if(y?.type==="text"){u.preventDefault(),Ps(h,f);return}if(y?.type==="vector"){u.preventDefault(),Mr(h);return}if(yo(f)===h&&ba(h)){u.preventDefault();return}let S=Ke(n.root,h),E=_===null?1:S.indexOf(_)+1;for(let A=Math.max(E,1);A<S.length;A+=1){let L=S[A];if(L===void 0)break;let U=z(n.root,L);if(!(!U||!Bs(U))){u.preventDefault(),Lc(L),he([S[A+1]??L]);return}}},Hx=u=>Array.from(u.dataTransfer?.types??[]).includes("Files"),Ux=()=>t.importImage!==void 0||t.importAudio!==void 0||t.importVideo!==void 0,zx=u=>Array.from(u.dataTransfer?.types??[]).includes(Pu),jx=u=>{if(zx(u)){u.preventDefault(),u.dataTransfer&&(u.dataTransfer.dropEffect="copy");return}if(!Hx(u)||!Ux())return;u.preventDefault(),u.dataTransfer&&(u.dataTransfer.dropEffect="copy");let f=C.screenToDocument(C.pointerPoint(u)),h=og(f)?.id??null;h!==l&&(l=h,ce())},Kx=u=>{u.relatedTarget instanceof Node&&e.contains(u.relatedTarget)||l!==null&&(l=null,ce())},Gx=u=>{if(zx(u)){u.preventDefault();let A=u.dataTransfer?.getData(Pu)??"";e.focus({preventScroll:!0}),Fc(A,C.screenToDocument(C.pointerPoint(u)));return}if(!Hx(u)||!Ux())return;u.preventDefault();let f=C.screenToDocument(C.pointerPoint(u)),h=og(f);l=null,ce();let x=Array.from(u.dataTransfer?.files??[]),y=x.find(Db);if(y&&t.importAudio){let A=Xn(f),L=A===null?void 0:Ut(n).get(A),U=Jd(n),W=L!==void 0&&U.includes(L)?L:Zd(n,r,null)??L??null;W!==null&&rg(y,W);return}let S=x.find($b);if(S&&t.importVideo){y1(S,f,v1(f));return}if(!t.importImage)return;let E=x.find(A=>A.type.startsWith("image/"));E&&(h?Mc(h,E):ng(E,f))},qx=()=>{Rt=null,d=null,!v&&(s===null&&Q===null&&Te===null||(s=null,Q=null,Te=null,ce()))};function Wx(){let u=ge().length===1?ge()[0]:void 0,f=u===void 0?void 0:z(n.root,u);return u!==void 0&&f&&!me(f)?Wn(u):0}function a1(u){if(m){xt(at("grab"));return}if(H){Ft(null),xt(at("arrow"));return}if(o!=="select"){if(Ft(null),_c(null),ka(null),xt(at(o==="text"?"text":"crosshair")),o==="line"||i!==null){let S=o==="line"?fa(C.screenToDocument(u),null,rA):null;(S?.at.x!==i?.at.x||S?.at.y!==i?.at.y)&&(i=S,ce())}return}let f=ge().length===1?ge()[0]:null;if(f!==null){let S=G.hitAdjuster(u);if(S){let E=z(n.root,f),A=E?eu(E,S.id):void 0;Ft(null);let L=A&&E?A.propOf(E,S.id,!1):void 0;_c(L===void 0?null:{id:S.id,prop:L}),xt(at("radius",{badge:L===void 0?"none":ac(f,[L])}));return}_c(null)}if(ge().length>0){let S=G.hitHandle(u);if(S){Ft(null);let L=Id(S.handle);xt(at("resize",{angle:mp(S.handle)+Wx(),badge:sx(Ls(),L)}));return}let E=G.hitPageLabel(u);if(E!==null){Ft(E),xt(at("arrow"));return}let A=G.hitRotate(u);if(A!==null){Ft(null),xt(at("rotate",{angle:j2[A]+Wx()}));return}}let h=G.hitPageLabel(u);if(h!==null){d=null,Ft(h),xt(at("arrow"));return}if(ge().length>1){if(G.hitRing(u)!==null){Ft(null),ka(null),xt(at("grab"));return}let E=G.hitSpacer(u),A=E===null?null:bu(E);if(E!==null&&A){Ft(null),ka(E),xt(at("resize",{angle:A.axis==="x"?0:90,badge:sx(Ls(),[A.axis])}));return}ka(null)}let x=C.screenToDocument(u),y=yo(x);d=d1(x,y),Ft(y),ce(),xt(at("arrow",{badge:y===null?"none":ac(y,["x","y"])}))}function d1(u,f){let h=C.hitTest(u);if(h===null||!$t().locked.has(h))return null;let x=js(n.root,h,"locked");return x===void 0?null:f===null||Ke(n.root,x).includes(f)?x:null}function Ft(u){s!==u&&(s=u,ce())}function _c(u){Q?.id!==u?.id&&(Q=u,ce())}function ka(u){Te!==u&&(Te=u,ce())}function xt(u){e.style.cursor!==u&&(e.style.cursor=u)}function Mn(u){o!==u&&(o=u,J&&u!=="pen"&&ga(),u!=="select"&&Rs(),ee?.setTool(o),u!=="select"&&Ft(null),xt(at(cc())),ke("tool",o))}function u1(u){if(u.length===0)return null;if(u.length>1)return Wt(u.map(x=>x.frame))??null;let f=u[0],h=Le(n.root,f.id);return h?ro(h.id,n,C.getResolution())??null:null}function Xx(u,f,h){let x=Sa(oo(n,hc(ua(r),u,f)));x.length!==0&&pe([...x,...fs(n,x,Xr(n),Pe(n))],h)}function Sa(u,f=n){if(u.length===0)return[...u];let h=Ye(f.root).links;if(h.size===0)return[...u];let x=new Set(u.flatMap(A=>A.op==="set"?[A.id]:[])),y=Pe(f),S=Pe(Ae(f,u).document),E=[];for(let[A,L]of h){if(A===M||!x.has(A)||x.has(L))continue;let U=y.nodes.get(A),W=S.nodes.get(A),X=y.nodes.get(L);if(!U||!W||!X)continue;let ie={x:U.absX,y:U.absY,w:U.w,h:U.h},re={x:W.absX,y:W.absY,w:W.w,h:W.h},xe=U.values.rotation??0,ue=W.values.rotation??0;if(ie.x===re.x&&ie.y===re.y&&ie.w===re.w&&ie.h===re.h&&xe===ue)continue;let We={x:X.absX,y:X.absY,w:X.w,h:X.h},Ot={x:X.absX-X.x,y:X.absY-X.y},Tt=X.values.rotation??0,Co=je(Re(We),Re(ie),-xe),I1={x:Co.x-We.w/2,y:Co.y-We.h/2,w:We.w,h:We.h},Us=Kd(I1,Tt-xe,ie,re),wg=je(Re(Us),Re(re),ue);E.push({nodeId:L,prop:"x",from:X.x,to:Z(wg.x-Us.w/2-Ot.x)},{nodeId:L,prop:"y",from:X.y,to:Z(wg.y-Us.h/2-Ot.y)},{nodeId:L,prop:"w",from:X.w,to:Z(Us.w)},{nodeId:L,prop:"h",from:X.h,to:Z(Us.h)}),ue!==xe&&E.push({nodeId:L,prop:"rotation",from:Tt,to:Wo(Tt+ue-xe)})}return E.length===0?[...u]:[...u,...oo(f,E)]}function Yx(u){let f=Bi(n,r,C.getResolution()),h=u1(f);h&&Xx(Qd(u),Rp(f,h,u),Y2[u])}function Jx(u){let f=Bi(n,r,C.getResolution());if(f.length<3)return null;let h=xm(f,u),x=gm(h);return x===null?null:{gap:x,series:h}}function Zx(u){let f=Jx(u);f&&Xx(u,wu(f.series,f.gap),u==="x"?"Distribute horizontally":"Distribute vertically")}function c1(){let u=Gi(n,[...r,...ms(n,r)]);if(u.length===0)return null;let f=C.getResolution(),h={};for(let x of u)de(x,y=>{let S=f.nodes.get(y.id)?.values;S&&(h[y.id]=S)});return{nodes:u,tokens:n.tokens,fonts:n.fonts,resolved:h}}function l1(u){return new Map(Object.entries(u.resolved))}function f1(u){let f=Object.entries(u.tokens).filter(([h])=>n.tokens[h]===void 0).map(([h,x])=>({op:"setToken",name:h,value:x}));for(let[h,x]of Object.entries(u.fonts))n.fonts[h]===void 0&&f.push({op:"setFont",name:h,family:x});return f}function Qx(u,f,h){let x=f1(u),y=x.length>0?Ae(n,x).document:n,S=mb(y,u.components??[],ie=>dg(`This file already has a component called ${ie}, and it is not the same as the one you copied. Use the one in this file? Cancel brings yours in beside it as a separate component.`));S.ops.length>0&&(x.push(...S.ops),y=Ae(y,S.ops).document);let E=Jh(u,y),A=E.remap,L=E.nodes.map(ie=>jd(ie,S));if(L.length===0)return null;L.forEach((ie,re)=>{let xe=u.nodes[re];if(!xe)return;let ue=f(xe,re,y),De={op:"insert",parent:ue.parent,index:ue.index,node:ie};x.push(De),y=Ae(y,[De]).document});let U=kp(y,A,l1(u),h);U.length>0&&(y=Ae(y,U).document);let W=p1(L),X=Ye(y.root).shapes;return{ops:[...x,...U,...ps(n,y)],ids:[...A.values()].filter(ie=>W.has(ie)&&!X.has(ie))}}function p1(u){let f=new Set;for(let h of u)f.add(h.id);return f}function eg(u){let f=c1();return f?Qx(f,(h,x,y)=>{let S=Le(y.root,h.id)??y.root,E=te(S).findIndex(A=>A.id===h.id);return{parent:S.id,index:E===-1?te(S).length:E+1}},u):null}function So(){let u=Xh(n,r,C.getResolution());return u!==null&&(Dm=u),u}function tg(){if(r.some(f=>Je(n,f)))return So();let u=So();return u!==null&&(r=[...r,...ms(n,r)],Mo()),u}function h1(u){let f=[];for(let h of u.nodes){let x=u.resolved[h.id];if(!x)continue;let{x1:y,y1:S,x2:E,y2:A}=x,L=y!==void 0&&S!==void 0&&E!==void 0&&A!==void 0?fi({x1:y,y1:S,x2:E,y2:A}):x,{x:U,y:W,w:X,h:ie}=L;U===void 0||W===void 0||X===void 0||ie===void 0||f.push({x:U,y:W,w:X,h:ie})}return Wt(f)??null}function Ec(u,f){let h=Yh(u??Dm??"");if(!h)return;let x=f??Rt,y=h1(h),S=m1(h),E=L=>Qx(h,(U,W,X)=>({parent:L,index:te(z(X.root,L)??X.root).length}),x1(h,L,y,x)),A=E(S);A&&S!==_a()&&g1(A.ops)&&(A=E(_a())),A&&(pe(A.ops,A.ids.length===1?"Paste":`Paste ${A.ids.length} elements`),he(A.ids))}function _a(){return Jn(_??n.root.id)}function m1(u){if(u.nodes.some(y=>y.type==="frame"&&y.component===!0))return n.root.id;if(_!==null||r.length===0)return _a();let f=new Set(u.nodes.map(y=>y.id)),h=r.length===1?z(n.root,r[0]):void 0;if(h?.type==="frame"&&!f.has(h.id))return Jn(h.id);let x=new Set(r.map(y=>Le(n.root,y)?.id??n.root.id));return x.size!==1?_a():Jn([...x][0])}function x1(u,f,h,x){let y={x:Tu,y:Tu};if(!h)return y;let S={x:h.x+h.w/2,y:h.y+h.h/2},E=f===n.root.id?void 0:wt(f);return E?x!==null&&x.x>=E.absX&&x.x<=E.absX+E.w&&x.y>=E.absY&&x.y<=E.absY+E.h?{x:x.x-E.absX-S.x,y:x.y-E.absY-S.y}:u.nodes.some(W=>Le(n.root,W.id)?.id===f)?y:h.x>=0&&h.y>=0&&h.x+h.w<=E.w&&h.y+h.h<=E.h?{x:0,y:0}:{x:E.w/2-S.x,y:E.h/2-S.y}:x?{x:x.x-S.x,y:x.y-S.y}:y}function g1(u){let f=h=>Gs(h).filter(x=>x.code==="component-cycle").length;return f(Ae(n,u).document.root)>f(n.root)}async function ng(u,f){let h=t.importImage;if(!h)return;let x=await Yd(u,t.maxImageEdge??2560);if(!x)return;let y=await h(new File([x.bytes],u.name,{type:x.type}));if(!y)return;let S=Jn((f?Xn(f):void 0)??_??n.root.id),E=z(n.root,S)??n.root,A=Yt(S),L=C.getResolution().nodes.get(S),{w:U,h:W}=Np(x.width,x.height,L?.w&&L.w>0?L.w:x.width,L?.h&&L.h>0?L.h:x.height),X=f??Rt,ie=Math.round((X?X.x-U/2:A.x)-A.x),re=Math.round((X?X.y-W/2:A.y)-A.y),xe=sg(n,u.name),ue=pn(n.root,"image");pe([{op:"setAsset",name:xe,value:y},{op:"insert",parent:S,index:te(E).length,node:ol({id:ue,x:ie,y:re,w:U,h:W,src:xe,fit:"cover"})}],"Place image"),he([ue])}async function y1(u,f,h){let x=t.importVideo;if(!x)return;let y=await Tb(u),S=u.type===""?new File([u],u.name,{type:Ob(u)}):u,E=await x(S,y?.ms);if(!E)return;if(h){pe([{op:"setAsset",name:h.src,value:E}],"Place video"),he([h.id]);return}let A=sg(n,u.name),L=Jn(Xn(f)??_??n.root.id),U=z(n.root,L)??n.root,W=Yt(L),X=C.getResolution().nodes.get(L),ie=y?.width??1920,re=y?.height??1080,{w:xe,h:ue}=Np(ie,re,X?.w&&X.w>0?X.w:ie,X?.h&&X.h>0?X.h:re),De=pn(n.root,"video");pe([{op:"setAsset",name:A,value:E},{op:"insert",parent:L,index:te(U).length,node:rl({id:De,x:Math.round(f.x-xe/2-W.x),y:Math.round(f.y-ue/2-W.y),w:xe,h:ue,src:A,fit:"cover",muted:!0})}],"Place video"),he([De])}async function rg(u,f){let h=t.importAudio;if(!h)return!1;let x=await h(u);return x?(pe(Rb(n,f,Nb(n,f,u.name),x),"Add music"),!0):!1}function Ea(){return t.importImage?Sv(n,$t().hidden):[]}function b1(){return Ea().flatMap(u=>{let f=qe(u.id);return f?[{frame:f,label:u.label,target:u.id===l}]:[]})}function v1(u){let f=null;return de(n.root,h=>{if(h.type!=="video"||typeof h.src!="string"||h.src===""||n.assets[h.src]!==void 0)return;let x=qe(h.id);x!==void 0&&Mt(x,u.x,u.y)&&(f=h)}),f}function og(u){return Ea().filter(h=>{let x=qe(h.id);return x!==void 0&&Mt(x,u.x,u.y)}).at(-1)??null}function w1(){return r.length!==1?null:Ea().find(u=>u.id===r[0])??null}async function Mc(u,f){let h=t.importImage;if(!h)return;let x=await Yd(f,t.maxImageEdge??2560);if(!x)return;let y=await h(new File([x.bytes],f.name,{type:x.type}));!y||n.assets[u.src]!==void 0||(pe([{op:"setAsset",name:u.src,value:y}],"Add image"),he([u.id]))}function k1(u){let f=e.ownerDocument.createElement("input");f.type="file",f.accept="image/*",f.addEventListener("change",()=>{let h=f.files?.[0];h&&Mc(u,h)}),f.click()}function sg(u,f){let h=f.replace(/\.[^.]+$/,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"image";if(u.assets[h]===void 0)return h;for(let x=2;;x+=1){let y=`${h}-${x}`;if(u.assets[y]===void 0)return y}}function Cc(){if(r.some(f=>Je(n,f)))return;let u=eg(S1());u&&(pe(u.ops,u.ids.length===1?"Duplicate":`Duplicate ${u.ids.length} elements`),he(u.ids))}function S1(){let u={x:Tu,y:Tu},f=r.length===1?r[0]:void 0;if(f===void 0||!Hn(n,f))return u;let h=C.getResolution(),x=h.nodes.get(f);if(!x)return u;let y=Hi(n,h);return{x:y.x-x.absX,y:y.y-x.absY}}function Ac(u,f){if(u.length===0)return;let h=Ae(n,u).document;pe([...u,...ps(n,h)],f)}function $c(){if(r.some(f=>Je(n,f)))return;let u=yp(n,r);u&&(Ac(u.ops,"Group"),he([u.groupId]))}function Oc(){let u=r.filter(y=>{let S=z(n.root,y);return S!==void 0&&Ne(S)&&!Je(n,y)});if(u.length===0)return;let f=n,h=[],x=[];for(let y of u){let S=z(f.root,y);S&&x.push(...te(S).map(A=>A.id));let E=bp(f,y);E.length!==0&&(h.push(...E),f=Ae(f,E).document)}_!==null&&u.includes(_)&&(_=null),Ac(h,u.length===1?"Ungroup":`Ungroup ${u.length} groups`),he(x)}function Tc(u){r.some(f=>Je(n,f))||Ac(vp(n,r,u),tA[u])}function _1(u,f,h){let x=z(n.root,f);if(!x||!me(x))return;let y=new Set(Ke(n.root,f));if(x.type==="instance"||Je(n,f)||f!==n.root.id&&u.some(ue=>Hn(n,ue)))return;let S=u.filter(ue=>ue!==n.root.id&&z(n.root,ue)&&!y.has(ue)&&!Je(n,ue)),E=fr(n.root,f),A=[...S,...qh(n,S).filter(ue=>fr(n.root,ue)!==E&&!y.has(ue))];if(A.length===0)return;let L=new Set(A),U=te(x).filter(ue=>!L.has(ue.id))[h]?.id,W=[],X=n;for(let ue of A){let De=te(z(X.root,f)??X.root).filter(Tt=>Tt.id!==ue),We=U===void 0?-1:De.findIndex(Tt=>Tt.id===U),Ot={op:"move",id:ue,parent:f,index:We===-1?De.length:We};W.push(Ot),X=Ae(X,[Ot]).document}if(A.every(ue=>M1(n,X,ue)))return;let ie=new Set(A.filter(ue=>Le(n.root,ue)?.id!==f).flatMap(ue=>wx(ue,X))),re=[];for(let ue of A){let De=ig(n,ue),We=ig(X,ue),Ot={x:De.x-We.x,y:De.y-We.y};if(!(Ot.x===0&&Ot.y===0))for(let Tt of no(ue,X)){let Co=an(Tt);Co&&(re.push({op:"set",id:Tt,prop:"x",value:Z(Co.x+Ot.x)}),re.push({op:"set",id:Tt,prop:"y",value:Z(Co.y+Ot.y)}))}}let xe=Ae(X,re).document;pe([...W,...re,...ps(n,xe,ie)],A.length===1?`Move ${A[0]}`:`Move ${A.length} layers`)}function E1(u={}){let f=n.root.children,h=f.filter(ue=>ue.type==="frame"&&ue.component!==!0),x=h.find(ue=>ue.id===u.after),y=C.getResolution(),S=x?y.nodes.get(x.id):void 0,E=S&&S.w>0?S.w:zv.w,A=S&&S.h>0?S.h:zv.h,L=null,U=-1/0;for(let ue of h.length>0?h:f){let De=y.nodes.get(ue.id);!De||De.absX+De.w<=U||(U=De.absX+De.w,L={x:U+H2,y:De.absY})}let W=L??{x:0,y:0},X=x??h[h.length-1],ie=X?f.indexOf(X)+1:f.length,re=pn(n.root,"frame"),xe=x?.type==="frame"?x.background:void 0;return pe([{op:"insert",parent:n.root.id,index:ie,node:Va({id:re,x:Z(W.x),y:Z(W.y),w:Z(E),h:Z(A),background:xe??Uv,children:[]})}],"Add frame"),he([re]),re}function M1(u,f,h){let x=Le(u.root,h),y=Le(f.root,h);return x?.id===y?.id&&x?.children.findIndex(S=>S.id===h)===y?.children.findIndex(S=>S.id===h)}function ig(u,f){let h=Ke(u.root,f).slice(0,-1).reverse(),x=Pe(u);for(let y of h){let S=z(u.root,y);if(!S||Ne(S))continue;let E=x.nodes.get(y);return E?{x:E.absX,y:E.absY}:{x:0,y:0}}return{x:0,y:0}}function Lc(u){let f=z(n.root,u);!f||!Bs(f)||(_=u,ce())}function Pc(){if(_===null)return;let u=_;_=Lx(u),he([u])}function Dc(){let u=z(n.root,_??n.root.id)??n.root,f=Ye(n.root).shapes;he(te(u).map(h=>h.id).filter(h=>It(h)&&!f.has(h)))}let C1={locked:["Lock","Unlock"],hidden:["Hide","Show"]};function ag(u){return u==="locked"?$t().locked:$t().hidden}function _o(u,f,h){let x=u.filter(E=>E!==n.root.id&&z(n.root,E)),y=h?x.filter(E=>!ag(f).has(E)):[...new Set(x.flatMap(E=>{let A=js(n.root,E,f);return A===void 0?[]:[A]}))];if(y.length===0)return;let S=C1[f][h?0:1];pe(y.map(E=>({op:"set",id:E,prop:f,value:h?!0:void 0})),y.length===1?`${S} ${y[0]}`:`${S} ${y.length} layers`)}function Eo(u,f){u.length!==0&&_o(u,f,!u.every(h=>ag(f).has(h)))}function Nc(u){let f=[];return de(n.root,h=>{h[u]===!0&&f.push(h.id)}),f}function Ma(u){let f=Nc(u);if(f.length===0)return;let h=u==="locked"?"Unlock all":"Show all";pe(f.map(x=>({op:"set",id:x,prop:u,value:void 0})),h)}function A1(u){R={...Xv,...u},fe?.close()}function Mo(){let u=r.filter(L=>L!==n.root.id),f=u.filter(L=>Je(n,L)),h=u.filter(L=>!Je(n,L)),x=h.filter(L=>Hn(n,L)),y=Ud(n,x);if(y>0){let U=`${x.length===1?x[0]:`${x.length} components`} is used in ${y} ${y===1?"place":"places"}. Delete it and detach ${y===1?"that instance":"those instances"}? Each keeps what it shows.`;if(!dg(U))return}let S=h.filter(L=>!x.includes(L)),E=[...f.map(L=>({op:"set",id:L,prop:"hidden",value:!0})),...x.length>0?Ap(n,x,C.getResolution()):[],...Gh(zb(n,S)),...O1(S),...S.map(L=>({op:"remove",id:L}))];if(E.length===0)return;let A=u.length;he([]),pe(E,A===1?"Delete element":`Delete ${A} elements`)}function $1(u,f){if(z(n.root,u)?.type!=="connector")return;let x=wt(u)?.values??{},[y,S]=f==="start"?["x1","y1"]:["x2","y2"];pe([{op:"set",id:u,prop:y,value:Z(x[y]??0)},{op:"set",id:u,prop:S,value:Z(x[S]??0)}],"Detach end")}function O1(u){let f=new Set;for(let x of u){let y=z(n.root,x);y&&de(y,S=>{f.add(S.id)})}let h=[];for(let[x,y]of In(n)){if(f.has(x))continue;let S=wt(x)?.values??{};for(let[E,A,L]of[["start","x1","y1"],["end","x2","y2"]]){let U=y[E];U===void 0||!f.has(U)||h.push({op:"set",id:x,prop:A,value:Z(S[A]??0)},{op:"set",id:x,prop:L,value:Z(S[L]??0)})}}return h}function dg(u){if(t.confirm)return t.confirm(u);let f=e.ownerDocument.defaultView;return typeof f?.confirm=="function"?f.confirm(u):!0}function Bs(u){return Ne(u)||u.type==="instance"}function Jn(u){let f=Ke(n.root,u),h=f.findIndex(x=>z(n.root,x)?.type==="instance");return h<=0?u:f[h-1]}function Rc(u=r){let f=Sp(n,[...u,...ms(n,u)],C.getResolution());return f?(_=null,pe(f.ops,"Create component"),he([f.instanceId]),f.flattened.length>0&&ke("notice",{message:`Made ${f.componentId}. ${f.flattened.length===1?"One position":`${f.flattened.length} positions`} measured from the page became numbers so the page looks the same: ${f.flattened.join(", ")}.`}),f.instanceId):null}function Ic(u=r){let f=u.filter(S=>z(n.root,S)?.type==="instance"),h=[],x=n,y=C.getResolution();for(let S of f){let E=Hd(x,S,y);E&&(h.push(...E),x=Ae(x,E).document)}h.length!==0&&(_!==null&&f.includes(_)&&(_=null),pe(h,f.length===1?"Detach instance":`Detach ${f.length} instances`),he(f.filter(S=>z(n.root,S)!==void 0)))}function ug(u){return z(n.root,u)?.type==="instance"&&!Je(n,u)?u:Lt(n.root,u)?.instance.id}function cg(u,f){let h=ug(u);if(h===void 0)return;let x=f??(h===u?void 0:u);pe(_p(n,h,x),x===void 0?"Reset overrides":"Reset part")}function T1(u,f){pe(Ep(n,u,f),`Swap to ${f}`)}function lg(u){let f=z(n.root,u),h=f?.type==="instance"?f:Ba(n.root,u);if(h?.type!=="instance")return;let x=z(n.root,h.component);x&&(_=null,he([x.id]),At([x.id]))}function Fc(u,f){let h=z(n.root,u);if(h?.type!=="frame"||h.component!==!0)return null;let x=f??L1(),y=Xn(x)??n.root.id,S=Yt(y),E=wt(u),A=Cp(n,u,y,{x:Math.round(x.x-S.x-(E?.w??0)/2),y:Math.round(x.y-S.y-(E?.h??0)/2)});return A?(pe(A.ops,`Place ${u}`),he([A.id]),A.id):null}function L1(){let u=e.getBoundingClientRect();return C.screenToDocument({x:u.width/2,y:u.height/2})}function Vs(){ht=null;let u=D.undo();u&&ax(u.ops,`Undo ${u.entry.label}`),fg()}function Hs(){ht=null;let u=D.redo();u&&ax(u.ops,`Redo ${u.entry.label}`),fg()}function fg(){if(!ae)return;let{anchor:u,head:f}=ae.getSelection();ae.setSelection(u,f)}function P1(u){if(!D.isTail(u))return!1;for(let f=u.length;f>0;f-=1)Vs();return!0}function pg(u,f,h,x){let y=z(n.root,u);if(!y)return;let S=y[f];if(sA(S,h))return;let E={op:"set",id:u,prop:f,value:h},A=st(y)&&Z2.has(f);pe(A?Sa([E]):[E],x??`Set ${f}`)}function D1(u,f){let h=n.brand?.theme==="dark"?n.themes?.dark:void 0;if(h!==void 0&&u in h){if(h[u]===f)return;pe([{op:"setTheme",value:{...n.themes,dark:{...h,[u]:f}}}],`Set $${u} in dark`);return}n.tokens[u]!==f&&pe([{op:"setToken",name:u,value:f}],`Set $${u}`)}function N1(u){u in n.tokens&&pe([{op:"setToken",name:u,value:void 0}],`Remove $${u}`)}function hg(u,f){let h=wt(u)?.values[f];h!==void 0&&pe([{op:"set",id:u,prop:f,value:Z(h)}],`Detach ${f}`)}function R1(u){let f=z(n.root,_??n.root.id)??n.root,h=[],x=Ye(n.root).shapes;for(let y of te(f)){if(!It(y.id)||x.has(y.id))continue;let S=qe(y.id);S&&xp(S,u)&&h.push(y.id)}return h}function St(u){typeof e.setPointerCapture=="function"&&e.setPointerCapture(u)}function Bc(u){e.hasPointerCapture?.(u)&&e.releasePointerCapture(u)}let mg=u=>{ae&&(px(),ae.handleKey(u)&&(u.preventDefault(),u.stopPropagation()))},xg=u=>{ae&&(u.preventDefault(),px(),ae.handleInput(u))},gg=()=>ae?.handleCompositionStart(),yg=u=>ae?.handleCompositionUpdate(u.data??""),bg=u=>ae?.handleCompositionEnd(u.data??""),vg=u=>{if(!e.ownerDocument.hasFocus())return;let f=u.relatedTarget;f instanceof Element&&f.closest("[data-vd-keeps-text]")||_r("blur")};return se.addEventListener("keydown",mg),se.addEventListener("beforeinput",xg),se.addEventListener("compositionstart",gg),se.addEventListener("compositionupdate",yg),se.addEventListener("compositionend",bg),se.addEventListener("blur",vg),e.addEventListener("pointerdown",Mx),e.addEventListener("pointermove",Cx),e.addEventListener("pointerup",va),e.addEventListener("pointercancel",va),e.addEventListener("pointerup",da),e.addEventListener("pointercancel",da),e.addEventListener("pointerleave",qx),e.addEventListener("dblclick",Vx),e.addEventListener("contextmenu",Bx),e.addEventListener("keydown",Px),e.addEventListener("keyup",Fx),e.addEventListener("copy",Nx),e.addEventListener("cut",Rx),e.addEventListener("paste",Ix),e.addEventListener("dragover",jx),e.addEventListener("dragleave",Kx),e.addEventListener("drop",Gx),k=!0,ee?.setTool(o),ee?.setHistory(!1,!1),ee?.setZoom(C.getCamera().zoom),xt(at(cc())),t.autoFit&&!t.camera&&Ge(()=>C.fitToContent()),t.history&&(D.restore(t.history),ee?.setHistory(D.canUndo,D.canRedo)),t.selection&&t.selection.length>0&&he(t.selection),ce(),{element:e,viewer:C,getDocument:()=>n,update(u){n=u,C.update(n),he(r),ce(),ke("problems",dc())},applyOps:(u,f)=>pe(u,f??"Apply changes"),setDocument:(u,f)=>pe(Cl(n,fp(u,n.root.id)),f??"Replace document"),getSelection:()=>r,setSelection:he,selectAll:Dc,deleteSelection:Mo,detachEnd:$1,lock:u=>_o(u??r,"locked",!0),unlock:u=>_o(u??r,"locked",!1),toggleLock:u=>Eo(u??r,"locked"),unlockAll:()=>Ma("locked"),hide:u=>_o(u??r,"hidden",!0),show:u=>_o(u??r,"hidden",!1),toggleHidden:u=>Eo(u??r,"hidden"),showAll:()=>Ma("hidden"),isLocked:u=>$t().locked.has(u),isHidden:u=>$t().hidden.has(u),setFeatures:A1,getFeatures:()=>R,moveLayers:_1,addFrame:E1,copy:So,cut:tg,paste:Ec,duplicate:Cc,group:$c,ungroup:Oc,reorder:Tc,scaleSelection:_k,getSpacing:Ak,setSpacing:Ck,align:Yx,distribute:Zx,canDistribute:u=>Jx(u)!==null,editText:Ps,endTextEditing:()=>_r("done"),getEditingText:()=>ae?.id??null,formatText:u=>ae?.format(u),getTextFormat:()=>ae?.activeMark()??{},getTextSelectionRects:lx,getTextRange:()=>{if(!ae)return null;let{anchor:u,head:f}=ae.getSelection();return{from:Math.min(u,f),to:Math.max(u,f)}},createComponent:Rc,detachInstance:Ic,resetOverrides:cg,swapComponent:T1,goToComponent:lg,placeInstance:Fc,getEnteredGroup:()=>_,enterGroup:Lc,exitGroup:Pc,getTool:()=>o,editPoints:Mr,stopEditingPoints:Rs,getPointEditing:()=>H?.id??null,convertToVector:u=>xc(u),merge:(u,f)=>bc(u,f),canMerge:u=>Sx(u),offersMerge:()=>t.merge!==void 0,mergeRefusal:()=>yc(),formatKeys:u=>(t.formatKeys??so)(u),mask:u=>vc(u),maskRefusal:u=>{let f=Is(u);return f.ok?void 0:f.why},maskedIn:u=>ya(u),releaseMask:u=>wc(u),crop:u=>ba(u),stopCropping:()=>{kc()},getCropping:()=>M,setTool:Mn,beginEdit:rk,endEdit:ix,undo:Vs,redo:Hs,canUndo:()=>D.canUndo,canRedo:()=>D.canRedo,getHistory:()=>D.snapshot(),setProperty:pg,fontFamilies:()=>{let u=new Map;for(let f of t.fonts?.faces()??[]){let h=u.get(f.family)??{weights:new Set,italic:!1};h.weights.add(f.weight),f.style==="italic"?h.italic=!0:(h.css===void 0||f.weight===400)&&(h.css=f.id),u.set(f.family,h)}return[...u.entries()].sort(([f],[h])=>f.localeCompare(h)).map(([f,h])=>({family:f,weights:[...h.weights].sort((x,y)=>x-y),italic:h.italic,...h.css===void 0?{}:{css:h.css}}))},assetUrl:u=>{let f=n.assets[u];return f?t.resolveAsset?.(f,u):void 0},addMusic:rg,canAddMusic:()=>t.importAudio!==void 0,setToken:D1,removeToken:N1,bindingsOf:nk,unbind:hg,getResolution:()=>C.getResolution(),getCamera:()=>C.getCamera(),getProblems:dc,on:ye,reveal:At,panBy:Qw,setPresence(u,f){c={ids:[...u],label:f??null},ce()},setHighlight(u){u.length===0&&p.length===0||(p=[...u],ce())},isHistoryTail:u=>D.isTail(u),undoTail:P1,historyTop:()=>D.top,destroy(){Ue(),e.removeEventListener("pointerup",da),e.removeEventListener("pointercancel",da),e.removeEventListener("pointerdown",Mx),e.removeEventListener("pointermove",Cx),e.removeEventListener("pointerup",va),e.removeEventListener("pointercancel",va),e.removeEventListener("pointerleave",qx),se.removeEventListener("keydown",mg),se.removeEventListener("beforeinput",xg),se.removeEventListener("compositionstart",gg),se.removeEventListener("compositionupdate",yg),se.removeEventListener("compositionend",bg),se.removeEventListener("blur",vg),se.remove(),vo&&clearTimeout(vo),e.removeEventListener("dblclick",Vx),e.removeEventListener("contextmenu",Bx),e.removeEventListener("copy",Nx),e.removeEventListener("cut",Rx),e.removeEventListener("paste",Ix),e.removeEventListener("dragover",jx),e.removeEventListener("dragleave",Kx),e.removeEventListener("drop",Gx),e.removeEventListener("keydown",Px),e.removeEventListener("keyup",Fx),fe?.destroy(),ee?.destroy(),G.destroy(),C.destroy(),P.remove(),$.clear(),e.style.cursor="",e.classList.remove("vd-editor")}}}function sA(e,t){return e===t?!0:ve(e)&&ve(t)?e.expr===t.expr:!1}function Ss(e){return e.metaKey||e.ctrlKey||e.altKey}function Lu(e){if(!(e instanceof HTMLElement)||e.classList.contains("vd-editor__input"))return!1;let t=e.tagName;return t==="INPUT"||t==="TEXTAREA"||e.isContentEditable}var m4=new Set(wr);function Ji(e){return e.map(t=>({value:t,label:`${t.charAt(0).toUpperCase()}${t.slice(1)}`}))}var uA=[{value:"nonzero",label:"Non-zero"},{value:"evenodd",label:"Even-odd"}].filter(e=>Ar.includes(e.value)),cA=Ji(tr),Yv=Ji(Zt),lA=Ji($r),fA=[{value:"left",label:"Left",icon:bt("text-left")},{value:"center",label:"Centre",icon:bt("text-center")},{value:"right",label:"Right",icon:bt("text-right")},{value:"justify",label:"Justify",icon:bt("text-justify")}].filter(e=>Qn.includes(e.value)),pA=[{value:"top",label:"Top",icon:bt("text-top")},{value:"middle",label:"Middle",icon:bt("text-middle")},{value:"bottom",label:"Bottom",icon:bt("text-bottom")}].filter(e=>er.includes(e.value)),Im={prop:"x",label:"X",kind:"number",prefix:"X"},Fm={prop:"y",label:"Y",kind:"number",prefix:"Y"},Ru={prop:"w",label:"W",kind:"number",prefix:"W"},Iu={prop:"h",label:"H",kind:"number",prefix:"H"},hA={prop:"rotation",label:"Rotation",kind:"number",icon:"rotate",fallback:"0"},Zv={prop:"opacity",label:"Opacity",kind:"number",icon:"opacity",percent:!0,fallback:"100%"},Du={prop:"radius",label:"Radius",kind:"radius",icon:"radius",span:"wide",fallback:"0"};var _s={heading:"Position",props:[Im,Fm,Ru,Iu,hA,Zv]},Nu={prop:"fill",label:"Fill",kind:"colour"},Fu={prop:"stroke",label:"Stroke",kind:"colour",span:"half"},Bu={prop:"strokeWidth",label:"Stroke width",kind:"number",prefix:"Width",fallback:"0"},Bm={present:"stroke",empty:"No stroke",add:{stroke:"#000000",strokeWidth:1},clear:["stroke","strokeWidth","dash","strokeAlign","cap","join"]},mA=[{value:"center",label:"Centre"},{value:"inside",label:"Inside"},{value:"outside",label:"Outside"}].filter(e=>Ur.includes(e.value)),Qv={prop:"strokeAlign",label:"Stroke position",kind:"select",options:mA,prefix:"Align",span:"half"},Vu={prop:"dash",label:"Dash",kind:"dash",prefix:"Dash",fallback:"Solid",span:"half"},Vm={prop:"cap",label:"Cap",kind:"select",options:cA,prefix:"Cap",span:"half"},xA={prop:"join",label:"Join",kind:"select",options:lA,prefix:"Join",span:"half"},Yi={heading:"Stroke",props:[Fu,Bu,Qv,Vu,Vm],optional:Bm},Jv=Ji(ur),gA=[{heading:"Line",props:[{prop:"start",label:"From",kind:"attachment",prefix:"From"},{prop:"x1",label:"From X",kind:"number",prefix:"X1"},{prop:"y1",label:"From Y",kind:"number",prefix:"Y1"},{prop:"end",label:"To",kind:"attachment",prefix:"To"},{prop:"x2",label:"To X",kind:"number",prefix:"X2"},{prop:"y2",label:"To Y",kind:"number",prefix:"Y2"},{prop:"route",label:"Route",kind:"select",options:Ji(Hr),prefix:"Route",span:"half"},{...Zv,span:"half"},{prop:"start",label:"Start head",kind:"select",options:Jv,prefix:"Start",span:"half"},{prop:"end",label:"End head",kind:"select",options:Jv,prefix:"End",span:"half"}]},{heading:"Stroke",props:[{...Fu,fallback:ci},{...Bu,fallback:String(li)},Vu,Vm]}],x4={instance:[{heading:"Instance",props:[Im,Fm,Ru,Iu]}],connector:gA,frame:[{heading:"Frame",props:[Im,Fm,Ru,Iu,Du,{prop:"clip",label:"Clip content",kind:"toggle"}]},{heading:"Fill",props:[{prop:"background",label:"Fill",kind:"colour"}]},Yi],canvas:[{heading:"Canvas",props:[Ru,Iu,{prop:"background",label:"Fill",kind:"colour"}]}],text:[_s,{heading:"Text",props:[{prop:"font",label:"Font",kind:"font",fallback:"Default"},{prop:"weight",label:"Style",kind:"style",span:"half"},{prop:"size",label:"Size",kind:"number",icon:"font-size",fallback:"16"},{prop:"lineHeight",label:"Line height",kind:"number",icon:"line-height",fallback:"Auto"},{prop:"letterSpacing",label:"Letter spacing",kind:"number",icon:"letter-spacing",fallback:"0"},{prop:"align",label:"Align",kind:"segmented",options:fA,span:"half"},{prop:"valign",label:"Vertical",kind:"segmented",options:pA,span:"half"}]},{heading:"Fill",props:[Nu]},{heading:"Stroke",props:[Fu,Bu,Vu],optional:Bm},{heading:"Link",props:[{prop:"content",label:"Link",kind:"link",icon:"link"}]}],rect:[{heading:"Position",props:[..._s.props,Du]},{heading:"Fill",props:[Nu]},Yi],ellipse:[_s,{heading:"Fill",props:[Nu]},Yi],image:[{heading:"Position",props:[..._s.props,Du]},{heading:"Image",props:[{prop:"fit",label:"Fit",kind:"select",options:Yv,prefix:"Fit"}]},Yi],video:[{heading:"Position",props:[..._s.props,Du]},{heading:"Video",props:[{prop:"fit",label:"Fit",kind:"select",options:Yv,prefix:"Fit"},{prop:"poster",label:"Poster frame (ms)",kind:"number",prefix:"Poster",fallback:"Start"},{prop:"start",label:"Trim start (ms)",kind:"number",prefix:"In",fallback:"0"},{prop:"end",label:"Trim end (ms)",kind:"number",prefix:"Out",fallback:"End"},{prop:"muted",label:"Muted",kind:"toggle",span:"half"},{prop:"loop",label:"Loop",kind:"toggle",span:"half"}]},Yi],vector:[_s,{heading:"Fill",props:[{...Nu,span:"half"},{prop:"rule",label:"Fill rule",kind:"select",options:uA,prefix:"Rule",span:"half"}]},{heading:"Stroke",props:[Fu,Bu,Qv,Vu,Vm,xA],optional:Bm}]};var g4=Cr.map(e=>({value:e,label:e.split("-").map((t,n)=>n===0?t.charAt(0).toUpperCase()+t.slice(1):t).join(" ")}));function Hu(e,t,n){let r=0;return e<n.left?r|=1:e>n.right&&(r|=2),t<n.top?r|=4:t>n.bottom&&(r|=8),r}function Yu(e,t){let[[n,r],[o,s]]=e,i=Hu(n,r,t),a=Hu(o,s,t);for(;;)if(i|a){if(i&a)return!1;{let{top:d,right:c,bottom:l,left:p}=t,m,g,b=a>i?a:i;b&8?(m=n+(o-n)*(l-r)/(s-r),g=l):b&4?(m=n+(o-n)*(d-r)/(s-r),g=d):b&2?(g=r+(s-r)*(c-n)/(o-n),m=c):b&1&&(g=r+(s-r)*(p-n)/(o-n),m=p),b==i?(n=m,r=g,i=Hu(n,r,t)):(o=m,s=g,a=Hu(o,s,t))}}else return!0}function Gu(e,t){return e.left<=t.right&&t.left<=e.right&&e.top<=t.bottom&&t.top<=e.bottom}function Cs(e,t){return e?{top:Math.min(e.top,t.top),right:Math.max(e.right,t.right),bottom:Math.max(e.bottom,t.bottom),left:Math.min(e.left,t.left)}:t}function Hm(e,t){return e?{top:Math.min(e.top,t[1]),right:Math.max(e.right,t[0]),bottom:Math.max(e.bottom,t[1]),left:Math.min(e.left,t[0])}:{top:t[1],right:t[0],bottom:t[1],left:t[0]}}function Zi(e){return Math.max(e.right-e.left,e.bottom-e.top)}function Qi(e,t){return{top:e[1]-t,right:e[0]+t,bottom:e[1]+t,left:e[0]-t}}function CA(e,t){return{top:e.top-t,right:e.right+t,bottom:e.bottom+t,left:e.left-t}}var ta=class e{constructor(t,n,r=16){this.boundingBox=t,this.depth=n,this.innerNodeCapacity=r,this.subtrees=null,this.pairs=[]}insert(t,n){if(!Gu(t,this.boundingBox))return!1;if(this.subtrees){for(let r=0;r<this.subtrees.length;r++)this.subtrees[r].insert(t,n);return!0}if(this.depth>0&&this.pairs.length>=this.innerNodeCapacity){this.ensureSubtrees();for(let r=0;r<this.pairs.length;r++){let[o,s]=this.pairs[r];for(let i=0;i<this.subtrees.length;i++)this.subtrees[i].insert(o,s)}this.pairs.length=0;for(let r=0;r<this.subtrees.length;r++)this.subtrees[r].insert(t,n);return!0}return this.pairs.push([t,n]),!0}find(t,n=new Set){if(!Gu(t,this.boundingBox))return n;for(let r=0;r<this.pairs.length;r++){let[o,s]=this.pairs[r];Gu(t,o)&&n.add(s)}if(this.subtrees)for(let r=0;r<this.subtrees.length;r++)this.subtrees[r].find(t,n);return n}findOnLineSegment(t,n=new Set){if(!Yu(t,this.boundingBox))return n;for(let[r,o]of this.pairs)Yu(t,r)&&n.add(o);if(this.subtrees)for(let r of this.subtrees)r.findOnLineSegment(t,n);return n}ensureSubtrees(){if(this.subtrees)return;let{top:t,right:n,bottom:r,left:o}=this.boundingBox,s=(this.boundingBox.left+this.boundingBox.right)/2,i=(this.boundingBox.top+this.boundingBox.bottom)/2;this.subtrees=[new e({top:t,right:s,bottom:i,left:o},this.depth-1,this.innerNodeCapacity),new e({top:t,right:n,bottom:i,left:s},this.depth-1,this.innerNodeCapacity),new e({top:i,right:s,bottom:r,left:o},this.depth-1,this.innerNodeCapacity),new e({top:i,right:n,bottom:r,left:s},this.depth-1,this.innerNodeCapacity)]}},ew=typeof process<"u"&&process.env.PATH_BOOL_DEV_ASSERTS;ew==="1"||ew==="0"||typeof process<"u"&&process.env.NODE_ENV;var bw=128,jm=1024,ea=2e4,AA=6,kr=1e-10,tw=1e-16,$A=1e-12,OA=.001,Xt={point:1e-6,linear:1e-4,param:1e-8,collinear:Number.MIN_VALUE*64},TA=50;function LA(e){let t=Number.isFinite(e)&&e>0?Math.min(1,e/TA):1;return{point:Xt.point*t,linear:Xt.linear*t,param:Xt.param,collinear:Xt.collinear}}var Uu=1e-12;function PA(e){let t=e[1],n=e[2],r=e[3],o=e[4],s=-t[0]+3*n[0]-3*r[0]+o[0],i=-t[1]+3*n[1]-3*r[1]+o[1],a=3*t[0]-6*n[0]+3*r[0],d=3*t[1]-6*n[1]+3*r[1],c=-3*t[0]+3*n[0],l=-3*t[1]+3*n[1],p=i*a-s*d,m=s*l-i*c,g=(-3*s*s*l*l+6*s*i*c*l+4*s*a*d*l-4*s*d*d*c-3*i*i*c*c-4*i*a*a*l+4*i*a*d*c)/(s*s*d*d-2*s*i*a*d+i*i*a*a);if(g<0)return null;let b=(m/p+Math.sqrt(g))/2,w=(m/p-Math.sqrt(g))/2;return Uu<=b&&b<=1-Uu&&Uu<=w&&w<=1-Uu?[b,w]:null}var nw=typeof Float32Array<"u"?Float32Array:Array;function DA(e,t){if(e===t){var n=t[1];e[1]=t[2],e[2]=n}else e[0]=t[0],e[1]=t[2],e[2]=t[1],e[3]=t[3];return e}function vw(e,t){var n=Math.sin(t),r=Math.cos(t);return e[0]=r,e[1]=n,e[2]=-n,e[3]=r,e}function NA(e,t,n){var r=t[0],o=t[1],s=t[2],i=t[3],a=t[4],d=t[5],c=n[0],l=n[1],p=n[2],m=n[3],g=n[4],b=n[5];return e[0]=r*c+s*l,e[1]=o*c+i*l,e[2]=r*p+s*m,e[3]=o*p+i*m,e[4]=r*g+s*b+a,e[5]=o*g+i*b+d,e}function RA(e,t,n){var r=t[0],o=t[1],s=t[2],i=t[3],a=t[4],d=t[5],c=Math.sin(n),l=Math.cos(n);return e[0]=r*l+s*c,e[1]=o*l+i*c,e[2]=r*-c+s*l,e[3]=o*-c+i*l,e[4]=a,e[5]=d,e}function IA(e,t,n){var r=t[0],o=t[1],s=t[2],i=t[3],a=t[4],d=t[5],c=n[0],l=n[1];return e[0]=r*c,e[1]=o*c,e[2]=s*l,e[3]=i*l,e[4]=a,e[5]=d,e}function FA(e,t){var n=Math.sin(t),r=Math.cos(t);return e[0]=r,e[1]=n,e[2]=-n,e[3]=r,e[4]=0,e[5]=0,e}function BA(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=t[0],e[5]=t[1],e}var VA=NA;function HA(){var e=new nw(2);return nw!=Float32Array&&(e[0]=0,e[1]=0),e}function Km(e,t,n){return e[0]=t,e[1]=n,e}function na(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e}function UA(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e}function Ju(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e}function zA(e){var t=e[0],n=e[1];return t*t+n*n}function rw(e,t){var n=t[0],r=t[1],o=n*n+r*r;return o>0&&(o=1/Math.sqrt(o)),e[0]=t[0]*o,e[1]=t[1]*o,e}function Ms(e,t){return e[0]*t[0]+e[1]*t[1]}function He(e,t,n,r){var o=t[0],s=t[1];return e[0]=o+r*(n[0]-o),e[1]=s+r*(n[1]-s),e}function Zu(e,t,n){var r=t[0],o=t[1];return e[0]=n[0]*r+n[2]*o,e[1]=n[1]*r+n[3]*o,e}function zu(e,t,n){var r=t[0],o=t[1];return e[0]=n[0]*r+n[2]*o+n[4],e[1]=n[1]*r+n[3]*o+n[5],e}function jA(e,t,n,r){var o=t[0]-n[0],s=t[1]-n[1],i=Math.sin(r),a=Math.cos(r);return e[0]=o*a-s*i+n[0],e[1]=o*i+s*a+n[1],e}var Kn=UA,ow=zA;(function(){var e=HA();return function(t,n,r,o,s,i){var a,d;for(n||(n=2),r||(r=0),o?d=Math.min(o*n+r,t.length):d=t.length,a=r;a<d;a+=n)e[0]=t[a],e[1]=t[a+1],s(e,e,i),t[a]=e[0],t[a+1]=e[1];return t}})();var Qu=2*Math.PI;function KA(e,t,n,r,o){return(e-t)/(n-t)*(o-r)+r}function ct(e,t,n){return e+(t-e)*n}function Gn(e){return e/180*Math.PI}function sw(e,t){return Math.atan2(e[0]*t[1]-e[1]*t[0],Ms(e,t))}function Ce(){return[0,0]}function ut(e,t,n=0){return Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n}function ww(){return new Float64Array([1,0,0,1])}function iw(){return new Float64Array([1,0,0,1,0,0])}function ec(e){return Number.isFinite(e)}function aw([e,t]){return Number.isFinite(e)&&Number.isFinite(t)}function kw(e){if(!Number.isFinite(e))return 0;let t=(e%360+360)%360;return t>180&&(t-=360),t}function ho(e,t,n,r){let o=n[0]-t[0],s=n[1]-t[1],i=o*o+s*s;if(i<=r*r){let d=e[0]-t[0],c=e[1]-t[1];return Math.hypot(d,c)}return Math.abs((e[0]-t[0])*s-(e[1]-t[1])*o)/Math.sqrt(i)}function As(e,t=kr){let n=e[1],r=_n(e),o=r[0]-n[0],s=r[1]-n[1],i=o*o+s*s<=t*t;switch(e[0]){case"L":return!0;case"Q":return ho(e[2],n,r,t)<=t;case"C":return ho(e[2],n,r,t)<=t&&ho(e[3],n,r,t)<=t;case"A":return i||!Number.isFinite(e[2])||!Number.isFinite(e[3])||Math.abs(e[2])<=t||Math.abs(e[3])<=t}}function GA(e,t){let n=e[1],r=_n(e);if(e[0]==="A")return!ec(e[2])||!ec(e[3])||Math.abs(e[2])<=kr||Math.abs(e[3])<=kr?["L",n,r]:mo(e);if(e[0]!=="C"&&e[0]!=="Q")return e;let o=r[0]-n[0],s=r[1]-n[1],i=o*o+s*s;if(o===0&&s===0){if(e[0]==="Q")return["L",n,r];let p=b=>(b[0]-n[0])**2+(b[1]-n[1])**2,[m,g]=p(e[2])>=p(e[3])?[e[2],e[3]]:[e[3],e[2]];return ho(g,n,m,kr)<=kr?["L",n,r]:e}if(i<=t*t)return e;let a=p=>((p[0]-n[0])*o+(p[1]-n[1])*s)/i,d=t/Math.sqrt(i);if(e[0]==="Q"){if(ho(e[2],n,r,t)>t)return e;let p=a(e[2]);return p<-d||p>1+d?e:["L",n,r]}if(ho(e[2],n,r,t)>t||ho(e[3],n,r,t)>t)return e;let c=a(e[2]),l=a(e[3]);return c<-d||l-c<-d||l>1+d?e:["L",n,r]}function mo(e){let t=Math.abs(e[2]),n=Math.abs(e[3]),r=e[4];return t<n&&([t,n]=[n,t],r+=90),t===n?r=0:r=(kw(r)%180+180)%180,["A",e[1],t,n,r,e[5],e[6],e[7]]}function tc(e){return e[1]}function _n(e){switch(e[0]){case"L":return e[2];case"C":return e[4];case"Q":return e[3];case"A":return e[7]}}function ra(e){switch(e[0]){case"L":return["L",e[2],e[1]];case"C":return["C",e[4],e[3],e[2],e[1]];case"Q":return["Q",e[3],e[2],e[1]];case"A":return["A",e[7],e[2],e[3],e[4],e[5],!e[6],e[1]]}}var xo=(()=>{let e=Ce(),t=ww(),n=Ce(),r=Ce();return function([s,i,a,d,c,l,p,m]){if(!aw(i)||!aw(m)||(c=kw(c),!ec(a)||!ec(d)||Math.abs(a)<=kr||Math.abs(d)<=kr))return null;vw(t,-Gn(c)),Kn(e,i,m),Ju(e,e,.5),Zu(e,e,t);let g=a*a,b=d*d,w=e[0]*e[0],k=e[1]*e[1];a=Math.abs(a),d=Math.abs(d);let _=w/g+k/b;if(_>1){let C=Math.sqrt(_);a*=C,d*=C;let G=Math.abs(_);g*=G,b*=G}let M=l===p?-1:1,R=g*k+b*w;if(R===0)return null;let B=g*b-g*k-b*w,D=Math.max(0,B/R),V=Math.sqrt(D),T=M*V*(a*e[1]/d),O=M*V*(-d*e[0]/a);DA(t,t),na(n,i,m),Ju(n,n,.5),Zu(r,[T,O],t),na(r,r,n);let j=[(e[0]-T)/a,(e[1]-O)/d],$=sw([1,0],j),P=sw(j,[(-e[0]-T)/a,(-e[1]-O)/d]);return!p&&P>0?P-=Qu:p&&P<0&&(P+=Qu),{center:[r[0],r[1]],theta1:$,deltaTheta:P,rx:a,ry:d,phi:c}}})(),dw=(()=>{let e=Ce(),t=Ce(),n=ww();return function({center:o,theta1:s,deltaTheta:i,rx:a,ry:d,phi:c}){vw(n,Gn(c)),Km(e,a*Math.cos(s),d*Math.sin(s)),Zu(e,e,n),na(e,e,o),Km(t,a*Math.cos(s+i),d*Math.sin(s+i)),Zu(t,t,n),na(t,t,o);let l=Math.abs(i)>Math.PI,p=i>0;return["A",[e[0],e[1]],a,d,c,l,p,[t[0],t[1]]]}})(),nc=(()=>{let e=Ce(),t=Ce(),n=Ce(),r=Ce(),o=Ce(),s=Ce();return function(a,d,c){if(As(a))return He(s,a[1],_n(a),d),c[0]=s[0],c[1]=s[1],c;switch(a[0]){case"L":He(s,a[1],a[2],d);break;case"C":He(e,a[1],a[2],d),He(t,a[2],a[3],d),He(n,a[3],a[4],d),He(r,e,t,d),He(o,t,n,d),He(s,r,o,d);break;case"Q":He(e,a[1],a[2],d),He(t,a[2],a[3],d),He(s,e,t,d);break;case"A":{let l=xo(a);if(!l){He(s,a[1],a[7],d);break}let{deltaTheta:p,phi:m,theta1:g,rx:b,ry:w,center:k}=l,_=g+d*p;Km(s,b*Math.cos(_),w*Math.sin(_)),jA(s,s,[0,0],Gn(m)),na(s,s,k);break}}return c[0]=s[0],c[1]=s[1],c}})(),Sn=(()=>{let e=Ce();return function(n,r){return nc(n,r,e),[e[0],e[1]]}})(),Sw=(()=>{let e=Ce();return function(n,r,o){if(As(n)){let s=n[1],i=_n(n);return o[0]=i[0]-s[0],o[1]=i[1]-s[1],o}switch(n[0]){case"Q":{let s=n[1],i=n[2],a=n[3],d=i[0]-s[0],c=i[1]-s[1],l=a[0]-i[0],p=a[1]-i[1];return o[0]=2*((1-r)*d+r*l),o[1]=2*((1-r)*c+r*p),o}case"C":{let s=n[1],i=n[2],a=n[3],d=n[4],c=i[0]-s[0],l=i[1]-s[1],p=a[0]-i[0],m=a[1]-i[1],g=d[0]-a[0],b=d[1]-a[1],w=1-r;return o[0]=3*(w*w*c+2*w*r*p+r*r*g),o[1]=3*(w*w*l+2*w*r*m+r*r*b),o}case"A":{let s=xo(mo(n));if(!s)return o[0]=n[7][0]-n[1][0],o[1]=n[7][1]-n[1][1],o;let{deltaTheta:i,phi:a,theta1:d,rx:c,ry:l}=s,p=d+r*i,m=Math.cos(Gn(a)),g=Math.sin(Gn(a)),b=-c*Math.sin(p)*i,w=l*Math.cos(p)*i;return e[0]=m*b-g*w,e[1]=g*b+m*w,o[0]=e[0],o[1]=e[1],o}}}})(),Xm=(()=>{let e=iw(),t=iw();return function(r,o=Math.PI/2){let s=xo(mo(r));if(!s)return[["L",r[1],r[7]]];let{center:i,theta1:a,deltaTheta:d,rx:c,ry:l,phi:p}=s,m=Math.ceil(Math.abs(d)/o);BA(e,i),RA(e,e,Gn(p)),IA(e,e,[c,l]);let g=[],b=d/m,w=4/3*Math.tan(b/4),k=Math.sin(b),_=Math.cos(b);for(let M=0;M<m;M++){let R=[1,0],B=[1,w],D=[_+w*k,k-w*_],V=[_,k];FA(t,a+M*b),VA(t,e,t),zu(R,R,t),zu(B,B,t),zu(D,D,t),zu(V,V,t),g.push(["C",R,B,D,V])}return g}})();function qA(e,t,n,r,o){let s=ct(e,t,o),i=ct(t,n,o),a=ct(n,r,o),d=ct(s,i,o),c=ct(i,a,o);return ct(d,c,o)}function uw(e,t,n,r){let o=Math.min(e,r),s=Math.max(e,r);function i(m){if(!(0<m&&m<1))return;let g=qA(e,t,n,r,m);o=Math.min(o,g),s=Math.max(s,g)}let a=3*(-e+3*t-3*n+r),d=6*(e-2*t+n),c=3*(t-e);if(Math.abs(a)<=1e-12*Math.max(Math.abs(d),Math.abs(c)))return d!==0&&i(-c/d),[o,s];let l=d*d-4*a*c;if(l<0)return[o,s];let p=-.5*(d+(d<0?-1:1)*Math.sqrt(l));return i(p/a),p!==0&&i(c/p),[o,s]}function WA(e,t,n,r){let o=ct(e,t,r),s=ct(t,n,r);return ct(o,s,r)}function cw(e,t,n){let r=Math.min(e,n),o=Math.max(e,n),s=e-2*t+n;if(s===0)return[r,o];let i=(e-t)/s;if(0<=i&&i<=1){let a=WA(e,t,n,i);r=Math.min(r,a),o=Math.max(o,a)}return[r,o]}function XA(e,t,n){let r=Math.min(t,n),o=Math.max(t,n);return e+Qu*Math.ceil((r-e)/Qu)<=o}function Nt(e){if(As(e)){let t=e[1],n=_n(e);return{top:Math.min(t[1],n[1]),right:Math.max(t[0],n[0]),bottom:Math.max(t[1],n[1]),left:Math.min(t[0],n[0])}}switch(e[0]){case"L":return{top:Math.min(e[1][1],e[2][1]),right:Math.max(e[1][0],e[2][0]),bottom:Math.max(e[1][1],e[2][1]),left:Math.min(e[1][0],e[2][0])};case"C":{let[t,n]=uw(e[1][0],e[2][0],e[3][0],e[4][0]),[r,o]=uw(e[1][1],e[2][1],e[3][1],e[4][1]);return{top:r,right:n,bottom:o,left:t}}case"Q":{let[t,n]=cw(e[1][0],e[2][0],e[3][0]),[r,o]=cw(e[1][1],e[2][1],e[3][1]);return{top:r,right:n,bottom:o,left:t}}case"A":{let t=xo(mo(e));if(!t)return Hm(Qi(e[1],0),e[7]);let{theta1:n,deltaTheta:r,phi:o,center:s,rx:i,ry:a}=t;if(o===0||i===a){let l=n+r,p=Hm(Qi(e[1],0),e[7]),m=Gn(o),g=[[Math.PI-m,[s[0]-i,s[1]]],[-Math.PI/2-m,[s[0],s[1]-a]],[-m,[s[0]+i,s[1]]],[Math.PI/2-m,[s[0],s[1]+a]]];for(let[b,w]of g)XA(b,n,l)&&(p=Hm(p,w));return CA(p,1e-11)}let d=Xm(e,Math.PI/16),c=null;for(let l of d)c=Cs(c,Nt(l));return c||Qi(e[1],0)}}}function Gm(e,t){let n=e[1],r=e[2],o=He(Ce(),n,r,t);return[["L",n,o],["L",o,r]]}function qu(e,t){let n=e[1],r=e[2],o=e[3],s=e[4],i=He(Ce(),n,r,t),a=He(Ce(),r,o,t),d=He(Ce(),o,s,t),c=He(Ce(),i,a,t),l=He(Ce(),a,d,t),p=He(Ce(),c,l,t);return[["C",n,i,c,p],["C",p,l,d,s]]}function YA(e,t){let n=e[1],r=e[2],o=e[3],s=He(Ce(),n,r,t),i=He(Ce(),r,o,t),a=He(Ce(),s,i,t);return[["Q",n,s,a],["Q",a,i,o]]}function JA(e,t){let n=xo(mo(e));if(!n)return Gm(["L",e[1],e[7]],t);let r=n.deltaTheta*t;return[dw({...n,deltaTheta:r}),dw({...n,theta1:n.theta1+r,deltaTheta:n.deltaTheta-r})]}function Ym(e,t){if(As(e))return Gm(["L",e[1],_n(e)],t);switch(e[0]){case"L":return Gm(e,t);case"C":return qu(e,t);case"Q":return YA(e,t);case"A":return JA(e,t)}}function qm([[e,t],[n,r]],[[o,s],[i,a]],d){let c=n-e,l=o-i,p=o-e,m=r-t,g=s-a,b=s-t,w=c*g-m*l;if(Math.abs(w)<d.collinear)return null;let k=(p*g-b*l)/w,_=(c*b-m*p)/w;return-d.param<=k&&k<=1+d.param&&-d.param<=_&&_<=1+d.param?[k,_]:null}function ZA(e,t,n){return!!qm(e,t,n)}function Es(e){let[t,n]=Ym(e.seg,.5),r=(e.startParam+e.endParam)/2;return[{seg:t,startParam:e.startParam,endParam:r,boundingBox:Nt(t)},{seg:n,startParam:r,endParam:e.endParam,boundingBox:Nt(n)}]}function lw(e){switch(e[0]){case"L":return[e[1],e[2]];case"C":return[e[1],e[4]];case"Q":return[e[1],e[3]];case"A":return[e[1],e[7]]}}function QA({seg:e,boundingBox:t},{seg:n,boundingBox:r},o){return e[0]==="L"?n[0]==="L"?ZA([e[1],e[2]],[n[1],n[2]],o):Yu([e[1],e[2]],r):n[0]==="L"?Yu([n[1],n[2]],t):Gu(t,r)}function rc(e,t,n){let r=e[0];if(t[0]!==r)return!1;switch(r){case"L":return ut(e[1],t[1],n)&&ut(e[2],t[2],n);case"C":return ut(e[1],t[1],n)&&ut(e[2],t[2],n)&&ut(e[3],t[3],n)&&ut(e[4],t[4],n);case"Q":return ut(e[1],t[1],n)&&ut(e[2],t[2],n)&&ut(e[3],t[3],n);case"A":return ut(e[1],t[1],n)&&Math.abs(e[2]-t[2])<n&&Math.abs(e[3]-t[3])<n&&(Math.abs(e[2]-e[3])<n||Math.abs(e[4]-t[4])<n)&&e[5]===t[5]&&e[6]===t[6]&&ut(e[7],t[7],n)}}function e$(e,t,n){let r=Kn([0,0],e[1],e[0]),o=Kn([0,0],t[1],t[0]);rw(r,r),rw(o,o);let s=Math.abs(Ms(r,o));return Math.abs(s-1)<n}var t$=(()=>{let e=Ce(),t=Ce(),n=Ce(),r=Ce(),o=Ce(),s=Ce();return function(a,d){Kn(e,a[1],a[0]),Kn(t,d[1],d[0]),Ju(e,e,1/ow(e)),Ju(t,t,1/ow(t));let c=[];Kn(n,d[0],a[0]);let l=Ms(n,e);l>=0&&l<=1&&c.push([l,0]),Kn(r,d[1],a[0]);let p=Ms(r,e);p>=0&&p<=1&&c.push([p,1]),Kn(o,a[0],d[0]);let m=Ms(o,t);m>=0&&m<=1&&c.push([0,m]),Kn(s,a[1],d[0]);let g=Ms(s,t);return g>=0&&g<=1&&c.push([1,g]),c}})(),fw=8;function n$(e,t,n,r,o){for(let s=1;s<fw;s++){let i=s/fw,a=Sn(e,ct(n.t0,r.t0,i)),d=Sn(t,ct(n.t1,r.t1,i));if(Math.hypot(a[0]-d[0],a[1]-d[1])>o.point)return!1}return!0}var Um=2*Math.PI;function r$(e,t,n){if(e[0]!=="A"||t[0]!=="A")return null;let r=xo(mo(e)),o=xo(mo(t));if(!r||!o||Math.abs(r.center[0]-o.center[0])>n.point||Math.abs(r.center[1]-o.center[1])>n.point||Math.abs(r.rx-o.rx)>n.point||Math.abs(r.ry-o.ry)>n.point)return null;let s=Math.max(r.rx,r.ry);if(!(s>0))return null;let i=n.point/s;if(Math.abs(r.rx-r.ry)>n.point){let M=Math.abs(((r.phi-o.phi)%180+180)%180);if(Math.min(M,180-M)>i*180/Math.PI)return null}if(Math.abs(r.deltaTheta)<i||Math.abs(o.deltaTheta)<i)return null;let a=Gn(r.phi),d=Gn(o.phi),c=(M,R)=>{let B=M.theta1+R,D=M.theta1+M.deltaTheta+R;return B<=D?[B,D]:[D,B]},[l,p]=c(r,a),[m,g]=c(o,d),b=(M,R,B)=>{let D=(B-R-M.theta1)/M.deltaTheta;return D<0?0:D>1?1:D},w=[],k=Math.floor((l-g)/Um),_=Math.ceil((p-m)/Um);for(let M=k;M<=_;M++){let R=M*Um,B=Math.max(l,m+R),D=Math.min(p,g+R);if(!(D<B-i)){if(D-B<=i){let V=(B+D)/2;w.push([b(r,a,V),b(o,d,V-R)]);continue}w.push([b(r,a,B),b(o,d,B-R)]),w.push([b(r,a,D),b(o,d,D-R)])}}return w}function pw(e){switch(e[0]){case"L":return e[2];case"C":return e[4];case"Q":return e[3];case"A":return e[7]}}function o$(e,t,n){return e[0]!==t[0]||!ut(e[1],pw(t),n.point)||!ut(pw(e),t[1],n.point)?!1:rc(e,ra(t),n.point)}var hw=16;function s$(e,t,n,r){if(n.length<2)return null;let o=n[0],s=n[n.length-1],i=s.t0-o.t0,a=s.t1-o.t1;if(Math.abs(i)<r.param||Math.abs(a)<r.param)return null;let d=a/i;if(!Number.isFinite(d))return null;let c=B=>o.t1+(B-o.t0)*d,l=B=>o.t0+(B-o.t1)/d,p=l(0),m=l(1),g=Math.max(0,Math.min(p,m)),b=Math.min(1,Math.max(p,m));if(!(b>g))return null;let w=B=>B<0?0:B>1?1:B,k=B=>B<r.param?0:B>1-r.param?1:B;g=k(g),b=k(b);let _=[[g,k(w(c(g)))],[b,k(w(c(b)))]],M=Sn(e,_[0][0]),R=Sn(e,_[1][0]);if(Math.hypot(M[0]-R[0],M[1]-R[1])<=r.point)return null;for(let B=0;B<=hw;B++){let D=B/hw,V=Sn(e,ct(_[0][0],_[1][0],D)),T=Sn(t,ct(_[0][1],_[1][1],D));if(Math.hypot(V[0]-T[0],V[1]-T[1])>r.point)return null}return _}function i$(e,t,n,r){if(n.length<=1)return n.map(a=>[a.t0,a.t1]);let o=[...n].sort((a,d)=>a.t0-d.t0),s=[[o[0]]];for(let a=1;a<o.length;a++){let d=s[s.length-1],c=d[d.length-1];n$(e,t,c,o[a],r)?d.push(o[a]):s.push([o[a]])}let i=e[0]===t[0];return s.flatMap(a=>{let d=i?s$(e,t,a,r):null;return d||[d$(e,t,a)]})}var a$=40,ju=(Math.sqrt(5)-1)/2;function d$(e,t,n){let r=n[0];for(let b of n)b.gap<r.gap&&(r=b);if(n.length<2)return[r.t0,r.t1];let o=n[0],s=n[n.length-1],i=b=>{let w=ct(o.t0,s.t0,b),k=ct(o.t1,s.t1,b),_=Sn(e,w),M=Sn(t,k);return{t0:w,t1:k,gap:Math.hypot(_[0]-M[0],_[1]-M[1])}},a=0,d=1,c=d-ju*(d-a),l=a+ju*(d-a),p=i(c),m=i(l);for(let b=0;b<a$;b++)p.gap<m.gap?(d=l,l=c,m=p,c=d-ju*(d-a),p=i(c)):(a=c,c=l,p=m,l=a+ju*(d-a),m=i(l));let g=p.gap<m.gap?p:m;return g.gap<r.gap?[g.t0,g.t1]:[r.t0,r.t1]}function u$(e,t,n){let r=e,o=t;if(r[0]==="L"&&o[0]==="L"){let m=[r[1],r[2]],g=[o[1],o[2]];if(e$(m,g,n.collinear))return t$(m,g);let b=qm(m,g,n);return b?[b]:[]}let s=r$(r,o,n);if(s)return s;let i=[[{seg:r,startParam:0,endParam:1,boundingBox:Nt(r)},{seg:o,startParam:0,endParam:1,boundingBox:Nt(o)}]],a=[];function d(m,g){let b=Sn(e,m),w=Sn(t,g);a.push({t0:m,t1:g,gap:Math.hypot(b[0]-w[0],b[1]-w[1])})}function c(m,g){let b=lw(m.seg),w=lw(g.seg),k=qm(b,w,n);k&&d(ct(m.startParam,m.endParam,k[0]),ct(g.startParam,g.endParam,k[1]))}function l(m){return As(m.seg,kr)||Zi(m.boundingBox)<=n.linear||m.endParam-m.startParam<n.param}let p=0;for(;i.length;){if(p++>bw){for(let[b,w]of i)c(b,w);break}let m=[],g=!1;for(let[b,w]of i){if(rc(b.seg,w.seg,n.point)){d(b.startParam,w.startParam),d(b.endParam,w.endParam);continue}if(o$(b.seg,w.seg,n)){d(b.startParam,w.endParam),d(b.endParam,w.startParam);continue}let k=l(b),_=l(w);if(k&&_)c(b,w);else{let M,R;if(!k&&!_){let B=Zi(b.boundingBox),D=Zi(w.boundingBox);B>D?(M=Es(b),R=[w]):D>B?(M=[b],R=Es(w)):(M=Es(b),R=Es(w))}else M=k?[b]:Es(b),R=_?[w]:Es(w);for(let B of M){for(let D of R)if(QA(B,D,n)&&(m.push([B,D]),m.length>=ea)){g=!0;break}if(m.length>=ea)break}}if(m.length>=ea)break}if(g){for(let[b,w]of i)c(b,w);break}i=m}return i$(e,t,a,n)}var mw=Object.hasOwn;function qn(e){let t=new WeakMap;return(n,...r)=>{if(t.has(n))return t.get(n);{let o=e(n,...r);return t.set(n,o),o}}}function*c$(e,t){let n=0;for(let r of e)yield t(r,n++)}var zm=2*Math.PI,l$=8,_w=8,vt;(function(e){e[e.Union=0]="Union",e[e.Difference=1]="Difference",e[e.Intersection=2]="Intersection",e[e.Exclusion=3]="Exclusion",e[e.Division=4]="Division",e[e.Fracture=5]="Fracture"})(vt||(vt={}));var go;(function(e){e[e.NonZero=0]="NonZero",e[e.EvenOdd=1]="EvenOdd"})(go||(go={}));function f$(e){return e.values().next().value}function p$(e,t){let n=new Array(e).fill(!1);return n[t]=!0,n}function h$(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function m$(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Ku(e,t){for(let n=0;n<t.length;n++)t[n]&&(e[n]=!0)}function xw(e,t,n){let[,r,o]=e,s=n?-1:1;for(let i=0;i<t.length;i++)t[i]&&(r.windings[i]+=s,o.windings[i]-=s)}function Ew(){let e=0;return qn(()=>e++)}function x$(e,t){return n=>({seg:n,parents:p$(e,t)})}function g$(e,t){for(let n=0;n<e.length;n++){let r=e[n];if(r.seg[0]!=="C")continue;let o=PA(r.seg);if(!o)continue;o[0]>o[1]&&o.reverse();let[s,i]=o;if(Math.abs(s-i)<Xt.param){let[a,d]=qu(r.seg,s);e[n]={seg:a,parents:r.parents},e.push({seg:d,parents:r.parents})}else{let[a,d]=qu(r.seg,s),[c,l]=qu(d,(i-s)/(1-s));e[n]={seg:a,parents:r.parents},e.push({seg:c,parents:r.parents},{seg:l,parents:r.parents})}}}function y$(e,t){let n=e.map(c=>({...c,boundingBox:Nt(c.seg)})),r=n.reduce((c,{boundingBox:l})=>Cs(c,l),null);if(!r)return{edges:[],totalBoundingBox:null};let o=new ta(r,l$),s={};function i(c,l){mw(s,c)||(s[c]=[]),s[c].push(l)}let a=0;for(let c=0;c<n.length;c++){let l=n[c],p=o.find(l.boundingBox);for(let m of p){if(a>=ea)break;let g=e[m],b=u$(l.seg,g.seg,t);for(let[w,k]of b)i(c,w),i(m,k);a++}if(o.insert(l.boundingBox,c),a>=ea)break}let d=[];for(let c=0;c<n.length;c++){let l=n[c];if(!mw(s,c)){d.push(l);continue}let p=s[c];p.sort((b,w)=>b-w),p.length+1>jm&&(p.length=Math.max(0,jm-1));let m=l.seg,g=0;for(let b=0;b<p.length;b++){let w=p[b];if(w>1-Xt.param)break;let k=(w-g)/(1-g);if(g=w,k<Xt.param||k>1-Xt.param)continue;let[_,M]=Ym(m,k);d.push({seg:_,boundingBox:Nt(_),parents:l.parents}),m=M}d.push({seg:m,boundingBox:Nt(m),parents:l.parents})}return{edges:d,totalBoundingBox:r}}function b$(e,t,n){let r=new ta(t,_w),o=[];function s(g){let b=Qi(g,n.point),w=r.find(b);if(w.size)return f$(w);{let k={point:g,outgoingEdges:[]};return r.insert(b,k),o.push(k),k}}let i=Ew(),a=new Map;function d(g,b){return a.get(g)?.get(b)}function c(g,b){let w=a.get(g);w||(w=new Map,a.set(g,w));let k=w.get(b);return k||(k=[],w.set(b,k)),k}let l=e.flatMap(g=>{let b=tc(g.seg),w=_n(g.seg);if(ut(b,w,n.point))switch(g.seg[0]){case"L":return[];case"C":if(ut(g.seg[1],g.seg[2],n.point)&&ut(g.seg[3],g.seg[4],n.point))return[];break;case"Q":if(ut(g.seg[1],g.seg[2],n.point))return[];break;case"A":return[]}let k=s(b),_=s(w),M=i(k),R=i(_),B=d(M,R);if(B){let O=B.find(j=>rc(j[0].seg,g.seg,n.point));if(O)return xw(O,g.parents,!1),Ku(O[1].parents,g.parents),Ku(O[2].parents,g.parents),[]}let D=d(R,M);if(D){let O=ra(g.seg),j=D.find($=>rc($[0].seg,O,n.point));if(j)return xw(j,g.parents,!0),Ku(j[1].parents,g.parents),Ku(j[2].parents,g.parents),[]}let V={...g,parents:g.parents.slice(),incidentVertices:[k,_],directionFlag:!1,windings:g.parents.map(O=>O?1:0),twin:null},T={...g,parents:g.parents.slice(),incidentVertices:[_,k],directionFlag:!0,windings:g.parents.map(O=>O?-1:0),twin:V};return V.twin=T,k.outgoingEdges.push(V),_.outgoingEdges.push(T),c(M,R).push([g,V,T]),[V,T]});for(let g of l)for(let b=0;b<g.parents.length;b++)g.parents[b]=g.windings[b]!==0;let p=g=>g.windings.some(b=>b!==0),m=l.filter(p);for(let g of o)g.outgoingEdges=g.outgoingEdges.filter(p);return{edges:m,vertices:o.filter(g=>g.outgoingEdges.length)}}function Wu(e){return e.outgoingEdges.length}function v$({vertices:e}){let t=[],n=[],r=0,o=qn(p=>{let m={outgoingEdges:[]};return n.push(m),m}),s=Ew(),i=new Map;function a(p,m){return i.get(p)?.get(m)}function d(p,m,g){let b=i.get(p);b||(b=new Map,i.set(p,b)),b.set(m,g)}let c=new WeakSet;for(let p of e){if(Wu(p)===2)continue;let m=o(p);for(let g of p.outgoingEdges){let b=[],w=g;for(;h$(w.parents,g.parents)&&w.directionFlag===g.directionFlag&&m$(w.windings,g.windings)&&Wu(w.incidentVertices[1])===2;){b.push(w.seg),c.add(w.incidentVertices[1]);let[T,O]=w.incidentVertices[1].outgoingEdges;w=T.twin===w?O:T}b.push(w.seg);let k=o(w.incidentVertices[1]),_=s(g),M=s(w),R=s(w.twin),B=s(g.twin),D=a(R,B)??null,V={segments:b,parents:g.parents,incidentVertices:[m,k],directionFlag:g.directionFlag,windings:g.windings,twin:D,id:r++};D&&(D.twin=V),d(_,M,V),m.outgoingEdges.push(V),t.push(V)}}let l=[];for(let p of e){if(Wu(p)!==2||c.has(p))continue;let m=p.outgoingEdges[0],g={segments:[],parents:m.parents,directionFlag:m.directionFlag,windings:m.windings};do{g.segments.push(m.seg),c.add(m.incidentVertices[0]);let[b,w]=m.incidentVertices[1].outgoingEdges;m=b.twin===m?w:b}while(m.incidentVertices[0]!==p);l.push(g)}return{edges:t,vertices:n,cycles:l}}function w$(e,t){function n(i){let a=new WeakSet,d=new WeakMap;function c(l,p,m){if(d.has(l))return d.get(l);d.set(l,m);let g=1/0;for(let b of l.outgoingEdges)b.parents[i]&&b!==p&&(g=Math.min(g,c(b.incidentVertices[1],b.twin,m+1)));return g<=m&&a.add(l),g}for(let l of e.edges)l.parents[i]&&c(l.incidentVertices[0],null,0);return a}let r=[];for(let i=0;i<t;i++)r.push(n(i));function o(i){return r.some(a=>a.has(i))}function s(i){for(let a=0;a<t;a++)if(i.parents[a]&&r[a].has(i.incidentVertices[0])&&r[a].has(i.incidentVertices[1]))return!0;return!1}e.vertices=e.vertices.filter(o);for(let i of e.vertices)i.outgoingEdges=i.outgoingEdges.filter(s);e.edges=e.edges.filter(s)}var Mw=(()=>{let e=Ce();return function({directionFlag:n,segments:r}){return Sw(r[0],n?1:0,e),Math.hypot(e[0],e[1])}})(),gw=(()=>{let e=Ce(),t=Ce(),n=Ce();return function(o,s=0){let{directionFlag:i,segments:a}=o,d=a[0],l=i?1:0;if(s>0){let _=Mw(o),M=_>0?Math.min(OA,s/_):Xt.param;l=i?1-M:M}if(Sw(d,l,n),i&&(n[0]=-n[0],n[1]=-n[1]),n[0]*n[0]+n[1]*n[1]>=tw)return Math.atan2(n[1],n[0]);nc(d,l,e);let m=Xt.param;for(let _=0;_<AA;_++){let M=i?Math.max(0,l-m):Math.min(1,l+m);nc(d,M,t);let R=t[0]-e[0],B=t[1]-e[1];if(R*R+B*B>=tw)return Math.atan2(B,R);m*=2}let g=tc(d),b=_n(d),w=b[0]-g[0],k=b[1]-g[1];return i&&(w=-w,k=-k),Math.atan2(k,w)}})();function k$({vertices:e}){for(let t of e){if(Wu(t)>2){let n=new WeakMap,r=1/0;for(let i of t.outgoingEdges){let a=Mw(i);a>0&&(r=Math.min(r,a))}let o=Number.isFinite(r)?Xt.param*r:Xt.param,s=new WeakMap;for(let i of t.outgoingEdges){let a=gw(i);n.set(i,a),s.set(i,S$(gw(i,o)-a))}t.outgoingEdges.sort((i,a)=>{let d=s.get(i),c=s.get(a),l=Math.max($A,Math.abs(d),Math.abs(c)),p=n.get(i)-n.get(a);return Math.abs(p)>l?p:d-c})}for(let n=0;n<t.outgoingEdges.length;n++)t.outgoingEdges[n].indexInVertex=n}}function S$(e){return((e+Math.PI)%zm+zm)%zm-Math.PI}function _$(e){let{outgoingEdges:t}=e.incidentVertices[1],n=e.twin?.indexInVertex;return t[(n+1)%t.length]}var Cw=qn(e=>e.incidentEdges.flatMap(t=>{let r=[],o=Ce();for(let s of t.segments)for(let i=0;i<64;i++){let a=i/64,d=t.directionFlag?1-a:a;nc(s,d,o),r.push([o[0],o[1]])}return r}));function Aw(e,t,n){let r=e>=n,o=t<n;return r===o}function Wm(e,t,n){return Aw(e[1],t[1],n[1])?KA(n[1],e[1],t[1],e[0],t[0])>=n[0]:!1}function E$(e,t){if(e.length<=2)return 0;let n=e[e.length-1],r=0;for(let o of e)Wm(n,o,t)&&(r+=o[1]>n[1]?-1:1),n=o;return r}var M$=qn(e=>{let t=Cw(e),n=0;for(let r=0;r<t.length;r++){let o=t[r],s=t[(r+1)%t.length];n+=o[0]*s[1]-s[0]*o[1]}return n/2}),C$=qn(e=>{let t=Cw(e);for(let n=0;n<t.length;n++){let r=t[n],o=t[(n+1)%t.length],s=t[(n+2)%t.length],i=[(r[0]+o[0]+s[0])/3,(r[1]+o[1]+s[1])/3],a=E$(t,i);if(a!==0)return{winding:a,point:i}}});function A$({edges:e,cycles:t}){let n=[],r=new WeakMap;for(let d of e){if(r.has(d))continue;let c={incidentEdges:[],flags:[]},l=d;do{let p=r.get(l.twin)??null,m={segments:l.segments,parents:l.parents,incidentVertex:c,directionFlag:l.directionFlag,windings:l.windings,twin:p};p&&(p.twin=m),r.set(l,m),c.incidentEdges.push(m),l=_$(l)}while(l!==d);n.push(c)}for(let d of t){let c={incidentEdges:[],flags:[]},l={segments:d.segments,parents:d.parents,incidentVertex:c,directionFlag:d.directionFlag,windings:d.windings,twin:null},p={incidentEdges:[],flags:[]},m={segments:[...d.segments].reverse(),parents:d.parents,incidentVertex:p,directionFlag:!d.directionFlag,windings:d.windings.map(g=>-g),twin:l};l.twin=m,c.incidentEdges.push(l),p.incidentEdges.push(m),n.push(c,p)}let o=d=>M$(d)>0,s=[],i=new WeakSet,a=new WeakSet;for(let d of n){if(i.has(d))continue;let c=[],l=[],p=g=>{i.has(g)||c.push(g),i.add(g);for(let b of g.incidentEdges){if(a.has(b))continue;let{twin:w}=b;l.push(b,w),a.add(b),a.add(w),p(w.incidentVertex)}};p(d);let m=c.find(o);s.push({vertices:c,edges:l,outerFace:m})}return s}function Xu(e,t){return Aw(e.top,e.bottom,t[1])&&e.right>=t[0]}function $$(e,t,n,r=Nt(e)){if(!Xu(r,t))return 0;let o=[{boundingBox:r,seg:e}],s=0,i=0;for(;o.length>0;){if(i++>bw||o.length>jm){for(let{seg:d}of o)Wm(tc(d),_n(d),t)&&s++;break}let a=[];for(let{boundingBox:d,seg:c}of o)if(As(c)||Zi(d)<n.linear)Wm(tc(c),_n(c),t)&&s++;else{let l=Ym(c,.5),p=Nt(l[0]);Xu(p,t)&&a.push({boundingBox:p,seg:l[0]});let m=Nt(l[1]);Xu(m,t)&&a.push({boundingBox:m,seg:l[1]})}o=a}return s}var O$=qn(e=>{for(let t of e.vertices)if(t!==e.outerFace)return C$(t).point}),$w=qn(e=>e.incidentEdges.flatMap(t=>t.segments.map(n=>({seg:n,boundingBox:Nt(n)})))),Ow=qn(e=>{let t=null;for(let{boundingBox:n}of $w(e))t=Cs(t,n);return t}),T$=qn(e=>{let t=null;for(let n of e.vertices)n!==e.outerFace&&(t=Cs(t,Ow(n)));return t});function Tw(e,t,n){return t[0]>=e.left-n.point&&t[0]<=e.right+n.point&&t[1]>=e.top-n.point&&t[1]<=e.bottom+n.point}function L$({top:e,right:t,bottom:n,left:r}){return(t-r)*(n-e)}function P$(e,t,n){for(let r of e.vertices){if(r===e.outerFace||!Tw(Ow(r),t,n))continue;let o=0;for(let{seg:s,boundingBox:i}of $w(r))Xu(i,t)&&(o+=$$(s,t,n,i));if(o%2===1)return r}return null}function D$(e,t){if(e.length===0)return[];let n=null,r=e.map((a,d)=>{let c=O$(a),l=T$(a);return n=Cs(n,l),{index:d,component:a,interiorPoint:c,boundingBox:l,area:L$(l)}}),o=new WeakMap;for(let a of e)o.set(a,{component:a,outgoingEdges:new Map});let s=new ta(n,_w);for(let a of r)s.insert(a.boundingBox,a.index);let i=[];for(let a of r){let d=a.interiorPoint,c=Qi(d,t.point),l=s.find(c),p=null,m=null;for(let w of l){if(w===a.index)continue;let k=r[w];if(!Tw(k.boundingBox,d,t))continue;let _=P$(k.component,d,t);_&&(!p||k.area<p.area)&&(p=k,m=_)}let g=o.get(a.component);if(!p||!m){i.push(g);continue}let b=o.get(p.component);b.outgoingEdges.has(m)?b.outgoingEdges.get(m).push(g):b.outgoingEdges.set(m,[g])}return i}function N$(e,t){switch(t){case go.NonZero:return e!==0;case go.EvenOdd:return e%2!==0}}function R$(e,t){let n=t.length;function r(o,s){let i=new WeakSet;function a(d,c){if(!i.has(d)){i.add(d),d.flags=c.map((l,p)=>N$(l,t[p]));for(let l of d.incidentEdges){let p=l.twin,m=c.slice();for(let g=0;g<n;g++)m[g]+=l.windings[g];a(p.incidentVertex,m)}if(o.outgoingEdges.has(d)){let l=o.outgoingEdges.get(d);for(let p of l)r(p,c)}}}a(o.component.outerFace,s)}for(let o of e)r(o,new Array(n).fill(0))}function*I$(e,t){function*n(r){for(let o of r.component.vertices)t(o)&&(yield o);for(let o of r.outgoingEdges.values())for(let s of o)yield*n(s)}for(let r of e)yield*n(r)}function*yw(e){function t(o){return e.has(o.incidentVertex)===e.has(o.twin.incidentVertex)}let n=new WeakMap;for(let o of e){let s=o.incidentEdges[o.incidentEdges.length-1];for(let i of o.incidentEdges)n.set(s,i),s=i}let r=new WeakSet;for(let o of e)for(let s of o.incidentEdges){if(t(s)||r.has(s))continue;let i=s;do for(i.directionFlag?yield*c$(i.segments,ra):yield*i.segments,r.add(i),i=n.get(i);t(i);)i=n.get(i.twin);while(i!==s)}}function Lw(e,t){let n=[],r=[];function o(s){for(let i of s.component.vertices){if(!t(i)||i===s.component.outerFace)continue;let a=[];for(let d of i.incidentEdges)d.directionFlag?a.push(...d.segments.map(ra)):a.push(...d.segments);if(s.outgoingEdges.has(i))for(let d of s.outgoingEdges.get(i)){let{outerFace:c}=d.component;for(let l of c.incidentEdges)l.directionFlag?a.push(...l.segments.map(ra)):a.push(...l.segments)}n.push(i),r.push(a)}for(let i of s.outgoingEdges.values())for(let a of i)o(a)}for(let s of e)o(s);return{faces:n,paths:r}}function F$(e,t){return Lw(e,t).paths}function B$(e,t){function n(r){for(let[o,s]of r.outgoingEdges){if(t.has(o))for(let i of s){let{outerFace:a}=i.component;t.add(a)}for(let i of s)n(i)}}for(let r of e)n(r)}var V$={[vt.Union]:e=>e.some(Boolean),[vt.Difference]:e=>e[0]&&!e.slice(1).some(Boolean),[vt.Intersection]:e=>e.every(Boolean),[vt.Exclusion]:e=>e.reduce((t,n)=>t+(n?1:0),0)%2===1,[vt.Division]:e=>e[0],[vt.Fracture]:e=>e.some(Boolean)},oa=class{constructor(t){let n=t.length,r=t.flatMap(({path:m},g)=>m.map(x$(n,g))),o=null;for(let{seg:m}of r)o=Cs(o,Nt(m));let s=LA(o?Zi(o):0);for(let m of r)m.seg=GA(m.seg,s.point);g$(r);let{edges:i,totalBoundingBox:a}=y$(r,s);if(!a){this.nestingTrees=[];return}let d=b$(i,a,s),c=v$(d);w$(c,n),k$(c);let l=A$(c),p=D$(l,s);R$(p,t.map(({fillRule:m})=>m)),this.nestingTrees=p}get(t){let n=r=>V$[t](r.flags);switch(t){case vt.Division:case vt.Fracture:return F$(this.nestingTrees,n);default:{let r=new Set(I$(this.nestingTrees,n));return[[...yw(r)]]}}}getFaces(){return this.getRegions().paths}buildShape(t){let{faces:n}=this.getRegions(),r=new Set;for(let o of t){let s=n[o];s&&r.add(s)}return B$(this.nestingTrees,r),[...yw(r)]}getRegions(){return this.regions??(this.regions=Lw(this.nestingTrees,t=>t.flags.some(Boolean)))}};var Pw={union:vt.Union,subtract:vt.Difference,intersect:vt.Intersection,exclude:vt.Exclusion},sa=.001,H$=.01;function Dw(e,t){let n=t.map(s=>({path:G$(s.contours.filter(i=>!K$(i))),fillRule:s.evenOdd?go.EvenOdd:go.NonZero})),r=s=>s.path.length===0;if(e==="intersect"&&n.some(r))return[];if(e==="subtract"&&r(n[0]))return[];let o=n.filter(s=>!r(s));return o.length===0?[]:z$(e,o).flatMap(q$).map(W$).filter(X$)}var U$=[.001,.003,.007];function z$(e,t){try{return new oa([...t]).get(Pw[e])}catch(n){for(let r of U$){let o=t.map((s,i)=>({fillRule:s.fillRule,path:i===0?s.path:j$(s.path,r*i,r*i*.618)}));try{return new oa(o).get(Pw[e])}catch{}}throw n}}function j$(e,t,n){let r=o=>[o[0]+t,o[1]+n];return e.map(o=>o[0]==="L"?["L",r(o[1]),r(o[2])]:o[0]==="C"?["C",r(o[1]),r(o[2]),r(o[3]),r(o[4])]:o[0]==="Q"?["Q",r(o[1]),r(o[2]),r(o[3])]:["A",r(o[1]),o[2],o[3],o[4],o[5],o[6],r(o[7])])}function K$(e){let t=[],n=zt(e);for(let i=0;i<n;i+=1)t.push(...dr(jt(e,i),.1));!e.closed&&e.anchors.length>0&&t.push(e.anchors[0]);let r=t[0];if(!r)return!0;let o=r;for(let i of t)Math.hypot(i.x-r.x,i.y-r.y)>Math.hypot(o.x-r.x,o.y-r.y)&&(o=i);let s=Math.hypot(o.x-r.x,o.y-r.y);return s<=sa?!0:t.every(i=>Math.abs((o.x-r.x)*(i.y-r.y)-(o.y-r.y)*(i.x-r.x))/s<=sa)}function G$(e){let t=[];for(let n of e){let r=zt(n);if(r!==0){for(let o=0;o<r;o+=1){let[s,i,a,d]=jt(n,o);ja(n,o)?oc(s,d)||t.push(["L",Sr(s),Sr(d)]):t.push(["C",Sr(s),Sr(i),Sr(a),Sr(d)])}if(!n.closed){let o=n.anchors[0],s=n.anchors[n.anchors.length-1];oc(o,s)||t.push(["L",Sr(s),Sr(o)])}}}return t}function Sr(e){return[e.x,e.y]}function q$(e){let t=[],n,r=()=>{n&&n.anchors.length>1&&t.push({closed:!0,anchors:n.anchors}),n=void 0};for(let o of e)for(let s of Nw(o)){let[i,a,d,c]=s;if(n){let g=n.anchors[n.anchors.length-1];oc(g,i)||r()}n||(n={anchors:[{x:i.x,y:i.y}],start:i});let l=a===void 0||d===void 0,p=n.anchors,m=p[p.length-1];if(l||(p[p.length-1]={...m,out:a}),oc(c,n.start)&&p.length>1){l||(p[0]={...p[0],in:d}),r();continue}p.push(l?{x:c.x,y:c.y}:{x:c.x,y:c.y,in:d})}return r(),t}function Nw(e){let t=n=>({x:n[0],y:n[1]});if(e[0]==="L")return[[t(e[1]),void 0,void 0,t(e[2])]];if(e[0]==="C")return[[t(e[1]),t(e[2]),t(e[3]),t(e[4])]];if(e[0]==="Q"){let[n,r,o]=[t(e[1]),t(e[2]),t(e[3])];return[[n,{x:n.x+(r.x-n.x)*2/3,y:n.y+(r.y-n.y)*2/3},{x:o.x+(r.x-o.x)*2/3,y:o.y+(r.y-o.y)*2/3},o]]}return Xm(e).flatMap(Nw)}function W$(e){let t=[...e.anchors],n=!0;for(;n&&t.length>3;){n=!1;for(let r=0;r<t.length;r+=1){if(!e.closed&&(r===0||r===t.length-1))continue;let o=t[(r-1+t.length)%t.length],s=t[r],i=t[(r+1)%t.length];if(o.out||s.in||s.out||i.in)continue;let a=(s.x-o.x)*(i.y-s.y)-(s.y-o.y)*(i.x-s.x),d=(s.x-o.x)*(i.x-s.x)+(s.y-o.y)*(i.y-s.y),c=Math.hypot(i.x-o.x,i.y-o.y);if(d>=0&&Math.abs(a)<=sa*Math.max(c,1)){t.splice(r,1),n=!0;break}}}return{closed:e.closed,anchors:t}}function X$(e){if(e.anchors.length<2)return!1;let t=[],n=zt(e);for(let o=0;o<n;o+=1)t.push(...dr(jt(e,o),.1));let r=0;for(let o=0;o<t.length;o+=1){let s=t[o],i=t[(o+1)%t.length];r+=s.x*i.y-i.x*s.y}return Math.abs(r/2)>=H$}function oc(e,t){return Math.abs(e.x-t.x)<=sa&&Math.abs(e.y-t.y)<=sa}function Jm(e,t){let n=bi(e,{x:t.x,y:t.y,w:t.w,h:t.h},t.values);return n===void 0?void 0:{contours:n.contours,evenOdd:n.rule==="evenodd"}}var Y$=["name","fill","stroke","strokeWidth","dash","strokeAlign","opacity","cap","join","blend","shadow","blur","backdrop","hidden","locked"];function ia(e){return Math.round(e*100)/100}var Rw=e=>Math.floor(e*100+1e-9)/100,Iw=e=>Math.ceil(e*100-1e-9)/100;function Zm(e,t){let n=Jo(e,t.ids,t.as);if(n)return{ok:!1,...n};try{return J$(e,t)}catch(r){return{ok:!1,...Zo(r)}}}function J$(e,t){let n=Pe(e),r=ef(e,t.ids),o=z(e.root,r[0]),s=Le(e.root,o.id);if(!s)return{ok:!1,code:"unknown-reference",message:`No node ${o.id}`};let i=[];for(let P of r){let C=z(e.root,P),G=n.nodes.get(P),ee=G&&Jm(C,G);if(!ee)return{ok:!1,code:"merge-not-a-shape",message:`${P} has no outline`,nodeId:P};i.push(ee)}let a=Dw(t.verb,i),d=Kt(a);if(a.length===0||!d||d.w<=0||d.h<=0)return{ok:!1,code:"merge-empty",message:`${Yo[t.verb]} of ${r.join(", ")} leaves nothing${t.verb==="intersect"?": the shapes do not all overlap":""}; nothing was changed`};let c=Rw(d.x),l=Rw(d.y),p=Math.max(.01,ia(Iw(d.x+d.w)-c)),m=Math.max(.01,ia(Iw(d.y+d.h)-l)),g=ze(Be(a,P=>({x:P.x-c,y:P.y-l}))),b=o,w={};for(let P of Y$)b[P]!==void 0&&(w[P]=b[P]);let k=r.some(P=>z(e.root,P)?.locked===!0),_=t.as??o.id,M=To({...w,...k?{locked:!0}:{},id:_,x:c,y:l,w:p,h:m,view:Pn({x:0,y:0,w:p,h:m}),d:g,...a.length>1?{rule:"evenodd"}:{}}),R=s.children.findIndex(P=>P.id===o.id),B=Z$(e,r,s.id),D=[...r.map(P=>({op:"remove",id:P})),...B.map(P=>({op:"remove",id:P})),{op:"insert",parent:s.id,index:R,node:M},...Q$(e,o.id,_)],V=[];de(e.root,P=>{st(P)&&P.mask!==void 0&&P.mask!==_&&r.includes(P.mask)&&V.push({op:"set",id:P.id,prop:"mask",value:_})});let T=[...Vo(e,[...D,...V])],O=Ae(e,T).document,j=new Set([...r,_]),$=new Set([...r.filter(P=>P!==_),...B]);return{ok:!0,id:_,ops:[...T,...eO(n,O,j,$)]}}function Z$(e,t,n){let r=new Set(t),o=[],s=i=>{if(r.has(i.id))return!0;if(!me(i))return!1;let a=i.children.length>0;for(let d of i.children)s(d)||(a=!1);return a&&i.type==="group"&&i.id!==n?(o.push(i.id),!0):!1};return s(e.root),o.filter(i=>{let a=Le(e.root,i);for(;a;){if(o.includes(a.id))return!1;a=Le(e.root,a.id)}return!0})}function Q$(e,t,n){if(t===n||!e.motion)return[];let r=[];for(let[o,s]of Object.entries(e.motion)){if(!s.lines.some(a=>a.id===t||a.after===t))continue;let i=s.lines.map(a=>({...a,...a.id===t?{id:n}:{},...a.after===t?{after:n}:{}}));r.push({op:"setMotion",page:o,value:{...s,lines:i}})}return r}function eO(e,t,n,r){let o=Pe(t),s=[];for(let[i,a]of o.nodes){if(n.has(i))continue;let d=e.nodes.get(i),c=z(t.root,i);if(!d||!c||nO(t,i))continue;let l=c;for(let p of Vt(c)){let m=d.values[p],g=a.values[p];m===void 0||g===void 0||ia(m)===ia(g)&&!tO(l[p],r)||s.push({op:"set",id:i,prop:p,value:ia(m)})}}return s}function tO(e,t){if(!ve(e))return!1;let n=tt(e.expr);return n.ok&&on(n.ast).nodes.some(r=>t.has(r))}function nO(e,t){let n=Le(e.root,t);for(;n;){if(n.type==="instance")return!0;n=Le(e.root,n.id)}return!1}function Fw(e){let t=e,n=new Map,r=typeof URL.createObjectURL=="function"&&typeof URL.revokeObjectURL=="function";return{resolve(o){let s=n.get(o.hash);if(s!==void 0)return s;let i=t.get(o.hash);if(i===void 0)return;if(!r)return Ul(o.type,i);let a;try{a=jl(i)}catch{return}let d=URL.createObjectURL(new Blob([a],{type:o.type}));return n.set(o.hash,d),d},replace(o){t=o;for(let[s,i]of n)o.has(s)||(URL.revokeObjectURL(i),n.delete(s))},destroy(){for(let o of n.values())URL.revokeObjectURL(o);n.clear(),t=new Map}}}var Qm="0.6.1",Bw="https://cdn.jsdelivr.net/npm/@getv.design/embed@0.6.1/fonts/";var rO=Symbol.for(`vdesign.embed.documents@${Qm}`),Vw=globalThis[rO]??=new WeakMap,oO=/^Line (\d+): /;function tx(e){let t=oO.exec(e.message);return{...t?{line:Number(t[1])}:{},code:e.code,message:e.message,severity:e.severity}}function ex(e){if(typeof e!="string")return ic(gi("").document,new Map,[{code:"not-text",message:`parse() takes .vd text, not ${e===null?"null":typeof e}.`,severity:"error"}]);let t=sO(e);if(t.vd===void 0)return ic(gi("").document,new Map,[{code:"not-vd",message:"This SVG carries no vDesign document: only a .vd.svg exported from vDesign does.",severity:"error"}]);let{head:n,blocks:r}=Bl(t.vd),o=gi(n),s=o.problems.map(tx).map(i=>i.line===void 0?i:{...i,line:i.line+t.offset});return ic(o.document,r,s)}function sO(e){if(!nf(e))return{vd:e,offset:0};let t=tf(e);if(t===void 0)return{vd:void 0,offset:0};let n=e.indexOf("<vd:document"),r=e.indexOf("</vd:document",n),o=e.indexOf("<![CDATA[",n);if(o===-1||r!==-1&&o>r){let a=e.indexOf(">",n)+1,d=e.slice(0,a).split(`
|
|
3099
3099
|
`).length-1;return{vd:t,offset:d+(e[a]===`
|
|
3100
3100
|
`?1:0)}}let s=o+9,i=e.slice(0,s).split(`
|
|
3101
3101
|
`).length-1;return{vd:t,offset:i+(e[s]===`
|