efficient-shell 4.145.0 → 4.148.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/README.md +85 -3
  2. package/dist/{Browser-24YNRTKT.js → Browser-7R3TZSJ6.js} +14 -14
  3. package/dist/{Calculator-LER6KUQC.js → Calculator-4CLXMBA4.js} +22 -22
  4. package/dist/{ConfirmDialog-GAYETRMG.js → ConfirmDialog-DUYZA2FE.js} +1 -1
  5. package/dist/{CurrencyConverter-Y35GFDFF.js → CurrencyConverter-KWNYRYOZ.js} +6 -6
  6. package/dist/{Documents-7FYX2CGT.js → Documents-ZWKLVUOC.js} +9 -9
  7. package/dist/{Files-RZOML2N6.js → Files-SLJIS2FX.js} +24 -24
  8. package/dist/{Notepad-VVDCBDUA.js → Notepad-CBP2PUQD.js} +11 -11
  9. package/dist/{PomodoroTimer-VAM3AJOX.js → PomodoroTimer-EOQDA5J7.js} +24 -24
  10. package/dist/{Preview-HZ37D7QJ.js → Preview-PFJ6NPDF.js} +14 -14
  11. package/dist/{Spreadsheet-6WX3P6AB.js → Spreadsheet-IWXGGDMT.js} +14 -14
  12. package/dist/{Stock-AUWI3TUX.js → Stock-VVM7GK4C.js} +3 -3
  13. package/dist/{Weather-HU75TH7T.js → Weather-4LJTQLDL.js} +13 -13
  14. package/dist/{WorldClock-T64MDRMJ.js → WorldClock-AHTVTAI7.js} +7 -7
  15. package/dist/apps/index.js +1 -1
  16. package/dist/brand.css +1 -1
  17. package/dist/chunk-ADTQ55CV.js +954 -0
  18. package/dist/{chunk-7DAQ3WVP.js → chunk-ET5HXDOR.js} +16 -16
  19. package/dist/{chunk-RJ4LACFH.js → chunk-JIUJNTJA.js} +1 -1
  20. package/dist/{chunk-GDSGXDET.js → chunk-L2ZO76TC.js} +1 -1
  21. package/dist/chunk-QOXIUJTN.js +29 -0
  22. package/dist/chunk-VUXPSUWI.js +1 -0
  23. package/dist/{chunk-2RHMSFZV.js → chunk-ZBIWNVJS.js} +7 -7
  24. package/dist/{index-NhR7frRu.d.ts → index-Cek0S3MH.d.ts} +101 -4
  25. package/dist/index.d.ts +2 -2
  26. package/dist/index.js +71 -71
  27. package/dist/page-tabs/index.js +13 -13
  28. package/dist/ui/index.d.ts +1 -1
  29. package/dist/ui/index.js +1 -1
  30. package/package.json +1 -1
  31. package/dist/chunk-LVFMK5OQ.js +0 -29
  32. package/dist/chunk-NBBOFQPL.js +0 -947
  33. package/dist/chunk-TWV42Q3K.js +0 -1
@@ -1,22 +1,22 @@
1
1
  "use client";
