@augmentd-labs/canvas-web 2.26.19 → 2.26.20

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.
Files changed (155) hide show
  1. package/dist/assets/DocumentBodyEditor-CE2S2X6g.js +1 -0
  2. package/dist/assets/DocumentIcon-BS10SIP6.js +1 -0
  3. package/dist/assets/EditorOverlay-BUToR_av.js +1 -0
  4. package/dist/assets/FileForm-BxTixeDm.js +1 -0
  5. package/dist/assets/FiltersApplet-BpqITV13.js +1 -0
  6. package/dist/assets/HomeFab-BAKOAkpE.js +3 -0
  7. package/dist/assets/IdentityFields-C2MPM-Ab.js +1 -0
  8. package/dist/assets/LensApplet-DNTGwgZs.js +1 -0
  9. package/dist/assets/LinkToCard-BZwwE-Dv.js +1 -0
  10. package/dist/assets/LinkToSidePanel-eCy3nW4R.js +1 -0
  11. package/dist/assets/{LocationTab-BONJQfYM.js → LocationTab-DAtqAQ3l.js} +1 -1
  12. package/dist/assets/{MarkdownEditor-CkobBLtI.js → MarkdownEditor-7OqSDr7E.js} +1 -1
  13. package/dist/assets/MessageComposerDialog-DzLhkHyh.js +4 -0
  14. package/dist/assets/{NextShell-Byg6OtC2.js → NextShell-D9gvlKY2.js} +1 -1
  15. package/dist/assets/NotesApplet-gMAMneRi.js +1 -0
  16. package/dist/assets/ObjectPropertiesCard-C3jt40tM.css +1 -0
  17. package/dist/assets/ObjectPropertiesCard-DDcRLpsW.js +8 -0
  18. package/dist/assets/PathPickerField-cVs5sZuG.js +1 -0
  19. package/dist/assets/PickDocumentsCard-BlicxMqC.js +1 -0
  20. package/dist/assets/SketchApplet-D8mkYmK9.js +1 -0
  21. package/dist/assets/{SketchEditor-C9_lu3Ot.js → SketchEditor-zMrm1npg.js} +4 -4
  22. package/dist/assets/TerminalApplet-BO2HRp0z.js +20 -0
  23. package/dist/assets/TerminalApplet-BrP-ENHg.css +1 -0
  24. package/dist/assets/TextDocumentEditor-7V4aFL8i.js +1 -0
  25. package/dist/assets/TodosApplet-swdaBT-2.js +1 -0
  26. package/dist/assets/TodosWidget-BXF8fYer.js +1 -0
  27. package/dist/assets/UploadProgressList-B2xCVzFR.js +1 -0
  28. package/dist/assets/_agentId_-Ci4j4UYy.js +0 -0
  29. package/dist/assets/_contextId_-DDFyhgV2.js +1 -0
  30. package/dist/assets/_workspaceName_-DO9ZBx7N.js +1 -0
  31. package/dist/assets/about-B1_n4Iu8.js +1 -0
  32. package/dist/assets/add-BnwWcDlO.js +1 -0
  33. package/dist/assets/admin-Bhg9QBHL.js +5 -0
  34. package/dist/assets/agents-ClK3Y2x0.js +1 -0
  35. package/dist/assets/agents-DquOfkFX.js +1 -0
  36. package/dist/assets/alert-dialog-DIA-tAP5.js +1 -0
  37. package/dist/assets/api-CA6WiiYM.js +1 -0
  38. package/dist/assets/api-tokens-O5iFESo0.js +1 -0
  39. package/dist/assets/appearance-C2vu3ALt.js +1 -0
  40. package/dist/assets/applet-target-DnTa2VAT.js +1 -0
  41. package/dist/assets/apps-BZrw8Cqo.js +1 -0
  42. package/dist/assets/auth-Bx9fAZmz.js +1 -0
  43. package/dist/assets/auth-CUdpxbLV.js +1 -0
  44. package/dist/assets/backend-sync-progress-DU-e9TWi.css +1 -0
  45. package/dist/assets/backend-sync-progress-DWR42uQV.js +7 -0
  46. package/dist/assets/blobs-WiXP9QRi.js +1 -0
  47. package/dist/assets/button-Bv4zA1qr.js +1 -0
  48. package/dist/assets/chunk-62JRHF6Z-vspAGgtK.js +3 -0
  49. package/dist/assets/{chunk-K2UTITRG-zQFDOW3Q.js → chunk-K2UTITRG-BvHe9UPk.js} +3 -3
  50. package/dist/assets/code-editor-BOIngd5F.js +40 -0
  51. package/dist/assets/color-DFEH4BfK.js +1 -0
  52. package/dist/assets/content-app-view-C33Ip_rx.js +1 -0
  53. package/dist/assets/context-D_K4g9SQ.js +1 -0
  54. package/dist/assets/contexts-B6d6Axza.js +1 -0
  55. package/dist/assets/contexts-CgydYDn-2.js +1 -0
  56. package/dist/assets/date-time-picker-BZaA3M9_.js +1 -0
  57. package/dist/assets/desk-dI_FvLsK.js +1 -0
  58. package/dist/assets/devices-CAa1bRxk.js +1 -0
  59. package/dist/assets/devices-D3-_UWM0.js +1 -0
  60. package/dist/assets/document-BG_mODBn.js +1 -0
  61. package/dist/assets/document-list-BiogH4tf.js +2 -0
  62. package/dist/assets/document-list-DAYdk5vh.css +1 -0
  63. package/dist/assets/document-open-mode-DoImW-xs.js +1 -0
  64. package/dist/assets/embedding-Cjrxh6MN.js +1 -0
  65. package/dist/assets/embedding-m8SZH4oN.js +1 -0
  66. package/dist/assets/form-panel-Dz96K7Lv.js +1 -0
  67. package/dist/assets/geo-CZfs0E-x.js +1 -0
  68. package/dist/assets/home-pS7q4Wl4.js +1 -0
  69. package/dist/assets/image-GAAHSSAO-CI-0hUck.js +1 -0
  70. package/dist/assets/index-C10UNpew.css +2 -0
  71. package/dist/assets/index-exXolIqD.js +16 -0
  72. package/dist/assets/inferd-config-editor-DagMmwW4.js +1 -0
  73. package/dist/assets/input-BOtCd4HP.js +1 -0
  74. package/dist/assets/key-bindings-BOtykyXR.js +1 -0
  75. package/dist/assets/label-CNoJOoe0.js +1 -0
  76. package/dist/assets/last-path-BbXWC3b3.js +1 -0
  77. package/dist/assets/layer-style-Byl5LNFR.js +1 -0
  78. package/dist/assets/lazy-editor-Cbva8Pe2.js +2 -0
  79. package/dist/assets/logs-CdbfY8_H.js +1 -0
  80. package/dist/assets/{markdown-html-XoABNf32.js → markdown-html-CZMGihx6.js} +1 -1
  81. package/dist/assets/markdown-view-BBBZtNSR.js +2 -0
  82. package/dist/assets/note-save-status-DPz4VzL6.js +1 -0
  83. package/dist/assets/offline-BjMpUv3N.js +1 -0
  84. package/dist/assets/page-header-GtTr9Ff_.js +1 -0
  85. package/dist/assets/public-share-DT9Tgn_Y.js +1 -0
  86. package/dist/assets/query-debug-tVbB_8Z6.js +1 -0
  87. package/dist/assets/react-BHzhHVTZ.js +164 -0
  88. package/dist/assets/registry-6tE_1KPV.js +2 -0
  89. package/dist/assets/relation-events-CKio19hE.js +1 -0
  90. package/dist/assets/remotes-DR_iJClb.js +1 -0
  91. package/dist/assets/role-C5I0Plgn.js +1 -0
  92. package/dist/assets/roles-DERIgujv.js +2 -0
  93. package/dist/assets/roles-DswT1Lv0.js +2 -0
  94. package/dist/assets/settings-Cc6OMCOX.js +14 -0
  95. package/dist/assets/settings-D7K7z_JD.js +1 -0
  96. package/dist/assets/settings-Du8r1SXC.js +1 -0
  97. package/dist/assets/settings-vosK_LI-.js +1 -0
  98. package/dist/assets/share-target-Df10J5JB.js +1 -0
  99. package/dist/assets/shared-1dpCuibu.js +1 -0
  100. package/dist/assets/shared-C7b3QOUP.js +1 -0
  101. package/dist/assets/sketch-lazy-Q58-vPF-.js +2 -0
  102. package/dist/assets/socket-CtH3EU9m.js +1 -0
  103. package/dist/assets/subtree-transfer-dialog-B7s4r78T.js +1 -0
  104. package/dist/assets/tags-YamdPoBK.js +1 -0
  105. package/dist/assets/text-documents-D_zDMyhB.js +2 -0
  106. package/dist/assets/{ui-BqHBdBU4.js → ui-BSqPn1LJ.js} +2 -2
  107. package/dist/assets/url-params-n7kU_WZ-.js +1 -0
  108. package/dist/assets/use-applet-docs-Cry2SFsG.js +1 -0
  109. package/dist/assets/use-applet-target-mkjQujx6.js +1 -0
  110. package/dist/assets/use-canvas-pins-C57Vbkrq.css +1 -0
  111. package/dist/assets/use-canvas-pins-CZBfEB5E.js +3 -0
  112. package/dist/assets/use-create-panel-DhSNIGtr.js +1 -0
  113. package/dist/assets/use-document-modal-PG8bQyIB.js +1 -0
  114. package/dist/assets/use-menu-BVkqNEIx.js +1 -0
  115. package/dist/assets/use-mobile-Db-vWu9Y.js +1 -0
  116. package/dist/assets/use-settings-back-Dk-DJEUO.js +1 -0
  117. package/dist/assets/use-sortable-data-DYIDDI8c.js +1 -0
  118. package/dist/assets/{use-theme-Bd8sb5Ox.js → use-theme-DaxpiICf.js} +1 -1
  119. package/dist/assets/use-toast-BlLDqSUO.js +1 -0
  120. package/dist/assets/use-toolbox-Ck_cLGgf.js +1 -0
  121. package/dist/assets/use-workspace-identity-BVpGHkZq.js +1 -0
  122. package/dist/assets/useAddTarget-CVRPElxz.js +1 -0
  123. package/dist/assets/useAgentModels-DI41aFY3.js +3 -0
  124. package/dist/assets/useDocumentThumbnail-C_rq2rXs.js +1 -0
  125. package/dist/assets/useEditNoteFields-Bigs9ZG8.js +1 -0
  126. package/dist/assets/useEscapeClose-DR_xKT_k.js +1 -0
  127. package/dist/assets/useSocketSubscription-ifW-vnlb.js +1 -0
  128. package/dist/assets/useToastHelpers-CRrpIIdY.js +1 -0
  129. package/dist/assets/users-C9N-O1QA.js +1 -0
  130. package/dist/assets/workspace-BydSRtST.js +1 -0
  131. package/dist/assets/workspace-CJ1PWQ29.js +1 -0
  132. package/dist/assets/workspace-access-C9nZlBBZ.js +1 -0
  133. package/dist/assets/workspace-area-menu-Ba_9bGKs.js +1 -0
  134. package/dist/assets/workspace-content-gate-D8bzGD9i.js +1 -0
  135. package/dist/assets/workspace-import-form-D5JA8gzx.js +1 -0
  136. package/dist/assets/workspaces-C9Wtka2V.js +1 -0
  137. package/dist/assets/workspaces-Dx5_N57M.js +1 -0
  138. package/dist/index.html +69 -14
  139. package/dist/sw.js +1 -1
  140. package/package.json +2 -2
  141. package/dist/assets/EditorOverlay-B384ALjA.js +0 -1
  142. package/dist/assets/TextDocumentEditor-DBVWuJaR.js +0 -1
  143. package/dist/assets/alert-dialog-BC58hyW-.js +0 -1
  144. package/dist/assets/blobs-CtDkR2hC.js +0 -1
  145. package/dist/assets/code-editor-BQnKd3jw.js +0 -40
  146. package/dist/assets/document-list-BmUv3zzK.js +0 -19
  147. package/dist/assets/document-list-r-TfV16D.css +0 -1
  148. package/dist/assets/image-GAAHSSAO-BoD-NvEF.js +0 -1
  149. package/dist/assets/index-BhcdilCi.css +0 -2
  150. package/dist/assets/index-DRji5GQn.js +0 -61
  151. package/dist/assets/react-BzqgEMSQ.js +0 -164
  152. package/dist/assets/subtree-transfer-dialog-DRz8kLqY.js +0 -1
  153. package/dist/assets/text-documents-BvR9-zf4.js +0 -3
  154. package/dist/assets/useAddTarget-CgZfKokT.js +0 -1
  155. package/dist/assets/workspace-BSXnX2Me.js +0 -1
