koboyo 0.4.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -0
- package/assets/editor/assets/ContextMenuTrigger-C6XZ9rqq.js +1 -0
- package/assets/editor/assets/{IconHelp-CaEwHrsN.js → IconHelp-Bf6OkQYw.js} +2 -2
- package/assets/editor/assets/IconReplace-CYUD1RLF.js +1 -0
- package/assets/editor/assets/IconSquare-Ce_qY-mF.js +1 -0
- package/assets/editor/assets/MenuSubmenuTrigger-CTLO1z_0.js +1 -0
- package/assets/editor/assets/{PopoverPopup-B3Y0VRYc.js → PopoverPopup-CvnB7nJs.js} +1 -1
- package/assets/editor/assets/asset-glyph-Dxg-7b67.js +1 -0
- package/assets/editor/assets/build-pips-DsgLkk6R.js +1 -0
- package/assets/editor/assets/build-visibility-0Y4EP2Ka.js +1 -0
- package/assets/editor/assets/builders-hABCgtrj.js +1 -0
- package/assets/editor/assets/{chrome-layout-BzPU9far.js → chrome-layout-500Q9pcx.js} +1 -1
- package/assets/editor/assets/code-panel-CHMqHqc6.js +18 -0
- package/assets/editor/assets/color-swatches-BC1-16T-.js +1 -0
- package/assets/editor/assets/{command-palette-BR-_ChOL.js → command-palette-BNj4FPOh.js} +1 -1
- package/assets/editor/assets/connector-labels-piWvprqQ.js +2 -0
- package/assets/editor/assets/{copy-image-dialog-BzGP7Xw8.js → copy-image-dialog-BdQfoSGr.js} +1 -1
- package/assets/editor/assets/core-DnS-1skV.js +1 -0
- package/assets/editor/assets/create-Bd0K44Bi.js +1 -0
- package/assets/editor/assets/custom-shape-view-_TxDE4zO.js +1 -0
- package/assets/editor/assets/custom-shapes-D3n9PjCN.js +1 -0
- package/assets/editor/assets/diagram-fingerprint-CtYYDDQV.js +3 -0
- package/assets/editor/assets/edit-NIyQT3d_.js +1 -0
- package/assets/editor/assets/editor-CpiNbiMQ.js +1 -0
- package/assets/editor/assets/{elk-api-C4wlHVIw.js → elk-api-DfUWdVFD.js} +1 -1
- package/assets/editor/assets/elk-worker-loader-D09QKxa0.js +3 -0
- package/assets/editor/assets/embed-input-D77Udvni.js +1 -0
- package/assets/editor/assets/excalidraw-D0kr_KKg.js +1 -0
- package/assets/editor/assets/export-DUFOrZJ-.js +6 -0
- package/assets/editor/assets/export-HJI2Aq3h.js +2 -0
- package/assets/editor/assets/export-dialog-Edoe6LBK.js +1 -0
- package/assets/editor/assets/flow-layer-DX6oKkg8.js +1 -0
- package/assets/editor/assets/flow-panel-BsbC8WAJ.js +1 -0
- package/assets/editor/assets/flow-stage-DFvraJ0j.js +1 -0
- package/assets/editor/assets/{flow-start-CpAvU-9P.js → flow-start-D_gK7Gur.js} +1 -1
- package/assets/editor/assets/flows-BAU4NQGk.js +3 -0
- package/assets/editor/assets/frames-C-jROub3.js +5 -0
- package/assets/editor/assets/generate-BWJhhTxM.js +26 -0
- package/assets/editor/assets/geometry-CVRSymIE.js +1 -0
- package/assets/editor/assets/icon-picker-cggWIJiD.js +1 -0
- package/assets/editor/assets/icons-K7FjuB-c.js +2 -0
- package/assets/editor/assets/{image-library-JQu_tb8P.js → image-library-BG41F2Zi.js} +1 -1
- package/assets/editor/assets/{index-DBrN0u0i.css → index-B0dKwEIM.css} +1 -1
- package/assets/editor/assets/index-BSs3RHtR.js +25 -0
- package/assets/editor/assets/layout-offthread-3DtYtT7h.js +18 -0
- package/assets/editor/assets/layout.worker-B99h3Wv0.js +28 -0
- package/assets/editor/assets/menu-rOnlAYaK.js +1 -0
- package/assets/editor/assets/mermaid-paste-C1_G99Lz.js +1 -0
- package/assets/editor/assets/panel-controls-BT48HF6c.js +1 -0
- package/assets/editor/assets/{panel-shell-BnMOHgWM.js → panel-shell-CSvihB5L.js} +1 -1
- package/assets/editor/assets/plan-BS_pzMjA.js +1 -0
- package/assets/editor/assets/presentation-DlKoEXsq.js +1 -0
- package/assets/editor/assets/{presenter-keys-Bs3LnmOa.js → presenter-keys-uSrN0NG3.js} +1 -1
- package/assets/editor/assets/rich-paste-route-Bx69sREx.js +1 -0
- package/assets/editor/assets/ride-overlay-ChaS8O9D.js +1 -0
- package/assets/editor/assets/selection-overlay-primitives-DXtdWjNx.js +1 -0
- package/assets/editor/assets/shape-meta-CZ0aZy7a.js +1 -0
- package/assets/editor/assets/shape-render-PK6dqxxf.js +1 -0
- package/assets/editor/assets/shapes-CHDGoELO.js +11 -0
- package/assets/editor/assets/shared-DKcKntwk.js +1 -0
- package/assets/editor/assets/{slide-notes-dialog-BQBXpep6.js → slide-notes-dialog-CypGkEmF.js} +1 -1
- package/assets/editor/assets/slides-panel-D22Fponu.js +26 -0
- package/assets/editor/assets/table-PnIQtvp1.js +7 -0
- package/assets/editor/assets/text-breaks-BDwq8Wxj.js +7 -0
- package/assets/editor/assets/{theme-palette-Dl_G_VIJ.js → theme-palette-DZtiNUYJ.js} +1 -1
- package/assets/editor/assets/tidy-browser-DqAPzbkG.js +1 -0
- package/assets/editor/assets/tidy-scope-CQinfwtO.js +1 -0
- package/assets/editor/assets/tldraw-DSRiyEEW.js +2 -0
- package/assets/editor/assets/tool-catalog-DM8xoisn.js +1 -0
- package/assets/editor/assets/tool-drawer-hovu85Xd.js +1 -0
- package/assets/editor/assets/{tooltip-CyBz17g8.js → tooltip-ClTJbfBH.js} +1 -1
- package/assets/editor/assets/tree-Ch-RF7UJ.js +1 -0
- package/assets/editor/assets/use-export-command-CZva79qg.js +2 -0
- package/assets/editor/assets/use-grid-keyboard-nav-BhzrY178.js +0 -0
- package/assets/editor/assets/{use-icon-node-BxqH7H27.js → use-icon-node-B5V42drv.js} +1 -1
- package/assets/editor/assets/{use-key-held-094C3Mn3.js → use-key-held-DRn09Hq8.js} +1 -1
- package/assets/editor/assets/use-web-environment-Ce65LEhf.js +1 -0
- package/assets/editor/assets/useTriggerFocusGuards-Mibi8yYw.js +1 -0
- package/assets/editor/assets/web-card-BTru0lge.js +1 -0
- package/assets/editor/assets/web-card-font-BbZEq3En.js +1 -0
- package/assets/editor/assets/web-controls-DIAT8wcZ.js +1 -0
- package/assets/editor/assets/web-embed-dialog-CnaSzcu9.js +1 -0
- package/assets/editor/assets/web-embed-url-CHu4SU82.js +1 -0
- package/assets/editor/assets/web-embeds-I3saJ_yp.js +1 -0
- package/assets/editor/assets/web-html-dialog-DpkLs7qD.js +1 -0
- package/assets/editor/assets/web-runtime-DNdRiAlf.js +1 -0
- package/assets/editor/assets/web-widget-limits-DeMquLIR.js +1 -0
- package/assets/editor/assets/web-widgets-DsFUBhiq.js +325 -0
- package/assets/editor/assets/widget-source-C3N9ZKTz.js +2 -0
- package/assets/editor/assets/widget-target-C9a207gT.js +1 -0
- package/assets/editor/index.html +46 -40
- package/dist/koboyo.js +605 -269
- package/package.json +3 -3
- package/skills/koboyo/SKILL.md +8 -3
- package/skills/koboyo/references/architecture.md +3 -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/MenuSubmenuTrigger-KacA9GM8.js +0 -1
- package/assets/editor/assets/asset-glyph-C1E6cGwM.js +0 -1
- package/assets/editor/assets/build-pips-BV-uwXlP.js +0 -1
- package/assets/editor/assets/build-visibility-DyML9SHt.js +0 -1
- package/assets/editor/assets/builders-DMHAOPEv.js +0 -1
- package/assets/editor/assets/chart-4iRduYdU.js +0 -7
- package/assets/editor/assets/code-panel-koBUgEWp.js +0 -43
- package/assets/editor/assets/connector-labels-CrEgadsC.js +0 -2
- package/assets/editor/assets/core-CmsJyU_-.js +0 -1
- package/assets/editor/assets/diagram-fingerprint-WGQ5iVXx.js +0 -3
- package/assets/editor/assets/edit-C0sBxxsg.js +0 -1
- package/assets/editor/assets/editor-BeufBV54.js +0 -1
- package/assets/editor/assets/elk-worker-loader-CVBdN1je.js +0 -3
- package/assets/editor/assets/excalidraw-BwgRIDi9.js +0 -1
- package/assets/editor/assets/export-Bce6ra0N.js +0 -2
- package/assets/editor/assets/export-K2VWg76n.js +0 -6
- package/assets/editor/assets/export-dialog-x2n2a4KX.js +0 -1
- package/assets/editor/assets/flow-layer-ewaL7g2y.js +0 -1
- package/assets/editor/assets/flow-panel-BzXNGGke.js +0 -1
- package/assets/editor/assets/flow-stage-Ba_CAggI.js +0 -1
- package/assets/editor/assets/flows-Cj7AFMIA.js +0 -3
- package/assets/editor/assets/frames-Cp1QD3LR.js +0 -1
- package/assets/editor/assets/icon-picker-Cg39IKNJ.js +0 -1
- package/assets/editor/assets/icon-sources-CZI1h18s.js +0 -1
- package/assets/editor/assets/icons-DzW1j-r3.js +0 -2
- package/assets/editor/assets/index-CBPPqsiR.js +0 -24
- package/assets/editor/assets/layout-offthread-mRHRulkS.js +0 -18
- package/assets/editor/assets/layout.worker-CekYkaxO.js +0 -27
- package/assets/editor/assets/menu-B9BAk63v.js +0 -1
- package/assets/editor/assets/panel-controls-DWVXiNUZ.js +0 -1
- package/assets/editor/assets/plan-CkgM52Yh.js +0 -1
- package/assets/editor/assets/presentation-DJUO0t7I.js +0 -1
- package/assets/editor/assets/reflow-DaYiVkwp.js +0 -1
- package/assets/editor/assets/registry-rEGZW7Ab.js +0 -1
- package/assets/editor/assets/ride-overlay-Hx90v4ZK.js +0 -1
- package/assets/editor/assets/selection-overlay-primitives-BRp854AD.js +0 -1
- package/assets/editor/assets/shape-meta-COE2ATNh.js +0 -1
- package/assets/editor/assets/shared-DjLCTIA9.js +0 -1
- package/assets/editor/assets/slides-D686obFO.js +0 -15
- package/assets/editor/assets/slides-panel-BEJCevJi.js +0 -26
- package/assets/editor/assets/style-BENGW2ZV.js +0 -1
- package/assets/editor/assets/text-breaks-DM4W6y5f.js +0 -7
- package/assets/editor/assets/tidy-browser-dF3BON7J.js +0 -1
- package/assets/editor/assets/tidy-scope-BGG3ZXvZ.js +0 -1
- package/assets/editor/assets/tldraw-CE87oKyq.js +0 -2
- package/assets/editor/assets/tool-catalog-DXPhX2S1.js +0 -1
- package/assets/editor/assets/tool-drawer-CWOX_njp.js +0 -1
- package/assets/editor/assets/tree-KSgPjntC.js +0 -1
- package/assets/editor/assets/use-export-command-sC9UHj3_.js +0 -2
- package/assets/editor/assets/use-grid-keyboard-nav-DhQKecO1.js +0 -0
- package/assets/editor/assets/web-controls-CLE9zr7i.js +0 -1
- package/assets/editor/assets/web-embed-dialog-XUNelFFM.js +0 -1
- package/assets/editor/assets/web-html-dialog-BcAyzH5D.js +0 -1
- package/assets/editor/assets/web-shape-C941TGTy.js +0 -1
- package/assets/editor/assets/widget-source-CHujvUeA.js +0 -1
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import{Pn as e,bt as t,d as n}from"./shapes-CHDGoELO.js";import{k as r}from"./geometry-CVRSymIE.js";import{Bt as i,Ft as a,Ht as o,Kt as s,Nt as c,Ot as l,Rt as u,Ut as d,Wt as f,Zt as p,f as m,g as h,zt as g}from"./frames-C-jROub3.js";import{a as _}from"./icons-K7FjuB-c.js";import{r as v}from"./create-Bd0K44Bi.js";import{r as y}from"./diagram-fingerprint-CtYYDDQV.js";import{d as b,f as x,i as S,p as C,r as ee,u as w}from"./layout-offthread-3DtYtT7h.js";import{n as T}from"./icon-catalog-CbUlEKtK.js";function E(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``)||`node`}function D(e,t){let n=e,r=2;for(;t.has(n);)n=`${e}-${r}`,r+=1;return t.add(n),n}function O(e,t,n=0){let r=!1,i=0;for(let a=0;a<e.length;a+=1){let o=e[a];if(o===`"`){r=!r;continue}if(!r){if(o===`[`){i+=1;continue}if(o===`]`){i=Math.max(0,i-1);continue}if(i===0&&a>=n){for(let n=0;n<t.length;n+=1)if(e.startsWith(t[n],a))return{index:a,needle:n}}}}return null}function k(e,t,n=0){return O(e,[t],n)?.index??-1}function A(e){let t=k(e,`//`);return t===-1?e:e.slice(0,t)}function j(e,t){let n=[],r=0,i=0,a=!1;for(let o=0;o<e.length;o+=1){let s=e[o];s===`"`?a=!a:!a&&s===`[`?r+=1:!a&&s===`]`?r=Math.max(0,r-1):!a&&r===0&&s===t&&(n.push(e.slice(i,o)),i=o+1)}return n.push(e.slice(i)),n}function M(e){let t=e.trim();return t.length>=2&&t.startsWith(`"`)&&t.endsWith(`"`)?t.slice(1,-1).replace(/\\n/g,`
|
|
2
|
+
`):t}function N(e){return/\s|[:=,[\]{}]/.test(e)?`"${e.replace(/"/g,``)}"`:e}function P(e){let t=e.trimEnd();if(!t.endsWith(`]`))return{rest:e,attrs:null};let n=0,r=!1;for(let e=t.length-1;e>=0;--e){let i=t[e];if(i===`"`)r=!r;else if(!r&&i===`]`)n+=1;else if(!r&&i===`[`&&(--n,n===0))return{rest:t.slice(0,e),attrs:t.slice(e+1,t.length-1)}}return{rest:e,attrs:null}}var te={done:`done`,complete:`done`,active:`active`,doing:`active`,crit:`critical`,critical:`critical`,milestone:`milestone`};function ne(e){let t=/^(\d+(?:\.\d+)?)\s*(d|day|days|w|week|weeks|h|hour|hours|m|min|mins|minute|minutes|s|sec|secs|second|seconds)?$/i.exec(e.trim());if(!t)return;let n=Number(t[1]),r=(t[2]??`d`).toLowerCase();return r.startsWith(`w`)?n*7:r.startsWith(`h`)?n/24:r===`m`||r.startsWith(`min`)?n/1440:r===`s`||r.startsWith(`sec`)?n/86400:n}function re(e){let t=[],n=``,r=[],i=new Set,a=``,o=!1;return e.split(`
|
|
3
|
+
`).forEach((e,s)=>{let c=A(e).trim();if(c.length===0||c.toLowerCase()===`gantt`)return;let l=c.match(/^title\s*:\s*(.*)$/i);if(l){n=M(l[1].trim());return}let u=c.match(/^section\s+(.+)$/i);if(u){a=M(u[1].trim());return}let d=c.match(/^excludes\s*:\s*(.*)$/i);if(d){/weekends?/i.test(d[1])?o=!0:t.push({line:s+1,message:`only "excludes: weekends" is supported, not "${d[1].trim()}"`});return}let{attrs:f,rest:p}=P(c),m;for(let e of j(f??``,`,`)){let n=e.trim().toLowerCase();n&&(te[n]?m=te[n]:t.push({line:s+1,message:`unknown task attribute "${e.trim()}"`}))}let h=p.trim().match(/^[-*]\s+(.*)$/),g=(h?h[1]:p).trim();if(g.length===0)return;let _=g.indexOf(`:`),v=M((_===-1?g:g.slice(0,_)).trim());if(v.length===0)return;let y=_===-1?``:g.slice(_+1),b,x,S,C=[];for(let e of j(y,`,`)){let n=e.trim();if(!n)continue;let r=n.match(/^after\s+(.+)$/i);if(r){C.push(...r[1].trim().split(/\s+/).map(E));continue}let i=n.match(/^until\s+(.+)$/i);if(i){S=E(i[1].trim());continue}if(/^\d{4}-\d{2}-\d{2}$/.test(n)){b=n;continue}let a=ne(n);if(a!==void 0){x=a;continue}t.push({line:s+1,message:`unknown schedule part "${n}" (expected a date, "after <task>", or a length like 5d)`})}r.push({id:D(E(v)||`t${r.length+1}`,i),label:v,section:a===``?void 0:a,start:b,after:C.length>0?C:void 0,days:x,until:S,status:m})}),{diagram:x({kind:`gantt`,title:n,tasks:r,skipWeekends:o}),diagnostics:t,iconUses:[]}}function ie(e,t,n){let r={};if(!e||e.trim()===``)return r;for(let i of j(e,`,`)){let e=i.trim();if(!e)continue;let a=k(e,`:`);if(a===-1){let i=e.toLowerCase();i===`highlight`?r.kind=`highlight`:i===`reverse`||i===`revert`?r.kind=`reverse`:n.push({line:t,message:`unknown commit attribute "${e}"`});continue}let o=e.slice(0,a).trim().toLowerCase(),s=M(e.slice(a+1));o===`tag`?r.tag=s:o===`label`?r.label=s:n.push({line:t,message:`unknown commit attribute "${o}"`})}return r}function ae(e){let t=[],n=``,r=[],i=[],a=`main`,o=new Map,s=new Set,c=e=>{r.includes(e)||r.push(e)};c(a);let l=(e,t,n={})=>{let{id:r,...c}=n,l=e.trim(),u=s.has(a)?void 0:o.get(a);s.add(a),i.push({id:r??(E(l)||`c${i.length+1}`),branch:a,label:l.length>0?l:void 0,tag:t.tag,kind:t.kind,branchFrom:u,...c})};return e.split(`
|
|
4
|
+
`).forEach((e,r)=>{let i=A(e).trim();if(i.length===0||i.toLowerCase()===`gitgraph`)return;let s=i.match(/^title\s*:\s*(.*)$/i);if(s){n=M(s[1].trim());return}let{attrs:u,rest:d}=P(i),f=ie(u,r+1,t),p=d.trim(),m=p.match(/^branch\s+(.+)$/i);if(m){let e=M(m[1].trim());e!==a&&o.set(e,a),a=e,c(a);return}let h=p.match(/^(?:checkout|switch)\s+(.+)$/i);if(h){a=M(h[1].trim()),c(a);return}let g=p.match(/^merge\s+(.+)$/i);if(g){let e=M(g[1].trim());if(e===a){t.push({line:r+1,message:`cannot merge "${e}" into itself — checkout another branch first`});return}c(e),l(f.label??`merge ${e}`,f,{mergeFrom:e});return}let _=p.match(/^cherry-?pick\s+(.+)$/i);if(_){let e=E(M(_[1].trim()));l(f.label??`pick ${e}`,f,{cherryPick:e,id:`pick-${e}`});return}let v=p.match(/^commit\b\s*(.*)$/i);if(v){l(f.label??v[1],f);return}t.push({line:r+1,message:`unknown git line "${p}" (expected commit, branch, checkout, merge or cherry-pick)`})}),{diagram:x({kind:`gitgraph`,title:n,lanes:r,commits:i}),diagnostics:t,iconUses:[]}}function oe(e){let t=[],n=``,r=[];return e.split(`
|
|
5
|
+
`).forEach((e,i)=>{let a=A(e).trim();if(a.length===0||a.toLowerCase()===`sankey`)return;let o=a.match(/^title\s*:\s*(.*)$/i);if(o){n=M(o[1].trim());return}let s=a.match(/^(.+?)\s*(?:->|=>)\s*(.+)$/),c=s?[s[1],...s[2].split(`:`)]:j(a,`,`).map(e=>e.trim());if(c.length<3){t.push({line:i+1,message:`expected "From -> To : value" but read "${a}"`});return}let l=Number(M(c[2].trim()));if(!Number.isFinite(l)||l<=0){t.push({line:i+1,message:`flow needs a positive value, got "${c[2].trim()}"`});return}r.push({from:M(c[0].trim()),to:M(c[1].trim()),value:l})}),{diagram:x({kind:`sankey`,title:n,flows:r}),diagnostics:t,iconUses:[]}}var F=o,se=s,I=p;function ce(e){return Object.fromEntries(e.map(e=>[e,e]))}var L=ce(f),le={...ce(d),square:`sharp`,round:`rounded`},ue=ce(u),de={...ce(c),x:`cross`,o:`circle`,dot:`circle`},fe={full:`full`,half:`half`,"1/2":`half`,third:`third`,"1/3":`third`,"two-thirds":`twoThirds`,twothirds:`twoThirds`,"2/3":`twoThirds`},pe=C,me=new Set([`on`,`checked`,`true`]),he=new Set([`off`,`unchecked`,`false`]),ge=new Map(l.map((e,t)=>[e,t])),_e={white:`#ffffff`,black:`#1e1e1e`,silver:`#c0c0c0`,maroon:`#800000`,crimson:`#dc143c`,tomato:`#ff6347`,salmon:`#fa8072`,lightsalmon:`#ffa07a`,coral:`#ff7f50`,gold:`#ffd700`,khaki:`#f0e68c`,lavender:`#e6e6fa`,plum:`#dda0dd`,orchid:`#da70d6`,magenta:`#ff00ff`,fuchsia:`#ff00ff`,indigo:`#4b0082`,navy:`#000080`,royalblue:`#4169e1`,skyblue:`#87ceeb`,lightblue:`#add8e6`,lightskyblue:`#87cefa`,steelblue:`#4682b4`,lightcyan:`#e0ffff`,cyan:`#00ffff`,aqua:`#00ffff`,aquamarine:`#7fffd4`,turquoise:`#40e0d0`,mint:`#98ff98`,mintcream:`#f5fffa`,lightgreen:`#90ee90`,palegreen:`#98fb98`,seagreen:`#2e8b57`,forestgreen:`#228b22`,olive:`#808000`,lime:`#00ff00`,limegreen:`#32cd32`,lightyellow:`#ffffe0`,lemonchiffon:`#fffacd`,beige:`#f5f5dc`,ivory:`#fffff0`,tan:`#d2b48c`,wheat:`#f5deb3`,peachpuff:`#ffdab9`,brown:`#a52a2a`,chocolate:`#d2691e`,sienna:`#a0522d`,peru:`#cd853f`,lightpink:`#ffb6c1`,hotpink:`#ff69b4`,deeppink:`#ff1493`,rosybrown:`#bc8f8f`,lightgray:`#d3d3d3`,lightgrey:`#d3d3d3`,darkgray:`#a9a9a9`,darkgrey:`#a9a9a9`,dimgray:`#696969`,dimgrey:`#696969`,gainsboro:`#dcdcdc`,whitesmoke:`#f5f5f5`,slategray:`#708090`,slategrey:`#708090`,darkblue:`#00008b`,darkgreen:`#006400`,darkred:`#8b0000`,darkorange:`#ff8c00`,darkviolet:`#9400d3`,darkcyan:`#008b8b`,darkkhaki:`#bdb76b`,lightcoral:`#f08080`,lightseagreen:`#20b2aa`,lightsteelblue:`#b0c4de`,lightgoldenrodyellow:`#fafad2`,mediumpurple:`#9370db`,mediumseagreen:`#3cb371`,mediumblue:`#0000cd`,cornflowerblue:`#6495ed`,dodgerblue:`#1e90ff`,goldenrod:`#daa520`,thistle:`#d8bfd8`,violetred:`#d02090`,paleturquoise:`#afeeee`,powderblue:`#b0e0e6`},ve={blue:`#a5d8ff`,green:`#b2f2bb`,red:`#ffc9c9`,orange:`#ffd8a8`,violet:`#eebefa`,teal:`#96f2d7`,pink:`#fcc2d7`,yellow:`#ffec99`,gray:`#e9ecef`};function ye(e){let t=(e>>16&255)/255,n=(e>>8&255)/255,r=(e&255)/255,i=Math.max(t,n,r),a=Math.min(t,n,r),o=i-a,s=0;o>0&&(s=i===t?(n-r)/o%6:i===n?(r-t)/o+2:(t-n)/o+4,s=(s*60+360)%360);let c=(i+a)/2,l=o===0?0:o/(1-Math.abs(2*c-1));return{hue:s,saturation:l}}var be=/^(?:light|dark|medium|pale|deep|hot|dim|royal|sky|forest|sea|slate|steel)?(blue|green|red|orange|violet|purple|teal|pink|yellow|gray|grey)$/,xe={purple:`violet`,grey:`gray`};function R(e){let t=e.trim().toLowerCase(),n=be.exec(t);if(n)return xe[n[1]]??n[1];let r=_e[t],i=/^#?([0-9a-f]{6})$/i.exec(r??t);if(!i)return null;let{hue:a,saturation:o}=ye(parseInt(i[1],16));if(o<.12)return`gray`;let s=null,c=1/0;for(let[e,t]of Object.entries(ve)){if(e===`gray`)continue;let n=ye(parseInt(t.slice(1),16)).hue,r=Math.abs(a-n),i=Math.min(r,360-r);i<c&&(c=i,s=e)}return s}var Se=new Set(T),Ce=new Set([`rectangle`,`box`,`ellipse`,`circle`,`diamond`,`cylinder`,`hexagon`,`triangle`,`pentagon`,`octagon`,`plus`,`cross`,`star`,`heart`,`cloud`,`arrow-up`,`arrow-down`,`arrow-left`,`arrow-right`]),we=/^(tech|aws|gcp|azure)\/[a-z0-9-]+$/,Te=new Set([`lucide`,`tech`,`aws`,`gcp`,`azure`,`emoji`,`mood`]),Ee={frames:!1,shapes:!1};function De(e,t,n){let r=e.toLowerCase();if(r===`flow`||r===`animated`){t.flow=!0;return}if(r===`invisible`||r===`hidden`){t.invisible=!0;return}if(r===`shadow`){t.shadow=!0;return}if(F[r]){t.color=F[r];return}if(se[r]){t.shape=se[r],n.check.shapes&&!Ce.has(r)&&n.use({kind:`keyword`,written:e,ref:I(r),reading:`shape`});return}if(L[r]){t.fill=L[r];return}if(le[r]){t.corner=le[r];return}if(ue[r]){t.frame=ue[r],n.check.frames&&n.use({kind:`keyword`,written:e,ref:I(r),reading:`frame`});return}if(fe[r]){t.width=fe[r];return}if(me.has(r)){t.value=1;return}if(he.has(r)){t.value=0;return}let i=ge.get(r);if(i!==void 0){t.value=i;return}let a=/^(\d+(?:\.\d+)?)%$/.exec(r);if(a){t.value=Number(a[1])/100;return}if(/^\d*\.\d+$/.test(r)||/^[01]$/.test(r)){t.value=Number(r);return}let o=R(M(e));if(o){t.color=o;return}if(we.test(r)){t.icon=I(r),n.use({kind:`icon`,written:e,ref:t.icon});return}if(Se.has(r)){t.icon=r,n.use({kind:`icon`,written:e,ref:r});return}let s=n.push(`unknown attribute "${e}"`);n.use({kind:`unknown`,written:e,ref:I(r),diagnostic:s})}function z(e,n,r,a=Ee){let o={};if(!e||e.trim()===``)return o;let s=e=>{let t={line:n,message:e};return r.diagnostics.push(t),t},c={push:s,use:e=>{r.iconUses.push({...e,line:n})},check:a};for(let n of j(e,`,`)){let e=n.trim();if(!e)continue;let r=k(e,`:`);if(r===-1){De(e,o,c);continue}let a=e.slice(0,r).trim().toLowerCase(),l=M(e.slice(r+1)),u=l.toLowerCase();if(a===`icon`)o.icon=I(u),c.use({kind:`icon`,written:l,ref:o.icon});else if(Te.has(a)){let e=u.trim();s(`"${a}:${e}" reads as a key: value pair. For the icon, write `+(we.test(`${a}/${e}`)?`[${a}/${e}]`:`[icon: ${a}/${e}]`))}else if(a===`color`)o.color=F[u]??R(l)??void 0,o.color||s(`unknown color "${l}"`);else if(a===`shape`)o.shape=se[u],o.shape||s(`unknown shape "${l}"`);else if(a===`fill`||a===`colormode`)o.fill=L[u],o.fill||s(`unknown fill "${l}" (pastel, bold, outline)`);else if(a===`corner`||a===`corners`)o.corner=le[u],o.corner||s(`unknown corner "${l}" (sharp, rounded)`);else if(a===`frame`)o.frame=ue[u],o.frame||s(`unknown frame "${l}" (browser, phone, window)`);else if(a===`width`)o.width=fe[u],o.width||s(`unknown width "${l}"`);else if(a===`label`)o.label=l;else if(a===`labelcolor`||a===`textcolor`)o.labelColor=F[u]??R(l)??void 0,o.labelColor||s(`unknown label color "${l}"`);else if(a===`group`)o.group=l;else if(a===`head`)o.head=de[u],o.head||s(`unknown head "${l}" (arrow, circle or cross)`);else if(a===`link`||a===`href`||a===`url`)o.link=t(l)??void 0,l&&!o.link&&s(`unsafe or invalid link "${l}"`);else if(a===`active`||a===`value`){let e=Number(u.replace(`%`,``));Number.isFinite(e)?o.value=u.endsWith(`%`)?e/100:e:s(`"${a}" expects a number`)}else if(a===`score`){let e=Number(u);Number.isFinite(e)?o.score=e:s(`"score" expects a number ${i.min}-${i.max}`)}else s(`unknown attribute key "${a}"`)}return o}function Oe(e,t){let n=[],r={diagnostics:n,iconUses:[]},i=``,a=[],o=[],s={},c=t===`journey`,l=t===`timeline`,u=``,d,f=new Set,p=e=>{let t=e.match(/^"([^"]*)"\s*(?::\s*(.*))?$/);if(t)return{label:t[1].trim(),detail:t[2]?.trim()||void 0};let n=e.indexOf(`:`);return n<0?{label:M(e.trim())}:{label:M(e.slice(0,n).trim()),detail:e.slice(n+1).trim()||void 0}};return e.split(`
|
|
6
|
+
`).forEach((e,m)=>{let h=A(e),g=h.trim();if(g.length===0||g.toLowerCase()===t)return;let _=h.length-h.trimStart().length;if(l&&_>=2&&d){let e=g.match(/^[-*]\s+(.*)$/);if(e){let{rest:t}=P(e[1].trim()),n=M(t.trim());n.length>0&&(d.events||(d.events=d.detail?[d.detail]:[],d.detail=void 0),d.events.length<8&&d.events.push(n));return}}let v=g.match(/^(title|x|y)\s*:\s*(.*)$/i);if(v){let e=v[1].toLowerCase(),t=v[2].trim();if(e===`title`)i=M(t);else{let r=t.split(`|`).map(e=>M(e.trim()));r.length>=2?s[e]=r:n.push({line:m+1,message:`axis "${e}" needs two labels separated by | (e.g. x: Low | High)`})}return}let y=c||l?g.match(/^section\s+(.+)$/i):null;if(y){u=M(y[1].trim());return}let b=g.match(/^overlap\s+(.+?)\s*:\s*(.*)$/i);if(b){let e=b[1].split(/\s*[+&,]\s*/).map(e=>E(M(e.trim()))).filter(e=>e.length>0),t=M(b[2].trim());e.length>=2&&t.length>0?o.push({ids:e,label:t}):n.push({line:m+1,message:`overlap needs two set names and a label (overlap a + b: label)`});return}let x=g.match(/^[-*]\s+(.*)$/),{attrs:S,rest:C}=P(x?x[1].trim():g),{label:ee,detail:w}=p(C.trim());if(ee.length===0)return;let T=z(S,m+1,r),O=c&&w!==void 0&&/^\d+(\.\d+)?$/.test(w),k={id:D(E(ee)||`i${a.length}`,f),label:ee,detail:O?void 0:w,color:T.color,icon:T.icon,score:c?T.score??(O?Number(w):void 0):void 0,group:(c||l)&&u!==``?u:void 0};a.push(k),d=l?k:void 0}),{diagram:x({kind:`infographic`,variant:t,title:i,items:a,overlaps:o.length>0?o:void 0,axes:s.x||s.y?s:void 0}),diagnostics:n,iconUses:r.iconUses}}function ke(e){let t=[],n={diagnostics:t,iconUses:[]},r=``,i=``,a=[];e.split(`
|
|
7
|
+
`).forEach((e,t)=>{let o=A(e.replace(/\t/g,` `)),s=o.trim();if(s.length===0||s.toLowerCase()===`mindmap`)return;let c=s.match(/^(title|central|root|center)\s*:\s*(.*)$/i);if(c){let e=M(c[2].trim());c[1].toLowerCase()===`title`?r=e:i=e;return}let l=o.match(/^(\s*)[-*]\s+(.*)$/);if(l){let{attrs:e,rest:r}=P(l[2].trim()),i=M(r.trim());i.length>0&&a.push({indent:l[1].length,label:i,attrs:z(e,t+1,n)});return}i?a.push({indent:0,label:M(s),attrs:{}}):i=M(s)});let o=[],s=new Set,c=a.reduce((e,t)=>Math.min(e,t.indent),1/0),l=[];for(let e of a){if(e.indent<=c){let t=[];o.push({id:D(E(e.label)||`b${o.length}`,s),label:e.label,color:e.attrs.color,icon:e.attrs.icon,children:t}),l.length=0,l.push({indent:e.indent,children:t});continue}for(;l.length>1&&e.indent<=l[l.length-1].indent;)l.pop();let t=l[l.length-1];if(!t){let t=[];o.push({id:D(E(e.label)||`b${o.length}`,s),label:e.label,children:t}),l.push({indent:e.indent,children:t});continue}let n=[];t.children.push({label:e.label,icon:e.attrs.icon,children:n}),l.push({indent:e.indent,children:n})}return{diagram:x({kind:`mindmap`,title:r,central:i||r,branches:o}),diagnostics:t,iconUses:n.iconUses}}var Ae=[...Object.keys(a),`mindmap`,`gitgraph`,`gantt`,`sankey`,...g],B=[`<-.->`,`<-->`,`<..>`,`-.->`,`<-.-`,`<->`,`-->`,`<--`,`<..`,`..>`,`<-`,`->`,`<>`,`>`,`<`],je={"1:1":{value:`1:1`,swap:!1},"1:n":{value:`1:N`,swap:!1},"n:1":{value:`1:N`,swap:!0},"n:m":{value:`N:M`,swap:!1},"m:n":{value:`N:M`,swap:!1}},Me=[`1:1`,`1:N`,`N:1`,`N:M`],Ne={"|o":`zeroOrOne`,"||":`one`,"}o":`zeroOrMany`,"}|":`oneOrMany`},Pe={"o|":`zeroOrOne`,"||":`one`,"o{":`zeroOrMany`,"|{":`oneOrMany`};Object.fromEntries(Object.entries(Ne).map(([e,t])=>[t,e])),Object.fromEntries(Object.entries(Pe).map(([e,t])=>[t,e]));var Fe={};for(let[e,t]of Object.entries(Ne))for(let[n,r]of Object.entries(Pe))for(let[i,a]of[[`--`,!0],[`..`,!1]])Fe[`${e}${i}${n}`]={from:t,to:r,identifying:a};var Ie=Object.keys(Fe),Le=[`||--||`,`||--o{`,`|o--o{`,`||--|{`,`}|--o{`],Re={"<|--":{kind:`inheritance`,swap:!0},"--|>":{kind:`inheritance`,swap:!1},"<|..":{kind:`realization`,swap:!0},"..|>":{kind:`realization`,swap:!1},"--*":{kind:`composition`,swap:!0},"*--":{kind:`composition`,swap:!1},"--o":{kind:`aggregation`,swap:!0},"o--":{kind:`aggregation`,swap:!1},"..>":{kind:`dependency`,swap:!1},"<..":{kind:`dependency`,swap:!0}},ze=Object.keys(Re),Be=e=>e.includes(`.`)||e.includes(`--`),Ve=e=>e===`<-`||e===`<..`||e===`<--`||e===`<-.-`||e===`<`,He=e=>e===`<->`||e===`<..>`||e===`<-->`||e===`<-.->`||e===`<>`;function Ue(e){return/^[<\-.*o]/.test(e)}function We(e){return Ue(e)?e:` ${e} `}function Ge(e){return Ue(e)?e.length:e.length+2}function Ke(e,t,n=0){let r=O(e,t.map(We),n);return r?{index:r.index,token:t[r.needle]}:null}function qe(e,t){let n=[],r=null,i=0;for(;i<e.length;){let a=Ke(e,t,i);if(!a)break;let o=e.slice(i,a.index);r===null?r=o:n[n.length-1].segment=o,n.push({token:a.token,segment:``}),i=a.index+Ge(a.token)}return r===null?null:(n[n.length-1].segment=e.slice(i),{first:r,hops:n})}function Je(){return{diagnostics:[],iconUses:[],raw:{},family:null,title:``,direction:void 0,icons:void 0,kanban:!1,defaultFill:void 0,nodes:[],groups:[],edges:[],nodeByKey:new Map,edgeNamed:new Map,groupByKey:new Map,usedIds:new Set,groupStack:[],actors:[],messages:[],frames:[],blockStack:[],activations:[],activationOpen:new Map,notes:[],legendEntries:[],inLegend:!1,entities:[],relations:[],currentEntity:null,erdGroupStack:[],classHeader:!1,screens:[],currentScreen:null}}function V(e){return e.groupStack[e.groupStack.length-1]??null}function H(e){return e.family??`architecture`}function Ye(e){return{frames:!0,shapes:H(e)===`architecture`}}function U(e,t,n,r){let i=(r??t).toLowerCase(),a=r?e.nodeByKey.get(i):e.nodeByKey.get(i)??e.nodeByKey.get(t.toLowerCase());if(a){let t=e.nodes.find(e=>e.id===a);return t&&(t.icon??=n.icon,t.shape??=n.shape,t.color??=n.color,t.fill??=n.fill,t.corner??=n.corner,t.labelColor??=n.labelColor,t.shadow||=n.shadow,t.link??=n.link,t.group??=n.group?Xe(e,n.group):V(e)??void 0,n.label&&(t.label=n.label)),a}let o=D(r||E(t),e.usedIds);return e.nodes.push({id:o,label:n.label??t,icon:n.icon,shape:n.shape,color:n.color,fill:n.fill,corner:n.corner,labelColor:n.labelColor,shadow:n.shadow,link:n.link,group:n.group?Xe(e,n.group):V(e)??void 0}),e.nodeByKey.set(i,o),(!r||!e.nodeByKey.has(t.toLowerCase()))&&e.nodeByKey.set(t.toLowerCase(),o),n.label&&!e.nodeByKey.has(n.label.toLowerCase())&&e.nodeByKey.set(n.label.toLowerCase(),o),o}function Xe(e,t){let n=t.toLowerCase(),r=e.groupByKey.get(n);if(r)return r;let i=D(E(t),e.usedIds);return e.groups.push({id:i,label:t}),e.groupByKey.set(n,i),i}function Ze(e,t,n,r){let i=Xe(e,t),a=e.groups.find(e=>e.id===i);return a&&(a.icon??=n.icon,a.color??=n.color,a.frame??=n.frame,r&&!a.parent&&r!==i&&(a.parent=r),n.label&&(a.label=n.label)),i}function W(e,t,n,r,i,a){let o=(n??t).toLowerCase(),s=e.nodeByKey.get(o)??e.nodeByKey.get(t.toLowerCase());if(s){let t=e.actors.find(e=>e.id===s);return t&&(r&&(t.label=r),t.icon??=i,t.link??=a),s}let c=D(n??E(t),e.usedIds);return e.actors.push({id:c,label:r??t,icon:i,link:a}),e.nodeByKey.set(o,c),e.nodeByKey.set(t.toLowerCase(),c),r&&!e.nodeByKey.has(r.toLowerCase())&&e.nodeByKey.set(r.toLowerCase(),c),c}function Qe(e,t,n){let{attrs:r,rest:i}=P(t.trim()),a=z(r,n,e,Ye(e)),{id:o,name:s}=G(i);if(!s)return null;if(e.nodeByKey.get((o??s).toLowerCase())??e.nodeByKey.get(s.toLowerCase()))return U(e,s,a,o);let c=e.groupByKey.get(s.toLowerCase());if(c)return c;let l=U(e,s,a,o);return e.edgeNamed.set(l,{name:s,line:n}),l}function $e(e,t){let n=Array.from({length:t.length+1},(e,t)=>t);for(let r=1;r<=e.length;r+=1){let i=[r];for(let a=1;a<=t.length;a+=1)i[a]=Math.min(n[a]+1,i[a-1]+1,n[a-1]+(e[r-1]===t[a-1]?0:1));n=i}return n[t.length]}function et(e,t){let n=/(?:\d+|\s[a-z])$/;return n.test(e)&&n.test(t)&&e.replace(n,``)===t.replace(n,``)}function tt(e){let t=new Set,n=e=>e.toLowerCase().replace(/\s+/g,` `).trim();for(let[r,{name:i,line:a}]of e.edgeNamed){let o=n(i);if(o.length<5)continue;let s=e.nodes.find(i=>{let a=i.id??``;if(a===r||e.edgeNamed.has(a)&&!t.has(a))return!1;let s=n(i.label??``);return s!==``&&s!==o&&!et(o,s)&&o!==`${s}s`&&s!==`${o}s`&&$e(o,s)===1});t.add(r),s&&e.diagnostics.push({line:a,message:`"${i}" is a new node, not "${s.label??``}": nodes match by exact name, so this edge drew a second box. Write "${s.label??``}" if it is the same one.`,severity:`warning`})}}function nt(e,t,n){let{attrs:r,rest:i}=P(t.trim()),a=z(r,n,e),{id:o,name:s}=G(i);return s?W(e,s,o,a.label,a.icon,a.link):null}function rt(e,t){let n=e.nodeByKey.get(t.toLowerCase());if(n)return n;let r=t.lastIndexOf(`.`);return r>0?e.nodeByKey.get(t.slice(0,r).trim().toLowerCase())??null:null}function G(e){let t=k(e,`=`);if(t===-1)return{name:M(e)};let n=e.slice(0,t).trim(),r=M(e.slice(t+1));return/^[A-Za-z0-9_-]+$/.test(n)?{id:n.toLowerCase(),name:r}:{name:M(e)}}var it=[...Ie,...ze,...B,...Object.keys(je).flatMap(e=>[e,e.toUpperCase()])],at=[...B];function ot(e,t){let n=k(e,`:`,t);for(;n!==-1&&(e[n+1]===`:`||e[n-1]===`:`);)n=k(e,`:`,e[n+1]===`:`?n+2:n+1);return n}function st(e,t,n){let r=H(e)===`erd`?it:at,i=Ke(t,r);if(!i)return!1;let a=ot(t,i.index+Ge(i.token)),o=a===-1?void 0:t.slice(a+1).trim()||void 0,s={};if(o!==void 0&&H(e)!==`erd`){let t=P(o);t.attrs!==null&&(s=z(t.attrs,n,e),o=t.rest.trim()||void 0)}let c=qe(a===-1?t:t.slice(0,a),r);if(!c)return!1;if(H(e)===`sequence`){let t=nt(e,c.first,n),r=nt(e,c.hops[0].segment,n);if(!t||!r)return e.diagnostics.push({line:n,message:`message needs both ends`,severity:`error`}),!0;c.hops.length>1&&e.diagnostics.push({line:n,message:`one message per line in sequence diagrams`});let i=c.hops[0].token,a=Ve(i);return e.messages.push({from:a?r:t,to:a?t:r,label:o??``,reply:Be(i)||void 0,bidirectional:He(i)||void 0}),!0}if(H(e)===`erd`){let t=M(c.first),r=c.hops[0],i=M(r.segment),a=rt(e,t),s=rt(e,i);if(!a||!s)return e.diagnostics.push({line:n,message:`relation references an undeclared table (${a?i:t})`,severity:`error`}),!0;let l=Re[r.token],u=Fe[r.token],d=u||l?void 0:je[r.token.toLowerCase()],f=l?l.swap:d?.swap;return c.hops.length>1&&e.diagnostics.push({line:n,message:`one relation per line in ERDs`}),e.relations.push({from:f?s:a,to:f?a:s,cardinality:d?.value,fromCard:u?.from,toCard:u?.to,identifying:u&&!u.identifying?!1:void 0,kind:l?.kind,label:o}),!0}let l=j(c.first,`,`).map(t=>Qe(e,t,n)).filter(e=>e!==null);for(let t of c.hops){let r=t.token,i=j(t.segment,`,`).map(t=>Qe(e,t,n)).filter(e=>e!==null);if(l.length===0||i.length===0)return e.diagnostics.push({line:n,message:`edge needs both ends`,severity:`error`}),!0;for(let t of l)for(let n of i)e.edges.push({from:Ve(r)?n:t,to:Ve(r)?t:n,label:o,dashed:Be(r)||void 0,bidirectional:He(r)||void 0,color:s.color,flow:s.flow||void 0,head:s.head,invisible:s.invisible||void 0,back:Ve(r)||void 0});l=i}return!0}var ct={"+":`public`,"-":`private`,"#":`protected`,"~":`package`},lt=new Set([`(`,`<`,`[`,`{`]),ut=new Set([`)`,`>`,`]`,`}`]);function dt(e){let t=[],n=0,r=!1,i=``;for(let a of e){if(a===`"`)r=!r;else if(!r&<.has(a))n+=1;else if(!r&&ut.has(a))n=Math.max(0,n-1);else if(!r&&n===0&&/\s/.test(a)){i&&t.push(i),i=``;continue}i+=a}return i&&t.push(i),t}function ft(e,t,n){if(e.currentEntity){let r=e.currentEntity,i=dt(t.replace(/,$/,``));if(i.length===0)return!0;let a=M(i[0]);if(/^-{2,}$/.test(a)&&i.length===1)return r.methods??=[],!0;let o=/^([+\-#~])(.+)$/.exec(a),s=o?ct[o[1]]:void 0,c=(o?o[2]:a).replace(/:$/,``),l,u;for(let t of i.slice(1)){let r=t.toLowerCase();r===`pk`||r===`fk`?u=r:l?e.classHeader?l=`${l} ${t}`:e.diagnostics.push({line:n,message:`extra field token "${t}"`}):l=M(t)}let d={name:c,type:l,key:u,visibility:s};return r.methods===void 0?(r.fields??=[]).push(d):r.methods.push(d),!0}let r=/^group\b([^{]*)\{$/i.exec(t),i=r?P(r[1].trim()):null;if(i&&M(i.rest)){let t=z(i.attrs,n,e);return e.erdGroupStack.push(Ze(e,M(i.rest),t,null)),!0}if(t.endsWith(`{`)||/\{\s*\}$/.test(t)){let r=/\{\s*\}$/.test(t),{attrs:i,rest:a}=P(t.replace(/\{\s*\}?$/,``).trim()),o=z(i,n,e),{id:s,name:c}=G(a);if(!c)return e.diagnostics.push({line:n,message:`table needs a name`,severity:`error`}),!0;let l=D(s??E(c),e.usedIds),u={id:l,label:o.label??c,color:o.color,fields:[],group:e.erdGroupStack[e.erdGroupStack.length-1]};return e.entities.push(u),e.nodeByKey.set((s??c).toLowerCase(),l),e.nodeByKey.set(c.toLowerCase(),l),r||(e.currentEntity=u),!0}return st(e,t,n)||e.diagnostics.push({line:n,message:`expected a table or relation`,severity:`error`}),!0}function pt(e){let t=e.raw;t.kind=`erd`,t.entities=e.entities,t.relations=e.relations,t.groups=e.groups,t.variant=e.classHeader?`class`:void 0}function mt(e,t,n){let r=/^(loop|alt|opt|par|break)\b(.*)\{$/.exec(t);if(r)return e.blockStack.push({kind:r[1],label:r[2].trim()||r[1],start:e.messages.length}),!0;let i=/^note\s+(over|left of|right of)\s+(.+?)\s*:\s*(.*)$/i.exec(t);if(i){let t=i[1].toLowerCase().startsWith(`over`)?`over`:i[1].toLowerCase().startsWith(`left`)?`left`:`right`,r=j(i[2],`,`).map(e=>e.trim()).filter(e=>e.length>0).map(t=>W(e,M(t)));return r.length===0?e.diagnostics.push({line:n,message:`note needs a lifeline`}):e.notes.push({text:i[3].trim(),actors:r,placement:t,after:e.messages.length-1}),!0}let a=/^(activate|deactivate)\s+(.+)$/i.exec(t);if(a){let t=W(e,M(a[2]));if(a[1].toLowerCase()===`activate`)if(e.activationOpen.has(t))e.diagnostics.push({line:n,message:`"${a[2]}" is already active`});else{let n=e.messages[e.messages.length-1],r=n&&(n.from===t||n.to===t);e.activationOpen.set(t,r?e.messages.length-1:e.messages.length)}else{let r=e.activationOpen.get(t);r===void 0?e.diagnostics.push({line:n,message:`deactivate without activate for "${a[2]}"`}):(e.activationOpen.delete(t),e.messages.length>r&&e.activations.push({actor:t,from:r,to:e.messages.length-1}))}return!0}if(st(e,t,n))return!0;let{attrs:o,rest:s}=P(t),c=z(o,n,e),{id:l,name:u}=G(s);return u&&W(e,u,l,c.label,c.icon,c.link),!0}function ht(e){let t=e.raw;t.kind=`sequence`,t.actors=e.actors,t.messages=e.messages,t.frames=e.frames,t.activations=e.activations,t.notes=e.notes}function gt(e,t,n){let r=/^screen\b(.*)\{$/i.exec(t);if(r){let{attrs:t,rest:i}=P(r[1].trim()),a=z(t,n,e);return e.currentScreen={name:M(i)||`Screen ${e.screens.length+1}`,frame:a.frame??`phone`,controls:[]},e.screens.push(e.currentScreen),!0}if(!e.currentScreen)return e.diagnostics.push({line:n,message:"expected `screen Name { … }`",severity:`error`}),!0;let i=e.currentScreen,{attrs:a,rest:o}=P(t),s=z(a,n,e),c=k(o,`:`),l=(c===-1?o:o.slice(0,c)).trim().toLowerCase(),u=c===-1?void 0:o.slice(c+1).trim()||void 0;return pe.has(l)?(i.controls??=[],i.controls.push({kind:l,label:s.label??u,width:s.width,value:s.value}),!0):(e.diagnostics.push({line:n,message:`unknown widget "${l}"`,severity:`error`}),!0)}function _t(e){let t=e.raw;t.kind=`wireframe`,t.screens=e.screens}var K={bar:`bar`,column:`bar`,xychart:`bar`,xy:`bar`,line:`line`,area:`area`,scatter:`scatter`,pie:`pie`,donut:`donut`,doughnut:`donut`,radar:`radar`,quadrant:`quadrant`},vt=[...new Set(Object.values(K))],yt=new Set([`chart`,`pie`,`xychart`,`radar`,...Object.keys(K)]);function bt(e){let t=e.trim().toLowerCase().split(/\s+/),n=t[0];return n===`chart`?K[t[1]??``]??`bar`:K[n]??`bar`}function xt(e){return j(e,`,`).map(e=>M(e.trim())).filter(e=>e.length>0)}function St(e){let t=/^\[?\s*([-\d.]+)\s*,\s*([-\d.]+)\s*\]?$/.exec(e.trim());return t?[t[1],t[2]]:null}function Ct(e){let t=[],n=e.split(`
|
|
8
|
+
`),r=n.findIndex(e=>A(e).trim().length>0);if(r===-1)return{spec:null,diagnostics:t};let i=bt(A(n[r]).trim()),a,o,s,c,l,u,d=null,f=[],p=[],m=i===`quadrant`,h=[``,``,``,``],g=[];for(let e=r+1;e<n.length;e+=1){let r=A(n[e]).trim();if(!r)continue;let i=r.toLowerCase();if(i===`showvalues`||i===`values`||i===`showdata`){c=!0;continue}if(i===`stacked`){l=!0;continue}if(i===`horizontal`){u=!0;continue}let _=r.indexOf(`:`);if(_===-1){t.push({line:e+1,message:`chart rows are "label: values"; skipped "${r}"`});continue}let v=r.slice(0,_).trim(),y=v.toLowerCase(),b=r.slice(_+1).trim();if(y===`title`){a=M(b);continue}if(y===`x-axis`||y===`xaxis`||y===`x`){o=M(b);continue}if(y===`y-axis`||y===`yaxis`||y===`y`){s=M(b);continue}if(m){let n=/^quadrant-([1-4])$/.exec(y);if(n){h[Number(n[1])-1]=M(b);continue}let i=St(b);if(i){g.push([M(v),i[0],i[1]]);continue}t.push({line:e+1,message:`quadrant rows are "label: [x, y]"; skipped "${r}"`});continue}if(y===`categories`||y===`axis`||y===`labels`){d=xt(b);continue}let x=/^series\s+(.+)$/i.exec(v),S=M((x?x[1]:v).trim()),C=xt(b);if(C.length===0){t.push({line:e+1,message:`"${v}" has no numeric values`});continue}d||x?f.push({name:S,values:C}):p.push({label:S,values:C})}let _=m?[[``,`x`,`y`],...g]:Tt(d,f,p);return _.length<2?(t.push({line:0,message:`chart has no data rows`,severity:`error`}),{spec:null,diagnostics:t}):{spec:{chartType:i,title:a,xTitle:o,yTitle:s,cells:_,showValues:c,stacked:l,horizontal:u,showLegend:m?void 0:wt(i,_,f.filter(e=>e.name).length)||void 0,quadrantLabels:m&&h.some(Boolean)?h:void 0},diagnostics:t}}function wt(e,t,n){return e===`pie`||e===`donut`?t.slice(1).some(e=>(e[0]??``).trim().length>0):e===`radar`?n>=1:n>=2}function Tt(e,t,n){if(e&&t.length>0)return[[``,...t.map(e=>e.name||`Value`)],...e.map((e,n)=>[e,...t.map(e=>e.values[n]??``)])];if(t.length>0){let e=Math.max(...t.map(e=>e.values.length)),n=[``,...t.map(e=>e.name||`Value`)],r=[];for(let n=0;n<e;n+=1)r.push([`${n+1}`,...t.map(e=>e.values[n]??``)]);return[n,...r]}if(n.length>0){let e=Math.max(...n.map(e=>e.values.length));return[e<=1?[``,`Value`]:[``,...Array.from({length:e},(e,t)=>`Series ${t+1}`)],...n.map(t=>[t.label,...Array.from({length:e},(e,n)=>t.values[n]??``)])]}return[]}function Et(e){let t=Math.max(0,e.cells.length-1);if(e.chartType===`quadrant`)return`a quadrant chart · ${t} ${t===1?`point`:`points`}`;let n=Math.max(0,e.cells[0].length-1),r=n===1?`1 series`:`${n} series`;return`a ${e.chartType} chart · ${t} ${t===1?`row`:`rows`} · ${r}`}var Dt=new Set([...Ae,...yt]),Ot=new Set(g),kt=new Set([`[*]`,`start`,`begin`,`initial`]),At=new Set([`end`,`final`,`stop`,`done`]);function jt(e,t){if(e===`flowchart`||e===`bpmn`||e===`orgchart`){t.shape??=`rectangle`;return}if(e!==`statemachine`)return;let n=t.id??``,r=(t.label??``).toLowerCase();kt.has(n)||kt.has(r)?(t.shape??=`circle`,t.fill??=`bold`,t.color??=`gray`):At.has(n)||At.has(r)?t.shape??=`double-circle`:t.shape??=`ellipse`}function Mt(e,t,n){let r=a[t.toLowerCase()];if(r&&e.family===null&&e.nodes.length===0&&e.actors.length===0&&e.entities.length===0&&e.screens.length===0&&!e.title){e.family=r;let n=t.toLowerCase();return e.classHeader=n===`class`||n===`uml`,!0}if(e.inLegend&&!t.startsWith(`}`)){let r=k(t,`:`);return r===-1?(e.diagnostics.push({line:n,message:"legend rows are `swatch: meaning`",severity:`error`}),!0):(e.legendEntries.push({swatch:M(t.slice(0,r)),label:t.slice(r+1).trim()}),!0)}if(t.startsWith(`}`)){let r=t.slice(1).trim();if(e.inLegend)return e.inLegend=!1,!0;if(H(e)===`sequence`&&e.blockStack.length>0){let t=e.blockStack.pop();e.messages.length>t.start?e.frames.push({kind:t.kind,label:t.label,from:t.start,to:e.messages.length-1}):e.diagnostics.push({line:n,message:`empty ${t.kind} block`});let i=/^(else|and)\b(.*)\{$/.exec(r);return i?e.blockStack.push({kind:i[1]===`and`?`par`:`alt`,label:i[2].trim()||i[1],start:e.messages.length}):r&&e.diagnostics.push({line:n,message:`unexpected "${r}" after }`,severity:`error`}),!0}return e.currentEntity?(e.currentEntity=null,!0):e.erdGroupStack.length>0?(e.erdGroupStack.pop(),!0):e.currentScreen?(e.currentScreen=null,!0):e.groupStack.length>0?(e.groupStack.pop(),!0):(e.diagnostics.push({line:n,message:`unmatched }`,severity:`error`}),!0)}if(/^legend\b.*\{$/i.test(t))return e.inLegend=!0,!0;let i=/^direction\s+(right|down|left|up)$/i.exec(t);if(i&&!e.currentEntity&&!e.currentScreen)return e.direction=i[1].toLowerCase(),!0;if(/^kanban$/i.test(t)&&!e.currentEntity&&!e.currentScreen)return e.kanban=!0,!0;let o=/^title\s+(\S.*)$/i.exec(t);if(o&&!e.title&&!e.currentEntity&&!e.currentScreen)return e.title=M(o[1].trim()),!0;let s=/^(colorMode|styleMode|typeface|autoNumber)\b\s*:?\s*(.*)$/i.exec(t);if(s&&!e.currentEntity&&!e.currentScreen){let t=s[1].toLowerCase(),r=s[2].trim().toLowerCase();return t===`colormode`&&L[r]?e.defaultFill=L[r]:e.diagnostics.push({line:n,message:`${s[1]} isn't supported; skipped`}),!0}let c=/^(title|direction|icons)\s*:\s*(.+)$/i.exec(t);if(c&&!e.currentEntity&&!e.currentScreen){let t=c[1].toLowerCase(),r=c[2].trim();if(t===`title`)e.title=M(r);else if(t===`icons`){let t=r.toLowerCase();t===`inside`||t===`badge`||t===`hanging`?e.icons=t===`inside`?`inside`:`badge`:e.diagnostics.push({line:n,message:`icons "${r}" is not supported (badge, inside)`})}else{let t=r.toLowerCase();t===`down`||t===`right`||t===`up`||t===`left`?e.direction=t:e.diagnostics.push({line:n,message:`direction "${r}" is not supported (right, down, left, up)`})}return!0}return!1}function Nt(e,t,n){let r=t.replace(/^group\b/i,``),i=r!==t,a=(i?/^(.*)\{$/:/^([^{]+)\{$/).exec(r);if(a){let{attrs:t,rest:r}=P(a[1].trim()),i=z(t,n,e),o=M(r)||`Group ${e.groups.length+1}`;return e.groupStack.push(Ze(e,o,i,V(e))),!0}let o=(i?/^([^{]*)\{(.*)\}$/:/^([^{]+)\{(.+)\}$/).exec(r);if(o){let{attrs:t,rest:r}=P(o[1].trim()),i=z(t,n,e),a=Ze(e,M(r)||`Group ${e.groups.length+1}`,i,V(e));for(let t of j(o[2],`,`)){let r=M(t);if(r){let t=U(e,r,{});e.edgeNamed.delete(t),Pt(e,t,a,n)}}return!0}if(st(e,t,n))return!0;let s=V(e),c=s?j(t,`,`):[t];for(let t of c){let r=t.trim();if(!r)continue;let{attrs:i,rest:a}=P(r),o=z(i,n,e,Ye(e)),{id:c,name:l}=G(a);if(!l){e.diagnostics.push({line:n,message:`expected a node name`,severity:`error`});continue}let u=U(e,l,o,c);e.edgeNamed.delete(u),s&&Pt(e,u,s,n)}return!0}function Pt(e,t,n,r){let i=e.nodes.find(e=>e.id===t);if(!i)return;let a=i.group;if(i.group=n,a===void 0||a===n)return;let o=t=>e.groups.find(e=>e.id===t)?.label??t;e.diagnostics.push({line:r,message:`"${i.label}" is already in group "${o(a)}" — one name is one node, so it moved to "${o(n)}". For a separate node with the same label, give it its own id: \`${E(o(n))}-${i.id} = ${i.label}\` (and use that id in its edges)`})}function Ft(e){let t=H(e),n=e.raw;if(n.title=e.title,n.legend=e.legendEntries.length>0?e.legendEntries:void 0,t===`sequence`)ht(e);else if(t===`erd`)pt(e);else if(t===`wireframe`)_t(e);else{n.kind=`graph`;let r=t===`flowchart`||t===`bpmn`||t===`orgchart`;n.direction=e.direction??(r?`down`:`right`),n.icons=e.icons,n.swimlanes=t===`bpmn`||void 0,n.kanban=e.kanban?!0:void 0,n.variant=t===`orgchart`?`orgchart`:t===`statemachine`?`statemachine`:void 0;for(let n of e.nodes)jt(t,n);if(e.defaultFill)for(let t of e.nodes)t.fill??=e.defaultFill;tt(e),n.nodes=e.nodes,n.groups=e.groups,n.edges=e.edges;for(let t of e.groups){let n=e.nodes.some(e=>e.group===t.id),r=e.groups.some(e=>e.parent===t.id&&e.id!==t.id);!n&&!r&&e.diagnostics.push({line:0,message:`group "${t.label}" has no members`})}}return{diagram:x(n),diagnostics:e.diagnostics,iconUses:e.iconUses}}function It(e){let t=e.split(`
|
|
9
|
+
`).map(e=>A(e).trim().toLowerCase()).find(e=>e.length>0);if(t===`mindmap`)return ke(e);if(t===`gitgraph`)return ae(e);if(t===`gantt`)return re(e);if(t===`sankey`)return oe(e);let n=(t??``).split(/\s+/)[0];if(Ot.has(n))return Oe(e,n);if(yt.has(n)){let{spec:t,diagnostics:n}=Ct(e);return{diagram:x({kind:`graph`}),chart:t??void 0,diagnostics:n,iconUses:[]}}let r=Je(),i=e.split(`
|
|
10
|
+
`);for(let e=0;e<i.length;e+=1){let t=e+1,n=A(i[e]).trim();if(n&&!Mt(r,n,t)){if(H(r)===`sequence`){mt(r,n,t);continue}if(H(r)===`erd`){ft(r,n,t);continue}if(H(r)===`wireframe`){gt(r,n,t);continue}Nt(r,n,t)}}for(let e of r.blockStack)r.messages.length>e.start&&r.frames.push({kind:e.kind,label:e.label,from:e.start,to:r.messages.length-1}),r.diagnostics.push({line:i.length,message:`unclosed ${e.kind} block`,severity:`error`});for(let[e,t]of r.activationOpen)r.messages.length>t&&r.activations.push({actor:e,from:t,to:r.messages.length-1});return Ft(r)}var Lt={architecture:`architecture`,graph:`architecture`,flowchart:`flowchart`,flow:`flowchart`,bpmn:`flowchart`,sequence:`sequence`,erd:`erd`,wireframe:`flowchart`},Rt={"<-->":`<-->`,"-->":`-->`,"<--":`<--`,"<>":`<->`,"--":`-->`,">":`->`,"<":`<-`,"-":`->`},zt={"<>":`N:M`,">":`N:1`,"<":`1:N`,"-":`1:1`},Bt=/^[\w"][\w" -]*\s+[\w(),]+\s+(pk|fk)\s*$/i,Vt=/^(loop|alt|opt|par|break)\b.*\{\s*$/i,Ht=/^(activate|deactivate)\s+\S/i,Ut=/\[[^\]]*\b(diamond|oval|circle|cylinder|hexagon|parallelogram|trapezoid|triangle|cloud|star|queue|callout|note|sticky)\b[^\]]*\]/i,Wt=[`<-->`,`<..>`,`<->`,`-->`,`<--`,`<..`,`..>`,`<-`,`->`,`<>`,`>`,`<`,`--`,`-`];function Gt(e){let t=0,n=-1;for(let r=0;r<e.length;r+=1){let i=e[r];if(i===`[`)t+=1;else if(i===`]`)t=Math.max(0,t-1);else if(i===`:`&&t===0){n=r;break}}let r=(n>=0?e.slice(0,n):e).trim(),i=e=>e.replace(/\s*\[[^\]]*\]\s*$/,``).trim();for(let e of Wt){let t=r.indexOf(` ${e} `);if(t>=0)return{src:i(r.slice(0,t)),dst:i(r.slice(t+e.length+2))}}return null}function Kt(e){let t=0,n=0,r=0,i=0,a=0,o=new Set;for(let s of e){if(!s)continue;Bt.test(s)&&(t+=1),(Vt.test(s)||Ht.test(s))&&(n+=1),Ut.test(s)&&(i+=1),/\{\s*$/.test(s)&&!Vt.test(s)&&!s.startsWith(`}`)&&(a+=1);let e=Gt(s);e&&e.src&&e.dst&&(r+=1,o.add(e.src.toLowerCase()),o.add(e.dst.toLowerCase()),e.src.toLowerCase()===e.dst.toLowerCase()&&(n+=2))}return t>0?`erd`:n>0||r>=3&&i===0&&a===0&&o.size>0&&r/o.size>=1.3?`sequence`:e.some(e=>/icon:\s*(aws|gcp|azure|tech)[-/]/i.test(e))?`architecture`:`flowchart`}function qt(e,t){let n=[...new Set([...Object.keys(t),...B])].sort((e,t)=>t.length-e.length),r=new Set,i=``,a=!1,o=0,s=0;for(;s<e.length;){let c=e[s];if(c===`"`){a=!a,i+=c,s+=1;continue}if(a){i+=c,s+=1;continue}if(c===`[`){o+=1,i+=c,s+=1;continue}if(c===`]`){o=Math.max(0,o-1),i+=c,s+=1;continue}if(o>0){i+=c,s+=1;continue}let l=!1;for(let a of n){if(!e.startsWith(a,s))continue;let n=t[a];if(n===void 0){i+=a,s+=a.length,l=!0;break}let o=s===0?` `:e[s-1],c=s+a.length>=e.length?` `:e[s+a.length];if(!(!/\s/.test(o)||!/\s/.test(c))){i+=n,r.add(a),s+=a.length,l=!0;break}}l||(i+=c,s+=1)}return{text:i,rewrote:r}}function Jt(e,t,n){let{rest:r,attrs:i}=P(e.slice(0,e.lastIndexOf(`{`)).trimEnd());if(i===null)return e;let a=[];for(let e of j(i,`,`)){let r=e.trim();if(!r)continue;let i=r.indexOf(`:`),o=i===-1?null:r.slice(0,i).trim().toLowerCase();if(o===`color`||o===`label`){a.push(r);continue}let s=i===-1?r.toLowerCase():null;if(s&&(F[s]||R(M(r)))){a.push(r);continue}n.push({line:t,message:o===`icon`?`table icons aren't supported; dropped "${r.slice(i+1).trim()}"`:`"${r}" isn't supported on tables; dropped`})}let o=r.trim();return a.length>0?`${o} [${a.join(`, `)}] {`:`${o} {`}function Yt(e){for(let t of j(e,`,`)){let e=t.trim(),n=e.indexOf(`:`);if(n!==-1&&e.slice(0,n).trim().toLowerCase()===`label`)return M(e.slice(n+1))}return M(e)}function Xt(e){let t=e.split(`
|
|
11
|
+
`),n=t.map(e=>A(e).trim()),r=Lt[(n.find(Boolean)??``).toLowerCase()];if(r)return{code:e,family:r,diagnostics:[]};let i=Kt(n),a=[],o=[i,``],s=!1;for(let e=0;e<t.length;e+=1){let n=o.length+1,r=t[e],c=A(r),l=r.slice(c.length),u=c.trim(),d=c.slice(0,c.length-c.trimStart().length);if(!u){o.push(r);continue}let f=/^(styleMode|typeface|autoNumber)\b/i.exec(u);if(f&&!s){a.push({line:n,message:`${f[1]} isn't supported; removed`}),o.push(`${d}// ${u} (not supported)${l}`);continue}if(/^colorMode\b/i.test(u)&&!s){o.push(`${d}${u.replace(/^colorMode\s*:?\s*/i,`colorMode `)}${l}`);continue}if(i===`erd`){if(s){u.startsWith(`}`)&&(s=!1),o.push(r);continue}if(u.endsWith(`{`)){o.push(`${d}${Jt(u,n,a)}${l}`),s=!0;continue}let{text:e}=qt(c,zt);o.push(`${e}${l}`);continue}if(i===`sequence`){let e=/^(loop|alt|opt|par|break)\s*\[(.*)\]\s*\{$/i.exec(u);if(e){let t=Yt(e[2]);o.push(`${d}${e[1].toLowerCase()}${t?` ${t}`:``} {${l}`);continue}let t=/^\}\s*(else|and)\s*\[(.*)\]\s*\{$/i.exec(u);if(t){let e=Yt(t[2]);o.push(`${d}} ${t[1].toLowerCase()}${e?` ${e}`:``} {${l}`);continue}}let{text:p,rewrote:m}=qt(c,Rt);(m.has(`-`)||m.has(`--`))&&a.push({line:n,message:`plain lines render as arrows`}),o.push(`${p}${l}`)}return{code:o.join(`
|
|
12
|
+
`),family:i,diagnostics:a}}function Zt(e){let t=e.split(`
|
|
13
|
+
`).map(e=>A(e).trim()).filter(Boolean);if(t.length===0||Dt.has(t[0].toLowerCase().split(/\s+/)[0]))return!1;let n=!1;for(let e of t){if(/(^|\s)(-->|<--|<-->)(\s|$)/.test(e)){n=!0;continue}if(/->|\.\.>|<\.\./.test(e)||/(^|\s)<-(\s|$)/.test(e)||/(^|\s)(1:1|1:N|N:1|N:M|M:N)(\s|$)/i.test(e))return!1;/(^|\s)(>|<|<>|-)\s/.test(e)&&(n=!0),/^(colorMode|styleMode|typeface|autoNumber)\b/i.test(e)&&(n=!0),/\[[^\]]*icon\s*:[^\]]*\]\s*\{$/.test(e)&&(n=!0),/^(loop|alt|opt|par|break)\s*\[label\s*:/i.test(e)&&(n=!0)}return n}function Qt(e){let t=e.trim(),n=/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i.exec(t);return n&&(t=`#${n[1]}${n[1]}${n[2]}${n[2]}${n[3]}${n[3]}`),R(t)}function $t(e){let t=/fill:\s*([^,;]+)/i.exec(e),n=/stroke:\s*([^,;]+)/i.exec(e),r=t?.[1]??n?.[1];return!r||/none|transparent/i.test(r)?n&&n!==t?Qt(n[1]):null:Qt(r)}function q(e){if(/%%\{/.test(e))return e;let t=e.indexOf(`%%`);return t>=0?e.slice(0,t):e}function en(e){return!Number.isInteger(e)||e<1||e>1114111?``:String.fromCodePoint(e)}function J(e){let t=e.trim();t.length>=2&&/^["'].*["']$/.test(t)&&(t=t.slice(1,-1).trim());let n=t.startsWith("`")&&t.endsWith("`");return t=t.replace(/<br\s*\/?>/gi,` `).replace(/^`+|`+$/g,``),n&&(t=t.replace(/\*\*([^*]+)\*\*/g,`$1`).replace(/\*([^*]+)\*/g,`$1`).replace(/__([^_]+)__/g,`$1`).replace(/_([^_]+)_/g,`$1`)),t.replace(/\*\*/g,``).replace(/\\"/g,`"`).replace(/&?#x([0-9a-f]+);/gi,(e,t)=>en(parseInt(t,16))).replace(/&?#(\d+);/g,(e,t)=>en(Number(t))).replace(/\b(fa|fab|fas|far|fal|fad|fak):[a-z0-9-]+/gi,``).replace(/\s+/g,` `).trim()}function tn(e){let t=[],n=``,r=!1;for(let i of e){let e=r?`${n} ${i.trim()}`:i;(e.match(/"/g)??[]).length%2==1?(n=e,r=!0):(t.push(e),n=``,r=!1)}return r&&t.push(n),t}function Y(e){return/[:=[\]{}<>]|->|--|\/\//.test(e)?`"${e.replace(/"/g,``)}"`:e}function X(e){return/[[\]{}]/.test(e)||/\/\//.test(e)?`"${e.replace(/"/g,``)}"`:e}function nn(e,t){if(!t||/^title:/m.test(e))return e;let n=e.split(`
|
|
14
|
+
`);return n.splice(1,0,`title: ${t}`),n.join(`
|
|
15
|
+
`)}function Z(e){return e.join(`
|
|
16
|
+
`).replace(/\n{3,}/g,`
|
|
17
|
+
|
|
18
|
+
`).trimEnd()+`
|
|
19
|
+
`}function rn(e){let t=e.replace(/%%\{[\s\S]*?\}%%/g,``),n,r=0,i=/^\s*---\r?\n([\s\S]*?)\r?\n---\r?\n?/.exec(t);if(i){let e=/^\s*title:\s*(.+)$/m.exec(i[1]);e&&(n=J(e[1].trim())),t=t.slice(i[0].length),r=i[0].split(`
|
|
20
|
+
`).length-1}return{lines:t.split(`
|
|
21
|
+
`),title:n,dropped:r}}var an={TD:`down`,TB:`down`,BT:`up`,LR:`right`,RL:`left`},on=[{open:`(((`,close:`)))`,shape:`double-circle`},{open:`([`,close:`])`,shape:`ellipse`},{open:`[[`,close:`]]`,shape:`predefined-process`},{open:`[(`,close:`)]`,shape:`cylinder`},{open:`((`,close:`))`,shape:`circle`},{open:`{{`,close:`}}`,shape:`hexagon`},{open:`[/`,close:`/]`,shape:`parallelogram`},{open:`[\\`,close:`\\]`,shape:`parallelogram`},{open:`[/`,close:`\\]`,shape:`trapezoid`},{open:`[\\`,close:`/]`,shape:`trapezoid`},{open:`[`,close:`]`,shape:null},{open:`(`,close:`)`,shape:null},{open:`{`,close:`}`,shape:`diamond`},{open:`>`,close:`]`,shape:`chevron`}],sn={rect:`rectangle`,proc:`rectangle`,process:`rectangle`,rectangle:`rectangle`,rounded:`rectangle`,event:`rectangle`,"lin-rect":`rectangle`,"lin-proc":`rectangle`,"lined-process":`rectangle`,"lined-rectangle":`rectangle`,"shaded-process":`rectangle`,"div-rect":`rectangle`,"div-proc":`rectangle`,"divided-process":`rectangle`,"divided-rectangle":`rectangle`,"win-pane":`rectangle`,"internal-storage":`rectangle`,"window-pane":`rectangle`,text:`rectangle`,odd:`rectangle`,"tag-rect":`rectangle`,"tag-proc":`rectangle`,"tagged-process":`rectangle`,"tagged-rectangle":`rectangle`,"st-rect":`multi-process`,processes:`multi-process`,procs:`multi-process`,"stacked-rectangle":`multi-process`,fork:`fork-join`,join:`fork-join`,stadium:`ellipse`,pill:`ellipse`,terminal:`ellipse`,delay:`delay`,"half-rounded-rectangle":`delay`,hourglass:`ellipse`,collate:`ellipse`,display:`ellipse`,"curv-trap":`ellipse`,"curved-trapezoid":`ellipse`,"fr-rect":`predefined-process`,subproc:`predefined-process`,subprocess:`predefined-process`,subroutine:`predefined-process`,"framed-rectangle":`predefined-process`,diam:`diamond`,decision:`diamond`,diamond:`diamond`,question:`diamond`,cyl:`cylinder`,cylinder:`cylinder`,database:`cylinder`,db:`cylinder`,"lin-cyl":`cylinder`,"lined-cylinder":`cylinder`,disk:`cylinder`,"h-cyl":`cylinder`,"horizontal-cylinder":`cylinder`,das:`cylinder`,"bow-rect":`cylinder`,"bow-tie-rectangle":`cylinder`,"stored-data":`cylinder`,datastore:`cylinder`,"data-store":`cylinder`,"lean-r":`parallelogram`,"lean-right":`parallelogram`,"in-out":`parallelogram`,"lean-l":`parallelogram`,"lean-left":`parallelogram`,"out-in":`parallelogram`,flag:`parallelogram`,"paper-tape":`parallelogram`,"trap-b":`trapezoid`,"trapezoid-bottom":`trapezoid`,trapezoid:`trapezoid`,priority:`trapezoid`,"trap-t":`trapezoid`,"trapezoid-top":`trapezoid`,"inv-trapezoid":`trapezoid`,manual:`trapezoid`,doc:`document`,document:`document`,"lin-doc":`document`,"lined-document":`document`,"tag-doc":`document`,"tagged-document":`document`,docs:`multi-document`,documents:`multi-document`,"st-doc":`multi-document`,"stacked-document":`multi-document`,tri:`triangle`,triangle:`triangle`,extract:`triangle`,"flip-tri":`triangle`,"flipped-triangle":`triangle`,"manual-file":`triangle`,cloud:`cloud`,bang:`star`,bolt:`bolt`,"com-link":`bolt`,"lightning-bolt":`bolt`,brace:`note`,"brace-l":`note`,"brace-r":`note`,braces:`note`,comment:`note`,"notch-rect":`card`,card:`card`,"notched-rectangle":`card`,"notch-pent":`pentagon`,"loop-limit":`pentagon`,"notched-pentagon":`pentagon`,"sl-rect":`manual-input`,"manual-input":`manual-input`,"sloped-rectangle":`manual-input`,hex:`hexagon`,hexagon:`hexagon`,prepare:`hexagon`,circle:`circle`,circ:`circle`,"sm-circ":`circle`,"small-circle":`circle`,start:`circle`,"dbl-circ":`double-circle`,"double-circle":`double-circle`,"fr-circ":`double-circle`,"framed-circle":`double-circle`,stop:`octagon`,"f-circ":`circle`,junction:`circle`,"filled-circle":`circle`,"cross-circ":`circle`,summary:`circle`,"crossed-circle":`circle`,icon:`rectangle`,img:`rectangle`},cn=/\s*((?:<|o|x)?(?:-\.+-*|-{2,}|={2,}|~{3,})(?:>|o|x)?)\s*(?:\|([^|]*)\|)?\s*/,ln=new RegExp(cn.source,`g`);function un(e,t){let n=/^classDef\s+(\S+)\s+(.+)$/i.exec(e);if(n){let e=$t(n[2]);return e&&t.classColor.set(n[1],e),t.classAnim&&/animation/i.test(n[2])&&t.classAnim.add(n[1]),!0}let r=/^style\s+(\S+)\s+(.+)$/i.exec(e);if(r){let e=$t(r[2]);return e&&t.styleColor.set(r[1],e),!0}let i=/^class\s+(.+?)\s+(\S+)$/i.exec(e);if(i){let e=t.keyOf??(e=>e);for(let n of i[1].split(`,`).map(e=>e.trim()).filter(Boolean))t.nodeClass.set(e(n),i[2]);return!0}return!1}function dn(e){let t=e.trim(),n=/[ox]$/.exec(t),r=/^~{3,}$/.test(t);return{dashed:t.includes(`.`),bidir:/^[<ox]/.test(t)&&/[>ox]$/.test(t),head:n?n[0]===`o`?`circle`:`cross`:null,invisible:r}}function fn(e){return e.replace(/--\s+([^|]+?)\s+-->/g,`-->|$1|`).replace(/==\s+([^|]+?)\s+==>/g,`==>|$1|`).replace(/-\.\s+([^|]+?)\s+\.->/g,`-.->|$1|`).replace(/--\s+([^|]+?)\s+---/g,`---|$1|`).replace(/==\s+([^|]+?)\s+===/g,`===|$1|`).replace(/-\.\s+([^|]+?)\s+\.-/g,`-.-|$1|`)}function pn(e){let t=[],n=0,r=``,i=``;for(let a of e)r?(i+=a,a===r&&(r=``)):a===`"`||a===`'`?(r=a,i+=a):a===`[`||a===`(`||a===`{`?(n+=1,i+=a):a===`]`||a===`)`||a===`}`?(n=Math.max(0,n-1),i+=a):a===`&`&&n===0?(t.push(i),i=``):i+=a;return t.push(i),t}function mn(e,t,n,r){let i=e.trim();if(!i)return null;let a=/^([A-Za-z0-9_-]+)@\{(.+)\}$/.exec(i);if(a){let e=/shape:\s*"?([A-Za-z0-9-]+)"?/.exec(a[2]),i=/label:\s*("([^"]*)"|'([^']*)'|[^,}]+)/.exec(a[2]),o=/icon:\s*"?([^",}]+)"?/.exec(a[2]);if(!e&&!i&&!o)return null;let s=e?sn[e[1].toLowerCase()]??null:null,c=i?J(i[1]):null,l=o?hn(o[1]):null;return Q(a[1],c,s,r,t,n,l)}i=i.replace(/:::[A-Za-z0-9_-]+\s*$/,``).trim();let o=i,s=null,c=null,l=null;for(let e of on){let t=i.indexOf(e.open);if(t>0&&i.endsWith(e.close)){o=i.slice(0,t).trim(),l=i.slice(t+e.open.length,i.length-e.close.length),s=J(l),c=e.shape;break}}if(o=o.replace(/^["']|["']$/g,``).trim(),!o)return null;let u=null,d=l?/\b(fa[bsrld]?|fak):([a-z0-9-]+)/i.exec(l):null;return d&&(u=hn(`${d[1]}:${d[2]}`),s=s&&s.length>0?s:null),Q(o,s,c,r,t,n,u)}function Q(e,t,n,r,i,a,o=null){let s=i.get(e);return s?(t&&!s.label&&(s.label=t),n&&!s.shape&&(s.shape=n),o&&!s.icon&&(s.icon=o)):(i.set(e,{id:e,label:t,shape:n,group:r,icon:o}),a.push(e)),e}function hn(e){let t=e.trim().replace(/^["']|["']$/g,``);return(t.includes(`:`)?t.slice(t.lastIndexOf(`:`)+1):t).replace(/^fa-/,``)}function gn(e,t){let n=/^linkStyle\s+(default|[\d,\s]+)\s+(.+)$/i.exec(e);if(!n)return!1;let r=$t(n[2]),i=/animation/i.test(n[2]);if(/^default$/i.test(n[1].trim()))return r&&(t.linkDefaultColor=r),i&&(t.linkDefaultAnim=!0),!0;for(let e of n[1].split(`,`).map(e=>Number(e.trim())))Number.isInteger(e)&&(r&&t.linkColor.set(e,r),i&&t.linkAnim.add(e));return!0}function _n(e,t){let n=/^subgraph\s+(.+)$/i.exec(e);if(!n)return!1;let r=/^(\S+)\s*\[(.+)\]$/.exec(n[1].trim()),i=J((r?r[2]:n[1]).trim()),a=t.groupStack[t.groupStack.length-1]??null;return t.groupStack.push(i),t.groups.includes(i)||(t.groups.push(i),t.groupParents.set(i,a)),!0}function vn(e,n,r,i){let a=/^click\s+(\S+)\s+(.+)$/i.exec(e);if(!a)return!1;let o=a[2].trim().replace(/^href\s+/i,``),s=/^["']([^"']+)["']/.exec(o);return s?t(s[1])?(r.nodeLink.set(a[1],s[1]),!0):(i.push({line:n,message:`click link "${s[1]}" isn't imported (a node link needs a full URL)`}),!0):(i.push({line:n,message:`click callbacks aren't imported`}),!0)}function yn(e,t,n){let{nodes:r,order:i,edges:a}=t,o=[];for(let n of e.matchAll(/([A-Za-z0-9_-]+)@(?=(?:<|o|x)?[-=.])/g))t.edgeIds.add(n[1]),o.push(n[1]);let s=a.length,c=fn(e.replace(/\b[A-Za-z0-9_-]+@(?=(?:<|o|x)?[-=.])/g,``));ln.lastIndex=0;let l=[],u=0,d;for(;d=ln.exec(c);)l.push({node:c.slice(u,d.index),link:{...dn(d[1]),label:(d[2]??``).trim()}}),u=ln.lastIndex;l.push({node:c.slice(u)});let f=[];for(let e=0;e<l.length;e+=1){let t=pn(l[e].node).map(e=>mn(e,r,i,n)).filter(e=>e!==null);if(f.length>0&&t.length>0&&l[e-1].link){let n=l[e-1].link;for(let e of f)for(let r of t)a.push({src:e,dst:r,dashed:n.dashed,bidir:n.bidir,head:n.head,invisible:n.invisible,label:n.label})}t.length>0&&(f=t)}if(o.length>0&&a.length>s){let e=Array.from({length:a.length-s},(e,t)=>s+t);for(let n of o)t.edgeIndices.set(n,e)}}function bn(e){let{edges:t,nodeClass:n,classColor:r,linkColor:i,linkAnim:a}=e;for(let t of e.nodes.values()){let i=n.get(t.id);t.color=e.styleColor.get(t.id)??(i?r.get(i)??null:null),t.link=e.nodeLink.get(t.id)??null}for(let[i,a]of e.edgeIndices){let o=n.get(i),s=e.edgeAnimIds.has(i)||(o?e.classAnim.has(o):!1),c=o?r.get(o):void 0;for(let e of a)s&&(t[e].flow=!0),c&&(t[e].color=c)}for(let[e,n]of i)t[e]&&(t[e].color=n);for(let e of a)t[e]&&(t[e].flow=!0);let{linkDefaultColor:o,linkDefaultAnim:s}=e;(o||s)&&t.forEach((e,t)=>{o&&!i.has(t)&&(e.color??=o),s&&!a.has(t)&&(e.flow||=!0)})}function xn(e,t,n,r=`flowchart`){let i={nodes:new Map,order:[],edges:[],groups:[],groupStack:[],groupParents:new Map,edgeIds:new Set,classColor:new Map,classAnim:new Set,styleColor:new Map,nodeClass:new Map,edgeAnimIds:new Set,edgeIndices:new Map,linkColor:new Map,linkAnim:new Set,linkDefaultColor:null,linkDefaultAnim:!1,nodeLink:new Map},a=!1;for(let t=0;t<e.length;t+=1){let r=q(e[t]).trim();if(!r)continue;if(a){r.includes(`}`)&&(a=!1);continue}let o=/^acc(?:Title|Descr)\b\s*(\{)?/i.exec(r);if(o){o[1]&&!r.includes(`}`)&&(a=!0);continue}if(r.includes(`:::`))for(let e of r.matchAll(/([A-Za-z0-9_-]+)\s*(?:\[[^\]]*\]|\([^)]*\)|\{[^}]*\})?:::([A-Za-z0-9_-]+)/g))i.nodeClass.set(e[1],e[2]);let s=/^([A-Za-z0-9_-]+)\s*(?:@\{|\{|\[)/.exec(r);if(s&&i.edgeIds.has(s[1])){/animate|animation|\bfast\b|\bslow\b/i.test(r)&&i.edgeAnimIds.add(s[1]);continue}if(un(r,i)||gn(r,i)||_n(r,i))continue;if(/^end$/i.test(r)){i.groupStack.pop();continue}if(/^direction\s+/i.test(r)||vn(r,t+1,i,n))continue;let c=i.groupStack[i.groupStack.length-1]??null;if(!cn.test(r)||/^[A-Za-z0-9_-]+@\{/.test(r)){mn(r,i.nodes,i.order,c);continue}yn(r,i,c)}bn(i);let{nodes:o,order:s,edges:c,groups:l,groupParents:u}=i;return $(r,t,o,s,c,l,u)}function Sn(e,t,n){return xn(e,t,n,`bpmn`)}function $(e,t,n,r,i,a,o){let s=[e];t&&t!==`down`&&e===`flowchart`&&s.push(`direction: ${t}`),t&&t!==`right`&&(e===`statemachine`||e===`architecture`)&&s.push(`direction: ${t}`),s.push(``);let c=(e,t)=>{let n=[];e.shape&&n.push(e.shape),e.color&&n.push(e.color),e.icon&&n.push(`icon: ${e.icon}`),e.link&&n.push(`link: ${e.link}`);let r=n.length>0?` [${n.join(`, `)}]`:``;return e.label!==null&&e.label!==e.id&&e.label!==``?`${t}${Y(e.id)} = ${X(e.label)}${r}`:n.length>0?`${t}${Y(e.id)}${r}`:null},l=new Set;for(let e of i)l.add(e.src),l.add(e.dst);for(let e of r){let t=n.get(e);if(t.group)continue;let r=c(t,``);r?s.push(r):l.has(e)||s.push(Y(t.id))}if(o){let e=new Map;for(let t of a){let n=o.get(t)??null,r=a.includes(n)?n:null,i=e.get(r)??[];i.push(t),e.set(r,i)}let t=(i,a)=>{s.push(`${a}group ${X(i)} {`);for(let e of r){let t=n.get(e);t.group===i&&s.push(c(t,`${a} `)??`${a} ${Y(e)}`)}for(let n of e.get(i)??[])t(n,`${a} `);s.push(`${a}}`)};for(let n of e.get(null)??[])t(n,``)}else for(let e of a){s.push(`group ${X(e)} {`);for(let t of r){let r=n.get(t);r.group===e&&s.push(c(r,` `)??` ${Y(t)}`)}s.push(`}`)}i.length>0&&s.push(``);for(let e of i){let t=e.bidir?e.dashed?`<-->`:`<->`:e.dashed?`-->`:`->`,n=[];e.color&&n.push(e.color),e.flow&&n.push(`flow`),e.invisible&&n.push(`invisible`),e.head&&n.push(`head: ${e.head}`);let r=n.length>0?` [${n.join(`, `)}]`:``,i=e.label?` : ${e.label}`:r?` :`:``;s.push(`${Y(e.src)} ${t} ${Y(e.dst)}${i}${r}`)}return Z(s)}var Cn={cloud:{shape:`cloud`},database:{shape:`cylinder`},disk:{shape:`cylinder`},internet:{icon:`globe`},server:{icon:`server`}};function wn(e,t){let n=new Map,r=[],i=[],a=new Map,o=[],s=new Map,c=e=>{let t=Cn[e?.toLowerCase()]??{};return{shape:t.shape??null,iconAttr:t.icon?`[icon: ${t.icon}]`:``}};for(let t of e){let e=q(t).trim();if(!e||/^architecture/i.test(e))continue;let l=/^group\s+(\w+)\s*(?:\(([^)]*)\))?\s*\[([^\]]*)\]/i.exec(e);if(l){let e=l[1];a.set(e,J(l[3])),o.includes(e)||o.push(e);continue}let u=/^(?:service|junction)\s+(\w+)\s*(?:\(([^)]*)\))?\s*(?:\[([^\]]*)\])?\s*(?:in\s+(\w+))?/i.exec(e);if(u){let e=u[1],t=u[2]??``,i=u[3]?J(u[3]):e,a=u[4]??null,{shape:o}=c(t);Q(e,i,o,a,n,r),a&&s.set(e,a);continue}let d=/^(\w+)(?:\{group\})?(?::[LRTB])?\s*(<?-->?|--)\s*(?:[LRTB]:)?(\w+)(?:\{group\})?$/.exec(e);if(d){let e=d[1],t=d[3];Q(e,null,null,null,n,r),Q(t,null,null,null,n,r),i.push({src:e,dst:t,dashed:!1,bidir:d[2].startsWith(`<`),label:``})}}for(let[e,t]of s){let r=n.get(e);r&&(r.group=a.get(t)??t)}return $(`architecture`,null,n,r,i,o.map(e=>a.get(e)??e))}var Tn={person:`actor`,person_ext:`actor`,systemdb:`cylinder`,systemdb_ext:`cylinder`,containerdb:`cylinder`,containerdb_ext:`cylinder`,componentdb:`cylinder`,systemqueue:`queue`,systemqueue_ext:`queue`,containerqueue:`queue`,componentqueue:`queue`};function En(e){let t=[],n=0,r=``,i=``;for(let a of e)r?(a===r&&(r=``),i+=a):a===`"`||a===`'`?(r=a,i+=a):a===`(`?(n+=1,i+=a):a===`)`?(--n,i+=a):a===`,`&&n===0?(t.push(i.trim()),i=``):i+=a;return i.trim()&&t.push(i.trim()),t}function Dn(e,t){let n=new Map,r=[],i=[],a=[],o=[],s=``,c=0;for(let t=0;t<e.length;t+=1){let l=e[t],u=q(l).trim();if(!u||/^C4\w+/i.test(u)||/^Update\w+/i.test(u))continue;if(u===`}`){o.pop();continue}let d=/^title\s+(.+)$/i.exec(u);if(d){s=J(d[1]);continue}let f=/^(\w+)\s*\(([\s\S]*?)\)\s*(\{)?$/.exec(u);if(!f)continue;let p=f[1],m=En(f[2]),h=p.toLowerCase();if(/boundary/i.test(p)){let e=J(m[1]??m[0]??`Boundary`);o.push(e),a.includes(e)||a.push(e);continue}if(/^(rel|birel)/i.test(p)){let e=J(m[0]),t=J(m[1]),n=J(m[2]??``);i.push({src:e,dst:t,dashed:!1,bidir:/^birel/i.test(p),label:n});continue}let g=J(m[0]),_=J(m[1]??m[0]),v=Tn[h]??null;!c&&J(m[2]??``)&&(c=t+1),Q(g,_,v,o[o.length-1]??null,n,r)}return c&&t.push({line:c,message:`C4 descriptions aren't imported — each box keeps its name only`}),nn($(`architecture`,null,n,r,i,a),s)}function On(e,t){let n=e=>/\*|n|\.\.\*|\.\.n|[2-9]/i.test(e),r=n(e),i=n(t);return!e&&!t?null:r&&i?`N:M`:!r&&i?`1:N`:r&&!i?`N:1`:`1:1`}function kn(e){let t=/^[+\-#~]/.exec(e.trim()),n=t?t[0]:``,r=e.trim().slice(n.length).replace(/[*$]\s*$/,``).replace(/~[^~]*~/g,``).trim();if(!r)return null;let i=/^([A-Za-z0-9_]+)\s*\([^)]*\)\s*(.*)$/.exec(r);if(i){let e=i[2].trim(),t=`${n}${i[1]}()`;return e?`${Y(t)} ${N(e)}`:Y(t)}let a=r.split(/\s+/).filter(Boolean);return a.length===0?null:a.length===1?Y(`${n}${a[0]}`):`${Y(`${n}${a[a.length-1]}`)} ${N(a.slice(0,-1).join(` `))}`}function An(e,t,n=`erd`){let r=[n,``],i=[...e],a=[];for(let e of i)e.group&&!a.includes(e.group)&&a.push(e.group);let o=(e,t)=>{let n=e.label?`${Y(e.id)} = ${X(e.label)}`:Y(e.id),i=e.methods&&e.methods.length>0?[...e.fields,`---`,...e.methods]:e.fields;if(i.length===0){r.push(`${t}${n} { }`);return}r.push(`${t}${n} {`);for(let e of i)r.push(`${t} ${e}`);r.push(`${t}}`)};for(let e of a){r.push(`group ${X(e)} {`);for(let t of i)t.group===e&&o(t,` `);r.push(`}`)}for(let e of i)e.group||o(e,``);return t.length>0&&(r.push(``),r.push(...t)),Z(r)}function jn(e){let t=/^([|o}{]+)(?:--|\.\.)([|o}{]+)$/.exec(e);if(!t)return{value:null,swap:!1};let n=/[}{]/.test(t[1]),r=/[}{]/.test(t[2]);return n&&r?{value:`N:M`,swap:!1}:!n&&r?{value:`1:N`,swap:!1}:n&&!r?{value:`1:N`,swap:!0}:{value:`1:1`,swap:!1}}function Mn(e,t){let n=[],r=new Map,i=[],a=null,o=(e,t)=>{let i=r.get(e);return i?t&&!i.label&&(i.label=t):(i={id:e,label:t??null,fields:[]},n.push(i),r.set(e,i)),i};for(let n=0;n<e.length;n+=1){let r=q(e[n]).trim();if(!r||/^direction\b/i.test(r))continue;let s=/^(style|classDef|class)\b/i.exec(r);if(s){a||t.push({line:n+1,message:`'${s[1]}' is not imported — table colours don't carry over`});continue}if(r===`}`){a=null;continue}if(a){let e=r.replace(/"[^"]*"\s*$/,``).trim().split(/\s+/).filter(Boolean);if(e.length===0)continue;let t=e[0],n=e[1]??t,i=e.slice(2).map(e=>e.toLowerCase()),o=i.includes(`pk`)?` pk`:i.includes(`fk`)?` fk`:``;a.fields.push(`${Y(n)} ${t}${o}`);continue}let c=/^([A-Za-z0-9_-]+)(?:\[("?)([^\]]+)\2\])?\s*\{$/.exec(r);if(c){a=o(c[1],c[3]?J(c[3]):null);continue}let l=Nn(r);if(l){let e=Fe[l.token]?l.token:(()=>{let{value:e,swap:t}=jn(l.token);return t&&([l.from,l.to]=[l.to,l.from]),e??`->`})();o(l.from),o(l.to),i.push(`${Y(l.from)} ${e} ${Y(l.to)}${l.label?` : ${l.label}`:``}`);continue}if(/^[A-Za-z0-9_-]+$/.test(r)){o(r);continue}t.push({line:n+1,message:`couldn't parse '${r}'`})}return An(n,i)}function Nn(e){let t=/^(\S+)\s+([|o}{]+(?:--|\.\.)[|o}{]+)\s+(\S+)(?:\s*:\s*(.+))?$/.exec(e);return t?{from:t[1],to:t[3],token:t[2],label:t[4]?t[4].trim():``}:null}function Pn(e,t){let n=[],r=[],i=null;for(let t of e){let e=q(t).trim();if(!e)continue;if(e===`}`){i&&n.push(i),i=null;continue}let a=/^(\w*requirement|requirement|element|designConstraint)\s+([A-Za-z0-9_]+)\s*\{(.+)\}$/i.exec(e);if(a){let e={id:a[2],kind:/element/i.test(a[1])?`element`:`requirement`,text:``,fields:[]};for(let t of a[3].split(/[;,]/)){let n=/^\s*(\w+)\s*:\s*(.+?)\s*$/.exec(t);if(!n)continue;let r=n[1].toLowerCase(),i=J(n[2].trim());r===`text`||r===`name`?e.text=i:e.fields.push(`${r} ${N(i)}`)}n.push(e);continue}let o=/^(\w*requirement|requirement|element|designConstraint)\s+([A-Za-z0-9_]+)\s*\{$/i.exec(e);if(o){i={id:o[2],kind:/element/i.test(o[1])?`element`:`requirement`,text:``,fields:[]};continue}if(i){let t=/^(\w+)\s*:\s*(.+)$/.exec(e);if(t){let e=t[1].toLowerCase(),n=J(t[2].trim());e===`text`||e===`name`?i.text=n:i.fields.push(`${e} ${N(n)}`)}continue}let s=/^(\S+)\s*-\s*(\w+)\s*->\s*(\S+)$/.exec(e),c=/^(\S+)\s*<-\s*(\w+)\s*-\s*(\S+)$/.exec(e);s?r.push({from:Y(s[1]),to:Y(s[3]),label:s[2]}):c&&r.push({from:Y(c[3]),to:Y(c[1]),label:c[2]})}let a=new Set(n.map(e=>Y(e.id)));for(let e of r)for(let t of[e.from,e.to])a.has(t)||(a.add(t),n.push({id:t,kind:`requirement`,text:``,fields:[]}));let o=[`erd`,``];for(let e of n){o.push(`${Y(e.id)} {`),e.text&&o.push(` text ${N(e.text)}`);for(let t of e.fields)o.push(` ${t}`);o.push(`}`)}return r.length>0&&(o.push(``),o.push(...r.map(e=>`${e.from} -> ${e.to} : ${e.label}`))),Z(o)}var Fn=[`<|..`,`..|>`,`<|--`,`--|>`,`*--`,`--*`,`o--`,`--o`,`..>`,`<..`,`-->`,`<--`,`..`,`--`];function In(e,t){let n=new Map,r=[],i=null,a=null,o=(e,t)=>{let r=e.replace(/^["']|["']$/g,``),i=n.get(r);return i?t&&(i.label=t):(i={id:r,label:t??r,fields:[],methods:[],group:a??void 0},n.set(r,i)),i},s=(e,t)=>{(t.includes(`(`)?e.methods:e.fields).push(t)};for(let c=0;c<e.length;c+=1){let l=q(e[c]).trim();if(!l||/^(direction|click|callback|link|note)\b/i.test(l))continue;let u=/^(cssClass|style|classDef)\b/i.exec(l);if(u){i||t.push({line:c+1,message:`'${u[1]}' is not imported — class colours don't carry over`});continue}let d=/^namespace\s+("?)([^"{]+)\1\s*\{?$/i.exec(l);if(d){a=d[2].trim();continue}if(l===`}`){i?i=null:a=null;continue}let f=i?null:/^<<(.+?)>>\s+(\S+)$/.exec(l);if(f){let e=n.get(Y(f[2]));e&&e.fields.unshift(Y(`«${f[1].trim()}»`));continue}if(i){let e=/^<<(.+)>>$/.exec(l);if(e){i.fields.push(Y(`«${e[1].trim()}»`));continue}let t=kn(l);t&&s(i,t);continue}let p=/^class\s+([A-Za-z0-9_~"'.]+)(?:\["([^"]+)"\])?\s*(\{)?$/.exec(l);if(p){let e=o(p[1].replace(/~[^~]*~/g,``),p[2]);p[3]&&(i=e);continue}let m=/^([A-Za-z0-9_~"'.]+)\s*:\s*(.+)$/.exec(l);if(m&&!/[<|*o.>-]{2}/.test(l.split(`:`)[0])){let e=o(m[1].replace(/~[^~]*~/g,``)),t=/^<<(.+)>>$/.exec(m[2].trim());if(t)e.fields.push(Y(`«${t[1].trim()}»`));else{let t=kn(m[2]);t&&s(e,t)}continue}let h=Ln(l);if(h){o(h.from),o(h.to);let e=Re[h.token]?h.token:On(h.leftCard,h.rightCard)??`->`,t=h.label;r.push(`${Y(h.from)} ${e} ${Y(h.to)}${t?` : ${t}`:``}`);continue}t.push({line:c+1,message:`couldn't parse '${l}'`})}return An([...n.values()].map(e=>({id:e.id,label:e.label===e.id?null:e.label,fields:e.fields,methods:e.methods,group:e.group})),r,`class`)}function Ln(e){let t=e.indexOf(`:`),n=t>=0?e.slice(0,t):e,r=t>=0?e.slice(t+1).trim():``;for(let e of Fn){let t=n.indexOf(e);if(t<=0)continue;let i=n.slice(0,t).trim(),a=n.slice(t+e.length).trim(),o=``,s=``,c=/"([^"]*)"\s*$/.exec(i);c&&(o=c[1],i=i.slice(0,c.index).trim());let l=/^"([^"]*)"/.exec(a);l&&(s=l[1],a=a.slice(l[0].length).trim());let u=i.replace(/~[^~]*~/g,``).trim(),d=a.replace(/~[^~]*~/g,``).trim();if(u&&d)return{from:u,to:d,token:e,label:r,leftCard:o,rightCard:s}}return null}var Rn=[{token:`<<-->>`,out:`<->`},{token:`<<->>`,out:`<->`},{token:`-->>`,out:`-->`},{token:`--x`,out:`-->`},{token:`--)`,out:`-->`},{token:`->>`,out:`->`},{token:`-->`,out:`-->`},{token:`-x`,out:`->`},{token:`-)`,out:`->`},{token:`->`,out:`->`}];function zn(e){let t=e.indexOf(`:`),n=t>=0?e.slice(0,t):e,r=t>=0?e.slice(t+1).trim():``;for(let{token:e,out:t}of Rn){let i=n.indexOf(e);if(i>0){let a=n.slice(0,i).trim().replace(/[+-]$/,``).trim(),o=n.slice(i+e.length).trim().replace(/^[+-]/,``).trim();if(a&&o)return{src:a,arrow:t,dst:o,text:r}}}return null}function Bn(e,t){let n=new Map;for(let r=0;r<e.length;r+=1){let i=q(e[r]).trim(),a=/^link\s+([^:]+):\s*(?:[^@]*@\s*)?(\S+)\s*$/i.exec(i);if(a){let e=a[1].trim();n.has(e)||n.set(e,a[2].trim());continue}let o=/^links\s+([^:]+):\s*(\{.*\})\s*$/i.exec(i);if(o){let e=o[1].trim(),i=[...o[2].matchAll(/"[^"]*"\s*:\s*"([^"]*)"/g)].map(e=>e[1]);if(i.length===0)continue;n.has(e)||n.set(e,i[0]),i.length>1&&t.push({line:r+1,message:`'${e}' has ${i.length} links; only the first is kept`})}}return n}function Vn(e,t){let n=[`sequence`,``],r=Bn(e,t),i=e=>{let t=r.get(e.trim());return t?` [link: ${t}]`:``},a=0,o=[],s=!1,c=0,l=()=>` `.repeat(a);for(let r=0;r<e.length;r+=1){let u=q(e[r]).trim();if(!u)continue;if(/^autonumber\b/i.test(u)){s=!0;continue}if(/^(box|rect)\b/i.test(u)){o.push(`skip`),t.push({line:r+1,message:`'${u.split(/\s+/)[0]}' is not imported — its contents are kept`});continue}if(/^links?\s+[^:]+:/i.test(u))continue;if(/^properties\b/i.test(u)){t.push({line:r+1,message:`'properties' is not imported`});continue}if(/^destroy\s+(?!participant\b|actor\b)\S+/i.test(u)){t.push({line:r+1,message:`'destroy' is not imported — the lifeline runs to the end`});continue}let d=/^(?:create|destroy)\s+(?:participant|actor)\s+(.+)$/i.exec(u)??/^(?:participant|actor)\s+(.+)$/i.exec(u);if(d){let e=/^(.+?)\s+as\s+(.+)$/i.exec(d[1].trim());if(e){let t=e[1].trim(),r=i(t)||i(J(e[2]));n.push(`${l()}${t} = ${J(e[2])}${r}`)}else{let e=J(d[1].trim());n.push(`${l()}${e}${i(e)}`)}continue}let f=/^(loop|alt|opt|par|break|critical)\b\s*(.*)$/i.exec(u);if(f){let e=f[1].toLowerCase()===`critical`?`opt`:f[1].toLowerCase(),t=f[2].trim();n.push(`${l()}${e}${t?` ${t}`:``} {`),o.push(`emit`),a+=1;continue}let p=/^(else|and|option)\b\s*(.*)$/i.exec(u);if(p){a=Math.max(0,a-1);let e=p[1].toLowerCase()===`and`?`and`:`else`,t=p[2].trim();n.push(`${l()}} ${e}${t?` ${t}`:``} {`),a+=1;continue}if(/^end$/i.test(u)){if(o.pop()===`skip`)continue;a=Math.max(0,a-1),n.push(`${l()}}`);continue}let m=/^note\s+(over|left of|right of)\s+([^:]+):\s*(.*)$/i.exec(u);if(m){let e=m[1].toLowerCase(),t=m[2].split(`,`).map(e=>e.trim()).join(`, `);n.push(`${l()}note ${e} ${t} : ${m[3].trim()}`);continue}if(/^(activate|deactivate)\s+\S/i.test(u)){n.push(`${l()}${u}`);continue}let h=zn(u);if(h){let e=s?`${c+=1}. ${h.text??``}`.trim():h.text,t=e?` : ${e}`:``;n.push(`${l()}${h.src} ${h.arrow} ${h.dst}${t}`);continue}t.push({line:r+1,message:`couldn't parse '${u}'`})}return Z(n)}function Hn(e,t){let n=[`sequence`,``];for(let r=0;r<e.length;r+=1){let i=q(e[r]).trim();if(!i||/^zenuml$/i.test(i)||i===`{`||i===`}`)continue;let a=/^(?:@\w+\s+)?(?:participant\s+)?([A-Za-z0-9_]+)(?:\s+as\s+"?([^"]+)"?)?$/i.exec(i),o=/^([A-Za-z0-9_]+)\s*(->|=>|-->)\s*([A-Za-z0-9_]+)\s*:\s*(.+)$/.exec(i);if(o){let e=o[2]===`-->`?`-->`:`->`;n.push(`${o[1]} ${e} ${o[3]} : ${o[4].trim()}`);continue}if(/\b(if|else|while|for|forEach|opt|loop|par|try|catch|finally|return|new)\b/.test(i)){t.push({line:r+1,message:`ZenUML control '${i}' is simplified on import`});continue}a&&/^(participant|@)/i.test(i)&&n.push(a[2]?`${a[1]} = ${J(a[2])}`:a[1])}return Z(n)}function Un(e,t){return e===null?t:`${E(e)}-${t}`}function Wn(e,t,n){let r=new Map,i=[],a=[],o=[],s=new Map,c=0,l=[],u=new Map,d=new Map,f=new Map,p=new Map,m=new Map,h=()=>l[l.length-1]?.title??null,g=e=>{let t=r.get(e);if(t)return t;let n={id:e,label:null,shape:null,group:h()};return r.set(e,n),i.push(e),n},_=(e,t,n)=>{o.includes(e)||(o.push(e),s.set(e,t)),l.push({title:e,parent:t,region:n})};for(let t=0;t<e.length;t+=1){let i=q(e[t]).trim();if(!i||/^direction\b/i.test(i)||(i.includes(`:::`)&&(i=i.replace(/([A-Za-z0-9_.-]+):::([A-Za-z0-9_-]+)/g,(e,t,n)=>(m.set(Y(t),n),t))),un(i,{classColor:f,styleColor:p,nodeClass:m,keyOf:Y})))continue;if(/^(note)\b/i.test(i)){let r=/^note\s+(?:(left|right)\s+of\s+)?([^:]+):\s*(.*)$/i.exec(i),o=r?Y(r[2].trim()):null,s=r?r[3].trim():``;if(!r){let n=/^note\s+(?:(left|right)\s+of\s+)?(\S+)\s*$/i.exec(i);o=n?Y(n[2].trim()):null;let r=[];for(;t+1<e.length&&!/^end note$/i.test(q(e[t+1]).trim());)t+=1,r.push(q(e[t]).trim());t+=1,s=r.filter(Boolean).join(` `)}if(o&&s){let e=Y(`note-${o}-${c+=1}`);g(o);let t=g(e);t.label=s,t.shape=`note`,a.push({src:o,dst:e,dashed:!0,bidir:!1,label:``})}else n.push({line:t+1,message:`a state note with no text is dropped`});continue}if(/^end note$/i.test(i))continue;if(i===`--`){let e=l[l.length-1];if(!e)continue;let t;if(e.region)l.pop(),t=e.parent;else{t=e.title;let n=Kn(t,1);o.push(n),s.set(n,t);for(let e of r.values())e.group===t&&(e.group=n);u.set(t,1)}let n=(u.get(t)??1)+1;u.set(t,n),_(Kn(t,n),t,!0);continue}if(i===`}`){l.pop()?.region&&l.pop();continue}let v=/^state\s+(?:"([^"]+)"\s+as\s+)?([A-Za-z0-9_.-]+)\s*\{$/i.exec(i);if(v){let e=v[1]??v[2];d.set(Y(v[2]),e),_(e,h(),!1);continue}let y=/^state\s+(.+)$/i.exec(i);if(y&&!i.includes(`-->`)){let e=y[1].trim(),t=/^"([^"]+)"\s+as\s+([A-Za-z0-9_.-]+)$/.exec(e);if(t){g(Y(t[2])).label=t[1];continue}let n=/^([A-Za-z0-9_.-]+)\s+<<(choice|fork|join)>>$/.exec(e);if(n){g(Y(n[1])).shape=n[2]===`choice`?`diamond`:`fork-join`;continue}g(Y(e));continue}let b=/^([A-Za-z0-9_.-]+)\s*:\s*(.+)$/.exec(i);if(b&&!i.includes(`-->`)){g(Y(b[1])).label=J(b[2]);continue}if(i.includes(`-->`)){let e=i.indexOf(`:`),t=e>=0?i.slice(0,e):i,n=e>=0?i.slice(e+1).trim():``,r=t.indexOf(`-->`),o=Gn(t.slice(0,r).trim(),`src`,h(),g),s=Gn(t.slice(r+3).trim(),`dst`,h(),g);o&&s&&a.push({src:o,dst:s,dashed:!1,bidir:!1,label:n});continue}n.push({line:t+1,message:`couldn't parse '${i}'`})}for(let[e,t]of d){let n=r.get(e);if(!(!n||n.label!==null||n.shape!==null)){r.delete(e),i.splice(i.indexOf(e),1);for(let n of a)n.src===e&&(n.src=Y(t)),n.dst===e&&(n.dst=Y(t))}}for(let e of r.values()){let t=m.get(e.id);e.color=p.get(e.id)??(t?f.get(t)??null:null)}return $(`statemachine`,t,r,i,a,o,s)}function Gn(e,t,n,r){if(e===`[*]`){let e=t===`src`?`start`:`end`,i=Y(Un(n,e)),a=r(i);return a.label=e,a.shape=e===`start`?`circle`:`double-circle`,i}let i=Y(e.replace(/^["']|["']$/g,``).trim());return i&&r(i),i}function Kn(e,t){return`${e} ${t}`}function qn(e,t,n){let r=``,i=[],a=null;for(let o of e){let e=q(o).trim();if(!e)continue;let s=/^title\s+(.+)$/i.exec(e);if(s){r=J(s[1]);continue}let c=/^section\s+(.+)$/i.exec(e);if(c){a={name:J(c[1]),tasks:[]},i.push(a);continue}n(e,e=>{a||(a={name:t,tasks:[]},i.push(a)),a.tasks.push(e)})}return{title:r,sections:i}}function Jn(e,t){let{title:n,sections:r}=qn(e,``,(e,t)=>{let n=/^(.+?)\s*:\s*(\d+(?:\.\d+)?)\s*(?::\s*(.*))?$/.exec(e);n&&t({label:J(n[1]),score:Number(n[2]),actors:n[3]?.trim()||void 0})}),i=[`journey`];n&&i.push(`title: ${n}`),i.push(``);for(let e of r){e.name&&i.push(`section ${e.name}`);for(let t of e.tasks){let e=t.label.replace(/:/g,` `).replace(/\s+/g,` `).trim(),n=t.actors?.replace(/:/g,` `).replace(/\s+/g,` `).trim();i.push(`- ${e}${n?`: ${n}`:``} [score: ${t.score}]`)}i.push(``)}return Z(i)}function Yn(e,t){let n=e=>{let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);return t?Date.UTC(Number(t[1]),Number(t[2])-1,Number(t[3]))/864e5:void 0},r=n(e),i=n(t);return r===void 0||i===void 0?void 0:Math.round(i-r)}function Xn(e,t){let n=0,r=!1,{title:i,sections:a}=qn(e,``,(e,i)=>{let a=/^(dateFormat|axisFormat|excludes|includes|todayMarker|tickInterval|weekday|weekend)\b/i.exec(e);if(a){let n=a[1].toLowerCase();if(n===`excludes`||n===`weekend`||n===`weekday`){/weekends?/i.test(e)?r=!0:t.push({line:1,message:`gantt "${e.trim()}" isn't supported — only weekends can be excluded, so those days still count`});return}n!==`dateformat`&&n!==`axisformat`&&n!==`tickinterval`&&t.push({line:1,message:`gantt "${a[1]}" isn't supported`});return}let o=e.indexOf(`:`);if(o===-1)return;let s={label:e.slice(0,o).trim(),after:[]};n+=1;for(let t of e.slice(o+1).split(`,`).map(e=>e.trim())){let e=t.toLowerCase();e===`done`||e===`active`||e===`milestone`?s.status=e:e===`crit`?s.status=`critical`:e.startsWith(`after `)?s.after.push(...t.slice(6).trim().split(/\s+/).map(E)):/^\d{4}-\d{2}-\d{2}$/.test(t)?s.start?s.end=t:s.start=t:/^\d+(\.\d+)?\s*(d|w|h|m|s|day|days|week|weeks|hour|hours|min|mins|minute|minutes|sec|secs|second|seconds)$/i.test(t)?s.length=t.replace(/\s+/g,``):/^until\s+/i.test(t)?s.until=t.slice(5).trim():/^[A-Za-z][\w-]*$/.test(t)&&(s.mermaidId=t)}i(s)}),o=new Map,s=new Set;for(let e of a)for(let t of e.tasks){let e=D(E(t.label),s);t.mermaidId&&o.set(t.mermaidId,e)}let c=[`gantt`];i&&c.push(`title: ${i}`),r&&c.push(`excludes: weekends`);for(let e of a){c.push(``),e.name&&c.push(`section ${e.name}`);for(let t of e.tasks){let e=[];if(t.after.length>0?e.push(`after ${t.after.map(e=>o.get(e)??e).join(` `)}`):t.start&&e.push(t.start),t.until)e.push(`until ${o.get(t.until)??E(t.until)}`);else if(t.length)e.push(t.length);else if(t.start&&t.end){let n=Yn(t.start,t.end);n!==void 0&&n>0&&e.push(`${n}d`)}let n=t.label.replace(/[[\]]/g,``).replace(/:/g,` `).replace(/\s+/g,` `).trim(),r=t.status?` [${t.status}]`:``;c.push(`- ${n}${e.length>0?`: ${e.join(`, `)}`:``}${r}`)}}return Z(c)}function Zn(e,t){let n=[`chart pie`],r=[];for(let t of e){let e=q(t).trim();if(!e||/^showdata$/i.test(e))continue;let i=/^title\s+(.+)$/i.exec(e);if(i){n.push(`title: ${J(i[1])}`);continue}let a=/^("([^"]*)"|'([^']*)'|[^:]+)\s*:\s*([\d.]+)$/.exec(e);a&&r.push(`${J(a[1])} : ${a[4]}`)}return n.push(``,...r),Z(n)}function Qn(e,t){let n=``,r=``,i=``,a={},o=[];for(let t of e){let e=q(t).trim();if(!e)continue;let s=/^title\s+(.+)$/i.exec(e);if(s){n=J(s[1]);continue}let c=/^x-axis\s+(.+)$/i.exec(e);if(c){r=J(c[1].trim());continue}let l=/^y-axis\s+(.+)$/i.exec(e);if(l){i=J(l[1].trim());continue}let u=/^quadrant-([1-4])\s+(.+)$/i.exec(e);if(u){a[Number(u[1])]=J(u[2]);continue}let d=/^(.+?):::?[A-Za-z0-9_-]*\s*:?\s*\[\s*([\d.]+)\s*,\s*([\d.]+)\s*\]/.exec(e)??/^(.+?)\s*:\s*\[\s*([\d.]+)\s*,\s*([\d.]+)\s*\]/.exec(e);d&&o.push({label:J(d[1].replace(/:::.*$/,``).trim()),x:d[2],y:d[3]})}let s=[`quadrant`];n&&s.push(`title: ${n}`),r&&s.push(`x-axis: ${r}`),i&&s.push(`y-axis: ${i}`);for(let e=1;e<=4;e+=1)a[e]&&s.push(`quadrant-${e}: ${a[e]}`);s.push(``);for(let e of o)s.push(`${e.label}: [${e.x}, ${e.y}]`);return Z(s)}function $n(e,t){let n=`Timeline`,r=[],i=null,a=null;for(let t of e){let e=q(t).trim();if(!e||/^timeline\b/i.test(e))continue;let o=/^title\s+(.+)$/i.exec(e);if(o){n=J(o[1]);continue}let s=/^section\s+(.+)$/i.exec(e);if(s){i={name:J(s[1]),periods:[]},r.push(i),a=null;continue}if(e.startsWith(`:`)&&a){a.events.push(...j(e,`:`).map(e=>J(e.trim())).filter(Boolean));continue}let c=j(e,`:`).map(e=>J(e.trim())).filter(Boolean);c.length!==0&&(i||(i={name:null,periods:[]},r.push(i)),a={period:c[0],events:c.slice(1)},i.periods.push(a))}let o=e=>e.includes(`:`)?`"${e}"`:e,s=[`timeline`,`title: ${n}`,``],c=r.some(e=>e.name!==null);for(let e of r){c&&s.push(`section ${e.name??`Events`}`);for(let t of e.periods){let e=o(t.period);if(t.events.length>1){s.push(`- ${e}`);for(let e of t.events)s.push(` - ${e}`)}else s.push(`- ${e}${t.events[0]?`: ${t.events[0]}`:``}`)}}return Z(s)}function er(e){let t=[],n=``,r=!1;for(let i=0;i<e.length;i+=1){let a=e[i];r?a===`"`&&e[i+1]===`"`?(n+=`"`,i+=1):a===`"`?r=!1:n+=a:a===`"`?r=!0:a===`,`?(t.push(n.trim()),n=``):n+=a}return t.push(n.trim()),t}function tr(e,t){let n=[`venn`],r=[],i=[],a=``,o=e=>{let t=/\[\s*"?([^"\]]*)"?\s*\]/.exec(e);return t?t[1].trim():null},s=e=>e.split(`,`).map(e=>E(J(e.trim().replace(/:\d+$/,``)))).filter(Boolean);for(let t of e){let e=q(t).trim();if(!e||/^venn(-beta)?$/i.test(e))continue;let n=/^title\s+(.+)$/i.exec(e);if(n){a=J(n[1].trim());continue}let c=/^set\s+([^[]+)(.*)$/i.exec(e);if(c){let e=E(J(c[1].trim().replace(/:\d+$/,``)));e&&r.push({id:e,label:o(c[2])??J(c[1].trim())});continue}let l=/^union\s+([^[]+)(.*)$/i.exec(e);if(l){let e=s(l[1]),t=o(l[2]);e.length>=2&&t&&i.push({ids:e,label:t});continue}let u=/^text\s+([^[]+)(.*)$/i.exec(e);if(u){let e=s(u[1]),t=o(u[2]);if(!t)continue;if(e.length===1){let n=r.find(t=>t.id===e[0]);n&&!n.detail&&(n.detail=t)}else e.length>=2&&!i.some(t=>t.ids.join()===e.join())&&i.push({ids:e,label:t});continue}}a&&n.push(`title: ${a}`),n.push(``);let c=e=>e.replace(/[:+&,]/g,` `).replace(/\s+/g,` `).trim(),l=new Map(r.map(e=>[e.id,c(e.label)]));for(let e of r){let t=l.get(e.id)??e.id;n.push(`- ${t}${e.detail?`: ${c(e.detail)}`:``}`)}for(let e of i){let t=e.ids.map(e=>l.get(e)).filter(e=>!!e);t.length<2||n.push(`overlap ${t.join(` + `)}: ${c(e.label)}`)}return Z(n)}function nr(e,t){let n=[`sankey`],r=[],i=!0;for(let t of e){let e=t.trim();if(!e)continue;if(i&&/^sankey/i.test(e)){i=!1;continue}i=!1;let n=er(e);if(n.length<3||!n[0]||!n[1])continue;let a=Number(n[2]);if(!Number.isFinite(a)||a<=0)continue;let o=e=>e.replace(/->|=>/g,`-`).replace(/[:,]/g,` `).trim();r.push(`${o(n[0])} -> ${o(n[1])} : ${a}`)}return n.push(``,...r),Z(n)}function rr(e){let t=/\[(.*)\]/.exec(e);return(t?t[1]:e).split(`,`).map(e=>J(e.trim())).filter(Boolean)}function ir(e,t){let n=``,r=``,i=``,a=[],o=null,s=!1,c=[],l=!1,u=!1,d=/(-?\d+(?:\.\d+)?)\s*-->\s*(-?\d+(?:\.\d+)?)/;for(let t of e){let e=q(t).trim();if(!e||/^xychart/i.test(e))continue;if(/^horizontal$/i.test(e)){s=!0;continue}if(/^vertical$/i.test(e)){s=!1;continue}let f=/^title\s+(.+)$/i.exec(e);if(f){n=J(f[1]);continue}let p=/^x-axis\s+(.+)$/i.exec(e);if(p){if(p[1].includes(`[`))a=rr(p[1]);else{let e=d.exec(p[1]);e&&(o={min:Number(e[1]),max:Number(e[2])}),r=J(p[1].replace(d,``).trim())}continue}let m=/^y-axis\s+(.+)$/i.exec(e);if(m){i=J(m[1].replace(d,``).trim());continue}let h=/^bar\s+(.+)$/i.exec(e),g=/^line\s+(.+)$/i.exec(e);(h||g)&&(h?l=!0:u=!0,c.push({name:h?`Bar`:`Line`,values:rr((h??g)[1])}))}let f=l?`bar`:u?`line`:`bar`,p=[];for(let e of c)p.some(t=>t.values.join(`\0`)===e.values.join(`\0`))||p.push(e);if(c.length=0,c.push(...p),a.length===0&&c.length>0){let e=Math.max(...c.map(e=>e.values.length));if(o&&e>1){let{min:t,max:n}=o;a=Array.from({length:e},(r,i)=>{let a=t+(n-t)*i/(e-1);return String(Math.round(a*1e3)/1e3)})}else a=Array.from({length:e},(e,t)=>String(t+1))}let m=[`chart ${f}`];n&&m.push(`title: ${n}`),s&&m.push(`horizontal`),r&&m.push(`x-axis: ${r}`),i&&m.push(`y-axis: ${i}`),a.length>0&&m.push(`categories: ${a.join(`, `)}`),m.push(``);for(let e of c)m.push(`${e.name} : ${e.values.join(`, `)}`);return Z(m)}function ar(e,t){let n=``,r=[],i=[];for(let t of e){let e=q(t).trim();if(!e||/^radar/i.test(e))continue;let a=/^title\s+(.+)$/i.exec(e);if(a){n=J(a[1]);continue}let o=/^axis\s+(.+)$/i.exec(e);if(o){for(let e of o[1].split(`,`)){let t=/\["?([^"\]]+)"?\]/.exec(e);r.push(J(t?t[1]:e.trim()))}continue}let s=/^curve\s+([A-Za-z0-9_]+)\s*(?:\["?([^"\]]*)"?\])?\s*\{([^}]*)\}/i.exec(e);if(s){let e=J(s[2]||s[1]),t=s[3],n=t.includes(`:`)?t.split(`,`).map(e=>e.split(`:`)[1]?.trim()??``).filter(Boolean):t.split(`,`).map(e=>e.trim()).filter(Boolean);i.push({name:e,values:n})}}let a=[`chart radar`];n&&a.push(`title: ${n}`),r.length>0&&a.push(`categories: ${r.join(`, `)}`),a.push(``);for(let e of i)a.push(`${e.name} : ${e.values.join(`, `)}`);return Z(a)}function or(e,t){let n=[`gitgraph`],r=[],i=0,a=e=>e.replace(/[[\]]/g,``).replace(/\s+/g,` `).trim(),o=e=>{let t=/tag:\s*"([^"]*)"/.exec(e),n=/type:\s*(\w+)/.exec(e),r=[];return t&&r.push(`tag: ${a(t[1])}`),n&&/highlight/i.test(n[1])?r.push(`highlight`):n&&/reverse/i.test(n[1])&&r.push(`reverse`),r.length>0?` [${r.join(`, `)}]`:``};for(let t of e){let e=q(t).trim();if(!e||/^gitGraph/i.test(e))continue;let n=/^commit\b(.*)$/i.exec(e);if(n){let e=/id:\s*"([^"]*)"/.exec(n[1]),t=e?a(e[1]):`commit ${i+=1}`;r.push(`commit ${t}${o(n[1])}`);continue}let s=/^branch\s+(\S+)/i.exec(e);if(s){r.push(`branch ${a(s[1])}`);continue}let c=/^(?:checkout|switch)\s+(\S+)/i.exec(e);if(c){r.push(`checkout ${a(c[1])}`);continue}let l=/^merge\s+(\S+)(.*)$/i.exec(e);if(l){r.push(`merge ${a(l[1])}${o(l[2])}`);continue}let u=/^cherry-pick\b(.*)$/i.exec(e);if(u){let e=/id:\s*"([^"]*)"/.exec(u[1]);e&&r.push(`cherry-pick ${E(a(e[1]))}${o(u[1])}`);continue}}return n.push(``,...r),Z(n)}function sr(e){let t=e.trim().replace(/:::[A-Za-z0-9_ -]+$/,``).trim(),n=[[`((`,`))`],[`))`,`((`],[`)`,`(`],[`[`,`]`],[`(`,`)`],[`{{`,`}}`]];if(/^[A-Za-z0-9_]*\s*([(){}[\]])/.exec(t))for(let[e,r]of n){let n=t.indexOf(e);if(n>=0&&t.endsWith(r))return J(t.slice(n+e.length,t.length-r.length))}return J(t)}function cr(e,t){let n=[],r=``;for(let t of e){let e=q(t.replace(/\t/g,` `)),i=e.trim();if(!i||/^mindmap$/i.test(i)||/^::icon\(/i.test(i)||/^:::/.test(i))continue;let a=/^title\s+(.+)$/i.exec(i);if(a){r=J(a[1]);continue}let o=e.length-e.trimStart().length;n.push({indent:o,label:sr(i)})}if(n.length===0)return Z([`mindmap`,r?`central: ${r}`:``]);let i=n[0],a=n.slice(1),o=a.length>0?Math.min(...a.map(e=>e.indent)):i.indent+2,s=[`mindmap`,`central: ${i.label}`];r&&s.push(`title: ${r}`),s.push(``);let c=[];for(let e of a){for(;c.length>0&&e.indent<=c[c.length-1];)c.pop();let t=e.indent<=o?0:c.length;t===0&&(c.length=0),c.push(e.indent),s.push(`${` `.repeat(t)}- ${e.label}`)}return Z(s)}function lr(e,t){let n=[],r=``,i=/^([\s│┃|]*)[├└┣┗][─━-]+\s*(.*)$/;for(let t of e){let e=q(t.replace(/\t/g,` `)),a=e.trim();if(!a||/^tree(view)?(-beta)?$/i.test(a))continue;let o=/^title\s+(.+)$/i.exec(a);if(o){r=J(o[1]);continue}let s=i.exec(e),c=s?Math.round(s[1].replace(/[│┃|]/g,` `).length/4)*4+4:e.length-e.trimStart().length,l=(s?s[2]:a).trim();if(!l)continue;l=l.replace(/:::\S+/g,``).trim();let u=null,d=/^(.*?)\s*##\s*(.+)$/.exec(l);d&&(l=d[1].trim(),u=d[2].trim());let f=null,p=/icon\(\s*([^)]*)\s*\)/i.exec(l);if(p){l=l.replace(p[0],``).trim();let e=p[1].trim().toLowerCase();f=e&&e!==`none`?hn(e):null}let m=J(l).trim();m&&n.push({indent:c,label:m,icon:f,detail:u})}if(n.length===0)return Z([`flowchart`,r?`title: ${r}`:``]);let a=new Map,o=[],s=[],c=[];for(let e of n){for(;c.length>0&&e.indent<=c[c.length-1].indent;)c.pop();let t=c.length>0?c[c.length-1]:null,n=E(e.label.replace(/\/+$/,``)),r=t?`${t.id}-${n}`:n;for(;a.has(r);)r=`${r}-${o.length}`;let i=e.detail?`${e.label} (${e.detail})`:e.label;a.set(r,{id:r,label:i,shape:e.label.endsWith(`/`)?null:`document`,group:null,icon:e.icon}),o.push(r),t&&s.push({src:t.id,dst:r,dashed:!1,bidir:!1,label:``}),c.push({indent:e.indent,id:r})}let l=$(`flowchart`,`right`,a,o,s,[]);if(!r)return l;let u=l.split(`
|
|
22
|
+
`),d=u.findIndex(e=>e.startsWith(`direction:`));return u.splice(d>=0?d+1:1,0,`title: ${r}`),Z(u)}function ur(e,t){let n=`Packet`,r=[],i=0;for(let t of e){let e=q(t).trim();if(!e||/^packet/i.test(e))continue;let a=/^title\s+(.+)$/i.exec(e);if(a){n=J(a[1]);continue}let o=/^\+(\d+)\s*:\s*"?([^"]*)"?$/.exec(e);if(o){let e=Number(o[1]);r.push({range:`${i}-${i+e-1}`,label:J(o[2])}),i+=e;continue}let s=/^(\d+)(?:-(\d+))?\s*:\s*"?([^"]*)"?$/.exec(e);if(s){let e=Number(s[1]),t=s[2]?Number(s[2]):e;r.push({range:s[2]?`${e}-${t}`:`${e}`,label:J(s[3])}),i=t+1}}let a=[`flowchart`,`title: ${n}`,``];a.push(`group ${X(n)} {`);let o=0;for(let e of r)a.push(` f${o+=1} = ${X(`${e.range}: ${e.label}`)}`);return a.push(`}`),Z(a)}function dr(e,t){let n=[],r=null,i=null;for(let t of e){let e=q(t.replace(/\t/g,` `)),a=e.trim();if(!a||/^kanban$/i.test(a))continue;let o=e.length-e.trimStart().length;i===null&&(i=o);let s=a.replace(/@\{[^}]*\}\s*$/,``).trim(),c=/^[A-Za-z0-9_]*\["?([^"\]]+)"?\]$/.exec(s)??/^[A-Za-z0-9_]*\[([^\]]+)\]$/.exec(s),l=J(c?c[1]:s);o<=i?(r={title:l,items:[]},n.push(r)):r&&r.items.push(l)}let a=[`flowchart`,`kanban`,``],o=0;for(let e of n){a.push(`group ${X(e.title)} {`);for(let t of e.items)a.push(` k${o+=1} = ${X(t)}`);a.push(`}`)}return Z(a)}function fr(e){let t=e.trim().split(/\s+/)[0]??``,n=t.toLowerCase();if(/^c4(context|container|component|dynamic|deployment)$/i.test(t))return`c4`;switch(n){case`flowchart`:case`graph`:return`flowchart`;case`swimlane`:case`swimlane-beta`:return`swimlane`;case`sequencediagram`:return`sequence`;case`classdiagram`:case`classdiagram-v2`:return`class`;case`statediagram`:case`statediagram-v2`:return`state`;case`erdiagram`:return`er`;case`journey`:return`journey`;case`gantt`:return`gantt`;case`pie`:return`pie`;case`quadrantchart`:return`quadrant`;case`requirementdiagram`:return`requirement`;case`gitgraph`:return`git`;case`mindmap`:return`mindmap`;case`timeline`:return`timeline`;case`sankey`:case`sankey-beta`:return`sankey`;case`xychart`:case`xychart-beta`:return`xychart`;case`packet`:case`packet-beta`:return`packet`;case`kanban`:return`kanban`;case`architecture`:case`architecture-beta`:return`architecture`;case`radar`:case`radar-beta`:return`radar`;case`treeview`:case`treeview-beta`:return`treeview`;case`venn`:case`venn-beta`:return`venn`;case`zenuml`:return`zenuml`;default:return null}}function pr(e){let{lines:t,title:n,dropped:r}=rn(e),i=t.map(e=>q(e).trim()).find(Boolean)??``,a=t.findIndex(e=>q(e).trim()===i),o=fr(i),s=[];if(!o){let t=i.split(/\s+/)[0]||`diagram`;return{code:e,family:null,diagnostics:[{line:r+a+1,message:`Mermaid ${t} diagrams aren't supported yet`}]}}let c=null;if(o===`flowchart`||o===`swimlane`){let e=/^(?:flowchart|graph|swimlane(?:-beta)?)\b\s*([A-Za-z]{2})?/i.exec(i);c=e&&e[1]?an[e[1].toUpperCase()]??null:null}if(o===`state`){let e=/\bdirection\s+([A-Za-z]{2})\b/i.exec(t.slice(a).join(`
|
|
23
|
+
`));c=e?an[e[1].toUpperCase()]??null:null}let l=tn(t.slice(a+1)),u=!1;if(o===`flowchart`||o===`swimlane`){let e=i.replace(/^(?:flowchart|graph|swimlane(?:-beta)?)\b\s*([A-Za-z]{2})?/i,``).trim();e&&(l.unshift(e),u=!0)}o===`xychart`&&/\bhorizontal\b/i.test(i)&&(l.unshift(`horizontal`),u=!0);let d;switch(o){case`flowchart`:d=xn(l,c,s);break;case`swimlane`:d=Sn(l,c,s);break;case`sequence`:d=Vn(l,s);break;case`class`:d=In(l,s);break;case`state`:d=Wn(l,c,s);break;case`er`:d=Mn(l,s);break;case`journey`:d=Jn(l,s);break;case`gantt`:d=Xn(l,s);break;case`pie`:d=Zn(l,s);break;case`quadrant`:d=Qn(l,s);break;case`requirement`:d=Pn(l,s);break;case`git`:d=or(l,s);break;case`c4`:d=Dn(l,s);break;case`mindmap`:d=cr(l,s);break;case`timeline`:d=$n(l,s);break;case`sankey`:d=nr(l,s);break;case`xychart`:d=ir(l,s);break;case`packet`:d=ur(l,s);break;case`kanban`:d=dr(l,s);break;case`architecture`:d=wn(l,s);break;case`radar`:d=ar(l,s);break;case`treeview`:d=lr(l,s);break;case`venn`:d=tr(l,s);break;case`zenuml`:d=Hn(l,s);break;default:d=e}let f=r+a+ +!u;for(let e of s)e.line+=f;return{code:nn(d,n),family:o,diagnostics:s}}var mr=/^(sequenceDiagram|classDiagram|stateDiagram(-v2)?|erDiagram|gantt|journey|gitGraph|quadrantChart|requirementDiagram|C4(Context|Container|Component|Dynamic|Deployment)|timeline|sankey(-beta)?|xychart(-beta)?|packet(-beta)?|kanban|architecture-beta|radar(-beta)?|treeview(-beta)?|venn(-beta)?|swimlane(-beta)?|zenuml|mindmap|pie)\b/;function hr(e){return Dt.has(e)&&mr.test(e)}function gr(e){return e.slice(1).map(e=>q(e).trim()).some(e=>/^[-*]\s+\S/.test(e)||/^(title|central)\s*:/i.test(e)||/\S\s*->\s*\S/.test(e))}function _r(e){let t=e.split(`
|
|
24
|
+
`).map(e=>q(e).trim()).filter(Boolean);if(t[0]===`---`){let e=t.indexOf(`---`,1);e!==-1&&(t=t.slice(e+1))}let n=t[0];if(!n)return!1;if(/^(flowchart|graph)\s+(TD|TB|BT|LR|RL)\b/i.test(n))return!0;let r=n.split(/\s+/)[0].toLowerCase();return Dt.has(r)?mr.test(n)&&!mr.test(r)?!0:hr(r)?!gr(t):!1:mr.test(n)?!0:/-->\||->>|-->>|-\.->|==>|\|\|--|o\{|\{\{|<\|--/.test(e)}var vr={eraser:`eraser.io`,mermaid:`Mermaid`};function yr(e){return _r(e)?`mermaid`:Zt(e)?`eraser`:null}function br(e,t){return{language:t,...t===`mermaid`?pr(e):Xt(e)}}function xr(e){let t=yr(e);if(!t)return{source:e,converted:null};let n=br(e,t);return{source:n.code,converted:n}}function Sr(e){return{async resolve(t){let n=await e.resolveIcon(t).catch(()=>null);return n?n.source===`lucide`?n.name:`${n.source}/${n.name}`:null},async names(){let t=await Promise.all(m.filter(e=>!h(e)).map(async t=>(await e.loadAssetIndex(t).catch(()=>[])).map(e=>`${t}/${e[1]}`)));return[...T,...t.flat()]}}}function Cr(e){return e.filter(e=>e.severity===`error`)}function wr(e){return e===1?`1 error — that line will be skipped`:`${e} errors — those lines will be skipped`}function Tr(e,t){if(!Number.isInteger(t)||t<1)return null;let n=0;for(let r=1;r<t;r++){let t=e.indexOf(`
|
|
25
|
+
`,n);if(t===-1)return null;n=t+1}let r=e.indexOf(`
|
|
26
|
+
`,n);return{start:n,end:r===-1?e.length:r}}function Er(e,t){if(!e)return null;let n=t.get(e.shapeId);return n?{...e,shapeId:n}:e}function Dr(t){let r=new Map,i=new Map,a=new Map;return t.forEach((e,t)=>{r.set(e.id,`s${t+1}`),e.groupId&&!i.has(e.groupId)&&i.set(e.groupId,`g${i.size+1}`),e.lockId&&!a.has(e.lockId)&&a.set(e.lockId,`l${a.size+1}`)}),t.map(t=>{let o={...t,id:r.get(t.id)};return o.groupId&&=i.get(o.groupId),o.lockId&&=a.get(o.lockId),o.type===`arrow`&&(o.startBinding=Er(o.startBinding,r),o.endBinding=Er(o.endBinding,r)),e(o)&&o.flows&&(o.flows=n(o.flows,e=>r.get(e)??e)),o.type===`polygon`&&o.band&&(o.band={...o.band,from:r.get(o.band.from)??o.band.from,to:r.get(o.band.to)??o.band.to}),o})}var Or=3,kr=4,Ar=new Set([`emoji`,`mood`]),jr=[...Object.keys(F),...Object.keys(se),...Object.keys(L),...Object.keys(ue),...Object.keys(le),`flow`,`shadow`,`invisible`];async function Mr(e,t){let n=new Map,r=e=>{let r=n.get(e);return r||(r=t.resolve(e),n.set(e,r)),r},i=null,a=()=>(i??=t.names(),i),o=new Map,s=[];for(let t of e.iconUses){if(!t.ref)continue;let e=await Nr(t,await r(t.ref),a);e&&(t.kind===`unknown`?o.set(t.diagnostic,e):s.push(e))}let c=[...e.diagnostics.map(e=>o.get(e)??e),...s],l=e=>e>0?e:1/0;return c.map((e,t)=>({diagnostic:e,index:t})).sort((e,t)=>l(e.diagnostic.line)-l(t.diagnostic.line)||e.index-t.index).map(e=>e.diagnostic)}async function Nr(e,t,n){if(e.kind===`icon`){if(t)return null;let r=Lr(e.ref,await n(),[]);return Fr(e.line,`unknown icon "${e.written}"`,r)}if(e.kind===`keyword`){if(!t)return null;let n=e.reading===`shape`?`is drawn as a shape here`:`is a frame, which only applies to a group or a screen`,r=t.includes(`/`)?Pr(t):`icon: ${t}`;return Fr(e.line,`"${e.written}" ${n}. For the icon, write [${r}]`,[])}if(t)return{line:e.line,message:`unknown attribute "${e.written}". For the icon, write [${Pr(t)}]`,severity:`warning`,suggestions:[t]};let r=Lr(e.ref,await n(),jr);return Fr(e.line,e.diagnostic.message,r)}function Pr(e){let t=e.includes(`/`)?e.slice(0,e.indexOf(`/`)):null;return t&&![`tech`,`aws`,`gcp`,`azure`].includes(t)?`icon: ${e}`:e}function Fr(e,t,n){return n.length===0?{line:e,message:t,severity:`warning`}:{line:e,message:`${t} (did you mean: ${n.join(`, `)}?)`,severity:`warning`,suggestions:n}}function Ir(e){return e.toLowerCase().replace(/[^a-z0-9]/g,``)}function Lr(e,t,n){let r=e.search(/[:/]/),i=r>0?e.slice(0,r):null,a=Ir(i?e.slice(r+1):e);if(a.length===0)return[];let o=i?t.filter(e=>e.startsWith(`${i}/`)):[...n,...t.filter(e=>!Ar.has(e.split(`/`)[0]))],s=[];for(let e of o){let t=Rr(a,Ir(e.slice(e.indexOf(`/`)+1)));t!==null&&s.push({name:e,score:t})}s.sort((t,n)=>t.score-n.score||Math.abs(t.name.length-e.length)-Math.abs(n.name.length-e.length)||t.name.localeCompare(n.name));let c=s[0]?.score??0,l=new Set,u=[];for(let{name:e,score:t}of s)if(t>=kr&&c<kr||(l.has(e)||(l.add(e),u.push(e)),u.length===Or))break;return u}function Rr(e,t){if(t.length===0)return null;if(t===e)return 0;if(e.length>=3&&t.startsWith(e))return 1;let n=Math.min(3,Math.max(1,Math.floor(e.length/3))),r=Math.abs(t.length-e.length)>n?n+1:zr(e,t);return r<=n?.5+r:e.length>=4&&t.includes(e)?2:t.length>=3&&e.startsWith(t)?kr:null}function zr(e,t){let n=[],r=Array.from({length:t.length+1},(e,t)=>t);for(let i=1;i<=e.length;i+=1){let a=[i];for(let o=1;o<=t.length;o+=1){let s=e[i-1]===t[o-1]?0:1,c=Math.min(r[o]+1,a[o-1]+1,r[o-1]+s);i>1&&o>1&&e[i-1]===t[o-2]&&e[i-2]===t[o-1]&&(c=Math.min(c,n[o-2]+1)),a.push(c)}n=r,r=a}return r[t.length]}function Br(e,t,n){return{...v(t,{fontFamily:n?.fontFamily??r,color:n?.color??`#1e1e1e`,opacity:n?.opacity??1},e.chartType),horizontal:e.horizontal,stacked:e.stacked,cells:e.cells,showValues:e.showValues,showLegend:e.showLegend,showTitles:!!(e.title||e.xTitle||e.yTitle),title:e.title,xTitle:e.xTitle,yTitle:e.yTitle,quadrantLabels:e.quadrantLabels}}function Vr(e){if(e.layout!==void 0)return e.layout;let{environment:t}=e;return(e,n,r)=>S(e,n,t,r)}var Hr={x:0,y:0};function Ur(e){return e||void 0}function Wr(e,t){return t===`stable`?Dr(e):e}function Gr(e,t){return t.environment?Mr(e,Sr(t.environment.icons)):Promise.resolve(e.diagnostics)}async function Kr(e,t){let n=t.origin??Hr,r=Vr(t),i=await Gr(e,t);if(e.chart){let[r]=Wr([Br(e.chart,n)],t.ids);return{status:`ok`,kind:`chart`,shapes:[r],bounds:{x:r.x,y:r.y,width:r.width,height:r.height},primary:r,title:Ur(e.chart.title),diagnostics:i}}if(w(e.diagram))return{status:`empty`,diagnostics:i};let a=await r(e.diagram,n,{frame:t.frame});if(!a)return{status:`empty`,diagnostics:i};let o=Wr(_(a.shapes),t.ids);return{status:`ok`,kind:`diagram`,shapes:o,bounds:a.bounds,primary:ee(o),title:Ur(e.diagram.title),diagnostics:i}}function qr(e){let{source:t,converted:n}=xr(e),r=It(t);return{source:t,converted:n,parsed:r,diagnostics:[...n?.diagnostics??[],...r.diagnostics]}}async function Jr(e,t){if(Cr(e.diagnostics).length>0&&!t.allowErrors)return{status:`gated`};let n=await Kr(e.parsed,{origin:t.origin,layout:t.layout}),r=t.icons?await Mr({diagnostics:e.diagnostics,iconUses:e.parsed.iconUses},t.icons):e.diagnostics;if(n.status===`empty`)return{status:`empty`,diagnostics:r};n.primary&&y(n.primary,e.source,n.shapes);let i=n.kind===`chart`?e.parsed.chart:void 0;return{status:`built`,shapes:n.shapes,primary:n.primary,label:i?n.primary.title||`Chart`:n.primary?.label||`Diagram`,bounds:n.bounds,summary:i?Et(i):b(e.parsed.diagram),diagnostics:r}}export{B as _,wr as a,Ae as b,yr as c,It as d,yt as f,ze as g,Me as h,Tr as i,xr as l,je as m,qr as n,Sr as o,vt as p,Cr as r,vr as s,Jr as t,br as u,Le as v,Ie as y};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=[{value:`pastel`,label:`Pastel`,hint:`Soft color fill`},{value:`bold`,label:`Solid`,hint:`Saturated fill`}],t=`pastel`,n={white:{pastel:`#ffffff`,bold:`#ced4da`},gray:{pastel:`#e9ecef`,bold:`#868e96`},red:{pastel:`#ffc9c9`,bold:`#ff6b6b`},orange:{pastel:`#ffd8a8`,bold:`#ff922b`},yellow:{pastel:`#ffec99`,bold:`#ffd43b`},green:{pastel:`#b2f2bb`,bold:`#51cf66`},teal:{pastel:`#96f2d7`,bold:`#20c997`},blue:{pastel:`#a5d8ff`,bold:`#4dabf7`},purple:{pastel:`#eebefa`,bold:`#cc5de8`},pink:{pastel:`#fcc2d7`,bold:`#f06595`}},r=Object.entries(n).map(([e,t])=>({key:e,pastel:t.pastel,bold:t.bold})),i=`#1e1e1e`,a=`#ffffff`,o=new Map(r.map(e=>[e.pastel,e.bold]));function s(e){return o.get(e)??e}function c(e){if(!e.startsWith(`#`))return null;let t=e.length===4?e.slice(1).split(``).map(e=>e+e).join(``):e.slice(1);return t.length<6?null:{r:parseInt(t.slice(0,2),16),g:parseInt(t.slice(2,4),16),b:parseInt(t.slice(4,6),16)}}function l(e,t=1){let n=c(e);if(!n)return t;let{r,g:i,b:a}=n;return(.299*r+.587*i+.114*a)/255}function u(e){return e===`transparent`||l(e)>.62?i:a}var d=.08,ee=6,te=12;function f(e){return Math.min(te,Math.max(ee,Math.round(Math.min(e.width,e.height)*d)))}function p(e,t,n,r){let o=n??t===`shadow`;if(e===`transparent`)return{fill:`none`,fillOpacity:1,stroke:r??i,text:i,shadow:!1};if(t===`outline`){let t=r??m(e);return{fill:a,fillOpacity:1,stroke:t,text:t,shadow:o}}let c=s(e);return t===`bold`||t===`shadow`?{fill:c,fillOpacity:1,stroke:r??i,text:u(c),shadow:o}:{fill:e,fillOpacity:1,stroke:r??i,text:u(e),shadow:o}}function m(e){let t=s(e);return l(t)>.8?i:t}function ne(e,n){if(e===`transparent`)return{fill:e,fillStyle:t,stroke:void 0,labelColor:n};let r=m(e);return{fill:a,fillStyle:t,stroke:r,labelColor:n??r}}function re(e){return e.kind===`fork-join`||(e.fillStyle??`pastel`)!==`pastel`||e.fill===n.white.pastel||!o.has(e.fill)?null:{pastel:e.fill,bold:s(e.fill)}}function ie(e){return e.labelColor?e.labelColor:e.kind===`fork-join`?u(e.color):p(e.fill,e.fillStyle??`pastel`,void 0,e.stroke).text}var h={black:`#1e1e1e`,white:`#ffffff`,red:`#e03131`,green:`#2f9e44`,blue:`#1971c2`,orange:`#f08c00`,purple:`#9c36b5`,teal:`#0c8599`,pink:`#c2255c`,yellow:`#fab005`},g=[`transparent`,...Object.values(h)],_=h.blue,v=[1.75,2.5,5,8],ae=[16,24,36,56],y=[`XS`,`S`,`M`,`L`],b=[10,12,14,18],x=.25,S=.25,C=[1,1.25,1.5,2],w=[`1`,`1.25`,`1.5`,`2`],T=[0,.05,.15,.3],oe=[`–`,`S`,`M`,`L`],E=[{label:`Balsamiq`,value:`'Balsamiq Sans Neue', cursive`},{label:`Shantell Sans`,value:`'Shantell Sans Variable', cursive`},{label:`Kalam`,value:`Kalam, cursive`},{label:`Caveat`,value:`Caveat, cursive`},{label:`Nanum Pen`,value:`'Nanum Pen Script', cursive`},{label:`Normal`,value:`Inter, ui-sans-serif, system-ui, sans-serif`},{label:`Code`,value:`'JetBrains Mono', ui-monospace, monospace`}],D=E[0].value,se=[6,16,32],O=[`S`,`M`,`L`];function k(e){if(e&&e.includes(`Shantell`))return 500}var A=[`solid`,`dashed`,`dotted`],j=`#1e1e1e`,M=j,N=`transparent`,P=v[1],F=`solid`,I=h.yellow,L=.4,R=v[2],z={color:j,fill:N,fillStyle:t,strokeWidth:P,dash:F,opacity:1,fontSize:24,fontFamily:D,textAlign:`center`,textVAlign:`middle`,textPadding:6,startArrow:!1,endArrow:!0,startHead:`arrow`,endHead:`arrow`,bendStyle:`curved`};function B(e,t){return e===`dashed`?{strokeDasharray:`${t*1.8} ${t*2.4}`,strokeLinecap:`round`}:e===`dotted`?{strokeDasharray:`0.01 ${t*2}`,strokeLinecap:`round`}:{strokeDasharray:void 0,strokeLinecap:`round`}}function V(e,t,n){return Math.min(n,Math.max(t,e))}function H(e){return V(e,0,1)}function ce(e){return Number.isFinite(e.x)&&Number.isFinite(e.y)&&Number.isFinite(e.width)&&Number.isFinite(e.height)}function U(e,t){return Math.hypot(t.x-e.x,t.y-e.y)}function W(e){let t=0;for(let n=0;n<e.length-1;n+=1)t+=U(e[n],e[n+1]);return t}function G(e,t){let n=t?e[e.length-1]:e[0],r=t?-1:1;for(let i=t?e.length-2:1;i>=0&&i<e.length;i+=r)if(U(e[i],n)>1e-6)return{tip:n,from:e[i],fromIndex:i};return null}function K(e,t){let n=G(e,t);return n?Math.atan2(n.tip.y-n.from.y,n.tip.x-n.from.x):null}function le(e,t){let n=G(e,t);return n?U(n.tip,n.from):1/0}function q(e,t,n){let r=U(e,t)||1;return{x:e.x+(t.x-e.x)/r*n,y:e.y+(t.y-e.y)/r*n}}function ue(e,t){let n=W(e);if(n<1e-6)return .5;let r=0,i=.5,a=1/0;for(let o=0;o<e.length-1;o+=1){let s=e[o],c=e[o+1],l=U(s,c);if(l<1e-6)continue;let u=X(t,s,c),d=U(t,u);d<a&&(a=d,i=(r+U(s,u))/n),r+=l}return i}function de(e,t){let n=t;for(let t=0;t<e.length-1;t+=1){let r=e[t],i=e[t+1],a=U(r,i);if(!(a<1e-6)){if(n<=a)return{point:q(r,i,n),dir:{x:i.x-r.x,y:i.y-r.y}};n-=a}}let r=K(e,!0);return{point:e[e.length-1],dir:r===null?{x:1,y:0}:{x:Math.cos(r),y:Math.sin(r)}}}function fe(e){return{x:e.x+e.width/2,y:e.y+e.height/2}}function pe(e){if(e.length===0)return{x:0,y:0,width:0,height:0};let t=1/0,n=1/0,r=-1/0,i=-1/0;for(let a of e)t=Math.min(t,a.x),n=Math.min(n,a.y),r=Math.max(r,a.x),i=Math.max(i,a.y);return{x:t,y:n,width:r-t,height:i-n}}function J(e,t){return{x:e.x-t,y:e.y-t,width:e.width+t*2,height:e.height+t*2}}function me(e,t,n){let r=n.x-t.x,i=n.y-t.y;if(r===0&&i===0)return t;let a=e.x,o=e.x+e.width,s=e.y,c=e.y+e.height,l=1/0;return r>0&&(l=Math.min(l,(o-t.x)/r)),r<0&&(l=Math.min(l,(a-t.x)/r)),i>0&&(l=Math.min(l,(c-t.y)/i)),i<0&&(l=Math.min(l,(s-t.y)/i)),!Number.isFinite(l)||l<0?t:{x:t.x+r*l,y:t.y+i*l}}function he(e,t){return e.x<=t.x+t.width&&e.x+e.width>=t.x&&e.y<=t.y+t.height&&e.y+e.height>=t.y}function ge(e,t){return e.x<t.x+t.width&&e.x+e.width>t.x&&e.y<t.y+t.height&&e.y+e.height>t.y}function Y(e,t){return e.x>=t.x&&e.x<=t.x+t.width&&e.y>=t.y&&e.y<=t.y+t.height}function X(e,t,n){let r=n.x-t.x,i=n.y-t.y,a=r*r+i*i;if(a===0)return t;let o=H(((e.x-t.x)*r+(e.y-t.y)*i)/a);return{x:t.x+o*r,y:t.y+o*i}}function Z(e,t,n){return U(e,X(e,t,n))}function Q(e,t,n){return(t.x-e.x)*(n.y-e.y)-(t.y-e.y)*(n.x-e.x)}function $(e,t,n,r){let i=Q(n,r,e),a=Q(n,r,t),o=Q(e,t,n),s=Q(e,t,r);return i>0!=a>0&&o>0!=s>0||i===0&&Z(e,n,r)===0||a===0&&Z(t,n,r)===0||o===0&&Z(n,e,t)===0||s===0&&Z(r,e,t)===0}function _e(e,t,n,r=0){let i=J(n,r);if(Y(e,i)||Y(t,i))return!0;let a=[{x:i.x,y:i.y},{x:i.x+i.width,y:i.y},{x:i.x+i.width,y:i.y+i.height},{x:i.x,y:i.y+i.height}];for(let n=0;n<4;n+=1)if($(e,t,a[n],a[(n+1)%4]))return!0;return!1}function ve(e,t,n){let r=Math.cos(n),i=Math.sin(n),a=e.x-t.x,o=e.y-t.y;return{x:t.x+a*r-o*i,y:t.y+a*i+o*r}}export{e as $,P as A,C as B,b as C,j as D,A as E,L as F,v as G,_ as H,R as I,O as J,S as K,z as L,ae as M,y as N,F as O,I as P,r as Q,T as R,q as S,M as T,x as U,w as V,h as W,k as X,B as Y,t as Z,le as _,H as a,f as at,_e as b,U as c,u as ct,Y as d,n as et,Z as f,de as g,K as h,V as i,ie as it,E as j,D as k,J as l,W as m,he as n,c as nt,X as o,re as ot,pe as p,se as q,ge as r,l as rt,ue as s,p as st,fe as t,ne as tt,ce as u,me as v,g as w,$ as x,ve as y,oe as z};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./react-lCSYwAWP.js";import{t as n}from"./jsx-runtime-DKdBMi_L.js";import{o as r}from"./editor-CpiNbiMQ.js";import{f as i,m as a}from"./frames-C-jROub3.js";import{t as o}from"./icons-K7FjuB-c.js";import{t as s}from"./preload-helper-Czpn1I53.js";import{a as c,i as l,r as u,t as d,u as ee}from"./PopoverPopup-CvnB7nJs.js";import{s as te}from"./chrome-C2RCq3SI.js";import{n as f,t as ne}from"./icon-catalog-CbUlEKtK.js";import{a as re,c as p,d as m,f as h,i as g,l as _,n as ie,o as v,r as y,s as b,t as ae,u as oe}from"./use-grid-keyboard-nav-BhzrY178.js";var x=e(t(),1),S=new Set(`zodiac-aquarius.zodiac-aries.zodiac-cancer.zodiac-capricorn.zodiac-gemini.zodiac-leo.zodiac-libra.zodiac-ophiuchus.zodiac-pisces.zodiac-sagittarius.zodiac-scorpio.zodiac-taurus.zodiac-virgo.clock-1.clock-2.clock-3.clock-4.clock-5.clock-6.clock-7.clock-8.clock-9.clock-10.clock-11.clock-12.dice-1.dice-2.dice-3.dice-4.dice-5.dice-6.tally-1.tally-2.tally-3.tally-4.bean-off.beef-off.beer-off.candy-off.cannabis.cannabis-off.cigarette.cigarette-off.dna-off.egg-off.fish-off.hop.hop-off.milk-off.nut-off.wheat-off.wine-off.panda.rat.squirrel.worm.shrimp.amphora.anvil.axe.bow-arrow.castle.sword.pocket-knife.drama.venetian-mask.ferris-wheel.roller-coaster.tent-tree.drum.guitar.piano.metronome.turntable.boom-box.cassette-tape.videotape.towel-rack.soap-dispenser-droplet.shower-head.toilet.washing-machine.microwave.refrigerator.blinds.rocking-chair.shelving-unit.lamp-ceiling.lamp-desk.lamp-floor.lamp-wall-down.lamp-wall-up.birdhouse.mirror-rectangular.mirror-round.parasol.fence.drill.shovel.pickaxe.dam.utility-pole.tractor.cable-car.caravan.helicopter.kayak.volleyball.fishing-hook.fishing-rod.club.spade.hat-glasses.keyboard-music.astroid.spool.stone`.split(`.`)),C=f.filter(e=>!S.has(e)),w={smile:[`mood`,`satisfied`],"smile-plus":[`mood`,`satisfied`],laugh:[`mood`,`satisfied`],meh:[`mood`],frown:[`mood`,`dissatisfied`],angry:[`mood`],annoyed:[`mood`]},T=n();function E(e,t){return e.label.toLowerCase().includes(t)||e.keywords&&e.keywords.some(e=>e.includes(t))?!0:m(e.label).startsWith(t)}var D=92;function O(e){let{onPick:t,onClose:n,library:c}=e,[l,u]=(0,x.useState)(`all`),[d,f]=(0,x.useState)(null),[m,S]=(0,x.useState)(``),O=(0,x.useRef)(null),k=(0,x.useRef)(null),[A,se]=(0,x.useState)(0),[j,ce]=(0,x.useState)({width:360,height:420}),[M,le]=(0,x.useState)({}),[N,P]=(0,x.useState)({}),{recent:F,remember:I}=ie(),[L,R]=(0,x.useState)(null),z=r(e=>e.setImageLibraryOpen),B=r(e=>e.coarsePointer);(0,x.useEffect)(()=>{o().ensureCatalog();let e=!0;return s(()=>import(`./icon-tags-Bw7m3Jke.js`).then(t=>{e&&le(t.default)}),[]).catch(()=>void 0),()=>{e=!1}},[]);let V=(0,x.useRef)(!0);(0,x.useEffect)(()=>(V.current=!0,()=>{V.current=!1}),[]);function H(e){o().loadAssetIndex(e).then(t=>{V.current&&P(n=>({...n,[e]:t}))}).catch(()=>void 0)}(0,x.useEffect)(()=>{for(let e of b)H(e);if(v.length===0)return;let e=()=>{for(let e of v)H(e)};if(typeof window.requestIdleCallback==`function`){let t=window.requestIdleCallback(e);return()=>window.cancelIdleCallback(t)}let t=window.setTimeout(e,400);return()=>window.clearTimeout(t)},[]),(0,x.useEffect)(()=>{let e=d?[d]:h(l);for(let t of v)e.includes(t)&&(m.trim()||l!==`all`)&&H(t)},[l,d,m]),(0,x.useEffect)(()=>{let e=k.current;if(!e)return;let t=()=>ce({width:e.clientWidth,height:e.clientHeight});t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[]);let U=(0,x.useMemo)(()=>{let e={};for(let[t,n]of Object.entries(ne))(e[n]??=[]).push(t);return C.map(t=>{let n=[...M[t]??[],...w[t]??[],...e[t]??[]];return{source:`lucide`,id:t,label:t,keywords:n.length>0?n:void 0}})},[M]),W=(0,x.useMemo)(()=>{let e={lucide:U};for(let t of i)e[t]=(N[t]??[]).map(([e,n,r])=>({source:t,id:n,label:e,keywords:Array.isArray(r)?r:typeof r==`string`?r.split(` `):void 0}));return e},[U,N]),G=re((0,x.useMemo)(()=>{let e=m.trim().toLowerCase(),t=d?[d]:h(l),n=t.length>1,r=[];!e&&l===`all`&&F.length>0&&r.push({label:`Recent`,entries:F});for(let i of t){let t=n?_[i]:null;if(!e){let e=a(i)&&N[i]===void 0,n=W[i]??[];e?r.push({label:t,entries:[],tail:!0}):n.length>0&&r.push({label:t,entries:n});continue}let o=(W[i]??[]).filter(t=>E(t,e));o.length>0&&r.push({label:t,entries:o})}return r},[m,l,d,W,N,F]),j.width);function K(e){I(e),t(e.id,e.source)}let{focus:q,setFocus:ue,onKeyDown:de}=ae({layout:G,scrollRef:k,onEnter:K});function fe(e){S(e),Y()}function pe(e){u(e),f(null),Y(),B||O.current?.focus()}function J(e){f(e),Y(),B||O.current?.focus()}function Y(){ue(0),R(null),k.current&&(k.current.scrollTop=0)}let me=A-D,he=A+j.height+D,ge=Math.max(1,Math.floor(j.width/46)),X=[];for(let e of G.rows)if(!(e.top+e.height<me)){if(e.top>he)break;if(e.type===`header`){X.push((0,T.jsxs)(`div`,{className:`absolute inset-x-0 flex items-baseline gap-1.5 px-1.5 pt-3`,style:{top:e.top},children:[(0,T.jsx)(`span`,{className:`text-[11px] uppercase tracking-wide text-gray-500`,children:e.label}),(0,T.jsx)(`span`,{className:`text-[10px] text-gray-400`,children:e.count})]},`header-${e.top}`));continue}if(e.type===`skeleton`){X.push((0,T.jsx)(`div`,{className:`absolute inset-x-0 flex`,style:{top:e.top},children:Array.from({length:ge},(e,t)=>(0,T.jsx)(`span`,{className:`flex h-[46px] w-[46px] items-center justify-center`,children:(0,T.jsx)(`span`,{className:`h-8 w-8 animate-pulse rounded-lg bg-black/5`})},t))},`skeleton-${e.top}`));continue}e.entries.forEach((t,n)=>{let r=e.startIndex+n,i=n*46,o=r===q;a(t.source)?X.push((0,T.jsx)(y,{source:t.source,slug:t.id,label:t.label,left:i,top:e.top,focused:o,onPick:()=>K(t),onHover:e=>R(e?t:null)},r)):X.push((0,T.jsx)(g,{name:t.id,left:i,top:e.top,focused:o,onPick:()=>K(t),onHover:e=>R(e?t:null)},r))})}let Z=p.find(e=>e.id===l)?.label??`All`,Q=oe(l),_e=l===`all`?`all`:d?_[d]:Z,$=L?.source??G.flat[q]?.source;return(0,T.jsxs)(`div`,{"data-overlay":!0,className:`flex w-[min(380px,calc(100vw-1rem))] flex-col overflow-hidden rounded-xl ${te}`,style:{height:`min(70vh, 560px)`},onKeyDown:de,children:[(0,T.jsxs)(`div`,{className:`flex items-center gap-1 overflow-x-auto border-b border-black/5 px-2 py-2`,style:{scrollbarWidth:`none`},children:[p.map(e=>(0,T.jsx)(`button`,{type:`button`,onClick:()=>pe(e.id),className:`shrink-0 rounded-full px-2.5 py-1 text-xs transition-colors ${l===e.id?`bg-gray-200 text-gray-900`:`text-gray-500 hover:bg-gray-100 hover:text-gray-700`}`,children:e.label},e.id)),c&&(0,T.jsx)(`button`,{type:`button`,onClick:()=>{z(!0),n?.()},"aria-label":`Image library`,title:`Image library`,"data-testid":`image-library-open`,className:`ml-auto flex h-[26px] w-[26px] shrink-0 items-center justify-center rounded-full transition-colors hover:bg-gray-100`,children:(0,T.jsx)(`img`,{src:o().assetIconUrl(`drawnicons`,`solid-smiley-face`),alt:``,draggable:!1,className:`h-[19px] w-[19px]`})})]}),Q&&(0,T.jsxs)(`div`,{className:`flex items-center gap-1 border-b border-black/5 px-3 py-1.5`,children:[(0,T.jsx)(`button`,{type:`button`,onClick:()=>J(null),className:`rounded-full px-2 py-0.5 text-[11px] transition-colors ${d===null?`bg-gray-200 text-gray-900`:`text-gray-500 hover:bg-gray-100 hover:text-gray-700`}`,children:`All`}),Q.sources.map(e=>(0,T.jsx)(`button`,{type:`button`,onClick:()=>J(e),className:`rounded-full px-2 py-0.5 text-[11px] transition-colors ${d===e?`bg-gray-200 text-gray-900`:`text-gray-500 hover:bg-gray-100 hover:text-gray-700`}`,children:_[e]},e))]}),(0,T.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-black/5 p-3`,children:[(0,T.jsx)(`input`,{ref:O,autoFocus:!B,value:m,"data-testid":`icon-picker-search`,onChange:e=>fe(e.target.value),placeholder:`Search ${_e} icons`,className:`h-9 flex-1 rounded-lg bg-black/5 px-3 text-sm text-gray-800 outline-none placeholder:text-gray-400 focus:bg-black/[0.07]`}),n&&(0,T.jsx)(`button`,{type:`button`,onClick:n,"aria-label":`Close`,className:`flex h-9 w-9 items-center justify-center rounded-lg text-gray-500 transition-colors hover:bg-black/5`,children:(0,T.jsx)(ee,{})})]}),(0,T.jsx)(`div`,{ref:k,onScroll:e=>se(e.currentTarget.scrollTop),className:`scrollbar-slim relative flex-1 overflow-y-auto p-2`,children:G.flat.length===0&&m.trim()?(0,T.jsx)(`div`,{className:`px-2 py-8 text-center text-sm text-gray-400`,children:`No icons match “${m}”.`}):(0,T.jsx)(`div`,{className:`relative`,style:{height:G.totalHeight},children:X})}),(0,T.jsxs)(`div`,{className:`flex items-center justify-between gap-2 border-t border-black/5 px-3 py-2 text-[11px] text-gray-400`,children:[(0,T.jsx)(`span`,{className:`truncate text-gray-600`,children:L?.label??G.flat[q]?.label??Z}),(0,T.jsxs)(`span`,{className:`shrink-0`,children:[G.flat.length,` · `,$?_[$]:Z]})]})]})}function k(e){let{onPick:t,onClose:n}=e;return(0,T.jsx)(c,{open:!0,modal:!1,onOpenChange:e=>{e||n()},children:(0,T.jsx)(l,{children:(0,T.jsx)(u,{anchor:()=>document.querySelector(`[data-canvas-toolbar]`),side:`right`,align:`start`,sideOffset:8,children:(0,T.jsx)(d,{finalFocus:!1,children:(0,T.jsx)(O,{onPick:t,onClose:n,library:!0})})})})})}export{k as IconPicker,O as IconPickerContent};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/icon-catalog-CbUlEKtK.js","assets/rolldown-runtime-aKtaBQYM.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{E as e,Jt as t,Mn as n,Qt as r,S as i,T as a,Ut as o,Wt as s,Xt as c,Zt as l,dn as u,h as d,j as f,k as p,nn as m,rn as h,w as g}from"./shapes-CHDGoELO.js";import{a as _,d as v,l as y,t as b,v as x,y as S}from"./geometry-CVRSymIE.js";import{H as C,K as w,W as ee,f as te,fn as ne,g as T,ht as re,lt as ie,mt as ae,q as oe}from"./frames-C-jROub3.js";import{t as E}from"./preload-helper-Czpn1I53.js";function D(e){return`kind`in e&&e.kind===`path`}function O(e){return e.type===`line`?e.points:e.type===`arrow`?[{x:e.x,y:e.y},{x:e.x2,y:e.y2}]:null}function k(e,t){let n=O(e)??[b(p(e))],r=Math.max(0,Math.min(t.seg,n.length-2)),i=n[r],a=n[r+1]??i,o=_(t.t);return{x:i.x+(a.x-i.x)*o,y:i.y+(a.y-i.y)*o}}function A(e,t){return t?D(e)?h(t):m(t):!1}function se(e,t,n){let r=new Set,i=[n];for(;i.length>0;){let n=i.pop();if(n===t)return!0;if(r.has(n))continue;r.add(n);let a=w(e,n);a?.type===`arrow`&&(a.startBinding&&i.push(a.startBinding.shapeId),a.endBinding&&i.push(a.endBinding.shapeId))}return!1}function ce(e,t){let n=Math.abs(t.x-e.x),r=Math.abs(t.x-(e.x+e.width)),i=Math.abs(t.y-e.y),a=Math.abs(t.y-(e.y+e.height)),o=Math.min(n,r,i,a);return o===n?{x:-1,y:0}:o===r?{x:1,y:0}:o===i?{x:0,y:-1}:{x:0,y:1}}function j(t,n){return t.type===`control`&&t.kind===`lifeline`?re(t):e(t,n)}function M(e,t){return b(p(e,t))}var le=6,ue=14;function N(e){return n[e.type].geometry===`text`?ue:le}var de=new Set(ne);function P(e,t,n){let r=n===`start`?t.startArrow:t.endArrow,i=n===`start`?t.startHead:t.endHead;return r&&i&&de.has(i)?0:N(e)}function fe(e){if(e.type!==`rectangle`)return null;let t=e.kind;return t!==`diamond`&&t!==`ellipse`&&t!==`double-circle`?null:t}function F(e,t){return e===`diamond`?1-t:Math.sqrt(Math.max(0,1-t*t))}function pe(e,t,n){let r=fe(e);if(r===null)return n;let i=ce(t,n),a=t.x+t.width/2,o=t.y+t.height/2,s=i.x!==0,c=s?t.width/2:t.height/2,l=s?t.height/2:t.width/2,u=s?n.y-o:n.x-a,d=F(r,l===0?0:Math.min(1,Math.abs(u)/l)),f=s?i.x:i.y;return s?{x:a+f*c*d,y:n.y}:{x:n.x,y:o+f*c*d}}var I=.002;function L(e,t,r=0,i){let a=j(e,i),o=H(a,t);if(t.x>I&&t.x<1-I&&t.y>I&&t.y<1-I)return V(e,o,i);let s=pe(e,a,o),c=n[e.type].geometry===`text`?Math.max(r,ue):r;if(c<=0)return V(e,s,i);let l=ce(a,o);return V(e,{x:s.x+l.x*c,y:s.y+l.y*c},i)}var R=.2;function me(e,t){return U(j(e,t),M(e,t))}function z(e,t,n){let r=me(e,n);return Math.abs(t.x-r.x)<=R&&Math.abs(t.y-r.y)<=R}function he(e){let t=_(e.x),n=_(e.y),r=t,i=1-t,a=n,o=1-n,s=Math.min(r,i,a,o);return s===r?{x:0,y:n}:s===i?{x:1,y:n}:s===a?{x:t,y:0}:{x:t,y:1}}function B(e,t,n){let r=f(e)*Math.PI/180;return r?S(t,b(p(e,n)),-r):t}function V(e,t,n){let r=f(e)*Math.PI/180;return r?S(t,b(p(e,n)),r):t}function H(e,t){return{x:e.x+t.x*e.width,y:e.y+t.y*e.height}}function U(e,t){return{x:e.width===0?.5:(t.x-e.x)/e.width,y:e.height===0?.5:(t.y-e.y)/e.height}}function W(e,t){return!e||t.has(e.shapeId)?!1:D(e)?!0:e.precise}function G(e,t){return e.type===`arrow`&&W(e.startBinding,t)&&W(e.endBinding,t)}function ge(e,t,n){let r=O(t);if(!r||r.length<2)return null;let i=Math.max(0,Math.min(e.seg,r.length-2)),a=r[i],o=r[i+1],s=o.x-a.x,c=o.y-a.y,l=Math.hypot(s,c);if(l<1e-6)return null;let u=(n.x*s+n.y*c)/l;return{...e,seg:i,t:_(e.t+u/l)}}function _e(e,t,n,r){if(f(t)!==0)return null;let i=j(t,r),{anchor:a}=e;if(q(t))return i.height>0?{...e,anchor:{x:a.x,y:_(a.y+n.y/i.height)}}:null;let o=.001,s=a.x<=o||a.x>=1-o,c=a.y<=o||a.y>=1-o;return s&&(!c||Math.abs(n.y)>=Math.abs(n.x))&&i.height>0?{...e,anchor:{x:a.x,y:_(a.y+n.y/i.height)},port:void 0}:c&&i.width>0?{...e,anchor:{x:_(a.x+n.x/i.width),y:a.y},port:void 0}:null}function K(e,t,n,r){return D(e)?ge(e,t,n):_e(e,t,n,r)}function ve(e,t,n,r,i){if(!G(e,r))return null;let a=e,o=a.startBinding?.shapeId,s=a.endBinding?.shapeId,c=o?w(n,o):void 0,l=s?w(n,s):void 0;if(!c||!l||!a.startBinding||!a.endBinding)return null;let u=K(a.startBinding,c,t,i),d=K(a.endBinding,l,t,i);return!u||!d?null:{...a,startBinding:u,endBinding:d}}function ye(e,t,n,r,i){let a=ve(e,t,n,r,i);if(a)return a;let o=d(e,t);if(o.type!==`arrow`)return o;let s=e=>e&&r.has(e.shapeId)?e:null,c=s(o.startBinding),l=s(o.endBinding);return c===o.startBinding&&l===o.endBinding?o:{...o,startBinding:c,endBinding:l}}function be(t,n,r,i){for(let o=t.length-1;o>=0;--o){let s=t[o];if(!u(s,`snapsConnectors`)||r&&s.id===r||!a(s)&&!v(n,g(s)))continue;let c=e(s,i);if(v(B(s,n,i),c))return s}return null}var xe={n:{x:.5,y:0},s:{x:.5,y:1},e:{x:1,y:.5},w:{x:0,y:.5},ne:{x:1,y:0},nw:{x:0,y:0},se:{x:1,y:1},sw:{x:0,y:1}},Se=8;function Ce(e,t){return e.x===0||e.x===1?Math.abs(e.y-.5)*t.height<=Se?{x:e.x,y:.5}:e:Math.abs(e.x-.5)*t.width<=Se?{x:.5,y:e.y}:e}function we(e,t,n){if(e.type!==`control`||e.kind!==`entity`||t.x!==0&&t.x!==1)return t;let r=ie(e);if(r.length===0)return t;let i=n.y+t.y*n.height,a=r.reduce((e,t)=>Math.abs(t.cy-i)<Math.abs(e.cy-i)?t:e);return{x:t.x,y:_((a.cy-n.y)/n.height)}}function Te(e,t,n){return we(e,Ce(he(t),n),n)}function Ee(e,t,n){let r=j(e,n),i=U(r,B(e,t,n));return e.type===`control`&&e.kind===`lifeline`?{shapeId:e.id,anchor:{x:.5,y:_(i.y)},precise:!0}:z(e,i,n)?{shapeId:e.id,anchor:{x:_(i.x),y:_(i.y)},precise:!1}:{shapeId:e.id,anchor:Te(e,i,r),precise:!0}}function De(e){return e.port?xe[e.port]:e.anchor}function Oe(e,t,n){let r=j(e,n);if(e.type===`control`&&e.kind===`lifeline`){let i=U(r,B(e,t,n));return{x:r.x+r.width/2,y:r.y+_(i.y)*r.height}}let i=U(r,B(e,t,n));return z(e,i,n)?M(e,n):V(e,H(r,Te(e,i,r)),n)}function ke(e,t=le){return y(e,t)}function q(e){return e.type===`control`&&e.kind===`lifeline`}function Ae(e,t,n,r){let i=j(e),a=i.x+i.width/2,o=i.y+_(t)*i.height,s=e.type===`control`?ae(e,o):null,c=n.x<=a;return{x:(s?c?s.x:s.x+s.width:a)+(c?-r:r),y:o}}function J(e,t,n){if(D(t))return k(e,t);if(q(e)&&t.precise){let n=j(e);return{x:n.x+n.width/2,y:n.y+_(t.anchor.y)*n.height}}return t.precise?L(e,De(t),N(e),n):M(e,n)}function Y(e,t,n,r=N(e),i){return D(t)?k(e,t):q(e)&&t.precise?Ae(e,t.anchor.y,n,r):t.precise?L(e,De(t),r,i):V(e,x(ke(j(e,i),r),M(e,i),B(e,n,i)),i)}function je(e,t,n,r,i){let a=ke(j(e,i),r),o=n?1/64:-1/64,s=+!n;for(let n=1;n<=64;n+=1){let n=s+o;if(!v(B(e,t.pointAt(n),i),a)){let r=s,o=n;for(let n=0;n<16;n+=1){let n=(r+o)/2;v(B(e,t.pointAt(n),i),a)?r=n:o=n}return r}if(s=n,n<=0||n>=1)break}return+!n}function Me(e,t,n,r,i){let a=e=>i?i.get(e):w(t,e),o=e.startBinding?a(e.startBinding.shapeId):void 0,s=e.endBinding?a(e.endBinding.shapeId):void 0;return{start:e.startBinding&&A(e.startBinding,o)?n(o,e.startBinding,`start`):r({x:e.x,y:e.y}),end:e.endBinding&&A(e.endBinding,s)?n(s,e.endBinding,`end`):r({x:e.x2,y:e.y2})}}function Ne(e,t,n,r){return Me(e,t,(e,t)=>J(e,t,r),e=>e,n)}function Pe(e,t){let n=j(e,t),r=f(e)*Math.PI/180;return r?i(n,b(p(e,t)),r):n}function Fe(e,t,n){return e.type===`icon`?U(p(e,n),H(j(e,n),t)):t}function Ie(e,t){let n=e.x-.5,r=e.y-.5;if(t){let e=t*Math.PI/180,i=Math.cos(e),a=Math.sin(e),o=n*i-r*a,s=n*a+r*i;n=o,r=s}return Math.abs(n)<1e-6&&Math.abs(r)<1e-6?null:Math.abs(n)>Math.abs(r)-1e-4?n<0?`left`:`right`:r<0?`top`:`bottom`}function Le(e,t){if(f(e)!==0)return;let n=fe(e);if(n===null)return;let r=p(e),i=r.x+r.width/2,a=r.y+r.height/2,o=r.width/2,s=r.height/2,c=t===`left`||t===`right`,l=t===`right`||t===`bottom`?1:-1;return e=>{let t=c?i:a,r=c?o:s,u=c?a:i,d=c?s:o,f=d===0?0:Math.min(1,Math.abs(e-u)/d),p=F(n,f);return t+l*r*p}}function X(e,n,r,i=N(e),a){if(D(n))return c(k(e,n),r);let o=n.precise?Ie(Fe(e,n.anchor,a),f(e)):null;return{bounds:Pe(e,a),target:n.precise?L(e,n.anchor,0,a):M(e,a),gap:i,minEnd:r*t,side:o,outline:o?Le(e,o):void 0,isPoint:!1}}function Re(e,t,n,r){return Me(e,t,(t,n,i)=>X(t,n,e.strokeWidth,P(t,e,i),r),t=>c(t,e.strokeWidth),n)}function ze(e,t,n,i){let a=Re(e,t,n,i);return r(a.start,a.end,e.elbowMid??.5)}function Be(e,t){return{...e,elbowPoints:t,elbowRoute:t,elbowMidHandle:void 0,x:t[0].x,y:t[0].y,x2:t[t.length-1].x,y2:t[t.length-1].y}}function Ve(e){return{...e,elbowPoints:void 0,elbowRoute:void 0,elbowMidHandle:void 0}}function He(e,t,n,r){if(!e.elbowPoints)return e;let i=Re(e,t,n,r),a=l(e.elbowPoints,i.start,i.end);return a?Be(e,a):Ve(e)}var Ue=24;function We(e,t,n){let r=e.x+e.width,i=t.x,a=e.y+n.fromTop*e.height,o=Math.max(1,n.fromSpan*e.height),s=t.y+n.toTop*t.height,c=Math.max(1,n.toSpan*t.height),l=r+(i-r)/3,u=i-(i-r)/3,d=(e,t,n)=>{let r=1-e;return r*r*r*t+3*r*r*e*t+3*r*e*e*n+e*e*e*n},f=e=>{let t=1-e;return t*t*t*r+3*t*t*e*l+3*t*e*e*u+e*e*e*i},p=[],m=[];for(let e=0;e<=Ue;e+=1){let t=e/Ue,n=f(t);p.push({x:n,y:d(t,a,s)}),m.push({x:n,y:d(t,a+o,s+c)})}return[...p,...m.reverse()]}function Ge(e,t,n){let r=e.band;if(!r||n&&!n.has(e.id)&&!n.has(r.from)&&!n.has(r.to))return e;let i=t.get(r.from),a=t.get(r.to);if(!i||!a||!Ke(i)||!Ke(a))return e;let o=We(i,a,r);return qe(o,e.points)?e:{...e,points:o}}function Ke(e){return`width`in e&&`height`in e&&`x`in e&&`y`in e}function qe(e,t){return e.length===t.length&&e.every((e,n)=>e.x===t[n].x&&e.y===t[n].y)}function Je(e,t){if(e===t)return!0;if(!e||!t||e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(Math.abs(e[n].x-t[n].x)>.01||Math.abs(e[n].y-t[n].y)>.01)return!1;return!0}function Ye(e,t,n,r){if(t==null){let t=e;for(let e=0;e<4;e+=1){let e=nt(t,n);if(e===t)break;t=e}return t}if(t.size===0)return e;let i=e,a=t;for(let e=0;e<4&&a.size>0;e+=1){let t=it(i,a,n,e===0?r:void 0);if(t.shapes===i)break;i=t.shapes,a=t.moved}return i}function Xe(e){let t=new Set(e.map(e=>e.id)),n=new Set;for(let r of e)if(r.type===`arrow`){let{startBinding:e,endBinding:i}=r;e&&i&&t.has(e.shapeId)&&t.has(i.shapeId)&&n.add(r.id)}else r.type===`polygon`&&r.band&&t.has(r.band.from)&&t.has(r.band.to)&&n.add(r.id);return n}function Ze(e,t){return!!(t.has(e.id)||e.startBinding&&t.has(e.startBinding.shapeId)||e.endBinding&&t.has(e.endBinding.shapeId))}function Qe(e,t,n,r,i,a,o,s){let{x:c,y:l,x2:u,y2:d}=e;if(t&&n){let r=Y(t,n,o,P(t,e,`start`),s);c=r.x,l=r.y}if(r&&i){let t=Y(r,i,a,P(r,e,`end`),s);u=t.x,d=t.y}return{x:c,y:l,x2:u,y2:d}}function $e(e,t,n,i,a,o,s,u){let{x:d,y:f,x2:p,y2:m}=e,h=e.elbowPoints,g=e.elbowRoute,_=e.elbowMidHandle,v=t&&n?X(t,n,e.strokeWidth,P(t,e,`start`),u):c({x:e.x,y:e.y},e.strokeWidth),y=i&&a?X(i,a,e.strokeWidth,P(i,e,`end`),u):c({x:e.x2,y:e.y2},e.strokeWidth),b=null;if(h&&h.length>=3&&t&&t===i){let e=(e,t)=>e.map(n=>({x:n.x+t.x-e[0].x,y:n.y+t.y-e[0].y})),t=l(e(h,v.target),v,y)?.[0];t&&(h=e(h,t))}if(h&&h.length>=3)b=l(h,v,y),b||(h=void 0);else if(h){let e=e=>!e||D(e)||e.precise;e(n)&&e(a)?b=[{x:v.target.x,y:v.target.y},{x:y.target.x,y:y.target.y}]:h=void 0}if(b)({elbowPoints:h,elbowRoute:g,elbowMidHandle:_,x:d,y:f,x2:p,y2:m}=Be(e,b));else{let c=r(v,y,e.elbowMid??.5);c.route&&c.route.length>=2?(g=c.route,_=c.midHandle??void 0,d=c.route[0].x,f=c.route[0].y,p=c.route[c.route.length-1].x,m=c.route[c.route.length-1].y):(g=void 0,_=void 0,{x:d,y:f,x2:p,y2:m}=Qe(e,t,n,i,a,o,s,u))}return{x:d,y:f,x2:p,y2:m,bend:e.bend,bendAlong:e.bendAlong,bow:e.bow,bowAlong:e.bowAlong,elbowPoints:h,elbowRoute:g,elbowMidHandle:_}}function et(e,t,n,r,i,a,c,l){let{x:u,y:d,x2:f,y2:p}=e,m=e.bend,h=e.bendAlong,g=e.bow??e.bend??0,_=e.bowAlong??e.bendAlong??0,v=g,y=_,b=o(a,c,g,_),x=!1;if(b){let a=t&&n&&!D(n)?je(t,b,!0,P(t,e,`start`),l):0,o=r&&i&&!D(i)?je(r,b,!1,P(r,e,`end`),l):1;if(o-a>.02){let e=b.pointAt(a),t=b.pointAt(o);if(u=e.x,d=e.y,f=t.x,p=t.y,_===0)m=s(e,t,b.pointAt((a+o)/2)).bow,h=0;else if(b.apexT>a+.01&&b.apexT<o-.01){let n=s(e,t,b.apex);m=n.bow,h=n.bowAlong}else m=s(e,t,b.pointAt((a+o)/2)).bow,h=0;x=!0}}return x||({x:u,y:d,x2:f,y2:p}=Qe(e,t,n,r,i,a,c,l),m=0,h=0),{x:u,y:d,x2:f,y2:p,bend:m,bendAlong:h,bow:v,bowAlong:y,elbowPoints:e.elbowPoints,elbowRoute:void 0,elbowMidHandle:void 0}}function tt(e,t,n,r){if(e.type===`polygon`)return Ge(e,t,n);if(e.type!==`arrow`||!e.startBinding&&!e.endBinding||n&&!Ze(e,n))return e;let i=e.startBinding,a=e.endBinding,o=i?t.get(i.shapeId):void 0,s=a?t.get(a.shapeId):void 0;i&&!A(i,o)&&(i=null),a&&!A(a,s)&&(a=null);let c=o&&i?J(o,i,r):{x:e.x,y:e.y},l=s&&a?J(s,a,r):{x:e.x2,y:e.y2},u=(e.bendStyle===`elbow`?$e:et)(e,o,i,s,a,c,l,r),{x:d,y:f,x2:p,y2:m,bend:h,bendAlong:g,bow:_,bowAlong:v}=u,y=u.elbowPoints,b=u.elbowRoute,x=u.elbowMidHandle,S=!Je(b,e.elbowRoute);S||(b=e.elbowRoute);let C=!Je(y,e.elbowPoints);C||(y=e.elbowPoints);let w=!at(x,e.elbowMidHandle);return w||(x=e.elbowMidHandle),d===e.x&&f===e.y&&p===e.x2&&m===e.y2&&h===e.bend&&g===e.bendAlong&&_===e.bow&&v===e.bowAlong&&!S&&!C&&!w&&i===e.startBinding&&a===e.endBinding?e:{...e,x:d,y:f,x2:p,y2:m,bend:h,bendAlong:g,bow:_,bowAlong:v,elbowPoints:y,elbowRoute:b,elbowMidHandle:x,startBinding:i,endBinding:a}}function nt(e,t){let n=new Map(e.map(e=>[e.id,e])),r=!1,i=e.map(e=>{let i=tt(e,n,null,t);return i!==e&&(r=!0),i});return r?i:e}function rt(e,t){return e.type===`arrow`?(e.startBinding!==null||e.endBinding!==null)&&Ze(e,t):e.type===`polygon`&&e.band?t.has(e.id)||t.has(e.band.from)||t.has(e.band.to):!1}function it(e,t,n,r){let{position:i,dependents:a}=oe(e),o=new Set,s=n=>{if(n===void 0||o.has(n))return;let i=e[n];rt(i,t)&&!r?.has(i.id)&&o.add(n)};for(let e of t){s(i.get(e));for(let t of a.get(e)??[])s(i.get(t))}let c=new Set;if(o.size===0)return{shapes:e,moved:c};let l=new Map;for(let t of o)for(let n of C(e[t])){let t=i.get(n);t!==void 0&&l.set(n,e[t])}let u=null,d=[];for(let r of o){let i=e[r],a=tt(i,l,t,n);a!==i&&(u??=e.slice(),u[r]=a,d.push(r),c.add(i.id))}return u?(ee(e,u,d),{shapes:u,moved:c}):{shapes:e,moved:c}}function at(e,t){return e===t?!0:!e||!t?!1:e.axis===t.axis&&Math.abs(e.x-t.x)<=.01&&Math.abs(e.y-t.y)<=.01&&Math.abs(e.span-t.span)<=.01}function ot(){return E(()=>import(`./catalog-module-DAuqzZdT.js`).then(e=>e.default),[])}var st=Object.fromEntries(te.map(e=>[e,e])),ct=[`tech`,`aws`,`gcp`,`azure`],lt={k8s:`kubernetes`,kube:`kubernetes`,postgres:`postgresql`,psql:`postgresql`,mongo:`mongodb`,node:`nodedotjs`,nodejs:`nodedotjs`,"node.js":`nodedotjs`,next:`nextdotjs`,nextjs:`nextdotjs`,"next.js":`nextdotjs`,vue:`vuedotjs`,vuejs:`vuedotjs`,"vue.js":`vuedotjs`,kafka:`apachekafka`,rabbit:`rabbitmq`,es:`elasticsearch`,gha:`githubactions`};function Z(e){return lt[e]??e}var ut={s3:`simple-storage-service`,sqs:`simple-queue-service`,sns:`simple-notification-service`,iam:`identity-and-access-management`,vpc:`virtual-private-cloud`,ebs:`elastic-block-store`,elb:`elastic-load-balancing`,alb:`elastic-load-balancing`,nlb:`elastic-load-balancing`,kms:`key-management-service`,ecs:`elastic-container-service`,eks:`elastic-kubernetes-service`,ecr:`elastic-container-registry`};function dt(e,t){return e===`aws`?ut[t]??t:t}function Q(e){return e.toLowerCase().replace(/[^a-z0-9]/g,``)}var ft=[[/^(?:aws|amazon web services|amazon)[\s:/-]+/,`aws`],[/^(?:gcp|google)[\s:/-]+/,`gcp`],[/^(?:azure|microsoft azure)[\s:/-]+/,`azure`]];function pt(e){for(let[t,n]of ft)if(t.test(e))return{term:e.replace(t,``).trim(),only:n};return{term:e}}var $=null;function mt(){return $??=E(()=>import(`./icon-catalog-CbUlEKtK.js`).then(e=>e.r).then(e=>({names:new Set(e.ICON_NAMES),aliases:e.ICON_ALIASES}),e=>{throw $=null,e}),__vite__mapDeps([0,1])),$}async function ht(e){let{names:t,aliases:n}=await mt();if(t.has(e))return e;let r=n[e];return r&&t.has(r)?r:null}function gt(e){let t=new Map;async function n(n){let r=t.get(n);if(r)return r;let i=await e.loadAssetIndex(n),a=new Set(i.map(e=>e[1]));return t.set(n,a),a}async function r(e){let t=e.trim().toLowerCase(),r=t.indexOf(`:`);if(r===-1){let e=Z(t),r=await ht(e);if(r)return{source:`lucide`,name:r};for(let t of ct)try{let r=await n(t),i=dt(t,e);if(r.has(i))return{source:t,name:i}}catch{}return null}let i=st[t.slice(0,r)];if(!i)return null;let a=dt(i,Z(t.slice(r+1)));try{let e=await n(i);if(e.has(a))return{source:i,name:a};let t=Q(a);for(let n of e)if(Q(n)===t)return{source:i,name:n};return null}catch{return null}}async function i(t,n=12){let{term:r,only:i}=pt(t.trim().toLowerCase());if(r.length===0)return[];let a=Q(Z(r));if(a.length===0)return[];let o=[],s=ut[a],c=e=>{let t=Q(e);return t===a?0:t.startsWith(a)?1:t.includes(a)?2:-1};for(let e of i?[]:(await mt()).names){let t=c(e);t>=0&&o.push({ref:e,label:e,score:t})}for(let t of i?[i]:ct){let n;try{n=await e.loadAssetIndex(t)}catch{continue}for(let e of n){let[n,r,i]=e,a=[r,n.toLowerCase(),...(i??[]).map(e=>e.toLowerCase())].map(c).filter(e=>e>=0);t===`aws`&&s===r&&a.push(-1),a.length!==0&&o.push({ref:`${t}:${r}`,label:`${n} (${t})`,score:Math.min(...a)+.5})}}o.sort((e,t)=>e.score-t.score);let l=new Set,u=[];for(let e of o)if(!l.has(e.ref)&&(l.add(e.ref),u.push({ref:e.ref,label:e.label}),u.length>=n))break;return u}return{resolveIcon:r,searchIcons:i}}function _t(e){let t=e.catalog??null,n=null,r={...e.assetIndexes},i={};function a(){return t?Promise.resolve(t):e.loadCatalog?(n||(n=e.loadCatalog().then(e=>(t=e,t)),n.catch(()=>{n=null})),n):Promise.resolve({})}function o(){return a().then(()=>void 0)}function s(e){return t?.[e]}function c(e){return a().then(t=>t[e]??null)}function l(t,n){let r=T(t);return r?`${r}/svg/${n}.svg`:`${e.assetBase}icon-sets/${t}/${n}.svg`}function u(t){let n=r[t];if(n)return Promise.resolve(n);if(!e.loadAssetIndex)return Promise.resolve([]);let a=i[t];return a||(a=e.loadAssetIndex(t).then(e=>(r[t]=e,e)),i[t]=a,a.catch(()=>{i[t]===a&&delete i[t]})),a}function d(e){return r[e]}let f={},p={};function m(t){let n=f[t];if(n)return Promise.resolve(n);if(!e.loadLibraryGroups)return Promise.resolve([]);let r=p[t];return r||(r=e.loadLibraryGroups(t).then(e=>(f[t]=e,e)),p[t]=r,r.catch(()=>{p[t]===r&&delete p[t]})),r}function h(e){return f[e]}let g=gt({loadAssetIndex:u});return{ensureCatalog:o,cachedNode:s,loadNode:c,loadAssetIndex:u,cachedAssetIndex:d,loadLibraryGroups:m,cachedLibraryGroups:h,assetIconUrl:l,resolveIcon:g.resolveIcon,searchIcons:g.searchIcons}}function vt(){return fetch(new URL(`/assets/icon-nodes-B36Mt8N0.json`,``+import.meta.url)).then(e=>{if(!e.ok)throw Error(`icon catalog fetch failed (${e.status})`);return e.json()})}function yt(){return ot().catch(()=>vt())}function bt(e,t){let n=T(t),r=n?`${n}/data/featured-v1.json`:`${e}icon-sets/${t}.json`;return fetch(r).then(e=>{if(!e.ok)throw Error(`asset index fetch failed (${e.status})`);return e.json()})}function xt(e){let t=T(e);return t?fetch(`${t}/data/all/v1/meta.json`).then(e=>{if(!e.ok)throw Error(`library meta fetch failed (${e.status})`);return e.json()}):Promise.resolve(null)}function St(e){let t=T(e);return t?fetch(`${t}/data/groups-v1.json`).then(e=>{if(!e.ok)throw Error(`library groups fetch failed (${e.status})`);return e.json().then(e=>e.groups)}):Promise.resolve([])}function Ct(e,t,n){let r=T(e);return r?fetch(`${r}/data/groups/v1/${t}--${n}.json`).then(e=>{if(!e.ok)throw Error(`group slice fetch failed (${e.status})`);return e.json()}):Promise.resolve(null)}function wt(e={}){let t=e.assetBase??`/`;return _t({assetBase:t,loadCatalog:e.loadCatalog??yt,loadAssetIndex:e=>bt(t,e),loadLibraryGroups:St})}var Tt=null;function Et(){return Tt||=wt(),Tt}export{J as _,Ye as a,Ne as c,Oe as d,G as f,be as g,ye as h,xt as i,se as l,D as m,wt as n,Xe as o,ze as p,Ct as r,We as s,Et as t,Ee as u,He as v,Y as y};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./react-lCSYwAWP.js";import{t as n}from"./jsx-runtime-DKdBMi_L.js";import{i as r}from"./config-D8b1QyEk.js";import{o as ee}from"./editor-BeufBV54.js";import{i as te,r as ne,t as i}from"./icons-DzW1j-r3.js";import{t as re}from"./IconLoader2-CzCTn-Sn.js";import{t as ie}from"./IconSearch-CCpMt02s.js";import{s as ae}from"./asset-glyph-C1E6cGwM.js";import{n as oe}from"./surface-Dke4SWpE.js";import{i as a,n as o,r as se,t as ce}from"./DialogRoot-DUeVfNhS.js";import{a as le,n as ue,r as de,t as fe}from"./use-grid-keyboard-nav-DhQKecO1.js";var s=e(t(),1),c=n(),l=64,u=16,d=2*l;function f(e,t){return e.label.toLowerCase().includes(t)||(e.keywords??[]).some(e=>e.includes(t))}var p={face:`M12 2a10 10 0 1 1 0 20 10 10 0 0 1 0-20Zm-3.4 6.4a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Zm6.8 0a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Zm-8 5.3c.9 2.3 2.6 3.6 4.6 3.6s3.7-1.3 4.6-3.6c-1.5.9-3 1.3-4.6 1.3s-3.1-.4-4.6-1.3Z`,mark:`M20.6 4.6 22 6.7l-11.6 12L2 11.6l1.7-1.9 6.4 5.3L20.6 4.6Z`,object:`M12 1.8l9 5v10.4l-9 5-9-5V6.8l9-5Zm0 2.5L6 7.6l6 3.3 6-3.3-6-3.3ZM4.8 9.3v6.6l6.1 3.4v-6.6L4.8 9.3Zm14.4 0-6.1 3.4v6.6l6.1-3.4V9.3Z`,people:`M8.2 3.6a3.2 3.2 0 1 1 0 6.4 3.2 3.2 0 0 1 0-6.4Zm8.3 1.6a2.6 2.6 0 1 1 0 5.2 2.6 2.6 0 0 1 0-5.2ZM8.2 11.3c3 0 5.3 1.9 5.3 4.7V20H2.9v-4c0-2.8 2.3-4.7 5.3-4.7Zm8.3 1c2.4 0 4.3 1.6 4.3 4V19h-5.9v-3c0-1.2-.4-2.3-1-3.2a7 7 0 0 1 2.6-.5Z`,scene:`M4.5 3.5h15A2.5 2.5 0 0 1 22 6v12a2.5 2.5 0 0 1-2.5 2.5h-15A2.5 2.5 0 0 1 2 18V6a2.5 2.5 0 0 1 2.5-2.5Zm12 3.2a1.9 1.9 0 1 0 0 3.8 1.9 1.9 0 0 0 0-3.8ZM5 17.6h14.2l-4.9-6.6-3.4 4.6-2.2-2.7L5 17.6Z`,solid:`M12 2a10 10 0 1 1 0 20 10 10 0 0 1 0-20Zm0 2.4a7.6 7.6 0 1 0 0 15.2 7.6 7.6 0 0 0 0-15.2Zm0 0v15.2a7.6 7.6 0 0 0 0-15.2Z`},pe=`M4 4h7v7H4V4Zm9 0h7v7h-7V4ZM4 13h7v7H4v-7Zm9 0h7v7h-7v-7Z`;function m(e){return e.path?(0,c.jsx)(`svg`,{className:`h-4 w-4 shrink-0`,viewBox:`0 0 24 24`,fill:`currentColor`,"aria-hidden":`true`,children:(0,c.jsx)(`path`,{fillRule:`evenodd`,d:e.path})}):null}function me(e){let t=new Map;for(let n of e){let e=t.get(n.group)??[];e.push(n),t.set(n.group,e)}return[...t.entries()].map(([e,t])=>({name:e,total:t.reduce((e,t)=>e+t.count,0),subs:t.sort((e,t)=>e.subgroup.localeCompare(t.subgroup))})).sort((e,t)=>e.name.localeCompare(t.name))}var h=`flex w-full cursor-pointer items-center gap-2 rounded-lg px-2 py-[5px] text-left text-[12.5px] outline-none transition-colors`;function he(){return(0,c.jsx)(`div`,{"aria-hidden":!0,children:[64,40,44,52,48,44,40].map((e,t)=>(0,c.jsxs)(`div`,{className:`flex items-center gap-2 px-2 py-[5px]`,children:[(0,c.jsx)(`span`,{className:`h-4 w-4 shrink-0 animate-pulse rounded bg-black/5`}),(0,c.jsx)(`span`,{className:`h-3 animate-pulse rounded bg-black/5`,style:{width:e}}),(0,c.jsx)(`span`,{className:`ml-auto h-3 w-7 shrink-0 animate-pulse rounded bg-black/5`})]},t))})}function g(e){return{source:`drawnicons`,id:e[0],label:e[1],keywords:e[2]?e[2].split(` `):void 0,style:e[7]}}function _(e,t){e(e=>{let{[t]:n,...r}=e;return r})}function v(e){let{open:t,onOpenChange:n,onPick:v}=e,{searchIcons:y}=r(),{remember:ge}=ue(),_e=ee(e=>e.coarsePointer),[b,x]=(0,s.useState)(``),[S,ve]=(0,s.useState)([]),[ye,be]=(0,s.useState)(null),[C,w]=(0,s.useState)(()=>i().cachedLibraryGroups(`drawnicons`)??`loading`),[T,xe]=(0,s.useState)(null),[Se,Ce]=(0,s.useState)(null),[E,D]=(0,s.useState)({}),[O,k]=(0,s.useState)({query:``,failed:!1,entries:[]}),A=(0,s.useRef)([]),j=(0,s.useRef)(null),M=(0,s.useRef)(null),[N,we]=(0,s.useState)(0),[P,Te]=(0,s.useState)({width:480,height:360}),[Ee,F]=(0,s.useState)(null);(0,s.useEffect)(()=>{if(!t)return;let e=!0;return i().loadAssetIndex(`drawnicons`).then(t=>{if(e){let e=t.map(([e,t,n])=>({source:`drawnicons`,id:t,label:e,keywords:Array.isArray(n)?n:void 0}));A.current=e,ve(e)}}).catch(()=>void 0),te(`drawnicons`).then(t=>{e&&t&&be(t)}).catch(()=>void 0),i().loadLibraryGroups(`drawnicons`).then(t=>{e&&w(t.length>0?t:`unavailable`)}).catch(()=>{e&&w(`unavailable`)}),()=>{e=!1}},[t]),(0,s.useEffect)(()=>{let e=b.trim().toLowerCase();if(!y||e.length<2){k({query:``,failed:!1,entries:[]});return}let t=!0,n=window.setTimeout(()=>{y(e).then(n=>{t&&k({query:e,failed:!1,entries:n.map(e=>({source:`drawnicons`,id:e.slug,label:e.name}))})}).catch(()=>{t&&k({query:e,failed:!0,entries:A.current.filter(t=>f(t,e))})})},150);return()=>{t=!1,window.clearTimeout(n)}},[b,y]);let I=(0,s.useRef)(null),De=(0,s.useCallback)(e=>{if(M.current=e,I.current?.disconnect(),I.current=null,e){let t=()=>Te({width:e.clientWidth-u,height:e.clientHeight});t();let n=new ResizeObserver(t);n.observe(e),I.current=n}},[]);function L(){Ae(0),F(null),M.current&&(M.current.scrollTop=0)}function Oe(e){ne(`drawnicons`,e.group,e.subgroup).then(t=>{t&&D(n=>({...n,[e.id]:{count:t.count,entries:t.entries.map(g)}}))}).catch(()=>{D(t=>({...t,[e.id]:`error`}))})}function R(e){xe(e),x(``),L(),e&&(E[e.id]===void 0||E[e.id]===`error`)&&(E[e.id]===`error`&&_(D,e.id),Oe(e))}let z=b.trim().toLowerCase(),B=!z&&T?E[T.id]:void 0,V=(0,s.useMemo)(()=>z?y&&z.length>=2?O.query===z?O.entries:null:S.filter(e=>f(e,z)):T?B===void 0?null:B===`error`?[]:B.entries:S,[z,S,O,y,T,B]),H=(0,s.useRef)([]);V&&(H.current=V);let U=V??H.current,W=V===null,ke=B===`error`,G=le((0,s.useMemo)(()=>[{label:null,entries:U}],[U]),P.width,l);function K(e){ge(e),n(!1),v(e.id,e.source)}let{focus:q,setFocus:Ae,onKeyDown:je}=fe({layout:G,scrollRef:M,onEnter:K});function Me(e){x(e),L()}let Ne=N-d,Pe=N+P.height+d,Fe=Math.max(1,Math.floor(P.width/l)),J=P.width/Fe,Y=[];for(let e of G.rows)if(!(e.top+e.height<Ne)){if(e.top>Pe)break;e.type===`icons`&&e.entries.forEach((t,n)=>{let r=e.startIndex+n;Y.push((0,c.jsx)(de,{source:`drawnicons`,slug:t.id,label:t.label,left:n*J+(J-l)/2,top:e.top,focused:r===q,onPick:()=>K(t),onHover:e=>{F(e?t:null),e&&ae(`drawnicons`,t.id)},size:l},t.id))})}let X=ye?.count,Ie=(0,s.useMemo)(()=>Array.isArray(C)?me(C):[],[C]),Le=C!==`unavailable`,Z=C===`loading`,Q=!!z&&O.query===z&&O.failed,$=W?`Searching…`:z?Q?`Couldn't reach the image search — check your connection and try again.`:`No images match “${b}”.`:ke?`Couldn't load these — pick it again to retry.`:`Loading images…`;function Re(){return z?Q?G.flat.length>0?`${G.flat.length.toLocaleString()} offline results`:`search unavailable`:`${G.flat.length.toLocaleString()} results`:T?`${(B!==`error`&&B?.count||T.count).toLocaleString()} images in ${T.subgroup}`:X?`${X.toLocaleString()} images`:`${G.flat.length.toLocaleString()} featured`}return(0,c.jsx)(ce,{open:t,onOpenChange:n,children:(0,c.jsxs)(o,{children:[(0,c.jsx)(a,{className:`fixed inset-0 bg-gray-900/15`}),(0,c.jsxs)(se,{initialFocus:_e?void 0:j,"data-overlay":!0,"data-testid":`image-library`,className:`fixed left-1/2 top-[16%] flex w-[min(720px,92vw)] -translate-x-1/2 flex-col overflow-hidden rounded-xl outline-none ${oe.popup}`,style:{height:`min(64vh, 560px)`},onKeyDown:e=>{e.target?.closest?.(`[data-library-sidebar]`)||je(e),e.stopPropagation()},children:[(0,c.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--chrome-ring)] px-3.5`,children:[W?(0,c.jsx)(re,{size:15,stroke:1.75,className:`shrink-0 animate-spin text-[var(--chrome-fg-400)]`}):(0,c.jsx)(ie,{size:15,stroke:1.75,className:`shrink-0 text-[var(--chrome-fg-400)]`}),(0,c.jsx)(`input`,{ref:j,"data-testid":`image-library-search`,value:b,onChange:e=>Me(e.target.value),placeholder:X?`Search ${X.toLocaleString()} images…`:`Search images…`,className:`w-full bg-transparent py-2.5 text-[13.5px] text-[var(--chrome-fg-900)] outline-none placeholder:text-[var(--chrome-fg-400)]`})]}),(0,c.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[Le&&(0,c.jsx)(`nav`,{"data-library-sidebar":!0,"data-testid":`image-library-sidebar`,"aria-label":`Image categories`,"aria-busy":Z||void 0,className:`scrollbar-slim w-[176px] shrink-0 overflow-y-auto border-r border-[var(--chrome-ring)] p-1.5`,children:Z?(0,c.jsx)(he,{}):(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)(`button`,{type:`button`,onClick:()=>R(null),"aria-current":T?void 0:`true`,className:`${h} ${T?`text-[var(--chrome-fg-700)] hover:bg-[var(--chrome-hover)]`:`bg-[var(--chrome-hover)] font-medium text-[var(--chrome-fg-900)]`}`,children:[(0,c.jsx)(m,{path:pe}),(0,c.jsx)(`span`,{className:`truncate`,children:`All images`}),X!=null&&(0,c.jsx)(`span`,{className:`ml-auto shrink-0 text-[11px] font-normal text-[var(--chrome-fg-400)]`,children:X.toLocaleString()})]}),Ie.map(e=>{if(e.subs.length===1){let t=e.subs[0],n=T?.id===t.id;return(0,c.jsxs)(`button`,{type:`button`,onClick:()=>R(t),"aria-current":n?`true`:void 0,className:`${h} capitalize ${n?`bg-[var(--chrome-hover)] font-medium text-[var(--chrome-fg-900)]`:`text-[var(--chrome-fg-700)] hover:bg-[var(--chrome-hover)]`}`,children:[(0,c.jsx)(m,{path:p[e.name]}),(0,c.jsx)(`span`,{className:`truncate`,children:e.name}),(0,c.jsx)(`span`,{className:`ml-auto shrink-0 text-[11px] font-normal text-[var(--chrome-fg-400)]`,children:e.total.toLocaleString()})]},e.name)}let t=Se===e.name;return(0,c.jsxs)(`div`,{children:[(0,c.jsxs)(`button`,{type:`button`,onClick:()=>Ce(t?null:e.name),"aria-expanded":t,className:`${h} capitalize text-[var(--chrome-fg-700)] hover:bg-[var(--chrome-hover)]`,children:[(0,c.jsx)(m,{path:p[e.name]}),(0,c.jsx)(`span`,{className:`truncate`,children:e.name}),(0,c.jsx)(`span`,{className:`ml-auto shrink-0 text-[11px] text-[var(--chrome-fg-400)]`,children:e.total.toLocaleString()})]}),t&&e.subs.map(e=>{let t=T?.id===e.id;return(0,c.jsxs)(`button`,{type:`button`,onClick:()=>R(e),"aria-current":t?`true`:void 0,className:`${h} pl-8 ${t?`bg-[var(--chrome-hover)] font-medium text-[var(--chrome-fg-900)]`:`text-[var(--chrome-fg-500)] hover:bg-[var(--chrome-hover)] hover:text-[var(--chrome-fg-700)]`}`,children:[(0,c.jsx)(`span`,{className:`truncate`,children:e.subgroup}),(0,c.jsx)(`span`,{className:`ml-auto shrink-0 text-[11px] font-normal text-[var(--chrome-fg-400)]`,children:e.count.toLocaleString()})]},e.id)})]},e.name)})]})}),(0,c.jsx)(`div`,{ref:De,onScroll:e=>we(e.currentTarget.scrollTop),className:`scrollbar-slim relative min-w-0 flex-1 overflow-y-auto overflow-x-hidden p-2`,children:G.flat.length===0?(0,c.jsx)(`div`,{className:`px-2 py-8 text-center text-sm text-gray-400`,children:$}):(0,c.jsx)(`div`,{className:`relative`,style:{height:G.totalHeight},children:Y})})]}),(0,c.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-t border-black/5 px-3 py-2 text-[11px] text-gray-400`,children:[(0,c.jsx)(`span`,{className:`truncate text-gray-600`,children:Ee?.label??G.flat[q]?.label??(!z&&T?`${T.group} / ${T.subgroup}`:`Image library`)}),(0,c.jsx)(`span`,{className:`shrink-0`,children:Re()})]})]})]})})}export{v as ImageLibraryDialog};
|
|
1
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./react-lCSYwAWP.js";import{t as n}from"./jsx-runtime-DKdBMi_L.js";import{o as r}from"./editor-CpiNbiMQ.js";import{i as ee}from"./config-D8b1QyEk.js";import{i as te,r as ne,t as i}from"./icons-K7FjuB-c.js";import{s as re}from"./asset-glyph-Dxg-7b67.js";import{t as ie}from"./IconLoader2-CzCTn-Sn.js";import{t as ae}from"./IconSearch-CCpMt02s.js";import{n as oe}from"./surface-Dke4SWpE.js";import{i as a,n as o,r as se,t as ce}from"./DialogRoot-DUeVfNhS.js";import{a as le,n as ue,r as de,t as fe}from"./use-grid-keyboard-nav-BhzrY178.js";var s=e(t(),1),c=n(),l=64,u=16,d=2*l;function f(e,t){return e.label.toLowerCase().includes(t)||(e.keywords??[]).some(e=>e.includes(t))}var p={face:`M12 2a10 10 0 1 1 0 20 10 10 0 0 1 0-20Zm-3.4 6.4a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Zm6.8 0a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Zm-8 5.3c.9 2.3 2.6 3.6 4.6 3.6s3.7-1.3 4.6-3.6c-1.5.9-3 1.3-4.6 1.3s-3.1-.4-4.6-1.3Z`,mark:`M20.6 4.6 22 6.7l-11.6 12L2 11.6l1.7-1.9 6.4 5.3L20.6 4.6Z`,object:`M12 1.8l9 5v10.4l-9 5-9-5V6.8l9-5Zm0 2.5L6 7.6l6 3.3 6-3.3-6-3.3ZM4.8 9.3v6.6l6.1 3.4v-6.6L4.8 9.3Zm14.4 0-6.1 3.4v6.6l6.1-3.4V9.3Z`,people:`M8.2 3.6a3.2 3.2 0 1 1 0 6.4 3.2 3.2 0 0 1 0-6.4Zm8.3 1.6a2.6 2.6 0 1 1 0 5.2 2.6 2.6 0 0 1 0-5.2ZM8.2 11.3c3 0 5.3 1.9 5.3 4.7V20H2.9v-4c0-2.8 2.3-4.7 5.3-4.7Zm8.3 1c2.4 0 4.3 1.6 4.3 4V19h-5.9v-3c0-1.2-.4-2.3-1-3.2a7 7 0 0 1 2.6-.5Z`,scene:`M4.5 3.5h15A2.5 2.5 0 0 1 22 6v12a2.5 2.5 0 0 1-2.5 2.5h-15A2.5 2.5 0 0 1 2 18V6a2.5 2.5 0 0 1 2.5-2.5Zm12 3.2a1.9 1.9 0 1 0 0 3.8 1.9 1.9 0 0 0 0-3.8ZM5 17.6h14.2l-4.9-6.6-3.4 4.6-2.2-2.7L5 17.6Z`,solid:`M12 2a10 10 0 1 1 0 20 10 10 0 0 1 0-20Zm0 2.4a7.6 7.6 0 1 0 0 15.2 7.6 7.6 0 0 0 0-15.2Zm0 0v15.2a7.6 7.6 0 0 0 0-15.2Z`},pe=`M4 4h7v7H4V4Zm9 0h7v7h-7V4ZM4 13h7v7H4v-7Zm9 0h7v7h-7v-7Z`;function m(e){return e.path?(0,c.jsx)(`svg`,{className:`h-4 w-4 shrink-0`,viewBox:`0 0 24 24`,fill:`currentColor`,"aria-hidden":`true`,children:(0,c.jsx)(`path`,{fillRule:`evenodd`,d:e.path})}):null}function me(e){let t=new Map;for(let n of e){let e=t.get(n.group)??[];e.push(n),t.set(n.group,e)}return[...t.entries()].map(([e,t])=>({name:e,total:t.reduce((e,t)=>e+t.count,0),subs:t.sort((e,t)=>e.subgroup.localeCompare(t.subgroup))})).sort((e,t)=>e.name.localeCompare(t.name))}var h=`flex w-full cursor-pointer items-center gap-2 rounded-lg px-2 py-[5px] text-left text-[12.5px] outline-none transition-colors`;function he(){return(0,c.jsx)(`div`,{"aria-hidden":!0,children:[64,40,44,52,48,44,40].map((e,t)=>(0,c.jsxs)(`div`,{className:`flex items-center gap-2 px-2 py-[5px]`,children:[(0,c.jsx)(`span`,{className:`h-4 w-4 shrink-0 animate-pulse rounded bg-black/5`}),(0,c.jsx)(`span`,{className:`h-3 animate-pulse rounded bg-black/5`,style:{width:e}}),(0,c.jsx)(`span`,{className:`ml-auto h-3 w-7 shrink-0 animate-pulse rounded bg-black/5`})]},t))})}function g(e){return{source:`drawnicons`,id:e[0],label:e[1],keywords:e[2]?e[2].split(` `):void 0,style:e[7]}}function _(e,t){e(e=>{let{[t]:n,...r}=e;return r})}function v(e){let{open:t,onOpenChange:n,onPick:v}=e,{searchIcons:y}=ee(),{remember:ge}=ue(),_e=r(e=>e.coarsePointer),[b,x]=(0,s.useState)(``),[S,ve]=(0,s.useState)([]),[ye,be]=(0,s.useState)(null),[C,w]=(0,s.useState)(()=>i().cachedLibraryGroups(`drawnicons`)??`loading`),[T,xe]=(0,s.useState)(null),[Se,Ce]=(0,s.useState)(null),[E,D]=(0,s.useState)({}),[O,k]=(0,s.useState)({query:``,failed:!1,entries:[]}),A=(0,s.useRef)([]),j=(0,s.useRef)(null),M=(0,s.useRef)(null),[N,we]=(0,s.useState)(0),[P,Te]=(0,s.useState)({width:480,height:360}),[Ee,F]=(0,s.useState)(null);(0,s.useEffect)(()=>{if(!t)return;let e=!0;return i().loadAssetIndex(`drawnicons`).then(t=>{if(e){let e=t.map(([e,t,n])=>({source:`drawnicons`,id:t,label:e,keywords:Array.isArray(n)?n:void 0}));A.current=e,ve(e)}}).catch(()=>void 0),te(`drawnicons`).then(t=>{e&&t&&be(t)}).catch(()=>void 0),i().loadLibraryGroups(`drawnicons`).then(t=>{e&&w(t.length>0?t:`unavailable`)}).catch(()=>{e&&w(`unavailable`)}),()=>{e=!1}},[t]),(0,s.useEffect)(()=>{let e=b.trim().toLowerCase();if(!y||e.length<2){k({query:``,failed:!1,entries:[]});return}let t=!0,n=window.setTimeout(()=>{y(e).then(n=>{t&&k({query:e,failed:!1,entries:n.map(e=>({source:`drawnicons`,id:e.slug,label:e.name}))})}).catch(()=>{t&&k({query:e,failed:!0,entries:A.current.filter(t=>f(t,e))})})},150);return()=>{t=!1,window.clearTimeout(n)}},[b,y]);let I=(0,s.useRef)(null),De=(0,s.useCallback)(e=>{if(M.current=e,I.current?.disconnect(),I.current=null,e){let t=()=>Te({width:e.clientWidth-u,height:e.clientHeight});t();let n=new ResizeObserver(t);n.observe(e),I.current=n}},[]);function L(){Ae(0),F(null),M.current&&(M.current.scrollTop=0)}function Oe(e){ne(`drawnicons`,e.group,e.subgroup).then(t=>{t&&D(n=>({...n,[e.id]:{count:t.count,entries:t.entries.map(g)}}))}).catch(()=>{D(t=>({...t,[e.id]:`error`}))})}function R(e){xe(e),x(``),L(),e&&(E[e.id]===void 0||E[e.id]===`error`)&&(E[e.id]===`error`&&_(D,e.id),Oe(e))}let z=b.trim().toLowerCase(),B=!z&&T?E[T.id]:void 0,V=(0,s.useMemo)(()=>z?y&&z.length>=2?O.query===z?O.entries:null:S.filter(e=>f(e,z)):T?B===void 0?null:B===`error`?[]:B.entries:S,[z,S,O,y,T,B]),H=(0,s.useRef)([]);V&&(H.current=V);let U=V??H.current,W=V===null,ke=B===`error`,G=le((0,s.useMemo)(()=>[{label:null,entries:U}],[U]),P.width,l);function K(e){ge(e),n(!1),v(e.id,e.source)}let{focus:q,setFocus:Ae,onKeyDown:je}=fe({layout:G,scrollRef:M,onEnter:K});function Me(e){x(e),L()}let Ne=N-d,Pe=N+P.height+d,Fe=Math.max(1,Math.floor(P.width/l)),J=P.width/Fe,Y=[];for(let e of G.rows)if(!(e.top+e.height<Ne)){if(e.top>Pe)break;e.type===`icons`&&e.entries.forEach((t,n)=>{let r=e.startIndex+n;Y.push((0,c.jsx)(de,{source:`drawnicons`,slug:t.id,label:t.label,left:n*J+(J-l)/2,top:e.top,focused:r===q,onPick:()=>K(t),onHover:e=>{F(e?t:null),e&&re(`drawnicons`,t.id)},size:l},t.id))})}let X=ye?.count,Ie=(0,s.useMemo)(()=>Array.isArray(C)?me(C):[],[C]),Le=C!==`unavailable`,Z=C===`loading`,Q=!!z&&O.query===z&&O.failed,$=W?`Searching…`:z?Q?`Couldn't reach the image search — check your connection and try again.`:`No images match “${b}”.`:ke?`Couldn't load these — pick it again to retry.`:`Loading images…`;function Re(){return z?Q?G.flat.length>0?`${G.flat.length.toLocaleString()} offline results`:`search unavailable`:`${G.flat.length.toLocaleString()} results`:T?`${(B!==`error`&&B?.count||T.count).toLocaleString()} images in ${T.subgroup}`:X?`${X.toLocaleString()} images`:`${G.flat.length.toLocaleString()} featured`}return(0,c.jsx)(ce,{open:t,onOpenChange:n,children:(0,c.jsxs)(o,{children:[(0,c.jsx)(a,{className:`fixed inset-0 bg-gray-900/15`}),(0,c.jsxs)(se,{initialFocus:_e?void 0:j,"data-overlay":!0,"data-testid":`image-library`,className:`fixed left-1/2 top-[16%] flex w-[min(720px,92vw)] -translate-x-1/2 flex-col overflow-hidden rounded-xl outline-none ${oe.popup}`,style:{height:`min(64vh, 560px)`},onKeyDown:e=>{e.target?.closest?.(`[data-library-sidebar]`)||je(e),e.stopPropagation()},children:[(0,c.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--chrome-ring)] px-3.5`,children:[W?(0,c.jsx)(ie,{size:15,stroke:1.75,className:`shrink-0 animate-spin text-[var(--chrome-fg-400)]`}):(0,c.jsx)(ae,{size:15,stroke:1.75,className:`shrink-0 text-[var(--chrome-fg-400)]`}),(0,c.jsx)(`input`,{ref:j,"data-testid":`image-library-search`,value:b,onChange:e=>Me(e.target.value),placeholder:X?`Search ${X.toLocaleString()} images…`:`Search images…`,className:`w-full bg-transparent py-2.5 text-[13.5px] text-[var(--chrome-fg-900)] outline-none placeholder:text-[var(--chrome-fg-400)]`})]}),(0,c.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[Le&&(0,c.jsx)(`nav`,{"data-library-sidebar":!0,"data-testid":`image-library-sidebar`,"aria-label":`Image categories`,"aria-busy":Z||void 0,className:`scrollbar-slim w-[176px] shrink-0 overflow-y-auto border-r border-[var(--chrome-ring)] p-1.5`,children:Z?(0,c.jsx)(he,{}):(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)(`button`,{type:`button`,onClick:()=>R(null),"aria-current":T?void 0:`true`,className:`${h} ${T?`text-[var(--chrome-fg-700)] hover:bg-[var(--chrome-hover)]`:`bg-[var(--chrome-hover)] font-medium text-[var(--chrome-fg-900)]`}`,children:[(0,c.jsx)(m,{path:pe}),(0,c.jsx)(`span`,{className:`truncate`,children:`All images`}),X!=null&&(0,c.jsx)(`span`,{className:`ml-auto shrink-0 text-[11px] font-normal text-[var(--chrome-fg-400)]`,children:X.toLocaleString()})]}),Ie.map(e=>{if(e.subs.length===1){let t=e.subs[0],n=T?.id===t.id;return(0,c.jsxs)(`button`,{type:`button`,onClick:()=>R(t),"aria-current":n?`true`:void 0,className:`${h} capitalize ${n?`bg-[var(--chrome-hover)] font-medium text-[var(--chrome-fg-900)]`:`text-[var(--chrome-fg-700)] hover:bg-[var(--chrome-hover)]`}`,children:[(0,c.jsx)(m,{path:p[e.name]}),(0,c.jsx)(`span`,{className:`truncate`,children:e.name}),(0,c.jsx)(`span`,{className:`ml-auto shrink-0 text-[11px] font-normal text-[var(--chrome-fg-400)]`,children:e.total.toLocaleString()})]},e.name)}let t=Se===e.name;return(0,c.jsxs)(`div`,{children:[(0,c.jsxs)(`button`,{type:`button`,onClick:()=>Ce(t?null:e.name),"aria-expanded":t,className:`${h} capitalize text-[var(--chrome-fg-700)] hover:bg-[var(--chrome-hover)]`,children:[(0,c.jsx)(m,{path:p[e.name]}),(0,c.jsx)(`span`,{className:`truncate`,children:e.name}),(0,c.jsx)(`span`,{className:`ml-auto shrink-0 text-[11px] text-[var(--chrome-fg-400)]`,children:e.total.toLocaleString()})]}),t&&e.subs.map(e=>{let t=T?.id===e.id;return(0,c.jsxs)(`button`,{type:`button`,onClick:()=>R(e),"aria-current":t?`true`:void 0,className:`${h} pl-8 ${t?`bg-[var(--chrome-hover)] font-medium text-[var(--chrome-fg-900)]`:`text-[var(--chrome-fg-500)] hover:bg-[var(--chrome-hover)] hover:text-[var(--chrome-fg-700)]`}`,children:[(0,c.jsx)(`span`,{className:`truncate`,children:e.subgroup}),(0,c.jsx)(`span`,{className:`ml-auto shrink-0 text-[11px] font-normal text-[var(--chrome-fg-400)]`,children:e.count.toLocaleString()})]},e.id)})]},e.name)})]})}),(0,c.jsx)(`div`,{ref:De,onScroll:e=>we(e.currentTarget.scrollTop),className:`scrollbar-slim relative min-w-0 flex-1 overflow-y-auto overflow-x-hidden p-2`,children:G.flat.length===0?(0,c.jsx)(`div`,{className:`px-2 py-8 text-center text-sm text-gray-400`,children:$}):(0,c.jsx)(`div`,{className:`relative`,style:{height:G.totalHeight},children:Y})})]}),(0,c.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-t border-black/5 px-3 py-2 text-[11px] text-gray-400`,children:[(0,c.jsx)(`span`,{className:`truncate text-gray-600`,children:Ee?.label??G.flat[q]?.label??(!z&&T?`${T.group} / ${T.subgroup}`:`Image library`)}),(0,c.jsx)(`span`,{className:`shrink-0`,children:Re()})]})]})]})})}export{v as ImageLibraryDialog};
|