2
- import{PopupMenu as e,PopupMenuItem as t,PopupMenuDivider as n}from"../chunk-2RHMSFZV.js";import{confirm as r}from"../chunk-LVFMK5OQ.js";import"../chunk-57MIENLJ.js";import"../chunk-MAIHBBWT.js";import{useShellStrings as i}from"../chunk-TR6PLN7W.js";import{useBrowserLayoutEffect as l}from"../chunk-D65T4H6J.js";import*as a from"react";import{createContext as s,memo as o,useRef as c,useEffect as d,useMemo as u,useId as y,useCallback as f,useReducer as m,useContext as p,useState as h,Fragment as b}from"react";import{useLocation as k,useNavigate as v}from"react-router-dom";import{jsx as g,Fragment as x,jsxs as w}from"react/jsx-runtime";var N=s(null),I=s(null),K=12;var F=(e,t)=>e.filter(e=>e!==t);function T(e,t){return[...t.map(t=>e.find(e=>e.key===t)).filter(e=>Boolean(e)),...e.filter(e=>!t.includes(e.key))]}function $(e,t,n=12){const r=e.clock+1;let i;i=e.tabs.find(e=>e.key===t.key)?e.tabs.map(e=>e.key===t.key?{...e,path:t.path,title:"page"===e.titleFrom?e.title:t.title||e.title,lastActive:r}:e):[...e.tabs,{key:t.key,path:t.path,title:t.title,titleFrom:"route",pinned:!1,lastActive:r}];let l={...e,tabs:i,activeKey:t.key,mounted:(a=e.mounted,s=t.key,a.includes(s)?a:[...a,s]),clock:r};var a,s;return l.closing&&l.closing!==t.key?l=L(l,l.closing):l.closing===t.key&&(l={...l,closing:null}),function(e,t){let n=e;for(;n.tabs.length>t;){const e=n.tabs.filter(e=>!e.pinned&&e.key!==n.activeKey&&!n.dirty.includes(e.key)&&e.key!==n.closing).sort((e,t)=>e.lastActive-t.lastActive);if(0===e.length)break;n=L(n,e[0].key)}return n}(l,n)}function A(e){let t={...e,activeKey:null};return t.closing&&(t=L(t,t.closing)),t}function L(e,t){return{...e,tabs:e.tabs.filter(e=>e.key!==t),mounted:F(e.mounted,t),dirty:F(e.dirty,t),activeKey:e.activeKey===t?null:e.activeKey,closing:e.closing===t?null:e.closing}}function M(e,t){switch(t.type){case"visit":return $(e,t.entry,t.maxTabs);case"transient":return A(e);case"close":{let n=e;for(const e of t.keys)n=L(n,e);return t.closing?function(e,t){return{...e,closing:t}}(n,t.closing):n}case"title":return function(e,t,n){const r=e.tabs.find(e=>e.key===t);return!r||!n||r.title===n&&"page"===r.titleFrom?e:{...e,tabs:e.tabs.map(e=>e.key===t?{...e,title:n,titleFrom:"page"}:e)}}(e,t.key,t.title);case"dirty":return function(e,t,n){return n===e.dirty.includes(t)?e:{...e,dirty:n?[...e.dirty,t]:F(e.dirty,t)}}(e,t.key,t.dirty)}}var C=e=>`${e.pathname}${e.search}`;function j(e){const t=e.indexOf("#"),n=t>=0?e.slice(t):"",r=t>=0?e.slice(0,t):e,i=r.indexOf("?");return{pathname:i>=0?r.slice(0,i):r,search:i>=0?r.slice(i):"",hash:n}}function D({children:e,resolve:t,pinned:n=[],storageKey:a,maxTabs:s=12,enabled:o=!0,confirmDiscard:p}){const h=k(),b=v(),x=i().pageTabs,w=y(),I=c(t);I.current=t;const K=f(e=>{const t=I.current(e);return t?{key:t.key??e.pathname,path:C(e),title:t.title}:null},[]),[F,L]=m(M,void 0,()=>{const e=function(e,t){if(!e)return[];let n;try{n=JSON.parse(e)}catch{return[]}const r=n;if(!r||1!==r.v||!Array.isArray(r.tabs))return[];const i=[];for(const e of r.tabs){if(!e||"string"!=typeof e.path||!e.path.startsWith("/")||e.path.startsWith("//"))continue;const n=e.path.indexOf("#"),r=n>=0?e.path.slice(0,n):e.path,l=t(r);if(!l||i.some(e=>e.key===l.key))continue;const a="page"===e.titleFrom&&"string"==typeof e.title&&e.title;i.push({key:l.key,path:r,title:a||l.title,titleFrom:a?"page":"route",pinned:!1,lastActive:0})}return i}(function(e){if(!e)return null;try{return localStorage.getItem(e)}catch{return null}}(a),e=>K(j(e)));let t=function(e,t){const n=t.map(e=>e.key);let r=e.tabs.map(e=>({...e,pinned:n.includes(e.key)}));for(const e of t)r.some(t=>t.key===e.key)||(r=[...r,{key:e.key,path:e.path,title:e.title,titleFrom:"route",pinned:!0,lastActive:0}]);return{...e,tabs:T(r,n)}}({tabs:[],activeKey:null,mounted:[],dirty:[],closing:null,clock:0,tabs:e},n.map(e=>K(j(e))).filter(e=>Boolean(e)));const r=o?K(h):null;return t=r?$(t,r,s):A(t),t}),D=c(F);D.current=F;const O=c(/* @__PURE__ */new Map),z=o?K(h):null,E=z?.key??null;l(()=>{if(!o)return;const e=K(h);e?(O.current.set(e.key,h),L({type:"visit",entry:e,maxTabs:s})):L({type:"transient"})},[h,o,s,K]),d(()=>{const e=new Set(F.tabs.map(e=>e.key));for(const t of O.current.keys())e.has(t)||O.current.delete(t)},[F.tabs]);const B=u(()=>function(e){const t={v:1,tabs:e.tabs.filter(t=>t.key!==e.closing).map(({key:e,path:t,title:n,titleFrom:r})=>({key:e,path:t,title:n,titleFrom:r}))};return JSON.stringify(t)}(F),[F]);d(()=>{if(a)try{localStorage.setItem(a,B)}catch{}},[B,a]);const R=F.dirty.length>0;d(()=>{if(!R)return;const e=e=>{e.preventDefault(),e.returnValue=""};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[R]);const S=c(/* @__PURE__ */new Map),H=f((e,t)=>{let n=S.current.get(e);return void 0===n&&(n=S.current.size,S.current.set(e,n)),`${w}-page-${t}-${n}`},[w]),J=f(e=>p?p(e):r({title:x.discardTitle,message:1===e.length?x.discardOne:x.discardCount?.(e.length)??`${e.length} ${x.discardMany}`,confirmLabel:x.discardConfirm,cancelLabel:x.keepEditing,variant:"warning"}),[p,x]),V=f(()=>{const e=D.current;return e.tabs.find(e=>e.pinned)?.path??"/"},[]),W=f((e,t,n)=>{const r=D.current,i=r.activeKey;if(!i||!e.includes(i))return void L({type:"close",keys:e,closing:null});let l=t;if(!l){const t={...r,tabs:r.tabs.filter(t=>t.key===i||!e.includes(t.key))},a=n?r.tabs.find(t=>t.key===n&&!e.includes(t.key)):void 0;l=(a??function(e,t){const n=e.tabs.filter(n=>n.key!==e.closing||n.key===t),r=n.findIndex(e=>e.key===t);return r<0?null:n[r+1]??n[r-1]??null}(t,i))?.path??V()}L({type:"close",keys:e.filter(e=>e!==i),closing:i}),b(l)},[b,V]),_=f(async(e,t={})=>{const n=D.current.tabs.find(t=>t.key===e);return!n||n.pinned?(t.to&&b(t.to),!1):!(!t.force&&D.current.dirty.includes(e)&&!await J([n]))&&(!!D.current.tabs.some(t=>t.key===e)&&(W([e],t.to),!0))},[J,W,b]),P=f(async(e,t)=>{let n=function(e,t,n){const r=e.tabs.filter(e=>!e.pinned);if("all"===t)return r.map(e=>e.key);if("others"===t)return r.filter(e=>e.key!==n).map(e=>e.key);const i=e.tabs.findIndex(e=>e.key===n);return i<0?[]:e.tabs.slice(i+1).filter(e=>!e.pinned).map(e=>e.key)}(D.current,e,t);const r=D.current.tabs.filter(e=>n.includes(e.key)&&D.current.dirty.includes(e.key));r.length&&!await J(r)&&(n=n.filter(e=>!r.some(t=>t.key===e)));const i=new Set(D.current.tabs.map(e=>e.key));n=n.filter(e=>i.has(e)),n.length&&W(n,void 0,"all"===e?null:t)},[J,W]),Q=f(e=>{const t=D.current.tabs.find(t=>t.key===e);t&&e!==D.current.activeKey&&b(t.path)},[b]),X=f((e,t)=>L({type:"title",key:e,title:t}),[]),Y=f((e,t)=>L({type:"dirty",key:e,dirty:t}),[]),Z=f(e=>K(e)?.key??null,[K]),q=f(e=>O.current.get(e),[]),G=u(()=>o?F.tabs.filter(e=>e.key!==F.closing):[],[o,F.tabs,F.closing]),U=u(()=>({enabled:o,state:F,currentKey:E,resolve:t,keyFor:Z,locationFor:q,idFor:H,activate:Q,close:_,closeMany:P,setTitle:X,setDirty:Y,visibleTabs:G}),[o,F,E,t,Z,q,H,Q,_,P,X,Y,G]);/* @__PURE__ */
3
- return g(N.Provider,{value:U,children:e})}var O=a.Activity,z=Boolean(O);function E({active:e,children:t}){return O?/* @__PURE__ */g(O,{mode:e?"visible":"hidden",children:t}):/* @__PURE__ */g(x,{children:t})}var B=o(function({tabKey:e,active:t,location:n,render:r,className:i,panelId:a,tabId:s}){const o=c(null),y=c(t),f=c(/* @__PURE__ */new Map);l(()=>{const e=y.current;if(y.current=t,t&&!e)for(const[e,[t,n]]of f.current)e.isConnected?(e.scrollTop=t,e.scrollLeft=n):f.current.delete(e)},[t]),d(()=>{const e=o.current;if(!e)return;const t=e=>{if(!y.current)return;const t=e.target;t&&"number"==typeof t.scrollTop&&f.current.set(t,[t.scrollTop,t.scrollLeft])};return e.addEventListener("scroll",t,!0),()=>e.removeEventListener("scroll",t,!0)},[]);const m=u(()=>({key:e,activeRef:y}),[e]);/* @__PURE__ */
4
- return g("div",{ref:o,role:a?"tabpanel":void 0,id:a,"aria-labelledby":s,hidden:!t,style:t?void 0:{display:"none"},className:i,"data-page-tab":e,children:/* @__PURE__ */g(I.Provider,{value:m,children:/* @__PURE__ */g(E,{active:t,children:r(n)})})})},(e,t)=>e.active===t.active&&e.location===t.location&&e.className===t.className&&e.panelId===t.panelId&&e.tabId===t.tabId&&(!t.active||e.render===t.render)),R="\0transient";function S({children:e,frameClassName:t}){const n=p(N),r=k();if(!n||!n.enabled)/* @__PURE__ */
5
- return g("div",{className:t,children:e(r)},R);const{state:i,currentKey:l,locationFor:a,idFor:s}=n,o=i.tabs.filter(e=>i.mounted.includes(e.key)).map(e=>e.key);return l&&!o.includes(l)&&o.push(l),/* @__PURE__ */w(x,{children:[o.map(n=>{const i=n===l,o=i?r:a(n);return o?/* @__PURE__ */g(B,{tabKey:n,active:i,location:o,render:e,className:t,panelId:s(n,"panel"),tabId:s(n,"tab")},n):null}),!l&&/* @__PURE__ */g(B,{tabKey:R,active:!0,location:r,render:e,className:t},R)]})}var H="outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-blue-500";function J(){/* @__PURE__ */
6
- return g("svg",{viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",className:"size-3.5",children:/* @__PURE__ */g("path",{d:"M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z"})})}function V({className:r,activeClassName:l,end:a}){const s=p(N),o=i().pageTabs,u=c(null),[y,f]=h(null),m=s?.currentKey??null;if(d(()=>{if(!s||!m)return;const e=document.getElementById(s.idFor(m,"tab"));e?.scrollIntoView?.({block:"nearest",inline:"nearest"})},[s,m]),!s||!s.enabled)return null;const{visibleTabs:k,state:v,idFor:x,activate:I,close:K,closeMany:F,resolve:T}=s,$=k.some(e=>e.key===m)?m:k[0]?.key,A=e=>{const t=k[(e+k.length)%k.length];t&&document.getElementById(x(t.key,"tab"))?.focus()},L=y?k.find(e=>e.key===y.key):void 0,M=L?k.indexOf(L):-1,C=e=>e.some(e=>!e.pinned),D=e=>()=>{f(null),e()};/* @__PURE__ */
2
+ import{PopupMenu as e,PopupMenuItem as t,PopupMenuDivider as n}from"../chunk-ZBIWNVJS.js";import{confirm as r}from"../chunk-QOXIUJTN.js";import"../chunk-57MIENLJ.js";import"../chunk-MAIHBBWT.js";import{useShellStrings as i}from"../chunk-TR6PLN7W.js";import{useBrowserLayoutEffect as l}from"../chunk-D65T4H6J.js";import*as a from"react";import{createContext as s,memo as o,useRef as c,useEffect as d,useMemo as u,useId as y,useCallback as f,useReducer as m,useContext as p,useState as h,Fragment as b}from"react";import{useLocation as k,useNavigate as v}from"react-router-dom";import{jsx as g,Fragment as x,jsxs as w}from"react/jsx-runtime";var N=s(null),I=s(null),K=12;var T=(e,t)=>e.filter(e=>e!==t);function F(e,t){return[...t.map(t=>e.find(e=>e.key===t)).filter(e=>Boolean(e)),...e.filter(e=>!t.includes(e.key))]}function $(e,t,n=12){const r=e.clock+1;let i;i=e.tabs.find(e=>e.key===t.key)?e.tabs.map(e=>e.key===t.key?{...e,path:t.path,title:"page"===e.titleFrom?e.title:t.title||e.title,lastActive:r}:e):[...e.tabs,{key:t.key,path:t.path,title:t.title,titleFrom:"route",pinned:!1,lastActive:r}];let l={...e,tabs:i,activeKey:t.key,mounted:(a=e.mounted,s=t.key,a.includes(s)?a:[...a,s]),clock:r};var a,s;return l.closing&&l.closing!==t.key?l=C(l,l.closing):l.closing===t.key&&(l={...l,closing:null}),function(e,t){let n=e;for(;n.tabs.length>t;){const e=n.tabs.filter(e=>!e.pinned&&e.key!==n.activeKey&&!n.dirty.includes(e.key)&&e.key!==n.closing).sort((e,t)=>e.lastActive-t.lastActive);if(0===e.length)break;n=C(n,e[0].key)}return n}(l,n)}function A(e){let t={...e,activeKey:null};return t.closing&&(t=C(t,t.closing)),t}function C(e,t){return{...e,tabs:e.tabs.filter(e=>e.key!==t),mounted:T(e.mounted,t),dirty:T(e.dirty,t),activeKey:e.activeKey===t?null:e.activeKey,closing:e.closing===t?null:e.closing}}function L(e,t){switch(t.type){case"visit":return $(e,t.entry,t.maxTabs);case"transient":return A(e);case"close":{let n=e;for(const e of t.keys)n=C(n,e);return t.closing?function(e,t){return{...e,closing:t}}(n,t.closing):n}case"title":return function(e,t,n){const r=e.tabs.find(e=>e.key===t);return!r||!n||r.title===n&&"page"===r.titleFrom?e:{...e,tabs:e.tabs.map(e=>e.key===t?{...e,title:n,titleFrom:"page"}:e)}}(e,t.key,t.title);case"dirty":return function(e,t,n){return n===e.dirty.includes(t)?e:{...e,dirty:n?[...e.dirty,t]:T(e.dirty,t)}}(e,t.key,t.dirty)}}var M=e=>`${e.pathname}${e.search}`;function j(e){const t=e.indexOf("#"),n=t>=0?e.slice(t):"",r=t>=0?e.slice(0,t):e,i=r.indexOf("?");return{pathname:i>=0?r.slice(0,i):r,search:i>=0?r.slice(i):"",hash:n}}function D({children:e,resolve:t,pinned:n=[],storageKey:a,maxTabs:s=12,enabled:o=!0,confirmDiscard:p}){const h=k(),b=v(),x=i().pageTabs,w=y(),I=c(t);I.current=t;const K=f(e=>{const t=I.current(e);return t?{key:t.key??e.pathname,path:M(e),title:t.title}:null},[]),[T,C]=m(L,void 0,()=>{const e=function(e,t){if(!e)return[];let n;try{n=JSON.parse(e)}catch{return[]}const r=n;if(!r||1!==r.v||!Array.isArray(r.tabs))return[];const i=[];for(const e of r.tabs){if(!e||"string"!=typeof e.path||!e.path.startsWith("/")||e.path.startsWith("//"))continue;const n=e.path.indexOf("#"),r=n>=0?e.path.slice(0,n):e.path,l=t(r);if(!l||i.some(e=>e.key===l.key))continue;const a="page"===e.titleFrom&&"string"==typeof e.title&&e.title;i.push({key:l.key,path:r,title:a||l.title,titleFrom:a?"page":"route",pinned:!1,lastActive:0})}return i}(function(e){if(!e)return null;try{return localStorage.getItem(e)}catch{return null}}(a),e=>K(j(e)));let t=function(e,t){const n=t.map(e=>e.key);let r=e.tabs.map(e=>({...e,pinned:n.includes(e.key)}));for(const e of t)r.some(t=>t.key===e.key)||(r=[...r,{key:e.key,path:e.path,title:e.title,titleFrom:"route",pinned:!0,lastActive:0}]);return{...e,tabs:F(r,n)}}({tabs:[],activeKey:null,mounted:[],dirty:[],closing:null,clock:0,tabs:e},n.map(e=>K(j(e))).filter(e=>Boolean(e)));const r=o?K(h):null;return t=r?$(t,r,s):A(t),t}),D=c(T);D.current=T;const O=c(/* @__PURE__ */new Map),z=o?K(h):null,B=z?.key??null;l(()=>{if(!o)return;const e=K(h);e?(O.current.set(e.key,h),C({type:"visit",entry:e,maxTabs:s})):C({type:"transient"})},[h,o,s,K]),d(()=>{const e=new Set(T.tabs.map(e=>e.key));for(const t of O.current.keys())e.has(t)||O.current.delete(t)},[T.tabs]);const E=u(()=>function(e){const t={v:1,tabs:e.tabs.filter(t=>t.key!==e.closing).map(({key:e,path:t,title:n,titleFrom:r})=>({key:e,path:t,title:n,titleFrom:r}))};return JSON.stringify(t)}(T),[T]);d(()=>{if(a)try{localStorage.setItem(a,E)}catch{}},[E,a]);const R=T.dirty.length>0;d(()=>{if(!R)return;const e=e=>{e.preventDefault(),e.returnValue=""};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[R]);const S=c(/* @__PURE__ */new Map),J=f((e,t)=>{let n=S.current.get(e);return void 0===n&&(n=S.current.size,S.current.set(e,n)),`${w}-page-${t}-${n}`},[w]),W=f(e=>p?p(e):r({title:x.discardTitle,message:1===e.length?x.discardOne:x.discardCount?.(e.length)??`${e.length} ${x.discardMany}`,confirmLabel:x.discardConfirm,cancelLabel:x.keepEditing,variant:"warning"}),[p,x]),_=f(()=>{const e=D.current;return e.tabs.find(e=>e.pinned)?.path??"/"},[]),H=f((e,t,n)=>{const r=D.current,i=r.activeKey;if(!i||!e.includes(i))return void C({type:"close",keys:e,closing:null});let l=t;if(!l){const t={...r,tabs:r.tabs.filter(t=>t.key===i||!e.includes(t.key))},a=n?r.tabs.find(t=>t.key===n&&!e.includes(t.key)):void 0;l=(a??function(e,t){const n=e.tabs.filter(n=>n.key!==e.closing||n.key===t),r=n.findIndex(e=>e.key===t);return r<0?null:n[r+1]??n[r-1]??null}(t,i))?.path??_()}C({type:"close",keys:e.filter(e=>e!==i),closing:i}),b(l)},[b,_]),P=f(async(e,t={})=>{const n=D.current.tabs.find(t=>t.key===e);return!n||n.pinned?(t.to&&b(t.to),!1):!(!t.force&&D.current.dirty.includes(e)&&!await W([n]))&&(!!D.current.tabs.some(t=>t.key===e)&&(H([e],t.to),!0))},[W,H,b]),V=f(async(e,t)=>{let n=function(e,t,n){const r=e.tabs.filter(e=>!e.pinned);if("all"===t)return r.map(e=>e.key);if("others"===t)return r.filter(e=>e.key!==n).map(e=>e.key);const i=e.tabs.findIndex(e=>e.key===n);return i<0?[]:e.tabs.slice(i+1).filter(e=>!e.pinned).map(e=>e.key)}(D.current,e,t);const r=D.current.tabs.filter(e=>n.includes(e.key)&&D.current.dirty.includes(e.key));r.length&&!await W(r)&&(n=n.filter(e=>!r.some(t=>t.key===e)));const i=new Set(D.current.tabs.map(e=>e.key));n=n.filter(e=>i.has(e)),n.length&&H(n,void 0,"all"===e?null:t)},[W,H]),X=f(e=>{const t=D.current.tabs.find(t=>t.key===e);t&&e!==D.current.activeKey&&b(t.path)},[b]),Q=f((e,t)=>C({type:"title",key:e,title:t}),[]),U=f((e,t)=>C({type:"dirty",key:e,dirty:t}),[]),Y=f(e=>K(e)?.key??null,[K]),Z=f(e=>O.current.get(e),[]),q=u(()=>o?T.tabs.filter(e=>e.key!==T.closing):[],[o,T.tabs,T.closing]),G=u(()=>({enabled:o,state:T,currentKey:B,resolve:t,keyFor:Y,locationFor:Z,idFor:J,activate:X,close:P,closeMany:V,setTitle:Q,setDirty:U,visibleTabs:q}),[o,T,B,t,Y,Z,J,X,P,V,Q,U,q]);/* @__PURE__ */
3
+ return g(N.Provider,{value:G,children:e})}var O=a.Activity,z=Boolean(O);function B({active:e,children:t}){return O?/* @__PURE__ */g(O,{mode:e?"visible":"hidden",children:t}):/* @__PURE__ */g(x,{children:t})}var E=o(function({tabKey:e,active:t,location:n,render:r,className:i,panelId:a,tabId:s}){const o=c(null),y=c(t),f=c(/* @__PURE__ */new Map);l(()=>{const e=y.current;if(y.current=t,t&&!e)for(const[e,[t,n]]of f.current)e.isConnected?(e.scrollTop=t,e.scrollLeft=n):f.current.delete(e)},[t]),d(()=>{const e=o.current;if(!e)return;const t=e=>{if(!y.current)return;const t=e.target;t&&"number"==typeof t.scrollTop&&f.current.set(t,[t.scrollTop,t.scrollLeft])};return e.addEventListener("scroll",t,!0),()=>e.removeEventListener("scroll",t,!0)},[]);const m=u(()=>({key:e,activeRef:y}),[e]);/* @__PURE__ */
4
+ return g("div",{ref:o,role:a?"tabpanel":void 0,id:a,"aria-labelledby":s,hidden:!t,style:t?void 0:{display:"none"},className:i,"data-page-tab":e,children:/* @__PURE__ */g(I.Provider,{value:m,children:/* @__PURE__ */g(B,{active:t,children:r(n)})})})},(e,t)=>e.active===t.active&&e.location===t.location&&e.className===t.className&&e.panelId===t.panelId&&e.tabId===t.tabId&&(!t.active||e.render===t.render)),R="\0transient";function S({children:e,frameClassName:t}){const n=p(N),r=k();if(!n||!n.enabled)/* @__PURE__ */
5
+ return g("div",{className:t,children:e(r)},R);const{state:i,currentKey:l,locationFor:a,idFor:s}=n,o=i.tabs.filter(e=>i.mounted.includes(e.key)).map(e=>e.key);return l&&!o.includes(l)&&o.push(l),/* @__PURE__ */w(x,{children:[o.map(n=>{const i=n===l,o=i?r:a(n);return o?/* @__PURE__ */g(E,{tabKey:n,active:i,location:o,render:e,className:t,panelId:s(n,"panel"),tabId:s(n,"tab")},n):null}),!l&&/* @__PURE__ */g(E,{tabKey:R,active:!0,location:r,render:e,className:t},R)]})}var J="outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-blue-500";function W(){/* @__PURE__ */
6
+ return g("svg",{viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",className:"size-3.5",children:/* @__PURE__ */g("path",{d:"M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z"})})}function _({className:r,activeClassName:l,end:a}){const s=p(N),o=i().pageTabs,u=c(null),[y,f]=h(null),m=s?.currentKey??null;if(d(()=>{if(!s||!m)return;const e=document.getElementById(s.idFor(m,"tab"));e?.scrollIntoView?.({block:"nearest",inline:"nearest"})},[s,m]),!s||!s.enabled)return null;const{visibleTabs:k,state:v,idFor:x,activate:I,close:K,closeMany:T,resolve:F}=s,$=k.some(e=>e.key===m)?m:k[0]?.key,A=e=>{const t=k[(e+k.length)%k.length];t&&document.getElementById(x(t.key,"tab"))?.focus()},C=y?k.find(e=>e.key===y.key):void 0,L=C?k.indexOf(C):-1,M=e=>e.some(e=>!e.pinned),D=e=>()=>{f(null),e()};/* @__PURE__ */
7
7
  return w("div",{className:r??"relative flex h-10 shrink-0 items-end gap-3 bg-gray-100 px-3",children:[
8
8
  /* @__PURE__ */g("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 bottom-0 h-px bg-gray-200"}),
9
- /* @__PURE__ */g("div",{ref:u,role:"tablist","aria-label":o.label,onKeyDown:e=>{const t=k.findIndex(t=>document.getElementById(x(t.key,"tab"))===e.target);if(!(t<0)){if("ArrowRight"===e.key)A(t+1);else if("ArrowLeft"===e.key)A(t-1);else if("Home"===e.key)A(0);else if("End"===e.key)A(k.length-1);else{if("Delete"!==e.key||k[t].pinned)return;K(k[t].key)}e.preventDefault()}},className:"flex min-w-0 flex-1 items-end overflow-x-auto overflow-y-hidden [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",children:k.map((e,t)=>{const n=e.key===m,r=v.dirty.includes(e.key),i=T(j(e.path))?.icon,a=n?l??"z-[1] border-gray-200 bg-gray-50 text-gray-900":"border-transparent text-gray-600 hover:bg-gray-200/70 hover:text-gray-900",s=t>0&&!n&&k[t-1].key!==m,c={type:"button",role:"tab",id:x(e.key,"tab"),"aria-selected":n,"aria-controls":v.mounted.includes(e.key)?x(e.key,"panel"):void 0,tabIndex:e.key===$?0:-1,title:e.title,onClick:()=>I(e.key)},d={onContextMenu:t=>((e,t)=>{e.preventDefault(),f({x:e.clientX,y:e.clientY,key:t.key})})(t,e),onAuxClick:t=>((e,t)=>{1!==e.button||t.pinned||(e.preventDefault(),K(t.key))})(t,e),onMouseDown:e=>{1===e.button&&e.preventDefault()}},u=i&&
9
+ /* @__PURE__ */g("div",{ref:u,role:"tablist","aria-label":o.label,onKeyDown:e=>{const t=k.findIndex(t=>document.getElementById(x(t.key,"tab"))===e.target);if(!(t<0)){if("ArrowRight"===e.key)A(t+1);else if("ArrowLeft"===e.key)A(t-1);else if("Home"===e.key)A(0);else if("End"===e.key)A(k.length-1);else{if("Delete"!==e.key||k[t].pinned)return;K(k[t].key)}e.preventDefault()}},className:"flex min-w-0 flex-1 items-end overflow-x-auto overflow-y-hidden [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",children:k.map((e,t)=>{const n=e.key===m,r=v.dirty.includes(e.key),i=F(j(e.path))?.icon,a=n?l??"z-[1] border-gray-200 bg-gray-50 text-gray-900":"border-transparent text-gray-600 hover:bg-gray-200/70 hover:text-gray-900",s=t>0&&!n&&k[t-1].key!==m,c={type:"button",role:"tab",id:x(e.key,"tab"),"aria-selected":n,"aria-controls":v.mounted.includes(e.key)?x(e.key,"panel"):void 0,tabIndex:e.key===$?0:-1,title:e.title,onClick:()=>I(e.key)},d={onContextMenu:t=>((e,t)=>{e.preventDefault(),f({x:e.clientX,y:e.clientY,key:t.key})})(t,e),onAuxClick:t=>((e,t)=>{1!==e.button||t.pinned||(e.preventDefault(),K(t.key))})(t,e),onMouseDown:e=>{1===e.button&&e.preventDefault()}},u=i&&
10
10
  /* @__PURE__ */w("span",{className:"relative flex size-4 shrink-0 items-center justify-center text-gray-500 [&>svg]:size-4","aria-hidden":"true",children:[i,r&&!n&&!e.pinned&&
11
- /* @__PURE__ */g("span",{className:"absolute -right-1 -top-1 hidden size-2 rounded-full bg-gray-500 ring-2 ring-gray-100 @max-[6.5rem]:block @max-[6.5rem]:group-hover:hidden"})]});return e.pinned?/* @__PURE__ */g("div",{role:"presentation",className:`group relative flex h-9 flex-none items-center justify-center rounded-t-md border border-b-0 transition-colors ${i?"w-10":""} ${a}`,...d,children:/* @__PURE__ */w("button",{...c,className:`flex h-full items-center justify-center rounded-t-md ${i?"w-full":"px-3"} ${H}`,children:[u,
11
+ /* @__PURE__ */g("span",{className:"absolute -right-1 -top-1 hidden size-2 rounded-full bg-gray-500 ring-2 ring-gray-100 @max-[6.5rem]:block @max-[6.5rem]:group-hover:hidden"})]});return e.pinned?/* @__PURE__ */g("div",{role:"presentation",className:`group relative flex h-9 flex-none items-center justify-center rounded-t-md border border-b-0 transition-colors ${i?"w-10":""} ${a}`,...d,children:/* @__PURE__ */w("button",{...c,className:`flex h-full items-center justify-center rounded-t-md ${i?"w-full":"px-3"} ${J}`,children:[u,
12
12
  /* @__PURE__ */g("span",{className:i?"sr-only":"whitespace-nowrap text-[13px]",children:e.title})]})},e.key):/* @__PURE__ */w(b,{children:[s&&/* @__PURE__ */g("span",{"aria-hidden":"true",className:"mb-2.5 h-4 w-px shrink-0 self-end border-l border-gray-300"}),
13
13
  /* @__PURE__ */w("div",{role:"presentation",className:`group @container relative flex h-9 flex-[0_1_15rem] items-center rounded-t-md border border-b-0 text-[13px] transition-colors ${n?"min-w-[4.25rem]":"min-w-[2.75rem]"} ${a}`,...d,children:[
14
- /* @__PURE__ */w("button",{...c,className:`flex h-full min-w-0 flex-1 items-center gap-2 rounded-t-md pl-3 pr-1 text-left ${H} ${n?"@max-[5rem]:pl-2.5":"@max-[6.5rem]:pr-3 @max-[6.5rem]:group-hover:pr-1 @max-[4.5rem]:justify-center @max-[4.5rem]:px-0 @max-[4.5rem]:group-hover:pl-1.5"}`,children:[u,
14
+ /* @__PURE__ */w("button",{...c,className:`flex h-full min-w-0 flex-1 items-center gap-2 rounded-t-md pl-3 pr-1 text-left ${J} ${n?"@max-[5rem]:pl-2.5":"@max-[6.5rem]:pr-3 @max-[6.5rem]:group-hover:pr-1 @max-[4.5rem]:justify-center @max-[4.5rem]:px-0 @max-[4.5rem]:group-hover:pl-1.5"}`,children:[u,
15
15
  /* @__PURE__ */g("span",{className:"min-w-0 flex-1 overflow-hidden whitespace-nowrap [mask-image:linear-gradient(to_right,#000_calc(100%-1rem),transparent)] "+(i?n?"@max-[5rem]:sr-only":"@max-[4.5rem]:sr-only":""),children:e.title})]}),
16
16
  /* @__PURE__ */w("span",{className:"mr-1.5 flex size-5 shrink-0 items-center justify-center "+(n?"":"@max-[6.5rem]:hidden @max-[6.5rem]:group-hover:flex"),children:[r&&/* @__PURE__ */g("span",{role:"img","aria-label":o.unsaved,className:"size-2 rounded-full bg-gray-500 group-hover:hidden"}),
17
- /* @__PURE__ */g("button",{type:"button",tabIndex:-1,"aria-label":o.closeTab?.(e.title)??`${o.close} ${e.title}`,onClick:()=>{K(e.key)},className:"size-5 items-center justify-center rounded text-gray-400 hover:bg-gray-200 hover:text-gray-700 "+(r?"hidden group-hover:flex":n?"flex":"flex opacity-0 group-hover:opacity-100 focus-visible:opacity-100"),children:/* @__PURE__ */g(J,{})})]})]})]},e.key)})}),a&&/* @__PURE__ */g("div",{className:"flex shrink-0 items-center gap-2 self-center",children:a}),y&&L&&/* @__PURE__ */w(e,{portal:!0,style:{left:y.x,top:y.y},onClose:()=>f(null),children:[
18
- /* @__PURE__ */g(t,{disabled:L.pinned,onClick:D(()=>K(L.key)),children:o.close}),
17
+ /* @__PURE__ */g("button",{type:"button",tabIndex:-1,"aria-label":o.closeTab?.(e.title)??`${o.close} ${e.title}`,onClick:()=>{K(e.key)},className:"size-5 items-center justify-center rounded text-gray-400 hover:bg-gray-200 hover:text-gray-700 "+(r?"hidden group-hover:flex":n?"flex":"flex opacity-0 group-hover:opacity-100 focus-visible:opacity-100"),children:/* @__PURE__ */g(W,{})})]})]})]},e.key)})}),a&&/* @__PURE__ */g("div",{className:"flex shrink-0 items-center gap-2 self-center",children:a}),y&&C&&/* @__PURE__ */w(e,{portal:!0,style:{left:y.x,top:y.y},onClose:()=>f(null),children:[
18
+ /* @__PURE__ */g(t,{disabled:C.pinned,onClick:D(()=>K(C.key)),children:o.close}),
19
19
  /* @__PURE__ */g(n,{}),
20
- /* @__PURE__ */g(t,{disabled:!C(k.filter(e=>e.key!==L.key)),onClick:D(()=>F("others",L.key)),children:o.closeOthers}),
21
- /* @__PURE__ */g(t,{disabled:!C(k.slice(M+1)),onClick:D(()=>F("right",L.key)),children:o.closeRight}),
22
- /* @__PURE__ */g(t,{disabled:!C(k),onClick:D(()=>F("all",null)),children:o.closeAll})]})]})}var W={enabled:!1,tabs:[],activeKey:null,activate:()=>{},close:async()=>!1,closeOthers:async()=>{},closeRight:async()=>{},closeAll:async()=>{}};function _(){const e=p(N);return e&&e.enabled?{enabled:!0,tabs:e.visibleTabs,activeKey:e.currentKey,activate:e.activate,close:e.close,closeOthers:t=>e.closeMany("others",t),closeRight:t=>e.closeMany("right",t),closeAll:()=>e.closeMany("all",null)}:W}function P(){const e=p(N),t=p(I),n=v();return{key:e?.enabled&&t?t.key:null,close:f(async(r={})=>e?.enabled&&t&&e.state.tabs.some(e=>e.key===t.key)?e.close(t.key,r):(r.to&&n(r.to),!1),[e,t,n])}}function Q(e){const t=p(N),n=p(I),r=t?.enabled?t.setTitle:void 0,i=n?.key;d(()=>{r&&i&&e&&r(i,e)},[r,i,e])}function X(e){const t=p(N),n=p(I),r=t?.enabled?t.setDirty:void 0;d(()=>{if(r&&n)return r(n.key,e),()=>{n.activeRef.current&&r(n.key,!1)}},[r,n,e])}export{K as DEFAULT_MAX_TABS,z as PAGE_TABS_PAUSE_HIDDEN,V as PageTabBar,S as PageTabsOutlet,D as PageTabsProvider,j as parseTabPath,P as usePageTab,X as usePageTabDirty,Q as usePageTabTitle,_ as usePageTabs};
20
+ /* @__PURE__ */g(t,{disabled:!M(k.filter(e=>e.key!==C.key)),onClick:D(()=>T("others",C.key)),children:o.closeOthers}),
21
+ /* @__PURE__ */g(t,{disabled:!M(k.slice(L+1)),onClick:D(()=>T("right",C.key)),children:o.closeRight}),
22
+ /* @__PURE__ */g(t,{disabled:!M(k),onClick:D(()=>T("all",null)),children:o.closeAll})]})]})}var H={enabled:!1,tabs:[],activeKey:null,activate:()=>{},close:async()=>!1,closeOthers:async()=>{},closeRight:async()=>{},closeAll:async()=>{}};function P(){const e=p(N);return e&&e.enabled?{enabled:!0,tabs:e.visibleTabs,activeKey:e.currentKey,activate:e.activate,close:e.close,closeOthers:t=>e.closeMany("others",t),closeRight:t=>e.closeMany("right",t),closeAll:()=>e.closeMany("all",null)}:H}function V(){const e=p(N),t=p(I),n=v();return{key:e?.enabled&&t?t.key:null,close:f(async(r={})=>e?.enabled&&t&&e.state.tabs.some(e=>e.key===t.key)?e.close(t.key,r):(r.to&&n(r.to),!1),[e,t,n])}}function X(e){const t=p(N),n=p(I),r=t?.enabled?t.setTitle:void 0,i=n?.key;d(()=>{r&&i&&e&&r(i,e)},[r,i,e])}function Q(e){const t=p(N),n=p(I),r=t?.enabled?t.setDirty:void 0;d(()=>{if(r&&n)return r(n.key,e),()=>{n.activeRef.current&&r(n.key,!1)}},[r,n,e])}export{K as DEFAULT_MAX_TABS,z as PAGE_TABS_PAUSE_HIDDEN,_ as PageTabBar,S as PageTabsOutlet,D as PageTabsProvider,j as parseTabPath,V as usePageTab,Q as usePageTabDirty,X as usePageTabTitle,P as usePageTabs};
@@ -1,4 +1,4 @@
1
- export { A as ALT, b as ALT_SHIFT_D, c as ALT_SHIFT_E, d as ALT_SHIFT_N, e as APP_UPDATE_POLL_MS, f as Accordion, g as AccordionItem, h as AccordionProps, i as Align, j as AngleScale, k as AppUpdateBanner, l as AppUpdateBannerProps, m as AttachButton, n as AttachButtonProps, o as AttachmentDropZone, p as AttachmentDropZoneProps, q as AttachmentList, r as AttachmentListProps, s as AuthScreen, t as AuthScreenProps, u as Avatar, v as AvatarGroup, w as AvatarGroupProps, x as AvatarProps, y as AvatarSize, z as AvatarStatus, B as BackgroundVariant, D as BandScale, E as Banner, F as BannerEmphasis, G as BannerProps, H as BannerTone, I as BarChart, J as BarChartProps, K as BoxPlotBox, L as BoxPlotChart, M as BoxPlotChartProps, N as BrandAssetEditor, O as BrandAssetEditorProps, Q as BrandAssetPreview, R as BrandMark, T as BrandMarkProps, U as BrandMarkSlot, V as BrandMarkSurface, W as BrandMarkTreatment, X as BreadcrumbItem, Y as Breadcrumbs, Z as BreadcrumbsProps, _ as BudgetBar, $ as BudgetBarProps, a0 as BudgetState, a1 as Button, a2 as ButtonClassesOptions, a3 as ButtonProps, a4 as ButtonSize, a5 as ButtonVariant, a6 as CHART_INK, a7 as CMD_A, a8 as CMD_DOT, a9 as CMD_ENTER, aa as CMD_K, ab as CMD_S, ac as Calendar, ad as CalendarMode, ae as CalendarProps, af as Candle, ag as CandlestickChart, ah as CandlestickChartProps, ai as Card, aj as CardPadding, ak as CardProps, al as CartesianPlot, am as CartesianPlotProps, an as CellStyle, ao as ChartBackgroundVariant, ap as ChartBrush, aq as ChartBrushProps, ar as ChartCurve, as as ChartDefs, at as ChartDefsProps, au as ChartDot, av as ChartDotProps, aw as ChartDotVariant, ax as ChartFillVariant, ay as ChartFrame, az as ChartFrameProps, aA as ChartHighlightProvider, aB as ChartLegendEntry, aC as ChartLegendSwatch, aD as ChartRange, aE as ChartReferenceLine, aF as ChartRevealDirection, aG as ChartSkeleton, aH as ChartSkeletonProps, aI as ChartStatusTone, aJ as ChartStrokeVariant, aK as ChartTooltip, aL as ChartTooltipProps, aM as ChartTooltipRow, aN as ChatTemplate, aO as Checkbox, aP as CheckboxProps, aQ as CheckoutTemplate, aR as ChordChart, aS as ChordChartProps, aT as ColoredBadge, aU as ColoredBadgeProps, aV as ColumnChart, aW as ColumnChartProps, C as ColumnDef, aX as ColumnSeries, aY as ComposerAttachments, aZ as ComposerAttachmentsProps, a_ as ConfirmProvider, a$ as ContainerFillChart, b0 as ContainerFillChartProps, b1 as ContainerFillItem, b2 as CountBadge, b3 as CountBadgeProps, b4 as CountBadgeTone, b5 as Curve, b6 as DAY_MS, b7 as DEFAULT_SHELL_STRINGS, b8 as DashboardTemplate, b9 as DataTable, ba as DataTableColumn, bb as DataTableColumnGroup, bc as DataTableHeader, bd as DataTablePage, be as DataTableProps, bf as DataTableRowProps, bg as DatePicker, bh as DatePickerProps, bi as DateRangePicker, bj as DateRangePickerProps, bk as DateTimePicker, bl as DateTimePickerProps, bm as DescriptionColumns, bn as DescriptionItem, bo as DescriptionList, bp as DescriptionListProps, bq as Dialog, br as DialogProps, bs as DialogSize, bt as Divider, bu as DividerProps, bv as DividerSpacing, bw as DonutChart, bx as DonutChartProps, by as DonutSegment, bz as Drawer, bA as DrawerProps, bB as DrawerSide, bC as DrawerSize, bD as DropdownMenu, bE as DropdownMenuAlign, bF as DropdownMenuDividerItem, bG as DropdownMenuEntry, bH as DropdownMenuItem, bI as DropdownMenuLabelItem, bJ as DropdownMenuLinkItem, bK as DropdownMenuProps, bL as DropdownMenuRadioItem, bM as DropdownMenuSide, bN as DropdownPositionOptions, bO as ENTER, bP as EditableGrid, bQ as EditableGridProps, bR as EmailTemplate, bS as EmptyState, bT as EmptyStateProps, bU as ErrorBoundary, bV as ErrorBoundaryProps, bW as ErrorPage, bX as ErrorPageProps, bY as FileIntake, bZ as FilePicker, b_ as FilePickerProps, b$ as FillVariant, c0 as FormError, c1 as FormErrorSummary, c2 as FormErrorSummaryProps, c3 as FormField, c4 as FormFieldProps, c5 as FormLayoutPage, c6 as FormatDateOptions, c7 as FunnelChart, c8 as FunnelChartProps, c9 as FunnelStage, ca as GLASS_DIVIDER, cc as GROUP_COLORS, cd as GROUP_COLORS_SOLID, ce as GalleryTemplate, cf as Gap, cg as GlobalSearch, ch as GlobalSearchProps, ci as Grid, cj as GridCols, ck as GridColumn, cl as GridProps, cm as HeatmapChart, cn as HeatmapChartProps, co as HelpCenter, cp as HelpCenterDoc, cq as HelpCenterProps, cr as HistogramBin, cs as HistogramChart, ct as HistogramChartProps, cu as INPUT_BASE, cv as INPUT_SIZES, cw as IconButton, cx as IconButtonClassesOptions, cy as IconButtonProps, cz as Inline, cA as InlineProps, cB as Input, cC as InputNumber, cD as InputNumberProps, cE as InputProps, cF as InputSize, cG as Justify, cH as Kanban, cI as KanbanColumn, cJ as KanbanProps, cK as Kbd, cL as KbdProps, cM as KbdSize, cN as Label, cO as LabelProps, cP as LadderScale, cQ as LineChart, cR as LineChartProps, cS as LineChartSeries, cT as LinearScale, cU as ListFooter, cV as ListLoadError, cW as ListLoadErrorProps, cX as LoadingSpinner, cY as LoadingSpinnerProps, cZ as MAX_FRACTION_DIGITS, c_ as MENU_MAX_HEIGHT, c$ as MOD, d0 as MOTION, d1 as Markdown, d1 as MarkdownLite, d2 as MarkdownLiteProps, d2 as MarkdownProps, d3 as MediaUploadField, d4 as MediaUploadFieldProps, d5 as MediaUploadGrid, d6 as MediaUploadGridItem, d7 as MediaUploadGridProps, d8 as MenuPos, d9 as Meter, da as MeterProps, db as MetricBar, dc as MetricBarProps, dd as Milestone, de as MilestoneKind, df as MilestoneTimeline, dg as MilestoneTimelineProps, dh as NEXT_CHUNK_PATH_PREFIX, di as NativeSelect, dj as NumericKeypad, dk as NumericKeypadProps, dl as OVERLAY_OPEN_EVENT, dm as POPUP_MAX_WIDTH, dn as POST_PRODUCTION_STATUSES, dp as PageHeader, dq as PageHeaderProps, P as PaginatedResponse, dr as Pagination, ds as PaginationProps, dt as PaperclipGlyph, du as Paragraph, dv as ParagraphProps, dw as PieChart, dx as PieChartProps, dy as PieSegment, dz as PlotGeometry, dA as Point, dB as PopupMenu, dC as PopupMenuDivider, dD as PopupMenuItem, dE as PopupMenuItemProps, dF as PopupMenuLabel, dG as PopupMenuProps, dH as PopupSubmenu, dI as PopupSubmenuProps, dJ as PortalBrandingContextValue, dK as PortalBrandingProvider, dL as PortalBrandingProviderProps, dM as ProductionTimeline, dN as ProductionTimelineProps, dO as ProductionTimelineSnapshot, dP as ProgressItem, dQ as PublicPortal, dR as PublicPortalBranding, dS as RADAR_SERIES_CAP, dT as RadarAxis, dU as RadarChart, dV as RadarChartProps, dW as RadarSeries, dX as RadialBarChart, dY as RadialBarChartProps, dZ as RadialBarRow, d_ as Radio, d$ as RadioGroup, e0 as RadioGroupOption, e1 as RadioGroupOrientation, e2 as RadioGroupProps, e3 as RadioProps, e4 as Range, e5 as RangeChart, e6 as RangeChartProps, e7 as RangeRow, e8 as RankedBars, e9 as RankedBarsProps, ea as RankedBarsRow, eb as ResolvedPortalBrandAsset, ec as Result, ed as ResultProps, ee as ResultStatus, ef as RevealDirection, eg as SCATTER_SERIES_CAP, eh as SERIES_SLOT_COUNT, ei as SERIES_VARS, ej as SHIFT, ek as STAGES, el as STALE_CHUNK_RELOAD_COOLDOWN_MS, em as STALE_CHUNK_RELOAD_KEY, en as STATUS_VARS, eo as SankeyChart, ep as SankeyChartProps, eq as SankeyLink, er as SankeyNode, es as ScatterChart, et as ScatterChartProps, eu as ScatterPoint, ev as ScatterSeries, S as SearchConfig, ew as SearchProvider, ex as SearchResult, ey as SearchableOption, ez as SearchableSelect, eA as SearchableSelectProps, eB as Segmented, eC as SegmentedOption, eD as SegmentedProps, eE as SegmentedSize, eF as Select, eG as SelectOption, eH as SelectProps, eI as SemanticGroup, eJ as SettingRow, eK as SettingRowProps, eL as SeverityTone, eM as ShellPrefsAdapter, eN as ShellPrefsProvider, eO as ShellStrings, eP as ShellStringsOverride, eQ as ShellStringsProvider, eR as SidebarActionButton, eS as SidebarActionButtonProps, eT as SidebarGroupLabel, eU as SidebarLayout, eV as SidebarLayoutProps, eW as SidebarNavItem, eX as SidebarNavItemProps, eY as Skeleton, eZ as SkeletonProps, e_ as SkeletonVariant, e$ as Snippet, f0 as SnippetProps, f1 as SnippetSize, f2 as SnippetVariant, a as SortState, f3 as Sparkline, f4 as SparklineProps, f5 as Stack, f6 as StackProps, f7 as StaleChunkReloadOptions, f8 as StatCard, f9 as StatCardProps, fa as StatTile, fb as StatTileProps, fc as Statistic, fd as StatisticProps, fe as StatisticSize, ff as StatisticTone, fg as StatusBadge, fh as StatusBadgeProvider, fi as StatusEmphasis, fj as StepItem, fk as Stepper, fl as StepperProps, fm as StrokeVariant, fn as SunburstChart, fo as SunburstChartProps, fp as SunburstNode, fq as Switch, fr as SwitchProps, fs as SwitchSize, ft as TabItem, fu as Tabs, fv as TabsProps, fw as TagInput, fx as TagInputOption, fy as TagInputProps, fz as Text, fA as TextProps, fB as TextSize, fC as TextTone, fD as TextWeight, fE as Textarea, fF as TextareaProps, fG as Theme, fH as TileButton, fI as TileButtonProps, fJ as TileSize, fK as TimePicker, fL as TimePickerProps, fM as TimeSeriesChart, fN as TimeSeriesChartProps, fO as TimeSeriesSeries, fP as TimelineMarker, fQ as TimelineMarkerKind, fR as TimelineReport, fS as TimelineScrubProgress, fT as TimelineTrack, fU as TimelineTrackItem, fV as TimelineTrackKind, fW as TimelineTrackPending, fX as TimelineTrackPhase, fY as TimelineTrackPlayback, fZ as TimelineTrackProps, f_ as TimelineTrackThumb, f$ as Title, g0 as TitleLevel, g1 as TitleProps, g2 as ToastOptions, g3 as ToastPlacement, g4 as Tooltip, g5 as TooltipProps, g6 as TopNav, g7 as TopNavItem, g8 as TopNavProps, g9 as TreemapChart, ga as TreemapChartProps, gb as TreemapItem, gc as TreemapTile, gd as UseAppUpdateOptions, ge as UseProductionTimelineOpts, gf as VERSION, gg as VITE_PRELOAD_ERROR_EVENT, gh as WaterfallChart, gi as WaterfallChartProps, gj as WaterfallStep, gk as ZLayer, gl as Z_LAYERS, gm as angleScale, gn as appendKey, go as applyThemePrefs, gp as arcPath, gq as areaBetween, gr as areaFrom, gs as autoHighlightIndex, gt as backspace, gu as bandScale, gv as binValues, gw as budgetState, gx as bumpPath, gy as buttonClasses, gz as calcOverall, gA as calcReportOverall, gB as confirm, gC as confirmDestructive, gD as curvePath, gE as dashFor, gF as dismissPopups, gG as fillFor, gH as fillId, gI as firstDayOfWeek, gJ as fmtSliderDate, gK as formatDate, gL as fromDateKey, gM as glassStyle, gN as glowId, gO as groundId, gP as groupColors, gQ as highlightOpacity, gR as iconButtonClasses, gS as inputClasses, gT as installStaleChunkReload, gU as isMac, gV as isSeverityTone, gW as isStaleChunkError, gX as ladderScale, gY as linearPath, gZ as linearScale, g_ as logScale, g$ as maskId, h0 as mediaFileName, h1 as monotonePath, h2 as niceMax, h3 as polygonPoints, h4 as popupBounds, h5 as prompt, h6 as radiusScale, h7 as resolveBrandMarkTreatment, h8 as resolvePortalBrandAsset, h9 as resolveSeriesColor, ha as resolveTheme, hb as seriesColor, hc as severityOf, hd as splinePath, he as squarify, hf as stagger, hg as stepPath, hh as tabButtonId, hi as tabPanelId, hj as toDateKey, hk as toDayMs, hl as toISODate, hm as toast, hn as useAppUpdate, ho as useClickOutside, hp as useConfirm, hq as useDropdownPosition, hr as useFocusTrap, hs as useHighlight, ht as useIsMobile, hu as useLocalStoragePrefs, hv as usePlotWidth, hw as usePortalBranding, hx as useProductionTimeline, hy as useScrollLock, hz as useShellLocale, hA as useShellPrefs, hB as useShellStrings, hC as useTheme } from '../index-NhR7frRu.js';
1
+ export { A as ALT, b as ALT_SHIFT_D, c as ALT_SHIFT_E, d as ALT_SHIFT_N, e as APP_UPDATE_POLL_MS, f as Accordion, g as AccordionItem, h as AccordionProps, i as Align, j as AngleScale, k as AppUpdateBanner, l as AppUpdateBannerProps, m as AttachButton, n as AttachButtonProps, o as AttachmentDropZone, p as AttachmentDropZoneProps, q as AttachmentList, r as AttachmentListProps, s as AuthScreen, t as AuthScreenProps, u as Avatar, v as AvatarGroup, w as AvatarGroupProps, x as AvatarProps, y as AvatarSize, z as AvatarStatus, B as BackgroundVariant, D as BandScale, E as Banner, F as BannerEmphasis, G as BannerProps, H as BannerTone, I as BarChart, J as BarChartProps, K as BoxPlotBox, L as BoxPlotChart, M as BoxPlotChartProps, N as BrandAssetEditor, O as BrandAssetEditorProps, Q as BrandAssetPreview, R as BrandMark, T as BrandMarkProps, U as BrandMarkSlot, V as BrandMarkSurface, W as BrandMarkTreatment, X as BreadcrumbItem, Y as Breadcrumbs, Z as BreadcrumbsProps, _ as BudgetBar, $ as BudgetBarProps, a0 as BudgetState, a1 as Button, a2 as ButtonClassesOptions, a3 as ButtonProps, a4 as ButtonSize, a5 as ButtonVariant, a6 as CHART_INK, a7 as CMD_A, a8 as CMD_DOT, a9 as CMD_ENTER, aa as CMD_K, ab as CMD_S, ac as Calendar, ad as CalendarMode, ae as CalendarProps, af as Candle, ag as CandlestickChart, ah as CandlestickChartProps, ai as Card, aj as CardPadding, ak as CardProps, al as CartesianPlot, am as CartesianPlotProps, an as CellStyle, ao as ChartBackgroundVariant, ap as ChartBrush, aq as ChartBrushProps, ar as ChartCurve, as as ChartDefs, at as ChartDefsProps, au as ChartDot, av as ChartDotProps, aw as ChartDotVariant, ax as ChartFillVariant, ay as ChartFrame, az as ChartFrameProps, aA as ChartHighlightProvider, aB as ChartLegendEntry, aC as ChartLegendSwatch, aD as ChartRange, aE as ChartReferenceLine, aF as ChartRevealDirection, aG as ChartSkeleton, aH as ChartSkeletonProps, aI as ChartStatusTone, aJ as ChartStrokeVariant, aK as ChartTooltip, aL as ChartTooltipProps, aM as ChartTooltipRow, aN as ChatTemplate, aO as Checkbox, aP as CheckboxProps, aQ as CheckoutTemplate, aR as ChordChart, aS as ChordChartProps, aT as ColoredBadge, aU as ColoredBadgeProps, aV as ColumnChart, aW as ColumnChartProps, C as ColumnDef, aX as ColumnSeries, aY as ComposerAttachments, aZ as ComposerAttachmentsProps, a_ as ConfirmProvider, a$ as ContainerFillChart, b0 as ContainerFillChartProps, b1 as ContainerFillItem, b2 as CountBadge, b3 as CountBadgeProps, b4 as CountBadgeTone, b5 as Curve, b6 as DAY_MS, b7 as DEFAULT_SHELL_STRINGS, b8 as DashboardTemplate, b9 as DataTable, ba as DataTableColumn, bb as DataTableColumnGroup, bc as DataTableHeader, bd as DataTablePage, be as DataTableProps, bf as DataTableRowProps, bg as DatePicker, bh as DatePickerProps, bi as DateRangePicker, bj as DateRangePickerProps, bk as DateTimePicker, bl as DateTimePickerProps, bm as DescriptionColumns, bn as DescriptionItem, bo as DescriptionList, bp as DescriptionListProps, bq as Dialog, br as DialogProps, bs as DialogSize, bt as Divider, bu as DividerProps, bv as DividerSpacing, bw as DonutChart, bx as DonutChartProps, by as DonutSegment, bz as Drawer, bA as DrawerProps, bB as DrawerSide, bC as DrawerSize, bD as DropdownMenu, bE as DropdownMenuAlign, bF as DropdownMenuCheckboxItem, bG as DropdownMenuDividerItem, bH as DropdownMenuEntry, bI as DropdownMenuItem, bJ as DropdownMenuLabelItem, bK as DropdownMenuLinkItem, bL as DropdownMenuProps, bM as DropdownMenuRadioItem, bN as DropdownMenuSide, bO as DropdownPositionOptions, bP as ENTER, bQ as EditableGrid, bR as EditableGridProps, bS as EmailTemplate, bT as EmptyState, bU as EmptyStateProps, bV as ErrorBoundary, bW as ErrorBoundaryProps, bX as ErrorPage, bY as ErrorPageProps, bZ as FileIntake, b_ as FilePicker, b$ as FilePickerProps, c0 as FillVariant, c1 as FormError, c2 as FormErrorSummary, c3 as FormErrorSummaryProps, c4 as FormField, c5 as FormFieldProps, c6 as FormLayoutPage, c7 as FormatDateOptions, c8 as FunnelChart, c9 as FunnelChartProps, ca as FunnelStage, cb as GLASS_DIVIDER, cd as GROUP_COLORS, ce as GROUP_COLORS_SOLID, cf as GalleryTemplate, cg as Gap, ch as GlobalSearch, ci as GlobalSearchProps, cj as Grid, ck as GridCols, cl as GridColumn, cm as GridProps, cn as HeatmapChart, co as HeatmapChartProps, cp as HelpCenter, cq as HelpCenterDoc, cr as HelpCenterProps, cs as HistogramBin, ct as HistogramChart, cu as HistogramChartProps, cv as INPUT_BASE, cw as INPUT_SIZES, cx as IconButton, cy as IconButtonClassesOptions, cz as IconButtonProps, cA as Inline, cB as InlineProps, cC as Input, cD as InputNumber, cE as InputNumberProps, cF as InputProps, cG as InputSize, cH as Justify, cI as Kanban, cJ as KanbanColumn, cK as KanbanProps, cL as Kbd, cM as KbdProps, cN as KbdSize, cO as Label, cP as LabelProps, cQ as LadderScale, cR as LineChart, cS as LineChartProps, cT as LineChartSeries, cU as LinearScale, cV as ListFooter, cW as ListLoadError, cX as ListLoadErrorProps, cY as LoadingSpinner, cZ as LoadingSpinnerProps, c_ as MAX_FRACTION_DIGITS, c$ as MENU_MAX_HEIGHT, d0 as MOD, d1 as MOTION, d2 as Markdown, d2 as MarkdownLite, d3 as MarkdownLiteProps, d3 as MarkdownProps, d4 as MediaUploadField, d5 as MediaUploadFieldProps, d6 as MediaUploadGrid, d7 as MediaUploadGridItem, d8 as MediaUploadGridProps, d9 as MenuPos, da as Meter, db as MeterProps, dc as MetricBar, dd as MetricBarProps, de as Milestone, df as MilestoneKind, dg as MilestoneTimeline, dh as MilestoneTimelineProps, di as NEXT_CHUNK_PATH_PREFIX, dj as NativeSelect, dk as NumericKeypad, dl as NumericKeypadProps, dm as OVERLAY_OPEN_EVENT, dn as POPUP_MAX_WIDTH, dp as POST_PRODUCTION_STATUSES, dq as PageHeader, dr as PageHeaderProps, P as PaginatedResponse, ds as Pagination, dt as PaginationProps, du as PaperclipGlyph, dv as Paragraph, dw as ParagraphProps, dx as PieChart, dy as PieChartProps, dz as PieSegment, dA as PlotGeometry, dB as Point, dC as Popover, dD as PopoverAlign, dE as PopoverProps, dF as PopoverRenderProps, dG as PopoverSide, dH as PopupMenu, dI as PopupMenuDivider, dJ as PopupMenuItem, dK as PopupMenuItemProps, dL as PopupMenuLabel, dM as PopupMenuProps, dN as PopupSubmenu, dO as PopupSubmenuProps, dP as PortalBrandingContextValue, dQ as PortalBrandingProvider, dR as PortalBrandingProviderProps, dS as ProductionTimeline, dT as ProductionTimelineProps, dU as ProductionTimelineSnapshot, dV as ProgressItem, dW as PublicPortal, dX as PublicPortalBranding, dY as RADAR_SERIES_CAP, dZ as RadarAxis, d_ as RadarChart, d$ as RadarChartProps, e0 as RadarSeries, e1 as RadialBarChart, e2 as RadialBarChartProps, e3 as RadialBarRow, e4 as Radio, e5 as RadioGroup, e6 as RadioGroupOption, e7 as RadioGroupOrientation, e8 as RadioGroupProps, e9 as RadioProps, ea as Range, eb as RangeChart, ec as RangeChartProps, ed as RangeRow, ee as RankedBars, ef as RankedBarsProps, eg as RankedBarsRow, eh as ResolvedPortalBrandAsset, ei as Result, ej as ResultProps, ek as ResultStatus, el as RevealDirection, em as SCATTER_SERIES_CAP, en as SERIES_SLOT_COUNT, eo as SERIES_VARS, ep as SHIFT, eq as STAGES, er as STALE_CHUNK_RELOAD_COOLDOWN_MS, es as STALE_CHUNK_RELOAD_KEY, et as STATUS_VARS, eu as SankeyChart, ev as SankeyChartProps, ew as SankeyLink, ex as SankeyNode, ey as ScatterChart, ez as ScatterChartProps, eA as ScatterPoint, eB as ScatterSeries, S as SearchConfig, eC as SearchProvider, eD as SearchResult, eE as SearchableOption, eF as SearchableSelect, eG as SearchableSelectProps, eH as Segmented, eI as SegmentedOption, eJ as SegmentedProps, eK as SegmentedSize, eL as Select, eM as SelectOption, eN as SelectProps, eO as SemanticGroup, eP as SettingRow, eQ as SettingRowProps, eR as SeverityTone, eS as ShellPrefsAdapter, eT as ShellPrefsProvider, eU as ShellStrings, eV as ShellStringsOverride, eW as ShellStringsProvider, eX as SidebarActionButton, eY as SidebarActionButtonProps, eZ as SidebarGroupLabel, e_ as SidebarLayout, e$ as SidebarLayoutProps, f0 as SidebarNavItem, f1 as SidebarNavItemProps, f2 as Skeleton, f3 as SkeletonProps, f4 as SkeletonVariant, f5 as Snippet, f6 as SnippetProps, f7 as SnippetSize, f8 as SnippetVariant, a as SortState, f9 as Sparkline, fa as SparklineProps, fb as Stack, fc as StackProps, fd as StaleChunkReloadOptions, fe as StatCard, ff as StatCardProps, fg as StatTile, fh as StatTileProps, fi as Statistic, fj as StatisticProps, fk as StatisticSize, fl as StatisticTone, fm as StatusBadge, fn as StatusBadgeProvider, fo as StatusEmphasis, fp as StepItem, fq as Stepper, fr as StepperProps, fs as StrokeVariant, ft as SunburstChart, fu as SunburstChartProps, fv as SunburstNode, fw as Switch, fx as SwitchProps, fy as SwitchSize, fz as TabItem, fA as Tabs, fB as TabsProps, fC as TagInput, fD as TagInputOption, fE as TagInputProps, fF as Text, fG as TextProps, fH as TextSize, fI as TextTone, fJ as TextWeight, fK as Textarea, fL as TextareaProps, fM as Theme, fN as TileButton, fO as TileButtonProps, fP as TileSize, fQ as TimePicker, fR as TimePickerProps, fS as TimeSeriesChart, fT as TimeSeriesChartProps, fU as TimeSeriesSeries, fV as TimelineMarker, fW as TimelineMarkerKind, fX as TimelineReport, fY as TimelineScrubProgress, fZ as TimelineTrack, f_ as TimelineTrackItem, f$ as TimelineTrackKind, g0 as TimelineTrackPending, g1 as TimelineTrackPhase, g2 as TimelineTrackPlayback, g3 as TimelineTrackProps, g4 as TimelineTrackThumb, g5 as Title, g6 as TitleLevel, g7 as TitleProps, g8 as ToastOptions, g9 as ToastPlacement, ga as Tooltip, gb as TooltipProps, gc as TopNav, gd as TopNavItem, ge as TopNavProps, gf as TreemapChart, gg as TreemapChartProps, gh as TreemapItem, gi as TreemapTile, gj as UseAppUpdateOptions, gk as UseProductionTimelineOpts, gl as VERSION, gm as VITE_PRELOAD_ERROR_EVENT, gn as WaterfallChart, go as WaterfallChartProps, gp as WaterfallStep, gq as ZLayer, gr as Z_LAYERS, gs as angleScale, gt as appendKey, gu as applyThemePrefs, gv as arcPath, gw as areaBetween, gx as areaFrom, gy as autoHighlightIndex, gz as backspace, gA as bandScale, gB as binValues, gC as budgetState, gD as bumpPath, gE as buttonClasses, gF as calcOverall, gG as calcReportOverall, gH as confirm, gI as confirmDestructive, gJ as curvePath, gK as dashFor, gL as dismissPopups, gM as fillFor, gN as fillId, gO as firstDayOfWeek, gP as fmtSliderDate, gQ as formatDate, gR as fromDateKey, gS as glassStyle, gT as glowId, gU as groundId, gV as groupColors, gW as highlightOpacity, gX as iconButtonClasses, gY as inputClasses, gZ as installStaleChunkReload, g_ as isMac, g$ as isSeverityTone, h0 as isStaleChunkError, h1 as ladderScale, h2 as linearPath, h3 as linearScale, h4 as logScale, h5 as maskId, h6 as mediaFileName, h7 as monotonePath, h8 as niceMax, h9 as polygonPoints, ha as popupBounds, hb as prompt, hc as radiusScale, hd as resolveBrandMarkTreatment, he as resolvePortalBrandAsset, hf as resolveSeriesColor, hg as resolveTheme, hh as seriesColor, hi as severityOf, hj as splinePath, hk as squarify, hl as stagger, hm as stepPath, hn as tabButtonId, ho as tabPanelId, hp as toDateKey, hq as toDayMs, hr as toISODate, hs as toast, ht as useAppUpdate, hu as useClickOutside, hv as useConfirm, hw as useDropdownPosition, hx as useFocusTrap, hy as useHighlight, hz as useIsMobile, hA as useLocalStoragePrefs, hB as usePlotWidth, hC as usePortalBranding, hD as useProductionTimeline, hE as useScrollLock, hF as useShellLocale, hG as useShellPrefs, hH as useShellStrings, hI as useTheme } from '../index-Cek0S3MH.js';
2
2
  export { FileIntakeAlert, FileIntakeLimits, FileIntakeOptions, FileRejection, FileRejectionReason, acceptsFile, useFileIntake } from '../file-intake/index.js';