@@ -0,0 +1 @@
1
+ function e(e){if(!e)return`/`;let t=e.replace(/\/+/g,`/`);return t.startsWith(`/`)?t:`/${t}`}var t=`context`;function n(e){let n=e=>{try{return decodeURIComponent(e)}catch{return e}},r=e.split(`/`).filter(Boolean);if(r[0]!==`workspaces`)return{treeName:t,path:`/`};if(r[2]===`trees`&&r[3]){let e=n(r[3]);if(r[4]!==`path`)return{treeName:e,path:`/`};let t=r.slice(5).map(n).join(`/`);return{treeName:e,path:t?`/${t}`:`/`}}if(r[2]===`path`){let e=r.slice(3).map(n).join(`/`);return{treeName:t,path:e?`/${e}`:`/`}}return{treeName:t,path:`/`}}function r(n,r,i){let a=i&&i!==t?`/trees/${encodeURIComponent(i)}`:``,o=e(r);return`/workspaces/${n}${a}${o===`/`?``:`/path/${o.split(`/`).filter(Boolean).map(encodeURIComponent).join(`/`)}`}`}export{n,e as r,r as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{u as t}from"./code-editor-BOIngd5F.js";import{T as n,it as r}from"./workspace-CJ1PWQ29.js";import{a as i,o as a}from"./context-D_K4g9SQ.js";var o=e(t(),1),s=1200;function c(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`})+` `+t.toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`})}function l(e,t){let[s,c]=(0,o.useState)([]),[l,u]=(0,o.useState)(!1),[d,f]=(0,o.useState)(null),[p,m]=(0,o.useState)(null),h=(0,o.useCallback)(()=>{if(!e)return Promise.resolve();if(e.mode===`context`){let{contextId:n}=e;return Promise.all([a(n,[t]),i(n)]).then(([e,t])=>{c(Array.isArray(e)?e:[]);let n=t.workspaceName||t.workspaceId;m(n?{workspaceName:n,path:t.path||`/`,treeName:t.treeId||`context`,treeType:`context`}:null)}).catch(e=>f(e instanceof Error?e.message:`Failed to load documents`)).finally(()=>u(!1))}let{workspaceName:n,path:o,treeName:s,treeType:l}=e;return r(n,o,[t],{treeName:s,treeType:l,limit:50}).then(e=>{c(e.payload||[]),m({workspaceName:n,path:o,treeName:s,treeType:l})}).catch(e=>f(e instanceof Error?e.message:`Failed to load documents`)).finally(()=>u(!1))},[e,t]),g=(0,o.useCallback)(async()=>{if(!e){c([]),m(null);return}u(!0),f(null),await h()},[e,h]),[_,v]=(0,o.useState)(null);return(!_||_.target!==e||_.schema!==t)&&(v({target:e,schema:t}),e?(u(!0),f(null)):(c([]),m(null))),(0,o.useEffect)(()=>{h()},[h]),(0,o.useEffect)(()=>{let e=()=>g();return window.addEventListener(`workspace:documents:refresh`,e),()=>window.removeEventListener(`workspace:documents:refresh`,e)},[g]),{docs:s,setDocs:c,loading:l,error:d,scope:p,reload:g,removeDoc:(0,o.useCallback)(async e=>{if(!p)throw Error(`No workspace scope resolved`);await n(p.workspaceName,[e],p.path,[],p.treeName,p.treeType),c(t=>t.filter(t=>t.id!==e))},[p])}}export{c as n,l as r,s as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{u as t}from"./code-editor-BOIngd5F.js";import"./workspace-CJ1PWQ29.js";import{r as n}from"./use-toolbox-Ck_cLGgf.js";var r=e(t(),1),i=(0,r.createContext)(void 0);function a(){let e=(0,r.useContext)(i),t=n()?.state,a=!!t,o=t?.activeContextType,s=t?.activeContextId,c=t?.activeWorkspaceName,l=t?.activeContextPath,u=t?.activeTreeName;return(0,r.useMemo)(()=>e===void 0?a?o===`context`&&s?{mode:`context`,contextId:s}:c&&l?{mode:`workspace`,workspaceName:c,path:l,treeName:u||`context`,treeType:u===`directory`||u===`backends`?`directory`:`context`}:null:null:e,[e,a,o,s,c,l,u])}export{a as n,i as t};
@@ -0,0 +1 @@
1
+ .react-grid-layout{transition:height .2s;position:relative}.react-grid-item{transition:left .2s,top .2s,width .2s,height .2s}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{z-index:1;will-change:width, height;transition:none}.react-grid-item.react-draggable-dragging{z-index:3;will-change:transform;transition:none}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{opacity:.2;z-index:2;-webkit-user-select:none;user-select:none;-o-user-select:none;background:red;transition-duration:.1s}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{width:20px;height:20px;position:absolute}.react-grid-item>.react-resizable-handle:after{content:"";border-bottom:2px solid #0006;border-right:2px solid #0006;width:5px;height:5px;position:absolute;bottom:3px;right:3px}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{cursor:sw-resize;bottom:0;left:0;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{cursor:se-resize;bottom:0;right:0}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{cursor:nw-resize;top:0;left:0;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{cursor:ne-resize;top:0;right:0;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{cursor:ew-resize;margin-top:-10px;top:50%}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{cursor:ns-resize;margin-left:-10px;left:50%}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:100% 100%;background-repeat:no-repeat;background-origin:content-box;width:20px;height:20px;padding:0 3px 3px 0;position:absolute}.react-resizable-handle-sw{cursor:sw-resize;bottom:0;left:0;transform:rotate(90deg)}.react-resizable-handle-se{cursor:se-resize;bottom:0;right:0}.react-resizable-handle-nw{cursor:nw-resize;top:0;left:0;transform:rotate(180deg)}.react-resizable-handle-ne{cursor:ne-resize;top:0;right:0;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{cursor:ew-resize;margin-top:-10px;top:50%}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{cursor:ns-resize;margin-left:-10px;left:50%}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.canvas-grid-host{height:100%;min-height:0}.canvas-grid-host .react-grid-layout{min-height:100%;width:100%!important}.canvas-grid-host .react-grid-item{display:flex}.canvas-grid-host .react-grid-item>div{width:100%;height:100%;min-height:0}.canvas-grid-host .react-grid-item[data-fill~=h]:not(.resizing){height:calc(var(--canvas-host-h,100%) - 2 * var(--canvas-grid-gutter,12px))!important}
@@ -0,0 +1,3 @@
1
+ import{a as e,n as t,o as n,r,t as i}from"./rolldown-runtime-C0FnF6B9.js";import{l as a,u as o}from"./code-editor-BOIngd5F.js";import{_t as s,yt as c}from"./react-BHzhHVTZ.js";import{r as l}from"./chunk-62JRHF6Z-vspAGgtK.js";import{$ as u,$t as d,Br as f,Ct as p,Dr as m,Ft as h,J as g,K as _,L as v,Mt as y,Ot as b,Pt as x,Rt as S,Xt as C,ar as w,kn as T,q as E,rn as D,tt as O,vn as k,yt as A,zr as j}from"./ui-BSqPn1LJ.js";import{n as M}from"./utils-BxVxyehK.js";import{t as N}from"./utils-2pl1SbIp.js";import{t as P}from"./button-Bv4zA1qr.js";import{t as F}from"./socket-CtH3EU9m.js";import{o as I}from"./auth-Bx9fAZmz.js";import{_ as L,c as ee}from"./LinkToCard-BZwwE-Dv.js";import{$ as R,In as z,Nn as te,Ot as B,Pn as ne,q as re,sn as ie}from"./workspace-CJ1PWQ29.js";import{a as V,i as ae,n as oe,r as se}from"./TodosWidget-BXF8fYer.js";import{y as ce}from"./ObjectPropertiesCard-DDcRLpsW.js";import{a as le,l as ue,o as de,t as fe}from"./document-list-BiogH4tf.js";import{i as pe}from"./public-share-DT9Tgn_Y.js";import{o as H,s as me}from"./text-documents-D_zDMyhB.js";import{t as he}from"./useDocumentThumbnail-C_rq2rXs.js";import{t as ge}from"./useEscapeClose-DR_xKT_k.js";import"./layer-style-Byl5LNFR.js";import{i as _e}from"./color-DFEH4BfK.js";import{c as U}from"./workspace-BydSRtST.js";import{t as ve}from"./url-params-n7kU_WZ-.js";var W=i(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?r(e):typeof define==`function`&&define.amd?define([`exports`],r):(n=typeof globalThis<`u`?globalThis:n||self,r(n[`fast-equals`]={}))})(e,(function(e){function t(e){return function(t,n,r,i,a,o,s){return e(t,n,s)}}function n(e){return function(t,n,r,i){if(!t||!n||typeof t!=`object`||typeof n!=`object`)return e(t,n,r,i);var a=i.get(t),o=i.get(n);if(a&&o)return a===n&&o===t;i.set(t,n),i.set(n,t);var s=e(t,n,r,i);return i.delete(t),i.delete(n),s}}function r(e,t){var n={};for(var r in e)n[r]=e[r];for(var r in t)n[r]=t[r];return n}function i(e){return e.constructor===Object||e.constructor==null}function a(e){return typeof e.then==`function`}function o(e,t){return e===t||e!==e&&t!==t}var s=Object.prototype.toString;function c(e){var t=e.areArraysEqual,n=e.areDatesEqual,r=e.areMapsEqual,c=e.areObjectsEqual,l=e.areRegExpsEqual,u=e.areSetsEqual,d=e.createIsNestedEqual,f=d(p);function p(e,d,p){if(e===d)return!0;if(!e||!d||typeof e!=`object`||typeof d!=`object`)return e!==e&&d!==d;if(i(e)&&i(d))return c(e,d,f,p);var m=Array.isArray(e),h=Array.isArray(d);if(m||h)return m===h&&t(e,d,f,p);var g=s.call(e);return g===s.call(d)?g===`[object Date]`?n(e,d,f,p):g===`[object RegExp]`?l(e,d,f,p):g===`[object Map]`?r(e,d,f,p):g===`[object Set]`?u(e,d,f,p):g===`[object Object]`||g===`[object Arguments]`?a(e)||a(d)?!1:c(e,d,f,p):g===`[object Boolean]`||g===`[object Number]`||g===`[object String]`?o(e.valueOf(),d.valueOf()):!1:!1}return p}function l(e,t,n,r){var i=e.length;if(t.length!==i)return!1;for(;i-->0;)if(!n(e[i],t[i],i,i,e,t,r))return!1;return!0}var u=n(l);function d(e,t){return o(e.valueOf(),t.valueOf())}function f(e,t,n,r){var i=e.size===t.size;if(!i)return!1;if(!e.size)return!0;var a={},o=0;return e.forEach(function(s,c){if(i){var l=!1,u=0;t.forEach(function(i,d){!l&&!a[u]&&(l=n(c,d,o,u,e,t,r)&&n(s,i,c,d,e,t,r))&&(a[u]=!0),u++}),o++,i=l}}),i}var p=n(f),m=`_owner`,h=Object.prototype.hasOwnProperty;function g(e,t,n,r){var i=Object.keys(e),a=i.length;if(Object.keys(t).length!==a)return!1;for(var o;a-->0;){if(o=i[a],o===m){var s=!!e.$$typeof,c=!!t.$$typeof;if((s||c)&&s!==c)return!1}if(!h.call(t,o)||!n(e[o],t[o],o,o,e,t,r))return!1}return!0}var _=n(g);function v(e,t){return e.source===t.source&&e.flags===t.flags}function y(e,t,n,r){var i=e.size===t.size;if(!i)return!1;if(!e.size)return!0;var a={};return e.forEach(function(o,s){if(i){var c=!1,l=0;t.forEach(function(i,u){!c&&!a[l]&&(c=n(o,i,s,u,e,t,r))&&(a[l]=!0),l++}),i=c}}),i}var b=n(y),x=Object.freeze({areArraysEqual:l,areDatesEqual:d,areMapsEqual:f,areObjectsEqual:g,areRegExpsEqual:v,areSetsEqual:y,createIsNestedEqual:t}),S=Object.freeze({areArraysEqual:u,areDatesEqual:d,areMapsEqual:p,areObjectsEqual:_,areRegExpsEqual:v,areSetsEqual:b,createIsNestedEqual:t}),C=c(x);function w(e,t){return C(e,t,void 0)}var T=c(r(x,{createIsNestedEqual:function(){return o}}));function E(e,t){return T(e,t,void 0)}var D=c(S);function O(e,t){return D(e,t,new WeakMap)}var k=c(r(S,{createIsNestedEqual:function(){return o}}));function A(e,t){return k(e,t,new WeakMap)}function j(e){return c(r(x,e(x)))}function M(e){var t=c(r(S,e(S)));return(function(e,n,r){return r===void 0&&(r=new WeakMap),t(e,n,r)})}e.circularDeepEqual=O,e.circularShallowEqual=A,e.createCustomCircularEqual=M,e.createCustomEqual=j,e.deepEqual=w,e.sameValueZeroEqual=o,e.shallowEqual=E,Object.defineProperty(e,"__esModule",{value:!0})}))})),G=i(((e,t)=>{t.exports=function(e,t,n){return e===t||e.className===t.className&&n(e.style,t.style)&&e.width===t.width&&e.autoSize===t.autoSize&&e.cols===t.cols&&e.draggableCancel===t.draggableCancel&&e.draggableHandle===t.draggableHandle&&n(e.verticalCompact,t.verticalCompact)&&n(e.compactType,t.compactType)&&n(e.layout,t.layout)&&n(e.margin,t.margin)&&n(e.containerPadding,t.containerPadding)&&e.rowHeight===t.rowHeight&&e.maxRows===t.maxRows&&e.isBounded===t.isBounded&&e.isDraggable===t.isDraggable&&e.isResizable===t.isResizable&&e.allowOverlap===t.allowOverlap&&e.preventCollision===t.preventCollision&&e.useCSSTransforms===t.useCSSTransforms&&e.transformScale===t.transformScale&&e.isDroppable===t.isDroppable&&n(e.resizeHandles,t.resizeHandles)&&n(e.resizeHandle,t.resizeHandle)&&e.onLayoutChange===t.onLayoutChange&&e.onDragStart===t.onDragStart&&e.onDrag===t.onDrag&&e.onDragStop===t.onDragStop&&e.onResizeStart===t.onResizeStart&&e.onResize===t.onResize&&e.onResizeStop===t.onResizeStop&&e.onDrop===t.onDrop&&n(e.droppingItem,t.droppingItem)&&n(e.innerRef,t.innerRef)}})),K=i((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.bottom=u,e.childrenEqual=h,e.cloneLayout=d,e.cloneLayoutItem=m,e.collides=_,e.compact=v,e.compactItem=x,e.compactType=ae,e.correctBounds=S,e.fastPositionEqual=g,e.fastRGLPropsEqual=void 0,e.getAllCollisions=T,e.getFirstCollision=w,e.getLayoutItem=C,e.getStatics=E,e.modifyLayout=f,e.moveElement=D,e.moveElementAwayFromCollision=O,e.noop=void 0,e.perc=k,e.resizeItemInDirection=R,e.setTopLeft=te,e.setTransform=z,e.sortLayoutItems=B,e.sortLayoutItemsByColRow=re,e.sortLayoutItemsByRowCol=ne,e.synchronizeLayoutWithChildren=ie,e.validateLayout=V,e.withLayoutItem=p;var t=W(),n=r(o());function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?i(Object(n),!0).forEach(function(t){s(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function s(e,t,n){return(t=c(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e){var t=l(e,`string`);return typeof t==`symbol`?t:t+``}function l(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function u(e){let t=0,n;for(let r=0,i=e.length;r<i;r++)n=e[r].y+e[r].h,n>t&&(t=n);return t}function d(e){let t=Array(e.length);for(let n=0,r=e.length;n<r;n++)t[n]=m(e[n]);return t}function f(e,t){let n=Array(e.length);for(let r=0,i=e.length;r<i;r++)t.i===e[r].i?n[r]=t:n[r]=e[r];return n}function p(e,t,n){let r=C(e,t);return r?(r=n(m(r)),e=f(e,r),[e,r]):[e,null]}function m(e){return{w:e.w,h:e.h,x:e.x,y:e.y,i:e.i,minW:e.minW,maxW:e.maxW,minH:e.minH,maxH:e.maxH,moved:!!e.moved,static:!!e.static,isDraggable:e.isDraggable,isResizable:e.isResizable,resizeHandles:e.resizeHandles,isBounded:e.isBounded}}function h(e,r){return(0,t.deepEqual)(n.default.Children.map(e,e=>e?.key),n.default.Children.map(r,e=>e?.key))&&(0,t.deepEqual)(n.default.Children.map(e,e=>e?.props[`data-grid`]),n.default.Children.map(r,e=>e?.props[`data-grid`]))}e.fastRGLPropsEqual=G();function g(e,t){return e.left===t.left&&e.top===t.top&&e.width===t.width&&e.height===t.height}function _(e,t){return!(e.i===t.i||e.x+e.w<=t.x||e.x>=t.x+t.w||e.y+e.h<=t.y||e.y>=t.y+t.h)}function v(e,t,n,r){let i=E(e),a=u(i),o=B(e,t),s=Array(e.length);for(let c=0,l=o.length;c<l;c++){let l=m(o[c]);l.static||(l=x(i,l,t,n,o,r,a),a=Math.max(a,l.y+l.h),i.push(l)),s[e.indexOf(o[c])]=l,l.moved=!1}return s}var y={x:`w`,y:`h`};function b(e,t,n,r){let i=y[r];t[r]+=1;let a=e.map(e=>e.i).indexOf(t.i);for(let o=a+1;o<e.length;o++){let a=e[o];if(!a.static){if(a.y>t.y+t.h)break;_(t,a)&&b(e,a,n+t[i],r)}}t[r]=n}function x(e,t,n,r,i,a,o){let s=n===`vertical`,c=n===`horizontal`;if(s)for(t.y=Math.min(typeof o==`number`?o:u(e),t.y);t.y>0&&!w(e,t);)t.y--;else if(c)for(;t.x>0&&!w(e,t);)t.x--;let l;for(;(l=w(e,t))&&!(n===null&&a);)if(c?b(i,t,l.x+l.w,`x`):b(i,t,l.y+l.h,`y`),c&&t.x+t.w>r)for(t.x=r-t.w,t.y++;t.x>0&&!w(e,t);)t.x--;return t.y=Math.max(t.y,0),t.x=Math.max(t.x,0),t}function S(e,t){let n=E(e);for(let r=0,i=e.length;r<i;r++){let i=e[r];if(i.x+i.w>t.cols&&(i.x=t.cols-i.w),i.x<0&&(i.x=0,i.w=t.cols),!i.static)n.push(i);else for(;w(n,i);)i.y++}return e}function C(e,t){for(let n=0,r=e.length;n<r;n++)if(e[n].i===t)return e[n]}function w(e,t){for(let n=0,r=e.length;n<r;n++)if(_(e[n],t))return e[n]}function T(e,t){return e.filter(e=>_(e,t))}function E(e){return e.filter(e=>e.static)}function D(e,t,n,r,i,a,o,s,c){if(t.static&&t.isDraggable!==!0||t.y===r&&t.x===n)return e;`${t.i}${String(n)}${String(r)}${t.x}${t.y}`;let l=t.x,u=t.y;typeof n==`number`&&(t.x=n),typeof r==`number`&&(t.y=r),t.moved=!0;let f=B(e,o);(o===`vertical`&&typeof r==`number`?u>=r:o===`horizontal`&&typeof n==`number`&&l>=n)&&(f=f.reverse());let p=T(f,t),m=p.length>0;if(m&&c)return d(e);if(m&&a)return`${t.i}`,t.x=l,t.y=u,t.moved=!1,e;for(let n=0,r=p.length;n<r;n++){let r=p[n];`${t.i}${t.x}${t.y}${r.i}${r.x}${r.y}`,!r.moved&&(e=r.static?O(e,r,t,i,o,s):O(e,t,r,i,o,s))}return e}function O(e,t,n,r,i,a){let o=i===`horizontal`,s=i===`vertical`,c=t.static;if(r){r=!1;let l={x:o?Math.max(t.x-n.w,0):n.x,y:s?Math.max(t.y-n.h,0):n.y,w:n.w,h:n.h,i:`-1`},u=w(e,l),d=u&&u.y+u.h>t.y,f=u&&t.x+t.w>u.x;if(!u)return`${n.i}${l.x}${l.y}`,D(e,n,o?l.x:void 0,s?l.y:void 0,r,c,i,a);if(d&&s)return D(e,n,void 0,n.y+1,r,c,i,a);if(d&&i==null)return t.y=n.y,n.y+=n.h,e;if(f&&o)return D(e,t,n.x,void 0,r,c,i,a)}let l=o?n.x+1:void 0,u=s?n.y+1:void 0;return l==null&&u==null?e:D(e,n,o?n.x+1:void 0,s?n.y+1:void 0,r,c,i,a)}function k(e){return e*100+`%`}var A=(e,t,n,r)=>e+n>r?t:n,j=(e,t,n)=>e<0?t:n,M=e=>Math.max(0,e),N=e=>Math.max(0,e),P=(e,t,n)=>{let{left:r,height:i,width:a}=t,o=e.top-(i-e.height);return{left:r,width:a,height:j(o,e.height,i),top:N(o)}},F=(e,t,n)=>{let{top:r,left:i,height:a,width:o}=t;return{top:r,height:a,width:A(e.left,e.width,o,n),left:M(i)}},I=(e,t,n)=>{let{top:r,height:i,width:a}=t,o=e.left-(a-e.width);return{height:i,width:o<0?e.width:A(e.left,e.width,a,n),top:N(r),left:M(o)}},L=(e,t,n)=>{let{top:r,left:i,height:a,width:o}=t;return{width:o,left:i,height:j(r,e.height,a),top:N(r)}},ee={n:P,ne:function(){return P(arguments.length<=0?void 0:arguments[0],F(...arguments),arguments.length<=2?void 0:arguments[2])},e:F,se:function(){return L(arguments.length<=0?void 0:arguments[0],F(...arguments),arguments.length<=2?void 0:arguments[2])},s:L,sw:function(){return L(arguments.length<=0?void 0:arguments[0],I(...arguments),arguments.length<=2?void 0:arguments[2])},w:I,nw:function(){return P(arguments.length<=0?void 0:arguments[0],I(...arguments),arguments.length<=2?void 0:arguments[2])}};function R(e,t,n,r){let i=ee[e];return i?i(t,a(a({},t),n),r):n}function z(e){let{top:t,left:n,width:r,height:i}=e,a=`translate(${n}px,${t}px)`;return{transform:a,WebkitTransform:a,MozTransform:a,msTransform:a,OTransform:a,width:`${r}px`,height:`${i}px`,position:`absolute`}}function te(e){let{top:t,left:n,width:r,height:i}=e;return{top:`${t}px`,left:`${n}px`,width:`${r}px`,height:`${i}px`,position:`absolute`}}function B(e,t){return t===`horizontal`?re(e):t===`vertical`?ne(e):e}function ne(e){return e.slice(0).sort(function(e,t){return e.y>t.y||e.y===t.y&&e.x>t.x?1:e.y===t.y&&e.x===t.x?0:-1})}function re(e){return e.slice(0).sort(function(e,t){return e.x>t.x||e.x===t.x&&e.y>t.y?1:-1})}function ie(e,t,r,i,o){e||=[];let s=[];n.default.Children.forEach(t,t=>{if(t?.key==null)return;let n=C(e,String(t.key)),r=t.props[`data-grid`];n&&r==null?s.push(m(n)):r?s.push(m(a(a({},r),{},{i:t.key}))):s.push(m({w:1,h:1,x:0,y:u(s),i:String(t.key)}))});let c=S(s,{cols:r});return o?c:v(c,i,r)}function V(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`Layout`,n=[`x`,`y`,`w`,`h`];if(!Array.isArray(e))throw Error(t+` must be an array!`);for(let r=0,i=e.length;r<i;r++){let i=e[r];for(let e=0;e<n.length;e++){let a=n[e],o=i[a];if(typeof o!=`number`||Number.isNaN(o))throw Error(`ReactGridLayout: ${t}[${r}].${a} must be a number! Received: ${o} (${typeof o})`)}if(i.i!==void 0&&typeof i.i!=`string`)throw Error(`ReactGridLayout: ${t}[${r}].i must be a string! Received: ${i.i} (${typeof i.i})`)}}function ae(e){let{verticalCompact:t,compactType:n}=e||{};return t===!1?null:n}e.noop=()=>{}})),q=i((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.calcGridColWidth=t,e.calcGridItemPosition=r,e.calcGridItemWHPx=n,e.calcWH=a,e.calcXY=i,e.clamp=o;function t(e){let{margin:t,containerPadding:n,containerWidth:r,cols:i}=e;return(r-t[0]*(i-1)-n[0]*2)/i}function n(e,t,n){return Number.isFinite(e)?Math.round(t*e+Math.max(0,e-1)*n):e}function r(e,r,i,a,o,s){let{margin:c,containerPadding:l,rowHeight:u}=e,d=t(e),f={};return s&&s.resizing?(f.width=Math.round(s.resizing.width),f.height=Math.round(s.resizing.height)):(f.width=n(a,d,c[0]),f.height=n(o,u,c[1])),s&&s.dragging?(f.top=Math.round(s.dragging.top),f.left=Math.round(s.dragging.left)):s&&s.resizing&&typeof s.resizing.top==`number`&&typeof s.resizing.left==`number`?(f.top=Math.round(s.resizing.top),f.left=Math.round(s.resizing.left)):(f.top=Math.round((u+c[1])*i+l[1]),f.left=Math.round((d+c[0])*r+l[0])),f}function i(e,n,r,i,a){let{margin:s,containerPadding:c,cols:l,rowHeight:u,maxRows:d}=e,f=t(e),p=Math.round((r-c[0])/(f+s[0])),m=Math.round((n-c[1])/(u+s[1]));return p=o(p,0,l-i),m=o(m,0,d-a),{x:p,y:m}}function a(e,n,r,i,a,s){let{margin:c,maxRows:l,cols:u,rowHeight:d}=e,f=t(e),p=Math.round((n+c[0])/(f+c[0])),m=Math.round((r+c[1])/(d+c[1])),h=o(p,0,u-i),g=o(m,0,l-a);return[`sw`,`w`,`nw`].indexOf(s)!==-1&&(h=o(p,0,u)),[`nw`,`n`,`ne`].indexOf(s)!==-1&&(g=o(m,0,l)),{w:h,h:g}}function o(e,t,n){return Math.max(Math.min(e,n),t)}})),ye=i(((e,t)=>{t.exports=`SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED`})),be=i(((e,t)=>{var n=ye();function r(){}function i(){}i.resetWarningCache=r,t.exports=function(){function e(e,t,r,i,a,o){if(o!==n){var s=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name=`Invariant Violation`,s}}e.isRequired=e;function t(){return e}var a={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:r};return a.PropTypes=a,a}})),J=i(((e,t)=>{t.exports=be()()})),xe=i(((e,t)=>{var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,s=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,u=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},d=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let s of a(t))!l.call(e,s)&&s!==n&&r(e,s,{get:()=>t[s],enumerable:!(o=i(t,s))||o.enumerable});return e},f=(e,t,i)=>(i=e==null?{}:n(s(e)),d(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)),p=e=>d(r({},`__esModule`,{value:!0}),e),m={};u(m,{DraggableCore:()=>q,default:()=>ye}),t.exports=p(m);var h=f(o()),g=f(J()),_=f(c()),v=M();function y(e,t){for(let n=0,r=e.length;n<r;n++)if(t.apply(t,[e[n],n,e]))return e[n]}function b(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Function]`}function x(e){return typeof e==`number`&&!isNaN(e)}function S(e){return parseInt(e,10)}function C(e,t,n){if(e[t])return Error(`Invalid prop ${t} passed to ${n} - do not set this, set it on the child.`)}var w=[`Moz`,`Webkit`,`O`,`ms`];function T(e=`transform`){if(typeof window>`u`)return``;let t=window.document?.documentElement?.style;if(!t||e in t)return``;for(let n=0;n<w.length;n++)if(E(e,w[n])in t)return w[n];return``}function E(e,t){return t?`${t}${D(e)}`:e}function D(e){let t=``,n=!0;for(let r=0;r<e.length;r++)n?(t+=e[r].toUpperCase(),n=!1):e[r]===`-`?n=!0:t+=e[r];return t}var O=T(),k=``;function A(e,t){k||=y([`matches`,`webkitMatchesSelector`,`mozMatchesSelector`,`msMatchesSelector`,`oMatchesSelector`],function(t){return b(e[t])})??``;let n=e[k];return b(n)?!!n.call(e,t):!1}function j(e,t,n){let r=e;do{if(A(r,t))return!0;if(r===n)return!1;r=r.parentNode}while(r);return!1}function N(e,t,n,r){if(!e)return;let i={capture:!0,...r},a=n;e.addEventListener?e.addEventListener(t,a,i):e.attachEvent?e.attachEvent(`on`+t,a):e[`on`+t]=a}function P(e,t,n,r){if(!e)return;let i={capture:!0,...r},a=n;e.removeEventListener?e.removeEventListener(t,a,i):e.detachEvent?e.detachEvent(`on`+t,a):e[`on`+t]=null}function F(e){let t=e.clientHeight,n=e.ownerDocument.defaultView.getComputedStyle(e);return t+=S(n.borderTopWidth),t+=S(n.borderBottomWidth),t}function I(e){let t=e.clientWidth,n=e.ownerDocument.defaultView.getComputedStyle(e);return t+=S(n.borderLeftWidth),t+=S(n.borderRightWidth),t}function L(e){let t=e.clientHeight,n=e.ownerDocument.defaultView.getComputedStyle(e);return t-=S(n.paddingTop),t-=S(n.paddingBottom),t}function ee(e){let t=e.clientWidth,n=e.ownerDocument.defaultView.getComputedStyle(e);return t-=S(n.paddingLeft),t-=S(n.paddingRight),t}function R(e,t,n){let r=t===t.ownerDocument.body?{left:0,top:0}:t.getBoundingClientRect();return{x:(e.clientX+t.scrollLeft-r.left)/n,y:(e.clientY+t.scrollTop-r.top)/n}}function z(e,t){let n=B(e,t,`px`);return{[E(`transform`,O)]:n}}function te(e,t){return B(e,t,``)}function B({x:e,y:t},n,r){let i=`translate(${e}${r},${t}${r})`;return n&&(i=`translate(${`${typeof n.x==`string`?n.x:n.x+r}`}, ${`${typeof n.y==`string`?n.y:n.y+r}`})`+i),i}function ne(e,t){return e.targetTouches&&y(e.targetTouches,e=>t===e.identifier)||e.changedTouches&&y(e.changedTouches,e=>t===e.identifier)}function re(e){if(e.targetTouches&&e.targetTouches[0])return e.targetTouches[0].identifier;if(e.changedTouches&&e.changedTouches[0])return e.changedTouches[0].identifier}function ie(){return typeof __webpack_nonce__<`u`?__webpack_nonce__:void 0}function V(e,t){if(!e)return;let n=e.getElementById(`react-draggable-style-el`);if(!n){n=e.createElement(`style`),n.type=`text/css`,n.id=`react-draggable-style-el`;let r=t??ie();r&&n.setAttribute(`nonce`,r),n.innerHTML=`.react-draggable-transparent-selection *::-moz-selection {all: inherit;}
2
+ `,n.innerHTML+=`.react-draggable-transparent-selection *::selection {all: inherit;}
3
+ `,e.getElementsByTagName(`head`)[0].appendChild(n)}e.body&&se(e.body,`react-draggable-transparent-selection`)}function ae(e){window.requestAnimationFrame?window.requestAnimationFrame(()=>{oe(e)}):oe(e)}function oe(e){if(e)try{e.body&&ce(e.body,`react-draggable-transparent-selection`);let t=e.selection;if(t)t.empty();else{let t=(e.defaultView||window).getSelection();t&&t.type!==`Caret`&&t.removeAllRanges()}}catch{}}function se(e,t){e.classList?e.classList.add(t):e.className.match(RegExp(`(?:^|\\s)${t}(?!\\S)`))||(e.className+=` ${t}`)}function ce(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(RegExp(`(?:^|\\s)${t}(?!\\S)`,`g`),``)}function le(e,t,n){if(!e.props.bounds)return[t,n];let{bounds:r}=e.props;r=typeof r==`string`?r:he(r);let i=ge(e);if(typeof r==`string`){let{ownerDocument:e}=i,t=e.defaultView;if(!t)throw Error(`Cannot resolve the owner window of the draggable node.`);let n;if(n=r===`parent`?i.parentNode:i.getRootNode().querySelector(r),!(n instanceof t.HTMLElement))throw Error(`Bounds selector "`+r+`" could not find an element.`);let a=n,o=t.getComputedStyle(i),s=t.getComputedStyle(a);r={left:-i.offsetLeft+S(s.paddingLeft)+S(o.marginLeft),top:-i.offsetTop+S(s.paddingTop)+S(o.marginTop),right:ee(a)-I(i)-i.offsetLeft+S(s.paddingRight)-S(o.marginRight),bottom:L(a)-F(i)-i.offsetTop+S(s.paddingBottom)-S(o.marginBottom)}}return x(r.right)&&(t=Math.min(t,r.right)),x(r.bottom)&&(n=Math.min(n,r.bottom)),x(r.left)&&(t=Math.max(t,r.left)),x(r.top)&&(n=Math.max(n,r.top)),[t,n]}function ue(e,t,n){return[Math.round(t/e[0])*e[0],Math.round(n/e[1])*e[1]]}function de(e){return e.props.axis===`both`||e.props.axis===`x`}function fe(e){return e.props.axis===`both`||e.props.axis===`y`}function pe(e,t,n){let r=typeof t==`number`?ne(e,t):null;if(typeof t==`number`&&!r)return null;let i=ge(n),a=n.props.offsetParent||i.offsetParent||i.ownerDocument.body;return R(r||e,a,n.props.scale)}function H(e,t,n){let r=!x(e.lastX),i=ge(e);return r?{node:i,deltaX:0,deltaY:0,lastX:t,lastY:n,x:t,y:n}:{node:i,deltaX:t-e.lastX,deltaY:n-e.lastY,lastX:e.lastX,lastY:e.lastY,x:t,y:n}}function me(e,t){let n=e.props.scale;return{node:t.node,x:e.state.x+t.deltaX/n,y:e.state.y+t.deltaY/n,deltaX:t.deltaX/n,deltaY:t.deltaY/n,lastX:e.state.x,lastY:e.state.y}}function he(e){return{left:e.left,top:e.top,right:e.right,bottom:e.bottom}}function ge(e){let t=e.findDOMNode();if(!t)throw Error(`<DraggableCore>: Unmounted during event!`);return t}var _e=f(o()),U=f(J()),ve=f(c()),W=typeof process<`u`&&{}.DRAGGABLE_DEBUG?console.log.bind(console):function(){},G={touch:{start:`touchstart`,move:`touchmove`,stop:`touchend`},mouse:{start:`mousedown`,move:`mousemove`,stop:`mouseup`}},K=G.mouse,q=class extends _e.Component{constructor(){super(...arguments),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,this.touchIdentifier=null,this.mounted=!1,this.handleDragStart=e=>{if(this.props.onMouseDown(e),!this.props.allowAnyClick&&(typeof e.button==`number`&&e.button!==0||e.ctrlKey))return!1;let t=this.findDOMNode();if(!t||!t.ownerDocument||!t.ownerDocument.body)throw Error(`<DraggableCore> not mounted on DragStart!`);let{ownerDocument:n}=t;if(this.props.disabled||!(e.target instanceof n.defaultView.Node)||this.props.handle&&!j(e.target,this.props.handle,t)||this.props.cancel&&j(e.target,this.props.cancel,t))return;e.type===`touchstart`&&!this.props.allowMobileScroll&&e.preventDefault();let r=re(e);this.touchIdentifier=r;let i=pe(e,r,this);if(i==null)return;let{x:a,y:o}=i,s=H(this,a,o);W(`DraggableCore: handleDragStart: %j`,s),W(`calling`,this.props.onStart),this.props.onStart(e,s)!==!1&&this.mounted!==!1&&(this.props.enableUserSelectHack&&V(n,this.props.nonce),this.dragging=!0,this.lastX=a,this.lastY=o,N(n,K.move,this.handleDrag),N(n,K.stop,this.handleDragStop))},this.handleDrag=e=>{let t=pe(e,this.touchIdentifier,this);if(t==null)return;let{x:n,y:r}=t;if(Array.isArray(this.props.grid)){let e=n-this.lastX,t=r-this.lastY;if([e,t]=ue(this.props.grid,e,t),!e&&!t)return;n=this.lastX+e,r=this.lastY+t}let i=H(this,n,r);if(W(`DraggableCore: handleDrag: %j`,i),this.props.onDrag(e,i)===!1||this.mounted===!1){try{this.handleDragStop(new MouseEvent(`mouseup`))}catch{let e=document.createEvent(`MouseEvents`);e.initMouseEvent(`mouseup`,!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(e)}return}this.lastX=n,this.lastY=r},this.handleDragStop=e=>{if(!this.dragging)return;let t=pe(e,this.touchIdentifier,this);if(t==null)return;let{x:n,y:r}=t;if(Array.isArray(this.props.grid)){let e=n-this.lastX||0,t=r-this.lastY||0;[e,t]=ue(this.props.grid,e,t),n=this.lastX+e,r=this.lastY+t}let i=H(this,n,r);if(this.props.onStop(e,i)===!1||this.mounted===!1)return!1;let a=this.findDOMNode();a&&this.props.enableUserSelectHack&&ae(a.ownerDocument),W(`DraggableCore: handleDragStop: %j`,i),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,a&&(W(`DraggableCore: Removing handlers`),P(a.ownerDocument,K.move,this.handleDrag),P(a.ownerDocument,K.stop,this.handleDragStop))},this.onMouseDown=e=>(K=G.mouse,this.handleDragStart(e)),this.onMouseUp=e=>(K=G.mouse,this.handleDragStop(e)),this.onTouchStart=e=>(K=G.touch,this.handleDragStart(e)),this.onTouchEnd=e=>(K=G.touch,this.handleDragStop(e))}componentDidMount(){this.mounted=!0;let e=this.findDOMNode();e&&N(e,G.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;let e=this.findDOMNode();if(e){let{ownerDocument:t}=e;P(t,G.mouse.move,this.handleDrag),P(t,G.touch.move,this.handleDrag),P(t,G.mouse.stop,this.handleDragStop),P(t,G.touch.stop,this.handleDragStop),P(e,G.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&ae(t)}}findDOMNode(){if(this.props?.nodeRef)return this.props.nodeRef.current;let e=ve.default;return typeof e.findDOMNode==`function`?e.findDOMNode(this):(W(`react-draggable: ReactDOM.findDOMNode is not available in React 19+. You must provide a nodeRef prop. See: https://github.com/react-grid-layout/react-draggable#noderef`),null)}render(){return _e.cloneElement(_e.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}};q.displayName=`DraggableCore`,q.propTypes={allowAnyClick:U.default.bool,allowMobileScroll:U.default.bool,children:U.default.node.isRequired,disabled:U.default.bool,enableUserSelectHack:U.default.bool,offsetParent:function(e,t){if(e[t]&&e[t].nodeType!==1)throw Error(`Draggable's offsetParent must be a DOM Node.`)},grid:U.default.arrayOf(U.default.number),handle:U.default.string,cancel:U.default.string,nodeRef:U.default.object,nonce:U.default.string,onStart:U.default.func,onDrag:U.default.func,onStop:U.default.func,onMouseDown:U.default.func,scale:U.default.number,className:C,style:C,transform:C},q.defaultProps={allowAnyClick:!1,allowMobileScroll:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1};var ye=class extends h.Component{constructor(e){super(e),this.onDragStart=(e,t)=>{if(W(`Draggable: onDragStart: %j`,t),this.props.onStart(e,me(this,t))===!1)return!1;this.setState({dragging:!0,dragged:!0})},this.onDrag=(e,t)=>{if(!this.state.dragging)return!1;W(`Draggable: onDrag: %j`,t);let n=me(this,t),r={x:n.x,y:n.y,slackX:0,slackY:0};if(this.props.bounds){let{x:e,y:t}=r;r.x+=this.state.slackX,r.y+=this.state.slackY;let[i,a]=le(this,r.x,r.y);r.x=i,r.y=a,r.slackX=this.state.slackX+(e-r.x),r.slackY=this.state.slackY+(t-r.y),n.x=r.x,n.y=r.y,n.deltaX=r.x-this.state.x,n.deltaY=r.y-this.state.y}if(this.props.onDrag(e,n)===!1)return!1;this.setState(r)},this.onDragStop=(e,t)=>{if(!this.state.dragging||this.props.onStop(e,me(this,t))===!1)return!1;W(`Draggable: onDragStop: %j`,t);let n={dragging:!1,slackX:0,slackY:0};if(this.props.position){let{x:e,y:t}=this.props.position;n.x=e,n.y=t}this.setState(n)},this.state={dragging:!1,dragged:!1,x:e.position?e.position.x:e.defaultPosition.x,y:e.position?e.position.y:e.defaultPosition.y,prevPropsPosition:{...e.position},slackX:0,slackY:0,isElementSVG:!1},e.position&&!(e.onDrag||e.onStop)&&console.warn("A `position` was applied to this <Draggable>, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}static getDerivedStateFromProps({position:e},{prevPropsPosition:t}){return e&&(!t||e.x!==t.x||e.y!==t.y)?(W(`Draggable: getDerivedStateFromProps %j`,{position:e,prevPropsPosition:t}),{x:e.x,y:e.y,prevPropsPosition:{...e}}):null}componentDidMount(){window.SVGElement!==void 0&&this.findDOMNode()instanceof window.SVGElement&&this.setState({isElementSVG:!0})}componentWillUnmount(){this.state.dragging&&this.setState({dragging:!1})}findDOMNode(){if(this.props?.nodeRef)return this.props.nodeRef.current;let e=_.default;return typeof e.findDOMNode==`function`?e.findDOMNode(this):null}render(){let{axis:e,bounds:t,children:n,defaultPosition:r,defaultClassName:i,defaultClassNameDragging:a,defaultClassNameDragged:o,position:s,positionOffset:c,scale:l,...u}=this.props,d={},f=null,p=!s||this.state.dragging,m=s||r,g={x:de(this)&&p?this.state.x:m.x,y:fe(this)&&p?this.state.y:m.y};this.state.isElementSVG?f=te(g,c):d=z(g,c);let _=h.Children.only(n),y=(0,v.clsx)(_.props.className||``,i,{[a]:this.state.dragging,[o]:this.state.dragged});return h.createElement(q,{...u,onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop},h.cloneElement(_,{className:y,style:{..._.props.style,...d},transform:f}))}};ye.displayName=`Draggable`,ye.propTypes={...q.propTypes,axis:g.default.oneOf([`both`,`x`,`y`,`none`]),bounds:g.default.oneOfType([g.default.shape({left:g.default.number,right:g.default.number,top:g.default.number,bottom:g.default.number}),g.default.string,g.default.oneOf([!1])]),defaultClassName:g.default.string,defaultClassNameDragging:g.default.string,defaultClassNameDragged:g.default.string,defaultPosition:g.default.shape({x:g.default.number,y:g.default.number}),positionOffset:g.default.shape({x:g.default.oneOfType([g.default.number,g.default.string]),y:g.default.oneOfType([g.default.number,g.default.string])}),position:g.default.shape({x:g.default.number,y:g.default.number}),className:C,style:C,transform:C},ye.defaultProps={...q.defaultProps,axis:`both`,bounds:!1,defaultClassName:`react-draggable`,defaultClassNameDragging:`react-draggable-dragging`,defaultClassNameDragged:`react-draggable-dragged`,defaultPosition:{x:0,y:0},scale:1},0&&(t.exports={DraggableCore:q})})),Se=i(((e,t)=>{var n=xe(),r=n.DraggableCore,i=n.default||n;t.exports=i,t.exports.default=i,t.exports.DraggableCore=r})),Ce=i((e=>{e.__esModule=!0,e.cloneElement=l;var t=n(o());function n(e){return e&&e.__esModule?e:{default:e}}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?r(Object(n),!0).forEach(function(t){a(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function a(e,t,n){return(t=s(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e){var t=c(e,`string`);return typeof t==`symbol`?t:t+``}function c(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function l(e,n){return n.style&&e.props.style&&(n.style=i(i({},e.props.style),n.style)),n.className&&e.props.className&&(n.className=e.props.className+` `+n.className),t.default.cloneElement(e,n)}})),we=i((e=>{e.__esModule=!0,e.resizableProps=void 0;var t=n(J());Se();function n(e){return e&&e.__esModule?e:{default:e}}e.resizableProps={axis:t.default.oneOf([`both`,`x`,`y`,`none`]),className:t.default.string,children:t.default.element.isRequired,draggableOpts:t.default.shape({allowAnyClick:t.default.bool,cancel:t.default.string,children:t.default.node,disabled:t.default.bool,enableUserSelectHack:t.default.bool,offsetParent:typeof Element<`u`?t.default.instanceOf(Element):t.default.any,grid:t.default.arrayOf(t.default.number),handle:t.default.string,nodeRef:t.default.object,onStart:t.default.func,onDrag:t.default.func,onStop:t.default.func,onMouseDown:t.default.func,scale:t.default.number}),height:function(){var e=[...arguments];let n=e[0];return n.axis===`both`||n.axis===`y`?t.default.number.isRequired(...e):t.default.number(...e)},handle:t.default.oneOfType([t.default.node,t.default.func]),handleSize:t.default.arrayOf(t.default.number),lockAspectRatio:t.default.bool,maxConstraints:t.default.arrayOf(t.default.number),minConstraints:t.default.arrayOf(t.default.number),onResizeStop:t.default.func,onResizeStart:t.default.func,onResize:t.default.func,resizeHandles:t.default.arrayOf(t.default.oneOf([`s`,`w`,`e`,`n`,`sw`,`nw`,`se`,`ne`])),transformScale:t.default.number,width:function(){var e=[...arguments];let n=e[0];return n.axis===`both`||n.axis===`x`?t.default.number.isRequired(...e):t.default.number(...e)}}})),Te=i((e=>{e.__esModule=!0,e.default=void 0;var t=s(o()),n=Se(),r=Ce(),i=we(),a=[`children`,`className`,`draggableOpts`,`width`,`height`,`handle`,`handleSize`,`lockAspectRatio`,`axis`,`minConstraints`,`maxConstraints`,`onResize`,`onResizeStop`,`onResizeStart`,`resizeHandles`,`transformScale`];function s(e,t){if(typeof WeakMap==`function`)var n=new WeakMap,r=new WeakMap;return(s=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(e===null||typeof e!=`object`&&typeof e!=`function`)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(let t in e)t!=="default"&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(null,arguments)}function l(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?u(Object(n),!0).forEach(function(t){f(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function f(e,t,n){return(t=p(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e){var t=m(e,`string`);return typeof t==`symbol`?t:t+``}function m(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var h=class extends t.Component{constructor(){super(...arguments),this.handleRefs={},this.lastHandleRect=null,this.slack=null,this.lastSize=null}componentWillUnmount(){this.resetData()}resetData(){this.lastHandleRect=this.slack=this.lastSize=null}runConstraints(e,t){let n=this.props,r=n.minConstraints,i=n.maxConstraints,a=n.lockAspectRatio;if(!r&&!i&&!a)return[e,t];if(a){let n=this.props.width/this.props.height,r=e-this.props.width,i=t-this.props.height;Math.abs(r)>Math.abs(i*n)?t=e/n:e=t*n}let o=e,s=t,c=this.slack||[0,0],l=c[0],u=c[1];return e+=l,t+=u,r&&(e=Math.max(r[0],e),t=Math.max(r[1],t)),i&&(e=Math.min(i[0],e),t=Math.min(i[1],t)),this.slack=[l+(o-e),u+(s-t)],[e,t]}resizeHandler(e,t){return(n,r)=>{let i=r.node,a=r.deltaX,o=r.deltaY;e===`onResizeStart`&&this.resetData();let s=(this.props.axis===`both`||this.props.axis===`x`)&&t!==`n`&&t!==`s`,c=(this.props.axis===`both`||this.props.axis===`y`)&&t!==`e`&&t!==`w`;if(!s&&!c)return;let l=t[0],u=t[t.length-1],d=i.getBoundingClientRect();if(this.lastHandleRect!=null){if(u===`w`){let e=d.left-this.lastHandleRect.left;a+=e}if(l===`n`){let e=d.top-this.lastHandleRect.top;o+=e}}this.lastHandleRect=d,u===`w`&&(a=-a),l===`n`&&(o=-o);let f=this.lastSize?.width??this.props.width,p=this.lastSize?.height??this.props.height,m=f+(s?a/this.props.transformScale:0),h=p+(c?o/this.props.transformScale:0);var g=this.runConstraints(m,h);if(m=g[0],h=g[1],e===`onResizeStop`&&this.lastSize){var _=this.lastSize;m=_.width,h=_.height}let v=m!==f||h!==p;e!==`onResizeStop`&&(this.lastSize={width:m,height:h});let y=typeof this.props[e]==`function`?this.props[e]:null;y&&!(e===`onResize`&&!v)&&(n.persist==null||n.persist(),y(n,{node:i,size:{width:m,height:h},handle:t})),e===`onResizeStop`&&this.resetData()}}renderResizeHandle(e,n){let r=this.props.handle;if(!r)return t.createElement(`span`,{className:`react-resizable-handle react-resizable-handle-`+e,ref:n});if(typeof r==`function`)return r(e,n);let i=typeof r.type==`string`,a=d({ref:n},i?{}:{handleAxis:e});return t.cloneElement(r,a)}render(){let e=this.props,i=e.children,o=e.className,s=e.draggableOpts;e.width,e.height,e.handle,e.handleSize,e.lockAspectRatio,e.axis,e.minConstraints,e.maxConstraints,e.onResize,e.onResizeStop,e.onResizeStart;let u=e.resizeHandles;e.transformScale;let f=l(e,a);return(0,r.cloneElement)(i,d(d({},f),{},{className:(o?o+` `:``)+`react-resizable`,children:[...t.Children.toArray(i.props.children),...u.map(e=>{let r=this.handleRefs[e]??(this.handleRefs[e]=t.createRef());return t.createElement(n.DraggableCore,c({},s,{nodeRef:r,key:`resizableHandle-`+e,onStop:this.resizeHandler(`onResizeStop`,e),onStart:this.resizeHandler(`onResizeStart`,e),onDrag:this.resizeHandler(`onResize`,e)}),this.renderResizeHandle(e,r))})]}))}};e.default=h,h.propTypes=i.resizableProps,h.defaultProps={axis:`both`,handleSize:[20,20],lockAspectRatio:!1,minConstraints:[20,20],maxConstraints:[1/0,1/0],resizeHandles:[`se`],transformScale:1}})),Ee=i((e=>{e.__esModule=!0,e.default=void 0;var t=c(o()),n=s(J()),r=s(Te()),i=we(),a=[`handle`,`handleSize`,`onResize`,`onResizeStart`,`onResizeStop`,`draggableOpts`,`minConstraints`,`maxConstraints`,`lockAspectRatio`,`axis`,`width`,`height`,`resizeHandles`,`style`,`transformScale`];function s(e){return e&&e.__esModule?e:{default:e}}function c(e,t){if(typeof WeakMap==`function`)var n=new WeakMap,r=new WeakMap;return(c=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(e===null||typeof e!=`object`&&typeof e!=`function`)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(let t in e)t!=="default"&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(null,arguments)}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?u(Object(n),!0).forEach(function(t){f(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function f(e,t,n){return(t=p(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e){var t=m(e,`string`);return typeof t==`symbol`?t:t+``}function m(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function h(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var g=class extends t.Component{constructor(){super(...arguments),this.state={width:this.props.width,height:this.props.height,propsWidth:this.props.width,propsHeight:this.props.height},this.onResize=(e,t)=>{let n=t.size;this.props.onResize?(e.persist==null||e.persist(),this.setState(n,()=>this.props.onResize&&this.props.onResize(e,t))):this.setState(n)}}static getDerivedStateFromProps(e,t){return t.propsWidth!==e.width||t.propsHeight!==e.height?{width:e.width,height:e.height,propsWidth:e.width,propsHeight:e.height}:null}render(){let e=this.props,n=e.handle,i=e.handleSize;e.onResize;let o=e.onResizeStart,s=e.onResizeStop,c=e.draggableOpts,u=e.minConstraints,f=e.maxConstraints,p=e.lockAspectRatio,m=e.axis;e.width,e.height;let g=e.resizeHandles,_=e.style,v=e.transformScale,y=h(e,a);return t.createElement(r.default,{axis:m,draggableOpts:c,handle:n,handleSize:i,height:this.state.height,lockAspectRatio:p,maxConstraints:f,minConstraints:u,onResizeStart:o,onResize:this.onResize,onResizeStop:s,resizeHandles:g,transformScale:v,width:this.state.width},t.createElement(`div`,l({},y,{style:d(d({},_),{},{width:this.state.width+`px`,height:this.state.height+`px`})})))}};e.default=g,g.propTypes=d(d({},i.resizableProps),{},{children:n.default.element})})),De=i(((e,t)=>{t.exports=function(){throw Error(`Don't instantiate Resizable directly! Use require('react-resizable').Resizable`)},t.exports.Resizable=Te().default,t.exports.ResizableBox=Ee().default})),Oe=i((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.resizeHandleType=e.resizeHandleAxesType=e.default=void 0;var t=r(J()),n=r(o());function r(e){return e&&e.__esModule?e:{default:e}}var i=e.resizeHandleAxesType=t.default.arrayOf(t.default.oneOf([`s`,`w`,`e`,`n`,`sw`,`nw`,`se`,`ne`])),a=e.resizeHandleType=t.default.oneOfType([t.default.node,t.default.func]);e.default={className:t.default.string,style:t.default.object,width:t.default.number,autoSize:t.default.bool,cols:t.default.number,draggableCancel:t.default.string,draggableHandle:t.default.string,verticalCompact:function(e){e.verticalCompact},compactType:t.default.oneOf([`vertical`,`horizontal`]),layout:function(e){var t=e.layout;t!==void 0&&K().validateLayout(t,`layout`)},margin:t.default.arrayOf(t.default.number),containerPadding:t.default.arrayOf(t.default.number),rowHeight:t.default.number,maxRows:t.default.number,isBounded:t.default.bool,isDraggable:t.default.bool,isResizable:t.default.bool,allowOverlap:t.default.bool,preventCollision:t.default.bool,useCSSTransforms:t.default.bool,transformScale:t.default.number,isDroppable:t.default.bool,resizeHandles:i,resizeHandle:a,onLayoutChange:t.default.func,onDragStart:t.default.func,onDrag:t.default.func,onDragStop:t.default.func,onResizeStart:t.default.func,onResize:t.default.func,onResizeStop:t.default.func,onDrop:t.default.func,droppingItem:t.default.shape({i:t.default.string.isRequired,w:t.default.number.isRequired,h:t.default.number.isRequired}),children:function(e,t){let r=e[t],i={};n.default.Children.forEach(r,function(e){if(e?.key!=null){if(i[e.key])throw Error(`Duplicate child key "`+e.key+`" found! This will cause problems in ReactGridLayout.`);i[e.key]=!0}})},innerRef:t.default.any}})),ke=i((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=f(o()),n=c(),r=f(J()),i=Se(),a=De(),s=K(),l=q(),u=Oe(),d=f(M());function f(e){return e&&e.__esModule?e:{default:e}}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?p(Object(n),!0).forEach(function(t){h(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function h(e,t,n){return(t=g(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function g(e){var t=_(e,`string`);return typeof t==`symbol`?t:t+``}function _(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var v=class extends t.default.Component{constructor(){super(...arguments),h(this,`state`,{resizing:null,dragging:null,className:``}),h(this,`elementRef`,t.default.createRef()),h(this,`onDragStart`,(e,t)=>{let{node:n}=t,{onDragStart:r,transformScale:i}=this.props;if(!r)return;let a={top:0,left:0},{offsetParent:o}=n;if(!o)return;let s=o.getBoundingClientRect(),c=n.getBoundingClientRect(),u=c.left/i,d=s.left/i,f=c.top/i,p=s.top/i;a.left=u-d+o.scrollLeft,a.top=f-p+o.scrollTop,this.setState({dragging:a});let{x:m,y:h}=(0,l.calcXY)(this.getPositionParams(),a.top,a.left,this.props.w,this.props.h);return r.call(this,this.props.i,m,h,{e,node:n,newPosition:a})}),h(this,`onDrag`,(e,t,r)=>{let{node:i,deltaX:a,deltaY:o}=t,{onDrag:s}=this.props;if(!s)return;if(!this.state.dragging)throw Error(`onDrag called before onDragStart.`);let c=this.state.dragging.top+o,u=this.state.dragging.left+a,{isBounded:d,i:f,w:p,h:m,containerWidth:h}=this.props,g=this.getPositionParams();if(d){let{offsetParent:e}=i;if(e){let{margin:t,rowHeight:n}=this.props,r=e.clientHeight-(0,l.calcGridItemWHPx)(m,n,t[1]);c=(0,l.clamp)(c,0,r);let i=(0,l.calcGridColWidth)(g),a=h-(0,l.calcGridItemWHPx)(p,i,t[0]);u=(0,l.clamp)(u,0,a)}}let _={top:c,left:u};r?this.setState({dragging:_}):(0,n.flushSync)(()=>{this.setState({dragging:_})});let{x:v,y}=(0,l.calcXY)(g,c,u,p,m);return s.call(this,f,v,y,{e,node:i,newPosition:_})}),h(this,`onDragStop`,(e,t)=>{let{node:n}=t,{onDragStop:r}=this.props;if(!r)return;if(!this.state.dragging)throw Error(`onDragEnd called before onDragStart.`);let{w:i,h:a,i:o}=this.props,{left:s,top:c}=this.state.dragging,u={top:c,left:s};this.setState({dragging:null});let{x:d,y:f}=(0,l.calcXY)(this.getPositionParams(),c,s,i,a);return r.call(this,o,d,f,{e,node:n,newPosition:u})}),h(this,`onResizeStop`,(e,t,n)=>this.onResizeHandler(e,t,n,`onResizeStop`)),h(this,`onResizeStart`,(e,t,n)=>this.onResizeHandler(e,t,n,`onResizeStart`)),h(this,`onResize`,(e,t,n)=>this.onResizeHandler(e,t,n,`onResize`))}shouldComponentUpdate(e,t){if(this.props.children!==e.children||this.props.droppingPosition!==e.droppingPosition)return!0;let n=(0,l.calcGridItemPosition)(this.getPositionParams(this.props),this.props.x,this.props.y,this.props.w,this.props.h,this.state),r=(0,l.calcGridItemPosition)(this.getPositionParams(e),e.x,e.y,e.w,e.h,t);return!(0,s.fastPositionEqual)(n,r)||this.props.useCSSTransforms!==e.useCSSTransforms}componentDidMount(){this.moveDroppingItem({})}componentDidUpdate(e){this.moveDroppingItem(e)}moveDroppingItem(e){let{droppingPosition:t}=this.props;if(!t)return;let n=this.elementRef.current;if(!n)return;let r=e.droppingPosition||{left:0,top:0},{dragging:i}=this.state,a=i&&t.left!==r.left||t.top!==r.top;if(!i)this.onDragStart(t.e,{node:n,deltaX:t.left,deltaY:t.top});else if(a){let e=t.left-i.left,r=t.top-i.top;this.onDrag(t.e,{node:n,deltaX:e,deltaY:r},!0)}}getPositionParams(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.props;return{cols:e.cols,containerPadding:e.containerPadding,containerWidth:e.containerWidth,margin:e.margin,maxRows:e.maxRows,rowHeight:e.rowHeight}}createStyle(e){let{usePercentages:t,containerWidth:n,useCSSTransforms:r}=this.props,i;return r?i=(0,s.setTransform)(e):(i=(0,s.setTopLeft)(e),t&&(i.left=(0,s.perc)(e.left/n),i.width=(0,s.perc)(e.width/n))),i}mixinDraggable(e,n){return t.default.createElement(i.DraggableCore,{disabled:!n,onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop,handle:this.props.handle,cancel:`.react-resizable-handle`+(this.props.cancel?`,`+this.props.cancel:``),scale:this.props.transformScale,nodeRef:this.elementRef},e)}curryResizeHandler(e,t){return(n,r)=>t(n,r,e)}mixinResizable(e,n,r){let{cols:i,minW:o,minH:s,maxW:c,maxH:u,transformScale:d,resizeHandles:f,resizeHandle:p}=this.props,m=this.getPositionParams(),h=(0,l.calcGridItemPosition)(m,0,0,i,0).width,g=(0,l.calcGridItemPosition)(m,0,0,o,s),_=(0,l.calcGridItemPosition)(m,0,0,c,u),v=[g.width,g.height],y=[Math.min(_.width,h),Math.min(_.height,1/0)];return t.default.createElement(a.Resizable,{draggableOpts:{disabled:!r},className:r?void 0:`react-resizable-hide`,width:n.width,height:n.height,minConstraints:v,maxConstraints:y,onResizeStop:this.curryResizeHandler(n,this.onResizeStop),onResizeStart:this.curryResizeHandler(n,this.onResizeStart),onResize:this.curryResizeHandler(n,this.onResize),transformScale:d,resizeHandles:f,handle:p},e)}onResizeHandler(e,t,r,i){let{node:a,size:o,handle:c}=t,u=this.props[i];if(!u)return;let{x:d,y:f,i:p,maxH:m,minH:h,containerWidth:g}=this.props,{minW:_,maxW:v}=this.props,y=o;a&&(y=(0,s.resizeItemInDirection)(c,r,o,g),(0,n.flushSync)(()=>{this.setState({resizing:i===`onResizeStop`?null:y})}));let{w:b,h:x}=(0,l.calcWH)(this.getPositionParams(),y.width,y.height,d,f,c);b=(0,l.clamp)(b,Math.max(_,1),v),x=(0,l.clamp)(x,h,m),u.call(this,p,b,x,{e,node:a,size:y,handle:c})}render(){let{x:e,y:n,w:r,h:i,isDraggable:a,isResizable:o,droppingPosition:s,useCSSTransforms:c}=this.props,u=(0,l.calcGridItemPosition)(this.getPositionParams(),e,n,r,i,this.state),f=t.default.Children.only(this.props.children),p=t.default.cloneElement(f,{ref:this.elementRef,className:(0,d.default)(`react-grid-item`,f.props.className,this.props.className,{static:this.props.static,resizing:!!this.state.resizing,"react-draggable":a,"react-draggable-dragging":!!this.state.dragging,dropping:!!s,cssTransforms:c}),style:m(m(m({},this.props.style),f.props.style),this.createStyle(u))});return p=this.mixinResizable(p,u,o),p=this.mixinDraggable(p,a),p}};e.default=v,h(v,`propTypes`,{children:r.default.element,cols:r.default.number.isRequired,containerWidth:r.default.number.isRequired,rowHeight:r.default.number.isRequired,margin:r.default.array.isRequired,maxRows:r.default.number.isRequired,containerPadding:r.default.array.isRequired,x:r.default.number.isRequired,y:r.default.number.isRequired,w:r.default.number.isRequired,h:r.default.number.isRequired,minW:function(e,t){let n=e[t];if(typeof n!=`number`)return Error(`minWidth not Number`);if(n>e.w||n>e.maxW)return Error(`minWidth larger than item width/maxWidth`)},maxW:function(e,t){let n=e[t];if(typeof n!=`number`)return Error(`maxWidth not Number`);if(n<e.w||n<e.minW)return Error(`maxWidth smaller than item width/minWidth`)},minH:function(e,t){let n=e[t];if(typeof n!=`number`)return Error(`minHeight not Number`);if(n>e.h||n>e.maxH)return Error(`minHeight larger than item height/maxHeight`)},maxH:function(e,t){let n=e[t];if(typeof n!=`number`)return Error(`maxHeight not Number`);if(n<e.h||n<e.minH)return Error(`maxHeight smaller than item height/minHeight`)},i:r.default.string.isRequired,resizeHandles:u.resizeHandleAxesType,resizeHandle:u.resizeHandleType,onDragStop:r.default.func,onDragStart:r.default.func,onDrag:r.default.func,onResizeStop:r.default.func,onResizeStart:r.default.func,onResize:r.default.func,isDraggable:r.default.bool.isRequired,isResizable:r.default.bool.isRequired,isBounded:r.default.bool.isRequired,static:r.default.bool,useCSSTransforms:r.default.bool.isRequired,transformScale:r.default.number,className:r.default.string,handle:r.default.string,cancel:r.default.string,droppingPosition:r.default.shape({e:r.default.object.isRequired,left:r.default.number.isRequired,top:r.default.number.isRequired})}),h(v,`defaultProps`,{className:``,cancel:``,handle:``,minH:1,minW:1,maxH:1/0,maxW:1/0,transformScale:1})})),Ae=i((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=u(o()),n=W(),r=l(M()),i=K(),a=q(),s=l(ke()),c=l(Oe());function l(e){return e&&e.__esModule?e:{default:e}}function u(e,t){if(typeof WeakMap==`function`)var n=new WeakMap,r=new WeakMap;return(u=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(e===null||typeof e!=`object`&&typeof e!=`function`)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(let t in e)t!=="default"&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?d(Object(n),!0).forEach(function(t){p(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function p(e,t,n){return(t=m(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m(e){var t=h(e,`string`);return typeof t==`symbol`?t:t+``}function h(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var g=`react-grid-layout`,_=!1;try{_=/firefox/i.test(navigator.userAgent)}catch{}var v=class extends t.Component{constructor(){super(...arguments),p(this,`state`,{activeDrag:null,layout:(0,i.synchronizeLayoutWithChildren)(this.props.layout,this.props.children,this.props.cols,(0,i.compactType)(this.props),this.props.allowOverlap),mounted:!1,oldDragItem:null,oldLayout:null,oldResizeItem:null,resizing:!1,droppingDOMNode:null,children:[]}),p(this,`dragEnterCounter`,0),p(this,`onDragStart`,(e,t,n,r)=>{let{e:a,node:o}=r,{layout:s}=this.state,c=(0,i.getLayoutItem)(s,e);if(!c)return;let l={w:c.w,h:c.h,x:c.x,y:c.y,placeholder:!0,i:e};return this.setState({oldDragItem:(0,i.cloneLayoutItem)(c),oldLayout:s,activeDrag:l}),this.props.onDragStart(s,c,c,null,a,o)}),p(this,`onDrag`,(e,t,n,r)=>{let{e:a,node:o}=r,{oldDragItem:s}=this.state,{layout:c}=this.state,{cols:l,allowOverlap:u,preventCollision:d}=this.props,f=(0,i.getLayoutItem)(c,e);if(!f)return;let p={w:f.w,h:f.h,x:f.x,y:f.y,placeholder:!0,i:e};c=(0,i.moveElement)(c,f,t,n,!0,d,(0,i.compactType)(this.props),l,u),this.props.onDrag(c,s,f,p,a,o),this.setState({layout:u?c:(0,i.compact)(c,(0,i.compactType)(this.props),l),activeDrag:p})}),p(this,`onDragStop`,(e,t,n,r)=>{let{e:a,node:o}=r;if(!this.state.activeDrag)return;let{oldDragItem:s}=this.state,{layout:c}=this.state,{cols:l,preventCollision:u,allowOverlap:d}=this.props,f=(0,i.getLayoutItem)(c,e);if(!f)return;c=(0,i.moveElement)(c,f,t,n,!0,u,(0,i.compactType)(this.props),l,d);let p=d?c:(0,i.compact)(c,(0,i.compactType)(this.props),l);this.props.onDragStop(p,s,f,null,a,o);let{oldLayout:m}=this.state;this.setState({activeDrag:null,layout:p,oldDragItem:null,oldLayout:null}),this.onLayoutMaybeChanged(p,m)}),p(this,`onResizeStart`,(e,t,n,r)=>{let{e:a,node:o}=r,{layout:s}=this.state,c=(0,i.getLayoutItem)(s,e);c&&(this.setState({oldResizeItem:(0,i.cloneLayoutItem)(c),oldLayout:this.state.layout,resizing:!0}),this.props.onResizeStart(s,c,c,null,a,o))}),p(this,`onResize`,(e,t,n,r)=>{let{e:a,node:o,size:s,handle:c}=r,{oldResizeItem:l}=this.state,{layout:u}=this.state,{cols:d,preventCollision:p,allowOverlap:m}=this.props,h=!1,g,_,v,[y,b]=(0,i.withLayoutItem)(u,e,e=>{let r;return _=e.x,v=e.y,[`sw`,`w`,`nw`,`n`,`ne`].indexOf(c)!==-1&&([`sw`,`nw`,`w`].indexOf(c)!==-1&&(_=e.x+(e.w-t),t=e.x!==_&&_<0?e.w:t,_=_<0?0:_),[`ne`,`n`,`nw`].indexOf(c)!==-1&&(v=e.y+(e.h-n),n=e.y!==v&&v<0?e.h:n,v=v<0?0:v),h=!0),p&&!m&&(r=(0,i.getAllCollisions)(u,f(f({},e),{},{w:t,h:n,x:_,y:v})).filter(t=>t.i!==e.i).length>0,r&&(v=e.y,n=e.h,_=e.x,t=e.w,h=!1)),e.w=t,e.h=n,e});if(!b)return;g=y,h&&(g=(0,i.moveElement)(y,b,_,v,!0,this.props.preventCollision,(0,i.compactType)(this.props),d,m));let x={w:b.w,h:b.h,x:b.x,y:b.y,static:!0,i:e};this.props.onResize(g,l,b,x,a,o),this.setState({layout:m?g:(0,i.compact)(g,(0,i.compactType)(this.props),d),activeDrag:x})}),p(this,`onResizeStop`,(e,t,n,r)=>{let{e:a,node:o}=r,{layout:s,oldResizeItem:c}=this.state,{cols:l,allowOverlap:u}=this.props,d=(0,i.getLayoutItem)(s,e),f=u?s:(0,i.compact)(s,(0,i.compactType)(this.props),l);this.props.onResizeStop(f,c,d,null,a,o);let{oldLayout:p}=this.state;this.setState({activeDrag:null,layout:f,oldResizeItem:null,oldLayout:null,resizing:!1}),this.onLayoutMaybeChanged(f,p)}),p(this,`onDragOver`,e=>{var n;if(e.preventDefault(),e.stopPropagation(),_&&!((n=e.nativeEvent.target)!=null&&n.classList.contains(g)))return!1;let{droppingItem:r,onDropDragOver:i,margin:o,cols:s,rowHeight:c,maxRows:l,width:u,containerPadding:d,transformScale:p}=this.props,m=i?.(e);if(m===!1)return this.state.droppingDOMNode&&this.removeDroppingPlaceholder(),!1;let h=f(f({},r),m),{layout:v}=this.state,y=e.currentTarget.getBoundingClientRect(),b=e.clientX-y.left,x=e.clientY-y.top,S={left:b/p,top:x/p,e};if(!this.state.droppingDOMNode){let e={cols:s,margin:o,maxRows:l,rowHeight:c,containerWidth:u,containerPadding:d||o},n=(0,a.calcXY)(e,x,b,h.w,h.h);this.setState({droppingDOMNode:t.createElement(`div`,{key:h.i}),droppingPosition:S,layout:[...v,f(f({},h),{},{x:n.x,y:n.y,static:!1,isDraggable:!0})]})}else if(this.state.droppingPosition){let{left:e,top:t}=this.state.droppingPosition;(e!=b||t!=x)&&this.setState({droppingPosition:S})}}),p(this,`removeDroppingPlaceholder`,()=>{let{droppingItem:e,cols:t}=this.props,{layout:n}=this.state,r=(0,i.compact)(n.filter(t=>t.i!==e.i),(0,i.compactType)(this.props),t,this.props.allowOverlap);this.setState({layout:r,droppingDOMNode:null,activeDrag:null,droppingPosition:void 0})}),p(this,`onDragLeave`,e=>{e.preventDefault(),e.stopPropagation(),this.dragEnterCounter--,this.dragEnterCounter===0&&this.removeDroppingPlaceholder()}),p(this,`onDragEnter`,e=>{e.preventDefault(),e.stopPropagation(),this.dragEnterCounter++}),p(this,`onDrop`,e=>{e.preventDefault(),e.stopPropagation();let{droppingItem:t}=this.props,{layout:n}=this.state,r=n.find(e=>e.i===t.i);this.dragEnterCounter=0,this.removeDroppingPlaceholder(),this.props.onDrop(n,r,e)})}componentDidMount(){this.setState({mounted:!0}),this.onLayoutMaybeChanged(this.state.layout,this.props.layout)}static getDerivedStateFromProps(e,t){let r;return t.activeDrag?null:(!(0,n.deepEqual)(e.layout,t.propsLayout)||e.compactType!==t.compactType?r=e.layout:(0,i.childrenEqual)(e.children,t.children)||(r=t.layout),r?{layout:(0,i.synchronizeLayoutWithChildren)(r,e.children,e.cols,(0,i.compactType)(e),e.allowOverlap),compactType:e.compactType,children:e.children,propsLayout:e.layout}:null)}shouldComponentUpdate(e,t){return this.props.children!==e.children||!(0,i.fastRGLPropsEqual)(this.props,e,n.deepEqual)||this.state.activeDrag!==t.activeDrag||this.state.mounted!==t.mounted||this.state.droppingPosition!==t.droppingPosition}componentDidUpdate(e,t){if(!this.state.activeDrag){let e=this.state.layout,n=t.layout;this.onLayoutMaybeChanged(e,n)}}containerHeight(){if(!this.props.autoSize)return;let e=(0,i.bottom)(this.state.layout),t=this.props.containerPadding?this.props.containerPadding[1]:this.props.margin[1];return e*this.props.rowHeight+(e-1)*this.props.margin[1]+t*2+`px`}onLayoutMaybeChanged(e,t){t||=this.state.layout,(0,n.deepEqual)(t,e)||this.props.onLayoutChange(e)}placeholder(){let{activeDrag:e}=this.state;if(!e)return null;let{width:n,cols:r,margin:i,containerPadding:a,rowHeight:o,maxRows:c,useCSSTransforms:l,transformScale:u}=this.props;return t.createElement(s.default,{w:e.w,h:e.h,x:e.x,y:e.y,i:e.i,className:`react-grid-placeholder ${this.state.resizing?`placeholder-resizing`:``}`,containerWidth:n,cols:r,margin:i,containerPadding:a||i,maxRows:c,rowHeight:o,isDraggable:!1,isResizable:!1,isBounded:!1,useCSSTransforms:l,transformScale:u},t.createElement(`div`,null))}processGridItem(e,n){if(!e||!e.key)return;let r=(0,i.getLayoutItem)(this.state.layout,String(e.key));if(!r)return null;let{width:a,cols:o,margin:c,containerPadding:l,rowHeight:u,maxRows:d,isDraggable:f,isResizable:p,isBounded:m,useCSSTransforms:h,transformScale:g,draggableCancel:_,draggableHandle:v,resizeHandles:y,resizeHandle:b}=this.props,{mounted:x,droppingPosition:S}=this.state,C=typeof r.isDraggable==`boolean`?r.isDraggable:!r.static&&f,w=typeof r.isResizable==`boolean`?r.isResizable:!r.static&&p,T=r.resizeHandles||y,E=C&&m&&r.isBounded!==!1;return t.createElement(s.default,{containerWidth:a,cols:o,margin:c,containerPadding:l||c,maxRows:d,rowHeight:u,cancel:_,handle:v,onDragStop:this.onDragStop,onDragStart:this.onDragStart,onDrag:this.onDrag,onResizeStart:this.onResizeStart,onResize:this.onResize,onResizeStop:this.onResizeStop,isDraggable:C,isResizable:w,isBounded:E,useCSSTransforms:h&&x,usePercentages:!x,transformScale:g,w:r.w,h:r.h,x:r.x,y:r.y,i:r.i,minH:r.minH,minW:r.minW,maxH:r.maxH,maxW:r.maxW,static:r.static,droppingPosition:n?S:void 0,resizeHandles:T,resizeHandle:b},e)}render(){let{className:e,style:n,isDroppable:a,innerRef:o}=this.props,s=(0,r.default)(g,e),c=f({height:this.containerHeight()},n);return t.createElement(`div`,{ref:o,className:s,style:c,onDrop:a?this.onDrop:i.noop,onDragLeave:a?this.onDragLeave:i.noop,onDragEnter:a?this.onDragEnter:i.noop,onDragOver:a?this.onDragOver:i.noop},t.Children.map(this.props.children,e=>this.processGridItem(e)),a&&this.state.droppingDOMNode&&this.processGridItem(this.state.droppingDOMNode,!0),this.placeholder())}};e.default=v,p(v,`displayName`,`ReactGridLayout`),p(v,`propTypes`,c.default),p(v,`defaultProps`,{autoSize:!0,cols:12,className:``,style:{},draggableHandle:``,draggableCancel:``,containerPadding:null,rowHeight:150,maxRows:1/0,layout:[],margin:[10,10],isBounded:!1,isDraggable:!0,isResizable:!0,allowOverlap:!1,isDroppable:!1,useCSSTransforms:!0,transformScale:1,verticalCompact:!0,compactType:`vertical`,preventCollision:!1,droppingItem:{i:`__dropping-elem__`,h:1,w:1},resizeHandles:[`se`],onLayoutChange:i.noop,onDragStart:i.noop,onDrag:i.noop,onDragStop:i.noop,onResizeStart:i.noop,onResize:i.noop,onResizeStop:i.noop,onDrop:i.noop,onDropDragOver:i.noop})})),je=i((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.findOrGenerateResponsiveLayout=i,e.getBreakpointFromWidth=n,e.getColsFromBreakpoint=r,e.sortBreakpoints=a;var t=K();function n(e,t){let n=a(e),r=n[0];for(let i=1,a=n.length;i<a;i++){let a=n[i];t>e[a]&&(r=a)}return r}function r(e,t){if(!t[e])throw Error("ResponsiveReactGridLayout: `cols` entry for breakpoint "+e+` is missing!`);return t[e]}function i(e,n,r,i,o,s){if(e[r])return(0,t.cloneLayout)(e[r]);let c=e[i],l=a(n),u=l.slice(l.indexOf(r));for(let t=0,n=u.length;t<n;t++){let n=u[t];if(e[n]){c=e[n];break}}return c=(0,t.cloneLayout)(c||[]),(0,t.compact)((0,t.correctBounds)(c,{cols:o}),s,o)}function a(e){return Object.keys(e).sort(function(t,n){return e[t]-e[n]})}})),Me=i((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=u(o()),n=l(J()),r=W(),i=K(),a=je(),s=l(Ae()),c=[`breakpoint`,`breakpoints`,`cols`,`layouts`,`margin`,`containerPadding`,`onBreakpointChange`,`onLayoutChange`,`onWidthChange`];function l(e){return e&&e.__esModule?e:{default:e}}function u(e,t){if(typeof WeakMap==`function`)var n=new WeakMap,r=new WeakMap;return(u=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(e===null||typeof e!=`object`&&typeof e!=`function`)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(let t in e)t!=="default"&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},d.apply(null,arguments)}function f(e,t){if(e==null)return{};var n,r,i=p(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function p(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function h(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?m(Object(n),!0).forEach(function(t){g(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function g(e,t,n){return(t=_(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _(e){var t=v(e,`string`);return typeof t==`symbol`?t:t+``}function v(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var y=e=>Object.prototype.toString.call(e);function b(e,t){return e==null?null:Array.isArray(e)?e:e[t]}var x=class extends t.Component{constructor(){super(...arguments),g(this,`state`,this.generateInitialState()),g(this,`onLayoutChange`,e=>{this.props.onLayoutChange(e,h(h({},this.props.layouts),{},{[this.state.breakpoint]:e}))})}generateInitialState(){let{width:e,breakpoints:t,layouts:n,cols:r}=this.props,i=(0,a.getBreakpointFromWidth)(t,e),o=(0,a.getColsFromBreakpoint)(i,r),s=this.props.verticalCompact===!1?null:this.props.compactType;return{layout:(0,a.findOrGenerateResponsiveLayout)(n,t,i,i,o,s),breakpoint:i,cols:o}}static getDerivedStateFromProps(e,t){if(!(0,r.deepEqual)(e.layouts,t.layouts)){let{breakpoint:n,cols:r}=t;return{layout:(0,a.findOrGenerateResponsiveLayout)(e.layouts,e.breakpoints,n,n,r,e.compactType),layouts:e.layouts}}return null}componentDidUpdate(e){(this.props.width!=e.width||this.props.breakpoint!==e.breakpoint||!(0,r.deepEqual)(this.props.breakpoints,e.breakpoints)||!(0,r.deepEqual)(this.props.cols,e.cols))&&this.onWidthChange(e)}onWidthChange(e){let{breakpoints:t,cols:n,layouts:r,compactType:o}=this.props,s=this.props.breakpoint||(0,a.getBreakpointFromWidth)(this.props.breakpoints,this.props.width),c=this.state.breakpoint,l=(0,a.getColsFromBreakpoint)(s,n),u=h({},r);if(c!==s||e.breakpoints!==t||e.cols!==n){c in u||(u[c]=(0,i.cloneLayout)(this.state.layout));let e=(0,a.findOrGenerateResponsiveLayout)(u,t,s,c,l,o);e=(0,i.synchronizeLayoutWithChildren)(e,this.props.children,l,o,this.props.allowOverlap),u[s]=e,this.props.onBreakpointChange(s,l),this.props.onLayoutChange(e,u),this.setState({breakpoint:s,layout:e,cols:l})}let d=b(this.props.margin,s),f=b(this.props.containerPadding,s);this.props.onWidthChange(this.props.width,d,l,f)}render(){let e=this.props,{breakpoint:n,breakpoints:r,cols:i,layouts:a,margin:o,containerPadding:l,onBreakpointChange:u,onLayoutChange:p,onWidthChange:m}=e,h=f(e,c);return t.createElement(s.default,d({},h,{margin:b(o,this.state.breakpoint),containerPadding:b(l,this.state.breakpoint),onLayoutChange:this.onLayoutChange,layout:this.state.layout,cols:this.state.cols}))}};e.default=x,g(x,`propTypes`,{breakpoint:n.default.string,breakpoints:n.default.object,allowOverlap:n.default.bool,cols:n.default.object,margin:n.default.oneOfType([n.default.array,n.default.object]),containerPadding:n.default.oneOfType([n.default.array,n.default.object]),layouts(e,t){if(y(e[t])!==`[object Object]`)throw Error(`Layout property must be an object. Received: `+y(e[t]));Object.keys(e[t]).forEach(t=>{if(!(t in e.breakpoints))throw Error(`Each key in layouts must align with a key in breakpoints.`);(0,i.validateLayout)(e.layouts[t],`layouts.`+t)})},width:n.default.number.isRequired,onBreakpointChange:n.default.func,onLayoutChange:n.default.func,onWidthChange:n.default.func}),g(x,`defaultProps`,{breakpoints:{lg:1200,md:996,sm:768,xs:480,xxs:0},cols:{lg:12,md:10,sm:6,xs:4,xxs:2},containerPadding:{lg:null,md:null,sm:null,xs:null,xxs:null},layouts:{},margin:[10,10],allowOverlap:!1,onBreakpointChange:i.noop,onLayoutChange:i.noop,onWidthChange:i.noop})})),Ne=r({default:()=>st});function Pe(e,t){var n=!1,r=!1,i=0;function a(){n&&(n=!1,e()),r&&s()}function o(){qe(a)}function s(){var e=Date.now();if(n){if(e-i<Je)return;r=!0}else n=!0,r=!1,setTimeout(o,t);i=e}return s}function Fe(e){return parseFloat(e)||0}function Ie(e){return[...arguments].slice(1).reduce(function(t,n){var r=e[`border-`+n+`-width`];return t+Fe(r)},0)}function Le(e){for(var t=[`top`,`right`,`bottom`,`left`],n={},r=0,i=t;r<i.length;r++){var a=i[r],o=e[`padding-`+a];n[a]=Fe(o)}return n}function Re(e){var t=e.getBBox();return Ue(0,0,t.width,t.height)}function ze(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return et;var r=Y(e).getComputedStyle(e),i=Le(r),a=i.left+i.right,o=i.top+i.bottom,s=Fe(r.width),c=Fe(r.height);if(r.boxSizing===`border-box`&&(Math.round(s+a)!==t&&(s-=Ie(r,`left`,`right`)+a),Math.round(c+o)!==n&&(c-=Ie(r,`top`,`bottom`)+o)),!Be(e)){var l=Math.round(s+a)-t,u=Math.round(c+o)-n;Math.abs(l)!==1&&(s-=l),Math.abs(u)!==1&&(c-=u)}return Ue(i.left,i.top,s,c)}function Be(e){return e===Y(e).document.documentElement}function Ve(e){return Ge?tt(e)?Re(e):ze(e):et}function He(e){var t=e.x,n=e.y,r=e.width,i=e.height,a=Object.create((typeof DOMRectReadOnly<`u`?DOMRectReadOnly:Object).prototype);return $e(a,{x:t,y:n,width:r,height:i,top:n,right:t+r,bottom:i+n,left:t}),a}function Ue(e,t,n,r){return{x:e,y:t,width:n,height:r}}var We,Ge,Ke,qe,Je,Ye,Xe,Ze,Qe,$e,Y,et,tt,nt,rt,it,at,ot,st,ct=t((()=>{We=(function(){if(typeof Map<`u`)return Map;function e(e,t){var n=-1;return e.some(function(e,r){return e[0]===t&&(n=r,!0)}),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),r=this.__entries__[n];return r&&r[1]},t.prototype.set=function(t,n){var r=e(this.__entries__,t);~r?this.__entries__[r][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,r=e(n,t);~r&&n.splice(r,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){t===void 0&&(t=null);for(var n=0,r=this.__entries__;n<r.length;n++){var i=r[n];e.call(t,i[1],i[0])}},t}()})(),Ge=typeof window<`u`&&typeof document<`u`&&window.document===document,Ke=(function(){return typeof global<`u`&&global.Math===Math?global:typeof self<`u`&&self.Math===Math?self:typeof window<`u`&&window.Math===Math?window:Function(`return this`)()})(),qe=(function(){return typeof requestAnimationFrame==`function`?requestAnimationFrame.bind(Ke):function(e){return setTimeout(function(){return e(Date.now())},1e3/60)}})(),Je=2,Ye=20,Xe=[`top`,`right`,`bottom`,`left`,`width`,`height`,`size`,`weight`],Ze=typeof MutationObserver<`u`,Qe=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=Pe(this.refresh.bind(this),Ye)}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,n=t.indexOf(e);~n&&t.splice(n,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter(function(e){return e.gatherActive(),e.hasActive()});return e.forEach(function(e){return e.broadcastActive()}),e.length>0},e.prototype.connect_=function(){!Ge||this.connected_||(document.addEventListener(`transitionend`,this.onTransitionEnd_),window.addEventListener(`resize`,this.refresh),Ze?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener(`DOMSubtreeModified`,this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){!Ge||!this.connected_||(document.removeEventListener(`transitionend`,this.onTransitionEnd_),window.removeEventListener(`resize`,this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener(`DOMSubtreeModified`,this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=t===void 0?``:t;Xe.some(function(e){return!!~n.indexOf(e)})&&this.refresh()},e.getInstance=function(){return this.instance_||=new e,this.instance_},e.instance_=null,e}(),$e=(function(e,t){for(var n=0,r=Object.keys(t);n<r.length;n++){var i=r[n];Object.defineProperty(e,i,{value:t[i],enumerable:!1,writable:!1,configurable:!0})}return e}),Y=(function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||Ke}),et=Ue(0,0,0,0),tt=(function(){return typeof SVGGraphicsElement<`u`?function(e){return e instanceof Y(e).SVGGraphicsElement}:function(e){return e instanceof Y(e).SVGElement&&typeof e.getBBox==`function`}})(),nt=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=Ue(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=Ve(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},e}(),rt=function(){function e(e,t){var n=He(t);$e(this,{target:e,contentRect:n})}return e}(),it=function(){function e(e,t,n){if(this.activeObservations_=[],this.observations_=new We,typeof e!=`function`)throw TypeError(`The callback provided as parameter 1 is not a function.`);this.callback_=e,this.controller_=t,this.callbackCtx_=n}return e.prototype.observe=function(e){if(!arguments.length)throw TypeError(`1 argument required, but only 0 present.`);if(!(typeof Element>`u`||!(Element instanceof Object))){if(!(e instanceof Y(e).Element))throw TypeError(`parameter 1 is not of type "Element".`);var t=this.observations_;t.has(e)||(t.set(e,new nt(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw TypeError(`1 argument required, but only 0 present.`);if(!(typeof Element>`u`||!(Element instanceof Object))){if(!(e instanceof Y(e).Element))throw TypeError(`parameter 1 is not of type "Element".`);var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach(function(t){t.isActive()&&e.activeObservations_.push(t)})},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map(function(e){return new rt(e.target,e.broadcastRect())});this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),at=typeof WeakMap<`u`?new WeakMap:new We,ot=function(){function e(t){if(!(this instanceof e))throw TypeError(`Cannot call a class as a function.`);if(!arguments.length)throw TypeError(`1 argument required, but only 0 present.`);var n=new it(t,Qe.getInstance(),this);at.set(this,n)}return e}(),[`observe`,`unobserve`,`disconnect`].forEach(function(e){ot.prototype[e]=function(){var t;return(t=at.get(this))[e].apply(t,arguments)}}),st=(function(){return Ke.ResizeObserver===void 0?ot:Ke.ResizeObserver})()})),lt=i((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=_;var n=l(o()),r=c(J()),i=c((ct(),e(Ne))),a=c(M()),s=[`measureBeforeMount`];function c(e){return e&&e.__esModule?e:{default:e}}function l(e,t){if(typeof WeakMap==`function`)var n=new WeakMap,r=new WeakMap;return(l=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(e===null||typeof e!=`object`&&typeof e!=`function`)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(let t in e)t!=="default"&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u.apply(null,arguments)}function d(e,t){if(e==null)return{};var n,r,i=f(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function f(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function p(e,t,n){return(t=m(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m(e){var t=h(e,`string`);return typeof t==`symbol`?t:t+``}function h(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var g=`react-grid-layout`;function _(e){var t;return t=class extends n.Component{constructor(){super(...arguments),p(this,`state`,{width:1280}),p(this,`elementRef`,n.createRef()),p(this,`mounted`,!1),p(this,`resizeObserver`,void 0)}componentDidMount(){this.mounted=!0,this.resizeObserver=new i.default(e=>{if(this.elementRef.current instanceof HTMLElement){let t=e[0].contentRect.width;this.setState({width:t})}});let e=this.elementRef.current;e instanceof HTMLElement&&this.resizeObserver.observe(e)}componentWillUnmount(){this.mounted=!1;let e=this.elementRef.current;e instanceof HTMLElement&&this.resizeObserver.unobserve(e),this.resizeObserver.disconnect()}render(){let t=this.props,{measureBeforeMount:r}=t,i=d(t,s);return r&&!this.mounted?n.createElement(`div`,{className:(0,a.default)(this.props.className,g),style:this.props.style,ref:this.elementRef}):n.createElement(e,u({innerRef:this.elementRef},i,this.state))}},p(t,`defaultProps`,{measureBeforeMount:!1}),p(t,`propTypes`,{measureBeforeMount:r.default.bool}),t}})),ut=i(((e,t)=>{t.exports=Ae().default,t.exports.utils=K(),t.exports.calculateUtils=q(),t.exports.Responsive=Me().default,t.exports.Responsive.utils=je(),t.exports.WidthProvider=lt().default})),X=n(o(),1),dt=n(ut(),1);function ft(e,t){let n=typeof e.setCanvasQueries==`function`,[r,i]=(0,X.useState)(e.canvasQueries??[]),a=(0,X.useMemo)(()=>n?e.canvasQueries??[]:r,[n,e.canvasQueries,r]),o=(0,X.useCallback)(r=>{n?e.setCanvasQueries(r):i(r),t?.()},[n,e,t]);return{queries:a,runSearch:(0,X.useCallback)(e=>{let t=e.trim();!t||a.includes(t)||o([...a,t])},[a,o]),removeQuery:(0,X.useCallback)(e=>{o(e<0?[]:a.filter((t,n)=>n!==e))},[a,o]),clearSearch:(0,X.useCallback)(()=>o([]),[o])}}var Z=a();function pt({config:e,canvas:t}){let n=typeof e.pageSize==`number`?e.pageSize:50,r=e.viewMode===`card`||e.viewMode===`tile`||e.viewMode===`table`?e.viewMode:`table`,[i,a]=(0,X.useState)([]),[o,s]=(0,X.useState)(0),[c,l]=(0,X.useState)(1),[u,d]=(0,X.useState)(!0),f=t.canvasSort??de,{queries:p,runSearch:m,removeQuery:h}=ft(t,()=>l(1));(0,X.useEffect)(()=>{let e=!1;return(async()=>{d(!0);try{let r=await t.fetchDocuments({limit:n,page:c,sortBy:f.sortBy,order:f.order,queries:p.length?p:void 0});if(e)return;a(r.payload||[]),s(r.totalCount||r.count||0)}catch{e||(a([]),s(0))}finally{e||d(!1)}})(),()=>{e=!0}},[t,n,c,f.sortBy,f.order,p]);let g=(0,X.useCallback)(e=>{t.setCanvasSort?.(e),l(1)},[t]),_=t.readOnly===!0;return(0,Z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[!_&&(0,Z.jsxs)(`div`,{className:`canvas-no-drag flex items-center gap-2 border-b px-1 pb-2`,children:[(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Sort`}),(0,Z.jsx)(le,{workspaceId:t.workspaceId,value:f,onChange:g})]}),(0,Z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto`,children:(0,Z.jsx)(fe,{documents:i,isLoading:u,contextPath:t.path,treeName:t.treeName,workspaceId:t.workspaceId,totalCount:o,serverSort:f,viewMode:r,allowViewToggle:!0,currentPage:c,pageSize:n,onPageChange:l,backendSearchQueries:p,onBackendSearch:_?void 0:m,onRemoveBackendQuery:_?void 0:h})})]})}V({type:`documents-table`,name:`Documents`,icon:u,defaultSize:{w:8,h:6,minW:4,minH:3},mobileHeight:.9,defaultConfig:{pageSize:50,viewMode:`table`},component:pt});function mt({config:e,setConfig:t,canvas:n}){let[r,i]=(0,X.useState)(()=>new Date),a=e.format!==`24`;return(0,X.useEffect)(()=>{let e=setInterval(()=>i(new Date),1e3);return()=>clearInterval(e)},[]),(0,Z.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-1`,children:[(0,Z.jsx)(`div`,{className:`text-3xl font-semibold tabular-nums`,children:r.toLocaleTimeString(void 0,{hour12:a,hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}),(0,Z.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:r.toLocaleDateString(void 0,{weekday:`short`,month:`short`,day:`numeric`})}),!n.readOnly&&(0,Z.jsx)(`button`,{type:`button`,onClick:()=>t({...e,format:a?`24`:`12`}),className:`mt-1 px-2 py-0.5 text-[10px] border rounded-md text-muted-foreground hover:bg-accent`,children:a?`12h`:`24h`})]})}V({type:`clock`,name:`Clock`,icon:m,defaultSize:{w:3,h:2,minW:2,minH:2},defaultConfig:{format:`24`},component:mt});function ht({doc:e,workspaceId:t}){let n=ne(e),{activationProps:r}=oe(e,t);return(0,Z.jsxs)(`li`,{...r,title:`Open details`,className:`canvas-no-drag cursor-pointer py-1.5 min-w-0 rounded px-1 transition-colors hover:bg-accent/50 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring`,children:[(0,Z.jsx)(`div`,{className:`truncate font-medium`,children:n.title}),n.preview&&(0,Z.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:n.preview})]})}function gt({config:e,canvas:t}){let n=typeof e.limit==`number`?e.limit:10,[r,i]=(0,X.useState)([]),[a,o]=(0,X.useState)(!0),[s,c]=(0,X.useState)(null);return(0,X.useEffect)(()=>{let e=!1;return(async()=>{o(!0);try{let r=await t.fetchDocuments({limit:n});if(e)return;i(r.payload||[]),c(null)}catch(t){if(e)return;c(t instanceof Error?t.message:`Failed to load documents`),i([])}finally{e||o(!1)}})(),()=>{e=!0}},[t,n]),a?(0,Z.jsx)(`div`,{className:`text-xs text-muted-foreground p-1`,children:`Loading…`}):s?(0,Z.jsx)(`div`,{className:`text-xs text-destructive p-1`,children:s}):r.length===0?(0,Z.jsx)(`div`,{className:`text-xs text-muted-foreground p-1`,children:`No documents on this canvas.`}):(0,Z.jsx)(`ul`,{className:`divide-y text-sm`,children:r.map(e=>(0,Z.jsx)(ht,{doc:e,workspaceId:t.workspaceId},e.id))})}V({type:`recent-documents`,name:`Recent documents`,icon:w,defaultSize:{w:4,h:4,minW:3,minH:2},mobileHeight:.5,defaultConfig:{limit:10},component:gt});function _t({config:e,setConfig:t,canvas:n}){let r=typeof e.text==`string`?e.text:``;return(0,Z.jsx)(`textarea`,{value:r,readOnly:n.readOnly,onChange:n=>t({...e,text:n.target.value}),placeholder:n.readOnly?``:`Jot something down…`,className:`canvas-no-drag w-full h-full resize-none bg-transparent text-sm leading-6 outline-none`})}V({type:`note`,name:`Note`,icon:O,defaultSize:{w:3,h:3,minW:2,minH:2},defaultConfig:{text:``},component:_t});var vt=`data/schema/file`,yt=`data/schema/drawing`;function bt(e){return(e.schema===vt||e.schema===yt)&&String(e.metadata?.contentType||``).startsWith(`image/`)}function Q(e){return e.schema===vt&&String(e.metadata?.contentType||``).startsWith(`video/`)}var xt=`data/mime/image`;function St(e,t,n=!1){let[r,i]=(0,X.useState)([]),[a,o]=(0,X.useState)(0),[s,c]=(0,X.useState)(1),[l,u]=(0,X.useState)(!0),[d,f]=(0,X.useState)(null),[p,m]=(0,X.useState)(``),{queries:h,runSearch:g,removeQuery:_,clearSearch:v}=ft(e,()=>c(1)),y=e.canvasSort??de;(0,X.useEffect)(()=>{let r=!1,a=async()=>{u(!0),f(null);try{let a=await e.fetchDocuments({limit:t,page:s,queries:h.length?h:void 0,sortBy:y.sortBy,order:y.order,...n?{anyOf:[xt,`data/mime/video`]}:{allOf:[xt]}});if(r)return;i((a.payload||[]).filter(e=>bt(e)||n&&Q(e))),o(a.totalCount||a.count||0)}catch(e){if(r)return;i([]),o(0),f(e instanceof Error?e.message:`Failed to load images`)}finally{r||u(!1)}};return a(),window.addEventListener(`workspace:documents:refresh`,a),()=>{r=!0,window.removeEventListener(`workspace:documents:refresh`,a)}},[e,t,s,h,y.sortBy,y.order,n]);let b=(0,X.useCallback)(()=>{let e=p.trim();m(``),g(e)},[p,g]),x=(0,X.useCallback)(()=>{m(``),v()},[v]),S=(0,X.useCallback)(e=>{_(e)},[_]),C=(0,X.useCallback)(t=>{e.setCanvasSort?.(t),c(1)},[e]);return{images:r,isLoading:l,error:d,page:s,setPage:c,totalCount:a,totalPages:(0,X.useMemo)(()=>Math.max(1,Math.ceil(a/t)),[a,t]),input:p,setInput:m,submit:b,clearSearch:x,removeQuery:S,activeQueries:h,sort:y,setSort:C}}var Ct=n(c(),1);function wt({workspaceId:e,doc:t,onClick:n,className:r=`aspect-square`,comments:i=`off`}){let{blobUrl:a,error:o,loading:s}=he(e,t.id,512,{blobFallback:!Q(t),version:t.checksumArray?.[0]??null}),c=z(t)||`image-${t.id}`,l=te(t),u=l!==``&&i!==`off`;return(0,Z.jsxs)(`button`,{type:`button`,onClick:n,title:l||c,className:`canvas-no-drag group relative block w-full overflow-hidden rounded-(--card-radius) border bg-muted/40 shadow-elevation-1 transition-shadow hover:shadow-elevation-2 hover:ring-2 hover:ring-primary/30 ${r}`,children:[s&&(0,Z.jsx)(`div`,{className:`absolute inset-0 animate-pulse bg-muted/60`}),o&&!Q(t)&&(0,Z.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center p-1 text-[10px] text-destructive`,children:o}),a&&(0,Z.jsx)(`img`,{src:a,alt:c,loading:`lazy`,className:`h-full w-full object-cover transition-transform duration-normal group-hover:scale-105`}),Q(t)&&(0,Z.jsxs)(`span`,{className:`absolute inset-0 flex items-center justify-center`,children:[(0,Z.jsx)(x,{className:`h-10 w-10 rounded-full bg-black/60 p-2 text-white`}),(0,Z.jsx)(`span`,{className:`sr-only`,children:`Play video`})]}),u&&(0,Z.jsx)(`span`,{className:`pointer-events-none absolute inset-x-0 bottom-0 px-1.5 pb-1 pt-4 text-left text-[11px] leading-snug text-white bg-gradient-to-t from-black/75 via-black/45 to-transparent ${i===`reveal`?`caption-reveal`:``}`,children:(0,Z.jsx)(`span`,{className:`line-clamp-2`,children:l})}),l!==``&&i!==`caption`&&(0,Z.jsx)(`span`,{className:`pointer-events-none absolute right-1 top-1 rounded-full bg-black/55 p-1 text-white transition-opacity ${i===`reveal`?`hidden [@media(hover:hover)]:block [@media(hover:hover)]:group-hover:opacity-0`:``}`,title:`Has a comment`,children:(0,Z.jsx)(d,{className:`h-3 w-3`})})]})}function Tt({workspaceId:e,docs:t,index:n,onClose:r,onNavigate:i}){let a=t[n],{blobUrl:o,error:s,loading:c}=H(e,a.id,{version:a.checksumArray?.[0]??null,enabled:!Q(a)}),l=z(a)||`image-${a.id}`,u=te(a),[d,p]=(0,X.useState)(!1);return ge(r),(0,X.useEffect)(()=>{let e=e=>{e.target?.closest(`video`)||(e.key===`ArrowLeft`&&n>0&&i(n-1),e.key===`ArrowRight`&&n<t.length-1&&i(n+1))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n,t.length,i]),(0,Ct.createPortal)((0,Z.jsxs)(`div`,{"data-scheme":`dark`,className:`fixed inset-0 z-fullscreen flex flex-col bg-scrim p-0 sm:p-4`,onClick:r,children:[(0,Z.jsx)(`button`,{type:`button`,onClick:r,className:`canvas-no-drag absolute right-2 top-2 z-10 rounded-full bg-foreground/10 p-2 text-foreground hover:bg-foreground/20 touch-target sm:right-4 sm:top-4`,title:`Close`,children:(0,Z.jsx)(v,{className:`h-5 w-5`})}),n>0&&!d&&(0,Z.jsx)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),i(n-1)},className:`canvas-no-drag absolute left-3 top-1/2 -translate-y-1/2 rounded-full bg-foreground/10 p-2 text-foreground hover:bg-foreground/20`,title:`Previous`,children:(0,Z.jsx)(f,{className:`h-6 w-6 touch-target`})}),n<t.length-1&&!d&&(0,Z.jsx)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),i(n+1)},className:`canvas-no-drag absolute right-3 top-1/2 -translate-y-1/2 rounded-full bg-foreground/10 p-2 text-foreground hover:bg-foreground/20`,title:`Next`,children:(0,Z.jsx)(j,{className:`h-6 w-6 touch-target`})}),(0,Z.jsxs)(`figure`,{className:`flex min-h-0 flex-1 flex-col`,onClick:e=>e.stopPropagation(),children:[(0,Z.jsxs)(`div`,{className:`flex min-h-0 flex-1 items-center justify-center`,children:[c&&(0,Z.jsx)(`div`,{className:`text-sm text-foreground/70`,children:`Loading…`}),s&&(0,Z.jsx)(`div`,{className:`text-sm text-destructive`,children:s}),Q(a)&&(0,Z.jsx)(Dt,{workspaceId:e,doc:a},a.id),o&&(0,Z.jsx)(ce,{src:o,alt:l,onZoomChange:p,className:`max-h-full max-w-full rounded object-contain`})]}),(0,Z.jsxs)(`figcaption`,{className:`shrink-0 px-4 py-2 text-center text-xs text-foreground/70`,children:[u&&(0,Z.jsx)(`span`,{className:`mx-auto mb-1 block max-w-2xl whitespace-pre-wrap text-sm text-foreground`,children:u}),l,` · `,n+1,`/`,t.length,!d&&!Q(a)&&(0,Z.jsx)(`span`,{className:`ml-2 opacity-70`,children:`· double-tap to zoom`})]})]})]}),document.body)}function Et({workspaceId:e,state:t,comments:n,onToggleComments:r}){let{input:i,setInput:a,submit:o,clearSearch:s,removeQuery:c,activeQueries:l,sort:u,setSort:p,page:m,setPage:h,totalPages:g,totalCount:_,isLoading:y}=t,b=l.length>0;return(0,Z.jsxs)(`div`,{className:`canvas-no-drag flex flex-wrap items-center gap-x-2 gap-y-1.5 border-b px-1 pb-1.5`,children:[(0,Z.jsxs)(`div`,{className:`relative min-w-[9rem] flex-1 basis-full sm:basis-auto`,children:[(0,Z.jsx)(A,{className:`pointer-events-none absolute left-2 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground`}),(0,Z.jsx)(`input`,{value:i,onChange:e=>a(e.target.value),onKeyDown:e=>{e.key===`Enter`&&o()},placeholder:b?`Refine: add another query (Enter)…`:`Search media (Enter)…`,className:`h-7 w-full rounded-md border bg-background pl-7 pr-7 text-xs`}),b&&(0,Z.jsx)(`button`,{type:`button`,onClick:s,title:`Clear search`,className:`absolute right-1.5 top-1/2 -translate-y-1/2 rounded p-0.5 text-muted-foreground hover:text-foreground touch-target`,children:(0,Z.jsx)(v,{className:`h-3.5 w-3.5`})})]}),b&&(0,Z.jsx)(`div`,{className:`flex w-full flex-wrap items-center gap-1 order-last`,children:l.map((e,t)=>(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[t>0&&(0,Z.jsx)(`span`,{className:`text-[10px] uppercase text-muted-foreground`,children:`then`}),(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full border bg-accent/50 px-2 py-0.5 text-xs`,children:[(0,Z.jsx)(`span`,{className:`max-w-[10rem] truncate`,children:e}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>c(t),title:`Remove "${e}"`,className:`rounded p-0.5 text-muted-foreground hover:text-foreground touch-target`,children:(0,Z.jsx)(v,{className:`h-3 w-3`})})]})]},`${e}-${t}`))}),(0,Z.jsxs)(`div`,{className:`flex flex-1 basis-full items-center justify-between gap-2 sm:basis-auto sm:justify-end`,children:[r&&(0,Z.jsx)(`button`,{type:`button`,onClick:r,"aria-pressed":n!==`off`,title:n===`off`?`Show comments on tiles`:`Hide comments on tiles`,className:`flex h-7 w-7 shrink-0 items-center justify-center rounded-md border touch-target ${n===`off`?`text-muted-foreground hover:bg-accent`:`border-primary/30 bg-primary/15 text-primary hover:bg-primary/25`}`,children:(0,Z.jsx)(d,{className:`h-3.5 w-3.5`})}),(0,Z.jsx)(le,{workspaceId:e,value:u,onChange:p}),(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1`,children:[y&&(0,Z.jsx)(L,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`}),(0,Z.jsxs)(`span`,{className:`shrink-0 whitespace-nowrap tabular-nums text-xs text-muted-foreground`,children:[_.toLocaleString(),(0,Z.jsxs)(`span`,{className:`hidden sm:inline`,children:[` item`,_===1?``:`s`]})]}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>h(Math.max(1,m-1)),disabled:m<=1,title:`Previous page`,className:`flex h-7 w-7 shrink-0 items-center justify-center rounded-md border text-muted-foreground hover:bg-accent disabled:opacity-40 touch-target`,children:(0,Z.jsx)(f,{className:`h-3.5 w-3.5`})}),(0,Z.jsxs)(`span`,{className:`shrink-0 tabular-nums text-xs text-muted-foreground`,children:[m,`/`,g]}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>h(Math.min(g,m+1)),disabled:m>=g,title:`Next page`,className:`flex h-7 w-7 shrink-0 items-center justify-center rounded-md border text-muted-foreground hover:bg-accent disabled:opacity-40 touch-target`,children:(0,Z.jsx)(j,{className:`h-3.5 w-3.5`})})]})]})]})}function Dt({workspaceId:e,doc:t}){let{src:n,loading:r,error:i}=me(e,t.id);return(0,Z.jsxs)(Z.Fragment,{children:[r&&(0,Z.jsx)(`span`,{children:`Loading video…`}),i&&(0,Z.jsx)(`span`,{role:`alert`,children:i}),n&&(0,Z.jsx)(`video`,{src:n,controls:!0,playsInline:!0,preload:`metadata`,className:`max-h-full max-w-full`})]})}function Ot({config:e,setConfig:t,canvas:n}){let r=St(n,typeof e.pageSize==`number`?e.pageSize:60,!0),i=pe()==null&&(n.interactive??!n.readOnly),[a,o]=(0,X.useState)(new Set),[s,c]=(0,X.useState)(!1),[l,u]=(0,X.useState)(null),[d,f]=(0,X.useState)(null),p=e=>o(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n}),[m,h]=(0,X.useState)(null),{images:g,isLoading:_,error:v,activeQueries:y}=r,b=e.showComments===!1?`off`:`caption`;return(0,Z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[!n.readOnly&&(0,Z.jsx)(Et,{workspaceId:n.workspaceId,state:r,comments:b,onToggleComments:()=>t({...e,showComments:b===`off`})}),i&&(0,Z.jsxs)(`div`,{className:`canvas-no-drag flex items-center gap-2 py-1`,children:[(0,Z.jsx)(P,{size:`sm`,variant:`ghost`,onClick:()=>{c(!s),o(new Set)},children:s?`Done selecting`:`Select`}),s&&(0,Z.jsx)(P,{size:`sm`,variant:`ghost`,onClick:()=>o(new Set(g.map(e=>e.id))),children:`Select page`}),a.size>0&&(0,Z.jsxs)(P,{size:`sm`,variant:`outline`,onClick:()=>u([...a]),children:[`Bulk Edit… (`,a.size,`)`]})]}),(0,Z.jsx)(`div`,{className:`flex-1 overflow-y-auto p-1`,children:v?(0,Z.jsx)(`div`,{className:`p-4 text-sm text-destructive`,children:v}):g.length===0?(0,Z.jsx)(`div`,{className:`p-4 text-sm text-muted-foreground`,children:_?`Loading media…`:y.length?`No images or videos match your search.`:`No images or videos in this canvas' context.`}):(0,Z.jsx)(`div`,{className:`grid grid-cols-[repeat(auto-fill,minmax(min(120px,100%),1fr))] gap-2 sm:grid-cols-[repeat(auto-fill,minmax(min(200px,100%),1fr))] sm:gap-3`,children:g.map((e,t)=>(0,Z.jsxs)(`div`,{className:`relative`,onContextMenu:t=>{i&&(t.preventDefault(),t.stopPropagation(),f({x:t.clientX,y:t.clientY,ids:a.has(e.id)?[...a]:[e.id]}))},children:[(0,Z.jsx)(wt,{workspaceId:n.workspaceId,doc:e,onClick:()=>s?p(e.id):h(t),comments:b}),s&&(0,Z.jsx)(`input`,{type:`checkbox`,"aria-label":`Select document ${e.id}`,checked:a.has(e.id),onChange:()=>p(e.id),className:`canvas-no-drag absolute left-2 top-2 h-4 w-4 accent-primary`})]},e.id))})}),d&&(0,Z.jsx)(ee,{anchor:d,onClose:()=>f(null),label:`${d.ids.length} image${d.ids.length===1?``:`s`}`,items:[{id:`bulk-edit`,label:`Bulk edit… (${d.ids.length})`,icon:S,run:()=>u(d.ids)}]}),l&&(0,Z.jsx)(ue,{workspaceId:n.workspaceId,documentIds:l,onClose:()=>u(null)}),m!=null&&g[m]&&(0,Z.jsx)(Tt,{workspaceId:n.workspaceId,docs:g,index:m,onClose:()=>h(null),onNavigate:h})]})}V({type:`gallery`,name:`Gallery`,icon:T,defaultSize:{w:8,h:6,minW:3,minH:3},mobileHeight:.9,defaultConfig:{pageSize:60,showComments:!0},component:Ot});var kt=150;function $(e){let t=typeof e==`string`?parseFloat(e):e;return Number.isFinite(t)&&t>0?t:0}function At(e){let t=e.metadata??{},n=e.data??{};return{w:$(t.width)||$(t.imageWidth)||$(n.width)||$(n.imageWidth),h:$(t.height)||$(t.imageHeight)||$(n.height)||$(n.imageHeight)}}function jt(e,t){if(t%9==0)return{cols:2,rows:2};let{w:n,h:r}=At(e),i=n&&r?n/r:0;return i>=1.5?{cols:2,rows:1}:i>0&&i<=.66?{cols:1,rows:2}:!i&&t%7==3?{cols:2,rows:1}:{cols:1,rows:1}}function Mt({config:e,setConfig:t,canvas:n}){let r=St(n,typeof e.pageSize==`number`?e.pageSize:60),[i,a]=(0,X.useState)(null),{images:o,isLoading:s,error:c,activeQueries:l}=r,u=e.showComments===!1?`off`:`reveal`;return(0,Z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[!n.readOnly&&(0,Z.jsx)(Et,{workspaceId:n.workspaceId,state:r,comments:u,onToggleComments:()=>t({...e,showComments:u===`off`})}),(0,Z.jsx)(`div`,{className:`flex-1 overflow-y-auto p-1`,children:c?(0,Z.jsx)(`div`,{className:`p-4 text-sm text-destructive`,children:c}):o.length===0?(0,Z.jsx)(`div`,{className:`p-4 text-sm text-muted-foreground`,children:s?`Loading images…`:l.length?`No images match your search.`:`No images in this canvas' context.`}):(0,Z.jsx)(`div`,{className:`grid gap-2`,style:{gridTemplateColumns:`repeat(auto-fill, minmax(${kt}px, 1fr))`,gridAutoRows:`${kt}px`,gridAutoFlow:`dense`},children:o.map((e,t)=>{let{cols:r,rows:i}=jt(e,t);return(0,Z.jsx)(`div`,{style:{gridColumn:`span ${r}`,gridRow:`span ${i}`},children:(0,Z.jsx)(wt,{workspaceId:n.workspaceId,doc:e,onClick:()=>a(t),className:`h-full`,comments:u})},e.id)})})}),i!=null&&o[i]&&(0,Z.jsx)(Tt,{workspaceId:n.workspaceId,docs:o,index:i,onClose:()=>a(null),onNavigate:a})]})}V({type:`mosaic`,name:`Mosaic`,icon:k,defaultSize:{w:8,h:7,minW:4,minH:4},mobileHeight:.9,defaultConfig:{pageSize:60,showComments:!0},component:Mt});function Nt({canvas:e}){return pe()!=null||!I()?(0,Z.jsx)(`p`,{className:`p-3 text-sm text-muted-foreground`,children:`Workspace pins are available in the signed-in workspace view.`}):(0,Z.jsx)(Pt,{workspaceId:e.workspaceId},e.workspaceId)}function Pt({workspaceId:e}){let[t,n]=(0,X.useState)([]),[r,i]=(0,X.useState)(`Workspace`),[a,o]=(0,X.useState)(!0),[c,u]=(0,X.useState)(null),[d,f]=(0,X.useState)(0);return(0,X.useEffect)(()=>{let t=!1,r=0,a=async()=>{let a=++r;o(!0);try{let[o,s]=await Promise.all([R(e),B(e)]);if(t||a!==r)return;i(o.label||o.name||`Workspace`),n(s),u(null)}catch{if(t||a!==r)return;n([]),u(`Workspace pins are unavailable. Check your workspace access or try again.`)}finally{!t&&a===r&&o(!1)}},s=()=>{document.visibilityState===`visible`&&a()};a(),window.addEventListener(`focus`,s),document.addEventListener(`visibilitychange`,s);let c=F.on(`pins.changed`,s),l=window.setInterval(s,6e4);return()=>{t=!0,window.removeEventListener(`focus`,s),document.removeEventListener(`visibilitychange`,s),c?.(),window.clearInterval(l)}},[e,d]),(0,Z.jsxs)(`div`,{className:`canvas-no-drag flex h-full min-h-0 flex-col`,children:[(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b px-2 pb-2`,children:[(0,Z.jsx)(`span`,{className:`truncate text-sm font-medium`,children:r}),(0,Z.jsx)(`button`,{type:`button`,title:`Refresh pins`,"aria-label":`Refresh pins`,disabled:a,onClick:()=>f(e=>e+1),className:`rounded p-1.5 text-muted-foreground hover:bg-accent disabled:opacity-40`,children:(0,Z.jsx)(b,{className:`h-3.5 w-3.5 ${a?`animate-spin`:``}`})})]}),(0,Z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-1`,children:c?(0,Z.jsx)(`p`,{role:`alert`,className:`p-2 text-sm text-muted-foreground`,children:c}):t.length?(0,Z.jsx)(`ul`,{className:`space-y-2`,children:t.map(t=>{let n=t.resolvable===!1,r=_e(t.color),i=(0,Z.jsxs)(Z.Fragment,{children:[n?(0,Z.jsx)(g,{className:`h-5 w-5 shrink-0 text-warning`}):(0,Z.jsx)(s,{icon:t.icon||(t.type===`canvas`?`ph:squares-four-fill`:`ph:folder-fill`),width:22,height:22,color:r,className:`shrink-0`}),(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`p`,{className:`truncate text-sm font-medium`,children:t.label||t.name||t.path}),(0,Z.jsxs)(`p`,{className:`truncate text-xs text-muted-foreground`,children:[t.tree,`:`,t.path]}),t.description&&(0,Z.jsx)(`p`,{className:`line-clamp-2 text-xs text-muted-foreground`,children:t.description}),n&&(0,Z.jsx)(`p`,{className:`text-xs text-warning`,children:`Folder no longer exists`})]})]}),a=`flex items-center gap-3 rounded-(--card-radius) border border-l-4 bg-card p-3`,o={borderLeftColor:r||`transparent`};return(0,Z.jsx)(`li`,{children:n?(0,Z.jsx)(`div`,{className:`${a} opacity-60`,style:o,children:i}):(0,Z.jsx)(l,{to:ve(e,t.path,t.tree),title:`Open ${t.tree}:${t.path}`,className:`${a} transition-colors hover:bg-accent/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,style:o,children:i})},t.id)})}):(0,Z.jsx)(`p`,{className:`p-2 text-sm text-muted-foreground`,children:a?`Loading pins…`:`No workspace pins yet. Pin a folder from the workspace tree menu.`})})]})}V({type:`workspace-pins`,name:`Workspace pins`,icon:h,defaultSize:{w:4,h:6,minW:3,minH:2},mobileHeight:.6,defaultConfig:{},component:Nt});function Ft({title:e,icon:t,onRemove:n,fill:r,onToggleFill:i,readOnly:a=!1,stacked:o=!1,children:s}){let[c,l]=(0,X.useState)(!1),u=c?document.getElementById(`content-area`):null,d=(0,Z.jsxs)(`div`,{className:c?u?`absolute inset-0 z-40 flex flex-col bg-background`:`fixed inset-0 z-50 flex flex-col bg-background`:`flex flex-col h-full rounded-(--card-radius) border bg-background overflow-hidden`,children:[(0,Z.jsxs)(`div`,{className:`canvas-drag-handle flex items-center gap-2 px-2 py-1 border-b bg-muted/30 select-none ${o?``:`cursor-move`}`,children:[t&&(0,Z.jsx)(t,{className:`w-3.5 h-3.5 text-muted-foreground shrink-0`}),(0,Z.jsx)(`span`,{className:`text-xs font-medium truncate flex-1`,children:e}),!a&&i&&!c&&!o&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(It,{on:r?.w===!0,onClick:()=>i(`w`),label:`Fill width`,icon:E}),(0,Z.jsx)(It,{on:r?.h===!0,onClick:()=>i(`h`),label:`Fill height`,icon:_})]}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>l(e=>!e),className:`canvas-no-drag shrink-0 p-0.5 rounded text-muted-foreground hover:text-foreground hover:bg-accent touch-target`,title:c?`Restore`:`Full screen`,children:c?(0,Z.jsx)(C,{className:`w-3.5 h-3.5`}):(0,Z.jsx)(D,{className:`w-3.5 h-3.5`})}),!a&&n&&(0,Z.jsx)(`button`,{type:`button`,onClick:n,className:`canvas-no-drag shrink-0 p-0.5 rounded text-muted-foreground hover:text-destructive hover:bg-destructive/10 touch-target`,title:`Remove widget`,children:(0,Z.jsx)(v,{className:`w-3.5 h-3.5`})})]}),(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 overflow-auto p-2`,children:s})]});return c?(0,Ct.createPortal)(d,u??document.body):d}function It({on:e,onClick:t,label:n,icon:r}){return(0,Z.jsx)(`button`,{type:`button`,onClick:t,"aria-pressed":e,title:e?`${n} (on)`:n,className:`canvas-no-drag shrink-0 p-0.5 rounded touch-target ${e?`bg-primary/15 text-primary hover:bg-primary/25`:`text-muted-foreground hover:text-foreground hover:bg-accent`}`,children:(0,Z.jsx)(r,{className:`w-3.5 h-3.5`})})}var Lt=(0,dt.WidthProvider)(dt.default),Rt=12,zt=80,Bt=40,Vt=[12,12],Ht=[8,8],Ut={w:!1,h:!1};function Wt(e){return Math.max(1,...e.map(e=>e.y+e.h).filter(Number.isFinite))}function Gt(e){return Math.max(0,...e.map(e=>e.y+e.h).filter(Number.isFinite))}function Kt(e){let t=(e,t)=>typeof e==`number`&&Number.isFinite(e)?e:t;return{...e,x:t(e.x,0),y:t(e.y,0),w:t(e.w,1),h:t(e.h,1)}}function qt(e,t,n=0){let r=n>0?n:Wt(e);return e.map(e=>{let n=t[e.i]??Ut;return!n.w&&!n.h?e:{...e,x:n.w?0:e.x,w:n.w?Rt:e.w,y:n.h?0:e.y,h:n.h?Math.max(e.minH??1,r):e.h}})}var Jt=4;function Yt(e,t,n=Vt[1]){return Math.max(1,Math.ceil((e-n-Jt)/(t+n)))}var Xt=45,Zt=640;function Qt(e,t,n=0,r){let i=[...qt(e,t,n)].sort((e,t)=>e.y-t.y||e.x-t.x),a=0;return i.map(e=>{let t=r?.(e.i)??0,n=Math.max(e.h,e.minH??1,t),i={...e,x:0,w:Rt,y:a,h:n};return a+=n,i})}var $t=e=>e&&e.trim()?[e]:[];function en(e){let t=e?.ui??{},n=Array.isArray(t.layout)?t.layout.map(Kt):[],r={};for(let e of n)r[e.i]={w:e.fillW??e.w>=Rt,h:e.fillH===!0};return{layout:n,fills:r,widgets:t.widgets&&typeof t.widgets==`object`?t.widgets:{}}}function tn({workspaceId:e,treeName:t,path:n,layerId:r,querySpec:i,metadata:a,isLocked:o=!1,readOnly:s=!1,interactive:c=!0,fetchDocuments:l,onSaved:u}){let d=!s,f=(0,X.useMemo)(()=>en(a),[a]),[m,h]=(0,X.useState)(f.layout),[g,_]=(0,X.useState)(f.widgets),[v,b]=(0,X.useState)(f.fills),x=(0,X.useRef)(f.fills),[S,C]=(0,X.useState)(!1),[w,T]=(0,X.useState)(!1),[E,D]=(0,X.useState)(!1),[O,k]=(0,X.useState)(null),[A,j]=(0,X.useState)(!1),[M,P]=(0,X.useState)(0),F=(0,X.useRef)(0),I=(0,X.useCallback)(e=>{x.current=e,b(e)},[]),[L,ee]=(0,X.useState)(()=>U(i?.sort)),R=(0,X.useRef)(!1),[z,te]=(0,X.useState)(()=>$t(i?.query)),B=(0,X.useRef)(!1),ne=(0,X.useRef)(null),V=(0,X.useRef)(f),oe=(0,X.useCallback)(e=>{let t=se(g[e]?.type??``)?.mobileHeight;if(!(!t||M<=0))return Math.max(1,Math.round(M*t))},[g,M]),ce=(0,X.useMemo)(()=>A?Qt(m,v,M,oe):qt(m,v,M),[m,v,A,M,oe]),le=A?Bt:zt,ue=(0,X.useMemo)(()=>JSON.stringify(a?.ui??null),[a?.ui]);(0,X.useEffect)(()=>{let e=en(a);h(e.layout),_(e.widgets),I(e.fills),V.current=e,ee(U(i?.sort)),R.current=!1,te($t(i?.query)),B.current=!1,T(!1)},[n,r]),(0,X.useEffect)(()=>{if(!s)return;let e=en(a);h(e.layout),_(e.widgets),I(e.fills),V.current=e},[s,ue,a,I]),(0,X.useEffect)(()=>{let e=ne.current;if(!e)return;let t=()=>{let t=e.clientHeight,n=e.clientWidth>0&&e.clientWidth<Zt;j(n),F.current=t,e.style.setProperty(`--canvas-host-h`,`${t}px`);let r=n?Ht:Vt;e.style.setProperty(`--canvas-grid-gutter`,`${r[1]}px`),t>0&&P(Yt(t,n?Bt:zt,r[1]))};t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[m]);let de=(0,X.useCallback)(e=>{ee(e),R.current=!0,T(!0)},[]),fe=(0,X.useCallback)(e=>{te(e),B.current=!0,T(!0)},[]),pe=(0,X.useMemo)(()=>({workspaceId:e,treeName:t,path:n,layerId:r,querySpec:i,readOnly:!d,interactive:c,canvasSort:L,setCanvasSort:d?de:void 0,canvasQueries:z,setCanvasQueries:d?fe:void 0,fetchDocuments:l??(async r=>{let i;if(r?.anyOf?.length&&(i=((await re(e,n,t,{anyOf:r.anyOf,limit:0,applyCanvasSpec:!1})).payload||[]).map(e=>e.id),!i.length))return{payload:[],count:0,totalCount:0};let a=await re(e,n,t,{...r,anyOf:void 0,ids:i});return{payload:a.payload||[],count:a.count??void 0,totalCount:a.totalCount??void 0}})}),[e,t,n,r,i,d,c,l,L,de,z,fe]),H=(0,X.useCallback)((e,t,n)=>{V.current={layout:e,widgets:t,fills:n??x.current},T(!0)},[]),me=(0,X.useCallback)(async()=>{if(!(!d||E)){D(!0),k(null);try{let r={widgets:V.current.widgets,layout:V.current.layout.map(e=>({...e,fillW:x.current[e.i]?.w===!0,fillH:x.current[e.i]?.h===!0}))};V.current={...r,fills:x.current};let o=R.current||B.current?{...i||{},...R.current?{sort:L.sortBy?L:null}:{},...B.current?{query:z.join(` `).trim()||null}:{}}:void 0;await ie(e,n,t,{...a||{},ui:r},o),R.current=!1,B.current=!1,T(!1),window.dispatchEvent(new CustomEvent(`workspace:tree:refresh`,{detail:{workspaceName:e,treeName:t}})),u?.()}catch(e){let t=e instanceof Error?e.message:`Save failed`;k(t),console.error(`Failed to save canvas layout:`,e)}finally{D(!1)}}},[d,E,e,n,t,a,u,i,L,z]),he=(0,X.useCallback)(e=>{!d||A||h(t=>{let n=e.map(e=>{let n=t.find(t=>t.i===e.i),r=x.current[e.i];return n?{...e,x:r?.w?n.x:e.x,w:r?.w?n.w:e.w,y:r?.h?n.y:e.y,h:r?.h?n.h:e.h}:e});return H(n,g),n})},[d,A,H,g]),ge=(0,X.useCallback)((e,t,n)=>{if(!d)return;let r=x.current[n.i]??Ut,i=Vt[1]+(n.y+n.h)*(zt+Vt[1]),a={w:n.x+n.w>=Rt,h:F.current>0&&i>=F.current-Xt};if(a.w||=r.w&&n.w===t.w,a.h||=r.h&&n.h===t.h,a.w===r.w&&a.h===r.h)return;let o={...x.current,[n.i]:a};I(o),H(V.current.layout,g,o)},[d,I,H,g]),_e=(0,X.useCallback)((e,t)=>{if(!d)return;let n=x.current[e]??Ut,r={...x.current,[e]:{...n,[t]:!n[t]}};I(r),H(m,g,r)},[d,I,H,m,g]),ve=(0,X.useCallback)(e=>{let t=se(e);if(!t)return;let n=crypto.randomUUID(),{w:r,h:i,minW:a,minH:o,maxW:s,maxH:c}=t.defaultSize,l=[...m,{i:n,x:0,y:Gt(ce),w:r,h:i,minW:a,minH:o,maxW:s,maxH:c}],u={...g,[n]:{type:e,config:{...t.defaultConfig||{}}}},d={...x.current,[n]:{w:r>=Rt,h:!1}};h(l),_(u),I(d),C(!1),H(l,u,d)},[m,ce,g,I,H]),W=(0,X.useCallback)(e=>{let t=m.filter(t=>t.i!==e),n={...g};delete n[e];let r={...x.current};delete r[e],h(t),_(n),I(r),H(t,n,r)},[m,g,I,H]),G=(0,X.useCallback)((e,t)=>{_(n=>{let r={...n,[e]:{...n[e],config:t}};return H(m,r),r})},[m,H]),K=Object.keys(g);return(0,Z.jsxs)(`div`,{className:`flex flex-col h-full min-h-0`,children:[d&&(0,Z.jsxs)(`div`,{className:`flex items-center gap-2 px-2 py-1.5 border-b shrink-0 sm:px-3`,children:[(0,Z.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>C(e=>!e),className:`flex items-center gap-1.5 whitespace-nowrap px-2.5 py-1 text-xs border rounded-md hover:bg-accent`,children:[(0,Z.jsx)(y,{className:`w-3.5 h-3.5`}),`Add`,(0,Z.jsx)(`span`,{className:`hidden sm:inline`,children:` widget`})]}),S&&(0,Z.jsx)(`div`,{className:`absolute left-0 top-full mt-1 z-20 w-48 rounded-md border bg-popover shadow-elevation-2 py-1`,children:ae().map(e=>(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>ve(e.type),className:`flex items-center gap-2 w-full px-3 py-1.5 text-xs text-left hover:bg-accent`,children:[(0,Z.jsx)(e.icon,{className:`w-3.5 h-3.5 text-muted-foreground`}),e.name]},e.type))})]}),(0,Z.jsxs)(`button`,{type:`button`,onClick:me,disabled:!w||E,className:N(`flex shrink-0 items-center gap-1.5 whitespace-nowrap px-2.5 py-1 text-xs rounded-md transition-colors disabled:opacity-50`,w?`bg-primary text-primary-foreground hover:bg-primary`:`border hover:bg-accent`),children:[(0,Z.jsx)(p,{className:`w-3.5 h-3.5`}),E?`Saving…`:`Save`]}),(0,Z.jsxs)(`span`,{className:`min-w-0 truncate text-xs text-muted-foreground`,children:[K.length,` widget`,K.length===1?``:`s`,w?` · unsaved`:``,O?` · ${O}`:``]})]}),(0,Z.jsx)(`div`,{ref:ne,className:`canvas-grid-host flex-1 min-h-0 bg-muted/10 overflow-y-auto overflow-x-hidden`,children:K.length===0?(0,Z.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-2 text-sm text-muted-foreground`,children:[(0,Z.jsx)(`p`,{children:`No widgets yet.`}),d&&(0,Z.jsx)(`p`,{className:`text-xs`,children:`Use “Add widget” to place one on the canvas.`})]}):(0,Z.jsx)(Lt,{className:`layout`,layout:ce,cols:Rt,rowHeight:le,margin:A?Ht:Vt,isDraggable:d&&!A,isResizable:d&&!A,resizeHandles:[`s`,`e`,`se`],draggableHandle:`.canvas-drag-handle`,draggableCancel:`.canvas-no-drag`,onLayoutChange:he,onResizeStop:ge,compactType:`vertical`,children:K.map(e=>{let t=g[e],n=se(t.type),r=v[e]??Ut,i=[r.w?`w`:``,r.h?`h`:``].filter(Boolean).join(` `);return(0,Z.jsx)(`div`,{"data-fill":i||void 0,children:n?(0,Z.jsx)(Ft,{title:n.name,icon:n.icon,readOnly:!d,stacked:A,onRemove:()=>W(e),fill:v[e]??Ut,onToggleFill:d?t=>_e(e,t):void 0,children:(0,Z.jsx)(n.component,{config:t.config??{...n.defaultConfig||{}},setConfig:t=>G(e,t),canvas:pe})}):(0,Z.jsx)(Ft,{title:`Unknown: ${t.type}`,readOnly:!d,stacked:A,onRemove:()=>W(e),children:(0,Z.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`This widget type is not available.`})})},e)})})})]})}var nn=(0,X.createContext)(null);function rn(){let e=(0,X.useContext)(nn);if(!e)throw Error(`useCanvasPins must be used within a CanvasPinsProvider`);return e}export{rn as n,tn as r,nn as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{u as t}from"./code-editor-BOIngd5F.js";import{v as n}from"./chunk-62JRHF6Z-vspAGgtK.js";var r=e(t(),1);function i(){let[e,t]=n(),i=e.get(`create`)===`1`,[a,o]=(0,r.useState)(i),[s,c]=(0,r.useState)(i);return i!==s&&(c(i),i&&o(!0)),[a,(0,r.useCallback)(n=>{if(o(n),!n&&i){let n=new URLSearchParams(e);n.delete(`create`),t(n,{replace:!0})}},[e,i,t])]}export{i as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{u as t}from"./code-editor-BOIngd5F.js";var n=e(t(),1),r=(0,n.createContext)(null),i={open:()=>{},close:()=>{}};function a(){return(0,n.useContext)(r)??i}export{a as n,r as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{u as t}from"./code-editor-BOIngd5F.js";import{g as n,h as r}from"./chunk-62JRHF6Z-vspAGgtK.js";import{Cn as i,Dn as a,H as o,Jt as s,Sn as c,Ut as l,Xn as u,Yr as d,bn as f,bt as p,mt as m,st as h,ut as g,wn as _,zn as v}from"./ui-BSqPn1LJ.js";import"./use-mobile-Db-vWu9Y.js";var y=e(t(),1),b=[{id:`device`,label:`This device`,description:`Personalize this browser and manage content available offline.`,items:[{path:`/appearance`,icon:l,label:`Appearance`,description:`Choose the theme, layout, colours, display density and document reading pane.`},{path:`/key-bindings`,icon:c,label:`Keyboard shortcuts`,description:`View and customize shortcuts for navigation and actions.`},{path:`/offline`,icon:v,label:`Offline & cache`,description:`Manage cached content and storage on this device.`}]},{id:`account`,label:`Your account`,description:`Manage your access and the defaults your workspaces inherit.`,items:[{path:`/api-tokens`,icon:i,label:`API access tokens`,description:`Create and revoke credentials for apps and integrations.`},{path:`/devices`,icon:s,label:`Registered devices`,description:`Manage devices connected to your account.`},{path:`/embedding`,icon:h,label:`Search & AI defaults`,description:`Choose default embedding providers and models for your workspaces.`},{path:`/shared`,icon:m,label:`Shared with you`,description:`Find content other people have shared with your account.`}]},{id:`server`,label:`Server administration`,description:`Administrator controls for everyone using this Canvas server.`,items:[{path:`/admin/users`,icon:o,label:`Users`,description:`Manage accounts and server access.`},{path:`/admin/roles`,icon:g,label:`Roles & permissions`,description:`Manage reusable permissions across the server.`},{path:`/admin/auth`,icon:_,label:`Authentication`,description:`Configure sign-in backends: local passwords, LDAP and IMAP.`},{path:`/admin/embedding`,icon:h,label:`Server search & AI defaults`,description:`Set the embedding providers and models accounts inherit.`},{path:`/admin/logs`,icon:p,label:`Server logs`,description:`Inspect server activity and troubleshoot failures.`},{path:`/admin/contexts`,icon:f,label:`All contexts`,description:`Inspect and manage contexts across the server.`},{path:`/admin/workspaces`,icon:u,label:`All workspaces`,description:`Inspect and manage workspaces across the server.`},{path:`/admin/agents`,icon:d,label:`All agents`,description:`Inspect and manage agents across the server.`}]},{id:`information`,label:`Information`,description:`Information about your Canvas installation.`,items:[{path:`/about`,icon:a,label:`About Canvas`,description:`View versions and information about this installation.`}]}],x=[`/settings`,...b.filter(e=>e.id!==`server`).flatMap(e=>e.items.map(e=>e.path))];function S(e,...t){let n=t.join(` `).toLocaleLowerCase();return e.toLocaleLowerCase().trim().split(/\s+/).every(e=>n.includes(e))}var C=[{id:`classic`,name:`Classic`,description:`Menu panel on the left, one content sheet.`},{id:`strip`,name:`Canvas strip (beta)`,description:`Experimental. Menus and canvases side by side in a strip you walk with the arrow keys or a swipe. Shift+click opens a second canvas to the right; pins open their own row.`}],w=`canvas:layout`;function T(){try{return localStorage.getItem(w)===`strip`?`strip`:`classic`}catch{return`classic`}}var E=T(),D=new Set;function O(){for(let e of D)e()}function k(){return E}function A(e){try{e===`strip`?localStorage.setItem(w,e):localStorage.removeItem(w)}catch{}E=e,O()}function j(e){D.add(e);let t=t=>{(t.key===w||t.key===null)&&(E=T(),e())};return window.addEventListener(`storage`,t),()=>{D.delete(e),window.removeEventListener(`storage`,t)}}function M(){return(0,y.useSyncExternalStore)(j,k,()=>`classic`)}var N=[{id:`shift`,name:`Shift + arrows`,description:`Shift with an arrow key moves between columns and rows.`},{id:`alt`,name:`Alt + arrows`,description:`Alt with an arrow key. Some browsers use Alt+Left/Right for history.`},{id:`ctrl`,name:`Ctrl + arrows`,description:`Ctrl (Cmd on macOS) with an arrow key.`},{id:`none`,name:`Bare arrows`,description:`Plain arrow keys, except while typing in a field.`}],P=`canvas:layout-nav`;function F(){try{let e=localStorage.getItem(P);return e===`alt`||e===`ctrl`||e===`none`?e:`shift`}catch{return`shift`}}var I=F(),L=new Set;function R(){return I}function z(e){try{e===`shift`?localStorage.removeItem(P):localStorage.setItem(P,e)}catch{}I=e;for(let e of L)e()}function B(e){L.add(e);let t=t=>{(t.key===P||t.key===null)&&(I=F(),e())};return window.addEventListener(`storage`,t),()=>{L.delete(e),window.removeEventListener(`storage`,t)}}function V(){return(0,y.useSyncExternalStore)(B,R,()=>`shift`)}function H(e,t){let n=e.ctrlKey||e.metaKey;switch(t){case`shift`:return e.shiftKey&&!e.altKey&&!n;case`alt`:return e.altKey&&!e.shiftKey&&!n;case`ctrl`:return n&&!e.shiftKey&&!e.altKey;case`none`:return!e.shiftKey&&!e.altKey&&!n}}function U(){return window.matchMedia(`(max-width: 767px)`).matches&&k()!==`strip`}var W=(0,y.createContext)(null);function G(){let e=(0,y.useContext)(W);if(!e)throw Error(`useMenu must be used within a MenuProvider`);return e}function K(e){let t=e.split(`/`).filter(Boolean),n=t[0]||``,r=t[1]||null,i=t[2]||null;return n===`contexts`?{section:`contexts`,entityId:r,m2View:i===`settings`?`settings`:r?`detail`:null}:n===`workspaces`?{section:`workspaces`,entityId:r,m2View:i===`settings`?`settings`:r?`detail`:null}:n===`agents`?{section:`agents`,entityId:r,m2View:i===`settings`?`settings`:r?`detail`:null}:n===`apps`?{section:`apps`,entityId:null,m2View:null}:n===`admin`||x.includes(`/${n}`)?{section:`settings`,entityId:null,m2View:null}:{section:null,entityId:null,m2View:null}}function q(e,t){let i=r(),a=n(),o=(0,y.useRef)(!1),s=(0,y.useRef)(e);return(0,y.useEffect)(()=>{s.current=e},[e]),(0,y.useLayoutEffect)(()=>{if(o.current){o.current=!1;return}let{section:e,entityId:n,m2View:r}=K(i.pathname);if(e===null&&i.pathname!==`/`&&k()===`strip`){let t=s.current;e=t.activeSection,n=t.selectedEntityId,r=t.m2View}let a=U(),c=a?i.state?.canvasMenu:void 0;t(c?{type:`RESTORE_MENU`,menu:c}:{type:`SYNC_FROM_URL`,section:e,entityId:n,m2View:r,mobile:a})},[i.key,i.pathname,i.state,t]),{navigateToEntity:(0,y.useCallback)(e=>{o.current=!0,a(e)},[a])}}export{q as a,H as c,M as d,V as f,G as i,A as l,S as m,U as n,N as o,b as p,K as r,C as s,W as t,z as u};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{u as t}from"./code-editor-BOIngd5F.js";var n=e(t(),1),r=`(max-width: 767px)`,i=new Map;function a(e){let t=i.get(e);if(!t){let n=()=>typeof window<`u`&&typeof window.matchMedia==`function`;t={subscribe:t=>{if(!n())return()=>{};let r=window.matchMedia(e);return r.addEventListener(`change`,t),()=>r.removeEventListener(`change`,t)},getSnapshot:()=>n()?window.matchMedia(e).matches:!1},i.set(e,t)}return t}function o(){let e=a(r);return(0,n.useSyncExternalStore)(e.subscribe,e.getSnapshot,()=>!1)}function s(){return c(`(max-width: 1023px)`)}function c(e){let t=a(e);return(0,n.useSyncExternalStore)(t.subscribe,t.getSnapshot,()=>!1)}export{s as n,c as r,o as t};
@@ -0,0 +1 @@
1
+ import{i as e}from"./use-menu-BVkqNEIx.js";function t(){let{goBack:t}=e();return t}export{t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{l as t,u as n}from"./code-editor-BOIngd5F.js";import{Ir as r,di as i,ii as a}from"./ui-BSqPn1LJ.js";import{t as o}from"./utils-2pl1SbIp.js";var s=e(n(),1),c=t(),l=s.forwardRef(({className:e,...t},n)=>(0,c.jsx)(`div`,{className:`relative w-full overflow-auto`,children:(0,c.jsx)(`table`,{ref:n,className:o(`w-full caption-bottom text-sm`,e),...t})}));l.displayName=`Table`;var u=s.forwardRef(({className:e,...t},n)=>(0,c.jsx)(`thead`,{ref:n,className:o(`[&_tr]:border-b`,e),...t}));u.displayName=`TableHeader`;var d=s.forwardRef(({className:e,...t},n)=>(0,c.jsx)(`tbody`,{ref:n,className:o(`[&_tr:last-child]:border-0`,e),...t}));d.displayName=`TableBody`;var f=s.forwardRef(({className:e,...t},n)=>(0,c.jsx)(`tfoot`,{ref:n,className:o(`border-t bg-muted/50 font-medium [&>tr]:last:border-b-0`,e),...t}));f.displayName=`TableFooter`;var p=s.forwardRef(({className:e,...t},n)=>(0,c.jsx)(`tr`,{ref:n,className:o(`border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted`,e),...t}));p.displayName=`TableRow`;var m=s.forwardRef(({className:e,...t},n)=>(0,c.jsx)(`th`,{ref:n,className:o(`h-12 px-2 md:px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0`,e),...t}));m.displayName=`TableHead`;var h=s.forwardRef(({className:e,...t},n)=>(0,c.jsx)(`td`,{ref:n,className:o(`p-2 md:p-4 align-middle [&:has([role=checkbox])]:pr-0`,e),...t}));h.displayName=`TableCell`;var g=s.forwardRef(({className:e,...t},n)=>(0,c.jsx)(`caption`,{ref:n,className:o(`mt-4 text-sm text-muted-foreground`,e),...t}));g.displayName=`TableCaption`;var _=({label:e,sortKey:t,sort:n,onSort:s,className:l})=>{let u=n.key===t;return(0,c.jsx)(m,{"aria-sort":u?n.dir===`asc`?`ascending`:`descending`:`none`,className:o(`cursor-pointer select-none hover:text-foreground transition-colors`,l),onClick:()=>s(t),children:(0,c.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[e,u?n.dir===`asc`?(0,c.jsx)(a,{className:`h-3.5 w-3.5`}):(0,c.jsx)(i,{className:`h-3.5 w-3.5`}):(0,c.jsx)(r,{className:`h-3.5 w-3.5 opacity-40`})]})})};_.displayName=`SortableTableHead`;function v(e,t,n={key:null,dir:`asc`}){let[r,i]=s.useState(n);return{sorted:s.useMemo(()=>{let n=r.key?t[r.key]:null;if(!n)return e;let i=r.dir===`asc`?1:-1;return[...e].sort((e,t)=>{let r=n(e)??``,a=n(t)??``;return typeof r==`number`&&typeof a==`number`?(r-a)*i:String(r).localeCompare(String(a),void 0,{numeric:!0})*i})},[e,r,t]),sort:r,toggleSort:s.useCallback(e=>{i(t=>t.key===e?{key:e,dir:t.dir===`asc`?`desc`:`asc`}:{key:e,dir:`asc`})},[])}}export{h as a,p as c,d as i,_ as n,m as o,l as r,u as s,v as t};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{u as t}from"./code-editor-BQnKd3jw.js";var n=e(t(),1),r=(0,n.createContext)(void 0);function i(){let e=(0,n.useContext)(r);if(!e)throw Error(`useTheme must be used within a <ThemeProvider>`);return e}export{r as n,i as t};
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{u as t}from"./code-editor-BOIngd5F.js";var n=e(t(),1),r=(0,n.createContext)(void 0);function i(){let e=(0,n.useContext)(r);if(!e)throw Error(`useTheme must be used within a <ThemeProvider>`);return e}export{r as n,i as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{u as t}from"./code-editor-BOIngd5F.js";var n=e(t(),1),r=(0,n.createContext)(void 0);function i(){let e=(0,n.useContext)(r);if(e===void 0)throw Error(`useToast must be used within a ToastContainer`);return e}export{i as n,r as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{u as t}from"./code-editor-BOIngd5F.js";var n=e(t(),1),r=(0,n.createContext)(null);function i(){let e=(0,n.useContext)(r);if(!e)throw Error(`useToolbox must be used within a ToolboxProvider`);return e}function a(){return(0,n.useContext)(r)}export{i as n,a as r,r as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{u as t}from"./code-editor-BOIngd5F.js";import{$ as n}from"./workspace-CJ1PWQ29.js";var r=e(t(),1);function i(e){let[t,i]=(0,r.useState)(null);return(0,r.useEffect)(()=>{if(!e)return;let t=!1,r=()=>{n(e).then(n=>{t||i({ref:e,workspace:n})}).catch(()=>{})};return r(),window.addEventListener(`workspaces:refresh`,r),()=>{t=!0,window.removeEventListener(`workspaces:refresh`,r)}},[e]),t?.ref===e?t?.workspace:void 0}export{i as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{u as t}from"./code-editor-BOIngd5F.js";import{Nt as n,Vt as r,bt as i,dt as a}from"./workspace-CJ1PWQ29.js";import{n as o}from"./use-toolbox-Ck_cLGgf.js";import{_ as s,a as c,d as l}from"./context-D_K4g9SQ.js";var u=e(t(),1);function d(e){return!/[\\\0]/.test(e)&&e.split(`/`).every(e=>e!==`.`&&e!==`..`)}function f(e,t){if(!d(e))throw Error(`Invalid backend folder path`);let n=`/`+e.split(`/`).filter(Boolean).join(`/`),r=[...t].filter(e=>e.treePath&&(n===e.treePath||n.startsWith(e.treePath+`/`))).sort((e,t)=>t.treePath.length-e.treePath.length)[0];if(!r)throw Error(`Choose a writable storage backend folder`);if(!r.enabled||r.config?.readOnly===!0||!r.capabilities.upload)throw Error(`This backend does not support file uploads or is read-only`);return{driver:r.driver,address:r.address,key:n.slice(r.treePath.length).replace(/^\//,``)}}function p(e,t){if(!t||t.includes(`/`)||!d(t)||!d(e))throw Error(`Invalid upload filename or folder`);return[e.replace(/^\/+|\/+$/g,``),t].filter(Boolean).join(`/`)}function m(){let{state:e}=o(),{activeContextType:t,activeContextId:n,activeWorkspaceName:r,activeTreeName:i,activeContextPath:a}=e;return(0,u.useMemo)(()=>t===`context`&&n?{mode:`context`,contextId:n}:r&&a?{mode:`workspace`,workspaceName:r,path:a,treeName:i||`context`,treeType:i===`directory`||i===`backends`?`directory`:`context`}:null,[t,n,r,i,a])}var h=new Map,g=15e3;function _(e){let t=h.get(e);if(t&&Date.now()-t.at<g)return t.promise;let r=n(e);return r.catch(()=>h.delete(e)),h.set(e,{at:Date.now(),promise:r}),r}function v(e){e?.mode===`workspace`&&window.dispatchEvent(new CustomEvent(`workspace:documents:refresh`,{detail:{workspaceName:e.workspaceName,treeName:e.treeName,path:e.path}}))}async function y(e,t,n={}){if(!e)throw Error(`No active workspace or context to add to`);if(e.mode===`workspace`){if(e.treeName===`backends`)throw Error(`Backend folders accept files, not database-only documents`);let r=e.treeType;try{let t=(await _(e.workspaceName)).find(t=>t?.name===e.treeName||t?.id===e.treeName);(t?.type===`directory`||t?.type===`context`)&&(r=t.type)}catch{}let i=await a(e.workspaceName,e.path,t,e.treeName,r);return i.length&&n.refresh!==!1&&v(e),i}return l(e.contextId,t)}async function b(e){if(!e)throw Error(`No active workspace or context to add to`);if(e.mode===`workspace`)return{workspaceName:e.workspaceName,path:e.path,treeName:e.treeName,treeType:e.treeType};let t=await c(e.contextId),n=t.workspaceName||t.workspaceId;if(!n)throw Error(`Context has no bound workspace`);return{workspaceName:n,path:t.path||`/`,treeName:t.treeId||`context`,treeType:`context`}}async function x(e,t){if(!e)throw Error(`No active workspace or context to add to`);if(e.mode===`workspace`){let n=await r(e.workspaceName,e.path,t,e.treeName,e.treeType);return n&&window.dispatchEvent(new CustomEvent(`workspace:documents:refresh`,{detail:{workspaceName:e.workspaceName,treeName:e.treeName,path:e.path}})),n}let n=await c(e.contextId);return s(e.contextId,n.path||`/`,t)}function S(e){return e?e.mode===`context`?`Adds to the current context`:`Adds to ${e.path===`/`?`/`:e.path}`:`No destination. Open a workspace path or a context first`}async function C(e,t){return f(t,await i(e))}function w(e){let t=e?.mode===`workspace`&&e.treeName===`backends`,n=t?e.workspaceName:``,r=t?e.path:``,i=`${n}\0${r}`,[a,o]=(0,u.useState)(null);return(0,u.useEffect)(()=>{if(!t)return;let e=!1;return C(n,r).then(t=>{e||o({key:i,destination:t})}).catch(t=>{e||o({key:i,error:t instanceof Error?t.message:`Unable to load backend`})}),()=>{e=!0}},[t,n,r,i]),{isBackend:t,loading:t&&a?.key!==i,destination:a?.key===i?a.destination:void 0,error:a?.key===i?a.error:void 0}}export{b as a,w as c,C as i,p as l,x as n,y as o,v as r,m as s,S as t,f as u};
@@ -0,0 +1,3 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{l as t,u as n}from"./code-editor-BOIngd5F.js";import{t as r}from"./button-Bv4zA1qr.js";import{t as i}from"./input-BOtCd4HP.js";import{L as a}from"./index-exXolIqD.js";function o(e,t,n){return[e.trim()?`## Role\n${e.trim()}`:``,t.trim()?`## Identity\n${t.trim()}`:``,n.trim()?`## Instructions\n${n.trim()}`:``].filter(Boolean).join(`
2
+
3
+ `)}var s=e(n(),1),c=t();function l({value:e,onChange:t,models:n,loading:a,error:o,refresh:l,disabled:u,id:d}){let f=(0,s.useId)(),p=n.find(t=>t.id===e);return(0,c.jsxs)(`div`,{className:`space-y-2`,children:[(0,c.jsxs)(`div`,{className:`flex gap-2`,children:[(0,c.jsx)(i,{id:d,"aria-label":`Model`,list:f,value:e,onChange:e=>t(e.target.value,n.find(t=>t.id===e.target.value)),placeholder:`Choose or enter a model ID`,disabled:u}),(0,c.jsx)(r,{type:`button`,variant:`outline`,disabled:u||a,onClick:l,children:`Refresh models`})]}),(0,c.jsx)(`datalist`,{id:f,children:n.map(e=>(0,c.jsx)(`option`,{value:e.id,children:e.name},e.id))}),(0,c.jsx)(`p`,{className:`text-xs text-muted-foreground`,role:`status`,children:a?`Loading models…`:o||(n.length?`${n.length} models available`:`Enter provider credentials to load available models. You can also enter a model ID.`)}),p&&(0,c.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Context: `,p.contextWindow?.toLocaleString()??`not reported`,` · Max output: `,p.maxTokens?.toLocaleString()??`not reported`,` tokens`,p.limitsSource===`runtime`?` (runtime catalogue)`:p.limitsSource===`provider`?` (provider)`:``]})]})}function u(e,t,n,r){let[i,o]=(0,s.useState)(0),c=JSON.stringify([e,t,n,r,i]),[l,u]=(0,s.useState)({key:``,models:[],loading:!1,error:``}),d=!!t.trim()||!!r||[`ollama`,`lm-studio`,`vllm`,`custom`].includes(e);return(0,s.useEffect)(()=>{if(!d)return;let i=new AbortController,o=setTimeout(()=>{u({key:c,models:[],loading:!0,error:``}),a({provider:e,apiKey:t.trim()||void 0,baseUrl:n.trim()||void 0,agentIdentifier:r},i.signal).then(e=>{i.signal.aborted||u({key:c,models:e,loading:!1,error:``})}).catch(e=>{i.signal.aborted||u({key:c,models:[],loading:!1,error:e instanceof Error?e.message:`Unable to load models`})})},700);return()=>{clearTimeout(o),i.abort()}},[c,d,e,t,n,r]),{...l.key===c?l:{models:[],loading:d,error:``},refresh:()=>o(e=>e+1)}}export{l as n,o as r,u as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{u as t}from"./code-editor-BOIngd5F.js";import{r as n}from"./public-share-DT9Tgn_Y.js";var r=e(t(),1);function i(e,t,i=256,{enabled:a=!0,blobFallback:o=!0,version:s=null}={}){let{isPublic:c,fetchBlob:l,fetchThumbnail:u}=n(e),d=`${c?`pub`:`ws`}:${e}:${t}:${i}:${a}:${s??``}`,[f,p]=(0,r.useState)({blobUrl:null,error:null,loading:a}),[m,h]=(0,r.useState)(d);return d!==m&&(h(d),p({blobUrl:null,error:null,loading:a})),(0,r.useEffect)(()=>{if(!a)return;let e=!1,n=null;return u(t,i,s).catch(e=>{if(!o)throw e;return l(t)}).then(({blob:t})=>{e||(n=URL.createObjectURL(t),p({blobUrl:n,error:null,loading:!1}))}).catch(t=>{e||p({blobUrl:null,error:String(t instanceof Error?t.message:t),loading:!1})}),()=>{e=!0,n&&URL.revokeObjectURL(n)}},[d]),f}export{i as t};
@@ -0,0 +1 @@
1
+ import{wn as e}from"./workspace-CJ1PWQ29.js";import{n as t,t as n}from"./tags-YamdPoBK.js";import{n as r,r as i}from"./note-save-status-DPz4VzL6.js";function a(a,o,s=!0){let c=a.features??a.metadata?.features??[],l={title:String(a.data?.title??``),content:String(a.data?.content??``),comment:String(a.comment??``),tags:n(c),geo:a.metadata?.geo??null},u=r(i(`document:${o}:${a.id}`),l,{save:s?async n=>{await e(o,{id:a.id,schema:a.schema,schemaVersion:a.schemaVersion,data:{...a.data,title:n.title.trim(),content:n.content},comment:n.comment,metadata:{features:[...c.filter(e=>!e.startsWith(`tag/`)),...t(n.tags)],geo:n.geo}}),window.dispatchEvent(new CustomEvent(`workspace:documents:refresh`))}:void 0});return{...u.value,status:u.status,error:u.error,storageError:u.storageError,setTitle:e=>u.update({title:e}),setContent:e=>u.update({content:e}),setComment:e=>u.update({comment:e}),setTags:e=>u.update({tags:e}),setGeo:e=>u.update({geo:e}),saving:u.status===`saving`,canSave:u.status!==`saving`,save:u.flush}}export{a as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{u as t}from"./code-editor-BOIngd5F.js";var n=e(t(),1),r=[];function i(e){if(e.key!==`Escape`||e.isComposing||e.defaultPrevented)return;let t=r[r.length-1];t&&(e.preventDefault(),t())}function a(e,t=!0){let a=(0,n.useRef)(e);(0,n.useEffect)(()=>{a.current=e});let o=t&&!!e;(0,n.useEffect)(()=>{if(!o)return;let e=()=>a.current?.();return r.push(e),r.length===1&&window.addEventListener(`keydown`,i),()=>{let t=r.indexOf(e);t>=0&&r.splice(t,1),r.length===0&&window.removeEventListener(`keydown`,i)}},[o])}export{a as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{u as t}from"./code-editor-BOIngd5F.js";import{c as n}from"./api-CA6WiiYM.js";import{t as r}from"./socket-hM4c-ZSl.js";var i=e(t(),1);function a(){let[e,t]=(0,i.useState)(null);return(0,i.useEffect)(()=>{let e=localStorage.getItem(`authToken`);if(!e)return;let i=r(n.ws,{auth:{token:e},transports:[`websocket`],reconnection:!0,reconnectionAttempts:5,reconnectionDelay:1e3});return i.on(`connect`,()=>{console.log(`WebSocket connected`)}),i.on(`connect_error`,e=>{console.error(`WebSocket connection error:`,e)}),i.on(`error`,e=>{console.error(`WebSocket error:`,e)}),t(i),()=>{i.close()}},[]),e}function o(e,t,n){let r=(0,i.useRef)(n);(0,i.useEffect)(()=>{r.current=n}),(0,i.useEffect)(()=>{if(!e)return;e.emit(`subscribe`,{channel:t});let n=Object.keys(r.current).map(t=>{let n=(...e)=>{r.current[t]?.(...e)};return e.on(t,n),[t,n]});return()=>{e.emit(`unsubscribe`,{channel:t});for(let[t,r]of n)e.off(t,r)}},[e,t])}export{a as n,o as t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./use-toast-BlLDqSUO.js";function t(){let{showToast:t}=e();return{showErrorToast:(e,n=`Error`)=>t({title:n,description:e,variant:`destructive`}),showSuccessToast:(e,n=`Success`)=>t({title:n,description:e})}}export{t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{l as t,u as n}from"./code-editor-BOIngd5F.js";import{L as r,Mt as i,Y as a,zt as o}from"./ui-BSqPn1LJ.js";import{t as s}from"./button-Bv4zA1qr.js";import{t as c}from"./input-BOtCd4HP.js";import{t as l}from"./label-CNoJOoe0.js";import{i as u,n as d,u as f}from"./auth-Bx9fAZmz.js";import{n as p}from"./use-toast-BlLDqSUO.js";import{t as m}from"./useEscapeClose-DR_xKT_k.js";import{n as h}from"./page-header-GtTr9Ff_.js";import{t as g}from"./use-settings-back-Dk-DJEUO.js";import{t as _}from"./admin-Bhg9QBHL.js";var v=e(n(),1),y=t();function b(){let e=g(),t=u(),n=t?.userType===`admin`,[b,x]=(0,v.useState)([]),[S,C]=(0,v.useState)(n),[w,T]=(0,v.useState)(n?null:`Access denied. Admin privileges required.`),[E,D]=(0,v.useState)(!1),[O,k]=(0,v.useState)(null),[A,j]=(0,v.useState)(!1),[M,N]=(0,v.useState)(!1),[P,F]=(0,v.useState)(null),[I,L]=(0,v.useState)({status:``,userType:``,search:``}),[R,z]=(0,v.useState)({name:``,email:``,password:``,userType:`user`,status:`active`}),{showToast:B}=p();(0,v.useEffect)(()=>{n&&(async()=>{try{let e=await d(),t=!!e?.strategies?.local?.requireEmailVerification;N(t),F(e?.strategies?.local?.passwordPolicy||null)}catch{N(!1),F(null)}})()},[n]);let V=e=>{let t=e.trim().toLowerCase();return t.length<3||t.length>39?`Username must be 3-39 characters long`:/^[a-z0-9_-]+$/.test(t)?null:`Username can only contain lowercase letters, numbers, underscores, and hyphens`},H=e=>{let t=e||``,n=P||{},r=n.minLength??12,i=n.maxLength??128,a=[];return t.length<r&&a.push(`at least ${r} characters`),t.length>i&&a.push(`no more than ${i} characters`),(n.requireUppercase??!0)&&!/[A-Z]/.test(t)&&a.push(`an uppercase letter`),(n.requireLowercase??!0)&&!/[a-z]/.test(t)&&a.push(`a lowercase letter`),(n.requireNumbers??!0)&&!/[0-9]/.test(t)&&a.push(`a number`),(n.requireSpecialChars??!0)&&!/[^A-Za-z0-9]/.test(t)&&a.push(`a special character`),a.length?`Password must contain ${a.join(`, `).replace(/, ([^,]*)$/,` and $1`)}.`:null},U=()=>{let e=P||{},t=[],n=e.minLength??12;return t.push(`${n}+ chars`),(e.requireUppercase??!0)&&t.push(`uppercase`),(e.requireLowercase??!0)&&t.push(`lowercase`),(e.requireNumbers??!0)&&t.push(`number`),(e.requireSpecialChars??!0)&&t.push(`special`),t.join(`, `)},W=e=>{if(!e)return`-`;let t=new Date(e);return isNaN(t.getTime())?`-`:t.toLocaleString()},G=async e=>{try{await f(e),B({title:`Verification email`,description:`If the account exists, a verification email was sent.`})}catch(e){let t=e instanceof Error?e.message:`Failed to send verification email`;B({title:`Error`,description:t,variant:`destructive`})}},K=(0,v.useCallback)(async()=>{try{C(!0);let{status:e,userType:t}=I,n=await _.users.listUsers({status:e||void 0,userType:t||void 0});x(n),T(null)}catch(e){let t=e instanceof Error?e.message:`Failed to fetch users`;T(t),B({title:`Error`,description:t,variant:`destructive`})}finally{C(!1)}},[I,B]);(0,v.useEffect)(()=>{n&&K()},[K,n]);let q=async e=>{if(e.preventDefault(),!R.name.trim()||!R.email.trim()){B({title:`Validation Error`,description:`Name and email are required`,variant:`destructive`});return}let t=V(R.name);if(t){B({title:`Validation Error`,description:t,variant:`destructive`});return}if(!R.password.trim()){B({title:`Validation Error`,description:`Password is required`,variant:`destructive`});return}let n=H(R.password);if(n){B({title:`Validation Error`,description:n,variant:`destructive`});return}D(!0);try{let e={name:R.name.trim().toLowerCase(),email:R.email.trim(),userType:R.userType,status:R.status};if(R.password.trim()&&(e.password=R.password),await _.users.createUser(e),M&&R.status===`pending`)try{await f(R.email.trim())}catch{}z({name:``,email:``,password:``,userType:`user`,status:M?`pending`:`active`}),j(!1),await K(),B({title:`Success`,description:`User created successfully`})}catch(e){let t=e instanceof Error?e.message:`Failed to create user`;B({title:`Error`,description:t,variant:`destructive`})}finally{D(!1)}},J=async e=>{if(e.preventDefault(),!O)return;let t=V(R.name);if(t){B({title:`Validation Error`,description:t,variant:`destructive`});return}if(R.password.trim()){let e=H(R.password);if(e){B({title:`Validation Error`,description:e,variant:`destructive`});return}}D(!0);try{let e={name:R.name.trim().toLowerCase(),email:R.email.trim(),userType:R.userType,status:R.status};R.password.trim()&&(e.password=R.password),await _.users.updateUser(O.id,e),k(null),j(!1),await K(),B({title:`Success`,description:`User updated successfully`})}catch(e){let t=e instanceof Error?e.message:`Failed to update user`;B({title:`Error`,description:t,variant:`destructive`})}finally{D(!1)}},Y=async(e,t)=>{if(confirm(`Are you sure you want to delete user "${t}"? This action cannot be undone.`))try{await _.users.deleteUser(e),await K(),B({title:`Success`,description:`User deleted successfully`})}catch(e){let t=e instanceof Error?e.message:`Failed to delete user`;B({title:`Error`,description:t,variant:`destructive`})}},X=()=>{k(null),z({name:``,email:``,password:``,userType:`user`,status:M?`pending`:`active`}),j(!0)},Z=e=>{k(e),z({name:e.name,email:e.email,password:``,userType:e.userType,status:e.status}),j(!0)},Q=()=>{j(!1),k(null)};m(Q,A);let $=b.filter(e=>I.search===``||e.name.toLowerCase().includes(I.search.toLowerCase())||e.email.toLowerCase().includes(I.search.toLowerCase()));return n?(0,y.jsxs)(`div`,{className:`space-y-6`,children:[(0,y.jsx)(h,{onBack:e,title:`User Management`,description:`Manage user accounts and permissions`}),(0,y.jsxs)(`div`,{className:`flex flex-col gap-4 md:flex-row md:items-center md:justify-between`,children:[(0,y.jsxs)(`div`,{className:`flex flex-col gap-2 md:flex-row md:items-center`,children:[(0,y.jsx)(c,{placeholder:`Search users...`,value:I.search,onChange:e=>L(t=>({...t,search:e.target.value})),className:`md:w-64`}),(0,y.jsxs)(`select`,{value:I.status,onChange:e=>L(t=>({...t,status:e.target.value})),className:`px-3 py-2 border border-border rounded-md`,children:[(0,y.jsx)(`option`,{value:``,children:`All Statuses`}),(0,y.jsx)(`option`,{value:`active`,children:`Active`}),(0,y.jsx)(`option`,{value:`inactive`,children:`Inactive`}),(0,y.jsx)(`option`,{value:`pending`,children:`Pending`}),(0,y.jsx)(`option`,{value:`deleted`,children:`Deleted`})]}),(0,y.jsxs)(`select`,{value:I.userType,onChange:e=>L(t=>({...t,userType:e.target.value})),className:`px-3 py-2 border border-border rounded-md`,children:[(0,y.jsx)(`option`,{value:``,children:`All Types`}),(0,y.jsx)(`option`,{value:`user`,children:`User`}),(0,y.jsx)(`option`,{value:`admin`,children:`Admin`})]})]}),(0,y.jsxs)(s,{onClick:X,children:[(0,y.jsx)(i,{className:`mr-2 h-4 w-4`}),`Create User`]})]}),(0,y.jsxs)(`div`,{className:`space-y-4`,children:[S&&(0,y.jsx)(`p`,{className:`text-center text-muted-foreground`,children:`Loading users...`}),w&&!b.length&&(0,y.jsx)(`div`,{className:`text-center text-destructive`,children:(0,y.jsx)(`p`,{children:w})}),!S&&!w&&$.length===0&&(0,y.jsx)(`p`,{className:`text-center text-muted-foreground`,children:`No users found`}),$.length>0&&(0,y.jsx)(`div`,{className:`border rounded-md`,children:(0,y.jsx)(`div`,{className:`overflow-x-auto`,children:(0,y.jsxs)(`table`,{className:`w-full`,children:[(0,y.jsx)(`thead`,{children:(0,y.jsxs)(`tr`,{className:`bg-muted/50`,children:[(0,y.jsx)(`th`,{className:`text-left p-3 font-medium`,children:`Name`}),(0,y.jsx)(`th`,{className:`text-left p-3 font-medium`,children:`Email`}),(0,y.jsx)(`th`,{className:`text-left p-3 font-medium`,children:`Type`}),(0,y.jsx)(`th`,{className:`text-left p-3 font-medium`,children:`Status`}),(0,y.jsx)(`th`,{className:`text-left p-3 font-medium`,children:`Created`}),(0,y.jsx)(`th`,{className:`text-left p-3 font-medium`,children:`Updated`}),(0,y.jsx)(`th`,{className:`text-right p-3 font-medium`,children:`Actions`})]})}),(0,y.jsx)(`tbody`,{children:$.map(e=>(0,y.jsxs)(`tr`,{className:`border-t`,children:[(0,y.jsx)(`td`,{className:`p-3 font-medium`,children:e.name}),(0,y.jsx)(`td`,{className:`p-3`,children:e.email}),(0,y.jsx)(`td`,{className:`p-3`,children:(0,y.jsx)(`span`,{className:`px-2 py-1 rounded-full text-xs ${e.userType===`admin`?`bg-destructive-subtle text-destructive`:`bg-info-subtle text-info`}`,children:e.userType})}),(0,y.jsx)(`td`,{className:`p-3`,children:(0,y.jsx)(`span`,{className:`px-2 py-1 rounded-full text-xs ${e.status===`active`?`bg-success-subtle text-success`:e.status===`inactive`?`bg-warning-subtle text-warning`:e.status===`pending`?`bg-info-subtle text-info`:`bg-destructive-subtle text-destructive`}`,children:e.status})}),(0,y.jsx)(`td`,{className:`p-3`,children:W(e.createdAt)}),(0,y.jsx)(`td`,{className:`p-3`,children:W(e.updatedAt)}),(0,y.jsxs)(`td`,{className:`p-3 text-right space-x-2`,children:[(0,y.jsx)(s,{variant:`outline`,size:`sm`,onClick:()=>Z(e),children:(0,y.jsx)(o,{className:`h-4 w-4`})}),M&&e.status===`pending`&&(0,y.jsx)(s,{variant:`outline`,size:`sm`,onClick:()=>G(e.email),title:`Resend activation email`,children:`Resend activation`}),(0,y.jsx)(s,{variant:`outline`,size:`sm`,onClick:()=>Y(e.id,e.name),className:`text-destructive hover:bg-destructive/10 hover:text-destructive`,disabled:e.id===t?.id,title:e.id===t?.id?`Cannot delete your own account`:`Delete user`,children:(0,y.jsx)(a,{className:`h-4 w-4`})})]})]},e.id))})]})})})]}),A&&(0,y.jsx)(`div`,{className:`fixed inset-0 bg-scrim flex items-center justify-center z-50`,children:(0,y.jsxs)(`div`,{className:`bg-card rounded-lg p-6 w-full max-w-md mx-4`,children:[(0,y.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,y.jsx)(`h3`,{className:`text-lg font-semibold`,children:O?`Edit User`:`Create New User`}),(0,y.jsx)(s,{variant:`ghost`,size:`sm`,onClick:Q,children:(0,y.jsx)(r,{className:`h-4 w-4`})})]}),(0,y.jsxs)(`form`,{onSubmit:O?J:q,className:`space-y-4`,children:[(0,y.jsxs)(`div`,{children:[(0,y.jsx)(l,{htmlFor:`name`,children:`Username`}),(0,y.jsx)(c,{id:`name`,type:`text`,value:R.name,onChange:e=>z(t=>({...t,name:e.target.value.toLowerCase().replace(/\s+/g,``)})),placeholder:`Enter username`,disabled:E,required:!0}),(0,y.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:`3-39 characters, lowercase letters, numbers, underscores, and hyphens only`})]}),(0,y.jsxs)(`div`,{children:[(0,y.jsx)(l,{htmlFor:`email`,children:`Email`}),(0,y.jsx)(c,{id:`email`,type:`email`,value:R.email,onChange:e=>z(t=>({...t,email:e.target.value})),placeholder:`Enter email address`,disabled:E,required:!0})]}),(0,y.jsxs)(`div`,{children:[(0,y.jsxs)(l,{htmlFor:`password`,children:[`Password `,O&&`(leave blank to keep current)`]}),(0,y.jsx)(c,{id:`password`,type:`password`,value:R.password,onChange:e=>z(t=>({...t,password:e.target.value})),placeholder:O?`Leave blank to keep current`:`Enter password`,disabled:E,required:!O}),!O&&(0,y.jsxs)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:[`Must satisfy: `,U()]})]}),(0,y.jsxs)(`div`,{children:[(0,y.jsx)(l,{htmlFor:`userType`,children:`User Type`}),(0,y.jsxs)(`select`,{id:`userType`,value:R.userType,onChange:e=>z(t=>({...t,userType:e.target.value})),disabled:E,className:`w-full px-3 py-2 border border-border rounded-md`,children:[(0,y.jsx)(`option`,{value:`user`,children:`User`}),(0,y.jsx)(`option`,{value:`admin`,children:`Admin`})]})]}),(0,y.jsxs)(`div`,{children:[(0,y.jsx)(l,{htmlFor:`status`,children:`Status`}),(0,y.jsxs)(`select`,{id:`status`,value:R.status,onChange:e=>z(t=>({...t,status:e.target.value})),disabled:E,className:`w-full px-3 py-2 border border-border rounded-md`,children:[(0,y.jsx)(`option`,{value:`active`,children:`Active`}),(0,y.jsx)(`option`,{value:`inactive`,children:`Inactive`}),(0,y.jsx)(`option`,{value:`pending`,children:`Pending`}),(0,y.jsx)(`option`,{value:`deleted`,children:`Deleted`})]})]}),(0,y.jsxs)(`div`,{className:`flex gap-2 pt-4`,children:[(0,y.jsx)(s,{type:`submit`,disabled:E,className:`flex-1`,children:E?`Processing...`:O?`Update User`:`Create User`}),(0,y.jsx)(s,{type:`button`,variant:`outline`,onClick:Q,disabled:E,children:`Cancel`})]})]})]})})]}):(0,y.jsx)(`div`,{className:`text-center space-y-4`,children:(0,y.jsx)(`div`,{className:`text-destructive`,children:`Access denied. Admin privileges required.`})})}export{b as default};
@@ -0,0 +1 @@
1
+ var e={sortBy:`content`,order:`desc`};function t(t){return t?.sortBy===`crud:deleted`?{...e}:{sortBy:t?.sortBy??e.sortBy,order:t?.order??e.order}}var n={features:{allOf:[],anyOf:[],noneOf:[]},timeline:{quickFilter:null,customRanges:[],indexCreated:!0,indexUpdated:!0,indexDeleted:!1,contentEvents:!1,selectedTimelines:[]},geo:{bbox:null,includeUnlocated:!1},lens:{gps:null,ids:null},sort:{...e}};function r(e){let t=e.bbox;return t?[`geo:bbox:${t.minLat},${t.minLon},${t.maxLat},${t.maxLon}`,...e.includeUnlocated?[`geo:missing`]:[]]:[]}function i(e,t=!1){if(!e.gps)return[];let{lat:n,lon:r,radiusM:i}=e.gps;return[`geo:near:${n},${r},${Math.max(1,Math.round(i))}m`,...t?[`geo:missing`]:[]]}function a(e){return e.customRanges?.length?e.customRanges:e.customRange?[e.customRange]:[]}function o(e){let{quickFilter:t,indexCreated:n,indexUpdated:r,indexDeleted:i,contentEvents:o,selectedTimelines:s}=e,c=a(e),l=c.length>0?c.map(e=>`${e.start}..${e.end}`):t?[t]:[];if(l.length===0)return[];let u=[];return n&&u.push(`crud:created`),r&&u.push(`crud:updated`),i&&u.push(`crud:deleted`),o&&u.push(`content`),u.push(...s),u.flatMap(e=>l.map(t=>`t:${e}:${t}`))}function s(e,t,n=[]){return{features:e.features,filters:[...o(e.timeline),...r(e.geo),...i(e.lens,e.geo.includeUnlocated)],queryOptions:{ids:e.lens.ids,sortBy:e.sort.sortBy,order:e.sort.order,queries:n,geoSelection:t,includeUnlocated:e.geo.includeUnlocated??!1}}}export{r as a,t as c,o as i,e as n,i as o,s as r,a as s,n as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{l as t,u as n}from"./code-editor-BOIngd5F.js";import{vt as r}from"./react-BHzhHVTZ.js";import{t as i}from"./button-Bv4zA1qr.js";import{t as a}from"./input-BOtCd4HP.js";import{c as o,l as s,t as c}from"./api-CA6WiiYM.js";import{a as l,c as u,i as ee,s as te,t as ne}from"./alert-dialog-DIA-tAP5.js";var re=`data/schema/note`,ie=`data/schema/link`,ae=`data/schema/tab`,oe=`data/schema/file`,se=`data/schema/drawing`,ce=`data/schema/message/email`,le=`data/schema/task`,d=`data/schema/identity`;function f(e,t){return e.startsWith(`${t}/`)?e.slice(t.length+1):``}var ue={png:`image/png`,jpg:`image/jpeg`,jpeg:`image/jpeg`,gif:`image/gif`,webp:`image/webp`,bmp:`image/bmp`,svg:`image/svg+xml`,avif:`image/avif`,heic:`image/heic`,heif:`image/heif`,mp3:`audio/mpeg`,wav:`audio/wav`,ogg:`audio/ogg`,oga:`audio/ogg`,m4a:`audio/mp4`,flac:`audio/flac`,aac:`audio/aac`,mp4:`video/mp4`,m4v:`video/mp4`,webm:`video/webm`,mov:`video/quicktime`,mkv:`video/x-matroska`,avi:`video/x-msvideo`,ogv:`video/ogg`,pdf:`application/pdf`,md:`text/markdown`,markdown:`text/markdown`,txt:`text/plain`,json:`application/json`,xml:`application/xml`,csv:`text/csv`,log:`text/plain`,yml:`text/yaml`,yaml:`text/yaml`};function de(e){let t=/\.([a-z0-9]+)$/i.exec(e||``);return t?t[1].toLowerCase():``}function fe(e){return ue[de(e)]}function p(e){return e.startsWith(`image/`)?`image`:e.startsWith(`audio/`)?`audio`:e.startsWith(`video/`)?`video`:e===`application/pdf`?`pdf`:e.startsWith(`text/`)||e.endsWith(`+json`)||e===`application/json`||e===`application/xml`?`text`:null}function pe(e,t){if(e===`text/markdown`||/\.(md|markdown)$/i.test(t||``))return`markdown`;if(e&&e!==`application/octet-stream`){let t=p(e);if(t)return t}let n=fe(t);if(n){let e=p(n);if(e)return e}return`binary`}function me(e){if(!e)return null;try{let t=new URL(e),n=t.hostname.replace(/^www\.|^m\./,``);if(n===`youtu.be`)return t.pathname.slice(1).split(`/`)[0]||null;if(n===`youtube.com`||n===`youtube-nocookie.com`){if(t.pathname===`/watch`)return t.searchParams.get(`v`);let e=t.pathname.match(/^\/(shorts|embed|live)\/([^/]+)/);if(e)return e[2]}return null}catch{return null}}var he=`data/schema/message/email`,ge=`data/schema/tab`,m=`data/schema/task`;function h(e,t){let n=String(e||``).replace(/\s+/g,` `).trim();return n?n.length>t?`${n.slice(0,t)}...`:n:``}function g(e){return String(e||``).replace(/```[\s\S]*?```/g,` `).replace(/`([^`]*)`/g,`$1`).replace(/!\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/^#{1,6}\s+/gm,``).replace(/^\s*>\s?/gm,``).replace(/^\s*[-*+]\s+/gm,``).replace(/(\*\*|__|\*|_|~~)/g,``)}function _(e){if(!e)return``;if(typeof e==`string`)return e;if(Array.isArray(e))return e.map(_).filter(Boolean).join(`, `);if(typeof e==`object`){let t=e,n=String(t.address||``).trim(),r=String(t.name||``).trim();return r&&n&&r!==n?`${r} <${n}>`:r||n}return``}function _e(e){let t=Array.isArray(e?.channels)?e.channels.length:0,n=Array.isArray(e?.identifiers)?e.identifiers.length:0,r=Array.isArray(e?.organizations)?e.organizations.length:0;return[t?`${t} channel${t===1?``:`s`}`:``,n?`${n} identifier${n===1?``:`s`}`:``,r?`${r} organization${r===1?``:`s`}`:``].filter(Boolean).join(` · `)}function ve(e){let t=String(e?.displayName||``).trim();if(t)return t;let n=e?.name;if(!n||typeof n!=`object`)return String(n||``).trim();let r=n;return[r.prefix,r.given,r.middle,r.family,r.suffix].map(e=>String(e||``).trim()).filter(Boolean).join(` `)}function ye(e){let t=String(e?.primaryEmail||``).trim();if(t)return t;let n=Array.isArray(e?.channels)?e.channels:[],r=n.find(e=>e?.kind===`email`&&e?.primary)||n.find(e=>e?.kind===`email`);return String(r?.value||``).trim()}function be(e){try{let t=new URL(e);return`${t.hostname}${t.pathname}`}catch{return e}}function xe(e){return e.schema===`data/schema/file`&&String(e.metadata?.contentType||``).startsWith(`image/`)}var Se=/^(imaps?|pop3s?|mailto|graph|ews|news|nntp):/i;function Ce(e){if(!e||Se.test(e))return``;let t=e.replace(/^[a-z][a-z0-9+.-]*:\/\//i,``),n=t.indexOf(`/`),r=(n>=0?t.slice(n+1):t).split(`/`).filter(Boolean).pop();if(!r)return``;let i;try{i=decodeURIComponent(r)}catch{i=r}return/^stored:\/\//i.test(e)&&!we(i)?``:i}function we(e){return e.length>0&&!/^[a-f0-9]{12,}$/i.test(e)&&!/^[a-f0-9]{16,}\.[A-Za-z0-9]{1,12}$/i.test(e)}function Te(e){return typeof e.comment==`string`?e.comment.trim():``}function v(e){let t=String(e.metadata?.filename||``).trim();if(t)return t;let n=String(e.data?.filename||``).trim();if(n)return n;let r=(e.locations||[]).filter(Boolean),i=r.find(e=>/^stored:\/\/workspace:/i.test(e.url||``)),a=String(i?.metadata?.filename||``).trim();if(a)return a;let o=[...r].sort((e,t)=>String(e.url||``).localeCompare(String(t.url||``))),s=o.find(e=>String(e.metadata?.filename||``).trim());if(s)return String(s.metadata?.filename||``).trim();for(let e of o){let t=Ce(e.url);if(t)return t}return``}function Ee(e){let t=e.data;for(let e of[t.url,t.htmlUrl,t.htmlLink])if(typeof e==`string`&&/^https?:\/\//i.test(e))return e;for(let t of e.locations||[])if(typeof t?.url==`string`&&/^https?:\/\//i.test(t.url))return t.url;return null}function y(e){let t=e.schema===he,n=e.schema===ge,r=e.schema.split(`/`).pop()||e.schema;if(t)return{title:h(e.data.title||e.data.name||e.data.subject,160)||`Email ${e.id}`,preview:h(e.data.bodyPreview||e.data.body||``,140),subtitle:h(_(e.data.from),120),icon:`mail`,isExternal:!1,schemaLabel:r};if(e.schema===`data/schema/message`){let t=e.data.sender,n=e.data.channel;return{title:h(e.data.text,160)||`Message`,preview:h(e.data.text,400),subtitle:[t?.name||t?.displayName||t?.username||t?.id,n?.name||n?.id].filter(Boolean).join(` · `),icon:`mail`,isExternal:!1,schemaLabel:r}}if(n||e.schema===`data/schema/link`){let t=String(e.data.title||e.data.name||e.data.label||``).trim(),n=String(e.data.url||e.data.uri||``).trim();return{title:t||be(n)||`Document ${e.id}`,preview:h(e.data.description||e.data.summary||n,140),subtitle:n,icon:`globe`,isExternal:!!n,schemaLabel:r}}if(e.schema===m||e.schema.startsWith(`${m}/`)){let t=String(e.data.status||(e.data.completed?`completed`:`pending`)).trim(),n=e.data.dueDate?new Date(String(e.data.dueDate)):null,i=n&&!Number.isNaN(n.getTime())?n.toLocaleDateString(void 0,{month:`short`,day:`numeric`}):``;return{title:h(e.data.title||e.data.name,160)||`Task ${e.id}`,preview:h(g(e.data.description||e.data.summary),400),subtitle:[t,i?`due ${i}`:``].filter(Boolean).join(` · `),icon:`file`,isExternal:!1,schemaLabel:r}}if(e.schema===`data/schema/identity`||e.schema.startsWith(`data/schema/identity/`)){let t=ye(e.data),n=f(e.schema,d);return{title:h(ve(e.data),160)||`Identity ${e.id}`,preview:h(_e(e.data),140),subtitle:[t,n].filter(Boolean).join(` · `),icon:t?`mail`:`file`,isExternal:!1,schemaLabel:r}}if(e.schema===`data/schema/file`){let t=v(e),n=String(e.metadata?.contentType||``).trim(),i=e.metadata?.size,a=[n,Number.isFinite(i)?`${i} bytes`:``].filter(Boolean);return{title:h(t||e.data.title||e.data.name,160)||`File ${e.id}`,preview:a.join(` · `),subtitle:t,icon:`file`,isExternal:!1,schemaLabel:r}}return{title:h(e.data.title||e.data.name||e.data.subject||v(e),160)||`Document ${e.id}`,preview:h(g(e.data.content||e.data.description||e.data.summary||e.data.bodyPreview||e.data.body),400),subtitle:``,icon:`file`,isExternal:!1,schemaLabel:r}}function b(e){return e===`alphabetical`||e===`type`}function x(e){return e.schema===`data/schema/file`?(/\.([^.]+)$/.exec(v(e))?.[1]||e.metadata?.contentType||`file`).toLowerCase():e.schema.split(`/`).pop()||e.schema}function De(e,t,n=`asc`){let r=n===`desc`?-1:1,i=(e,t)=>e.localeCompare(t,void 0,{numeric:!0,sensitivity:`base`}),a=e.map(e=>({document:e,title:y(e).title,type:x(e)}));return a.sort((e,n)=>((t===`type`?i(e.type,n.type):0)||i(e.title,n.title)||e.document.id-n.document.id)*r),a.map(({document:e})=>e)}async function S(e,t){let n=[],r=new Set,i,a=0,o=500;for(;i=await t({limit:o,offset:a,page:void 0}),a===0&&i.payload.length&&i.payload.length<o&&(i.totalCount==null||i.payload.length<i.totalCount)&&(o=i.payload.length,i=await t({limit:o,offset:a,page:void 0})),!(!i.payload.length&&(i.totalCount==null||a>=i.totalCount));){let e=0;for(let t of i.payload)r.has(t.id)||(r.add(t.id),n.push(t),e++);if(i.payload.length&&!e)throw Error(`Document pagination did not advance`);if(a+=o,i.totalCount!=null&&a>=i.totalCount)break}let s=De(n,e.sortBy,e.order),c=e.limit??50,l=Math.max(0,e.offset??((e.page??1)-1)*(c||100)),u=c===0?s:s.slice(l,l+c);return{...i,payload:u,count:u.length,totalCount:s.length}}var C=e(n(),1),Oe=r(),w=t();function ke(e){return new Promise((t,n)=>{let r=document.createElement(`div`);document.body.appendChild(r);let o=(0,Oe.createRoot)(r),s=e=>{o.unmount(),r.remove(),e?t(e):n(Error(`Workspace start cancelled`))};function c(){let[t,n]=(0,C.useState)(``);return(0,w.jsx)(ne,{open:!0,onOpenChange:e=>{e||s()},children:(0,w.jsxs)(ee,{children:[(0,w.jsxs)(te,{children:[(0,w.jsx)(u,{children:`Start protected workspace`}),(0,w.jsx)(l,{children:e===`workspace`?`Enter the workspace PIN/password or recovery key to start.`:`Unlock integrations, or start with authenticated integrations unavailable.`})]}),(0,w.jsxs)(`form`,{className:`space-y-4`,onSubmit:e=>{e.preventDefault(),s({passphrase:t})},children:[(0,w.jsxs)(`label`,{className:`space-y-2 block text-sm`,children:[`PIN/password or recovery key`,(0,w.jsx)(a,{autoFocus:!0,type:`password`,autoComplete:`current-password`,value:t,onChange:e=>n(e.target.value)})]}),(0,w.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,w.jsx)(i,{type:`submit`,disabled:!t,children:`Unlock and start`}),e===`secrets`&&(0,w.jsx)(i,{type:`button`,variant:`outline`,onClick:()=>s({withoutSecrets:!0}),children:`Start without integrations`}),(0,w.jsx)(i,{type:`button`,variant:`ghost`,onClick:()=>s(),children:`Cancel`})]})]})]})})}o.render((0,w.jsx)(c,{}))})}var Ae={gh:`GitHub`,slack:`Slack`,gcal:`Google Calendar`,caldav:`CalDAV`,msteams:`Microsoft Teams`};function je(e){for(let t of e.locations||[]){let e=t?.url;if(typeof e!=`string`)continue;let n=e.indexOf(`://`);if(n<=0)continue;let r=e.slice(0,n),i=Ae[r];if(i)return{scheme:r,label:i,url:e}}return null}var T=new Map,E=new Set;function D(){for(let e of E)e()}function Me(e){T.set(e,(T.get(e)||0)+1),D()}function Ne(e){let t=(T.get(e)||0)-1;t>0?T.set(e,t):T.delete(e),D()}function Pe(e){return E.add(e),()=>{E.delete(e)}}function Fe(e){let t=(0,C.useCallback)(()=>e!=null&&T.has(e),[e]);return(0,C.useSyncExternalStore)(Pe,t,()=>!1)}function Ie(e){let t=Fe(e.id),n=je(e),r=t&&n!=null;return{mirror:n,replicating:r,label:r?`Replicating to ${n.label}…`:``}}var O=`context`,k=`data/schema/identity`,Le=e=>e===`directory`||e===`backends`?`directory`:`context`;function Re(e,t){if(!e||t===`/`)return null;let n=t.split(`/`).filter(Boolean),r=e;for(let e of n)if(r=r?.children?.find(t=>t.name===e),!r)return null;return r??null}var A=new Map,j=new Map;function M(e,t=`/`,n=O,r=`context`){e.append(`treeNameOrTreeId`,n),e.append(`treeType`,r),t&&e.append(`context`,t)}function N(e,t=[]){t.filter(Boolean).forEach(t=>e.append(`allOf`,t))}function ze(e,t=[]){t.filter(Boolean).forEach(t=>e.append(`anyOf`,t))}function Be(e,t=[]){t.filter(Boolean).forEach(t=>e.append(`noneOf`,t))}function Ve(e,t=[]){t.filter(Boolean).forEach(t=>e.append(`filters`,t))}function He(e,t){for(let n of t??[])e.append(`ids`,String(n))}function Ue(e,t){for(let n of t??[]){let t=n.op===`allOf`?`+`:n.op===`noneOf`?`!`:``;e.append(`rel`,`${t}${n.p}:${n.of}:${n.dir??`out`}`)}}function P(e,t,n){let r=(t&&t.length?t:n?[n]:[]).map(e=>e.trim()).filter(Boolean);for(let t of r)e.append(`q`,t)}function We(e,t=O){return`${o.workspaces}/${e}/trees/${encodeURIComponent(t)}`}function F(e,t=O){return`${e}\0${t}`}function Ge(e){return String(e||`/`).split(`/`).filter(Boolean).map(encodeURIComponent).join(`/`)}function I(e,t,n){let r=Ge(n);return`${We(e,t)}/path/${r}`}async function Ke(e){let t=await c.get(`${o.workspaces}/${e}`);return t&&`workspace`in t?{...t.workspace,access:t.access}:t}async function qe(e){return c.get(`${o.workspaces}/${e}/status`)}async function Je(){try{let e=await c.get(o.workspaces);return Array.isArray(e)?e:(console.warn(`listWorkspaces: response.payload is not an array:`,e),[])}catch(e){throw console.error(`Failed to list workspaces:`,e),e}}async function Ye(){return c.post(`${o.workspaces}/scan`)}async function Xe(e){try{return await c.post(o.workspaces,e)}catch(e){throw console.error(`Failed to create workspace:`,e),e}}var Ze={resolving:`Resolving token on the remote server…`,exporting:`Remote server is packing the workspace…`,downloading:`Downloading archive…`,extracting:`Extracting…`,loading:`Validating and loading…`,done:`Done`};async function Qe(e){return c.get(`${o.workspaces}/import/jobs/${encodeURIComponent(e)}`)}async function L(e,t,{intervalMs:n=1500,signal:r}={}){for(;;){if(r?.aborted)throw Error(`Import tracking cancelled`);let i=await Qe(e);if(t?.(i),i.status===`done`){if(!i.result)throw Error(`Import finished without returning a workspace`);return i.result}if(i.status===`failed`)throw Error(i.error?.message||`Import failed`);await new Promise(e=>setTimeout(e,n))}}async function $e(e,t,n,r={}){return L((await c.post(`${o.workspaces}/import`,{url:e,token:t,...r})).id,n)}async function et(){return c.get(`${o.workspaces}/remotes`)}async function tt(e,t,n){return c.post(`${o.workspaces}/remotes`,{url:e,token:t,...n?{label:n}:{}})}async function nt(e){await c.delete(`${o.workspaces}/remotes/${encodeURIComponent(e)}`)}async function rt(e,t={}){return c.post(`${o.workspaces}/${e}/export`,{stop:t.stop===!0})}async function it(e){return c.get(`${o.workspaces}/${e}/exports`)}async function at(e){await c.delete(`${o.workspaces}/exports/${encodeURIComponent(e)}`)}async function ot(e){await c.post(`${o.workspaces}/exports/ticket`);let t=`${o.workspaces}/exports/${encodeURIComponent(e)}`,n=document.createElement(`a`);n.href=t,n.download=e,document.body.appendChild(n),n.click(),n.remove()}async function st(e,t,n,r={}){return L((await ct(e,t,r)).id,n)}function ct(e,t,n={}){let r=localStorage.getItem(`authToken`),i=new URLSearchParams({filename:e.name,...n}),a=`${o.workspaces}/import/upload?${i}`;return new Promise((n,i)=>{let o=new XMLHttpRequest;o.open(`POST`,a,!0),o.withCredentials=!0,r&&o.setRequestHeader(`Authorization`,`Bearer ${r}`),o.setRequestHeader(`Content-Type`,`application/octet-stream`),o.upload.onprogress=e=>{e.lengthComputable&&t&&t(e.loaded/e.total)},o.onload=()=>{let e=null;try{e=JSON.parse(o.responseText)}catch{}let t=e?.payload?.job;o.status>=200&&o.status<300&&t?n(t):i(Error(e?.message||`Import failed (HTTP ${o.status})`))},o.onerror=()=>i(Error(`Upload failed — the connection dropped`)),o.onabort=()=>i(Error(`Upload cancelled`)),o.send(e)})}async function lt(e,t,n){let r=await c.post(`${o.workspaces}/import`,{path:e,...t});return`phase`in r?L(r.id,n):r}async function ut(e,t){try{if(!t){let n=await c.get(`${o.workspaces}/${e}/status`),r=n.protection?.mode||`none`;t=n.status!==`active`&&r!==`none`?await ke(r):{}}let n=await c.post(`${o.workspaces}/${e}/start`,t);return window.dispatchEvent(new CustomEvent(`workspaces:refresh`)),n}catch(e){throw console.error(`Failed to start workspace:`,e),e}}async function dt(e){try{let t=await c.post(`${o.workspaces}/${e}/stop`);return z(e),window.dispatchEvent(new CustomEvent(`workspace:stopped`,{detail:{refs:[e]}})),window.dispatchEvent(new CustomEvent(`workspaces:refresh`)),t}catch(e){throw console.error(`Failed to stop workspace:`,e),e}}async function ft(e){try{return await c.delete(`${o.workspaces}/${e}`)}catch(e){throw console.error(`Failed to remove workspace:`,e),e}}async function pt(e){try{return await c.get(`${o.workspaces}/${e}/trees`)||[]}catch(t){throw console.error(`Failed to list workspace trees ${e}:`,t),t}}async function R(e,t){try{return await c.get(`${o.workspaces}/${e}/trees/${encodeURIComponent(t)}`)}catch(n){throw console.error(`Failed to get workspace tree ${e}/${t}:`,n),n}}function z(e,t){if(!e){A.clear(),j.clear();return}if(!t){let t=`${e}\0`;for(let e of A.keys())e.startsWith(t)&&A.delete(e);for(let e of j.keys())e.startsWith(t)&&j.delete(e);return}let n=F(e,t);A.delete(n),j.delete(n)}var mt=`.trash`;function ht(e){return e?Array.isArray(e.children)?{...e,children:e.children.filter(e=>e?.name!==mt)}:e:null}async function gt(e,t,n={}){let r=F(e,t);if(!n.force&&A.has(r))return A.get(r);if(!n.force&&j.has(r))return j.get(r);let i=R(e,t).then(e=>{let t=ht(e);return j.get(r)===i&&A.set(r,t),t}).finally(()=>{j.get(r)===i&&j.delete(r)});return j.set(r,i),i}function B(e,t,n){let r=new URLSearchParams;Ue(r,n.rel);let i=new URLSearchParams;return P(i,n.queries,n.q),{treeNameOrTreeId:n.treeName||`context`,...n.treeType?{treeType:n.treeType}:{},context:e||`/`,scope:n.scope??`path`,allOf:t.filter(Boolean),anyOf:(n.anyOf??[]).filter(Boolean),noneOf:(n.noneOf??[]).filter(Boolean),filters:(n.filters??[]).filter(Boolean),rel:r.getAll(`rel`),q:i.getAll(`q`),...n.ids?.length?{ids:[...n.ids]}:{},applyCanvasSpec:n.applyCanvasSpec!==!1,...n.layerId&&n.scope!==`workspace`?{layerId:n.layerId}:{}}}async function V(e,t=`/`,n=[],r={}){if(b(r.sortBy))return S(r,i=>V(e,t,n,{...r,...i,sortBy:void 0,order:`asc`}));try{let i=new URLSearchParams,a=B(t,n,r);for(let[e,t]of Object.entries(a))Array.isArray(t)?t.forEach(t=>i.append(e,String(t))):i.append(e,String(t));r.limit!==void 0&&i.append(`limit`,r.limit.toString()),r.offset!==void 0&&i.append(`offset`,r.offset.toString()),r.page!==void 0&&i.append(`page`,r.page.toString()),r.debug&&i.append(`debug`,`true`),r.debug&&r.debugLimit&&i.append(`debugLimit`,String(r.debugLimit)),r.sortBy&&i.append(`sortBy`,r.sortBy),r.order&&i.append(`order`,r.order);let s=i.toString(),l=`${o.workspaces}/${e}/documents${s?`?`+s:``}`;return await c.getEnvelope(l)}catch(t){throw console.error(`Failed to get workspace documents ${e}:`,t),t}}async function _t(e,t,n=O,r={}){let i=n===`directory`?`directory`:`context`;return V(e,t,r.allOf||[],{treeName:n,treeType:i,limit:r.limit,page:r.page,offset:r.offset,q:r.q,queries:r.queries,anyOf:r.anyOf,noneOf:r.noneOf,filters:r.filters,ids:r.ids,sortBy:r.sortBy,order:r.order,applyCanvasSpec:r.applyCanvasSpec})}async function H(e,t,n,r={}){if(b(r.sortBy))return S(r,i=>H(e,t,n,{...r,...i,sortBy:void 0,order:`asc`}));try{let i=new URLSearchParams;r.limit!==void 0&&i.append(`limit`,r.limit.toString()),r.offset!==void 0&&i.append(`offset`,r.offset.toString()),r.page!==void 0&&i.append(`page`,r.page.toString()),P(i,r.queries,r.q),N(i,r.allOf),ze(i,r.anyOf),Be(i,r.noneOf),Ve(i,r.filters),He(i,r.ids),r.sortBy&&i.append(`sortBy`,r.sortBy),r.order&&i.append(`order`,r.order);let a=i.toString(),s=`${o.workspaces}/${e}/trees/${encodeURIComponent(t)}/layers/${encodeURIComponent(n)}/documents${a?`?`+a:``}`;return await c.getEnvelope(s)}catch(r){throw console.error(`Failed to get workspace layer documents ${e}/${t}/${n}:`,r),r}}async function vt(e,t){try{return await c.patch(`${o.workspaces}/${e}`,t)}catch(e){throw console.error(`Failed to update workspace:`,e),e}}async function yt(e,t,n=!0,r=O,i=`context`){try{return await c.put(I(e,r,t),{type:i,autoCreateLayers:n}),!0}catch(e){throw console.error(`Failed to insert workspace path ${t}:`,e),e}}async function bt(e,t,n=O,r={}){try{return await c.put(I(e,n,t),{type:`canvas`,...r}),!0}catch(e){throw console.error(`Failed to create workspace canvas ${t}:`,e),e}}async function xt(e,t,n,r,i){let a={metadata:r};return i&&(a.querySpec=i),await c.patch(I(e,n,t),a),!0}async function St(e,t,n=O){return await c.post(`${s}/pub/c`,{workspaceId:e,path:t,treeName:n})}async function Ct(e,t,n=O){let r=new URLSearchParams({workspaceId:e,path:t,treeName:n});return await c.get(`${s}/pub/c?${r.toString()}`)}async function wt(e){return await c.delete(`${s}/pub/c/${encodeURIComponent(e)}`),!0}async function Tt(e){let t=await c.get(`${o.workspaces}/${e}/shares`);return{publicCanvasShares:t?.publicCanvasShares||[],emailShares:t?.emailShares||[]}}async function Et(e,t){return await c.delete(`${o.workspaces}/${e}/shares/public-canvas/${encodeURIComponent(t)}`),!0}async function Dt(e,t,n,r=O){try{return await c.patch(I(e,r,t),n),!0}catch(e){throw console.error(`Failed to update workspace path ${t}:`,e),e}}async function Ot(e,t,n=!1,r=O,i=!1,a=!1){try{let o=new URLSearchParams({recursive:n.toString()});return i&&o.set(`purge`,`true`),a&&o.set(`destroy`,`true`),await c.delete(`${I(e,r,t)}?${o.toString()}`),!0}catch(e){throw console.error(`Failed to remove workspace path ${t}:`,e),e}}async function kt(e,t,n,r=!1,i=O,a,o={}){try{return await c.patch(I(e,i,t),{to:n,recursive:r,...o.mergeDown?{mergeDown:!0}:{},...a&&a!==i?{targetTreeNameOrTreeId:a}:{}}),!0}catch(e){throw console.error(`Failed to move workspace path from ${t} to ${n}:`,e),e}}async function At(e,t,n,r=!1,i=O,a){try{return await c.post(I(e,i,t),{to:n,recursive:r,...a&&a!==i?{targetTreeNameOrTreeId:a}:{}}),!0}catch(e){throw console.error(`Failed to copy workspace path from ${t} to ${n}:`,e),e}}async function jt(e,t,n,r=O,i=`context`){try{let a=W(Array.isArray(n)?n:[n]),s=performance.now();return await c.post(`${o.workspaces}/${e}/documents`,{documentIds:a,treeNameOrTreeId:r,treeType:i,context:t}),console.info(`[paste] linked ${a.length} document(s) → ${r}:${t} in ${Math.round(performance.now()-s)} ms`),!0}catch(e){throw console.error(`Failed to paste documents to workspace path ${t}:`,e),e}}async function Mt(e,t,n,r=O,i=`context`){try{let a=Array.isArray(n)?n:[n],s=await c.post(`${o.workspaces}/${e}/documents`,{documents:a,treeNameOrTreeId:r,treeType:i,context:t});return Array.isArray(s)?s:[]}catch(e){throw console.error(`Failed to import documents to workspace path ${t}:`,e),e}}var U=e=>`${o.workspaces}/${e}/pins`,Nt=(e,t)=>`${e}\0${t}`;async function Pt(e){let t=await c.get(U(e));return Array.isArray(t)?t:[]}async function Ft(e,t,n=O){return c.post(U(e),{path:t,tree:n})}async function It(e,t){await c.delete(`${U(e)}/${encodeURIComponent(t)}`)}async function Lt(e,t){let n=await c.patch(`${U(e)}/order`,{order:t});return Array.isArray(n)?n:[]}async function Rt(e,t=O){return await c.get(`${o.workspaces}/${e}/trees/${encodeURIComponent(t)}/layers`)||[]}async function zt(e,t,n,r=O){return await c.patch(`${o.workspaces}/${e}/trees/${encodeURIComponent(r)}/layers/${t}`,{name:n})}async function Bt(e,t,n,r=O){return await c.post(`${o.workspaces}/${e}/trees/${encodeURIComponent(r)}/layers/${t}/lock`,{lockBy:n}),!0}async function Vt(e,t,n,r=O){return await c.post(`${o.workspaces}/${e}/trees/${encodeURIComponent(r)}/layers/${t}/unlock`,{lockBy:n}),!0}async function Ht(e,t,n=O){return await c.delete(`${o.workspaces}/${e}/trees/${encodeURIComponent(n)}/layers/${t}`),!0}async function Ut(e,t,n,r=O){return await c.post(`${o.workspaces}/${e}/trees/${encodeURIComponent(r)}/layers/merge`,{layerId:t,targetLayers:n})}async function Wt(e,t,n=O){return(await c.post(`${o.workspaces}/${e}/trees/${encodeURIComponent(n)}/paths/merge-down`,{path:t}))?.data??null}async function Gt(e,t,n=O){return(await c.post(`${o.workspaces}/${e}/trees/${encodeURIComponent(n)}/paths/subtract-down`,{path:t}))?.data??null}async function Kt(e,t,n,r=O){return await c.post(`${o.workspaces}/${e}/trees/${encodeURIComponent(r)}/layers/subtract`,{layerId:t,targetLayers:n})}function W(e){let t=e.map(e=>typeof e==`number`?e:Number(e));if(t.some(e=>!Number.isFinite(e)))throw Error(`Invalid document ID(s): expected numbers (or numeric strings), got ${JSON.stringify(e)}`);return t}async function qt(e,t,n=`/`,r=[],i=O,a=`context`,s={}){let l=new URLSearchParams;M(l,n,i,a),N(l,r),s.trashIfOrphaned&&l.append(`trashIfOrphaned`,`true`);let u=W(t);return await c.delete(`${o.workspaces}/${e}/documents/remove?${l.toString()}`,{headers:{"Content-Type":`application/json`},body:JSON.stringify(u)}),!0}async function Jt(e,t,n=`/`,r=[],i=O,a=`context`){let s=new URLSearchParams;M(s,n,i,a),N(s,r);let l=W(t);return await c.delete(`${o.workspaces}/${e}/documents?${s.toString()}`,{headers:{"Content-Type":`application/json`},body:JSON.stringify(l)}),!0}async function Yt(e,t){Me(t.id);try{await c.put(`${o.workspaces}/${e}/documents`,{documents:[t]})}finally{Ne(t.id)}return!0}async function Xt(e,t,n={}){let r={documentIds:W(t)};return n.urls&&(r.urls=n.urls),n.keepDocument&&(r.keepDocument=!0),await c.delete(`${o.workspaces}/${e}/documents/destroy`,{headers:{"Content-Type":`application/json`},body:JSON.stringify(r)})}async function Zt(e,t,n){let r=n.folder?.trim().replace(/^\/+|\/+$/g,``),i=n.filename?.trim();return await c.post(`${o.workspaces}/${e}/documents/transfer`,{documentIds:W(t),to:n.to,mode:n.mode??`copy`,...n.deleteFrom?{deleteFrom:n.deleteFrom}:{},...n.keepDocument?{keepDocument:!0}:{},...r?{folder:r}:{},...i?{filename:i}:{},...n.onConflict?{onConflict:n.onConflict}:{}})}function Qt(e){return typeof e.capabilities?.paths==`boolean`?e.capabilities.paths:e.kind===`storage`&&e.driver!==`cacache`}async function $t(e,t){return await c.get(`${o.workspaces}/${encodeURIComponent(e)}/documents/${t}`)}async function en(e,t,n){return await c.get(`${o.workspaces}/${encodeURIComponent(e)}/documents/by-hash/${encodeURIComponent(t)}/${encodeURIComponent(n)}`)}async function tn(e,t){return await c.get(`${o.workspaces}/${e}/documents/${t}/locations`)||[]}async function nn(e,t,n){let r=n?`?tree=${encodeURIComponent(n)}`:``;return(await c.get(`${o.workspaces}/${e}/documents/${t}/memberships${r}`))?.memberships||[]}async function rn(e,t,n=500){return(await V(e,`/`,[t?`${k}/${t}`:k],{scope:`workspace`,limit:n})).payload||[]}async function an(e){return(await c.get(`${o.workspaces}/${encodeURIComponent(e)}/documents/relations/predicates`))?.predicates??[]}async function on(e,t,n={}){let r=new URLSearchParams;n.resolve===!1&&r.set(`resolve`,`false`),n.offset!==void 0&&r.set(`offset`,String(n.offset)),n.limit!==void 0&&r.set(`limit`,String(n.limit)),n.summary&&r.set(`summary`,`true`);let i=r.size?`?${r}`:``;return await c.get(`${o.workspaces}/${e}/documents/${t}/relations${i}`)??{documentId:Number(t),predicates:[],outgoing:[],incoming:[]}}async function sn(e,t,n,r,i=`out`){return await c.post(`${o.workspaces}/${e}/documents/${t}/relations`,{p:n,to:Array.isArray(r)?W(r):r,dir:i}),!0}async function cn(e,t,n,r,i=`out`){return await c.delete(`${o.workspaces}/${e}/documents/${t}/relations`,{headers:{"Content-Type":`application/json`},body:JSON.stringify({p:n,to:r,dir:i})}),!0}function G(e,t,n={}){let r=new URLSearchParams;n.version&&r.set(`v`,n.version),n.download&&r.set(`download`,`1`),n.url&&r.set(`url`,n.url),n.format&&r.set(`format`,n.format);let i=r.toString();return`${o.workspaces}/${e}/documents/${t}/content${i?`?${i}`:``}`}async function ln(e,t,n=256,r){let i=localStorage.getItem(`authToken`),a=r?`&v=${encodeURIComponent(r)}`:``,s=await fetch(`${o.workspaces}/${e}/documents/${t}/thumbnail?size=${n}${a}`,{headers:i?{Authorization:`Bearer ${i}`}:{}});if(!s.ok)throw Error(`HTTP ${s.status}`);let c=s.headers.get(`content-type`)||`image/webp`;return{blob:await s.blob(),mime:c}}async function un(e,t,n={}){let r=localStorage.getItem(`authToken`),i=await fetch(G(e,t,n),{signal:n.signal,headers:r?{Authorization:`Bearer ${r}`}:{}});if(!i.ok)throw Error(`HTTP ${i.status}`);let a=i.headers.get(`content-type`)||`application/octet-stream`;return{blob:await i.blob(),mime:a}}function dn(e,t,n={}){return G(e,t,n)}async function fn(e,t){let n=localStorage.getItem(`authToken`);return(await fetch(`${o.workspaces}/${e}/documents/${t}/content-ticket`,{method:`POST`,headers:n?{Authorization:`Bearer ${n}`}:{},credentials:`include`})).ok}async function pn(e,t,n,r={}){let i=localStorage.getItem(`authToken`),a=await fetch(G(e,t,{download:!0,url:r.url}),{headers:i?{Authorization:`Bearer ${i}`}:{}});if(!a.ok)throw Error(`HTTP ${a.status}`);let o=await a.blob(),s=URL.createObjectURL(o),c=document.createElement(`a`);c.href=s,c.download=n,document.body.appendChild(c),c.click(),c.remove(),setTimeout(()=>URL.revokeObjectURL(s),3e4)}async function mn(e,t,n){return c.post(`${o.workspaces}/${e}/documents/purge`,{selection:t,expectedCount:n})}async function hn(e){try{return await c.get(`${o.workspaces}/${e}/services`)}catch(e){throw console.error(`Failed to get workspace services status:`,e),e}}async function gn(e,t){try{return await c.post(`${o.workspaces}/${e}/services/${t}/enable`)}catch(e){throw console.error(`Failed to enable ${t} service:`,e),e}}async function _n(e,t){try{return await c.post(`${o.workspaces}/${e}/services/${t}/disable`)}catch(e){throw console.error(`Failed to disable ${t} service:`,e),e}}var K=e=>`${o.workspaces}/${e}/backends`,q=(e,t,n)=>`${K(e)}/${encodeURIComponent(t)}/${encodeURIComponent(n)}`;async function vn(e,t){let n=t?`${K(e)}/${encodeURIComponent(t)}`:K(e);return await c.get(n)||[]}async function yn(e,t,n){return await c.get(q(e,t,n))}async function bn(e,t,n){return await c.get(`${q(e,t,n)}/usage`)}async function xn(e){return await c.delete(`${o.workspaces}/${e}/thumbnails`)}async function Sn(e){return await c.get(`${o.workspaces}/${e}/usage`)}function Cn(e){if(e==null||!Number.isFinite(e))return`—`;if(e<1024)return`${e} B`;let t=[`KB`,`MB`,`GB`,`TB`],n=e,r=`B`;for(let e of t){if(n<1024)break;n/=1024,r=e}return`${n.toFixed(n>=100?0:1)} ${r}`}async function wn(e,t,n){return await c.post(`${K(e)}/${encodeURIComponent(t)}`,n)}async function Tn(e,t,n,r){return await c.patch(q(e,t,n),r)}async function En(e,t,n){return await c.delete(q(e,t,n))}async function Dn(e,t,n){return await c.post(`${q(e,t,n)}/sync`)}async function On(e,t,n){return await c.post(`${q(e,t,n)}/sync/cancel`)}async function kn(e,t,n){return await c.post(`${q(e,t,n)}/test`)}async function An(e,t,n){return await c.get(`${q(e,t,n)}/containers`)||[]}async function jn(e,t,n,r,i){return await c.post(`${q(e,t,n)}/containers/${encodeURIComponent(r)}/documents`,i)}async function Mn(e,t,n,r){return await c.post(`${q(e,t,n)}/containers/${encodeURIComponent(r)}/sync`)}function Nn(e){let t=String(e||``).split(`/`).filter(Boolean);return t[0]!==`imap`||t.length<3||t[t.length-1]===`attachments`?null:{address:t[1]}}async function Pn(e,t,n,r){return c.post(`${q(e,`imap`,t)}/messages/move`,{documentIds:n,targetPath:r})}async function Fn(e,t,n){return await c.get(`${q(e,t,n)}/containers?available=1`)||[]}async function In(e,t,n,r){return await c.post(`${q(e,t,n)}/containers`,{folders:r})}async function Ln(e,t,n,r){return await c.delete(`${q(e,t,n)}/containers/${encodeURIComponent(r)}`)}async function Rn(e,t,n,r,i){return await c.patch(`${q(e,t,n)}/containers/${encodeURIComponent(r)}`,{name:i})}function J(e,t){if(!t?.length)return null;let n=`/`+String(e||``).split(`/`).filter(Boolean).join(`/`);for(let e of t)if(e.treePath){if(n===e.treePath)return{backend:e,key:``};if(n.startsWith(e.treePath+`/`))return{backend:e,key:n.slice(e.treePath.length+1)}}return null}function zn(e,t){let n=J(e,t);if(n)return{driver:n.backend.driver,address:n.backend.address,key:n.key};let r=Y(e);return r?{...r,driver:t?.find(e=>e.address===r.address)?.driver||r.driver}:null}function Y(e,t){let n=J(e,t);if(n)return n.backend.driver===`file`?{driver:`file`,address:n.backend.address,key:n.key}:null;let r=String(e||``).split(`/`).filter(Boolean);return r[0]===`workspace`&&r[1]===`git`?null:r[0]===`workspace`&&r.length>=2?{driver:`file`,address:`workspace:${r[1]}`,key:r.slice(2).join(`/`)}:r[0]===`device`&&r.length>=3?{driver:`file`,address:r[2],key:r.slice(3).join(`/`)}:r[0]===`file`&&r.length>=2?{driver:`file`,address:r[1],key:r.slice(2).join(`/`)}:null}function Bn(e,t){let n=J(e,t);if(n){let{backend:e,key:t}=n;return!t||![`file`,`gdrive`].includes(e.driver)||!e.enabled||!e.capabilities.mutableContainers||e.config?.readOnly===!0?null:{driver:e.driver,address:e.address,key:t}}if(t)return null;let r=String(e||``).split(`/`).filter(Boolean);if(r[0]===`gdrive`&&r.length>2)return{driver:`gdrive`,address:r[1],key:r.slice(2).join(`/`)};let i=Y(e);return i?.key?i:null}async function Vn(e,t,n,r={}){let i=new URLSearchParams;r.linked!==void 0&&i.append(`linked`,String(r.linked)),r.limit!==void 0&&i.append(`limit`,String(r.limit)),r.offset!==void 0&&i.append(`offset`,String(r.offset));let a=i.toString();return await c.getEnvelope(`${q(e,t,n)}/documents${a?`?${a}`:``}`)}async function Hn(e,t,n){return await c.post(`${K(e)}/${encodeURIComponent(t)}/discover`,n)||[]}function Un(e,t){let n=J(e,t);if(n)return{driver:n.backend.driver,address:n.backend.address};let r=String(e||``).split(`/`).filter(Boolean);return r.length<2||r[0]===`workspace`&&r[1]===`git`?null:r[0]===`workspace`?{driver:`file`,address:`workspace:${r[1]}`}:r[0]===`device`?r.length>=3?{driver:`file`,address:r[2]}:null:{driver:r[0],address:r[1]}}var Wn=[`internal/`,`context/`,`vfs/`];async function X(e){try{return(await c.get(`${o.workspaces}/${encodeURIComponent(e)}/bitmaps`)||[]).map(e=>typeof e==`string`?e:e.key??String(e)).filter(e=>e&&!Wn.some(t=>e.startsWith(t)))}catch{return[]}}async function Gn(e){return(await X(e)).filter(e=>e.startsWith(`tag/`)).map(e=>e.slice(4)).filter(Boolean).sort()}async function Kn(e,t){let n=t.replace(/^\/+|\/+$/g,``);if(!n)throw Error(`Bitmap key is required`);if(n.startsWith(`data/`)||n===`data`)throw Error(`data/* bitmaps are protected and cannot be deleted manually`);return await c.delete(`${o.workspaces}/${encodeURIComponent(e)}/bitmaps/${n.split(`/`).map(encodeURIComponent).join(`/`)}`),!0}async function qn(e,t,n=!0){let r=t.replace(/^data\/dataset\//,``).replace(/^\/+|\/+$/g,``);if(!r)throw Error(`Dataset name is required`);if(r==="default")throw Error(`The "default" dataset is virtual and cannot be deleted`);return await c.delete(`${o.workspaces}/${encodeURIComponent(e)}/datasets/${r.split(`/`).map(encodeURIComponent).join(`/`)}?dropDocuments=${n}`)}function Z(e){return`${o.workspaces}/${encodeURIComponent(e)}/timelines`}async function Jn(e){try{return await c.get(Z(e))||[]}catch{return[]}}async function Yn(e){try{return await c.get(`${Z(e)}?verbose=true`)||[]}catch{return[]}}async function Xn(e,t){return await c.post(Z(e),{name:t})}async function Zn(e,t){return await c.delete(`${Z(e)}/${encodeURIComponent(t)}`),!0}async function Qn(e,t){return(await c.post(`${Z(e)}/histogram`,t))?.buckets??[]}async function $n(e,t){let n=t?`?workspaceId=${encodeURIComponent(t)}`:``;return await c.post(`${o.admin.inferd}/${e?`pause`:`resume`}${n}`)}async function er(e){return await c.get(`${o.workspaces}/${e}/db/stats`)}async function tr(e,t){return await c.put(`${o.workspaces}/${e}/db/tuning`,t)}async function nr(e){let t=await c.get(`${o.workspaces}/${e}/trash`);return Array.isArray(t)?t:[]}async function rr(e,t){return await c.post(`${o.workspaces}/${e}/trash/restore`,{documentIds:W(t)})}async function ir(e,t){return await c.delete(`${o.workspaces}/${e}/trash`,t?.length?{headers:{"Content-Type":`application/json`},body:JSON.stringify({documentIds:W(t)})}:{})}var Q=(e,t,n)=>`${o.workspaces}/${e}/members/${encodeURIComponent(`${t}:${n}`)}`;async function ar(e){return c.get(`${o.workspaces}/${e}/members`)}async function or(e,t,n,r){return c.post(`${o.workspaces}/${e}/members`,{...t,permissions:n,...r?{description:r}:{}})}async function sr(e,t,n,r){return c.put(Q(e,t,n),{permissions:r})}async function cr(e,t,n){await c.delete(Q(e,t,n))}async function lr(e,t,n){return c.post(`${o.workspaces}/${encodeURIComponent(e)}/documents/copy-to-workspace`,{documentId:t,...n})}async function $(e,t,n){let r=await c.postEnvelope(`${o.workspaces}/${encodeURIComponent(e)}/db/${t}`,n??{});return{message:r.message??``,payload:r.payload}}function ur(e){return $(e,`reindex/timelines`)}function dr(e){return $(e,`reindex/mime`)}function fr(e,t=!1){return $(e,`reindex/search${t?`?rebuild=true`:``}`)}function pr(e,t){return $(e,`optimize`,t?{space:t}:{})}async function mr(e,t){return c.post(`${o.workspaces}/${e}/documents/${t}/download`)}export{Ke as $,Ot as $t,_n as A,S as An,Gn as At,ln as B,oe as Bn,pr as Bt,Kn as C,vt as Cn,X as Ct,Zn as D,Nt as Dn,ar as Dt,at as E,Dt as En,Rt as Et,ot as F,Ee as Fn,Bt as Ft,bn as G,le as Gn,fr as Gt,Re as H,ie as Hn,Ft as Ht,ir as I,v as In,Wt as It,tn as J,me as Jn,Ln as Jt,gt as K,pe as Kn,ur as Kt,gn as L,xe as Ln,Ut as Lt,dn as M,De as Mn,Yn as Mt,pn as N,Te as Nn,pt as Nt,Xt as O,Ie as On,Pt as Ot,mr as P,y as Pn,Je as Pt,an as Q,qt as Qt,rt as R,se as Rn,Pn as Rt,wt as S,Tn as Sn,nr as St,Jt as T,sr as Tn,rn as Tt,Cn as U,re as Un,mn as Ut,Qn as V,d as Vn,jt as Vt,yn as W,ae as Wn,dr as Wt,on as X,nt as Xt,nn as Y,cn as Yt,Ct as Z,ft as Zt,sn as _,kn as _n,An as _t,tt as a,cr as an,H as at,bt as b,Vt as bn,vn as bt,Qt as c,Ye as cn,R as ct,B as d,ut as dn,Mt as dt,Rn as en,er as et,On as f,dt as fn,st as ft,jn as g,Mn as gn,z as gt,At as h,Dn as hn,yt as ht,In as i,rr as in,V as it,Hn as j,b as jn,Jn as jt,Ht as k,x as kn,Tt as kt,Bn as l,$n as ln,or as lt,lr as m,Kt as mn,$e as mt,Ze as n,Lt as nn,$t as nt,Un as o,Et as on,hn as ot,xn as p,Gt as pn,lt as pt,_t as q,f as qn,En as qt,wn as r,fn as rn,en as rt,Y as s,xt as sn,qe as st,O as t,zt as tn,Sn as tt,zn as u,tr as un,Nn as ut,St as v,Zt as vn,Vn as vt,qn as w,Yt as wn,it as wt,Xn as x,It as xn,et as xt,Xe as y,Le as yn,Fn as yt,un as z,ce as zn,kt as zt};
@@ -0,0 +1 @@
1
+ function e(e){return e?e.remote?e.remote.permissions.includes(`admin`):e.access?e.access.isOwner||e.access.permissions.includes(`admin`):e.isShared||e.type===`shared`?typeof e.sharedVia==`object`&&e.sharedVia?.permissions?.includes(`admin`)===!0:!0:!1}export{e as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{l as t,u as n}from"./code-editor-BOIngd5F.js";import{g as r}from"./chunk-62JRHF6Z-vspAGgtK.js";import{h as i}from"./LinkToCard-BZwwE-Dv.js";import{n as a}from"./document-list-BiogH4tf.js";import{t as o}from"./url-params-n7kU_WZ-.js";var s=e(n(),1),c=t();function l({workspaceId:e,treeName:t=`context`,path:n=`/`,children:l,className:u,headerOnly:d=!1,readOnly:f=!1}){let[p,m]=(0,s.useState)(null),h=r(),g=a({workspaceId:e,treeName:t}),_=[...!f&&t!==`backends`?[{label:`New folder…`,run:async()=>{let e=prompt(`New folder name:`)?.trim();if(e){if(/[\\/]/.test(e)||e===`.`||e===`..`)throw Error(`Enter a folder name without slashes`);await g.onInsertPath(`${n===`/`?``:n}/${e}`)}}},{label:`New canvas…`,run:async()=>{h(`${o(e,n,t)}?createCanvas=1`)}}]:[],...!f&&g.onImportDocuments?[{label:`Import documents…`,run:()=>g.onImportDocuments(n)}]:[],{label:`Export documents…`,run:()=>g.onExportDocuments(n)}];return(0,c.jsxs)(`div`,{className:u,onContextMenu:e=>{e.defaultPrevented||d&&!e.target.closest(`.canvas-navigation`)||(e.preventDefault(),m({x:e.clientX,y:e.clientY}))},children:[l,p&&(0,c.jsx)(i,{...p,onClose:()=>m(null),className:`min-w-44 rounded-md border bg-popover p-1 shadow-elevation-3`,children:_.map(e=>(0,c.jsx)(`button`,{type:`button`,className:`block w-full rounded-sm px-3 py-1.5 text-left text-xs hover:bg-accent`,onClick:()=>{m(null),e.run().catch(e=>alert(e instanceof Error?e.message:String(e)))},children:e.label},e.label))})]})}export{l as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{l as t,u as n}from"./code-editor-BOIngd5F.js";import{r}from"./chunk-62JRHF6Z-vspAGgtK.js";import{t as i}from"./button-Bv4zA1qr.js";import{i as a,n as o,r as s}from"./api-CA6WiiYM.js";import{t as c}from"./socket-CtH3EU9m.js";import{$ as l,dn as u,st as d}from"./workspace-CJ1PWQ29.js";import{t as f}from"./workspace-access-C9nZlBBZ.js";var p=e(n(),1),m=t();function h({workspaceName:e,children:t}){let n=e,[h,g]=(0,p.useState)(null),[_,v]=(0,p.useState)(``),[y,b]=(0,p.useState)(!1),[x,S]=(0,p.useState)(0),[C,w]=(0,p.useState)(null);if((0,p.useEffect)(()=>{let t=!1,r=0,i,u=!1,p=async()=>{if(u||t)return;u=!0;let a=++r;try{let o=i?await d(e):await l(e);!t&&a===r&&(`id`in o&&(i=o.id,w({identity:n,allowed:f(o)})),g({identity:n,state:s()||o.status===`active`?`active`:o.status===`inactive`?`stopped`:`unavailable`}),v(``))}catch(e){if(!t&&a===r){let t=e instanceof Error?e.message:`Unable to check workspace status`,r=o(t);g(e=>r&&e?.identity===n&&e.state===`active`?e:{identity:n,state:r?`offline`:`unavailable`}),v(t)}}finally{u=!1}},m=t=>{let a=t.detail?.refs;!a?.includes(e)&&!(i&&a?.includes(i))||(r++,g({identity:n,state:`stopped`}),v(``))},h=t=>{let a=t.workspaceId||t.id;!a||a!==e&&a!==i||!t.status||(r++,g({identity:n,state:t.status===`active`?`active`:t.status===`inactive`?`stopped`:`unavailable`}),v(``))};p(),window.addEventListener(`workspaces:refresh`,p),window.addEventListener(`workspace:stopped`,m),window.addEventListener(`focus`,p);let _=c.on(`connect`,p);c.on(`workspace:status:changed`,h),c.on(`workspace.status.changed`,h);let y=a(e=>{e||p()});return()=>{t=!0,_?.(),y(),c.off(`workspace:status:changed`,h),c.off(`workspace.status.changed`,h),window.removeEventListener(`workspaces:refresh`,p),window.removeEventListener(`workspace:stopped`,m),window.removeEventListener(`focus`,p)}},[e,n,x]),h?.identity!==n)return(0,m.jsx)(`p`,{className:`p-6 text-sm text-muted-foreground`,children:`Checking workspace…`});if(h.state===`active`)return t;let T=h.state===`stopped`;return(0,m.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3 p-6 text-center`,children:[(0,m.jsx)(`p`,{className:`font-medium`,children:T?`Workspace stopped`:h.state===`offline`?`Server unreachable`:`Workspace unavailable`}),(0,m.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:T?`Start this workspace to view its content.`:h.state===`offline`?`Reconnect to load this workspace. Previously loaded content stays available offline.`:`Unable to check this workspace. Try again or check its settings.`}),_&&(0,m.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive`,children:_}),(0,m.jsx)(i,{disabled:y,onClick:async()=>{b(!0),v(``);try{T&&await u(e),S(e=>e+1)}catch(e){v(e instanceof Error?e.message:`Unable to start workspace`)}finally{b(!1)}},children:y?T?`Starting…`:`Checking…`:T?`Start workspace`:`Retry`}),C?.identity===n&&C.allowed&&(0,m.jsx)(r,{className:`text-sm underline`,to:`/workspaces/${encodeURIComponent(e)}/settings`,children:`Workspace settings`})]})}export{h as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{l as t,u as n}from"./code-editor-BOIngd5F.js";import{_t as r}from"./react-BHzhHVTZ.js";import{r as i}from"./chunk-62JRHF6Z-vspAGgtK.js";import{Ot as a,W as o}from"./ui-BSqPn1LJ.js";import{t as s}from"./button-Bv4zA1qr.js";import{t as c}from"./input-BOtCd4HP.js";import{En as l,cn as u,ft as d,gt as f,ht as p,n as m,pt as h}from"./workspace-CJ1PWQ29.js";import{i as g,u as _}from"./layer-style-Byl5LNFR.js";var v=e(n(),1),y=[`Home`,`Travel`,`Work`,`Books`,`Workouts`,`Beauty`,`Recipes`,`To Watch`,`To Read`,`Learning`,`Tech`,`Music`,`Finance`,`Shopping`,`Ideas`];async function b(e,t,n){let r=0,i=0,a=n===`directory`?`directory`:`context`;for(let n of t)try{await p(e,`/${n}`,!0,a);let t=_(`/${n}`);t&&await l(e,`/${n}`,t,a).catch(()=>{}),r+=1}catch{i+=1}return f(e),window.dispatchEvent(new CustomEvent(`workspace:tree:refresh`,{detail:{workspaceName:e,treeName:n}})),{ok:r,failed:i}}function x(){let[e,t]=(0,v.useState)(new Set),[n,r]=(0,v.useState)(`context`);return{selected:e,setSelected:t,tree:n,setTree:r,toggle:e=>{t(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}}}var S=t();function C({selected:e,onToggle:t,tree:n,onTreeChange:i,disabled:a=!1,idPrefix:o=`default-folders`,stacked:s=!1}){return(0,S.jsxs)(`div`,{children:[(0,S.jsxs)(`div`,{className:`flex items-center gap-3 text-xs`,children:[(0,S.jsx)(`span`,{className:`text-muted-foreground`,children:`Create in:`}),[`context`,`directory`].map(e=>(0,S.jsxs)(`label`,{className:`flex items-center gap-1`,children:[(0,S.jsx)(`input`,{type:`radio`,name:`${o}-tree`,checked:n===e,onChange:()=>i(e),disabled:a}),e,` tree`]},e))]}),(0,S.jsx)(`div`,{className:`mt-3 grid gap-1.5 ${s?`grid-cols-1`:`grid-cols-2 sm:grid-cols-3 md:grid-cols-4`}`,children:y.map(n=>{let i=g[n.toLowerCase()];return(0,S.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-2 rounded border px-2 py-1.5 text-sm hover:bg-accent/50`,children:[(0,S.jsx)(`input`,{type:`checkbox`,checked:e.has(n),onChange:()=>t(n),disabled:a}),i?.icon&&(0,S.jsx)(r,{icon:i.icon,width:16,height:16,color:i.color}),(0,S.jsx)(`span`,{className:`truncate`,children:n})]},n)})})]})}function w({disabled:e}){let[t,n]=(0,v.useState)(0),[r,o]=(0,v.useState)(!0),[c,l]=(0,v.useState)([]),[d,f]=(0,v.useState)(null),[p,m]=(0,v.useState)(``),h=(0,v.useRef)(null);return(0,v.useEffect)(()=>{let e=!0;return h.current?.id!==t&&(h.current={id:t,promise:u()}),h.current.promise.then(t=>{if(!e)return;let n=[...t.discovered,...t.adopted];l(e=>[...new Map([...e,...n].map(e=>[e.id,e])).values()]),f(t)}).catch(t=>{e&&m(t instanceof Error?t.message:`Workspace scan failed`)}).finally(()=>{e&&o(!1)}),()=>{e=!1}},[t]),(0,S.jsxs)(`section`,{className:`space-y-2 rounded-md border p-3`,"aria-label":`Find workspace folders`,children:[(0,S.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`h3`,{className:`text-sm font-medium`,children:`Workspaces folder`}),(0,S.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Copied a workspace folder here? Scan to add it to your workspaces.`})]}),(0,S.jsxs)(s,{type:`button`,variant:`outline`,size:`sm`,disabled:e||r,onClick:()=>{o(!0),m(``),n(e=>e+1)},children:[(0,S.jsx)(a,{className:`mr-2 h-3.5 w-3.5 ${r?`animate-spin`:``}`}),r?`Scanning…`:`Rescan`]})]}),r&&(0,S.jsx)(`p`,{role:`status`,className:`text-sm text-muted-foreground`,children:`Looking for workspace folders…`}),!r&&!p&&(0,S.jsx)(`p`,{role:`status`,className:`text-sm`,children:c.length?`Found ${c.length} ${c.length===1?`workspace`:`workspaces`}. Added to your workspace list.`:`No new workspace folders found.`}),c.length>0&&(0,S.jsx)(`ul`,{className:`space-y-2`,children:c.map(e=>(0,S.jsxs)(`li`,{children:[(0,S.jsx)(i,{className:`text-sm font-medium underline underline-offset-2`,to:`/workspaces/${encodeURIComponent(e.name)}`,children:e.label||e.name}),(0,S.jsx)(`p`,{className:`break-all text-xs text-muted-foreground`,children:e.dir})]},e.id))}),p&&(0,S.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive`,children:p}),!!d?.skipped.length&&(0,S.jsxs)(`details`,{className:`text-sm text-muted-foreground`,children:[(0,S.jsxs)(`summary`,{children:[d.skipped.length,` `,d.skipped.length===1?`folder could`:`folders could`,` not be added`]}),(0,S.jsx)(`ul`,{className:`mt-1 space-y-1`,children:d.skipped.map(e=>(0,S.jsxs)(`li`,{className:`break-all`,children:[e.dir,`: `,e.reason]},e.dir))})]})]})}function T({name:e,label:t,setName:n,setLabel:r,disabled:i=!1}){return(0,S.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,S.jsxs)(`label`,{className:`grid gap-1 text-sm`,children:[`Workspace name`,(0,S.jsx)(c,{required:!0,pattern:`[a-zA-Z0-9]([a-zA-Z0-9_]|-)*`,placeholder:`my-workspace`,value:e,onChange:e=>n(e.target.value),disabled:i}),(0,S.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Used in addresses. Archive imports also use it as the folder name.`})]}),(0,S.jsxs)(`label`,{className:`grid gap-1 text-sm`,children:[`Display label`,(0,S.jsx)(c,{required:!0,placeholder:`My Workspace`,value:t,onChange:e=>r(e.target.value),disabled:i})]})]})}function E({onImported:e,disabled:t=!1}){let[n,r]=(0,v.useState)(`upload`),[i,l]=(0,v.useState)(null),[u,f]=(0,v.useState)(``),[p,g]=(0,v.useState)(``),[_,y]=(0,v.useState)(``),[b,x]=(0,v.useState)(!1),[C,E]=(0,v.useState)(``),[D,O]=(0,v.useState)(``),[k,A]=(0,v.useState)(null),j=t||b,M=async t=>{t.preventDefault(),x(!0),O(``),A(null),E(`Starting…`);let r={name:p.trim(),label:_.trim()},a=e=>E(m[e.phase]||e.phase);try{let t=n===`upload`?await d(i,e=>E(e<1?`Uploading… ${Math.round(e*100)}%`:`Extracting…`),a,r):await h(u.trim(),r,a);A(t),window.dispatchEvent(new CustomEvent(`workspaces:refresh`)),e?.(t)}catch(e){O(e instanceof Error?e.message:`Workspace import failed`)}finally{x(!1)}};return(0,S.jsxs)(`form`,{className:`space-y-3`,onSubmit:e=>void M(e),children:[(0,S.jsx)(w,{disabled:j}),(0,S.jsxs)(`label`,{className:`grid gap-1 text-sm`,children:[`Import from`,(0,S.jsxs)(`select`,{value:n,disabled:j,onChange:e=>r(e.target.value),className:`rounded-md border bg-background p-2`,children:[(0,S.jsx)(`option`,{value:`upload`,children:`Upload an archive`}),(0,S.jsx)(`option`,{value:`path`,children:`Path on this server`})]})]}),n===`upload`?(0,S.jsxs)(`label`,{className:`grid gap-1 text-sm`,children:[`Workspace archive`,(0,S.jsx)(c,{required:!0,type:`file`,accept:`.tar.gz,.tgz,.tar.bz2,.tbz2,.tbz`,disabled:j,onChange:e=>l(e.target.files?.[0]||null)})]}):(0,S.jsxs)(`label`,{className:`grid gap-1 text-sm`,children:[`Server path`,(0,S.jsx)(c,{required:!0,placeholder:`/tmp/workspace.tar.gz`,value:u,disabled:j,onChange:e=>f(e.target.value)}),(0,S.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`An archive or workspace folder on the server. Archives are extracted into your Workspaces directory.`})]}),(0,S.jsx)(T,{name:p,label:_,setName:g,setLabel:y,disabled:j}),(0,S.jsxs)(s,{type:`submit`,disabled:j||!p.trim()||!_.trim()||(n===`upload`?!i:!u.trim()),children:[b?(0,S.jsx)(a,{className:`mr-2 h-4 w-4 animate-spin`}):(0,S.jsx)(o,{className:`mr-2 h-4 w-4`}),b?`Importing…`:`Import workspace`]}),b&&(0,S.jsx)(`p`,{role:`status`,className:`text-sm text-muted-foreground`,children:C}),D&&(0,S.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive`,children:D}),k&&(0,S.jsxs)(`p`,{role:`status`,className:`text-sm`,children:[`Imported `,k.label||k.name,`.`]})]})}export{x as a,b as i,T as n,C as r,E as t};