@hienlh/ppm 0.17.13 → 0.17.15

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 (42) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/assets/skills/ppm/SKILL.md +1 -1
  3. package/assets/skills/ppm/references/http-api.md +1 -1
  4. package/dist/web/assets/{ai-resource-editor--dn8S_Rh.js → ai-resource-editor-DfCN7LjR.js} +1 -1
  5. package/dist/web/assets/{audio-preview-r3VtLQZm.js → audio-preview-DbFUkIzm.js} +1 -1
  6. package/dist/web/assets/{chat-tab-KXsHX4l9.js → chat-tab-C6nMDb9l.js} +3 -3
  7. package/dist/web/assets/{code-editor-C_xF9aCM.js → code-editor-C38IIs_y.js} +2 -2
  8. package/dist/web/assets/{conflict-editor-CtUc9PNM.js → conflict-editor-BAAffNdj.js} +1 -1
  9. package/dist/web/assets/{csv-preview-CwBWQ7iv.js → csv-preview-DzhSC0fd.js} +1 -1
  10. package/dist/web/assets/{database-viewer-Z6W1dMmo.js → database-viewer-DxmL2veb.js} +1 -1
  11. package/dist/web/assets/{diff-viewer-tpzdjnHZ.js → diff-viewer-DvXxlk47.js} +1 -1
  12. package/dist/web/assets/{docx-preview-BjnRm6oJ.js → docx-preview-DfjH-dIr.js} +1 -1
  13. package/dist/web/assets/{extension-webview-aHWTHV1l.js → extension-webview-wuMQ8pD7.js} +1 -1
  14. package/dist/web/assets/{git-log-panel-Bj_h7bkP.js → git-log-panel-SPPYmbCr.js} +1 -1
  15. package/dist/web/assets/{glide-data-grid-Cr8WSr3x.js → glide-data-grid-BC0AHzMn.js} +1 -1
  16. package/dist/web/assets/{group-chat-tab-CiBxBMBm.js → group-chat-tab-D20bF8q5.js} +1 -1
  17. package/dist/web/assets/{image-preview-BdRorE76.js → image-preview-D_8o6OLx.js} +1 -1
  18. package/dist/web/assets/{index-kz9zfHOE.js → index-C1Q59prB.js} +5 -5
  19. package/dist/web/assets/keybindings-store-TINaziU9.js +1 -0
  20. package/dist/web/assets/{markdown-renderer-BoF1ld48.js → markdown-renderer-DVVx3WCU.js} +1 -1
  21. package/dist/web/assets/notification-store-DN8oDV7o.js +1 -0
  22. package/dist/web/assets/panel-store-D6RV_ztx.js +1 -0
  23. package/dist/web/assets/{pdf-preview-ChQLJT4c.js → pdf-preview-HTC73FyK.js} +1 -1
  24. package/dist/web/assets/{postgres-viewer-k5VXY6e9.js → postgres-viewer-pWjwP3GD.js} +1 -1
  25. package/dist/web/assets/{settings-tab-66aW86Lu.js → settings-tab-BoRuss3O.js} +1 -1
  26. package/dist/web/assets/{sql-query-editor-C4Tl0tAu.js → sql-query-editor-CJdpO95g.js} +1 -1
  27. package/dist/web/assets/{sqlite-viewer-wDh3qSME.js → sqlite-viewer-BgewX3tM.js} +1 -1
  28. package/dist/web/assets/{system-monitor-tab-CPeTyV-m.js → system-monitor-tab-BA9gqJRW.js} +1 -1
  29. package/dist/web/assets/{tab-store-Du07bf46.js → tab-store-CcLQfu8H.js} +1 -1
  30. package/dist/web/assets/{terminal-tab-DxGGE8Ap.js → terminal-tab-DWncjHEA.js} +1 -1
  31. package/dist/web/assets/{use-monaco-theme-Cy7QisxK.js → use-monaco-theme-Ch2jRiGj.js} +1 -1
  32. package/dist/web/assets/{use-websocket-_SbtdEue.js → use-websocket-MvxbuTdy.js} +1 -1
  33. package/dist/web/assets/{video-preview-mrDPncfB.js → video-preview-rWrNCfZX.js} +1 -1
  34. package/dist/web/index.html +3 -3
  35. package/dist/web/sw.js +1 -1
  36. package/package.json +1 -1
  37. package/src/web/components/layout/mobile-nav.tsx +12 -12
  38. package/src/web/stores/panel-store.ts +16 -4
  39. package/C:/Users/PC/AppData/Local/Temp/ppmbuild/index.js +0 -118043
  40. package/dist/web/assets/keybindings-store-DJRBqhOe.js +0 -1
  41. package/dist/web/assets/notification-store-Bkv1FDGL.js +0 -1
  42. package/dist/web/assets/panel-store-DwzpWmEc.js +0 -1
