koboyo 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -1
- package/assets/editor/assets/DialogDescription-Ddhk2rmF.js +1 -0
- package/assets/editor/assets/DialogRoot-DUeVfNhS.js +1 -0
- package/assets/editor/assets/DialogTitle-D5au2NAn.js +1 -0
- package/assets/editor/assets/FloatingPortalLite-HnWQWrLk.js +1 -0
- package/assets/editor/assets/{IconAlertTriangle-CxPhYpe-.js → IconAlertTriangle-B33xznYN.js} +1 -1
- package/assets/editor/assets/{IconArrowLeft-DFk3Krim.js → IconArrowLeft-B4Zcy-Fc.js} +1 -1
- package/assets/editor/assets/IconChevronLeft-D7e7QC0h.js +1 -0
- package/assets/editor/assets/IconChevronRight-csfMBSUs.js +1 -0
- package/assets/editor/assets/{IconCode-hd05zxU4.js → IconCode-CHIz1nCU.js} +1 -1
- package/assets/editor/assets/IconCornerDownRight-DDiBMO4O.js +1 -0
- package/assets/editor/assets/{IconEraser-DlZQe3-r.js → IconEraser-CYfXj27R.js} +1 -1
- package/assets/editor/assets/{IconFocusCentered-C5PcDeR0.js → IconFocusCentered-Cn8rbfRI.js} +1 -1
- package/assets/editor/assets/IconHelp-CaEwHrsN.js +2 -0
- package/assets/editor/assets/IconLink-VS5p9Ytk.js +1 -0
- package/assets/editor/assets/IconLoader2-CzCTn-Sn.js +1 -0
- package/assets/editor/assets/IconMinus-BcaDLts8.js +1 -0
- package/assets/editor/assets/{IconMoodSmile-Bic_fw54.js → IconMoodSmile-CSZ5p_Hy.js} +1 -1
- package/assets/editor/assets/{IconPencil-C5Y-Y4dC.js → IconPencil-D_pQsAyv.js} +1 -1
- package/assets/editor/assets/{IconPhoto-CR36IK-b.js → IconPhoto-5zuCDtnR.js} +1 -1
- package/assets/editor/assets/{IconPlayerPlayFilled-D4OODBX7.js → IconPlayerPlayFilled-DVAWmYt7.js} +1 -1
- package/assets/editor/assets/{IconPlayerStopFilled-BUbX6ZO5.js → IconPlayerStopFilled-D4qdct2R.js} +1 -1
- package/assets/editor/assets/IconPlus-D4tAoi-A.js +1 -0
- package/assets/editor/assets/{IconPresentation-DCrY3PKL.js → IconPresentation-BMKzt7fv.js} +1 -1
- package/assets/editor/assets/{IconSearch-C1K0_Pq_.js → IconSearch-CCpMt02s.js} +1 -1
- package/assets/editor/assets/{IconSparkles-WDcg8BA9.js → IconSparkles-CnCp3BCQ.js} +1 -1
- package/assets/editor/assets/{IconTrash-DbN_RxB7.js → IconTrash-C8w6ThWx.js} +1 -1
- package/assets/editor/assets/{IconUsers-Bwnyj4mm.js → IconUsers-Dp85N225.js} +1 -1
- package/assets/editor/assets/IconX-KrRqxr2j.js +1 -0
- package/assets/editor/assets/MenuSubmenuTrigger-KacA9GM8.js +1 -0
- package/assets/editor/assets/PopoverPopup-B3Y0VRYc.js +1 -0
- package/assets/editor/assets/{asset-glyph-B3c--Mx2.js → asset-glyph-C1E6cGwM.js} +1 -1
- package/assets/editor/assets/billing-BSXr-z2r.js +1 -0
- package/assets/editor/assets/build-pips-BV-uwXlP.js +1 -0
- package/assets/editor/assets/build-visibility-DyML9SHt.js +1 -0
- package/assets/editor/assets/builders-DMHAOPEv.js +1 -0
- package/assets/editor/assets/{chart-Z4HQx-0h.js → chart-4iRduYdU.js} +4 -4
- package/assets/editor/assets/{chrome-layout-B8YmHznO.js → chrome-layout-BzPU9far.js} +1 -1
- package/assets/editor/assets/{code-panel-BfsykjSz.js → code-panel-koBUgEWp.js} +7 -7
- package/assets/editor/assets/command-palette-BR-_ChOL.js +1 -0
- package/assets/editor/assets/config-D8b1QyEk.js +1 -0
- package/assets/editor/assets/connector-labels-CrEgadsC.js +2 -0
- package/assets/editor/assets/copy-image-dialog-BzGP7Xw8.js +1 -0
- package/assets/editor/assets/{core-CBnmD9hT.js → core-CmsJyU_-.js} +1 -1
- package/assets/editor/assets/createReactComponent-C51FAx3B.js +1 -0
- package/assets/editor/assets/{diagram-fingerprint-CsqZK4xZ.js → diagram-fingerprint-WGQ5iVXx.js} +1 -1
- package/assets/editor/assets/dialog-DnXgEbpz.js +1 -0
- package/assets/editor/assets/{edit-BJ_kibk8.js → edit-C0sBxxsg.js} +1 -1
- package/assets/editor/assets/editor-BeufBV54.js +1 -0
- package/assets/editor/assets/{elk-api-DnfklSaw.js → elk-api-C4wlHVIw.js} +1 -1
- package/assets/editor/assets/{elk-worker-loader-CC-I9MmI.js → elk-worker-loader-CVBdN1je.js} +1 -1
- package/assets/editor/assets/{export-ChP0k5F5.js → export-Bce6ra0N.js} +1 -1
- package/assets/editor/assets/export-K2VWg76n.js +6 -0
- package/assets/editor/assets/export-dialog-x2n2a4KX.js +1 -0
- package/assets/editor/assets/flow-layer-ewaL7g2y.js +1 -0
- package/assets/editor/assets/flow-panel-BzXNGGke.js +1 -0
- package/assets/editor/assets/flow-stage-Ba_CAggI.js +1 -0
- package/assets/editor/assets/flow-start-CpAvU-9P.js +1 -0
- package/assets/editor/assets/{flows-GGbkNqs8.js → flows-Cj7AFMIA.js} +2 -2
- package/assets/editor/assets/frames-Cp1QD3LR.js +1 -0
- package/assets/editor/assets/icon-picker-Cg39IKNJ.js +1 -0
- package/assets/editor/assets/image-library-JQu_tb8P.js +1 -0
- package/assets/editor/assets/index-CBPPqsiR.js +24 -0
- package/assets/editor/assets/{index-CC2h28V_.css → index-DBrN0u0i.css} +1 -1
- package/assets/editor/assets/jsx-runtime-DKdBMi_L.js +1 -0
- package/assets/editor/assets/layout-offthread-mRHRulkS.js +18 -0
- package/assets/editor/assets/{layout.worker-BIE1_z0S.js → layout.worker-CekYkaxO.js} +2 -2
- package/assets/editor/assets/menu-B9BAk63v.js +1 -0
- package/assets/editor/assets/panel-controls-DWVXiNUZ.js +1 -0
- package/assets/editor/assets/{panel-shell-CG2aq4Ia.js → panel-shell-BnMOHgWM.js} +1 -1
- package/assets/editor/assets/{plan-jQm1jDpt.js → plan-CkgM52Yh.js} +1 -1
- package/assets/editor/assets/presentation-DJUO0t7I.js +1 -0
- package/assets/editor/assets/presenter-keys-Bs3LnmOa.js +1 -0
- package/assets/editor/assets/{jsx-runtime-2Zwg-L3c.js → react-lCSYwAWP.js} +1 -1
- package/assets/editor/assets/reflow-DaYiVkwp.js +1 -0
- package/assets/editor/assets/registry-rEGZW7Ab.js +1 -0
- package/assets/editor/assets/renderer-environment-D3n3hbug.js +1 -0
- package/assets/editor/assets/ride-overlay-Hx90v4ZK.js +1 -0
- package/assets/editor/assets/selection-overlay-primitives-BRp854AD.js +1 -0
- package/assets/editor/assets/shape-meta-COE2ATNh.js +1 -0
- package/assets/editor/assets/sign-in-dialog-tmQEB2bx.js +1 -0
- package/assets/editor/assets/slide-notes-dialog-BQBXpep6.js +1 -0
- package/assets/editor/assets/slides-D686obFO.js +15 -0
- package/assets/editor/assets/slides-panel-BEJCevJi.js +26 -0
- package/assets/editor/assets/text-breaks-DM4W6y5f.js +7 -0
- package/assets/editor/assets/{theme-palette-D1nbDFBC.js → theme-palette-Dl_G_VIJ.js} +1 -1
- package/assets/editor/assets/tidy-browser-dF3BON7J.js +1 -0
- package/assets/editor/assets/tidy-scope-BGG3ZXvZ.js +1 -0
- package/assets/editor/assets/toast-Czv_DJ-4.js +1 -0
- package/assets/editor/assets/tool-catalog-DXPhX2S1.js +1 -0
- package/assets/editor/assets/tool-drawer-CWOX_njp.js +1 -0
- package/assets/editor/assets/tooltip-CyBz17g8.js +1 -0
- package/assets/editor/assets/tree-KSgPjntC.js +1 -0
- package/assets/editor/assets/upgrade-dialog-DhSZnDpx.js +1 -0
- package/assets/editor/assets/use-drag-reorder-ye8-kpyR.js +1 -0
- package/assets/editor/assets/use-export-command-sC9UHj3_.js +2 -0
- package/assets/editor/assets/use-grid-keyboard-nav-DhQKecO1.js +0 -0
- package/assets/editor/assets/use-icon-node-BxqH7H27.js +1 -0
- package/assets/editor/assets/use-key-held-094C3Mn3.js +1 -0
- package/assets/editor/assets/use-recent-list-DuazDypH.js +1 -0
- package/assets/editor/assets/useAnchoredPopupScrollLock-i8D5Dm1d.js +1 -0
- package/assets/editor/assets/useBaseUiId-D2RfU0uY.js +1 -0
- package/assets/editor/assets/useButton-CLQYGhRJ.js +1 -0
- package/assets/editor/assets/useControlled-BE8zdmih.js +1 -0
- package/assets/editor/assets/usePositioner-AtbrPc7w.js +1 -0
- package/assets/editor/assets/useScrollLock-CQpr0n6U.js +1 -0
- package/assets/editor/assets/useValueChanged-SqLfIDi5.js +1 -0
- package/assets/editor/assets/web-controls-CLE9zr7i.js +1 -0
- package/assets/editor/assets/web-embed-dialog-XUNelFFM.js +1 -0
- package/assets/editor/assets/web-html-dialog-BcAyzH5D.js +1 -0
- package/assets/editor/assets/web-shape-C941TGTy.js +1 -0
- package/assets/editor/assets/widget-source-CHujvUeA.js +1 -0
- package/assets/editor/index.html +73 -69
- package/dist/koboyo.js +258 -214
- package/package.json +5 -5
- package/skills/koboyo/SKILL.md +22 -2
- package/skills/koboyo/references/architecture.md +1 -1
- package/skills/koboyo/references/bpmn.md +1 -1
- package/skills/koboyo/references/chart.md +1 -1
- package/skills/koboyo/references/cycle.md +1 -1
- package/skills/koboyo/references/erd.md +1 -1
- package/skills/koboyo/references/flowchart.md +1 -1
- package/skills/koboyo/references/funnel.md +1 -1
- package/skills/koboyo/references/gantt.md +1 -1
- package/skills/koboyo/references/gitgraph.md +1 -1
- package/skills/koboyo/references/journey.md +1 -1
- package/skills/koboyo/references/matrix.md +1 -1
- package/skills/koboyo/references/mindmap.md +1 -1
- package/skills/koboyo/references/orgchart.md +1 -1
- package/skills/koboyo/references/pyramid.md +1 -1
- package/skills/koboyo/references/sankey.md +1 -1
- package/skills/koboyo/references/sequence.md +1 -1
- package/skills/koboyo/references/statemachine.md +1 -1
- package/skills/koboyo/references/timeline.md +1 -1
- package/skills/koboyo/references/venn.md +1 -1
- package/skills/koboyo/references/wireframe.md +1 -1
- package/assets/editor/assets/DialogDescription-ZtZCUsfy.js +0 -1
- package/assets/editor/assets/DialogRoot-mHGRFW9m.js +0 -1
- package/assets/editor/assets/DialogTitle-CFhr-gP9.js +0 -1
- package/assets/editor/assets/FloatingPortalLite-Bf0q6fmL.js +0 -1
- package/assets/editor/assets/IconArrowBackUp-Brd2WpCh.js +0 -1
- package/assets/editor/assets/IconChevronLeft-BR0iwdRI.js +0 -1
- package/assets/editor/assets/IconChevronRight-DBDnxPYT.js +0 -1
- package/assets/editor/assets/IconHelp-DKNacRqS.js +0 -2
- package/assets/editor/assets/IconLoader2-BQaF1LKo.js +0 -1
- package/assets/editor/assets/IconMinus-y4ejub-s.js +0 -1
- package/assets/editor/assets/IconNote-CSELvWzx.js +0 -1
- package/assets/editor/assets/IconPlus-BbmieIBT.js +0 -1
- package/assets/editor/assets/IconX-AlbPkO_g.js +0 -1
- package/assets/editor/assets/MenuSubmenuTrigger-CpN67g09.js +0 -1
- package/assets/editor/assets/PopoverPopup-BqGWd_uB.js +0 -1
- package/assets/editor/assets/billing-C-BNGM3Z.js +0 -1
- package/assets/editor/assets/build-pips-CIaHaEPB.js +0 -1
- package/assets/editor/assets/build-visibility-E1mHeDCW.js +0 -1
- package/assets/editor/assets/builders-DbF28yId.js +0 -1
- package/assets/editor/assets/command-palette-BjFnQHnz.js +0 -1
- package/assets/editor/assets/config-a_lz-57R.js +0 -1
- package/assets/editor/assets/connector-labels-vVnYQJRz.js +0 -2
- package/assets/editor/assets/copy-image-dialog-CCY_6fM4.js +0 -1
- package/assets/editor/assets/createReactComponent-9UsI5fmM.js +0 -1
- package/assets/editor/assets/dialog-B32krrce.js +0 -1
- package/assets/editor/assets/editor-B0tARd79.js +0 -1
- package/assets/editor/assets/export-DEFKKRRi.js +0 -6
- package/assets/editor/assets/export-dialog-DPg1uzX5.js +0 -1
- package/assets/editor/assets/flow-layer-BC35drcK.js +0 -1
- package/assets/editor/assets/flow-panel-D_K9wgZi.js +0 -1
- package/assets/editor/assets/flow-stage-fiF5Nggn.js +0 -1
- package/assets/editor/assets/flow-start-ccYJ2KB9.js +0 -1
- package/assets/editor/assets/frames-CRP8oPP8.js +0 -1
- package/assets/editor/assets/icon-picker-NboB5Fvv.js +0 -1
- package/assets/editor/assets/image-library-Bb6bV6eK.js +0 -1
- package/assets/editor/assets/index-DfNbwHl_.js +0 -24
- package/assets/editor/assets/layout-offthread-BwetpTFH.js +0 -18
- package/assets/editor/assets/menu-BPrc8Ara.js +0 -1
- package/assets/editor/assets/panel-controls-DYZ7QFT5.js +0 -1
- package/assets/editor/assets/presentation-BavfNtxp.js +0 -1
- package/assets/editor/assets/presenter-keys-DVQcBdy1.js +0 -1
- package/assets/editor/assets/reflow-Cv75wPSh.js +0 -1
- package/assets/editor/assets/registry-DCgwH8wI.js +0 -1
- package/assets/editor/assets/renderer-environment-DmWXvuT4.js +0 -1
- package/assets/editor/assets/ride-overlay-DhygYdx1.js +0 -1
- package/assets/editor/assets/selection-overlay-primitives-hWJ1xjF7.js +0 -1
- package/assets/editor/assets/shape-meta-BpwsiB82.js +0 -1
- package/assets/editor/assets/sign-in-dialog-DRooo5xw.js +0 -1
- package/assets/editor/assets/slide-notes-dialog-DLdTmd7_.js +0 -1
- package/assets/editor/assets/slides-D9bnXqtf.js +0 -15
- package/assets/editor/assets/slides-panel-DV-zQJhV.js +0 -26
- package/assets/editor/assets/text-breaks-YU-ymaF9.js +0 -7
- package/assets/editor/assets/tidy-browser-BwodBnAH.js +0 -1
- package/assets/editor/assets/tidy-scope-BgBSUklT.js +0 -1
- package/assets/editor/assets/toast-Nu_fiCd9.js +0 -1
- package/assets/editor/assets/tool-catalog-ChSwaLIq.js +0 -1
- package/assets/editor/assets/tool-drawer-CG7-cnML.js +0 -1
- package/assets/editor/assets/tooltip-DgEojto1.js +0 -1
- package/assets/editor/assets/tree-rq4RTGgw.js +0 -1
- package/assets/editor/assets/upgrade-dialog-DpZeaLDB.js +0 -1
- package/assets/editor/assets/use-drag-reorder-C3h4ZMoZ.js +0 -1
- package/assets/editor/assets/use-export-command-CPc7qug1.js +0 -2
- package/assets/editor/assets/use-grid-keyboard-nav-B88Qw-cQ.js +0 -0
- package/assets/editor/assets/use-icon-node-DJZFjABX.js +0 -1
- package/assets/editor/assets/use-recent-list-BEG0iBIm.js +0 -1
- package/assets/editor/assets/useAnchoredPopupScrollLock-BGKchwpi.js +0 -1
- package/assets/editor/assets/useBaseUiId-C0Zm5sUV.js +0 -1
- package/assets/editor/assets/useButton-D3eS7fh5.js +0 -1
- package/assets/editor/assets/useControlled-C5xhvPXX.js +0 -1
- package/assets/editor/assets/usePositioner-DA3aR0-T.js +0 -1
- package/assets/editor/assets/useScrollLock-B7mQdXyv.js +0 -1
- package/assets/editor/assets/useValueChanged-p8z-93L4.js +0 -1
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import{M as e,r as t,t as n}from"./reflow-Cv75wPSh.js";import{G as r,J as i,M as a,T as o,U as s,W as c,X as l,Y as u,at as d,c as f,it as p,s as m}from"./style-BENGW2ZV.js";import{At as h,Cr as g,Ct as _,H as v,I as y,J as b,Kr as x,Sn as S,St as C,Ut as w,Y as T,Z as E,an as D,ar as ee,bn as O,en as k,fr as A,ir as te,kr as ne,lr as j,oi as re,pr as M,rr as N,z as ie}from"./slides-D9bnXqtf.js";import{A as ae,C as oe,D as se,E as ce,F as le,I as P,L as ue,M as de,N as fe,O as pe,P as me,R as he,T as ge,_ as _e,b as ve,c as ye,h as be,j as xe,k as Se,n as Ce,v as we,w as Te,x as Ee,y as De}from"./registry-DCgwH8wI.js";import{n as Oe,t as ke}from"./elk-worker-loader-CC-I9MmI.js";import{a as Ae,o as je}from"./text-breaks-YU-ymaF9.js";import{A as Me,E as F,O as Ne}from"./builders-DbF28yId.js";var Pe=new Set(de),Fe=new Set(ge),Ie=new Set(pe),Le=new Set(xe),Re=new Set(ae),ze=new Set(De),I=e=>typeof e==`string`,L=e=>I(e)&&e!==``?e:void 0,Be=0xe8d4a51000,Ve=e=>Math.max(-0xe8d4a51000,Math.min(Be,e)),He={cloud:new Set([`cloud`,`cloudy`]),cylinder:new Set([`cylinder`]),heart:new Set([`heart`]),star:new Set([`star`]),diamond:new Set([`diamond`]),hexagon:new Set([`hexagon`]),octagon:new Set([`octagon`]),pentagon:new Set([`pentagon`]),triangle:new Set([`triangle`]),circle:new Set([`circle`]),bolt:new Set([`zap`,`bolt`]),cube:new Set([`box`,`cuboid`])};function Ue(e){let t=new Set,n=[];for(let r of e.nodes??[]){if(!r||!I(r.id)||!I(r.label)||r.id.length===0||r.label.length===0||t.has(r.id))continue;t.add(r.id);let e=L(r.icon),i=r.shape&&Pe.has(r.shape)?r.shape:void 0;i===`actor`&&(i=void 0,e??=`user`),i&&e&&!e.includes(`:`)&&He[i]?.has(e)&&(e=void 0),n.push({id:r.id,label:r.label,icon:e,shape:i,group:L(r.group),color:r.color&&Ie.has(r.color)?r.color:void 0,fill:r.fill&&Le.has(r.fill)?r.fill:void 0,corner:r.corner&&Re.has(r.corner)?r.corner:void 0,labelColor:r.labelColor&&Ie.has(r.labelColor)?r.labelColor:void 0,shadow:r.shadow===!0||void 0,link:I(r.link)?ee(r.link)??void 0:void 0})}let r=(e.groups??[]).filter(e=>!!e&&I(e.id)&&I(e.label)&&e.id.length>0);{let e=new Set([...r.map(e=>e.id),...n.map(e=>e.group).filter(e=>!!e)]),i=new Map;for(let n of e){if(!t.has(n))continue;let r=`${n}-group`;for(;t.has(r)||e.has(r)||i.has(r);)r=`${r}-2`;i.set(n,r)}if(i.size>0){for(let e of n)e.group&&i.has(e.group)&&(e.group=i.get(e.group));r=r.map(e=>({...e,id:i.get(e.id)??e.id,parent:I(e.parent)&&i.has(e.parent)?i.get(e.parent):e.parent}))}}let i=new Set(n.map(e=>e.group).filter(Boolean)),a=new Map(r.map(e=>[e.id,I(e.parent)?e.parent:void 0])),o=new Set;for(let e of i){let t=e??void 0;for(let e=0;t&&e<32&&!o.has(t);e+=1)o.add(t),t=a.get(t)}let s=[],c=new Set;for(let e of r){if(!o.has(e.id)||c.has(e.id))continue;c.add(e.id);let t=I(e.parent)&&o.has(e.parent)&&e.parent!==e.id?e.parent:void 0;s.push({id:e.id,label:e.label,icon:L(e.icon),color:e.color&&Ie.has(e.color)?e.color:void 0,frame:e.frame&&Fe.has(e.frame)?e.frame:void 0,parent:t})}let l=new Map;for(let e of n)e.group&&l.set(e.group,(l.get(e.group)??0)+1);for(let e of i)e&&!c.has(e)&&(l.get(e)??0)>=2&&s.push({id:e,label:``});let u=new Set(s.map(e=>e.id)),d=e=>t.has(e)||u.has(e),f=[];for(let n of e.edges??[])!n||!I(n.from)||!I(n.to)||!d(n.from)||!d(n.to)||n.from===n.to&&!t.has(n.from)||f.push({from:n.from,to:n.to,label:I(n.label)?n.label:void 0,dashed:n.dashed===!0,bidirectional:n.bidirectional===!0,head:ve.includes(n.head)&&n.head!==`arrow`?n.head:void 0,invisible:n.invisible===!0||void 0,color:n.color&&Ie.has(n.color)?n.color:void 0,back:n.back===!0||void 0,flow:n.flow===!0||void 0});return{kind:`graph`,title:I(e.title)?e.title:``,direction:e.direction&&ze.has(e.direction)?e.direction:`right`,icons:e.icons===`inside`||e.icons===`badge`?e.icons:void 0,swimlanes:e.swimlanes===!0&&s.length>0||void 0,kanban:e.kanban===!0&&s.length>0||void 0,variant:e.variant===`orgchart`||e.variant===`statemachine`?e.variant:void 0,nodes:n,groups:s,edges:f,legend:We(e.legend)}}function We(e){if(!e)return;let t=e.filter(e=>!!e&&I(e.swatch)&&e.swatch!==``&&I(e.label));return t.length>0?t:void 0}var Ge=new Set([`pk`,`fk`]),Ke=new Set([`1:1`,`1:N`,`N:M`]),qe=new Set(Ee),Je=new Set(_e),Ye=new Set(P);function Xe(e){return!e||!I(e.name)||e.name.length===0?null:{name:e.name,type:L(e.type),key:e.key&&Ge.has(e.key)?e.key:void 0,visibility:e.visibility&&Ye.has(e.visibility)?e.visibility:void 0}}function Ze(e){let t=new Set,n=[],r=new Set;for(let t of e.groups??[])!t||!I(t.id)||t.id.length===0||r.has(t.id)||!I(t.label)||t.label.length===0||(r.add(t.id),n.push({id:t.id,label:t.label,color:t.color&&Ie.has(t.color)?t.color:void 0}));let i=[];for(let n of e.entities??[]){if(!n||!I(n.id)||!I(n.label)||n.id.length===0||t.has(n.id))continue;t.add(n.id);let e=(n.fields??[]).map(Xe).filter(e=>e!==null),a=(n.methods??[]).map(Xe).filter(e=>e!==null);i.push({id:n.id,label:n.label,color:n.color&&Ie.has(n.color)?n.color:void 0,fields:e,methods:a.length>0?a:void 0,group:I(n.group)&&r.has(n.group)?n.group:void 0})}let a=[];for(let n of e.relations??[]){if(!n||!I(n.from)||!I(n.to)||!t.has(n.from)||!t.has(n.to))continue;let e=n.fromCard&&qe.has(n.fromCard)?n.fromCard:void 0,r=n.toCard&&qe.has(n.toCard)?n.toCard:void 0;a.push({from:n.from,to:n.to,cardinality:e||r?void 0:n.cardinality&&Ke.has(n.cardinality)?n.cardinality:void 0,fromCard:e,toCard:r,identifying:n.identifying!==!1&&void 0,kind:n.kind&&Je.has(n.kind)?n.kind:void 0,label:I(n.label)?n.label:void 0})}let o=new Set(i.map(e=>e.group).filter(Boolean)),s=n.filter(e=>o.has(e.id)),c=e.variant===`class`||a.some(e=>e.kind)||i.some(e=>e.methods&&e.methods.length>0);return{kind:`erd`,title:I(e.title)?e.title:``,variant:c?`class`:void 0,entities:i,relations:a,groups:s.length>0?s:void 0,legend:We(e.legend)}}var Qe=new Set(oe),$e=60,et=/^\d{4}-\d{2}-\d{2}$/;function tt(e){let t=new Set,n=[];for(let r of e.tasks??[]){if(!r||!I(r.label)||r.label.length===0)continue;let e=I(r.id)&&r.id.length>0?r.id:`t${n.length+1}`;if(t.has(e))continue;t.add(e);let i=typeof r.days==`number`&&Number.isFinite(r.days)?Ve(r.days):void 0,a=r.status&&Qe.has(r.status)?r.status:void 0;if(n.push({id:e,label:r.label,section:L(r.section),start:I(r.start)&&et.test(r.start)?r.start:void 0,after:(Array.isArray(r.after)?r.after:[]).filter(e=>I(e)&&e.length>0),days:a===`milestone`?0:i===void 0?void 0:Math.max(0,i),until:L(r.until),status:a}),n.length>=$e)break}for(let e of n){let n=(e.after??[]).filter(n=>n!==e.id&&t.has(n));e.after=n.length>0?n:void 0,e.until&&(e.until===e.id||!t.has(e.until))&&(e.until=void 0)}return{kind:`gantt`,title:I(e.title)?e.title:``,tasks:n,skipWeekends:e.skipWeekends===!0||void 0,legend:We(e.legend)}}var nt=new Set(Te),rt=8,it=60;function at(e){let t=[];for(let n of e.lanes??[])if(I(n)&&n.length>0&&!t.includes(n)&&t.push(n),t.length>=rt)break;let n=new Set,r=[];for(let i of e.commits??[]){if(!i)continue;let e=I(i.id)&&i.id.length>0?i.id:`c${r.length+1}`;if(n.has(e))continue;let a=I(i.branch)&&i.branch.length>0?i.branch:t[0]??`main`;if(!t.includes(a)){if(t.length>=rt)continue;t.push(a)}if(n.add(e),r.push({id:e,branch:a,label:L(i.label),tag:L(i.tag),kind:i.kind&&nt.has(i.kind)&&i.kind!==`normal`?i.kind:void 0,mergeFrom:L(i.mergeFrom),branchFrom:L(i.branchFrom),cherryPick:L(i.cherryPick)}),r.length>=it)break}t.length===0&&t.push(`main`);for(let e of r){e.mergeFrom&&(!t.includes(e.mergeFrom)||e.mergeFrom===e.branch)&&(e.mergeFrom=void 0),e.cherryPick&&!n.has(e.cherryPick)&&(e.cherryPick=void 0);let i=r.find(t=>t.branch===e.branch)===e;e.branchFrom&&(!i||!t.includes(e.branchFrom)||e.branchFrom===e.branch)&&(e.branchFrom=void 0)}return{kind:`gitgraph`,title:I(e.title)?e.title:``,lanes:t,commits:r,legend:We(e.legend)}}var ot=new Set(ce),st=12,ct=40;function lt(e){return e===`venn`?3:e===`matrix`?4:e===`journey`?ct:st}function ut(e){let{min:t,max:n,default:r}=se;return typeof e!=`number`||!Number.isFinite(e)?r:Math.min(n,Math.max(t,e))}function dt(e){if(!Array.isArray(e))return;let t=e.filter(e=>I(e)&&e.length>0).slice(0,8);return t.length>0?t:void 0}function ft(e){let t=e.variant&&ot.has(e.variant)?e.variant:`timeline`,n=new Set,r=[];for(let i of e.items??[]){if(!i||!I(i.label)||i.label.length===0)continue;let e=I(i.id)&&i.id.length>0?i.id:`i${r.length}`;if(!n.has(e)&&(n.add(e),r.push({id:e,label:i.label,detail:L(i.detail),color:i.color&&Ie.has(i.color)?i.color:void 0,icon:L(i.icon),score:t===`journey`?ut(i.score):void 0,group:t===`journey`||t===`timeline`?L(i.group):void 0,events:t===`timeline`?dt(i.events):void 0}),r.length>=lt(t)))break}let i=[];if(t===`venn`)for(let t of e.overlaps??[]){if(!t||!I(t.label)||t.label.length===0)continue;let e=(t.ids??[]).filter(e=>I(e)&&n.has(e));e.length>=2&&i.push({ids:e,label:t.label})}let a=e=>{let t=(e??[]).filter(e=>I(e)&&e.length>0);return t.length>=2?[t[0],t[1]]:void 0},o=t===`matrix`?a(e.axes?.x):void 0,s=t===`matrix`?a(e.axes?.y):void 0;return{kind:`infographic`,variant:t,title:I(e.title)?e.title:``,items:r,overlaps:i.length>0?i:void 0,axes:o||s?{x:o,y:s}:void 0}}function pt(e,t){let n=[];for(let r of Array.isArray(e)?e:[]){if(!r||!I(r.label)||r.label.length===0)continue;let e=t<6?pt(r.children,t+1):[];n.push({label:r.label,icon:L(r.icon),children:e.length>0?e:void 0})}return n}function mt(e){let t=new Set,n=[];for(let r of e.branches??[]){if(!r||!I(r.label)||r.label.length===0)continue;let e=I(r.id)&&r.id.length>0?r.id:`b${n.length}`;if(t.has(e))continue;t.add(e);let i=pt(r.children,2);n.push({id:e,label:r.label,color:r.color&&Ie.has(r.color)?r.color:void 0,icon:L(r.icon),children:i.length>0?i:void 0})}return{kind:`mindmap`,title:I(e.title)?e.title:``,central:I(e.central)&&e.central.length>0?e.central:I(e.title)?e.title:``,branches:n,legend:We(e.legend)}}var ht=60;function gt(e){let t=[];for(let n of e.flows??[]){if(!n||!I(n.from)||!I(n.to))continue;let e=n.from.trim(),r=n.to.trim(),i=typeof n.value==`number`&&Number.isFinite(n.value)?Ve(n.value):0;if(!(e.length===0||r.length===0||e===r||i<=0)&&(t.push({from:e,to:r,value:i}),t.length>=ht))break}return{kind:`sankey`,title:I(e.title)?e.title:``,flows:t,legend:We(e.legend)}}var _t=new Set(me);function vt(e){let t=new Set,n=[];for(let r of e.actors??[])!r||!I(r.id)||!I(r.label)||r.id.length===0||t.has(r.id)||(t.add(r.id),n.push({id:r.id,label:r.label,icon:L(r.icon),link:I(r.link)?ee(r.link)??void 0:void 0}));let r=[];for(let n of e.messages??[])!n||!I(n.from)||!I(n.to)||!I(n.label)||!t.has(n.from)||!t.has(n.to)||r.push({from:n.from,to:n.to,label:n.label,reply:n.reply===!0,bidirectional:n.bidirectional===!0||void 0});let i=[];for(let t of e.frames??[]){if(!t||!I(t.label)||typeof t.from!=`number`||typeof t.to!=`number`||!Number.isFinite(t.from)||!Number.isFinite(t.to)||r.length===0)continue;let e=Math.max(0,Math.min(r.length-1,Math.floor(t.from))),n=Math.max(e,Math.min(r.length-1,Math.floor(t.to)));i.push({kind:t.kind&&_t.has(t.kind)?t.kind:`loop`,label:t.label,from:e,to:n})}i.sort((e,t)=>e.from-t.from);let a=[];for(let n of e.activations??[]){if(!n||!I(n.actor)||!t.has(n.actor)||typeof n.from!=`number`||typeof n.to!=`number`||!Number.isFinite(n.from)||!Number.isFinite(n.to)||r.length===0)continue;let e=Math.max(0,Math.min(r.length-1,Math.floor(n.from))),i=Math.max(e,Math.min(r.length-1,Math.floor(n.to)));a.push({actor:n.actor,from:e,to:i})}let o=new Set([`over`,`left`,`right`]),s=[];for(let n of e.notes??[]){if(!n||!I(n.text)||n.text.length===0)continue;let e=(Array.isArray(n.actors)?n.actors:[]).filter(e=>I(e)&&t.has(e));if(e.length===0)continue;let i=n.placement&&o.has(n.placement)?n.placement:`over`,a=typeof n.after==`number`&&Number.isFinite(n.after)?Math.max(-1,Math.min(r.length-1,Math.floor(n.after))):r.length-1;s.push({text:n.text,actors:i===`over`?e.slice(0,2):e.slice(0,1),placement:i,after:a})}return{kind:`sequence`,title:I(e.title)?e.title:``,actors:n,messages:r,frames:i,activations:a.length>0?a:void 0,notes:s.length>0?s:void 0,legend:We(e.legend)}}var yt=new Set(e),bt=new Set([`navbar`,`tabs`,`pagination`,`menu`,`accordion`,`sidebar`,`segmented`,`tabbar`]),xt=new Set(we);function St(e){let t=[];for(let n of e.screens??[]){if(!n||!I(n.name))continue;let e=[];for(let t of Array.isArray(n.controls)?n.controls:[])!t||!t.kind||!yt.has(t.kind)||e.push({kind:t.kind,label:L(t.label),width:t.width&&xt.has(t.width)?t.width:void 0,value:typeof t.value!=`number`||!Number.isFinite(t.value)?void 0:bt.has(t.kind)?Ve(Math.max(0,Math.floor(t.value))):t.kind===`rating`?Math.max(0,Math.min(5,Math.round(t.value))):t.kind===`alert`?Math.max(0,Math.min(be.length-1,Math.round(t.value))):Math.max(0,Math.min(1,t.value))});t.push({name:n.name,frame:n.frame&&Fe.has(n.frame)?n.frame:`phone`,controls:e})}return{kind:`wireframe`,title:I(e.title)?e.title:``,screens:t,legend:We(e.legend)}}function Ct(e){return e?.kind===`gitgraph`?at(e):e?.kind===`gantt`?tt(e):e?.kind===`sankey`?gt(e):e?.kind===`sequence`?vt(e):e?.kind===`erd`?Ze(e):e?.kind===`wireframe`?St(e):e?.kind===`mindmap`?mt(e):e?.kind===`infographic`?ft(e):Ue(e??{})}function wt(e){return e.kind===`sequence`?e.actors.length===0:e.kind===`erd`?e.entities.length===0:e.kind===`wireframe`?e.screens.every(e=>e.controls.length===0):e.kind===`mindmap`?e.central.length===0&&e.branches.length===0:e.kind===`infographic`?e.items.length===0:e.kind===`gitgraph`?e.commits.length===0:e.kind===`gantt`?e.tasks.length===0:e.kind===`sankey`?e.flows.length===0:e.nodes.length===0}function Tt(e){let t=Ct(e);if(t.kind===`sequence`)return`${t.actors.length} lifelines · ${t.messages.length} messages`;if(t.kind===`erd`)return`${t.entities.length} tables · ${t.relations.length} relations`;if(t.kind===`wireframe`){let e=t.screens.reduce((e,t)=>e+t.controls.length,0);return`${t.screens.length} screens · ${e} widgets`}if(t.kind===`mindmap`){let e=t.branches.reduce((e,t)=>e+(t.children?.length??0),0);return`${t.branches.length} branches · ${e} ideas`}if(t.kind===`infographic`){let e=t.variant===`venn`?`sets`:t.variant===`matrix`?`quadrants`:t.variant===`timeline`?`milestones`:`stages`;return`${t.variant} · ${t.items.length} ${e}`}if(t.kind===`sankey`)return`${new Set(t.flows.flatMap(e=>[e.from,e.to])).size} nodes · ${t.flows.length} flows`;if(t.kind===`gantt`){let e=new Set(t.tasks.map(e=>e.section).filter(Boolean));return`${t.tasks.length} tasks${e.size>0?` · ${e.size} sections`:``}`}if(t.kind===`gitgraph`){let e=t.commits.filter(e=>e.mergeFrom).length;return`${t.commits.length} commits · ${t.lanes.length} branches${e>0?` · ${e} merges`:``}`}return`${t.nodes.length} shapes · ${t.edges.length} arrows`}var Et=new Set([`ellipse`,`circle`,`double-circle`]);function Dt(e,t){let n=new Map(e.map(e=>[e,[]])),r=new Map,i=[],a=new Map(e.map(e=>[e,[]]));for(let e of t)a.get(e.from)?.push(e.to);let o=[],s=e=>{for(o.push({node:e,next:0}),r.set(e,`visiting`);o.length>0;){let e=o[o.length-1],t=a.get(e.node)??[];if(e.next>=t.length){r.set(e.node,`done`),o.pop();continue}let n=t[e.next];e.next+=1;let s=r.get(n);s!==`visiting`&&(i.push({from:e.node,to:n}),s||(r.set(n,`visiting`),o.push({node:n,next:0})))}};for(let t of e)r.has(t)||s(t);for(let e of i)n.get(e.from)?.push(e.to);let c=new Map(e.map(e=>[e,0]));for(let e of i)c.set(e.to,(c.get(e.to)??0)+1);let l=new Map(e.map(e=>[e,0])),u=e.filter(e=>(c.get(e)??0)===0);for(let e=0;e<u.length;e+=1){let t=u[e];for(let e of n.get(t)??[]){l.set(e,Math.max(l.get(e)??0,(l.get(t)??0)+1));let n=(c.get(e)??1)-1;c.set(e,n),n===0&&u.push(e)}}return l}function Ot(e,t){let n=e.reduce((e,t)=>Math.max(e,t.rank),0)+1,r=Array.from({length:n},()=>[]);for(let t of e)r[t.rank].push(t);let i=new Map;for(let e of t)i.set(e.from,[...i.get(e.from)??[],e.to]),i.set(e.to,[...i.get(e.to)??[],e.from]);let a=new Map,o=()=>{for(let e of r)e.forEach((e,t)=>a.set(e.id,t))};o();let s=e=>{let t=(i.get(e.id)??[]).map(e=>a.get(e)).filter(e=>e!==void 0);return t.length===0?a.get(e.id)??0:t.reduce((e,t)=>e+t,0)/t.length};for(let e=0;e<3;e+=1)for(let e of r){let t=e.map(e=>({cell:e,key:s(e)}));t.sort((e,t)=>e.key-t.key),e.splice(0,e.length,...t.map(e=>e.cell)),o()}return r}function kt(e,t,n,r,i=48){let a=e=>t===`right`?e.width:e.height,o=e=>t===`right`?e.height:e.width,s=0;for(let[r,c]of e.entries()){if(c.length===0)continue;let e=Math.max(...c.map(a)),l=-(c.reduce((e,t)=>e+o(t),0)+(c.length-1)*i)/2;for(let n of c){let r=s+(e-a(n))/2;t===`right`?(n.x=r,n.y=l):(n.x=l,n.y=r),l+=o(n)+i}s+=e+(n?.(r)??110)}r&&r.length>0&&At(e,t,r,i)}function At(e,t,n,r){if(e.length<2)return;let i=t===`right`,a=e=>i?e.height:e.width,o=e=>i?e.y:e.x,s=(e,t)=>{i?e.y=t:e.x=t},c=e=>o(e)+a(e)/2,l=new Map(e.flat().map(e=>[e.id,e])),u=new Map;e.forEach((e,t)=>e.forEach(e=>u.set(e.id,t)));let d=new Map;for(let e of n)!l.has(e.from)||!l.has(e.to)||u.get(e.from)!==u.get(e.to)&&(d.set(e.from,[...d.get(e.from)??[],e.to]),d.set(e.to,[...d.get(e.to)??[],e.from]));if(d.size===0)return;let f=(e,t)=>{let n=[...t];for(let t=1;t<e.length;t+=1)n[t]=Math.max(n[t],n[t-1]+a(e[t-1])+r);let i=[...t];for(let t=e.length-2;t>=0;--t)i[t]=Math.min(i[t],i[t+1]-a(e[t])-r);e.forEach((e,t)=>s(e,(n[t]+i[t])/2))};for(let t=0;t<4;t+=1){let n=t%2==0?e:[...e].reverse();for(let e of n)e.length!==0&&f(e,e.map(e=>{let t=(d.get(e.id)??[]).map(e=>c(l.get(e)));return(t.length>0?t.reduce((e,t)=>e+t,0)/t.length:c(e))-a(e)/2}))}for(let[t,n]of e.entries())n.length!==0&&f(n,n.map(e=>{let n=c(e),r=d.get(e.id)??[],i=null;for(let e of r){if((u.get(e)??t)>=t)continue;let r=c(l.get(e));(i===null||Math.abs(r-n)<Math.abs(i-n))&&(i=r)}let o=r.length===1||Math.abs((i??n)-n)<=44;return(i!==null&&o?i:n)-a(e)/2}))}var R=.001,jt=1e5,Mt=1e-5,Nt=4e3,Pt=2*jt,Ft=6e4,It=40,Lt=900;function Rt(e){let t=[];for(let n of e)for(let e=0;e<n.length-1;e++){let r=n[e],i=n[e+1];Math.abs(r.x-i.x)<4?t.push({vertical:!0,c:(r.x+i.x)/2,lo:Math.min(r.y,i.y),hi:Math.max(r.y,i.y)}):Math.abs(r.y-i.y)<4&&t.push({vertical:!1,c:(r.y+i.y)/2,lo:Math.min(r.x,i.x),hi:Math.max(r.x,i.x)})}return t}function zt(e,t,n=8){let r=0;for(let i of t){if(i.vertical!==e.vertical||Math.abs(i.c-e.c)>n)continue;let t=Math.min(e.hi,i.hi)-Math.max(e.lo,i.lo);t>.001&&(r+=t)}return r}function Bt(e){let t=e.filter(e=>!e.vertical).sort((e,t)=>e.c-t.c),n=e.filter(e=>e.vertical).sort((e,t)=>e.c-t.c);return{horizontal:t,vertical:n,horizontalCs:t.map(e=>e.c),verticalCs:n.map(e=>e.c)}}function Vt(e,t){let n=0,r=e.length;for(;n<r;){let i=n+r>>1;e[i]<t?n=i+1:r=i}return n}function Ht(e,t,n){let r=t.vertical?e.vertical:e.horizontal,i=t.vertical?e.verticalCs:e.horizontalCs,a=0;for(let e=Vt(i,t.c-n);e<r.length&&i[e]<=t.c+n;e++){let n=r[e],i=Math.min(t.hi,n.hi)-Math.max(t.lo,n.lo);i>.001&&(a+=i)}return a}function Ut(e,t){let n=t.vertical?e.horizontal:e.vertical,r=t.vertical?e.horizontalCs:e.verticalCs,i=0;for(let e=Vt(r,t.lo+R);e<n.length&&r[e]<t.hi-.001;e++){let r=n[e];t.c>r.lo+.001&&t.c<r.hi-.001&&(i+=1)}return i}function Wt(e,t){let n=0;for(let r of t){if(!(e.vertical?e.c>r.x+.001&&e.c<r.x+r.width-.001:e.c>r.y+.001&&e.c<r.y+r.height-.001))continue;let t=e.vertical?r.y:r.x,i=e.vertical?r.y+r.height:r.x+r.width,a=Math.min(e.hi,i)-Math.max(e.lo,t);a>.001&&(n+=a)}return n}function Gt(e,t,n){let r=0;for(let i of n){let n=Math.min(t,i.hi)-Math.max(e,i.lo);n>.001&&(r+=n)}return r}function Kt(e,t,n){let r=0;for(let i=0;i<n.length;i+=2){let a=Math.min(t,n[i+1])-Math.max(e,n[i]);a>.001&&(r+=a)}return r}function qt(e,t,n,r,i){let a=Math.min(e,n),o=Math.max(e,n),s=Math.min(t,r),c=Math.max(t,r),l=Math.max(i.x-o,a-(i.x+i.width),0),u=Math.max(i.y-c,s-(i.y+i.height),0);return Math.hypot(l,u)}function Jt(e,t){return Mt*e*t}function Yt(e,t,n,r){return e*Nt+t*It+n*Ft+r*Lt}function Xt(e,t,n,r,i,a){let o=0;for(let a of e)o+=1/(1+qt(t,n,r,i,a));return Jt(a,o)}function Zt(e,t,n,r,i){if(e.occupiedSegments.length===0&&e.marginBoxes.length===0&&e.softBoxes.length===0)return 0;let a=Math.abs(t-r)<R,o=a?{vertical:a,c:t,lo:Math.min(n,i),hi:Math.max(n,i)}:{vertical:a,c:n,lo:Math.min(t,r),hi:Math.max(t,r)};return Yt(Ht(e.laneIndex,o,8),Ht(e.marginIndex,o,12),Ut(e.laneIndex,o),Wt(o,e.softBoxes))}function Qt(e,t){return e===1?0:e===-1?1:t===1?2:3}var $t=class{a=[];b=[];cost=[];dir=[];push(e,t,n,r){this.a.push(e),this.b.push(t),this.cost.push(n),this.dir.push(r)}pack(e){let{a:t,b:n,cost:r,dir:i}=this,a=new Int32Array(e+1);for(let e=0;e<t.length;e++)a[t[e]+1]++,a[n[e]+1]++;for(let t=0;t<e;t++)a[t+1]+=a[t];let o=a.slice(0,e),s=new Int32Array(a[e]),c=new Float64Array(a[e]),l=new Uint8Array(a[e]);for(let e=0;e<t.length;e++){let a=t[e],u=n[e],d=r[e],f=i[e],p=o[a]++;s[p]=u,c[p]=d,l[p]=f,p=o[u]++,s[p]=a,c[p]=d,l[p]=f^1}return{csrStart:a,csrNode:s,csrCost:c,csrDir:l}}},en=class{costs=[];states=[];cost=0;state=0;get size(){return this.costs.length}push(e,t){let n=this.costs,r=this.states;n.push(e),r.push(t);let i=n.length-1;for(;i>0;){let e=i-1>>1;if(n[e]<=n[i])break;let t=n[e];n[e]=n[i],n[i]=t;let a=r[e];r[e]=r[i],r[i]=a,i=e}}pop(){let e=this.costs,t=this.states;this.cost=e[0],this.state=t[0];let n=e.pop(),r=t.pop();if(e.length>0){e[0]=n,t[0]=r;let i=0;for(;;){let n=2*i+1,r=2*i+2,a=i;if(n<e.length&&e[n]<e[a]&&(a=n),r<e.length&&e[r]<e[a]&&(a=r),a===i)break;let o=e[a];e[a]=e[i],e[i]=o;let s=t[a];t[a]=t[i],t[i]=s,i=a}}}},tn=new Float64Array,nn=new Int32Array,rn=new Uint32Array,an=0;function on(e,t,n){let r=e.csrStart,i=e.csrNode,a=e.csrCost,o=e.csrDir,s=e.xs.length*4;tn.length<s&&(tn=new Float64Array(s),nn=new Int32Array(s),rn=new Uint32Array(s),an=0),an++,an===4294967295&&(rn.fill(0),an=1);let c=tn,l=nn,u=rn,d=an,f=new en;for(let e of t){let t=Qt(e.normal[0],e.normal[1]),n=e.anchorId*4+t;(u[n]!==d||e.cost<c[n])&&(c[n]=e.cost,l[n]=-1,u[n]=d,f.push(e.cost,n))}let p=-1,m=1/0,h=new Set;for(;f.size>0;){f.pop();let e=f.cost,t=f.state;if(e>=m)break;if(e>c[t])continue;let s=t>>2,g=t&3;if(!h.has(s)){let r=n.get(s);if(r!==void 0){h.add(s);let i=e+r;if(i<m&&(m=i,p=t),h.size===n.size)break}}let _=r[s+1];for(let n=r[s];n<_;n++){let r=o[n];if(r===(g^1))continue;let s=e+a[n]+(r===g?0:jt),p=i[n]*4+r;(u[p]!==d||s<c[p])&&(c[p]=s,l[p]=t,u[p]=d,f.push(s,p))}}if(p===-1)return null;let g=[];for(let e=p;e!==-1;e=l[e])g.push(e>>2);return g.reverse(),{cost:m,nodeIds:g}}var sn=4e4;function cn(e,t,n){let r=[],i=[];for(let t of e)r.push(t.x,t.x+t.width),i.push(t.y,t.y+t.height);for(let e of n.marginBoxes)r.push(e.x-t,e.x+t,e.x+e.width-t,e.x+e.width+t),i.push(e.y-t,e.y+t,e.y+e.height-t,e.y+e.height+t);for(let e of n.softBoxes)r.push(e.x-t,e.x+e.width+t),i.push(e.y-t,e.y+e.height+t);for(let e of n.occupiedSegments)e.vertical?r.push(e.c-8-4,e.c+8+4):i.push(e.c-8-4,e.c+8+4);return{xs:r,ys:i}}function ln(e){let t=e.slice().sort((e,t)=>e-t),n=[];for(let e of t)(n.length===0||Math.abs(e-n[n.length-1])>.001)&&n.push(e);return n}function un(e){let t=[];for(let n=0;n<e.length;n++)t.push(e[n]),n<e.length-1&&t.push((e[n]+e[n+1])/2);return t}function dn(e,t){let n=ln(un(ln(e))),r=ln(un(ln(t)));return n.length*r.length>sn?{gx:ln(e),gy:ln(t)}:{gx:n,gy:r}}function fn(e){let t=new Map;for(let n=0;n<e.length;n++){let r=e[n].toFixed(3);t.has(r)||t.set(r,n)}return t}function pn(e,t){let n=t.length,r=[],i=[];for(let n of e)for(let e of t)r.push(n),i.push(e);let a=fn(e),o=fn(t),s=new Map,c=(e,t)=>{let r=a.get(e.toFixed(3)),i=o.get(t.toFixed(3));return r!==void 0&&i!==void 0?r*n+i:s.get(`${e.toFixed(3)},${t.toFixed(3)}`)};return{xs:r,ys:i,lookup:c,add:(e,t)=>{let n=c(e,t);if(n!==void 0)return n;let a=r.length;return r.push(e),i.push(t),s.set(`${e.toFixed(3)},${t.toFixed(3)}`,a),a}}}function mn(e,t,n,r,i){let a=i.x+R,o=i.x+i.width-R,s=i.y+R,c=i.y+i.height-R;return o<=a||c<=s?!1:Math.abs(e-n)<1e-9?e<=a||e>=o?!1:Math.min(Math.max(t,r),c)>Math.max(Math.min(t,r),s):t<=s||t>=c?!1:Math.min(Math.max(e,n),o)>Math.max(Math.min(e,n),a)}function hn(e,t,n,r,i,a){for(let o=0;o<e.length;o++)if(o!==a&&mn(t,n,r,i,e[o]))return!1;return!0}function gn(e,t,n,r,i,a,o){let s=[];for(let n of r){let r=n.x+R,i=n.x+n.width-R,a=n.y+R,o=n.y+n.height-R;i<=r||o<=a||(e&&t>r&&t<i?s.push(a,o):!e&&t>a&&t<o&&s.push(r,i))}let c=[],l=[],u=[];for(let n of i)e?(c.push(Math.max(n.x-t,t-(n.x+n.width),0)),l.push(n.y),u.push(n.y+n.height)):(c.push(Math.max(n.y-t,t-(n.y+n.height),0)),l.push(n.x),u.push(n.x+n.width));let d=a.occupiedSegments.length>0||a.marginBoxes.length>0||a.softBoxes.length>0,f=[],p=[],m=[],h=[];if(d){let{laneIndex:n,marginIndex:r}=a,i=e?n.verticalCs:n.horizontalCs,o=e?n.vertical:n.horizontal;for(let e=Vt(i,t-8);e<o.length&&i[e]<=t+8;e++)f.push(o[e]);let s=e?r.verticalCs:r.horizontalCs,c=e?r.vertical:r.horizontal;for(let e=Vt(s,t-12);e<c.length&&s[e]<=t+12;e++)p.push(c[e]);for(let r of e?n.horizontal:n.vertical)t>r.lo+.001&&t<r.hi-.001&&m.push(r.c);for(let n of a.softBoxes)e&&t>n.x+.001&&t<n.x+n.width-.001?h.push(n.y,n.y+n.height):!e&&t>n.y+.001&&t<n.y+n.height-.001&&h.push(n.x,n.x+n.width)}for(let e=0;e<n.length-1;e++){let t=n[e],r=n[e+1],i=!1;for(let e=0;e<s.length;e+=2)if(Math.min(r,s[e+1])>Math.max(t,s[e])){i=!0;break}if(i)continue;let a=Math.abs(t-r),g=0;for(let e=0;e<c.length;e++){let n=Math.max(l[e]-r,t-u[e],0);g+=1/(1+Math.hypot(c[e],n))}let _=0;d&&(_=Yt(Gt(t,r,f),Gt(t,r,p),Vt(m,r-R)-Vt(m,t+R),Kt(t,r,h))),o(e,a+Jt(a,g)+_)}}var _n=[`left`,`right`,`top`,`bottom`],vn={left:[-1,0],right:[1,0],top:[0,-1],bottom:[0,1]};function yn(e,t,n=0){return t===`left`?[e.x,e.y+e.height/2+n]:t===`right`?[e.x+e.width,e.y+e.height/2+n]:t===`top`?[e.x+e.width/2+n,e.y]:[e.x+e.width/2+n,e.y+e.height]}var bn=6;function xn(e,t,n){if(n<=0)return[0];let r=(e===`top`||e===`bottom`?t.width:t.height)/2-bn,i=[0];for(let e of[Math.min(n,Math.max(r,16)),n*2])e<=r&&!i.includes(e)&&i.push(-e,e);return i}function Sn(e,t){let n=t.x+t.width/2-(e.x+e.width/2),r=t.y+t.height/2-(e.y+e.height/2),i=e=>{let t=vn[e];return t[0]*n+t[1]*r};return _n.slice().sort((e,t)=>i(t)-i(e))}function Cn(e,t){for(let n of e)if(Math.hypot(n.x-t[0],n.y-t[1])<16)return!0;return!1}function wn(e,t,n,r,i,a,o){let s=[];for(let c of r)for(let r of xn(c,n,i[c]??0)){let i=yn(n,c,r),l=vn[c],u=[i[0]+l[0]*a,i[1]+l[1]*a],d=Math.abs(r)*2;Cn(o,i)&&(d+=Pt),s.push({terminal:e,boxIndex:t,side:c,anchor:i,stub:u,cost:d})}return s}function Tn(e,t,n,r,i,a,o){let s=e.map(e=>u(e,a)),c=cn(s,a,o),{extent:l}=o,d=c.xs.filter(e=>e>=l.x-.001&&e<=l.x+l.width+.001),f=c.ys.filter(e=>e>=l.y-.001&&e<=l.y+l.height+.001),p=Math.max(a,o.minStub),m=[...wn(`from`,t,e[t],r,o.fromSpread,p,o.occupiedPorts),...wn(`to`,n,e[n],i,o.toSpread,p,o.occupiedPorts)];for(let e of m)d.push(e.anchor[0],e.stub[0]),f.push(e.anchor[1],e.stub[1]);let{gx:h,gy:g}=dn(d,f),_=g.length,v=pn(h,g),y=new $t,b=Qt(0,1);for(let t=0;t<h.length;t++){let n=t*_;gn(!0,h[t],g,s,e,o,(e,t)=>{y.push(n+e,n+e+1,t,b)})}let x=Qt(1,0);for(let t=0;t<_;t++)gn(!1,g[t],h,s,e,o,(e,n)=>{let r=e*_+t;y.push(r,r+_,n,x)});let S={boxIndex:t,anchors:new Map},C={boxIndex:n,anchors:new Map};for(let t of m){let n=v.add(t.anchor[0],t.anchor[1]),r=v.lookup(t.stub[0],t.stub[1]),i=v.xs[n],a=v.ys[n],c=v.xs[r],l=v.ys[r];if(hn(s,i,a,c,l,t.boxIndex)){let t=Math.abs(i-c)+Math.abs(a-l),s=t+Xt(e,i,a,c,l,t)+Zt(o,i,a,c,l);y.push(n,r,s,Qt(Math.sign(c-i),Math.sign(l-a)))}let u=t.terminal===`from`?S:C,d=u.anchors.get(t.side)??[];d.push({anchorId:n,normal:vn[t.side],cost:t.cost}),u.anchors.set(t.side,d)}return{xs:v.xs,ys:v.ys,...y.pack(v.xs.length),fromPorts:S,toPorts:C}}var En=16,Dn=240;function On(e,t,n=8){return kn(e,Rt(t),n)}function kn(e,t,n=8){let r=0;for(let i of Rt([e]))r+=zt(i,t,n);return r}function An(e,t){if(t.length===0)return 0;let n=0;for(let r of Rt([e]))n+=Wt(r,t);return n}function jn(e,t){return Math.abs(e.x-t.x)<.001&&Math.abs(e.y-t.y)<.001&&Math.abs(e.width-t.width)<.001&&Math.abs(e.height-t.height)<.001}function Mn(e){if(e.length<=2)return e;let t=[e[0]];for(let n=1;n<e.length-1;n++){let r=t[t.length-1],i=e[n],a=e[n+1],o=Math.sign(i[0]-r[0]),s=Math.sign(i[1]-r[1]),c=Math.sign(a[0]-i[0]),l=Math.sign(a[1]-i[1]);o===c&&s===l||t.push(i)}return t.push(e[e.length-1]),t}function Nn(e){return[{x:e.x,y:e.y},{x:e.x+e.width,y:e.y},{x:e.x+e.width,y:e.y+e.height},{x:e.x,y:e.y+e.height},{x:e.x,y:e.y}]}function Pn(e,t,n,r,i,a,o){let s=Tn(e,t,n,r,i,a,o),c=new Map;i.forEach((e,t)=>{for(let n of s.toPorts.anchors.get(e)??[])c.set(n.anchorId,n.cost+t*.5)});let l=null;for(let e of r){let t=(s.fromPorts.anchors.get(e)??[]).filter(e=>!c.has(e.anchorId));if(t.length===0)continue;let n=on(s,t,c);n!==null&&(l===null||n.cost<l.cost)&&(l=n)}return l===null?null:Mn(l.nodeIds.map(e=>[s.xs[e],s.ys[e]]))}function Fn(e,t,n,r,i,a){if(e.length<4)return e;let o=e[e.length-1],s=e[e.length-2],c=e[e.length-3],l=e[e.length-4],u=null;if(Math.abs(o[1]-t.y)<.001?u=`top`:Math.abs(o[1]-(t.y+t.height))<.001?u=`bottom`:Math.abs(o[0]-t.x)<.001?u=`left`:Math.abs(o[0]-(t.x+t.width))<.001&&(u=`right`),!u)return e;let d=Math.max(6,...xn(u,t,n[u]??0).map(Math.abs)),f=+(u===`top`||u===`bottom`),p=1-f;if(!(Math.abs(s[p]-o[p])<.001&&Math.abs(c[f]-s[f])<.001&&Math.abs(l[p]-c[p])<.001&&Math.sign(c[f]-l[f])===Math.sign(o[f]-s[f])))return e;let m=f===1?t.x+t.width/2:t.y+t.height/2,h=c[p];if(Math.abs(h-m)>d)return e;let g=f===1?[h,o[1]]:[o[0],h];if(Cn(a.occupiedPorts,g))return e;let _=Math.min(c[f],g[f]),v=Math.max(c[f],g[f]);if(zt(f===1?{vertical:!0,c:h,lo:_,hi:v}:{vertical:!1,c:h,lo:_,hi:v},a.occupiedSegments)>1)return e;for(let t=0;t<i.length;t++)if(t!==r&&(f===1?mn(h,_,h,v,i[t]):mn(_,h,v,h,i[t])))return e;return[...e.slice(0,e.length-3),g]}function In(e,t,n){let r=Math.min(e.x,t.x),i=Math.min(e.y,t.y),a=Math.max(e.x+e.width,t.x+t.width),o=Math.max(e.y+e.height,t.y+t.height),s=Math.max(Dn,n*6,.2*Math.max(a-r,o-i));return{x:r-s,y:i-s,width:a-r+s*2,height:o-i+s*2}}function Ln(e,t,n){return e.vertical?e.c>t.x-n&&e.c<t.x+t.width+n&&e.hi>t.y&&e.lo<t.y+t.height:e.c>t.y-n&&e.c<t.y+t.height+n&&e.hi>t.x&&e.lo<t.x+t.width}function Rn(e,t){for(let n=0;n<e.length;n++)if(jn(e[n],t))return n;return e.push(t),e.length-1}function zn(e,t,n,r=En,i={}){let a=In(e.bounds,t.bounds,r),o=[],c=Rn(o,e.bounds),l=Rn(o,t.bounds);for(let e of n)s(e,a)&&Rn(o,e);let u=(i.marginBoxes??[]).filter(e=>s(e,a)),d=i.occupiedSegments??Rt(i.occupiedPaths??[]),f=d.filter(e=>Ln(e,a,8)),p={occupiedSegments:f,laneIndex:Bt(f),occupiedPorts:(i.occupiedPorts??[]).filter(e=>e.x>a.x-16&&e.x<a.x+a.width+16&&e.y>a.y-16&&e.y<a.y+a.height+16),fromSpread:i.fromSpread??{},toSpread:i.toSpread??{},marginBoxes:u,marginIndex:Bt(Rt(u.map(Nn))),softBoxes:(i.softBoxes??[]).filter(e=>s(e,a)),minStub:i.minStub??0,extent:a},m=e.side?[e.side]:Sn(e.bounds,t.bounds),h=t.side?[t.side]:Sn(t.bounds,e.bounds),g=[];for(let e of[r,r*.5,r*.25,4,1,.5])e>0&&!g.some(t=>Math.abs(t-e)<1e-6)&&g.push(e);g.sort((e,t)=>t-e);let _=null;for(let n of g){if(_!==null&&n<12)break;let r=Pn(o,c,l,m,h,n,p);if(r!==null){r=Fn(r,t.bounds,p.toSpread,l,o,p),r=Fn(r.slice().reverse(),e.bounds,p.fromSpread,c,o,p).reverse();let n=r.map(e=>({x:e[0],y:e[1]}));if(kn(n,d)>12){_??=n;continue}return n}}return _}var z=`#1e1e1e`,B=`#868e96`,Bn=`#adb5bd`,V=f,H=2.1,U={blue:a.blue.pastel,green:a.green.pastel,red:a.red.pastel,orange:a.orange.pastel,violet:a.purple.pastel,teal:a.teal.pastel,pink:a.pink.pastel,yellow:a.yellow.pastel,gray:a.gray.pastel},Vn=[`#e7f5ff`,`#fff9db`,`#ebfbee`,`#f3f0ff`,`#fff4e6`,`#e6fcf5`,`#fff0f6`],W=[`blue`,`green`,`orange`,`violet`,`pink`,`teal`,`yellow`,`gray`],Hn=14;function Un(e){let t=e.trim();if(t.length<=Hn||t.includes(`
|
|
2
|
-
`))return t;let n=t.split(/\s+/);if(n.length===1)return t;let r=Math.min(Math.ceil(t.length/Hn),n.length),i=[],a=0;for(let e=0;e<n.length-1;e+=1)a+=n[e].length+1,i.push(a);let o=[],s=0;for(let e=1;e<r;e+=1){let n=t.length*e/r,a=-1;for(let t=s;t<i.length-(r-1-e);t+=1)(a===-1||Math.abs(i[t]-n)<Math.abs(i[a]-n))&&(a=t);if(a===-1)break;o.push(a),s=a+1}let c=[],l=0;for(let e of o)c.push(n.slice(l,e+1).join(` `)),l=e+1;return c.push(n.slice(l).join(` `)),c.join(`
|
|
3
|
-
`)}function Wn(e,t){let n=0;for(let r of e.split(`
|
|
4
|
-
`))n=Math.max(n,O(r,t));return n}function Gn(e){return{width:Wn(e,16)+20,height:e.split(`
|
|
5
|
-
`).length*16*1.2+2}}var Kn=30,qn=24;function G(e){return{x:e.x,y:e.y,width:e.width,height:e.height}}function Jn(e,t){return`${e}→${t}`}function Yn(e){let t=new Map;for(let n of e){let e=Jn(n.from,n.to);t.has(e)||t.set(e,n)}return t}function Xn(e){let t=Yn(e);return e=>{let n=t.get(Jn(e.to,e.from));return n?!!e.dashed==!!n.dashed?e.from>e.to:!e.dashed:!1}}var Zn=12,Qn=e=>({x:e.x+e.width/2,y:e.y+e.height/2});function $n(e,t,n,r=!0){let i=Qn(t),a=Qn(n),o=Math.abs(e===`right`?i.y-a.y:i.x-a.x),s=r?or(t,n):null;if(s&&(o<=44||lr(t,n)))return{path:s,ports:s};if(o<=44)return{path:[i,a],ports:[p(t,i,a),p(n,a,i)]};let c=e=>({bounds:e,target:Qn(e),gap:6,minEnd:V*1.5,side:null,isPoint:!1}),l=re(c(t),c(n),.5).route,u;if(l&&l.length>=2)u=l;else if(e===`right`){let e=(t.x+t.width+n.x)/2;u=[{x:t.x+t.width,y:i.y},{x:e,y:i.y},{x:e,y:a.y},{x:n.x,y:a.y}]}else{let e=(t.y+t.height+n.y)/2;u=[{x:i.x,y:t.y+t.height},{x:i.x,y:e},{x:a.x,y:e},{x:a.x,y:n.y}]}return{path:u,ports:[u[0],u[u.length-1]]}}function K(e,t){for(let n=0;n<e.length-1;n+=1)if(t.some(t=>d(e[n],e[n+1],t,-8)))return!0;return!1}function er(e){let t=0,n=[],r=[];function a(e,t){e.length<2||(n.push(...Rt([e])),r.push(...t??[e[0],e[e.length-1]]))}function o(e){return kn(e,n)>Zn}function s(e){return r.some(t=>i(e,t)<12)}function c(i,o,s,c){let l={occupiedSegments:n,occupiedPorts:r,fromSpread:c.fromSpread,toSpread:c.toSpread,marginBoxes:c.margins,softBoxes:c.softBoxes,minStub:qn+(c.stubExtra??0)},u=Math.abs(e===`right`?i.y+i.height/2-(o.y+o.height/2):i.x+i.width/2-(o.x+o.width/2)),d=()=>{let n=e===`right`?t%2==0?[`top`,`bottom`]:[`bottom`,`top`]:t%2==0?[`left`,`right`]:[`right`,`left`];return t+=1,n};if(c.sides){let e=zn({bounds:G(i),side:c.sides.from},{bounds:G(o),side:c.sides.to},c.obstacles(),Kn,l);if(e)return a(e),{elbow:!0,bend:0,route:e}}if(s<=1&&c.detour){let e=c.obstacles();for(let t of d()){let n=zn({bounds:G(i),side:t},{bounds:G(o),side:t},e,Kn,l);if(n)return a(n),{elbow:!0,bend:0,route:n}}return{elbow:!1,bend:(t%2==0?1:-1)*60,route:null}}if(s>1){let e=c.obstacles(),n=c.softBoxes??[],r=null;if(u<=44)for(let t of d()){let s=zn({bounds:G(i),side:t},{bounds:G(o),side:t},e,Kn,l);if(s){if(An(s,n)===0)return a(s),{elbow:!0,bend:0,route:s};r??=s}}let f=zn({bounds:G(i)},{bounds:G(o)},e,Kn,l),p=f&&r?An(f,n)<An(r,n)?f:r:f??r;if(p)return a(p),{elbow:!0,bend:0,route:p};let m=Math.min(40+s*18,110),h=(t%2==0?1:-1)*m;return t+=1,{elbow:!1,bend:h,route:null}}return{elbow:u>44,bend:0,route:null}}return{route:c,register:a,overlaps:o,portTaken:s}}function tr(e,t){let n=[],r=0;for(let t=0;t<e.length-1;t+=1){let i=Math.hypot(e[t+1].x-e[t].x,e[t+1].y-e[t].y);n.push(i),r+=i}if(r===0||n.length===0)return e[0];let i=Math.min(Math.max(t,0),1)*r;for(let t=0;t<n.length;t+=1){if(i<=n[t]||t===n.length-1){let r=n[t]===0?0:Math.min(i/n[t],1);return{x:e[t].x+(e[t+1].x-e[t].x)*r,y:e[t].y+(e[t+1].y-e[t].y)*r}}i-=n[t]}return e[e.length-1]}function nr(e,t,n,r=[.25,.5,.75]){let i=0,a=[];for(let t=0;t<e.length-1;t+=1){let n=Math.hypot(e[t+1].x-e[t].x,e[t+1].y-e[t].y);a.push(n),i+=n}if(i===0)return;let o=e=>{let r=e.x-n.width/2,i=e.y-n.height/2,a=1/0;for(let e of t){let t=Math.max(e.x-(r+n.width),r-(e.x+e.width)),o=Math.max(e.y-(i+n.height),i-(e.y+e.height));a=Math.min(a,t>0||o>0?Math.hypot(Math.max(t,0),Math.max(o,0)):Math.max(t,o))}return a},s=null,c=0,l=(e,t)=>{let n=Math.min(o(t),90)-Math.abs(e-.5)*40;(!s||n>s.score)&&(s={t:e,score:n})};for(let t=0;t<e.length-1;t+=1){for(let n of r){let r={x:e[t].x+(e[t+1].x-e[t].x)*n,y:e[t].y+(e[t+1].y-e[t].y)*n};l((c+a[t]*n)/i,r)}c+=a[t]}return s?s.t:void 0}function rr(e,t){return{x:r((e.x-t.x)/Math.max(t.width,1)),y:r((e.y-t.y)/Math.max(t.height,1))}}var ir=24;function ar(e,t,n,r){let i=ir/2;return e>=n+i&&e<=r-i?e:t>=n+i&&t<=r-i?t:(n+r)/2}function or(e,t){let n=t.y>=e.y+e.height||e.y>=t.y+t.height;if(n===(t.x>=e.x+e.width||e.x>=t.x+t.width))return null;let r=e=>e.flatInset?.x??0,i=e=>e.flatInset?.y??0;if(n){let n=Math.max(e.x+r(e),t.x+r(t)),i=Math.min(e.x+e.width-r(e),t.x+t.width-r(t));if(i-n<ir)return null;let a=ar(e.x+e.width/2,t.x+t.width/2,n,i),o=t.y>e.y;return[{x:a,y:o?e.y+e.height:e.y},{x:a,y:o?t.y:t.y+t.height}]}let a=Math.max(e.y+i(e),t.y+i(t)),o=Math.min(e.y+e.height-i(e),t.y+t.height-i(t));if(o-a<ir)return null;let s=ar(e.y+e.height/2,t.y+t.height/2,a,o),c=t.x>e.x;return[{x:c?e.x+e.width:e.x,y:s},{x:c?t.x:t.x+t.width,y:s}]}var sr=48;function cr(e){if(!e||e.length<3||e.length>4)return!1;let t=e[0],n=e[e.length-1],r=Math.abs(t.x-n.x),i=Math.abs(t.y-n.y);if(Math.min(r,i)>sr||Math.max(r,i)<=sr)return!1;let a=e=>r<i?e.x:e.y,o=Math.min(a(t),a(n))-1,s=Math.max(a(t),a(n))+1;return e.every(e=>a(e)>=o&&a(e)<=s)}function lr(e,t){return Math.min(Math.abs(e.x+e.width/2-(t.x+t.width/2)),Math.abs(e.y+e.height/2-(t.y+t.height/2)))<=sr*1.5}function ur(e){let{from:t,to:n,routed:r}=e,i=e.square===!1?null:or(t,n),a=i&&e.obstacles&&K(i,e.obstacles)?null:i,o=r.elbow&&!r.route&&lr(t,n),s=r.elbow&&(cr(r.route)||o)&&a!==null,c=!r.elbow&&r.route?.length===2&&Math.abs(r.route[0].x-r.route[1].x)>1&&Math.abs(r.route[0].y-r.route[1].y)>1&&a!==null,l=s||c?a:r.route??(r.elbow?null:a),u=!r.elbow&&!r.route&&a===null&&Math.abs(t.x+t.width/2-(n.x+n.width/2))>1&&Math.abs(t.y+t.height/2-(n.y+n.height/2))>1,d=r.elbow&&!s||u,f=e.labelAlong===void 0?e.label&&l&&e.labelObstacles?nr(l,e.labelObstacles,Gn(e.label)):void 0:e.labelAlong;return{id:h(),type:`arrow`,x:l?l[0].x:t.x+t.width/2,y:l?l[0].y:t.y+t.height/2,x2:l?l[l.length-1].x:n.x+n.width/2,y2:l?l[l.length-1].y:n.y+n.height/2,bend:r.bend,bendAlong:0,bendStyle:d?`elbow`:`curved`,elbowPoints:d?l??void 0:void 0,startBinding:{shapeId:e.fromShapeId,anchor:l?rr(l[0],t):{x:.5,y:.5},precise:!!l},endBinding:{shapeId:e.toShapeId,anchor:l?rr(l[l.length-1],n):{x:.5,y:.5},precise:!!l},label:e.label,labelAlong:f,fontSize:16,fontFamily:m,color:e.color??`#1e1e1e`,strokeWidth:e.strokeWidth??V,dash:e.dashed||e.flow?`dashed`:`solid`,flow:e.flow||void 0,startArrow:e.startArrow??!1,startHead:e.startHead,endHead:e.endHead,endArrow:e.endArrow??!0,opacity:1}}var dr=22;function fr(e,t){return!!t&&!e.shape&&!e.color}var pr=new Set([`queue`,`cylinder`]);function mr(e){return!!e.shape&&pr.has(e.shape)}function hr(e){return{id:e.id,rank:e.rank,x:e.x+(e.width-64)/2,y:e.y,width:64,height:64}}var gr={diamond:{extraWidth:44,height:100},cylinder:{clampLabel:[140,240],height:96},queue:{extraWidth:58,clampLabel:[170,270],height:80},callout:{clampLabel:[170,260],height:92},ellipse:{extraWidth:24,height:80},note:{clampLabel:[170,280],height:96},sticky:{width:160,height:160},cloud:{extraWidth:48,height:96},"speech-bubble":{extraWidth:20,height:96},star:{width:130,height:130},triangle:{width:140,height:110},hexagon:{extraWidth:36,height:88},parallelogram:{extraWidth:40,height:82},trapezoid:{extraWidth:40,height:82},"manual-input":{extraWidth:24,height:86},document:{height:92},pentagon:{extraWidth:40,height:78},chevron:{extraWidth:40,height:78},octagon:{extraWidth:30,height:96},cube:{clampLabel:[120,200],height:110},checkbox:{width:90,height:90},crossbox:{width:90,height:90},plus:{width:90,height:90},heart:{width:116,height:104},bolt:{width:80,height:112},"arrow-up":{width:96,height:124},"arrow-down":{width:96,height:124},"arrow-left":{extraWidth:20,height:96},"arrow-right":{extraWidth:20,height:96},"fork-join":{clampLabel:[150,200],height:30}},_r=200;function vr(e){return e.split(`
|
|
6
|
-
`).flatMap(e=>Ae(e,_r,e=>O(e,17))).join(`
|
|
7
|
-
`)}function yr(e,t){let n=e.shape?Sr[e.shape]:void 0,r={x:0,y:0,width:t.width,height:t.height};if(n===`cylinder`)return{x:0,y:g(r)};if(n===`queue`)return{x:ne(r),y:0}}function br(e,t,n=!0){if(fr(e,t)){let t=vr(e.label).split(`
|
|
8
|
-
`),n=Math.max(...t.map(e=>O(e,17)));return{width:Math.max(64,n),height:94.65+(t.length-1)*17*j}}let r=n&&t?M(20)+A(20):0,i=e.label.split(`
|
|
9
|
-
`),a=Math.max(...i.map(e=>O(e,20)))+52+r,o=Math.round((i.length-1)*20*j),s=c(a,150,280);if(e.shape===`circle`||e.shape===`double-circle`){let t=Math.max(...e.label.split(/\s+/).map(e=>O(e,20))),n=e.shape===`double-circle`?.58:.7,r=Math.max(120,Math.min(Math.round(a*.75),200),Math.min(Math.round((t+24)/n),260));return{width:r,height:r}}let l=e.shape?gr[e.shape]:void 0;if(!l)return{width:s,height:78+o};if(l.width!==void 0)return{width:l.width,height:l.height};if(l.clampLabel){let[e,t]=l.clampLabel;return{width:Math.max(e,Math.min(a+(l.extraWidth??0),t)),height:l.height+o}}return{width:s+(l.extraWidth??0),height:l.height+o}}function xr(e){return e.frame===`browser`?{top:62,side:26,bottom:dr}:e.frame===`window`?{top:58,side:26,bottom:dr}:e.frame===`phone`?{top:44,side:34,bottom:44}:e.frame===`tablet`?{top:40,side:30,bottom:44}:{top:28,side:26,bottom:dr}}var Sr={ellipse:`oval`,circle:`ellipse`,diamond:`diamond`,cylinder:`cylinder`,queue:`queue`,callout:`callout`,hexagon:`hexagon`,parallelogram:`parallelogram`,trapezoid:`trapezoid`,triangle:`triangle`,cloud:`cloud`,star:`star`,"speech-bubble":`speech-bubble`,note:`note`,checkbox:`checkbox`,crossbox:`crossbox`,heart:`heart`,"arrow-up":`arrow-up`,"arrow-down":`arrow-down`,"arrow-left":`arrow-left`,"arrow-right":`arrow-right`,plus:`plus`,bolt:`bolt`,document:`document`,"predefined-process":`predefined-process`,"manual-input":`manual-input`,pentagon:`pentagon`,chevron:`chevron`,octagon:`octagon`,cube:`cube`,actor:`actor`,"double-circle":`double-circle`,card:`card`,delay:`delay`,"fork-join":`fork-join`,"multi-document":`multi-document`,"multi-process":`multi-process`,package:`package`,component:`component`,brace:`brace`},Cr=20,q=[`left`,`right`,`top`,`bottom`],wr={rectangle:q,note:q,sticky:q,diamond:q,circle:q,cylinder:q,ellipse:q,callout:[`top`,`left`,`right`],hexagon:[`top`,`bottom`],parallelogram:[`top`,`bottom`],trapezoid:[`bottom`],queue:[`top`,`bottom`],package:q,component:q};function Tr(e,t,n,r=!0){if(e.shape===`sticky`)return{id:h(),type:`sticky`,x:n.x,y:n.y,width:n.width,height:n.height,rotation:0,text:e.label,fontSize:20,fontFamily:m,fill:e.color?U[e.color]:je,opacity:1};if(fr(e,t))return{id:h(),type:`icon`,x:n.x+(n.width-64)/2,y:n.y,width:64,height:64,rotation:0,source:t.source,name:t.name,label:vr(e.label),fontSize:17,fontFamily:m,color:z,strokeWidth:V,opacity:1};let i=e.shape&&Sr[e.shape]||`rectangle`;return F({x:n.x,y:n.y,width:n.width,height:n.height},e.color?U[e.color]:`#ffffff`,{kind:i,label:e.label,fontSize:20,titleIcon:t?r?{...t,placement:`inside`}:t:void 0,color:z,labelColor:e.labelColor?N[e.labelColor]:void 0,fillStyle:e.fill??`pastel`,corner:e.corner,shadow:e.shadow,strokeWidth:V,link:e.link})}function Er(e,t,n){let r=[...e.filter(e=>e.prediction.path.length===2),...e.filter(e=>e.prediction.path.length!==2)];for(let e of r){let{prediction:r,plan:i}=e,a=K(r.path,i.obstacles()),o=r.ports.some(e=>t.portTaken(e));a||n(r.path)||o||t.overlaps(r.path)?i.rankSpan=2:t.register(r.path,r.ports)}}function Dr(e,t){let[n,r]=yn(e,t);return{x:n,y:r}}function Or(e){let t=new Map;for(let n of e){let e=`${n.shapeId}:${n.side}`;t.set(e,[...t.get(e)??[],n])}for(let e of t.values())if(!(e.length<2)){e.sort((e,t)=>e.farCross-t.farCross);for(let t=0;t<e.length;t+=1){let n=e[t];if(n.amount<=0)continue;let{arrow:r,cell:i,side:a,end:o}=n,s=-n.amount+2*n.amount*t/(e.length-1),c=a===`left`||a===`right`?{x:a===`left`?0:1,y:.5+s/Math.max(i.height,1)}:{x:.5+s/Math.max(i.width,1),y:a===`top`?0:1},l={x:i.x+c.x*i.width,y:i.y+c.y*i.height};o===`start`?(r.x=l.x,r.y=l.y,r.startBinding={shapeId:n.shapeId,anchor:c,precise:!0}):(r.x2=l.x,r.y2=l.y,r.endBinding={shapeId:n.shapeId,anchor:c,precise:!0})}}}function kr(e){let t=e=>({x:e.x+e.width/2,y:e.y+e.height/2}),n=e=>{let n=t(e.from),r=t(e.to);return Math.abs(n.x-r.x)+Math.abs(n.y-r.y)},r=[...e],i=new Map;e.forEach((e,t)=>{!e.lane&&e.rankSpan>1&&i.set(e.edge.from,[...i.get(e.edge.from)??[],t])});for(let t of i.values()){let i=t.map(t=>e[t]).sort((e,t)=>n(e)-n(t));t.forEach((e,t)=>{r[e]=i[t]})}return r}function Ar(e,t,n,r,i,a=[]){let o=[...a],s=new Map,c=(e,t)=>{let n=Gn(t);return{x:e.x-n.width/2,y:e.y-n.height/2,width:n.width,height:n.height}};for(let t of e)if(!(!t.edge.label||t.edge.invisible)){if(t.lane){o.push(c(tr(t.lane,.5),t.edge.label));continue}if(t.rankSpan<=1&&!t.detour){let e=c(tr($n(n,t.from,t.to).path,.5),t.edge.label);s.set(t,e),o.push(e)}}let l=[],u=[];for(let a of kr(e)){let{edge:e,from:d,to:f,obstacles:p}=a;if(e.invisible)continue;let m=a.lane||a.detour||a.rankSpan<=1||!a.withinGroup?null:Rr(d,f,n,a,t,o),h=a.lane?{elbow:a.lane.length>2||!Fr(a.lane,n),bend:0,route:a.lane}:m?{elbow:!1,bend:0,route:m}:t.route(d,f,a.rankSpan,{detour:a.detour,obstacles:p,fromSpread:r(e.from),toSpread:r(e.to),margins:i(e),softBoxes:o,stubExtra:a.stubExtra}),g,_=h.route??(h.elbow?$n(n,d,f).path:null);if(e.label&&_&&!a.lane){let t=s.get(a),n=o.filter(e=>e!==t);g=nr(_,[...p(),G(d),G(f),...n],Gn(e.label));let r=c(tr(_,g??.5),e.label);t?o[o.indexOf(t)]=r:o.push(r)}let v=e.head===`circle`?`circle`:e.head===`cross`?`cross`:void 0,y=ur({from:d,to:f,fromShapeId:a.fromShapeId,toShapeId:a.toShapeId,strokeWidth:H,routed:h,obstacles:p(),label:e.label,labelAlong:g,dashed:e.dashed,color:e.color?N[e.color]:void 0,flow:e.flow,startArrow:e.bidirectional===!0,endHead:v,startHead:e.bidirectional===!0?v:void 0});if(l.push(y),!h.route&&h.bend!==0){let n=f.x+f.width/2-(d.x+d.width/2),i=f.y+f.height/2-(d.y+d.height/2),o=Math.abs(n)>=Math.abs(i),s=o?n>0?`right`:`left`:i>0?`bottom`:`top`,c=o?n>0?`left`:`right`:i>0?`top`:`bottom`;u.push({arrow:y,end:`start`,shapeId:a.fromShapeId,cell:d,side:s,amount:r(e.from)[s]??0,farCross:o?f.y+f.height/2:f.x+f.width/2},{arrow:y,end:`end`,shapeId:a.toShapeId,cell:f,side:c,amount:r(e.to)[c]??0,farCross:o?d.y+d.height/2:d.x+d.width/2});let l=Dr(d,s);t.register([l,l],[l,Dr(f,c)])}}return Or(u),l}function jr(e,t){let{cells:n,blocks:r,groupsById:i,containersOf:a}=t,o=new Set([e.from,e.to,...a(e.from),...a(e.to)]),s=[e.from,e.to].filter(e=>i.has(e)),c=e=>s.length>0&&a(e).some(e=>s.includes(e)),l=[];for(let e of n.values())!o.has(e.id)&&!c(e.id)&&l.push({x:e.x,y:e.y,width:e.width,height:e.height});for(let[e,t]of r)!o.has(e)&&!c(e)&&l.push({x:t.cell.x,y:t.cell.y-32,width:t.cell.width,height:t.cell.height+32});return l}function Mr(e,t){let{blocks:n,containersOf:r}=t,i=new Set([...r(e.from),...r(e.to)]),a=[];for(let e of i){let t=n.get(e);t&&a.push({x:t.cell.x,y:t.cell.y,width:t.cell.width,height:t.cell.height})}return a}var Nr=(e,t)=>Object.fromEntries(e.map(e=>[e,t]));function Pr(e,t){let{groupsById:n,nodeById:r}=t;if(n.has(e))return Nr(q,Cr);let i=r.get(e);if(!i)return{};let a=wr[i.shape??`rectangle`];return a?Nr(a,Cr):{}}function Fr(e,t){return t===`right`?e[0].y===e[1].y:e[0].x===e[1].x}var Ir=16,Lr=6;function Rr(e,t,n,r,i,a){let o=r.edge.label?Gn(r.edge.label):null,c=e=>{if(!o)return!0;let t=tr(e,.5),n={x:t.x-o.width/2,y:t.y-o.height/2,width:o.width,height:o.height};return!a.some(e=>s(n,e))},l=n===`right`?`x`:`y`,u=n===`right`?`y`:`x`,f=n===`right`?`width`:`height`,p=n===`right`?`height`:`width`;if(e[l]+e[f]>=t[l]||Math.abs(e[u]+e[p]/2-(t[u]+t[p]/2))<1)return null;let m=Math.max(e[u],t[u])+Ir,h=Math.min(e[u]+e[p],t[u]+t[p])-Ir;if(m>h)return null;let g=(e[u]+e[p]/2+t[u]+t[p]/2)/2,_=Math.min(Math.max(g,m),h),v=[_];for(let e=Lr;_-e>=m||_+e<=h;e+=Lr)v.push(...[_-e,_+e].filter(e=>e>=m&&e<=h));let y=(e,t)=>n===`right`?{x:e,y:t}:{x:t,y:e};for(let n of v){let o=y(e[l]+e[f],n),s=y(t[l],n),u=[o,s];if(!(i.portTaken(o)||i.portTaken(s)||i.overlaps(u)||K(u,r.obstacles())||a.some(e=>d(o,s,e,0))||!c(u)))return i.register(u),u}return null}var zr=34,Br=10,Vr=6,Hr=4e3;function Ur(e,t,n){let r=n?Gn(n):{width:0,height:0},i=e.x+e.width/2,a=e.y+e.height/2;if(t===`left`||t===`right`){let n=Math.min(e.height/2-6,Math.max(12,e.height/4,r.height/2+Br)),i=Math.max(zr,r.width/2+Br),o=t===`right`?1:-1,s=t===`right`?e.x+e.width:e.x,c=s+o*i,l=c+o*(r.width/2+4),u=Math.max(n,r.height/2);return{route:[{x:s,y:a-n},{x:c,y:a-n},{x:c,y:a+n},{x:s,y:a+n}],footprint:{x:Math.min(s,l),y:a-u,width:Math.abs(l-s),height:u*2}}}let o=Math.min(e.width/2-6,Math.max(14,e.width/6,r.width/2+Br+8)),s=Math.max(zr,r.height/2+Br),c=t===`bottom`?1:-1,l=t===`bottom`?e.y+e.height:e.y,u=l+c*s,d=u+c*(r.height/2+4),f=Math.max(o,r.width/2);return{route:[{x:i+o,y:l},{x:i+o,y:u},{x:i-o,y:u},{x:i-o,y:l}],footprint:{x:i-f,y:Math.min(l,d),width:f*2,height:Math.abs(d-l)}}}function Wr(e,t){let n=Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x),r=Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y);return n>0&&r>0?n*r:0}function Gr(e,t,n){let r=0;for(let n of t)r+=Wr(e,u(n,Vr));for(let t of n)for(let n=0;n<t.length-1;n+=1)d(t[n],t[n+1],e)&&(r+=Hr);return r}function Kr(e){let t=null;for(let n of e.prefer){let r=Ur(e.node,n,e.label),i=Gr(r.footprint,e.obstacles,e.paths);if(i===0)return r.route;(!t||i<t.cost)&&(t={route:r.route,cost:i})}return t?t.route:Ur(e.node,`right`,e.label).route}function qr(e,t){return t?e===`down`?[`bottom`,`top`,`right`,`left`]:[`top`,`bottom`,`right`,`left`]:e===`down`?[`right`,`left`,`bottom`,`top`]:[`top`,`bottom`,`right`,`left`]}function Jr(e){let t=e.elbowPoints??e.elbowRoute;return t&&t.length>=2?t:[{x:e.x,y:e.y},{x:e.x2,y:e.y2}]}function Yr(e,t,r,i,a,o=[]){if(e.length===0)return[];let s=n(t).filter(e=>e.type===`arrow`).map(Jr),c=[];for(let t of e){let e=r.get(t.from),n=i.get(t.from);if(!e||!n)continue;let l=Kr({node:e,label:t.label,prefer:qr(a,!!t.label),obstacles:[...[...r.values()].filter(t=>t!==e),...o],paths:[...s,...c.map(e=>e.elbowPoints??[])]}),u=t.head===`circle`?`circle`:t.head===`cross`?`cross`:void 0;c.push(ur({from:e,to:e,fromShapeId:n,toShapeId:n,strokeWidth:H,routed:{elbow:!0,bend:0,route:l},label:t.label,labelAlong:.5,square:!1,dashed:t.dashed,color:t.color?N[t.color]:void 0,flow:t.flow,endHead:u}))}return c}var Xr=170,Zr=80,Qr=110,$r=60,ei={left:20,right:20,top:20,bottom:20},ti=18,ni=28,ri=16;function ii(e,t){return{id:h(),type:`figure`,kind:`boundary`,x:t.x,y:t.y,width:t.width,height:t.height,rotation:0,label:e.label,fontSize:ri,fontFamily:m,color:e.color?U[e.color]:z,fill:`transparent`,opacity:1}}function ai(e,t){let n=e.fields.map(e=>{let t=e.type?`: ${e.type}`:``,n=e.key?` (${e.key})`:``;return`${e.name}${t}${n}`}),r=v(e.label,n,ti);return{id:h(),type:`control`,kind:`entity`,x:0,y:0,width:r.width,height:r.height,rotation:0,label:e.label,body:n.join(`
|
|
10
|
-
`),fill:U[e.color??W[t%W.length]],fontSize:ti,fontFamily:m,color:z,opacity:1}}function oi(e,t){return`${e.visibility?le[e.visibility]:``}${t&&!e.name.includes(`(`)?`${e.name}()`:e.name}${e.type?`: ${e.type}`:``}`}function si(e){let t=e.fields.map(e=>oi(e,!1)),n=(e.methods??[]).map(e=>oi(e,!0)),r=n.length>0?[...t,`---`,...n]:t,i=v(e.label,r,ti);return{id:h(),type:`control`,kind:`entity`,x:0,y:0,width:i.width,height:i.height,rotation:0,label:e.label,body:r.join(`
|
|
11
|
-
`),fontSize:ti,fontFamily:m,color:z,opacity:1}}var ci={one:`crowOnlyOne`,zeroOrOne:`crowZeroOrOne`,oneOrMany:`crowOneOrMany`,zeroOrMany:`crowZeroOrMany`};function li(e){switch(e){case`inheritance`:return{startArrow:!1,endArrow:!0,endHead:`triangleOutline`,dashed:!1};case`realization`:return{startArrow:!1,endArrow:!0,endHead:`triangleOutline`,dashed:!0};case`composition`:return{startArrow:!0,endArrow:!1,startHead:`diamond`,dashed:!1};case`aggregation`:return{startArrow:!0,endArrow:!1,startHead:`diamondOutline`,dashed:!1};case`dependency`:return{startArrow:!1,endArrow:!0,endHead:`arrow`,dashed:!0};case`association`:return{startArrow:!1,endArrow:!0,endHead:`arrow`,dashed:!1}}}function ui(e){return e.relations.map(e=>e.kind===`inheritance`||e.kind===`realization`?{from:e.to,to:e.from}:{from:e.from,to:e.to})}function di(e){let t=new Map;for(let n of e){let e=n.relation.kind;if(e!==`inheritance`&&e!==`realization`||n.from.rank!==n.to.rank+1||n.from.y<n.to.y+n.to.height)continue;let r=`${n.to.id}\u0000${e}`;t.set(r,[...t.get(r)??[],n])}let n=new Map;for(let e of t.values()){if(e.length<2)continue;let t=e[0].to,r=t.y+t.height,i=(r+Math.min(...e.map(e=>e.from.y)))/2,a=t.x+t.width/2;for(let t of e){let e=t.from.x+t.from.width/2;n.set(t,Math.abs(e-a)<1?[{x:a,y:t.from.y},{x:a,y:r}]:[{x:e,y:t.from.y},{x:e,y:i},{x:a,y:i},{x:a,y:r}])}}return n}function fi(e,t){if(e.y+e.height<=t.y)return{from:`bottom`,to:`top`};if(t.y+t.height<=e.y)return{from:`top`,to:`bottom`}}function pi(e,t,n,r){if(e.length===0)return;let i=new Set(e.map(e=>e.id)),a=t.filter(e=>i.has(e.from)&&i.has(e.to)),o=Dt(e.map(e=>e.id),a);for(let t of e)t.rank=o.get(t.id)??0;n&&hi(e,a);let s=r===`down`;kt(Ot(e,a),r,()=>s?Qr:Xr,a,s?$r:Zr)}var mi=5;function hi(e,t){let n=new Map(e.map(e=>[e.id,new Set]));for(let e of t)e.from!==e.to&&(n.get(e.from)?.add(e.to),n.get(e.to)?.add(e.from));let r=new Map(e.map(e=>[e.id,e])),i=e=>{let t=n.get(e.id);if(!t||t.size!==1)return null;let i=r.get([...t][0]);return i&&i.rank===e.rank-1?i:null},a=t=>{let n=e.filter(e=>e.rank===t);return n.length===0?0:n.reduce((e,t)=>e+t.height,0)+(n.length-1)*Zr},o=new Map;for(let t of e)o.set(t.rank,(o.get(t.rank)??0)+1);if(Math.max(...o.values())<mi)return;let s=new Set;for(let t=0;t<e.length;t+=1){let t=[...new Set(e.map(e=>e.rank))].reduce((e,t)=>a(t)>a(e)?t:e),n=a(t),r=e.find(e=>e.rank===t&&!s.has(e.id)&&i(e)!==null);if(!r)return;let o=t-2;if(a(o)+r.height+Zr>=n)return;r.rank=o,s.add(r.id);let c=Math.min(...e.map(e=>e.rank));if(c<0)for(let t of e)t.rank-=c}}function gi(e,t,n){for(let r of e)r.x+=t,r.y+=n}var _i=e=>({x:Math.min(...e.map(e=>e.x)),y:Math.min(...e.map(e=>e.y)),right:Math.max(...e.map(e=>e.x+e.width)),bottom:Math.max(...e.map(e=>e.y+e.height))});function vi(e){let t=e.variant===`class`,n=t?`down`:`right`,r=(t?ui(e):e.relations).filter(e=>e.from!==e.to),i=new Map(e.entities.map((e,n)=>[e.id,t?si(e):ai(e,n)])),a=new Map(e.entities.map(e=>{let t=i.get(e.id);return[e.id,{id:e.id,width:t.width,height:t.height,rank:0,x:0,y:0}]})),o=(e.groups??[]).filter(t=>e.entities.some(e=>e.group===t.id)),s=new Map(o.map(t=>[t.id,e.entities.filter(e=>e.group===t.id).map(e=>a.get(e.id))])),c=[],l=[];if(o.length===0)pi([...a.values()],r,!t,n);else{let i=[];for(let e of o){let a=s.get(e.id);pi(a,r,!t,n);let o=_i(a);gi(a,-o.x,-o.y),i.push({id:e.id,width:o.right-o.x+ni*2,height:o.bottom-o.y+ni*2,rank:0,x:0,y:0})}let u=e.entities.filter(e=>!e.group).map(e=>a.get(e.id));i.push(...u);let d=t=>e.entities.find(e=>e.id===t)?.group??t;pi(i,r.map(e=>({from:d(e.from),to:d(e.to)})).filter(e=>e.from!==e.to),!t,n);for(let e of o){let t=i.find(t=>t.id===e.id);gi(s.get(e.id),t.x+ni,t.y+ni);let n=ii(e,t);l.push({groupId:e.id,bounds:{x:n.x,y:n.y,width:n.width,height:n.height}}),c.push(n)}}for(let t of e.entities){let e=i.get(t.id),n=a.get(t.id);e.x=n.x,e.y=n.y,c.push(e)}let u=er(n),d=new Map(e.entities.map(e=>[e.id,e.group])),f=e=>()=>{let t=new Set([d.get(e.from),d.get(e.to)].filter(e=>e!==void 0)),n=[...a.values()].filter(t=>t.id!==e.from&&t.id!==e.to).map(e=>({x:e.x,y:e.y,width:e.width,height:e.height}));for(let e of l)t.has(e.groupId)||n.push({x:e.bounds.x,y:e.bounds.y,width:e.bounds.width,height:e.bounds.height});return n},p=[],m=[];for(let r of e.relations){if(r.from===r.to)continue;let e=a.get(r.from),i=a.get(r.to),o={relation:r,from:e,to:i,obstacles:f(r),rankSpan:Math.abs(e.rank-i.rank)};p.push(o),o.rankSpan<=1&&!t&&m.push({plan:o,prediction:$n(n,e,i,!1)})}Er(m,u,()=>!1);let h=t?di(p):new Map;for(let e of h.values())u.register(e);for(let e of p){let{relation:n,from:r,to:a,obstacles:o,rankSpan:s}=e,l=h.get(e),d=n.kind?li(n.kind):null,f=d?null:ue(n);c.push(ur({from:r,to:a,fromShapeId:i.get(n.from).id,toShapeId:i.get(n.to).id,strokeWidth:H,routed:l?{elbow:!0,bend:0,route:l}:u.route(r,a,s,{obstacles:o,fromSpread:ei,toSpread:ei,sides:t?fi(r,a):void 0}),label:n.label,square:!1,dashed:d?d.dashed:n.identifying===!1||void 0,startArrow:d?d.startArrow:f!==null,endArrow:d?d.endArrow:void 0,startHead:d?d.startHead:f?ci[f.from]:void 0,endHead:d?d.endHead:f?ci[f.to]:void 0}))}let g=[...a.values()].map(e=>({x:e.x,y:e.y,width:e.width,height:e.height}));Si(c,g);for(let t of e.relations)t.from===t.to&&c.push(yi(t,a.get(t.from),i.get(t.from).id,c,g,n));return c}function yi(e,t,n,r,i,a){let o=Kr({node:t,label:e.label,prefer:qr(a,!!e.label),obstacles:i.filter(e=>e.x!==t.x||e.y!==t.y),paths:r.filter(e=>e.type===`arrow`).map(e=>bi(e))}),s=e.kind?li(e.kind):null,c=s?null:ue(e);return ur({from:t,to:t,fromShapeId:n,toShapeId:n,strokeWidth:H,routed:{elbow:!0,bend:0,route:o},label:e.label,labelAlong:.5,square:!1,dashed:s?s.dashed:e.identifying===!1||void 0,startArrow:s?s.startArrow:c!==null,endArrow:s?s.endArrow:void 0,startHead:s?s.startHead:c?ci[c.from]:void 0,endHead:s?s.endHead:c?ci[c.to]:void 0})}function bi(e){if(e.elbowPoints&&e.elbowPoints.length>=2)return e.elbowPoints;let t={x:e.x,y:e.y},n={x:e.x2,y:e.y2};if(e.bendStyle!==`elbow`||t.x===n.x||t.y===n.y)return[t,n];let r=(t.x+n.x)/2;return[t,{x:r,y:t.y},{x:r,y:n.y},n]}var xi=[.1,.2,.3,.4,.5,.6,.7,.8,.9];function Si(e,t){let n=e.filter(e=>e.type===`arrow`),r=new Map(n.map(e=>{let t=bi(e),n=[];for(let e=0;e<t.length-1;e+=1){let r=t[e],i=t[e+1];n.push({x:Math.min(r.x,i.x)-Ci,y:Math.min(r.y,i.y)-Ci,width:Math.abs(r.x-i.x)+Ci*2,height:Math.abs(r.y-i.y)+Ci*2})}return[e.id,n]})),i=[];for(let e of n){if(!e.label)continue;let a=bi(e),o=Gn(e.label),s=n.filter(t=>t.id!==e.id).flatMap(e=>r.get(e.id)??[]),c=nr(a,[...t,...s,...i],o,xi)??.5;e.labelAlong=c;let l=tr(a,c);i.push({x:l.x-o.width/2,y:l.y-o.height/2,width:o.width,height:o.height})}}var Ci=4,wi={right:`RIGHT`,down:`DOWN`,left:`LEFT`,up:`UP`};async function Ti(e,t,n,r,i,a){try{return await ki(e,t,n,r,i,a)}catch(a){return typeof console<`u`&&console.warn(`ELK layout failed; using fallback placement`,a),Ei(e,t,n,r,i)}}function Ei(e,t,n,r,i){let a=e.direction===`down`||e.direction===`up`?`down`:`right`,o=e.edges.filter(e=>e.from!==e.to&&t.has(e.from)&&t.has(e.to)).map(e=>e.back?{from:e.to,to:e.from}:{from:e.from,to:e.to}),s=Dt([...t.keys()],o);for(let e of t.values())e.rank=s.get(e.id)??0;kt(Ot([...t.values()],o),a);let c=new Map;for(let e of t.keys()){let t=n(e);for(let n=0;t&&n<64;n+=1){let n=c.get(t);n?n.push(e):c.set(t,[e]),t=r(t)}}let l=e=>{let n=c.get(e);if(!n)return null;let r=1/0,a=1/0,o=-1/0,s=-1/0;for(let e of n){let n=t.get(e);r=Math.min(r,n.x),a=Math.min(a,n.y),o=Math.max(o,n.x+n.width),s=Math.max(s,n.y+n.height)}let l=i(e);return{x:r-l.side,y:a-l.top,width:o-r+l.side*2,height:s-a+l.top+l.bottom}},u=(e,t)=>{for(let n=e,i=0;n&&i<64;n=r(n),i+=1)if(n===t)return!0;for(let n=t,i=0;n&&i<64;n=r(n),i+=1)if(n===e)return!0;return!1},d=e.groups.map(e=>e.id).filter(e=>c.has(e));for(let e=0;e<16;e+=1){let e=!1;for(let n=0;n<d.length;n+=1)for(let r=n+1;r<d.length;r+=1){if(u(d[n],d[r]))continue;let i=l(d[n]),o=l(d[r]),s=Math.min(i.x+i.width,o.x+o.width)-Math.max(i.x,o.x),f=Math.min(i.y+i.height,o.y+o.height)-Math.max(i.y,o.y);if(s<=0||f<=0)continue;let p=a===`right`,m=(p?o.y>=i.y:o.x>=i.x)?d[r]:d[n],h=(p?f:s)+48;for(let e of c.get(m)){let n=t.get(e);p?n.y+=h:n.x+=h}e=!0}if(!e)break}let f=new Map;for(let t of e.groups){let e=l(t.id);e&&f.set(t.id,e)}return{groupBounds:f}}function Di(e,t,n){let r=new Set;for(let t of e.edges)r.add(t.from),r.add(t.to);let i=new Set;for(let a of e.groups){let o=e.nodes.filter(e=>t(e.id)===a.id),s=e.groups.some(e=>n(e.id)===a.id);o.length<2||s||o.every(e=>!r.has(e.id))&&i.add(a.id)}return i}function Oi(e,t){let n=new Set,r=new Map,i=new Map;for(let t of e)r.set(t,[]),i.set(t,0);t.forEach((e,t)=>{r.get(e.src)?.push(t),i.set(e.dst,(i.get(e.dst)??0)+1)});let a=[],o=new Set;for(let e of t)o.has(e.src)||(o.add(e.src),a.push(e.src));let s=[...a.filter(e=>(i.get(e)??0)===0),...a],c=new Map,l=[],u=e=>{for(l.push({node:e,next:0}),c.set(e,`gray`);l.length>0;){let e=l[l.length-1],i=r.get(e.node)??[];if(e.next>=i.length){c.set(e.node,`black`),l.pop();continue}let a=i[e.next];e.next+=1;let o=t[a].dst,s=c.get(o);s===`gray`?n.add(a):s===void 0&&(c.set(o,`gray`),l.push({node:o,next:0}))}};for(let e of s)c.has(e)||u(e);return n}async function ki(e,t,n,r,i,a){let o=new Set(e.groups.map(e=>e.id)),s=new Map,c=e.direction!==`down`&&e.direction!==`up`,l=110;if(c)for(let t of e.edges)t.label&&!t.invisible&&(l=Math.max(l,Wn(t.label,16)+72));let u=Di(e,n,r),d={id:`__root__`,children:[],edges:[],layoutOptions:{"elk.algorithm":`layered`,"elk.direction":wi[e.direction]??`RIGHT`,"elk.hierarchyHandling":`INCLUDE_CHILDREN`,"elk.layered.spacing.nodeNodeBetweenLayers":String(l),"elk.spacing.nodeNode":`48`,"elk.layered.spacing.edgeNodeBetweenLayers":`30`,"elk.spacing.edgeNode":`24`,"elk.spacing.edgeLabel":`10`,"elk.spacing.componentComponent":`60`,"elk.edgeRouting":`ORTHOGONAL`,"elk.layered.nodePlacement.strategy":`NETWORK_SIMPLEX`,"elk.layered.considerModelOrder.strategy":`NODES_AND_EDGES`,"elk.layered.cycleBreaking.strategy":`DEPTH_FIRST`}};s.set(`__root__`,d);let f=e=>{let t=i(e),n=`[top=${t.top},left=${t.side},bottom=${t.bottom},right=${t.side}]`;return u.has(e)?{id:e,children:[],edges:[],layoutOptions:{"elk.algorithm":`rectpacking`,"elk.aspectRatio":`1.6`,"elk.spacing.nodeNode":`48`,"elk.padding":n}}:{id:e,children:[],edges:[],layoutOptions:{"elk.spacing.nodeNode":`48`,"elk.layered.spacing.nodeNodeBetweenLayers":String(l),"elk.spacing.edgeNode":`24`,"elk.spacing.edgeEdge":`18`,"elk.layered.nodePlacement.strategy":`NETWORK_SIMPLEX`,"elk.padding":n,"elk.nodeSize.minimum":`(120, 60)`,"elk.nodeSize.constraints":`MINIMUM_SIZE`}}},p=new Map,m=(e,t=0)=>{let n=p.get(e);if(n)return n;let i=f(e);p.set(e,i);let a=t>32?null:r(e);return(a&&o.has(a)?m(a,t+1):d).children.push(i),s.set(e,i),i};for(let t of e.groups)m(t.id);let h=new Map,g=new Map;for(let t of e.edges){if(t.from===t.to)continue;let[e,n]=t.back?[t.to,t.from]:[t.from,t.to];h.set(e,(h.get(e)??0)+1),g.set(n,(g.get(n)??0)+1)}for(let r of e.nodes){let e=t.get(r.id);if(!e)continue;let i=n(r.id),a=i?p.get(i)??d:d,o={id:r.id,width:e.width,height:e.height};r.shape&&Et.has(r.shape)&&(h.get(r.id)??0)===0&&(g.get(r.id)??0)>0&&(o.layoutOptions={"elk.layered.layering.layerConstraint":`LAST`}),a.children.push(o),s.set(r.id,o)}let _=e=>{let t=[],i=o.has(e)?r(e):n(e);for(;i&&o.has(i)&&!t.includes(i);)t.push(i),i=r(i);return t.push(`__root__`),t},v=(e,t)=>{let n=new Set([t,..._(t)]);for(let r of[e,..._(e)])if(n.has(r)){if(r===e||r===t)continue;return r}return`__root__`},y=[],b=new Set;e.edges.forEach((e,t)=>{if(e.from===e.to||!s.has(e.from)||!s.has(e.to)||b.has(Jn(e.to,e.from)))return;b.add(Jn(e.from,e.to));let[n,r]=e.back?[e.to,e.from]:[e.from,e.to];y.push({src:n,dst:r,from:e.from,to:e.to,index:t})});let x=Oi(s.keys(),y);y.forEach((e,t)=>{let[n,r]=x.has(t)?[e.dst,e.src]:[e.src,e.dst];(s.get(v(e.from,e.to))??d).edges.push({id:`e${e.index}`,sources:[n],targets:[r]})});let S=await a.layout(d),C=new Map,w=(e,n,r)=>{for(let i of e.children??[]){let e=n+(i.x??0),a=r+(i.y??0);if(o.has(i.id))C.set(i.id,{x:e,y:a,width:i.width??0,height:i.height??0});else{let n=t.get(i.id);n&&(n.x=e,n.y=a)}w(i,e,a)}};return w(S,0,0),{groupBounds:C}}function Ai(e){let{axis:t,cells:n,groupBounds:r,floor:i,borderExtra:a,spans:o}=e;if(n.length<2)return;let s=t===`right`,c=e=>s?e.x:e.y,l=e=>s?e.width:e.height,u=n.map(e=>[c(e),c(e)+l(e)]).sort((e,t)=>e[0]-t[0]),d=[];for(let[e,t]of u){let n=d[d.length-1];n&&e<=n[1]+.5?n[1]=Math.max(n[1],t):d.push([e,t])}if(d.length<2)return;let f=[];for(let e of r)s?f.push({at:e.x,inward:1},{at:e.x+e.width,inward:-1}):f.push({at:e.y,inward:1},{at:e.y+e.height,inward:-1});let p=f.map(e=>e.at),m=[];for(let e=0;e<d.length-1;e+=1){let t=d[e][1],n=d[e+1][0],r=n-t;if(r<=1)continue;let s=i+p.filter(e=>e>t+1&&e<n-1).length*a;for(let e of o)e.lo<=t+1&&e.hi>=n-1&&(s=Math.max(s,e.need));s<r&&m.push({lo:t,hi:n,newWidth:s,kept:h(t,n)})}if(m.length===0)return;function h(e,t){let n=f.filter(n=>n.at>e+1&&n.at<t-1).map(n=>n.inward===1?[n.at,Math.min(t,n.at+a)]:[Math.max(e,n.at-a),n.at]).sort((e,t)=>e[0]-t[0]),r=[];for(let e of n){let t=r[r.length-1];t&&e[0]<=t[1]?t[1]=Math.max(t[1],e[1]):r.push([...e])}return r}let g=(e,t)=>{let n=e.kept.reduce((e,[t,n])=>e+(n-t),0),r=e.hi-e.lo-n,i=Math.max(0,e.newWidth-n),a=r>0?i/r:1,o=0,s=e.lo;for(let[n,r]of e.kept){if(t<=n)break;if(o+=n-s,t<=r)return o*(1-a);s=r}return o+=t-s,o*(1-a)},_=e=>{let t=0;for(let n of m){if(e>=n.hi){t+=n.hi-n.lo-n.newWidth;continue}e>n.lo&&(t+=g(n,e));break}return e-t};for(let e of n)s?e.x=_(e.x):e.y=_(e.y);for(let e of r){let t=_(s?e.x:e.y),n=_(s?e.x+e.width:e.y+e.height);s?(e.x=t,e.width=n-t):(e.y=t,e.height=n-t)}}function ji(e,t){let n=150;for(let t of e.nodes)n=Math.max(n,Math.min(O(t.label,20),210));let r=n+28,i=r+32,a=e=>{let t=e.split(/\s+/).filter(Boolean);if(t.length===0)return 1;let r=1,i=t[0];for(let e=1;e<t.length;e+=1){let a=`${i} ${t[e]}`;O(a,20)<=n?i=a:(r+=1,i=t[e])}return r},o=e=>Math.max(54,Math.ceil(a(e)*26)+28),s=new Set(e.groups.map(e=>e.id)),c=e.nodes.filter(e=>!e.group||!s.has(e.group)),l=e.groups.map(n=>({label:n.label,color:n.color,icon:t.get(n.id)??void 0,members:e.nodes.filter(e=>e.group===n.id)}));c.length>0&&l.push({label:``,color:void 0,icon:void 0,members:c});let u=[],d=0,f=0;for(let e of l){let t=22,n=e.members.map(e=>{let n=o(e.label),r=t;return t+=n+12,{node:e,top:r,height:n}}),a=(n.length>0?t-12:22)+18,s={id:h(),type:`figure`,kind:`simple`,x:d,y:0,width:i,height:a,rotation:0,label:e.label,titleIcon:e.icon,fontSize:16,fontFamily:m,color:Bn,fill:e.color?te[e.color]:Vn[f%Vn.length],opacity:1};f+=1,u.push(s);for(let e of n)u.push(F({x:d+16,y:e.top,width:r,height:e.height},e.node.color?U[e.node.color]:`#ffffff`,{kind:`rectangle`,label:e.node.label,fontSize:20,color:z,labelColor:e.node.labelColor?N[e.node.labelColor]:void 0,fillStyle:e.node.fill??`pastel`,align:`left`,valign:`middle`,textPadding:14,strokeWidth:V,link:e.node.link}));d+=i+36}return u}var Mi=24,Ni=8;function Pi(e,t){return e!=null&&!(`kind`in e)&&t.has(e.shapeId)}function Fi(e,t,n){let r={x:Math.min(e.x,t.x),y:Math.min(e.y,t.y)},i={x:Math.max(e.x,t.x),y:Math.max(e.y,t.y)};return r.x<n.x+n.width+Ni&&i.x>n.x-Ni&&r.y<n.y+n.height+Ni&&i.y>n.y-Ni}function Ii(e,t,n,r){let i=(e,t)=>Math.abs(e.y-t.y)<.5;if(!i(e,t)||!i(n,r)||Math.abs(e.y-n.y)>4)return!1;let[a,o]=[Math.min(e.x,t.x),Math.max(e.x,t.x)];return Math.max(n.x,r.x)>a&&Math.min(n.x,r.x)<o}function Li(e,t){let n=new Map(e.filter(e=>e.type===`icon`&&!!e.label).map(e=>[e.id,e]));if(n.size===0)return e;let r=e.filter(e=>e.type!==`arrow`&&e.type!==`figure`),i=[...e];return i.forEach((e,a)=>{if(e.type!==`arrow`||!e.elbowPoints||e.elbowPoints.length<4)return;let o=e.elbowPoints;for(let a of[`start`,`end`]){let s=a===`start`?e.startBinding:e.endBinding;if(!Pi(s,n))continue;let c=n.get(s.shapeId),l=D(c),u=k(c),d=a===`start`?o:[...o].reverse(),[f,p,m,h]=d,g=Math.abs(f.y-(l.y+l.height))<.5&&Math.abs(p.x-f.x)<.5&&p.y>f.y&&Math.abs(m.y-p.y)<.5&&Math.abs(h.x-m.x)<.5&&h.y<m.y,_=u.y+u.height+t+Mi;if(!g||p.y>=_)continue;let v=[{...p,y:_},{...m,y:_}],y=new Set([e.startBinding,e.endBinding].flatMap(e=>e&&!(`kind`in e)?[e.shapeId]:[])),b=r.filter(e=>!y.has(e.id)),x=[[p,v[0]],[v[0],v[1]],[v[1],m]];if(b.some(e=>x.some(([t,n])=>Fi(t,n,k(e))))||i.some(t=>t.type===`arrow`&&t.id!==e.id&&(t.elbowPoints??[]).some((e,t,n)=>t>0&&Ii(v[0],v[1],n[t-1],e))))continue;let S=[f,...v,...d.slice(3)];o=a===`start`?S:S.reverse()}o!==e.elbowPoints&&(i[a]={...e,elbowPoints:o})}),i}var Ri=48,zi=28,Bi=1;function Vi(e){let{axis:t,diagram:n,cells:r,groupBounds:i,topGroupOf:a,edgeNeed:o}=e,s=t===`right`,c=e=>s?e.x:e.y,l=e=>s?e.x+e.width:e.y+e.height,u=e=>s?e.y:e.x,d=e=>s?e.y+e.height:e.x+e.width,f=(e,t)=>{s?e.x+=t:e.y+=t},p=new Map,m=e=>a(e)??e,h=e=>{let t=p.get(e);return t||(t={key:e,cells:[],groups:[]},p.set(e,t)),t};for(let e of r.values())h(m(e.id)).cells.push(e);for(let[e,t]of i)h(m(e)).groups.push(t);if(p.size<2)return;let g=e=>{let t=[...e.cells,...e.groups],n=Math.min(...t.map(e=>e.x)),r=Math.min(...t.map(e=>e.y)),i=Math.max(...t.map(e=>e.x+e.width)),a=Math.max(...t.map(e=>e.y+e.height));return{x:n,y:r,width:i-n,height:a-r}},_=[];for(let e of n.edges){if(e.from===e.to||e.invisible)continue;let[t,n]=e.back?[e.to,e.from]:[e.from,e.to];if(!r.has(t)||!r.has(n))continue;let i=m(t),a=m(n);i!==a&&_.push({from:i,to:a,edge:{...e,from:t,to:n}})}let v=(e,t)=>_.filter(n=>n.from===e&&n.to===t||n.from===t&&n.to===e).length,y=[...p.values()].sort((e,t)=>c(g(e))-c(g(t))),b=[];for(let e of y){let t=g(e),n=-1/0;for(let r of b){let i=g(r);if(!(u(i)<d(t)+Ri&&d(i)>u(t)-Ri))continue;let a=Math.max(0,v(e.key,r.key)-Bi);n=Math.max(n,l(i)+Ri+a*zi-c(t))}for(let t of _){if(t.to!==e.key||!b.some(e=>e.key===t.from))continue;let i=r.get(t.edge.from),a=r.get(t.edge.to),s=Math.max(0,v(e.key,t.from)-Bi);n=Math.max(n,l(i)+o(t.edge)+s*zi-c(a))}let i=-1/0;for(let t of _){if(t.from!==e.key||!b.some(e=>e.key===t.to))continue;let n=r.get(t.edge.from),a=r.get(t.edge.to);c(a)<l(n)||(i=Math.max(i,c(a)-o(t.edge)-l(n)))}n=Math.max(n,i);let a=0;for(let t of _){if(t.from!==e.key||b.some(e=>e.key===t.to))continue;let n=r.get(t.edge.from),i=r.get(t.edge.to),s=Math.max(0,v(e.key,t.to)-Bi),u=o(t.edge)+s*zi;a=Math.max(a,u-(c(i)-l(n)))}let s=Math.max(n,-a);if(Number.isFinite(s)&&s<-.5){for(let t of e.cells)f(t,s);for(let t of e.groups)f(t,s)}b.push(e)}}var Hi=new Set([`arrow`,`line`,`text`,`draw`,`figure`]),Ui=16,Wi=6,Gi=8;function Ki(e){return e!=null&&!(`kind`in e)}var qi=e=>e===`left`||e===`right`;function Ji(e){return e.type===`icon`?k(e):D(e)}function Yi(e,t){let n=t.x-e.x,r=t.y-e.y;return Math.abs(n)>.5&&Math.abs(r)>.5?null:Math.abs(n)>.5?n<0?`left`:`right`:Math.abs(r)>.5?r<0?`top`:`bottom`:null}function Xi(e,t,n,r){if(e.length<3)return!1;let[,i,a]=t===`start`?e:[...e].reverse(),o=qi(n)?`y`:`x`,s=qi(n)?`x`:`y`;if(Math.abs(i[s]-a[s])>.5)return!1;let c=a[o]-i[o];return Math.sign(c)!==Math.sign(r)||Math.abs(r)<Math.abs(c)-1}function Zi(e,t,n,r){let i=qi(n)?`y`:`x`,a=e.map(e=>({...e})),[o,s]=t===`start`?[0,1]:[a.length-1,a.length-2];return a[o][i]+=r,a[s][i]+=r,a}function Qi(e,t,n,r,i){let a=Ji(t),o=e.precise?{...e.anchor}:{x:r===`left`?0:r===`right`?1:(n.x-a.x)/(a.width||1),y:r===`top`?0:r===`bottom`?1:(n.y-a.y)/(a.height||1)};return qi(r)?o.y+=a.height>0?i/a.height:0:o.x+=a.width>0?i/a.width:0,{...e,anchor:o,precise:!0}}function $i(e,t){let n=D(e),[r,i]=qi(t)?[n.y,n.y+n.height]:[n.x,n.x+n.width];return[r+Wi,i-Wi]}function ea(e,t){let n=[];for(let r of e){if(r.type!==`arrow`)continue;let e=r.bendStyle!==`elbow`;if(e&&r.bend!==0)continue;let i=e?[{x:r.x,y:r.y},{x:r.x2,y:r.y2}]:x(r);if(i.length<2)continue;let a=t.get(r.id);for(let t of[`start`,`end`]){let o=t===`start`?r.startBinding:r.endBinding;if(!Ki(o))continue;let s=t===`start`?i:[...i].reverse(),c=Yi(s[0],s[1]);if(!c)continue;let l=qi(c)?`y`:`x`,u=Math.hypot(s[1].x-s[0].x,s[1].y-s[0].y),d=s.length>2?Math.sign(s[2][l]-s[1][l]):0,f=d>0?1e6-u:d<0?-1e6+u:0,p=a.elbowPoints;n.push({arrowId:r.id,which:t,nodeId:o.shapeId,side:c,along:s[0][l],order:f,movable:!e&&(!p||p.length>=3)})}}return n}function ta(e){let t=new Map;for(let n of e){let e=`${n.nodeId}:${n.side}`;t.set(e,[...t.get(e)??[],n])}let n=[];for(let e of t.values()){if(e.length<2)continue;let t=[...e].sort((e,t)=>e.order-t.order||e.along-t.along);t.every((e,n)=>n===0||e.along-t[n-1].along>=Ui-.5)||n.push(e)}return n}var na=12,ra=8;function ia(e){let t=e;for(let e of[`start`,`end`]){let n=e===`start`?t:[...t].reverse();if(n.length<5)continue;let[r,a,o,s,c]=n;if(i(a,o)>=na||i(o,s)>=na)continue;let l=Math.abs(r.x-a.x)<.5,u=Math.abs(s.y-c.y)<.5,d=Math.abs(s.x-c.x)<.5;if(l?!u:!d)continue;let f=l?{x:r.x,y:s.y}:{x:s.x,y:r.y},p=Math.sign(l?a.y-r.y:a.x-r.x),m=l?f.y-r.y:f.x-r.x,h=Math.sign(l?s.x-c.x:s.y-c.y),g=Math.sign(l?f.x-c.x:f.y-c.y);if(Math.sign(m)!==p||Math.abs(m)<ra||g!==h)continue;let _=[r,f,...n.slice(4)];t=e===`start`?_:_.reverse()}return t}function aa(e){let t=new Map(e.filter(e=>e.type===`arrow`).map(e=>[e.id,e]));if(t.size<2)return e;let r=new Map(e.map(e=>[e.id,e])),i=n(e),a=new Map(i.map(e=>[e.id,e])),o=new Map,s=e.filter(e=>!Hi.has(e.type)).map(e=>({id:e.id,bounds:k(e)})),c=(e,t)=>s.some(n=>n.id!==t.startBinding?.shapeId&&n.id!==t.endBinding?.shapeId&&e.some((t,r)=>r>0&&d(e[r-1],t,n.bounds,-2)));for(let e of ta(ea(i,t))){let n=r.get(e[0].nodeId);if(!n)continue;let i=e[0].side,s=[...e].sort((e,t)=>e.order-t.order||e.along-t.along),[l,u]=$i(n,i),d=s.length,f=Math.min(Ui,(u-l)/(d-1));if(f<Gi)continue;let p=s.findIndex(e=>!e.movable),m=p>=0?s[p].along-(p-(d-1)/2)*f:s.reduce((e,t)=>e+t.along,0)/d,h=Math.max(l,Math.min(m-(d-1)/2*f,u-(d-1)*f));s.forEach((e,r)=>{let s=h+r*f-e.along;if(Math.abs(s)<.5)return;let l=o.get(e.arrowId)??t.get(e.arrowId),u=a.get(e.arrowId),d=e.which===`start`?l.startBinding:l.endBinding;if(!Ki(d))return;let p=l.elbowPoints;if(p&&!Xi(p,e.which,i,s))return;let m=e.which===`start`?{x:u.x,y:u.y}:{x:u.x2,y:u.y2},g=Qi(d,n,m,i,s),_=p?Zi(p,e.which,i,s):void 0;if(_&&c(_,l))return;let v=e.which===`start`?{...l,startBinding:g,..._?{elbowPoints:_,x:_[0].x,y:_[0].y}:{}}:{...l,endBinding:g,..._?{elbowPoints:_,x2:_[_.length-1].x,y2:_[_.length-1].y}:{}};o.set(e.arrowId,v)})}return e.map(e=>{let t=o.get(e.id)??e;if(t.type!==`arrow`||!t.elbowPoints)return t;let n=ia(t.elbowPoints);return n===t.elbowPoints?t:{...t,elbowPoints:n}})}var oa=36,sa=14;function ca(e,t,n){if(e===`down`)return()=>110;let r=new Map;for(let e of t){if(!e.label||e.invisible)continue;let t=n(e.from),i=n(e.to);if(t===void 0||i===void 0||t===i)continue;let a=Math.min(t,i),o=Wn(e.label,16)+oa*2;r.set(a,Math.max(r.get(a)??0,o))}return e=>Math.max(110,r.get(e)??0)}function la(e,t,n,r,i){let a=e.groups.map(e=>e.id),o=e.nodes.some(e=>!e.group||!a.includes(e.group)),s=e.groups.map(e=>e.label);o&&s.push(``);let c=e=>{let t=e.group?a.indexOf(e.group):-1;return t===-1?s.length-1:t},l=Dt(e.nodes.map(e=>e.id),e.edges);for(let e of t.values())e.rank=l.get(e.id)??0;let u=Ot([...t.values()],e.edges),d=u.map(e=>e.length>0?Math.max(...e.map(e=>e.width)):0),f=new Map;for(let e of u)for(let t of e){let e=c(r.get(t.id)),n=`${e}:${t.rank}`,i=f.get(n);i?i.cells.push(t):f.set(n,{lane:e,rank:t.rank,cells:[t]})}let p=s.length,g=new Set(i.map(e=>e.from)),_=Array.from({length:p},()=>104);for(let{lane:e,cells:t}of f.values()){let n=t.reduce((e,t)=>e+t.height,0)+48*(t.length-1)+52+(t.some(e=>g.has(e.id))?88:0);_[e]=Math.max(_[e],n)}let v=e.edges.filter(e=>{let n=t.get(e.from)?.rank,r=t.get(e.to)?.rank;return n!==void 0&&r!==void 0&&r<n}).length,y=v>0?26+Math.min(v,3)*30:0,b=_.map((e,t)=>t===0?e+y:e),x=[],S=0;for(let e=0;e<p;e+=1)x[e]=S,S+=b[e];let C=S,w=ca(`right`,e.edges,e=>t.get(e)?.rank),T=[],E=60,D=110;d.forEach((e,t)=>{T[t]=E,D=w(t),E+=e+(e>0?D:0)});let ee=E-D+26;for(let{lane:e,rank:t,cells:n}of f.values()){let r=n.reduce((e,t)=>e+t.height,0)+48*(n.length-1),i=e===0?y:0,a=x[e]+i+(b[e]-i-r)/2;for(let e of n)e.x=T[t]+(d[t]-e.width)/2,e.y=a,a+=e.height+48}let O=[],k={id:h(),type:`figure`,kind:`lanes`,lanes:s,laneSizes:b,x:0,y:0,width:ee,height:C,rotation:0,label:``,fontSize:16,fontFamily:m,color:z,opacity:1};O.push(k);let A=new Map;for(let r of e.nodes){let i=Tr(r,n.get(r.id)??null,t.get(r.id),e.icons!==`badge`);A.set(r.id,i.id),O.push(i)}let te=Xn(e.edges),ne=er(`right`),j=e=>()=>[...t.values()].filter(t=>t.id!==e.from&&t.id!==e.to).map(e=>({x:e.x,y:e.y,width:e.width,height:e.height})),re=e=>Pr(e,{groupsById:new Map,nodeById:r}),M=[],N=[];for(let n of e.edges){let e=t.get(n.from),r=t.get(n.to),i=A.get(n.from),a=A.get(n.to);if(!e||!r||!i||!a)continue;let o=j(n),s=te(n),c={edge:n,from:e,to:r,fromShapeId:i,toShapeId:a,obstacles:o,rankSpan:Math.abs(e.rank-r.rank),detour:s};M.push(c),c.rankSpan<=1&&!s&&N.push({plan:c,prediction:$n(`right`,e,r)})}Er(N,ne,()=>!1);let ie={x:k.x,y:k.y,width:k.width,height:k.height},ae=x.slice(1).map(e=>({x:k.x,y:e-sa/2,width:k.width,height:sa}));O.push(...Ar(M,ne,`right`,re,()=>[ie],ae));let oe=e=>({x:k.x,y:e-sa/2,width:k.width,height:sa});return O.push(...Yr(i,O,t,A,`right`,[...ae,oe(k.y),oe(k.y+k.height)])),O}function ua(e){let{axis:t,diagram:n,cells:r,blocks:i,groupsById:a,chains:o,nodeById:s,iconById:c,groupChainOf:l}=e,u=t===`right`,d=e=>u?e.x:e.y,f=e=>u?e.x+e.width:e.y+e.height,p=e=>u?e.y:e.x,m=e=>u?e.y+e.height:e.x+e.width,h=e=>u?e.height:e.width,g=e=>{if(u){let t=s.get(e.id);if(t&&fr(t,c.get(e.id)??null))return 64/2}return h(e)/2},_=e=>p(e)+g(e),v=(e,t)=>{u?e.y+=t:e.x+=t},y=e=>{if(a.has(e)){let t=[e,...l(e)];return i.get(t[t.length-1])?.cell??null}let t=o.get(e)??[];return t.length===0?r.get(e)??null:i.get(t[t.length-1])?.cell??null},b=n.nodes.filter(e=>(o.get(e.id)??[]).length===0).map(e=>r.get(e.id)),x=[...r.values(),...[...i.values()].map(e=>e.cell)],S=new Map;for(let e of n.edges){if(e.from===e.to)continue;let[t,n]=e.back?[e.to,e.from]:[e.from,e.to],r=y(t),i=y(n);if(!r||!i||r===i||(o.get(n)??[]).length!==0||a.has(n)||d(r)>=d(i)-1)continue;let s=S.get(i.id)??new Set;s.add(r),S.set(i.id,s)}let C=(e,t,n)=>{let r=d(e),i=f(e),a=[];for(let t of x)t===e||n?.exclude?.has(t)||f(t)<=r-48||d(t)>=i+48||a.push([p(t)-h(e)-48,m(t)+48]);let o=e=>n?.clamp?Math.min(Math.max(e,n.clamp[0]),n.clamp[1]):e,s=p(e),c=e=>a.some(([t,n])=>e>t+.01&&e<n-.01),l=o(t);if(c(l)){let e=[s];for(let[t,n]of a)e.push(t,n);l=e.filter(e=>!c(e)&&o(e)===e).sort((e,n)=>Math.abs(e-t)-Math.abs(n-t))[0]}l!==void 0&&Math.abs(l-s)>.5&&v(e,l-s)};{let e=new Map;for(let t of n.edges){if(t.from===t.to)continue;let[n,i]=t.back?[t.to,t.from]:[t.from,t.to],a=o.get(i)??[],s=o.get(n)??[];if(a.length===0||s[0]!==a[0])continue;let c=r.get(n),l=r.get(i);if(!c||!l||d(c)>=d(l)-1)continue;let u=e.get(i)??new Set;u.add(c),e.set(i,u)}let t=(e,t)=>[...t].map(_).reduce((e,t)=>e+t,0)/t.size-g(e),s=[...e.keys()].map(e=>r.get(e)).sort((n,r)=>{let i=d(n)-d(r);return i===0?Math.abs(t(n,e.get(n.id))-p(n))-Math.abs(t(r,e.get(r.id))-p(r)):i});for(let n of s){let r=e.get(n.id),s=t(n,r);if(r.size>1&&Math.abs(s-p(n))>44)continue;let c=(o.get(n.id)??[])[0],l=a.get(c),d=i.get(c);if(!l||!d)continue;let f=xr(l);C(n,s,{exclude:new Set((o.get(n.id)??[]).map(e=>i.get(e)?.cell).filter(e=>!!e)),clamp:[p(d.cell)+(u?f.top:f.side),m(d.cell)-(u?f.bottom:f.side)-h(n)]})}}for(let e of[...b].sort((e,t)=>d(e)-d(t))){let t=S.get(e.id);if(!t||t.size===0)continue;let n=[...t].map(_);C(e,n.reduce((e,t)=>e+t,0)/n.length-g(e))}for(let e of b){if(S.get(e.id)?.size)continue;let t=null;for(let i of n.edges){if(i.from===i.to)continue;let[n,a]=i.back?[i.to,i.from]:[i.from,i.to];if(n!==e.id)continue;let o=r.get(a);if(!o||Math.abs(o.rank-e.rank)>1)continue;let s=_(o)-_(e);Math.abs(s)>44||(t===null||Math.abs(s)<Math.abs(t-_(e)))&&(t=_(o))}t!==null&&C(e,t-g(e))}let w=new Set,T=new Map;for(let e of n.edges){if(e.from===e.to||e.invisible)continue;let[t,n]=e.back?[e.to,e.from]:[e.from,e.to];w.add(n);let i=r.get(n);i&&T.set(t,[...T.get(t)??[],i])}for(let[e,t]of T){let n=r.get(e);if(!n||w.has(e)||t.length<2)continue;let s=(o.get(e)??[])[0];if(!s||t.some(e=>e.rank!==n.rank+1||o.get(e.id)?.[0]!==s))continue;let c=t.map(_),l=(Math.min(...c)+Math.max(...c))/2-g(n),d=a.get(s),f=i.get(s);if(!d||!f)continue;let v=xr(d);C(n,l,{exclude:new Set((o.get(e)??[]).map(e=>i.get(e)?.cell).filter(e=>!!e)),clamp:[p(f.cell)+(u?v.top:v.side),m(f.cell)-(u?v.bottom:v.side)-h(n)]})}}var da=/^(logs?|metrics?|traces?|tracing|telemetry|events?|audit|monitor(ing)?|alerts?|spans?)$/i;function fa(e){let{axis:t,diagram:n,cells:r,blocks:i,groupsById:a,chains:o,groupChainOf:s}=e,c=t===`right`,l=e=>{if(a.has(e)){let t=s(e);return t.length>0?t[t.length-1]:e}let t=o.get(e)??[];return t.length>0?t[t.length-1]:null},u=e=>{let t=r.get(e);if(t)return{x:t.x,y:t.y,width:t.width,height:t.height};let n=i.get(e);return n?{x:n.cell.x,y:n.cell.y,width:n.cell.width,height:n.cell.height}:null},d=n.nodes.filter(e=>{if((o.get(e.id)??[]).length>0||e.shape&&Et.has(e.shape))return!1;let t=n.edges.filter(t=>t.to===e.id&&t.from!==e.id);if(n.edges.filter(t=>t.from===e.id&&t.to!==e.id).length>0||t.length<2)return!1;let r=new Set(t.map(e=>l(e.from)).filter(Boolean)),i=t.filter(e=>!e.dashed&&e.label?.trim()&&!da.test(e.label.trim()));return r.size>=2&&i.length*2<=t.length}),f=new Set(d.map(e=>e.id)),p=e=>c?e.x:e.y,m=e=>c?e.x+e.width:e.y+e.height,h=-1/0;for(let e of r.values())f.has(e.id)||(h=Math.max(h,m(e)));let g=(e,t)=>{let n=(t,n=0)=>e.x-24<t.x+t.width&&e.x+e.width+24>t.x&&e.y-24<t.y+t.height&&e.y+e.height+24>t.y-n;for(let e of r.values())if(e.id!==t&&n(e))return!0;for(let e of i.values())if(n(e.cell,32))return!0;return!1},_=d.filter(e=>p(r.get(e.id))>=h-1).sort((e,t)=>p(r.get(t.id))-p(r.get(e.id)));for(let e of _){let t=r.get(e.id),i=n.edges.filter(t=>t.to===e.id&&t.from!==e.id).map(e=>u(e.from)).filter(e=>!!e);if(i.length===0)continue;let a=i.reduce((e,t)=>e+t.x+t.width/2,0)/i.length,o=i.reduce((e,t)=>e+t.y+t.height/2,0)/i.length,s=null;for(let n=-480;n<=480;n+=40)for(let r=-480;r<=480;r+=40){let i=r*r+n*n;if(s&&i>=s.d)continue;let l=a-t.width/2+r,u=o-t.height/2+n;(c?l+t.width:u+t.height)-1>h||g({x:l,y:u,width:t.width,height:t.height},e.id)||(s={x:l,y:u,d:i})}s&&(t.x=s.x,t.y=s.y)}}function pa(e){let{axis:t,diagram:n,groupsById:r,nodeById:i,router:a,detours:o,routeBoxOf:s,rankSpanOf:c,collectObstacles:l}=e,u=new Map,d=t===`right`,f=d?[`left`,`right`]:[`top`,`bottom`],p=e=>{if(r.has(e))return!0;let t=wr[i.get(e)?.shape??`rectangle`];return!!t&&f.every(e=>t.includes(e))},m=e=>d?e.y+e.height/2:e.x+e.width/2,h=e=>d?e.height:e.width,g=(e,t)=>{let n=s(e.from),r=s(e.to);if(d){let e=n.x+n.width<=r.x;return!e&&r.x+r.width>n.x?null:[{x:e?n.x+n.width:n.x,y:n.y+n.height/2+t},{x:e?r.x:r.x+r.width,y:r.y+r.height/2+t}]}let i=n.y+n.height<=r.y;return!i&&r.y+r.height>n.y?null:[{x:n.x+n.width/2+t,y:i?n.y+n.height:n.y},{x:r.x+r.width/2+t,y:i?r.y:r.y+r.height}]},_=Yn(n.edges);for(let e of n.edges){if(!o(e)||u.has(e)||e.from===e.to)continue;let t=_.get(Jn(e.to,e.from));if(!t||u.has(t)||e.label||t.label||c(e)>1||!p(e.from)||!p(e.to))continue;let n=s(e.from),r=s(e.to);if(Math.abs(m(n)-m(r))>44||Math.min(h(n),h(r))<46)continue;let i=d?n.x<=r.x:n.y<=r.y,f=g(e,i?-14:14),v=g(t,i?14:-14);!f||!v||K(f,l(e)())||K(v,l(t)())||a.overlaps(f)||a.overlaps(v)||[...f,...v].some(e=>a.portTaken(e))||(u.set(e,f),u.set(t,v),a.register(f),a.register(v))}return u}var ma=4,ha=1600,ga=2.2,_a=4,va=1.05,ya=.7,ba=.4,xa=.25,Sa=8,Ca=2,wa=.15,Ta=110,Ea=26;function Da(e){return Math.max(Ta,74+Math.max(0,e-1)*ka)}function Oa(e){let{diagram:t,cells:n,blocks:r,groupsById:i,topGroupOf:a}=e,o={crossing:new Set,rows:[]},s=new Map,c=e=>a(e)??e,l=(e,t,n)=>{let r=s.get(e);r?(r.lo=Math.min(r.lo,t.x),r.hi=Math.max(r.hi,t.x+t.width),r.crossLo=Math.min(r.crossLo,t.y),r.crossHi=Math.max(r.crossHi,t.y+t.height),r.ids.push(n)):s.set(e,{lo:t.x,hi:t.x+t.width,crossLo:t.y,crossHi:t.y+t.height,ids:[n]})};for(let e of n.values())l(c(e.id),e,e.id);for(let[e,t]of r)i.has(e)&&l(c(e),t.cell,e);let u=[...s.values()].sort((e,t)=>e.lo-t.lo);if(u.length<2)return o;let d=u[0].lo,f=Math.max(...u.map(e=>e.hi)),p=e=>Math.max(...e.map(e=>e.crossHi))-Math.min(...e.map(e=>e.crossLo)),m=f-d,h=p(u);if(m<ha||m/Math.max(h,1)<ma)return o;let g=[],_=-1/0;for(let e=0;e<u.length-1;e+=1)_=Math.max(_,u[e].hi),u[e+1].lo>_&&g.push(e);if(g.length===0)return o;let v=new Map(u.map((e,t)=>[e,t])),y=e=>{let t=s.get(c(e));return t?v.get(t)??-1:-1},b=e=>{let t=n.get(e)??r.get(e)?.cell;return t?t.x+t.width/2:null},x=[];for(let e of t.edges){if(e.from===e.to||e.invisible)continue;let t=y(e.from),n=y(e.to),r=b(e.from),i=b(e.to);t<0||n<0||r===null||i===null||x.push({edge:e,a:t,b:n,ax:r,bx:i})}let S=u.length-1,C=e=>e.a===S&&e.b===0,w=e=>{let t=[-1,...e,u.length-1];return t.slice(1).map((e,n)=>[t[n]+1,e])},T=([e,t])=>({lo:u[e].lo,hi:Math.max(...u.slice(e,t+1).map(e=>e.hi))}),E=(e,t)=>e.filter(e=>e<t).length,D=e=>{let t=w(e),n=t.slice(1).map(()=>[]);for(let t of x){let r=E(e,t.a),i=E(e,t.b);if(r!==i){if(Math.abs(r-i)>1){if(C(t))continue;return null}n[Math.min(r,i)].push(t)}}for(let t=0;t<n.length;t+=1)if(!n[t].some(n=>E(e,n.a)===t)||n[t].length>Sa)return null;let r=T(t[0]),i=[0],a=[0],o=Math.max(...u.slice(t[0][0],t[0][1]+1).map(e=>e.crossHi));for(let s=1;s<t.length;s+=1){let[c,l]=t[s],d=T(t[s]),f=n[s-1].map(t=>{let n=E(e,t.a)===s-1;return(n?t.ax:t.bx)+i[s-1]-(n?t.bx:t.ax)}).sort((e,t)=>e-t),p=f[Math.floor((f.length-1)/2)],m=r.lo-d.lo,h=r.hi-d.hi;i.push(m>h?h:Math.min(h,Math.max(m,p)));let g=u.slice(c,l+1),_=o+Da(n[s-1].length)-Math.min(...g.map(e=>e.crossLo));a.push(_),o=Math.max(...g.map(e=>e.crossHi))+_}return{rows:t,shiftMain:i,shiftCross:a,lanes:n}},ee=e=>{let t=w(e),n=t.map(e=>{let t=T(e);return t.hi-t.lo});if(n.slice(1).some(e=>e>n[0]*va)||n.slice(1,-1).some(e=>e<n[0]*ya)||n[n.length-1]<n[0]*ba)return null;let r=Math.max(...n);if(r>m*(1-xa))return null;let i=D(e);if(!i)return null;let a=0;for(let t of i.lanes){let r=t.reduce((t,n)=>{let r=n.ax+i.shiftMain[E(e,n.a)],a=n.bx+i.shiftMain[E(e,n.b)];return t+Math.abs(r-a)},0);if(r>Ca*n[0])return null;a+=r/n[0]}let o=t.reduce((e,[t,n])=>e+p(u.slice(t,n+1)),0)+i.lanes.reduce((e,t)=>e+Da(t.length),0);return{placement:i,score:Math.abs(Math.log(r/o/ga))+a*wa}},O=null,k=(e,t)=>{if(t.length>0){let e=ee(t);e&&(!O||e.score<O.score)&&(O=e)}if(t.length!==_a-1)for(let n=e;n<g.length;n+=1)k(n+1,[...t,g[n]])};k(0,[]);let A=O;if(!A||A.score>=Math.abs(Math.log(m/h/ga)))return o;let{rows:te,shiftMain:ne,shiftCross:j}=A.placement,re=[];te.forEach(([e,t],i)=>{let a=u.slice(e,t+1);for(let e of a){for(let t of e.ids){let e=n.get(t)??r.get(t)?.cell;e&&(e.x+=ne[i],e.y+=j[i])}e.crossLo+=j[i],e.crossHi+=j[i]}re.push({lo:Math.min(...a.map(e=>e.crossLo)),hi:Math.max(...a.map(e=>e.crossHi))})});let M=te.slice(0,-1).map(([,e])=>e);return{crossing:new Set(x.filter(e=>E(M,e.a)!==E(M,e.b)).map(e=>e.edge)),rows:re}}var ka=14,Aa=18,ja=48,Ma=24,Na=6;function Pa(e){let t=e.length,n=(e,t)=>e>Math.min(t.upper,t.lower)&&e<Math.max(t.upper,t.lower),r=(t,r)=>+!!n(e[r].upper,e[t])+ +!!n(e[t].lower,e[r]),i=(1<<t)-1,a=Array(i+1).fill(1/0),o=Array(i+1).fill(-1);a[i]=0;for(let e=i-1;e>=0;--e)for(let n=0;n<t;n+=1){if(e&1<<n)continue;let i=0;for(let a=0;a<t;a+=1)!(e&1<<a)&&a!==n&&(i+=r(n,a));let s=i+a[e|1<<n];s<a[e]&&(a[e]=s,o[e]=n)}let s=[];for(let e=0;e!==i;e|=1<<o[e])s.push(o[e]);return s}function Fa(e){let{rows:t,edges:n,boxOf:r,obstaclesOf:i,clearOf:a,blocked:o,register:s,framesOf:c}=e,l=e=>e.some((t,n)=>n>0&&a.some(r=>d(e[n-1],t,r,Na))),u=new Map;if(t.length<2)return u;let f=e=>e.y+e.height/2,p=e=>t.findIndex(t=>f(e)>=t.lo&&f(e)<=t.hi),m=e=>e.x+e.width/2,h=[];for(let e of n){let t=r(e.from),n=r(e.to);if(!t||!n)continue;let i=p(t),a=p(n);if(i<0||a<0||Math.abs(i-a)!==1)continue;let o=a>i;h.push({edge:e,upperId:o?e.from:e.to,lowerId:o?e.to:e.from,upper:o?t:n,lower:o?n:t,down:o,gap:Math.max(i,a)})}let g=(e,t)=>{let n=new Map;for(let t of h){let r=e(t);n.set(r,[...n.get(r)??[],t])}let r=new Map;for(let e of n.values())e.sort((e,n)=>m(t(e))-m(t(n))),e.forEach((t,n)=>r.set(t,{index:n-(e.length-1)/2,count:e.length}));return r},_=g(e=>e.upperId,e=>e.lower),v=g(e=>e.lowerId,e=>e.upper),y=(e,t)=>m(e)+t.index*Math.max(Aa,Math.min(ja,e.width/(t.count+1))),b=[];for(let e=1;e<t.length;e+=1){let n=h.filter(t=>t.gap===e).map(e=>({...e,upperX:y(e.upper,_.get(e)),lowerX:y(e.lower,v.get(e))}));if(n.length===0)continue;let r=t[e-1].hi,i=(r+Math.max(r,t[e].lo-Ea))/2,a=Pa(n.map(e=>({upper:e.upperX,lower:e.lowerX})));a.forEach((e,t)=>{b.push({...n[e],track:i+(t-(a.length-1)/2)*ka})})}let x=(e,t)=>({x:e,y:t});for(let e of b){let{edge:t,upper:n,lower:r,upperX:a,lowerX:d,track:p}=e,m=[[x(a,n.y+n.height),x(a,p)]];for(let t of[!0,!1])for(let r of[n,...c(e.upperId)]){let e=t?r.x+r.width+Ma:r.x-Ma,i=t?n.x+n.width:n.x;m.push([x(i,f(n)),x(e,f(n)),x(e,p)])}let h=[[x(d,p),x(d,r.y)]];for(let t of[!1,!0])for(let n of[r,...c(e.lowerId)]){let e=t?n.x+n.width+Ma:n.x-Ma,i=t?r.x+r.width:r.x;h.push([x(e,p),x(e,f(r)),x(i,f(r))])}let g=i(t),_=null;for(let t of m){for(let n of h){let r=[...t,...n],i=e.down?r:r.reverse();if(!K(i,g)&&!l(i)&&!o(i)){_=i;break}}if(_)break}_&&(s(_),u.set(t,_))}return u}var Ia=40;function La(e,t){let n=Dt(e.nodes.map(e=>e.id),e.edges.filter(e=>e.from!==e.to).map(e=>e.back?{from:e.to,to:e.from}:e)),r=e=>n.get(e)??0,i=new Set;for(let n of e.nodes){if(n.shape!==`cylinder`||(t.get(n.id)??[]).length>0)continue;let r=e.edges.filter(e=>e.from!==e.to&&(e.from===n.id||e.to===n.id)),a=new Set(r.filter(e=>e.to===n.id).map(e=>e.from));a.size===0||r.some(e=>e.from===n.id&&!a.has(e.to))||i.add(n.id)}let a=Math.max(...n.values()),o=new Set;for(let t of i){let n=[...new Set(e.edges.filter(e=>e.to===t).map(e=>e.from))];n.length>1&&new Set(n.map(r)).size===1||(n.some(t=>e.edges.some(e=>e.from===t&&!i.has(e.to)&&r(e.to)>r(t)))||r(t)<a)&&o.add(t)}return o}function Ra(e){let{diagram:t,stores:n,cells:r,blocks:i}=e,a=new Set,o=[...r.values(),...[...i.values()].map(e=>e.cell)],s=-1/0,c=[...n.entries()].map(([e,n])=>{let a=t.edges.filter(t=>t.from!==t.to&&(t.from===e||t.to===e)),o=[...new Set(a.map(t=>t.from===e?t.to:t.from))].map(e=>r.get(e)??i.get(e)?.cell).filter(e=>!!e);return{id:e,cell:n,edges:a,feeders:o,centres:o.map(e=>e.x+e.width/2)}}),l=e=>(Math.min(...e)+Math.max(...e))/2;c.sort((e,t)=>l(e.centres)-l(t.centres));for(let{id:e,cell:t,edges:n,feeders:i,centres:u}of c){if(u.length===0)continue;t.width=Math.max(t.width,(u.length-1)*J+Va*2),t.x=Math.max(l(u)-t.width/2,s+Ia),s=t.x+t.width;let c=Math.max(...[-1,1].map(e=>u.filter(n=>e<0?n<t.x:n>t.x+t.width).length)),d=[...i,...o.filter(e=>za(e,t))];t.y=Math.max(...d.map(e=>e.y+e.height))+110+c*J,r.set(e,t);for(let e of n)a.add(e)}return a}function za(e,t){return e.x<t.x+t.width&&t.x<e.x+e.width}var J=22,Ba=32,Va=20,Ha=40,Ua=80;function Wa(e){let{edges:t,boxOf:n,isStore:r,obstaclesOf:i,blocked:a,register:o}=e,s=new Map,c=e=>r(e.to)?e.to:e.from;for(let e of new Set([...t].map(c))){let r=n(e);if(!r)continue;let l=r.y,u=r.x+Va,d=r.x+r.width-Va,f=[],p=(e,t)=>{let n=e;for(;f.some(e=>Math.abs(e-n)<J);)n+=t*J;return n},m=[],h=[...t].filter(t=>c(t)===e).sort((e,t)=>(g(t)?.y??0)-(g(e)?.y??0));function g(t){return n(t.from===e?t.to:t.from)}for(let e of h){let t=g(e);if(!t)continue;let n=t.x+t.width/2,r=t.y+t.height*.75,o=[[{x:n,y:t.y+t.height},{x:n,y:l}]];for(let e of[1,-1]){let n=e>0?t.x+t.width:t.x,i=p(n+e*Ba,e);o.push([{x:n,y:r},{x:i,y:r},{x:i,y:l}])}let s=i(e),c=e=>e<u?u-e:e>d?e-d:0,h=e=>{let t=e[e.length-1].x;return Ga(e)+(c(t)>0?c(t)+Ha*2:0)+(e.length>2?Ua:0)},_=o.filter(e=>!K(e,s)&&!a(e)).sort((e,t)=>h(e)-h(t))[0]??null;_&&(f.push(_[_.length-1].x),m.push({edge:e,path:_,x:_[_.length-1].x}))}let _=new Map,v=r.x+r.width/2,y=m.filter(e=>Math.abs(e.x-v)<=J/2).sort((e,t)=>Math.abs(e.x-v)-Math.abs(t.x-v))[0];y&&_.set(y,y.path);let b=m.filter(e=>e!==y),x=[-1,1].map(e=>b.filter(t=>e<0?t.x<v:t.x>=v));[-1,1].forEach((e,t)=>{let n=(t,n)=>e*(t-n),i=x[t].sort((e,t)=>n(e.x,t.x)),a=y?y.x+e*J:x[1-t].length>0?v+e*J/2:v,o=e<0?r.x+Va/2:r.x+r.width-Va/2,s=[];i.forEach((t,r)=>{let c=i.length-1-r;if(t.x>=u&&t.x<=d&&n(t.x,a)>=0&&n(o,t.x+e*c*J)>=0){_.set(t,t.path),a=t.x+e*J;return}s.push({drop:t,at:a}),a+=e*J}),s.reverse().forEach(({drop:e,at:t},n)=>{let r=l-Ba-n*J;_.set(e,[...e.path.slice(0,-1),{x:e.x,y:r},{x:t,y:r},{x:t,y:l}])})});for(let[t,n]of _){let r=t.edge.to===e;K(n,i(t.edge))||a(n)||(o(n),s.set(t.edge,r?n:[...n].reverse()))}}return s}function Ga(e){let t=(e.length-2)*Ha;for(let n=1;n<e.length;n+=1)t+=Math.abs(e[n].x-e[n-1].x)+Math.abs(e[n].y-e[n-1].y);return t}async function Ka(e,t){let n=e.edges.map(e=>e.label?{...e,label:Un(e.label)}:e),r=n.filter(e=>e.from===e.to),i={...e,edges:n.filter(e=>e.from!==e.to)},a=await Promise.all(i.nodes.map(e=>e.icon&&!mr(e)?t.icons.resolveIcon(e.icon):Promise.resolve(null))),o=new Map(i.nodes.map((e,t)=>[e.id,a[t]])),s=await Promise.all(i.groups.map(e=>e.icon?t.icons.resolveIcon(e.icon):Promise.resolve(null))),c=new Map(i.groups.map((e,t)=>[e.id,s[t]])),l=new Map(i.nodes.map(e=>[e.id,e])),u=new Map(i.groups.map(e=>[e.id,e])),d=new Map(i.nodes.map(e=>[e.id,{id:e.id,group:e.group,...br(e,o.get(e.id)??null,i.icons!==`badge`),rank:0,x:0,y:0}])),f=i.nodes.filter(e=>e.shape===`circle`||e.shape===`double-circle`).map(e=>e.id);if(f.length>1){let e=Math.max(...f.map(e=>d.get(e).width));for(let t of f){let n=d.get(t);n.width=e,n.height=e}}for(let e of i.nodes){let t=d.get(e.id);t.flatInset=yr(e,t)}if(i.kanban&&i.groups.length>0)return ji(i,c);if(i.swimlanes&&i.groups.length>0)return la(i,d,o,l,r);let p=i.direction===`down`||i.direction===`up`?`down`:`right`,g=e=>{let t=u.get(e)?.parent;return t&&u.has(t)?t:null},_=e=>{let t=[],n=e.group&&u.has(e.group)?e.group:null;for(;n&&!t.includes(n);)t.push(n),n=g(n);return t},v=new Map(i.nodes.map(e=>[e.id,_(e)])),y=new Map,b=e=>{let t=[],n=g(e);for(;n&&!t.includes(n);)t.push(n),n=g(n);return t},x=e=>v.get(e)??(u.has(e)?b(e):[]),S=p===`right`?La(i,v):new Set,C=new Map([...S].map(e=>{let t=d.get(e);return d.delete(e),[e,t]})),w=C.size===0?i:{...i,nodes:i.nodes.filter(e=>!S.has(e.id)),edges:i.edges.filter(e=>!S.has(e.from)&&!S.has(e.to))},T=await Ti(w,d,e=>v.get(e)?.[0]??null,g,e=>xr(u.get(e)),t.elk),E=Dt([...i.nodes.map(e=>e.id),...i.groups.map(e=>e.id)],i.edges.filter(e=>e.from!==e.to).map(e=>e.back?{from:e.to,to:e.from}:{from:e.from,to:e.to}));for(let e of d.values())e.rank=E.get(e.id)??0;{let e=e=>d.get(e)??T.groupBounds.get(e)??null,t=[];if(p===`right`)for(let n of i.edges){if(!n.label||n.invisible)continue;let r=E.get(n.from),i=E.get(n.to);if(r===void 0||i===void 0||Math.abs(r-i)>1)continue;let a=e(n.from),o=e(n.to);if(!a||!o)continue;let[s,c]=a.x+a.width<=o.x?[a,o]:[o,a];s.x+s.width>c.x||t.push({lo:s.x+s.width,hi:c.x,need:Wn(n.label,16)+72})}Ai({axis:p,cells:[...d.values()],groupBounds:[...T.groupBounds.values()],floor:110,borderExtra:p===`right`?26:40,spans:t})}Vi({axis:p,diagram:w,cells:d,groupBounds:T.groupBounds,topGroupOf:e=>{let t=u.has(e)?[e,...b(e)]:v.get(e)??[];return t.length>0?t[t.length-1]:null},edgeNeed:e=>Math.max(110,e.label&&p===`right`?Wn(e.label,16)+72:0)});for(let e of i.groups){let t=T.groupBounds.get(e.id);t&&y.set(e.id,{group:e,cell:{id:`group:${e.id}`,rank:0,...t}})}ua({axis:p,diagram:w,cells:d,blocks:y,groupsById:u,chains:v,nodeById:l,iconById:o,groupChainOf:b}),fa({axis:p,diagram:w,cells:d,blocks:y,groupsById:u,chains:v,groupChainOf:b}),Xa({axis:p,diagram:w,cells:d,blocks:y,chains:v,groupChainOf:b});let D=Ra({diagram:i,stores:C,cells:d,blocks:y}),{crossing:ee,rows:k}=p===`right`?Oa({diagram:i,cells:d,blocks:y,groupsById:u,topGroupOf:e=>{let t=u.has(e)?[e,...b(e)]:v.get(e)??[];return t.length>0?t[t.length-1]:null}}):{crossing:new Set,rows:[]},A=[],ne=0,j=new Map,re=e=>{for(let t of i.groups){if(g(t.id)!==e||!y.has(t.id))continue;let n=y.get(t.id),r={x:n.cell.x,y:n.cell.y,width:n.cell.width,height:n.cell.height},i=c.get(t.id)??void 0;if(t.frame){let e={id:h(),type:`figure`,kind:t.frame,...r,rotation:0,label:t.label,titleIcon:i,fontSize:16,fontFamily:m,color:z,fill:`#ffffff`,opacity:1};j.set(t.id,e.id),A.push(e)}else{let e={id:h(),type:`figure`,kind:`simple`,...r,rotation:0,label:t.label,titleIcon:i,fontSize:16,fontFamily:m,color:Bn,fill:t.color?te[t.color]:Vn[ne%Vn.length],opacity:1};ne+=1,j.set(t.id,e.id),A.push(e)}re(t.id)}};re(null);let M=new Map;for(let e of i.nodes){let t=Tr(e,o.get(e.id)??null,d.get(e.id),i.icons!==`badge`);M.set(e.id,t.id),A.push(t)}let N={cells:d,blocks:y,groupsById:u,nodeById:l,containersOf:x},ie=new Map,ae=e=>()=>{let t=jr(e,N);for(let n of new Set([...x(e.from),...x(e.to)])){let e=ie.get(n);e&&t.push(e)}return t},oe=e=>Mr(e,N),se=e=>{let t=E.get(e.from),n=E.get(e.to);return t!==void 0&&n!==void 0?Math.abs(t-n):1},ce=e=>{let t=d.get(e);if(!t)return y.get(e).cell;let n=l.get(e);return n&&fr(n,o.get(e)??null)?hr(t):t},le=Xn(i.edges),P=er(p),ue=e=>Pr(e,{groupsById:u,nodeById:l}),de=[];for(let e of i.groups){let t=y.get(e.id);if(!t||!e.label||e.frame)continue;let n=c.get(e.id)?20:0,r={x:t.cell.x,y:t.cell.y-26,width:Math.min(O(e.label,16)+n+8,t.cell.width),height:26};de.push(r),ie.set(e.id,r)}let fe=[...y.values()].map(e=>Nn(e.cell)),pe=pa({axis:p,diagram:i,groupsById:u,nodeById:l,router:P,detours:le,routeBoxOf:ce,rankSpanOf:se,collectObstacles:ae}),me=new Map([...pe,...Fa({rows:k,edges:i.edges.filter(e=>ee.has(e)&&!e.invisible&&!pe.has(e)),boxOf:e=>d.get(e)??ce(e),obstaclesOf:e=>ae(e)(),clearOf:de,blocked:e=>P.overlaps(e)||On(e,fe,12)>24,register:e=>P.register(e),framesOf:e=>x(e).flatMap(e=>{let t=y.get(e);return t?[t.cell]:[]})}),...Wa({edges:D,boxOf:e=>d.get(e)??ce(e),isStore:e=>S.has(e),obstaclesOf:e=>ae(e)(),blocked:e=>P.overlaps(e),register:e=>P.register(e)})]),he=[],ge=[];for(let e of i.edges){let t=M.get(e.from)??j.get(e.from),n=M.get(e.to)??j.get(e.to);if(!t||!n)continue;let r=ce(e.from),i=ce(e.to),a=ae(e),s=me.get(e);if(s){he.push({edge:e,fromShapeId:t,toShapeId:n,from:r,to:i,obstacles:a,rankSpan:1,detour:!1,lane:s});continue}let c=le(e),u=e=>{let t=l.get(e);return!!t&&fr(t,o.get(e)??null)},f={edge:e,fromShapeId:t,toShapeId:n,from:r,to:i,obstacles:a,stubExtra:u(e.from)||u(e.to)?qa:0,withinGroup:!!v.get(e.from)?.[0]&&v.get(e.from)?.[0]===v.get(e.to)?.[0],rankSpan:ee.has(e)||D.has(e)?Math.max(2,se(e)):se(e),detour:c};if(he.push(f),f.rankSpan<=1&&!c){let t=$n(p,r,i),n=t.path.length>2?$n(p,d.get(e.from)??r,d.get(e.to)??i):null;ge.push({plan:f,prediction:n&&n.path.length>2?n:t})}}Er(ge,P,e=>On(e,fe,12)>24),A.push(...Ar(he,P,p,ue,oe,de));let _e=aa(Ya(Li(A,qa)));return[..._e,...Yr(r,_e,d,M,p)]}var qa=14;function Ja(e,t,n){let r=[{d:Math.abs(e.x-t.x),dx:-1,dy:0},{d:Math.abs(e.x-(t.x+t.width)),dx:1,dy:0},{d:Math.abs(e.y-t.y),dx:0,dy:-1},{d:Math.abs(e.y-(t.y+t.height)),dx:0,dy:1}].sort((e,t)=>e.d-t.d)[0];return{x:e.x+r.dx*n,y:e.y+r.dy*n}}function Ya(e){let t=new Map(e.filter(e=>e.type===`icon`).map(e=>[e.id,e]));if(t.size===0)return e;let n=(e,n,r)=>{let i=t.get(e),a=k(i),o=D(i),s=(r===null||Math.abs(r.x-n.x)<.5&&r.y>=a.y+a.height+qa)&&Math.abs(n.y-(o.y+o.height))<.5&&a.y+a.height>o.y+o.height+.5?{x:n.x,y:a.y+a.height}:n,c=Math.abs(s.x-a.x)<.5||Math.abs(s.x-(a.x+a.width))<.5||Math.abs(s.y-a.y)<.5||Math.abs(s.y-(a.y+a.height))<.5?Ja(s,a,qa-6):Ja(s,o,qa);return{x:a.width>0?(c.x-a.x)/a.width:.5,y:a.height>0?(c.y-a.y)/a.height:.5}};return e.map(e=>{if(e.type!==`arrow`)return e;let r=e=>e!=null&&!(`kind`in e)&&e.precise&&t.has(e.shapeId),i=e.startBinding,a=e.endBinding;if(!r(i)&&!r(a))return e;let o=e.elbowPoints&&e.elbowPoints.length>=2?e.elbowPoints:null;return{...e,startBinding:r(i)?{...i,anchor:n(i.shapeId,{x:e.x,y:e.y},o?o[1]:null)}:i,endBinding:r(a)?{...a,anchor:n(a.shapeId,{x:e.x2,y:e.y2},o?o[o.length-2]:null)}:a}})}function Xa(e){let{axis:t,diagram:n,cells:r,blocks:i,chains:a,groupChainOf:o}=e,s=e=>o(e).length,c=[...n.groups].sort((e,t)=>s(t.id)-s(e.id)),[l,u]=t===`right`?[`y`,`height`]:[`x`,`width`];for(let e of c){let s=i.get(e.id)?.cell;if(!s)continue;let c=[...[...r.values()].filter(t=>a.get(t.id)?.includes(e.id)),...n.groups.filter(t=>o(t.id).includes(e.id)).flatMap(e=>i.get(e.id)?.cell??[])];if(c.length===0)continue;let d=xr(e),[f,p]=t===`right`?[d.top,d.bottom]:[d.side,d.side],m=Math.max(s[l],Math.min(...c.map(e=>e[l]))-f),h=Math.min(s[l]+s[u],Math.max(...c.map(e=>e[l]+e[u]))+p);s[l]=m,s[u]=h-m}}function Y(e,t,n,r,i,a=`center`){let o=Math.round(r*j),s=O(n,r)+16+12,c=o+12;return Me({x:a===`center`?e-s/2:a===`right`?e-s+6:e-6,y:t-c/2,width:s,height:c},n,r,{color:i,align:a,valign:`middle`})}var Za=40,Qa=26,$a=34,eo=15,to=13,no=20,ro=20,io=520,ao=1180,oo=64;function so(e){return e===`done`?`gray`:e===`critical`?`red`:e===`milestone`?`violet`:e===`active`?`blue`:`teal`}function co(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return;let n=Date.UTC(Number(t[1]),Number(t[2])-1,Number(t[3]));return Number.isFinite(n)?Math.round(n/864e5):void 0}var lo=1e8;function uo(e){return!Number.isFinite(e)||Math.abs(e)>lo?`d${e}`:new Date(e*864e5).toISOString().slice(0,10)}function fo(e){let t=(e%7+7+4)%7;return t===0||t===6}function po(e){let t=e;for(;fo(t);)t+=1;return t}function mo(e,t){if(t<=0)return e;let n=Math.floor(t/5),r=po(e)+n*7,i=t-n*5;for(;i>0;)r+=1,fo(r)||--i;return r}function ho(e,t=!1){let n=new Map,r=new Map,i=e.map(e=>co(e.start??``)).filter(e=>e!==void 0),a=i.length>0?Math.min(...i):0,o=a,s=[];for(let i of e){let e=co(i.start??``),c=i.after&&i.after.length>0?Math.max(...i.after.map(e=>n.get(e)??a)):void 0,l=e??c??o;t&&(l=po(l));let u=typeof i.days==`number`&&Number.isFinite(i.days)?i.days:1,d=t?mo(l,u):l+u;n.set(i.id,d),r.set(i.id,l),o=d,s.push({task:i,start:l,end:d})}for(let e of s){let t=e.task.until?r.get(e.task.until):void 0;t!==void 0&&t>e.start&&(e.end=t,n.set(e.task.id,t))}return s}function go(e){for(let t of[1,2,5,7,14,30,60,90,180,365])if(e/t<=7)return t;let t=Math.ceil(e/7);return Number.isFinite(t)&&t>0?t:365}function _o(e){let t=[];for(let{task:n}of e){let e=n.section??``;t.includes(e)||t.push(e)}return t.flatMap(t=>e.filter(({task:e})=>(e.section??``)===t))}var vo=[`blue`,`green`,`orange`,`violet`,`teal`,`pink`,`yellow`];function yo(e){let t=e.filter(({task:e})=>e.status!==`milestone`),n=t.filter(({task:e})=>e.status===`critical`||e.status===`active`),r=[...new Set(e.map(({task:e})=>e.section??``))],i=r.length>1&&n.length>t.length/2;return e=>!i||e.status===`done`||e.status===`milestone`?so(e.status):vo[r.indexOf(e.section??``)%vo.length]}function bo(e,t){return t%7==0?`Week ${e/7+1}`:t>=30?`Month ${Math.round(e/30)+1}`:`Day ${e+1}`}function xo(e){if(e.tasks.length===0)return[];let t=_o(ho(e.tasks,e.skipWeekends)),n=yo(t),r=Math.min(...t.map(e=>e.start)),i=Math.max(...t.map(e=>e.end)),a=Math.max(1,i-r),o=e.tasks.every(e=>!e.start),s=e.tasks.map(e=>e.section).filter(e=>!!e),l=s.length>0?Math.max(...s.map(e=>O(e,to)+24)):0,u=c(a*26,io,ao),d=Math.max(u,...t.map(({task:e,start:t,end:n})=>e.status===`milestone`||n<=t?0:(O(e.label,eo)+ro)*a/(n-t))),f=d<=ao,p=f?d:u,m=e=>l+(e-r)/a*p,h=[],g=[],_=[],v=go(a),y=$a+t.length*Za;if(e.skipWeekends&&p/a>=4)for(let e=r;e<=i;e+=1){if(!fo(e))continue;let t=e;for(;t+1<=i&&fo(t+1);)t+=1;let n=m(e);h.push(F({x:n,y:$a-8,width:Math.max(1,m(t+1)-n),height:y-$a+8},B,{kind:`rectangle`,fillStyle:`bold`,strokeWidth:0,opacity:.14})),e=t}for(let e=r,t=0;e<=i&&t<oo;e+=v,t+=1){let t=m(e);h.push(Ne([{x:t,y:$a-8},{x:t,y}],{color:B,strokeWidth:1,dash:`dotted`})),_.push(Y(t,$a/2,o?bo(e-r,v):uo(e),to,B,`center`))}let b;return t.forEach((e,t)=>{let{task:r,start:i,end:a}=e,o=$a+t*Za+Za/2,s=n(r);if(r.section&&r.section!==b&&(b=r.section,_.push(Y(0,o,b,to,N.gray,`left`))),r.status===`milestone`||a<=i){let e=m(i),t=F({x:e-no/2,y:o-no/2,width:no,height:no},U[s],{kind:`diamond`,fillStyle:`bold`,color:N[s],strokeWidth:V});g.push(t),_.push(Y(e+no/2+8,o,r.label,eo,z,`left`));return}let c=m(i),l=Math.max(6,m(a)-c);g.push(F({x:c,y:o-Qa/2,width:l,height:Qa},U[s],{kind:`rectangle`,fillStyle:r.status===`done`?`outline`:`pastel`,color:N[s],strokeWidth:V,label:f?r.label:``,fontSize:eo,labelColor:z,align:`center`,valign:`middle`})),f||_.push(Y(c+l+8,o,r.label,eo,z,`left`))}),h.push(Ne([{x:l-8,y:$a-8},{x:l+p+8,y:$a-8}],{color:B,strokeWidth:H})),[...h,...g,..._]}function So(e){return{id:h(),type:`arrow`,bend:0,bendAlong:0,bendStyle:`curved`,dash:`solid`,startArrow:!1,endArrow:!1,opacity:1,...e}}function Co(e,t,n){return So({x:e.x+e.width/2,y:e.y+e.height/2,x2:t.x+t.width/2,y2:t.y+t.height/2,startBinding:{shapeId:e.id,anchor:{x:.5,y:.5},precise:!1},endBinding:{shapeId:t.id,anchor:{x:.5,y:.5},precise:!1},...n})}var wo=82,To=116,Eo=26,Do=14,Oo=15,ko=26;function Ao(e,t){return e.kind===`highlight`?`orange`:e.kind===`reverse`?`red`:t}function jo(e){return new Map(e.map((e,t)=>[e,W[t%W.length]]))}function Mo(e,t,n){let r=Math.abs(t.y-e.y)>1;return So({x:e.x+e.width/2,y:e.y+e.height/2,x2:t.x+t.width/2,y2:t.y+t.height/2,bendStyle:r?`elbow`:`curved`,elbowMid:r?.92:void 0,startBinding:{shapeId:e.id,anchor:{x:.5,y:.5},precise:!1},endBinding:{shapeId:t.id,anchor:{x:.5,y:.5},precise:!1},fontSize:Do,fontFamily:e.fontFamily,color:B,strokeWidth:H,dash:n?`dashed`:`solid`})}function No(e){if(e.commits.length===0)return[];let t=jo(e.lanes),n=new Map(e.lanes.map((e,t)=>[e,ko+t*wo])),r=Math.max(...e.lanes.map(e=>O(e,Oo)+24)),i=r+28,a=[],o=[],s=[],c=new Map,l=new Map;e.commits.forEach((r,u)=>{let d=t.get(r.branch)??`blue`,f=n.get(r.branch)??ko,p=i+u*To,m=Ao(r,d),h=F({x:p,y:f-Eo/2,width:Eo,height:Eo},U[m],{kind:`ellipse`,fillStyle:r.mergeFrom||r.cherryPick?`outline`:`bold`,color:N[m],strokeWidth:V});o.push(h),c.set(r.id,h);let g=l.get(r.branch);if(g)a.push(Mo(g,h,!1));else{let t=(r.branchFrom?l.get(r.branchFrom):void 0)??Po(e.commits,u,r.branch,l);t&&a.push(Mo(t,h,!1))}if(l.set(r.branch,h),r.mergeFrom){let e=l.get(r.mergeFrom);e&&e!==h&&a.push(Mo(e,h,!1))}if(r.cherryPick){let e=c.get(r.cherryPick);e&&e!==h&&a.push(Mo(e,h,!0))}let _=r.label??r.id;s.push(Y(p+Eo/2,f+Eo/2+16,_,Do,z)),r.tag&&s.push(Y(p+Eo/2,f-Eo/2-15,r.tag,Do,N.green))});let u=i+(e.commits.length-1)*To+Eo,d=[];for(let a of e.lanes){let e=n.get(a)??ko,o=t.get(a)??`blue`;d.push(Ne([{x:i-14,y:e},{x:u+14,y:e}],{color:B,strokeWidth:H,dash:`dotted`})),d.push(Y(r/2,e,a,Oo,N[o]))}return[...d,...a,...o,...s]}function Po(e,t,n,r){for(let i=t-1;i>=0;--i){let t=e[i];if(t.branch!==n){let e=r.get(t.branch);if(e)return e}}}var Fo=260,Io=22,Lo=150,Ro=14,zo=2,Bo=26,Vo=15,Ho=.5;function Uo(e,t){let n=new Map(t.map(e=>[e,0]));for(let r=0;r<t.length;r+=1){let t=!1;for(let r of e){let e=(n.get(r.from)??0)+1;e>(n.get(r.to)??0)&&(n.set(r.to,e),t=!0)}if(!t)break}return n}function Wo(e,t){let n=new Map,r=new Map;for(let t of e)r.set(t.from,(r.get(t.from)??0)+t.value),n.set(t.to,(n.get(t.to)??0)+t.value);return new Map(t.map(e=>[e,Math.max(n.get(e)??0,r.get(e)??0)]))}function Go(e,t,n){let r=e*t;return Number.isFinite(r)?Math.max(n,r):n}function Ko(e,n,r,i,a,o){let s={from:e.id,to:n.id,fromTop:r/e.height,fromSpan:a/e.height,toTop:i/n.height,toSpan:a/n.height};return{id:h(),type:`polygon`,points:t(e,n,s),band:s,fill:U[o],color:N[o],strokeWidth:0,opacity:Ho}}var qo=/\s*(?:[·•|:–—-]\s*|\(\s*)[\d.,]+\s*[kKmMbB%]?\s*\)?\s*$/;function Jo(e){let t=e.replace(qo,``).trim();return t.length>0?t:e.trim()}function Yo(e){let t=new Map;for(let n of e){let e=Jo(n.from),r=Jo(n.to);if(e===r)continue;let i=`${e}\u0000${r}`,a=t.get(i);t.set(i,a?{...a,value:a.value+n.value}:{...n,from:e,to:r})}return[...t.values()]}function Xo(e){let t=e=>String(Number(e.toFixed(1)));return Math.abs(e)>=1e6?`${t(e/1e6)}M`:Math.abs(e)>=1e3?`${t(e/1e3)}k`:String(Number.isInteger(e)?e:Number(e.toFixed(2)))}function Zo(e){let t=Yo(e.flows);if(t.length===0)return[];let n=[];for(let e of t)for(let t of[e.from,e.to])n.includes(t)||n.push(t);let r=Uo(t,n),i=Wo(t,n),a=Lo/Math.max(...n.map(e=>i.get(e)??0),1),o=new Map,s=new Map;for(let e of n){let t=r.get(e)??0,n=s.get(t)??[];n.push(e),s.set(t,n)}for(let[e,t]of s){let n=0;for(let r of t){let t=Go(i.get(r)??0,a,Ro);o.set(r,{name:r,column:e,total:i.get(r)??0,height:t,x:e*Fo,y:n}),n+=t+Bo}}let c=Math.max(...[...s.values()].map(e=>e.reduce((e,t)=>e+(o.get(t)?.height??0)+Bo,-26)));for(let e of s.values()){let t=(c-e.reduce((e,t)=>e+(o.get(t)?.height??0)+Bo,-26))/2;for(let n of e){let e=o.get(n);e.y+=t}}let l=Math.max(...s.keys()),u=new Map,d=[];for(let[e,t]of n.entries()){let n=o.get(t),r=W[e%W.length],i=F({x:n.x,y:n.y,width:Io,height:n.height},U[r],{kind:`rectangle`,fillStyle:`bold`,color:N[r],strokeWidth:V});u.set(t,i);let a=n.y+n.height/2,s=`${n.name} · ${Xo(n.total)}`;n.column===0?d.push(Y(n.x-14,a,s,Vo,z,`right`)):n.column===l?d.push(Y(n.x+Io+14,a,s,Vo,z,`left`)):d.push(Y(n.x+Io/2,n.y-14,s,Vo,z,`center`))}let f=new Map,p=new Map,m=[];for(let e of t){let t=Go(e.value,a,zo),r=f.get(e.from)??0,i=p.get(e.to)??0;f.set(e.from,r+t),p.set(e.to,i+t);let o=W[n.indexOf(e.from)%W.length],s=u.get(e.from),c=u.get(e.to);m.push(Ko(s,c,r,i,t,o))}return[...m,...u.values(),...d]}function Qo(e,t){return e.color??W[t%W.length]}function $o(e,t){return e.split(`
|
|
12
|
-
`).length*(t*1.4)+12}function X(e,t,n,r,i,a=`center`){let o=n.split(`
|
|
13
|
-
`),s=Math.max(...o.map(e=>O(e,r)))+24,c=$o(n,r);return Me({x:a===`center`?e-s/2:e,y:t,width:s,height:c},n,r,{color:i,align:a===`center`?`center`:`left`,valign:`top`})}function es(e,t=18){return e.icon?M(t)+A(t):0}async function ts(e,t,n){if(t.icon){let r=await n.resolveIcon(t.icon);r&&(e.titleIcon={...r,placement:`inside`})}return e}function Z(e,t=28){return e.length<=t?e:C(e,t).join(`
|
|
14
|
-
`)}function ns(e){return e<=1?`red`:e<=2?`orange`:e<=3?`yellow`:e<=4?`teal`:`green`}var rs=[`blue`,`pink`,`violet`,`gray`],is=6;function as(e){return(e.detail??``).split(`,`).map(e=>e.trim()).filter(Boolean)}function os(e){let{min:t,max:n,default:r}=se,i=.42;return e<r?(e-r)/(r-t)*i:(e-r)/(n-r)*i}function ss(e,t,n){let r=e.width/2,i=e.x+r,a=e.y+r,o=os(t)*r,s=Math.abs(o),c=r*.43,l=Math.max(1,r*.115),u=[-1,1].map(e=>F({x:i+e*r*.34-l,y:a-r*.26-l,width:l*2,height:l*2},z,{kind:`ellipse`,fillStyle:`bold`,color:z,strokeWidth:0})),d=a+(o<0?r*.1+s:r*.14);u.push(So({x:i-c,y:d,x2:i+c,y2:d,bend:o<0?-s:s,startBinding:null,endBinding:null,fontSize:15,fontFamily:e.fontFamily,color:z,strokeWidth:Math.max(1.5,r*.15)}));for(let e of u)e.groupId=n;return u}async function cs(e,t){let n=e.items,r=Math.max(150,...n.map(e=>O(e.label,18)+40+es(e))),{min:i,max:a,default:o}=se,s=a-i||1,c=new Map;for(let e of n)for(let t of as(e))c.has(t)||c.set(t,rs[c.size%rs.length]);let l=[...c.keys()];(l.length>is||l.some(e=>e.split(/\s+/).length>3))&&c.clear();let u=Math.round(15*j),d=u+12,f=Math.max(13,u)+8,p=e=>O(e,15)+16+12,m=c.size>0?c.size*f+16:0,g=m+38+20,_=g+52+46,v=[],y=[],b=[],x=[],S=[],C=[],w=(e,t,n,r)=>F({x:e,y:t,width:n,height:n},U[r],{kind:`ellipse`,fillStyle:`bold`,color:N[r],strokeWidth:V}),T=0;for(let[e,t]of c){let n=T*f+f/2;v.push(w(0,n-13/2,13,t)),v.push(Me({x:17,y:n-d/2,width:p(e),height:d},e,15,{color:B,align:`left`,valign:`middle`})),T+=1}for(let e=0;e<n.length;e+=1){let a=n[e],l=a.score??o,u=a.color??ns(l),d=e*(r+26),f=F({x:d,y:g,width:r,height:52},U[u],{label:a.label,fontSize:18,color:z,strokeWidth:V});y.push(await ts(f,a,t)),as(a).forEach((e,t)=>{let n=c.get(e);n&&b.push(w(d+10+t*17,g-13/2,13,n))});let p=_+(1-(l-i)/s)*132,m=w(d+r/2-26/2,p,26,u),v=h();m.groupId=v,x.push(m),C.push(...ss(m,l,v)),S.push(So({x:f.x+f.width/2,y:f.y+f.height,x2:m.x+m.width/2,y2:m.y,startBinding:{shapeId:f.id,anchor:{x:.5,y:1},precise:!0},endBinding:{shapeId:m.id,anchor:{x:.5,y:.5},precise:!1},fontSize:15,fontFamily:f.fontFamily,color:B,strokeWidth:V,dash:`dashed`}))}for(let e=1;e<x.length;e+=1){let t=x[e-1],n=x[e];v.push(Co(t,n,{fontSize:15,fontFamily:t.fontFamily,color:B,strokeWidth:H}))}let E=0;for(let e=0;e<=n.length;e+=1){let t=n[e]?.group,i=n[E]?.group;if(!(e<n.length&&t===i)){if(i){let t=E*(r+26),n=(e-1)*(r+26)+r;v.push(F({x:t,y:m,width:n-t,height:38},U.gray,{label:i,fontSize:15,color:z,strokeWidth:V}))}E=e}}return v.push(...S,...y,...x,...C,...b),v}function ls(e){let t=e.items,n=[],r=e=>e.events&&e.events.length>0?e.events:e.detail?[e.detail]:[],i=[];t.forEach((e,t)=>{let n=i[i.length-1];if(e.group&&n?.group===e.group){n.end=t;return}i.push({start:t,end:t,group:e.group,color:W[i.length%W.length]})});let a=new Map;for(let e of i)for(let t=e.start;t<=e.end;t+=1)a.set(t,e);let o=Math.max(190,...t.map(e=>Math.max(O(e.label,18),...r(e).map(e=>Wn(Z(e),15)))+44)),s=0+o*(t.length-1);n.push(Ne([{x:0-o*.4,y:0},{x:s+o*.55,y:0}],{color:z,strokeWidth:H,endArrow:!0}));let c=1/0;t.forEach((e,t)=>{let i=e.color??a.get(t).color,s=0+o*t;n.push(F({x:s-22/2,y:0-22/2,width:22,height:22},U[i],{kind:`ellipse`,fillStyle:`bold`,color:N[i],strokeWidth:V}));let l=t%2==0,u=l?-34-18*1.4-12:34;if(n.push(X(s,u,e.label,18,N[i])),l&&(c=Math.min(c,u)),l){let t=u;for(let i of[...r(e)].reverse()){let e=Z(i);t=t-$o(e,15)-2,n.push(X(s,t,e,15,B)),c=Math.min(c,t)}}else{let t=u+$o(e.label,18);for(let i of r(e)){let e=Z(i);t+=2,n.push(X(s,t,e,15,B)),t+=$o(e,15)}}});let l=i.filter(e=>e.group!==void 0);if(l.length>0){let e=l.map(e=>Z(e.group)),t=Math.max(...e.map(e=>$o(e,15))),r=c-22,i=r-4-t;l.forEach((t,a)=>{let s=0+o*t.start,c=0+o*t.end;n.push(X((s+c)/2,i,e[a],15,N[t.color])),n.push(Ne([{x:s-22,y:r},{x:c+22,y:r}],{color:N[t.color],strokeWidth:H*.7}))})}return n}async function us(e,t){let n=e.items,r=[],i=n.map(e=>({width:Math.min(Math.max(130,O(e.label,18)+44+es(e)),230),height:56})),a=Math.max(150,n.length*44);for(let e=0;e<n.length;e+=1){let o=n[e],s=Qo(o,e),c=-Math.PI/2+e*2*Math.PI/n.length,l=Math.cos(c)*a,u=Math.sin(c)*a,d=F({x:l-i[e].width/2,y:u-i[e].height/2,width:i[e].width,height:i[e].height},U[s],{label:o.label,fontSize:18,color:z,strokeWidth:V});r.push(await ts(d,o,t))}let o=[];for(let e=0;e<r.length&&r.length>1;e+=1){let t=r[e],i=r[(e+1)%r.length],a=Qo(n[e],e);o.push(Co(t,i,{fontSize:16,fontFamily:t.fontFamily,color:N[a],strokeWidth:H,endArrow:!0}))}return n.forEach((e,t)=>{if(!e.detail)return;let i=-Math.PI/2+t*2*Math.PI/n.length,a=Math.cos(i),s=Math.sin(i),c=r[t],l=Z(e.detail),u=Math.max(...l.split(`
|
|
15
|
-
`).map(e=>O(e,15)))+24,d=c.x+c.width/2,f=c.y+c.height/2,p=d+a*(c.width/2+28+u/2),m=f+s*(c.height/2+30+15);o.push(X(p,m-15,l,15,B))}),o.push(...r),o}async function ds(e,t){let n=e.items,r=Math.max(170,...n.map(e=>O(e.label,18)+48+es(e))),i=[];for(let a=0;a<n.length;a+=1){let o=n[a],s=n.length>1?a/(n.length-1):0,c=e.variant===`funnel`?1-s:s,l=r+(380-r)*c,u=Qo(o,a),d=a*72,f=F({x:-l/2,y:d,width:l,height:60},U[u],{label:o.label,fontSize:18,color:z,strokeWidth:V});i.push(await ts(f,o,t)),o.detail&&i.push(X(226,d+60/2-15,Z(o.detail,34),15,B,`left`))}return i}function fs(e){let t=e.items.slice(0,3),n=t.length>=3?[{x:0,y:0},{x:175,y:0},{x:175/2,y:175*.87}]:[{x:0,y:0},{x:175,y:0}],r=[],i=new Map;t.forEach((e,a)=>{let o=Qo(e,a),s=n[a]??n[n.length-1];i.set(e.id,s),r.push(F({x:s.x-150,y:s.y-150,width:300,height:300},U[o],{kind:`ellipse`,color:N[o],strokeWidth:V,opacity:.65}));let c=t.length>=3&&a===2,l=c?s.y+150+14:s.y-150-14-18*1.4-12;if(r.push(X(s.x,l,e.label,18,N[o])),e.detail){let t=c?l+18*1.4+14:l-15*1.4-14;r.push(X(s.x,t,Z(e.detail),15,B))}});let a={x:0,y:0};for(let e of n.slice(0,t.length))a.x+=e.x/t.length,a.y+=e.y/t.length;for(let n of e.overlaps??[]){let e=n.ids.map(e=>i.get(e)).filter(e=>e!==void 0);if(e.length<2)continue;let o=e.reduce((e,t)=>e+t.x,0)/e.length,s=e.reduce((e,t)=>e+t.y,0)/e.length;if(t.length>=3&&e.length===2){let e={x:o-a.x,y:s-a.y},t=Math.hypot(e.x,e.y)||1;o+=e.x/t*46,s+=e.y/t*46}r.push(X(o,s-15,Z(n.label,16),15,z))}return r}function ps(e){let t=e.split(`
|
|
16
|
-
`).map(e=>e.replace(/^[-•*]\s*/,``).trim()).filter(Boolean);return t.length>1?S(t):Z(e,36)}async function ms(e,t){let n=e.items.slice(0,4),r=o[1],i=[];for(let e=0;e<n.length;e+=1){let a=n[e],o=Qo(a,e),s=e%2,c=Math.floor(e/2),l=s*338,u=c*228,d=F({x:l,y:u,width:320,height:210},U[o],{label:a.label,fontSize:18,color:N[o],strokeWidth:V,valign:`top`,textPadding:r});if(i.push(await ts(d,a,t)),a.detail){let e=u+54+(r-6);i.push(Me({x:l+18,y:e,width:284,height:194-(e-u)},ps(a.detail),15,{color:z,align:`left`,valign:`top`}))}}let a=e.axes;if(a?.x&&(i.push(X(320/2,454,a.x[0],15,B)),i.push(X(498,454,a.x[1],15,B))),a?.y){let e=O(a.y[0],15)+24,t=O(a.y[1],15)+24;i.push(X(-e-12,318,a.y[0],15,B,`left`)),i.push(X(-t-12,210/2-15,a.y[1],15,B,`left`))}return i}async function hs(e,t){if(e.items.length===0)return[];switch(e.variant){case`journey`:return cs(e,t.icons);case`cycle`:return us(e,t.icons);case`funnel`:case`pyramid`:return ds(e,t.icons);case`venn`:return fs(e);case`matrix`:return ms(e,t.icons);default:return ls(e)}}var gs=32,_s=14,Q=20,vs=14,ys=12,bs=Math.round(Q*1.3),xs=bs,Ss=18,Cs=16,ws=320;function Ts(e,t){return e+(xs-t)/2}function Es(e){return/^[<>.-]+$/.test(e)}function Ds(e){return Math.min(O(e,vs)+16,ws)}function Os(e,t,n){return F({x:e.x,y:e.y,width:n,height:gs},`transparent`,{label:t,fontSize:vs,align:`left`,valign:`middle`,labelColor:B,color:z,dash:`none`})}async function ks(e,t,n,r){let i=e.toLowerCase();if(Es(i)){let e=Ts(t,Ss);return{id:h(),type:`line`,points:[{x:e,y:n},{x:e+Ss,y:n}],color:z,strokeWidth:2,dash:i.includes(`..`)||i.includes(`--`)?`dashed`:`solid`,startArrow:!1,endArrow:i.includes(`>`)||i.includes(`<`),opacity:1}}if(Se[i])return F({x:Ts(t,Q),y:n-Q/2,width:Q,height:Q},U[Se[i]],{fontSize:vs,color:z,fillStyle:`bold`});if(fe[i]&&fe[i]!==`sticky`)return F({x:Ts(t,bs),y:n-Q/2,width:bs,height:Q},`transparent`,{kind:Sr[fe[i]]??`rectangle`,fontSize:vs,color:z});let a=await r.resolveIcon(he(i));return a?{id:h(),type:`icon`,x:Ts(t,Q),y:n-Q/2,width:Q,height:Q,rotation:0,source:a.source,name:a.name,label:``,fontSize:vs,fontFamily:m,color:z,strokeWidth:2,opacity:1}:F({x:Ts(t,Q),y:n-Q/2,width:Q,height:Q},`#f1f3f5`,{fontSize:vs,color:Bn})}function As(e,t,n){return F({x:e.x,y:e.y,width:t,height:n},`transparent`,{fontSize:vs,color:Bn})}async function js(e,t,n){let r=Math.max(...e.map(e=>Ds(e.label)),60),i=[As(t,66+r,_s*2+e.length*gs)];for(let[a,o]of e.entries()){let e=t.y+_s+a*gs,s=t.x+_s;i.push(await ks(o.swatch.trim(),s,e+gs/2,n)),i.push(Os({x:s+38,y:e},o.label,r))}return i}async function Ms(e,t,n){let r=e.map(e=>Ds(e.label)),i=t.y+_s,a=i+gs/2,o=[As(t,Ns(e),60)],s=t.x+_s;for(let[t,c]of e.entries())o.push(await ks(c.swatch.trim(),s,a,n)),o.push(Os({x:s+xs+ys,y:i},c.label,r[t])),s+=38+r[t]+Cs;return o}function Ns(e){let t=e.reduce((e,t)=>e+xs+ys+Ds(t.label),0);return _s*2+t+Cs*Math.max(0,e.length-1)}async function Ps(e,t,n,r){return e.length===0?[]:e.length>=2&&Ns(e)<=n?Ms(e,t,r.icons):js(e,t,r.icons)}var Fs={font:24,height:66,minW:150,maxW:300,padX:26},Is={font:20,height:50,minW:120,maxW:250,padX:24},Ls={font:16,height:40,minW:96,maxW:230,padX:20},Rs=90,zs=16,Bs=34;function Vs(e,t,n=!1){let r=n?M(t.font)+A(t.font):0,i=O(e,t.font)+t.padX*2+r;return Math.round(Math.max(t.minW,Math.min(t.maxW,i)))}function Hs(e,t,n,r,i){return F(t,r,{label:e,fontSize:n,color:z,fillStyle:i,strokeWidth:V})}function Us(e,t,n,r){return Co(e,t,{fontSize:16,fontFamily:m,color:n,strokeWidth:r})}function Ws(e,t){return e.length===0?0:e.reduce((e,t)=>e+t.blockHeight,0)+(e.length-1)*t}async function Gs(e,t,n){let r=Hs(e.label,{x:0,y:0,width:Vs(e.label,Ls,!!e.icon),height:Ls.height},Ls.font,`#ffffff`,`outline`);if(r.color=N[t],e.icon){let t=await n.resolveIcon(e.icon);t&&(r.titleIcon={...t,placement:`inside`})}let i=await Promise.all((e.children??[]).map(e=>Gs(e,t,n)));return{box:r,children:i,blockHeight:Math.max(Ls.height,Ws(i,zs))}}async function Ks(e,t,n){let r=e.color??W[t%W.length],i=U[r],a=Hs(e.label,{x:0,y:0,width:Vs(e.label,Is,!!e.icon),height:Is.height},Is.font,i,`pastel`);if(e.icon){let t=await n.resolveIcon(e.icon);t&&(a.titleIcon={...t,placement:`inside`})}let o=await Promise.all((e.children??[]).map(e=>Gs(e,r,n)));return{color:r,box:a,children:o,blockHeight:Math.max(Is.height,Ws(o,zs))}}function qs(e,t,n,r,i,a,o){let s=t===1?n.x+n.width:n.x;e.box.x=t===1?s+Rs:s-Rs-e.box.width,e.box.y=r+(e.blockHeight-e.box.height)/2,o.push(Us(n,e.box,i,a));let c=r+(e.blockHeight-Ws(e.children,zs))/2;for(let n of e.children)qs(n,t,e.box,c,i,a,o),c+=n.blockHeight+zs;o.push(e.box)}function Js(e,t,n,r){if(e.length===0)return;let i=Ws(e,Bs),a=n.y+n.height/2-i/2;for(let i of e)qs(i,t,n,a,N[i.color],H,r),a+=i.blockHeight+Bs}async function Ys(e,t){let n=await Promise.all(e.branches.map((e,n)=>Ks(e,n,t.icons))),r=Hs(e.central||e.title||`Topic`,{x:0,y:0,width:Vs(e.central||e.title||`Topic`,Fs),height:Fs.height},Fs.font,U.blue,`bold`);r.x=-r.width/2,r.y=-r.height/2;let i=[],a=[],o=0,s=0;for(let e of n)o<=s?(i.push(e),o+=e.blockHeight+Bs):(a.push(e),s+=e.blockHeight+Bs);let c=[];return Js(i,1,r,c),Js(a,-1,r,c),c.push(r),c}var Xs=56,Zs=52,Qs=28,$s=120,ec=3,tc=32,nc=14;function rc(e){return c(O(e.label,20)+36,$s,280)}function ic(e){let t=new Map(e.nodes.map(e=>[e.id,e])),n=new Map,r=new Set;for(let i of e.edges){if(!t.has(i.from)||!t.has(i.to)||i.from===i.to)continue;let e=n.get(i.from)??[];e.includes(i.to)||e.push(i.to),n.set(i.from,e),r.add(i.to)}let i=e.nodes.filter(e=>!r.has(e.id)).map(e=>e.id);i.length===0&&e.nodes.length>0&&(i=[e.nodes[0].id]);let a=new Map,o=new Set,s=0;function c(e,r){let i=t.get(e),l=rc(i),u=r*108,d=(n.get(e)??[]).filter(e=>!a.has(e)&&!o.has(e));if(d.length===0){let t=s+l/2;return s+=l+Qs,a.set(e,{node:i,x:t-l/2,y:u,w:l,cx:t}),t}let f=d.every(e=>(n.get(e)??[]).length===0);if(r>=1&&f&&d.length>=ec){let n=d.map(e=>rc(t.get(e))),r=Math.max(l,tc+Math.max(...n)),o=s;return d.forEach((e,r)=>{let i=u+70*(r+1)+Zs/2-nc,s=o+tc;a.set(e,{node:t.get(e),x:s,y:i,w:n[r],cx:s+n[r]/2,stacked:!0})}),s+=r+Qs,a.set(e,{node:i,x:o,y:u,w:l,cx:o+l/2}),o+l/2}o.add(e);let p=d.map(e=>c(e,r+1));o.delete(e);let m=(Math.min(...p)+Math.max(...p))/2;return a.set(e,{node:i,x:m-l/2,y:u,w:l,cx:m}),m}for(let e of i)a.has(e)||c(e,0);for(let t of e.nodes)a.has(t.id)||c(t.id,0);let l=[],u=new Map;for(let[e,t]of a){let n=F({x:t.x,y:t.y,width:t.w,height:Xs},t.node.color?U[t.node.color]:`#ffffff`,{label:t.node.label,fontSize:20,color:z,fillStyle:t.node.fill??`pastel`,shadow:t.node.shadow,strokeWidth:V});u.set(e,n.id),l.push(n)}let d=[];for(let t of e.edges){let e=a.get(t.from),n=a.get(t.to);if(!e||!n||e===n)continue;let r=u.get(t.from),i=u.get(t.to);if(!r||!i)continue;let o=e.y+Xs;if(n.stacked){let a=e.x+tc/2,s=n.y+Xs/2;d.push(So({x:a,y:o,x2:n.x,y2:s,bendStyle:`elbow`,elbowPoints:[{x:a,y:o},{x:a,y:s},{x:n.x,y:s}],startBinding:{shapeId:r,anchor:{x:tc/2/e.w,y:1},precise:!0},endBinding:{shapeId:i,anchor:{x:0,y:.5},precise:!0},color:B,strokeWidth:H,dash:t.dashed?`dashed`:`solid`,label:t.label||void 0}));continue}let s=o+Zs/2;d.push(So({x:e.cx,y:o,x2:n.cx,y2:n.y,bendStyle:`elbow`,elbowPoints:[{x:e.cx,y:o},{x:e.cx,y:s},{x:n.cx,y:s},{x:n.cx,y:n.y}],startBinding:{shapeId:r,anchor:{x:.5,y:1},precise:!0},endBinding:{shapeId:i,anchor:{x:.5,y:0},precise:!0},color:B,strokeWidth:H,dash:t.dashed?`dashed`:`solid`,label:t.label||void 0}))}return[...d,...l]}var ac=18,oc=E(ac),sc=130,cc=64,lc=64,uc=48,dc=36,fc=72,pc=8,mc=20;function hc(e){return e?Math.max(fc,O(e,16)/2+mc+pc):fc}var gc=40,_c=18,vc=60,yc=14,bc=13,xc=28,Sc=34,Cc=13,wc=18,Tc=`#fff3bf`;function Ec(e){let{actors:t}=e,n=Math.max(150,...t.map(e=>Math.min(O(e.label,ac)+48,260))),r=n+sc;return{headerWidth:n,centerOf:new Map(t.map((e,t)=>[e.id,t*r+n/2]))}}function Dc(e){let{messages:t,frames:n}=e,r=e.notes??[],i=new Map,a=[],o=oc+cc,s=e=>{for(let t of r)t.after===e&&(i.set(t,o),o+=52)};return s(-1),t.forEach((e,t)=>{o+=n.filter(e=>e.from===t).length*gc,a.push(o),o+=lc+(e.from===e.to?dc:0),o+=n.filter(e=>e.to===t).length*_c,s(t)}),{rowY:a,noteY:i,lifelineBottom:o-lc/2+xc}}function Oc(e,t,n){let{messages:r}=e,i=new Map;for(let a of e.activations??[]){if(!t.centerOf.has(a.actor)||n.rowY.length===0)continue;let e=r[a.to],o=n.rowY[a.from]-10,s=n.rowY[a.to]+(e.from===e.to?60:14),c=i.get(a.actor)??[];c.push({top:o,bottom:s}),i.set(a.actor,c)}for(let[e,t]of i){t.sort((e,t)=>e.top-t.top);let n=[];for(let e of t){let t=n[n.length-1];t&&e.top<=t.bottom?t.bottom=Math.max(t.bottom,e.bottom):n.push({...e})}i.set(e,n)}return i}function kc(e,t,n,r){let i=new Map;return e.actors.forEach((e,a)=>{let o=t.centerOf.get(e.id),s=r.get(e.id);i.set(e.id,{id:h(),type:`control`,kind:`lifeline`,x:o-t.headerWidth/2,y:0,width:t.headerWidth,height:n.lifelineBottom,rotation:0,label:e.label,fontSize:ac,fontFamily:m,color:z,fill:U[W[a%W.length]],opacity:1,activations:s?.map(e=>({top:e.top,height:e.bottom-e.top})),link:e.link})}),i}function Ac(e,t,n){let{messages:r,frames:i}=e,a=new Map,o=(e,t)=>e===t||e.from>t.from||e.to<t.to?!1:e.from!==t.from||e.to!==t.to||i.indexOf(e)>i.indexOf(t);for(let e of i){let s=1/0,c=-1/0;for(let n=e.from;n<=e.to;n+=1){let e=r[n],i=t.centerOf.get(e.from)??0,a=t.centerOf.get(e.to)??0;s=Math.min(s,i,a),c=Math.max(c,i,a),e.from===e.to&&(c=Math.max(c,i+hc(e.label)))}let l=i.filter(t=>t.from===e.from).sort((e,t)=>o(e,t)?-1:+!!o(t,e)),u=i.filter(t=>t.to===e.to).sort((e,t)=>o(e,t)?1:o(t,e)?-1:0),d=r[e.to];a.set(e,{left:s-vc,right:c+vc,top:n.rowY[e.from]-gc*(l.length-l.indexOf(e))+4,bottom:n.rowY[e.to]+(d.from===d.to?70:30)+_c*u.indexOf(e)})}let s=[...i].sort((e,t)=>e.to-e.from-(t.to-t.from)||i.indexOf(e)-i.indexOf(t));for(let e of s){let t=s.find(t=>o(t,e));if(!t)continue;let n=a.get(e),r=a.get(t);r.left=Math.min(r.left,n.left-yc),r.right=Math.max(r.right,n.right+yc)}return a}function jc(e,t){return e.map(e=>{let n=t.get(e),r=e.label?`${e.kind} [${e.label}]`:e.kind;return{id:h(),type:`control`,kind:`fragment`,x:n.left,y:n.top,width:n.right-n.left,height:n.bottom-n.top,rotation:0,label:r,fontSize:bc,fontFamily:m,color:z,fill:y,opacity:1}})}function Mc(e,t,n,r){let{messages:i}=e,a=[],o=(e,i,a)=>{let o=r.get(e),s=t.centerOf.get(e),c=n.rowY[i],l=T(o),u=b(o,c),d=+(a>s);return{x:u?u.x+d*u.width:s,binding:{shapeId:o.id,anchor:{x:.5,y:(c-l.y)/l.height},precise:!0}}},s=[...t.centerOf.values()],c=(e,t)=>s.filter(n=>n>Math.min(e,t)&&n<Math.max(e,t));return i.forEach((e,i)=>{let s=n.rowY[i],l=t.centerOf.get(e.from),u=t.centerOf.get(e.to);if(e.from===e.to){let t=b(r.get(e.from),s),n=l+(t?t.width/2:0),i=hc(e.label),o={id:h(),type:`line`,points:[{x:n,y:s},{x:l+i,y:s},{x:l+i,y:s+uc},{x:n+2,y:s+uc}],color:z,strokeWidth:ie,dash:e.reply?`dashed`:`solid`,startArrow:!1,endArrow:!0,label:e.label,fontSize:16,fontFamily:m,opacity:1};a.push(o);return}let d=o(e.from,i,u),f=o(e.to,i,l),p=So({x:d.x,y:s,x2:f.x,y2:s,startBinding:d.binding,endBinding:f.binding,label:e.label,labelAlong:Nc(e.label,d.x,f.x,c(l,u)),fontSize:16,fontFamily:m,color:z,strokeWidth:ie,dash:e.reply?`dashed`:`solid`,startArrow:e.bidirectional===!0,endArrow:!0});a.push(p)}),a}function Nc(e,t,n,r){if(!e||r.length===0||t===n)return;let i=Math.min(t,n),a=Math.max(t,n),o=[i,...r.sort((e,t)=>e-t),a],s=O(e,16)+pc*2,c=(i+a)/2,l=null;for(let e=0;e<o.length-1;e+=1){if(o[e+1]-o[e]<s+pc*2)continue;let t=(o[e]+o[e+1])/2;(l===null||Math.abs(t-c)<Math.abs(l-c))&&(l=t)}if(l!==null)return(l-t)/(n-t)}function Pc(e,t,n){let r=[];for(let i of e.notes??[]){let e=n.noteY.get(i);if(e===void 0)continue;let a=i.actors.map(e=>t.centerOf.get(e)).filter(e=>e!==void 0);if(a.length===0)continue;let o=O(i.text,Cc)+24,s,c;if(i.placement===`left`)c=o,s=a[0]-t.headerWidth/2-wc-c;else if(i.placement===`right`)c=o,s=a[0]+t.headerWidth/2+wc;else{let e=Math.min(...a),n=Math.max(...a);c=Math.max(o,n-e+t.headerWidth*.7),s=(e+n)/2-c/2}r.push(F({x:s,y:e,width:c,height:Sc},Tc,{kind:`note`,label:i.text,fontSize:Cc,labelColor:z,color:B}))}return r}async function Fc(e){let t=Ec(e),r=Dc(e),i=kc(e,t,r,Oc(e,t,r)),a=jc(e.frames,Ac(e,t,r));return n([...i.values(),...Mc(e,t,r,i),...a,...Pc(e,t,r)])}var Ic=140,Lc=14,Rc=16,zc={phone:300,tablet:520,browser:720,window:640},Bc={navbar:52,tabs:46,heading:46,paragraph:84,image:150,avatar:72,button:46,input:46,search:46,dropdown:46,checkbox:32,radio:32,toggle:36,slider:42,divider:16,link:28,textarea:110,stepper:46,badge:28,progress:20,breadcrumbs:32,pagination:40,rating:32,card:200,list:150,alert:56,menu:150,tooltip:48,accordion:170,datepicker:220,sidebar:280,scrollbar:220,segmented:36,tabbar:56,statusbar:28,fab:56,stepbadge:44},Vc={full:1,twoThirds:2/3,half:1/2,third:1/3},Hc=400,Uc=new Set([`input`,`textarea`,`dropdown`,`datepicker`,`stepper`]),Wc=new Set([`navbar`,`statusbar`,`tabbar`,`sidebar`,`divider`,`breadcrumbs`,`scrollbar`]);function Gc(e){let t=0,n=0;for(let r of e.controls)Uc.has(r.kind)&&(t+=1),r.kind===`button`&&(n+=1);return t>=2||t>=1&&n>=1}function Kc(e){return e.frame===`browser`?{top:54,side:22,bottom:22}:e.frame===`window`?{top:50,side:22,bottom:22}:e.frame===`tablet`?{top:40,side:28,bottom:44}:{top:48,side:22,bottom:48}}var qc={toggle:1,checkbox:1,radio:1,slider:.6,progress:.6,scrollbar:.3,rating:3,alert:0,navbar:0,tabs:0,pagination:0,menu:0,accordion:0,sidebar:0,segmented:0,tabbar:0};function Jc(e,t,n,r,i){let a=e.kind,o=e.kind===`button`?U.blue:e.kind===`toggle`?U.green:e.kind===`badge`?U.blue:void 0,s=e.value??qc[e.kind];return{id:h(),type:`control`,kind:a,x:t,y:n,width:r,height:i,rotation:0,...a===`card`?Yc(e.label):{label:e.label??Ce[a]??``},fontSize:Rc,fontFamily:m,color:z,fill:o,opacity:1,value:s}}function Yc(e){if(e===void 0)return{label:Ce.card??``,body:ye};let[t=``,...n]=e.split(`
|
|
17
|
-
`);return{label:t.trim(),body:n.join(`
|
|
18
|
-
`).trim()}}function Xc(e){let t=[],n=0;for(let r of e.screens){let e=Kc(r),i=zc[r.frame],a=n+e.side,o=[],s=[],c=0;for(let e of r.controls){let t=Vc[e.width??`full`];s.length>0&&c+t>1.001&&(o.push(s),s=[],c=0),s.push(e),c+=t}s.length>0&&o.push(s);let l=Gc(r)?Math.min(i,Hc):i,u=[],d=[],f=e.top;for(let e of o){let t=e.every(e=>Wc.has(e.kind))?i:l,n=a+(i-t)/2,r=e.map(e=>Vc[e.width??`full`]),o=r.reduce((e,t)=>e+t,0),s=t-Lc*(e.length-1),c=r.map(e=>e/o*s),p=(e,t)=>{if(e.kind!==`paragraph`||!e.label)return Bc[e.kind];let n=Rc*.9,r=_(e.label,t,n).length;return Math.ceil(r*n*1.4+8)},g=Math.max(...e.map((e,t)=>p(e,c[t]))),v=n;e.forEach((e,t)=>{let n=c[t],r=p(e,n);if(e.kind===`heading`){let t={id:h(),type:`text`,x:v,y:f+(g-r)/2+6,text:e.label??`Heading`,fontSize:Math.round(Rc*1.6),fontFamily:m,width:n,rotation:0,color:z,opacity:1};d.push(t)}else u.push(Jc(e,v,f+(g-r)/2,n,r));v+=n+Lc}),f+=g+Lc}let p=o.length>0?f-Lc:e.top,g={id:h(),type:`figure`,kind:r.frame,x:n,y:0,width:i+e.side*2,height:p+e.bottom,rotation:0,label:r.name,fontSize:16,fontFamily:m,color:z,fill:`#ffffff`,opacity:1};t.push(g,...u,...d),n+=g.width+Ic}return t}var Zc=36;async function Qc(e,t){return e.kind===`sequence`?Fc(e):e.kind===`erd`?vi(e):e.kind===`wireframe`?Xc(e):e.kind===`mindmap`?Ys(e,t):e.kind===`infographic`?hs(e,t):e.kind===`gitgraph`?No(e):e.kind===`gantt`?xo(e):e.kind===`sankey`?Zo(e):e.kind===`graph`&&e.variant===`orgchart`?ic(e):Ka(e,t)}function $c(e){let t,n=0;for(let r of e){if(r.type!==`figure`)continue;let e=r.width*r.height;e>n&&(t=r,n=e)}return t}function el(e){return e.kind!==`graph`||e.legend||e.nodes.length===0?!1:e.swimlanes&&e.groups.length>0?!0:e.groups.filter(e=>!e.parent).length===1&&e.nodes.every(e=>e.group)}async function tl(e,t){let n=Ct(e);if(wt(n))return null;let r=await Qc(n,t);if(r.length===0)return null;let i={minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0},a=e=>{let t=k(e);l(t)&&(i.minX=Math.min(i.minX,t.x),i.minY=Math.min(i.minY,t.y),i.maxX=Math.max(i.maxX,t.x+t.width),i.maxY=Math.max(i.maxY,t.y+t.height))};for(let e of r)a(e);return{diagram:n,shapes:r,extent:i,grow:a}}function nl(e,t,n){if(!Number.isFinite(t.minX)||!Number.isFinite(t.minY))return{shapes:e,bounds:{x:n.x,y:n.y,width:0,height:0}};let r={x:n.x-t.minX,y:n.y-t.minY};return{shapes:e.map(e=>w(e,r)),bounds:{x:n.x,y:n.y,width:t.maxX-t.minX,height:t.maxY-t.minY}}}async function rl(e,t,n,r={}){let i=await tl(e,n);if(!i)return null;let{diagram:a,shapes:o,extent:s,grow:c}=i;if(a.legend){let e=s.maxX-s.minX,t=await Ps(a.legend,{x:s.minX,y:0},e,n),r=t[0];if(r){let e=s.minY-28-D(r).height,n=t.map(t=>w(t,{x:0,y:e}));for(let e of n)c(e);o.push(...n)}}return r.frame===!1||el(a)?nl(o,s,t):il(o,s,a.title||`Diagram`,t)}function il(e,t,n,r){let i={id:h(),type:`figure`,x:t.minX-Zc,y:t.minY-Zc,width:t.maxX-t.minX+Zc*2,height:t.maxY-t.minY+Zc*2,rotation:0,label:n,fontSize:16,fontFamily:m,color:B,opacity:1};return nl([i,...e],{minX:i.x,minY:i.y,maxX:i.x+i.width,maxY:i.y+i.height},r)}var al=null;function ol(){return al||=Oe({elk:ke}),al}var sl=class extends Error{layoutTimeout=!0;constructor(e){super(e),this.name=`LayoutTimeoutError`}};function cl(e){return e instanceof sl||typeof e==`object`&&!!e&&`layoutTimeout`in e}var ll=2e4,$=null,ul=!1,dl=0,fl=new Map;function pl(e){let t=fl.get(e);if(t)return fl.delete(e),clearTimeout(t.timer),t}function ml(e){let t=[...fl.values()];fl.clear();for(let n of t)clearTimeout(n.timer),n.reject(e())}function hl(){$?.terminate(),$=null}function gl(e){let t=pl(e);t&&(hl(),ml(()=>new sl(`Layout was stopped because another diagram on the same worker timed out. Try again.`)),t.reject(new sl(`Layout took too long (over ${ll/1e3}s) and was stopped. Try a smaller or simpler diagram.`)))}function _l(){if(ul||typeof Worker>`u`)return null;if($)return $;try{$=new Worker(new URL(`/assets/layout.worker-BIE1_z0S.js`,``+import.meta.url),{type:`module`})}catch{return ul=!0,null}return $.onmessage=e=>{let t=e.data,n=pl(t.id);n&&(t.ok?n.resolve(t.out):n.reject(Error(t.error)))},$.onerror=()=>{ul=!0,hl(),ml(()=>Error(`layout worker crashed`))},$}function vl(e){let t=_l();if(!t)return null;let n=dl++;return new Promise((r,i)=>{let a=setTimeout(()=>gl(n),ll);fl.set(n,{resolve:r,reject:i,timer:a}),t.postMessage({...e,id:n})})}async function yl(e,t,n={}){let r=vl({op:`diagramToShapes`,diagram:e,origin:t,options:n});if(r===null)return rl(e,t,ol(),n);try{return await r}catch(r){if(cl(r))throw r;return rl(e,t,ol(),n)}}async function bl(e){let t=vl({op:`layoutGraph`,diagram:e});if(t===null)return Ka(e,ol());try{return await t??[]}catch(t){if(cl(t))throw t;return Ka(e,ol())}}export{Sr as a,V as c,Tt as d,Ct as f,rl as i,zn as l,bl as n,ur as o,yt as p,$c as r,K as s,yl as t,wt as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,t as n}from"./jsx-runtime-2Zwg-L3c.js";import{$t as r,A as i,An as a,At as o,B as s,Bt as c,Cn as l,Ct as u,D as d,Dn as f,Dt as p,Et as m,F as h,Fn as g,Ft as _,Gt as v,H as y,I as b,J as x,Jt as S,Kt as C,L as w,Lt as T,M as E,Mn as D,Mt as O,N as k,Nn as A,Nt as ee,On as j,Ot as M,P as te,Pt as N,Qt as P,R as ne,St as F,Tn as re,Tt as I,U as L,Ut as R,Vt as z,W as B,Wt as V,X as H,Xt as ie,Y as ae,Yt as oe,Z as U,_ as W,_n as se,_t as ce,b as le,ct as G,d as K,dt as q,et as J,f as Y,ft as ue,h as de,ht as X,in as fe,it as pe,j as me,jn as Z,jt as he,kn as ge,kt as _e,l as ve,mn as ye,mt as be,n as xe,nn as Se,o as Ce,p as we,pn as Te,pt as Ee,qt as De,r as Oe,rt as ke,s as Ae,tn as je,ut as Me,v as Ne,vn as Pe,vt as Fe,w as Ie,wn as Le,wt as Re,x as ze,y as Be,yt as Ve}from"./useScrollLock-B7mQdXyv.js";import{a as He,i as Ue,n as We,o as Ge,r as Ke,t as qe}from"./usePositioner-DA3aR0-T.js";import{n as Je,t as Ye}from"./useButton-D3eS7fh5.js";import{a as Xe,i as Ze,r as Qe}from"./tooltip-DgEojto1.js";import{t as $e}from"./createReactComponent-9UsI5fmM.js";import{t as et}from"./useValueChanged-p8z-93L4.js";import{t as tt}from"./useBaseUiId-C0Zm5sUV.js";import{n as nt,t as rt}from"./useAnchoredPopupScrollLock-BGKchwpi.js";import{n as it,t as at}from"./surface-Dke4SWpE.js";var Q=e(t(),1);function ot(e,t={}){let{enabled:n=!0,event:r=`click`,toggle:i=!0,ignoreMouse:a=!1,stickIfOpen:o=!0,touchOpenDelay:s=0,reason:c=ke}=t,l=`rootStore`in e?e.rootStore:e,u=l.context.dataRef,d=Q.useRef(void 0),f=Se(),p=je(),m=Q.useMemo(()=>{function e(e,t,n,r){let i=L(c,t,n);e&&r===`touch`&&s>0?p.start(s,()=>{l.setOpen(!0,i)}):l.setOpen(e,i)}function t(e,t,n){let r=u.current.openEvent,a=l.select(`domReferenceElement`)!==t;return e&&a||!e||!i?!0:r&&o?!n(r.type):!1}return{onPointerDown(e){d.current=e.pointerType},onMouseDown(n){let i=d.current,o=n.nativeEvent,s=l.select(`open`);if(n.button!==0||r===`click`||O(i,!0)&&a)return;let c=t(s,n.currentTarget,e=>e===`click`||e===`mousedown`),u=v(o);if(z(u)){e(c,o,u,i);return}let p=n.currentTarget;f.request(()=>{e(c,o,p,i)})},onClick(n){if(r===`mousedown-only`)return;let i=d.current;if(r===`mousedown`&&i){d.current=void 0;return}O(i,!0)&&a||e(t(l.select(`open`),n.currentTarget,e=>e===`click`||e===`mousedown`||e===`keydown`||e===`keyup`),n.nativeEvent,n.currentTarget,i)},onKeyDown(){d.current=void 0}}},[u,r,a,c,l,o,i,f,p,s]);return Q.useMemo(()=>n?{reference:m}:re,[n,m])}var st=`Escape`;function ct(e,t,n){switch(e){case`vertical`:return t;case`horizontal`:return n;default:return t||n}}function lt(e,t){return ct(t,e===`ArrowUp`||e===`ArrowDown`,e===`ArrowLeft`||e===`ArrowRight`)}function ut(e,t,n){return ct(t,e===`ArrowDown`,n?e===`ArrowLeft`:e===`ArrowRight`)||e===`Enter`||e===` `||e===``}function dt(e,t,n){return ct(t,n?e===De:e===S,e===C)}function ft(e,t,n,r){return t===`both`||t===`horizontal`&&r?e===st:ct(t,n?e===S:e===De,e===oe)}function pt(e,t){let{listRef:n,activeIndex:r,onNavigate:i=()=>{},enabled:a=!0,selectedIndex:l=null,allowEscape:u=!1,loopFocus:d=!1,nested:g=!1,rtl:S=!1,virtual:C=!1,focusItemOnOpen:w=`auto`,focusItemOnHover:E=!0,openOnArrowKeyDown:O=!0,disabledIndices:k=void 0,orientation:A=`vertical`,parentOrientation:j,id:te,resetOnPointerLeave:P=!0,externalTree:ne,grid:F}=t,re=F!=null,I=`rootStore`in e?e.rootStore:e,z=I.useState(`open`),B=I.useState(`floatingElement`),H=I.useState(`domReferenceElement`),ie=I.context.dataRef,ae=T(B),oe=c(H),W=y(ae),ce=h(),le=b(ne),G=Q.useRef(w),K=Q.useRef(l??-1),q=Q.useRef(null),J=Q.useRef(!0),Y=f(e=>{i(K.current===-1?null:K.current,e)}),ue=Q.useRef(!!B),de=Q.useRef(z),X=Q.useRef(!1),pe=Q.useRef(!1),me=Q.useRef(null),Z=y(k),he=y(z),ge=y(l),_e=y(P),ve=Se(),ye=Se(),be=f(()=>{function e(e){C?le?.events.emit(`virtualfocus`,e):me.current=s(e,{sync:X.current,preventScroll:!0})}let t=n.current[K.current],r=pe.current;t&&e(t),(X.current?e=>e():e=>ve.request(e))(()=>{let i=n.current[K.current]||t;i&&(t||e(i),De&&(r||!J.current)&&i.scrollIntoView?.({block:`nearest`,inline:`nearest`}))})});D(()=>{ie.current.orientation=A},[ie,A]),D(()=>{a&&(z&&B?(K.current=l??-1,G.current&&l!=null&&(pe.current=!0,Y())):ue.current&&(K.current=-1,Y()))},[a,z,B,l,Y]),D(()=>{if(a){if(!z){X.current=!1;return}if(B)if(r==null){if(X.current=!1,ge.current!=null)return;if(ue.current&&(K.current=-1,be()),(!de.current||!ue.current)&&G.current&&(q.current!=null||G.current===!0&&q.current==null)){let e=0,t=()=>{n.current[0]==null?(e<2&&(e?e=>ye.request(e):queueMicrotask)(t),e+=1):(K.current=q.current==null||ut(q.current,A,S)||g?M(n):p(n),q.current=null,Y())};t()}}else o(n.current,r)||(K.current=r,be(),pe.current=!1)}},[a,z,B,r,ge,g,n,A,S,Y,be,ye]),D(()=>{if(!a||B||!le||C||!ue.current)return;let e=le.nodesRef.current,t=e.find(e=>e.id===ce)?.context?.elements.floating,n=R(fe(H??t??null)),r=e.some(e=>e.context&&V(e.context.elements.floating,n));t&&!r&&J.current&&t.focus({preventScroll:!0})},[a,B,H,le,ce,C]),D(()=>{de.current=z,ue.current=!!B}),D(()=>{z||(q.current=null,G.current=w)},[z,w]);let xe=r!=null,Ce=f(e=>{if(!he.current)return;let t=n.current.indexOf(e.currentTarget);t!==-1&&(K.current!==t||r!==t)&&(K.current=t,Y(e))}),we=f(()=>j??le?.nodesRef.current.find(e=>e.id===ce)?.context?.dataRef?.current.orientation),Te=f(()=>M(n,Z.current)),Ee=f(e=>{if(J.current=!1,X.current=!0,e.which===229||!he.current&&e.currentTarget===W.current)return;if(g&&ft(e.key,A,S,re)){lt(e.key,we())||_(e),I.setOpen(!1,L(U,e.nativeEvent)),se(H)&&(C?le?.events.emit(`virtualfocus`,H):H.focus());return}let t=K.current,r=M(n,k),i=p(n,k);if(oe||(e.key===`Home`&&(_(e),K.current=r,Y(e)),e.key===`End`&&(_(e),K.current=i,Y(e))),F!=null){let t=F(e,K.current,n,A,d,S,k,r,i);if(t!=null&&(K.current=t,Y(e)),A===`both`)return}if(lt(e.key,A)){if(_(e),z&&!C&&R(e.currentTarget.ownerDocument)===e.currentTarget){K.current=ut(e.key,A,S)?r:i,Y(e);return}ut(e.key,A,S)?d?t>=i?u&&t!==n.current.length?K.current=-1:(X.current=!1,K.current=r):K.current=m(n.current,{startingIndex:t,disabledIndices:k}):K.current=Math.min(i,m(n.current,{startingIndex:t,disabledIndices:k})):d?t<=r?u&&t!==-1?K.current=n.current.length:(X.current=!1,K.current=i):K.current=m(n.current,{startingIndex:t,decrement:!0,disabledIndices:k}):K.current=Math.max(r,m(n.current,{startingIndex:t,decrement:!0,disabledIndices:k})),o(n.current,K.current)&&(K.current=-1),Y(e)}}),De=Q.useMemo(()=>({onFocus(e){X.current=!0,Ce(e)},onClick:({currentTarget:e})=>e.focus({preventScroll:!0}),onMouseMove(e){X.current=!0,pe.current=!1,E&&Ce(e)},onPointerLeave(e){if(!he.current||!J.current||e.pointerType===`touch`)return;X.current=!0;let t=e.relatedTarget;if(!(!E||n.current.includes(t))&&_e.current&&(me.current?.(),me.current=null,K.current=-1,Y(e),!C)){let e=W.current,t=R(fe(e));e&&V(e,t)&&e.focus({preventScroll:!0})}}}),[Ce,he,W,E,n,Y,_e,C]),Oe=Q.useMemo(()=>C&&z&&xe&&{"aria-activedescendant":`${te}-${r}`},[C,z,xe,te,r]),ke=Q.useMemo(()=>({"aria-orientation":A===`both`?void 0:A,...oe?{}:Oe,onKeyDown(e){if(e.key===`Tab`&&e.shiftKey&&z&&!C){let t=v(e.nativeEvent);if(t&&!V(W.current,t))return;_(e),I.setOpen(!1,L(x,e.nativeEvent)),se(H)&&H.focus();return}Ee(e)},onPointerMove(){J.current=!0}}),[Oe,Ee,W,A,oe,I,z,C,H]),Ae=Q.useMemo(()=>{function e(e){I.setOpen(!0,L(U,e.nativeEvent,e.currentTarget))}function t(e){w===`auto`&&ee(e.nativeEvent)&&(G.current=!C)}function n(e){G.current=w,w===`auto`&&N(e.nativeEvent)&&(G.current=!0)}return{onKeyDown(t){let n=I.select(`open`);J.current=!1;let r=t.key.startsWith(`Arrow`),i=dt(t.key,we(),S),a=lt(t.key,A),o=(g?i:a)||t.key===`Enter`||t.key.trim()===``;if(C&&n)return Ee(t);if(!(!n&&!O&&r)){if(o){let e=lt(t.key,we());q.current=g&&e?null:t.key}if(g){i&&(_(t),n?(K.current=Te(),Y(t)):e(t));return}a&&(ge.current!=null&&(K.current=ge.current),_(t),!n&&O?e(t):Ee(t),n&&Y(t))}},onFocus(e){I.select(`open`)&&!C&&(K.current=-1,Y(e))},onPointerDown:n,onPointerEnter:n,onMouseDown:t,onClick:t}},[Ee,w,Te,g,Y,I,O,A,we,S,ge,C]),je=Q.useMemo(()=>({...Oe,...Ae}),[Oe,Ae]);return Q.useMemo(()=>a?{reference:je,floating:ke,item:De,trigger:Ae}:{},[a,je,ke,Ae,De])}function mt(e,t){let{listRef:n,elementsRef:r,activeIndex:i,onMatch:a,disabledIndices:o,onTyping:s,enabled:c=!0,resetMs:l=750,selectedIndex:u=null}=t,d=`rootStore`in e?e.rootStore:e,p=d.useState(`open`),m=je(),h=Q.useRef(``),g=Q.useRef(u??i??-1),v=Q.useRef(null),y=f(e=>{function t(e){let t=r?.current[e];return!t||_e(t)}function c(e){return t(e)?o==null||!he(Le,e,o):!1}function d(e,t,n=0){if(e.length===0)return-1;let r=(n%e.length+e.length)%e.length,i=t.toLowerCase();for(let t=0;t<e.length;t+=1){let n=(r+t)%e.length;if(!(!e[n]?.toLowerCase().startsWith(i)||!c(n)))return n}return-1}let f=n.current;if(h.current.length>0&&e.key===` `&&(_(e),s?.(!0)),h.current.length>0&&h.current[0]!==` `&&d(f,h.current)===-1&&e.key!==` `&&s?.(!1),f==null||e.key.length!==1||e.ctrlKey||e.metaKey||e.altKey)return;p&&e.key!==` `&&(_(e),s?.(!0));let y=h.current===``;y&&(g.current=u??i??-1),f.every((e,t)=>e&&c(t)?e[0]?.toLowerCase()!==e[1]?.toLowerCase():!0)&&h.current===e.key&&(h.current=``,g.current=v.current),h.current+=e.key,m.start(l,()=>{h.current=``,g.current=v.current,s?.(!1)});let b=((y?u??i??-1:g.current)??0)+1,x=d(f,h.current,b);x===-1?e.key!==` `&&(h.current=``,s?.(!1)):(a?.(x),v.current=x)}),b=f(e=>{let t=e.relatedTarget,n=d.select(`domReferenceElement`),r=d.select(`floatingElement`);V(n,t)||V(r,t)||(m.clear(),h.current=``,g.current=v.current,s?.(!1))});D(()=>{!p&&u!==null||(m.clear(),v.current=null,h.current!==``&&(h.current=``))},[p,u,m]),D(()=>{p&&h.current===``&&(g.current=u??i??-1)},[p,u,i]);let x=Q.useMemo(()=>({onKeyDown:y,onBlur:b}),[y,b]);return Q.useMemo(()=>c?{reference:x,floating:x}:{},[c,x])}var ht=$e(`outline`,`chevron-down`,`ChevronDown`,[[`path`,{d:`M6 9l6 6l6 -6`,key:`svg-0`}]]),gt=$e(`outline`,`dots`,`Dots`,[[`path`,{d:`M4 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-0`}],[`path`,{d:`M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-1`}],[`path`,{d:`M18 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-2`}]]),_t=$e(`outline`,`player-play`,`PlayerPlay`,[[`path`,{d:`M7 4v16l13 -8l-13 -8`,key:`svg-0`}]]),vt=Q.createContext(void 0);function yt(e=!0){let t=Q.useContext(vt);if(t===void 0&&!e)throw Error(Z(25));return t}var bt=Q.createContext(void 0);function xt(e){let t=Q.useContext(bt);if(t===void 0&&!e)throw Error(Z(33));return t}var St=Q.createContext(void 0);function Ct(e){let t=Q.useContext(St);if(t===void 0&&!e)throw Error(Z(36));return t}function wt(e){let{closeOnClick:t,highlighted:n,id:i,nodeId:a,store:o,typingRef:s,itemRef:c,itemMetadata:l}=e,{events:u}=o.useState(`floatingTreeRoot`),d=o.useState(`open`),f=yt(!0),p=f!==void 0;return Q.useMemo(()=>({id:i,role:`menuitem`,tabIndex:d&&n?0:-1,onKeyDown(e){e.key===` `&&s?.current&&e.preventDefault()},onMouseMove(e){a&&u.emit(`itemhover`,{nodeId:a,target:e.currentTarget})},onClick(e){t&&u.emit(`close`,{domEvent:e,reason:H})},onMouseUp(e){if(f){let t=f.initialCursorPointRef.current;if(f.initialCursorPointRef.current=null,p&&t&&Math.abs(e.clientX-t.x)<=1&&Math.abs(e.clientY-t.y)<=1||p&&!r&&e.button===2)return}c.current&&o.context.allowMouseUpTriggerRef.current&&(!p||e.button===2)&&(!l||l.type===`regular-item`)&&c.current.click()}}),[t,n,i,u,a,d,o,s,c,f,p,l])}var Tt={type:`regular-item`};function Et(e){let{closeOnClick:t,disabled:n=!1,highlighted:r,id:i,store:a,typingRef:o=a.context.typingRef,nativeButton:s,itemMetadata:c,nodeId:l}=e,u=a.useState(`disabled`),d=n||u,f=Q.useRef(null),{getButtonProps:p,buttonRef:m}=Ye({disabled:d,focusableWhenDisabled:!0,native:s,composite:!0}),h=wt({closeOnClick:t,highlighted:r,id:i,nodeId:l,store:a,typingRef:o,itemRef:f,itemMetadata:c}),g=Q.useCallback(e=>ce(h,{onMouseEnter(){c.type===`submenu-trigger`&&c.setActive()}},e,p),[h,p,c]),_=Fe(f,m);return Q.useMemo(()=>({getItemProps:g,itemRef:_}),[g,_])}var Dt=Q.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},elementsRef:{current:[]},nextIndexRef:{current:0}});function Ot(){return Q.useContext(Dt)}var kt=function(e){return e[e.None=0]=`None`,e[e.GuessFromOrder=1]=`GuessFromOrder`,e}({});function At(e={}){let{label:t,metadata:n,textRef:r,indexGuessBehavior:i,index:a}=e,{register:o,unregister:s,subscribeMapChange:c,elementsRef:l,labelsRef:u,nextIndexRef:d}=Ot(),f=Q.useRef(-1),[p,m]=Q.useState(a??(i===kt.GuessFromOrder?()=>{if(f.current===-1){let e=d.current;d.current+=1,f.current=e}return f.current}:-1)),h=Q.useRef(null),g=Q.useCallback(e=>{if(h.current=e,p!==-1&&e!==null&&(l.current[p]=e,u)){let n=t!==void 0;u.current[p]=n?t:r?.current?.textContent??e.textContent}},[p,l,u,t,r]);return D(()=>{if(a!=null)return;let e=h.current;if(e)return o(e,n),()=>{s(e)}},[a,o,s,n]),D(()=>{if(a==null)return c(e=>{let t=h.current?e.get(h.current)?.index:null;t!=null&&m(t)})},[a,c,m]),{ref:g,index:p}}var jt=Q.forwardRef(function(e,t){let{render:n,className:r,id:i,label:a,nativeButton:o=!1,disabled:s=!1,closeOnClick:c=!0,style:l,...u}=e,d=At({label:a}),f=xt(!0),p=tt(i),{store:m}=Ct(),h=m.useState(`isActive`,d.index),g=m.useState(`itemProps`),{getItemProps:_,itemRef:v}=Et({closeOnClick:c,disabled:s,highlighted:h,id:p,store:m,nativeButton:o,nodeId:f?.context.nodeId,itemMetadata:Tt});return X(`div`,e,{state:{disabled:s,highlighted:h},props:[g,u,_],ref:[v,t,d.ref]})}),$=n(),Mt={...Ce,...Ee},Nt=Q.forwardRef(function(e,t){let{render:n,className:r,style:i,finalFocus:a,...o}=e,{store:s}=Ct(),{side:c,align:l}=xt(),u=nt(!0)!=null,d=s.useState(`open`),f=s.useState(`transitionStatus`),p=s.useState(`popupProps`),m=s.useState(`mounted`),h=s.useState(`instantType`),g=s.useState(`activeTriggerElement`),_=s.useState(`parent`),v=s.useState(`lastOpenChangeReason`),y=s.useState(`rootId`),b=s.useState(`floatingRootContext`),x=s.useState(`floatingTreeRoot`),S=s.useState(`closeDelay`),C=s.useState(`activeTriggerElement`),w=s.useState(`hoverEnabled`),T=s.useState(`disabled`),E=s.useState(`openMethod`),D=_.type===`context-menu`;q({open:d,ref:s.context.popupRef,onComplete(){d&&s.context.onOpenChangeComplete?.(!0)}}),Q.useEffect(()=>{function e(e){s.setOpen(!1,L(e.reason,e.domEvent))}return x.events.on(`close`,e),()=>{x.events.off(`close`,e)}},[x.events,s]),Ge(b,{enabled:w&&!T&&!D&&_.type!==`menubar`,closeDelay:S});let O=Q.useCallback(e=>{s.set(`popupElement`,e)},[s]),k=X(`div`,e,{state:{transitionStatus:f,side:c,align:l,open:d,nested:_.type===`menu`,instant:h},ref:[t,s.context.popupRef,O],stateAttributesMapping:Mt,props:[p,{onKeyDown(e){u&&Oe.has(e.key)&&e.stopPropagation()}},We(f),o,{"data-rootownerid":y}]}),A=_.type===void 0||D;return(g||_.type===`menubar`&&v!==`outside-press`)&&(A=!0),(0,$.jsx)(me,{context:b,openInteractionType:E,modal:D,disabled:!m,returnFocus:a===void 0?A:a,initialFocus:_.type!==`menu`,restoreFocus:!0,externalTree:_.type===`menubar`?void 0:x,previousFocusableElement:C,nextFocusableElement:_.type===void 0?s.context.triggerFocusTargetRef:void 0,beforeContentFocusGuardRef:_.type===void 0?s.context.beforeContentFocusGuardRef:void 0,children:k})}),Pt=Q.createContext(void 0);function Ft(){let e=Q.useContext(Pt);if(e===void 0)throw Error(Z(32));return e}var It=Q.forwardRef(function(e,t){let{keepMounted:n=!1,...r}=e,{store:i}=Ct();return i.useState(`mounted`)||n?(0,$.jsx)(Pt.Provider,{value:n,children:(0,$.jsx)(ne,{ref:t,...r})}):null});function Lt(e){let{children:t,elementsRef:n,labelsRef:r,onMapChange:i}=e,a=f(i),o=Q.useRef(0),s=A(zt).current,c=A(Rt).current,[l,u]=Q.useState(0),d=Q.useRef(l),p=f((e,t)=>{c.set(e,t??null),d.current+=1,u(d.current)}),m=f(e=>{c.delete(e),d.current+=1,u(d.current)}),h=Q.useMemo(()=>{let e=new Map;return Array.from(c.keys()).filter(e=>e.isConnected).sort(Bt).forEach((t,n)=>{let r=c.get(t)??{};e.set(t,{...r,index:n})}),e},[c,l]);D(()=>{if(typeof MutationObserver!=`function`||h.size===0)return;let e=new MutationObserver(e=>{let t=new Set,n=e=>t.has(e)?t.delete(e):t.add(e);e.forEach(e=>{e.removedNodes.forEach(n),e.addedNodes.forEach(n)}),t.size===0&&(d.current+=1,u(d.current))});return h.forEach((t,n)=>{n.parentElement&&e.observe(n.parentElement,{childList:!0})}),()=>{e.disconnect()}},[h]),D(()=>{d.current===l&&(n.current.length!==h.size&&(n.current.length=h.size),r&&r.current.length!==h.size&&(r.current.length=h.size),o.current=h.size),a(h)},[a,h,n,r,l]),D(()=>()=>{n.current=[]},[n]),D(()=>()=>{r&&(r.current=[])},[r]);let g=f(e=>(s.add(e),()=>{s.delete(e)}));D(()=>{s.forEach(e=>e(h))},[s,h]);let _=Q.useMemo(()=>({register:p,unregister:m,subscribeMapChange:g,elementsRef:n,labelsRef:r,nextIndexRef:o}),[p,m,g,n,r,o]);return(0,$.jsx)(Dt.Provider,{value:_,children:t})}function Rt(){return new Map}function zt(){return new Set}function Bt(e,t){let n=e.compareDocumentPosition(t);return n&Node.DOCUMENT_POSITION_FOLLOWING||n&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:n&Node.DOCUMENT_POSITION_PRECEDING||n&Node.DOCUMENT_POSITION_CONTAINS?1:0}var Vt=Q.forwardRef(function(e,t){let{anchor:n,positionMethod:r=`absolute`,className:i,render:a,side:o,align:s,sideOffset:c=0,alignOffset:l=0,collisionBoundary:u=`clipping-ancestors`,collisionPadding:d=5,arrowPadding:f=5,sticky:p=!1,disableAnchorTracking:m=!1,collisionAvoidance:h=G,style:g,..._}=e,{store:v}=Ct(),y=Ft(),b=yt(!0),x=v.useState(`parent`),S=v.useState(`floatingRootContext`),C=v.useState(`floatingTreeRoot`),w=v.useState(`mounted`),T=v.useState(`open`),O=v.useState(`modal`),k=v.useState(`openMethod`),A=v.useState(`activeTriggerElement`),ee=v.useState(`transitionStatus`),j=v.useState(`positionerElement`),M=v.useState(`instantType`),te=v.useState(`hasViewport`),N=v.useState(`lastOpenChangeReason`),P=v.useState(`floatingNodeId`),ne=v.useState(`floatingParentNodeId`),F=S.useState(`domReferenceElement`),re=Q.useRef(null),I=ue(j,!1,!1),R=n,z=c,B=l,V=s,H=h;x.type===`context-menu`&&(R=n??x.context?.anchor,V??=`start`,!o&&V!==`center`&&(B=e.alignOffset??2,z=e.sideOffset??-5));let ie=o,ae=V;x.type===`menu`?(ie??=`inline-end`,ae??=`start`,H=e.collisionAvoidance??Me):x.type===`menubar`&&(ie??=x.context.orientation===`vertical`?`inline-end`:`bottom`,ae??=`start`);let oe=x.type===`context-menu`,U=Ke({anchor:R,floatingRootContext:S,positionMethod:b?`fixed`:r,mounted:w,side:ie,sideOffset:z,align:ae,alignOffset:B,arrowPadding:oe?0:f,collisionBoundary:u,collisionPadding:d,sticky:p,nodeId:P,keepMounted:y,disableAnchorTracking:m,collisionAvoidance:H,shiftCrossAxis:oe&&!(`side`in H&&H.side===`flip`),externalTree:C,adaptiveOrigin:te?Ue:void 0});Q.useEffect(()=>{function e(e){e.open&&(e.parentNodeId===P&&v.set(`hoverEnabled`,!1),e.nodeId!==P&&e.parentNodeId===v.select(`floatingParentNodeId`)&&v.setOpen(!1,L(J)))}return C.events.on(`menuopenchange`,e),()=>{C.events.off(`menuopenchange`,e)}},[v,C.events,P]),Q.useEffect(()=>{if(v.select(`floatingParentNodeId`)==null)return;function e(e){if(e.open||e.nodeId!==v.select(`floatingParentNodeId`))return;let t=e.reason??`sibling-open`;v.setOpen(!1,L(t))}return C.events.on(`menuopenchange`,e),()=>{C.events.off(`menuopenchange`,e)}},[C.events,v]);let W=je();Q.useEffect(()=>{T||W.clear()},[T,W]),Q.useEffect(()=>{function e(e){if(!(!T||e.nodeId!==v.select(`floatingParentNodeId`)))if(e.target&&A&&A!==e.target){let e=v.select(`closeDelay`);e>0?W.isStarted()||W.start(e,()=>{v.setOpen(!1,L(J))}):v.setOpen(!1,L(J))}else W.clear()}return C.events.on(`itemhover`,e),()=>{C.events.off(`itemhover`,e)}},[C.events,T,A,v,W]),Q.useEffect(()=>{let e={open:T,nodeId:P,parentNodeId:ne,reason:v.select(`lastOpenChangeReason`)};C.events.emit(`menuopenchange`,e)},[C.events,T,v,P,ne]),D(()=>{let e=F,t=re.current;if(e&&(re.current=e),t&&e&&e!==t){v.set(`instantType`,void 0);let e=new AbortController;return I(()=>{v.set(`instantType`,`trigger-change`)},e.signal),()=>{e.abort()}}},[F,I,v]);let se={open:T,side:U.side,align:U.align,anchorHidden:U.anchorHidden,nested:x.type===`menu`,instant:M},ce=x.type===`menubar`&&x.context.modal;rt(T&&(ce||O&&N!==`trigger-hover`),k===`touch`,j,A);let le=qe(e,se,{styles:U.positionerStyles,transitionStatus:ee,props:_,refs:[t,v.useStateSetter(`positionerElement`)],hidden:!w,inert:!T}),K=w&&x.type!==`menu`&&(x.type!==`menubar`&&O&&N!==`trigger-hover`||x.type===`menubar`&&x.context.modal),q=null;return x.type===`menubar`?q=x.context.contentElement:x.type===void 0&&(q=A),(0,$.jsxs)(bt.Provider,{value:U,children:[K&&(0,$.jsx)(xe,{ref:x.type===`context-menu`||x.type===`nested-context-menu`?x.context.internalBackdropRef:null,inert:be(!T),cutout:q}),(0,$.jsx)(E,{id:P,children:(0,$.jsx)(Lt,{elementsRef:v.context.itemDomElements,labelsRef:v.context.itemLabels,children:le})})]})}),Ht=Q.createContext(null);function Ut(e){let t=Q.useContext(Ht);if(t===null&&!e)throw Error(Z(5));return t}function Wt(e){let t=Q.useRef(``),n=Q.useCallback(n=>{n.defaultPrevented||(t.current=n.pointerType,e(n,n.pointerType))},[e]);return{onClick:Q.useCallback(n=>{if(n.detail===0){e(n,`keyboard`);return}`pointerType`in n?e(n,n.pointerType):e(n,t.current),t.current=``},[e]),onPointerDown:n}}function Gt(e,t){let{onClick:n,onPointerDown:r}=Wt(f((n,r)=>{(typeof e==`function`?e():e)||t(r||(P?`touch`:``))}));return Q.useMemo(()=>({onClick:n,onPointerDown:r}),[n,r])}function Kt(e){let[t,n]=Q.useState(null),r=Gt(e,n);return et(e,t=>{t&&!e&&n(null)}),Q.useMemo(()=>({openMethod:t,triggerProps:r}),[t,r])}var qt={...K,disabled:a(e=>e.parent.type===`menubar`&&e.parent.context.disabled||e.disabled),modal:a(e=>(e.parent.type===void 0||e.parent.type===`context-menu`)&&(e.modal??!0)),openMethod:a(e=>e.openMethod),allowMouseEnter:a(e=>e.allowMouseEnter),highlightItemOnHover:a(e=>e.highlightItemOnHover),stickIfOpen:a(e=>e.stickIfOpen),parent:a(e=>e.parent),rootId:a(e=>e.parent.type===`menu`?e.parent.store.select(`rootId`):e.parent.type===void 0?e.rootId:e.parent.context.rootId),activeIndex:a(e=>e.activeIndex),isActive:a((e,t)=>e.activeIndex===t),hoverEnabled:a(e=>e.hoverEnabled),instantType:a(e=>e.instantType),lastOpenChangeReason:a(e=>e.openChangeReason),floatingTreeRoot:a(e=>e.parent.type===`menu`?e.parent.store.select(`floatingTreeRoot`):e.floatingTreeRoot),floatingNodeId:a(e=>e.floatingNodeId),floatingParentNodeId:a(e=>e.floatingParentNodeId),itemProps:a(e=>e.itemProps),closeDelay:a(e=>e.closeDelay),hasViewport:a(e=>e.hasViewport),keyboardEventRelay:a(e=>{if(e.keyboardEventRelay)return e.keyboardEventRelay;if(e.parent.type===`menu`)return e.parent.store.select(`keyboardEventRelay`)})},Jt=class e extends l{constructor(e){super({...Yt(),...e},{positionerRef:Q.createRef(),popupRef:Q.createRef(),typingRef:{current:!1},itemDomElements:{current:[]},itemLabels:{current:[]},allowMouseUpTriggerRef:{current:!1},triggerFocusTargetRef:Q.createRef(),beforeContentFocusGuardRef:Q.createRef(),onOpenChangeComplete:void 0,triggerElements:new Y},qt),this.unsubscribeParentListener=this.observe(`parent`,e=>{if(this.unsubscribeParentListener?.(),e.type===`menu`){let t=e.store.select(`rootId`),n=e.store.select(`floatingTreeRoot`),r=e.store.select(`keyboardEventRelay`);this.unsubscribeParentListener=e.store.subscribe(()=>{let i=e.store.select(`rootId`),a=e.store.select(`floatingTreeRoot`),o=e.store.select(`keyboardEventRelay`);t===i&&n===a&&r===o||(t=i,n=a,r=o,this.notifyAll())}),this.context.allowMouseUpTriggerRef=e.store.context.allowMouseUpTriggerRef;return}e.type!==void 0&&(this.context.allowMouseUpTriggerRef=e.context.allowMouseUpTriggerRef),this.unsubscribeParentListener=null})}setOpen(e,t){this.state.floatingRootContext.context.events.emit(`setOpen`,{open:e,eventDetails:t})}static useStore(t,n){let r=A(()=>new e(n)).current;return t??r}unsubscribeParentListener=null};function Yt(){return{...ve(),disabled:!1,modal:!0,openMethod:null,allowMouseEnter:!1,highlightItemOnHover:!0,stickIfOpen:!0,parent:{type:void 0},rootId:void 0,activeIndex:null,hoverEnabled:!0,instantType:void 0,openChangeReason:null,floatingTreeRoot:new w,floatingNodeId:void 0,floatingParentNodeId:null,itemProps:re,keyboardEventRelay:void 0,closeDelay:0,hasViewport:!1}}var Xt=Q.createContext(void 0);function Zt(){return Q.useContext(Xt)}var Qt=j(function(e){let{children:t,open:n,onOpenChange:r,onOpenChangeComplete:a,defaultOpen:o=!1,disabled:s=!1,modal:c,loopFocus:l=!0,orientation:u=`vertical`,actionsRef:p,closeParentOnEsc:m=!1,handle:g,triggerId:_,defaultTriggerId:v=null,highlightItemOnHover:y=!0}=e,b=yt(!0),x=Ct(!0),S=Ut(!0),C=Zt(),w=Q.useMemo(()=>C&&x?{type:`menu`,store:x.store}:S?{type:`menubar`,context:S}:b&&!x?{type:`context-menu`,context:b}:{type:void 0},[b,x,S,C]),T=Jt.useStore(g?.store,{open:o,openProp:n,activeTriggerId:v,triggerIdProp:_,parent:w});Be(T,n,o,v),T.useControlledProp(`openProp`,n),T.useControlledProp(`triggerIdProp`,_),T.useContextCallback(`onOpenChangeComplete`,a);let E=pe(),O=pe(),A=T.useState(`floatingTreeRoot`),ee=te(A),j=h(),M=T.useState(`open`),N=T.useState(`activeTriggerElement`),P=T.useState(`positionerElement`),ne=T.useState(`hoverEnabled`),F=T.useState(`disabled`),I=T.useState(`lastOpenChangeReason`),R=T.useState(`parent`),z=T.useState(`activeIndex`),B=T.useState(`payload`),V=T.useState(`floatingParentNodeId`),H=Q.useRef(null),ie=Q.useRef(R.type!==`context-menu`),oe=je(),U=Q.useRef(!0),se=je(),G=V!=null,{openMethod:K,triggerProps:q}=Kt(M);T.useSyncedValues({disabled:s,highlightItemOnHover:y,modal:R.type===void 0?c:void 0,openMethod:K,rootId:E}),Ne(T);let{forceUnmount:J}=le(M,T,()=>{T.update({allowMouseEnter:!1,stickIfOpen:!0})});D(()=>{b&&!x?T.update({parent:{type:`context-menu`,context:b},floatingNodeId:ee,floatingParentNodeId:j}):x&&T.update({floatingNodeId:ee,floatingParentNodeId:j})},[b,x,ee,j,T]),Q.useEffect(()=>{if(M||(H.current=null),R.type===`context-menu`){if(!M){oe.clear(),ie.current=!1;return}oe.start(500,()=>{ie.current=!0})}},[oe,M,R.type]),D(()=>{!M&&!ne&&T.set(`hoverEnabled`,!0)},[M,ne,T]);let Y=f((e,t)=>{let n=t.reason;if(M===e&&t.trigger===N&&I===n)return;let i=de(t);if(!e&&t.trigger==null&&(t.trigger=N??void 0),r?.(e,t),t.isCanceled)return;T.state.floatingRootContext.dispatchOpenChange(e,t);let a=t.event;if(e===!1&&a?.type===`click`&&a.pointerType===`touch`&&!U.current)return;e&&n===`trigger-focus`?(U.current=!1,se.start(300,()=>{U.current=!0})):(U.current=!0,se.clear());let o=(n===`trigger-press`||n===`item-press`)&&a.detail===0&&a?.isTrusted,s=!e&&(n===`escape-key`||n==null),c={open:e,openChangeReason:n};H.current=t.event??null,W(c,e,t.trigger,i()),T.update(c),R.type===`menubar`&&(n===`trigger-focus`||n===`focus-out`||n===`trigger-hover`||n===`list-navigation`||n===`sibling-open`)?T.set(`instantType`,`group`):o||s?T.set(`instantType`,o?`click`:`dismiss`):T.set(`instantType`,void 0)}),ue=d({popupStore:T,floatingId:O,nested:j!=null,onOpenChange:Y}),X=ue.context.events;Q.useEffect(()=>{let e=({open:e,eventDetails:t})=>Y(e,t);return X.on(`setOpen`,e),()=>{X?.off(`setOpen`,e)}},[X,Y]);let fe=Q.useCallback(()=>{T.setOpen(!1,L(ae))},[T]);Q.useImperativeHandle(p,()=>({unmount:J,close:fe}),[J,fe]);let me;R.type===`context-menu`&&(me=R.context),Q.useImperativeHandle(me?.positionerRef,()=>P,[P]),Q.useImperativeHandle(me?.actionsRef,()=>({setOpen:Y}),[Y]);let Z=i(ue,{enabled:!F,bubbles:{escapeKey:m&&R.type===`menu`},outsidePress(){return R.type!==`context-menu`||H.current?.type===`contextmenu`||ie.current},externalTree:G?A:void 0}),he=He(),ge=Q.useCallback(e=>{T.select(`activeIndex`)!==e&&T.set(`activeIndex`,e)},[T]),_e=pt(ue,{enabled:!F,listRef:T.context.itemDomElements,activeIndex:z,nested:R.type!==void 0,loopFocus:l,orientation:u,parentOrientation:R.type===`menubar`?R.context.orientation:void 0,rtl:he===`rtl`,disabledIndices:Le,onNavigate:ge,openOnArrowKeyDown:R.type!==`context-menu`,externalTree:G?A:void 0,focusItemOnHover:y}),ve=Q.useCallback(e=>{T.context.typingRef.current=e},[T]),ye=mt(ue,{enabled:!F,listRef:T.context.itemLabels,elementsRef:T.context.itemDomElements,activeIndex:z,resetMs:500,onMatch:e=>{M&&e!==z&&T.set(`activeIndex`,e)},onTyping:ve});ze(T,{floatingRootContext:ue,activeTriggerProps:Q.useMemo(()=>{let e=ce(ye.reference,_e.reference,Z.reference,{onMouseMove(){T.set(`allowMouseEnter`,!0)}},q);return e[`aria-haspopup`]=`menu`,e[`aria-expanded`]=M,e},[T,ye.reference,_e.reference,Z.reference,q,M]),inactiveTriggerProps:Q.useMemo(()=>{let e=ce(_e.trigger,Z.trigger,q);return e[`aria-haspopup`]=`menu`,e[`aria-expanded`]=!1,e},[_e.trigger,Z.trigger,q]),popupProps:Q.useMemo(()=>ce(we,{id:O,role:`menu`,"aria-labelledby":N?.id,onMouseMove(){T.set(`allowMouseEnter`,!0),R.type===`menu`&&T.set(`hoverEnabled`,!1)},onClick(){T.select(`hoverEnabled`)&&T.set(`hoverEnabled`,!1)},onKeyDown(e){let t=T.select(`keyboardEventRelay`);t&&!e.isPropagationStopped()&&t(e)}},ye.floating,_e.floating,Z.floating),[N,O,R.type,T,ye.floating,_e.floating,Z.floating]),itemProps:_e.item??re});let be=Q.useMemo(()=>({store:T,parent:w}),[T,w]),xe=(0,$.jsx)(St.Provider,{value:be,children:typeof t==`function`?t({payload:B}):t});return R.type===void 0||R.type===`context-menu`?(0,$.jsx)(k,{externalTree:A,children:xe}):xe});function $t(e){let t=e.getBoundingClientRect(),n=ye(e);if(ie)return t;let r=n.getComputedStyle(e,`::before`),i=n.getComputedStyle(e,`::after`);if(!(r.content!==`none`||i.content!==`none`))return t;let a=parseFloat(r.width)||0,o=parseFloat(r.height)||0,s=parseFloat(i.width)||0,c=parseFloat(i.height)||0,l=Math.max(t.width,a,s),u=Math.max(t.height,o,c),d=l-t.width,f=u-t.height;return{left:t.left-d/2,right:t.right+d/2,top:t.top-f/2,bottom:t.bottom+f/2}}function en(e={}){let{highlightItemOnHover:t,highlightedIndex:n,onHighlightedIndexChange:r}=Je(),{ref:i,index:a}=At(e),o=n===a,s=Q.useRef(null),c=Fe(i,s);return{compositeProps:{tabIndex:o?0:-1,onFocus(){r(a)},onMouseMove(){let e=s.current;if(!t||!e)return;let n=e.hasAttribute(`disabled`)||e.ariaDisabled===`true`;!o&&!n&&e.focus()}},compositeRef:c,index:a}}function tn(e){let{render:t,className:n,style:r,state:i=re,props:a=Le,refs:o=Le,metadata:s,stateAttributesMapping:c,tag:l=`div`,...u}=e,{compositeProps:d,compositeRef:f}=en({metadata:s});return X(l,e,{state:i,ref:[...o,f],props:[d,...a,u],stateAttributesMapping:c})}function nn(e){if(se(e)&&e.hasAttribute(`data-rootownerid`))return e.getAttribute(`data-rootownerid`)??void 0;if(!Pe(e))return nn(Te(e))}var rn=e(g(),1);function an(e,t){let n=Q.useRef(null);function r(t){rn.flushSync(()=>{e.setOpen(!1,L(x,t.nativeEvent,t.currentTarget))}),Re(n.current)?.focus()}function i(n){let r=e.select(`positionerElement`);if(r&&I(n,r))e.context.beforeContentFocusGuardRef.current?.focus();else{rn.flushSync(()=>{e.setOpen(!1,L(x,n.nativeEvent,n.currentTarget))});let i=u(e.context.triggerFocusTargetRef.current||t.current);for(;i!==null&&V(r,i);){let e=i;if(i=F(i),i===e)break}i?.focus()}}return{preFocusGuardRef:n,handlePreFocusGuardFocus:r,handleFocusTargetFocus:i}}function on(e){let{enabled:t=!0,mouseDownAction:n,open:r}=e,i=Q.useRef(!1);return Q.useMemo(()=>t?{onMouseDown:e=>{(n===`open`&&!r||n===`close`&&r)&&(i.current=!0,fe(e.currentTarget).addEventListener(`click`,()=>{i.current=!1},{once:!0}))},onClick:e=>{i.current&&(i.current=!1,e.preventBaseUIHandler())}}:re,[t,n,r])}var sn=2,cn=ge(function(e,t){let{render:n,className:r,style:i,disabled:a=!1,nativeButton:o=!0,id:s,openOnHover:c,delay:l=100,closeDelay:u=0,handle:d,payload:p,...m}=e,g=Ct(!0),_=d?.store??g?.store;if(!_)throw Error(Z(85));let v=tt(s),y=_.useState(`isTriggerActive`,v),x=_.useState(`floatingRootContext`),S=_.useState(`isOpenedByTrigger`,v),C=_.useState(`triggerPopupId`,v),T=Q.useRef(null),E=un(),D=Je(!0),O=b(),k=Q.useMemo(()=>O??new w,[O]),{registerTrigger:A,isMountedByThisTrigger:ee}=Ie(v,T,_,{payload:p,closeDelay:u,parent:E,floatingTreeRoot:k,floatingNodeId:te(k),floatingParentNodeId:h(),keyboardEventRelay:D?.relayKeyboardEvent}),j=E.type===`menubar`,M=_.useState(`disabled`),N=a||M||j&&E.context.disabled,{getButtonProps:P,buttonRef:ne}=Ye({disabled:N,native:o});Q.useEffect(()=>{!S&&E.type===void 0&&(_.context.allowMouseUpTriggerRef.current=!1)},[_,S,E.type]);let F=Q.useRef(null),I=je(),L=f(e=>{if(!F.current)return;I.clear(),_.context.allowMouseUpTriggerRef.current=!1;let t=e.target;if(V(F.current,t)||V(_.select(`positionerElement`),t)||t===F.current||t!=null&&nn(t)===_.select(`rootId`))return;let n=$t(F.current);e.clientX>=n.left-sn&&e.clientX<=n.right+sn&&e.clientY>=n.top-sn&&e.clientY<=n.bottom+sn||k.events.emit(`close`,{domEvent:e,reason:B})});Q.useEffect(()=>{S&&_.select(`lastOpenChangeReason`)===`trigger-hover`&&fe(F.current).addEventListener(`mouseup`,L,{once:!0})},[S,L,_]);let R=j&&E.context.hasSubmenuOpen,z=Ze(x,{enabled:(c??R)&&!N&&E.type!==`context-menu`&&(!j||R&&!ee),handleClose:Qe({blockPointerEvents:!j}),mouseOnly:!0,move:!1,restMs:E.type===void 0?l:void 0,delay:{close:u},triggerElementRef:T,externalTree:k,isActiveTrigger:y,isClosing:()=>_.select(`transitionStatus`)===`ending`}),H=ln(S,_.select(`lastOpenChangeReason`)),ie=ot(x,{enabled:!N&&E.type!==`context-menu`,event:S&&j?`click`:`mousedown`,toggle:!0,ignoreMouse:!1,stickIfOpen:E.type===void 0&&H}),ae=Xe(x,{enabled:!N&&R}),oe=on({open:S,enabled:j,mouseDownAction:`open`}),U=Q.useMemo(()=>ce(ae.reference,ie.reference),[ae.reference,ie.reference]),W=_.useState(`triggerProps`,ee),{preFocusGuardRef:se,handlePreFocusGuardFocus:le,handleFocusTargetFocus:G}=an(_,T),K={disabled:N,open:S},q=[F,t,ne,A,T],J=[U,z??re,W,{"aria-haspopup":`menu`,"aria-controls":C,id:v,onMouseDown:e=>{_.select(`open`)||(I.start(200,()=>{_.context.allowMouseUpTriggerRef.current=!0}),fe(e.currentTarget).addEventListener(`mouseup`,L,{once:!0}))}},j?{role:`menuitem`}:{},oe,m,P],Y=X(`button`,e,{enabled:!j,stateAttributesMapping:Ae,state:K,ref:q,props:J});return j?(0,$.jsx)(tn,{tag:`button`,render:n,className:r,style:i,state:K,refs:q,props:J,stateAttributesMapping:Ae}):S?(0,$.jsxs)(Q.Fragment,{children:[(0,$.jsx)(Ve,{ref:se,onFocus:le},`${v}-pre-focus-guard`),(0,$.jsx)(Q.Fragment,{children:Y},v),(0,$.jsx)(Ve,{ref:_.context.triggerFocusTargetRef,onFocus:G},`${v}-post-focus-guard`)]}):(0,$.jsx)(Q.Fragment,{children:Y},v)});function ln(e,t){let n=je(),[r,i]=Q.useState(!1);return D(()=>{e&&t===`trigger-hover`?(i(!0),n.start(500,()=>{i(!1)})):e||(n.clear(),i(!1))},[e,t,n]),r}function un(){let e=yt(!0),t=Ct(!0),n=Ut(!0);return Q.useMemo(()=>n?{type:`menubar`,context:n}:e&&!t?{type:`context-menu`,context:e}:{type:void 0},[e,t,n])}var dn=Q.forwardRef(function(e,t){let{className:n,render:r,orientation:i=`horizontal`,style:a,...o}=e;return X(`div`,e,{state:{orientation:i},ref:t,props:[{role:`separator`,"aria-orientation":i},o]})}),fn=(0,Q.forwardRef)(function(e,t){let{className:n,...r}=e;return(0,$.jsx)(Nt,{ref:t,className:at(it.popup,`outline-none`,n),...r})}),pn=(0,Q.forwardRef)(function(e,t){let{className:n,...r}=e;return(0,$.jsx)(jt,{ref:t,className:at(it.menuItem,n),...r})});function mn(e){return(0,$.jsxs)(jt,{className:it.menuItem,"data-testid":e.testId,disabled:e.disabled,onClick:e.onClick,children:[(0,$.jsx)(`span`,{className:`text-[var(--chrome-fg-400)]`,children:e.icon}),(0,$.jsx)(`span`,{children:e.children})]})}function hn(){return(0,$.jsx)(dn,{className:`mx-1 my-1 h-px bg-[var(--chrome-divider)]`})}export{vt as C,ht as D,gt as E,ot as O,xt as S,_t as T,At as _,dn as a,St as b,nn as c,Zt as d,Gt as f,jt as g,Nt as h,hn as i,Qt as l,It as m,pn as n,cn as o,Vt as p,fn as r,an as s,mn as t,Xt as u,Tt as v,yt as w,Ct as x,Et as y};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,t as n}from"./jsx-runtime-2Zwg-L3c.js";import{Ft as r,Gt as i,U as a,W as o,Wt as s,c,ht as l,in as u,it as d,jn as f,ot as p,rn as m,rt as h,s as g,tn as _,w as v,yt as y}from"./useScrollLock-B7mQdXyv.js";import{r as b}from"./toast-Nu_fiCd9.js";import{t as ee}from"./useButton-D3eS7fh5.js";import{i as x,r as te,t as S}from"./tooltip-DgEojto1.js";import{C,D as w,O as T,b as E,c as D,f as O,l as k,s as ne,w as re,x as A}from"./menu-BPrc8Ara.js";import{i as j,n as M}from"./config-a_lz-57R.js";import{a as N,b as ie,o as P,u as F,x as ae,y as oe}from"./editor-B0tARd79.js";import{W as se,n as ce,z as le}from"./style-BENGW2ZV.js";import{Jn as I}from"./slides-D9bnXqtf.js";import{t as L}from"./createReactComponent-9UsI5fmM.js";import{n as ue}from"./useValueChanged-p8z-93L4.js";import{t as de}from"./IconMinus-y4ejub-s.js";import{t as fe}from"./IconPlus-BbmieIBT.js";import{a as R,i as z,l as pe,o as me,r as B,t as V}from"./PopoverPopup-BqGWd_uB.js";import{t as he}from"./useBaseUiId-C0Zm5sUV.js";import{n as H}from"./surface-Dke4SWpE.js";import{c as ge}from"./chrome-C2RCq3SI.js";var U=e(t(),1),W=n();function _e(){return typeof window>`u`?null:window.EyeDropper??null}function ve(){return _e()!==null}async function ye(){let e=_e();if(!e)return null;try{return(await new e().open()).sRGBHex.toLowerCase()}catch{return null}}var be=L(`outline`,`color-picker`,`ColorPicker`,[[`path`,{d:`M11 7l6 6`,key:`svg-0`}],[`path`,{d:`M4 16l11.7 -11.7a1 1 0 0 1 1.4 0l2.6 2.6a1 1 0 0 1 0 1.4l-11.7 11.7h-4v-4`,key:`svg-1`}]]),xe=L(`outline`,`copy`,`Copy`,[[`path`,{d:`M7 9.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667l0 -8.666`,key:`svg-0`}],[`path`,{d:`M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1`,key:`svg-1`}]]),Se=L(`outline`,`eye-off`,`EyeOff`,[[`path`,{d:`M10.585 10.587a2 2 0 0 0 2.829 2.828`,key:`svg-0`}],[`path`,{d:`M16.681 16.673a8.717 8.717 0 0 1 -4.681 1.327c-3.6 0 -6.6 -2 -9 -6c1.272 -2.12 2.712 -3.678 4.32 -4.674m2.86 -1.146a9.055 9.055 0 0 1 1.82 -.18c3.6 0 6.6 2 9 6c-.666 1.11 -1.379 2.067 -2.138 2.87`,key:`svg-1`}],[`path`,{d:`M3 3l18 18`,key:`svg-2`}]]),Ce=L(`outline`,`eye`,`Eye`,[[`path`,{d:`M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0`,key:`svg-0`}],[`path`,{d:`M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6`,key:`svg-1`}]]),we=L(`outline`,`file-code`,`FileCode`,[[`path`,{d:`M14 3v4a1 1 0 0 0 1 1h4`,key:`svg-0`}],[`path`,{d:`M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2`,key:`svg-1`}],[`path`,{d:`M10 13l-1 2l1 2`,key:`svg-2`}],[`path`,{d:`M14 13l1 2l-1 2`,key:`svg-3`}]]),Te=L(`outline`,`file-type-pdf`,`FileTypePdf`,[[`path`,{d:`M14 3v4a1 1 0 0 0 1 1h4`,key:`svg-0`}],[`path`,{d:`M5 12v-7a2 2 0 0 1 2 -2h7l5 5v4`,key:`svg-1`}],[`path`,{d:`M5 18h1.5a1.5 1.5 0 0 0 0 -3h-1.5v6`,key:`svg-2`}],[`path`,{d:`M17 18h2`,key:`svg-3`}],[`path`,{d:`M20 15h-3v6`,key:`svg-4`}],[`path`,{d:`M11 15v6h1a2 2 0 0 0 2 -2v-2a2 2 0 0 0 -2 -2h-1`,key:`svg-5`}]]),Ee=L(`outline`,`list-numbers`,`ListNumbers`,[[`path`,{d:`M11 6h9`,key:`svg-0`}],[`path`,{d:`M11 12h9`,key:`svg-1`}],[`path`,{d:`M12 18h8`,key:`svg-2`}],[`path`,{d:`M4 16a2 2 0 1 1 4 0c0 .591 -.5 1 -1 1.5l-3 2.5h4`,key:`svg-3`}],[`path`,{d:`M6 10v-6l-2 2`,key:`svg-4`}]]),De=L(`outline`,`palette`,`Palette`,[[`path`,{d:`M12 21a9 9 0 0 1 0 -18c4.97 0 9 3.582 9 8c0 1.06 -.474 2.078 -1.318 2.828c-.844 .75 -1.989 1.172 -3.182 1.172h-2.5a2 2 0 0 0 -1 3.75a1.3 1.3 0 0 1 -1 2.25`,key:`svg-0`}],[`path`,{d:`M7.5 10.5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-1`}],[`path`,{d:`M11.5 7.5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-2`}],[`path`,{d:`M15.5 10.5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-3`}]]),Oe=L(`outline`,`photo-down`,`PhotoDown`,[[`path`,{d:`M15 8h.01`,key:`svg-0`}],[`path`,{d:`M12.5 21h-6.5a3 3 0 0 1 -3 -3v-12a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v6.5`,key:`svg-1`}],[`path`,{d:`M3 16l5 -5c.928 -.893 2.072 -.893 3 0l4 4`,key:`svg-2`}],[`path`,{d:`M14 14l1 -1c.653 -.629 1.413 -.815 2.13 -.559`,key:`svg-3`}],[`path`,{d:`M19 16v6`,key:`svg-4`}],[`path`,{d:`M22 19l-3 3l-3 -3`,key:`svg-5`}]]),ke=L(`outline`,`stack-2`,`Stack2`,[[`path`,{d:`M12 4l-8 4l8 4l8 -4l-8 -4`,key:`svg-0`}],[`path`,{d:`M4 12l8 4l8 -4`,key:`svg-1`}],[`path`,{d:`M4 16l8 4l8 -4`,key:`svg-2`}]]);function Ae(e){if(typeof window>`u`||typeof window.matchMedia!=`function`)return()=>{};let t=window.matchMedia(oe);return t.addEventListener(`change`,e),()=>t.removeEventListener(`change`,e)}function je(){return ie(P(e=>e.theme),(0,U.useSyncExternalStore)(Ae,ae,()=>!1))}function Me(e){let{onEmbedFrame:t,onSaveCanvas:n,publicShare:r}=j(),i=M(),a=P(e=>e.setEmbedSignInOpen),{notify:o}=b(),s=i.state.status===`authenticated`;return(0,U.useMemo)(()=>t||(!n||r?null:()=>{if(s){o(`Save this canvas to embed a ${e}`);return}a(!0)}),[t,n,r,s,o,a,e])}function Ne(e){let[t,n]=U.useState({getBoundingClientRect(){return DOMRect.fromRect({width:0,height:0,x:0,y:0})}}),r=U.useRef(null),i=U.useRef(null),a=U.useRef(null),o=U.useRef(null),s=U.useRef(!0),c=U.useRef(null),l=d(),u=U.useMemo(()=>({anchor:t,setAnchor:n,actionsRef:a,backdropRef:r,internalBackdropRef:i,positionerRef:o,allowMouseUpTriggerRef:s,initialCursorPointRef:c,rootId:l}),[t,l]);return(0,W.jsx)(C.Provider,{value:u,children:(0,W.jsx)(E.Provider,{value:void 0,children:(0,W.jsx)(k,{...e})})})}var Pe=500,Fe=U.forwardRef(function(e,t){let{render:n,className:c,style:d,...f}=e,{setAnchor:p,actionsRef:v,internalBackdropRef:y,backdropRef:b,positionerRef:ee,allowMouseUpTriggerRef:x,initialCursorPointRef:te,rootId:S}=re(!1),{store:C}=A(!1),w=C.useState(`open`),T=C.useState(`disabled`),E=U.useRef(null),O=U.useRef(null),k=_(),ne=_(),j=U.useRef(!1);function M(e,t,n){let r=n.type.startsWith(`touch`);te.current={x:e,y:t},p({getBoundingClientRect(){return DOMRect.fromRect({width:r?10:0,height:r?10:0,x:e,y:t})}}),j.current=!1,v.current?.setOpen(!0,a(h,n)),ne.start(Pe,()=>{j.current=!0})}function N(e){T||(x.current=!0,r(e),M(e.clientX,e.clientY,e.nativeEvent),m(u(E.current),`mouseup`,e=>{if(x.current=!1,!j.current)return;ne.clear(),j.current=!1;let t=i(e);s(ee.current,t)||S&&t&&D(t)===S||v.current?.setOpen(!1,a(o,e))},{once:!0}))}function ie(e){if(!T&&(x.current=!1,e.touches.length===1)){e.stopPropagation();let t=e.touches[0];O.current={x:t.clientX,y:t.clientY},k.start(Pe,()=>{O.current&&M(O.current.x,O.current.y,e.nativeEvent)})}}function P(e){if(k.isStarted()&&O.current&&e.touches.length===1){let t=e.touches[0],n=Math.abs(t.clientX-O.current.x),r=Math.abs(t.clientY-O.current.y);(n>10||r>10)&&k.clear()}}function F(){k.clear(),O.current=null}return U.useEffect(()=>{function e(e){if(T)return;let t=i(e);(s(E.current,t)||s(y.current,t)||s(b.current,t))&&e.preventDefault()}return m(u(E.current),`contextmenu`,e)},[b,T,y]),l(`div`,e,{state:{open:w},ref:[E,t],props:[{onContextMenu:N,onTouchStart:ie,onTouchMove:P,onTouchEnd:F,onTouchCancel:F,style:{WebkitTouchCallout:`none`}},f],stateAttributesMapping:g})}),G=U.forwardRef(function(e,t){let{render:n,className:r,style:i,disabled:a=!1,nativeButton:o=!0,handle:s,payload:u,openOnHover:d=!1,delay:m=300,closeDelay:h=0,id:_,...b}=e,S=me(!0),C=s?.store??S?.store;if(!C)throw Error(f(74));let w=he(_),E=C.useState(`isTriggerActive`,w),D=C.useState(`floatingRootContext`),k=C.useState(`isOpenedByTrigger`,w),re=C.useState(`triggerPopupId`,w),A=U.useRef(null),{registerTrigger:j,isMountedByThisTrigger:M}=v(w,A,C,{payload:u,disabled:a,openOnHover:d,closeDelay:h}),N=C.useState(`openChangeReason`),ie=C.useState(`stickIfOpen`),P=C.useState(`openMethod`),F=C.useState(`focusManagerModal`),ae=x(D,{enabled:!a&&D!=null&&d&&(P!==`touch`||N!==`trigger-press`),mouseOnly:!0,move:!1,handleClose:te(),restMs:m,delay:{close:h},triggerElementRef:A,isActiveTrigger:E,isClosing:()=>C.select(`transitionStatus`)===`ending`}),oe=T(D,{enabled:D!=null,stickIfOpen:ie}),se=O(()=>C.select(`open`),e=>{C.set(`openMethod`,e)}),ce=C.useState(`triggerProps`,M),{getButtonProps:le,buttonRef:I}=ee({disabled:a,native:o}),L={open(e){return e&&N===`trigger-press`?g.open(e):c.open(e)}},{preFocusGuardRef:ue,handlePreFocusGuardFocus:de,handleFocusTargetFocus:fe}=ne(C,A),R=l(`button`,e,{state:{disabled:a,open:k},ref:[I,t,j,A],props:[oe.reference,ae,ce,se,{[p]:``,id:w,"aria-haspopup":`dialog`,"aria-expanded":k,"aria-controls":re},b,le],stateAttributesMapping:L});return M&&!F?(0,W.jsxs)(U.Fragment,{children:[(0,W.jsx)(y,{ref:ue,onFocus:de}),(0,W.jsx)(U.Fragment,{children:R},w),(0,W.jsx)(y,{ref:C.context.triggerFocusTargetRef,onFocus:fe})]}):(0,W.jsx)(U.Fragment,{children:R},w)});function Ie(e){let{label:t,value:n,testId:r,onCommit:i}=e,a=Math.round(n*10)/10,[o,s]=(0,U.useState)(String(a)),c=(0,U.useRef)(!1),l=(0,U.useRef)(!1);(0,U.useEffect)(()=>{c.current||s(String(a))},[a]);function u(){let e=Number(o);Number.isFinite(e)&&e!==a&&i(e),s(String(a))}return(0,W.jsxs)(`label`,{className:`flex items-center gap-1.5 rounded-lg bg-[var(--chrome-rest)] px-2 py-1 ring-1 ring-[var(--chrome-ring)]`,children:[(0,W.jsx)(`span`,{className:`w-3 shrink-0 text-center text-[11px] text-[var(--chrome-fg-400)]`,children:t}),(0,W.jsx)(`input`,{type:`number`,"data-testid":r,value:o,onFocus:e=>{c.current=!0,e.target.select()},onBlur:()=>{if(c.current=!1,l.current){l.current=!1,s(String(a));return}u()},onChange:e=>s(e.target.value),onKeyDown:e=>{e.stopPropagation(),e.key===`Enter`&&e.currentTarget.blur(),e.key===`Escape`&&(l.current=!0,e.currentTarget.blur())},className:`w-16 bg-transparent text-[12px] tabular-nums text-[var(--chrome-fg-900)] outline-none [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none`})]})}function Le(e,t){let n=10**t;return Math.round(e*n)/n}function Re(e){let{value:t,onChange:n,min:r,max:i,label:a,onMouseDown:o,fullWidth:s,testId:c}=e,{onNudgeStart:l,onNudgeEnd:u}=e,d=e.step??1,f=e.precision??0,[p,m]=(0,U.useState)(null),h=(0,U.useRef)(!1),g=(0,U.useRef)(t);(0,U.useEffect)(()=>{g.current=t},[t]);function _(e){let t=se(Le(e,f),r,i);m(null),t!==g.current&&(g.current=t,n(t))}function v(e){if(p===null)return;let t=Number(e);if(e.trim()===``||!Number.isFinite(t)){m(null);return}_(t)}function y(){h.current&&(h.current=!1,u?.())}function b(e){h.current||(h.current=!0,l?.()),_(g.current+e)}return(0,W.jsxs)(`div`,{className:`flex items-center justify-between rounded-lg bg-[var(--chrome-rest)] ${s?`w-full`:``}`,children:[(0,W.jsx)(`button`,{type:`button`,"aria-label":`Decrease ${a.toLowerCase()}`,"data-testid":c?`${c}-down`:void 0,"data-keep-open":!0,onMouseDown:o,onClick:()=>{_(g.current-d)},className:`flex h-8 w-8 cursor-pointer items-center justify-center rounded-l-lg text-[var(--chrome-fg-900)] transition-colors hover:bg-[var(--chrome-hover)]`,children:(0,W.jsx)(de,{size:14,stroke:2})}),(0,W.jsx)(`input`,{type:`text`,inputMode:`decimal`,"aria-label":a,"data-testid":c?`${c}-value`:void 0,onMouseDown:o,value:p??String(Le(t,f)),onChange:e=>m(e.target.value),onBlur:e=>{y(),v(e.target.value)},onKeyUp:e=>{(e.key===`ArrowUp`||e.key===`ArrowDown`)&&y()},onKeyDown:e=>{if(e.key===`Enter`){v(e.currentTarget.value),e.currentTarget.blur();return}if(e.key===`ArrowUp`){e.preventDefault(),b(d);return}e.key===`ArrowDown`&&(e.preventDefault(),b(-d))},className:`bg-transparent text-center text-[13px] tabular-nums text-[var(--chrome-fg-800)] outline-none ${s?`min-w-0 flex-1`:`w-10`}`}),(0,W.jsx)(`button`,{type:`button`,"aria-label":`Increase ${a.toLowerCase()}`,"data-testid":c?`${c}-up`:void 0,"data-keep-open":!0,onMouseDown:o,onClick:()=>{_(g.current+d)},className:`flex h-8 w-8 cursor-pointer items-center justify-center rounded-r-lg text-[var(--chrome-fg-900)] transition-colors hover:bg-[var(--chrome-hover)]`,children:(0,W.jsx)(fe,{size:14,stroke:2})})]})}function ze(e){let{value:t,onChange:n,onMouseDown:r,onNudgeStart:i,onNudgeEnd:a,testId:o}=e;return(0,W.jsx)(Re,{value:t,onChange:n,min:8,max:240,label:`Font size`,onMouseDown:r,onNudgeStart:i,onNudgeEnd:a,testId:o})}function Be(e){return{onPointerDown:e.beginTransaction,onPointerUp:e.endTransaction,onBlur:e.endTransaction}}function K(){return(K=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function q(e,t){if(e==null)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)t.indexOf(n=a[r])>=0||(i[n]=e[n]);return i}function J(e){var t=(0,U.useRef)(e),n=(0,U.useRef)(function(e){t.current&&t.current(e)});return t.current=e,n.current}var Y=function(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=1),e>n?n:e<t?t:e},X=function(e){return`touches`in e},Ve=function(e){return e&&e.ownerDocument.defaultView||self},He=function(e,t,n){var r=e.getBoundingClientRect(),i=X(t)?function(e,t){for(var n=0;n<e.length;n++)if(e[n].identifier===t)return e[n];return e[0]}(t.touches,n):t;return{left:Y((i.pageX-(r.left+Ve(e).pageXOffset))/r.width),top:Y((i.pageY-(r.top+Ve(e).pageYOffset))/r.height)}},Ue=function(e){!X(e)&&e.preventDefault()},We=U.memo(function(e){var t=e.onMove,n=e.onKey,r=e.onEnd,i=q(e,[`onMove`,`onKey`,`onEnd`]),a=(0,U.useRef)(null),o=J(t),s=J(n),c=J(r),l=(0,U.useRef)(null),u=(0,U.useRef)(!1),d=(0,U.useMemo)(function(){var e=function(e){Ue(e),(X(e)?e.touches.length>0:e.buttons>0)&&a.current?o(He(a.current,e,l.current)):(n(!1),c())},t=function(){n(!1),c()};function n(n){var r=u.current,i=Ve(a.current),o=n?i.addEventListener:i.removeEventListener;o(r?`touchmove`:`mousemove`,e),o(r?`touchend`:`mouseup`,t)}return[function(e){var t=e.nativeEvent,r=a.current;if(r&&(Ue(t),!function(e,t){return t&&!X(e)}(t,u.current)&&r)){if(X(t)){u.current=!0;var i=t.changedTouches||[];i.length&&(l.current=i[0].identifier)}r.focus(),o(He(r,t,l.current)),n(!0)}},function(e){var t=e.which||e.keyCode;t<37||t>40||(e.preventDefault(),s({left:t===39?.05:t===37?-.05:0,top:t===40?.05:t===38?-.05:0}))},function(e){var t=e.which||e.keyCode;t>=37&&t<=40&&c()},n]},[s,o,c]),f=d[0],p=d[1],m=d[2],h=d[3];return(0,U.useEffect)(function(){return h},[h]),U.createElement(`div`,K({},i,{onTouchStart:f,onMouseDown:f,className:`react-colorful__interactive`,ref:a,onKeyDown:p,onKeyUp:m,tabIndex:0,role:`slider`}))}),Ge=function(e){return e.filter(Boolean).join(` `)},Ke=function(e){var t=e.color,n=e.left,r=e.top,i=r===void 0?.5:r,a=Ge([`react-colorful__pointer`,e.className]);return U.createElement(`div`,{className:a,style:{top:100*i+`%`,left:100*n+`%`}},U.createElement(`div`,{className:`react-colorful__pointer-fill`,style:{backgroundColor:t}}))},Z=function(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=10**t),Math.round(n*e)/n};360/(2*Math.PI);var qe=function(e){return et(Je(e))},Je=function(e){return e[0]===`#`&&(e=e.substring(1)),e.length<6?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:e.length===4?Z(parseInt(e[3]+e[3],16)/255,2):1}:{r:parseInt(e.substring(0,2),16),g:parseInt(e.substring(2,4),16),b:parseInt(e.substring(4,6),16),a:e.length===8?Z(parseInt(e.substring(6,8),16)/255,2):1}},Ye=function(e){return $e(Qe(e))},Xe=function(e){var t=e.s,n=e.v,r=e.a,i=(200-t)*n/100;return{h:Z(e.h),s:Z(i>0&&i<200?t*n/100/(i<=100?i:200-i)*100:0),l:Z(i/2),a:Z(r,2)}},Ze=function(e){var t=Xe(e);return`hsl(`+t.h+`, `+t.s+`%, `+t.l+`%)`},Qe=function(e){var t=e.h,n=e.s,r=e.v,i=e.a;t=t/360*6,n/=100,r/=100;var a=Math.floor(t),o=r*(1-n),s=r*(1-(t-a)*n),c=r*(1-(1-t+a)*n),l=a%6;return{r:Z(255*[r,s,o,o,c,r][l]),g:Z(255*[c,r,r,s,o,o][l]),b:Z(255*[o,o,c,r,r,s][l]),a:Z(i,2)}},Q=function(e){var t=e.toString(16);return t.length<2?`0`+t:t},$e=function(e){var t=e.r,n=e.g,r=e.b,i=e.a,a=i<1?Q(Z(255*i)):``;return`#`+Q(t)+Q(n)+Q(r)+a},et=function(e){var t=e.r,n=e.g,r=e.b,i=e.a,a=Math.max(t,n,r),o=a-Math.min(t,n,r),s=o?a===t?(n-r)/o:a===n?2+(r-t)/o:4+(t-n)/o:0;return{h:Z(60*(s<0?s+6:s)),s:Z(a?o/a*100:0),v:Z(a/255*100),a:i}},tt=U.memo(function(e){var t=e.hue,n=e.onChange,r=e.onChangeEnd,i=Ge([`react-colorful__hue`,e.className]);return U.createElement(`div`,{className:i},U.createElement(We,{onMove:function(e){n({h:360*e.left})},onKey:function(e){n({h:Y(t+360*e.left,0,360)})},onEnd:r,"aria-label":`Hue`,"aria-valuenow":Z(t),"aria-valuemax":`360`,"aria-valuemin":`0`},U.createElement(Ke,{className:`react-colorful__hue-pointer`,left:t/360,color:Ze({h:t,s:100,v:100,a:1})})))}),nt=U.memo(function(e){var t=e.hsva,n=e.onChange,r=e.onChangeEnd,i={backgroundColor:Ze({h:t.h,s:100,v:100,a:1})};return U.createElement(`div`,{className:`react-colorful__saturation`,style:i},U.createElement(We,{onMove:function(e){n({s:100*e.left,v:100-100*e.top})},onKey:function(e){n({s:Y(t.s+100*e.left,0,100),v:Y(t.v-100*e.top,0,100)})},onEnd:r,"aria-label":`Color`,"aria-valuetext":`Saturation `+Z(t.s)+`%, Brightness `+Z(t.v)+`%`},U.createElement(Ke,{className:`react-colorful__saturation-pointer`,top:1-t.v/100,left:t.s/100,color:Ze(t)})))}),rt=function(e,t){if(e===t)return!0;for(var n in e)if(e[n]!==t[n])return!1;return!0},it=function(e,t){return e.toLowerCase()===t.toLowerCase()||rt(Je(e),Je(t))};function at(e,t,n,r){var i=J(n),a=J(r),o=(0,U.useState)(function(){return e.toHsva(t)}),s=o[0],c=o[1],l=(0,U.useRef)({color:t,hsva:s}),u=(0,U.useRef)(!1);return(0,U.useEffect)(function(){if(!e.equal(t,l.current.color)){var n=e.toHsva(t);l.current={hsva:n,color:t},c(n),u.current=!1}},[t,e]),(0,U.useEffect)(function(){var t;rt(s,l.current.hsva)||e.equal(t=e.fromHsva(s),l.current.color)||(l.current={hsva:s,color:t},i(t),u.current=!0)},[s,e,i]),[s,(0,U.useCallback)(function(e){c(function(t){return Object.assign({},t,e)})},[]),(0,U.useCallback)(function(){u.current&&(u.current=!1,a(l.current.color))},[a])]}var ot,st=typeof window<`u`?U.useLayoutEffect:U.useEffect,ct=function(){return ot||(typeof __webpack_nonce__<`u`?__webpack_nonce__:void 0)},lt=new Map,ut=function(e){st(function(){var t=e.current?e.current.ownerDocument:document;if(t!==void 0&&!lt.has(t)){var n=t.createElement(`style`);n.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity=".05"><path d="M8 0h8v8H8zM0 8h8v8H0z"/></svg>')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,lt.set(t,n);var r=ct();r&&n.setAttribute(`nonce`,r),t.head.appendChild(n)}},[])},dt=function(e){var t=e.className,n=e.colorModel,r=e.color,i=r===void 0?n.defaultColor:r,a=e.onChange,o=e.onChangeEnd,s=q(e,[`className`,`colorModel`,`color`,`onChange`,`onChangeEnd`]),c=(0,U.useRef)(null);ut(c);var l=at(n,i,a,o),u=l[0],d=l[1],f=l[2],p=Ge([`react-colorful`,t]);return U.createElement(`div`,K({},s,{ref:c,className:p}),U.createElement(nt,{hsva:u,onChange:d,onChangeEnd:f}),U.createElement(tt,{hue:u.h,onChange:d,onChangeEnd:f,className:`react-colorful__last-control`}))},ft={defaultColor:`000`,toHsva:qe,fromHsva:function(e){return Ye({h:e.h,s:e.s,v:e.v,a:1})},equal:it},pt=function(e){return U.createElement(dt,K({},e,{colorModel:ft}))},mt=/^#?([0-9A-F]{3,8})$/i,ht=function(e){var t=e.color,n=t===void 0?``:t,r=e.onChange,i=e.onBlur,a=e.escape,o=e.validate,s=e.format,c=e.process,l=q(e,[`color`,`onChange`,`onBlur`,`escape`,`validate`,`format`,`process`]),u=(0,U.useState)(function(){return a(n)}),d=u[0],f=u[1],p=J(r),m=J(i),h=(0,U.useCallback)(function(e){var t=a(e.target.value);f(t),o(t)&&p(c?c(t):t)},[a,c,o,p]),g=(0,U.useCallback)(function(e){o(e.target.value)||f(a(n)),m(e)},[n,a,o,m]);return(0,U.useEffect)(function(){f(a(n))},[n,a]),U.createElement(`input`,K({},l,{value:s?s(d):d,spellCheck:`false`,onChange:h,onBlur:g}))},gt=function(e){return`#`+e},_t=function(e){var t=e.prefixed,n=e.alpha,r=q(e,[`prefixed`,`alpha`]),i=(0,U.useCallback)(function(e){return e.replace(/([^0-9A-F]+)/gi,``).substring(0,n?8:6)},[n]),a=(0,U.useCallback)(function(e){return function(e,t){var n=mt.exec(e),r=n?n[1].length:0;return r===3||r===6||!!t&&r===4||!!t&&r===8}(e,n)},[n]);return U.createElement(ht,K({},r,{escape:i,format:t?gt:void 0,process:gt,validate:a}))};function vt(e){if(!(e instanceof HTMLElement))return!1;let t=e.tagName;return t===`INPUT`||t===`TEXTAREA`||t===`SELECT`||e.isContentEditable}function $(){let{textEditGuard:e}=N(),t=P(e=>F(e.editSession)),n=(0,U.useRef)(null),r=(0,U.useCallback)(()=>{if(!t)return;let r=document.activeElement;if(r instanceof HTMLElement&&r.isContentEditable){let e=window.getSelection(),t=e&&e.rangeCount>0&&r.contains(e.anchorNode)?e.getRangeAt(0).cloneRange():null;n.current={node:r,range:t}}e.guard()},[t,e]),i=(0,U.useCallback)(e=>{!t||vt(e.target)||e.preventDefault()},[t]),a=(0,U.useCallback)(()=>{let r=n.current;if(!(!t||!r||!r.node.isContentEditable)&&document.activeElement!==r.node&&(e.guard(),r.node.focus(),r.range)){let e=window.getSelection();e?.removeAllRanges(),e?.addRange(r.range.cloneRange())}},[t,e]);return{active:t,onPointerDown:r,onMouseDown:i,focusProps:t?{initialFocus:!1,finalFocus:!1}:{},restore:a}}function yt(e){return`repeating-conic-gradient(#e5e7eb 0% 25%, white 0% 50%) 50% / ${e}px ${e}px`}var bt=yt(7);function xt(e){let{background:t,active:n,onClick:r,border:i,opacity:a,testId:o,ariaLabel:s,onMouseDown:c}=e;return(0,W.jsx)(`button`,{type:`button`,"data-testid":o,"aria-label":s,"aria-pressed":s?n:void 0,onMouseDown:c,onClick:r,className:`h-7 w-7 cursor-pointer rounded-lg transition-transform ${n?`ring-2 ring-[var(--chrome-fg-900)] ring-offset-2 ring-offset-[var(--chrome-popup)]`:`hover:scale-110`}`,style:{background:t,opacity:a,border:i??`1px solid var(--chrome-swatch-edge)`}})}function St(e){let{color:t,active:n,onClick:r,onMouseDown:i}=e;return(0,W.jsx)(xt,{background:t===`transparent`?bt:I(t),active:n,onClick:r,onMouseDown:i,testId:`color-${t}`})}var Ct=`linear-gradient(to top right, transparent calc(50% - 1px), #e03131 calc(50% - 1px), #e03131 calc(50% + 1px), transparent calc(50% + 1px)), #ffffff`;function wt(e){let{active:t,onClick:n,testId:r,onMouseDown:i}=e;return(0,W.jsx)(xt,{background:Ct,active:t,onClick:n,onMouseDown:i,testId:r,ariaLabel:`None`})}function Tt(e,t){return(0,W.jsx)(`span`,{className:`flex h-5 w-5 items-center justify-center rounded-full`,style:{background:e===`transparent`?yt(6):I(e),border:`1px solid var(--chrome-swatch-edge)`,boxShadow:`inset 0 0 0 1px rgba(0,0,0,0.04)`},children:t})}function Et(e){let{hue:t,fillStyle:n,active:r,onClick:i,testId:a}=e,o=le(t,n),s=t===`transparent`,c=o.fill;(s||o.fill===`none`)&&(c=bt);let l=n===`outline`?`1.5px solid ${o.stroke}`:`1px solid var(--chrome-swatch-edge)`;return(0,W.jsx)(xt,{background:c,active:r,onClick:i,border:l,opacity:o.fillOpacity,testId:a})}function Dt(e){let{onPick:t}=e;return ve()?(0,W.jsx)(S,{label:`Pick colour from screen`,children:(0,W.jsx)(`button`,{type:`button`,"aria-label":`Pick colour from screen`,onClick:()=>{ye().then(e=>{e&&t(e)}).catch(()=>void 0)},className:`shrink-0 cursor-pointer text-[var(--chrome-fg-500)] transition-colors hover:text-[var(--chrome-fg-900)]`,children:(0,W.jsx)(be,{size:16,stroke:1.75})})}):null}function Ot(e){e.currentTarget.setPointerCapture(e.pointerId)}function kt(e){let{active:t,picked:n,onChange:r,baseTestId:i,onMouseDown:a,onOpenChange:o}=e,s=N(),c=$();function l(e){o?.(e),e||c.restore()}return(0,W.jsxs)(R,{onOpenChange:l,children:[(0,W.jsx)(S,{label:`Custom color`,children:(0,W.jsx)(G,{"aria-label":`Custom color`,"data-testid":`${i}-custom`,onPointerDown:c.onPointerDown,onMouseDown:c.onMouseDown,className:`flex h-7 w-7 cursor-pointer items-center justify-center rounded-lg border border-[var(--chrome-ring)] text-[var(--chrome-fg-900)] transition-transform ${t?`ring-2 ring-[var(--chrome-fg-900)] ring-offset-2 ring-offset-[var(--chrome-popup)]`:`hover:scale-110 data-[popup-open]:scale-110`}`,children:(0,W.jsx)(De,{size:16,stroke:1.75})})}),(0,W.jsx)(z,{children:(0,W.jsx)(B,{side:`right`,align:`center`,sideOffset:14,collisionPadding:8,className:`outline-none`,children:(0,W.jsxs)(V,{"data-overlay":!0,"data-panel-popup":!0,"data-editor-runtime-id":s.id,"data-testid":`${i}-popover`,"data-caret-safe":!0,...c.focusProps,onPointerDown:c.onPointerDown,onMouseDown:e=>{a?.(e),c.onMouseDown(e)},className:`w-52 space-y-2 p-2.5 ${H.popup}`,children:[(0,W.jsx)(`div`,{onPointerDown:Ot,children:(0,W.jsx)(pt,{color:n,onChange:r,style:{width:`100%`,height:150}})}),(0,W.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-[var(--chrome-ring)] px-2 py-1.5`,children:[(0,W.jsx)(`span`,{className:`h-5 w-5 shrink-0 rounded border border-[var(--chrome-ring)]`,style:{background:n}}),(0,W.jsx)(_t,{prefixed:!0,"data-testid":`${i}-hex-input`,color:n,onChange:r,className:`w-full bg-transparent text-sm uppercase tracking-wide text-[var(--chrome-fg-700)] outline-none`}),(0,W.jsx)(Dt,{onPick:r})]})]})})})]})}function At(e){let{title:t,value:n,onChange:r,testId:i,customFallback:a=`#1e1e1e`,colors:o=ce,header:s,noneTestId:c,onMouseDown:l,onOpenChange:u}=e,d=n!==`transparent`&&n!==`auto`&&n!==`none`&&!o.includes(n),f=d?n:a;return(0,W.jsxs)(`div`,{className:`space-y-2`,children:[t&&(0,W.jsx)(`div`,{className:`px-1 text-[11px] text-[var(--chrome-fg-500)]`,children:t}),s,(0,W.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[c&&(0,W.jsx)(wt,{active:n===`none`,onClick:()=>r(`none`),testId:c,onMouseDown:l}),o.map(e=>(0,W.jsx)(St,{color:e,active:n===e,onClick:()=>r(e),onMouseDown:l},e)),(0,W.jsx)(kt,{active:d,picked:f,onChange:r,baseTestId:i,onMouseDown:l,onOpenChange:u})]})]})}function jt(e){let{value:t,autoColor:n,noneOption:r,colors:i,customFallback:a,testId:o,ariaLabel:s,onPick:c}=e,l=N(),u=$(),d=t===`none`?`None`:t===`auto`?`Auto`:`Custom`,f=t===`none`?Ct:t===`auto`?n:I(t);function p(){let e=t===`auto`;return(0,W.jsxs)(`button`,{type:`button`,"data-testid":`${o}-auto`,"aria-pressed":e,onClick:()=>c(`auto`),className:`flex w-full items-center rounded-md px-2 py-1.5 text-[12px] transition-colors ${ge(e)}`,children:[(0,W.jsx)(`span`,{className:`flex-1 text-left`,children:`Auto`}),e&&(0,W.jsx)(ue,{size:13,stroke:2})]})}return(0,W.jsxs)(R,{onOpenChange:e=>{e||u.restore()},children:[(0,W.jsxs)(G,{"aria-label":s,"data-testid":`${o}-value`,onPointerDown:u.onPointerDown,onMouseDown:u.onMouseDown,className:`flex w-24 cursor-pointer items-center gap-1.5 rounded-lg border border-[var(--chrome-ring)] px-2 py-1 text-[12px] text-[var(--chrome-fg-900)] transition-colors hover:bg-[var(--chrome-hover)] data-[popup-open]:bg-[var(--chrome-hover)]`,children:[(0,W.jsx)(`span`,{className:`h-3 w-3 shrink-0 rounded-full`,style:{background:f,border:`1px solid rgba(0,0,0,.18)`}}),(0,W.jsx)(`span`,{className:`flex-1 text-left`,children:d}),(0,W.jsx)(w,{size:11,stroke:2,className:`shrink-0 text-[var(--chrome-fg-500)]`})]}),(0,W.jsx)(z,{children:(0,W.jsx)(B,{side:`right`,align:`center`,sideOffset:14,collisionPadding:8,className:`outline-none`,children:(0,W.jsxs)(V,{"data-overlay":!0,"data-panel-popup":!0,"data-editor-runtime-id":l.id,"data-testid":`${o}-menu`,"data-caret-safe":!0,...u.focusProps,onPointerDown:u.onPointerDown,onMouseDown:u.onMouseDown,className:`w-[228px] space-y-2 p-2.5 ${H.popup}`,children:[p(),(0,W.jsx)(At,{value:t,onChange:c,testId:`${o}-color`,noneTestId:r?`${o}-none`:void 0,customFallback:a,colors:i})]})})})]})}var Mt=`flex h-8 w-8 cursor-pointer items-center justify-center rounded-lg bg-[var(--chrome-rest)] text-[var(--chrome-fg-900)] transition-colors hover:bg-[var(--chrome-hover)]`;function Nt(e){let{active:t,onClick:n,children:r,testId:i,ariaLabel:a}=e;return(0,W.jsx)(`button`,{type:`button`,"data-testid":i,"aria-label":a,"aria-pressed":t,onClick:n,className:`flex h-8 min-w-8 flex-1 items-center justify-center rounded-lg px-2 transition-colors ${ge(t)}`,children:r})}function Pt(){return(0,W.jsx)(`span`,{className:`mx-0.5 h-6 w-px bg-[var(--chrome-divider)]`})}function Ft(e){let{type:t,onAlign:n,Icon:r}=e;return(0,W.jsx)(`button`,{type:`button`,"aria-label":t,onClick:()=>n(t),className:Mt,children:(0,W.jsx)(r,{size:16,stroke:1.75})})}function It(e){let{axis:t,onDistribute:n,Icon:r}=e,i=t===`horizontal`?`Distribute horizontally`:`Distribute vertically`;return(0,W.jsx)(S,{label:i,children:(0,W.jsx)(`button`,{type:`button`,"aria-label":i,onClick:()=>n(t),className:`flex h-8 flex-1 cursor-pointer items-center justify-center rounded-lg bg-[var(--chrome-rest)] text-[var(--chrome-fg-600)] transition-colors hover:bg-[var(--chrome-hover)] hover:text-[var(--chrome-fg-800)]`,children:(0,W.jsx)(r,{size:16,stroke:1.75})})})}function Lt(e){let{action:t,label:n,onReorder:r,Icon:i}=e;return(0,W.jsx)(S,{label:n,children:(0,W.jsx)(`button`,{type:`button`,"aria-label":n,onClick:()=>r(t),className:Mt,children:(0,W.jsx)(i,{size:16,stroke:1.75})})})}function Rt(e){let{trigger:t,label:n,children:r,caret:i,closeOnPick:a,testId:o}=e,s=N(),[c,l]=(0,U.useState)(!1),u=$();function d(e){l(e),e||u.restore()}function f(e){if(!(e.target instanceof Element))return;let t=e.target.closest(`button`);t&&(a||u.active&&!t.hasAttribute(`aria-haspopup`)&&!t.hasAttribute(`data-keep-open`))&&d(!1)}return(0,W.jsxs)(R,{open:c,onOpenChange:d,children:[(0,W.jsx)(S,{label:n,children:(0,W.jsxs)(G,{"aria-label":n,"data-testid":o,onPointerDown:u.onPointerDown,onMouseDown:u.onMouseDown,className:`flex h-8 cursor-pointer items-center justify-center gap-1 rounded-lg px-2 text-[var(--chrome-fg-900)] transition-colors hover:bg-[var(--chrome-hover)] data-[popup-open]:bg-[var(--chrome-hover)]`,children:[t,i&&(0,W.jsx)(pe,{})]})}),(0,W.jsx)(z,{children:(0,W.jsx)(B,{side:`top`,align:`center`,sideOffset:8,collisionPadding:8,children:(0,W.jsx)(V,{"data-overlay":!0,"data-panel-popup":!0,"data-editor-runtime-id":s.id,"data-caret-safe":!0,...u.focusProps,className:`p-2.5 ${H.popup}`,onPointerDown:u.onPointerDown,onMouseDown:u.onMouseDown,onClick:f,children:r})})})]})}export{xe as A,Oe as C,we as D,Te as E,Ce as O,ke as S,Ee as T,G as _,Lt as a,Me as b,kt as c,Tt as d,$ as f,Be as g,Ie as h,Pt as i,ye as j,Se as k,jt as l,Re as m,Ft as n,Nt as o,ze as p,It as r,At as s,Rt as t,Et as u,Fe as v,De as w,je as x,Ne as y};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,t as n}from"./jsx-runtime-2Zwg-L3c.js";import{a as r,o as i}from"./editor-B0tARd79.js";import{G as a,W as o,z as s}from"./style-BENGW2ZV.js";import{T as c,Zn as l,a as u,an as d,i as f,l as p,w as m}from"./slides-D9bnXqtf.js";import{a as h,c as g,i as _,l as v,n as y,r as b,u as x}from"./presenter-keys-DVQcBdy1.js";import{t as S}from"./IconChevronLeft-BR0iwdRI.js";import{t as C}from"./IconChevronRight-DBDnxPYT.js";import{c as w,n as ee,o as T,t as te}from"./build-visibility-E1mHeDCW.js";import{t as E}from"./IconX-AlbPkO_g.js";import{n as D}from"./core-CBnmD9hT.js";import{c as O,f as ne}from"./plan-jQm1jDpt.js";import{a as k,o as A}from"./chrome-C2RCq3SI.js";import{a as j,o as M,t as N}from"./flows-GGbkNqs8.js";import{a as P,t as F}from"./flow-stage-fiF5Nggn.js";var I=e(t(),1),L=450,R=10,re=50,ie=1.5;function ae(e,t){return Math.abs(e)<re||Math.abs(e)<Math.abs(t)*ie?null:e<0?`next`:`previous`}function oe(e){let t=(0,I.useRef)(e);t.current=e;let n=(0,I.useRef)(null),r=(0,I.useRef)(!1);(0,I.useEffect)(()=>()=>{n.current&&clearTimeout(n.current.timer)},[]);function i(){let e=n.current;return e?(clearTimeout(e.timer),n.current=null,e.lasering&&t.current.laser.end(),e):null}function a(e){if(n.current){i(),r.current=!0;return}r.current=!1;let a={x:e.clientX,y:e.clientY},o={id:e.pointerId,start:a,lasering:!1,moved:!1,timer:setTimeout(()=>{o.lasering=!0,t.current.laser.start(a)},L)};n.current=o}function o(e){let r=n.current;if(!r||r.id!==e.pointerId)return;let i={x:e.clientX,y:e.clientY};if(r.lasering){t.current.laser.move(i);return}(Math.abs(i.x-r.start.x)>R||Math.abs(i.y-r.start.y)>R)&&(clearTimeout(r.timer),r.moved=!0)}function s(e){let a=n.current;if(!a||a.id!==e.pointerId)return;if(i(),a.lasering){r.current=!0;return}if(!a.moved)return;r.current=!0;let o=ae(e.clientX-a.start.x,e.clientY-a.start.y);o&&t.current.onSwipe(o)}function c(){i()&&(r.current=!0)}function l(){let e=r.current;return r.current=!1,e}return{down:a,move:o,up:s,cancel:c,consumeClick:l}}function se(){let[e,t]=(0,I.useState)(null),n=(0,I.useRef)(null),r=e=>{n.current=e,t(e)};return{blank:e,toggle:e=>r(n.current===e?null:e),lift:()=>n.current?(r(null),!0):!1}}function ce(e,t){return e[t]?.length??0}function z(e,t){return e.step+1<ce(t,e.position)?{position:e.position,step:e.step+1}:e.position+1>=t.length?`end`:V(e.position+1,`forward`,t)}function B(e,t){let n=t[e.position]??[],r=e.step-1;for(;r>=-1&&n[r+1]===!0;)--r;return r>=-1?{position:e.position,step:r}:e.position===0?e:V(e.position-1,`back`,t)}function le(e,t){return z(e,t)!==`end`}function ue(e,t){let n=B(e,t);return n.position!==e.position||n.step!==e.step}function V(e,t,n){return t===`forward`?{position:e,step:-1}:{position:e,step:ce(n,e)-1}}function de(e){let{shapes:t,slides:n,playable:i,index:a}=e,{store:s}=r(),c=ee(),l=i.length,u=(0,I.useMemo)(()=>i.map(e=>{let r=n[e];return[...ne(t,r).map(e=>e.afterPrevious),...j(t,r).map(()=>!1)]}),[i,t,n]),f=e=>{let t=i.findIndex(t=>t>=e);return t===-1?l-1:t},[p,m]=(0,I.useState)(-1),[h,g]=(0,I.useState)(null),_=(0,I.useRef)(-1),v=(0,I.useRef)(null),y=(0,I.useRef)(!1),b=e=>s.getState().setPresentingIndex(e);function x(e){l!==0&&b(i[o(e,0,l-1)])}function S(e){_.current=e,m(e),g(y.current?e:null)}function C(){return{position:f(s.getState().presentingIndex??0),step:_.current}}function w(){c.finish();let e=C(),t=z(e,u);if(t===`end`){b(null);return}if(t.position===e.position){y.current=!0,S(t.step);return}v.current=t.step,x(t.position)}function te(){c.finish();let e=C(),t=B(e,u);if(t.position===e.position){S(t.step);return}v.current=t.step,x(t.position)}let E=(0,I.useRef)(w);E.current=w;let D=l>0?f(Math.min(a,n.length-1)):-1,k=D>=0?n[i[D]]:void 0,A=(0,I.useMemo)(()=>k?ne(t,k):[],[t,k]),M=(0,I.useMemo)(()=>k?j(t,k):[],[t,k]),N=p>=A.length?M[p-A.length]??null:null,P=(0,I.useMemo)(()=>{let e=h===null?void 0:A[h];return new Set(e?.items.filter(e=>e.animation.kind===`exit`).map(e=>e.shape.id)??[])},[A,h]),F=(0,I.useMemo)(()=>{let e=O(A,p);for(let t of P)e.delete(t);return e},[A,p,P]),L=(0,I.useRef)(null);(0,I.useLayoutEffect)(()=>{if(!k||L.current===k.id)return;L.current=k.id,c.cancel();let e=v.current??-1;v.current=null,y.current=!1,S(e)}),(0,I.useLayoutEffect)(()=>{if(!y.current)return;y.current=!1;let e=A[p];!k||!e||c.play(e,d(k)).then(()=>{g(e=>e===p?null:e)})},[p,A,k,c]);let R=(0,I.useRef)(!1);return(0,I.useEffect)(()=>{if(h!==null){R.current=!0;return}R.current&&(R.current=!1,c.cancel())},[h,c]),(0,I.useEffect)(()=>{let e=A[p+1];if(!e||!e.afterPrevious)return;let t=p>=0?A[p]:void 0,n=t?T(t):0,r=setTimeout(()=>E.current(),n);return()=>clearTimeout(r)},[p,A]),{count:l,deckSteps:u,position:D,slide:k,step:p,pending:F,flowStop:N,next:w,prev:te,goTo:b,goToPosition:x}}function fe(e){let t=(0,I.useRef)({digits:``,timer:null});(0,I.useEffect)(()=>{let n=t.current,r=()=>{n.digits=``,n.timer&&=(clearTimeout(n.timer),null)};function i(t){let i=y(t,n.digits.length>0);if(!i)return;t.preventDefault(),t.stopPropagation();let a=e.current;switch(i.type){case`escape`:a.escape();return;case`notes`:a.toggleNotes();return;case`black`:case`white`:a.toggleBlank(i.type);return;case`digit`:n.digits=(n.digits+i.digit).slice(-4),n.timer&&clearTimeout(n.timer),n.timer=setTimeout(r,1500);return;case`jump`:{let e=Number(n.digits)-1;r(),a.goTo(e);return}case`next`:a.next();return;case`prev`:a.prev();return;case`first`:a.goTo(0);return;case`last`:a.goTo(a.count-1);return}}return window.addEventListener(`keydown`,i,{capture:!0}),()=>window.removeEventListener(`keydown`,i,{capture:!0})},[e])}var H=3;function pe(e){let{overlayRef:t,slideRef:n,view:i}=e,{store:a,viewportAnimation:s}=r(),l=(0,I.useRef)(1),f=e=>{let t=n.current;if(!t)return;let r=u(d(t),i()),o=l.current,s=o<=1?r:c(r,r.zoom*o,e);a.getState().setViewport(s)},p=(e,t)=>{let n=o(l.current*e,1,H);n!==l.current&&(l.current=n,f(t))},m=(0,I.useCallback)(()=>{l.current=1},[]),g=(0,I.useRef)(p);return g.current=p,(0,I.useEffect)(()=>{let e=t.current;if(!e)return;let n=_(e=>{e.anchor&&g.current(e.zoomFactor,e.anchor)}),r=e=>{e.preventDefault(),e.stopPropagation(),!(!e.ctrlKey&&!e.metaKey)&&n.queue(t=>{t.zoomFactor*=h(e.deltaY),t.anchor={x:e.clientX,y:e.clientY}})},i=b(e,e=>{n.queue(t=>{t.zoomFactor*=e.factor,t.anchor={x:e.clientX,y:e.clientY}})});return e.addEventListener(`wheel`,r,{passive:!1}),()=>{e.removeEventListener(`wheel`,r),i.stop(),n.cancel()}},[t]),{isZoomed:()=>l.current>1,zoomToCursor:f,reset:()=>{if(l.current===1)return;l.current=1;let e=n.current;if(!e)return;let t=a.getState();s.animate(t.viewport,u(d(e),i()),e=>a.getState().setViewport(e),t.presentationAnimation?200:0)},clear:m}}var U=`var(--canvas-bg)`,W=`#000000`,G=1;function K(e,t){return e.rotation!==0||e.opacity<1?!1:e.x<=t.x+G&&e.y<=t.y+G&&e.x+e.width>=t.x+t.width-G&&e.y+e.height>=t.y+t.height-G}function me(e,t){if(e.type!==`image`&&e.type!==`rectangle`||!K(e,t))return null;if(e.type===`image`)return W;if(e.kind!==`rectangle`)return null;let n=s(e.fill,e.fillStyle??`pastel`).fill;return n===`none`?null:n}function he(e,t){for(let n=t.length-1;n>=0;--n){let r=me(t[n],e);if(r)return r}return!e.fill||e.fill===`transparent`?U:l(e.fill)}var q=n(),ge=14,J=16,_e=72;function ve(e){let{slide:t,stop:n,shapes:i,viewport:a}=e,o=(0,I.useMemo)(()=>D(i,t),[i,t]),s=n.flow.steps[n.index],c=N(t.flows??[],n.flow.id),l=M(o,[...c,...n.flow.steps],c.length+n.index),u=s?o.find(e=>e.id===s.target):void 0,d=(0,I.useRef)(null),[f,p]=(0,I.useState)(null),{measurement:m}=r(),h=u?P(u,a,10,m):null;return(0,I.useLayoutEffect)(()=>{let e=d.current,t=e?.offsetParent;if(!e||!t||!h){p(null);return}let n=e.offsetWidth,r=e.offsetHeight,i={width:t.clientWidth,height:t.clientHeight-_e},a=h.top+h.height+ge,o=a+r<=i.height?a:Math.max(J,h.top-ge-r),s=h.left+h.width/2,c=Math.min(Math.max(J,s-n/2),i.width-n-J);p({left:c,top:o})},[h?`${h.left},${h.top},${h.width},${h.height}`:``,s?.title,s?.text]),(0,q.jsxs)(`div`,{className:`pointer-events-none absolute inset-0`,"data-testid":`flow-presented`,children:[(0,q.jsx)(F,{frameId:t.id,flow:n.flow,targets:o,index:n.index,viewport:a,lead:c}),s&&(0,q.jsxs)(`div`,{ref:d,"data-testid":`flow-present-caption`,className:`absolute z-10 flex max-w-[min(420px,calc(100%-32px))] items-start gap-3 rounded-2xl bg-[var(--chrome-popup)] px-4 py-3 shadow-[0_8px_32px_rgba(0,0,0,0.18)] ring-1 ring-[var(--chrome-ring)] transition-[left,top] duration-300`,style:f??{left:J,bottom:88,visibility:h?`hidden`:`visible`},children:[(0,q.jsx)(`span`,{className:`mt-0.5 flex h-6 min-w-6 shrink-0 items-center justify-center rounded-full px-1.5 text-[12px] font-medium tabular-nums text-white ${s.fails?`bg-[var(--flow-fail)]`:`bg-[var(--flow-accent)]`}`,children:n.index+1}),(0,q.jsxs)(`div`,{className:`min-w-0`,children:[(0,q.jsx)(`p`,{className:`text-[15px] font-medium leading-snug text-[var(--chrome-fg-900)]`,children:s.title}),s.text&&(0,q.jsx)(`p`,{className:`mt-0.5 text-[13px] leading-relaxed text-[var(--chrome-fg-600)]`,children:s.text}),(s.payload||s.fails||l!==`call`)&&(0,q.jsx)(`p`,{className:`mt-1 text-[11px] text-[var(--chrome-fg-500)]`,children:[s.fails?`Fails here`:``,l===`async`?`Fire and forget`:l===`reply`?`Reply`:``,s.payload?`Carries ${s.payload}`:``].filter(Boolean).join(` · `)})]})]})]})}var ye=2500,be=480,xe={black:`#000000`,white:`#ffffff`};function Se(e,t){let{fromViewport:n,toViewport:r}=e,i=r.x-n.x,o=r.y-n.y,s=r.zoom-n.zoom,c=t.zoom-n.zoom,l=s;return Math.abs(i)>=Math.abs(o)&&Math.abs(i)>=Math.abs(s)?(c=t.x-n.x,l=i):Math.abs(o)>=Math.abs(s)&&(c=t.y-n.y,l=o),l===0?1:a(c/l)}function Ce(e,t,n){return{x:e.x+(t.x-e.x)*n,y:e.y+(t.y-e.y)*n,width:e.width+(t.width-e.width)*n,height:e.height+(t.height-e.height)*n}}var we=0;function Te(e){let t=0,n=()=>we!==e,r=()=>{if(n()){document.removeEventListener(`fullscreenchange`,r);return}document.fullscreenElement&&document.exitFullscreen().catch(()=>{t+=1,t<10&&window.setTimeout(r,50)})};document.addEventListener(`fullscreenchange`,r);let i=()=>{if(!document.fullscreenElement||n()){document.removeEventListener(`fullscreenchange`,r);return}window.setTimeout(i,250)};window.setTimeout(i,250),window.setTimeout(()=>document.removeEventListener(`fullscreenchange`,r),5e3),r()}function Y(e){return i(e=>e.presentingIndex!==null)?(0,q.jsx)(X,{containerRef:e.containerRef}):null}function X(e){let{containerRef:t}=e,{store:n,viewportAnimation:a}=r(),o=(0,I.useRef)(null),s=i(e=>e.presentingIndex)??0,c=i(e=>e.shapes),l=i(e=>e.viewport),h=i(e=>e.presentationAnimation),_=(0,I.useMemo)(()=>f(c),[c]),y=(0,I.useMemo)(()=>_.flatMap((e,t)=>e.slideSkipped?[]:[t]),[_]),[b,ee]=(0,I.useState)(!0),[T,D]=(0,I.useState)(!1),O=(0,I.useRef)(null),ne=(0,I.useRef)(n.getState().viewport),j=v(),M=oe({laser:j,onSwipe:e=>e===`next`?Q.current.next():Q.current.prev()}),N=(0,I.useRef)(`mouse`),P=(0,I.useRef)(null),F=(0,I.useRef)(!1),L=e=>{let t=P.current;return t?Ce(t.fromBounds,t.toBounds,Se(t,e)):null},[R,re]=(0,I.useState)(!1),ie=(0,I.useRef)(Date.now()),[ae,ce]=(0,I.useState)(0);(0,I.useEffect)(()=>{let e=setInterval(()=>ce(Math.floor((Date.now()-ie.current)/1e3)),1e3);return()=>clearInterval(e)},[]);let z=`${String(Math.floor(ae/60)).padStart(2,`0`)}:${String(ae%60).padStart(2,`0`)}`,B=(0,I.useCallback)(()=>{let e=t.current;return{width:e?.clientWidth??window.innerWidth,height:e?.clientHeight??window.innerHeight}},[t]),V=(0,I.useRef)(!1);(0,I.useEffect)(()=>{let e=n.getState(),r=e.selectedIds;e.setSelectedIds(new Set),e.endEdit(),e.setLockRevealId(null),e.setHoveredId(null);let i=t.current,o=()=>D(!0);V.current=!0,we+=1;let s=we;Promise.resolve(i?.requestFullscreen?.()).then(()=>{if(!V.current){Te(s);return}o()},o);let c=!1,l=()=>{if(!document.fullscreenElement){c&&n.getState().setPresentingIndex(null);return}c=!0,o()};document.addEventListener(`fullscreenchange`,l);let u=ne.current;return()=>{V.current=!1,document.removeEventListener(`fullscreenchange`,l),Te(s);let{shapes:e,setSelectedIds:t}=n.getState(),i=new Set(e.map(e=>e.id));t(new Set([...r].filter(e=>i.has(e)))),a.animate(n.getState().viewport,u,e=>n.getState().setViewport(e),0)}},[n,a,t]);let H=de({shapes:c,slides:_,playable:y,index:s}),{count:U,deckSteps:W,position:G,slide:K,step:me,pending:ge,flowStop:J}=H,_e=(0,I.useRef)(K);_e.current=K;let Y=se(),X=Y.blank,Z=pe({overlayRef:o,slideRef:_e,view:B}),Ee=Z.clear;function De(){Y.lift()||H.next()}function Oe(){Y.lift()||H.prev()}function ke(e){Y.lift()||H.goToPosition(e)}let Ae={next:De,prev:Oe,goTo:ke,count:U,toggleNotes:()=>re(e=>!e),toggleBlank:Y.toggle,escape:()=>{if(Z.isZoomed()){Z.reset();return}n.getState().setPresentingIndex(null)}},Q=(0,I.useRef)(Ae);Q.current=Ae,fe(Q),(0,I.useEffect)(()=>{if(!K||!T)return;let e=e=>n.getState().setViewport(e);Ee();let r=n.getState(),i=d(K),o=B(),s=u(i,o);P.current={fromBounds:L(r.viewport)??i,toBounds:i,fromViewport:r.viewport,toViewport:s},a.animate(r.viewport,s,e,r.presentationAnimation?be:0);let c=()=>{let t=B();if(t.width===o.width&&t.height===o.height)return;o=t;let r=u(i,t),s=n.getState().viewport;if(a.isAnimating()){P.current={fromBounds:i,toBounds:i,fromViewport:s,toViewport:r},a.animate(s,r,e,be);return}a.cancel(),P.current={fromBounds:i,toBounds:i,fromViewport:r,toViewport:r},e(r)},l=t.current,f=new ResizeObserver(c);return l&&f.observe(l),()=>f.disconnect()},[K,T,B,n,a,t,Ee]),(0,I.useEffect)(()=>{let e=o.current;if(!e)return;let t=e=>{e.preventDefault(),e.stopPropagation(),N.current!==`touch`&&Q.current.prev()};return e.addEventListener(`contextmenu`,t),()=>e.removeEventListener(`contextmenu`,t)},[]);function $(){ee(!0),O.current&&clearTimeout(O.current),O.current=setTimeout(()=>ee(!1),ye)}(0,I.useEffect)(()=>($(),()=>{O.current&&clearTimeout(O.current)}),[]),(0,I.useEffect)(()=>{U===0&&n.getState().setPresentingIndex(null)},[U,n]);function je(){let e=M.consumeClick(),t=j.consumeMoved();e||t||De()}let Me={position:G,step:me},Ne=b?`opacity-100`:`opacity-0 pointer-events-none`,Pe=(0,I.useMemo)(()=>K?he(K,p(c,K)):`var(--canvas-bg)`,[K,c]),Fe=(()=>{if(!K)return null;let{width:e,height:t}=B(),n=L(l)??d(K),r=m({x:n.x,y:n.y},l),i=m({x:n.x+n.width,y:n.y+n.height},l);return`M0 0H${e}V${t}H0Z M${r.x} ${r.y}H${i.x}V${i.y}H${r.x}Z`})();return(0,q.jsxs)(`div`,{ref:o,"data-testid":`presentation`,"data-overlay":!0,className:`absolute inset-0 z-50`,style:{cursor:x,touchAction:`none`,userSelect:`none`,WebkitTouchCallout:`none`},onPointerDown:e=>{if(e.stopPropagation(),$(),N.current=e.pointerType,e.button===0){if(F.current=!0,e.currentTarget.setPointerCapture(e.pointerId),e.pointerType===`touch`){M.down(e);return}j.start({x:e.clientX,y:e.clientY})}},onPointerMove:e=>{if(e.stopPropagation(),$(),e.pointerType===`touch`){M.move(e);return}j.move({x:e.clientX,y:e.clientY}),Z.isZoomed()&&!F.current&&Z.zoomToCursor({x:e.clientX,y:e.clientY})},onPointerUp:e=>{if(F.current=!1,e.pointerType===`touch`){M.up(e);return}j.end()},onPointerCancel:e=>{if(F.current=!1,e.pointerType===`touch`){M.cancel();return}j.end()},onDoubleClick:e=>e.stopPropagation(),onClick:je,children:[(0,q.jsx)(te,{pending:ge}),Fe&&(0,q.jsx)(`svg`,{className:`absolute inset-0 h-full w-full`,"aria-hidden":!0,children:(0,q.jsx)(`path`,{"data-testid":`presentation-mask`,d:Fe,fillRule:`evenodd`,fill:Pe,style:h?{transition:`fill ${be}ms ease`}:void 0})}),J&&K&&(0,q.jsx)(ve,{slide:K,stop:J,shapes:c,viewport:l}),X&&(0,q.jsx)(`div`,{"data-testid":`presentation-blank`,"data-blank":X,className:`absolute inset-0`,style:{backgroundColor:xe[X]}}),(0,q.jsx)(g,{trail:j.trail}),(0,q.jsx)(`div`,{className:`absolute right-4 top-4 transition-opacity duration-300 ${Ne}`,onClick:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation(),children:(0,q.jsxs)(`div`,{className:`flex items-center gap-0.5 ${A}`,children:[(0,q.jsx)(`button`,{type:`button`,"aria-label":`Toggle speaker notes`,"data-testid":`presentation-notes-toggle`,onClick:()=>re(e=>!e),className:`${k} ${R?`bg-[var(--chrome-hover)]`:``}`,children:(0,q.jsx)(w,{size:16,stroke:1.75})}),(0,q.jsx)(`button`,{type:`button`,"aria-label":`End presentation`,"data-testid":`presentation-exit`,onClick:()=>H.goTo(null),className:k,children:(0,q.jsx)(E,{size:16,stroke:1.75})})]})}),R&&(0,q.jsx)(`div`,{"data-testid":`presentation-notes`,className:`absolute bottom-4 left-4 w-[min(360px,40vw)]`,onClick:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation(),children:(0,q.jsxs)(`div`,{className:`${A} px-3.5 py-3`,children:[(0,q.jsxs)(`div`,{className:`mb-1 flex items-center justify-between text-[11px] uppercase tracking-wide text-[var(--chrome-fg-400)]`,children:[(0,q.jsx)(`span`,{children:`Notes`}),(0,q.jsx)(`span`,{className:`tabular-nums normal-case`,children:z})]}),(0,q.jsx)(`div`,{className:`max-h-[30vh] overflow-y-auto whitespace-pre-wrap text-[13px] leading-relaxed text-[var(--chrome-fg-800)]`,children:K?.notes?.trim()?K.notes:(0,q.jsx)(`span`,{className:`text-[var(--chrome-fg-400)]`,children:`No notes for this slide.`})})]})}),(0,q.jsx)(`div`,{className:`absolute bottom-4 left-1/2 -translate-x-1/2 transition-opacity duration-300 ${Ne}`,onClick:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation(),children:(0,q.jsxs)(`div`,{className:`flex items-center gap-0.5 ${A}`,children:[(0,q.jsx)(`button`,{type:`button`,"aria-label":`Previous slide`,"data-testid":`presentation-prev`,disabled:!ue(Me,W),onClick:Oe,className:`${k} disabled:pointer-events-none disabled:text-[var(--chrome-fg-300)]`,children:(0,q.jsx)(S,{size:16,stroke:1.75})}),(0,q.jsxs)(`span`,{"data-testid":`presentation-counter`,className:`min-w-[52px] px-1 text-center text-[13px] tabular-nums text-[var(--chrome-fg-700)]`,children:[G+1,` / `,U]}),(0,q.jsx)(`span`,{"data-testid":`presentation-clock`,className:`border-l border-[var(--chrome-divider)] px-2 text-[13px] tabular-nums text-[var(--chrome-fg-400)]`,children:z}),(0,q.jsx)(`button`,{type:`button`,"aria-label":`Next slide`,"data-testid":`presentation-next`,disabled:!le(Me,W),onClick:De,className:`${k} disabled:pointer-events-none disabled:text-[var(--chrome-fg-300)]`,children:(0,q.jsx)(C,{size:16,stroke:1.75})})]})})]})}export{Y as Presentation};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,t as n}from"./jsx-runtime-2Zwg-L3c.js";import{br as r,xr as i}from"./slides-D9bnXqtf.js";import{_ as a}from"./selection-overlay-primitives-hWJ1xjF7.js";var o=`var(--presentation-cursor, default)`,s=e(t(),1),c=6,l=1200,u=500,d=5,f=2;function p(e,t){return e.length<2?``:r(i(e.map(e=>[e.x,e.y]),{size:d,thinning:0,smoothing:.5,streamline:.32,simulatePressure:!1,last:!t}))}function m(){let e=(0,s.useRef)([]),t=(0,s.useRef)([]),n=(0,s.useRef)(null),r=(0,s.useRef)(!1),i=(0,s.useRef)(!1),[a,o]=(0,s.useState)(``);(0,s.useEffect)(()=>{let i=0,a=()=>{let s=performance.now();if(!r.current&&n.current!=null&&e.current.length>0&&s-n.current>=l){let r=e.current;e.current=[],n.current=null,t.current.push({strokes:r,start:s,total:r.reduce((e,t)=>e+t.length,0),removed:0})}for(let e of t.current){let t=Math.min(1,(s-e.start)/u),n=Math.floor(t*t*e.total);for(;e.removed<n&&e.strokes.length>0;){let t=e.strokes[0];t.shift(),e.removed+=1,t.length===0&&e.strokes.shift()}}t.current=t.current.filter(e=>e.strokes.length>0);let c=e.current,d=[];for(let e of t.current)for(let t of e.strokes)d.push(p(t,!1));for(let e=0;e<c.length;e+=1){let t=r.current&&e===c.length-1;d.push(p(c[e],t))}let f=d.filter(Boolean).join(` `);o(e=>f===e?e:f),i=requestAnimationFrame(a)};return i=requestAnimationFrame(a),()=>cancelAnimationFrame(i)},[]);function d(t){r.current=!0,i.current=!1,n.current=null,e.current.push([t])}function m(t){if(!r.current)return;let n=e.current[e.current.length-1],a=n[0];(Math.abs(t.x-a.x)>c||Math.abs(t.y-a.y)>c)&&(i.current=!0);let o=n[n.length-1];(Math.abs(t.x-o.x)>=f||Math.abs(t.y-o.y)>=f)&&n.push(t)}function h(){r.current&&(r.current=!1,i.current||e.current.pop(),n.current=e.current.length>0?performance.now():null)}function g(){let e=i.current;return i.current=!1,e}return{trail:a,start:d,move:m,end:h,consumeMoved:g}}var h=n();function g(e){let{trail:t}=e;return t?(0,h.jsx)(`svg`,{"data-testid":`laser-trail`,className:`pointer-events-none absolute inset-0 h-full w-full`,children:(0,h.jsx)(`path`,{d:t,fill:`#e8590c`,opacity:.8})}):null}function _(e){let{trail:t}=e;return t?(0,h.jsx)(`svg`,{"data-testid":`eraser-trail`,className:`pointer-events-none absolute inset-0 h-full w-full`,children:(0,h.jsx)(`path`,{d:t,fill:`#94a3b8`,opacity:.55})}):null}function v(){let e=m();return(0,h.jsx)(`div`,{"data-testid":`laser-overlay`,className:`absolute inset-0 cursor-crosshair`,onPointerDown:t=>{t.stopPropagation(),t.button===0&&(t.currentTarget.setPointerCapture(t.pointerId),e.start({x:t.clientX,y:t.clientY}))},onPointerMove:t=>{t.stopPropagation(),e.move({x:t.clientX,y:t.clientY})},onPointerUp:()=>e.end(),onPointerCancel:()=>e.end(),onDoubleClick:e=>e.stopPropagation(),children:(0,h.jsx)(g,{trail:e.trail})})}var y=10,b=1;function x(e){return 1+-(Math.abs(e)>y?y*Math.sign(e):e)/100*b}function S(e){let t=null,n=null;function r(){n=null;let r=t;t=null,r&&e(r)}return{queue(e){t||={zoomFactor:1,anchor:null,dx:0,dy:0},e(t),n===null&&(n=requestAnimationFrame(r))},cancel(){t=null,n!==null&&(cancelAnimationFrame(n),n=null)}}}function C(e,t){let n=new Set,r=null,i=null;function o(e){e.pointerType===`touch`&&n.add(e.pointerId)}function s(e){n.delete(e.pointerId)}function c(e){n.size>0||(r=e.scale,i=e.target)}function l(e){if(r===null)return;let n=e,a=r>0?n.scale/r:1;r=n.scale,a!==1&&t({factor:a,clientX:n.clientX,clientY:n.clientY,target:i})}function u(){r=null,i=null}window.addEventListener(`pointerdown`,o,{capture:!0}),window.addEventListener(`pointerup`,s,{capture:!0}),window.addEventListener(`pointercancel`,s,{capture:!0}),e.addEventListener(`gesturestart`,c),e.addEventListener(`gesturechange`,l),e.addEventListener(`gestureend`,u);let d=a(()=>{n.clear(),r=null,i=null});return{isActive:()=>r!==null,stop(){window.removeEventListener(`pointerdown`,o,{capture:!0}),window.removeEventListener(`pointerup`,s,{capture:!0}),window.removeEventListener(`pointercancel`,s,{capture:!0}),e.removeEventListener(`gesturestart`,c),e.removeEventListener(`gesturechange`,l),e.removeEventListener(`gestureend`,u),d()}}}var w=[{help:`→ / Space`,label:`Next slide (presenting)`,bindings:[{keys:[`ArrowRight`,`ArrowDown`,`PageDown`,` `,`Enter`],command:`next`}]},{help:`← / ⌫`,label:`Previous slide (presenting)`,bindings:[{keys:[`ArrowLeft`,`ArrowUp`,`PageUp`,`Backspace`],command:`prev`}]},{help:`Home / End`,label:`First / last slide (presenting)`,bindings:[{keys:[`Home`],command:`first`},{keys:[`End`],command:`last`}]},{help:`1…9 ⏎`,label:`Jump to slide (presenting)`,bindings:[]},{help:`N`,label:`Speaker notes (presenting)`,bindings:[{keys:[`n`,`N`],command:`notes`}]},{help:`B / W`,label:`Black / white screen (presenting)`,bindings:[{keys:[`b`,`B`],command:`black`},{keys:[`w`,`W`],command:`white`}]},{help:`Esc`,label:`End presentation`,bindings:[{keys:[`Escape`],command:`escape`}]}],T=new Map(w.flatMap(e=>e.bindings.flatMap(e=>e.keys.map(t=>[t,e.command]))));function E(e,t){if(e.key===`Escape`)return{type:`escape`};if(e.metaKey||e.ctrlKey||e.altKey)return null;if(/^[0-9]$/.test(e.key))return{type:`digit`,digit:e.key};if(e.key===`Enter`&&t)return{type:`jump`};let n=T.get(e.key);return n?{type:n}:null}export{x as a,g as c,S as i,m as l,E as n,_ as o,C as r,v as s,w as t,o as u};
|