3
3
  import 'react';
4
4
  import 'react/jsx-runtime';
package/dist/ui/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{APP_UPDATE_POLL_MS,Accordion,AppUpdateBanner,AttachButton,AttachmentDropZone,AttachmentList,AuthScreen,Avatar,AvatarGroup,Banner,BarChart,BoxPlotChart,BrandAssetEditor,BudgetBar,CHART_INK,Calendar,CandlestickChart,Card,CartesianPlot,ChartBrush,ChartDefs,ChartDot,ChartFrame,ChartHighlightProvider,ChartSkeleton,ChartTooltip,ChatTemplate,Checkbox_default as Checkbox,CheckoutTemplate,ChordChart,ColoredBadge,ColumnChart,ComposerAttachments,ContainerFillChart,CountBadge,DAY_MS,DashboardTemplate,DataTable,DataTablePage,DatePicker_default as DatePicker,DateRangePicker,DateTimePicker_default as DateTimePicker,DescriptionList,Divider,DonutChart,Drawer,DropdownMenu,EmailTemplate,EmptyState,ErrorBoundary,ErrorPage,FilePicker_default as FilePicker,FormErrorSummary,FormField,FormLayoutPage,FunnelChart,GROUP_COLORS,GROUP_COLORS_SOLID,GalleryTemplate,GlobalSearch,Grid,HeatmapChart,HelpCenter,HistogramChart,INPUT_BASE,INPUT_SIZES,IconButton_default as IconButton,Inline,Input_default as Input,InputNumber_default as InputNumber,Kanban,Label,LineChart,ListFooter,ListLoadError,MAX_FRACTION_DIGITS,MENU_MAX_HEIGHT,MOTION,Markdown,Markdown as MarkdownLite,MediaUploadField,MediaUploadGrid,Meter,MetricBar,MilestoneTimeline,NativeSelect,NumericKeypad,POPUP_MAX_WIDTH,POST_PRODUCTION_STATUSES,PageHeader,Pagination,PaperclipGlyph,Paragraph,PieChart,PortalBrandingProvider,ProductionTimeline,RADAR_SERIES_CAP,RadarChart,RadialBarChart,Radio_default as Radio,RadioGroup,RangeChart,RankedBars,SCATTER_SERIES_CAP,SERIES_SLOT_COUNT,SERIES_VARS,STAGES,STATUS_VARS,SankeyChart,ScatterChart,SearchableSelect,Segmented,Select_default as Select,SettingRow,SidebarActionButton,SidebarGroupLabel,SidebarNavItem,Skeleton,Snippet,Sparkline,Stack,StatCard,StatTile,Statistic,StatusBadge,StatusBadgeProvider,Stepper,SunburstChart,Switch_default as Switch,Tabs,TagInput,Text,Textarea_default as Textarea,TileButton_default as TileButton,TimePicker_default as TimePicker,TimeSeriesChart,TimelineTrack,Title,Tooltip,TopNav,TreemapChart,WaterfallChart,angleScale,appendKey,applyThemePrefs,arcPath,areaBetween,areaFrom,autoHighlightIndex,backspace,bandScale,binValues,budgetState,bumpPath,calcOverall,calcReportOverall,curvePath,dashFor,fillFor,fillId,firstDayOfWeek,fmtSliderDate,formatDate,fromKey as fromDateKey,glowId,groundId,groupColors,highlightOpacity,inputClasses,isSeverityTone,ladderScale,linearPath,linearScale,logScale,maskId,mediaFileName,monotonePath,niceMax,polygonPoints,popupBounds,radiusScale,resolvePortalBrandAsset,resolveSeriesColor,resolveTheme,seriesColor,severityOf,splinePath,squarify,stagger,stepPath,tabButtonId,tabPanelId,toKey as toDateKey,toDayMs,toISODate,useAppUpdate,useClickOutside,useDropdownPosition,useHighlight,usePlotWidth,usePortalBranding,useProductionTimeline,useTheme}from"../chunk-NBBOFQPL.js";export{Breadcrumbs}from"../chunk-I55UMU3R.js";export{SidebarLayout}from"../chunk-SLCR26NK.js";export{BrandMark,resolveBrandMarkTreatment}from"../chunk-OCSOMMY2.js";export{EditableGrid}from"../chunk-TFKB2WEB.js";import"../chunk-BR22X7E5.js";export{toast_default as toast}from"../chunk-KKOHUQPF.js";export{VERSION}from"../chunk-TWV42Q3K.js";export{ALT,ALT_SHIFT_D,ALT_SHIFT_E,ALT_SHIFT_N,CMD_A,CMD_DOT,CMD_ENTER,CMD_K,CMD_S,ENTER,Kbd,LoadingSpinner,MOD,NEXT_CHUNK_PATH_PREFIX,Result,SHIFT,STALE_CHUNK_RELOAD_COOLDOWN_MS,STALE_CHUNK_RELOAD_KEY,ShellPrefsProvider,VITE_PRELOAD_ERROR_EVENT,installStaleChunkReload,isMac,isStaleChunkError,useIsMobile,useLocalStoragePrefs,useShellPrefs}from"../chunk-V453E4KU.js";export{FileIntakeAlert,acceptsFile,useFileIntake}from"../chunk-UB22J6EF.js";export{Button_default as Button,buttonClasses,iconButtonClasses}from"../chunk-PH3PRIFP.js";export{PopupMenu,PopupMenuDivider,PopupMenuItem,PopupMenuLabel,PopupSubmenu}from"../chunk-2RHMSFZV.js";export{ConfirmProvider,Dialog,OVERLAY_OPEN_EVENT,Z_LAYERS,confirm,confirmDestructive,dismissPopups,prompt,useConfirm,useFocusTrap,useScrollLock}from"../chunk-LVFMK5OQ.js";export{GLASS_DIVIDER,glassStyle}from"../chunk-57MIENLJ.js";import"../chunk-MAIHBBWT.js";export{DEFAULT_SHELL_STRINGS,ShellStringsProvider,useShellLocale,useShellStrings}from"../chunk-TR6PLN7W.js";import"../chunk-D65T4H6J.js";
2
+ export{APP_UPDATE_POLL_MS,Accordion,AppUpdateBanner,AttachButton,AttachmentDropZone,AttachmentList,AuthScreen,Avatar,AvatarGroup,Banner,BarChart,BoxPlotChart,BrandAssetEditor,BudgetBar,CHART_INK,Calendar,CandlestickChart,Card,CartesianPlot,ChartBrush,ChartDefs,ChartDot,ChartFrame,ChartHighlightProvider,ChartSkeleton,ChartTooltip,ChatTemplate,Checkbox_default as Checkbox,CheckoutTemplate,ChordChart,ColoredBadge,ColumnChart,ComposerAttachments,ContainerFillChart,CountBadge,DAY_MS,DashboardTemplate,DataTable,DataTablePage,DatePicker_default as DatePicker,DateRangePicker,DateTimePicker_default as DateTimePicker,DescriptionList,Divider,DonutChart,Drawer,DropdownMenu,EmailTemplate,EmptyState,ErrorBoundary,ErrorPage,FilePicker_default as FilePicker,FormErrorSummary,FormField,FormLayoutPage,FunnelChart,GROUP_COLORS,GROUP_COLORS_SOLID,GalleryTemplate,GlobalSearch,Grid,HeatmapChart,HelpCenter,HistogramChart,INPUT_BASE,INPUT_SIZES,IconButton_default as IconButton,Inline,Input_default as Input,InputNumber_default as InputNumber,Kanban,Label,LineChart,ListFooter,ListLoadError,MAX_FRACTION_DIGITS,MENU_MAX_HEIGHT,MOTION,Markdown,Markdown as MarkdownLite,MediaUploadField,MediaUploadGrid,Meter,MetricBar,MilestoneTimeline,NativeSelect,NumericKeypad,POPUP_MAX_WIDTH,POST_PRODUCTION_STATUSES,PageHeader,Pagination,PaperclipGlyph,Paragraph,PieChart,Popover,PortalBrandingProvider,ProductionTimeline,RADAR_SERIES_CAP,RadarChart,RadialBarChart,Radio_default as Radio,RadioGroup,RangeChart,RankedBars,SCATTER_SERIES_CAP,SERIES_SLOT_COUNT,SERIES_VARS,STAGES,STATUS_VARS,SankeyChart,ScatterChart,SearchableSelect,Segmented,Select_default as Select,SettingRow,SidebarActionButton,SidebarGroupLabel,SidebarNavItem,Skeleton,Snippet,Sparkline,Stack,StatCard,StatTile,Statistic,StatusBadge,StatusBadgeProvider,Stepper,SunburstChart,Switch_default as Switch,Tabs,TagInput,Text,Textarea_default as Textarea,TileButton_default as TileButton,TimePicker_default as TimePicker,TimeSeriesChart,TimelineTrack,Title,Tooltip,TopNav,TreemapChart,WaterfallChart,angleScale,appendKey,applyThemePrefs,arcPath,areaBetween,areaFrom,autoHighlightIndex,backspace,bandScale,binValues,budgetState,bumpPath,calcOverall,calcReportOverall,curvePath,dashFor,fillFor,fillId,firstDayOfWeek,fmtSliderDate,formatDate,fromKey as fromDateKey,glowId,groundId,groupColors,highlightOpacity,inputClasses,isSeverityTone,ladderScale,linearPath,linearScale,logScale,maskId,mediaFileName,monotonePath,niceMax,polygonPoints,popupBounds,radiusScale,resolvePortalBrandAsset,resolveSeriesColor,resolveTheme,seriesColor,severityOf,splinePath,squarify,stagger,stepPath,tabButtonId,tabPanelId,toKey as toDateKey,toDayMs,toISODate,useAppUpdate,useClickOutside,useDropdownPosition,useHighlight,usePlotWidth,usePortalBranding,useProductionTimeline,useTheme}from"../chunk-ADTQ55CV.js";export{Breadcrumbs}from"../chunk-I55UMU3R.js";export{SidebarLayout}from"../chunk-SLCR26NK.js";export{BrandMark,resolveBrandMarkTreatment}from"../chunk-OCSOMMY2.js";export{EditableGrid}from"../chunk-TFKB2WEB.js";import"../chunk-BR22X7E5.js";export{toast_default as toast}from"../chunk-KKOHUQPF.js";export{VERSION}from"../chunk-VUXPSUWI.js";export{ALT,ALT_SHIFT_D,ALT_SHIFT_E,ALT_SHIFT_N,CMD_A,CMD_DOT,CMD_ENTER,CMD_K,CMD_S,ENTER,Kbd,LoadingSpinner,MOD,NEXT_CHUNK_PATH_PREFIX,Result,SHIFT,STALE_CHUNK_RELOAD_COOLDOWN_MS,STALE_CHUNK_RELOAD_KEY,ShellPrefsProvider,VITE_PRELOAD_ERROR_EVENT,installStaleChunkReload,isMac,isStaleChunkError,useIsMobile,useLocalStoragePrefs,useShellPrefs}from"../chunk-V453E4KU.js";export{FileIntakeAlert,acceptsFile,useFileIntake}from"../chunk-UB22J6EF.js";export{Button_default as Button,buttonClasses,iconButtonClasses}from"../chunk-PH3PRIFP.js";export{PopupMenu,PopupMenuDivider,PopupMenuItem,PopupMenuLabel,PopupSubmenu}from"../chunk-ZBIWNVJS.js";export{ConfirmProvider,Dialog,OVERLAY_OPEN_EVENT,Z_LAYERS,confirm,confirmDestructive,dismissPopups,prompt,useConfirm,useFocusTrap,useScrollLock}from"../chunk-QOXIUJTN.js";export{GLASS_DIVIDER,glassStyle}from"../chunk-57MIENLJ.js";import"../chunk-MAIHBBWT.js";export{DEFAULT_SHELL_STRINGS,ShellStringsProvider,useShellLocale,useShellStrings}from"../chunk-TR6PLN7W.js";import"../chunk-D65T4H6J.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "efficient-shell",
3
- "version": "4.145.0",
3
+ "version": "4.148.0",
4
4
  "description": "Desktop-style React UI shell — windows, taskbar, start menu, sticky notes, frosted glass theming, and bundled apps.",