@@ -1 +0,0 @@
1
- import"./vendor-markdown-CKTlmXbz.js";import"./api-client-Dvzcc_EO.js";import{ut as e}from"./index-kz9zfHOE.js";export{e as useKeybindingsStore};
@@ -1 +0,0 @@
1
- import"./vendor-markdown-CKTlmXbz.js";import"./api-client-Dvzcc_EO.js";import{yt as e}from"./index-kz9zfHOE.js";export{e as useNotificationStore};
@@ -1 +0,0 @@
1
- import{t as e}from"./react-J9g6e3Rq.js";import{r as t}from"./utils-CTg5uAYR.js";var n=`__dock__`,r=new Set([`terminal`,`system-monitor`]);function i(){return{id:n,tabs:[],activeTabId:null,tabHistory:[]}}function a(){return`panel-${t()}`}function o(e=[],t=null){return{id:a(),tabs:e,activeTabId:t,tabHistory:t?[t]:[]}}function s(e){return e?1:3}function c(e,t){return e.map(e=>e.filter(e=>e!==t)).filter(e=>e.length>0)}function l(e,t){for(let n=0;n<e.length;n++){let r=e[n].indexOf(t);if(r!==-1)return{row:n,col:r}}return null}function u(e){let t=0;for(let n of Object.values(e))for(let e of n.tabs){let n=e.id.match(/^editor:untitled-(\d+)$/);n&&(t=Math.max(t,Number(n[1])))}return t+1}function d(e,n){switch(e){case`editor`:return n?.viewerKey?`editor:viewer:${n.viewerKey}`:n?.isUntitled?`editor:untitled-${n.untitledNumber??1}`:`editor:${n?.filePath??`untitled`}`;case`chat`:return`chat:${n?.providerId??`default`}/${n?.sessionId??t()}`;case`terminal`:return`terminal:${n?.terminalIndex??1}`;case`database`:return`database:${n?.connectionId??`default`}:${n?.tableName??``}`;case`sqlite`:return`sqlite:${n?.filePath??`default`}`;case`postgres`:return`postgres:${n?.connectionId??`default`}:${n?.tableName??``}`;case`extension`:return`extension:${String(n?.viewType??`unknown`).replace(/\.view$/,``)}`;case`git-diff`:return`git-diff:${n?.filePath??`unknown`}`;case`conflict-editor`:return`conflict-editor:${n?.filePath??`unknown`}`;case`settings`:return`settings`;case`group`:return`group:${n?.groupId??`unknown`}`;default:return`${e}:${t()}`}}var f=new Set([`ports`,`tunnels`]);function p(e){if(!e.tabs.some(e=>f.has(e.type)))return e;let t=new Set(e.tabs.filter(e=>f.has(e.type)).map(e=>e.id)),n=e.tabs.filter(e=>!t.has(e.id)),r=e.tabHistory.filter(e=>!t.has(e)),i=e.activeTabId&&!t.has(e.activeTabId)?e.activeTabId:r[r.length-1]??n[n.length-1]?.id??null;return{...e,tabs:n,tabHistory:r,activeTabId:i}}function m(e){let t={};for(let[n,r]of Object.entries(e.panels))t[n]=p(r);let n=e.dockPanel?p(e.dockPanel):e.dockPanel;return{...e,panels:t,dockPanel:n}}function h(e){let t={...e,panels:{...e.panels}};for(let[e,n]of Object.entries(t.panels)){let r=n.tabs.map(e=>{if(e.id.startsWith(`tab-`)){let t=d(e.type,e.metadata);return{...e,id:t}}return e}),i=new Map;n.tabs.forEach((e,t)=>{e.id!==r[t].id&&i.set(e.id,r[t].id)});let a=i.get(n.activeTabId??``)??n.activeTabId,o=n.tabHistory.map(e=>i.get(e)??e);t.panels[e]={...n,tabs:r,activeTabId:a,tabHistory:o}}return t}var g=`ppm-panels-`,_=`ppm-tabs-`;function v(e){return`${g}${e}`}function y(e,t){try{let n={...t,updatedAt:new Date().toISOString()};localStorage.setItem(v(e),JSON.stringify(n)),e!==`__global__`&&w(e,t)}catch{}}function b(e){try{let t=localStorage.getItem(v(e));if(t)return x(h(m(JSON.parse(t))))}catch{}let t=D(e);return t?x(m(t)):null}function x(e){let t=e.dock??{visible:!1,height:30},n;if(!e.dockPanel)n=i();else{let t=e.dockPanel.tabs.filter(e=>r.has(e.type)),i=new Set(t.map(e=>e.id)),a=e.dockPanel.tabHistory.filter(e=>i.has(e)),o=e.dockPanel.activeTabId&&i.has(e.dockPanel.activeTabId)?e.dockPanel.activeTabId:a[a.length-1]??t[t.length-1]?.id??null;n={...e.dockPanel,tabs:t,tabHistory:a,activeTabId:o}}return{...e,dock:t,dockPanel:n}}async function S(e){if(e===`__global__`)return null;try{let t={},n=localStorage.getItem(`ppm-auth-token`);n&&(t.Authorization=`Bearer ${n}`);let r=await fetch(`/api/project/${encodeURIComponent(e)}/workspace`,{headers:t});if(!r.ok)return null;let i=await r.json();return!i.ok||!i.data?null:{...i.data.layout,updatedAt:i.data.updatedAt}}catch{return null}}var C=new Map;function w(e,t){let n=C.get(e);n&&clearTimeout(n),C.set(e,setTimeout(async()=>{C.delete(e);try{let n={"Content-Type":`application/json`},r=localStorage.getItem(`ppm-auth-token`);r&&(n.Authorization=`Bearer ${r}`);let i=await fetch(`/api/project/${encodeURIComponent(e)}/workspace`,{method:`PUT`,headers:n,body:JSON.stringify({layout:t})});if(i.ok){let t=await i.json();if(t.data?.updatedAt){let n=`${g}${e}`,r=localStorage.getItem(n);if(r){let e=JSON.parse(r);e.updatedAt=t.data.updatedAt,localStorage.setItem(n,JSON.stringify(e))}}}}catch{}},1500))}function T(e,t){if(!e&&!t)return null;if(!e)return t;if(!t)return e;let n=new Date(e.updatedAt).getTime();return new Date(t.updatedAt).getTime()>=n?t:e}async function E(e){if(e===`__global__`)return!1;let t=await S(e);if(!t)return!1;let n=`${g}${e}`,r=null;try{let e=localStorage.getItem(n);r=e?JSON.parse(e):null}catch{}if(T(r,t)!==t)return!1;try{let e={...m(t),updatedAt:t.updatedAt};return localStorage.setItem(n,JSON.stringify(e)),!0}catch{return!1}}function D(e){try{let t=localStorage.getItem(`${_}${e}`);if(!t)return null;let n=JSON.parse(t);if(!n.tabs?.length)return null;let r=o(n.tabs,n.activeTabId),i={panels:{[r.id]:r},grid:[[r.id]],focusedPanelId:r.id};return y(e,i),localStorage.removeItem(`${_}${e}`),i}catch{return null}}var O=15,k=85;function A(e){return Math.min(k,Math.max(O,e))}function j(e,t){let n=e.filter(e=>e!==t);return n.push(t),n.length>50&&n.shift(),n}function M(e){let t=e().panels[n];if(!t)return 0;let r=e().currentProject;return t.tabs.filter(e=>!e.projectId||!r||e.projectId===r).length}function N(e){let t=e().currentProject;e().openInDock({type:`terminal`,title:`Terminal`,projectId:t??null,closable:!0,metadata:t?{projectName:t}:void 0})}function P(e,t){return function(){let{dock:n}=t(),r=!n.visible;e({dock:{...n,visible:r}}),z(t),r&&M(t)===0&&N(t)}}function F(e,t){return function(n){let{dock:r}=t();e({dock:{...r,visible:n}}),z(t)}}function I(e,t){return function(n){let{dock:r}=t();e({dock:{...r,height:A(n)}}),z(t)}}function L(e,t){return function(r){let{panels:a,dock:o}=t(),s=a.__dock__??i(),c=r;if(r.type===`terminal`&&!r.metadata?.terminalIndex){let e=Object.values(a).flatMap(e=>e.tabs).filter(e=>e.type===`terminal`).map(e=>{let t=e.id.match(/^terminal:(\d+)/);return t?parseInt(t[1],10):0}),t=e.length>0?Math.max(...e)+1:1;c={...r,metadata:{...r.metadata,terminalIndex:t}}}let l=d(c.type,c.metadata);if(s.tabs.find(e=>e.id===l))return e(e=>({dock:{...e.dock,visible:!0},panels:{...e.panels,[n]:{...s,activeTabId:l,tabHistory:j(s.tabHistory,l)}}})),z(t),l;let u={...c,id:l},f=[...s.tabs,u],p=j(s.tabHistory,l);return e(e=>({dock:{...e.dock,visible:!0},panels:{...e.panels,[n]:{...s,tabs:f,activeTabId:l,tabHistory:p}}})),z(t),l}}function R(e,t){return function(r,i){t().moveTab(r,i,n);let{dock:a}=t();e({dock:{...a,visible:!0}}),z(t)}}function z(e){let{currentProject:t,panels:n,grid:r,focusedPanelId:a,dock:o}=e();if(!t)return;let s=new Set(r.flat()),c={};for(let[e,t]of Object.entries(n))s.has(e)&&(c[e]=t);y(t,{panels:c,grid:r,focusedPanelId:a,dock:o,dockPanel:n.__dock__??i()})}function B(e,t,n){return{...n,[e]:t}}function V(e,t){return t[e]??{visible:!1,height:30}}var H=new Set([`settings`,`git-log`]),U=new Set([`projects`,`git-status`,`git-graph`]);function W(e,t){if(!e)return null;let n=e.tabs.filter(e=>!e.projectId||e.projectId===t);if(n.length===0)return null;for(let t=e.tabHistory.length-1;t>=0;t--){let r=e.tabHistory[t];if(n.some(e=>e.id===r))return r}return n[n.length-1].id}function G(e,t){let n=e.filter(e=>e!==t);return n.push(t),n.length>50&&n.shift(),n}function K(){let e=o(),t=i();return{panels:{[e.id]:e,[n]:t},grid:[[e.id]],focusedPanelId:e.id}}var q=e()((e,t)=>{function r(){let{currentProject:e,panels:r,grid:i,focusedPanelId:a,dock:o}=t();if(!e)return;let s=new Set(i.flat()),c={};for(let[e,t]of Object.entries(r))s.has(e)&&(c[e]=t);y(e,{panels:c,grid:i,focusedPanelId:a,dock:o,dockPanel:r[n]})}function a(e){return Object.values(t().panels).find(t=>t.tabs.some(t=>t.id===e))}function u(e){return e??t().focusedPanelId}return{...K(),currentProject:null,projectGrids:{},projectFocused:{},dock:{visible:!1,height:30},projectDock:{},dockExpanded:!1,toggleDock:P(e,t),setDockVisible:F(e,t),setDockHeight:I(e,t),toggleDockExpanded:()=>e(e=>({dockExpanded:!e.dockExpanded})),openInDock:L(e,t),redockTab:R(e,t),switchProject:r=>{let{currentProject:a,panels:s,grid:c,focusedPanelId:l,projectGrids:u,projectFocused:d,dock:f,projectDock:p}=t();if(a===r)return;let m={...u},h={...d},g=a?B(a,f,p):{...p};if(a){m[a]=c,h[a]=l;let e=new Set(c.flat()),t={};for(let[n,r]of Object.entries(s))e.has(n)&&(t[n]=r);y(a,{panels:t,grid:c,focusedPanelId:l,dock:f,dockPanel:s[n]})}if(m[r]){let t=m[r],i=h[r]??t[0]?.[0]??``,a=V(r,g),o=s[n];e({currentProject:r,panels:o?{...s,[n]:{...o,activeTabId:W(o,r)}}:s,grid:t,focusedPanelId:i,projectGrids:m,projectFocused:h,dock:a,projectDock:g});return}let _=b(r);if(_&&Object.keys(_.panels).length>0){let t={};for(let[e,n]of Object.entries(_.panels)){let r=n.tabs.filter(e=>!U.has(e.type)),i=n.tabHistory.filter(e=>r.some(t=>t.id===e)),a=n.activeTabId&&r.some(e=>e.id===n.activeTabId)?n.activeTabId:i[i.length-1]??r[0]?.id??null;t[e]={...n,tabs:r,tabHistory:i,activeTabId:a}}let a=s.__dock__??i(),o=_.dockPanel??i(),c=[...a.tabs];for(let e of o.tabs)c.some(t=>t.id===e.id)||c.push(e);let l={...a,tabs:c,tabHistory:[...new Set([...a.tabHistory,...o.tabHistory])].filter(e=>c.some(t=>t.id===e)),activeTabId:null};l.activeTabId=W(l,r);let u={...s,...t,[n]:l};m[r]=_.grid,h[r]=_.focusedPanelId;let d=_.dock??V(r,g);e({currentProject:r,panels:u,grid:_.grid,focusedPanelId:_.focusedPanelId,projectGrids:m,projectFocused:h,dock:d,projectDock:g})}else{let t=o(),i=[[t.id]],a={...s,[t.id]:t};m[r]=i,h[r]=t.id;let c=V(r,g);y(r,{panels:{[t.id]:t},grid:i,focusedPanelId:t.id,dock:c,dockPanel:s[n]}),e({currentProject:r,panels:a,grid:i,focusedPanelId:t.id,projectGrids:m,projectFocused:h,dock:c,projectDock:g})}},reloadProject:r=>{let{projectGrids:i,projectFocused:a,projectDock:o,panels:s}=t(),c={...i},l={...a},u={...o};delete c[r],delete l[r],delete u[r];let d=i[r],f=d?new Set(d.flat()):new Set,p={...s};for(let e of f)e!==`__dock__`&&delete p[e];let m=p[n];if(m){let e=m.tabs.filter(e=>e.projectId!==r),t=new Set(e.map(e=>e.id));p[n]={...m,tabs:e,tabHistory:m.tabHistory.filter(e=>t.has(e)),activeTabId:m.activeTabId&&t.has(m.activeTabId)?m.activeTabId:e[e.length-1]?.id??null}}e({projectGrids:c,projectFocused:l,projectDock:u,panels:p,currentProject:null}),t().switchProject(r)},setFocusedPanel:n=>{t().panels[n]&&e({focusedPanelId:n})},openTab:(n,i)=>{let a=t().isMobile(),o=a?t().grid[0]?.[0]??u(i):u(i);if(!t().panels[o])return``;if(n.type===`terminal`&&!n.metadata?.terminalIndex){let e=Object.values(t().panels).flatMap(e=>e.tabs).filter(e=>e.type===`terminal`).map(e=>{let t=e.id.match(/^terminal:(\d+)/);return t?parseInt(t[1],10):0}),r=e.length>0?Math.max(...e)+1:1;n={...n,metadata:{...n.metadata,terminalIndex:r}}}let s=d(n.type,n.metadata);if(n.type===`chat`&&n.metadata?.sessionId){let i=n.metadata.sessionId;for(let n of Object.values(t().panels)){let t=n.tabs.find(e=>e.type===`chat`&&e.metadata?.sessionId===i);if(t)return e(e=>({focusedPanelId:n.id,panels:{...e.panels,[n.id]:{...n,activeTabId:t.id,tabHistory:G(n.tabHistory,t.id)}}})),r(),t.id}}if(H.has(n.type))for(let n of Object.values(t().panels)){let t=n.tabs.find(e=>e.id===s);if(t)return e(e=>({focusedPanelId:n.id,panels:{...e.panels,[n.id]:{...n,activeTabId:t.id,tabHistory:G(n.tabHistory,t.id)}}})),r(),t.id}if(a)for(let n of t().grid.flat()){let i=t().panels[n];if(!i)continue;let a=i.tabs.find(e=>e.id===s||e.id.startsWith(`${s}@`));if(a)return e(e=>({focusedPanelId:i.id,panels:{...e.panels,[i.id]:{...i,activeTabId:a.id,tabHistory:G(i.tabHistory,a.id)}}})),r(),a.id}let c=t().panels[o],l=c.tabs.find(e=>e.id===s);if(l)return e(e=>({panels:{...e.panels,[o]:{...c,activeTabId:l.id,tabHistory:G(c.tabHistory,l.id)}}})),r(),l.id;let f=Object.values(t().panels).some(e=>e.id!==o&&e.tabs.some(e=>e.id===s))?`${s}@${o}`:s,p={...n,id:f};return e(e=>{let t=e.panels[o];return{focusedPanelId:o,panels:{...e.panels,[o]:{...t,tabs:[...t.tabs,p],activeTabId:f,tabHistory:G(t.tabHistory,f)}}}}),r(),f},closeTab:(n,i)=>{let o=i?t().panels[i]:a(n);if(!o)return;let s=o.id;if(n.startsWith(`terminal:`)&&s!==`__dock__`){t().redockTab(n,s);return}if(n.startsWith(`terminal:`))try{localStorage.removeItem(`ppm:terminal-session:${n}`)}catch{}e(e=>{let t=e.panels[s],r=t.tabs.filter(e=>e.id!==n),i=t.tabHistory.filter(e=>e!==n),a=t.activeTabId;if(t.activeTabId===n){let e=i.length>0?i[i.length-1]:null;a=e&&r.some(t=>t.id===e)?e:r[r.length-1]?.id??null}let o=e.grid.flat().length;if(r.length===0&&o>1&&s!==`__dock__`){let{[s]:t,...n}=e.panels,r=c(e.grid,s);return{panels:n,grid:r,focusedPanelId:e.focusedPanelId===s?r.flat()[0]??Object.keys(n)[0]:e.focusedPanelId}}return{panels:{...e.panels,[s]:{...t,tabs:r,activeTabId:a,tabHistory:i}}}}),r(),s===`__dock__`&&M(t)===0&&t().setDockVisible(!1)},setActiveTab:(n,i)=>{let o=i?t().panels[i]:a(n);if(!o)return;let s=o.id;e(e=>{let t=e.panels[s];return{focusedPanelId:s,panels:{...e.panels,[s]:{...t,activeTabId:n,tabHistory:G(t.tabHistory,n)}}}}),r()},updateTab:(t,n)=>{let i=a(t);i&&(e(e=>({panels:{...e.panels,[i.id]:{...i,tabs:i.tabs.map(e=>e.id===t?{...e,...n}:e)}}})),r())},reorderTab:(n,i,a)=>{let o=t().panels[i];if(!o)return;let s=o.tabs.findIndex(e=>e.id===n);if(s===-1||s===a)return;let c=[...o.tabs],[l]=c.splice(s,1);c.splice(a,0,l),e(e=>({panels:{...e.panels,[i]:{...o,tabs:c}}})),r()},moveTab:(n,i,a,o)=>{if(i===a)return;let s=t().panels[i],l=t().panels[a];if(!s||!l)return;let u=s.tabs.find(e=>e.id===n);if(!u)return;let d=s.tabs.filter(e=>e.id!==n),f=s.tabHistory.filter(e=>e!==n),p=s.activeTabId===n?f[f.length-1]??d[d.length-1]?.id??null:s.activeTabId,m=[...l.tabs];o===void 0?m.push(u):m.splice(o,0,u),e(e=>{let t=e.grid.flat().length;if(d.length===0&&t>1&&i!==`__dock__`){let{[i]:t,...r}=e.panels;return{panels:{...r,[a]:{...l,tabs:m,activeTabId:n,tabHistory:G(l.tabHistory,n)}},grid:c(e.grid,i),focusedPanelId:a}}return{focusedPanelId:a,panels:{...e.panels,[i]:{...s,tabs:d,activeTabId:p,tabHistory:f},[a]:{...l,tabs:m,activeTabId:n,tabHistory:G(l.tabHistory,n)}}}}),r()},splitPanel:(n,i,a,u)=>{let{grid:d,panels:f}=t(),p=t().isMobile(),m=f[a];if(!m)return!1;let h=m.tabs.find(e=>e.id===i);if(!h)return!1;let g=l(d,u??a);if(!g)return!1;let _=n===`left`||n===`right`,v=n===`up`||n===`down`;if(_&&(d[g.row]?.length??0)>=s(p)||v&&d.length>=3)return!1;let y=o([h],h.id);y.tabHistory=[h.id];let b=m.tabs.filter(e=>e.id!==i),x=m.tabHistory.filter(e=>e!==i),S=m.activeTabId===i?x[x.length-1]??b[b.length-1]?.id??null:m.activeTabId,C;if(_)C=d.map((e,t)=>{if(t!==g.row)return e;let r=[...e],i=n===`right`?g.col+1:g.col;return r.splice(i,0,y.id),r});else{C=[...d];let e=n===`down`?g.row+1:g.row;C.splice(e,0,[y.id])}return e(e=>{let t=e.grid.flat().length,n={...e.panels,[y.id]:y};if(b.length===0&&t>1){let{[a]:e,...t}=n;n=t,C=c(C,a)}else n[a]={...m,tabs:b,activeTabId:S,tabHistory:x};return{panels:n,grid:C,focusedPanelId:y.id}}),r(),!0},closePanel:n=>{let{panels:i,grid:a}=t();if(a.flat().length<=1)return;let o=i[n];if(!o)return;l(a,n);let s=a.flat(),u=s.indexOf(n),d=u>0?s[u-1]:s[1],f=i[d];f&&(e(e=>{let{[n]:t,...r}=e.panels,i=[...f.tabs,...o.tabs],a=f.activeTabId??o.activeTabId;return{panels:{...r,[d]:{...f,tabs:i,activeTabId:a,tabHistory:[...f.tabHistory,...o.tabHistory]}},grid:c(e.grid,n),focusedPanelId:d}}),r())},getPanelForTab:e=>a(e),isMobile:()=>typeof window<`u`&&window.innerWidth<768}});export{u as a,l as i,n,E as o,o as r,s,q as t};