efficient-shell 4.147.0 → 4.149.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +150 -2
- package/dist/{Browser-52FZDK3P.js → Browser-X7A3FHG7.js} +14 -14
- package/dist/{Calculator-4S44DK45.js → Calculator-4CLXMBA4.js} +20 -20
- package/dist/{ConfirmDialog-KJNNVFK7.js → ConfirmDialog-DUYZA2FE.js} +1 -1
- package/dist/{CurrencyConverter-TH6ISVZ5.js → CurrencyConverter-KWNYRYOZ.js} +6 -6
- package/dist/{Documents-TEV6WUCC.js → Documents-UGRUMAU6.js} +13 -13
- package/dist/{Files-T3VMQAO3.js → Files-2QJVZTEH.js} +30 -30
- package/dist/{Notepad-LYNVGUHK.js → Notepad-RPB76OQY.js} +8 -8
- package/dist/{PomodoroTimer-IEZ3ALBW.js → PomodoroTimer-EOQDA5J7.js} +18 -18
- package/dist/{Preview-SJCMGRUS.js → Preview-BNEOTMJL.js} +16 -16
- package/dist/{Spreadsheet-GR6GJTDP.js → Spreadsheet-XWOKXVPA.js} +13 -13
- package/dist/{Stock-MYXAUZJY.js → Stock-VVM7GK4C.js} +3 -3
- package/dist/{Weather-HKCFNPV6.js → Weather-4LJTQLDL.js} +13 -13
- package/dist/{WorldClock-6XVXM4L2.js → WorldClock-AHTVTAI7.js} +6 -6
- package/dist/apps/index.js +1 -1
- package/dist/brand.css +1 -1
- package/dist/chunk-2Q3T5CT3.js +1 -0
- package/dist/{chunk-ZR72F7TE.js → chunk-ET5HXDOR.js} +29 -29
- package/dist/chunk-IH3W7GR5.js +954 -0
- package/dist/{chunk-NUPXFPQW.js → chunk-L2ZO76TC.js} +1 -1
- package/dist/chunk-QOXIUJTN.js +29 -0
- package/dist/{chunk-JNL7A5HC.js → chunk-ZBIWNVJS.js} +7 -7
- package/dist/{chunk-NV35RTZK.js → chunk-ZSDLYYQA.js} +1 -1
- package/dist/{index-DIQYwgxx.d.ts → index-BMISANa_.d.ts} +174 -3
- package/dist/index.d.ts +2 -2
- package/dist/index.js +80 -80
- package/dist/page-tabs/index.js +10 -10
- package/dist/ui/index.d.ts +1 -1
- package/dist/ui/index.js +1 -1
- package/dist/ui.css +132 -2
- package/package.json +1 -1
- package/dist/chunk-6JXLEPRE.js +0 -1
- package/dist/chunk-D4HWQ3ET.js +0 -29
- package/dist/chunk-ZFJH3P24.js +0 -951
package/dist/page-tabs/index.js
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{PopupMenu as e,PopupMenuItem as t,PopupMenuDivider as n}from"../chunk-
|
|
3
|
-
return g(N.Provider,{value:
|
|
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(
|
|
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(
|
|
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
|
|
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)
|
|
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"} ${
|
|
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 ${
|
|
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(
|
|
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
18
|
/* @__PURE__ */g(t,{disabled:C.pinned,onClick:D(()=>K(C.key)),children:o.close}),
|
|
19
19
|
/* @__PURE__ */g(n,{}),
|
|
20
20
|
/* @__PURE__ */g(t,{disabled:!M(k.filter(e=>e.key!==C.key)),onClick:D(()=>T("others",C.key)),children:o.closeOthers}),
|
|
21
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
|
|
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};
|
package/dist/ui/index.d.ts
CHANGED
|
@@ -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 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 PopupMenu, dD as PopupMenuDivider, dE as PopupMenuItem, dF as PopupMenuItemProps, dG as PopupMenuLabel, dH as PopupMenuProps, dI as PopupSubmenu, dJ as PopupSubmenuProps, dK as PortalBrandingContextValue, dL as PortalBrandingProvider, dM as PortalBrandingProviderProps, dN as ProductionTimeline, dO as ProductionTimelineProps, dP as ProductionTimelineSnapshot, dQ as ProgressItem, dR as PublicPortal, dS as PublicPortalBranding, dT as RADAR_SERIES_CAP, dU as RadarAxis, dV as RadarChart, dW as RadarChartProps, dX as RadarSeries, dY as RadialBarChart, dZ as RadialBarChartProps, d_ as RadialBarRow, d$ as Radio, e0 as RadioGroup, e1 as RadioGroupOption, e2 as RadioGroupOrientation, e3 as RadioGroupProps, e4 as RadioProps, e5 as Range, e6 as RangeChart, e7 as RangeChartProps, e8 as RangeRow, e9 as RankedBars, ea as RankedBarsProps, eb as RankedBarsRow, ec as ResolvedPortalBrandAsset, ed as Result, ee as ResultProps, ef as ResultStatus, eg as RevealDirection, eh as SCATTER_SERIES_CAP, ei as SERIES_SLOT_COUNT, ej as SERIES_VARS, ek as SHIFT, el as STAGES, em as STALE_CHUNK_RELOAD_COOLDOWN_MS, en as STALE_CHUNK_RELOAD_KEY, eo as STATUS_VARS, ep as SankeyChart, eq as SankeyChartProps, er as SankeyLink, es as SankeyNode, et as ScatterChart, eu as ScatterChartProps, ev as ScatterPoint, ew as ScatterSeries, S as SearchConfig, ex as SearchProvider, ey as SearchResult, ez as SearchableOption, eA as SearchableSelect, eB as SearchableSelectProps, eC as Segmented, eD as SegmentedOption, eE as SegmentedProps, eF as SegmentedSize, eG as Select, eH as SelectOption, eI as SelectProps, eJ as SemanticGroup, eK as SettingRow, eL as SettingRowProps, eM as SeverityTone, eN as ShellPrefsAdapter, eO as ShellPrefsProvider, eP as ShellStrings, eQ as ShellStringsOverride, eR as ShellStringsProvider, eS as SidebarActionButton, eT as SidebarActionButtonProps, eU as SidebarGroupLabel, eV as SidebarLayout, eW as SidebarLayoutProps, eX as SidebarNavItem, eY as SidebarNavItemProps, eZ as Skeleton, e_ as SkeletonProps, e$ as SkeletonVariant, f0 as Snippet, f1 as SnippetProps, f2 as SnippetSize, f3 as SnippetVariant, a as SortState, f4 as Sparkline, f5 as SparklineProps, f6 as Stack, f7 as StackProps, f8 as StaleChunkReloadOptions, f9 as StatCard, fa as StatCardProps, fb as StatTile, fc as StatTileProps, fd as Statistic, fe as StatisticProps, ff as StatisticSize, fg as StatisticTone, fh as StatusBadge, fi as StatusBadgeProvider, fj as StatusEmphasis, fk as StepItem, fl as Stepper, fm as StepperProps, fn as StrokeVariant, fo as SunburstChart, fp as SunburstChartProps, fq as SunburstNode, fr as Switch, fs as SwitchProps, ft as SwitchSize, fu as TabItem, fv as Tabs, fw as TabsProps, fx as TagInput, fy as TagInputOption, fz as TagInputProps, fA as Text, fB as TextProps, fC as TextSize, fD as TextTone, fE as TextWeight, fF as Textarea, fG as TextareaProps, fH as Theme, fI as TileButton, fJ as TileButtonProps, fK as TileSize, fL as TimePicker, fM as TimePickerProps, fN as TimeSeriesChart, fO as TimeSeriesChartProps, fP as TimeSeriesSeries, fQ as TimelineMarker, fR as TimelineMarkerKind, fS as TimelineReport, fT as TimelineScrubProgress, fU as TimelineTrack, fV as TimelineTrackItem, fW as TimelineTrackKind, fX as TimelineTrackPending, fY as TimelineTrackPhase, fZ as TimelineTrackPlayback, f_ as TimelineTrackProps, f$ as TimelineTrackThumb, g0 as Title, g1 as TitleLevel, g2 as TitleProps, g3 as ToastOptions, g4 as ToastPlacement, g5 as Tooltip, g6 as TooltipProps, g7 as TopNav, g8 as TopNavItem, g9 as TopNavProps, ga as TreemapChart, gb as TreemapChartProps, gc as TreemapItem, gd as TreemapTile, ge as UseAppUpdateOptions, gf as UseProductionTimelineOpts, gg as VERSION, gh as VITE_PRELOAD_ERROR_EVENT, gi as WaterfallChart, gj as WaterfallChartProps, gk as WaterfallStep, gl as ZLayer, gm as Z_LAYERS, gn as angleScale, go as appendKey, gp as applyThemePrefs, gq as arcPath, gr as areaBetween, gs as areaFrom, gt as autoHighlightIndex, gu as backspace, gv as bandScale, gw as binValues, gx as budgetState, gy as bumpPath, gz as buttonClasses, gA as calcOverall, gB as calcReportOverall, gC as confirm, gD as confirmDestructive, gE as curvePath, gF as dashFor, gG as dismissPopups, gH as fillFor, gI as fillId, gJ as firstDayOfWeek, gK as fmtSliderDate, gL as formatDate, gM as fromDateKey, gN as glassStyle, gO as glowId, gP as groundId, gQ as groupColors, gR as highlightOpacity, gS as iconButtonClasses, gT as inputClasses, gU as installStaleChunkReload, gV as isMac, gW as isSeverityTone, gX as isStaleChunkError, gY as ladderScale, gZ as linearPath, g_ as linearScale, g$ as logScale, h0 as maskId, h1 as mediaFileName, h2 as monotonePath, h3 as niceMax, h4 as polygonPoints, h5 as popupBounds, h6 as prompt, h7 as radiusScale, h8 as resolveBrandMarkTreatment, h9 as resolvePortalBrandAsset, ha as resolveSeriesColor, hb as resolveTheme, hc as seriesColor, hd as severityOf, he as splinePath, hf as squarify, hg as stagger, hh as stepPath, hi as tabButtonId, hj as tabPanelId, hk as toDateKey, hl as toDayMs, hm as toISODate, hn as toast, ho as useAppUpdate, hp as useClickOutside, hq as useConfirm, hr as useDropdownPosition, hs as useFocusTrap, ht as useHighlight, hu as useIsMobile, hv as useLocalStoragePrefs, hw as usePlotWidth, hx as usePortalBranding, hy as useProductionTimeline, hz as useScrollLock, hA as useShellLocale, hB as useShellPrefs, hC as useShellStrings, hD as useTheme } from '../index-DIQYwgxx.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 DataTableRowLink, bg as DataTableRowProps, bh as DatePicker, bi as DatePickerProps, bj as DateRangePicker, bk as DateRangePickerProps, bl as DateTimePicker, bm as DateTimePickerProps, bn as DescriptionColumns, bo as DescriptionItem, bp as DescriptionList, bq as DescriptionListProps, br as Dialog, bs as DialogProps, bt as DialogSize, bu as Divider, bv as DividerProps, bw as DividerSpacing, bx as DonutChart, by as DonutChartProps, bz as DonutSegment, bA as Drawer, bB as DrawerProps, bC as DrawerSide, bD as DrawerSize, bE as DropdownMenu, bF as DropdownMenuAlign, bG as DropdownMenuCheckboxItem, bH as DropdownMenuDividerItem, bI as DropdownMenuEntry, bJ as DropdownMenuItem, bK as DropdownMenuLabelItem, bL as DropdownMenuLinkItem, bM as DropdownMenuProps, bN as DropdownMenuRadioItem, bO as DropdownMenuSide, bP as DropdownPositionOptions, bQ as ENTER, bR as EditableGrid, bS as EditableGridProps, bT as EmailTemplate, bU as EmptyState, bV as EmptyStateProps, bW as ErrorBoundary, bX as ErrorBoundaryProps, bY as ErrorPage, bZ as ErrorPageProps, b_ as FileIntake, b$ as FilePicker, c0 as FilePickerProps, c1 as FillVariant, c2 as FormError, c3 as FormErrorSummary, c4 as FormErrorSummaryProps, c5 as FormField, c6 as FormFieldProps, c7 as FormLayoutPage, c8 as FormatDateOptions, c9 as FunnelChart, ca as FunnelChartProps, cb as FunnelStage, cc as GLASS_DIVIDER, ce as GROUP_COLORS, cf as GROUP_COLORS_SOLID, cg as GalleryTemplate, ch as Gap, ci as GlobalSearch, cj as GlobalSearchProps, ck as Grid, cl as GridCols, cm as GridColumn, cn as GridProps, co as HeatmapChart, cp as HeatmapChartProps, cq as HelpCenter, cr as HelpCenterDoc, cs as HelpCenterProps, ct as HistogramBin, cu as HistogramChart, cv as HistogramChartProps, cw as INPUT_BASE, cx as INPUT_SIZES, cy as IconButton, cz as IconButtonClassesOptions, cA as IconButtonProps, cB as Inline, cC as InlineProps, cD as Input, cE as InputNumber, cF as InputNumberProps, cG as InputProps, cH as InputSize, cI as Justify, cJ as Kanban, cK as KanbanColumn, cL as KanbanProps, cM as Kbd, cN as KbdProps, cO as KbdSize, cP as Label, cQ as LabelProps, cR as LadderScale, cS as LineChart, cT as LineChartProps, cU as LineChartSeries, cV as LinearScale, cW as ListFooter, cX as ListLoadError, cY as ListLoadErrorProps, cZ as LoadingSpinner, c_ as LoadingSpinnerProps, c$ as MAX_FRACTION_DIGITS, d0 as MENU_MAX_HEIGHT, d1 as MOD, d2 as MOTION, d3 as Markdown, d3 as MarkdownLite, d4 as MarkdownLiteProps, d4 as MarkdownProps, d5 as MediaUploadField, d6 as MediaUploadFieldProps, d7 as MediaUploadGrid, d8 as MediaUploadGridItem, d9 as MediaUploadGridProps, da as MenuPos, db as Meter, dc as MeterProps, dd as MetricBar, de as MetricBarProps, df as Milestone, dg as MilestoneKind, dh as MilestoneTimeline, di as MilestoneTimelineProps, dj as NEXT_CHUNK_PATH_PREFIX, dk as NativeSelect, dl as NumericKeypad, dm as NumericKeypadProps, dn as OVERLAY_OPEN_EVENT, dp as POPUP_MAX_WIDTH, dq as POST_PRODUCTION_STATUSES, dr as PageHeader, ds as PageHeaderProps, P as PaginatedResponse, dt as Pagination, du as PaginationProps, dv as PaperclipGlyph, dw as Paragraph, dx as ParagraphProps, dy as PieChart, dz as PieChartProps, dA as PieSegment, dB as PlotGeometry, dC as Point, dD as Popover, dE as PopoverAlign, dF as PopoverProps, dG as PopoverRenderProps, dH as PopoverSide, dI as PopupMenu, dJ as PopupMenuDivider, dK as PopupMenuItem, dL as PopupMenuItemProps, dM as PopupMenuLabel, dN as PopupMenuProps, dO as PopupSubmenu, dP as PopupSubmenuProps, dQ as PortalBrandingContextValue, dR as PortalBrandingProvider, dS as PortalBrandingProviderProps, dT as ProductionTimeline, dU as ProductionTimelineProps, dV as ProductionTimelineSnapshot, dW as ProgressItem, dX as PublicPortal, dY as PublicPortalBranding, dZ as RADAR_SERIES_CAP, d_ as RadarAxis, d$ as RadarChart, e0 as RadarChartProps, e1 as RadarSeries, e2 as RadialBarChart, e3 as RadialBarChartProps, e4 as RadialBarRow, e5 as Radio, e6 as RadioGroup, e7 as RadioGroupOption, e8 as RadioGroupOrientation, e9 as RadioGroupProps, ea as RadioProps, eb as Range, ec as RangeChart, ed as RangeChartProps, ee as RangeRow, ef as RankedBars, eg as RankedBarsProps, eh as RankedBarsRow, ei as ResolvedPortalBrandAsset, ej as Result, ek as ResultProps, el as ResultStatus, em as RevealDirection, en as SCATTER_SERIES_CAP, eo as SERIES_SLOT_COUNT, ep as SERIES_VARS, eq as SHIFT, er as STAGES, es as STALE_CHUNK_RELOAD_COOLDOWN_MS, et as STALE_CHUNK_RELOAD_KEY, eu as STATUS_VARS, ev as SankeyChart, ew as SankeyChartProps, ex as SankeyLink, ey as SankeyNode, ez as ScatterChart, eA as ScatterChartProps, eB as ScatterPoint, eC as ScatterSeries, S as SearchConfig, eD as SearchProvider, eE as SearchResult, eF as SearchableOption, eG as SearchableSelect, eH as SearchableSelectProps, eI as Segmented, eJ as SegmentedOption, eK as SegmentedProps, eL as SegmentedSize, eM as Select, eN as SelectOption, eO as SelectProps, eP as SemanticGroup, eQ as SettingRow, eR as SettingRowProps, eS as SeverityTone, eT as ShellPrefsAdapter, eU as ShellPrefsProvider, eV as ShellStrings, eW as ShellStringsOverride, eX as ShellStringsProvider, eY as SidebarActionButton, eZ as SidebarActionButtonProps, e_ as SidebarGroupLabel, e$ as SidebarLayout, f0 as SidebarLayoutProps, f1 as SidebarNavItem, f2 as SidebarNavItemProps, f3 as Skeleton, f4 as SkeletonProps, f5 as SkeletonVariant, f6 as Snippet, f7 as SnippetProps, f8 as SnippetSize, f9 as SnippetVariant, a as SortState, fa as Sparkline, fb as SparklineProps, fc as Stack, fd as StackProps, fe as StaleChunkReloadOptions, ff as StatCard, fg as StatCardProps, fh as StatTile, fi as StatTileProps, fj as Statistic, fk as StatisticProps, fl as StatisticSize, fm as StatisticTone, fn as StatusBadge, fo as StatusBadgeProvider, fp as StatusEmphasis, fq as StepItem, fr as Stepper, fs as StepperProps, ft as StrokeVariant, fu as SunburstChart, fv as SunburstChartProps, fw as SunburstNode, fx as Switch, fy as SwitchProps, fz as SwitchSize, fA as TabItem, fB as Tabs, fC as TabsProps, fD as TagInput, fE as TagInputOption, fF as TagInputProps, fG as Text, fH as TextProps, fI as TextSize, fJ as TextTone, fK as TextWeight, fL as Textarea, fM as TextareaProps, fN as Theme, fO as TileButton, fP as TileButtonProps, fQ as TileSize, fR as TimePicker, fS as TimePickerProps, fT as TimeSeriesChart, fU as TimeSeriesChartProps, fV as TimeSeriesSeries, fW as TimelineMarker, fX as TimelineMarkerKind, fY as TimelineReport, fZ as TimelineScrubProgress, f_ as TimelineTrack, f$ as TimelineTrackItem, g0 as TimelineTrackKind, g1 as TimelineTrackPending, g2 as TimelineTrackPhase, g3 as TimelineTrackPlayback, g4 as TimelineTrackProps, g5 as TimelineTrackThumb, g6 as Title, g7 as TitleLevel, g8 as TitleProps, g9 as ToastOptions, ga as ToastPlacement, gb as Tooltip, gc as TooltipProps, gd as TopNav, ge as TopNavItem, gf as TopNavProps, gg as TreemapChart, gh as TreemapChartProps, gi as TreemapItem, gj as TreemapTile, gk as UseAppUpdateOptions, gl as UseProductionTimelineOpts, gm as VERSION, gn as VITE_PRELOAD_ERROR_EVENT, go as WaterfallChart, gp as WaterfallChartProps, gq as WaterfallStep, gr as ZLayer, gs as Z_LAYERS, gt as angleScale, gu as appendKey, gv as applyThemePrefs, gw as arcPath, gx as areaBetween, gy as areaFrom, gz as autoHighlightIndex, gA as backspace, gB as bandScale, gC as binValues, gD as budgetState, gE as bumpPath, gF as buttonClasses, gG as calcOverall, gH as calcReportOverall, gI as confirm, gJ as confirmDestructive, gK as curvePath, gL as dashFor, gM as dismissPopups, gN as fillFor, gO as fillId, gP as firstDayOfWeek, gQ as fmtSliderDate, gR as formatDate, gS as fromDateKey, gT as glassStyle, gU as glowId, gV as groundId, gW as groupColors, gX as highlightOpacity, gY as iconButtonClasses, gZ as inputClasses, g_ as installStaleChunkReload, g$ as isMac, h0 as isSeverityTone, h1 as isStaleChunkError, h2 as ladderScale, h3 as linearPath, h4 as linearScale, h5 as logScale, h6 as maskId, h7 as mediaFileName, h8 as monotonePath, h9 as niceMax, ha as polygonPoints, hb as popupBounds, hc as prompt, hd as radiusScale, he as resolveBrandMarkTreatment, hf as resolvePortalBrandAsset, hg as resolveSeriesColor, hh as resolveTheme, hi as seriesColor, hj as severityOf, hk as splinePath, hl as squarify, hm as stagger, hn as stepPath, ho as tabButtonId, hp as tabPanelId, hq as toDateKey, hr as toDayMs, hs as toISODate, ht as toast, hu as useAppUpdate, hv as useClickOutside, hw as useConfirm, hx as useDropdownPosition, hy as useFocusTrap, hz as useHighlight, hA as useIsMobile, hB as useLocalStoragePrefs, hC as usePlotWidth, hD as usePortalBranding, hE as useProductionTimeline, hF as useScrollLock, hG as useShellLocale, hH as useShellPrefs, hI as useShellStrings, hJ as useTheme } from '../index-BMISANa_.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-
|
|
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-IH3W7GR5.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-2Q3T5CT3.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/dist/ui.css
CHANGED
|
@@ -797,6 +797,22 @@ html.rosh-reduce-transparency *::after {
|
|
|
797
797
|
.rosh-dt-value {
|
|
798
798
|
display: contents;
|
|
799
799
|
}
|
|
800
|
+
/* `stackBelow`: the box the query measures is scaled to 40/`stackBelow` of the
|
|
801
|
+
table's width and `rosh-dt-fit` inside it back up to the whole of it — see
|
|
802
|
+
the prop. `rosh-dt-fit` is a size container of its own (unnamed), so a cell's
|
|
803
|
+
container variant measures the table, not the scaled box; the outer box
|
|
804
|
+
clips the fraction of a pixel two percentages can round to, horizontally
|
|
805
|
+
only, so nothing is cut off below. */
|
|
806
|
+
.rosh-dt-at {
|
|
807
|
+
overflow-x: clip;
|
|
808
|
+
}
|
|
809
|
+
.rosh-dt-fit {
|
|
810
|
+
container-type: inline-size;
|
|
811
|
+
}
|
|
812
|
+
/* `only: 'stacked'` — a card's line, and nothing in the strip of columns. */
|
|
813
|
+
.rosh-dt-only-stacked {
|
|
814
|
+
display: none;
|
|
815
|
+
}
|
|
800
816
|
|
|
801
817
|
@container rosh-dt (width < 40rem) {
|
|
802
818
|
/* The frame `bordered` draws steps aside: every card has an edge of its own,
|
|
@@ -887,9 +903,13 @@ html.rosh-reduce-transparency *::after {
|
|
|
887
903
|
border-width: 0;
|
|
888
904
|
}
|
|
889
905
|
|
|
890
|
-
/* One card per row.
|
|
906
|
+
/* One card per row — each as wide as the table and no wider. The one track
|
|
907
|
+
is `minmax(0, 1fr)`: an `auto` track grows to its widest card's
|
|
908
|
+
min-content, so one line that will not wrap (an ellipsis, a name kept on
|
|
909
|
+
one line) pushed every card past the table's edge. */
|
|
891
910
|
.rosh-dt-body {
|
|
892
911
|
display: grid;
|
|
912
|
+
grid-template-columns: minmax(0, 1fr);
|
|
893
913
|
gap: 0.5rem;
|
|
894
914
|
}
|
|
895
915
|
.rosh-dt-table > .rosh-dt-body > .rosh-dt-row {
|
|
@@ -923,9 +943,25 @@ html.rosh-reduce-transparency *::after {
|
|
|
923
943
|
padding: 0.375rem 0;
|
|
924
944
|
background-color: transparent !important;
|
|
925
945
|
}
|
|
926
|
-
|
|
946
|
+
/* A rule between the card's lines — between LINES: a wide-only cell or a
|
|
947
|
+
corner is not one, so `~` rather than `+`, which would count a hidden
|
|
948
|
+
cell as the line above and rule off the top of a card. */
|
|
949
|
+
.rosh-dt-cell ~ .rosh-dt-cell {
|
|
927
950
|
border-top: 1px solid var(--line-subtle);
|
|
928
951
|
}
|
|
952
|
+
/* A cell with nothing in it is no line on the card: "Charges" with no
|
|
953
|
+
charge beside it is a label read for nothing. (Its column header is still
|
|
954
|
+
the table's, and a screen reader's.) The first line left showing has no
|
|
955
|
+
rule above it. Where `:has()` is not understood, the blank line stays, as
|
|
956
|
+
it always did. */
|
|
957
|
+
@supports selector(:has(a)) {
|
|
958
|
+
.rosh-dt-table > .rosh-dt-body > .rosh-dt-row > td.rosh-dt-cell:has(> .rosh-dt-value:empty) {
|
|
959
|
+
display: none;
|
|
960
|
+
}
|
|
961
|
+
.rosh-dt-table > .rosh-dt-body > .rosh-dt-row > td.rosh-dt-cell:not(:has(> .rosh-dt-value:empty)):not(.rosh-dt-cell:not(:has(> .rosh-dt-value:empty)) ~ *) {
|
|
962
|
+
border-top-width: 0;
|
|
963
|
+
}
|
|
964
|
+
}
|
|
929
965
|
.rosh-dt-table > .rosh-dt-body > .rosh-dt-row > td.rosh-dt-cell[data-label] {
|
|
930
966
|
display: grid;
|
|
931
967
|
grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
|
|
@@ -972,6 +1008,100 @@ html.rosh-reduce-transparency *::after {
|
|
|
972
1008
|
.rosh-dt-pager > nav {
|
|
973
1009
|
flex-wrap: wrap;
|
|
974
1010
|
}
|
|
1011
|
+
|
|
1012
|
+
/* `only`: each layout draws its own columns, header and cells together. A
|
|
1013
|
+
card-only column's header is hidden from sight like every header that
|
|
1014
|
+
does not sort, and kept for screen readers. */
|
|
1015
|
+
.rosh-dt-table > .rosh-dt-head > tr > th.rosh-dt-only-wide,
|
|
1016
|
+
.rosh-dt-table > .rosh-dt-body > .rosh-dt-row > td.rosh-dt-only-wide {
|
|
1017
|
+
display: none;
|
|
1018
|
+
}
|
|
1019
|
+
.rosh-dt-table > .rosh-dt-head > tr > th.rosh-dt-only-stacked {
|
|
1020
|
+
display: block;
|
|
1021
|
+
}
|
|
1022
|
+
|
|
1023
|
+
/* `cardCorner`: the cell leads the card from its top-left corner, as the
|
|
1024
|
+
selection box does, and the lines make room beside it. */
|
|
1025
|
+
.rosh-dt-table > .rosh-dt-body > .rosh-dt-row-corner {
|
|
1026
|
+
padding-left: 2.75rem;
|
|
1027
|
+
}
|
|
1028
|
+
.rosh-dt-table > .rosh-dt-body > .rosh-dt-row > td.rosh-dt-corner {
|
|
1029
|
+
position: absolute;
|
|
1030
|
+
top: 0;
|
|
1031
|
+
left: 0 !important;
|
|
1032
|
+
display: flex;
|
|
1033
|
+
width: auto !important;
|
|
1034
|
+
padding: 0.5rem 0.25rem 0.5rem 0.75rem;
|
|
1035
|
+
background-color: transparent !important;
|
|
1036
|
+
}
|
|
1037
|
+
|
|
1038
|
+
/* `current`: the bar runs down the card's edge rather than its first cell's. */
|
|
1039
|
+
.rosh-dt-table > .rosh-dt-body > .rosh-dt-row.rosh-dt-current {
|
|
1040
|
+
box-shadow: inset 4px 0 0 var(--ink-strongest);
|
|
1041
|
+
}
|
|
1042
|
+
.rosh-dt-table > .rosh-dt-body > .rosh-dt-current > td {
|
|
1043
|
+
box-shadow: none;
|
|
1044
|
+
}
|
|
1045
|
+
}
|
|
1046
|
+
|
|
1047
|
+
/* ── DataTable: a row that is one link (`rowHref`, `onRowPress`) ────────────
|
|
1048
|
+
* The row's link (or button) sits in a cell around the words that name the
|
|
1049
|
+
* row, and its `::after` is stretched over the whole row. The overlay is the
|
|
1050
|
+
* row's BOTTOM layer — `z-index: -1` inside the row, which `z-index: 0` makes
|
|
1051
|
+
* a stacking context — and the cells let the pointer through
|
|
1052
|
+
* (`pointer-events: none`) to it, except where it lands on something that is
|
|
1053
|
+
* interactive. So plain text anywhere on the row is the link, and a select, a
|
|
1054
|
+
* button or another link in a cell is pressed as itself, with nothing about
|
|
1055
|
+
* those controls changed: no position, no z-index, so a widget built of
|
|
1056
|
+
* layers (a select's chevron over its button) draws as it always does.
|
|
1057
|
+
*
|
|
1058
|
+
* Why not the usual stretched link — the overlay on top, every control lifted
|
|
1059
|
+
* over it with `position: relative; z-index: 1`? Lifting a control lifts it
|
|
1060
|
+
* over its own decorations too, and moving `position` onto an element that
|
|
1061
|
+
* had none, or had `absolute` (a visually hidden input), breaks it. And if an
|
|
1062
|
+
* engine will not make a table row a containing block, an overlay on top
|
|
1063
|
+
* covers the WHOLE table and every click opens the last row; one underneath
|
|
1064
|
+
* fails quietly — the words are still the link.
|
|
1065
|
+
*
|
|
1066
|
+
* Anything else that must answer the pointer itself — a tooltip's trigger —
|
|
1067
|
+
* sets `pointer-events: auto`. The layer is `components`, below utilities,
|
|
1068
|
+
* so a utility on a cell's content always wins.
|
|
1069
|
+
*
|
|
1070
|
+
* The focus ring: the kit draws it around the whole row, on the overlay; under
|
|
1071
|
+
* `rosh-host-focus` the host's own `:focus-visible` rule rings the link. */
|
|
1072
|
+
@layer components {
|
|
1073
|
+
.rosh-dt-linked {
|
|
1074
|
+
position: relative;
|
|
1075
|
+
z-index: 0;
|
|
1076
|
+
}
|
|
1077
|
+
.rosh-dt-linked > td {
|
|
1078
|
+
pointer-events: none;
|
|
1079
|
+
}
|
|
1080
|
+
.rosh-dt-linked > td :where(
|
|
1081
|
+
a[href], area[href], button, input, select, textarea, label, summary, iframe,
|
|
1082
|
+
audio[controls], video[controls], [contenteditable]:not([contenteditable="false"]),
|
|
1083
|
+
[tabindex]:not([tabindex="-1"]), [role="button"], [role="link"], [role="checkbox"],
|
|
1084
|
+
[role="radio"], [role="switch"], [role="combobox"], [role="menuitem"], [role="option"],
|
|
1085
|
+
[role="tab"], [role="slider"], [role="spinbutton"], [role="textbox"]
|
|
1086
|
+
) {
|
|
1087
|
+
pointer-events: auto;
|
|
1088
|
+
}
|
|
1089
|
+
.rosh-dt-row-link::after {
|
|
1090
|
+
content: "";
|
|
1091
|
+
position: absolute;
|
|
1092
|
+
inset: 0;
|
|
1093
|
+
z-index: -1;
|
|
1094
|
+
}
|
|
1095
|
+
.rosh-dt-row-link:focus-visible::after {
|
|
1096
|
+
box-shadow: inset 0 0 0 2px var(--rosh-focus-ring-solid);
|
|
1097
|
+
}
|
|
1098
|
+
/* `current` in the strip of columns: a bar down the row's leading edge, on
|
|
1099
|
+
its first cell drawn there (a row's own box-shadow is not painted by every
|
|
1100
|
+
engine). An edge, not a fill: a tone in a cell keeps the background it
|
|
1101
|
+
was measured against. */
|
|
1102
|
+
.rosh-dt-current > td:nth-child(1 of :not(.rosh-dt-only-stacked)) {
|
|
1103
|
+
box-shadow: inset 4px 0 0 var(--ink-strongest);
|
|
1104
|
+
}
|
|
975
1105
|
}
|
|
976
1106
|
|
|
977
1107
|
/* ── Chart motion ───────────────────────────────────────────────────────────
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "efficient-shell",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.149.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",
|
package/dist/chunk-6JXLEPRE.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var r="4.147.0",a=r;export{a as APP_VERSION,r as VERSION};
|
package/dist/chunk-D4HWQ3ET.js
DELETED
|
@@ -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 max-h-full w-full ${T[h]} overflow-y-auto overscroll-contain 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 flex-wrap 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};
|