koboyo 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -0
- package/assets/editor/assets/ContextMenuTrigger-CXUL1E23.js +1 -0
- package/assets/editor/assets/DialogDescription-Ddhk2rmF.js +1 -0
- package/assets/editor/assets/DialogRoot-DUeVfNhS.js +1 -0
- package/assets/editor/assets/DialogTitle-D5au2NAn.js +1 -0
- package/assets/editor/assets/FloatingPortalLite-HnWQWrLk.js +1 -0
- package/assets/editor/assets/{IconAlertTriangle-CxPhYpe-.js → IconAlertTriangle-B33xznYN.js} +1 -1
- package/assets/editor/assets/{IconArrowLeft-DFk3Krim.js → IconArrowLeft-B4Zcy-Fc.js} +1 -1
- package/assets/editor/assets/IconChevronLeft-D7e7QC0h.js +1 -0
- package/assets/editor/assets/IconChevronRight-csfMBSUs.js +1 -0
- package/assets/editor/assets/{IconCode-hd05zxU4.js → IconCode-CHIz1nCU.js} +1 -1
- package/assets/editor/assets/IconCornerDownRight-DDiBMO4O.js +1 -0
- package/assets/editor/assets/{IconEraser-DlZQe3-r.js → IconEraser-CYfXj27R.js} +1 -1
- package/assets/editor/assets/{IconFocusCentered-C5PcDeR0.js → IconFocusCentered-Cn8rbfRI.js} +1 -1
- package/assets/editor/assets/IconHelp-4FIVl1rh.js +2 -0
- package/assets/editor/assets/{IconLink-ze4g4Lrj.js → IconLink-VS5p9Ytk.js} +1 -1
- package/assets/editor/assets/IconLoader2-CzCTn-Sn.js +1 -0
- package/assets/editor/assets/IconMinus-BcaDLts8.js +1 -0
- package/assets/editor/assets/{IconMoodSmile-Bic_fw54.js → IconMoodSmile-CSZ5p_Hy.js} +1 -1
- package/assets/editor/assets/{IconPencil-C5Y-Y4dC.js → IconPencil-D_pQsAyv.js} +1 -1
- package/assets/editor/assets/{IconPhoto-CR36IK-b.js → IconPhoto-5zuCDtnR.js} +1 -1
- package/assets/editor/assets/{IconPlayerPlayFilled-D4OODBX7.js → IconPlayerPlayFilled-DVAWmYt7.js} +1 -1
- package/assets/editor/assets/{IconPlayerStopFilled-BUbX6ZO5.js → IconPlayerStopFilled-D4qdct2R.js} +1 -1
- package/assets/editor/assets/IconPlus-D4tAoi-A.js +1 -0
- package/assets/editor/assets/{IconPresentation-DCrY3PKL.js → IconPresentation-BMKzt7fv.js} +1 -1
- package/assets/editor/assets/IconReplace-CYUD1RLF.js +1 -0
- package/assets/editor/assets/{IconSearch-C1K0_Pq_.js → IconSearch-CCpMt02s.js} +1 -1
- package/assets/editor/assets/{IconSparkles-WDcg8BA9.js → IconSparkles-CnCp3BCQ.js} +1 -1
- package/assets/editor/assets/{IconTrash-DbN_RxB7.js → IconTrash-C8w6ThWx.js} +1 -1
- package/assets/editor/assets/{IconUsers-Bwnyj4mm.js → IconUsers-Dp85N225.js} +1 -1
- package/assets/editor/assets/IconX-KrRqxr2j.js +1 -0
- package/assets/editor/assets/MenuSubmenuTrigger-BFlIkXYg.js +1 -0
- package/assets/editor/assets/PopoverPopup-1zO38CRl.js +1 -0
- package/assets/editor/assets/asset-glyph-DjBHkQcP.js +1 -0
- package/assets/editor/assets/billing-BSXr-z2r.js +1 -0
- package/assets/editor/assets/build-pips-BRf3pMnt.js +1 -0
- package/assets/editor/assets/build-visibility-CAmmsnmF.js +1 -0
- package/assets/editor/assets/builders-DrWdKwLQ.js +1 -0
- package/assets/editor/assets/{chart-Z4HQx-0h.js → chart-CKIxcbcM.js} +4 -4
- package/assets/editor/assets/{chrome-layout-B8YmHznO.js → chrome-layout-D5dql-y4.js} +1 -1
- package/assets/editor/assets/code-panel-BFikzGNv.js +18 -0
- package/assets/editor/assets/color-swatches-CZKb4DxX.js +1 -0
- package/assets/editor/assets/command-palette-Uat68wmJ.js +1 -0
- package/assets/editor/assets/config-D8b1QyEk.js +1 -0
- package/assets/editor/assets/connector-labels-DqVssnYz.js +2 -0
- package/assets/editor/assets/copy-image-dialog-C0fXdR1a.js +1 -0
- package/assets/editor/assets/core-C1TxysMz.js +1 -0
- package/assets/editor/assets/createReactComponent-C51FAx3B.js +1 -0
- package/assets/editor/assets/diagram-fingerprint-B-HB8UbR.js +3 -0
- package/assets/editor/assets/dialog-DnXgEbpz.js +1 -0
- package/assets/editor/assets/{edit-BJ_kibk8.js → edit-B4DMFSZr.js} +1 -1
- package/assets/editor/assets/editor-DAJETlQW.js +1 -0
- package/assets/editor/assets/{elk-api-DnfklSaw.js → elk-api-C4wlHVIw.js} +1 -1
- package/assets/editor/assets/{elk-worker-loader-CC-I9MmI.js → elk-worker-loader-BCdkmVMX.js} +1 -1
- package/assets/editor/assets/embed-input-D77Udvni.js +1 -0
- package/assets/editor/assets/export-FQTXirjn.js +2 -0
- package/assets/editor/assets/export-dialog-KYLeNY3G.js +1 -0
- package/assets/editor/assets/export-u442sUQs.js +6 -0
- package/assets/editor/assets/flow-layer-B4Q8rktl.js +1 -0
- package/assets/editor/assets/flow-panel-DbnavW4w.js +1 -0
- package/assets/editor/assets/flow-stage-CSTrNMZF.js +1 -0
- package/assets/editor/assets/{flow-start-BKN48uke.js → flow-start-ByhFxEeV.js} +1 -1
- package/assets/editor/assets/{flows-GGbkNqs8.js → flows-CGl4r-xb.js} +2 -2
- package/assets/editor/assets/{frames-CRP8oPP8.js → frames-DRSLvE9E.js} +1 -1
- package/assets/editor/assets/generate-DHP90nDk.js +26 -0
- package/assets/editor/assets/icon-picker-DIkw2xYL.js +1 -0
- package/assets/editor/assets/image-library-BmoSPV9c.js +1 -0
- package/assets/editor/assets/{index-e23lIFZB.css → index-DBrN0u0i.css} +1 -1
- package/assets/editor/assets/index-DFwoT1_W.js +25 -0
- package/assets/editor/assets/jsx-runtime-DKdBMi_L.js +1 -0
- package/assets/editor/assets/layout-offthread-JPTCbsLL.js +18 -0
- package/assets/editor/assets/{layout.worker-BIE1_z0S.js → layout.worker-CekYkaxO.js} +2 -2
- package/assets/editor/assets/menu-4xb5HtA1.js +1 -0
- package/assets/editor/assets/mermaid-paste-2cCwweY0.js +1 -0
- package/assets/editor/assets/panel-controls-B0Ccd0XF.js +1 -0
- package/assets/editor/assets/{panel-shell-CG2aq4Ia.js → panel-shell-COqmheb-.js} +1 -1
- package/assets/editor/assets/plan-D4Jyzo5X.js +1 -0
- package/assets/editor/assets/presentation-DNmdm11D.js +1 -0
- package/assets/editor/assets/presenter-keys-DLNIsrm5.js +1 -0
- package/assets/editor/assets/{jsx-runtime-2Zwg-L3c.js → react-lCSYwAWP.js} +1 -1
- package/assets/editor/assets/reflow-C6bvnSVm.js +1 -0
- package/assets/editor/assets/registry-d5KleeyB.js +1 -0
- package/assets/editor/assets/renderer-environment-D3n3hbug.js +1 -0
- package/assets/editor/assets/rich-paste-route-Bx69sREx.js +1 -0
- package/assets/editor/assets/ride-overlay-C1TrM7Ki.js +1 -0
- package/assets/editor/assets/selection-overlay-primitives-CfOaP5_G.js +1 -0
- package/assets/editor/assets/shape-meta-YgfIm0bQ.js +1 -0
- package/assets/editor/assets/shape-render-DZscezZk.js +1 -0
- package/assets/editor/assets/shapes-D5w8NTQQ.js +11 -0
- package/assets/editor/assets/sign-in-dialog-tmQEB2bx.js +1 -0
- package/assets/editor/assets/slide-notes-dialog-43EMJFJV.js +1 -0
- package/assets/editor/assets/slides-DDNzjFz9.js +5 -0
- package/assets/editor/assets/slides-panel-DANnu_nw.js +26 -0
- package/assets/editor/assets/text-breaks-DhCXtQrJ.js +7 -0
- package/assets/editor/assets/{theme-palette-D1nbDFBC.js → theme-palette-DEq19D0h.js} +1 -1
- package/assets/editor/assets/tidy-browser-BdlwTfCT.js +1 -0
- package/assets/editor/assets/tidy-scope-REEad7oC.js +1 -0
- package/assets/editor/assets/toast-Czv_DJ-4.js +1 -0
- package/assets/editor/assets/{tool-catalog-CHq6TJ2q.js → tool-catalog-CIjdZm_C.js} +1 -1
- package/assets/editor/assets/tool-drawer-B-Ys7Rsn.js +1 -0
- package/assets/editor/assets/tooltip-CKCG8vcp.js +1 -0
- package/assets/editor/assets/tree-BWJsAqkV.js +1 -0
- package/assets/editor/assets/upgrade-dialog-DhSZnDpx.js +1 -0
- package/assets/editor/assets/use-drag-reorder-ye8-kpyR.js +1 -0
- package/assets/editor/assets/use-export-command-BR-A4kAa.js +2 -0
- package/assets/editor/assets/use-grid-keyboard-nav-B0jjlh8Q.js +0 -0
- package/assets/editor/assets/use-icon-node-uhKPP4Ki.js +1 -0
- package/assets/editor/assets/use-key-held-DaUTxGze.js +1 -0
- package/assets/editor/assets/use-recent-list-DuazDypH.js +1 -0
- package/assets/editor/assets/useAnchoredPopupScrollLock-i8D5Dm1d.js +1 -0
- package/assets/editor/assets/useBaseUiId-D2RfU0uY.js +1 -0
- package/assets/editor/assets/useButton-CLQYGhRJ.js +1 -0
- package/assets/editor/assets/useControlled-BE8zdmih.js +1 -0
- package/assets/editor/assets/usePositioner-AtbrPc7w.js +1 -0
- package/assets/editor/assets/useScrollLock-CQpr0n6U.js +1 -0
- package/assets/editor/assets/useTriggerFocusGuards-Mibi8yYw.js +1 -0
- package/assets/editor/assets/useValueChanged-SqLfIDi5.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-BjBov-C2.js +1 -0
- package/assets/editor/assets/web-embed-dialog-sT-1yK5o.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-B5Hb3RGw.js +1 -0
- package/assets/editor/assets/web-runtime-wPi8lWzO.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 +79 -69
- package/dist/koboyo.js +600 -225
- package/package.json +5 -5
- package/skills/koboyo/SKILL.md +27 -2
- package/skills/koboyo/references/architecture.md +1 -1
- package/skills/koboyo/references/bpmn.md +1 -1
- package/skills/koboyo/references/chart.md +1 -1
- package/skills/koboyo/references/cycle.md +1 -1
- package/skills/koboyo/references/erd.md +1 -1
- package/skills/koboyo/references/flowchart.md +1 -1
- package/skills/koboyo/references/funnel.md +1 -1
- package/skills/koboyo/references/gantt.md +1 -1
- package/skills/koboyo/references/gitgraph.md +1 -1
- package/skills/koboyo/references/journey.md +1 -1
- package/skills/koboyo/references/matrix.md +1 -1
- package/skills/koboyo/references/mindmap.md +1 -1
- package/skills/koboyo/references/orgchart.md +1 -1
- package/skills/koboyo/references/pyramid.md +1 -1
- package/skills/koboyo/references/sankey.md +1 -1
- package/skills/koboyo/references/sequence.md +1 -1
- package/skills/koboyo/references/statemachine.md +1 -1
- package/skills/koboyo/references/timeline.md +1 -1
- package/skills/koboyo/references/venn.md +1 -1
- package/skills/koboyo/references/wireframe.md +1 -1
- package/assets/editor/assets/DialogDescription-ZtZCUsfy.js +0 -1
- package/assets/editor/assets/DialogRoot-mHGRFW9m.js +0 -1
- package/assets/editor/assets/DialogTitle-CFhr-gP9.js +0 -1
- package/assets/editor/assets/FloatingPortalLite-Bf0q6fmL.js +0 -1
- package/assets/editor/assets/IconChevronLeft-BR0iwdRI.js +0 -1
- package/assets/editor/assets/IconChevronRight-DBDnxPYT.js +0 -1
- package/assets/editor/assets/IconCornerDownRight-BerbioFY.js +0 -1
- package/assets/editor/assets/IconHelp-DKNacRqS.js +0 -2
- package/assets/editor/assets/IconLoader2-BQaF1LKo.js +0 -1
- package/assets/editor/assets/IconMinus-y4ejub-s.js +0 -1
- package/assets/editor/assets/IconPlus-BbmieIBT.js +0 -1
- package/assets/editor/assets/IconX-AlbPkO_g.js +0 -1
- package/assets/editor/assets/MenuSubmenuTrigger-CpN67g09.js +0 -1
- package/assets/editor/assets/PopoverPopup-BqGWd_uB.js +0 -1
- package/assets/editor/assets/asset-glyph-B3c--Mx2.js +0 -1
- package/assets/editor/assets/billing-C-BNGM3Z.js +0 -1
- package/assets/editor/assets/build-pips-q_Fq10ov.js +0 -1
- package/assets/editor/assets/build-visibility-E1mHeDCW.js +0 -1
- package/assets/editor/assets/builders-DbF28yId.js +0 -1
- package/assets/editor/assets/code-panel-BfsykjSz.js +0 -43
- package/assets/editor/assets/command-palette-BjFnQHnz.js +0 -1
- package/assets/editor/assets/config-a_lz-57R.js +0 -1
- package/assets/editor/assets/connector-labels-vVnYQJRz.js +0 -2
- package/assets/editor/assets/copy-image-dialog-CCY_6fM4.js +0 -1
- package/assets/editor/assets/core-CBnmD9hT.js +0 -1
- package/assets/editor/assets/createReactComponent-9UsI5fmM.js +0 -1
- package/assets/editor/assets/diagram-fingerprint-CsqZK4xZ.js +0 -3
- package/assets/editor/assets/dialog-B32krrce.js +0 -1
- package/assets/editor/assets/editor-B0tARd79.js +0 -1
- package/assets/editor/assets/export-ChP0k5F5.js +0 -2
- package/assets/editor/assets/export-DEFKKRRi.js +0 -6
- package/assets/editor/assets/export-dialog-DPg1uzX5.js +0 -1
- package/assets/editor/assets/flow-layer-B7mlx0G4.js +0 -1
- package/assets/editor/assets/flow-panel-DoK6VIJ4.js +0 -1
- package/assets/editor/assets/flow-stage-fiF5Nggn.js +0 -1
- package/assets/editor/assets/icon-picker-NboB5Fvv.js +0 -1
- package/assets/editor/assets/image-library-Bb6bV6eK.js +0 -1
- package/assets/editor/assets/index-mhi0Z6gG.js +0 -24
- package/assets/editor/assets/layout-offthread-BwetpTFH.js +0 -18
- package/assets/editor/assets/menu-BPrc8Ara.js +0 -1
- package/assets/editor/assets/panel-controls-DYZ7QFT5.js +0 -1
- package/assets/editor/assets/plan-jQm1jDpt.js +0 -1
- package/assets/editor/assets/presentation-BavfNtxp.js +0 -1
- package/assets/editor/assets/presenter-keys-DVQcBdy1.js +0 -1
- package/assets/editor/assets/reflow-Cv75wPSh.js +0 -1
- package/assets/editor/assets/registry-DCgwH8wI.js +0 -1
- package/assets/editor/assets/renderer-environment-DmWXvuT4.js +0 -1
- package/assets/editor/assets/ride-overlay-DhygYdx1.js +0 -1
- package/assets/editor/assets/selection-overlay-primitives-hWJ1xjF7.js +0 -1
- package/assets/editor/assets/shape-meta-BpwsiB82.js +0 -1
- package/assets/editor/assets/sign-in-dialog-DRooo5xw.js +0 -1
- package/assets/editor/assets/slide-notes-dialog-DLdTmd7_.js +0 -1
- package/assets/editor/assets/slides-D9bnXqtf.js +0 -15
- package/assets/editor/assets/slides-panel-hozTMSMk.js +0 -26
- package/assets/editor/assets/text-breaks-YU-ymaF9.js +0 -7
- package/assets/editor/assets/tidy-browser-BwodBnAH.js +0 -1
- package/assets/editor/assets/tidy-scope-BgBSUklT.js +0 -1
- package/assets/editor/assets/toast-Nu_fiCd9.js +0 -1
- package/assets/editor/assets/tool-drawer-DEEqsKSN.js +0 -1
- package/assets/editor/assets/tooltip-DgEojto1.js +0 -1
- package/assets/editor/assets/tree-BbSzMkPL.js +0 -1
- package/assets/editor/assets/upgrade-dialog-DpZeaLDB.js +0 -1
- package/assets/editor/assets/use-drag-reorder-CTTvTwza.js +0 -1
- package/assets/editor/assets/use-export-command-CPc7qug1.js +0 -2
- package/assets/editor/assets/use-grid-keyboard-nav-B88Qw-cQ.js +0 -0
- package/assets/editor/assets/use-icon-node-DJZFjABX.js +0 -1
- package/assets/editor/assets/use-key-held-38H1v73f.js +0 -1
- package/assets/editor/assets/use-recent-list-BEG0iBIm.js +0 -1
- package/assets/editor/assets/useAnchoredPopupScrollLock-BGKchwpi.js +0 -1
- package/assets/editor/assets/useBaseUiId-C0Zm5sUV.js +0 -1
- package/assets/editor/assets/useButton-D3eS7fh5.js +0 -1
- package/assets/editor/assets/useControlled-C5xhvPXX.js +0 -1
- package/assets/editor/assets/usePositioner-DA3aR0-T.js +0 -1
- package/assets/editor/assets/useScrollLock-B7mQdXyv.js +0 -1
- package/assets/editor/assets/useValueChanged-p8z-93L4.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./react-lCSYwAWP.js";var n=e(t(),1),r={outline:{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},filled:{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`currentColor`,stroke:`none`}},i=(e,t,i,a)=>{let o=(0,n.forwardRef)(({color:i=`currentColor`,size:o=24,stroke:s=2,title:c,className:l,children:u,...d},f)=>(0,n.createElement)(`svg`,{ref:f,...r[e],width:o,height:o,className:[`tabler-icon`,`tabler-icon-${t}`,l].join(` `),...e===`filled`?{fill:i}:{strokeWidth:s,stroke:i},...d},[c&&(0,n.createElement)(`title`,{key:`svg-title`},c),...a.map(([e,t])=>(0,n.createElement)(e,t)),...Array.isArray(u)?u:[u]]));return o.displayName=`${i}`,o};export{i as t};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import"./style-BENGW2ZV.js";import{Zt as e,n as t}from"./shapes-D5w8NTQQ.js";import{_ as n,h as r}from"./slides-DDNzjFz9.js";import{n as i}from"./shape-meta-YgfIm0bQ.js";function a(){return{cells:[[``,`x`,`y`],[`Feature A`,`0.32`,`0.78`],[`Feature B`,`0.74`,`0.7`],[`Feature C`,`0.68`,`0.3`],[`Feature D`,`0.26`,`0.32`]],quadrantLabels:[`Big bets`,`Quick wins`,`Deprioritise`,`Time sinks`],xTitle:`Low Effort → High Effort`,yTitle:`Low Impact → High Impact`,showTitles:!0}}var o={width:360,height:240},s=new Set([`radar`,`quadrant`]);function c(e){return s.has(e)?{width:320,height:320}:o}function l(e,n,r=`bar`){let i=c(r);return{id:t(),type:`chart`,chartType:r,x:e.x,y:e.y,width:i.width,height:i.height,rotation:0,cells:[[``,`Revenue`],[`Jan`,`12`],[`Feb`,`19`],[`Mar`,`9`],[`Apr`,`22`],[`May`,`17`]],fontSize:12,fontFamily:n.fontFamily,color:n.color,opacity:n.opacity,...r===`quadrant`?a():{}}}var u=`arrow`;function d(e,t){return f(t,n(e,t))}function f(e,t){let n=[`frame|${i(e)}`];for(let e of t)n.push(x(e));return n.sort(),S(n.join(`
|
|
2
|
+
`))}function p(e,t){return typeof e.code!=`string`||e.code.trim().length===0||typeof e.codeFingerprint!=`string`?!1:(e.type===`chart`?_(e):t(e))!==e.codeFingerprint}function m(e,t){return p(t,t=>d(e,t))}function h(e,t,n){e.code=t,e.codeFingerprint=e.type===`chart`?_(e):d(n,e)}function g(e){let t=new Set,n=null;for(let i of e)i.type!==`figure`&&i.type!==`chart`||p(i,t=>f(t,(n??=r(e)).members(t)))&&t.add(i.id);return t}function _(e){let t=[e.chartType,e.horizontal?`h`:``,e.stacked?`s`:``,e.showValues?`v`:``,e.title??``,e.xTitle??``,e.yTitle??``,...e.cells.map(e=>e.join(``))];return e.quadrantLabels&&e.quadrantLabels.length>0&&t.push(`quadrants|${e.quadrantLabels.join(`|`)}`),S(t.join(`
|
|
3
|
+
`))}function v(e,t){let n=e[t];return typeof n==`string`||typeof n==`number`?String(n):``}function y(e){if(e.type===`icon`)return`${v(e,`name`)}/${v(e,`source`)}`;let t=e.titleIcon;return t?`${t.name??``}/${t.source??``}`:``}function b(t){let n=[],r=v(t,`fillStyle`);r&&r!==`pastel`&&n.push(`fillStyle:${r}`);let i=v(t,`corner`);i&&i!==e(v(t,`kind`))&&n.push(`corner:${i}`);for(let e of[`flipX`,`flipY`])t[e]===!0&&n.push(`${e}:1`);return(t.type===`arrow`||t.type===`line`)&&(t.dash!==`solid`&&n.push(`dash:${t.dash}`),t.startHead&&t.startHead!==u&&n.push(`startHead:${t.startHead}`),t.endHead&&t.endHead!==u&&n.push(`endHead:${t.endHead}`)),n}function x(e){let t=[e.type,v(e,`kind`),i(e),v(e,`fill`),v(e,`color`),y(e)];if(e.type===`arrow`){let n=e.startBinding?.shapeId??``,r=e.endBinding?.shapeId??``;return[...t,n,r,...b(e)].join(`|`)}return[...t,...b(e)].join(`|`)}function S(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(36)}export{c as a,o as i,g as n,l as o,h as r,m as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./react-lCSYwAWP.js";var n=e(t(),1);function r(e){let t=e.open,r=e.inline===!0,[i,a]=(0,n.useState)(!1),[o,s]=(0,n.useState)(null),c=(0,n.useRef)(!1);return(0,n.useEffect)(()=>{t&&(a(!1),s(null),c.current=!1)},[t]),{pending:i,error:o,setError:s,run:(0,n.useCallback)(async(e,t)=>{if(!c.current){c.current=!0,s(null),a(!0);try{await e(),t.onSuccess(),c.current=!1,r&&a(!1)}catch(e){s(t.errorFor(e)),a(!1),c.current=!1}}},[r])}}function i(e,t){return e instanceof Error?e.message:t}var a={title:`text-[15px] text-[var(--chrome-fg-900)]`,description:`text-[13px] leading-relaxed text-[var(--chrome-fg-500)]`,field:`w-full rounded-lg bg-transparent px-3 py-2 text-[13px] text-[var(--chrome-fg-900)] outline-none ring-1 ring-[var(--chrome-input)] transition-shadow hover:ring-[var(--chrome-input-hover)] focus:ring-[var(--chrome-input-hover)] placeholder:text-[var(--chrome-fg-400)]`,select:`w-full appearance-none rounded-lg bg-transparent py-2 pl-3 pr-9 text-[13px] text-[var(--chrome-fg-900)] outline-none ring-1 ring-[var(--chrome-input)] transition-shadow hover:ring-[var(--chrome-input-hover)] focus:ring-[var(--chrome-input-hover)]`,selectChevron:`pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-[var(--chrome-fg-400)]`,label:`text-[12px] text-[var(--chrome-fg-500)]`,error:`text-[12px] text-[var(--chrome-danger)]`,actions:`mt-1 flex justify-end gap-2`,cancelButton:`h-8 rounded-xl bg-[var(--chrome-popup)] px-3.5 text-[13px] text-[var(--chrome-fg-700)] outline-none ring-1 ring-[var(--chrome-ring)] transition-colors hover:bg-[var(--chrome-hover)]`,dangerTextButton:`-ml-2.5 h-8 rounded-xl px-2.5 text-[13px] text-[var(--chrome-danger)] outline-none transition-colors hover:bg-[color-mix(in_srgb,var(--chrome-danger)_10%,transparent)] disabled:opacity-60`,dangerButton:`h-8 rounded-xl bg-red-600 px-3.5 text-[13px] text-white outline-none transition-colors active:scale-[0.97] hover:bg-red-700 disabled:cursor-default disabled:opacity-60 disabled:active:scale-100`,submitButton:`h-8 rounded-xl bg-[var(--chrome-accent)] px-3.5 text-[13px] text-white outline-none transition-colors active:scale-[0.97] hover:bg-[var(--chrome-accent-hover)] disabled:cursor-default disabled:opacity-60 disabled:active:scale-100`};export{i as n,r,a as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{W as e}from"./style-BENGW2ZV.js";import{l as t}from"./slides-
|
|
1
|
+
import{W as e}from"./style-BENGW2ZV.js";import{l as t}from"./slides-DDNzjFz9.js";import{_ as n,a as r,b as i,g as a,h as o,o as s,s as c,t as l}from"./plan-D4Jyzo5X.js";function u(e,t){if(t.length===0){let t={...e};return delete t.animations,t}return{...e,animations:[...t]}}function d(){let e=new Map,t=t=>{let n=e.get(t.id);return n||(n={shape:t,next:[...l(t)]},e.set(t.id,n)),n};return{write(e,n,r){t(e).next[n]=r},drop(e,n){t(e).next[n]=null},replace(t,n){e.set(t.id,{shape:t,next:[...n]})},changed(){let t=[];for(let n of e.values()){let e=n.next.filter(e=>e!=null);f(l(n.shape),e)||t.push(u(n.shape,e))}return t}}}function f(e,t){return e.length===t.length&&e.every((e,n)=>v(e,t[n]))}function p(e,t){let n=-1;e.forEach((e,r)=>{(r===0||!e.withPrevious)&&(n+=1);for(let r of e.items)r.animation.step!==n&&t.write(r.shape,r.index,{...r.animation,step:n})})}function m(e){let t=d();return p(e,t),t.changed()}function h(t,n,r){if(n===r||n<0||n>=t.length)return[];let i=[...t],[a]=i.splice(n,1);return i.splice(e(r,0,i.length),0,a),m(i)}function g(e,t,n){let r=e.findIndex(e=>s(e)===t);if(r===-1||r===0&&n===`with`)return[];let i=n===`with`,a=d(),o=e.map((e,t)=>t===r?{...e,withPrevious:i}:e);p(o,a);let c=_(o);for(let t of e[r].items){let e={...t.animation,step:c[r]};n===`after`?e.afterPrevious=!0:delete e.afterPrevious,n===`click`&&delete e.delay,a.write(t.shape,t.index,e)}return a.changed()}function _(e){let t=-1;return e.map((e,n)=>((n===0||!e.withPrevious)&&(t+=1),t))}function v(e,t){return e.kind===t.kind&&e.step===t.step&&e.effect===t.effect&&e.direction===t.direction&&e.duration===t.duration&&e.delay===t.delay&&e.afterPrevious===t.afterPrevious}function y(e,t,n,i=`enter`){let a=i!==`emphasis`,s=new Set(e.flatMap(e=>e.items.filter(e=>e.animation.kind===i).map(e=>e.shape.id))),c=e.length,u=d();for(let e of t){let t=a?e.shapes.filter(e=>!s.has(e.id)):e.shapes;if(t.length!==0){for(let e of t)u.write(e,l(e).length,{kind:i,step:c,effect:n?r(e,n,i):o(e,i)});c+=1}}return u.changed()}function b(e,t){let n=e.findIndex(e=>e.groupId===t);if(n===-1||e[n].items.length<2)return[];let r=e[n].items.map((t,r)=>({items:[t],withPrevious:r===0&&e[n].withPrevious}));return m([...e.slice(0,n),...r,...e.slice(n+1)])}function x(e,t){let n=e=>e.items.some(e=>e.shape.groupId===t),i=e.findIndex(n);if(i===-1)return[];let a={groupId:t,items:e.filter(n).flatMap(e=>e.items),withPrevious:e[i].withPrevious};if(a.items.length<2)return[];let o=e.filter(e=>!n(e)),s=[...o.slice(0,i),a,...o.slice(i)],u=_(s),f=u[Math.min(i,u.length-1)]??0,m=l(c(a).shape),h=d();p(s,h);let g=new Set(a.items.map(e=>e.shape));for(let e of g)h.replace(e,m.map(t=>({...t,effect:r(e,t.effect,t.kind),step:f})));return h.changed()}function S(e,t,n){let i=d();for(let a of e){let e={...a.animation,effect:r(a.shape,t,a.animation.kind)};n===void 0?delete e.duration:e.duration=n,i.write(a.shape,a.index,e)}return i.changed()}function C(e,t){let n=d();for(let r of e){let e={...r.animation};t>0?e.delay=t:delete e.delay,n.write(r.shape,r.index,e)}return n.changed()}function w(e,t){let n=d();for(let r of e)n.write(r.shape,r.index,{...r.animation,direction:t});return n.changed()}function T(e,t){let n=d();for(let i of e)n.write(i.shape,i.index,{...i.animation,kind:t,effect:r(i.shape,i.animation.effect,t)});return n.changed()}function E(e,t){let n=e.findIndex(e=>s(e)===t);if(n===-1)return[];let r=d();for(let t of e[n].items)r.drop(t.shape,t.index);return p(e.filter((e,t)=>t!==n),r),r.changed()}function D(e){let t=d();for(let n of e)for(let e of n.items)t.drop(e.shape,e.index);return t.changed()}function O(e,s,c,l){let u=a(t(e,s),l??n(e,s)),f=d();return i(u,s).forEach((e,t)=>{for(let n of e.shapes)f.replace(n,[{kind:`enter`,step:t,effect:c?r(n,c):o(n)}])}),f.changed()}export{x as a,w as c,g as d,b as f,D as i,S as l,y as n,h as o,E as r,C as s,O as t,T as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./react-lCSYwAWP.js";import{A as n,C as r,D as i,E as a,M as o,N as s,O as c,S as l,T as u,b as d,j as f,k as ee,t as te,u as ne,w as re,x as ie,y as ae}from"./reflow-C6bvnSVm.js";import{n as oe,t as se}from"./web-embed-url-CHu4SU82.js";import{n as ce,r as le}from"./web-widget-limits-DeMquLIR.js";import{G as ue,h as de}from"./style-BENGW2ZV.js";import{n as fe}from"./shapes-D5w8NTQQ.js";import{A as pe,D as me,O as he,T as p,Y as ge,i as _e,j as ve,q as ye,x as be}from"./slides-DDNzjFz9.js";var m=e(t(),1),xe=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},Se=(e=>e?xe(e):xe),Ce=e=>e;function we(e,t=Ce){let n=m.useSyncExternalStore(e.subscribe,m.useCallback(()=>t(e.getState()),[e,t]),m.useCallback(()=>t(e.getInitialState()),[e,t]));return m.useDebugValue(n),n}var Te=(e,t,n)=>(r,i)=>({pastStates:n?.pastStates||[],futureStates:n?.futureStates||[],undo:(a=1)=>{if(i().pastStates.length){let o=n?.partialize?.(t())||t(),s=i().pastStates.splice(-a,a),c=s.shift();e(c),r({pastStates:i().pastStates,futureStates:i().futureStates.concat(n?.diff?.(o,c)||o,s.reverse())})}},redo:(a=1)=>{if(i().futureStates.length){let o=n?.partialize?.(t())||t(),s=i().futureStates.splice(-a,a),c=s.shift();e(c),r({pastStates:i().pastStates.concat(n?.diff?.(o,c)||o,s.reverse()),futureStates:i().futureStates})}},clear:()=>r({pastStates:[],futureStates:[]}),isTracking:!0,pause:()=>r({isTracking:!1}),resume:()=>r({isTracking:!0}),setOnSave:e=>r({_onSave:e}),_onSave:n?.onSave,_handleSet:(e,t,a,o)=>{n?.limit&&i().pastStates.length>=n?.limit&&i().pastStates.shift(),i()._onSave?.(e,a),r({pastStates:i().pastStates.concat(o||e),futureStates:[]})}}),Ee=(e,t)=>(n,r,i)=>{i.temporal=Se(t?.wrapTemporal?.(Te(n,r,t))||Te(n,r,t));let a=t?.handleSet?.(i.temporal.getState()._handleSet)||i.temporal.getState()._handleSet,o=e=>{if(!i.temporal.getState().isTracking)return;let n=t?.partialize?.(r())||r(),o=t?.diff?.(e,n);o===null||t?.equality?.(e,n)||a(e,void 0,n,o)},s=i.setState;return i.setState=(...e)=>{let n=t?.partialize?.(r())||r();s(...e),o(n)},e((...e)=>{let i=t?.partialize?.(r())||r();n(...e),o(i)},r,i)},De=100,h=1e6;function g(e){for(let t=0;t<e.length;t+=1){let n=e.charCodeAt(t);if(n===0)return!1;if(n>=55296&&n<=56319){let n=e.charCodeAt(t+1);if(!(n>=56320&&n<=57343))return!1;t+=1}else if(n>=56320&&n<=57343)return!1}return!0}function Oe(e){if(g(e))return e;let t=``;for(let n=0;n<e.length;n+=1){let r=e.charCodeAt(n);if(r!==0){if(r>=55296&&r<=56319){let r=e.charCodeAt(n+1);r>=56320&&r<=57343?(t+=e.slice(n,n+2),n+=1):t+=`�`;continue}t+=r>=56320&&r<=57343?`�`:e[n]}}return t}function _(e,t,n){if(n.values+=1,n.values>h)return`complexity`;if(typeof e==`string`)return g(e)?null:`text`;if(e===null||typeof e==`boolean`)return null;if(typeof e==`number`)return Number.isFinite(e)?null:`number`;if(typeof e!=`object`)return`value`;if(t>De)return`depth`;if(n.ancestors.has(e))return`cycle`;n.ancestors.add(e);try{if(Array.isArray(e)){if(e.length>h-n.values)return`complexity`;for(let t of Reflect.ownKeys(e))if(t!==`length`&&(typeof t!=`string`||!/^(0|[1-9]\d*)$/.test(t)||Number(t)>=e.length))return`array-property`;for(let r=0;r<e.length;r+=1){let i=Object.getOwnPropertyDescriptor(e,String(r));if(!i||!(`value`in i))return`array-entry`;let a=_(i.value,t+1,n);if(a)return a}return null}let r=Object.getPrototypeOf(e);if(r!==Object.prototype&&r!==null)return`object`;let i=Reflect.ownKeys(e);if(i.length>h-n.values)return`complexity`;for(let r of i){if(typeof r!=`string`||!g(r))return`object-key`;let i=Object.getOwnPropertyDescriptor(e,r);if(!i?.enumerable||!(`value`in i))return`object-property`;if(i.value===void 0)continue;let a=_(i.value,t+1,n);if(a)return a}return null}catch{return`unreadable`}finally{n.ancestors.delete(e)}}function ke(e){return _(e,0,{ancestors:new Set,values:0})}var Ae={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`};function je(e){return e.replace(/[&<>"']/g,e=>Ae[e])}function v(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var Me=new Set(i),y=new Set(ae),b=new Set(r),Ne=new Set(re),Pe=new Set(l),Fe=new Set(n),Ie=new Set(f),Le=new Set(d),Re=new Set(ie),ze=new Set(c),Be=new Set(a),Ve=new Set(ee),He=new Set(u),Ue=new Set(o),We={modal:!0,entity:!0,lifeline:!0,fragment:!0},Ge=new Set([...s,...Object.keys(We)]),Ke=new Set([`hanging`,`inside`]),qe=new Set([`x`,`y`]),Je=256;function x(){return{issues:[],capped:!1,unknownEnum:0}}function S(e,t,n,r=!1){if(e.issues.length<100){e.issues.push({path:t,message:n}),r&&(e.unknownEnum+=1);return}e.capped=!0}var Ye={complexity:`document is too complex to persist`,text:`document contains unsupported text`,number:`document contains an unsupported number`,value:`document contains an unsupported value`,depth:`document is nested too deeply to persist`,cycle:`document contains a circular reference`,"array-property":`document contains a non-JSON array property`,"array-entry":`document contains a non-JSON array entry`,object:`document contains a non-JSON object`,"object-key":`document contains an unsupported object key`,"object-property":`document contains a non-JSON object property`,unreadable:`document contains an unreadable value`};function C(e,t,n){return typeof n==`number`&&Number.isFinite(n)?!0:(S(e,t,`expected a finite number`),!1)}function w(e,t,n){return typeof n==`string`?!0:(S(e,t,`expected a string`),!1)}function T(e,t,n){return typeof n==`boolean`?!0:(S(e,t,`expected a boolean`),!1)}function E(e,t,n,r){return typeof n==`string`?!r&&n.length===0?(S(e,t,`id must not be empty`),!1):n.length>Je?(S(e,t,`id is too long`),!1):!0:(S(e,t,`expected a string id`),!1)}function D(e,t,n,r){return typeof n==`string`&&r.has(n)?!0:(S(e,t,`not an allowed value`,typeof n==`string`),!1)}function O(e,t,n){return typeof n==`number`&&Number.isFinite(n)&&n>=0&&n<=1?!0:(S(e,t,`expected a number in 0..1`),!1)}function Xe(e,t,n){return typeof n==`number`&&Number.isFinite(n)&&n>=-.2&&n<=1.2?!0:(S(e,t,`expected a number in -0.2..1.2`),!1)}function Ze(e,t,n){if(!v(n))return S(e,t,`expected a point`),!1;let r=C(e,`${t}.x`,n.x),i=C(e,`${t}.y`,n.y);return r&&i}function Qe(e,t,n){if(!Array.isArray(n))return S(e,t,`expected an array of points`),!1;let r=!0;for(let i=0;i<n.length&&!e.capped;i+=1)Ze(e,`${t}[${i}]`,n[i])||(r=!1);return r}function $e(e,t,n,r){t[r]!==void 0&&C(e,`${n}.${r}`,t[r])}function k(e,t,n,r){t[r]!==void 0&&w(e,`${n}.${r}`,t[r])}function et(e,t,n,r){t[r]!==void 0&&T(e,`${n}.${r}`,t[r])}function tt(e,t,n,r,i){t[r]!==void 0&&D(e,`${n}.${r}`,t[r],i)}function nt(e,t,n){E(e,`${t}.id`,n.id,!1),n.groupId!==void 0&&E(e,`${t}.groupId`,n.groupId,!0),n.lockId!==void 0&&E(e,`${t}.lockId`,n.lockId,!0),et(e,n,t,`locked`),rt(e,t,n.animations)}function rt(e,t,n){if(n!==void 0){if(!Array.isArray(n)){S(e,`${t}.animations`,`expected an array`);return}n.forEach((n,r)=>{it(e,`${t}.animations[${r}]`,n)})}}function it(e,t,n){if(!v(n)){S(e,t,`expected an object`);return}C(e,`${t}.step`,n.step),w(e,`${t}.kind`,n.kind),w(e,`${t}.effect`,n.effect),k(e,n,t,`direction`),$e(e,n,t,`duration`),$e(e,n,t,`delay`),et(e,n,t,`afterPrevious`)}function at(e,t,n){if(n!==null){if(!v(n)){S(e,t,`expected a binding or null`);return}if(n.kind===`path`){E(e,`${t}.shapeId`,n.shapeId,!0),(typeof n.seg!=`number`||!Number.isInteger(n.seg)||n.seg<0)&&S(e,`${t}.seg`,`expected a nonnegative integer segment`),O(e,`${t}.t`,n.t);return}if(E(e,`${t}.shapeId`,n.shapeId,!0),Ze(e,`${t}.anchor`,n.anchor)){let r=n.anchor;Xe(e,`${t}.anchor.x`,r.x),Xe(e,`${t}.anchor.y`,r.y)}T(e,`${t}.precise`,n.precise),tt(e,n,t,`port`,Ve)}}function ot(e,t,n,r){if(n!==void 0){if(!v(n)){S(e,`${t}.titleIcon`,`expected an object`);return}w(e,`${t}.titleIcon.source`,n.source),w(e,`${t}.titleIcon.name`,n.name),r&&tt(e,n,`${t}.titleIcon`,`placement`,Ke)}}function st(e,t,n){if(n===void 0)return;if(typeof n!=`object`||!n){S(e,t,`expected an object`);return}let r=n;w(e,`${t}.from`,r.from),w(e,`${t}.to`,r.to);for(let n of[`fromTop`,`fromSpan`,`toTop`,`toSpan`])C(e,`${t}.${n}`,r[n])}function ct(e,t,n){if(!v(n)){S(e,t,`expected a crop rectangle`);return}let r=O(e,`${t}.x`,n.x),i=O(e,`${t}.y`,n.y),a=O(e,`${t}.width`,n.width),o=O(e,`${t}.height`,n.height);r&&a&&n.x+n.width>1.000001&&S(e,t,`crop extends past the source width`),i&&o&&n.y+n.height>1.000001&&S(e,t,`crop extends past the source height`)}function A(e,t,n){if(n!==void 0){if(!Array.isArray(n)){S(e,t,`expected an array of strings`);return}for(let r=0;r<n.length&&!e.capped;r+=1)w(e,`${t}[${r}]`,n[r])}}function lt(e,t,n){if(n!==void 0){if(!Array.isArray(n)){S(e,t,`expected an array of numbers`);return}for(let r=0;r<n.length&&!e.capped;r+=1)C(e,`${t}[${r}]`,n[r])}}function ut(e,t,n){let r=n.cells,i=n.colWidths,a=n.rowHeights,o=dt(e,`${t}.colWidths`,i);dt(e,`${t}.rowHeights`,a);let s=o&&Array.isArray(i)?i.length:null;if(!Array.isArray(r)){S(e,`${t}.cells`,`expected a grid of rows`);return}Array.isArray(a)&&a.length!==r.length&&S(e,`${t}.rowHeights`,`must have one entry per row`);for(let n=0;n<r.length&&!e.capped;n+=1){let i=r[n];if(!Array.isArray(i)){S(e,`${t}.cells[${n}]`,`expected a row of cells`);continue}s!==null&&i.length!==s&&S(e,`${t}.cells[${n}]`,`row width does not match colWidths`);for(let r=0;r<i.length;r+=1)w(e,`${t}.cells[${n}][${r}]`,i[r])}ft(e,`${t}.cellStyles`,n.cellStyles,r)}function dt(e,t,n){if(!Array.isArray(n))return S(e,t,`expected an array of numbers`),!1;let r=!0;for(let i=0;i<n.length&&!e.capped;i+=1)C(e,`${t}[${i}]`,n[i])||(r=!1);return r}function ft(e,t,n,r){if(n!==void 0){if(!Array.isArray(n)){S(e,t,`expected a grid of cell styles`);return}n.length!==r.length&&S(e,t,`must mirror the cells grid`);for(let i=0;i<n.length&&!e.capped;i+=1){let a=n[i];if(!Array.isArray(a)){S(e,`${t}[${i}]`,`expected a row of cell styles`);continue}let o=r[i];Array.isArray(o)&&a.length!==o.length&&S(e,`${t}[${i}]`,`row width does not match the cells row`);for(let n=0;n<a.length;n+=1)pt(e,`${t}[${i}][${n}]`,a[n])}}}function pt(e,t,n){if(!v(n)){S(e,t,`expected a cell style object`);return}k(e,n,t,`fontFamily`),$e(e,n,t,`fontSize`),k(e,n,t,`background`)}function mt(e,t,n){if(!Array.isArray(n)){S(e,t,`expected a grid of rows`);return}for(let r=0;r<n.length&&!e.capped;r+=1){let i=n[r];if(!Array.isArray(i)){S(e,`${t}[${r}]`,`expected a row`);continue}for(let n=0;n<i.length;n+=1)w(e,`${t}[${r}][${n}]`,i[n])}}function ht(e,t,n){if(n!==void 0){if(!Array.isArray(n)){S(e,t,`expected an array`);return}for(let r=0;r<n.length&&!e.capped;r+=1){let i=n[r];i==null||typeof i==`string`||S(e,`${t}[${r}]`,`expected a string or null`)}}}function gt(e,t,n){if(n!==void 0){if(!Array.isArray(n)){S(e,t,`expected an array of flows`);return}n.forEach((n,r)=>{let i=`${t}[${r}]`;if(!v(n)){S(e,i,`expected a flow`);return}if(E(e,`${i}.id`,n.id,!1),w(e,`${i}.name`,n.name),!Array.isArray(n.steps)){S(e,`${i}.steps`,`expected an array of steps`);return}n.steps.forEach((t,n)=>{let r=`${i}.steps[${n}]`;if(!v(t)){S(e,r,`expected a step`);return}E(e,`${r}.target`,t.target,!1),w(e,`${r}.title`,t.title),k(e,t,r,`text`),A(e,`${r}.also`,t.also),tt(e,t,r,`kind`,He),k(e,t,r,`payload`),A(e,`${r}.branches`,t.branches),et(e,t,r,`fails`)})})}}function _t(e,t,n){if(!Array.isArray(n)){S(e,t,`expected an array of activation bars`);return}for(let r=0;r<n.length&&!e.capped;r+=1){let i=n[r];if(!v(i)){S(e,`${t}[${r}]`,`expected an activation bar`);continue}C(e,`${t}[${r}].top`,i.top),C(e,`${t}[${r}].height`,i.height)}}function j(e){return(t,n,r,i)=>{e(t,`${n}.${i}`,r[i])}}function M(e){return(t,n,r,i)=>{r[i]!==void 0&&e(t,n,r,i)}}function N(e){return j((t,n,r)=>D(t,n,r,e))}function vt(e){return(t,n,r)=>{ot(t,n,r.titleIcon,e)}}var P=j(C),F=j(w),I=j(T),L=j(Qe),R=M(P),z=M(F),B=M(I),V=M(j(O)),yt=M(L),bt=(e,t,n,r)=>{if(n[r]===void 0){S(e,`${t}.${r}`,`expected a binding or null`);return}at(e,`${t}.${r}`,n[r])},H=()=>{},xt={kind:N(Me),x:P,y:P,width:P,height:P,rotation:P,label:F,fontSize:P,fontFamily:F,color:F,fill:F,strokeWidth:P,dash:N(b),opacity:P,textAlign:M(N(Fe)),textVAlign:M(N(Ie)),textPadding:R,lineHeight:R,letterSpacing:R,labelColor:z,stroke:z,fillStyle:M(N(Ne)),corner:M(N(Pe)),flipX:B,flipY:B,shadow:B,minHeight:R,autoHeightFrom:R,link:z,titleIcon:vt(!0)},St={x:P,y:P,x2:P,y2:P,bend:P,bendAlong:P,startBend:R,endBend:R,bendStyle:N(Le),color:F,strokeWidth:P,dash:N(b),startArrow:I,endArrow:I,opacity:P,startBinding:bt,endBinding:bt,bow:R,bowAlong:R,elbowMid:V,labelAlong:V,elbowPoints:yt,elbowRoute:yt,elbowMidHandle:M(j((e,t,n)=>{if(!v(n)){S(e,t,`expected an object`);return}C(e,`${t}.x`,n.x),C(e,`${t}.y`,n.y),D(e,`${t}.axis`,n.axis,qe),C(e,`${t}.span`,n.span)})),label:z,startLabel:z,endLabel:z,fontSize:R,fontFamily:z,startHead:M(N(y)),endHead:M(N(y)),flow:B},Ct={x:P,y:P,text:F,fontSize:P,fontFamily:F,rotation:P,color:F,opacity:P,width:R,height:R,textAlign:M(N(Fe)),textVAlign:M(N(Ie)),lineHeight:R,letterSpacing:R,flipX:B,flipY:B},wt={x:P,y:P,width:P,height:P,rotation:P,text:F,fontSize:P,fontFamily:F,fill:F,opacity:P,lineHeight:R,letterSpacing:R},Tt={points:L,color:F,strokeWidth:P,opacity:P,highlighter:B},Et={points:L,fill:F,color:F,strokeWidth:P,opacity:P,smooth:B,band:j(st)},Dt={points:L,color:F,strokeWidth:P,dash:N(b),startArrow:I,endArrow:I,opacity:P,startHead:M(N(y)),endHead:M(N(y)),flow:B,label:z,labelAlong:V,fontSize:R,fontFamily:z},Ot={x:P,y:P,width:P,height:P,rotation:P,src:F,opacity:P,corner:M(N(Pe)),flipX:B,flipY:B,crop:j(ct)},kt={x:P,y:P,width:P,height:P,rotation:P,source:F,name:F,label:F,fontSize:P,fontFamily:F,color:F,strokeWidth:P,flipX:B,flipY:B,opacity:P},At={x:P,y:P,width:P,height:P,rotation:P,label:F,fontSize:P,fontFamily:F,color:F,opacity:P,kind:M(N(Be)),lanes:j(A),laneSizes:j(lt),slideOrder:R,slideSkipped:B,notes:z,flows:j(gt),slideLayout:z,fill:z,strokeWidth:R,dash:M(N(b)),code:z,codeFingerprint:z,titleIcon:vt(!1)},jt={x:P,y:P,rotation:P,fontSize:P,fontFamily:F,color:F,opacity:P,background:z,colWidths:ut,rowHeights:H,cells:H,cellStyles:H},Mt={chartType:N(Re),x:P,y:P,width:P,height:P,rotation:P,fontSize:P,fontFamily:F,color:F,opacity:P,cells:j(mt),horizontal:B,stacked:B,showLegend:B,showValues:B,showTitles:B,numberFormat:M(N(ze)),seriesColors:j(ht),quadrantColors:j(ht),quadrantLabels:j(A),title:z,xTitle:z,yTitle:z,code:z,codeFingerprint:z},Nt={kind:N(Ge),x:P,y:P,width:P,height:P,rotation:P,label:F,fontSize:P,fontFamily:F,color:F,opacity:P,body:z,primaryLabel:z,secondaryLabel:z,link:z,fill:z,value:R,widthManual:B,activations:M(j(_t))},Pt=500,Ft={rectangle:xt,arrow:St,text:Ct,sticky:wt,draw:Tt,polygon:Et,line:Dt,image:Ot,icon:kt,figure:At,table:jt,chart:Mt,control:Nt,web:{kind:(e,t,n,r)=>{D(e,`${t}.${r}`,n[r],Ue)&&(n.kind===`embed`&&n.url===void 0&&S(e,`${t}.url`,`an embed needs a url`),n.kind===`html`&&n.html===void 0&&n.htmlSrc===void 0&&S(e,`${t}.html`,`an html widget needs html or htmlSrc`))},x:P,y:P,width:P,height:P,rotation:P,label:j((e,t,n)=>{w(e,t,n)&&n.length>Pt&&S(e,t,`label is too long`)}),url:M(j((e,t,n)=>{w(e,t,n)&&!oe(n)&&S(e,t,`expected an https url without credentials, at most ${se} characters`)})),html:M(j((e,t,n)=>{w(e,t,n)&&le(n)>131072&&S(e,t,`html is too large`)})),htmlSrc:M(j((e,t,n)=>{w(e,t,n)&&!ce(n)&&S(e,t,`expected an https url`)})),poster:z,posterOf:z,keepAspect:B,opacity:P}};function It(e,t,n,r){for(let i of Object.keys(r))r[i](e,t,n,i)}function Lt(e,t,n,r){let i=n.type,a=typeof i==`string`?Ft[i]:void 0;if(!r)return nt(e,t,n),a?(It(e,t,n,a),`understood`):(S(e,`${t}.type`,`unknown shape type`),`understood`);let o=x();return nt(o,t,n),a&&It(o,t,n,a),a?o.issues.length===0?`understood`:o.issues.length===o.unknownEnum?`unknown`:`damaged`:typeof i==`string`&&o.issues.length===0?`unknown`:`damaged`}function Rt(e,t,n,r,i){zt(e,`${t}.startBinding`,n,n.startBinding,r,i),zt(e,`${t}.endBinding`,n,n.endBinding,r,i)}function zt(e,t,n,r,i,a){if(!v(r))return;let o=r.shapeId;if(typeof o!=`string`)return;if(o===n.id){S(e,`${t}.shapeId`,`binding targets its own arrow`);return}let s=i.get(o);if(!s){S(e,`${t}.shapeId`,`binding target does not exist`);return}if(!a.has(o)){if(r.kind===`path`){if(s.type!==`line`&&s.type!==`arrow`){S(e,`${t}.shapeId`,`path binding must target a line or arrow`);return}let n=(s.type===`line`&&Array.isArray(s.points)?s.points.length:2)-2;typeof r.seg==`number`&&(r.seg<0||r.seg>n)&&S(e,`${t}.seg`,`path segment does not exist on the target`);return}s.type===`arrow`&&S(e,`${t}.shapeId`,`node binding cannot target an arrow`)}}var Bt=1e4;function Vt(e){try{if(!v(e))return!1;let t=x();return Lt(t,`shape`,e,!1),t.issues.length===0&&ke(e)===null}catch{return!1}}function Ht(e,t){return Wt(e,!0,t)}function Ut(e,t){return Wt(e,!1,t)}function Wt(e,t,n){try{return Gt(e,t,n?.unknownShapes===`preserve`)}catch{return{status:`invalid`,issues:[{path:``,message:`could not be validated`}]}}}function Gt(e,t,n){if(!v(e))return{status:`invalid`,issues:[{path:``,message:`expected an object`}]};let r=e.version;if(r!==1)return typeof r==`number`&&Number.isFinite(r)?{status:`unsupported-version`,version:r}:{status:`invalid`,issues:[{path:`version`,message:`unsupported version`}]};let i=e.shapes;if(!Array.isArray(i))return{status:`invalid`,issues:[{path:`shapes`,message:`expected an array`}]};if(i.length>1e4)return{status:`invalid`,issues:[{path:`shapes`,message:`too many shapes`}]};let a=x(),o=new Map,s=new Set,c=new Map,l=new Set;for(let e=0;e<i.length;e+=1){if(a.issues.length>=100){a.capped=!0;break}let t=i[e],r=`shapes[${e}]`;if(!v(t)){S(a,r,`expected a shape object`);continue}typeof t.id==`string`&&(s.has(t.id)?S(a,`${r}.id`,`duplicate shape id`):(s.add(t.id),o.set(t.id,t)));let u=Lt(a,r,t,n);if(u===`understood`||!E(a,`${r}.id`,t.id,!1))continue;if(u===`unknown`&&JSON.stringify(t).length>1048576){S(a,r,`unrecognized shape is too large to preserve`);continue}let d=t.id;c.set(e,{index:e,id:d,shape:t,reason:u}),l.add(d)}for(let e=0;e<i.length;e+=1){if(a.issues.length>=100){a.capped=!0;break}let t=i[e];if(!v(t)||t.type!==`arrow`||c.has(e))continue;let r=`shapes[${e}]`;if(!n){Rt(a,r,t,o,l);continue}let s=x();if(Rt(s,r,t,o,l),s.issues.length===0||!E(a,`${r}.id`,t.id,!1))continue;let u=t.id;c.set(e,{index:e,id:u,shape:t,reason:`damaged`}),l.add(u)}if(a.issues.length>0)return{status:`invalid`,issues:a.issues};if(t){let t=ke(e);if(t)return S(a,``,Ye[t]),{status:`invalid`,issues:a.issues}}return c.size===0?{status:`valid`,document:e,opaque:[]}:{status:`valid`,document:{...e,shapes:i.filter((e,t)=>!c.has(t))},opaque:[...c.values()].sort((e,t)=>e.index-t.index)}}function U(e){return JSON.stringify(e,(e,t)=>{if(typeof t!=`object`||!t||Array.isArray(t))return t;let n=t;return Object.fromEntries(Object.keys(n).sort().map(e=>[e,n[e]]))})}function Kt(e,t,n){let{shapes:r,conflicts:i}=Jt(e.shapes,t.shapes,n.shapes);return{document:{version:1,shapes:r},conflicts:i}}function qt(e,t,n){let r=new Map(e.shapes.map(e=>[e.id,U(e)])),i=new Map(t.shapes.map(e=>[e.id,U(e)])),a=0;for(let e of n.shapes){let t=i.get(e.id);t!==r.get(e.id)&&U(e)!==t&&(a+=1)}return a}function Jt(e,t,n){let r=e=>U(e),i=new Map(e.map(e=>[e.id,r(e)])),a=new Map(t.map(e=>[e.id,e])),o=new Set(n.map(e=>e.id)),s=0,c=[],l=new Set;for(let e of n){let t=e.id,n=i.get(t),o=a.get(t);if(l.add(t),n===void 0){o&&r(o)!==r(e)?(s+=1,c.push(o)):c.push(e);continue}if(!o){r(e)!==n&&(s+=1,c.push(e));continue}let u=r(o)!==n,d=r(e)!==n;u&&d&&r(o)!==r(e)?(s+=1,c.push(o)):u?c.push(o):c.push(e)}for(let[e,t]of i){if(o.has(e)||l.has(e))continue;let n=a.get(e);l.add(e),n&&r(n)!==t&&(s+=1,c.push(n))}for(let e of t)l.has(e.id)||c.push(e);return{shapes:c,conflicts:s}}function Yt(e,t){if(t===null)return 0;let n=e.length-1;if(n>=0&&e[n].id===t)return e.length;let r=e.findIndex(e=>e.id===t);return r===-1?e.length:r+1}var Xt=16;function Zt(e,t){return e.findIndex(e=>e.id===t)}function W(e,t){let n=[...e],r=null,i=e=>{if(t.length<Xt)return Zt(n,e);if(r===null){r=new Map;for(let e=0;e<n.length;e+=1)r.has(n[e].id)||r.set(n[e].id,e)}return r.get(e)??-1};for(let e of t){if(e.o===`put`){let t=i(e.shape.id);if(t!==-1){n[t]=e.shape;continue}n.splice(Yt(n,e.after),0,e.shape),r=null;continue}if(e.o===`set`){let t=i(e.id);if(t===-1)continue;let r={...n[t],...e.props,id:e.id};for(let t of e.unset??[])t!==`id`&&delete r[t];n[t]=r;continue}if(e.o===`del`){let t=i(e.id);t!==-1&&(n.splice(t,1),r=null);continue}let t=i(e.id);if(t===-1||e.after===e.id)continue;let[a]=n.splice(t,1);n.splice(Yt(n,e.after),0,a),r=null}return n}function Qt(e,t){return e===t?!0:typeof e!=`object`||typeof t!=`object`||e===null||t===null?!1:U(e)===U(t)}function $t(e){let t=[],n=Array(e.length).fill(-1);for(let r=0;r<e.length;r+=1){let i=0,a=t.length;for(;i<a;){let n=i+a>>1;e[t[n]]<e[r]?i=n+1:a=n}i>0&&(n[r]=t[i-1]),t[i]=r}let r=new Set,i=t.length>0?t[t.length-1]:-1;for(;i!==-1;)r.add(i),i=n[i];return r}function en(e,t){let n=[],r=new Map,i=new Map;e.forEach((e,t)=>{r.set(e.id,e),i.set(e.id,t)});let a=new Set(t.map(e=>e.id));for(let t of e)a.has(t.id)||n.push({o:`del`,id:t.id});let o=[],s=[];t.forEach((e,t)=>{let n=i.get(e.id);n!==void 0&&(o.push(n),s.push(t))});let c=$t(o),l=new Set;return s.forEach((e,t)=>{c.has(t)||l.add(e)}),t.forEach((e,i)=>{let a=i===0?null:t[i-1].id,o=r.get(e.id);if(!o){n.push({o:`put`,shape:e,after:a});return}if(l.has(i)&&n.push({o:`move`,id:e.id,after:a}),o===e)return;let s=o,c=e,u={},d=!1;for(let e of Object.keys(c))c[e]!==void 0&&(Qt(s[e],c[e])||(u[e]=c[e],d=!0));let f=Object.keys(s).filter(e=>s[e]!==void 0&&c[e]===void 0);!d&&f.length===0||n.push(f.length>0?{o:`set`,id:e.id,props:u,unset:f}:{o:`set`,id:e.id,props:u})}),n}var G=Bt,tn=8e3;function nn(e,t){return e+t>G?{kind:`block`,message:`That would put this canvas past ${G.toLocaleString()} shapes, so nothing was added. Split the work across canvases instead.`}:e<=8e3&&e+t>8e3?{kind:`warn`,message:`This canvas now has over ${tn.toLocaleString()} shapes. Boards this large can feel slow.`}:null}function rn(e,t){return e>G?t===`open`?{kind:`block`,message:`That board has ${e.toLocaleString()} shapes, more than the ${G.toLocaleString()} a canvas supports, so it wasn't opened.`}:{kind:`warn`,message:`This board has ${e.toLocaleString()} shapes, more than the ${G.toLocaleString()} a canvas supports. Expect it to feel slow.`}:e>8e3?{kind:`warn`,message:`This board has ${e.toLocaleString()} shapes. Boards this large can feel slow.`}:null}function an(e){let t=0;for(let n of e)n.type===`figure`&&n.slideOrder!==void 0&&(t=Math.max(t,n.slideOrder+1));return t}function on(e,t){if(!t.some(e=>e.type===`figure`&&e.slideOrder!==void 0))return t;let n=new Set;for(let t of e)t.type===`figure`&&t.slideOrder!==void 0&&n.add(t.slideOrder);let r=an([...e,...t]);return t.map(e=>{if(e.type!==`figure`||e.slideOrder===void 0)return e;if(!n.has(e.slideOrder))return n.add(e.slideOrder),e;let t=r++;return n.add(t),{...e,slideOrder:t}})}function sn(e){let t=new Map;return _e(e).forEach((e,n)=>{e.slideOrder!==n&&t.set(e.id,{...e,slideOrder:n})}),t.size===0?e:e.map(e=>t.get(e.id)??e)}var cn=`(prefers-color-scheme: dark)`;function ln(e,t){return e===`system`?t?`dark`:`light`:e}function un(){return typeof window>`u`||typeof window.matchMedia!=`function`?!1:window.matchMedia(cn).matches}var K={showGrid:!0,snapEnabled:!0,presentationAnimation:!0,showZoomIndicator:!1,theme:`light`},q=1,dn={"'Balsamiq Sans', cursive":`'Balsamiq Sans Neue', cursive`};function fn(e){let t=e.activation;if(!t||typeof t!=`object`||Array.isArray(t))return null;let{top:n,height:r}=t;return typeof n!=`number`||!Number.isFinite(n)||typeof r!=`number`||!Number.isFinite(r)?null:{top:n,height:r}}function pn(e){let t=new Map,n=e.map(e=>{if(e.type!==`control`||e.kind!==`lifeline`||!(`activation`in e))return e;let{activation:n,...r}=e,i=Array.isArray(e.activations),a=fn(e);if(i||!a)return r;let o={...r,activations:[a]};return t.set(o.id,o),o});if(t.size===0)return n;let r=e=>{if(!e||ne(e)||!e.precise)return e;let n=t.get(e.shapeId);if(!n)return e;let r=ye(n)[0],i=ge(n),a=ue((r.y+e.anchor.y*r.height-i.y)/i.height);return{...e,anchor:{x:.5,y:a}}};return n.map(e=>{if(e.type!==`arrow`)return e;let t=r(e.startBinding),n=r(e.endBinding);return t===e.startBinding&&n===e.endBinding?e:{...e,startBinding:t,endBinding:n}})}var mn=100;function hn(e,t=0,n=new Set){if(typeof e==`string`)return Oe(e);if(typeof e!=`object`||!e||t>=mn||n.has(e))return e;n.add(e);try{if(Array.isArray(e)){let r=!1,i=Array(e.length);for(let a=0;a<e.length;a+=1){let o=Object.getOwnPropertyDescriptor(e,String(a));if(!o||!(`value`in o))return e;let s=o.value,c=hn(s,t+1,n);c!==s&&(r=!0),i[a]=c}return r?i:e}let r=Object.getPrototypeOf(e);if(r!==Object.prototype&&r!==null)return e;let i=!1,a={};for(let r of Reflect.ownKeys(e)){if(typeof r!=`string`)return e;let o=Object.getOwnPropertyDescriptor(e,r);if(!o?.enumerable||!(`value`in o))return e;let s=o.value,c=hn(s,t+1,n);c!==s&&(i=!0),a[r]=c}return i?a:e}finally{n.delete(e)}}function gn(e){return pn(e).map(e=>{if(`fontFamily`in e&&e.fontFamily){let t=dn[e.fontFamily];if(t)return{...e,fontFamily:t}}return e})}function _n(e){if(typeof e!=`object`||!e)return null;let t=e;return typeof t.x!=`number`||typeof t.y!=`number`||typeof t.zoom!=`number`||!Number.isFinite(t.x)||!Number.isFinite(t.y)||!Number.isFinite(t.zoom)||t.zoom<=0?null:{x:t.x,y:t.y,zoom:t.zoom}}var vn={unknownShapes:`preserve`};function J(e,t){if(t.length===0)return e;let n=[...e.shapes];for(let e of[...t].sort((e,t)=>e.index-t.index))n.splice(Math.min(e.index,n.length),0,e.shape);return{...e,shapes:n}}function yn(e){let t=Ht(e,vn);if(t.status!==`valid`)return{document:e,opaque:[]};let n=t.opaque.filter(e=>e.reason===`unknown`);if(n.length===t.opaque.length)return{document:t.document,opaque:t.opaque};let r=bn(t.opaque.filter(e=>e.reason===`damaged`),n);return{document:J(t.document,r),opaque:n}}function bn(e,t){return e.length===0||t.length===0?e:e.map(e=>({...e,index:e.index-t.filter(t=>t.index<e.index).length}))}function xn(e,t){if(t.length===0)return e;let n=new Set(t.map(e=>e.id));return{...e,shapes:e.shapes.filter(e=>!n.has(e.id))}}function Sn(e){let t=Ut(e,vn);if(t.status===`unsupported-version`)return{status:`unsupported-version`};if(t.status===`invalid`)return{status:`invalid`};let n=hn(t.document),r=Ht(J({...n,shapes:gn(n.shapes)},t.opaque),vn);if(r.status!==`valid`)return{status:`invalid`};let i=r.opaque.filter(e=>e.reason===`damaged`),a=bn(r.opaque.filter(e=>e.reason===`unknown`),i),o=r.document.shapes.length+r.opaque.length;return o>0&&i.length===o?{status:`invalid`}:{status:`valid`,document:J(r.document,a),opaque:a,damaged:i}}function Y(e,t){return typeof e==`function`?e(t):e}function X(e){return t=>n=>e(e=>{let r=Y(n,e[t]);return Object.is(r,e[t])?e:{[t]:r}})}var Cn=1.2,wn={x:0,y:0,zoom:1};function Z(e,t){return Number.isFinite(t.x)&&Number.isFinite(t.y)&&Number.isFinite(t.zoom)&&t.zoom>0?{viewport:t}:{viewport:e}}var Tn=e=>({viewport:wn,zoomGestureNonce:0,pulseZoomGesture:()=>e(e=>({zoomGestureNonce:e.zoomGestureNonce+1})),setViewport:t=>e(e=>Z(e.viewport,Y(t,e.viewport))),zoomIn:t=>e(e=>Z(e.viewport,p(e.viewport,e.viewport.zoom*Cn,t))),zoomOut:t=>e(e=>Z(e.viewport,p(e.viewport,e.viewport.zoom/Cn,t))),resetZoom:t=>e(e=>Z(e.viewport,p(e.viewport,1,t))),fitToBounds:(t,n)=>e(e=>Z(e.viewport,t?be(t,n):{zoom:1,x:n.width/2,y:n.height/2}))});function En(e){let t=new Map;for(let n of e)n.groupId&&t.set(n.groupId,(t.get(n.groupId)??0)+1);return[...t.values()].some(e=>e===1)?e.map(e=>e.groupId&&t.get(e.groupId)===1?{...e,groupId:void 0}:e):e}function Dn(e,t){let{position:n}=ve(e),r=e.slice(),i=[];for(let a of t(t=>{let r=n.get(t);return r===void 0?void 0:e[r]})){let e=n.get(a.id);e!==void 0&&(r[e]=a,i.push(e))}return he(e,r,i),r}var Q=new Set,On=e=>(t,n,r)=>{let i=r.temporal;function a(){return n().viewModeLocked&&i?.getState().isTracking!==!1}function o(n,r,i,o){a()||t(t=>{let a=n(t.shapes);me(t.shapes,a);let s=te(a,r,e,o);return t.activeGroupId&&!s.some(e=>e.groupId===t.activeGroupId)?{shapes:s,...i,activeGroupId:null}:{shapes:s,...i}})}function s(e){o(t=>{let n=t.some(t=>e.has(t.id)&&t.type===`figure`&&t.slideOrder!==void 0),r=t.filter(t=>!e.has(t.id));return n?sn(r):r},e)}function c(e,r){if(a())return;let i=nn(n().shapes.length,e.length);i&&(t({limitNotice:i}),i.kind===`block`)||o(t=>r(t,on(t,e)),new Set(e.map(e=>e.id)))}return{shapes:[],hydrate:(n,r,i)=>{let a=n?yn(n):null;t({shapes:te(a?.document.shapes??[],null,e),opaqueShapes:a?.opaque??[],viewport:r??wn,showGrid:i?.showGrid??K.showGrid,snapEnabled:i?.snapEnabled??K.snapEnabled,presentationAnimation:i?.presentationAnimation??K.presentationAnimation,showZoomIndicator:i?.showZoomIndicator??K.showZoomIndicator,theme:i?.theme??K.theme})},opaqueShapes:[],limitNotice:null,clearLimitNotice:()=>t({limitNotice:null}),addShape:e=>c([e],(e,t)=>[...e,...t]),addMany:e=>c(e,(e,t)=>[...e,...t]),addShapeBehind:(e,t)=>c([e],(e,n)=>{let r=e.findIndex(e=>t.has(e.id));return r===-1?[...e,...n]:[...e.slice(0,r),...n,...e.slice(r)]}),updateShape:(e,t)=>o(n=>Dn(n,n=>{let r=n(e);return r?[{...r,...t}]:[]}),new Set([e])),replaceShape:e=>o(t=>Dn(t,()=>[e]),new Set([e.id])),replaceMany:(e,t)=>{o(t=>Dn(t,()=>e),new Set(e.map(e=>e.id)),void 0,t)},loadShapes:e=>{let t=yn({version:q,shapes:e});o(()=>t.document.shapes,null,{opaqueShapes:t.opaque})},applyRemoteOps:e=>{e.length!==0&&t(t=>{let n=t.opaqueShapes.length===0&&e.every(e=>e.o!==`put`||Vt(e.shape)),r,i=t.opaqueShapes;if(n)r=W(t.shapes,e),me(t.shapes,r);else{let n=yn({version:q,shapes:W(J({version:q,shapes:t.shapes},t.opaqueShapes).shapes,e)});r=n.document.shapes,i=n.opaque}let a=e=>ve(r).position.has(e),o=[...t.selectedIds].every(a)?t.selectedIds:new Set([...t.selectedIds].filter(a));return t.activeGroupId&&!r.some(e=>e.groupId===t.activeGroupId)?{shapes:r,opaqueShapes:i,selectedIds:o,activeGroupId:null}:{shapes:r,opaqueShapes:i,selectedIds:o}})},remeasureBindings:()=>o(e=>e,null),settleBindings:e=>o(e=>e,e),removeShape:e=>s(new Set([e])),removeShapes:e=>s(e),bringToFront:e=>o(t=>[...t.filter(t=>!e.has(t.id)),...t.filter(t=>e.has(t.id))],Q),sendToBack:e=>o(t=>[...t.filter(t=>e.has(t.id)),...t.filter(t=>!e.has(t.id))],Q),bringForward:e=>o(t=>{let n=[...t];for(let t=n.length-2;t>=0;--t)e.has(n[t].id)&&!e.has(n[t+1].id)&&([n[t],n[t+1]]=[n[t+1],n[t]]);return n},Q),sendBackward:e=>o(t=>{let n=[...t];for(let t=1;t<n.length;t+=1)e.has(n[t].id)&&!e.has(n[t-1].id)&&([n[t],n[t-1]]=[n[t-1],n[t]]);return n},Q),group:e=>{let t=fe();o(n=>{let r=n.filter(t=>e.has(t.id));if(r.length<2)return n;let i=r.map(e=>({...e,groupId:t})),a=n.filter(t=>!e.has(t.id)),o=0;n.forEach((t,n)=>{e.has(t.id)&&(o=n)});let s=n.slice(0,o+1).filter(t=>!e.has(t.id)).length,c=[...a];return c.splice(s,0,...i),En(c)},Q)},ungroup:e=>o(t=>{let n=new Set(t.filter(t=>e.has(t.id)&&t.groupId).map(e=>e.groupId));return n.size===0?t:t.map(e=>e.groupId&&n.has(e.groupId)?{...e,groupId:void 0}:e)},Q)}};function kn(e){return e.kind===`none`?null:e.shapeId}function An(e,t){if(e.kind===`none`||e.shapeId!==t)return{kind:`none`};switch(e.kind){case`text`:return{kind:`text`,field:e.field};case`table-cell`:return{kind:`table-cell`,row:e.row,col:e.col};case`lane`:return{kind:`lane`,lane:e.lane};case`crop`:return{kind:`crop`};case`chart-data`:return{kind:`chart-data`};case`vertices`:return{kind:`vertices`};case`interact`:return{kind:`interact`};default:return e}}function jn(e){return e.kind===`crop`||e.kind===`vertices`}function Mn(e){return jn(e)||e.kind===`interact`}function Nn(e){return e.kind===`text`||e.kind===`table-cell`||e.kind===`lane`}function Pn(e,t){return e.kind===`text`&&pe(t,e.shapeId)?.type!==`figure`}function Fn(e){return Number.isFinite(e)?Math.max(0,Math.trunc(e)):0}var In=(e,t)=>{let n=X(e);return{tool:`select`,selectedIds:new Set,erasingIds:new Set,editSession:{kind:`none`},tableSelection:null,hoveredId:null,activeGroupId:null,style:de,shapeKind:`rectangle`,chartKind:`bar`,frameKind:`simple`,pendingIcon:null,pendingControl:null,toolLock:!1,lockRevealId:null,setTool:t=>e(e=>{let n=Y(t,e.tool);return n===e.tool?e:e.tool===`highlight`&&n===`select`?{tool:n,style:de}:{tool:n}}),releaseTool:()=>e(e=>e.toolLock?e:{tool:`select`}),placeShape:(e,n)=>{let r=t();r.addShape(e),r.setSelectedIds(new Set([e.id])),n?.edit&&r.beginTextEdit(e.id),r.releaseTool()},setSelectedIds:n(`selectedIds`),setErasingIds:n(`erasingIds`),beginTextEdit:(t,n=`label`)=>e({editSession:{kind:`text`,shapeId:t,field:n}}),beginTableCellEdit:(t,n,r)=>e({editSession:{kind:`table-cell`,shapeId:t,row:Fn(n),col:Fn(r)}}),beginLaneEdit:(t,n)=>e({editSession:{kind:`lane`,shapeId:t,lane:Fn(n)}}),beginCrop:t=>e({editSession:{kind:`crop`,shapeId:t}}),beginChartDataEdit:t=>e({editSession:{kind:`chart-data`,shapeId:t}}),beginVertexEdit:t=>e({editSession:{kind:`vertices`,shapeId:t}}),beginInteract:t=>e({editSession:{kind:`interact`,shapeId:t}}),endEdit:t=>e(e=>{let n=e.editSession;return n.kind===`none`||t!==void 0&&n.shapeId!==t?e:{editSession:{kind:`none`}}}),setTableSelection:n(`tableSelection`),setHoveredId:t=>e(e=>{let n=Y(t,e.hoveredId);return n===e.hoveredId?e:{hoveredId:n}}),setActiveGroupId:n(`activeGroupId`),setStyle:n(`style`),setShapeKind:n(`shapeKind`),setChartKind:n(`chartKind`),setFrameKind:n(`frameKind`),setPendingIcon:n(`pendingIcon`),setPendingControl:n(`pendingControl`),setToolLock:n(`toolLock`),setLockRevealId:n(`lockRevealId`)}},Ln=e=>{let t=X(e),n={slidePickerOpen:!1,animateSlideId:null},r=e=>({rightPanel:e,...e===`slides`?{}:n,...e===`flow`?{}:{flowEdit:null}}),i=(e,t)=>e.rightPanel===t?{rightPanel:null}:void 0;return{iconPickerOpen:!1,imageLibraryOpen:!1,rightPanel:null,slidePickerOpen:!1,notesEditorId:null,animateSlideId:null,flowEdit:null,flowPlay:null,flowPreview:null,lastFlow:{},codeSeed:null,pendingBoard:null,textAiSignInOpen:!1,textAiUpgradeOpen:!1,embedSignInOpen:!1,paletteOpen:!1,exportDialog:null,imageToCopy:null,toolDrawerOpen:!1,searchOpen:!1,zenMode:!1,rideMode:!1,viewMode:!1,viewModeLocked:!1,presentingIndex:null,pasteChoiceGrid:null,aiGhost:null,aiPrompt:null,deviceMode:`desktop`,coarsePointer:!1,setIconPickerOpen:t(`iconPickerOpen`),setImageLibraryOpen:t(`imageLibraryOpen`),setSlidesOpen:t=>e(e=>Y(t,e.rightPanel===`slides`)?r(`slides`):{...i(e,`slides`),...n}),setSlidePickerOpen:t(`slidePickerOpen`),setNotesEditorId:t(`notesEditorId`),setAnimateSlideId:t=>e(t===null?{animateSlideId:null}:{animateSlideId:t,rightPanel:`slides`,tool:`select`,pendingIcon:null,pendingControl:null}),setFlowEdit:t=>e(e=>t===null?{flowEdit:null,...i(e,`flow`)}:{...r(`flow`),flowEdit:t,flowPreview:null,tool:`select`,pendingIcon:null,pendingControl:null}),patchFlowEdit:t=>e(e=>e.flowEdit?{flowEdit:{...e.flowEdit,...t}}:{}),setFlowPreview:t(`flowPreview`),setFlowsOpen:t=>e(e=>Y(t,e.rightPanel===`flow`&&e.flowEdit===null)?{...r(`flow`),flowEdit:null}:{flowEdit:null,...i(e,`flow`)}),setFlowPlay:t=>e(e=>t?{flowPlay:t,flowPreview:null,...!t.trail?.length&&e.lastFlow[t.frameId]!==t.flowId?{lastFlow:{...e.lastFlow,[t.frameId]:t.flowId}}:{}}:{flowPlay:null}),setAiOpen:t=>e(e=>{let n=Y(t,e.rightPanel===`ai`);return n&&e.viewMode?e:n?r(`ai`):i(e,`ai`)??e}),setCodeOpen:t=>e(e=>{let n=Y(t,e.rightPanel===`code`);return n&&e.viewMode?e:n?r(`code`):i(e,`code`)??e}),setCodeSeed:t=>e({codeSeed:t}),setPendingBoard:t=>e({pendingBoard:t}),setTextAiSignInOpen:t(`textAiSignInOpen`),setTextAiUpgradeOpen:t(`textAiUpgradeOpen`),setEmbedSignInOpen:t(`embedSignInOpen`),setPaletteOpen:t(`paletteOpen`),setExportDialog:t(`exportDialog`),setImageToCopy:t=>e({imageToCopy:t}),setToolDrawerOpen:t(`toolDrawerOpen`),setSearchOpen:t(`searchOpen`),setZenMode:t(`zenMode`),setRideMode:t(`rideMode`),setViewMode:t=>e(e=>{let n=Y(t,e.viewMode);return n?{viewMode:n,tool:`select`,editSession:{kind:`none`},pendingIcon:null,pendingControl:null,erasingIds:new Set,toolDrawerOpen:!1,...e.rightPanel===`ai`||e.rightPanel===`code`?{rightPanel:null}:{}}:e.viewModeLocked?e:{viewMode:n}}),setViewModeLocked:t=>e({viewModeLocked:t}),setPresentingIndex:t(`presentingIndex`),setPasteChoiceGrid:t(`pasteChoiceGrid`),setAiGhost:t=>e({aiGhost:t}),askAi:(t,n=!1)=>e(e=>e.viewMode?e:{...r(`ai`),aiPrompt:{text:t,send:n}}),setAiPrompt:t=>e({aiPrompt:t}),setDeviceMode:t(`deviceMode`),setCoarsePointer:t(`coarsePointer`)}},Rn=e=>{let t=X(e),n=K;return{showGrid:n.showGrid,snapEnabled:n.snapEnabled,theme:n.theme,presentationAnimation:n.presentationAnimation,showZoomIndicator:n.showZoomIndicator,setShowGrid:t(`showGrid`),setSnapEnabled:t(`snapEnabled`),setTheme:t(`theme`),setPresentationAnimation:t(`presentationAnimation`),setShowZoomIndicator:t(`showZoomIndicator`)}},zn=e=>({remoteCursors:new Map,lastPeerPointers:new Map,setRemoteCursors:t=>e(e=>{let n=e.lastPeerPointers;for(let r of t.values()){let t=n.get(r.peerId);t&&t.at>=r.at||(n===e.lastPeerPointers&&(n=new Map(n)),n.set(r.peerId,{x:r.x,y:r.y,at:r.at}))}return{remoteCursors:t,lastPeerPointers:n}})}),Bn=e=>({openThreadId:null,commentDraft:null,commentsVisible:!0,setOpenThreadId:t=>e({openThreadId:t,commentDraft:null}),setCommentDraft:t=>e(t?{commentDraft:t,openThreadId:null,commentsVisible:!0}:{commentDraft:null}),setCommentsVisible:X(e)(`commentsVisible`)}),$={isPanning:!1,dragging:!1,transforming:!1,resizing:!1,marquee:null,lasso:null,bindTarget:null,snapDot:null};function Vn(e){return e.isPanning||e.dragging||e.transforming||e.draft!==null||e.marquee!==null||e.lasso!==null}var Hn=e=>{let t=X(e);return{draft:null,polyDraft:null,marquee:null,lasso:null,bindTarget:null,snapDot:null,hoverWorld:null,snapGuides:[],isPanning:!1,dragging:!1,transforming:!1,resizing:!1,eraserTrail:``,selectionFrame:null,setDraft:t(`draft`),setPolyDraft:t(`polyDraft`),setMarquee:t(`marquee`),setLasso:t(`lasso`),setBindTarget:t(`bindTarget`),setSnapDot:t(`snapDot`),setHoverWorld:t(`hoverWorld`),setSnapGuides:t(`snapGuides`),setIsPanning:t(`isPanning`),setDragging:t(`dragging`),setTransforming:t(`transforming`),setResizing:t(`resizing`),setEraserTrail:t(`eraserTrail`),setSelectionFrame:t(`selectionFrame`),clearSnapGuides:()=>e(e=>e.snapGuides.length===0?e:{snapGuides:[]}),resetGestureVisuals:()=>e(e=>e.snapGuides.length===0&&Object.keys($).every(t=>e[t]===$[t])?e:{...$,snapGuides:[]})}};function Un(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}var Wn=e=>{let t=X(e);return{liveWebIds:new Set,startedWebIds:new Set,webEmbedDialog:null,webHtmlEditorId:null,widgetSizes:new Map,setLiveWebIds:t=>e(e=>Un(e.liveWebIds,t)?e:{liveWebIds:new Set(t)}),startWeb:t=>e(e=>e.startedWebIds.has(t)?e:{startedWebIds:new Set([...e.startedWebIds,t])}),stopWeb:t=>e(e=>{if(!e.startedWebIds.has(t))return e;let n=new Set(e.startedWebIds);return n.delete(t),{startedWebIds:n}}),setWebEmbedDialog:t(`webEmbedDialog`),setWebHtmlEditorId:t(`webHtmlEditorId`),setWidgetSize:(t,n)=>e(e=>{let r=e.widgetSizes.get(t);if(n===null?!r:r?.width===n.width&&r.height===n.height)return e;let i=new Map(e.widgetSizes);return n===null?i.delete(t):i.set(t,n),{widgetSizes:i}})}},Gn=200;function Kn(e){let t={holding:()=>!1},n=Se()(Ee((...t)=>({...On(e)(...t),...In(...t),...Ln(...t),...Rn(...t),...zn(...t),...Bn(...t),...Tn(...t),...Hn(...t),...Wn(...t)}),{partialize:e=>({shapes:e.shapes,opaqueShapes:e.opaqueShapes}),equality:(e,n)=>e.shapes===n.shapes||t.holding(),limit:Gn}));return Object.assign(n,{historyGate:t})}function qn(e,t){let n=Kn(t);return e&&(n.getState().hydrate(e.document,e.viewport,e.preferences),n.temporal.getState().clear()),n}var Jn=(0,m.createContext)(null),Yn=Jn.Provider;function Xn(){let e=(0,m.useContext)(Jn);if(!e)throw Error(`useEditorRuntime must be called under a mounted <Canvas>. Editor hooks and commands resolve through the canvas's own runtime.`);return e}function Zn(){return Xn().store}function Qn(e){return we(Zn(),e)}function $n(e,t,n){let r=(0,m.useRef)(null);return Qn(i=>{let a=e(i),o=r.current;if(o&&er(o.inputs,a))return o.value;let s=t(...a),c=o&&n?.(o.value,s)?o.value:s;return r.current={inputs:a,value:c},c})}function er(e,t){return e.length===t.length&&e.every((e,n)=>Object.is(e,t[n]))}function tr(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}export{Vt as A,an as C,U as D,en as E,we as M,qt as O,un as S,W as T,_n as _,Xn as a,cn as b,Vn as c,Nn as d,jn as f,Sn as g,q as h,$n as i,je as j,Kt as k,kn as l,Pn as m,qn as n,Qn as o,An as p,tr as r,Zn as s,Yn as t,Mn as u,J as v,rn as w,ln as x,xn as y};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"./layout.worker-
|
|
1
|
+
import{n as e,t}from"./layout.worker-CekYkaxO.js";var n=t(((t,n)=>{(function(e){if(typeof t==`object`&&n!==void 0)n.exports=e();else if(typeof define==`function`&&define.amd)define([],e);else{var r=typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:this;r.ELK=e()}})(function(){return(function(){function t(n,r,i){function a(s,c){if(!r[s]){if(!n[s]){var l=typeof e==`function`&&e;if(!c&&l)return l(s,!0);if(o)return o(s,!0);var u=Error(`Cannot find module '`+s+`'`);throw u.code=`MODULE_NOT_FOUND`,u}var d=r[s]={exports:{}};n[s][0].call(d.exports,function(e){var t=n[s][1][e];return a(t||e)},d,d.exports,t,n,r,i)}return r[s].exports}for(var o=typeof e==`function`&&e,s=0;s<i.length;s++)a(i[s]);return a}return t})()({1:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;function r(e){"@babel/helpers - typeof";return r=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},r(e)}function i(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function a(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,s(r.key),r)}}function o(e,t,n){return t&&a(e.prototype,t),n&&a(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function s(e){var t=c(e,`string`);return r(t)==`symbol`?t:t+``}function c(e,t){if(r(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var i=n.call(e,t||`default`);if(r(i)!=`object`)return i;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}n.default=function(){function e(){var t=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=n.defaultLayoutOptions,a=r===void 0?{}:r,o=n.algorithms,s=o===void 0?[`layered`,`stress`,`mrtree`,`radial`,`force`,`disco`,`sporeOverlap`,`sporeCompaction`,`rectpacking`]:o,c=n.workerFactory,u=n.workerUrl;if(i(this,e),this.defaultLayoutOptions=a,this.initialized=!1,u===void 0&&c===void 0)throw Error(`Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.`);var d=c;u!==void 0&&c===void 0&&(d=function(e){return new Worker(e)});var f=d(u);if(typeof f.postMessage!=`function`)throw TypeError(`Created worker does not provide the required 'postMessage' function.`);this.worker=new l(f),this.worker.postMessage({cmd:`register`,algorithms:s}).then(function(e){return t.initialized=!0}).catch(console.err)}return o(e,[{key:`layout`,value:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=t.layoutOptions,r=n===void 0?this.defaultLayoutOptions:n,i=t.logging,a=i!==void 0&&i,o=t.measureExecutionTime,s=o!==void 0&&o;return e?this.worker.postMessage({cmd:`layout`,graph:e,layoutOptions:r,options:{logging:a,measureExecutionTime:s}}):Promise.reject(Error(`Missing mandatory parameter 'graph'.`))}},{key:`knownLayoutAlgorithms`,value:function(){return this.worker.postMessage({cmd:`algorithms`})}},{key:`knownLayoutOptions`,value:function(){return this.worker.postMessage({cmd:`options`})}},{key:`knownLayoutCategories`,value:function(){return this.worker.postMessage({cmd:`categories`})}},{key:`terminateWorker`,value:function(){this.worker&&this.worker.terminate()}}])}();var l=function(){function e(t){var n=this;if(i(this,e),t===void 0)throw Error(`Missing mandatory parameter 'worker'.`);this.resolvers={},this.worker=t,this.worker.onmessage=function(e){setTimeout(function(){n.receive(n,e)},0)}}return o(e,[{key:`postMessage`,value:function(e){var t=this.id||0;this.id=t+1,e.id=t;var n=this;return new Promise(function(r,i){n.resolvers[t]=function(e,t){e?(n.convertGwtStyleError(e),i(e)):r(t)},n.worker.postMessage(e)})}},{key:`receive`,value:function(e,t){var n=t.data,r=e.resolvers[n.id];r&&(delete e.resolvers[n.id],n.error?r(n.error):r(null,n.data))}},{key:`terminate`,value:function(){this.worker&&this.worker.terminate()}},{key:`convertGwtStyleError`,value:function(e){if(e){var t=e.__java$exception;t&&(t.cause&&t.cause.backingJsObject&&(e.cause=t.cause.backingJsObject,this.convertGwtStyleError(e.cause)),delete e.__java$exception)}}}])}()},{}],2:[function(e,t,n){var r=e("./elk-api.js").default;Object.defineProperty(t.exports,"__esModule",{value:!0}),t.exports=r,r.default=r},{"./elk-api.js":1}]},{},[2])(2)})}));export default n();
|
package/assets/editor/assets/{elk-worker-loader-CC-I9MmI.js → elk-worker-loader-BCdkmVMX.js}
RENAMED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/elk-api-CdZ15eos.js","assets/rolldown-runtime-aKtaBQYM.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./preload-helper-Czpn1I53.js";import{f as n,m as r,u as i}from"./text-breaks-
|
|
2
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./preload-helper-Czpn1I53.js";import{f as n,m as r,u as i}from"./text-breaks-DhCXtQrJ.js";import{t as a}from"./blob-CTPsKWYv.js";import{n as o,t as s}from"./icons-DzW1j-r3.js";import{n as c}from"./theme-palette-DEq19D0h.js";function l(e){let t=null;function n(){if(!t){let n=e();t=n,n.catch(()=>{t===n&&(t=null)})}return t}return{async layout(e){return await(await n()).layout(e)}}}async function u(){let{default:e}=await t(async()=>{let{default:e}=await import(`./elk-in-process-absent-CzI8UVp-.js`);return{default:e}},[]);return new e}function d(){return{async inline(e){let t=document.baseURI,n=t?new URL(e,t).href:e;try{return await a(await f(n))}catch(t){return r(`asset-inline`,t,e),null}}}}async function f(e){let t=await fetch(e,{cache:`force-cache`}).catch(()=>null),n=t?.ok?t:await fetch(e,{cache:`reload`});if(!n.ok)throw Error(`asset request failed with ${n.status}`);let r=await n.blob();if(!r.type.startsWith(`image/`))throw Error(`asset was ${r.type||`untyped`}, not an image`);return r}function p(e){let t=``,n=32768;for(let r=0;r<e.length;r+=n)t+=String.fromCharCode(...e.subarray(r,r+n));return btoa(t)}function m(){let e=[];for(let t of Array.from(document.styleSheets)){let n=null;try{n=t.cssRules}catch{continue}if(n)for(let t of Array.from(n)){if(!(t instanceof CSSFontFaceRule))continue;let n=t.style,r=[...n.getPropertyValue(`src`).matchAll(/url\(\s*["']?([^"')]+)["']?\s*\)/g)].map(e=>e[1]);r.length!==0&&e.push({family:n.getPropertyValue(`font-family`).replace(/['"]/g,``).trim(),weight:n.getPropertyValue(`font-weight`)||`400`,style:n.getPropertyValue(`font-style`)||`normal`,unicodeRange:n.getPropertyValue(`unicode-range`),srcUrls:r})}}return e}function h(e){return e.find(e=>e.includes(`.woff2`))??e[0]}function g(e){return e.includes(`.woff2`)?`woff2`:e.includes(`.woff`)?`woff`:e.includes(`.otf`)?`opentype`:e.includes(`.ttf`)?`truetype`:`woff2`}async function _(e){return a(await(await fetch(e,{cache:`force-cache`})).blob())}function v(e,t){let n=e.unicodeRange?` unicode-range: ${e.unicodeRange};\n`:``;return`@font-face {\n font-family: "${e.family}";\n font-style: ${e.style};\n font-weight: ${e.weight};\n font-display: swap;\n src: url(${t}) format("${g(h(e.srcUrls))}");\n`+n+`}`}function y(){let e=new Map,t=t=>{let n=e.get(t);return n||(n=_(t),n.catch(()=>e.delete(t)),e.set(t,n)),n};return{async embed(e,a){let{families:o,bold:s,italic:c,codepoints:l}=e;if(o.size===0)return``;if(a&&a.length>0)return i(e,a,p);let u=m(),d=[];for(let e of o){let i=u.filter(t=>t.family===e&&(s||t.weight.trim()!==`700`)&&(c||t.style!==`italic`)&&n(t.unicodeRange,l));for(let e of i)try{let n=await t(new URL(h(e.srcUrls),document.baseURI).href);d.push(v(e,n))}catch(t){r(`font-embed`,t,e.family)}}return d.join(`
|
|
3
3
|
`)}}}function b(e,t,n,r){return`${r?`italic `:``}${n??400} ${e}px ${t}`}function x(e,t,n,r,i,a){return e.font=b(n,r,i,a),e.measureText(t).width}function S(e,t){return e.length*t*.6}function C(){let e=null,t=!1,n=()=>(t||=(e=document.createElement(`canvas`).getContext(`2d`),!0),e);return{prepare:()=>Promise.resolve(),measure:(e,t,r,i,a)=>{let o=n();return o?x(o,e,t,r,i,a):S(e,t)}}}function w(){if(typeof document>`u`)return{...c};let e=getComputedStyle(document.documentElement),t=(t,n)=>e.getPropertyValue(t).trim()||n;return{bg:t(`--canvas-bg`,c.bg),ink:t(`--canvas-ink`,c.ink),inkMuted:t(`--canvas-ink-muted`,c.inkMuted),inkInverse:t(`--canvas-ink-inverse`,c.inkInverse),paperBg:t(`--paper-bg`,c.paperBg),paperGrid:t(`--paper-grid`,c.paperGrid),paperLine:t(`--paper-line`,c.paperLine)}}function T(){return{palette:w}}function E(e={}){let t=e.assetBase===void 0&&e.loadIconCatalog===void 0?s():o({assetBase:e.assetBase,loadCatalog:e.loadIconCatalog});return{text:C(),fonts:y(),assets:d(),icons:t,elk:l(e.elk??u),theme:T()}}async function D(){try{let[{default:n},{default:r}]=await Promise.all([t(()=>import(`./elk-api-CdZ15eos.js`).then(t=>e(t.default,1)),__vite__mapDeps([0,1])),t(()=>import(`./elk-worker.min-SDxTC6NI.js`),[])]),i=new n({workerFactory:()=>new r});return await i.layout({id:`__probe__`,children:[{id:`n`,width:1,height:1}]}),i}catch{return u()}}export{E as n,C as r,D as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./web-embed-url-CHu4SU82.js";import{i as t,n,r}from"./web-embeds-I3saJ_yp.js";function i(e){let i=e.trim();if(i.length===0)return null;if(/<iframe\b/i.test(i)){let e=n(i);return e?t(e):null}let a=r(i);if(a)return t(a);if(/\s/.test(i))return null;let o=t(i);return!o||o.provider===`generic`?null:o}function a(r){let i=r.trim();if(i.length===0)return`Paste a link to embed`;let a=/<iframe\b/i.test(i)?n(i):i;return a?e(a)?t(a)?null:`Koboyo pages can't be embedded in a board. Link to it instead`:/^http:\/\//i.test(a)?`Only secure (https) links can be embedded`:`That doesn't look like a web address`:`That embed code has no https link in it`}function o(e){let r=e.trim(),i=/<iframe\b/i.test(r)?n(r):r;return i?t(i):null}function s(e,t){let n=t.keepAspect?Math.round(e.width*t.height/t.width):e.height;return{...e,kind:`embed`,url:t.canonical,height:n,keepAspect:t.keepAspect||void 0,html:void 0,htmlSrc:void 0,poster:void 0,posterOf:void 0}}export{s as i,i as n,a as r,o as t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/jspdf.es.min-CxZaZThI.js","assets/rolldown-runtime-aKtaBQYM.js","assets/preload-helper-Czpn1I53.js","assets/typeof-B5XbjTb1.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{j as e}from"./shapes-D5w8NTQQ.js";import{i as t,l as n,o as r}from"./slides-DDNzjFz9.js";import{t as i}from"./preload-helper-Czpn1I53.js";import{t as a}from"./blob-CTPsKWYv.js";import{t as o}from"./theme-palette-DEq19D0h.js";import{n as s,r as c}from"./clipboard-CO7YHov7.js";import{n as l,t as u}from"./export-u442sUQs.js";function d(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.rel=`noopener`,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),1e3)}var f={"16:9":[1280,720],a4:[1123,794],letter:[1056,816]};function p(e,t=`fit`){let n=e.height>e.width;if(t===`fit`)return{format:[e.width,e.height],orientation:n?`portrait`:`landscape`,image:{x:0,y:0,width:e.width,height:e.height}};let[r,i]=f[t],a=n&&t!==`16:9`?{width:i,height:r}:{width:r,height:i},o=Math.min(a.width/e.width,a.height/e.height),s=e.width*o,c=e.height*o;return{format:[a.width,a.height],orientation:a.height>a.width?`portrait`:`landscape`,image:{x:(a.width-s)/2,y:(a.height-c)/2,width:s,height:c}}}var m=2,h=8192;async function g(e,t=m){let n=u(e),r=new Image;await new Promise((e,t)=>{r.onload=()=>e(),r.onerror=()=>t(Error(`Failed to rasterize SVG`)),r.src=n});let i=Math.min(h/r.width,h/r.height),a=Math.min(t,i),o=Math.max(1,Math.round(r.width*a)),s=Math.max(1,Math.round(r.height*a)),c=document.createElement(`canvas`);c.width=o,c.height=s;let l=c.getContext(`2d`);if(!l)throw Error(`No 2D context`);return l.imageSmoothingEnabled=!0,l.imageSmoothingQuality=`high`,l.drawImage(r,0,0,o,s),new Promise((e,t)=>{c.toBlob(n=>n?e(n):t(Error(`toBlob failed`)),`image/png`)})}function _(e={}){let t=e.theme===`dark`,n=t?o:e.palette;return e.transparent?{...e,palette:n,background:`transparent`}:{...e,palette:n,background:e.background??(t?o.bg:void 0)}}function v(o){function u(e,t){return l(e,o,_(t))}async function f(e,t,n=`canvas`){let r=await u(e,t);d(new Blob([r],{type:`image/svg+xml`}),`${n}.svg`)}async function m(e,t,n=`canvas`){d(await g(await u(e,t),t?.scale),`${n}.png`)}async function h(e,t){await c(await u(e,t))}async function v(e,t){await s(u(e,t).then(e=>g(e,t?.scale)))}async function y(s,c,u=`slides`){let d=r(t(s));if(d.length===0)return;let{jsPDF:f}=await i(async()=>{let{jsPDF:e}=await import(`./jspdf.es.min-CxZaZThI.js`);return{jsPDF:e}},__vite__mapDeps([0,1,2,3])),m=null;for(let t of d){let r=e(t,c?.measurement),i=await a(await g(await l(n(s,t),o,{bounds:r,padding:0,background:t.fill,measurement:c?.measurement}))),{format:u,orientation:d,image:h}=p(r,c?.pageSize);m?m.addPage(u,d):m=new f({unit:`px`,format:u,orientation:d,hotfixes:[`px_scaling`]}),m.addImage(i,`PNG`,h.x,h.y,h.width,h.height)}m?.save(`${u}.pdf`)}return{svgToPngBlob:g,downloadSvg:f,downloadPng:m,copySvg:h,copyPng:v,downloadSlidesPdf:y}}export{v as createBrowserExport};
|
|
@@ -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{i as r}from"./config-D8b1QyEk.js";import{a as i,i as a,o,s}from"./editor-DAJETlQW.js";import{g as c,i as l,o as u}from"./slides-DDNzjFz9.js";import{c as d,i as f,n as p,o as m,r as h,s as g,t as ee}from"./export-options-CJwykdP5.js";import{t as _}from"./IconX-KrRqxr2j.js";import{t as te}from"./use-export-command-BR-A4kAa.js";import{n as v}from"./surface-Dke4SWpE.js";import{i as y,n as b,r as x,t as S}from"./DialogRoot-DUeVfNhS.js";import{n as C,t as w}from"./DialogTitle-D5au2NAn.js";import{t as T}from"./dialog-DnXgEbpz.js";var E=e(t(),1),D=n(),O=`flex h-7 items-center rounded-lg px-2.5 text-[12px] outline-none transition-colors disabled:cursor-not-allowed disabled:text-[var(--chrome-fg-300)]`,k=`bg-[var(--chrome-active)] text-[var(--chrome-fg-900)]`,A=`text-[var(--chrome-fg-500)] hover:bg-[var(--chrome-hover)]`,ne=[{id:`png`,label:`PNG`},{id:`svg`,label:`SVG`},{id:`pdf`,label:`PDF`}];function j(e){let{request:t,onClose:n}=e,O=s(),k=i(),{canvasMeta:A}=r(),j=te(),P=o(e=>e.selectedIds.size),F=a(e=>[e.shapes],e=>u(l(e)).length),I=A?.name,[L,R]=(0,E.useState)(m),[z]=(0,E.useState)(()=>f(t,L,{hasSelection:P>0,hasSlides:F>0})),[B,V]=(0,E.useState)(z.format),[H,U]=(0,E.useState)(z.scope),[W,G]=(0,E.useState)(()=>h(I,z.format)),[K,q]=(0,E.useState)(!1),[J,Y]=(0,E.useState)(!1),X=(0,E.useRef)(!0);(0,E.useEffect)(()=>(X.current=!0,()=>{X.current=!1}),[]);let Z=B===`pdf`,Q=P>0?H:`board`;function $(e,t){R(n=>({...n,[e]:t}))}function re(e){V(e),K||G(h(I,e))}async function ie(e){if(e.preventDefault(),J)return;g(Z?L:{...L,format:B}),Y(!0);let t=h(W,B),{shapes:r,selectedIds:i}=O.getState(),a=Q===`board`?r:c(r,d(r,i),k.measurement),o=Z?await j(`downloadPdf`,r,{options:{pageSize:L.pageSize},filename:t}):await j(B===`png`?`downloadPng`:`downloadSvg`,a,{options:{scale:B===`png`?L.scale:void 0,transparent:L.transparent,theme:L.theme},filename:t});X.current&&(Y(!1),o&&n())}return(0,D.jsx)(S,{open:!0,onOpenChange:e=>{e||n()},children:(0,D.jsxs)(b,{children:[(0,D.jsx)(y,{className:v.dialogBackdrop}),(0,D.jsxs)(x,{"data-overlay":!0,"data-testid":`export-dialog`,className:`w-[min(420px,92vw)] p-5 ${v.dialogPopup}`,children:[(0,D.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,D.jsx)(w,{className:T.title,children:`Export`}),(0,D.jsx)(C,{"aria-label":`Close`,"data-testid":`export-close`,className:`-mr-1.5 -mt-1.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg text-[var(--chrome-fg-500)] outline-none transition-colors hover:bg-[var(--chrome-hover)]`,children:(0,D.jsx)(_,{size:16,stroke:2})})]}),(0,D.jsxs)(`form`,{className:`mt-4 flex flex-col gap-3`,onSubmit:e=>void ie(e),children:[(0,D.jsx)(M,{label:`Format`,children:(0,D.jsx)(N,{label:`Format`,testId:`export-format`,value:B,options:ne.map(e=>({...e,disabled:e.id===`pdf`&&F===0})),onChange:re})}),Z?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(M,{label:`Page size`,children:(0,D.jsx)(N,{label:`Page size`,testId:`export-page`,value:L.pageSize,options:p,onChange:e=>$(`pageSize`,e)})}),(0,D.jsxs)(`p`,{"data-testid":`export-pdf-summary`,className:`text-[12px] leading-relaxed text-[var(--chrome-fg-400)]`,children:[F===1?`One slide`:`${F} slides`,`, one page each. Skipped slides are left out.`]})]}):(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(M,{label:`Export`,children:(0,D.jsx)(N,{label:`Export`,testId:`export-scope`,value:Q,options:[{id:`selection`,label:P>0?`Selection (${P})`:`Selection`,disabled:P===0},{id:`board`,label:`Whole board`}],onChange:U})}),B===`png`&&(0,D.jsx)(M,{label:`Scale`,children:(0,D.jsx)(N,{label:`Scale`,testId:`export-scale`,value:L.scale,options:ee.map(e=>({id:e,label:`${e}×`})),onChange:e=>$(`scale`,e)})}),(0,D.jsx)(M,{label:`Background`,children:(0,D.jsx)(N,{label:`Background`,testId:`export-background`,value:L.transparent?`transparent`:`solid`,options:[{id:`solid`,label:`Solid`},{id:`transparent`,label:`Transparent`}],onChange:e=>$(`transparent`,e===`transparent`)})}),(0,D.jsx)(M,{label:`Theme`,children:(0,D.jsx)(N,{label:`Theme`,testId:`export-theme`,value:L.theme,options:[{id:`light`,label:`Light`},{id:`dark`,label:`Dark`}],onChange:e=>$(`theme`,e)})})]}),(0,D.jsxs)(`label`,{className:`mt-1 flex flex-col gap-1.5`,children:[(0,D.jsx)(`span`,{className:T.label,children:`File name`}),(0,D.jsxs)(`div`,{className:`relative`,children:[(0,D.jsx)(`input`,{"data-testid":`export-filename`,className:`${T.field} pr-12`,value:W,maxLength:120,placeholder:h(null,B),onChange:e=>{G(e.target.value),q(!0)}}),(0,D.jsxs)(`span`,{className:`pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-[13px] text-[var(--chrome-fg-400)]`,children:[`.`,B]})]})]}),(0,D.jsxs)(`div`,{className:`mt-2 ${T.actions}`,children:[(0,D.jsx)(C,{className:T.cancelButton,children:`Cancel`}),(0,D.jsx)(`button`,{type:`submit`,"data-testid":`export-submit`,"data-busy":J?`true`:`false`,disabled:J,className:T.submitButton,children:J?`Exporting…`:`Export`})]})]})]})]})})}function M(e){let{label:t,children:n}=e;return(0,D.jsxs)(`div`,{className:`flex min-h-8 items-center justify-between gap-3`,children:[(0,D.jsx)(`span`,{className:T.label,children:t}),n]})}function N(e){let{label:t,testId:n,value:r,options:i,onChange:a}=e;return(0,D.jsx)(`div`,{className:`flex items-center gap-1`,role:`radiogroup`,"aria-label":t,children:i.map(e=>(0,D.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":r===e.id,"data-testid":`${n}-${String(e.id).replace(`:`,`-`)}`,disabled:e.disabled,onClick:()=>a(e.id),className:`${O} ${r===e.id?k:A}`,children:e.label},e.id))})}export{j as ExportDialog};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{B as e,F as t,I as n,O as r,R as i,b as a,s as o}from"./style-BENGW2ZV.js";import{$ as s,Bt as c,C as l,Ft as u,Ht as d,I as f,It as p,Mt as m,N as h,Nt as g,Pt as _,Q as v,Rt as y,Tt as b,Vt as x,X as S,Y as C,_t as w,c as T,ht as E,j as D,jt as O,k as ee,l as te,nt as ne,pn as re,pt as k,rt as A,s as ie,u as ae,ut as j,vt as oe,wt as se,yt as M,zt as ce}from"./shapes-D5w8NTQQ.js";import{Lt as le}from"./slides-DDNzjFz9.js";import{i as ue}from"./registry-d5KleeyB.js";import{a as de,m as N,p as fe,t as pe}from"./text-breaks-DhCXtQrJ.js";import{t as P}from"./web-card-font-BbZEq3En.js";import{i as me,r as F}from"./icon-sources-CZI1h18s.js";import{P as he,a as ge,b as _e,c as ve,g as ye,i as be,l as xe,n as Se,o as Ce,s as we,y as Te}from"./chart-CKIxcbcM.js";import{c as Ee,i as De,s as Oe,u as ke}from"./frames-DRSLvE9E.js";import{n as Ae,t as je}from"./connector-labels-DqVssnYz.js";import{t as Me}from"./web-card-BTru0lge.js";var Ne=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,Pe=(()=>{let e=new Int8Array(128).fill(-1);for(let t=0;t<64;t+=1)e[Ne.charCodeAt(t)]=t;return e})();function Fe(e){let t=e.replace(/[\s=]+$/g,``).replace(/\s+/g,``),n=``,r=0,i=0;for(let e=0;e<t.length;e+=1){let a=t.charCodeAt(e),o=a<128?Pe[a]:-1;if(o<0)throw Error(`invalid base64`);i=i<<6|o,r+=6,r>=8&&(r-=8,n+=String.fromCharCode(i>>r&255))}return n}var I=`#ffffff`;function L(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`)}function Ie(e){return String(e).replace(/&/g,`&`).replace(/"/g,`"`).replace(/</g,`<`)}function Le(e){let t=Object.entries(e).filter(e=>e[1]!==void 0&&e[1]!==null&&e[1]!==``),n=t.filter(([e,t])=>e!==`style`&&typeof t==`string`&&t.includes(`var(--`));if(n.length===0)return t.map(([e,t])=>`${e}="${Ie(t)}"`).join(` `);let r=t.find(([e])=>e===`style`)?.[1],i=[...n.map(([e,t])=>`${e}:${t}`),...r?[r]:[]];return[...t.filter(e=>!n.includes(e)&&e[0]!==`style`),[`style`,i.join(`;`)]].map(([e,t])=>`${e}="${Ie(t)}"`).join(` `)}function R(e,t,n){let r=Le(t);return n===void 0?`<${e}${r?` `+r:``}/>`:`<${e}${r?` `+r:``}>${n}</${e}>`}function z(e,t){if(e)return`rotate(${e} ${t.x+t.width/2} ${t.y+t.height/2})`}function B(e,t,n){if(!t&&!n)return;let r=`scale(${t?-1:1} ${n?-1:1})`;return`translate(${e.x} ${e.y}) ${r} translate(${-e.x} ${-e.y})`}function V(e,t){let n=z(e.rotation??0,t),r=B({x:t.x+t.width/2,y:t.y+t.height/2},e.flipX,e.flipY);return r?n?`${n} ${r}`:r:n}var H=`'JetBrains Mono', ui-monospace, monospace`,Re=.9,ze=`#fde68a`;function U(e,t){let n=e.fontSize??t;return e.code?n*Re:n}function W(e,t,n,r,i){let a=t.code?H:n,o=U(t,r),s=t.bold?700:i??400;return e.measure(t.text,o,a,s,t.italic)}var G=.55,Be=1.4,Ve=1.4;function He(e,t){return(e.depth??0)*Ve*t}function Ue(e){return e.kind===`bullet`?`• `:e.kind===`number`?`${e.text} `:null}function K(e,t,n,r,i,a){if(!e)return 0;let o=Ue(e);return o===null?Be*t:a.measure(o,t,n,r)+i*o.length}function We(e,t,n,r,i,a){let o=r*.8,s=e+r*.25,c=t+(n-o)/2,l=R(`rect`,{x:s,y:c,width:o,height:o,rx:r*.15,fill:i?a:`none`,stroke:a,"stroke-width":1.5});if(!i)return l;let u=R(`path`,{d:`M ${s+o*.24} ${c+o*.54} L ${s+o*.44} ${c+o*.72} L ${s+o*.78} ${c+o*.3}`,fill:`none`,stroke:`#ffffff`,"stroke-width":Math.max(1.5,o*.12),"stroke-linecap":`round`,"stroke-linejoin":`round`});return R(`g`,{opacity:G},l+u)}function Ge(e,t,n,r,i,a){return de(e,t,e=>a.measure(e,n,r,i))}function Ke(e){let t=[];for(let n of e)for(let e of n.text.split(/(\s+)/).filter(e=>e.length>0)){let r=e.trim().length===0,i=t[t.length-1];if(i&&i.space===r&&!r){i.piece.push({run:n,text:e});continue}t.push({space:r,piece:[{run:n,text:e}]})}return t}function q(e,t,n){let r=[],i=0;for(let a of e){let e=Array.from(a.text),o=Math.max(t-i,0),s=Math.min(n-i,e.length);o<s&&r.push({run:a.run,text:e.slice(o,s).join(``)}),i+=e.length}return r}function qe(e,t,n,r,i,a){let o=[];for(let s of e){let e=K(s.marker,r,n,i,0,a),c=Math.max(r,t-e-He(s,r)),l=[],u=0,d=!0,f=null,p=()=>{for(;l.length>0;){let e=l[l.length-1];if(e.text=e.text.replace(/\s+$/,``),e.text.length>0)break;l.pop()}o.push({runs:l,marker:d?s.marker:void 0,checked:s.checked,depth:s.depth}),d=!1,l=[],u=0,f=null},m=(e,t,n)=>{f===e&&l.length>0?l[l.length-1].text+=t:(l.push({...e,text:t}),f=e),u+=n},h=e=>e.reduce((e,t)=>e+W(a,{...t.run,text:t.text},n,r,i),0),g=(e,t)=>{for(let t of e)m(t.run,t.text,W(a,{...t.run,text:t.text},n,r,i));return t},_=e=>u+e<=c;for(let e of Ke(s.runs)){if(e.space){_(h(e.piece))?g(e.piece,0):p();continue}let t=h(e.piece);if(_(t)){g(e.piece,t);continue}if(l.length>0&&p(),t<=c){g(e.piece,t);continue}let n=e.piece.map(e=>e.text).join(``),r=[0,...pe(n),Array.from(n).length];for(let t=0;t<r.length-1;t+=1){let n=q(e.piece,r[t],r[t+1]),i=h(n);if(_(i)){g(n,i);continue}if(l.length>0&&p(),i<=c){g(n,i);continue}let a=r[t+1]-r[t],o=0;for(let e=1;e<=a;e+=1){let t=q(n,o,e);e-o>1&&h(t)>c&&(g(q(n,o,e-1),0),p(),o=e-1)}g(q(n,o,a),0)}}p()}return o}function Je(e){return e.fontSize*(e.lineHeight??1.2)}function Ye(e){return(e.letterSpacing??0)*e.fontSize}function Xe(e,t,n,r,i){let a=e;t.background&&(a=R(`rect`,{x:t.x-n/2-10,y:t.y-r/2,width:n+20,height:r,rx:2,fill:i.theme.paint(e=>e.bg,I)})+a);let o=t.rotateCenter;if(!o)return a;let s=[t.rotation?`rotate(${t.rotation} ${o.x} ${o.y})`:void 0,B(o,t.flipX,t.flipY)].filter(Boolean).join(` `);return s?R(`g`,{transform:s},a):a}function Ze(e,t,n){if(e)return t.fixedInk?e:n.theme.paint(t=>E(C(e),t),e)}function J(e,t){if(s(e.text)&&v())return Qe(e,t);let n=r(e.fontFamily),i=e.maxWidth,a=A(e.text).split(`
|
|
2
|
+
`);i!==void 0&&(a=a.flatMap(r=>Ge(r,i,e.fontSize,e.fontFamily,n,t.text)));let o=e.ascent??d(e.fontSize,e.lineHeight??1.2),c=Je(e),l=Ye(e),u=a.length*c,f=e.vAlign===`center`?e.y-u/2+o:e.vAlign===`bottom`?e.y-u+o:e.y+o,p=a.map((t,n)=>R(`tspan`,{x:e.x,y:f+n*c},L(t)||` `)).join(``);return Xe(R(`text`,{"font-family":e.fontFamily,"font-size":e.fontSize,"font-weight":n,fill:e.color,"text-anchor":e.align,"white-space":`pre`,"letter-spacing":l||void 0},p),e,e.background?Math.max(...a.map(r=>t.text.measure(r,e.fontSize,e.fontFamily,n)+l*r.length)):0,u,t)}function Qe(e,t){let n=r(e.fontFamily),i=ne(e.text);e.maxWidth!==void 0&&(i=qe(i,e.maxWidth,e.fontFamily,e.fontSize,n,t.text));let o=e.lineHeight??1.2,s=e.letterSpacing??0,c=i.map(t=>Math.max(e.fontSize,...t.runs.map(t=>U(t,e.fontSize)))),l=c.map(e=>e*o),u=l.reduce((e,t)=>e+t,0),f=e.vAlign===`center`?e.y-u/2:e.vAlign===`bottom`?e.y-u:e.y,p=[],m=[],h=0,v=f;i.forEach((r,i)=>{let u=e.ascent?e.ascent/e.fontSize*c[i]:d(c[i],o),f=l[i],y=v,b=y+u;v+=f;let x=K(r.marker,e.fontSize,e.fontFamily,n,s*e.fontSize,t.text),S=r.runs.map(t=>U(t,e.fontSize)),C=r.runs.map((r,i)=>W(t.text,r,e.fontFamily,e.fontSize,n)+s*S[i]*r.text.length),w=C.reduce((e,t)=>e+t,0),T=He(r,e.fontSize),E=T+x+w;h=Math.max(h,E);let D=e.align===`middle`?e.x-E/2:e.align===`end`?e.x-E:e.x;if(D+=T,r.marker){let t=Ue(r.marker);t===null?p.push(We(D,y,f,e.fontSize,r.checked,e.color)):m.push(R(`tspan`,{x:D,y:b},L(t))),D+=x}r.runs.forEach((n,i)=>{let o=C[i],c=S[i];n.highlight&&p.push(R(`rect`,{x:D,y:b-c*g,width:o,height:c*(g+_),rx:3,fill:ze,opacity:r.checked?G:void 0}));let l=[n.href||n.underline?`underline`:``,n.strike?`line-through`:``].filter(Boolean).join(` `);m.push(R(`tspan`,{x:D,y:b,"font-style":n.italic?`italic`:void 0,"font-weight":n.bold?700:void 0,"font-family":n.code?H:void 0,"font-size":c===e.fontSize?void 0:c,"letter-spacing":s?s*c:void 0,fill:n.href?a:Ze(n.color,e,t),"fill-opacity":r.checked?G:void 0,"text-decoration":l||void 0},L(n.text)||` `)),D+=o})});let y=R(`text`,{"font-family":e.fontFamily,"font-size":e.fontSize,"font-weight":n,fill:e.color,"text-anchor":`start`,"white-space":`pre`},m.join(``));return Xe(p.join(``)+y,e,h,u,t)}function $e(e){return`light`in e&&`dark`in e}function et(){return{paint:(e,t)=>t,css:()=>``,rootClass:void 0}}function tt(e){return{paint:t=>t(e),css:()=>``,rootClass:void 0}}var Y=`koboyo-adaptive`;function nt(e){if(t(e.light.bg,1)<.5||t(e.dark.bg,0)>=.5)throw Error(`an adaptive export needs a light palette and a dark one, in that order`);let n=new Map;return{paint(t){let r=t(e.light),i=t(e.dark);return r===i?r:`var(${rt(n,r,i)})`},css(){if(n.size===0)return``;let e=e=>[...n].map(([t,n])=>`${t}:${n[e]}`).join(`;`);return`.${Y}{${e(0)}}@media (prefers-color-scheme: dark){.${Y}{${e(1)}}}`},rootClass:Y}}function rt(e,t,n){let r=`--kb-${it(`${t}|${n}`)}`,i=r;for(let a=1;;a+=1){let o=e.get(i);if(!o)return e.set(i,[t,n]),i;if(o[0]===t&&o[1]===n)return i;i=`${r}-${a}`}}function it(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(36)}function at(e,t){let r=n(e);return ot(e)?t.theme.paint(e=>E(r,e),r):r}function ot(e){return e.fill===`transparent`||e.fill===`#ffffff`||i(e)!==null}function st(e,t){if(!e.label)return``;let n=D(e),r=c(e.kind,n.width,n.height,{x:e.flipX,y:e.flipY}),i={x:n.x+r.left,y:n.y+r.top,width:n.width-r.left-r.right,height:n.height-r.top-r.bottom},a=at(e,t),o=e.textAlign??`center`,s=e.textVAlign??`middle`,l=e.textPadding??6,u=e.fontSize??20,d=e.titleIcon?.placement===`inside`?ce(u)+y(u):0;return J({text:e.label,fontSize:u,fontFamily:e.fontFamily,color:a,fixedInk:!ot(e),lineHeight:e.lineHeight??1.25,letterSpacing:e.letterSpacing,x:o===`left`?i.x+l+d:o===`right`?i.x+i.width-l:i.x+i.width/2+d/2,y:s===`top`?i.y+l:s===`bottom`?i.y+i.height-l:i.y+i.height/2,align:o===`left`?`start`:o===`right`?`end`:`middle`,vAlign:s===`top`?`top`:s===`bottom`?`bottom`:`center`,maxWidth:i.width-l*2-d,rotation:e.rotation,rotateCenter:{x:i.x+i.width/2,y:i.y+i.height/2}},t)}var ct=15;function lt(e){return e.titleIcon?19:0}function ut(e,t){let n=e.titleIcon;if(!n||!e.label)return``;let r=D(e),i=r.x,a=r.y-m-14*1.2+d(14,1.2)-14*.35-ct/2;return Q({source:n.source,name:n.name,srcMap:t.srcMap,icons:t.icons,x:i,y:a,size:ct,stroke:t.theme.paint(t=>E(e.color,t),e.color)})}function dt(e,t){if(!e.label)return``;let n=D(e);return ut(e,t)+J({text:e.label,fontSize:14,fontFamily:e.fontFamily,color:t.theme.paint(t=>E(e.color,t),e.color),x:n.x+lt(e),y:n.y-m,align:`start`,vAlign:`bottom`},t)}function ft(e,t){let n=e.lanes??[];if(!Oe(e.kind)||n.length===0)return``;let r=ke(e.kind),i=D(e),a=Ee(n.length,r?i.width:i.height,e.laneSizes),o=t.theme.paint(t=>E(e.color,t),e.color),s=n.map((n,s)=>{if(!n)return``;let c=(a[s]+a[s+1])/2,l=r?i.x+c:i.x+30/2,u=r?i.y+30/2:i.y+c;return J({text:n,fontSize:14,fontFamily:e.fontFamily,color:o,x:l,y:u,align:`middle`,vAlign:`center`,lineHeight:1,rotation:r?void 0:-90,rotateCenter:r?void 0:{x:l,y:u}},t)}).join(``);return R(`g`,{opacity:De},s)}function pt(e,t){if(!e.label)return null;let n=D(e),i=r(e.fontFamily),a=A(e.label).split(`
|
|
3
|
+
`),o=a.length*14*1.2,s=lt(e)+Math.max(...a.map(n=>t.measure(n,14,e.fontFamily,i))),c=n.y-m-o;return{x:n.x,y:c,width:s,height:n.y-c}}function mt(e,t,n,r,i){let a=r.color===`transparent`?j:r.color,s=i.theme.paint(e=>E(a,e),a);return J({text:e,fontSize:n,fontFamily:r.fontFamily??o,color:s,lineHeight:p,x:t.x,y:t.y,align:`middle`,vAlign:`center`,background:!0},i)}function ht(e,t,n){let r=e.label??``;return r?mt(r,t,e.fontSize??20,e,n):``}function gt(e,t){let n=``;for(let r of je(e))n+=mt(r.text,r.point,14,e,t);return n}function _t(e,t){if(!e.label)return``;let n=D(e),r=n.x+n.width/2,i=e.fontSize??36,a=ee(i),o=e.color===`transparent`?j:e.color;return J({text:e.label,fontSize:i,fontFamily:e.fontFamily,color:t.theme.paint(e=>E(o,e),o),lineHeight:u,x:r,y:n.y+n.height+a,align:`middle`,vAlign:`top`,rotation:e.rotation,rotateCenter:{x:r,y:n.y+n.height/2}},t)}function vt(e,t){if(!e.text)return``;let n=D(e,t.measurement),i=e.textAlign??`left`,a=e.textVAlign??`top`,o=r(e.fontFamily),s=(e.letterSpacing??0)*e.fontSize,c=e.width??Math.max(...A(e.text).split(`
|
|
4
|
+
`).map(n=>t.text.measure(n,e.fontSize,e.fontFamily,o)+s*n.length));return J({text:e.text,fontSize:e.fontSize,fontFamily:e.fontFamily,color:t.theme.paint(t=>E(e.color,t),e.color),lineHeight:e.lineHeight??1.15,letterSpacing:e.letterSpacing,x:i===`center`?e.x+c/2:i===`right`?e.x+c:e.x,y:e.height==null||a===`top`?e.y:a===`bottom`?e.y+n.height:e.y+n.height/2,align:i===`center`?`middle`:i===`right`?`end`:`start`,vAlign:e.height==null||a===`top`?`top`:a===`bottom`?`bottom`:`center`,maxWidth:e.width,ascent:d(e.fontSize,e.lineHeight??1.15),rotation:e.rotation,rotateCenter:{x:n.x+n.width/2,y:n.y+n.height/2},flipX:e.flipX,flipY:e.flipY},t)}function X(e,t,n,r){let i={};for(let[a,o]of Object.entries(e))i[a]=typeof o==`string`?n.paint(e=>b(a,o,t,t=>E(t,e),t=>oe(t,e),r?w(r,e):void 0),o):o;return i}function Z(e,t,n=`keep`,r){return e.filter(e=>e!==null).map(e=>R(e.tag,X(e.attrs,n,t,r))).join(``)}function yt(e,t){let n=D(e),r=ve(e),a={x:0,y:0,width:n.width,height:n.height},o=`translate(${n.x} ${n.y})`,s=z(e.rotation??0,a),c=e.fill===`#ffffff`?`paper`:`keep`,l=i(e)??void 0;return R(`g`,{transform:s?`${o} ${s}`:o},Z([r.shadow],t.theme)+Z([r.fill],t.theme,c,l)+Z(r.strokes,t.theme,`keep`,l))}function bt(e){let t=D(e),n=xe(e),r={x:0,y:0,width:t.width,height:t.height},i=`translate(${t.x} ${t.y})`,a=z(h(e),r);return R(`g`,{transform:a?`${i} ${a}`:i},Z([n.shadow,n.card],et()))}function xt(t,n){if(!t.text)return``;let r=D(t),i=t.fill===`transparent`?n.theme.paint(e=>E(j,e),e(t.fill)):e(t.fill);return J({text:t.text,fontSize:t.fontSize,fontFamily:t.fontFamily,color:i,fixedInk:t.fill!==`transparent`,lineHeight:t.lineHeight??1.25,letterSpacing:t.letterSpacing,x:r.x+r.width/2,y:r.y+r.height/2,align:`middle`,vAlign:`center`,maxWidth:r.width-28,rotation:t.rotation,rotateCenter:{x:r.x+r.width/2,y:r.y+r.height/2}},n)}function St(e,t){let n=D(e),r=Ce(e);return R(`g`,{transform:z(h(e),n)},Z([r.outline],t.theme,`paper`)+Z(r.chrome,t.theme))}function Ct(e,t){let n=be(e);return Z(n.strokes,t.theme)+Z(n.heads,t.theme,`ink`)}function wt(e,t){let n=ge(e),r=X(n.attrs,`ink`,t.theme),i=e.highlighter?{style:`mix-blend-mode:${t.theme.paint(k,k())}`}:void 0;return R(n.tag,{...r,opacity:e.opacity,...i})}function Tt(e,t){return R(`path`,{...X({d:we(e.points,e.smooth),fill:e.fill,stroke:e.color},`ink`,t.theme),"stroke-width":e.strokeWidth})}function Et(e,t){let n=D(e),{x:r,y:i,width:a,height:o}=te(n,e.crop),s=`imgclip-${e.id}`,c=t.srcMap.get(e.src)??e.src,l=R(`clipPath`,{id:s},R(`rect`,{x:n.x,y:n.y,width:n.width,height:n.height,rx:T(e.corner,n)})),u=R(`image`,{href:c,x:r,y:i,width:a,height:o,preserveAspectRatio:`none`,"clip-path":`url(#${s})`});return R(`g`,{transform:V(e,n)},l+u)}function Dt(e,t){let n=t.cachedNode(e);return n?n.map(([e,t])=>R(e,t)).join(``):``}function Ot(e){let t=/^data:image\/svg\+xml(;base64)?,([\s\S]*)$/.exec(e.dataUrl);if(!t)return null;let n;try{n=t[1]?Fe(t[2]):decodeURIComponent(t[2])}catch{return null}let r=/<svg\b[^>]*>/i.exec(n),i=n.lastIndexOf(`</svg>`);if(!r||i<0)return null;let a=/viewBox="([^"]*)"/i.exec(r[0])?.[1];if(!a)return null;let o={x:e.x,y:e.y,width:e.size,height:e.height,viewBox:a,fill:`currentColor`,color:e.ink},s=a.trim().split(/[\s,]+/).map(Number),[,,c,l]=s,u=s.length===4&&c>0&&l>0?Math.min(e.size/c,e.height/l):1,d=(e.weight??0)/u,f=n.slice(r.index+r[0].length,i);if(d>0)o.overflow=`visible`,o.stroke=`currentColor`,o[`stroke-width`]=d,o[`stroke-linejoin`]=`round`,o[`stroke-linecap`]=`round`;else if(d<0&&e.weightId){let t=`mono-erode-${e.weightId}`;f=R(`filter`,{id:t},R(`feMorphology`,{operator:`erode`,radius:-d/4}))+R(`g`,{filter:`url(#${t})`},f)}return R(`svg`,o,f)}function Q(e){let{source:t,name:n,srcMap:r,icons:i,x:a,y:o,size:s,height:c=e.size,stroke:l,strokeWidth:u=2,weight:d,weightId:f}=e;if(F(t)){let e=i.assetIconUrl(t,n),u=r.get(e);if(u&&me(t)){let e=Ot({dataUrl:u,x:a,y:o,size:s,height:c,ink:l,weight:d,weightId:f});if(e)return e}return R(`image`,{href:u??e,x:a,y:o,width:s,height:c})}return R(`g`,{transform:`translate(${a} ${o}) scale(${s/24})`,fill:`none`,stroke:l,"stroke-width":u,"stroke-linecap":`round`,"stroke-linejoin":`round`},Dt(n,i))}function kt(e,t,n){let r=D(t),i=x(t.kind,r.width,r.height,{x:t.flipX,y:t.flipY}),a=r.x+i.x-28/2,o=r.y+i.y-28/2,s=R(`rect`,{x:a,y:o,width:28,height:28,rx:6,fill:`#ffffff`,stroke:t.color,"stroke-width":1.5}),c=Q({source:e.source,name:e.name,srcMap:n.srcMap,icons:n.icons,x:a+5,y:o+5,size:18,stroke:t.color});return R(`g`,{transform:z(t.rotation??0,r)},s+c)}function At(e,t,n){let i=D(t),a=t.fontSize??20,o=ce(a),s=y(a),l=t.textPadding??6,u=t.textAlign??`center`,f=t.textVAlign??`middle`,p=r(t.fontFamily),m=A(t.label).split(`
|
|
5
|
+
`),h=c(t.kind,i.width,i.height,{x:t.flipX,y:t.flipY}),g=Math.max(a,i.width-h.left-h.right-l*2-o-s),_=m.map(e=>n.text.measure(e,a,t.fontFamily,p)),v=Math.min(g,Math.max(0,..._)),b=_.reduce((e,t)=>e+Math.max(1,Math.ceil(t/g)),0)*(a*(t.lineHeight??1.25)),x=f===`top`?i.y+l:f===`bottom`?i.y+i.height-l-b:i.y+i.height/2-b/2,S=o+s+v,C=u===`left`?i.x+l:u===`right`?i.x+i.width-l-S:i.x+i.width/2-S/2,w=x+d(a,t.lineHeight??1.25)-a*.3-o/2,T=at(t,n),E=Q({source:e.source,name:e.name,srcMap:n.srcMap,icons:n.icons,x:C,y:w,size:o,stroke:T});return R(`g`,{transform:z(t.rotation??0,i)},E)}function jt(e,t){let n=D(e),r=n.width/24,i=Q({source:e.source,name:e.name,srcMap:t.srcMap,icons:t.icons,x:n.x,y:n.y,size:n.width,height:n.height,stroke:t.theme.paint(t=>E(e.color,t),e.color),strokeWidth:r>0?ie(e.strokeWidth,n.width)/r:e.strokeWidth,weight:ae(e.strokeWidth,n.width),weightId:e.id});return R(`g`,{transform:V(e,n)},i)}function Mt(e,t){let n=he(e),r=R(`rect`,{x:n.frame.x,y:n.frame.y,width:n.frame.width,height:n.frame.height,fill:t.theme.paint(e=>M(`#ffffff`,e),`#ffffff`),stroke:ye,"stroke-width":1});for(let e of n.cellFills)r+=R(`rect`,{x:e.rect.x,y:e.rect.y,width:e.rect.width,height:e.rect.height,fill:t.theme.paint(t=>M(e.fill,t),e.fill)});for(let e of n.dividers)r+=R(`line`,{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,stroke:ye,"stroke-width":1});for(let n=0;n<e.cells.length;n+=1)for(let i=0;i<e.cells[n].length;i+=1){let a=e.cells[n][i];if(!a)continue;let o=Te(e,n,i),s=_e(e,n,i);r+=J({text:a,fontSize:s.fontSize,fontFamily:s.fontFamily,color:t.theme.paint(e=>E(s.color,e),s.color),x:o.x+8,y:o.y+o.height/2,align:`start`,vAlign:`center`,maxWidth:Math.max(1,o.width-16),lineHeight:u},t)}return r}function Nt(e,t){let n=e=>e===void 0?void 0:t.paint(t=>se(e,t),se(e));return e.kind===`rect`?R(`rect`,{x:e.x,y:e.y,width:e.width,height:Math.max(0,e.height),rx:e.rx,fill:n(e.fill)}):e.kind===`line`?R(`line`,{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,stroke:n(e.stroke),"stroke-width":e.width}):e.kind===`polyline`?R(`polyline`,{points:e.points.map(e=>`${e.x},${e.y}`).join(` `),fill:`none`,stroke:n(e.stroke),"stroke-width":e.width,"stroke-linecap":`round`,"stroke-linejoin":`round`}):e.kind===`path`?R(`path`,{d:e.d,fill:n(e.fill)??`none`,"fill-opacity":e.fillOpacity,stroke:n(e.stroke)??`none`,"stroke-width":e.width}):e.kind===`circle`?R(`circle`,{cx:e.cx,cy:e.cy,r:e.r,fill:n(e.fill),stroke:n(e.stroke),"stroke-width":e.width}):R(`text`,{x:e.x,y:e.y,"font-family":e.family,"font-size":e.size,fill:n(e.color),"text-anchor":e.anchor,"dominant-baseline":e.baseline,transform:e.rotate?`rotate(${e.rotate} ${e.x} ${e.y})`:void 0},L(e.text))}function Pt(e,t){let n=D(e),r=t.theme.paint(e=>M(I,e),I),i=R(`rect`,{x:n.x,y:n.y,width:n.width,height:n.height,rx:4,fill:r});for(let n of Se(e))n.testId!==`chart-empty`&&(i+=Nt(n,t.theme));return R(`g`,{transform:z(h(e),n)},i)}function Ft(e,t){let n=D(e),r=``;for(let n of ue(e,t.text))r+=Nt(n,t.theme);return R(`g`,{transform:z(h(e),n)},r)}var $=15,It=12,Lt=28,Rt=16;function zt(e,t,n,r){let i=e=>r.text.measure(e,n,P)<=t;if(i(e))return e;let a=Array.from(new Intl.Segmenter(void 0,{granularity:`grapheme`}).segment(e),e=>e.segment),o=0,s=a.length;for(;o<s;){let e=Math.ceil((o+s)/2);i(`${a.slice(0,e).join(``)}…`)?o=e:s=e-1}return o===0?``:`${a.slice(0,o).join(``).trimEnd()}…`}function Bt(e,t,n,r){let i=Lt/2,a={fill:`none`,stroke:r,"stroke-width":1.75,"stroke-linecap":`round`};if(e===`play`){let e=i*.42;return R(`circle`,{cx:t,cy:n,r:i,...a})+R(`path`,{d:`M${t-e*.7} ${n-e}L${t+e} ${n}L${t-e*.7} ${n+e}Z`,fill:r})}if(e===`code`){let e=i*.9,r=i*.6;return R(`path`,{d:`M${t-e*.45} ${n-r}L${t-e} ${n}L${t-e*.45} ${n+r}M${t+e*.45} ${n-r}L${t+e} ${n}L${t+e*.45} ${n+r}M${t+e*.15} ${n-r*1.15}L${t-e*.15} ${n+r*1.15}`,...a,"stroke-linejoin":`round`})}return R(`circle`,{cx:t,cy:n,r:i,...a})+R(`ellipse`,{cx:t,cy:n,rx:i*.45,ry:i,...a})+R(`path`,{d:`M${t-i} ${n}H${t+i}`,...a})}function Vt(e){let t=Me(e);return`${t.title} ${t.caption}`}function Ht(e,t){let n=D(e),r=Math.min(12,n.width/4,n.height/4),i=t.theme.paint(e=>E(j,e),j),a=R(`rect`,{x:n.x,y:n.y,width:n.width,height:n.height,rx:r,fill:`none`,stroke:i,"stroke-opacity":.2});if(e.poster){let i=`webclip-${e.id}`;return R(`clipPath`,{id:i},R(`rect`,{x:n.x,y:n.y,width:n.width,height:n.height,rx:r}))+R(`image`,{href:t.srcMap.get(e.poster)??e.poster,x:n.x,y:n.y,width:n.width,height:n.height,preserveAspectRatio:`xMidYMid slice`,"clip-path":`url(#${i})`})+a}let o=t.theme.paint(e=>M(I,e),I),s=R(`rect`,{x:n.x,y:n.y,width:n.width,height:n.height,rx:r,fill:o,stroke:i,"stroke-opacity":.2}),c=Me(e),l=Math.max(0,n.width-Rt*2),u=zt(c.title,l,$,t),d=zt(c.caption,l,It,t),f=n.height>=96,p=d!==``&&n.height>=52,m=f?38:0,h=p?19:0,g=m+$*1.25+h,_=n.x+n.width/2,v=n.y+(n.height-g)/2,y=s;f&&(y+=Bt(c.glyph,_,v+Lt/2,i),v+=m);let b=(e,t,n,r)=>R(`text`,{x:_,y:n+t*.95,"font-family":P,"font-size":t,fill:i,"fill-opacity":r,"text-anchor":`middle`},L(e));return u&&(y+=b(u,$,v)),v+=$*1.25,p&&(y+=b(d,It,v+4,.6)),y}function Ut(e,t){let n=Wt(e,t);return!n||e.type===`draw`||!(e.opacity<1)?n:R(`g`,{opacity:e.opacity},n)}function Wt(e,t){switch(e.type){case`rectangle`:return yt(e,t)+st(e,t)+(e.titleIcon?e.titleIcon.placement===`inside`?At(e.titleIcon,e,t):kt(e.titleIcon,e,t):``);case`sticky`:return bt(e)+xt(e,t);case`figure`:return St(e,t)+ft(e,t)+dt(e,t);case`arrow`:return Ct(e,t)+ht(e,re(e),t)+gt(e,t);case`line`:return Ct(e,t)+ht(e,le(e.points,e.labelAlong),t);case`draw`:return wt(e,t);case`polygon`:return Tt(e,t);case`image`:return Et(e,t);case`icon`:return jt(e,t)+_t(e,t);case`text`:return vt(e,t);case`table`:return Mt(e,t);case`chart`:return Pt(e,t);case`control`:return Ft(e,t);case`web`:return Ht(e,t);default:return f(e)}}async function Gt(e,t,n){let r=new Set;for(let n of e)n.type===`image`&&!n.src.startsWith(`data:`)&&r.add(n.src),n.type===`web`&&n.poster&&!n.poster.startsWith(`data:`)&&r.add(n.poster),n.type===`icon`&&F(n.source)&&r.add(t.assetIconUrl(n.source,n.name)),(n.type===`rectangle`||n.type===`figure`)&&n.titleIcon&&F(n.titleIcon.source)&&r.add(t.assetIconUrl(n.titleIcon.source,n.titleIcon.name));let i=new Map;return await Promise.all([...r].map(async e=>{let t=await n.inline(e);if(t){i.set(e,t);return}N(`asset-inline`,Error(`asset was not inlined`),e)})),i}function Kt(e){let t=e.filter(e=>e.type===`figure`),n=e.filter(e=>e.type!==`figure`);return[...t,...n]}function qt(e){return e?$e(e)?nt(e):tt(e):et()}async function Jt(e,t,n={}){await S();let r=n.padding??16,i=n.bounds??l(e,n.measurement);if(!i)return R(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:1,height:1});let a=i.x,o=i.y,s=i.x+i.width,c=i.y+i.height;if(!n.bounds)for(let n of e){let e=[];if(n.type===`figure`){let r=pt(n,t.text);r&&e.push(r)}else(n.type===`arrow`||n.type===`line`)&&e.push(...Ae(n,t.text));for(let t of e)a=Math.min(a,t.x),o=Math.min(o,t.y),s=Math.max(s,t.x+t.width),c=Math.max(c,t.y+t.height)}let u={x:a,y:o,width:s-a,height:c-o};await t.text.prepare(n.fonts);let[,d,f]=await Promise.all([t.icons.ensureCatalog().catch(e=>{N(`icon-catalog`,e)}),n.embedFonts===!1?Promise.resolve(``):t.fonts.embed(fe(e,Vt),n.fonts),Gt(e,t.icons,t.assets)]),p=u.x-r,m=u.y-r,h=Math.max(1,Math.round(u.width+r*2)),g=Math.max(1,Math.round(u.height+r*2)),_=qt(n.palette),v={text:t.text,icons:t.icons,srcMap:f,theme:_,measurement:n.measurement},y=Kt(e).map(e=>{let t=Ut(e,v),n=e.type===`rectangle`||e.type===`control`?O(e.link):e.type===`web`&&e.kind===`embed`?O(e.url):void 0;return n?R(`a`,{href:n,target:`_blank`,rel:`noopener`},t):t}).join(``),b=n.palette!==void 0&&$e(n.palette),x=n.background??(b?_.paint(e=>e.bg,`#ffffff`):`#ffffff`),C=x===`transparent`?``:R(`rect`,{x:0,y:0,width:h,height:g,fill:x}),w=[d,_.css()].filter(Boolean).join(`
|
|
6
|
+
`),T=w?R(`defs`,{},R(`style`,{type:`text/css`},`\n${w}\n`)):``,E=R(`g`,{transform:`translate(${-p} ${-m})`},y),D=n.width?{width:n.width,height:Math.max(1,Math.round(g*n.width/h))}:{width:h,height:g},ee=n.title?R(`title`,{},L(n.title)):``;return R(`svg`,{xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,class:_.rootClass,role:n.title?`img`:void 0,"aria-label":n.title,width:D.width,height:D.height,viewBox:`0 0 ${h} ${g}`},ee+T+C+E)}function Yt(e){return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`}export{Jt as n,Yt as t};
|
|
@@ -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{a as r,o as i}from"./editor-DAJETlQW.js";import{C as a,j as o,pn as s}from"./shapes-D5w8NTQQ.js";import{C as c,S as l,w as u,x as d}from"./slides-DDNzjFz9.js";import{r as f,t as p}from"./dom-PAoZruqo.js";import{t as m}from"./editable-target-BTLnvKNi.js";import{t as h}from"./use-key-held-DaUTxGze.js";import{t as g}from"./createReactComponent-C51FAx3B.js";import{a as _,r as v}from"./flow-start-ByhFxEeV.js";import{a as y,c as b,d as x,f as S,g as C,h as w,m as T,n as E,o as D,r as O,x as k,y as A}from"./tree-BWJsAqkV.js";import{t as j}from"./IconChevronLeft-D7e7QC0h.js";import{t as M}from"./IconChevronRight-csfMBSUs.js";import{t as N}from"./IconFocusCentered-Cn8rbfRI.js";import{t as P}from"./IconLink-VS5p9Ytk.js";import{t as F}from"./IconPencil-D_pQsAyv.js";import{t as I}from"./IconPlus-D4tAoi-A.js";import{t as L}from"./IconX-KrRqxr2j.js";import{t as R}from"./IconPlayerPlayFilled-DVAWmYt7.js";import{n as z}from"./core-C1TxysMz.js";import{r as ee,t as B}from"./chrome-layout-D5dql-y4.js";import{c as V,i as H,l as U,n as W,o as te,s as G,t as ne}from"./flows-CGl4r-xb.js";import{a as K,i as q,n as re,o as ie,r as ae,t as oe}from"./flow-stage-CSTrNMZF.js";var se=g(`outline`,`rotate`,`Rotate`,[[`path`,{d:`M19.95 11a8 8 0 1 0 -.5 4m.5 5v-5h-5`,key:`svg-0`}]]),ce=g(`filled`,`player-pause-filled`,`PlayerPauseFilled`,[[`path`,{d:`M9 4h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h2a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2z`,key:`svg-0`}],[`path`,{d:`M17 4h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h2a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2z`,key:`svg-1`}]]),J=e(t(),1),le=6;function ue(e){let t=e instanceof Element?e:null;return!!(t?.closest(`[data-canvas-root]`)&&!t.closest(`[data-overlay]`))}function de(e){let t=(0,J.useRef)(e);t.current=e,(0,J.useEffect)(()=>{let e=null,n=new Set,r=t=>{n.add(t.pointerId),e=n.size===1&&t.button===0&&ue(t.target)?{id:t.pointerId,x:t.clientX,y:t.clientY}:null},i=r=>{n.delete(r.pointerId);let i=e;!i||i.id!==r.pointerId||(e=null,Math.hypot(r.clientX-i.x,r.clientY-i.y)<=le&&t.current(r))},a=t=>{n.delete(t.pointerId),e=null};return window.addEventListener(`pointerdown`,r,!0),window.addEventListener(`pointerup`,i,!0),window.addEventListener(`pointercancel`,a,!0),()=>{window.removeEventListener(`pointerdown`,r,!0),window.removeEventListener(`pointerup`,i,!0),window.removeEventListener(`pointercancel`,a,!0)}},[])}var Y=n(),X=10,Z=28,fe=.5,pe=4,me=24;function he(e){let{frame:t,flow:n,targets:a,viewport:s}=e,l=r(),f=i(e=>e.hoveredId),p=i(e=>e.flowEdit)??{},m=ee()===`docked`,h=n.steps.length;(0,J.useEffect)(()=>{let{store:e,viewportAnimation:n}=l,r=e.getState(),i=document.querySelector(`[data-canvas-root]`),a={width:(i?.clientWidth??window.innerWidth)-(m?B(`flow`):0),height:i?.clientHeight??window.innerHeight},s=o(t),c=u({x:s.x,y:s.y-Z},r.viewport),f=u({x:s.x+s.width,y:s.y+s.height},r.viewport),p=c.x>=0&&c.y>=0&&f.x<=a.width&&f.y<=a.height,h=f.x-c.x>=a.width*fe||f.y-c.y>=a.height*fe;p&&h||n.animate(r.viewport,d(s,a,64),r.setViewport)},[t.id,l,m]);let g=(0,J.useRef)(h);g.current=h,(0,J.useEffect)(()=>{let e=e=>{if(e.button!==0)return;let r=e.target instanceof Element?e.target:null;if(!r?.closest(`[data-canvas-root]`)||r.closest(`[data-overlay]`))return;let i=r.closest(`[data-shape-id]`)?.getAttribute(`data-shape-id`)??r.closest(`[data-icon-label]`)?.getAttribute(`data-icon-label`),a=l.store.getState(),o=a.shapes.find(e=>e.id===t.id);if(!i||o?.type!==`figure`)return;let s=z(a.shapes,o).find(e=>e.id===i);if(!s)return;e.preventDefault(),e.stopPropagation(),ge();let c=w({selected:a.flowEdit?.picking},g.current);if(c!==null){x(l,t.id,n.id,c,s);return}if(a.flowEdit?.picking!=null&&a.patchFlowEdit({picking:null}),e.shiftKey){b(l,t.id,n.id,s);return}D(l,t.id,n.id,s)};return window.addEventListener(`pointerdown`,e,!0),()=>window.removeEventListener(`pointerdown`,e,!0)},[l,t.id,n.id]),de(e=>{let r=l.store.getState(),i=r.shapes.find(e=>e.id===t.id),a=document.querySelector(`[data-canvas-root]`)?.getBoundingClientRect();if(!i||!a)return;let s=c({x:e.clientX-a.left,y:e.clientY-a.top},r.viewport),u=o(i);s.x>=u.x-X&&s.x<=u.x+u.width+X&&s.y>=u.y-Z&&s.y<=u.y+u.height+X||S(l,t.id,n.id)});let[_,v]=(0,J.useState)(!1);(0,J.useEffect)(()=>{let e=e=>v(e.shiftKey);return window.addEventListener(`keydown`,e),window.addEventListener(`keyup`,e),()=>{window.removeEventListener(`keydown`,e),window.removeEventListener(`keyup`,e)}},[]);let y=new Map(a.map(e=>[e.id,e])),E=f?y.get(f):void 0,O=C(p,h),k=w(p,h),A=w({selected:p.picking},h),j=T(p,h),M=w({selected:p.hovered},h),N=W(t.flows??[],n.id),P=N?.flow.steps[N.index],F=n.steps[O-1]?.target,I=new Map(a.map(e=>[e.id,H(a,e)])),L=E&&(A!==null||E.id!==F||_)?E:null,R=L?{id:L.id,number:_e(A,_?j:null,O)}:null,U=[...new Set([M,k])].flatMap(e=>e===null?[]:V(n.steps[e]));return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(ye,{frame:t,viewport:s}),P&&V(P).flatMap(e=>{let t=y.get(e);return t?[(0,Y.jsx)(Oe,{shape:t,viewport:s,hint:h===0},e)]:[]}),[...new Set(U)].flatMap(e=>{let t=y.get(e);return t?[(0,Y.jsx)(`div`,{"data-testid":`flow-step-ring`,className:`pointer-events-none absolute rounded-md ring-[1.5px] ring-[color-mix(in_srgb,var(--chrome-fg-900)_35%,transparent)]`,style:K(t,s,5)},e)]:[]}),L&&(0,Y.jsx)(`div`,{"data-testid":`flow-add-hint`,"aria-label":ve(A,_?j:null,O,h),className:`pointer-events-none absolute rounded-md ring-[1.5px] ring-[var(--canvas-selection)]`,style:K(L,s,5)}),(0,Y.jsx)(Se,{flow:n,byId:y,viewport:s,slot:O}),(0,Y.jsx)(Ce,{flow:n,targets:a,fork:P,viewport:s}),(0,Y.jsx)(Ee,{flow:n,byId:y,viewport:s,selected:k,names:I,ghost:R,onSelect:e=>l.store.getState().patchFlowEdit({selected:e}),onDrop:(e,r)=>x(l,t.id,n.id,e,r)}),(0,Y.jsx)(be,{picking:A,slot:O,count:h})]})}function ge(){let e=document.activeElement;e instanceof HTMLElement&&m(e)&&e.blur()}function _e(e,t,n){return e===null?t===null?n+1:t+1:e+1}function ve(e,t,n,r){return e===null?t===null?n<r?`Add as step ${n+1}`:`Add as step ${r+1}`:`Add to step ${t+1}`:`Step ${e+1} lights this`}function ye(e){let{frame:t,viewport:n}=e,r=o(t),i=u({x:r.x-X,y:r.y-Z},n),a=u({x:r.x+r.width+X,y:r.y+r.height+X},n);return(0,Y.jsx)(`div`,{"data-testid":`flow-edit-focus`,className:`pointer-events-none absolute rounded-lg ring-[1.5px] ring-[color-mix(in_srgb,var(--chrome-fg-900)_22%,transparent)]`,style:{left:i.x,top:i.y,width:Math.max(0,a.x-i.x),height:Math.max(0,a.y-i.y)}})}function be(e){let{picking:t,slot:n,count:r}=e;return t===null?n<r?(0,Y.jsx)(Q,{text:`Click a box for step ${n+1}`,escape:!0}):null:(0,Y.jsx)(Q,{text:`Click the box step ${t+1} should light`,escape:!0})}function Q(e){let{text:t,escape:n}=e;return(0,Y.jsxs)(`p`,{"data-testid":`flow-board-hint`,className:`pointer-events-none absolute bottom-6 left-1/2 z-30 flex -translate-x-1/2 items-center gap-1.5 whitespace-nowrap rounded-lg bg-[var(--chrome-accent)] px-2.5 py-1.5 text-[12px] text-white shadow-lg`,children:[t,n&&(0,Y.jsx)(`kbd`,{className:`rounded px-1 font-mono text-[10.5px] ring-1 ring-white/30`,children:`esc`})]})}function xe(e,t,n){for(let r of n.values()){if(r.type!==`arrow`)continue;let n=r.startBinding?.shapeId,i=r.endBinding?.shapeId;if(n===e.target&&i===t.target||n===t.target&&i===e.target)return r}return null}function Se(e){let{flow:t,byId:n,viewport:i,slot:a}=e,o=r(),c=t.steps.slice(1).flatMap((e,r)=>{let i=t.steps[r],a=xe(i,e,n);return a?[{arrow:a,slot:r+1}]:[]}),l=new Map;for(let{arrow:e}of c)l.set(e.id,(l.get(e.id)??0)+1);let d=new Map;return(0,Y.jsx)(Y.Fragment,{children:c.map(({arrow:e,slot:t})=>{let n=d.get(e.id)??0;d.set(e.id,n+1);let r=(n-((l.get(e.id)??1)-1)/2)*me,c=u(s(e),i),f=typeof e.label==`string`&&e.label.trim().length>0,p=t===a;return(0,Y.jsx)(`button`,{type:`button`,"data-overlay":!0,"data-testid":`flow-arrow-insert`,"aria-label":`Add a step between step ${t} and step ${t+1}`,title:`Add a step between ${t} and ${t+1}`,className:`absolute z-20 flex h-4 w-4 -translate-x-1/2 -translate-y-1/2 cursor-pointer items-center justify-center rounded-full ring-1 transition-colors ${p?`bg-[var(--chrome-fg-900)] text-[var(--canvas-bg)] ring-[var(--chrome-fg-900)]`:`bg-[var(--chrome-popup)] text-[var(--chrome-fg-600)] ring-[var(--chrome-input-hover)] hover:text-[var(--chrome-fg-900)]`}`,style:{left:c.x+r,top:c.y+(f?16:0)},onPointerDown:e=>e.stopPropagation(),onClick:()=>o.store.getState().patchFlowEdit({slot:t,picking:null}),children:(0,Y.jsx)(I,{size:9,stroke:2.5})},`${e.id}-${t}`)})})}function Ce(e){let{flow:t,targets:n,fork:i,viewport:a}=e,o=r(),s=[...y(n,t.steps,i).values()];return(0,Y.jsx)(Y.Fragment,{children:[...new Map(s.map(e=>[e.arrow.id,e])).values()].flatMap(e=>e.ends.map(t=>{let r=n.find(e=>e.id===t.shapeId);if(!r)return null;let i=H(n,r),s=u(t.point,a),c=u(we(r,t.point),a),l=Math.hypot(c.x-s.x,c.y-s.y),d=Math.atan2(c.y-s.y,c.x-s.x);return(0,Y.jsxs)(`span`,{children:[l>1&&(0,Y.jsx)(`span`,{"aria-hidden":!0,"data-testid":`flow-loose-gap`,className:`pointer-events-none absolute z-20 h-0 origin-left border-t-[1.5px] border-dashed border-[var(--flow-warn)]`,style:{left:s.x,top:s.y-.75,width:l,transform:`rotate(${d}rad)`}}),(0,Y.jsxs)(`button`,{type:`button`,"data-overlay":!0,"data-testid":`flow-loose-end`,"aria-label":`Attach the arrow to ${i}`,title:`This arrow isn't attached to ${i}, so the flow can't follow it`,className:`group/loose absolute z-20 flex h-4 w-4 -translate-x-1/2 -translate-y-1/2 cursor-pointer items-center justify-center outline-none`,style:{left:(s.x+c.x)/2,top:(s.y+c.y)/2},onPointerDown:e=>e.stopPropagation(),onClick:()=>O(o,e),children:[(0,Y.jsx)(`span`,{"aria-hidden":!0,className:`h-[9px] w-[9px] rounded-full bg-[var(--canvas-bg)] shadow-[inset_0_0_0_2px_var(--flow-warn)] transition-transform group-hover/loose:scale-125`}),(0,Y.jsxs)(`span`,{className:`pointer-events-none absolute left-1/2 top-[18px] flex h-[22px] -translate-x-1/2 items-center gap-1 whitespace-nowrap rounded-md bg-[var(--chrome-popup)] px-2 text-[11px] font-medium text-[var(--chrome-fg-800)] opacity-0 shadow-md ring-1 ring-[var(--chrome-ring)] transition-opacity group-hover/loose:opacity-100 group-focus-visible/loose:opacity-100`,children:[(0,Y.jsx)(P,{size:11,stroke:2}),`Attach`]})]})]},`${e.arrow.id}-${t.end}`)}))})}function we(e,t){let n=o(e);return{x:Math.min(Math.max(t.x,n.x),n.x+n.width),y:Math.min(Math.max(t.y,n.y),n.y+n.height)}}function Te(e,t,n){for(let r of document.elementsFromPoint(e,t)){let e=r.closest(`[data-shape-id]`)?.getAttribute(`data-shape-id`)??r.closest(`[data-icon-label]`)?.getAttribute(`data-icon-label`);if(e&&n.has(e))return e}return null}function Ee(e){let{flow:t,byId:n,viewport:r,selected:i,names:a,ghost:o,onSelect:s,onDrop:c}=e,[l,u]=(0,J.useState)(null),d=ie(t),f=q(t),p=new Set(n.keys()),m=(e,t)=>{if(e.button!==0)return;e.stopPropagation(),e.preventDefault(),ge();let n=e.currentTarget.closest(`[data-canvas-root]`)?.getBoundingClientRect(),r={left:n?.left??0,top:n?.top??0};e.currentTarget.setPointerCapture(e.pointerId),u({index:t,pointerId:e.pointerId,startX:e.clientX,startY:e.clientY,x:e.clientX-r.left,y:e.clientY-r.top,origin:r,dragging:!1,over:null})},h=e=>{if(!l||l.pointerId!==e.pointerId)return;let t=Math.hypot(e.clientX-l.startX,e.clientY-l.startY),n=l.dragging||t>pe;u({...l,x:e.clientX-l.origin.left,y:e.clientY-l.origin.top,dragging:n,over:n?Te(e.clientX,e.clientY,p):null})},g=e=>{if(!l||l.pointerId!==e.pointerId)return;if(u(null),!l.dragging){s(l.index);return}let r=l.over?n.get(l.over):void 0;r&&r.id!==t.steps[l.index]?.target&&c(l.index,r)},_=l?.over?n.get(l.over):void 0,v=_&&l&&_.id!==t.steps[l.index]?.target?_:null,y=new Map(d);return o&&!l&&!y.has(o.id)&&y.set(o.id,[]),(0,Y.jsxs)(Y.Fragment,{children:[v&&l&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{"data-testid":`flow-badge-drop`,className:`pointer-events-none absolute rounded-md bg-[color-mix(in_srgb,var(--canvas-selection)_6%,transparent)] ring-[1.5px] ring-[var(--canvas-selection)]`,style:K(v,r,5)}),(0,Y.jsx)(Q,{text:`Step ${l.index+1} moves to ${a.get(v.id)??`this box`}`})]}),[...y].map(([e,a])=>{let c=n.get(e);if(!c)return null;let d=ae(c,r);return(0,Y.jsxs)(`span`,{"data-overlay":!0,className:`absolute z-20 flex items-center gap-1 ${c.type===`arrow`?`-translate-x-1/2 -translate-y-[calc(100%+14px)]`:`-translate-x-full -translate-y-full`}`,style:{left:d.x-2,top:d.y-2},children:[a.map(e=>{let n=e-1,r=l?.dragging&&l.index===n,a=i===n;return(0,Y.jsx)(`button`,{type:`button`,"data-testid":`flow-step-badge`,"data-selected":a||void 0,"aria-label":`Step ${e}: ${t.steps[n]?.title??``}`,"aria-pressed":a,title:`Click to select · drag onto another box to change it`,className:`flex h-5 min-w-5 cursor-grab touch-none items-center justify-center rounded-full px-1 text-[11px] font-semibold tabular-nums transition-colors active:cursor-grabbing ${De(f.has(e),a)} ${r?`opacity-35`:``}`,onPointerDown:e=>m(e,n),onPointerMove:h,onPointerUp:g,onPointerCancel:()=>u(null),onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),s(n))},children:e},e)}),o?.id===e&&!l&&(0,Y.jsx)(`span`,{"aria-hidden":!0,"data-testid":`flow-add-ghost`,className:`pointer-events-none flex h-5 min-w-5 items-center justify-center rounded-full bg-[var(--canvas-bg)] px-1 text-[11px] font-semibold tabular-nums text-[var(--chrome-fg-500)] shadow-[inset_0_0_0_1.5px_var(--chrome-fg-400)]`,children:o.number})]},e)}),l?.dragging&&(0,Y.jsx)(`span`,{"aria-hidden":!0,"data-testid":`flow-badge-ghost`,className:`pointer-events-none absolute z-30 flex h-6 min-w-6 -translate-x-1/2 -translate-y-1/2 items-center justify-center rounded-full bg-[var(--flow-accent)] px-1.5 text-[12px] font-semibold tabular-nums text-white shadow-[0_6px_14px_rgba(0,0,0,0.25)]`,style:{left:l.x,top:l.y},children:l.index+1})]})}function De(e,t){return t?`text-white ${e?`bg-[var(--flow-fail)]`:`bg-[var(--flow-accent)]`}`:e?`bg-[var(--canvas-bg)] text-[var(--flow-fail)] shadow-[inset_0_0_0_1.5px_var(--flow-fail)] hover:bg-[color-mix(in_srgb,var(--flow-fail)_10%,var(--canvas-bg))]`:`bg-[var(--canvas-bg)] text-[var(--flow-accent)] shadow-[inset_0_0_0_1.5px_var(--flow-accent)] hover:bg-[color-mix(in_srgb,var(--flow-accent)_10%,var(--canvas-bg))]`}function Oe(e){let{shape:t,viewport:n,hint:r}=e,i=ae(t,n),a=K(t,n,4);return(0,Y.jsxs)(`span`,{className:`pointer-events-none`,children:[(0,Y.jsx)(`span`,{"data-testid":`flow-fork-marker`,className:`absolute z-20 flex h-5 w-5 -translate-x-full -translate-y-full items-center justify-center rounded-full bg-[var(--canvas-bg)] text-[var(--flow-accent)] shadow-[inset_0_0_0_1.5px_var(--flow-accent)]`,style:{left:i.x-2,top:i.y-2},children:(0,Y.jsx)(k,{size:11,stroke:2})}),r&&(0,Y.jsx)(`span`,{className:`absolute z-20 -translate-x-1/2 whitespace-nowrap rounded-md bg-[var(--chrome-accent)] px-2 py-1 text-[11px] text-white shadow-md`,style:{left:a.left+a.width/2,top:a.top+a.height+6},children:`Click where it goes next`})]})}var ke=2600,Ae=.55,je=1.1;function Me(e,t){let n=document.querySelector(`[data-canvas-root]`),r=n?.clientWidth??window.innerWidth,i=n?.clientHeight??window.innerHeight;return{width:Math.max(1,r-(e?B(t):0)),height:Math.max(1,i-Pe)}}var Ne={call:`Call`,async:`Fire and forget`,reply:`Reply`},Pe=150;function Fe(e){let{frame:t,flow:n,targets:s,step:c,viewport:u}=e,f=r(),{store:p,viewportAnimation:m}=f,g=i(e=>e.rightPanel),_=ee()===`docked`,y=n.steps.length,b=Math.min(Math.max(c,0),Math.max(y-1,0)),x=n.steps[b],S=(0,J.useMemo)(()=>new Map(s.map(e=>[e.id,e])),[s]),C=(0,J.useMemo)(()=>x?V(x).flatMap(e=>S.get(e)??[]):[],[x,S]),w=(0,J.useMemo)(()=>{let e=b>0?n.steps[b-1]:void 0;return e?V(e).flatMap(e=>S.get(e)??[]):[]},[n.steps,b,S]),T=i(e=>e.flowPlay?.trail),D=i(e=>e.viewMode),O=T?.[T.length-1],k=O?t.flows?.find(e=>e.id===O.flowId)?.name:void 0,[j,M]=(0,J.useState)(!1),[N,P]=(0,J.useState)(()=>d(o(t),Me(_,g),64).zoom<Ae),F=e=>{let r=Math.min(Math.max(e,0),y-1);p.getState().setFlowPlay({frameId:t.id,flowId:n.id,step:r,trail:T})},I=()=>{!O||!T||(M(!1),p.getState().setFlowPlay({frameId:t.id,flowId:O.flowId,step:O.step,trail:T.slice(0,-1)}))},L=(0,J.useRef)(I);L.current=I;let R=()=>{p.getState().setFlowPlay(null)},z=t.flows??[],B={tabs:E(z).filter(e=>e.steps.length>0).map(e=>({id:e.id,name:e.name})),active:Ie(z,n.id,T),onTab:e=>{M(!1),p.getState().setFlowPlay({frameId:t.id,flowId:e,step:0})},onEdit:D?null:()=>A(f,t.id,n.id),onNew:D?null:()=>{p.getState().setFlowPlay(null),v(f,t.id)}},H=(0,J.useRef)(F);H.current=F;let U=(0,J.useRef)(R);U.current=R;let W=(0,J.useRef)(b);W.current=b;let G=()=>Me(_,g),K=(0,J.useRef)(G);if(K.current=G,(0,J.useEffect)(()=>{let e=p.getState();e.setSelectedIds(new Set),m.animate(e.viewport,d(o(t),K.current(),64),e.setViewport)},[t.id,p,m]),(0,J.useEffect)(()=>{let e=a(N?[...C,...w]:C);if(!e)return;let t=p.getState();if(N){let n=d(e,K.current(),120),r=Math.min(n.zoom,je),i=K.current();m.animate(t.viewport,{zoom:r,x:i.width/2-(e.x+e.width/2)*r,y:i.height/2-(e.y+e.height/2)*r},t.setViewport);return}let n=l(e,t.viewport,K.current(),96);n&&m.animate(t.viewport,n,t.setViewport)},[C,w,N,p,m]),(0,J.useEffect)(()=>{let e=e=>{if((e.target instanceof Element?e.target:null)?.closest(`input, textarea, select, [contenteditable=true], [role=menu]`)||(e.key===` `||e.key===`Enter`)&&h(e.target))return;let t=W.current;if(e.key===`ArrowRight`||e.key===` `||e.key===`Enter`)e.preventDefault(),H.current(t+1);else if(e.key===`ArrowLeft`||e.key===`Backspace`){if(e.preventDefault(),t===0&&L.current){L.current();return}H.current(t-1)}else e.key===`Home`?(e.preventDefault(),H.current(0)):e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),U.current())};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},[]),de(()=>U.current()),(0,J.useEffect)(()=>{let e=e=>{e.pointerType===`touch`||e.button!==0||!ue(e.target)||(e.preventDefault(),e.stopPropagation())};return window.addEventListener(`pointerdown`,e,!0),()=>window.removeEventListener(`pointerdown`,e,!0)},[]),(0,J.useEffect)(()=>{if(!j)return;if(b>=y-1||(x?.branches?.length??0)>0){M(!1);return}let e=window.setTimeout(()=>H.current(W.current+1),ke);return()=>window.clearTimeout(e)},[j,b,y,x]),!x)return(0,Y.jsx)(Le,{flow:n,index:0,kind:`call`,autoplay:!1,onAutoplay:()=>{},onGo:()=>{},onStop:R,branches:[],onBranch:()=>{},returnName:k??null,onBack:I,follow:N,onFollow:P,switcher:B});let q=ne(t.flows??[],n.id);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(oe,{frameId:t.id,flow:n,targets:s,index:b,viewport:u,lead:q}),(0,Y.jsx)(Le,{flow:n,index:b,kind:te(s,[...q,...n.steps],q.length+b),autoplay:j,onAutoplay:M,onGo:F,onStop:R,branches:(x.branches??[]).flatMap(e=>{let r=t.flows?.find(t=>t.id===e&&t.id!==n.id);return r&&r.steps.length>0?[{id:r.id,name:r.name}]:[]}),onBranch:e=>{M(!1),p.getState().setFlowPlay({frameId:t.id,flowId:e,step:0,trail:[...T??[],{flowId:n.id,step:b}]})},returnName:k??null,onBack:I,follow:N,onFollow:P,switcher:B})]})}function Ie(e,t,n){let r=n?.[0]?.flowId;if(r)return r;let i=t,a=new Set;for(;!a.has(i);){a.add(i);let t=W(e,i);if(!t)return i;i=t.flow.id}return i}function Le(e){let{flow:t,index:n,kind:r,autoplay:i,onAutoplay:a,onGo:o,onStop:s,branches:c,onBranch:l}=e,{returnName:u,onBack:d,follow:f,onFollow:p,switcher:m}=e,h=t.steps.length,g=t.steps[n],v=n>=h-1,y=`flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-lg text-[var(--chrome-fg-600)] transition-colors hover:bg-[var(--chrome-hover)] hover:text-[var(--chrome-fg-900)] disabled:pointer-events-none disabled:opacity-35`;return(0,Y.jsxs)(`div`,{"data-overlay":!0,"data-testid":`flow-player`,className:`absolute bottom-6 left-1/2 z-30 flex w-[min(600px,calc(100%-32px))] -translate-x-1/2 flex-col gap-2 rounded-2xl bg-[var(--chrome-popup)] p-3 shadow-[0_8px_32px_rgba(0,0,0,0.16)] ring-1 ring-[var(--chrome-ring)]`,onPointerDown:e=>e.stopPropagation(),onDoubleClick:e=>e.stopPropagation(),children:[(0,Y.jsx)(ze,{switcher:m}),(0,Y.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,Y.jsx)(`span`,{className:`mt-0.5 flex h-6 min-w-6 shrink-0 items-center justify-center rounded-full px-1.5 text-[12px] font-medium tabular-nums text-white ${g?.fails?`bg-[var(--flow-fail)]`:`bg-[var(--flow-accent)]`}`,children:h===0?`–`:n+1}),(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(`p`,{"data-testid":`flow-step-title`,className:`text-[14px] font-medium leading-snug text-[var(--chrome-fg-900)]`,children:g?.title||(h===0?`This flow has no steps yet`:`Untitled step`)}),g?.text&&(0,Y.jsx)(`p`,{"data-testid":`flow-step-text`,className:`mt-0.5 text-[13px] leading-relaxed text-[var(--chrome-fg-600)]`,children:g.text}),g&&(r!==`call`||g.payload||g.fails)&&(0,Y.jsxs)(`p`,{className:`mt-1 flex flex-wrap items-center gap-1.5 text-[11px] text-[var(--chrome-fg-500)]`,children:[g.fails&&(0,Y.jsx)(`span`,{"data-testid":`flow-step-fails`,className:`rounded-full bg-[color-mix(in_srgb,var(--flow-fail)_14%,transparent)] px-2 py-0.5 font-medium text-[var(--flow-fail)]`,children:`Fails here`}),r!==`call`&&(0,Y.jsx)(`span`,{"data-testid":`flow-step-kind`,className:`rounded-full bg-[var(--chrome-rest)] px-2 py-0.5`,children:Ne[r]}),g.payload&&(0,Y.jsxs)(`span`,{className:`rounded-full bg-[var(--chrome-rest)] px-2 py-0.5`,children:[`Carries `,g.payload]})]}),c.length>0&&(0,Y.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-1.5`,"data-testid":`flow-branches`,children:[(0,Y.jsx)(`span`,{className:`text-[12px] text-[var(--chrome-fg-500)]`,children:`Or follow:`}),c.map(e=>(0,Y.jsxs)(`button`,{type:`button`,"data-testid":`flow-branch`,className:`flex cursor-pointer items-center gap-1 rounded-full px-2.5 py-1 text-[12px] font-medium text-[var(--chrome-fg-900)] bg-[var(--chrome-rest)] transition-colors hover:bg-[var(--chrome-hover)]`,onClick:()=>l(e.id),children:[(0,Y.jsx)(k,{size:12,stroke:2}),e.name]},e.id))]})]}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Stop playing`,className:y,onClick:s,children:(0,Y.jsx)(L,{size:16,stroke:1.75})})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-1 truncate text-[12px] text-[var(--chrome-fg-500)]`,children:[u&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`button`,{type:`button`,"data-testid":`flow-back`,title:`Back to where this path was taken (←)`,className:`flex cursor-pointer items-center gap-0.5 rounded px-1 font-medium text-[var(--chrome-fg-900)] hover:bg-[var(--chrome-hover)]`,onClick:d,children:[(0,Y.jsx)(_,{size:13,stroke:2}),u]}),(0,Y.jsx)(`span`,{"aria-hidden":!0,children:`/`})]}),(u||!m.tabs.some(e=>e.id===t.id)||!Re(m))&&(0,Y.jsx)(`span`,{className:`truncate`,children:t.name})]}),(0,Y.jsx)(`div`,{className:`flex items-center gap-1`,"data-testid":`flow-dots`,children:t.steps.map((e,t)=>(0,Y.jsx)(`button`,{type:`button`,"aria-label":e.branches?.length?`Step ${t+1}, where another path starts`:`Step ${t+1}`,"data-fork":e.branches?.length?!0:void 0,onClick:()=>o(t),className:`relative h-1.5 cursor-pointer rounded-full transition-all ${t===n?`w-4 bg-[var(--flow-accent)]`:`w-1.5 bg-[var(--chrome-fg-300)] hover:bg-[var(--chrome-fg-500)]`}`,children:e.branches?.length?(0,Y.jsx)(k,{size:9,stroke:2.5,"aria-hidden":!0,className:`absolute left-1/2 top-2 -translate-x-1/2 text-[var(--chrome-fg-400)]`}):null},`${e.target}-${t}`))}),(0,Y.jsx)(`span`,{"data-testid":`flow-position`,className:`w-10 text-right text-[12px] tabular-nums text-[var(--chrome-fg-500)]`,children:h===0?`0 / 0`:`${n+1} / ${h}`}),(0,Y.jsxs)(`div`,{className:`flex items-center`,children:[(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Previous step`,"data-testid":`flow-prev`,className:y,disabled:n===0&&!u,onClick:()=>n===0?d():o(n-1),children:(0,Y.jsx)(j,{size:16,stroke:2})}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":f?`Show the whole diagram`:`Follow each step`,title:f?`Show the whole diagram`:`Follow each step`,"aria-pressed":f,"data-testid":`flow-follow`,className:`${y} ${f?`bg-[var(--chrome-active)] text-[var(--chrome-fg-900)]`:``}`,onClick:()=>p(!f),children:(0,Y.jsx)(N,{size:16,stroke:1.75})}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":i?`Pause`:`Play automatically`,"data-testid":`flow-autoplay`,className:y,disabled:h<2,onClick:()=>{!i&&v&&o(0),a(!i)},children:i?(0,Y.jsx)(ce,{size:14}):(0,Y.jsx)(R,{size:14})}),v&&h>1?(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Play again`,"data-testid":`flow-replay`,className:y,onClick:()=>o(0),children:(0,Y.jsx)(se,{size:15,stroke:1.75})}):(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Next step`,"data-testid":`flow-next`,className:y,disabled:v,onClick:()=>o(n+1),children:(0,Y.jsx)(M,{size:16,stroke:2})})]})]})]})}function Re(e){return e.tabs.length>1||e.onEdit!==null}function ze(e){let{tabs:t,active:n,onTab:r,onEdit:i,onNew:a}=e.switcher;if(!Re(e.switcher))return null;let o=`shrink-0 cursor-pointer rounded-md px-2 py-1 text-[12.5px] transition-colors hover:bg-[var(--chrome-hover)]`;return(0,Y.jsxs)(`div`,{className:`-mx-1 -mt-1 flex items-center gap-1 border-b border-[var(--chrome-divider)] pb-1.5`,children:[(0,Y.jsxs)(`div`,{role:`group`,"aria-label":`Flows`,"data-testid":`flow-tabs`,className:`flex min-w-0 flex-1 items-center gap-0.5 overflow-x-auto`,children:[t.map(e=>(0,Y.jsx)(`button`,{type:`button`,"aria-pressed":e.id===n,"data-testid":`flow-tab`,className:`${o} ${e.id===n?`bg-[var(--chrome-active)] font-medium text-[var(--chrome-fg-900)]`:`text-[var(--chrome-fg-500)]`}`,onClick:()=>r(e.id),children:e.name},e.id)),a&&(0,Y.jsx)(`button`,{type:`button`,"aria-label":`New flow`,title:`New flow`,"data-testid":`flow-tab-new`,className:`${o} flex items-center text-[var(--chrome-fg-400)]`,onClick:a,children:(0,Y.jsx)(I,{size:14,stroke:2})})]}),i&&(0,Y.jsxs)(`button`,{type:`button`,"data-testid":`flow-player-edit`,className:`flex shrink-0 cursor-pointer items-center gap-1 rounded-md px-2 py-1 text-[12.5px] font-medium text-[var(--chrome-fg-700)] transition-colors hover:bg-[var(--chrome-hover)]`,onClick:i,children:[(0,Y.jsx)(F,{size:13,stroke:1.75}),`Edit`]})]})}var $=10,Be=28,Ve=.28;function He(e){let{viewport:t}=e,{store:n}=r(),a=i(e=>e.shapes),o=i(e=>e.flowEdit),s=i(e=>e.flowPlay),c=i(e=>e.flowPreview),l=s??o??c,u=(0,J.useMemo)(()=>{let e=l?a.find(e=>e.id===l.frameId):void 0;return e?.type===`figure`?e:null},[a,l]),d=(0,J.useMemo)(()=>u?z(a,u):[],[a,u]),f=u?.flows?.find(e=>e.id===l?.flowId),p=(0,J.useMemo)(()=>f?G(f,d):null,[f,d]);return(0,J.useEffect)(()=>{if(!l||u&&f)return;let e=n.getState();e.setFlowPlay(null),e.setFlowEdit(null),e.setFlowPreview(null)},[l,u,f,n]),!l||!u||!p?null:s?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Ue,{frame:u,viewport:t}),(0,Y.jsx)(Fe,{frame:u,flow:p,targets:d,step:s.step,viewport:t})]}):o?(0,Y.jsx)(he,{frame:u,flow:p,targets:d,viewport:t}):(0,Y.jsx)(We,{flow:p,targets:d,viewport:t})}function Ue(e){let{frame:t,viewport:n}=e,r=o(t),i=u({x:r.x-$,y:r.y-Be},n),a=u({x:r.x+r.width+$,y:r.y+r.height+$},n);return(0,Y.jsx)(`div`,{"data-testid":`flow-spotlight`,className:`pointer-events-none absolute rounded-lg`,style:{left:i.x,top:i.y,width:Math.max(0,a.x-i.x),height:Math.max(0,a.y-i.y),boxShadow:`0 0 0 9999px var(--canvas-scrim)`}})}function We(e){let{flow:t,targets:n,viewport:r}=e,i=(0,J.useMemo)(()=>new Map(n.map(e=>[e.id,e])),[n]);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`style`,{"data-testid":`flow-preview`,children:(0,J.useMemo)(()=>{let e=new Set(t.steps.flatMap(V));t.steps.forEach((r,i)=>{let a=t.steps[i-1];if(a)for(let t of V(r))for(let r of V(a)){let i=U(n,r,t);if(i?.kind===`arrows`){i.hops.forEach(t=>e.add(t.arrow.id)),i.through.forEach(t=>e.add(t));break}}});let r=n.filter(t=>!e.has(t.id)&&t.type!==`figure`).flatMap(e=>[f(e.id),p(`data-icon-label`,e.id)]);return[`[data-canvas-root] :is([data-shape-id],[data-icon-label]){transition:opacity 180ms ease}`,r.length>0?`${r.join(`,`)}{opacity:${Ve}!important}`:``].join(``)},[t.steps,n])}),(0,Y.jsx)(re,{numbers:ie(t),byId:i,viewport:r,current:null,failing:q(t)})]})}export{He as FlowLayer};
|
|
@@ -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{t as r}from"./tooltip-CKCG8vcp.js";import{i}from"./useTriggerFocusGuards-Mibi8yYw.js";import{C as a,c as o,d as s,f as c,i as l,m as u,o as d,p as f,r as p,t as m,w as h}from"./menu-4xb5HtA1.js";import{i as g}from"./config-D8b1QyEk.js";import{a as _,o as v}from"./editor-DAJETlQW.js";import{k as y}from"./slides-DDNzjFz9.js";import{t as ee}from"./editable-target-BTLnvKNi.js";import{t as b}from"./createReactComponent-C51FAx3B.js";import{t as x}from"./IconAlertTriangle-B33xznYN.js";import{a as S,n as C,r as w}from"./flow-start-ByhFxEeV.js";import{n as T,r as E,t as D}from"./IconTrash-C8w6ThWx.js";import{_ as O,a as k,b as A,f as te,g as ne,h as j,i as re,l as ie,m as ae,p as oe,r as se,s as ce,t as M,u as le,v as N,x as P,y as F}from"./tree-BWJsAqkV.js";import{n as I}from"./useValueChanged-SqLfIDi5.js";import{t as ue}from"./IconChevronLeft-D7e7QC0h.js";import{t as L}from"./IconChevronRight-csfMBSUs.js";import{t as de}from"./IconCornerDownRight-DDiBMO4O.js";import{t as fe}from"./IconLink-VS5p9Ytk.js";import{t as R}from"./IconPencil-D_pQsAyv.js";import{t as z}from"./IconPlus-D4tAoi-A.js";import{n as B,r as V,t as H}from"./MenuSubmenuTrigger-BFlIkXYg.js";import{n as pe,r as me,t as he}from"./use-drag-reorder-ye8-kpyR.js";import{t as U}from"./IconSparkles-CnCp3BCQ.js";import{t as W}from"./IconX-KrRqxr2j.js";import{t as ge}from"./IconPlayerPlayFilled-DVAWmYt7.js";import{n as _e,r as ve,t as G}from"./core-C1TxysMz.js";import{n as ye}from"./surface-Dke4SWpE.js";import{a as be}from"./chrome-C2RCq3SI.js";import"./chrome-layout-D5dql-y4.js";import{t as xe}from"./panel-shell-COqmheb-.js";import{i as Se,n as Ce,s as we}from"./flows-CGl4r-xb.js";var Te=b(`outline`,`arrows-exchange`,`ArrowsExchange`,[[`path`,{d:`M7 10h14l-4 -4`,key:`svg-0`}],[`path`,{d:`M17 14h-14l4 4`,key:`svg-1`}]]),K=b(`outline`,`bolt`,`Bolt`,[[`path`,{d:`M13 3l0 7l6 0l-8 11l0 -7l-6 0l8 -11`,key:`svg-0`}]]),q=b(`outline`,`package`,`Package`,[[`path`,{d:`M12 3l8 4.5l0 9l-8 4.5l-8 -4.5l0 -9l8 -4.5`,key:`svg-0`}],[`path`,{d:`M12 12l8 -4.5`,key:`svg-1`}],[`path`,{d:`M12 12l0 9`,key:`svg-2`}],[`path`,{d:`M12 12l-8 -4.5`,key:`svg-3`}],[`path`,{d:`M16 5.25l-8 4.5`,key:`svg-4`}]]),Ee=b(`outline`,`square-plus`,`SquarePlus`,[[`path`,{d:`M9 12h6`,key:`svg-0`}],[`path`,{d:`M12 9v6`,key:`svg-1`}],[`path`,{d:`M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14`,key:`svg-2`}]]),J=e(t(),1),De=`w-full min-w-0 rounded-md bg-transparent px-1.5 py-1 text-[12px] text-[var(--chrome-fg-800)] outline-none ring-1 ring-transparent transition-shadow placeholder:text-[var(--chrome-fg-300)] hover:ring-[var(--chrome-ring)] focus:bg-[var(--chrome-rest)] focus:ring-[var(--chrome-fg-300)]`,Oe=`flex h-6 w-6 shrink-0 cursor-pointer items-center justify-center rounded-md text-[var(--chrome-fg-400)] transition-colors hover:bg-[var(--chrome-hover)] hover:text-[var(--chrome-fg-800)] disabled:pointer-events-none disabled:opacity-40`,ke=`flex h-9 w-full cursor-pointer items-center justify-center gap-2 rounded-lg bg-[var(--chrome-accent)] text-[13px] text-white transition-colors hover:bg-[var(--chrome-accent-hover)] disabled:pointer-events-none disabled:bg-[var(--chrome-hover)] disabled:text-[var(--chrome-fg-400)]`,Ae=`inline-flex h-[18px] min-w-[18px] items-center justify-center rounded bg-[var(--chrome-popup)] px-1 font-mono text-[10.5px] text-[var(--chrome-fg-600)] shadow-[inset_0_0_0_1px_var(--chrome-input),0_1px_0_var(--chrome-input)]`,je=`hover:bg-[color-mix(in_srgb,var(--chrome-fg-900)_3%,transparent)]`,Me=`bg-[color-mix(in_srgb,var(--chrome-fg-900)_5%,transparent)]`,Ne=`flex cursor-pointer items-center justify-center gap-1.5 rounded-lg px-3 text-[13px] text-[var(--chrome-fg-700)] ring-1 ring-[var(--chrome-ring)] transition-colors hover:bg-[var(--chrome-rest)] hover:text-[var(--chrome-fg-900)] disabled:pointer-events-none disabled:opacity-50`,Y=n(),Pe=2e3,Fe=`mb-1.5 flex gap-2 rounded-lg bg-[color-mix(in_srgb,var(--chrome-fg-900)_4%,transparent)] py-2 pl-2.5 pr-2 text-[12px] leading-[1.45] text-[var(--chrome-fg-600)]`;function Ie(e){let{count:t,attached:n,onAttach:r,onSettled:i}=e,a=(0,J.useRef)(i);a.current=i;let o=t===0&&n;return(0,J.useEffect)(()=>{if(!o)return;let e=window.setTimeout(()=>a.current(),Pe);return()=>window.clearTimeout(e)},[o]),o?(0,Y.jsxs)(`div`,{"data-testid":`flow-loose-attached`,role:`status`,className:`${Fe} items-center`,children:[(0,Y.jsx)(I,{size:14,stroke:2,className:`shrink-0 text-[var(--chrome-fg-500)]`}),`Arrow attached`]}):t===0?null:(0,Y.jsx)(Le,{count:t,onAttach:r})}function Le(e){let{count:t,onAttach:n}=e,r=(0,J.useRef)(null);(0,J.useEffect)(()=>{let e=r.current;!e||window.matchMedia(`(prefers-reduced-motion: reduce)`).matches||e.animate([{opacity:0,transform:`translateY(-4px)`},{opacity:1,transform:`none`}],{duration:180,easing:`ease-out`})},[]);let i=t===1;return(0,Y.jsxs)(`div`,{ref:r,role:`status`,"data-testid":`flow-loose-banner`,className:`${Fe} items-start`,children:[(0,Y.jsx)(x,{size:14,stroke:2,className:`mt-px shrink-0 text-[var(--flow-warn)]`}),(0,Y.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(`b`,{className:`block font-medium text-[var(--chrome-fg-900)]`,children:i?`1 arrow isn't attached`:`${t} arrows aren't attached`}),`The hand-off can't follow `,i?`it`:`them`,`.`]}),(0,Y.jsx)(`button`,{type:`button`,"data-testid":`flow-attach-all`,className:`${Ne} h-7 shrink-0 px-2.5 text-[12px]`,onClick:n,children:i?`Attach`:`Attach all`})]})}var Re=`w-[1.5px] bg-[color-mix(in_srgb,var(--chrome-fg-900)_14%,transparent)]`,ze=`w-[1.5px] bg-[var(--flow-accent)]`,Be=`w-[1.5px] bg-[linear-gradient(color-mix(in_srgb,var(--chrome-fg-900)_14%,transparent),transparent)]`,X=`relative z-[1] flex h-[22px] min-w-[22px] shrink-0 items-center justify-center rounded-full px-1 text-[11px] font-semibold tabular-nums`,Ve=`shadow-[inset_0_0_0_1.5px_color-mix(in_srgb,var(--chrome-fg-900)_22%,transparent)]`,He=`${X} bg-[var(--chrome-popup)] text-[var(--chrome-fg-400)] shadow-[inset_0_0_0_1.5px_color-mix(in_srgb,var(--chrome-fg-900)_14%,transparent)]`,Ue=`${X} bg-[var(--chrome-popup)] text-[var(--chrome-fg-900)] shadow-[inset_0_0_0_1.5px_var(--chrome-fg-900)]`;function We(e){return e.picking?Ue:e.current?`${X} bg-[var(--flow-accent)] text-white`:e.selected?`${X} text-white ${e.fails?`bg-[var(--flow-fail)]`:`bg-[var(--chrome-accent)]`}`:e.fails?`${X} bg-[var(--chrome-popup)] text-[var(--flow-fail)] shadow-[inset_0_0_0_1.5px_var(--flow-fail)]`:`${X} bg-[var(--chrome-popup)] text-[var(--chrome-fg-700)] ${Ve} hover:shadow-[inset_0_0_0_1.5px_var(--chrome-fg-500)]`}function Ge(e){let{node:t,first:n,end:r,litAbove:i,litBelow:a}=e;return(0,Y.jsxs)(`span`,{className:`flex w-[22px] shrink-0 flex-col items-center`,children:[(0,Y.jsx)(`span`,{className:`h-2 shrink-0 ${n?`w-[1.5px]`:i?ze:Re}`}),t,(0,Y.jsx)(`span`,{className:`min-h-2 flex-1 ${r?Be:a?ze:Re}`})]})}var Ke=[{kind:`call`,label:`Call`,hint:`Waits for an answer`,pickable:!0},{kind:`async`,label:`Fire and forget`,hint:`Doesn't wait for an answer`,pickable:!0},{kind:`reply`,label:`Reply`,hint:`Answers an earlier step`,pickable:!1}],qe=e=>Ke.find(t=>t.kind===e)?.label,Je=`${De} -mx-1.5 px-1.5 hover:ring-transparent focus:bg-transparent focus:ring-transparent`;function Ye(e){let{step:t,index:n,count:r,current:a,selected:o,picking:s,names:c,otherFlows:l,loose:u}=e,{rail:f,actions:p,grip:m,rowRef:h,rowStyle:g}=e,{onPlay:_,onChange:v,onMove:y,onRemove:ee,onNewPath:b}=p,[S,C]=(0,J.useState)(!1),[w,T]=(0,J.useState)(!1),E=(0,J.useRef)(null),D=t.kind??`call`,O=t.also??[],k=t.branches??[],A=new Map(l.map(e=>[e.id,e.name])),te=o||w||S,ne=te||!!t.text,j=S||!!t.payload,re=O.length>0||D!==`call`||j||k.length>0;return(0,Y.jsxs)(`li`,{ref:h,"data-testid":`flow-step-${n}`,"data-current":a||void 0,"data-selected":o||void 0,"aria-current":o?`step`:void 0,className:`group relative flex gap-2.5 rounded-lg pl-1 pr-1.5 transition-colors ${o||s?Me:je}`,style:g,onPointerDown:e=>{e.target.closest(`[data-step-insert]`)||p.onSelect()},onFocusCapture:e=>{e.target.closest(`[data-step-insert]`)||p.onSelect()},onPointerEnter:()=>p.onHover(!0),onPointerLeave:()=>p.onHover(!1),children:[(0,Y.jsx)(Xe,{index:n,onInsert:p.onInsertBefore}),(0,Y.jsx)(Ge,{first:f.first,end:f.end,litAbove:f.litAbove,litBelow:f.litBelow,node:(0,Y.jsx)(`span`,{"data-testid":`flow-step-grip-${n}`,title:`Drag to reorder`,className:`${We({selected:o,current:a,fails:!!t.fails,picking:s})} cursor-grab touch-none transition-shadow active:cursor-grabbing`,...m,children:s?(0,Y.jsx)(Te,{size:12,stroke:2}):n+1})}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-0.5 py-2 pr-6`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Y.jsx)(`input`,{"aria-label":`Step title`,"data-testid":`flow-step-title-${n}`,className:`${Je} h-[22px] text-[13px] font-medium text-[var(--chrome-fg-900)]`,defaultValue:t.title,onBlur:e=>{e.target.value!==t.title&&v({title:e.target.value})},onKeyDown:e=>{if(e.key===`Enter`&&!e.shiftKey&&E.current){e.preventDefault(),e.stopPropagation(),E.current.focus();return}$(e)}},`t-${t.title}`),!o&&(0,Y.jsx)(Ze,{index:n,step:t,names:c,flowName:A,loose:u?.names??null})]}),ne&&(0,Y.jsx)(`textarea`,{ref:E,"aria-label":`What happens at this step`,"data-testid":`flow-step-text-${n}`,rows:1,className:`${Je} resize-none py-0 text-[12px] leading-[1.55] text-[var(--chrome-fg-500)] placeholder:text-[var(--chrome-fg-400)] focus:text-[var(--chrome-fg-800)] [field-sizing:content]`,placeholder:`Add a description`,defaultValue:t.text??``,onFocus:()=>T(!0),onBlur:e=>{T(!1);let n=e.target.value.trim();n!==(t.text??``)&&v({text:n})},onKeyDown:$},`d-${t.text??``}`),t.fails&&(0,Y.jsx)(`span`,{"data-testid":`flow-step-fails-${n}`,className:`text-[12px] leading-[1.55] text-[var(--flow-fail)]`,children:`Fails here`}),s&&(0,Y.jsxs)(`span`,{className:`mt-0.5 flex items-center gap-1.5 text-[12px] text-[var(--chrome-fg-700)]`,children:[`Click the box this step should light`,(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Cancel`,title:`Cancel`,className:`inline-flex h-[18px] min-w-[18px] items-center justify-center rounded bg-[var(--chrome-popup)] px-1 font-mono text-[10.5px] text-[var(--chrome-fg-600)] shadow-[inset_0_0_0_1px_var(--chrome-input),0_1px_0_var(--chrome-input)] cursor-pointer hover:text-[var(--chrome-fg-900)]`,onClick:p.onCancelPick,children:`esc`})]}),o&&u&&(0,Y.jsxs)(`div`,{role:`status`,"data-testid":`flow-step-loose-${n}`,className:`mt-1 flex items-start gap-2 rounded-md bg-[color-mix(in_srgb,var(--flow-warn)_9%,transparent)] p-2 text-[12px] leading-[1.45] text-[var(--chrome-fg-600)]`,children:[(0,Y.jsx)(x,{size:14,stroke:2,className:`mt-px shrink-0 text-[var(--flow-warn)]`}),(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col items-start gap-1.5`,children:[`The arrow isn't attached to `,u.names,`, so the hand-off can't follow it.`,(0,Y.jsxs)(`button`,{type:`button`,"data-testid":`flow-step-attach-${n}`,className:`flex h-6 shrink-0 cursor-pointer items-center gap-1 rounded-md bg-[var(--chrome-popup)] px-2 font-medium text-[var(--chrome-fg-800)] shadow-[inset_0_0_0_1px_var(--chrome-input-hover)] transition-colors hover:bg-[var(--chrome-hover)]`,onClick:u.onAttach,children:[(0,Y.jsx)(fe,{size:12,stroke:2}),`Attach`]})]})]}),te&&re&&(0,Y.jsxs)(`div`,{className:`mt-1 flex flex-wrap gap-1`,"data-testid":`flow-step-chips-${n}`,children:[D!==`call`&&(0,Y.jsx)(tt,{kind:D,onPick:e=>v({kind:e}),trigger:(0,Y.jsxs)(d,{"data-testid":`flow-step-kind-${n}`,className:`${Z} cursor-pointer hover:bg-[var(--chrome-hover)]`,children:[qe(D),(0,Y.jsx)(i,{size:11,stroke:2,className:`text-[var(--chrome-fg-400)]`})]})}),j&&(0,Y.jsx)(et,{index:n,payload:t.payload,editing:S,onEdit:()=>C(!0),onDone:e=>{C(!1),e!==(t.payload??``)&&v({payload:e||void 0})}}),O.map(e=>(0,Y.jsx)($e,{icon:(0,Y.jsx)(z,{size:11,stroke:2}),label:c.get(e)??`Shape`,title:`Part of this step`,onRemove:()=>v({also:O.filter(t=>t!==e)})},e)),k.map(e=>(0,Y.jsx)($e,{testId:`flow-step-path-${n}`,icon:(0,Y.jsx)(P,{size:11,stroke:2}),label:A.get(e)??`Missing flow`,title:`Another path from here`,onRemove:()=>v({branches:k.filter(t=>t!==e)})},e))]})]}),(0,Y.jsx)(it,{index:n,count:r,step:t,hasPayload:j,paths:l.filter(e=>!k.includes(e.id)),onPlay:_,onPayload:()=>C(!0),onChange:v,onMove:y,onRemove:ee,onNewPath:b,onInsertBefore:p.onInsertBefore,onInsertAfter:p.onInsertAfter,onChangeBox:p.onChangeBox})]})}function Xe(e){let{index:t,onInsert:n}=e;return(0,Y.jsxs)(`button`,{type:`button`,"aria-label":`Add a step before step ${t+1}`,"data-testid":`flow-step-insert-${t}`,"data-step-insert":!0,className:`absolute inset-x-0 -top-[7px] z-10 flex h-3.5 cursor-pointer items-center gap-1.5 pl-[7px] opacity-0 transition-opacity hover:opacity-100 focus-visible:opacity-100`,onPointerDown:e=>e.stopPropagation(),onClick:n,children:[(0,Y.jsx)(`span`,{className:`flex h-4 w-4 items-center justify-center rounded-full bg-[var(--chrome-popup)] text-[var(--chrome-fg-600)] shadow-[inset_0_0_0_1px_var(--chrome-input-hover)]`,children:(0,Y.jsx)(z,{size:10,stroke:2.5})}),(0,Y.jsx)(`span`,{className:`rounded bg-[var(--chrome-popup)] px-1 text-[11.5px] text-[var(--chrome-fg-500)]`,children:`Insert a step`})]})}function Ze(e){let{index:t,step:n,names:i,flowName:a,loose:o}=e,s=[];if(n.kind===`async`&&s.push({key:`kind`,label:`Fire and forget`,icon:(0,Y.jsx)(K,{size:13,stroke:1.75})}),n.kind===`reply`&&s.push({key:`kind`,label:`Reply`,icon:(0,Y.jsx)(S,{size:13,stroke:1.75})}),n.payload&&s.push({key:`payload`,label:`Carries ${n.payload}`,icon:(0,Y.jsx)(q,{size:13,stroke:1.75})}),n.also?.length){let e=n.also.map(e=>i.get(e)??`Shape`).join(`, `);s.push({key:`also`,label:`With ${e}`,icon:(0,Y.jsx)(Ee,{size:13,stroke:1.75})})}if(n.branches?.length){let e=n.branches.map(e=>a.get(e)??`Missing flow`).join(`, `);s.push({key:`paths`,label:`Path to ${e}`,icon:(0,Y.jsx)(P,{size:13,stroke:1.75})})}return s.length===0&&!o?null:(0,Y.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1.5 text-[var(--chrome-fg-400)]`,children:[s.map(e=>(0,Y.jsx)(r,{label:e.label,children:(0,Y.jsx)(`span`,{role:`img`,"aria-label":e.label,children:e.icon})},e.key)),o&&(0,Y.jsx)(r,{label:`The arrow isn't attached to ${o}`,children:(0,Y.jsx)(`span`,{role:`img`,"data-testid":`flow-step-loose-${t}`,"aria-label":`The arrow isn't attached to ${o}`,className:`text-[var(--flow-warn)]`,children:(0,Y.jsx)(x,{size:13,stroke:2})})})]})}var Z=`flex h-6 items-center gap-1 rounded-md bg-[var(--chrome-rest)] px-1.5 text-[11.5px] text-[var(--chrome-fg-700)] ring-1 ring-[var(--chrome-ring)]`,Q=`flex cursor-default select-none items-center gap-2 rounded-lg px-2 py-1.5 text-[13px] text-[var(--chrome-fg-700)] outline-none data-[highlighted]:bg-[var(--chrome-hover)]`,Qe=`min-w-[200px] p-1 outline-none ${ye.popup}`;function $e(e){let{label:t,icon:n,onRemove:r,testId:i,title:a,tone:o}=e;return(0,Y.jsxs)(`span`,{"data-testid":i,title:a,className:`${Z} pr-0.5 ${o===`fail`?`bg-[color-mix(in_srgb,var(--flow-fail)_10%,transparent)] text-[var(--flow-fail)] ring-[color-mix(in_srgb,var(--flow-fail)_25%,transparent)]`:``}`,children:[(0,Y.jsx)(`span`,{className:`opacity-70`,children:n}),(0,Y.jsx)(`span`,{className:`max-w-[140px] truncate`,children:t}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Remove ${t}`,className:`flex h-4 w-4 cursor-pointer items-center justify-center rounded opacity-60 hover:bg-[var(--chrome-hover)] hover:opacity-100`,onClick:r,children:(0,Y.jsx)(W,{size:10,stroke:2})})]})}function et(e){let{index:t,payload:n,editing:r,onEdit:i,onDone:a}=e;return r?(0,Y.jsxs)(`span`,{className:`${Z} pr-1`,children:[(0,Y.jsx)(q,{size:11,stroke:2,className:`opacity-70`}),(0,Y.jsx)(`input`,{autoFocus:!0,"data-testid":`flow-step-payload-${t}`,"aria-label":`What this step carries`,placeholder:`e.g. order #1042`,className:`w-28 bg-transparent text-[11.5px] outline-none placeholder:text-[var(--chrome-fg-400)]`,defaultValue:n??``,onBlur:e=>a(e.target.value.trim()),onKeyDown:e=>{e.stopPropagation(),(e.key===`Enter`||e.key===`Escape`)&&e.currentTarget.blur()}})]}):(0,Y.jsxs)(`span`,{className:`${Z} pr-0.5`,"data-testid":`flow-step-payload-chip-${t}`,children:[(0,Y.jsx)(q,{size:11,stroke:2,className:`opacity-70`}),(0,Y.jsx)(`button`,{type:`button`,title:`What this step carries`,className:`max-w-[140px] cursor-text truncate`,onClick:i,children:n}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Remove what it carries`,className:`flex h-4 w-4 cursor-pointer items-center justify-center rounded opacity-60 hover:bg-[var(--chrome-hover)] hover:opacity-100`,onClick:()=>a(``),children:(0,Y.jsx)(W,{size:10,stroke:2})})]})}function tt(e){let{kind:t,onPick:n,trigger:r}=e;return(0,Y.jsxs)(o,{children:[r,(0,Y.jsx)(c,{children:(0,Y.jsx)(s,{side:`bottom`,align:`start`,sideOffset:4,className:`z-50 outline-none`,children:(0,Y.jsx)(p,{"data-overlay":!0,className:`min-w-[220px] p-1`,children:(0,Y.jsx)(nt,{kind:t,onPick:n})})})})]})}function nt(e){let{kind:t,onPick:n}=e;return(0,Y.jsx)(Y.Fragment,{children:Ke.filter(e=>e.pickable).map(e=>(0,Y.jsxs)(u,{"data-testid":`flow-kind-${e.kind}`,className:Q,onClick:()=>n(e.kind===`call`?void 0:e.kind),children:[(0,Y.jsx)(`span`,{className:`flex w-4 justify-center text-[var(--chrome-fg-900)]`,children:t===e.kind&&(0,Y.jsx)(I,{size:14,stroke:2})}),(0,Y.jsxs)(`span`,{className:`flex flex-col`,children:[(0,Y.jsx)(`span`,{className:`text-[var(--chrome-fg-900)]`,children:e.label}),(0,Y.jsx)(`span`,{className:`text-[11px] text-[var(--chrome-fg-400)]`,children:e.hint})]})]},e.kind))})}function rt(e){let{label:t,icon:n,testId:r,children:i}=e;return(0,Y.jsxs)(B,{children:[(0,Y.jsxs)(H,{className:`${Q} justify-between`,"data-testid":r,children:[(0,Y.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`text-[var(--chrome-fg-400)]`,children:n}),t]}),(0,Y.jsx)(L,{size:14,stroke:1.75,className:`text-[var(--chrome-fg-400)]`})]}),(0,Y.jsx)(c,{children:(0,Y.jsx)(s,{className:`z-50 outline-none`,children:(0,Y.jsx)(f,{"data-overlay":!0,className:Qe,children:i})})})]})}function it(e){let{index:t,count:n,step:r,hasPayload:i,paths:f}=e,{onPlay:g,onPayload:_,onChange:v,onMove:y,onRemove:ee,onNewPath:b}=e,{onInsertBefore:S,onInsertAfter:C,onChangeBox:w}=e,O=r.branches??[];return(0,Y.jsxs)(o,{children:[(0,Y.jsx)(d,{"aria-label":`Step options`,"data-testid":`flow-step-menu-${t}`,className:`${Oe} absolute right-1 top-[7px] opacity-0 transition-opacity focus-visible:opacity-100 group-hover:opacity-100 group-aria-[current=step]:opacity-100 data-[popup-open]:opacity-100`,children:(0,Y.jsx)(h,{size:14,stroke:1.75})}),(0,Y.jsx)(c,{children:(0,Y.jsx)(s,{side:`bottom`,align:`end`,sideOffset:4,className:`z-50 outline-none`,children:(0,Y.jsxs)(p,{"data-overlay":!0,className:`min-w-[210px] p-1`,children:[(0,Y.jsx)(m,{testId:`flow-step-play`,icon:(0,Y.jsx)(a,{size:15,stroke:1.75}),onClick:g,children:`Play from here`}),(0,Y.jsx)(l,{}),(0,Y.jsx)(m,{testId:`flow-step-change-box`,icon:(0,Y.jsx)(Te,{size:15,stroke:1.75}),onClick:w,children:`Change box…`}),(0,Y.jsx)(m,{testId:`flow-step-insert-above`,icon:(0,Y.jsx)(pe,{size:15,stroke:1.75}),onClick:S,children:`Add a step above`}),(0,Y.jsx)(m,{testId:`flow-step-insert-below`,icon:(0,Y.jsx)(me,{size:15,stroke:1.75}),onClick:C,children:`Add a step below`}),(0,Y.jsx)(l,{}),(0,Y.jsx)(rt,{label:`How it travels`,icon:(0,Y.jsx)(V,{size:15,stroke:1.75}),testId:`flow-step-travels`,children:(0,Y.jsx)(nt,{kind:r.kind??`call`,onPick:e=>v({kind:e})})}),!i&&(0,Y.jsx)(m,{testId:`flow-step-add-payload`,icon:(0,Y.jsx)(q,{size:15,stroke:1.75}),onClick:_,children:`Add what it carries`}),(0,Y.jsx)(m,{testId:`flow-step-toggle-fails`,icon:(0,Y.jsx)(x,{size:15,stroke:1.75}),onClick:()=>v({fails:!r.fails||void 0}),children:r.fails?`Doesn't fail here`:`Fails here`}),(0,Y.jsxs)(rt,{label:`Another path from here`,icon:(0,Y.jsx)(P,{size:15,stroke:1.75}),testId:`flow-step-paths`,children:[f.map(e=>(0,Y.jsx)(u,{className:Q,onClick:()=>v({branches:[...O,e.id]}),children:e.name},e.id)),f.length>0&&(0,Y.jsx)(l,{}),(0,Y.jsxs)(u,{className:Q,"data-testid":`flow-step-new-path`,onClick:b,children:[(0,Y.jsx)(z,{size:14,stroke:1.75,className:`text-[var(--chrome-fg-400)]`}),`New path`]})]}),(0,Y.jsx)(l,{}),(0,Y.jsx)(m,{testId:`flow-step-up`,icon:(0,Y.jsx)(T,{size:15,stroke:1.75}),disabled:t===0,onClick:()=>y(-1),children:`Move up`}),(0,Y.jsx)(m,{testId:`flow-step-down`,icon:(0,Y.jsx)(E,{size:15,stroke:1.75}),disabled:t===n-1,onClick:()=>y(1),children:`Move down`}),(0,Y.jsx)(m,{testId:`flow-step-remove`,icon:(0,Y.jsx)(D,{size:15,stroke:1.75}),onClick:ee,children:`Remove step`})]})})})]})}function $(e){e.stopPropagation(),(e.key===`Enter`&&!e.shiftKey||e.key===`Escape`)&&e.currentTarget.blur()}function at(){let e=_(),{store:t}=e,n=v(e=>e.shapes),i=v(e=>e.viewMode),a=(0,J.useMemo)(()=>ve(n),[n]),o=(0,J.useMemo)(()=>y(n).filter(e=>G(n,[e])?.id===e.id),[n]),s=()=>t.getState().setFlowsOpen(!1),c=(e,n)=>t.getState().setFlowPreview(n?{frameId:e,flowId:n}:null);return(0,J.useEffect)(()=>()=>t.getState().setFlowPreview(null),[t]),(0,Y.jsxs)(xe,{width:300,testId:`flow-list`,ariaLabel:`Flows`,onDismiss:s,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1 py-2 pl-4 pr-2`,children:[(0,Y.jsx)(`span`,{className:`flex-1 text-[14px] font-medium text-[var(--chrome-fg-900)]`,children:`Flows`}),!i&&o.length>0&&(0,Y.jsx)(ct,{frames:o,onPick:t=>w(e,t.id)}),(0,Y.jsx)(r,{label:`Close`,side:`bottom`,children:(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Close flows`,"data-testid":`flow-list-close`,onClick:s,className:be,children:(0,Y.jsx)(W,{size:16,stroke:1.75})})})]}),(0,Y.jsx)(`div`,{className:`mx-3 h-px bg-[var(--chrome-divider)]`}),(0,Y.jsx)(`div`,{className:`flex flex-1 flex-col gap-4 overflow-y-auto p-3`,children:a.length===0?(0,Y.jsxs)(`div`,{className:`flex flex-col items-center gap-2 px-3 py-8 text-center`,children:[(0,Y.jsx)(`p`,{className:`text-balance text-[13px] font-medium text-[var(--chrome-fg-900)]`,children:`No flows yet`}),(0,Y.jsx)(`p`,{className:`text-balance text-[12px] leading-relaxed text-[var(--chrome-fg-500)]`,children:o.length>0?`A flow walks people through a diagram, one step at a time.`:`Put a diagram in a frame, then add a flow to it.`})]}):a.map(n=>(0,Y.jsxs)(`section`,{className:`flex flex-col gap-0.5`,onPointerLeave:()=>c(n.id,null),children:[(0,Y.jsx)(`h3`,{className:`truncate px-2 pb-1 text-[11px] font-medium text-[var(--chrome-fg-400)]`,children:n.label||`Untitled frame`}),M(n.flows??[]).map(({flow:r,depth:a,origin:o})=>(0,Y.jsx)(ot,{flow:r,depth:a,forkStep:o?o.index+1:null,viewMode:i,onPreview:e=>c(n.id,e?r.id:null),onPlay:()=>C(e,n.id,r.id),onOpen:()=>t.getState().setFlowEdit({frameId:n.id,flowId:r.id})},r.id))]},n.id))})]})}function ot(e){let{flow:t,depth:n,forkStep:i,viewMode:a,onPreview:o,onPlay:s,onOpen:c}=e,l=t.steps.length,u=t.steps.some(e=>e.fails),d=`${l} ${l===1?`step`:`steps`}`;return(0,Y.jsxs)(`div`,{"data-testid":`flow-list-row`,className:`group flex items-center gap-2 rounded-lg py-1.5 pr-1.5 transition-colors hover:bg-[var(--chrome-rest)]`,style:{paddingLeft:8+n*18},onPointerEnter:()=>o(!0),children:[(0,Y.jsx)(`span`,{className:`shrink-0 text-[var(--chrome-fg-400)]`,children:n>0?(0,Y.jsx)(P,{size:14,stroke:1.75}):(0,Y.jsx)(V,{size:14,stroke:1.75})}),(0,Y.jsxs)(`button`,{type:`button`,"data-testid":`flow-list-open`,title:a?`Play ${t.name}`:`Edit ${t.name}`,className:`flex min-w-0 flex-1 cursor-pointer flex-col text-left`,onFocus:()=>o(!0),onBlur:()=>o(!1),onClick:a?s:c,children:[(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`truncate text-[13px] font-medium text-[var(--chrome-fg-900)]`,children:t.name}),u&&(0,Y.jsx)(`span`,{title:`Shows something failing`,className:`h-1.5 w-1.5 shrink-0 rounded-full bg-[var(--flow-fail)]`})]}),(0,Y.jsx)(`span`,{className:`text-[11px] text-[var(--chrome-fg-400)]`,children:i===null?d:`From step ${i} · ${d}`})]}),l>0&&(0,Y.jsx)(r,{label:`Play`,side:`left`,children:(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Play ${t.name}`,"data-testid":`flow-list-play`,className:`flex h-7 w-7 shrink-0 cursor-pointer items-center justify-center rounded-full bg-[var(--flow-accent)] text-white opacity-90 transition-opacity hover:opacity-100`,onClick:s,children:(0,Y.jsx)(ge,{size:11})})})]})}var st=`flex h-7 cursor-pointer items-center gap-1 rounded-md px-2 text-[12.5px] font-medium text-[var(--flow-accent)] transition-colors hover:bg-[var(--chrome-hover)]`;function ct(e){let{frames:t,onPick:n}=e,r=t.length===1?t[0]:void 0;return r?(0,Y.jsxs)(`button`,{type:`button`,"data-testid":`flow-list-new`,title:`New flow on ${r.label||`the frame`}`,className:st,onClick:()=>n(r),children:[(0,Y.jsx)(z,{size:14,stroke:2}),`New`]}):(0,Y.jsxs)(o,{children:[(0,Y.jsxs)(d,{"data-testid":`flow-list-new`,className:st,children:[(0,Y.jsx)(z,{size:14,stroke:2}),`New`]}),(0,Y.jsx)(c,{children:(0,Y.jsx)(s,{side:`bottom`,align:`end`,sideOffset:6,className:`z-50 outline-none`,children:(0,Y.jsxs)(p,{"data-overlay":!0,className:`min-w-[240px] p-1`,children:[(0,Y.jsx)(`span`,{className:`block px-2 pb-1 pt-1.5 text-[11px] font-medium text-[var(--chrome-fg-400)]`,children:`On which diagram?`}),t.map(e=>(0,Y.jsx)(u,{"data-testid":`flow-list-new-frame`,className:`flex cursor-default select-none items-center gap-2 rounded-lg px-2 py-1.5 text-[13px] text-[var(--chrome-fg-700)] outline-none data-[highlighted]:bg-[var(--chrome-hover)]`,onClick:()=>n(e),children:e.label||`Untitled frame`},e.id))]})})})]})}function lt(e){let{frameId:t,readOnly:n}=e,r=_();return(0,Y.jsx)(c,{children:(0,Y.jsx)(s,{side:`bottom`,align:`end`,sideOffset:6,className:`z-50 outline-none`,children:(0,Y.jsx)(p,{"data-overlay":!0,"data-testid":`figure-flow-list`,className:`w-[300px] p-1`,finalFocus:()=>r.store.getState().flowEdit===null,children:(0,Y.jsx)(ut,{frameId:t,readOnly:n})})})})}function ut(e){let{frameId:t,readOnly:n}=e,r=_(),i=v(e=>{let n=e.shapes.find(e=>e.id===t);return n?.type===`figure`?n:null}),a=v(e=>e.lastFlow[t]),o=e=>r.store.getState().setFlowPreview(e?{frameId:t,flowId:e}:null);return(0,J.useEffect)(()=>()=>r.store.getState().setFlowPreview(null),[r]),i?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`p`,{className:`px-2 pb-1 pt-1.5 text-[11px] font-medium text-[var(--chrome-fg-400)]`,children:[`Flows on `,i.label||`this diagram`]}),(0,Y.jsx)(`div`,{onPointerLeave:()=>o(null),children:M(i.flows??[]).map(({flow:e,depth:t,origin:r})=>(0,Y.jsx)(ft,{frame:i,flow:e,depth:t,forkStep:r?r.index+1:null,last:e.id===a,readOnly:n,onPreview:o},e.id))}),!n&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(l,{}),(0,Y.jsx)(m,{testId:`figure-flow-new`,icon:(0,Y.jsx)(z,{size:15,stroke:1.75}),onClick:()=>w(r,t),children:`New flow`})]})]}):null}var dt=`flex h-7 w-7 shrink-0 cursor-default items-center justify-center rounded-lg text-[var(--chrome-fg-400)] outline-none data-[highlighted]:bg-[var(--chrome-hover)] data-[highlighted]:text-[var(--chrome-fg-800)]`;function ft(e){let{frame:t,flow:n,depth:r,forkStep:i,last:o,readOnly:l,onPreview:d}=e,f=_(),g=n.steps.length,v=n.steps.some(e=>e.fails);return(0,Y.jsxs)(`div`,{"data-testid":`figure-flow-row`,className:`flex items-center gap-0.5`,style:{paddingLeft:r*16},onPointerEnter:()=>d(n.id),children:[(0,Y.jsxs)(u,{"data-testid":`figure-flow-row-play`,disabled:g===0,className:`${ye.menuItem} min-w-0 flex-1`,onFocus:()=>d(n.id),onClick:()=>C(f,t.id,n.id),children:[(0,Y.jsx)(`span`,{className:o?`text-[var(--flow-accent)]`:`text-[var(--chrome-fg-400)]`,children:r>0?(0,Y.jsx)(P,{size:15,stroke:1.75}):o?(0,Y.jsx)(ge,{size:13}):(0,Y.jsx)(a,{size:15,stroke:1.75})}),(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Y.jsx)(`span`,{className:`truncate text-[var(--chrome-fg-900)]`,children:n.name}),i!==null&&(0,Y.jsxs)(`span`,{className:`text-[11px] text-[var(--chrome-fg-400)]`,children:[`From step `,i]})]}),v&&(0,Y.jsx)(`span`,{title:`Shows something failing`,className:`h-1.5 w-1.5 shrink-0 rounded-full bg-[var(--flow-fail)]`}),(0,Y.jsxs)(`span`,{className:`shrink-0 text-[11px] tabular-nums text-[var(--chrome-fg-400)]`,children:[g,` `,g===1?`step`:`steps`]})]}),!l&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(u,{"aria-label":`Edit ${n.name}`,"data-testid":`figure-flow-row-edit`,className:dt,onFocus:()=>d(n.id),onClick:()=>F(f,t.id,n.id),children:(0,Y.jsx)(R,{size:14,stroke:1.75})}),(0,Y.jsxs)(B,{children:[(0,Y.jsx)(H,{"aria-label":`More for ${n.name}`,"data-testid":`figure-flow-row-more`,className:dt,children:(0,Y.jsx)(h,{size:14,stroke:1.75})}),(0,Y.jsx)(c,{children:(0,Y.jsx)(s,{className:`z-50 outline-none`,sideOffset:4,children:(0,Y.jsxs)(p,{"data-overlay":!0,className:`min-w-[160px] p-1`,children:[(0,Y.jsx)(m,{testId:`figure-flow-rename`,icon:(0,Y.jsx)(R,{size:15,stroke:1.75}),onClick:()=>f.store.getState().setFlowEdit({frameId:t.id,flowId:n.id,rename:!0}),children:`Rename`}),(0,Y.jsx)(m,{testId:`figure-flow-delete`,icon:(0,Y.jsx)(D,{size:15,stroke:1.75}),onClick:()=>N(f,t.id,n.id),children:`Delete`})]})})})]})]})]})}var pt=/^Flow \d+$/;function mt(){let e=v(e=>e.flowEdit);return v(e=>e.rightPanel===`flow`)?e?(0,Y.jsx)(ht,{frameId:e.frameId,flowId:e.flowId},e.flowId):(0,Y.jsx)(at,{}):null}function ht(e){let{frameId:t,flowId:n}=e,{ai:i}=g(),a=_(),{store:o}=a,s=v(e=>e.shapes),c=v(e=>e.flowPlay),l=v(e=>e.flowEdit)??{},u=c!==null,d=c?.flowId===n?c.step:null,f=(0,J.useMemo)(()=>{let e=s.find(e=>e.id===t);return e?.type===`figure`?e:null},[s,t]),p=(0,J.useMemo)(()=>f?_e(s,f):[],[s,f]),m=f?.flows?.find(e=>e.id===n),h=m?we(m,p):null,y=h?.steps.length??0,[b,x]=(0,J.useState)(null),[S,T]=(0,J.useState)(!1),[E,D]=(0,J.useState)(!1),M=o.getState().patchFlowEdit;(0,J.useEffect)(()=>{l.rename&&(T(!0),o.getState().patchFlowEdit({rename:!1}))},[l.rename,o]);let P=he({count:y,gap:0,onReorder:(e,r)=>ie(a,t,n,e,r),onPress:e=>M({selected:e})}),F=()=>te(a,t,n),I=()=>{h&&h.steps.length===0&&N(a,t,n),o.getState().setFlowsOpen(!0)},L=()=>{if(h&&h.steps.length>0&&pt.test(h.name)){x(bt(h));return}F()},fe=(0,J.useRef)(L);fe.current=L;let R=(0,J.useRef)(y);if(R.current=y,(0,J.useEffect)(()=>{let e=e=>{let r=o.getState();if(r.flowPlay||ee(e.target)||(e.target instanceof Element?e.target:null)?.closest(`[role=menu], [role=dialog]`))return;let i=r.flowEdit??{},s=R.current,c=j(i,s);if(e.key===`Escape`){if(e.preventDefault(),e.stopPropagation(),i.picking!==null&&i.picking!==void 0){r.patchFlowEdit({picking:null});return}if(oe(i,s)){r.patchFlowEdit({slot:null});return}fe.current();return}if(c!==null){if(e.key===`Delete`||e.key===`Backspace`){e.preventDefault(),e.stopPropagation(),le(a,t,n,c);return}if(e.altKey&&(e.key===`ArrowUp`||e.key===`ArrowDown`)){e.preventDefault(),e.stopPropagation();let r=c+(e.key===`ArrowUp`?-1:1);r>=0&&r<s&&ie(a,t,n,c,r)}}};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},[o,a,t,n]),!f||!h)return null;let z=f.flows??[],B=new Map(p.map(e=>[e.id,Se(p,e)])),V=Ce(z,n),H=V?.flow.steps[V.index],pe=H?.title??``,me=k(p,h.steps,H),U=ne(l,y),ve=j(l,y),G=j({selected:l.picking},y),ye=ae(l,y),Te=z.filter(e=>e.id!==n).map(e=>({id:e.id,name:e.name})),K=[...new Map([...me.values()].map(e=>[e.arrow.id,e])).values()],q=e=>{for(let t of e)se(a,t);D(!0)};function Ee(e){let t=me.get(e);return t?{names:re(t,B),onAttach:()=>q([t])}:null}function Oe(){b!==null&&je(b),F()}function je(e){let r=e.trim();r&&r!==h?.name&&A(a,t,n,e=>({...e,name:r}))}return(0,Y.jsxs)(xe,{width:300,testId:`flow-panel`,ariaLabel:`Flow`,onDismiss:F,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-0.5 py-2 pl-1.5 pr-2`,children:[(0,Y.jsx)(r,{label:`All flows`,side:`bottom`,children:(0,Y.jsx)(`button`,{type:`button`,"aria-label":`All flows`,"data-testid":`flow-panel-back`,onClick:I,className:be,children:(0,Y.jsx)(ue,{size:16,stroke:1.75})})}),(0,Y.jsx)(`div`,{className:`min-w-0 flex-1`,children:b===null?S?(0,Y.jsx)(`input`,{autoFocus:!0,"aria-label":`Flow name`,"data-testid":`flow-name`,className:`${De} text-[14px] font-medium`,defaultValue:h.name,onFocus:e=>e.target.select(),onBlur:e=>{je(e.target.value),T(!1)},onKeyDown:$}):(0,Y.jsx)(yt,{current:h,flows:z,onPick:e=>o.getState().setFlowEdit({frameId:t,flowId:e}),onRename:()=>T(!0),onNew:()=>w(a,t),onDelete:()=>N(a,t,n)}):(0,Y.jsx)(`input`,{autoFocus:!0,"aria-label":`Name this flow`,"data-testid":`flow-name-input`,className:`${De} text-[14px] font-medium ring-[var(--chrome-input-hover)] hover:ring-[var(--chrome-input-hover)]`,value:b,onFocus:e=>e.target.select(),onChange:e=>x(e.target.value),onKeyDown:e=>{e.stopPropagation(),e.key===`Enter`&&b.trim()&&Oe(),e.key===`Escape`&&F()}})}),(0,Y.jsx)(r,{label:`Close`,side:`bottom`,children:(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Close the flow panel`,"data-testid":`flow-panel-done`,onClick:F,className:be,children:(0,Y.jsx)(W,{size:16,stroke:1.75})})})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5 px-4 pb-2.5`,children:[b===null?(0,Y.jsxs)(`span`,{className:`truncate text-[11px] text-[var(--chrome-fg-400)]`,children:[f.label||`Untitled frame`,` · `,y,` `,y===1?`step`:`steps`]}):(0,Y.jsxs)(`span`,{"data-testid":`flow-name-prompt`,className:`flex flex-wrap items-center gap-1.5 text-[11px] text-[var(--chrome-fg-500)]`,children:[`Name this flow · `,(0,Y.jsx)(`kbd`,{className:Ae,children:`↵`}),` save · `,(0,Y.jsx)(`kbd`,{className:Ae,children:`esc`}),` keep "`,h.name,`"`]}),V&&(0,Y.jsxs)(`button`,{type:`button`,"data-testid":`flow-origin`,title:`Open ${V.flow.name}`,className:`group/origin -mt-0.5 flex min-w-0 cursor-pointer items-center gap-1.5 self-start text-[12px] text-[var(--chrome-fg-500)]`,onClick:()=>o.getState().setFlowEdit({frameId:t,flowId:V.flow.id}),children:[(0,Y.jsx)(de,{size:13,stroke:1.75,className:`shrink-0`}),(0,Y.jsxs)(`span`,{className:`truncate`,children:[`From`,` `,(0,Y.jsx)(`b`,{className:`font-medium text-[var(--chrome-fg-700)] group-hover/origin:underline`,children:V.flow.name}),`, step `,V.index+1]})]})]}),(0,Y.jsx)(`div`,{className:`mx-3 h-px bg-[var(--chrome-divider)]`}),(0,Y.jsx)(`div`,{ref:P.listRef,className:`flex flex-1 flex-col overflow-y-auto p-3`,children:y===0?(0,Y.jsx)(vt,{fork:V?{title:pe,step:V.index+1}:null,onAi:i?()=>{N(a,t,n),o.getState().askAi(`Write a flow for the frame "${f.label||`Untitled`}" (${f.id}) showing `)}:null}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Ie,{count:K.length,attached:E,onAttach:()=>q(K),onSettled:()=>D(!1)}),(0,Y.jsx)(`ol`,{className:`flex flex-col pt-1`,"data-testid":`flow-steps`,children:h.steps.map((e,r)=>(0,Y.jsx)(gt,{before:U===r&&U<y,hidden:P.dragging,number:r+1,first:r===0,onCancel:()=>M({slot:null}),children:(0,Y.jsx)(Ye,{step:e,index:r,count:y,current:d===r,selected:ve===r,picking:G===r,names:B,otherFlows:Te,loose:Ee(r),rail:{first:r===0&&U!==0,end:G!==null&&r===y-1,litAbove:d!==null&&r>0&&r<=d,litBelow:d!==null&&r<d},rowRef:P.setItemRef(r),rowStyle:P.rowStyle(r),grip:P.rowHandlers(r),actions:{onPlay:()=>C(a,t,n,r),onChange:e=>ce(a,t,n,r,e),onMove:e=>ie(a,t,n,r,r+e),onRemove:()=>le(a,t,n,r),onNewPath:()=>O(a,t,n,r),onSelect:()=>{o.getState().flowEdit?.selected!==r&&M({selected:r})},onHover:e=>M({hovered:e?r:null}),onInsertBefore:()=>M({slot:r,picking:null}),onInsertAfter:()=>M({slot:r+1<y?r+1:null,picking:null}),onChangeBox:()=>M({picking:r,selected:r}),onCancelPick:()=>M({picking:null})}})},`${e.target}-${r}`))}),G===null&&(0,Y.jsx)(_t,{inserting:U<y,next:y+1,joined:ye,onToEnd:()=>M({slot:null})})]})}),(0,Y.jsx)(`div`,{className:`border-t border-[var(--chrome-ring)] p-3`,children:b===null?(0,Y.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Y.jsxs)(`button`,{type:`button`,className:`${Ne} h-9 flex-1`,"data-testid":`flow-play`,disabled:y===0||u,onClick:()=>C(a,t,n),children:[(0,Y.jsx)(ge,{size:12}),`Preview`]}),(0,Y.jsx)(`button`,{type:`button`,className:`${ke} flex-1`,"data-testid":`flow-done`,onClick:L,children:`Done`})]}):(0,Y.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Y.jsx)(`button`,{type:`button`,className:`${Ne} h-9 flex-1`,"data-testid":`flow-name-skip`,onClick:F,children:`Skip`}),(0,Y.jsx)(`button`,{type:`button`,className:`${ke} flex-1`,"data-testid":`flow-name-save`,disabled:!b.trim(),onClick:Oe,children:`Save name`})]})})]})}function gt(e){let{before:t,hidden:n,number:i,first:a,onCancel:o,children:s}=e;return(0,Y.jsxs)(Y.Fragment,{children:[t&&(0,Y.jsxs)(`li`,{"data-testid":`flow-slot`,className:`flex gap-2.5 rounded-lg pl-1 pr-1.5 bg-[color-mix(in_srgb,var(--chrome-fg-900)_5%,transparent)] ${n?`invisible`:``}`,children:[(0,Y.jsx)(Ge,{first:a,node:(0,Y.jsx)(`span`,{className:Ue,children:i})}),(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-1.5 py-2 text-[12.5px] text-[var(--chrome-fg-800)]`,children:[(0,Y.jsxs)(`span`,{className:`flex-1 leading-[22px]`,children:[`Click a box for step `,i]}),(0,Y.jsx)(r,{label:`Add at the end instead`,side:`left`,children:(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Add at the end instead`,"data-testid":`flow-slot-cancel`,className:`flex h-6 w-6 shrink-0 cursor-pointer items-center justify-center rounded-md text-[var(--chrome-fg-400)] transition-colors hover:bg-[var(--chrome-hover)] hover:text-[var(--chrome-fg-800)] disabled:pointer-events-none disabled:opacity-40`,onClick:o,children:(0,Y.jsx)(W,{size:13,stroke:2})})})]})]}),s]})}function _t(e){let{inserting:t,next:n,joined:r,onToEnd:i}=e;return(0,Y.jsxs)(`div`,{"data-testid":`flow-hint`,className:`flex gap-2.5 pl-1 pr-1.5`,children:[(0,Y.jsx)(Ge,{end:!0,node:(0,Y.jsx)(`span`,{className:He,children:t?(0,Y.jsx)(z,{size:10,stroke:2.5}):n})}),(0,Y.jsx)(`div`,{className:`py-2 text-[12px] leading-[22px] text-[var(--chrome-fg-400)]`,children:t?(0,Y.jsx)(`button`,{type:`button`,className:`cursor-pointer text-[var(--chrome-fg-600)] transition-colors hover:text-[var(--chrome-fg-900)]`,onClick:i,children:`Add at the end instead`}):(0,Y.jsxs)(Y.Fragment,{children:[`Click the next box or arrow`,r!==null&&(0,Y.jsxs)(`span`,{className:`flex items-center gap-1 text-[11px] leading-[18px]`,children:[(0,Y.jsx)(`kbd`,{className:`inline-flex h-[18px] min-w-[18px] items-center justify-center rounded bg-[var(--chrome-popup)] px-1 font-mono text-[10.5px] text-[var(--chrome-fg-600)] shadow-[inset_0_0_0_1px_var(--chrome-input),0_1px_0_var(--chrome-input)]`,children:`⇧`}),` click adds it to step `,r+1]})]})})]})}function vt(e){let{onAi:t,fork:n}=e,r=n?n.title||`step ${n.step}`:``;return(0,Y.jsxs)(`div`,{className:`flex flex-col items-center gap-3 px-3 py-8 text-center`,"data-testid":`flow-empty`,children:[(0,Y.jsx)(`span`,{"aria-hidden":!0,className:`flex h-11 w-11 items-center justify-center rounded-full bg-[var(--chrome-disc)] text-[var(--chrome-fg-500)]`,children:n?(0,Y.jsx)(P,{size:20,stroke:1.75}):(0,Y.jsx)(V,{size:20,stroke:1.75})}),(0,Y.jsx)(`p`,{className:`text-balance text-[13px] font-medium text-[var(--chrome-fg-900)]`,children:n?`What happens after ${r}?`:`Click the boxes in order`}),(0,Y.jsx)(`p`,{className:`text-balance text-[12px] leading-relaxed text-[var(--chrome-fg-500)]`,children:n?`Click the box it goes to next. Viewers can choose this path at step ${n.step}.`:`Start with whoever kicks things off.`}),t&&!n&&(0,Y.jsxs)(`button`,{type:`button`,"data-testid":`flow-ai`,className:`flex cursor-pointer items-center gap-1.5 rounded-md px-1.5 py-1 text-[12px] text-[var(--chrome-fg-500)] transition-colors hover:bg-[var(--chrome-hover)] hover:text-[var(--chrome-fg-900)] disabled:pointer-events-none disabled:text-[var(--chrome-fg-300)]`,onClick:t,children:[(0,Y.jsx)(U,{size:13,stroke:1.75}),`Write the steps with AI`]})]})}function yt(e){let{current:t,flows:n,onPick:r,onRename:a,onNew:f,onDelete:h}=e,g=(0,J.useRef)(!1);return(0,Y.jsxs)(o,{onOpenChange:e=>{e&&(g.current=!1)},children:[(0,Y.jsxs)(d,{"data-testid":`flow-switcher`,className:`flex max-w-full cursor-pointer items-center gap-1 rounded-md px-1.5 py-1 text-left transition-colors hover:bg-[var(--chrome-hover)] data-[popup-open]:bg-[var(--chrome-hover)]`,children:[(0,Y.jsx)(`span`,{className:`truncate text-[14px] font-medium text-[var(--chrome-fg-900)]`,children:t.name}),(0,Y.jsx)(i,{size:14,stroke:1.75,className:`shrink-0 text-[var(--chrome-fg-400)]`})]}),(0,Y.jsx)(c,{children:(0,Y.jsx)(s,{side:`bottom`,align:`start`,sideOffset:4,className:`z-50 outline-none`,children:(0,Y.jsxs)(p,{"data-overlay":!0,className:`min-w-[240px] p-1`,finalFocus:()=>!g.current,children:[M(n).map(({flow:e,depth:n})=>(0,Y.jsxs)(u,{"data-testid":`flow-switcher-item`,className:`flex cursor-default select-none items-center gap-2 rounded-lg py-1.5 pr-2 text-[13px] text-[var(--chrome-fg-700)] outline-none data-[highlighted]:bg-[var(--chrome-hover)]`,style:{paddingLeft:8+n*16},onClick:()=>r(e.id),children:[(0,Y.jsx)(`span`,{className:`text-[var(--chrome-fg-400)]`,children:n>0?(0,Y.jsx)(P,{size:14,stroke:1.75}):(0,Y.jsx)(V,{size:14,stroke:1.75})}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[var(--chrome-fg-900)]`,children:e.name}),(0,Y.jsx)(`span`,{className:`text-[11px] tabular-nums text-[var(--chrome-fg-400)]`,children:e.steps.length}),(0,Y.jsx)(`span`,{className:`flex w-4 justify-center text-[var(--chrome-fg-900)]`,children:e.id===t.id&&(0,Y.jsx)(I,{size:14,stroke:2})})]},e.id)),(0,Y.jsx)(l,{}),(0,Y.jsx)(m,{testId:`flow-name-edit`,icon:(0,Y.jsx)(R,{size:15,stroke:1.75}),onClick:()=>{g.current=!0,a()},children:`Rename`}),(0,Y.jsx)(m,{testId:`flow-new`,icon:(0,Y.jsx)(z,{size:15,stroke:1.75}),onClick:f,children:`New flow on this frame`}),(0,Y.jsx)(m,{testId:`flow-delete`,icon:(0,Y.jsx)(D,{size:15,stroke:1.75}),onClick:h,children:`Delete this flow`})]})})})]})}function bt(e){let t=e.steps[0]?.title.trim(),n=e.steps[e.steps.length-1]?.title.trim();return t?n&&n!==t?`${t} to ${n}`:t:e.name}export{lt as FlowMenuPopup,mt as FlowPanel};
|
|
@@ -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{j as r,mn as i,pn as a}from"./shapes-D5w8NTQQ.js";import{w as o}from"./slides-DDNzjFz9.js";import{r as s,t as c}from"./dom-PAoZruqo.js";import{g as l}from"./selection-overlay-primitives-CfOaP5_G.js";import{c as u,l as d,o as f}from"./flows-CGl4r-xb.js";var p=e(t(),1),m=n(),h=6;function g(e,t){if(e.type===`arrow`)return o(a(e),t);let n=r(e);return o({x:n.x,y:n.y},t)}function _(e,t,n=h,r){let i=l(e,r),a=o({x:i.x,y:i.y},t);return{left:a.x-n,top:a.y-n,width:i.width*t.zoom+n*2,height:i.height*t.zoom+n*2}}function v(e){return new Set(e.steps.flatMap((e,t)=>e.fails?[t+1]:[]))}function y(e){let t=new Map;return e.steps.forEach((e,n)=>{for(let r of u(e))t.set(r,[...t.get(r)??[],n+1])}),t}function b(e){let{numbers:t,byId:n,viewport:r,current:i,failing:a}=e;return(0,m.jsx)(m.Fragment,{children:[...t].map(([e,t])=>{let o=n.get(e);if(!o)return null;let s=g(o,r);return(0,m.jsx)(`span`,{"data-testid":`flow-step-badge`,"data-current":i!==null&&t.includes(i)||void 0,className:`pointer-events-none absolute z-10 flex items-center gap-1 transition-opacity ${o.type===`arrow`?`-translate-x-1/2 -translate-y-[calc(100%+14px)]`:`-translate-x-full -translate-y-full`}`,style:{left:s.x-2,top:s.y-2},children:t.map(e=>{let t=i===null||e===i;return(0,m.jsx)(`span`,{className:`flex h-[22px] min-w-[22px] items-center justify-center rounded-full px-1.5 text-[11.5px] font-semibold tabular-nums transition-colors ${a.has(e)&&t?`bg-[var(--flow-fail)] text-white`:t?`bg-[var(--flow-accent)] text-white`:`bg-[color-mix(in_srgb,var(--flow-accent)_14%,var(--chrome-popup))] text-[var(--flow-accent)]`} ${e===i?`scale-110`:``}`,children:e},e)})},e)})})}var x=`http://www.w3.org/2000/svg`,S=48;function C(e,t){if(e.kind===`ghost`){let n=t.get(e.from),i=t.get(e.to);if(!n||!i)return null;let a=r(n),o=r(i);return w([D(a,E(o)),D(o,E(a))].map(e=>[e]),!0)}let n=e.hops.flatMap(e=>{let t=A(i(e.arrow));return t.length<2?[]:[e.reversed?t.reverse():t]});return n.length>0?w(n,!1):null}function w(e,t){let n=[],r=[],i=0;return(t?[e.flat()]:e).forEach((e,t)=>{if(t>0){let t=T(n[n.length-1],e[0]);r.push({from:i,to:i+t,inside:!0}),i+=t}let a=i;e.forEach((t,r)=>{r>0&&(i+=T(e[r-1],t)),n.push(t)}),r.push({from:a,to:i,inside:!1})}),{d:n.map((e,t)=>`${t===0?`M`:`L`} ${e.x} ${e.y}`).join(` `),length:i,legs:r}}function T(e,t){return Math.hypot(t.x-e.x,t.y-e.y)}function E(e){return{x:e.x+e.width/2,y:e.y+e.height/2}}function D(e,t){let n=E(e),r=t.x-n.x,i=t.y-n.y;if(r===0&&i===0)return n;let a=Math.min(r===0?1/0:e.width/2/Math.abs(r),i===0?1/0:e.height/2/Math.abs(i));return{x:n.x+r*a,y:n.y+i*a}}var O=null;function k(){if(O)return O;let e=document.createElementNS(x,`svg`);e.setAttribute(`aria-hidden`,`true`),e.style.cssText=`position:absolute;width:0;height:0;overflow:hidden;visibility:hidden`;let t=document.createElementNS(x,`path`);return e.append(t),document.body.append(e),O=t,t}function A(e){let t=k();t.setAttribute(`d`,e);let n=t.getTotalLength();return!Number.isFinite(n)||n===0?[]:Array.from({length:49},(e,r)=>{let i=t.getPointAtLength(n*r/S);return{x:i.x,y:i.y}})}var j=.16,M=.45,N=3,P=1.5,F=100,I=[];function L(e){let{frameId:t,flow:n,targets:r,index:i,viewport:a,lead:o=I}=e,l=(0,p.useMemo)(()=>new Map(r.map(e=>[e.id,e])),[r]),h=n.steps[i],g=(0,p.useMemo)(()=>f(r,[...o,...n.steps],o.length+i),[r,o,n.steps,i]),_=h?.fails?`var(--flow-fail)`:`var(--flow-accent)`,x=(0,p.useMemo)(()=>h?u(h).flatMap(e=>l.get(e)??[]):[],[h,l]),S=(0,p.useMemo)(()=>{let e=[...o,...n.steps.slice(0,i)],t=e.slice(Math.max(0,e.length-N)).reverse().flatMap((e,t)=>u(e).map(e=>({id:e,back:t})));return x.flatMap(e=>{let n;if(e.type===`arrow`)n={kind:`arrows`,hops:[{arrow:e,reversed:!1}],through:[],cost:0};else{let i=1/0;for(let a of t){let t=d(r,a.id,e.id,{reply:g===`reply`});if(!t)continue;let o=(t.kind===`ghost`?F:t.cost)+a.back*P;o<i&&(i=o,n=t)}}let a=n?C(n,l):null;return n&&a?[{key:`${i}-${e.id}`,route:n,track:a}]:[]})},[x,o,n.steps,i,r,g,l]),w=(0,p.useMemo)(()=>{let e=new Set([t,...x.map(e=>e.id)]),a=x.filter(e=>e.type===`arrow`).map(e=>e.id);for(let t of S)t.route.kind===`arrows`&&(t.route.hops.forEach(t=>{e.add(t.arrow.id),a.push(t.arrow.id)}),t.route.through.forEach(t=>e.add(t)));let l=new Set([...o,...n.steps.slice(0,i)].flatMap(u)),d=[],f=[];for(let t of r){if(e.has(t.id))continue;let n=t.type===`figure`;(l.has(t.id)||n?f:d).push(s(t.id),c(`data-icon-label`,t.id))}let p=(e,t)=>e.length>0?`${e.join(`,`)}{opacity:${t}!important}`:``;return[`[data-canvas-root] :is([data-shape-id],[data-icon-label]){transition:opacity 260ms ease}`,`[data-testid="hover-indicator"]{display:none}`,p(d,j),p(f,M),Y(a,_,g)].join(``)},[t,x,o,S,n.steps,i,r,_,g]);return h?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(`style`,{"data-testid":`flow-dim`,children:w}),S.length>0&&(0,m.jsx)(z,{handOffs:S,kind:g,color:_,fails:h.fails,payload:h.payload,viewport:a},`${n.id}-${i}`),(0,m.jsx)(b,{numbers:y(n),byId:l,viewport:a,current:i+1,failing:v(n)})]}):null}function R(e){let t=document.querySelector(`[data-canvas-root]`);if(!t)return[];let n=t.getBoundingClientRect();return e.flatMap(e=>e.route.kind===`arrows`?e.route.hops.flatMap(r=>{let i=t.querySelector(`[data-testid="arrow-label"]${s(r.arrow.id)}`);if(!i)return[];let a=i.getBoundingClientRect();return[{key:`${e.key}-${r.arrow.id}`,x:a.left-n.left,y:a.top-n.top,width:a.width,height:a.height}]}):[])}function z(e){let{handOffs:t,kind:n,color:r,fails:i,payload:a,viewport:o}=e,s=1/o.zoom,c=W(t,o.zoom),l=R(t),u=`flow-hand-off-mask-${t[0]?.key??``}`;return(0,m.jsxs)(`svg`,{"data-testid":`flow-hand-off`,"data-kind":n,"data-fails":i||void 0,className:`pointer-events-none absolute inset-0 h-full w-full overflow-visible`,children:[l.length>0&&(0,m.jsxs)(`mask`,{id:u,maskUnits:`userSpaceOnUse`,x:`-100000`,y:`-100000`,width:`200000`,height:`200000`,children:[(0,m.jsx)(`rect`,{x:`-100000`,y:`-100000`,width:`200000`,height:`200000`,fill:`white`}),l.map(e=>(0,m.jsx)(`rect`,{x:e.x,y:e.y,width:e.width,height:e.height,rx:4,fill:`black`},e.key))]}),(0,m.jsx)(`g`,{mask:l.length>0?`url(#${u})`:void 0,children:(0,m.jsx)(`g`,{transform:`translate(${o.x} ${o.y}) scale(${o.zoom})`,children:t.map(e=>{let t=e.route.kind===`ghost`,i=t||n===`async`;return(0,m.jsxs)(`g`,{"data-testid":t?`flow-ghost`:`flow-route`,children:[t&&(0,m.jsx)(`path`,{d:e.track.d,fill:`none`,stroke:r,strokeWidth:(n===`reply`?2.5:3.5)*s,strokeLinecap:`round`,strokeDasharray:i?`${6*s} ${6*s}`:`1`,strokeDashoffset:i?void 0:1,pathLength:i?void 0:1,opacity:n===`reply`?.6:.85,children:!i&&(0,m.jsx)(`animate`,{attributeName:`stroke-dashoffset`,from:`1`,to:`0`,dur:`0.7s`,fill:`freeze`})}),(0,m.jsxs)(`g`,{opacity:0,children:[(0,m.jsx)(`animateMotion`,{dur:`${c.seconds}s`,repeatCount:`indefinite`,path:e.track.d,calcMode:`linear`,keyPoints:`0;1;1`,keyTimes:`0;${c.travel(e.track)};1`}),(0,m.jsx)(`animate`,{attributeName:`opacity`,dur:`${c.seconds}s`,repeatCount:`indefinite`,calcMode:`linear`,...G(e.track,c.travel(e.track))}),(0,m.jsx)(`circle`,{r:11*s,fill:`var(--canvas-bg, white)`,opacity:.9}),(0,m.jsx)(`circle`,{r:7*s,fill:n===`async`?`var(--canvas-bg, white)`:r,stroke:r,strokeWidth:3*s}),a&&(0,m.jsx)(J,{text:a,scale:s,color:r})]})]},e.key)})})})]})}var B=380,V=.7,H=.9,U=.12;function W(e,t){let n=Math.max(...e.map(e=>e.track.length)),r=Math.max(H,n*t/B),i=r+V;return{seconds:Number(i.toFixed(3)),travel:e=>Number((r*(e.length/n||1)/i).toFixed(4))}}function G(e,t){let n=n=>n/(e.length||1)*t,r=U*t*Math.min(1,300/(e.length||1)),i=[[0,0],[r,1]];for(let t of e.legs){if(!t.inside)continue;let e=n(t.from),a=n(t.to);i.push([Math.max(e-r/2,0),1],[e,0],[a,0],[a+r/2,1])}i.push([Math.max(t-r,0),1],[t,0],[1,0]);let a=[],o=[],s=0;for(let[e,t]of i){let n=Math.min(1,Math.max(s,e));a.push(Number(n.toFixed(4))),o.push(t),s=n}return{keyTimes:a.join(`;`),values:o.join(`;`)}}var K=11,q=6;function J(e){let{text:t,scale:n,color:r}=e,i=(t.length*K*.6+q*2)*n,a=17*n,o=14*n;return(0,m.jsxs)(`g`,{"data-testid":`flow-payload`,transform:`translate(${-i/2} ${o})`,children:[(0,m.jsx)(`rect`,{width:i,height:a,rx:a/2,fill:r}),(0,m.jsx)(`text`,{x:i/2,y:a/2,textAnchor:`middle`,dominantBaseline:`central`,fill:`white`,fontSize:K*n,fontWeight:500,fontFamily:`ui-sans-serif, system-ui, sans-serif`,children:t})]})}function Y(e,t,n){if(e.length===0)return``;let r=t=>e.map(e=>`${s(e)} [data-testid="${t}"]`).join(`,`),i=`${r(`arrow-stroke`)},${r(`arrow-head`)}`,a=e.flatMap(e=>[`arrow-stroke`,`arrow-head`].map(t=>`${s(e)} [data-testid="${t}"]:not([fill="none"])`)).join(`,`),o=n===`async`?`${r(`arrow-stroke`)}{stroke-dasharray:8 7!important}`:``;return[`${i}{stroke:${t}!important;transition:stroke 200ms ease,fill 200ms ease}`,`${a}{fill:${t}!important}`,o].join(``)}export{_ as a,v as i,b as n,y as o,g as r,L as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./createReactComponent-
|
|
1
|
+
import{t as e}from"./createReactComponent-C51FAx3B.js";import{i as t}from"./core-C1TxysMz.js";var n=e(`outline`,`arrow-back-up`,`ArrowBackUp`,[[`path`,{d:`M9 14l-4 -4l4 -4`,key:`svg-0`}],[`path`,{d:`M5 10h11a4 4 0 1 1 0 8h-1`,key:`svg-1`}]]);function r(e,t){let n=e.store.getState().shapes.find(e=>e.id===t);return n?.type===`figure`?n:null}function i(e,t,n){e.store.getState().updateShape(t.id,{flows:n.length>0?n:void 0})}function a(e,n){let a=r(e,n);if(!a)return null;let o=a.flows??[],s=t(o);return i(e,a,[...o,s]),e.store.getState().setFlowEdit({frameId:n,flowId:s.id}),s}function o(e,t,n,r=0){e.store.getState().setFlowPlay({frameId:t,flowId:n,step:r})}export{n as a,i,o as n,a as r,r as t};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{_ as e}from"./slides-
|
|
1
|
+
import{_ as e}from"./slides-DDNzjFz9.js";import{n as t}from"./core-C1TxysMz.js";var n=5,r=1,i=1,a=3;function o(t){let n=t.filter(e=>e.type===`figure`),r=new Map;for(let i of n)r.set(i.id,new Set(e(t,i).map(e=>e.id)));return e=>{let t=new Set([e,...r.get(e)??[]]);for(let[n,i]of r)i.has(e)&&t.add(n);return t}}function s(e,t,s,c={}){if(t===s)return null;let l=o(e),u=l(t),d=l(s),f=c.reply?a:i,p=c.reply?i:a,m=new Map,h=(e,t)=>m.set(e,[...m.get(e)??[],t]);for(let t of e){if(t.type!==`arrow`)continue;let e=t.startBinding?.shapeId,n=t.endBinding?.shapeId;!e||!n||e===n||(h(e,{to:n,hop:{arrow:t,reversed:!1},cost:f,wrongWay:!!c.reply}),h(n,{to:e,hop:{arrow:t,reversed:!0},cost:p,wrongWay:!c.reply}))}let g=[...u].map(e=>({at:e,cost:0,hops:[],path:[],wrongWay:0})),_=new Map;for(;g.length>0;){g.sort((e,t)=>e.cost-t.cost||e.hops.length-t.hops.length);let e=g.shift();if(d.has(e.at)&&e.hops.length>0){let t=e.path.filter(e=>!u.has(e)&&!d.has(e));return{kind:`arrows`,hops:e.hops,through:t,cost:e.cost}}if(!((_.get(e.at)??1/0)<=e.cost||e.hops.length>=n)){_.set(e.at,e.cost);for(let t of m.get(e.at)??[]){let n=e.wrongWay+ +!!t.wrongWay;n>r||g.push({wrongWay:n,at:t.to,cost:e.cost+t.cost,hops:[...e.hops,t.hop],path:[...e.path,t.to]})}}}return{kind:`ghost`,from:t,to:s}}function c(e,t){for(let n of e){let e=n.steps.findIndex(e=>e.branches?.includes(t));if(e>=0&&n.id!==t)return{flow:n,index:e}}return null}function l(e,t){let n=c(e,t);return n?n.flow.steps.slice(0,n.index+1):[]}function u(e,t){let n=new Set(t.map(e=>e.id));return{...e,steps:e.steps.flatMap(e=>{if(!n.has(e.target))return[];if(!e.also)return[e];let t=e.also.filter(t=>n.has(t)&&t!==e.target),r={...e,also:t};return t.length===0&&delete r.also,[r]})}}function d(e){return[e.target,...e.also??[]]}function f(e,t,n){let r=t[n],i=t[n-1];if(!r||r.kind)return r?.kind??`call`;if(!i)return`call`;let a=new Set(t.slice(0,n).flatMap(d)),o=d(r).filter(e=>a.has(e));for(let t of o)for(let n of d(i)){let r=s(e,n,t);if(r?.kind===`arrows`&&r.hops.every(e=>!e.reversed))return`call`;let i=s(e,n,t,{reply:!0});if(i?.kind===`arrows`&&i.hops.every(e=>e.reversed))return`reply`}return`call`}function p(e,n,r,i){let a=(e,t)=>g(e,t).toLowerCase().replace(/\s+/g,` `).trim(),o=new Map;for(let e of t(r,i)){let t=a(r,e);t&&!o.has(t)&&o.set(t,e.id)}let s=new Map([[n.id,i.id]]);for(let r of t(e,n)){let t=o.get(a(e,r));t&&s.set(r.id,t)}return s}function m(e,t,n,r){let i=t.flows??[];if(i.length===0)return{flows:void 0,dropped:0};let a=p(e,t,n,r),o=e=>a.get(e),s=0,c=i.flatMap(e=>{let t=e.steps.flatMap(e=>{let t=o(e.target);if(!t)return s+=1,[];let n=(e.also??[]).flatMap(e=>o(e)??[]),r={...e,target:t};return n.length>0?r.also=n:delete r.also,[r]});return t.length>0?[{...e,steps:t}]:[]}),l=new Set(c.map(e=>e.id)),u=c.map(e=>({...e,steps:e.steps.map(e=>{let t=(e.branches??[]).filter(e=>l.has(e)),n={...e};return t.length>0?n.branches=t:delete n.branches,n})}));return{flows:u.length>0?u:void 0,dropped:s}}function h(e){return e?`label`in e&&typeof e.label==`string`&&e.label.trim()?e.label.trim().split(`
|
|
2
2
|
`)[0].trim():`text`in e&&typeof e.text==`string`&&e.text.trim()?e.text.trim().split(`
|
|
3
|
-
`)[0]:e.type===`icon`&&e.name?e.name:``:``}function
|
|
3
|
+
`)[0]:e.type===`icon`&&e.name?e.name:``:``}function g(e,t){let n=h(t);if(n)return n;if(t.type===`arrow`){let n=new Map(e.map(e=>[e.id,e])),r=h(n.get(t.startBinding?.shapeId??``)),i=h(n.get(t.endBinding?.shapeId??``));return r&&i?`${r} → ${i}`:`Connection`}return`Step`}function _(e,n){if(!n.flows?.length)return[];let r=t(e,n);return n.flows.flatMap(e=>{let t=u(e,r);return t.steps.map((e,n)=>({flow:t,index:n}))})}export{_ as a,d as c,g as i,s as l,c as n,f as o,m as r,u as s,l as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{W as e}from"./style-BENGW2ZV.js";import{
|
|
1
|
+
import{W as e}from"./style-BENGW2ZV.js";import{in as t,nn as n,rn as r}from"./shapes-D5w8NTQQ.js";var i={simple:`Frame`,phone:`Phone`,tablet:`Tablet`,browser:`Browser`,window:`Desktop window`,lanes:`Swimlanes`,vlanes:`Vertical swimlanes`,boundary:`Boundary`};function a(e){return e===`lanes`||e===`vlanes`}function o(e){return e===`vlanes`}var s={simple:{width:960,height:540},phone:{width:270,height:560},tablet:{width:400,height:540},browser:{width:560,height:400},window:{width:520,height:360},lanes:{width:760,height:420},vlanes:{width:720,height:460},boundary:{width:360,height:260}},c=[`Lane 1`,`Lane 2`,`Lane 3`],l=.7;function u(e){return e&&e.length>0?e.length:c.length}function d(e,t){if(!t||t.length!==e||e===0)return Array.from({length:e},()=>1/e);let n=t.map(e=>Math.max(0,e)),r=n.reduce((e,t)=>e+t,0)||1;return n.map(e=>e/r)}function f(e,t,n){let r=d(e,n),i=[0],a=0;for(let e of r)a+=e*t,i.push(a);return i}var p=.06;function m(t,n,r){let i=[...t],a=i[n]+i[n+1],o=e(i[n]+r,p,a-p);return i[n]=o,i[n+1]=a-o,i}function h(t,n){let r=Math.min(n.width,n.height);return t===`phone`?Math.min(e(r*.13,10,44),n.width/2,n.height/2):t===`tablet`?Math.min(e(r*.07,8,26),n.width/2,n.height/2):t===`browser`||t===`window`?Math.min(8,n.width/2,n.height/2):10}function g(e,t){let r=e.y+t/2;return[0,1,2].map(t=>n(e.x+15+t*13,r,3.5))}var _=18,v=12,y=14,b=20,x=5,S=18;function C(i,a,o,s){let c=h(i,a),l=t(a.x,a.y,a.width,a.height,c),d=[];if(i===`phone`){let t=a.x+a.width/2;if(a.height>120&&a.width>80){let n=e(a.width*.16,24,56),i=a.y+_;d.push(r(t-n/2,i,t+n/2,i));let o=e(a.width*.3,40,110),s=a.y+a.height-v;d.push(r(t-o/2,s,t+o/2,s))}return{border:l,details:d}}if(i===`tablet`){let e=a.x+a.width/2;if(a.height>140&&a.width>100){d.push(n(e,a.y+y,2.5));let t=a.y+a.height-b;d.push(n(e,t,x))}return{border:l,details:d}}if(i===`browser`||i===`window`){let e=i===`browser`?36:32;if(a.height>e*2.2&&a.width>70&&(d.push(r(a.x,a.y+e,a.x+a.width,a.y+e)),d.push(...g(a,e)),i===`browser`&&a.width>200)){let n={x:a.x+56,y:a.y+(e-S)/2,width:a.width-56-16,height:S};d.push(t(n.x,n.y,n.width,n.height,S/2))}return{border:l,details:d}}if(i===`lanes`||i===`vlanes`){let e=u(o);if(i===`vlanes`){let t=f(e,a.width,s);for(let n=1;n<e;n+=1){let e=a.x+t[n];d.push(r(e,a.y,e,a.y+a.height))}return a.height>30*2.5&&d.push(r(a.x,a.y+30,a.x+a.width,a.y+30)),{border:l,details:d}}let t=f(e,a.height,s);for(let n=1;n<e;n+=1){let e=a.y+t[n];d.push(r(a.x,e,a.x+a.width,e))}return a.width>30*2.5&&d.push(r(a.x+30,a.y,a.x+30,a.y+a.height)),{border:l,details:d}}return{border:l,details:d}}export{C as a,f as c,m as d,l as i,d as l,s as n,h as o,i as r,a as s,c as t,o as u};
|