5
5
  "license": "UNLICENSED",
6
6
  "author": "Efficient Pty Ltd",
@@ -1,29 +0,0 @@
1
- import{useShellStrings as e,splitAround as t}from"./chunk-TR6PLN7W.js";import{createContext as n,useEffect as r,useRef as o,useId as i,useContext as l,useState as a,useCallback as s,useLayoutEffect as d}from"react";import{jsxs as c,jsx as u,Fragment as m}from"react/jsx-runtime";var f=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function h(e){return Array.from(e.querySelectorAll(f)).filter(e=>null!==e.offsetParent||e===document.activeElement)}var b=[];function g(e,t,n){r(()=>{if(!t)return;const r=e.current;if(!r)return;const o=document.activeElement,i=n?.current??h(r)[0]??r;i!==r||r.hasAttribute("tabindex")||r.setAttribute("tabindex","-1"),i.focus();const l=e=>{if("Tab"!==e.key)return;if(b[b.length-1]!==r)return;const t=h(r);if(0===t.length)return void e.preventDefault();const n=t[0],o=t[t.length-1],i=document.activeElement;!e.shiftKey||i!==n&&r.contains(i)?e.shiftKey||i!==o&&r.contains(i)||(e.preventDefault(),n.focus()):(e.preventDefault(),o.focus())};return function(e){const t=b.findIndex(t=>t!==e&&e.contains(t));-1===t?b.push(e):b.splice(t,0,e)}(r),document.addEventListener("keydown",l,!0),()=>{!function(e){const t=b.lastIndexOf(e);-1!==t&&b.splice(t,1)}(r),document.removeEventListener("keydown",l,!0),(r.contains(document.activeElement)||document.activeElement===document.body)&&o?.focus?.()}},[e,t,n])}var p=0,v=null;function y(e){r(()=>{if(!e)return;const t=document.body;if(0===p){v={overflow:t.style.overflow,paddingRight:t.style.paddingRight};const e=window.innerWidth-document.documentElement.clientWidth;t.style.overflow="hidden",e>0&&(t.style.paddingRight=`${e}px`)}return p+=1,()=>{0===(p-=1)&&v&&(t.style.overflow=v.overflow,t.style.paddingRight=v.paddingRight,v=null)}},[e])}var x=/* @__PURE__ */new Set,w=null;function k(e){return x.add(e),function(){if(w||"undefined"==typeof document)return;const e=e=>{"Escape"===e.key&&N(e)&&(e.preventDefault(),e.stopPropagation())};document.addEventListener("keydown",e,!0),w=()=>document.removeEventListener("keydown",e,!0)}(),()=>{x.delete(e),0===x.size&&w&&(w(),w=null)}}function N(e){const t=Array.from(x);for(let n=t.length-1;n>=0;n--)try{if(t[n](e))return!0}catch{}return!1}var L="react-os-shell:overlay-open";function C(){"undefined"!=typeof window&&window.dispatchEvent(new Event(L))}function E(e){return"undefined"==typeof window?()=>{}:(window.addEventListener(L,e),()=>window.removeEventListener(L,e))}var P="undefined"==typeof document?r:d;function j(e){P(()=>{e&&C()},[e])}var W={window:50,windowStep:10,menu:400,pinnedWindow:999,overlay:9999,popup:1e4},T={sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-4xl"};function $({open:t,onClose:n,title:l,description:a,role:s="dialog",children:d,footer:m,blocking:f=!1,size:h="md",initialFocus:b,"aria-label":p,"aria-labelledby":v,"aria-describedby":x,className:w=""}){const N=o(null),L=i(),C=i(),E=!f&&!m,P=i(),$=e().dialog;return j(t),g(N,t,b),y(t),r(()=>{if(t)return k(()=>(f||n(),!0))},[t,f,n]),t?/* @__PURE__ */c("div",{className:"fixed inset-0",style:{zIndex:W.overlay},role:"presentation",children:[
2
- /* @__PURE__ */u("div",{className:"fixed inset-0 bg-black/30","aria-hidden":"true"}),
3
- /* @__PURE__ */u("div",{className:"fixed inset-0 flex items-center justify-center p-4",onClick:f?void 0:e=>{e.target===e.currentTarget&&n()},children:/* @__PURE__ */c("div",{ref:N,role:s,"aria-modal":"true","aria-labelledby":l?P:v,"aria-label":l||v?void 0:p,"aria-describedby":x??(a?C:d?L:void 0),className:`relative w-full ${T[h]} rounded-lg bg-white p-6 shadow-xl ${w}`.trim(),children:[l&&/* @__PURE__ */u("h2",{id:P,className:(E?"pr-8 ":"")+"text-base font-semibold text-gray-900",children:l}),a&&/* @__PURE__ */u("p",{id:C,className:((l?"mt-1":E?"pr-8":"")+" text-sm text-gray-500").trim(),children:a}),d&&/* @__PURE__ */u("div",{id:L,className:"mt-2 text-sm text-gray-600",children:d}),m&&/* @__PURE__ */u("div",{className:"mt-6 flex justify-end gap-3",children:m}),E&&/* @__PURE__ */u("button",{type:"button",onClick:n,"aria-label":$.close,className:"absolute right-3 top-3 rounded-md p-1 text-gray-400 hover:bg-gray-100 hover:text-gray-600 rosh-focus-ring focus-visible:ring-2 focus-visible:ring-[color:var(--rosh-focus-ring-solid)]",children:/* @__PURE__ */u("svg",{className:"h-5 w-5",viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:/* @__PURE__ */u("path",{d:"M6 6l8 8M14 6l-8 8"})})})]})})]}):null}var D=n(()=>Promise.resolve(!1)),F=()=>l(D),M=()=>Promise.resolve(!1),R=e=>M(e),z=()=>Promise.resolve(!1),A=e=>z(e),K=()=>Promise.resolve(null),B=e=>K(e),I={danger:{icon:"text-red-600 bg-red-100",button:"bg-red-600 hover:bg-red-700 text-white"},warning:{icon:"text-yellow-600 bg-yellow-100",button:"bg-yellow-600 hover:bg-yellow-700 text-white"},info:{icon:"text-blue-600 bg-blue-100",button:"bg-blue-600 hover:bg-blue-700 text-white"}},S="bg-white text-gray-700 border border-gray-300 px-4 py-2 text-sm font-medium rounded-lg hover:bg-gray-50";function q(){/* @__PURE__ */
4
- return u("svg",{className:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,"aria-hidden":"true",children:/* @__PURE__ */u("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z"})})}function H(){/* @__PURE__ */
5
- return u("svg",{className:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,"aria-hidden":"true",children:/* @__PURE__ */u("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})})}function O({children:n}){const[i,l]=a(!1),[d,f]=a({message:""}),[h,b]=a(0),g=o(),p=o(null),v=o(0),y=o([]),x=o(null),w=o(null),k=s(e=>{p.current=e.id,g.current=e.resolve,b(e.id),f(e.options),l(!0)},[]),N=s(e=>{const t="string"==typeof e?{message:e}:e;return new Promise(e=>{const n={id:++v.current,options:t,resolve:e};null===p.current?k(n):y.current.push(n)})},[k]),[L,C]=a(!1),[E,P]=a({message:""}),[j,W]=a(""),T=o(),F=s(e=>(P(e),W(""),C(!0),new Promise(e=>{T.current=e})),[]),[R,A]=a(!1),[B,O]=a({}),[V,G]=a(""),J=o(),Q=s(e=>{const t="string"==typeof e?{message:e}:e;return O(t),G(t.defaultValue??""),A(!0),new Promise(e=>{J.current=e})},[]);r(()=>{M=N,z=F,K=Q},[N,F,Q]);const U=(e,t)=>{if(p.current!==e)return;const n=g.current,r=y.current.shift();r?k(r):(p.current=null,g.current=void 0,l(!1)),n?.(t)},X=e=>{C(!1),W(""),T.current?.(e)},Y=e=>{if(e){const e=V.trim();if(!e&&!B.allowEmpty)return A(!1),void J.current?.(null);A(!1),J.current?.(e)}else A(!1),J.current?.(null)},Z=d.variant||(d.confirmLabel?.toLowerCase().includes("delete")||d.message.toLowerCase().includes("delete")?"danger":"info"),_=I[Z],ee=I["warning"===E.variant?"warning":"danger"],te=E.confirmWord,ne=null==te||j===te,re=e().dialog,[oe,ie]=t(re.typeToConfirm);/* @__PURE__ */
6
- return c(D.Provider,{value:N,children:[n,
7
- /* @__PURE__ */u($,{open:i,onClose:()=>U(h,!1),initialFocus:x,footer:/* @__PURE__ */c(m,{children:[
8
- /* @__PURE__ */u("button",{ref:x,type:"button",onClick:()=>U(h,!1),className:S,children:d.cancelLabel||re.cancel}),
9
- /* @__PURE__ */u("button",{type:"button",onClick:()=>U(h,!0),className:`px-4 py-2 text-sm font-medium rounded-lg ${_.button}`,children:d.confirmLabel||re.ok})]}),children:/* @__PURE__ */c("div",{className:"flex gap-4",children:[
10
- /* @__PURE__ */u("div",{className:`shrink-0 w-10 h-10 rounded-full flex items-center justify-center ${_.icon}`,children:/* @__PURE__ */u(q,{})}),
11
- /* @__PURE__ */c("div",{className:"flex-1",children:[
12
- /* @__PURE__ */u("h2",{className:"text-base font-semibold text-gray-900",children:d.title||re.confirmTitle}),
13
- /* @__PURE__ */u("p",{className:"mt-2 text-sm text-gray-600",children:d.message})]})]})}),
14
- /* @__PURE__ */c($,{open:L,onClose:()=>X(!1),initialFocus:null!=te?void 0:w,footer:/* @__PURE__ */c(m,{children:[
15
- /* @__PURE__ */u("button",{ref:w,type:"button",onClick:()=>X(!1),className:S,children:E.cancelLabel||re.destructiveCancel}),
16
- /* @__PURE__ */u("button",{type:"button",onClick:()=>X(!0),disabled:!ne,className:`px-4 py-2 text-sm font-medium rounded-lg disabled:opacity-40 ${ee.button}`,children:te??E.confirmLabel??re.destructiveConfirm})]}),children:[
17
- /* @__PURE__ */u("button",{type:"button",onClick:()=>X(!1),"aria-label":re.close,className:"absolute right-4 top-4 rounded-md p-1 text-gray-400 hover:bg-gray-100 hover:text-gray-600",children:/* @__PURE__ */u(H,{})}),
18
- /* @__PURE__ */c("div",{className:"flex gap-4",children:[
19
- /* @__PURE__ */u("div",{className:`shrink-0 w-10 h-10 rounded-full flex items-center justify-center ${ee.icon}`,children:/* @__PURE__ */u(q,{})}),
20
- /* @__PURE__ */c("div",{className:"flex-1",children:[
21
- /* @__PURE__ */u("h2",{className:"text-base font-semibold text-gray-900 pr-6",children:E.title||re.destructiveTitle}),
22
- /* @__PURE__ */u("p",{className:"mt-2 text-sm text-gray-600",children:E.message}),null!=te&&/* @__PURE__ */c(m,{children:[
23
- /* @__PURE__ */c("p",{className:"mt-3 text-sm text-gray-700",children:[oe,
24
- /* @__PURE__ */u("kbd",{className:"rounded border border-gray-300 bg-gray-50 px-1.5 py-0.5 text-xs font-bold text-red-600 font-mono",children:te}),ie]}),
25
- /* @__PURE__ */u("input",{autoFocus:!0,type:"text",value:j,onChange:e=>W(e.target.value),onKeyDown:e=>{"Enter"===e.key&&j===te&&X(!0)},placeholder:te,className:"mt-2 w-full rounded-md border border-gray-300 px-3 py-2 text-sm focus:border-red-500"})]})]})]})]}),
26
- /* @__PURE__ */c($,{open:R,onClose:()=>Y(!1),title:B.title||re.promptTitle,footer:/* @__PURE__ */c(m,{children:[
27
- /* @__PURE__ */u("button",{type:"button",onClick:()=>Y(!1),className:S,children:B.cancelLabel||re.cancel}),
28
- /* @__PURE__ */u("button",{type:"button",onClick:()=>Y(!0),disabled:!B.allowEmpty&&!V.trim(),className:"bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 text-sm font-medium rounded-lg disabled:opacity-40",children:B.confirmLabel||re.ok})]}),children:[B.message&&/* @__PURE__ */u("p",{className:"text-sm text-gray-600",children:B.message}),
29
- /* @__PURE__ */u("input",{autoFocus:!0,type:"text",value:V,onChange:e=>G(e.target.value),onKeyDown:e=>{"Enter"===e.key?Y(!0):"Escape"===e.key&&Y(!1)},onFocus:e=>e.target.select(),placeholder:B.placeholder,className:"mt-3 w-full rounded-md border border-gray-300 px-3 py-2 text-sm focus:border-blue-500 rosh-focus-ring focus-visible:ring-1 focus-visible:ring-[color:var(--rosh-focus-ring-accent)]"})]})]})}export{O as ConfirmProvider,$ as Dialog,L as OVERLAY_OPEN_EVENT,W as Z_LAYERS,R as confirm,A as confirmDestructive,C as dismissPopups,E as onOverlayOpen,B as prompt,k as registerModalEscapeInterceptor,N as runEscapeInterceptors,F as useConfirm,j as useDismissPopupsOnOpen,g as useFocusTrap,y as useScrollLock};