@forsion/unit 2.13.5 → 2.13.6
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 +2 -2
- package/main.mjs +20 -4
- package/package.json +1 -1
- package/release.json +6 -5
- package/web/assets/{ArtificialView-BD1yHz1N.js → ArtificialView-DHqb9CTL.js} +1 -1
- package/web/assets/{AutomationBuilder-B09c-5Bi.js → AutomationBuilder-CzBKmOiw.js} +1 -1
- package/web/assets/{CalendarConfigView-Bd-ZDGPO.js → CalendarConfigView-Blw47NCs.js} +1 -1
- package/web/assets/CalendarSide-CFSzme3H.js +1 -0
- package/web/assets/CalendarView-B8sQfgZt.js +3 -0
- package/web/assets/{CapabilityMenu-DyHTEYLr.js → CapabilityMenu-Dzn6RbB1.js} +1 -1
- package/web/assets/{Chrome-C7F6fdDp.js → Chrome-owLewFu4.js} +1 -1
- package/web/assets/{CodeView-BGOnrGhB.js → CodeView-E18NDilX.js} +3 -3
- package/web/assets/{CtxMenuButtons-BYjrbUKS.js → CtxMenuButtons-CAiwQkOK.js} +1 -1
- package/web/assets/DashboardGridView-CBbYKcCo.js +25 -0
- package/web/assets/EventCard-D9uQe7g4.js +1 -0
- package/web/assets/{ExcalidrawCanvas-lwJCN6uB.js → ExcalidrawCanvas-BSOERegJ.js} +1 -1
- package/web/assets/{FloatingToc-DO7SH8Ku.js → FloatingToc-iK08Qpjc.js} +1 -1
- package/web/assets/GitCloneDialog-DfY0kqhP.js +1 -0
- package/web/assets/{HomepageView-CHJEhf9c.js → HomepageView-BCqFe1Ym.js} +3 -3
- package/web/assets/{ImageStudioPanels-CgVf0wiq.js → ImageStudioPanels-DdwihAkT.js} +2 -2
- package/web/assets/ImageStudioView-gJSYrmu1.js +1 -0
- package/web/assets/{InlineAiPanel-CdIPINsA.js → InlineAiPanel-CjYOW0_0.js} +1 -1
- package/web/assets/InlineFiles-3g2jMUeA.js +1 -0
- package/web/assets/{MarkdownBlock-DSItkLhu.js → MarkdownBlock-DjsGkPZ_.js} +24 -24
- package/web/assets/{ModelPill--CU3XTIQ.js → ModelPill-DgyXBsL9.js} +2 -2
- package/web/assets/MuseLibraryView-D_HBijmU.js +2 -0
- package/web/assets/{MuseView-CvsO62Fo.js → MuseView-BVDlmM6i.js} +3 -3
- package/web/assets/{PageHistoryPanel-CDh7nm78.js → PageHistoryPanel-B1EAPZeX.js} +2 -2
- package/web/assets/{PdfAnnotator-DafvjP3U.js → PdfAnnotator-bdB9evsY.js} +1 -1
- package/web/assets/{PenRow-CEy-s6SF.js → PenRow-DCOIGlfY.js} +1 -1
- package/web/assets/PluginToolCard-BXE5vA1h.js +2 -0
- package/web/assets/{ProductView-AUqnTwmQ.js → ProductView-l5Q7uBy6.js} +1 -1
- package/web/assets/{SettingsPage-B9mmkWaM.js → SettingsPage-fjxfS_Mt.js} +2 -2
- package/web/assets/{StudioGuestSurface-OOhRA8nt.js → StudioGuestSurface-360CWUwf.js} +1 -1
- package/web/assets/TodoListView-BsPt2GUU.js +1 -0
- package/web/assets/{Tooltip-DOYi44eY.js → Tooltip-CuXpWtdJ.js} +1 -1
- package/web/assets/UnifiedPage-6xbFLtXT.js +712 -0
- package/web/assets/{ViewSelectionBar-WmSWMFsR.js → ViewSelectionBar-C5FDh7fO.js} +2 -2
- package/web/assets/{appStore-DDOkzWDA.js → appStore-BskcSDl6.js} +114 -115
- package/web/assets/{arrow-up-right-BptN64d-.js → arrow-up-right-DEykpgsH.js} +1 -1
- package/web/assets/{astryxBridge-BL56QfEv.js → astryxBridge-B2IZdPvo.js} +1 -1
- package/web/assets/automationListSource-Cm09JKkK.js +1 -0
- package/web/assets/{boardSurface-CP4HNmcm.js → boardSurface-Dv-aVaUJ.js} +1 -1
- package/web/assets/{calendarNavStore-DCi7VBmM.js → calendarNavStore-FKStA7Hh.js} +1 -1
- package/web/assets/{canvasPrefs-ArsX3NFO.js → canvasPrefs-CMulOS0k.js} +1 -1
- package/web/assets/{chatBoxSurface-DRsDr-MT.js → chatBoxSurface-BR_G6cxG.js} +1 -1
- package/web/assets/{chevron-up-ChXNh14u.js → chevron-up-C_EDOZzI.js} +1 -1
- package/web/assets/{client-fKy9CWk0.js → client-DD5czSuF.js} +1 -1
- package/web/assets/{code-xml-DCCD9eCS.js → code-xml-vTB4LtTf.js} +1 -1
- package/web/assets/{codeStudioStore-BgLfCDK2.js → codeStudioStore-OswE1_s0.js} +1 -1
- package/web/assets/{contextMenuSurface-BF593l2M.js → contextMenuSurface-DqdYEGuH.js} +1 -1
- package/web/assets/{copy-plus-ClKrSgM7.js → copy-plus-CVHqDNny.js} +1 -1
- package/web/assets/create-DZWy4zBR.js +14 -0
- package/web/assets/{dashboardSurface-C6cbR3oG.js → dashboardSurface-Co4byEQm.js} +1 -1
- package/web/assets/dbStore-Bc2lC8ZI.js +2 -0
- package/web/assets/deskCapture-BfTzH2aO.js +1 -0
- package/web/assets/{diff2html-Di8qIz6O.js → diff2html-0MkNy2ws.js} +1 -1
- package/web/assets/{docx-preview-B-URZXdP.js → docx-preview-CwNWZegI.js} +1 -1
- package/web/assets/{draft-CBSW5tHx.js → draft-DTzuTatQ.js} +2 -2
- package/web/assets/{drawingStore-CGvTqqYW.js → drawingStore-BD5m2eqn.js} +1 -1
- package/web/assets/{file-down-Z913cCyQ.js → file-down-Cjo_T6By.js} +1 -1
- package/web/assets/{floatingTocSurface-DGwTiqvU.js → floatingTocSurface-D3IIVNnq.js} +1 -1
- package/web/assets/{foldActions-DGIPTmE1.js → foldActions-utwZpRrA.js} +1 -1
- package/web/assets/{folder-1OJQeDI1.js → folder-DiaFWdCg.js} +1 -1
- package/web/assets/{folder-minus-D_j1SwHu.js → folder-minus-DUEOcs12.js} +1 -1
- package/web/assets/{folder-plus-DP9sFr26.js → folder-plus-Cmhq0GcR.js} +1 -1
- package/web/assets/{gestures-ZhFAENNZ.js → gestures-Bx9M0le5.js} +1 -1
- package/web/assets/{git-branch-BMajF2cu.js → git-branch-DzGWffyD.js} +1 -1
- package/web/assets/{homeCardStatus-5R7XkxFL.js → homeCardStatus-NAk4A77P.js} +1 -1
- package/web/assets/{i18n.generated-DW_l6CkR.js → i18n.generated-D4-Wu9Wh.js} +1 -1
- package/web/assets/imageStudio-D67oElIb.js +4 -0
- package/web/assets/{index-COzdD7mZ.js → index-3VWZ1rsL.js} +1 -1
- package/web/assets/{index-bF04pF8q.js → index-58wBjkHy.js} +1 -1
- package/web/assets/{index-Cg1FWM_p.js → index-B9_zH7f5.js} +1 -1
- package/web/assets/index-BQrMYjou.js +1 -0
- package/web/assets/{index-D-ClOPbg.js → index-BWrWMYua.js} +1 -1
- package/web/assets/{index-C--E96Ul.js → index-BdLJBf4-.js} +1 -1
- package/web/assets/{index-CI2esW1X.js → index-Bf3W92Hb.js} +1 -1
- package/web/assets/{index-B8A3nKeL.js → index-BjmPaLFA.js} +1 -1
- package/web/assets/{index-BeW45J9J.js → index-Bv-vJTzF.js} +1 -1
- package/web/assets/{index-BnJguNqI.js → index-C7yb62gg.js} +1 -1
- package/web/assets/{index-CtRdzpNh.js → index-C9gBBMYv.js} +1 -1
- package/web/assets/index-CiQ59Kib.js +1 -0
- package/web/assets/{index-DfhEDV2T.js → index-CzTUjEMt.js} +1 -1
- package/web/assets/{index-BYKR7EVg.js → index-D4Qx6o3E.js} +1 -1
- package/web/assets/{index-jzlU5luC.js → index-DDBcn3UD.js} +1 -1
- package/web/assets/{index-CtCYv9bF.js → index-DEADY94l.js} +1 -1
- package/web/assets/{index-CWXpOSI2.js → index-DGTKsPAQ.js} +1 -1
- package/web/assets/{index-SpegRFQV.js → index-DRwDqvjf.js} +1 -1
- package/web/assets/{index-BDZIQnEx.js → index-DexVkoxH.js} +1 -1
- package/web/assets/{index-uhvJ8AiJ.js → index-IMOhRWY8.js} +1 -1
- package/web/assets/{index-Dr6YmrrT.js → index-XjvpYHIo.js} +1 -1
- package/web/assets/{index-fDB1l4d-.js → index-YuejkHoJ.js} +51 -37
- package/web/assets/{index-CVLDDD5Z.js → index-pH0266gX.js} +1 -1
- package/web/assets/{index-BniT-A2n.js → index-sQl_bGM_.js} +1 -1
- package/web/assets/{index-CPfmhZ3Z.js → index-vbNFy5lS.js} +1 -1
- package/web/assets/{invitePage-iOT1zBvp.js → invitePage-BT_rFfab.js} +1 -1
- package/web/assets/{ipc-SAPDwyQ4.js → ipc-8cxXGSZK.js} +1 -1
- package/web/assets/{jszip.min-B3n1FGCb.js → jszip.min-By4OI3XR.js} +1 -1
- package/web/assets/launchpad-BX4jQyF4.js +2 -0
- package/web/assets/{layout-grid-oIyIGbc5.js → layout-grid-CzxXbCDa.js} +1 -1
- package/web/assets/{linkFollow-uke1Xtit.js → linkFollow-J2c0wSgB.js} +4 -4
- package/web/assets/{listFold-BeNv2v6M.js → listFold-B_2Xqxn_.js} +1 -1
- package/web/assets/{lock-open-D2nMg0ga.js → lock-open-DVWCLSZm.js} +1 -1
- package/web/assets/{log-out-D70NCXC4.js → log-out-CdKTS7HC.js} +1 -1
- package/web/assets/{magnet-Cqmm97W8.js → magnet-BmVcZ9U4.js} +1 -1
- package/web/assets/main-CForzSFD.js +15 -0
- package/web/assets/{markdownEditorSurface-zUzFity2.js → markdownEditorSurface-Bs8FJNHu.js} +1 -1
- package/web/assets/{mediaPlayer-DB4KUvua.js → mediaPlayer-O9pVRl_k.js} +1 -1
- package/web/assets/{message-square-plus-BvUfAAZm.js → message-square-plus-CspBv9iG.js} +1 -1
- package/web/assets/{messages-GQUjmbwW.js → messages-CG7ywZ-K.js} +1 -1
- package/web/assets/{minimize-2-CMhzL6ZW.js → minimize-2-Bq4vUin-.js} +1 -1
- package/web/assets/mobileEntry-CptXQ4Ov.js +13 -0
- package/web/assets/modelPickerSurface-C0SkjaPL.js +1 -0
- package/web/assets/{nativeDownload-DsGyUSJ5.js → nativeDownload-DlnT8U-y.js} +1 -1
- package/web/assets/{nativeSheetMenu--iihXNVd.js → nativeSheetMenu-CVC51DzC.js} +1 -1
- package/web/assets/{pageStore-ys8L4rjF.css → pageStore-BC6Z18n7.css} +1 -1
- package/web/assets/{pageStore-CyvNZEYX.js → pageStore-D_fKLv-o.js} +7 -7
- package/web/assets/{pageTree-Ci2qzrs1.js → pageTree-DtDKozTg.js} +3 -3
- package/web/assets/{pen-line-DC3lbEY1.js → pen-line-ho1GgAe2.js} +1 -1
- package/web/assets/{pen-tool-DD5_N4lZ.js → pen-tool-CV-FKFEZ.js} +1 -1
- package/web/assets/{pencil--sWwxHdP.js → pencil-BgF4Kiqp.js} +1 -1
- package/web/assets/{phoneList-DKRMxQHf.js → phoneList-BLVdQcXY.js} +1 -1
- package/web/assets/pluginChat-C6t6DWhY.js +2 -0
- package/web/assets/{react-b7FrqRQR.js → react-DOzedx9n.js} +1 -1
- package/web/assets/recordSurface-C9SRNjy4.js +1 -0
- package/web/assets/{redo-2-CqlqhWrI.js → redo-2-DWZTaEz-.js} +1 -1
- package/web/assets/{rotate-ccw-D8kni6Ni.js → rotate-ccw-CyZpL7MX.js} +1 -1
- package/web/assets/{selectionActions-DIq0xDm8.js → selectionActions-C2a8ImJm.js} +1 -1
- package/web/assets/selectionBarSurface-DaXlyy1s.js +1 -0
- package/web/assets/{sessionTitle-Ctp4iNKu.js → sessionTitle-BtZ1BteL.js} +1 -1
- package/web/assets/settingsPageSurface-Cg8FNZq3.js +1 -0
- package/web/assets/{sharePage-CY04XCAf.js → sharePage-vnghra3Q.js} +2 -2
- package/web/assets/{shareViewer-DweNF8Ch.js → shareViewer-CWJQHiV-.js} +1 -1
- package/web/assets/{star-B0sZEmbj.js → star-ZEpUQwnX.js} +1 -1
- package/web/assets/tableSurface-DfEdzVDn.js +1 -0
- package/web/assets/{tanguProbe-B8Qv2vcm.js → tanguProbe-BboOas-a.js} +6 -6
- package/web/assets/{terminalView-BLGdmdl7.js → terminalView-xp8ARBLi.js} +1 -1
- package/web/assets/{type-Dt7RNB9g.js → type-CMyP4cKt.js} +1 -1
- package/web/assets/{undo-2-QimgpLBn.js → undo-2-C4ZCsMsx.js} +1 -1
- package/web/assets/{unitAccount-DL3jfd84.js → unitAccount-DNxfGo3c.js} +1 -1
- package/web/assets/{unitBridge-BSsCy1zP.js → unitBridge-Bq0n1ZM6.js} +1 -1
- package/web/assets/{unitCloudTransport-CI_6H0TU.js → unitCloudTransport-CErylgEO.js} +1 -1
- package/web/assets/{unitOwnerAccess-CiQ7nD7E.js → unitOwnerAccess-7s-3dfNM.js} +1 -1
- package/web/assets/{unitShim-Dl2ksNp-.js → unitShim-BfheyIG8.js} +3 -3
- package/web/assets/{upload-Dy7svciS.js → upload-VtCrluEO.js} +1 -1
- package/web/assets/userSpaces-BpeYjLni.js +1 -0
- package/web/assets/viewportLock-cVUalJAI.js +738 -0
- package/web/assets/{zoom-in-DDEtY_Go.js → zoom-in-C7R8s9x-.js} +1 -1
- package/web/index.html +2 -2
- package/web/assets/CalendarSide-B0RVbOsg.js +0 -1
- package/web/assets/CalendarView-BHio-n_r.js +0 -3
- package/web/assets/DashboardGridView-CR-R_qV8.js +0 -25
- package/web/assets/EventCard-QyYorE1_.js +0 -1
- package/web/assets/GitCloneDialog-CbW-RJak.js +0 -1
- package/web/assets/ImageStudioView-4WcX0_V4.js +0 -1
- package/web/assets/InlineFiles-CAIyTk1n.js +0 -1
- package/web/assets/MuseLibraryView-PlS7HAlV.js +0 -2
- package/web/assets/PluginToolCard-DCzLhsCA.js +0 -2
- package/web/assets/TodoListView-BkgMe44I.js +0 -1
- package/web/assets/UnifiedPage-s7-tDSwG.js +0 -712
- package/web/assets/automationListSource-B1jz6q0t.js +0 -1
- package/web/assets/create-DYmVT68X.js +0 -14
- package/web/assets/dbStore-BIG5Mfh2.js +0 -1
- package/web/assets/deskCapture-q-jRDIcc.js +0 -1
- package/web/assets/imageStudio-DC_syDtx.js +0 -4
- package/web/assets/index-CIKPZc3Q.js +0 -1
- package/web/assets/index-CmsN2Zm2.js +0 -1
- package/web/assets/launchpad-CcmSwlJl.js +0 -2
- package/web/assets/main-B9aT0WXG.js +0 -15
- package/web/assets/mobileEntry-BnHzrdoC.js +0 -13
- package/web/assets/modelPickerSurface-Dtz40Ae2.js +0 -1
- package/web/assets/pluginChat-82zZt47Y.js +0 -2
- package/web/assets/recordSurface-vUX25Z8R.js +0 -1
- package/web/assets/selectionBarSurface-B94e5JW_.js +0 -1
- package/web/assets/settingsPageSurface-C9TA3mJg.js +0 -1
- package/web/assets/tableSurface-CSBYBw5P.js +0 -1
- package/web/assets/userSpaces-oMHIWgYe.js +0 -1
- package/web/assets/viewportLock-BZq5PTeN.js +0 -738
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as a}from"./index-
|
|
1
|
+
import{j as a}from"./index-YuejkHoJ.js";import"./pageStore-D_fKLv-o.js";import{F as c}from"./FloatingToc-iK08Qpjc.js";import"./client-DD5czSuF.js";import{fd as d}from"./appStore-BskcSDl6.js";import"./react-DOzedx9n.js";import"./dbStore-Bc2lC8ZI.js";import"./ipc-8cxXGSZK.js";import"./nativeDownload-DlnT8U-y.js";import"./drawingStore-BD5m2eqn.js";function E(t,e){const o=document.createElement("div");o.className="lcl-ftoc-mount-layer";const l=t.style.position,r=getComputedStyle(t).position==="static";r&&(t.style.position="relative"),t.appendChild(o);let n=0,i=!1;const m=()=>a.jsx(c,{scrollContainer:e.scrollContainer,contentRoot:e.contentRoot??e.scrollContainer,selector:e.selector,itemFromElement:e.itemFromElement,label:e.label,minItems:e.minItems,hideBelow:e.hideBelow,topOffset:e.topOffset,side:e.side,scanTrigger:n}),s=d(o,m());return{refresh:()=>{i||(n++,s.render(m()))},dispose:()=>{i||(i=!0,s.dispose(),o.remove(),r&&t.style.position==="relative"&&(t.style.position=l))}}}export{E as mountPluginFloatingToc};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as
|
|
1
|
+
import{n as F,o as M,h as d,l as g,a as T,p as b}from"./listFold-B_2Xqxn_.js";import{cR as w,aD as N,a9 as A}from"./pageStore-D_fKLv-o.js";import"./index-YuejkHoJ.js";import"./client-DD5czSuF.js";import{m8 as C,m1 as D,lZ as H,pc as K}from"./appStore-BskcSDl6.js";import{$ as x}from"./index-CiQ59Kib.js";import"./react-DOzedx9n.js";import"./dbStore-Bc2lC8ZI.js";import"./ipc-8cxXGSZK.js";import"./nativeDownload-DlnT8U-y.js";import"./drawingStore-BD5m2eqn.js";const u=new Set;let c=null;function E(){const e=typeof document<"u"?document.activeElement:null;if(e){for(const t of u)if(t.dom.contains(e))return t}return c&&c.dom.isConnected?c:null}function L(e){const t=new Set(F(e.doc)),o=new Set(M(e.doc)),n=e.selection;if(n instanceof C)return t.has(n.from)?{kind:"heading",pos:n.from}:o.has(n.from)?{kind:"list",pos:n.from}:null;const s=n.$from;for(let r=s.depth;r>=1;r--)if(s.node(r).type.name==="list_item"&&o.has(s.before(r)))return{kind:"list",pos:s.before(r)};if(s.parent.type.name==="heading"){const r=s.before(s.depth);return t.has(r)?{kind:"heading",pos:r}:null}for(let r=s.depth;r>=1;r--){const i=s.node(r-1);let l=s.start(r-1),a=null;for(let f=0;f<s.index(r-1);f++)i.child(f).type.name==="heading"&&(a=l),l+=i.child(f).nodeSize;if(a!=null)return t.has(a)?{kind:"heading",pos:a}:null}return null}function _(e,t,o){const n=e.selection;if(!n.empty)return;const s=[...T(e.doc,t),...b(e.doc,o)].filter(r=>n.from>r.start&&n.from<r.after).sort((r,i)=>r.start-i.start);s.length&&e.setSelection(D.near(e.doc.resolve(s[0].start),-1))}function y(e){return{headings:d.getState(e)?.folded??[],lists:g.getState(e)?.folded??[]}}function m(e,t,o){const n=e.tr.setMeta(d,{set:t}).setMeta(g,{set:o}).setMeta("addToHistory",!1);return _(n,t,o),n}function J(e){const t=L(e);if(!t)return null;const o=y(e),n=s=>s.includes(t.pos)?s.filter(r=>r!==t.pos):[...s,t.pos];return m(e,t.kind==="heading"?n(o.headings):o.headings,t.kind==="list"?n(o.lists):o.lists)}function R(e){const t=F(e.doc),o=M(e.doc);return!t.length&&!o.length?null:m(e,t,o)}function V(e){const t=y(e);return!t.headings.length&&!t.lists.length?null:m(e,[],[])}const v={toggle:J,foldAll:R,unfoldAll:V};function O(e,t){const o=v[t](e.state);o&&e.dispatch(o.scrollIntoView()),e.focus()}function k(e){const t=e.toLowerCase().split("+").map(n=>n.trim()),o=t.pop()??"";return[...t.sort(),o].join("+")}function z(e){if(e.isComposing)return null;const t=N(e);if(!t)return null;const o=k(t);for(const n of K){const s=A(n);if(s&&k(s)===o)return n.kind}return null}function st(e){const t=E();t&&O(t,e)}const B="amx.noteFold:",X=500,p=(e,t)=>`${B}${w(e,t)}`;function $(e,t){const o=new Map;e.descendants((n,s)=>{let r=null;if(n.type.name==="heading"?r=`h${Number(n.attrs.level)||1}:${n.textContent}`:n.type.name==="list_item"&&(r=`l:${n.firstChild?.textContent??""}`),r!=null){const i=o.get(r)??0;o.set(r,i+1),t(`${r}#${i}`,n.type.name==="heading"?"heading":"list",s)}return!0})}function j(e,t,o){if(!t.length&&!o.length)return[];const n=new Set(t),s=new Set(o),r=[];return $(e,(i,l,a)=>{(l==="heading"?n:s).has(a)&&r.push(i)}),r.slice(0,X)}function q(e,t){const o=new Set(t),n=[],s=[];return o.size?($(e,(r,i,l)=>{o.has(r)&&(i==="heading"?n:s).push(l)}),{headings:n,lists:s}):{headings:n,lists:s}}function I(e,t){try{const o=localStorage.getItem(p(e,t)),n=o?JSON.parse(o):[];return Array.isArray(n)?n.filter(s=>typeof s=="string"):[]}catch{return[]}}function h(e,t,o){try{o.length?localStorage.setItem(p(e,t),JSON.stringify(o)):localStorage.removeItem(p(e,t))}catch{}}function rt(e,t,o){if(t===o)return;const n=I(e,t);n.length&&(h(e,o,n),h(e,t,[]))}function it(e){return[x(()=>new H({view:t=>{u.add(t);let o=!1,n="",s=null;const r=()=>{s=null;const{vaultRoot:i,path:l}=e(),a=y(t.state),f=j(t.state.doc,a.headings,a.lists),S=JSON.stringify(f);S!==n&&(n=S,h(i,l,f))};return queueMicrotask(()=>{if(!u.has(t))return;const{vaultRoot:i,path:l}=e(),a=I(i,l);if(n=JSON.stringify(a),o=!0,!a.length)return;const f=q(t.state.doc,a);(f.headings.length||f.lists.length)&&t.dispatch(m(t.state,f.headings,f.lists))}),{update:(i,l)=>{o&&(d.getState(i.state)===d.getState(l)&&g.getState(i.state)===g.getState(l)||(s&&clearTimeout(s),s=setTimeout(r,300)))},destroy:()=>{s&&(clearTimeout(s),r()),u.delete(t),c===t&&(c=null)}}},props:{handleDOMEvents:{focus:t=>(c=t,!1)},handleKeyDown:(t,o)=>{const n=z(o);return n?(O(t,n),!0):!1}}}))].flat()}export{it as createFoldMemory,R as foldAllTr,j as foldFingerprints,I as readFoldMemory,rt as remapFoldMemory,q as resolveFingerprints,st as runFoldCommand,J as toggleFoldTr,V as unfoldAllTr,h as writeFoldMemory};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as o}from"./pageStore-
|
|
1
|
+
import{p as o}from"./pageStore-D_fKLv-o.js";const a=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],t=o("folder",a);export{t as F};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as a}from"./pageStore-
|
|
1
|
+
import{p as a}from"./pageStore-D_fKLv-o.js";const e=[["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],t=a("folder-minus",e);export{t as F};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as e}from"./pageStore-
|
|
1
|
+
import{p as e}from"./pageStore-D_fKLv-o.js";const a=[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],t=e("folder-plus",a);export{t as F};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as w}from"./index-
|
|
1
|
+
import{r as w}from"./index-YuejkHoJ.js";import{cX as xe,cW as ve,cZ as ke,c_ as me,R as A,d4 as re,dF as be,dG as ge,cY as we,dH as he,bb as ie}from"./pageStore-D_fKLv-o.js";import"./client-DD5czSuF.js";import{r as Ee}from"./Chrome-owLewFu4.js";const O='button, a[href], input, select, textarea, [contenteditable="true"]',_=".amx-stage-hud, .amx-stage-minimap, .amx-stage-tools, .ctx-menu, .dash-add-menu, .dash-menu-scrim";function Re(Le,q,P,G){const[oe,se]=w.useState([]),[ce,le]=w.useState(null),[ue,X]=w.useState(null),[ae,Y]=w.useState(!1),v=w.useRef([]),h=w.useCallback(s=>{v.current=s,se(s)},[]),H=w.useRef(P);H.current=P;const R=w.useRef(G);R.current=G;const B=w.useRef(q);B.current=q,w.useEffect(()=>{if(!v.current.length)return;const s=P.boxes(),n=v.current.filter(k=>s.has(k));n.length!==v.current.length&&h(n)});const de=w.useCallback(s=>{if(!s)return()=>{};const n=()=>H.current,k=()=>B.current,S=()=>n().identity?.()??null,U=e=>{try{s.hasPointerCapture(e)&&s.releasePointerCapture(e)}catch{}};let r=null,W=null;const C=e=>{W=e,le(e)},p=new Map;let m=null,E=null;const I=e=>k().toStage(e.clientX,e.clientY),fe=()=>(A(s)||1)*k().vpRef.current.z,L=()=>{E&&(clearTimeout(E.timer),E=null)},M=()=>{r=null,C(null),X(null),Y(!1)},K=()=>{L();for(const e of p.keys())U(e);p.clear(),m=null,r&&U(r.id),M()},F=()=>{if(p.size<2)return null;const[[e,t],[o,i]]=[...p.entries()].slice(0,2),f=s.getBoundingClientRect(),b=A(s)||1;return{x:((t.x+i.x)/2-f.left)/b,y:((t.y+i.y)/2-f.top)/b,d:Math.max(1,Math.hypot(t.x-i.x,t.y-i.y)),ids:[e,o].sort((a,u)=>a-u).join(",")}},N=()=>{const e=F();if(!e)return;const t=k().vpRef.current;m={ids:e.ids,d:e.d,cx:e.x,cy:e.y,anchor:{x:(e.x-t.x)/t.z,y:(e.y-t.y)/t.z},z:t.z}},pe=()=>{const e=F();if(!e||!m)return;if(e.ids!==m.ids){N();return}const t=he(m.z*(e.d/m.d));k().setVp({z:t,x:e.x-m.anchor.x*t,y:e.y-m.anchor.y*t})},V=e=>{const t=e.target;if(t.closest?.(_))return;if(n().locked){p.clear(),m=null;const l=n().hitKey(t);if(l&&!n().isEditing?.(l)&&!t.closest?.(O)){e.preventDefault();try{s.setPointerCapture(e.pointerId)}catch{}}l||h([]);return}if(e.pointerType==="touch"&&p.set(e.pointerId,{x:e.clientX,y:e.clientY}),p.size>=2){L(),M(),N();return}if(e.button===2)return;const o=n().hitKey(t);if(o&&(n().isEditing?.(o)||t.closest?.(O)))return;const i=o?n().hitEdge?.(t)??null:null,f=!!n().locked,b=fe(),a=e.pointerType==="touch"?xe/b:ve;if(e.pointerType==="touch"){L();const l=I(e);E={t:Date.now(),x:e.clientX,y:e.clientY,id:e.pointerId,timer:window.setTimeout(()=>{E=null,M(),n().onContextMenu?.(o,{...l,clientX:e.clientX,clientY:e.clientY})},ke)}}const u=()=>{try{s.setPointerCapture(e.pointerId)}catch{}};if(o&&!f&&i){const l=n().boxes().get(o);if(!l)return;e.preventDefault(),u(),h([o]),r={kind:"size",id:e.pointerId,who:S(),key:o,edge:i,b0:l,x0:e.clientX,y0:e.clientY,live:!1,slop:a};return}if(o&&!f){e.preventDefault(),u();const y=e.shiftKey||e.metaKey?v.current.includes(o)?v.current.filter(D=>D!==o):[...v.current,o]:v.current.includes(o)?v.current:[o];h(y);const x=n().boxes(),z=y.includes(o)?y:[o],g=new Map;for(const D of z){const ne=x.get(D);ne&&g.set(D,ne)}r={kind:"move",id:e.pointerId,who:S(),keys:[...g.keys()],base:g,x0:e.clientX,y0:e.clientY,live:!1,slop:a};return}if(o){e.preventDefault(),u();return}if(h([]),f)return;const c=!!n().blankPan||e.pointerType==="touch"||e.button===1||e.altKey,d=k().vpRef.current;if(u(),c)r={kind:"pan",id:e.pointerId,who:S(),x0:e.clientX,y0:e.clientY,vx:d.x,vy:d.y,live:!1};else{const l=I(e);r={kind:"marquee",id:e.pointerId,who:S(),x0:e.clientX,y0:e.clientY,sx:l.x,sy:l.y,additive:e.shiftKey,base:[...v.current],live:!1}}s.focus({preventScroll:!0})},Z=e=>{if(e.pointerType==="touch"&&p.has(e.pointerId)&&p.set(e.pointerId,{x:e.clientX,y:e.clientY}),E&&Math.hypot(e.clientX-E.x,e.clientY-E.y)>me&&L(),p.size>=2){pe();return}if(!r||e.pointerId!==r.id)return;const t=e.clientX-r.x0,o=e.clientY-r.y0;if(r.kind==="pan"){const c=A(s)||1,d=k().vpRef.current;k().setVp({z:d.z,x:r.vx+t/c,y:r.vy+o/c}),r.live=!0;return}const{dx:i,dy:f}=k().toStageDelta(t,o);if(!r.live&&r.kind!=="marquee"&&Math.hypot(i,f)<r.slop)return;if(r.live||(r.live=!0,Y(!0),L()),r.kind==="move"){const c=new Map;for(const[d,l]of r.base)c.set(d,{...l,x:Math.round(l.x+i),y:Math.round(l.y+f)});C(n().constrain?.(c,{kind:"move"})??c);return}if(r.kind==="size"){const{minW:c,minH:d}=n(),l=re(r.b0,r.edge,i,f,!1,c,d),y=new Map([[r.key,l]]);C(n().constrain?.(y,{kind:"resize",key:r.key,edge:r.edge})??y);return}const b=k().toStage(e.clientX,e.clientY),a=be(r.sx,r.sy,b.x,b.y);X(a);const u=ge(a,n().boxes());h(r.additive?[...new Set([...r.base,...u])]:u)},ye=e=>{if(!r||e.pointerId!==r.id)return;const t=r;r=null,Y(!1),X(null);try{s.hasPointerCapture(e.pointerId)&&s.releasePointerCapture(e.pointerId)}catch{}if(t.kind==="pan"||t.kind==="marquee")return;if(!t.live){C(null);return}if(t.who!==S()){C(null);return}const o=new Map(W??[]);if(C(null),!o.size)return;let i=new Map(o);if(R.current&&t.kind==="move"){const a=t.keys[0],u=t.base.get(a),c=i.get(a);if(u&&c){const d=ie(c.x)-c.x,l=ie(c.y)-c.y;if(d||l)for(const[y,x]of i)i.set(y,{...x,x:x.x+d,y:x.y+l});i=n().constrain?.(i,{kind:"move"})??i}}else if(R.current&&t.kind==="size"){const a=i.get(t.key);if(a){const u=t.edge.includes("w"),c=t.edge.includes("e"),d=t.edge.includes("n"),l=t.edge.includes("s"),y=u?a.x-t.b0.x:c?a.x+a.w-(t.b0.x+t.b0.w):0,x=d?a.y-t.b0.y:l?a.y+a.h-(t.b0.y+t.b0.h):0,{minW:z,minH:g}=n();i=new Map([[t.key,re(t.b0,t.edge,y,x,!0,z,g)]]),i=n().constrain?.(i,{kind:"resize",key:t.key,edge:t.edge})??i}}let f=!1;if(t.kind==="move"&&n().repel!==!1){const a=n().boxes(),u=[];for(const[z,g]of a)i.has(z)||u.push(g);const c=t.keys[0],d=t.base.get(c),l=i.get(c),y=d&&l?{x:l.x-d.x,y:l.y-d.y}:{x:0,y:0},x=Ee([...i.values()],u,y,void 0,n().repelBounds);if(x.x||x.y){f=!0;for(const[z,g]of i)i.set(z,{...g,x:g.x+x.x,y:g.y+x.y});i=n().constrain?.(i,{kind:"move"})??i}}n().commit(i),[...i].some(([a,u])=>{const c=o.get(a);return!!c&&(c.x!==u.x||c.y!==u.y||c.w!==u.w||c.h!==u.h)})&&n().onSettle?.(o,i,f?"repel":"snap")},T=e=>{if(L(),e.pointerType==="touch"&&(p.delete(e.pointerId),p.size<2&&(m=null),p.size>=1)){M();return}ye(e)},j=e=>{L(),e.pointerType==="touch"&&(p.delete(e.pointerId),p.size<2&&(m=null)),r&&e.pointerId===r.id&&M()},J=e=>document.elementFromPoint(e.clientX,e.clientY)??e.target,Q=e=>{const t=J(e);t.closest?.(_)||n().onDoubleClick?.(n().hitKey(t),I(e))},$=e=>{const t=J(e);if(t.closest?.(_))return;const o=n().hitKey(t);if(!n().onContextMenu)return;e.preventDefault();const i=I(e);n().onContextMenu?.(o,{...i,clientX:e.clientX,clientY:e.clientY})},ee=e=>{if(n().locked||e.target?.closest?.(O))return;const o=v.current;if(e.key==="Escape"){h([]);return}if((e.metaKey||e.ctrlKey)&&e.key.toLowerCase()==="a"){e.preventDefault(),h([...n().boxes().keys()]);return}if(!o.length)return;if(e.key==="Delete"||e.key==="Backspace"){e.preventDefault(),n().onDelete?.(o);return}if(e.key===" "&&o.length===1){e.preventDefault(),n().onEnterEdit?.(o[0]);return}const i=e.key==="ArrowLeft"?-1:e.key==="ArrowRight"?1:0,f=e.key==="ArrowUp"?-1:e.key==="ArrowDown"?1:0;if(!i&&!f)return;e.preventDefault();const b=we(R.current,e.shiftKey),a=n().boxes(),u=new Map;for(const c of o){const d=a.get(c);d&&u.set(c,{...d,x:d.x+i*b,y:d.y+f*b})}u.size&&n().commit(n().constrain?.(u,{kind:"move"})??u)},te=e=>{r&&e.pointerId===r.id&&T(e)};return s.addEventListener("pointerdown",V),s.addEventListener("pointermove",Z),s.addEventListener("pointerup",T),s.addEventListener("pointercancel",j),s.addEventListener("dblclick",Q),s.addEventListener("contextmenu",$),s.addEventListener("keydown",ee),window.addEventListener("pointerup",te,!0),window.addEventListener("blur",K),()=>{K(),s.removeEventListener("pointerdown",V),s.removeEventListener("pointermove",Z),s.removeEventListener("pointerup",T),s.removeEventListener("pointercancel",j),s.removeEventListener("dblclick",Q),s.removeEventListener("contextmenu",$),s.removeEventListener("keydown",ee),window.removeEventListener("pointerup",te,!0),window.removeEventListener("blur",K)}},[h]);return{sel:oe,setSel:h,live:ce,marquee:ue,busy:ae,bind:de}}export{Re as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as c}from"./pageStore-
|
|
1
|
+
import{p as c}from"./pageStore-D_fKLv-o.js";const e=[["path",{d:"M15 6a9 9 0 0 0-9 9V3",key:"1cii5b"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}]],i=c("git-branch",e);export{i as G};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as r,H as g,u as d,r as l,a as S}from"./index-
|
|
1
|
+
import{j as r,H as g,u as d,r as l,a as S}from"./index-YuejkHoJ.js";import{fd as x,u as j,eL as b,bV as C,ab as v,pA as D,pB as f,d6 as h,e as p}from"./appStore-BskcSDl6.js";import{aW as w,dJ as z}from"./pageStore-D_fKLv-o.js";import{d as A}from"./sessionTitle-BtZ1BteL.js";import"./dbStore-Bc2lC8ZI.js";import"./react-DOzedx9n.js";import"./ipc-8cxXGSZK.js";import"./client-DD5czSuF.js";import"./nativeDownload-DlnT8U-y.js";import"./drawingStore-BD5m2eqn.js";S({"home.card.continue":{zh:"继续:{title}",en:"Continue: {title}"},"home.card.claimable":{zh:"{n} 项可领取",en:"{n} to claim"},"home.card.earned":{zh:"已得 {n} 项",en:"{n} earned"},"home.card.installed":{zh:"已装 {n} 个插件",en:"{n} plugins installed"},"home.card.unread":{zh:"{n} 条未读",en:"{n} unread"}});function I({spaceId:e}){return e==="calendar"?r.jsx(E,{}):e==="inbox"?r.jsx(k,{}):r.jsx(y,{spaceId:e})}function y({spaceId:e}){return r.jsx(r.Fragment,{children:F()(e)})}function E(){const[,e]=l.useState(0);l.useEffect(()=>{const s=setInterval(()=>e(c=>c+1),6e4);return()=>clearInterval(s)},[]);const{t:a}=d(),o=Date.now(),n=D().find(s=>s.end>=o);if(!n)return null;const i=n.start.toDateString()===new Date().toDateString(),t=n.allDay?i?"":f(n.start):i?h(n.start):`${f(n.start)} ${h(n.start)}`;return r.jsx(r.Fragment,{children:[t,n.title||a("dashcompact.untitled")].filter(Boolean).join(" ")})}function k(){const{t:e}=d(),a=p(o=>o.unreadCount);return l.useEffect(()=>{p.getState().refreshUnread()},[]),r.jsx(r.Fragment,{children:a?e("home.card.unread",{n:String(a)}):""})}function F(){const{t:e}=d(),a=j(t=>t.sessions[0]),o=b(t=>t.recents[0]),n=C(t=>t.plugins.filter(s=>!s.builtin&&!s.preinstalled).length),i=w(v(t=>({counters:t.counters,claimed:t.claimed,pluginSeries:t.pluginSeries})));return t=>{if(t==="tangu")return a?e("home.card.continue",{title:A(a.title,e)}):"";if(t==="amadeus")return o?(o.split("/").pop()??o).replace(/\.md$/i,""):"";if(t==="rb-market")return n?e("home.card.installed",{n:String(n)}):"";if(t==="rb-achievements"){const s=z(i).flatMap(u=>u.achievements),c=s.filter(u=>!i.claimed[u.id]&&(i.counters[u.event]||0)>=u.goal).length,m=s.filter(u=>i.claimed[u.id]).length;return c?e("home.card.claimable",{n:String(c)}):m?e("home.card.earned",{n:String(m)}):""}return""}}function V(e,a){return x(e,r.jsx(g,{children:r.jsx(I,{spaceId:a})})).dispose}export{I as DeskCardStatus,V as mountCardStatus,F as useCardStatus};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r,j as p,f as F,t as A,a as o}from"./index-
|
|
1
|
+
import{r,j as p,f as F,t as A,a as o}from"./index-YuejkHoJ.js";import{aE as M,X as T,cL as D,u as O}from"./pageStore-D_fKLv-o.js";import{P as R}from"./MarkdownBlock-DjsGkPZ_.js";import"./client-DD5czSuF.js";o({"wikihover.emptyNote":{zh:"(空笔记)",en:"(Empty note)"}});const N=400,C=2500,E=380,P=300;function I(e){const n=[];let d=0;for(const c of e.manifest.root.children)for(const l of c.columns)for(const a of l.children){const s=e.blocks[a.ref]?.content??"";if(s.trim()&&(n.push(s),d+=s.length,d>C))return`${n.join(`
|
|
2
2
|
|
|
3
3
|
`).slice(0,C)}
|
|
4
4
|
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{t as p,r as E,j as $,_ as pe}from"./index-YuejkHoJ.js";import{ks as me,kt as we,u as j,hV as ye,hW as xe,kv as Se}from"./appStore-BskcSDl6.js";import{targetFor as ve}from"./InlineFiles-3g2jMUeA.js";import{c as Ie}from"./react-DOzedx9n.js";import{d1 as V,l as S,f as be}from"./pageStore-D_fKLv-o.js";import{h as $e}from"./dbStore-Bc2lC8ZI.js";import"./client-DD5czSuF.js";const L=new Set(["image/png","image/jpeg","image/webp","image/gif"]),B=20*1024*1024;function Z(e){return{version:2,id:crypto.randomUUID(),name:e,updatedAt:Date.now(),sessionId:null,images:[],elements:[],order:[],collected:[]}}function ct(e,r){return e.images.filter(t=>!t.hidden).sort((t,s)=>t.x-s.x||t.y-s.y).slice(0,r)}function Me(e,r,t){const s=Math.min(1,360/Math.max(e,r));return{x:t.length?Math.max(...t.map(n=>n.x+n.w))+32:0,y:0,w:e*s,h:r*s}}function ke(e){const r=new Map;let t="";for(const s of e){s.role==="user"&&(t=s.content);for(const[n,o]of(s.displayFiles||[]).entries()){if(!L.has(o.mime||"")&&!/\.(png|jpe?g|webp|gif)$/i.test(o.name)||!o.path&&!o.dataUrl)continue;const a=o.path?`${o.sourceSessionId||""}:${o.path}`:`${s.id}:${n}:${o.name}`;r.set(a,{key:a,file:o,prompt:t})}}return[...r.values()]}function lt(e){const r=Math.max(1,Math.ceil(Math.sqrt(e.length)));return e.map((t,s)=>{const n=b(t),o=300/Math.max(n.w,n.h);return{...t,x:s%r*340,y:Math.floor(s/r)*360,w:n.w*o,h:n.h*o}})}function ee(e){return`brightness(${e.brightness}%) contrast(${e.contrast}%) saturate(${e.saturation}%)`}function te(e){const r=e;if(!r||r.version!==1&&r.version!==2||typeof r.id!="string"||typeof r.name!="string"||!((r.sessionId===null||typeof r.sessionId=="string")&&Number.isFinite(r.updatedAt)&&Array.isArray(r.collected)&&r.collected.every(n=>typeof n=="string")&&Array.isArray(r.images)&&r.images.every(n=>ne(n)&&n.blob instanceof Blob&&L.has(n.blob.type)&&n.blob.size<=B&&[n.x,n.y,n.w,n.h,n.width,n.height,n.brightness,n.contrast,n.saturation].every(Number.isFinite)&&n.w>0&&n.h>0&&n.width>0&&n.height>0&&[n.brightness,n.contrast,n.saturation].every(o=>o>=0&&o<=200)&&(n.crop===void 0||Ee(n.crop,n.width,n.height))&&(n.rotation===void 0||Number.isFinite(n.rotation)&&n.rotation>=0&&n.rotation<360)&&(n.parentId===void 0||typeof n.parentId=="string")&&[n.flipX,n.flipY].every(o=>o===void 0||typeof o=="boolean"))&&(r.elements===void 0||Array.isArray(r.elements)&&r.elements.every(Ae))&&(r.order===void 0||Array.isArray(r.order)&&r.order.every(n=>typeof n=="string"))))return!1;const s=[...r.images,...r.elements||[]].map(n=>n.id);return new Set(s).size===s.length}const v=e=>"blob"in e&&e.blob instanceof Blob,I=e=>!v(e)&&e.kind==="frame",ne=e=>!!e&&typeof e.id=="string"&&typeof e.name=="string"&&[e.x,e.y,e.w,e.h].every(r=>Number.isFinite(r)&&Math.abs(r)<=1e6)&&e.w>0&&e.h>0&&[e.locked,e.hidden].every(r=>r===void 0||typeof r=="boolean"),Ee=(e,r,t)=>!!e&&[e.x,e.y,e.w,e.h].every(Number.isFinite)&&e.x>=0&&e.y>=0&&e.w>=1&&e.h>=1&&e.x+e.w<=r&&e.y+e.h<=t;function Ae(e){return ne(e)&&!("blob"in e)&&["text","rectangle","ellipse","frame"].includes(e.kind)&&[e.fill,e.stroke].every(r=>typeof r=="string"&&/^(#[\da-f]{6}|transparent)$/i.test(r))&&[e.strokeWidth,e.radius,e.fontSize].every(Number.isFinite)&&e.strokeWidth>=0&&e.strokeWidth<=100&&e.radius>=0&&e.radius<=1e3&&e.fontSize>=6&&e.fontSize<=500&&typeof e.text=="string"&&e.text.length<=1e4&&["sans-serif","serif","monospace"].includes(e.fontFamily)&&typeof e.bold=="boolean"&&["left","center","right"].includes(e.align)}function b(e){const r=e.crop||{w:e.width,h:e.height},t=(e.rotation||0)*Math.PI/180;return{w:Math.round((Math.abs(r.w*Math.cos(t))+Math.abs(r.h*Math.sin(t)))*1e8)/1e8,h:Math.round((Math.abs(r.w*Math.sin(t))+Math.abs(r.h*Math.cos(t)))*1e8)/1e8}}function dt(e,r){const t={...e,...r},s=b(t),n=b(e),o=e.w/n.w,a=s.w*o,i=s.h*o;return{...t,x:e.x+(e.w-a)/2,y:e.y+(e.h-i)/2,w:a,h:i}}function y(e){const r=[...e.images,...e.elements||[]],t=new Map((e.order||[]).map((s,n)=>[s,n]));return r.sort((s,n)=>Number(I(n))-Number(I(s))||(t.get(s.id)??1e9)-(t.get(n.id)??1e9))}function T(e,r){return{...e,version:2,images:r.filter(v),elements:r.filter(t=>!v(t)),order:r.map(t=>t.id)}}function Te(e,r){return T(e,y(e).map(r))}const re=(e,r)=>r.x>=e.x&&r.y>=e.y&&r.x+r.w<=e.x+e.w+.01&&r.y+r.h<=e.y+e.h+.01;function Ue(e,r){const t=y(e),s=new Map(r);for(const n of t.filter(I)){const o=r.get(n.id);if(!(!o||n.locked||o.x===n.x&&o.y===n.y))for(const a of t)!I(a)&&!a.locked&&!s.has(a.id)&&re(n,a)&&s.set(a.id,{...a,x:a.x+o.x-n.x,y:a.y+o.y-n.y})}return Te(e,n=>n.locked||!s.has(n.id)?n:{...n,...s.get(n.id)})}function ut(e,r,t=0,s=0){return{id:crypto.randomUUID(),kind:e,name:r,x:t,y:s,w:e==="frame"?1080:320,h:e==="frame"?1080:e==="text"?120:240,fill:e==="frame"?"#ffffff":e==="text"?"#242424":"#c9c4b8",stroke:"#242424",strokeWidth:0,radius:0,text:e==="text"?r:"",fontSize:40,fontFamily:"sans-serif",bold:!1,align:"left"}}function je(e,r=32,t=32){return e.map(s=>({...s,id:crypto.randomUUID(),locked:!1,x:s.x+r,y:s.y+t}))}function ft(e,r,t){const s=y(e),n=new Set(r);if(t==="front"||t==="back"){const a=s.filter(c=>n.has(c.id)),i=s.filter(c=>!n.has(c.id));return T(e,t==="front"?[...i,...a]:[...a,...i])}const o=t==="up"?1:-1;for(let a=o===1?s.length-2:1;a>=0&&a<s.length;a-=o)n.has(s[a].id)&&s[a+o]&&!n.has(s[a+o].id)&&([s[a],s[a+o]]=[s[a+o],s[a]]);return T(e,s)}const Pe=["1:1","4:5","5:4","2:3","3:2","16:9","9:16"],Le=["1:1","2:3","3:2","16:9","9:16"],A=e=>{const[r,t]=e.split(":").map(Number);return r>0&&t>0?r/t:1};function Be(e,r){const t=e>0&&r>0?e/r:1,s=Pe.find(n=>Math.abs(Math.log(A(n)/t))<.012);return s||(t>=1?`${Number(t.toFixed(2))}:1`:`1:${Number((1/t).toFixed(2))}`)}function ht(e,r){const t=b(e),s=Be(t.w,t.h),n=r==="original"?s:r,o=r==="original"?t.w/t.h:A(n),a=Le.reduce((i,c)=>Math.abs(Math.log(A(c)/o))<Math.abs(Math.log(A(i)/o))?c:i);return{aspect:o,requested:n,engine:a,originalLabel:s}}function _e(e,r,t){if(!(e>0&&r>0&&t>0))return;const s=e/r;if(Math.abs(Math.log(s/t))<.001)return;if(s>t){const o=r*t;return{x:(e-o)/2,y:0,w:o,h:r}}const n=e/t;return{x:0,y:(r-n)/2,w:e,h:n}}function Re(e,r,t=[]){const s=new Set(r.sourceIds||[]),n=e.images.filter(d=>s.has(d.id)),o=[...y(e),...t],a=n.length?Math.min(360,Math.max(n[0].w,n[0].h)):320,i=Math.max(.2,Math.min(5,r.aspect||1)),c=i>=1?a:a*i,u=i>=1?a/i:a,l=n.length?Math.max(...n.map(d=>d.x+d.w)):o.length?Math.max(...o.map(d=>d.x+d.w)):-32,f=n.length?Math.min(...n.map(d=>d.y)):0;return Array.from({length:Math.max(1,Math.min(4,Math.round(r.count)||1))},(d,h)=>({x:l+32+h*(c+32),y:f,w:c,h:u}))}function ze(e,r){if(e!=="generate_image"&&e!=="edit_image")return null;let t={};try{t=r?JSON.parse(r):{}}catch{}const s=typeof t.size=="string"&&/^\d+(?:\.\d+)?:\d+(?:\.\d+)?$/.test(t.size)?t.size:"1:1",n=Number.isInteger(t.n)?Number(t.n):1;return{count:Math.max(1,Math.min(4,n)),aspect:A(s),ratio:s,kind:e==="edit_image"?"edit":"generate"}}let R;function se(){return R??=new Promise((e,r)=>{const t=indexedDB.open("forsion-image-studio",1);t.onupgradeneeded=()=>t.result.createObjectStore("boards",{keyPath:"id"}),t.onsuccess=()=>e(t.result),t.onerror=()=>{R=void 0,r(t.error)},t.onblocked=()=>{R=void 0,r(new Error("Image Studio storage is blocked by another window"))}})}async function Oe(){const e=await se();return new Promise((r,t)=>{const s=e.transaction("boards").objectStore("boards").getAll();s.onsuccess=()=>{if(!s.result.every(te)){t(new Error("Image Studio contains an unreadable project"));return}r(s.result)},s.onerror=()=>t(s.error)})}async function De(e){const r=await se();return new Promise((t,s)=>{const n=r.transaction("boards","readwrite");n.objectStore("boards").put(e),n.oncomplete=()=>t(),n.onerror=()=>s(n.error),n.onabort=()=>s(n.error||new Error("Image Studio save was interrupted"))})}let K,F,Ne=0;const k=new Set;let M;function z(e){k.add(e),g.setState({saving:!0}),clearTimeout(F),F=setTimeout(()=>{g.getState().flush()},250)}const g=Ie((e,r)=>({boards:{},activeId:null,ready:!1,error:"",saving:!1,selection:[],past:{},future:{},placeholders:{},generationTools:{},pending:null,hydrate:()=>K??=(async()=>{try{const t=await Oe();let s=null;try{s=localStorage.getItem("image-studio.active")}catch{}e({boards:Object.fromEntries(t.map(n=>[n.id,n])),activeId:t.find(n=>n.id===s)?.id||null,ready:!0,error:""})}catch(t){e({error:String(t),ready:!1}),K=void 0}})(),create:t=>{if(!r().ready)return"";const s=Z(t);return e(n=>({boards:{...n.boards,[s.id]:s}})),r().open(s.id),z(s.id),s.id},open:t=>{if(r().boards[t]){e({activeId:t,selection:[],pending:null});try{localStorage.setItem("image-studio.active",t)}catch{}}},close:()=>{if(r().activeId){e({activeId:null,selection:[],pending:null});try{localStorage.removeItem("image-studio.active")}catch{}}},update:(t,s,n=!0)=>{const o=r().boards[t];if(!o)return;const a=s(o);a!==o&&(e(i=>({boards:{...i.boards,[t]:{...a,updatedAt:Date.now()}},...n?{past:{...i.past,[t]:[...(i.past[t]||[]).slice(-29),o]},future:{...i.future,[t]:[]}}:{}})),z(t))},undo:(t,s=!1)=>{const n=s?"future":"past",o=s?"past":"future",a=r()[n][t]||[],i=r().boards[t],c=a.at(-1);!i||!c||(e(u=>({boards:{...u.boards,[t]:{...c,sessionId:i.sessionId,collected:i.collected,updatedAt:Date.now()}},[n]:{...u[n],[t]:a.slice(0,-1)},[o]:{...u[o],[t]:[...u[o][t]||[],i]},selection:[]})),z(t))},flush:async()=>{if(clearTimeout(F),M)return M;M=(async()=>{try{for(;k.size;){const t=k.values().next().value,s=r().boards[t];k.delete(t);try{s&&await De(s)}catch(n){throw k.add(t),n}}e({saving:!1,error:""})}catch(t){e({saving:!1,error:String(t)})}})();try{await M}finally{M=void 0}},queue:(t,s,n=[])=>e(o=>({pending:{sessionId:t,text:o.pending?.sessionId===t?`${o.pending.text}
|
|
2
|
+
|
|
3
|
+
${s}`:s,attachments:[...o.pending?.sessionId===t?o.pending.attachments:[],...n],seq:++Ne}})),consume:t=>r().pending?.seq!==t?!1:(e({pending:null}),!0),beginGeneration:(t,s,n)=>{const o=r().boards[t];if(!o)return[];const a=r().placeholders[t]||[],i=Re(o,n,a),c=crypto.randomUUID(),u=Date.now(),l=i.map((f,d)=>({...f,id:crypto.randomUUID(),generationId:c,boardId:t,sessionId:s,sourceIds:n.sourceIds||[],kind:n.kind,status:"preparing",aspect:n.aspect,ratio:n.ratio,index:d,count:i.length,createdAt:u}));return e(f=>({placeholders:{...f.placeholders,[t]:[...f.placeholders[t]||[],...l]}})),l.map(f=>f.id)},activateGeneration:t=>{const s=new Set(t);e(n=>({placeholders:Object.fromEntries(Object.entries(n.placeholders).map(([o,a])=>[o,a.map(i=>s.has(i.id)&&i.status==="preparing"?{...i,status:"running"}:i)]))}))},bindGenerationTool:(t,s,n,o)=>{if((r().generationTools[t]||[]).includes(n))return;e(l=>({generationTools:{...l.generationTools,[t]:[...(l.generationTools[t]||[]).slice(-199),n]}}));const i=(r().placeholders[t]||[]).find(l=>l.sessionId===s&&!l.toolId&&l.status!=="failed");if(i){e(l=>({placeholders:{...l.placeholders,[t]:(l.placeholders[t]||[]).map(f=>f.generationId===i.generationId?{...f,toolId:n,status:"running"}:f)}}));return}const c=r().beginGeneration(t,s,o),u=new Set(c);e(l=>({placeholders:{...l.placeholders,[t]:(l.placeholders[t]||[]).map(f=>u.has(f.id)?{...f,toolId:n,status:"running"}:f)}}))},failGeneration:(t,s)=>{const n=s.ids?new Set(s.ids):null;e(o=>({placeholders:{...o.placeholders,[t]:(o.placeholders[t]||[]).map(a=>(!n||n.has(a.id))&&(!s.sessionId||a.sessionId===s.sessionId)&&(!s.toolId||a.toolId===s.toolId)?{...a,status:"failed"}:a)}}))},takeGeneration:(t,s)=>{const o=(r().placeholders[t]||[]).filter(a=>a.sessionId===s&&a.status!=="failed").sort((a,i)=>a.createdAt-i.createdAt||a.index-i.index)[0];if(o)return e(a=>({placeholders:{...a.placeholders,[t]:(a.placeholders[t]||[]).filter(i=>i.id!==o.id)}})),o},removeGeneration:(t,s)=>e(n=>({placeholders:{...n.placeholders,[t]:(n.placeholders[t]||[]).filter(o=>o.id!==s)}}))}));me({claim:({card:e,sessionId:r})=>{const t=g.getState().pending;return!t||t.sessionId!==r||!e.closest("[data-image-studio-chat]")||!e.getClientRects().length||!g.getState().consume(t.seq)?null:{texts:[t.text],attachments:t.attachments}}});g.subscribe((e,r)=>{e.pending!==r.pending&&we()});const oe=e=>e.replace(/[<>&"']/g,r=>({"<":"<",">":">","&":"&",'"':""","'":"'"})[r]),Fe=e=>`${e.bold?"700":"400"} ${e.fontSize}px ${e.fontFamily}`;function Ce(e){const r=document.createElement("canvas").getContext("2d");r.font=Fe(e);const t=[];for(const s of e.text.split(`
|
|
4
|
+
`)){let n="";for(const o of Array.from(s))n&&r.measureText(n+o).width>e.w&&(t.push(n),n=""),n+=o;t.push(n)}return t}function ae(e){const{w:r,h:t,fill:s,stroke:n,strokeWidth:o}=e,a=`fill="${s}" stroke="${n}" stroke-width="${o}"`;if(e.kind==="ellipse")return`<ellipse cx="${r/2}" cy="${t/2}" rx="${Math.max(0,(r-o)/2)}" ry="${Math.max(0,(t-o)/2)}" ${a}/>`;if(e.kind!=="text")return`<rect x="${o/2}" y="${o/2}" width="${Math.max(0,r-o)}" height="${Math.max(0,t-o)}" rx="${e.radius}" ${a}/>`;const i=e.align==="center"?r/2:e.align==="right"?r:0,c=e.align==="center"?"middle":e.align==="right"?"end":"start";return`<text fill="${s}" font-family="${e.fontFamily}" font-size="${e.fontSize}" font-weight="${e.bold?700:400}" text-anchor="${c}" xml:space="preserve">${Ce(e).map((u,l)=>`<tspan x="${i}" y="${e.fontSize+l*e.fontSize*1.25}">${oe(u)}</tspan>`).join("")}</text>`}function Ge(e,r){const t=y(e).filter(a=>!a.hidden),s=t.filter(a=>r.includes(a.id));if(s.length===1&&I(s[0])){const a=s[0];return{bounds:a,items:[a,...t.filter(i=>!I(i)&&i.x<a.x+a.w&&i.x+i.w>a.x&&i.y<a.y+a.h&&i.y+i.h>a.y)]}}const n=r.length?s:t,o=V(n);return o?{items:n,bounds:o}:null}function gt(e,r,t){const s=y(e),n=s.filter(i=>r.includes(i.id)&&!i.locked),o=V(n);if(!o||n.length<2)return e;const a=new Map(n.map(i=>[i.id,{...i,x:t==="left"?o.x:t==="center"?o.x+(o.w-i.w)/2:t==="right"?o.x+o.w-i.w:i.x,y:t==="top"?o.y:t==="middle"?o.y+(o.h-i.h)/2:t==="bottom"?o.y+o.h-i.h:i.y}]));return Ue(e,a)}const pt=e=>v(e)?"image":e.kind;async function Y(e){if(!L.has(e.type)||e.size>B)throw new Error(p("imageStudio.importLimit"));const r=await createImageBitmap(e);if(r.width*r.height>4e7)throw r.close(),new Error(p("imageStudio.tooLarge"));return r}async function q(e,r,t){if(!L.has(e.type)||e.size>B)throw new Error(p("imageStudio.importLimit"));e=new Blob([await e.arrayBuffer()],{type:e.type});const s=await Y(e),n={id:crypto.randomUUID(),name:r,blob:e,width:s.width,height:s.height,x:0,y:0,w:0,h:0,source:t,brightness:100,contrast:100,saturation:100};return s.close(),n}function _(e){return new Promise((r,t)=>{const s=new FileReader;s.onload=()=>r(String(s.result)),s.onerror=()=>t(s.error),s.readAsDataURL(e)})}async function C(e,r="current"){const t=r==="original"?{...e,crop:void 0,rotation:0,flipX:!1,flipY:!1,brightness:100,contrast:100,saturation:100}:e,s=await W([t],!0,1536);if(s.size>59e5)throw new Error(p("imageStudio.referenceBytes"));const n=await _(s);return{name:e.name.replace(/\.[^.]+$/,"")+".png",mimeType:"image/png",data:n.split(",")[1],size:s.size}}function ie(e,r){const t=URL.createObjectURL(e),s=document.createElement("a");s.href=t,s.download=r,s.click(),setTimeout(()=>URL.revokeObjectURL(t),3e4)}async function W(e,r=!1,t){const s=r&&e.length===1?[{...e[0],x:0,y:0,...b(e[0])}]:e,n=V(s);if(!n)throw new Error(p("imageStudio.select"));const o=t?Math.min(1,t/Math.max(n.w,n.h)):1,a=Math.ceil(n.w*o),i=Math.ceil(n.h*o);if(a*i>4e7||Math.max(a,i)>16384)throw new Error(p("imageStudio.exportLimit"));const c=document.createElement("canvas");c.width=a,c.height=i;const u=c.getContext("2d");if(!u)throw new Error("Canvas unavailable");for(const l of s){const f=await Y(l.blob),d=l.crop||{x:0,y:0,w:l.width,h:l.height},h=b(l);u.save(),u.filter=ee(l),u.translate((l.x-n.x+l.w/2)*o,(l.y-n.y+l.h/2)*o),u.scale(l.w*o/h.w,l.h*o/h.h),u.rotate((l.rotation||0)*Math.PI/180),u.scale(l.flipX?-1:1,l.flipY?-1:1),u.drawImage(f,d.x,d.y,d.w,d.h,-d.w/2,-d.h/2,d.w,d.h),u.restore(),f.close()}return new Promise((l,f)=>c.toBlob(d=>d?l(d):f(new Error("PNG export failed")),"image/png"))}async function Ve(e){const r=await Promise.all(e.images.map(async({blob:t,...s})=>({...s,dataUrl:await _(t)})));ie(new Blob([JSON.stringify({...e,version:2,images:r,sessionId:null,collected:[]})],{type:"application/json"}),`${e.name}.forsion-image.json`)}async function Ye(e){if(e.size>128*1024*1024)throw new Error(p("imageStudio.tooLarge"));const r=JSON.parse(await e.text());if(!r||![1,2].includes(r.version)||!Array.isArray(r.images)||r.images.length>200||r.elements!==void 0&&(!Array.isArray(r.elements)||r.elements.length>500))throw new Error("Unsupported Image Studio project");const t=await Promise.all(r.images.map(async n=>{if(typeof n.dataUrl!="string"||!/^data:image\/(png|jpeg|webp|gif);base64,/.test(n.dataUrl))throw new Error("Invalid image data");const[o,a]=n.dataUrl.split(",");if(a.length>B*1.4)throw new Error(p("imageStudio.importLimit"));const i=atob(a),c=new Blob([Uint8Array.from(i,l=>l.charCodeAt(0))],{type:o.slice(5,-7)});return{...await q(c,String(n.name||""),"import"),id:n.id,source:n.source==="generated"?"generated":"import",parentId:typeof n.parentId=="string"?n.parentId:void 0,prompt:typeof n.prompt=="string"?n.prompt:void 0,x:n.x,y:n.y,w:n.w,h:n.h,brightness:n.brightness,contrast:n.contrast,saturation:n.saturation,crop:n.crop,rotation:n.rotation,flipX:n.flipX,flipY:n.flipY,locked:n.locked,hidden:n.hidden}})),s={...Z(String(r.name||p("imageStudio.untitled"))),images:t,elements:r.elements||[],order:r.order||[]};if(!te(s))throw new Error("Invalid Image Studio project");return s}function ce(e,r){const t=Ge(e,r);if(t?.items.length===1&&v(t.items[0])){const s={...t.items[0],x:0,y:0,...b(t.items[0])};return{items:[s],bounds:s}}return t}async function le(e,r,t){const s=ce(e,r);if(!s)throw new Error(p("imageStudio.select"));const{bounds:n,items:o}=s,a=Math.round(n.w*t.scale),i=Math.round(n.h*t.scale);if(a<1||i<1||a*i>4e7||Math.max(a,i)>16384)throw new Error(p("imageStudio.exportLimit"));const c=t.format==="jpeg"&&t.background==="transparent"?"#ffffff":t.background;if(!/^(#[\da-f]{6}|transparent)$/i.test(c))throw new Error("Invalid background");const u=[];c!=="transparent"&&u.push(`<rect x="${n.x}" y="${n.y}" width="${n.w}" height="${n.h}" fill="${c}"/>`);for(const h of o)if(v(h)){const w=await _(await W([h],!0));u.push(`<image x="${h.x}" y="${h.y}" width="${h.w}" height="${h.h}" preserveAspectRatio="none" href="${w}"/>`)}else u.push(`<svg x="${h.x}" y="${h.y}" width="${h.w}" height="${h.h}" viewBox="0 0 ${h.w} ${h.h}" overflow="hidden">${ae(h)}</svg>`);const l=new Blob([`<svg xmlns="http://www.w3.org/2000/svg" width="${a}" height="${i}" viewBox="${n.x} ${n.y} ${n.w} ${n.h}"><title>${oe(e.name)}</title>${u.join("")}</svg>`],{type:"image/svg+xml"});if(t.format==="svg")return l;const f=URL.createObjectURL(l),d=new Image;try{d.src=f,await d.decode();const h=document.createElement("canvas");h.width=a,h.height=i;const w=h.getContext("2d");if(!w)throw new Error("Canvas unavailable");return w.drawImage(d,0,0),await new Promise((m,U)=>h.toBlob(x=>x?m(x):U(new Error("Export failed")),`image/${t.format}`,t.quality))}finally{URL.revokeObjectURL(f)}}const qe=Object.freeze(Object.defineProperty({__proto__:null,blobDataUrl:_,decodeImage:Y,downloadBlob:ie,exportProject:Ve,imageAttachment:C,importProject:Ye,makeImage:q,renderBoard:le,renderImages:W,sceneForExport:ce},Symbol.toStringTag,{value:"Module"})),Q=[],O=new Set;function We(e){const[r,t]=E.useState("");return E.useEffect(()=>{const s=URL.createObjectURL(e);return t(s),()=>URL.revokeObjectURL(s)},[e]),r}function mt(e,r,t){const s=j(o=>e.sessionId&&o.messagesBySession[e.sessionId]||Q),n=j(o=>!!(e.sessionId&&o.runningBySession[e.sessionId]));E.useEffect(()=>{if(e.sessionId)for(const o of s.flatMap(a=>a.toolEvents||[])){const a=ze(o.name,o.arguments);a&&(o.done?(o.isError||/^Error:/i.test(o.result||""))&&g.getState().failGeneration(e.id,{sessionId:e.sessionId,toolId:o.id}):g.getState().bindGenerationTool(e.id,e.sessionId,o.id,a))}},[e.id,e.sessionId,s]),E.useEffect(()=>{if(!e.sessionId||n)return;const o=window.setTimeout(()=>{const a=g.getState(),i=(a.placeholders[e.id]||[]).filter(c=>c.sessionId===e.sessionId&&c.status==="running").map(c=>c.id);i.length&&a.failGeneration(e.id,{ids:i})},800);return()=>window.clearTimeout(o)},[e.id,e.sessionId,s,n]),E.useEffect(()=>{const o=e.sessionId;if(!o)return;let a=!1;const i=ke(s);return(async()=>{for(const c of i){if(a)return;const u=g.getState().boards[e.id];if(!(!u||u.collected.includes(c.key)||O.has(c.key))){O.add(c.key);try{const l=j.getState(),f=l.configBySession[c.file.sourceSessionId||o]?.execMode||"sandbox",d=await ve(c.file,l.cfg,o,f).load();if(a)return;if(!d||"tooLarge"in d)throw new Error(c.file.name);const h=new Blob([d.bytes],{type:d.mimeType||c.file.mime}),w=await q(h,c.file.name,"generated");if(a)return;const m=g.getState().takeGeneration(e.id,o),U=m?_e(w.width,w.height,m.aspect):void 0;g.getState().update(e.id,x=>x.collected.includes(c.key)?x:{...x,collected:[...x.collected,c.key],images:[...x.images,{...w,...m?{x:m.x,y:m.y,w:m.w,h:m.h}:Me(w.width,w.height,x.images),...U?{crop:U}:{},...m?.sourceIds[0]?{parentId:m.sourceIds[0]}:{},sourceKey:c.key,prompt:c.prompt}]})}catch(l){a||r(String(l))}finally{O.delete(c.key)}}}})(),()=>{a=!0}},[e.id,e.sessionId,s,r,t])}function Xe({image:e,className:r}){const t=We(e.blob),s=b(e),n=e.crop||{x:0,y:0,w:e.width,h:e.height};return $.jsx("svg",{className:`ims-raster ${r||""}`,role:"img","aria-label":e.name,"data-original-width":e.width,viewBox:`0 0 ${s.w} ${s.h}`,preserveAspectRatio:"xMidYMid meet",style:{filter:ee(e)},children:$.jsx("g",{transform:`translate(${s.w/2} ${s.h/2}) rotate(${e.rotation||0}) scale(${e.flipX?-1:1} ${e.flipY?-1:1})`,children:$.jsx("svg",{x:-n.w/2,y:-n.h/2,width:n.w,height:n.h,viewBox:`${n.x} ${n.y} ${n.w} ${n.h}`,overflow:"hidden",children:t&&$.jsx("image",{href:t,width:e.width,height:e.height})})})})}function wt({item:e}){return v(e)?$.jsx(Xe,{image:e}):$.jsx("svg",{role:"img","aria-label":e.name,viewBox:`0 0 ${e.w} ${e.h}`,preserveAspectRatio:"xMidYMid meet",overflow:"hidden",dangerouslySetInnerHTML:{__html:ae(e)}})}const Je="image-studio-nav",He="image-studio-chat",P="image-studio-assets",yt="image-studio-inspector",D=(e,r)=>e.some(t=>t.type===r);function Ke(e){const r=S.getState();if(D(r.mainTabs,e)){r.openView(e,{},"main");return}const t=D(r.leftTabs,e)?"left":D(r.rightTabs,e)?"right":e===P?"left":"right";(t==="left"?r.leftVisible:r.rightVisible)||r.toggleSidebar(t),S.getState().openView(e,{},t)}let de=!1,X=!1,ue=0,J=!1,G;const Qe=2e3,fe=()=>"bottomVisible"in S.getState();function he(){if(clearTimeout(G),!J||be.getState().activeSpaceId!=="image-studio")return;const e=S.getState();if(e.syncPanelState(),!S.getState().rightVisible)e.toggleSidebar("right");else if(Date.now()-ue<Qe){G=setTimeout(he,50);return}de=!0,X=!1}function xt(){const e=S.getState();J=!0;let r=!1;e.remapLeaves(t=>{t===P&&(r=!0)}),r||e.replaceViewsOfType(Je,P),fe()&&(de&&!X||he())}function St(e){const r=S.getState();J=!1,clearTimeout(G),r.remapLeaves(t=>t===P?null:void 0),fe()&&e&&S.getState().rightVisible&&(S.getState().toggleSidebar("right"),X=!0,ue=Date.now())}const N=new Map;async function Ze(e){const r=g.getState().boards[e];if(!r)throw new Error("Project no longer available");if(r.sessionId)return r.sessionId;const t=N.get(e);if(t)return t;const s=(async()=>{const n=j.getState(),o={...ye({...xe(n.desktopConfig,!1),execMode:"sandbox"},void 0),agentSlug:n.defaultAgentSlug},a=await Se($e(),{title:r.name,projectless:!0,agent_config:o});return n.adoptSession({...a,agent_config:a.agent_config||o},{fresh:!0}),g.getState().update(e,i=>({...i,sessionId:a.id}),!1),a.id})();N.set(e,s);try{return await s}finally{N.delete(e)}}async function et(e,r,t=[]){const s=await Ze(e);g.getState().activeId===e&&(Ke(He),g.getState().queue(s,r,t))}let H=[];function ge(e=!1){const{activeId:r,boards:t,selection:s}=g.getState(),n=r?t[r]:void 0;if(!n)return[];const o=y(n),a=o.filter(i=>s.includes(i.id)&&I(i));return o.filter(i=>s.includes(i.id)||e&&!I(i)&&a.some(c=>re(c,i)))}function vt(){H=ge(!0)}function It(){return H.length>0}function bt(e=!1){const r=g.getState(),t=r.activeId;if(!t)return;const s=je(e?ge(!0):H);s.length&&(r.update(t,n=>T(n,[...y(n),...s])),g.setState({selection:s.map(n=>n.id)}))}function $t(){const e=g.getState(),r=e.activeId,t=new Set(e.selection);r&&(e.update(r,s=>T(s,y(s).filter(n=>n.locked||!t.has(n.id)))),g.setState({selection:[]}))}async function Mt(){const{activeId:e,boards:r,selection:t}=g.getState(),s=e?r[e]:void 0;if(!s)return;const n=y(s).filter(a=>t.includes(a.id)&&!a.hidden);if(!n.length)return;if(n.length>8)throw new Error(p("imageStudio.referenceLimit"));const o=n.every(v)?await Promise.all(n.map(a=>C(a))):await(async()=>{const a=await le(s,t,{format:"png",scale:1,background:"transparent",quality:.92}),{makeImage:i}=await pe(async()=>{const{makeImage:c}=await Promise.resolve().then(()=>qe);return{makeImage:c}},void 0,import.meta.url);return[await C(await i(a,`${s.name}.png`,"import"))]})();await et(s.id,p("imageStudio.referencePrompt"),o)}export{et as A,ut as B,Ve as C,q as D,Me as E,We as F,Ee as G,Pe as H,Xe as I,C as J,Y as K,wt as L,_ as M,ht as N,Ze as O,pt as P,gt as Q,dt as R,He as S,W as a,y as b,Mt as c,ie as d,vt as e,ft as f,$t as g,It as h,v as i,ct as j,b as k,Ye as l,Te as m,xt as n,St as o,bt as p,mt as q,le as r,ce as s,Ue as t,g as u,lt as v,P as w,yt as x,Ke as y,T as z};
|