efficient-shell 7.66.0 → 7.67.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 (69) hide show
  1. package/dist/{Browser-VIPLAZPA.js → Browser-YKQMCWJN.js} +14 -14
  2. package/dist/Calculator-LXSKGHZ5.js +29 -0
  3. package/dist/ConfirmDialog-CUGGS4GQ.js +1 -0
  4. package/dist/{CurrencyConverter-AVOUJJFV.js → CurrencyConverter-OLQEV6VI.js} +8 -8
  5. package/dist/{Documents-KCBZ7VP3.js → Documents-M57PJORE.js} +15 -15
  6. package/dist/{Files-D5534EA4.js → Files-WAYK4MSJ.js} +80 -80
  7. package/dist/{Notepad-5TSOFDJX.js → Notepad-T3SDT6Z6.js} +9 -9
  8. package/dist/{PdfViewer-RTV6NP6H.js → PdfViewer-CT6V2SKJ.js} +1 -1
  9. package/dist/PomodoroTimer-U7AMOHMF.js +91 -0
  10. package/dist/{Preview-IZQQA4S7.js → Preview-5Q3IKVGD.js} +20 -20
  11. package/dist/Sidebar-BFADXCPU.js +43 -0
  12. package/dist/{Spreadsheet-5RKYWPI6.js → Spreadsheet-K73I3IA5.js} +14 -14
  13. package/dist/{Stock-2IPMYPPX.js → Stock-IJXUEGNO.js} +3 -3
  14. package/dist/{Weather-CQHVBFKT.js → Weather-W3PSYZMS.js} +15 -15
  15. package/dist/{WorldClock-M3DXVIZL.js → WorldClock-2HG7E4OT.js} +5 -5
  16. package/dist/ai/index.js +13 -13
  17. package/dist/apps/index.js +1 -1
  18. package/dist/bin/ui-check.js +1 -1
  19. package/dist/{chunk-CPDR5VYL.js → chunk-2KJSKZDK.js} +1 -1
  20. package/dist/{chunk-Q4L6E3PQ.js → chunk-2RSTAB74.js} +8 -8
  21. package/dist/{chunk-RDLWLATO.js → chunk-3E27HV76.js} +2 -2
  22. package/dist/{chunk-N4YDKF7A.js → chunk-5YUIRGPU.js} +6 -6
  23. package/dist/{chunk-BDJ5ITX6.js → chunk-64UADSI5.js} +1 -1
  24. package/dist/{chunk-ENVRURGD.js → chunk-6NI3V3WV.js} +2 -2
  25. package/dist/{chunk-GGDCR6GM.js → chunk-72FYG5AK.js} +1 -1
  26. package/dist/{chunk-HVZDUIFB.js → chunk-BD54BNPH.js} +10 -10
  27. package/dist/{chunk-VUX5EQN5.js → chunk-C3DPVSYL.js} +1 -1
  28. package/dist/{chunk-HI2ZOE6K.js → chunk-DKNO37NW.js} +12 -12
  29. package/dist/{chunk-SQTXJESD.js → chunk-FX3LDKDB.js} +98 -98
  30. package/dist/chunk-G5GERM76.js +2 -0
  31. package/dist/chunk-GBP32PVK.js +1 -0
  32. package/dist/{chunk-YWGXQERP.js → chunk-GOWDMYY4.js} +2 -2
  33. package/dist/{chunk-HWNAQ5MF.js → chunk-HDS3ISDZ.js} +15 -15
  34. package/dist/{chunk-73726UPK.js → chunk-LJLP3HMD.js} +1 -1
  35. package/dist/{chunk-PHUMA5ME.js → chunk-PPFMVR3U.js} +4 -4
  36. package/dist/{chunk-5DTPO25W.js → chunk-QDQISPNZ.js} +1 -1
  37. package/dist/{chunk-2SUZLDPO.js → chunk-QMQDQE3W.js} +2 -2
  38. package/dist/{chunk-EU4BCXGA.js → chunk-RWNNFCSA.js} +1 -1
  39. package/dist/{chunk-S3IYYSTT.js → chunk-SCXTNJBZ.js} +1 -1
  40. package/dist/{chunk-VM4TA3CI.js → chunk-UYIPX3GN.js} +314 -314
  41. package/dist/chunk-VGNNRYAM.js +1 -0
  42. package/dist/{chunk-3LZCNWKD.js → chunk-XUV6NWQ2.js} +9 -9
  43. package/dist/{chunk-YJIG2KT3.js → chunk-YIC644QO.js} +3 -3
  44. package/dist/{chunk-JNNGFK5N.js → chunk-YWC7G2CN.js} +1 -1
  45. package/dist/{chunk-Q4VC5ZVW.js → chunk-YZSQ572K.js} +11 -11
  46. package/dist/{chunk-W7HCERPE.js → chunk-Z5PBCZNS.js} +1 -1
  47. package/dist/{chunk-SE6QT4NG.js → chunk-ZZWMAATC.js} +9 -9
  48. package/dist/file-intake/index.js +1 -1
  49. package/dist/i18n/index.d.ts +1 -1
  50. package/dist/{index-BddrJwtq.d.ts → index-B6kl2VTe.d.ts} +1 -1
  51. package/dist/index.d.ts +17 -4
  52. package/dist/index.js +691 -687
  53. package/dist/locales/zh-Hans.d.ts +1 -1
  54. package/dist/locales/zh-Hans.js +1 -1
  55. package/dist/map/index.js +5 -5
  56. package/dist/page-tabs/index.js +5 -5
  57. package/dist/pdf/index.js +1 -1
  58. package/dist/{strings-BXfu1R53.d.ts → strings-C_0nDRsv.d.ts} +2 -0
  59. package/dist/telemetry/index.js +1 -1
  60. package/dist/ui/index.d.ts +2 -2
  61. package/dist/ui/index.js +1 -1
  62. package/package.json +1 -1
  63. package/dist/Calculator-P5ZRUIZJ.js +0 -29
  64. package/dist/ConfirmDialog-EORVHGKM.js +0 -1
  65. package/dist/PomodoroTimer-HZ5CSLSS.js +0 -91
  66. package/dist/Sidebar-463ZRYGR.js +0 -43
  67. package/dist/chunk-3RZU7NQB.js +0 -1
  68. package/dist/chunk-DELNCIUK.js +0 -2
  69. package/dist/chunk-SB5KBKVJ.js +0 -1
@@ -0,0 +1 @@
1
+ var r="7.67.0",a=r;export{a as APP_VERSION,r as VERSION};
@@ -1,23 +1,23 @@
1
- import{toast_default as e}from"./chunk-BDJ5ITX6.js";import{LoadingSpinner as t}from"./chunk-2J6F4EE7.js";import{Icon as n}from"./chunk-76DRQSJM.js";import{useShellStrings as r}from"./chunk-SB5KBKVJ.js";import{createContext as a,useContext as o,useRef as i,useState as s,useEffect as l}from"react";import*as c from"pdfjs-dist";import{createPortal as d}from"react-dom";import{jsx as u,jsxs as m}from"react/jsx-runtime";function h(e,t,n){return new Error(`The response for ${e} is not a WebAssembly module (got ${function(e){if(0===e.length)return"an empty response";const t=Array.from(e.subarray(0,24)).map(e=>e>=32&&e<127?String.fromCharCode(e):".").join("");return`${e.length} bytes starting "${t}"`}(n)}). The bundler did not emit "${t}" as an asset, and the host answered with a fallback page instead of a 404. Serve pdfjs-dist/wasm/ yourself and point window.__REACT_OS_SHELL_PDF_WASM__ at it.`)}var p=a(null);function f({children:e}){const t=o(p);return t?d(e,t):
2
- /* @__PURE__ */u("div",{className:"flex shrink-0 flex-wrap items-center gap-1 border-b border-gray-200 bg-gray-50 px-3 py-2 text-xs",children:e})}"undefined"==typeof window||c.GlobalWorkerOptions.workerSrc||(c.GlobalWorkerOptions.workerSrc=`https://unpkg.com/pdfjs-dist@${c.version}/build/pdf.worker.min.mjs`);var g={"jbig2.wasm":new URL("pdfjs-dist/wasm/jbig2.wasm",import.meta.url).href,"openjpeg.wasm":new URL("pdfjs-dist/wasm/openjpeg.wasm",import.meta.url).href},w=class{async fetch({kind:e,filename:t}){if("wasmUrl"!==e)throw new Error(`Ensure that the \`${e}\` API parameter is provided.`);const n=g[t];if(!n)throw new Error(`No bundled pdf.js wasm module for "${t}".`);const r=await fetch(n);if(!r.ok)throw new Error(`Unable to load wasm data at: ${n}`);const a=new Uint8Array(await r.arrayBuffer());if(!function(e){return e.length>=4&&0===e[0]&&97===e[1]&&115===e[2]&&109===e[3]}(a))throw h(n,t,a);return a}};function y(e){const t=e||("undefined"!=typeof window?window.__REACT_OS_SHELL_PDF_WASM__:void 0);return"string"==typeof t&&t?{wasmUrl:t.endsWith("/")?t:`${t}/`}:{BinaryDataFactory:w}}var v=[50,75,100,125,150,200,300,400];function b(e,t,n){const r=(t.width-40)/n.width,a="page"===e?Math.min(r,(t.height-40)/n.height):r;return Math.min(Math.max(a,.3),4)}function x({url:a,filename:o,fit:d="width",onDownload:h,onEmail:p,workerSrc:g,wasmUrl:w}){const x=r().pdf,k=i(null),C=i(null),N=i(null),[j,E]=s(null),[M,z]=s(1),[D,_]=s(0),[P,S]=s(1),[W,L]=s(!0),[T,$]=s(!0),A=i(x.loadFailed);A.current=x.loadFailed,l(()=>{let t=!1;return $(!0),z(1),g&&(c.GlobalWorkerOptions.workerSrc=g),c.getDocument({url:a,...y(w)}).promise.then(e=>{t||(E(e),_(e.numPages),$(!1))}).catch(()=>{t||(e.error(A.current),$(!1))}),()=>{t=!0}},[a,g,w]),l(()=>{if(!j||!W||!N.current)return;const e=()=>{const e=N.current;e&&j.getPage(M).then(t=>{if(!N.current)return;const n=t.getViewport({scale:1}),r=b(d,{width:e.clientWidth,height:e.clientHeight},{width:n.width,height:n.height});S(e=>Math.abs(e-r)<.005?e:r)})};e();const t=new ResizeObserver(e);return t.observe(N.current),()=>t.disconnect()},[j,M,W,d]),l(()=>{if(!j||!k.current)return;let e=!1,t=null,n=null;return j.getPage(M).then(r=>{if(e||!k.current)return;const a=r.getViewport({scale:P}),o=k.current;o.width=a.width,o.height=a.height,o.style.width=`${a.width}px`,o.style.height=`${a.height}px`;const i=o.getContext("2d");t=r.render({canvas:o,canvasContext:i,viewport:a}),t.promise.catch(()=>{});const s=C.current;s&&(s.replaceChildren(),s.style.setProperty("--total-scale-factor",String(a.scale)),n=new c.TextLayer({textContentSource:r.streamTextContent(),container:s,viewport:a}),n.render().then(()=>{if(e)return;const t=document.createElement("div");t.className="endOfContent",s.append(t)}).catch(()=>{}))}),()=>{e=!0,t?.cancel(),n?.cancel()}},[j,M,P]),l(()=>{const e=()=>C.current?.classList.remove("selecting");return window.addEventListener("pointerup",e),()=>window.removeEventListener("pointerup",e)},[]);const O="page"===d?x.fitPage:x.fitWidth,U="px-2 py-1 rounded hover:bg-gray-200 transition-colors text-gray-600 flex items-center gap-1";/* @__PURE__ */
1
+ import{toast_default as e}from"./chunk-64UADSI5.js";import{LoadingSpinner as t}from"./chunk-2J6F4EE7.js";import{Icon as n}from"./chunk-76DRQSJM.js";import{useShellStrings as r}from"./chunk-GBP32PVK.js";import{createContext as a,useContext as o,useRef as i,useState as s,useEffect as l}from"react";import*as c from"pdfjs-dist";import{createPortal as d}from"react-dom";import{jsx as u,jsxs as m}from"react/jsx-runtime";function h(e,t,n){return new Error(`The response for ${e} is not a WebAssembly module (got ${function(e){if(0===e.length)return"an empty response";const t=Array.from(e.subarray(0,24)).map(e=>e>=32&&e<127?String.fromCharCode(e):".").join("");return`${e.length} bytes starting "${t}"`}(n)}). The bundler did not emit "${t}" as an asset, and the host answered with a fallback page instead of a 404. Serve pdfjs-dist/wasm/ yourself and point window.__REACT_OS_SHELL_PDF_WASM__ at it.`)}var p=a(null);function f({children:e}){const t=o(p);return t?d(e,t):
2
+ /* @__PURE__ */u("div",{className:"flex shrink-0 flex-wrap items-center gap-1 border-b border-gray-200 bg-gray-50 px-3 py-2 text-xs",children:e})}"undefined"==typeof window||c.GlobalWorkerOptions.workerSrc||(c.GlobalWorkerOptions.workerSrc=`https://unpkg.com/pdfjs-dist@${c.version}/build/pdf.worker.min.mjs`);var g={"jbig2.wasm":new URL("pdfjs-dist/wasm/jbig2.wasm",import.meta.url).href,"openjpeg.wasm":new URL("pdfjs-dist/wasm/openjpeg.wasm",import.meta.url).href},w=class{async fetch({kind:e,filename:t}){if("wasmUrl"!==e)throw new Error(`Ensure that the \`${e}\` API parameter is provided.`);const n=g[t];if(!n)throw new Error(`No bundled pdf.js wasm module for "${t}".`);const r=await fetch(n);if(!r.ok)throw new Error(`Unable to load wasm data at: ${n}`);const a=new Uint8Array(await r.arrayBuffer());if(!function(e){return e.length>=4&&0===e[0]&&97===e[1]&&115===e[2]&&109===e[3]}(a))throw h(n,t,a);return a}};function y(e){const t=e||("undefined"!=typeof window?window.__REACT_OS_SHELL_PDF_WASM__:void 0);return"string"==typeof t&&t?{wasmUrl:t.endsWith("/")?t:`${t}/`}:{BinaryDataFactory:w}}var v=[50,75,100,125,150,200,300,400];function b(e,t,n){const r=(t.width-40)/n.width,a="page"===e?Math.min(r,(t.height-40)/n.height):r;return Math.min(Math.max(a,.3),4)}function x({url:a,filename:o,fit:d="width",onDownload:h,onEmail:p,workerSrc:g,wasmUrl:w}){const x=r().pdf,k=i(null),C=i(null),N=i(null),[j,E]=s(null),[M,P]=s(1),[z,D]=s(0),[_,S]=s(1),[W,L]=s(!0),[$,A]=s(!0),T=i(x.loadFailed);T.current=x.loadFailed,l(()=>{let t=!1;return A(!0),P(1),g&&(c.GlobalWorkerOptions.workerSrc=g),c.getDocument({url:a,...y(w)}).promise.then(e=>{t||(E(e),D(e.numPages),A(!1))}).catch(()=>{t||(e.error(T.current),A(!1))}),()=>{t=!0}},[a,g,w]),l(()=>{if(!j||!W||!N.current)return;const e=()=>{const e=N.current;e&&j.getPage(M).then(t=>{if(!N.current)return;const n=t.getViewport({scale:1}),r=b(d,{width:e.clientWidth,height:e.clientHeight},{width:n.width,height:n.height});S(e=>Math.abs(e-r)<.005?e:r)})};e();const t=new ResizeObserver(e);return t.observe(N.current),()=>t.disconnect()},[j,M,W,d]),l(()=>{if(!j||!k.current)return;let e=!1,t=null,n=null;return j.getPage(M).then(r=>{if(e||!k.current)return;const a=r.getViewport({scale:_}),o=k.current;o.width=a.width,o.height=a.height,o.style.width=`${a.width}px`,o.style.height=`${a.height}px`;const i=o.getContext("2d");t=r.render({canvas:o,canvasContext:i,viewport:a}),t.promise.catch(()=>{});const s=C.current;s&&(s.replaceChildren(),s.style.setProperty("--total-scale-factor",String(a.scale)),n=new c.TextLayer({textContentSource:r.streamTextContent(),container:s,viewport:a}),n.render().then(()=>{if(e)return;const t=document.createElement("div");t.className="endOfContent",s.append(t)}).catch(()=>{}))}),()=>{e=!0,t?.cancel(),n?.cancel()}},[j,M,_]),l(()=>{const e=()=>C.current?.classList.remove("selecting");return window.addEventListener("pointerup",e),()=>window.removeEventListener("pointerup",e)},[]);const O="page"===d?x.fitPage:x.fitWidth,U="px-2 py-1 rounded hover:bg-gray-200 transition-colors text-gray-600 flex items-center gap-1";/* @__PURE__ */
3
3
  return m("div",{className:"flex flex-col h-full",children:[
4
4
  /* @__PURE__ */m(f,{children:[
5
- /* @__PURE__ */u("button",{type:"button","aria-label":x.previousPage,onClick:()=>z(e=>Math.max(1,e-1)),disabled:M<=1,className:"px-1 py-1 rounded hover:bg-gray-200 disabled:opacity-30 text-gray-600",children:/* @__PURE__ */u(n,{name:"chevron-left",className:"h-3.5 w-3.5",strokeWidth:2})}),
6
- /* @__PURE__ */u("span",{className:"text-gray-600 font-medium tabular-nums whitespace-nowrap",children:x.pageOf(M,D)}),
7
- /* @__PURE__ */u("button",{type:"button","aria-label":x.nextPage,onClick:()=>z(e=>Math.min(D,e+1)),disabled:M>=D,className:"px-1 py-1 rounded hover:bg-gray-200 disabled:opacity-30 text-gray-600",children:/* @__PURE__ */u(n,{name:"chevron-right",className:"h-3.5 w-3.5",strokeWidth:2})}),
5
+ /* @__PURE__ */u("button",{type:"button","aria-label":x.previousPage,onClick:()=>P(e=>Math.max(1,e-1)),disabled:M<=1,className:"px-1 py-1 rounded hover:bg-gray-200 disabled:opacity-30 text-gray-600",children:/* @__PURE__ */u(n,{name:"chevron-left",className:"h-3.5 w-3.5",strokeWidth:2})}),
6
+ /* @__PURE__ */u("span",{className:"text-gray-600 font-medium tabular-nums whitespace-nowrap",children:x.pageOf(M,z)}),
7
+ /* @__PURE__ */u("button",{type:"button","aria-label":x.nextPage,onClick:()=>P(e=>Math.min(z,e+1)),disabled:M>=z,className:"px-1 py-1 rounded hover:bg-gray-200 disabled:opacity-30 text-gray-600",children:/* @__PURE__ */u(n,{name:"chevron-right",className:"h-3.5 w-3.5",strokeWidth:2})}),
8
8
  /* @__PURE__ */u("div",{className:"h-4 w-px bg-gray-300 mx-1"}),
9
9
  /* @__PURE__ */u("button",{type:"button","aria-label":x.zoomOut,title:x.zoomOut,onClick:()=>{L(!1),S(e=>Math.max(.3,Math.round(100*(e-.25))/100))},className:U,children:/* @__PURE__ */u("span",{"aria-hidden":"true",children:"−"})}),
10
- /* @__PURE__ */m("select",{value:W?"fit":v.includes(Math.round(100*P))?Math.round(100*P):"custom",onChange:e=>{const t=e.target.value;"fit"!==t?"custom"!==t&&(L(!1),S(Number(t)/100)):L(!0)},className:"bg-transparent hover:bg-gray-200 rounded px-1 py-1 text-gray-600 tabular-nums cursor-pointer focus:outline-none focus:ring-1 focus:ring-blue-400","aria-label":x.zoom,title:x.zoom,children:[
11
- /* @__PURE__ */u("option",{value:"fit",children:O}),!W&&!v.includes(Math.round(100*P))&&/* @__PURE__ */m("option",{value:"custom",children:[Math.round(100*P),"%"]}),v.map(e=>/* @__PURE__ */m("option",{value:e,children:[e,"%"]},e))]}),
10
+ /* @__PURE__ */m("select",{value:W?"fit":v.includes(Math.round(100*_))?Math.round(100*_):"custom",onChange:e=>{const t=e.target.value;"fit"!==t?"custom"!==t&&(L(!1),S(Number(t)/100)):L(!0)},className:"bg-transparent hover:bg-gray-200 rounded px-1 py-1 text-gray-600 tabular-nums cursor-pointer focus:outline-none focus:ring-1 focus:ring-blue-400","aria-label":x.zoom,title:x.zoom,children:[
11
+ /* @__PURE__ */u("option",{value:"fit",children:O}),!W&&!v.includes(Math.round(100*_))&&/* @__PURE__ */m("option",{value:"custom",children:[Math.round(100*_),"%"]}),v.map(e=>/* @__PURE__ */m("option",{value:e,children:[e,"%"]},e))]}),
12
12
  /* @__PURE__ */u("button",{type:"button","aria-label":x.zoomIn,title:x.zoomIn,onClick:()=>{L(!1),S(e=>Math.min(4,Math.round(100*(e+.25))/100))},className:U,children:/* @__PURE__ */u("span",{"aria-hidden":"true",children:"+"})}),
13
13
  /* @__PURE__ */u("button",{type:"button",onClick:()=>L(!0),"aria-pressed":W,className:U+(W?" bg-gray-200 text-gray-900":""),title:x.fitHint,children:x.fit}),
14
14
  /* @__PURE__ */u("div",{className:"h-4 w-px bg-gray-300 mx-1"}),
15
- /* @__PURE__ */m("button",{type:"button",onClick:()=>{if(!j)return;const t=window.open("","_blank");if(!t)return void e.error(x.allowPopups);const n=[];for(let e=1;e<=D;e++)n.push(j.getPage(e).then(e=>{const t=e.getViewport({scale:2}),n=document.createElement("canvas");return n.width=t.width,n.height=t.height,e.render({canvas:n,canvasContext:n.getContext("2d"),viewport:t}).promise.then(()=>n.toDataURL())}));Promise.all(n).then(e=>{var n;t.document.write(`<html><head><title>${n=o,n.replace(/[&<>"]/g,e=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"}[e]))}</title><style>@media print{body{margin:0}img{width:100%;page-break-after:always}}</style></head><body>`),t.document.write(e.map(e=>`<img src="${e}"/>`).join("")),t.document.write("</body></html>"),t.document.close(),setTimeout(()=>{t.print(),t.close()},300)})},className:U,children:[
15
+ /* @__PURE__ */m("button",{type:"button",onClick:()=>{if(!j)return;const t=window.open("","_blank");if(!t)return void e.error(x.allowPopups);const n=[];for(let e=1;e<=z;e++)n.push(j.getPage(e).then(e=>{const t=e.getViewport({scale:2}),n=document.createElement("canvas");return n.width=t.width,n.height=t.height,e.render({canvas:n,canvasContext:n.getContext("2d"),viewport:t}).promise.then(()=>n.toDataURL())}));Promise.all(n).then(e=>{var n;t.document.write(`<html><head><title>${n=o,n.replace(/[&<>"]/g,e=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"}[e]))}</title><style>@media print{body{margin:0}img{width:100%;page-break-after:always}}</style></head><body>`),t.document.write(e.map(e=>`<img src="${e}"/>`).join("")),t.document.write("</body></html>"),t.document.close(),setTimeout(()=>{t.print(),t.close()},300)})},className:U,children:[
16
16
  /* @__PURE__ */u(n,{name:"print",className:"h-3.5 w-3.5",strokeWidth:1.5}),x.print]}),
17
17
  /* @__PURE__ */m("button",{type:"button",onClick:h??(()=>{const e=document.createElement("a");e.href=a,e.download=o,e.click()}),className:U,children:[
18
18
  /* @__PURE__ */u(n,{name:"download",className:"h-3.5 w-3.5",strokeWidth:1.5}),x.download]}),p&&/* @__PURE__ */m("button",{type:"button",onClick:p,className:U,children:[
19
19
  /* @__PURE__ */u(n,{name:"email",className:"h-3.5 w-3.5",strokeWidth:1.5}),x.email]})]}),
20
- /* @__PURE__ */u("div",{ref:N,className:"flex-1 overflow-auto bg-gray-100 outline-none",tabIndex:0,onWheel:e=>{if(!j)return;if(e.ctrlKey||e.metaKey)return;const t=N.current;if(!t)return;const n=t.scrollTop<=0,r=t.scrollTop+t.clientHeight>=t.scrollHeight-1;e.deltaY>0&&r&&M<D?(e.preventDefault(),z(e=>Math.min(D,e+1)),requestAnimationFrame(()=>{N.current&&(N.current.scrollTop=0)})):e.deltaY<0&&n&&M>1&&(e.preventDefault(),z(e=>Math.max(1,e-1)),requestAnimationFrame(()=>{N.current&&(N.current.scrollTop=N.current.scrollHeight)}))},onKeyDown:e=>{if(!j)return;const t=(document.activeElement?.tagName||"").toLowerCase();"input"===t||"textarea"===t||document.activeElement?.isContentEditable||("PageDown"===e.key||"ArrowRight"===e.key?M<D&&(e.preventDefault(),z(e=>Math.min(D,e+1))):"PageUp"===e.key||"ArrowLeft"===e.key?M>1&&(e.preventDefault(),z(e=>Math.max(1,e-1))):"Home"===e.key?(e.preventDefault(),z(1)):"End"===e.key&&(e.preventDefault(),z(D)))},children:T?/* @__PURE__ */u(t,{size:"sm",padding:"",className:"h-full",label:x.loading}):/* @__PURE__ */m("div",{className:"min-h-full flex items-center justify-center p-4",children:[
20
+ /* @__PURE__ */u("div",{ref:N,className:"flex-1 overflow-auto bg-gray-100 outline-none",tabIndex:0,onWheel:e=>{if(!j)return;if(e.ctrlKey||e.metaKey)return;const t=N.current;if(!t)return;const n=t.scrollTop<=0,r=t.scrollTop+t.clientHeight>=t.scrollHeight-1;e.deltaY>0&&r&&M<z?(e.preventDefault(),P(e=>Math.min(z,e+1)),requestAnimationFrame(()=>{N.current&&(N.current.scrollTop=0)})):e.deltaY<0&&n&&M>1&&(e.preventDefault(),P(e=>Math.max(1,e-1)),requestAnimationFrame(()=>{N.current&&(N.current.scrollTop=N.current.scrollHeight)}))},onKeyDown:e=>{if(!j)return;const t=(document.activeElement?.tagName||"").toLowerCase();"input"===t||"textarea"===t||document.activeElement?.isContentEditable||("PageDown"===e.key||"ArrowRight"===e.key?M<z&&(e.preventDefault(),P(e=>Math.min(z,e+1))):"PageUp"===e.key||"ArrowLeft"===e.key?M>1&&(e.preventDefault(),P(e=>Math.max(1,e-1))):"Home"===e.key?(e.preventDefault(),P(1)):"End"===e.key&&(e.preventDefault(),P(z)))},children:$?/* @__PURE__ */u(t,{size:"sm",padding:"",className:"h-full",label:x.loading}):/* @__PURE__ */m("div",{className:"min-h-full flex items-center justify-center p-4",children:[
21
21
  /* @__PURE__ */u("style",{children:'\n.preview-pdf-textlayer {\n position: absolute;\n inset: 0;\n overflow: clip;\n line-height: 1;\n text-align: initial;\n text-size-adjust: none;\n forced-color-adjust: none;\n transform-origin: 0 0;\n caret-color: CanvasText;\n --min-font-size: 1;\n --text-scale-factor: calc(var(--total-scale-factor, 1) * var(--min-font-size));\n --min-font-size-inv: calc(1 / var(--min-font-size));\n}\n.preview-pdf-textlayer :is(span, br) {\n color: transparent;\n position: absolute;\n white-space: pre;\n cursor: text;\n transform-origin: 0% 0%;\n}\n.preview-pdf-textlayer > :not(.markedContent),\n.preview-pdf-textlayer .markedContent span:not(.markedContent) {\n z-index: 1;\n --font-height: 0;\n font-size: calc(var(--text-scale-factor) * var(--font-height));\n --scale-x: 1;\n --rotate: 0deg;\n transform: rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv));\n}\n.preview-pdf-textlayer .markedContent {\n display: contents;\n}\n.preview-pdf-textlayer span[role="img"] {\n user-select: none;\n cursor: default;\n}\n.preview-pdf-textlayer ::selection {\n background: rgba(0, 80, 255, 0.25);\n}\n.preview-pdf-textlayer br::selection {\n background: transparent;\n}\n.preview-pdf-textlayer .endOfContent {\n display: block;\n position: absolute;\n inset: 100% 0 0;\n z-index: 0;\n cursor: default;\n user-select: none;\n}\n.preview-pdf-textlayer.selecting .endOfContent {\n top: 0;\n}\n'}),
22
22
  /* @__PURE__ */m("div",{className:"relative shadow-lg rounded",children:[
23
23
  /* @__PURE__ */u("canvas",{ref:k,className:"block rounded"}),
@@ -1,13 +1,13 @@
1
- import{glassStyle as e,GLASS_DIVIDER as t}from"./chunk-7IQ3B77H.js";import{useHydrated as n,useBrowserLayoutEffect as r}from"./chunk-D65T4H6J.js";import{onOverlayOpen as o,registerModalEscapeInterceptor as i,Z_LAYERS as a}from"./chunk-FIEA5CGB.js";import{Icon as l}from"./chunk-76DRQSJM.js";import{createContext as c,forwardRef as u,useContext as s,useId as d,useRef as p,useState as m,useEffect as h,useMemo as f,useCallback as g}from"react";import{createPortal as y}from"react-dom";import{jsxs as b,jsx as x,Fragment as w}from"react/jsx-runtime";var v=/* @__PURE__ */new Set(["text","search","url","tel","email","password","number","date","datetime-local","month","week","time"]),k="data-native-context-menu";function N(e,t){return e&&"function"==typeof e.closest?e.closest(t):null}function C(e){const t=e;if(!t||"function"!=typeof t.closest)return!1;if(N(t,`[${k}]`))return!0;if(N(t,"textarea"))return!0;if(N(t,"img, picture, canvas, video, audio"))return!0;const n=N(t,"input");if(n){const e=(n.type||"text").toLowerCase();if(v.has(e))return!0}const r=N(t,"[contenteditable]");if(r){const e=(r.getAttribute("contenteditable")||"").toLowerCase();if(""===e||"true"===e||"plaintext-only"===e)return!0}return!1}var T=/* @__PURE__ */new Set(["http:","https:","mailto:","tel:","blob:"]);function $(e,t,n){const r=N(e,"a[href]"),o=(t||"").trim(),i=function(e,t){if(e&&"#"!==e)try{const n=new URL(e,t??("undefined"!=typeof document?document.baseURI:void 0));return T.has(n.protocol)?n.href:void 0}catch{return}}(r?.getAttribute("href"),n);return{kind:o?"selection":i?"link":"default",...o?{selectionText:o}:{},...i?{linkUrl:i}:{}}}function E(e){if(e.defaultPrevented)return!0;if(e.shiftKey)return!0;if("touch"===e.pointerType)return!0;return C(("function"==typeof e.composedPath?e.composedPath()[0]:void 0)??e.target)}function L(e,t,n){return e.length===t+1&&e[t].key===n.key?e:[...e.slice(0,t),n]}function M(e,t){const n=Math.max(0,t);return e.length>n?e.slice(0,n):e}function B(e,t,n){if(0===t.length||0===e.length)return[];const r=[e];for(let e=1;e<t.length;e++){const o=r[e-1].find(n=>n.to===t[e].key),i=o?n(o):[];if(0===i.length)break;r.push(i)}return r}function A(e,t,n,r){const o=Math.max(0,r-n),i=Math.min(t,o),a=e-i/2;return a<n?n:a+i>r?Math.max(n,r-i):a}function R(e,t,n,r,o,i=!1,a=8){const l=t+o,c=e-o-n,u=c>=a;return i&&u?{left:c,flipped:!0}:l+n<=r-a?{left:l,flipped:!1}:u?{left:c,flipped:!0}:i?{left:a,flipped:!0}:{left:Math.max(a,r-a-n),flipped:!1}}function W(e=!1){return`mt-0.5 block truncate ${e?"text-2xs leading-4":"text-xs leading-4"} font-normal text-gray-500`}function H(){try{return getComputedStyle(document.documentElement).getPropertyValue("--menu-density")?.trim()||"normal"}catch{return"normal"}}var P=c(null),D=c(!1);function j({children:t,style:r,className:l="",onClose:c,minWidth:u=180,portal:s=!1}){const g=p(null),b=d(),[w,v]=m([]),k=p();h(()=>()=>clearTimeout(k.current),[]);const N=n(),T=f(()=>{const e=()=>clearTimeout(k.current);return{id:b,depth:0,path:w,open:(t,n)=>{e(),v(e=>L(e,t,n))},scheduleClose:t=>{e(),k.current=setTimeout(()=>v(e=>M(e,t)),200)},closeBelow:t=>{e(),v(e=>M(e,t))},cancelClose:e,closeTree:()=>{e(),v([]),c?.()},root:g}},[b,w,c]);h(()=>{if(!c)return;const e=e=>{e.target.closest("[data-menu-toggle]")||e.target.closest?.(`[data-popup-menu-tree="${b}"]`)||g.current&&!g.current.contains(e.target)&&c()},t=e=>{"Escape"===e.key&&c()};window.addEventListener("pointerdown",e),window.addEventListener("keydown",t);const n=o(c),r=i(()=>!1,()=>g.current);return()=>{window.removeEventListener("pointerdown",e),window.removeEventListener("keydown",t),n(),r()}},[c,b]),h(()=>{const e=g.current;e&&requestAnimationFrame(()=>{const t=e.getBoundingClientRect();if(t.right>window.innerWidth-8){const n=t.right-window.innerWidth+8;e.style.left?e.style.left=parseFloat(e.style.left)-n+"px":e.style.right||(e.style.left=t.left-n+"px")}if(t.left<8&&(e.style.left?e.style.left="8px":e.style.right&&(e.style.right=window.innerWidth-t.width-8+"px")),t.bottom>window.innerHeight-8){const n=t.bottom-window.innerHeight+8;e.style.top?e.style.top=parseFloat(e.style.top)-n+"px":e.style.bottom?e.style.bottom="8px":e.style.top=t.top-n+"px"}t.top<8&&(e.style.top?e.style.top="8px":e.style.bottom&&(e.style.bottom=window.innerHeight-t.height-8+"px"))})});const $=H(),E=/(^|[\s:])!?z-/.test(l),B=/* @__PURE__ */x("div",{ref:g,"data-popup-menu-tree":b,className:`fixed rounded-(--radius-popup) ${"tight"===$?"py-1":"large"===$?"py-2":"py-1"} ${l}`,onContextMenu:e=>{C(e.target)||e.preventDefault()},style:{...E?{}:{zIndex:a.menu},minWidth:u,animation:"popup-in 0.12s ease-out",...e(),...r},children:/* @__PURE__ */x(P.Provider,{value:T,children:t})});return s?N?y(B,document.body):null:B}function I(e,t,n,r=!1){const o=H(),i="tight"===o?"0.25rem":"large"===o?"0.6rem":0;return{className:`w-full flex items-center gap-2 text-left transition-colors rounded-lg mx-auto\n ${e?"text-red-600 not-disabled:not-aria-disabled:hover:bg-red-50":r?"bg-blue-50 text-blue-700":"text-gray-700 not-disabled:not-aria-disabled:hover:bg-blue-50 not-disabled:not-aria-disabled:hover:text-blue-700"}\n ${t?"opacity-40 cursor-not-allowed":""}\n ${n}`,style:{width:"calc(100% - 8px)",marginLeft:4,marginRight:4,fontSize:"var(--menu-font-size, 14px)",paddingLeft:"var(--menu-padding-x, 1rem)",paddingRight:"var(--menu-padding-x, 1rem)",paddingTop:i,paddingBottom:i,..."normal"===o?{minHeight:"calc(var(--row-height-menu, 2.25rem) + 2 * (var(--menu-padding-y, 0.5rem) - 0.5rem))"}:{}}}}var S=/* @__PURE__ */x(l,{name:"check","aria-hidden":!0,className:"h-4 w-4",strokeWidth:2});function F({kind:e,checked:t}){/* @__PURE__ */
1
+ import{glassStyle as e,GLASS_DIVIDER as t}from"./chunk-7IQ3B77H.js";import{onOverlayOpen as n,registerModalEscapeInterceptor as r,Z_LAYERS as o}from"./chunk-FIEA5CGB.js";import{useHydrated as i,useBrowserLayoutEffect as a}from"./chunk-D65T4H6J.js";import{Icon as l}from"./chunk-76DRQSJM.js";import{createContext as c,forwardRef as u,useContext as s,useId as d,useRef as p,useState as m,useEffect as h,useMemo as f,useCallback as g}from"react";import{createPortal as y}from"react-dom";import{jsxs as b,jsx as x,Fragment as w}from"react/jsx-runtime";var v=/* @__PURE__ */new Set(["text","search","url","tel","email","password","number","date","datetime-local","month","week","time"]),k="data-native-context-menu";function N(e,t){return e&&"function"==typeof e.closest?e.closest(t):null}function C(e){const t=e;if(!t||"function"!=typeof t.closest)return!1;if(N(t,`[${k}]`))return!0;if(N(t,"textarea"))return!0;if(N(t,"img, picture, canvas, video, audio"))return!0;const n=N(t,"input");if(n){const e=(n.type||"text").toLowerCase();if(v.has(e))return!0}const r=N(t,"[contenteditable]");if(r){const e=(r.getAttribute("contenteditable")||"").toLowerCase();if(""===e||"true"===e||"plaintext-only"===e)return!0}return!1}var T=/* @__PURE__ */new Set(["http:","https:","mailto:","tel:","blob:"]);function $(e,t,n){const r=N(e,"a[href]"),o=(t||"").trim(),i=function(e,t){if(e&&"#"!==e)try{const n=new URL(e,t??("undefined"!=typeof document?document.baseURI:void 0));return T.has(n.protocol)?n.href:void 0}catch{return}}(r?.getAttribute("href"),n);return{kind:o?"selection":i?"link":"default",...o?{selectionText:o}:{},...i?{linkUrl:i}:{}}}function E(e){if(e.defaultPrevented)return!0;if(e.shiftKey)return!0;if("touch"===e.pointerType)return!0;return C(("function"==typeof e.composedPath?e.composedPath()[0]:void 0)??e.target)}function L(e,t,n){return e.length===t+1&&e[t].key===n.key?e:[...e.slice(0,t),n]}function M(e,t){const n=Math.max(0,t);return e.length>n?e.slice(0,n):e}function B(e,t,n){if(0===t.length||0===e.length)return[];const r=[e];for(let e=1;e<t.length;e++){const o=r[e-1].find(n=>n.to===t[e].key),i=o?n(o):[];if(0===i.length)break;r.push(i)}return r}function A(e,t,n,r){const o=Math.max(0,r-n),i=Math.min(t,o),a=e-i/2;return a<n?n:a+i>r?Math.max(n,r-i):a}function R(e,t,n,r,o,i=!1,a=8){const l=t+o,c=e-o-n,u=c>=a;return i&&u?{left:c,flipped:!0}:l+n<=r-a?{left:l,flipped:!1}:u?{left:c,flipped:!0}:i?{left:a,flipped:!0}:{left:Math.max(a,r-a-n),flipped:!1}}function W(e=!1){return`mt-0.5 block truncate ${e?"text-2xs leading-4":"text-xs leading-4"} font-normal text-gray-500`}function H(){try{return getComputedStyle(document.documentElement).getPropertyValue("--menu-density")?.trim()||"normal"}catch{return"normal"}}var P=c(null),D=c(!1);function j({children:t,style:a,className:l="",onClose:c,minWidth:u=180,portal:s=!1}){const g=p(null),b=d(),[w,v]=m([]),k=p();h(()=>()=>clearTimeout(k.current),[]);const N=i(),T=f(()=>{const e=()=>clearTimeout(k.current);return{id:b,depth:0,path:w,open:(t,n)=>{e(),v(e=>L(e,t,n))},scheduleClose:t=>{e(),k.current=setTimeout(()=>v(e=>M(e,t)),200)},closeBelow:t=>{e(),v(e=>M(e,t))},cancelClose:e,closeTree:()=>{e(),v([]),c?.()},root:g}},[b,w,c]);h(()=>{if(!c)return;const e=e=>{e.target.closest("[data-menu-toggle]")||e.target.closest?.(`[data-popup-menu-tree="${b}"]`)||g.current&&!g.current.contains(e.target)&&c()},t=e=>{"Escape"===e.key&&c()};window.addEventListener("pointerdown",e),window.addEventListener("keydown",t);const o=n(c),i=r(()=>!1,()=>g.current);return()=>{window.removeEventListener("pointerdown",e),window.removeEventListener("keydown",t),o(),i()}},[c,b]),h(()=>{const e=g.current;e&&requestAnimationFrame(()=>{const t=e.getBoundingClientRect();if(t.right>window.innerWidth-8){const n=t.right-window.innerWidth+8;e.style.left?e.style.left=parseFloat(e.style.left)-n+"px":e.style.right||(e.style.left=t.left-n+"px")}if(t.left<8&&(e.style.left?e.style.left="8px":e.style.right&&(e.style.right=window.innerWidth-t.width-8+"px")),t.bottom>window.innerHeight-8){const n=t.bottom-window.innerHeight+8;e.style.top?e.style.top=parseFloat(e.style.top)-n+"px":e.style.bottom?e.style.bottom="8px":e.style.top=t.top-n+"px"}t.top<8&&(e.style.top?e.style.top="8px":e.style.bottom&&(e.style.bottom=window.innerHeight-t.height-8+"px"))})});const $=H(),E=/(^|[\s:])!?z-/.test(l),B=/* @__PURE__ */x("div",{ref:g,"data-popup-menu-tree":b,className:`fixed rounded-(--radius-popup) ${"tight"===$?"py-1":"large"===$?"py-2":"py-1"} ${l}`,onContextMenu:e=>{C(e.target)||e.preventDefault()},style:{...E?{}:{zIndex:o.menu},minWidth:u,animation:"popup-in 0.12s ease-out",...e(),...a},children:/* @__PURE__ */x(P.Provider,{value:T,children:t})});return s?N?y(B,document.body):null:B}function I(e,t,n,r=!1){const o=H(),i="tight"===o?"0.25rem":"large"===o?"0.6rem":0;return{className:`w-full flex items-center gap-2 text-left transition-colors rounded-lg mx-auto\n ${e?"text-red-600 not-disabled:not-aria-disabled:hover:bg-red-50":r?"bg-blue-50 text-blue-700":"text-gray-700 not-disabled:not-aria-disabled:hover:bg-blue-50 not-disabled:not-aria-disabled:hover:text-blue-700"}\n ${t?"opacity-40 cursor-not-allowed":""}\n ${n}`,style:{width:"calc(100% - 8px)",marginLeft:4,marginRight:4,fontSize:"var(--menu-font-size, 14px)",paddingLeft:"var(--menu-padding-x, 1rem)",paddingRight:"var(--menu-padding-x, 1rem)",paddingTop:i,paddingBottom:i,..."normal"===o?{minHeight:"calc(var(--row-height-menu, 2.25rem) + 2 * (var(--menu-padding-y, 0.5rem) - 0.5rem))"}:{}}}}var S=/* @__PURE__ */x(l,{name:"check","aria-hidden":!0,className:"h-4 w-4",strokeWidth:2});function F({kind:e,checked:t}){/* @__PURE__ */
2
2
  return x("span","checkbox"===e?{"aria-hidden":!0,"data-menu-check":"",className:"inline-flex h-4 w-4 shrink-0 items-center justify-center rounded border "+(t?"border-blue-600 bg-blue-600 text-white":"border-gray-400"),children:t&&S}:{"aria-hidden":!0,"data-menu-check":"",className:"inline-flex h-4 w-4 shrink-0 items-center justify-center",children:t&&S})}var z=u(function({onClick:e,children:t,className:n="",danger:r,disabled:o,role:i,checked:a,icon:l,description:c,tabIndex:u,id:p,onMouseEnter:m},h){const f=s(P),g=d(),y=null!=c&&!1!==c,v=`${p??g}-label`,k=`${p??g}-note`,N=s(D),C=I(r,o,n),T=void 0===a?null:"menuitemradio"===i?"radio":"checkbox";/* @__PURE__ */
3
3
  return b("button",{ref:h,id:p,role:"radio"===T?"menuitemradio":"checkbox"===T?"menuitemcheckbox":i??(N?"menuitem":void 0),"aria-checked":T?a:void 0,"aria-labelledby":y?v:void 0,"aria-describedby":y?k:void 0,tabIndex:u,onClick:()=>{e?.(),f&&f.depth>0&&"checkbox"!==T&&f.closeTree()},onMouseEnter:()=>{f?.scheduleClose(f.depth),m?.()},disabled:o,className:C.className,style:C.style,children:[T&&/* @__PURE__ */x(F,{kind:T,checked:!!a}),y?
4
4
  /* @__PURE__ */b("span",{className:"block min-w-0 flex-1 py-2",children:[
5
5
  /* @__PURE__ */b("span",{className:"flex items-center gap-2",children:[null!=l&&/* @__PURE__ */x(q,{children:l}),
6
6
  /* @__PURE__ */x("span",{id:v,className:"min-w-0",children:t})]}),
7
7
  /* @__PURE__ */x("span",{id:k,"data-menu-note":"",className:W(),style:null!=l?{paddingLeft:"1.5rem"}:void 0,children:c})]}):/* @__PURE__ */b(w,{children:[null!=l&&/* @__PURE__ */x(q,{children:l}),t]})]})});function q({children:e}){/* @__PURE__ */
8
- return x("span",{"aria-hidden":"true","data-menu-icon":"",className:"inline-flex h-4 w-4 shrink-0 items-center justify-center",children:e})}var U=/* @__PURE__ */x(l,{name:"chevron-right","aria-hidden":!0,className:"h-3.5 w-3.5 shrink-0 ml-auto",strokeWidth:2});function K(e){let t=a.menu;for(let n=e;n&&n!==document.body;n=n.parentElement){const e=parseInt(getComputedStyle(n).zIndex,10);Number.isNaN(e)||(t=e)}return t}function J(e){return e?[...e.querySelectorAll("button:not([disabled])")].filter(t=>t.closest("[data-popup-submenu-panel]")===e):[]}function Q({label:t,icon:n,children:o,disabled:a,className:l="",minWidth:c=180,maxHeight:u}){const m=s(P),v=d(),k=p(null),N=p(null),T=p(),$=p(!1),E=`${v}-menu`;h(()=>()=>clearTimeout(T.current),[]);const L=m?.depth??0,M=m?.path[L],B=!!M&&M.key===v&&!a,W=g(e=>{if(!m||a||!k.current)return;clearTimeout(T.current),$.current=e;const t=k.current.getBoundingClientRect(),n=k.current.closest("[data-popup-submenu-panel]")??k.current.closest("[data-popup-menu-tree]"),r=n?.getBoundingClientRect()??t,o=L>0&&(m.path[L-1]?.flipped??!1),i=R(r.left,r.right,c,window.innerWidth,4,o);m.open(L,{key:v,y:t.top,...i})},[m,a,L,v,c]),D=e=>{m?.closeBelow(L),k.current?.focus()};h(()=>{if(B)return i(e=>"Escape"===e.key&&(!(m&&m.path.length>L+1)&&(D(),!0)),()=>N.current)}),r(()=>{if(!B||!M)return;const e=()=>{const e=N.current;if(!e||!k.current)return;const t=k.current.closest("[data-popup-submenu-panel]")??k.current.closest("[data-popup-menu-tree]"),n=t?.getBoundingClientRect()??k.current.getBoundingClientRect(),r=L>0&&(m?.path[L-1]?.flipped??!1),o=e.offsetWidth||c,i=R(n.left,n.right,o,window.innerWidth,4,r,8),a=e.offsetHeight,l=A(k.current.getBoundingClientRect().top+a/2,a,8,window.innerHeight-8);e.style.left=`${i.left}px`,e.style.top=`${l}px`,e.dataset.flipped=String(i.flipped)};e();let t=0;const n=requestAnimationFrame(()=>{t=requestAnimationFrame(e)});return()=>{cancelAnimationFrame(n),cancelAnimationFrame(t)}}),h(()=>{B&&$.current&&($.current=!1,J(N.current)[0]?.focus())},[B]);const j=f(()=>m&&{...m,depth:L+1},[m,L]);if(!m)throw new Error("PopupSubmenu must be rendered inside a PopupMenu");const S=I(!1,a,l,B),F=H();/* @__PURE__ */
8
+ return x("span",{"aria-hidden":"true","data-menu-icon":"",className:"inline-flex h-4 w-4 shrink-0 items-center justify-center",children:e})}var U=/* @__PURE__ */x(l,{name:"chevron-right","aria-hidden":!0,className:"h-3.5 w-3.5 shrink-0 ml-auto",strokeWidth:2});function K(e){let t=o.menu;for(let n=e;n&&n!==document.body;n=n.parentElement){const e=parseInt(getComputedStyle(n).zIndex,10);Number.isNaN(e)||(t=e)}return t}function J(e){return e?[...e.querySelectorAll("button:not([disabled])")].filter(t=>t.closest("[data-popup-submenu-panel]")===e):[]}function Q({label:t,icon:n,children:o,disabled:i,className:l="",minWidth:c=180,maxHeight:u}){const m=s(P),v=d(),k=p(null),N=p(null),T=p(),$=p(!1),E=`${v}-menu`;h(()=>()=>clearTimeout(T.current),[]);const L=m?.depth??0,M=m?.path[L],B=!!M&&M.key===v&&!i,W=g(e=>{if(!m||i||!k.current)return;clearTimeout(T.current),$.current=e;const t=k.current.getBoundingClientRect(),n=k.current.closest("[data-popup-submenu-panel]")??k.current.closest("[data-popup-menu-tree]"),r=n?.getBoundingClientRect()??t,o=L>0&&(m.path[L-1]?.flipped??!1),a=R(r.left,r.right,c,window.innerWidth,4,o);m.open(L,{key:v,y:t.top,...a})},[m,i,L,v,c]),D=e=>{m?.closeBelow(L),k.current?.focus()};h(()=>{if(B)return r(e=>"Escape"===e.key&&(!(m&&m.path.length>L+1)&&(D(),!0)),()=>N.current)}),a(()=>{if(!B||!M)return;const e=()=>{const e=N.current;if(!e||!k.current)return;const t=k.current.closest("[data-popup-submenu-panel]")??k.current.closest("[data-popup-menu-tree]"),n=t?.getBoundingClientRect()??k.current.getBoundingClientRect(),r=L>0&&(m?.path[L-1]?.flipped??!1),o=e.offsetWidth||c,i=R(n.left,n.right,o,window.innerWidth,4,r,8),a=e.offsetHeight,l=A(k.current.getBoundingClientRect().top+a/2,a,8,window.innerHeight-8);e.style.left=`${i.left}px`,e.style.top=`${l}px`,e.dataset.flipped=String(i.flipped)};e();let t=0;const n=requestAnimationFrame(()=>{t=requestAnimationFrame(e)});return()=>{cancelAnimationFrame(n),cancelAnimationFrame(t)}}),h(()=>{B&&$.current&&($.current=!1,J(N.current)[0]?.focus())},[B]);const j=f(()=>m&&{...m,depth:L+1},[m,L]);if(!m)throw new Error("PopupSubmenu must be rendered inside a PopupMenu");const S=I(!1,i,l,B),F=H();/* @__PURE__ */
9
9
  return b(w,{children:[
10
- /* @__PURE__ */b("button",{ref:k,type:"button",role:"menuitem","aria-haspopup":"menu","aria-expanded":B,"aria-controls":B?E:void 0,disabled:a,"data-popup-submenu-row":!0,className:S.className,style:S.style,onClick:e=>{const t=0===e.detail;B?t&&J(N.current)[0]?.focus():W(t)},onKeyDown:e=>{"ArrowRight"===e.key&&(e.preventDefault(),e.stopPropagation(),W(!0))},onMouseEnter:()=>{a||(m.cancelClose(),B?m.closeBelow(L+1):(clearTimeout(T.current),T.current=setTimeout(()=>W(!1),120)))},onMouseLeave:()=>{clearTimeout(T.current),m.scheduleClose(L)},children:[n,
10
+ /* @__PURE__ */b("button",{ref:k,type:"button",role:"menuitem","aria-haspopup":"menu","aria-expanded":B,"aria-controls":B?E:void 0,disabled:i,"data-popup-submenu-row":!0,className:S.className,style:S.style,onClick:e=>{const t=0===e.detail;B?t&&J(N.current)[0]?.focus():W(t)},onKeyDown:e=>{"ArrowRight"===e.key&&(e.preventDefault(),e.stopPropagation(),W(!0))},onMouseEnter:()=>{i||(m.cancelClose(),B?m.closeBelow(L+1):(clearTimeout(T.current),T.current=setTimeout(()=>W(!1),120)))},onMouseLeave:()=>{clearTimeout(T.current),m.scheduleClose(L)},children:[n,
11
11
  /* @__PURE__ */x("span",{className:"min-w-0 flex-1 truncate",children:t}),U]}),B&&y(
12
12
  /* @__PURE__ */x("div",{ref:N,id:E,role:"menu","data-popup-menu-tree":m.id,"data-popup-submenu-panel":!0,className:"fixed rounded-(--radius-popup) overflow-x-hidden overflow-y-auto overscroll-contain "+("tight"===F?"py-1":"large"===F?"py-2":"py-1"),style:{left:M.left,top:M.y,minWidth:c,maxHeight:void 0===u?"calc(100vh - 16px)":`min(${"number"==typeof u?`${u}px`:u}, calc(100vh - 16px))`,zIndex:K(m.root.current)+L+1,animation:(M.flipped?"popup-submenu-in-left":"popup-submenu-in")+" 0.1s ease-out",...e()},onKeyDown:e=>{if(e.target.closest("[data-popup-submenu-panel]")!==e.currentTarget)return;const t=J(N.current),n=t.indexOf(document.activeElement),r=n=>{e.preventDefault(),e.stopPropagation(),t[(n+t.length)%t.length]?.focus()};"ArrowDown"===e.key?r(n+1):"ArrowUp"===e.key?r(n<0?t.length-1:n-1):"Home"===e.key?r(0):"End"===e.key?r(t.length-1):"ArrowLeft"===e.key&&(e.preventDefault(),e.stopPropagation(),D())},onMouseEnter:()=>{m.cancelClose(),clearTimeout(T.current)},onMouseLeave:()=>m.scheduleClose(L+1),onContextMenu:e=>{C(e.target)||e.preventDefault()},children:/* @__PURE__ */x(P.Provider,{value:j,children:o})}),document.body)]})}function G(){const e=H();/* @__PURE__ */
13
13
  return x("div",{className:`border-t ${t} ${"tight"===e?"my-0.5":"large"===e?"my-2":"my-1"} mx-3`})}function O(){const e=H(),t="tight"===e?"0.125rem":"large"===e?"0.375rem":"0.25rem";return{color:"var(--ink-muted)",paddingLeft:"var(--menu-padding-x, 1rem)",paddingRight:"var(--menu-padding-x, 1rem)",paddingTop:t,paddingBottom:t}}function V({children:e}){/* @__PURE__ */
@@ -1 +1 @@
1
- import{DEFAULT_SHELL_STRINGS as e,useShellStrings as t}from"./chunk-SB5KBKVJ.js";import{useRef as r,useState as n,useCallback as s}from"react";import{jsx as a}from"react/jsx-runtime";function o(e,t){const r=(t??"").split(",").map(e=>e.trim().toLocaleLowerCase()).filter(Boolean);if(0===r.length||r.includes("*")||r.includes("*/*"))return!0;const n=e.name.toLocaleLowerCase(),s=e.type.toLocaleLowerCase();return r.some(e=>e.startsWith(".")?n.endsWith(e):e.endsWith("/*")?s.startsWith(e.slice(0,-1)):s===e)}var l=(t,r=e.files)=>t<1024?r.bytes(t):t<1048576?r.kilobytes(Math.round(t/1024)):r.megabytes(t/1048576),i=e=>Array.from(e.dataTransfer?.types??[]).includes("Files");function c({onAccept:e,accept:a,maxSizeBytes:c,maxFiles:u,multiple:f=!0,currentCount:p=0,acceptHint:m,disabled:d=!1}){const h=t().files,g=r(null),[y,x]=n(!1),[v,D]=n([]),L=r(0),b="string"==typeof m?m:"",A=s(t=>{if(d||!t)return;const r=Array.from(t);if(0===r.length)return;const n=[],s=[];for(const e of f?r:r.slice(0,1))o(e,a)?null!=c&&e.size>c?s.push({file:e,reason:"size",message:h.tooLarge(e.name,l(e.size,h),l(c,h))}):f&&null!=u&&p+n.length>=u?s.push({file:e,reason:"count",message:h.tooMany(e.name,u)}):n.push(e):s.push({file:e,reason:"type",message:h.notAccepted(e.name,b)});D(s),n.length&&e(n),g.current&&(g.current.value="")},[d,f,a,b,c,u,p,e,h]),j=s(()=>{d||g.current?.click()},[d]),k=s(()=>D([]),[]);return{inputRef:g,inputProps:{ref:g,type:"file",accept:a||void 0,multiple:f,disabled:d,tabIndex:-1,"aria-hidden":!0,className:"hidden",onChange:e=>A(e.target.files)},zoneProps:d?{}:{onDragEnter:e=>{i(e)&&(e.preventDefault(),L.current+=1,x(!0))},onDragOver:e=>{i(e)&&(e.preventDefault(),y||x(!0))},onDragLeave:e=>{i(e)&&(L.current=Math.max(0,L.current-1),0===L.current&&x(!1))},onDrop:e=>{i(e)&&(e.preventDefault(),L.current=0,x(!1),A(e.dataTransfer.files))}},pasteProps:d?{}:{onPaste:e=>{const t=function(e){const t=e.clipboardData;if(!t)return[];if(t.files&&t.files.length>0)return Array.from(t.files);const r=[];for(const e of Array.from(t.items??[]))if("file"===e.kind){const t=e.getAsFile();t&&r.push(t)}return r}(e);0!==t.length&&(e.preventDefault(),A(t))}},open:j,take:A,dragOver:y,rejections:v,clearRejections:k}}function u({rejections:e,className:t="mt-2"}){return 0===e.length?null:/* @__PURE__ */a("ul",{role:"alert",className:`${t} flex flex-col gap-0.5`,children:e.map(({file:e,message:t},r)=>/* @__PURE__ */a("li",{className:"text-xs text-red-600",children:t},`${e.name}-${r}`))})}export{u as FileIntakeAlert,o as acceptsFile,l as humanSize,c as useFileIntake};
1
+ import{DEFAULT_SHELL_STRINGS as e,useShellStrings as t}from"./chunk-GBP32PVK.js";import{useRef as r,useState as n,useCallback as s}from"react";import{jsx as a}from"react/jsx-runtime";function o(e,t){const r=(t??"").split(",").map(e=>e.trim().toLocaleLowerCase()).filter(Boolean);if(0===r.length||r.includes("*")||r.includes("*/*"))return!0;const n=e.name.toLocaleLowerCase(),s=e.type.toLocaleLowerCase();return r.some(e=>e.startsWith(".")?n.endsWith(e):e.endsWith("/*")?s.startsWith(e.slice(0,-1)):s===e)}var l=(t,r=e.files)=>t<1024?r.bytes(t):t<1048576?r.kilobytes(Math.round(t/1024)):r.megabytes(t/1048576),i=e=>Array.from(e.dataTransfer?.types??[]).includes("Files");function c({onAccept:e,accept:a,maxSizeBytes:c,maxFiles:u,multiple:f=!0,currentCount:p=0,acceptHint:m,disabled:d=!1}){const h=t().files,g=r(null),[y,x]=n(!1),[v,D]=n([]),L=r(0),b="string"==typeof m?m:"",A=s(t=>{if(d||!t)return;const r=Array.from(t);if(0===r.length)return;const n=[],s=[];for(const e of f?r:r.slice(0,1))o(e,a)?null!=c&&e.size>c?s.push({file:e,reason:"size",message:h.tooLarge(e.name,l(e.size,h),l(c,h))}):f&&null!=u&&p+n.length>=u?s.push({file:e,reason:"count",message:h.tooMany(e.name,u)}):n.push(e):s.push({file:e,reason:"type",message:h.notAccepted(e.name,b)});D(s),n.length&&e(n),g.current&&(g.current.value="")},[d,f,a,b,c,u,p,e,h]),P=s(()=>{d||g.current?.click()},[d]),j=s(()=>D([]),[]);return{inputRef:g,inputProps:{ref:g,type:"file",accept:a||void 0,multiple:f,disabled:d,tabIndex:-1,"aria-hidden":!0,className:"hidden",onChange:e=>A(e.target.files)},zoneProps:d?{}:{onDragEnter:e=>{i(e)&&(e.preventDefault(),L.current+=1,x(!0))},onDragOver:e=>{i(e)&&(e.preventDefault(),y||x(!0))},onDragLeave:e=>{i(e)&&(L.current=Math.max(0,L.current-1),0===L.current&&x(!1))},onDrop:e=>{i(e)&&(e.preventDefault(),L.current=0,x(!1),A(e.dataTransfer.files))}},pasteProps:d?{}:{onPaste:e=>{const t=function(e){const t=e.clipboardData;if(!t)return[];if(t.files&&t.files.length>0)return Array.from(t.files);const r=[];for(const e of Array.from(t.items??[]))if("file"===e.kind){const t=e.getAsFile();t&&r.push(t)}return r}(e);0!==t.length&&(e.preventDefault(),A(t))}},open:P,take:A,dragOver:y,rejections:v,clearRejections:j}}function u({rejections:e,className:t="mt-2"}){return 0===e.length?null:/* @__PURE__ */a("ul",{role:"alert",className:`${t} flex flex-col gap-0.5`,children:e.map(({file:e,message:t},r)=>/* @__PURE__ */a("li",{className:"text-xs text-red-600",children:t},`${e.name}-${r}`))})}export{u as FileIntakeAlert,o as acceptsFile,l as humanSize,c as useFileIntake};
@@ -1,17 +1,17 @@
1
- import{useDismissPopupsOnOpen as e}from"./chunk-UVBK6YSR.js";import{registerModalEscapeInterceptor as t,Z_LAYERS as n}from"./chunk-FIEA5CGB.js";import{buttonClasses as r}from"./chunk-K7PQXJO7.js";import{Icon as l}from"./chunk-76DRQSJM.js";import{useShellStrings as o,splitAround as i}from"./chunk-SB5KBKVJ.js";import{createContext as a,useEffect as s,useRef as c,useId as d,useContext as u,useState as m,useCallback as f}from"react";import{jsxs as h,jsx as b,Fragment as g}from"react/jsx-runtime";var v=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function p(e){return Array.from(e.querySelectorAll(v)).filter(e=>null!==e.offsetParent||e===document.activeElement)}var y=[];function x(e){const t=y.findIndex(t=>t!==e&&e.contains(t));-1===t?y.push(e):y.splice(t,0,e)}function w(e){const t=y.lastIndexOf(e);-1!==t&&y.splice(t,1)}var N=/* @__PURE__ */new WeakSet;function k(e){return p(e)}function C(e,t){s(()=>{if(!t)return;const n=e.current;return n?(N.add(n),x(n),()=>{w(n),N.delete(n)}):void 0},[e,t])}function E(e,t){const n=y.lastIndexOf(t),r=n>0?y[n-1]:-1===n?y[y.length-1]??null:null,l=p(r??e.ownerDocument.body).filter(n=>!t.contains(n)&&!e.contains(n)),o=l.find(t=>0!==(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING));return o||(r&&!N.has(r)?l[0]??null:null)}function L(e,t,n){s(()=>{if(!t)return;const r=e.current;if(!r)return;const l=document.activeElement,o=n?.current??p(r)[0]??r;o!==r||r.hasAttribute("tabindex")||r.setAttribute("tabindex","-1"),o.focus();const i=e=>{if("Tab"!==e.key)return;if(y[y.length-1]!==r)return;const t=p(r);if(0===t.length)return void e.preventDefault();const n=t[0],l=t[t.length-1],o=document.activeElement;!e.shiftKey||o!==n&&r.contains(o)?e.shiftKey||o!==l&&r.contains(o)||(e.preventDefault(),n.focus()):(e.preventDefault(),l.focus())};return x(r),document.addEventListener("keydown",i,!0),()=>{w(r),document.removeEventListener("keydown",i,!0),(r.contains(document.activeElement)||document.activeElement===document.body)&&l?.focus?.()}},[e,t,n])}var P=0,j=null;function I(e){s(()=>{if(!e)return;const t=document.body;if(0===P){j={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)&&j&&(t.style.overflow=j.overflow,t.style.paddingRight=j.paddingRight,j=null)}},[e])}function D({role:e="dialog",modal:t,titleId:n,labelledBy:r,label:l}){const o=n??r;return{role:e,"aria-modal":!!t||void 0,"aria-labelledby":o,"aria-label":o?void 0:l}}var F={sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-4xl"};function K({open:r,onClose:i,title:a,description:u,role:m="dialog",children:f,footer:g,blocking:v=!1,size:p="md",initialFocus:y,"aria-label":x,"aria-labelledby":w,"aria-describedby":N,className:k=""}){const C=c(null),E=d(),P=d(),j=!v&&!g,K=d(),O=o().dialog;return e(r),L(C,r,y),I(r),s(()=>{if(r)return t(()=>(v||i(),!0),()=>C.current)},[r,v,i]),r?/* @__PURE__ */h("div",{className:"fixed inset-0",style:{zIndex:n.overlay},role:"presentation",children:[
1
+ import{useDismissPopupsOnOpen as e}from"./chunk-UVBK6YSR.js";import{registerModalEscapeInterceptor as t,Z_LAYERS as n}from"./chunk-FIEA5CGB.js";import{buttonClasses as r}from"./chunk-K7PQXJO7.js";import{Icon as l}from"./chunk-76DRQSJM.js";import{useShellStrings as o,splitAround as i}from"./chunk-GBP32PVK.js";import{createContext as a,useEffect as s,useRef as c,useId as d,useContext as u,useState as m,useCallback as f}from"react";import{jsxs as h,jsx as b,Fragment as g}from"react/jsx-runtime";var v=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function p(e){return Array.from(e.querySelectorAll(v)).filter(e=>null!==e.offsetParent||e===document.activeElement)}var y=[];function x(e){const t=y.findIndex(t=>t!==e&&e.contains(t));-1===t?y.push(e):y.splice(t,0,e)}function w(e){const t=y.lastIndexOf(e);-1!==t&&y.splice(t,1)}var N=/* @__PURE__ */new WeakSet;function k(e){return p(e)}function C(e,t){s(()=>{if(!t)return;const n=e.current;return n?(N.add(n),x(n),()=>{w(n),N.delete(n)}):void 0},[e,t])}function E(e,t){const n=y.lastIndexOf(t),r=n>0?y[n-1]:-1===n?y[y.length-1]??null:null,l=p(r??e.ownerDocument.body).filter(n=>!t.contains(n)&&!e.contains(n)),o=l.find(t=>0!==(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING));return o||(r&&!N.has(r)?l[0]??null:null)}function L(e,t,n){s(()=>{if(!t)return;const r=e.current;if(!r)return;const l=document.activeElement,o=n?.current??p(r)[0]??r;o!==r||r.hasAttribute("tabindex")||r.setAttribute("tabindex","-1"),o.focus();const i=e=>{if("Tab"!==e.key)return;if(y[y.length-1]!==r)return;const t=p(r);if(0===t.length)return void e.preventDefault();const n=t[0],l=t[t.length-1],o=document.activeElement;!e.shiftKey||o!==n&&r.contains(o)?e.shiftKey||o!==l&&r.contains(o)||(e.preventDefault(),n.focus()):(e.preventDefault(),l.focus())};return x(r),document.addEventListener("keydown",i,!0),()=>{w(r),document.removeEventListener("keydown",i,!0),(r.contains(document.activeElement)||document.activeElement===document.body)&&l?.focus?.()}},[e,t,n])}var P=0,j=null;function I(e){s(()=>{if(!e)return;const t=document.body;if(0===P){j={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)&&j&&(t.style.overflow=j.overflow,t.style.paddingRight=j.paddingRight,j=null)}},[e])}function D({role:e="dialog",modal:t,titleId:n,labelledBy:r,label:l}){const o=n??r;return{role:e,"aria-modal":!!t||void 0,"aria-labelledby":o,"aria-label":o?void 0:l}}var F={sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-4xl"};function O({open:r,onClose:i,title:a,description:u,role:m="dialog",children:f,footer:g,blocking:v=!1,size:p="md",initialFocus:y,"aria-label":x,"aria-labelledby":w,"aria-describedby":N,className:k=""}){const C=c(null),E=d(),P=d(),j=!v&&!g,O=d(),T=o().dialog;return e(r),L(C,r,y),I(r),s(()=>{if(r)return t(()=>(v||i(),!0),()=>C.current)},[r,v,i]),r?/* @__PURE__ */h("div",{className:"fixed inset-0",style:{zIndex:n.overlay},role:"presentation",children:[
2
2
  /* @__PURE__ */b("div",{className:"fixed inset-0 bg-black/30","aria-hidden":"true"}),
3
- /* @__PURE__ */b("div",{className:"fixed inset-0 flex items-center justify-center p-4",onClick:v?void 0:e=>{e.target===e.currentTarget&&i()},children:/* @__PURE__ */h("div",{ref:C,...D({role:m,modal:!0,titleId:a?K:void 0,labelledBy:w,label:x}),"aria-describedby":N??(u?P:f?E:void 0),className:`relative max-h-full w-full ${F[p]} overflow-y-auto overscroll-contain rounded-(--radius-card) bg-white p-6 shadow-xl ${k}`.trim(),children:[a&&/* @__PURE__ */b("h2",{id:K,className:(j?"pr-8 ":"")+"text-base font-semibold text-gray-900",children:a}),u&&/* @__PURE__ */b("p",{id:P,className:((a?"mt-1":j?"pr-8":"")+" text-sm text-gray-500").trim(),children:u}),f&&/* @__PURE__ */b("div",{id:E,className:"mt-2 text-sm text-gray-600",children:f}),g&&/* @__PURE__ */b("div",{className:"mt-6 flex flex-wrap justify-end gap-3",children:g}),j&&/* @__PURE__ */b("button",{type:"button",onClick:i,"aria-label":O.close,className:"absolute right-3 top-3 rounded-(--radius-control) 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__ */b(l,{name:"close",className:"h-5 w-5",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true"})})]})})]}):null}var O=a(()=>Promise.resolve(!1)),T=()=>u(O),W=()=>Promise.resolve(!1),R=e=>W(e),$=()=>Promise.resolve(!1),B=e=>$(e),S=()=>Promise.resolve(null),A=e=>S(e),J={danger:{icon:"text-red-600 bg-red-100",button:r({variant:"danger"})},warning:{icon:"text-yellow-600 bg-yellow-100",button:r({variant:"warning"})},info:{icon:"text-blue-600 bg-blue-100",button:r({variant:"primary"})}},V=r({variant:"secondary"}),z=r({variant:"primary"}),G="w-full rounded-md border border-gray-300 h-8 px-3 text-sm";function M(){/* @__PURE__ */
3
+ /* @__PURE__ */b("div",{className:"fixed inset-0 flex items-center justify-center p-4",onClick:v?void 0:e=>{e.target===e.currentTarget&&i()},children:/* @__PURE__ */h("div",{ref:C,...D({role:m,modal:!0,titleId:a?O:void 0,labelledBy:w,label:x}),"aria-describedby":N??(u?P:f?E:void 0),className:`relative max-h-full w-full ${F[p]} overflow-y-auto overscroll-contain rounded-(--radius-card) bg-white p-6 shadow-xl ${k}`.trim(),children:[a&&/* @__PURE__ */b("h2",{id:O,className:(j?"pr-8 ":"")+"text-base font-semibold text-gray-900",children:a}),u&&/* @__PURE__ */b("p",{id:P,className:((a?"mt-1":j?"pr-8":"")+" text-sm text-gray-500").trim(),children:u}),f&&/* @__PURE__ */b("div",{id:E,className:"mt-2 text-sm text-gray-600",children:f}),g&&/* @__PURE__ */b("div",{className:"mt-6 flex flex-wrap justify-end gap-3",children:g}),j&&/* @__PURE__ */b("button",{type:"button",onClick:i,"aria-label":T.close,className:"absolute right-3 top-3 rounded-(--radius-control) 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__ */b(l,{name:"close",className:"h-5 w-5",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true"})})]})})]}):null}var T=a(()=>Promise.resolve(!1)),W=()=>u(T),K=()=>Promise.resolve(!1),R=e=>K(e),$=()=>Promise.resolve(!1),A=e=>$(e),B=()=>Promise.resolve(null),S=e=>B(e),G={danger:{icon:"text-red-600 bg-red-100",button:r({variant:"danger"})},warning:{icon:"text-yellow-600 bg-yellow-100",button:r({variant:"warning"})},info:{icon:"text-blue-600 bg-blue-100",button:r({variant:"primary"})}},V=r({variant:"secondary"}),z=r({variant:"primary"}),J="w-full rounded-md border border-gray-300 h-8 px-3 text-sm";function M(){/* @__PURE__ */
4
4
  return b(l,{name:"warning",className:"h-5 w-5",strokeWidth:1.5,"aria-hidden":"true"})}function Q(){/* @__PURE__ */
5
- return b(l,{name:"close",className:"h-5 w-5",strokeWidth:1.5,"aria-hidden":"true"})}function U({children:e}){const[t,n]=m(!1),[r,l]=m({message:""}),[a,d]=m(0),u=c(),v=c(null),p=c(0),y=c([]),x=c(null),w=c(null),N=f(e=>{v.current=e.id,u.current=e.resolve,d(e.id),l(e.options),n(!0)},[]),k=f(e=>{const t="string"==typeof e?{message:e}:e;return new Promise(e=>{const n={id:++p.current,options:t,resolve:e};null===v.current?N(n):y.current.push(n)})},[N]),[C,E]=m(!1),[L,P]=m({message:""}),[j,I]=m(""),D=c(),F=f(e=>(P(e),I(""),E(!0),new Promise(e=>{D.current=e})),[]),[T,R]=m(!1),[B,A]=m({}),[U,_]=m(""),q=c(),X=f(e=>{const t="string"==typeof e?{message:e}:e;return A(t),_(t.defaultValue??""),R(!0),new Promise(e=>{q.current=e})},[]);s(()=>{W=k,$=F,S=X},[k,F,X]);const Y=(e,t)=>{if(v.current!==e)return;const r=u.current,l=y.current.shift();l?N(l):(v.current=null,u.current=void 0,n(!1)),r?.(t)},H=e=>{E(!1),I(""),D.current?.(e)},Z=e=>{if(e){const e=U.trim();if(!e&&!B.allowEmpty)return R(!1),void q.current?.(null);R(!1),q.current?.(e)}else R(!1),q.current?.(null)},ee=r.variant||(r.confirmLabel?.toLowerCase().includes("delete")||r.message.toLowerCase().includes("delete")?"danger":"info"),te=J[ee],ne=J["warning"===L.variant?"warning":"danger"],re=L.confirmWord,le=null==re||j===re,oe=o().dialog,[ie,ae]=i(oe.typeToConfirm);/* @__PURE__ */
6
- return h(O.Provider,{value:k,children:[e,
7
- /* @__PURE__ */b(K,{open:t,onClose:()=>Y(a,!1),initialFocus:x,footer:/* @__PURE__ */h(g,{children:[
5
+ return b(l,{name:"close",className:"h-5 w-5",strokeWidth:1.5,"aria-hidden":"true"})}function U({children:e}){const[t,n]=m(!1),[r,l]=m({message:""}),[a,d]=m(0),u=c(),v=c(null),p=c(0),y=c([]),x=c(null),w=c(null),N=f(e=>{v.current=e.id,u.current=e.resolve,d(e.id),l(e.options),n(!0)},[]),k=f(e=>{const t="string"==typeof e?{message:e}:e;return new Promise(e=>{const n={id:++p.current,options:t,resolve:e};null===v.current?N(n):y.current.push(n)})},[N]),[C,E]=m(!1),[L,P]=m({message:""}),[j,I]=m(""),D=c(),F=f(e=>(P(e),I(""),E(!0),new Promise(e=>{D.current=e})),[]),[W,R]=m(!1),[A,S]=m({}),[U,_]=m(""),q=c(),X=f(e=>{const t="string"==typeof e?{message:e}:e;return S(t),_(t.defaultValue??""),R(!0),new Promise(e=>{q.current=e})},[]);s(()=>{K=k,$=F,B=X},[k,F,X]);const Y=(e,t)=>{if(v.current!==e)return;const r=u.current,l=y.current.shift();l?N(l):(v.current=null,u.current=void 0,n(!1)),r?.(t)},H=e=>{E(!1),I(""),D.current?.(e)},Z=e=>{if(e){const e=U.trim();if(!e&&!A.allowEmpty)return R(!1),void q.current?.(null);R(!1),q.current?.(e)}else R(!1),q.current?.(null)},ee=r.variant||(r.confirmLabel?.toLowerCase().includes("delete")||r.message.toLowerCase().includes("delete")?"danger":"info"),te=G[ee],ne=G["warning"===L.variant?"warning":"danger"],re=L.confirmWord,le=null==re||j===re,oe=o().dialog,[ie,ae]=i(oe.typeToConfirm);/* @__PURE__ */
6
+ return h(T.Provider,{value:k,children:[e,
7
+ /* @__PURE__ */b(O,{open:t,onClose:()=>Y(a,!1),initialFocus:x,footer:/* @__PURE__ */h(g,{children:[
8
8
  /* @__PURE__ */b("button",{ref:x,type:"button",onClick:()=>Y(a,!1),className:V,children:r.cancelLabel||oe.cancel}),
9
9
  /* @__PURE__ */b("button",{type:"button",onClick:()=>Y(a,!0),className:te.button,children:r.confirmLabel||oe.ok})]}),children:/* @__PURE__ */h("div",{className:"flex gap-4",children:[
10
10
  /* @__PURE__ */b("div",{className:`shrink-0 w-10 h-10 rounded-full flex items-center justify-center ${te.icon}`,children:/* @__PURE__ */b(M,{})}),
11
11
  /* @__PURE__ */h("div",{className:"flex-1",children:[
12
12
  /* @__PURE__ */b("h2",{className:"text-base font-semibold text-gray-900",children:r.title||oe.confirmTitle}),
13
13
  /* @__PURE__ */b("p",{className:"mt-2 text-sm text-gray-600",children:r.message})]})]})}),
14
- /* @__PURE__ */h(K,{open:C,onClose:()=>H(!1),initialFocus:null!=re?void 0:w,footer:/* @__PURE__ */h(g,{children:[
14
+ /* @__PURE__ */h(O,{open:C,onClose:()=>H(!1),initialFocus:null!=re?void 0:w,footer:/* @__PURE__ */h(g,{children:[
15
15
  /* @__PURE__ */b("button",{ref:w,type:"button",onClick:()=>H(!1),className:V,children:L.cancelLabel||oe.destructiveCancel}),
16
16
  /* @__PURE__ */b("button",{type:"button",onClick:()=>H(!0),disabled:!le,className:ne.button,children:re??L.confirmLabel??oe.destructiveConfirm})]}),children:[
17
17
  /* @__PURE__ */b("button",{type:"button",onClick:()=>H(!1),"aria-label":oe.close,className:"absolute right-4 top-4 rounded-md p-1 text-gray-400 hover:bg-gray-100 hover:text-gray-600",children:/* @__PURE__ */b(Q,{})}),
@@ -22,8 +22,8 @@ return h(O.Provider,{value:k,children:[e,
22
22
  /* @__PURE__ */b("p",{className:"mt-2 text-sm text-gray-600",children:L.message}),null!=re&&/* @__PURE__ */h(g,{children:[
23
23
  /* @__PURE__ */h("p",{className:"mt-3 text-sm text-gray-700",children:[ie,
24
24
  /* @__PURE__ */b("kbd",{className:"rounded border border-gray-300 bg-gray-50 px-2 py-0.5 text-xs font-bold text-red-600 font-mono",children:re}),ae]}),
25
- /* @__PURE__ */b("input",{autoFocus:!0,type:"text",value:j,onChange:e=>I(e.target.value),onKeyDown:e=>{"Enter"===e.key&&j===re&&H(!0)},placeholder:re,className:`mt-2 ${G} focus:border-red-500`})]})]})]})]}),
26
- /* @__PURE__ */h(K,{open:T,onClose:()=>Z(!1),title:B.title||oe.promptTitle,footer:/* @__PURE__ */h(g,{children:[
27
- /* @__PURE__ */b("button",{type:"button",onClick:()=>Z(!1),className:V,children:B.cancelLabel||oe.cancel}),
28
- /* @__PURE__ */b("button",{type:"button",onClick:()=>Z(!0),disabled:!B.allowEmpty&&!U.trim(),className:z,children:B.confirmLabel||oe.ok})]}),children:[B.message&&/* @__PURE__ */b("p",{className:"text-sm text-gray-600",children:B.message}),
29
- /* @__PURE__ */b("input",{autoFocus:!0,type:"text",value:U,onChange:e=>_(e.target.value),onKeyDown:e=>{"Enter"===e.key?Z(!0):"Escape"===e.key&&Z(!1)},onFocus:e=>e.target.select(),placeholder:B.placeholder,className:`mt-3 ${G} focus:border-blue-500 rosh-focus-ring focus-visible:ring-1 focus-visible:ring-[color:var(--rosh-focus-ring-accent)]`})]})]})}export{U as ConfirmProvider,K as Dialog,R as confirm,B as confirmDestructive,D as dialogA11y,k as focusableIn,A as prompt,E as stopAfter,T as useConfirm,L as useFocusTrap,I as useScrollLock,C as useTabLayer};
25
+ /* @__PURE__ */b("input",{autoFocus:!0,type:"text",value:j,onChange:e=>I(e.target.value),onKeyDown:e=>{"Enter"===e.key&&j===re&&H(!0)},placeholder:re,className:`mt-2 ${J} focus:border-red-500`})]})]})]})]}),
26
+ /* @__PURE__ */h(O,{open:W,onClose:()=>Z(!1),title:A.title||oe.promptTitle,footer:/* @__PURE__ */h(g,{children:[
27
+ /* @__PURE__ */b("button",{type:"button",onClick:()=>Z(!1),className:V,children:A.cancelLabel||oe.cancel}),
28
+ /* @__PURE__ */b("button",{type:"button",onClick:()=>Z(!0),disabled:!A.allowEmpty&&!U.trim(),className:z,children:A.confirmLabel||oe.ok})]}),children:[A.message&&/* @__PURE__ */b("p",{className:"text-sm text-gray-600",children:A.message}),
29
+ /* @__PURE__ */b("input",{autoFocus:!0,type:"text",value:U,onChange:e=>_(e.target.value),onKeyDown:e=>{"Enter"===e.key?Z(!0):"Escape"===e.key&&Z(!1)},onFocus:e=>e.target.select(),placeholder:A.placeholder,className:`mt-3 ${J} focus:border-blue-500 rosh-focus-ring focus-visible:ring-1 focus-visible:ring-[color:var(--rosh-focus-ring-accent)]`})]})]})}export{U as ConfirmProvider,O as Dialog,R as confirm,A as confirmDestructive,D as dialogA11y,k as focusableIn,S as prompt,E as stopAfter,W as useConfirm,L as useFocusTrap,I as useScrollLock,C as useTabLayer};
@@ -1 +1 @@
1
- import{client_default as a}from"./chunk-SQTXJESD.js";var t=()=>a.get("/auth/numbering-configs/").then(a=>a.data?.results??a.data??[]),e="uploaded:wallpaper";function r(a,t){return"string"!=typeof a||!a||"none"===a||a.startsWith("#")?"":a===e?t||"":a}var l=()=>a.get("/auth/me/wallpaper/").then(a=>a.data),n=(t,e)=>{const r=new FormData;r.append("wallpaper",t);const l=e?{onUploadProgress:a=>e(a.total?Math.round(a.loaded/a.total*100):null)}:void 0;return a.post("/auth/me/wallpaper/",r,l).then(a=>a.data)},p=()=>a.delete("/auth/me/wallpaper/").then(a=>a.data);function o(a){const t=a?.response?.status,e=a?.response?.data,r=Array.isArray(e?.wallpaper)?e.wallpaper[0]:void 0;return r||(413===t?"That picture is too large to use as a wallpaper.":415===t?"That file is not a picture this can use as a wallpaper.":"The wallpaper could not be saved. Please try again.")}export{e as WALLPAPER_PREF_TOKEN,p as deleteWallpaper,t as getNumberingConfigs,l as getWallpaper,n as uploadWallpaper,r as wallpaperSrc,o as wallpaperUploadError};
1
+ import{client_default as a}from"./chunk-FX3LDKDB.js";var t=()=>a.get("/auth/numbering-configs/").then(a=>a.data?.results??a.data??[]),e="uploaded:wallpaper";function r(a,t){return"string"!=typeof a||!a||"none"===a||a.startsWith("#")?"":a===e?t||"":a}var l=()=>a.get("/auth/me/wallpaper/").then(a=>a.data),n=(t,e)=>{const r=new FormData;r.append("wallpaper",t);const l=e?{onUploadProgress:a=>e(a.total?Math.round(a.loaded/a.total*100):null)}:void 0;return a.post("/auth/me/wallpaper/",r,l).then(a=>a.data)},p=()=>a.delete("/auth/me/wallpaper/").then(a=>a.data);function o(a){const t=a?.response?.status,e=a?.response?.data,r=Array.isArray(e?.wallpaper)?e.wallpaper[0]:void 0;return r||(413===t?"That picture is too large to use as a wallpaper.":415===t?"That file is not a picture this can use as a wallpaper.":"The wallpaper could not be saved. Please try again.")}export{e as WALLPAPER_PREF_TOKEN,p as deleteWallpaper,t as getNumberingConfigs,l as getWallpaper,n as uploadWallpaper,r as wallpaperSrc,o as wallpaperUploadError};
@@ -1,19 +1,19 @@
1
- import{escapeHtml as e}from"./chunk-BR22X7E5.js";import{TH_ONE_LINE as t}from"./chunk-HVZDUIFB.js";import{useBrowserLayoutEffect as n}from"./chunk-D65T4H6J.js";import{useShellStrings as r}from"./chunk-SB5KBKVJ.js";import{useRef as o,useState as l,useEffect as c,useCallback as a,useMemo as s}from"react";import{createPortal as i}from"react-dom";import{jsxs as u,jsx as h,Fragment as d}from"react/jsx-runtime";function w(e,t){const n=e[e.length-1];return n&&!n.some(e=>e.trim())?e:[...e,Array(t).fill("")]}function g({text:t,...n}){const r=s(()=>({__html:e(t)}),[t]);/* @__PURE__ */
2
- return h("div",{...n,dangerouslySetInnerHTML:r})}function m({columns:e,data:m,onChange:p,onColumnsChange:f,fixedRows:y=!1,minRows:b=15,maxHeight:v="260px",cellStyles:x,onFocusChange:M,onSelectionChange:D}){const k=o(null),C=r().grid,[E,S]=l(null);c(()=>{M?.(E)},[E,M]);const[$,L]=l({}),z=o(null),[N,A]=l({}),K=o(null),[O,T]=l(null),[R,F]=l(null),[P,I]=l(null),[H,X]=l(null),[j,B]=l(null),Y=o(null);n(()=>{const e=Y.current;if(!e||e.row!==j?.row||e.col!==j?.col)return;Y.current=null;const t=k.current?.querySelector(`[data-row="${e.row}"][data-col="${e.col}"]`);if(!t)return;t.focus();const n=document.createRange();n.selectNodeContents(t),n.collapse(!1);const r=window.getSelection();r?.removeAllRanges(),r?.addRange(n)},[j]);const[q,W]=l(null),[V,J]=l(null);c(()=>{D?.(q&&V?{anchor:q,end:V}:null)},[q,V,D]);const U=o(!1),[_,Z]=l(null),G=o(!1),Q=o({a:null,e:null});Q.current={a:q,e:V};const ee=q&&V&&(q.row!==V.row||q.col!==V.col),te=[...m];if(!y)for(;te.length<b;)te.push(Array(e.length).fill(""));const ne=a((t,n,r)=>{const o=te.map(e=>[...e]);for(;o.length<=t;)o.push(Array(e.length).fill(""));for(;o[t].length<e.length;)o[t].push("");o[t][n]=r,p(o)},[te,e.length,p]),re=a((e,t,n)=>{if(0!==e.button)return;const r=document.activeElement;if(r?.dataset?.row&&r?.dataset?.col){const e=parseInt(r.dataset.row),t=parseInt(r.dataset.col),n=r.textContent||"";if(n!==(te[e]?.[t]||"")){const r=te.map(e=>[...e]);r[e]&&(r[e][t]=n,p(r))}}U.current=!0,e.shiftKey&&q||W({row:t,col:n}),J({row:t,col:n})},[te,p,q]),oe=a((e,t)=>{U.current&&J({row:e,col:t})},[]);c(()=>{const e=()=>{U.current=!1};return window.addEventListener("mouseup",e),()=>window.removeEventListener("mouseup",e)},[]),c(()=>{const e=e=>{if(!e.ctrlKey&&!e.metaKey||"c"!==e.key)return;if(!q||!V)return;const t=window.getSelection();if(t&&t.toString().length>0&&!ee)return;const n=Math.min(q.row,V.row),r=Math.max(q.row,V.row),o=Math.min(q.col,V.col),l=Math.max(q.col,V.col),c=[];for(let e=n;e<=r;e++){const t=[];for(let n=o;n<=l;n++)t.push(te[e]?.[n]||"");c.push(t.join("\t"))}const a=c.join("\n");a&&(e.preventDefault(),navigator.clipboard.writeText(a))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[q,V,te,ee]),c(()=>{const t=t=>{if(!E)return;const n=document.activeElement;if(n?.isContentEditable)return;if(!k.current?.contains(n))return;const r=t.clipboardData?.getData("text/plain");if(!r)return;t.preventDefault();const o=r.split("\n").filter(e=>e).map(e=>e.split("\t")),l=te.map(e=>[...e]);for(let t=0;t<o.length;t++){const n=E.row+t;for(;l.length<=n;)l.push(Array(e.length).fill(""));for(;l[n].length<e.length;)l[n].push("");for(let r=0;r<o[t].length;r++){const c=E.col+r;if(c>=e.length)break;e[c].readOnly||(l[n][c]=o[t][r].trim())}}p(y?l:w(l,e.length)),W({row:E.row,col:E.col}),J({row:Math.min(E.row+o.length-1,l.length-1),col:Math.min(E.col+(o[0]?.length||1)-1,e.length-1)})};return window.addEventListener("paste",t),()=>window.removeEventListener("paste",t)},[E,te,e,p,y]);const le=a((t,n,r)=>{const o=t.clipboardData.getData("text/plain");if(!o)return;const l=o.split("\n").map(e=>e.split("\t"));if(l.length<=1&&l[0]?.length<=1)return;t.preventDefault();const c=te.map(e=>[...e]);for(let t=0;t<l.length;t++){const o=n+t;for(;c.length<=o;)c.push(Array(e.length).fill(""));for(;c[o].length<e.length;)c[o].push("");for(let n=0;n<l[t].length;n++){const a=r+n;if(a>=e.length)break;e[a].readOnly||(c[o][a]=l[t][n].trim())}}p(y?c:w(c,e.length))},[te,e,p,y]),ce=a((t,n,r)=>{let o=n,l=r;if("Tab"===t.key)t.preventDefault(),l=t.shiftKey?r-1:r+1,l>=e.length&&(l=0,o=n+1),l<0&&(l=e.length-1,o=n-1);else if("Enter"===t.key)t.preventDefault(),o=t.shiftKey?n-1:n+1;else if("ArrowDown"===t.key)t.preventDefault(),o=n+1;else if("ArrowUp"===t.key)t.preventDefault(),o=n-1;else if("ArrowLeft"===t.key)t.preventDefault(),l=r-1;else{if("ArrowRight"!==t.key){if("Delete"===t.key||"Backspace"===t.key){const o=t.target;if(o.isContentEditable)return void(o.textContent&&window.getSelection()?.toString()===o.textContent&&(t.preventDefault(),ne(n,r,"")));if(t.preventDefault(),q&&V){const t=Math.min(q.row,V.row),n=Math.max(q.row,V.row),r=Math.min(q.col,V.col),o=Math.max(q.col,V.col),l=te.map(e=>[...e]);for(let c=t;c<=n;c++)for(let t=r;t<=o;t++)l[c]&&!e[t]?.readOnly&&(l[c][t]="");p(l)}else ne(n,r,"");return}return}t.preventDefault(),l=r+1}for(;l>=0&&l<e.length&&e[l].readOnly;)l+="Tab"===t.key&&t.shiftKey?-1:1;if(o>=0&&o<te.length&&l>=0&&l<e.length){const e=k.current?.querySelector(`[data-row="${o}"][data-col="${l}"]`);e&&(e.focus({preventScroll:!0}),e.scrollIntoView({block:"nearest",inline:"nearest"}),S({row:o,col:l}),B(null),W({row:o,col:l}),J({row:o,col:l}))}},[e,te,te.length,ne,q,V,p]),ae=a(t=>{if(!y&&t>=te.length-2){const t=te.map(e=>[...e]);for(let n=0;n<5;n++)t.push(Array(e.length).fill(""));p(t)}},[y,te,e.length,p]),[se,ie]=l(null);c(()=>{if(!se)return;const e=()=>ie(null);return window.addEventListener("pointerdown",e),()=>window.removeEventListener("pointerdown",e)},[se]);const ue=a(t=>{const n=te.map(e=>[...e]);n.splice(t,0,Array(e.length).fill("")),p(n)},[te,e.length,p]),he=a(e=>{if(te.length<=1)return;const t=te.filter((t,n)=>n!==e);p(t)},[te,p]),de=a(e=>{const t=te.map(t=>{const n=[...t];return n.splice(e,0,""),n});p(t)},[te,p]),we=a(t=>{if(e.length<=1)return;const n=te.map(e=>{const n=[...e];return n.splice(t,1),n});p(n)},[te,e.length,p]),ge=a((e,t)=>{e.preventDefault(),y||ie({x:e.clientX,y:e.clientY,items:[{label:C.insertRowAbove,onClick:()=>{ue(t),ie(null)}},{label:C.insertRowBelow,onClick:()=>{ue(t+1),ie(null)}},{label:C.deleteRow(t+1),onClick:()=>{he(t),ie(null)}}]})},[y,ue,he,C]),me=a((t,n)=>{t.preventDefault(),y||ie({x:t.clientX,y:t.clientY,items:[{label:C.insertColumnLeft,onClick:()=>{de(n),ie(null)}},{label:C.insertColumnRight,onClick:()=>{de(n+1),ie(null)}},{label:C.deleteColumn(String(e[n]?.title||n+1)),onClick:()=>{we(n),ie(null)}}]})},[y,e,de,we,C]),pe=t=>$[t]??e[t]?.width??150;c(()=>{const t=e=>{if(!z.current)return;const t=e.clientX-z.current.startX,n=Math.max(40,z.current.startW+t);L(e=>({...e,[z.current.col]:n}))},n=()=>{if(z.current&&f){const t=e.map((e,t)=>({...e,width:$[t]??e.width}));t[z.current.col]={...t[z.current.col],width:$[z.current.col]??e[z.current.col].width},f(t)}z.current=null,document.body.style.cursor=""};return window.addEventListener("mousemove",t),window.addEventListener("mouseup",n),()=>{window.removeEventListener("mousemove",t),window.removeEventListener("mouseup",n)}},[e,$,f]);const fe=e=>N[e]??28;c(()=>{const e=e=>{if(!K.current)return;const t=e.clientY-K.current.startY,n=Math.max(20,K.current.startH+t);A(e=>({...e,[K.current.row]:n}))},t=()=>{K.current=null,document.body.style.cursor=""};return window.addEventListener("mousemove",e),window.addEventListener("mouseup",t),()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",t)}},[]);const ye=a(t=>{const n=document.createElement("canvas").getContext("2d");if(!n)return;n.font="12px ui-monospace, SFMono-Regular, Menlo, monospace";let r=0;for(const e of te){const o=String(e[t]??"").replace(/<[^>]*>/g,""),l=n.measureText(o).width;l>r&&(r=l)}const o=n.measureText(e[t]?.title??"").width;o>r&&(r=o);const l=Math.max(40,Math.ceil(r+24));if(L(e=>({...e,[t]:l})),f){const n=e.map((e,n)=>({...e,width:n===t?l:$[n]??e.width}));f(n)}},[te,e,$,f]),be=a(e=>{A(t=>{const n={...t};return delete n[e],n})},[]),ve=a(t=>{const{a:n,e:r}=Q.current;if(!n||!r)return;const o=Math.min(n.row,r.row),l=Math.max(n.row,r.row),c=Math.min(n.col,r.col),a=Math.max(n.col,r.col);let s=o,i=l,u=c,h=a;t.row>l?i=t.row:t.row<o&&(s=t.row),t.col>a?h=t.col:t.col<c&&(u=t.col);const d=l-o+1,w=a-c+1,g=te.map(e=>[...e]);for(;g.length<=i;)g.push(Array(e.length).fill(""));for(const e of g)for(;e.length<=h;)e.push("");function m(e){const t=e.map(e=>parseFloat(e));if(t.length<2||t.some(e=>Number.isNaN(e)))return null;const n=t[1]-t[0];for(let e=2;e<t.length;e++)if(Math.abs(t[e]-t[e-1]-n)>1e-9)return null;return{step:n}}for(let e=s;e<=i;e++)for(let t=u;t<=h;t++){if(e>=o&&e<=l&&t>=c&&t<=a)continue;let n;if(1===w&&u===c&&h===a){const r=m(Array.from({length:d},(e,n)=>g[o+n]?.[t]??""));if(r){const c=parseFloat(g[l]?.[t]??"0"),a=parseFloat(g[o]?.[t]??"0"),s=e>l?e-l:-(o-e);n=String((e>l?c:a)+r.step*s)}else{const r=((e-o)%d+d)%d;n=g[o+r]?.[t]??""}}else if(1===d&&s===o&&i===l){const r=m(Array.from({length:w},(t,n)=>g[e]?.[c+n]??""));if(r){const o=parseFloat(g[e]?.[a]??"0"),l=parseFloat(g[e]?.[c]??"0"),s=t>a?t-a:-(c-t);n=String((t>a?o:l)+r.step*s)}else{const r=((t-c)%w+w)%w;n=g[e]?.[c+r]??""}}else{const r=((e-o)%d+d)%d,l=((t-c)%w+w)%w;n=g[o+r]?.[c+l]??""}g[e][t]=n}p(g),W({row:s,col:u}),J({row:i,col:h})},[te,e.length,p]);c(()=>{const e=e=>{if(!G.current)return;const t=document.elementFromPoint(e.clientX,e.clientY),n=t?.closest?.("[data-row][data-col]");if(!n)return;const r=parseInt(n.dataset.row),o=parseInt(n.dataset.col);Z({row:r,col:o})},t=()=>{G.current&&_&&ve(_),G.current=!1,Z(null),document.body.style.cursor=""};return window.addEventListener("mousemove",e),window.addEventListener("mouseup",t),()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",t)}},[_,ve]);const xe=e=>{e.preventDefault(),e.stopPropagation(),G.current=!0,document.body.style.cursor="crosshair"},Me=o(null),[De,ke]=l(0),[Ce,Ee]=l(800);c(()=>{const e=Me.current;if(!e)return;const t=()=>Ee(e.clientHeight||800);t();const n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[]);const Se=te.length>100,$e=Se?Math.max(0,Math.floor(De/28)-20):0,Le=Se?Math.min(te.length,Math.ceil((De+Ce)/28)+20):te.length,ze=s(()=>te.slice($e,Le),[te,$e,Le]),Ne=28*$e,Ae=28*(te.length-Le),Ke="px-2 h-8 text-left text-xs font-medium text-gray-500 uppercase bg-gray-100 border-b border-r border-gray-200 select-none";/* @__PURE__ */
1
+ import{escapeHtml as e}from"./chunk-BR22X7E5.js";import{TH_ONE_LINE as t}from"./chunk-BD54BNPH.js";import{useBrowserLayoutEffect as n}from"./chunk-D65T4H6J.js";import{useShellStrings as r}from"./chunk-GBP32PVK.js";import{useRef as o,useState as l,useEffect as c,useCallback as a,useMemo as s}from"react";import{createPortal as i}from"react-dom";import{jsxs as u,jsx as h,Fragment as d}from"react/jsx-runtime";function w(e,t){const n=e[e.length-1];return n&&!n.some(e=>e.trim())?e:[...e,Array(t).fill("")]}function g({text:t,...n}){const r=s(()=>({__html:e(t)}),[t]);/* @__PURE__ */
2
+ return h("div",{...n,dangerouslySetInnerHTML:r})}function m({columns:e,data:m,onChange:p,onColumnsChange:f,fixedRows:y=!1,minRows:b=15,maxHeight:v="260px",cellStyles:x,onFocusChange:M,onSelectionChange:D}){const k=o(null),C=r().grid,[E,$]=l(null);c(()=>{M?.(E)},[E,M]);const[L,S]=l({}),N=o(null),[z,A]=l({}),O=o(null),[T,K]=l(null),[P,R]=l(null),[F,H]=l(null),[I,X]=l(null),[j,B]=l(null),Y=o(null);n(()=>{const e=Y.current;if(!e||e.row!==j?.row||e.col!==j?.col)return;Y.current=null;const t=k.current?.querySelector(`[data-row="${e.row}"][data-col="${e.col}"]`);if(!t)return;t.focus();const n=document.createRange();n.selectNodeContents(t),n.collapse(!1);const r=window.getSelection();r?.removeAllRanges(),r?.addRange(n)},[j]);const[q,W]=l(null),[V,_]=l(null);c(()=>{D?.(q&&V?{anchor:q,end:V}:null)},[q,V,D]);const G=o(!1),[J,U]=l(null),Q=o(!1),Z=o({a:null,e:null});Z.current={a:q,e:V};const ee=q&&V&&(q.row!==V.row||q.col!==V.col),te=[...m];if(!y)for(;te.length<b;)te.push(Array(e.length).fill(""));const ne=a((t,n,r)=>{const o=te.map(e=>[...e]);for(;o.length<=t;)o.push(Array(e.length).fill(""));for(;o[t].length<e.length;)o[t].push("");o[t][n]=r,p(o)},[te,e.length,p]),re=a((e,t,n)=>{if(0!==e.button)return;const r=document.activeElement;if(r?.dataset?.row&&r?.dataset?.col){const e=parseInt(r.dataset.row),t=parseInt(r.dataset.col),n=r.textContent||"";if(n!==(te[e]?.[t]||"")){const r=te.map(e=>[...e]);r[e]&&(r[e][t]=n,p(r))}}G.current=!0,e.shiftKey&&q||W({row:t,col:n}),_({row:t,col:n})},[te,p,q]),oe=a((e,t)=>{G.current&&_({row:e,col:t})},[]);c(()=>{const e=()=>{G.current=!1};return window.addEventListener("mouseup",e),()=>window.removeEventListener("mouseup",e)},[]),c(()=>{const e=e=>{if(!e.ctrlKey&&!e.metaKey||"c"!==e.key)return;if(!q||!V)return;const t=window.getSelection();if(t&&t.toString().length>0&&!ee)return;const n=Math.min(q.row,V.row),r=Math.max(q.row,V.row),o=Math.min(q.col,V.col),l=Math.max(q.col,V.col),c=[];for(let e=n;e<=r;e++){const t=[];for(let n=o;n<=l;n++)t.push(te[e]?.[n]||"");c.push(t.join("\t"))}const a=c.join("\n");a&&(e.preventDefault(),navigator.clipboard.writeText(a))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[q,V,te,ee]),c(()=>{const t=t=>{if(!E)return;const n=document.activeElement;if(n?.isContentEditable)return;if(!k.current?.contains(n))return;const r=t.clipboardData?.getData("text/plain");if(!r)return;t.preventDefault();const o=r.split("\n").filter(e=>e).map(e=>e.split("\t")),l=te.map(e=>[...e]);for(let t=0;t<o.length;t++){const n=E.row+t;for(;l.length<=n;)l.push(Array(e.length).fill(""));for(;l[n].length<e.length;)l[n].push("");for(let r=0;r<o[t].length;r++){const c=E.col+r;if(c>=e.length)break;e[c].readOnly||(l[n][c]=o[t][r].trim())}}p(y?l:w(l,e.length)),W({row:E.row,col:E.col}),_({row:Math.min(E.row+o.length-1,l.length-1),col:Math.min(E.col+(o[0]?.length||1)-1,e.length-1)})};return window.addEventListener("paste",t),()=>window.removeEventListener("paste",t)},[E,te,e,p,y]);const le=a((t,n,r)=>{const o=t.clipboardData.getData("text/plain");if(!o)return;const l=o.split("\n").map(e=>e.split("\t"));if(l.length<=1&&l[0]?.length<=1)return;t.preventDefault();const c=te.map(e=>[...e]);for(let t=0;t<l.length;t++){const o=n+t;for(;c.length<=o;)c.push(Array(e.length).fill(""));for(;c[o].length<e.length;)c[o].push("");for(let n=0;n<l[t].length;n++){const a=r+n;if(a>=e.length)break;e[a].readOnly||(c[o][a]=l[t][n].trim())}}p(y?c:w(c,e.length))},[te,e,p,y]),ce=a((t,n,r)=>{let o=n,l=r;if("Tab"===t.key)t.preventDefault(),l=t.shiftKey?r-1:r+1,l>=e.length&&(l=0,o=n+1),l<0&&(l=e.length-1,o=n-1);else if("Enter"===t.key)t.preventDefault(),o=t.shiftKey?n-1:n+1;else if("ArrowDown"===t.key)t.preventDefault(),o=n+1;else if("ArrowUp"===t.key)t.preventDefault(),o=n-1;else if("ArrowLeft"===t.key)t.preventDefault(),l=r-1;else{if("ArrowRight"!==t.key){if("Delete"===t.key||"Backspace"===t.key){const o=t.target;if(o.isContentEditable)return void(o.textContent&&window.getSelection()?.toString()===o.textContent&&(t.preventDefault(),ne(n,r,"")));if(t.preventDefault(),q&&V){const t=Math.min(q.row,V.row),n=Math.max(q.row,V.row),r=Math.min(q.col,V.col),o=Math.max(q.col,V.col),l=te.map(e=>[...e]);for(let c=t;c<=n;c++)for(let t=r;t<=o;t++)l[c]&&!e[t]?.readOnly&&(l[c][t]="");p(l)}else ne(n,r,"");return}return}t.preventDefault(),l=r+1}for(;l>=0&&l<e.length&&e[l].readOnly;)l+="Tab"===t.key&&t.shiftKey?-1:1;if(o>=0&&o<te.length&&l>=0&&l<e.length){const e=k.current?.querySelector(`[data-row="${o}"][data-col="${l}"]`);e&&(e.focus({preventScroll:!0}),e.scrollIntoView({block:"nearest",inline:"nearest"}),$({row:o,col:l}),B(null),W({row:o,col:l}),_({row:o,col:l}))}},[e,te,te.length,ne,q,V,p]),ae=a(t=>{if(!y&&t>=te.length-2){const t=te.map(e=>[...e]);for(let n=0;n<5;n++)t.push(Array(e.length).fill(""));p(t)}},[y,te,e.length,p]),[se,ie]=l(null);c(()=>{if(!se)return;const e=()=>ie(null);return window.addEventListener("pointerdown",e),()=>window.removeEventListener("pointerdown",e)},[se]);const ue=a(t=>{const n=te.map(e=>[...e]);n.splice(t,0,Array(e.length).fill("")),p(n)},[te,e.length,p]),he=a(e=>{if(te.length<=1)return;const t=te.filter((t,n)=>n!==e);p(t)},[te,p]),de=a(e=>{const t=te.map(t=>{const n=[...t];return n.splice(e,0,""),n});p(t)},[te,p]),we=a(t=>{if(e.length<=1)return;const n=te.map(e=>{const n=[...e];return n.splice(t,1),n});p(n)},[te,e.length,p]),ge=a((e,t)=>{e.preventDefault(),y||ie({x:e.clientX,y:e.clientY,items:[{label:C.insertRowAbove,onClick:()=>{ue(t),ie(null)}},{label:C.insertRowBelow,onClick:()=>{ue(t+1),ie(null)}},{label:C.deleteRow(t+1),onClick:()=>{he(t),ie(null)}}]})},[y,ue,he,C]),me=a((t,n)=>{t.preventDefault(),y||ie({x:t.clientX,y:t.clientY,items:[{label:C.insertColumnLeft,onClick:()=>{de(n),ie(null)}},{label:C.insertColumnRight,onClick:()=>{de(n+1),ie(null)}},{label:C.deleteColumn(String(e[n]?.title||n+1)),onClick:()=>{we(n),ie(null)}}]})},[y,e,de,we,C]),pe=t=>L[t]??e[t]?.width??150;c(()=>{const t=e=>{if(!N.current)return;const t=e.clientX-N.current.startX,n=Math.max(40,N.current.startW+t);S(e=>({...e,[N.current.col]:n}))},n=()=>{if(N.current&&f){const t=e.map((e,t)=>({...e,width:L[t]??e.width}));t[N.current.col]={...t[N.current.col],width:L[N.current.col]??e[N.current.col].width},f(t)}N.current=null,document.body.style.cursor=""};return window.addEventListener("mousemove",t),window.addEventListener("mouseup",n),()=>{window.removeEventListener("mousemove",t),window.removeEventListener("mouseup",n)}},[e,L,f]);const fe=e=>z[e]??28;c(()=>{const e=e=>{if(!O.current)return;const t=e.clientY-O.current.startY,n=Math.max(20,O.current.startH+t);A(e=>({...e,[O.current.row]:n}))},t=()=>{O.current=null,document.body.style.cursor=""};return window.addEventListener("mousemove",e),window.addEventListener("mouseup",t),()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",t)}},[]);const ye=a(t=>{const n=document.createElement("canvas").getContext("2d");if(!n)return;n.font="12px ui-monospace, SFMono-Regular, Menlo, monospace";let r=0;for(const e of te){const o=String(e[t]??"").replace(/<[^>]*>/g,""),l=n.measureText(o).width;l>r&&(r=l)}const o=n.measureText(e[t]?.title??"").width;o>r&&(r=o);const l=Math.max(40,Math.ceil(r+24));if(S(e=>({...e,[t]:l})),f){const n=e.map((e,n)=>({...e,width:n===t?l:L[n]??e.width}));f(n)}},[te,e,L,f]),be=a(e=>{A(t=>{const n={...t};return delete n[e],n})},[]),ve=a(t=>{const{a:n,e:r}=Z.current;if(!n||!r)return;const o=Math.min(n.row,r.row),l=Math.max(n.row,r.row),c=Math.min(n.col,r.col),a=Math.max(n.col,r.col);let s=o,i=l,u=c,h=a;t.row>l?i=t.row:t.row<o&&(s=t.row),t.col>a?h=t.col:t.col<c&&(u=t.col);const d=l-o+1,w=a-c+1,g=te.map(e=>[...e]);for(;g.length<=i;)g.push(Array(e.length).fill(""));for(const e of g)for(;e.length<=h;)e.push("");function m(e){const t=e.map(e=>parseFloat(e));if(t.length<2||t.some(e=>Number.isNaN(e)))return null;const n=t[1]-t[0];for(let e=2;e<t.length;e++)if(Math.abs(t[e]-t[e-1]-n)>1e-9)return null;return{step:n}}for(let e=s;e<=i;e++)for(let t=u;t<=h;t++){if(e>=o&&e<=l&&t>=c&&t<=a)continue;let n;if(1===w&&u===c&&h===a){const r=m(Array.from({length:d},(e,n)=>g[o+n]?.[t]??""));if(r){const c=parseFloat(g[l]?.[t]??"0"),a=parseFloat(g[o]?.[t]??"0"),s=e>l?e-l:-(o-e);n=String((e>l?c:a)+r.step*s)}else{const r=((e-o)%d+d)%d;n=g[o+r]?.[t]??""}}else if(1===d&&s===o&&i===l){const r=m(Array.from({length:w},(t,n)=>g[e]?.[c+n]??""));if(r){const o=parseFloat(g[e]?.[a]??"0"),l=parseFloat(g[e]?.[c]??"0"),s=t>a?t-a:-(c-t);n=String((t>a?o:l)+r.step*s)}else{const r=((t-c)%w+w)%w;n=g[e]?.[c+r]??""}}else{const r=((e-o)%d+d)%d,l=((t-c)%w+w)%w;n=g[o+r]?.[c+l]??""}g[e][t]=n}p(g),W({row:s,col:u}),_({row:i,col:h})},[te,e.length,p]);c(()=>{const e=e=>{if(!Q.current)return;const t=document.elementFromPoint(e.clientX,e.clientY),n=t?.closest?.("[data-row][data-col]");if(!n)return;const r=parseInt(n.dataset.row),o=parseInt(n.dataset.col);U({row:r,col:o})},t=()=>{Q.current&&J&&ve(J),Q.current=!1,U(null),document.body.style.cursor=""};return window.addEventListener("mousemove",e),window.addEventListener("mouseup",t),()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",t)}},[J,ve]);const xe=e=>{e.preventDefault(),e.stopPropagation(),Q.current=!0,document.body.style.cursor="crosshair"},Me=o(null),[De,ke]=l(0),[Ce,Ee]=l(800);c(()=>{const e=Me.current;if(!e)return;const t=()=>Ee(e.clientHeight||800);t();const n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[]);const $e=te.length>100,Le=$e?Math.max(0,Math.floor(De/28)-20):0,Se=$e?Math.min(te.length,Math.ceil((De+Ce)/28)+20):te.length,Ne=s(()=>te.slice(Le,Se),[te,Le,Se]),ze=28*Le,Ae=28*(te.length-Se),Oe="px-2 h-8 text-left text-xs font-medium text-gray-500 uppercase bg-gray-100 border-b border-r border-gray-200 select-none";/* @__PURE__ */
3
3
  return u("div",{ref:Me,className:"border border-gray-300 rounded overflow-scroll grid-scroll",style:{maxHeight:v,height:v},onScroll:e=>ke(e.target.scrollTop),children:[
4
4
  /* @__PURE__ */u("table",{ref:k,className:"border-collapse select-none",style:{tableLayout:"fixed",minWidth:36+e.reduce((t,n)=>t+pe(e.indexOf(n)),0)},children:[
5
5
  /* @__PURE__ */u("colgroup",{children:[
6
6
  /* @__PURE__ */h("col",{style:{width:36}}),e.map((e,t)=>/* @__PURE__ */h("col",{style:{width:pe(t)}},e.key))]}),
7
7
  /* @__PURE__ */h("thead",{className:"sticky top-0 z-10",children:/* @__PURE__ */u("tr",{children:[
8
- /* @__PURE__ */h("th",{className:`${t} ${Ke} text-center w-9 cursor-pointer hover:bg-gray-200`,onClick:()=>{W({row:0,col:0}),J({row:te.length-1,col:e.length-1})},title:C.selectAll,children:"#"}),e.map((n,r)=>{const o=q&&V&&Math.min(q.col,V.col)<=r&&r<=Math.max(q.col,V.col)&&0===Math.min(q.row,V.row)&&Math.max(q.row,V.row)===te.length-1;/* @__PURE__ */
9
- return u("th",{className:`${t} ${Ke} cursor-pointer hover:bg-gray-200 relative${o?" !bg-blue-200":""}${H===r?" !bg-blue-100":""}`,style:{width:pe(r)},draggable:!0,onDragStart:()=>(e=>I(e))(r),onDragOver:e=>((e,t)=>{e.preventDefault(),X(t)})(e,r),onDrop:()=>(t=>{if(null===P||P===t)return I(null),void X(null);const n=te.map(e=>{const n=[...e],[r]=n.splice(P,1);return n.splice(t,0,r),n});if(p(n),f){const n=[...e],[r]=n.splice(P,1);n.splice(t,0,r),f(n)}I(null),X(null)})(r),onDragEnd:()=>{I(null),X(null)},onClick:e=>{e.shiftKey&&q||W({row:0,col:r}),J({row:te.length-1,col:r})},onContextMenu:e=>me(e,r),children:[n.title,
10
- /* @__PURE__ */h("div",{className:"absolute -right-1 top-0 bottom-0 w-2 cursor-col-resize z-20",onMouseDown:e=>((e,t)=>{e.preventDefault(),e.stopPropagation(),z.current={col:t,startX:e.clientX,startW:pe(t)},document.body.style.cursor="col-resize"})(e,r),onDoubleClick:e=>{e.stopPropagation(),ye(r)},title:C.resize})]},n.key)})]})}),
11
- /* @__PURE__ */u("tbody",{children:[Ne>0&&/* @__PURE__ */h("tr",{style:{height:Ne}}),ze.map((t,n)=>{const r=$e+n,o=q&&V&&Math.min(q.row,V.row)<=r&&r<=Math.max(q.row,V.row)&&0===Math.min(q.col,V.col)&&Math.max(q.col,V.col)===e.length-1;/* @__PURE__ */
8
+ /* @__PURE__ */h("th",{className:`${t} ${Oe} text-center w-9 cursor-pointer hover:bg-gray-200`,onClick:()=>{W({row:0,col:0}),_({row:te.length-1,col:e.length-1})},title:C.selectAll,children:"#"}),e.map((n,r)=>{const o=q&&V&&Math.min(q.col,V.col)<=r&&r<=Math.max(q.col,V.col)&&0===Math.min(q.row,V.row)&&Math.max(q.row,V.row)===te.length-1;/* @__PURE__ */
9
+ return u("th",{className:`${t} ${Oe} cursor-pointer hover:bg-gray-200 relative${o?" !bg-blue-200":""}${I===r?" !bg-blue-100":""}`,style:{width:pe(r)},draggable:!0,onDragStart:()=>(e=>H(e))(r),onDragOver:e=>((e,t)=>{e.preventDefault(),X(t)})(e,r),onDrop:()=>(t=>{if(null===F||F===t)return H(null),void X(null);const n=te.map(e=>{const n=[...e],[r]=n.splice(F,1);return n.splice(t,0,r),n});if(p(n),f){const n=[...e],[r]=n.splice(F,1);n.splice(t,0,r),f(n)}H(null),X(null)})(r),onDragEnd:()=>{H(null),X(null)},onClick:e=>{e.shiftKey&&q||W({row:0,col:r}),_({row:te.length-1,col:r})},onContextMenu:e=>me(e,r),children:[n.title,
10
+ /* @__PURE__ */h("div",{className:"absolute -right-1 top-0 bottom-0 w-2 cursor-col-resize z-20",onMouseDown:e=>((e,t)=>{e.preventDefault(),e.stopPropagation(),N.current={col:t,startX:e.clientX,startW:pe(t)},document.body.style.cursor="col-resize"})(e,r),onDoubleClick:e=>{e.stopPropagation(),ye(r)},title:C.resize})]},n.key)})]})}),
11
+ /* @__PURE__ */u("tbody",{children:[ze>0&&/* @__PURE__ */h("tr",{style:{height:ze}}),Ne.map((t,n)=>{const r=Le+n,o=q&&V&&Math.min(q.row,V.row)<=r&&r<=Math.max(q.row,V.row)&&0===Math.min(q.col,V.col)&&Math.max(q.col,V.col)===e.length-1;/* @__PURE__ */
12
12
  return u("tr",{style:{height:fe(r)},children:[
13
- /* @__PURE__ */u("td",{className:`relative px-1 py-1 text-center text-2xs text-gray-400 border-b border-r border-gray-200 bg-gray-50 select-none cursor-pointer hover:bg-gray-200${o?" !bg-blue-200 !text-gray-700":""}${R===r?" !bg-blue-100":""}`,draggable:!0,onDragStart:()=>(e=>T(e))(r),onDragOver:e=>((e,t)=>{e.preventDefault(),F(t)})(e,r),onDrop:()=>(e=>{if(null===O||O===e)return T(null),void F(null);const t=te.map(e=>[...e]),[n]=t.splice(O,1);t.splice(e,0,n),p(t),T(null),F(null)})(r),onDragEnd:()=>{T(null),F(null)},onClick:t=>{t.shiftKey&&q||W({row:r,col:0}),J({row:r,col:e.length-1})},onContextMenu:e=>ge(e,r),children:[r+1,
14
- /* @__PURE__ */h("div",{className:"absolute -bottom-1 left-0 right-0 h-2 cursor-row-resize z-20",onMouseDown:e=>((e,t)=>{e.preventDefault(),e.stopPropagation(),K.current={row:t,startY:e.clientY,startH:fe(t)},document.body.style.cursor="row-resize"})(e,r),onDoubleClick:e=>{e.stopPropagation(),be(r)},title:C.resize})]}),e.map((e,n)=>{const o=q&&V&&function(e,t,n,r){const o=Math.min(e.row,t.row),l=Math.max(e.row,t.row),c=Math.min(e.col,t.col),a=Math.max(e.col,t.col);return n>=o&&n<=l&&r>=c&&r<=a}(q,V,r,n),l=j?.row===r&&j?.col===n&&!e.readOnly,c=E?.row===r&&E?.col===n,a=x?.[`${r}:${n}`],s=q&&V?Math.max(q.row,V.row):-1,i=q&&V?Math.max(q.col,V.col):-1,d=q&&V&&r===s&&n===i,w=G.current&&_&&q&&V&&(()=>{const e=Math.min(q.row,V.row),t=Math.max(q.row,V.row),o=Math.min(q.col,V.col),l=Math.max(q.col,V.col);let c=e,a=t,s=o,i=l;return _.row>t?a=_.row:_.row<e&&(c=_.row),_.col>l?i=_.col:_.col<o&&(s=_.col),r>=c&&r<=a&&n>=s&&n<=i&&!(r>=e&&r<=t&&n>=o&&n<=l)})(),m="sm"===a?.fontSize?"text-2xs":"lg"===a?.fontSize?"text-sm":"xl"===a?.fontSize?"text-base":"text-xs",p=`${a?.bold?" font-bold":""}${a?.italic?" italic":""}${a?.underline?" underline":""}`;/* @__PURE__ */
13
+ /* @__PURE__ */u("td",{className:`relative px-1 py-1 text-center text-2xs text-gray-400 border-b border-r border-gray-200 bg-gray-50 select-none cursor-pointer hover:bg-gray-200${o?" !bg-blue-200 !text-gray-700":""}${P===r?" !bg-blue-100":""}`,draggable:!0,onDragStart:()=>(e=>K(e))(r),onDragOver:e=>((e,t)=>{e.preventDefault(),R(t)})(e,r),onDrop:()=>(e=>{if(null===T||T===e)return K(null),void R(null);const t=te.map(e=>[...e]),[n]=t.splice(T,1);t.splice(e,0,n),p(t),K(null),R(null)})(r),onDragEnd:()=>{K(null),R(null)},onClick:t=>{t.shiftKey&&q||W({row:r,col:0}),_({row:r,col:e.length-1})},onContextMenu:e=>ge(e,r),children:[r+1,
14
+ /* @__PURE__ */h("div",{className:"absolute -bottom-1 left-0 right-0 h-2 cursor-row-resize z-20",onMouseDown:e=>((e,t)=>{e.preventDefault(),e.stopPropagation(),O.current={row:t,startY:e.clientY,startH:fe(t)},document.body.style.cursor="row-resize"})(e,r),onDoubleClick:e=>{e.stopPropagation(),be(r)},title:C.resize})]}),e.map((e,n)=>{const o=q&&V&&function(e,t,n,r){const o=Math.min(e.row,t.row),l=Math.max(e.row,t.row),c=Math.min(e.col,t.col),a=Math.max(e.col,t.col);return n>=o&&n<=l&&r>=c&&r<=a}(q,V,r,n),l=j?.row===r&&j?.col===n&&!e.readOnly,c=E?.row===r&&E?.col===n,a=x?.[`${r}:${n}`],s=q&&V?Math.max(q.row,V.row):-1,i=q&&V?Math.max(q.col,V.col):-1,d=q&&V&&r===s&&n===i,w=Q.current&&J&&q&&V&&(()=>{const e=Math.min(q.row,V.row),t=Math.max(q.row,V.row),o=Math.min(q.col,V.col),l=Math.max(q.col,V.col);let c=e,a=t,s=o,i=l;return J.row>t?a=J.row:J.row<e&&(c=J.row),J.col>l?i=J.col:J.col<o&&(s=J.col),r>=c&&r<=a&&n>=s&&n<=i&&!(r>=e&&r<=t&&n>=o&&n<=l)})(),m="sm"===a?.fontSize?"text-2xs":"lg"===a?.fontSize?"text-sm":"xl"===a?.fontSize?"text-base":"text-xs",p=`${a?.bold?" font-bold":""}${a?.italic?" italic":""}${a?.underline?" underline":""}`;/* @__PURE__ */
15
15
  return u("td",{className:`relative px-0 py-0 border-b border-r border-gray-200 text-sm${e.readOnly?" bg-gray-50 text-gray-500 cursor-default":" cursor-cell"}${o?" !bg-blue-100":""}${c&&!o?" ring-2 ring-inset ring-blue-400":""}${w?" !bg-blue-50 ring-1 ring-inset ring-blue-300":""}`,onMouseDown:e=>{if(e.target===e.currentTarget){re(e,r,n);const t=e.currentTarget.querySelector("[data-row][data-col]");t?.focus()}},onMouseEnter:()=>oe(r,n),onClick:e=>{if(e.target===e.currentTarget){const t=e.currentTarget.querySelector("[data-row][data-col]");t?.focus()}},onDoubleClick:t=>{t.target!==t.currentTarget||e.readOnly||B({row:r,col:n})},children:[
16
- /* @__PURE__ */h(g,{contentEditable:l,suppressContentEditableWarning:!0,tabIndex:0,"data-row":r,"data-col":n,className:`w-full h-full px-2 py-1 rosh-focus-ring whitespace-nowrap overflow-hidden ${"right"===e.align?"text-right":"center"===e.align?"text-center":""} ${e.readOnly?"cursor-default":"cursor-cell"} font-mono ${m}${p}`,onMouseDown:e=>re(e,r,n),onMouseEnter:()=>oe(r,n),onDoubleClick:()=>{e.readOnly||B({row:r,col:n})},onFocus:()=>{S({row:r,col:n}),U.current||(W({row:r,col:n}),J({row:r,col:n}))},onBlur:e=>{const o=e.currentTarget.textContent||"";o!==(t[n]||"")&&ne(r,n,o),B(null)},onInput:()=>ae(r),onPaste:e=>le(e,r,n),onKeyDown:t=>{if(!(l||e.readOnly||1!==t.key.length||t.ctrlKey||t.metaKey||t.altKey))return t.preventDefault(),ne(r,n,t.key),Y.current={row:r,col:n},void B({row:r,col:n});ce(t,r,n)},text:t[n]||""}),d&&/* @__PURE__ */h("div",{onMouseDown:xe,title:C.fill,className:"absolute -bottom-[3px] -right-[3px] w-[7px] h-[7px] bg-blue-500 border border-white cursor-crosshair z-30 hover:bg-blue-600"})]},n)})]},r)}),Ae>0&&/* @__PURE__ */h("tr",{style:{height:Ae}})]})]}),se&&i(
16
+ /* @__PURE__ */h(g,{contentEditable:l,suppressContentEditableWarning:!0,tabIndex:0,"data-row":r,"data-col":n,className:`w-full h-full px-2 py-1 rosh-focus-ring whitespace-nowrap overflow-hidden ${"right"===e.align?"text-right":"center"===e.align?"text-center":""} ${e.readOnly?"cursor-default":"cursor-cell"} font-mono ${m}${p}`,onMouseDown:e=>re(e,r,n),onMouseEnter:()=>oe(r,n),onDoubleClick:()=>{e.readOnly||B({row:r,col:n})},onFocus:()=>{$({row:r,col:n}),G.current||(W({row:r,col:n}),_({row:r,col:n}))},onBlur:e=>{const o=e.currentTarget.textContent||"";o!==(t[n]||"")&&ne(r,n,o),B(null)},onInput:()=>ae(r),onPaste:e=>le(e,r,n),onKeyDown:t=>{if(!(l||e.readOnly||1!==t.key.length||t.ctrlKey||t.metaKey||t.altKey))return t.preventDefault(),ne(r,n,t.key),Y.current={row:r,col:n},void B({row:r,col:n});ce(t,r,n)},text:t[n]||""}),d&&/* @__PURE__ */h("div",{onMouseDown:xe,title:C.fill,className:"absolute -bottom-[3px] -right-[3px] w-[7px] h-[7px] bg-blue-500 border border-white cursor-crosshair z-30 hover:bg-blue-600"})]},n)})]},r)}),Ae>0&&/* @__PURE__ */h("tr",{style:{height:Ae}})]})]}),se&&i(
17
17
  /* @__PURE__ */u(d,{children:[
18
18
  /* @__PURE__ */h("div",{className:"fixed inset-0 z-(--z-popup)",onPointerDown:()=>ie(null)}),
19
19
  /* @__PURE__ */h("div",{className:"fixed z-(--z-popup) bg-white rounded-lg shadow-lg border border-gray-200 py-1 min-w-[160px]",style:{left:se.x,top:se.y},children:se.items.map((e,t)=>/* @__PURE__ */h("button",{onPointerDown:t=>{t.stopPropagation(),e.onClick()},className:"w-full text-left px-3 min-h-(--row-height-menu) py-2 leading-5 text-sm text-gray-700 hover:bg-gray-100",children:e.label},t))})]}),document.body)]})}export{m as EditableGrid,w as withSpareRow};
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{FileIntakeAlert,acceptsFile,useFileIntake}from"../chunk-JNNGFK5N.js";import"../chunk-SB5KBKVJ.js";import"../chunk-C3QOHMR6.js";
2
+ export{FileIntakeAlert,acceptsFile,useFileIntake}from"../chunk-YWC7G2CN.js";import"../chunk-GBP32PVK.js";import"../chunk-C3QOHMR6.js";
@@ -1,5 +1,5 @@
1
1
  import { ResourceLanguage, i18n, TFunction } from 'i18next';
2
- import { S as ShellStringsOverride } from '../strings-BXfu1R53.js';
2
+ import { S as ShellStringsOverride } from '../strings-C_0nDRsv.js';
3
3
  import 'react/jsx-runtime';
4
4
  import 'react';
5
5
 
@@ -6,7 +6,7 @@ import { g as TimeAgoOptions } from './index-CHufemKB.js';
6
6
  import './markup/index.js';
7
7
  import { useFileIntake, FileIntakeLimits, FileRejection } from './file-intake/index.js';
8
8
  import './registry-IyW-xYGB.js';
9
- import { S as ShellStringsOverride } from './strings-BXfu1R53.js';
9
+ import { S as ShellStringsOverride } from './strings-C_0nDRsv.js';
10
10
 
11
11
  /**
12
12
  * Button styling — the class strings `Button` and `IconButton` wear, and the
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- import { S as SearchConfig, C as ColumnDef, a as SortState, P as PaginatedResponse } from './index-BddrJwtq.js';
2
- 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 AccordionTier, j as Align, k as AlignmentGrid, l as AlignmentGridProps, m as AlignmentPoint, n as AngleScale, o as AppUpdateBanner, p as AppUpdateBannerProps, q as AttachButton, r as AttachButtonProps, s as AttachmentDropZone, t as AttachmentDropZoneProps, u as AttachmentList, v as AttachmentListProps, w as AuthScreen, x as AuthScreenProps, y as Avatar, z as AvatarGroup, B as AvatarGroupProps, D as AvatarProps, E as AvatarSize, F as AvatarStatus, G as BORDER_LINE_STYLES, H as BORDER_WIDTHS, I as BackgroundVariant, J as BandScale, K as Banner, L as BannerEmphasis, M as BannerProps, N as BannerTone, O as BorderInput, Q as BorderInputProps, R as BorderLineStyle, T as BorderRole, U as BorderValue, V as Bounds, W as BoxPlotBox, X as BoxPlotChart, Y as BoxPlotChartProps, Z as BrandAssetEditor, _ as BrandAssetEditorProps, $ as BrandAssetPreview, a0 as BrandMark, a1 as BrandMarkProps, a2 as BrandMarkSlot, a3 as BrandMarkSurface, a4 as BrandMarkTreatment, a5 as BreadcrumbItem, a6 as Breadcrumbs, a7 as BreadcrumbsProps, a8 as BudgetBar, a9 as BudgetBarProps, aa as BudgetState, ab as Button, ac as ButtonClassesOptions, ad as ButtonProps, ae as ButtonSize, af as ButtonVariant, ag as CHART_INK, ah as CMD_A, ai as CMD_DOT, aj as CMD_ENTER, ak as CMD_K, al as CMD_S, am as COLUMN_COUNT_MAX, an as COLUMN_COUNT_WIDTHS, ao as COLUMN_SHARES_EQUAL, ap as COLUMN_SHARE_MIN, aq as CONTROL_HEIGHTS, ar as CORNERS, as as CORNERS_FOR_THEME, at as Calendar, au as CalendarMode, av as CalendarProps, aw as Candle, ax as CandlestickChart, ay as CandlestickChartProps, az as Card, aA as CardPadding, aB as CardProps, aC as CardTone, aD as CartesianPlot, aE as CartesianPlotProps, aF as CellStyle, aG as ChartBackgroundVariant, aH as ChartBrush, aI as ChartBrushProps, aJ as ChartCurve, aK as ChartDefs, aL as ChartDefsProps, aM as ChartDot, aN as ChartDotProps, aO as ChartDotVariant, aP as ChartFillVariant, aQ as ChartFrame, aR as ChartFrameProps, aS as ChartHighlightProvider, aT as ChartLegendEntry, aU as ChartLegendSwatch, aV as ChartRange, aW as ChartReferenceLine, aX as ChartRevealDirection, aY as ChartSkeleton, aZ as ChartSkeletonProps, a_ as ChartStatusTone, a$ as ChartStrokeVariant, b0 as ChartTooltip, b1 as ChartTooltipProps, b2 as ChartTooltipRow, b3 as ChatTemplate, b4 as Checkbox, b5 as CheckboxProps, b6 as CheckoutTemplate, b7 as ChordChart, b8 as ChordChartProps, b9 as ColorPicker, ba as ColorPickerPanel, bb as ColorPickerPanelProps, bc as ColorPickerProps, bd as ColorPreset, be as ColorSwatch, bf as ColorSwatchProps, bg as ColorSwatchSize, bh as ColoredBadge, bi as ColoredBadgeProps, bj as ColumnChart, bk as ColumnChartProps, bl as ColumnSeries, bm as ColumnShares, bn as ComposerAttachments, bo as ComposerAttachmentsProps, bp as ConfirmProvider, bq as ContainerFillChart, br as ContainerFillChartProps, bs as ContainerFillItem, bt as ContextMenu, bu as ContextMenuPoint, bv as ContextMenuProps, bw as ContextMenuState, bx as ControlSize, by as CornerOption, bz as Corners, bA as CornersInput, bB as CornersInputProps, bC as CountBadge, bD as CountBadgeProps, bE as CountBadgeTone, bF as Curve, bG as DAY_MS, bH as DashboardTemplate, bI as DataTable, bJ as DataTableColumn, bK as DataTableColumnGroup, bL as DataTableHeader, bM as DataTablePage, bN as DataTableProps, bO as DataTableRowLink, bP as DataTableRowProps, bQ as DatePicker, bR as DatePickerProps, bS as DateRangePicker, bT as DateRangePickerProps, bU as DateTimePicker, bV as DateTimePickerProps, bW as DescriptionColumns, bX as DescriptionItem, bY as DescriptionList, bZ as DescriptionListProps, b_ as Dialog, b$ as DialogProps, c0 as DialogSize, c1 as DisplayChipItem, c2 as DisplayChips, c3 as DisplayChipsProps, c4 as Divider, c5 as DividerProps, c6 as DividerSpacing, c7 as Drawer, c8 as DrawerProps, c9 as DrawerSide, ca as DrawerSize, cb as DropdownMenu, cc as DropdownMenuAlign, cd as DropdownMenuCheckboxItem, ce as DropdownMenuDividerItem, cf as DropdownMenuEntry, cg as DropdownMenuFooterApi, ch as DropdownMenuItem, ci as DropdownMenuLabelItem, cj as DropdownMenuLinkItem, ck as DropdownMenuProps, cl as DropdownMenuRadioItem, cm as DropdownMenuSide, cn as DropdownMenuStatusItem, co as DropdownPositionOptions, cp as ELEVATION_LEVELS, cq as ENGLISH, cr as ENTER, cs as EditableGrid, ct as EditableGridProps, cu as ElevationLevel, cv as EmailTemplate, cw as EmptyState, cx as EmptyStateProps, cy as EmptyValue, cz as EmptyValueProps, cA as ErrorBoundary, cB as ErrorBoundaryProps, cC as ErrorPage, cD as ErrorPageProps, cE as FONT_WEIGHTS, cF as FileIntake, cG as FilePicker, cH as FilePickerProps, cI as FillVariant, cJ as FloatingBar, cK as FloatingBarAlign, cL as FloatingBarProps, cM as FloatingBarSide, cN as FontWeightRole, cO as FormError, cP as FormErrorSummary, cQ as FormErrorSummaryProps, cR as FormField, cS as FormFieldProps, cT as FormLayoutPage, cU as FunnelChart, cV as FunnelChartProps, cW as FunnelStage, cX as GLASS_DIVIDER, cY as GLASS_INPUT_BG, cZ as GROUP_COLORS, c_ as GROUP_COLORS_SOLID, c$ as GalleryTemplate, d0 as Gap, d1 as GlassOptions, d2 as GlobalSearch, d3 as GlobalSearchProps, d4 as Grid, d5 as GridCols, d6 as GridColumn, d7 as GridProps, d8 as HeatmapChart, d9 as HeatmapChartProps, da as HelpCenter, db as HelpCenterDoc, dc as HelpCenterProps, dd as HexInput, de as HistogramBin, df as HistogramChart, dg as HistogramChartProps, dh as Hsv, di as INPUT_BASE, dj as INPUT_SIZES, dk as IconButton, dl as IconButtonClassesOptions, dm as IconButtonProps, dn as IconPicker, dp as IconPickerOption, dq as IconPickerProps, dr as IconRail, ds as IconRailButton, dt as IconRailButtonProps, du as IconRailLabels, dv as IconRailLabelsShown, dw as IconRailOrientation, dx as IconRailProps, dy as ImageFocusPoint, dz as ImageFocusPointProps, dA as Inline, dB as InlineProps, dC as Input, dD as InputNumber, dE as InputNumberProps, dF as InputProps, dG as InputSize, dH as Justify, dI as Kanban, dJ as KanbanColumn, dK as KanbanProps, dL as Kbd, dM as KbdProps, dN as KbdSize, dO as KbdTone, dP as Label, dQ as LabelClassesOptions, dR as LabelProps, dS as LadderScale, dT as LanguagePanel, dU as LanguagePanelProps, dV as LanguageSelect, dW as LanguageSelectProps, dX as LinearScale, dY as LinkFilter, dZ as LinkFilterField, d_ as LinkKindChoice, d$ as LinkOption, e0 as LinkOptionGroup, e1 as LinkPicker, e2 as LinkPickerFieldProps, e3 as LinkPickerProps, e4 as LinkPickerWindowProps, e5 as LinkRules, e6 as LinkTarget, e7 as ListDrop, e8 as ListFooter, e9 as ListLoadError, ea as ListLoadErrorProps, eb as ListMove, ec as ListRow, ed as ListRowProps, ee as LoadingSpinner, ef as LoadingSpinnerProps, eg as MAX_FRACTION_DIGITS, eh as MENU_MAX_HEIGHT, ei as MOD, ej as MOTION, ek as MOTION_DURATIONS, el as Markdown, el as MarkdownLite, em as MarkdownLiteProps, em as MarkdownProps, en as MediaUploadField, eo as MediaUploadFieldProps, ep as MediaUploadGrid, eq as MediaUploadGridItem, er as MediaUploadGridProps, es as MenuAlign, et as MenuPlacement, eu as MenuPos, ev as MenuSide, ew as Meter, ex as MeterProps, ey as MetricBar, ez as MetricBarProps, eA as Milestone, eB as MilestoneKind, eC as MilestoneTimeline, eD as MilestoneTimelineProps, eE as MotionSpeed, eF as NATIVE_MENU_ATTR, eG as NEXT_CHUNK_PATH_PREFIX, eH as NativeSelect, eI as NiceAxis, eJ as NumericKeypad, eK as NumericKeypadProps, eL as OVERLAY_OPEN_EVENT, eM as PLACEHOLDER_INK, eN as POPUP_MAX_WIDTH, eO as POST_PRODUCTION_STATUSES, eP as PageHeader, eQ as PageHeaderProps, eR as Pagination, eS as PaginationProps, eT as PaperclipGlyph, eU as Paragraph, eV as ParagraphProps, eW as PictureTileOption, eX as PictureTiles, eY as PictureTilesProps, eZ as PieChart, e_ as PieChartProps, e$ as PieSegment, f0 as PlotGeometry, f1 as Point, f2 as Popover, f3 as PopoverAlign, f4 as PopoverProps, f5 as PopoverRenderProps, f6 as PopoverSide, f7 as PopupMenu, f8 as PopupMenuDivider, f9 as PopupMenuItem, fa as PopupMenuItemProps, fb as PopupMenuLabel, fc as PopupMenuProps, fd as PopupSubmenu, fe as PopupSubmenuProps, ff as PortalBrandingContextValue, fg as PortalBrandingProvider, fh as PortalBrandingProviderProps, fi as ProductionTimeline, fj as ProductionTimelineProps, fk as ProductionTimelineSnapshot, fl as ProgressItem, fm as PublicPortal, fn as PublicPortalBranding, fo as RADAR_SERIES_CAP, fp as RADIUS_ROLES, fq as ROW_HEIGHTS, fr as RadarAxis, fs as RadarChart, ft as RadarChartProps, fu as RadarSeries, fv as RadialBarChart, fw as RadialBarChartProps, fx as RadialBarRow, fy as Radio, fz as RadioGroup, fA as RadioGroupOption, fB as RadioGroupOrientation, fC as RadioGroupProps, fD as RadioProps, fE as RadiusRole, fF as Range, fG as RangeChart, fH as RangeChartProps, fI as RangeRow, fJ as RankedBars, fK as RankedBarsProps, fL as RankedBarsRow, fM as ResizeHandle, fN as ResizeHandleOrientation, fO as ResizeHandleProps, fP as ResizeHandleSide, fQ as ResizeHandleStackSide, fR as ResolvedPortalBrandAsset, fS as Result, fT as ResultProps, fU as ResultStatus, fV as RevealDirection, fW as SCATTER_SERIES_CAP, fX as SERIES_SLOT_COUNT, fY as SERIES_VARS, fZ as SHELL_LANGUAGE_STORAGE_KEY, f_ as SHIFT, f$ as SPACING_ROLES, g0 as SPACING_SCALE, g1 as STAGES, g2 as STALE_CHUNK_RELOAD_COOLDOWN_MS, g3 as STALE_CHUNK_RELOAD_KEY, g4 as STATUS_VARS, g5 as SankeyChart, g6 as SankeyChartProps, g7 as SankeyLink, g8 as SankeyNode, g9 as ScatterChart, ga as ScatterChartProps, gb as ScatterPoint, gc as ScatterSeries, gd as SearchListRoute, ge as SearchProvider, gf as SearchQuickAction, gg as SearchResponse, gh as SearchResult, gi as SearchableItem, gj as SearchableOption, gk as SearchableOptionGroup, gl as SearchableSelect, gm as SearchableSelectBaseProps, gn as SearchableSelectMultipleProps, go as SearchableSelectProps, gp as Segmented, gq as SegmentedOption, gr as SegmentedProps, gs as SegmentedSize, gt as Select, gu as SelectBaseProps, gv as SelectFooterAction, gw as SelectItem, gx as SelectMultipleProps, gy as SelectOption, gz as SelectOptionGroup, gA as SelectProps, gB as SemanticGroup, gC as SeriesSlots, gD as SettingReset, gE as SettingResetProps, gF as SettingResetView, gG as SettingRow, gH as SettingRowProps, gI as SettingViewState, gJ as SeverityTone, gK as ShellContextKind, gL as ShellContextTarget, gM as ShellLanguage, gN as ShellLanguageProvider, gO as ShellLanguageState, gP as ShellPrefsAdapter, gQ as ShellPrefsProvider, gR as ShowWhen, gS as ShowWhenCheck, gT as ShowWhenContext, gU as ShowWhenProps, gV as ShowWhenRule, gW as ShowWhenValue, gX as Side, gY as SidebarActionButton, gZ as SidebarActionButtonProps, g_ as SidebarGroupLabel, g$ as SidebarGroupLabelProps, h0 as SidebarLayout, h1 as SidebarLayoutProps, h2 as SidebarNavGroup, h3 as SidebarNavGroupProps, h4 as SidebarNavItem, h5 as SidebarNavItemProps, h6 as SidesEachToggle, h7 as SidesInput, h8 as SidesInputProps, h9 as SidesValue, ha as Skeleton, hb as SkeletonProps, hc as SkeletonVariant, hd as Slider, he as SliderGroup, hf as SliderProps, hg as SliderSize, hh as Snippet, hi as SnippetProps, hj as SnippetSize, hk as SnippetVariant, hl as SortableList, hm as SortableListProps, hn as SortableListSpacing, ho as SpacingRole, hp as SpacingStep, hq as Sparkline, hr as SparklineProps, hs as SpinnerRing, ht as SpinnerRingProps, hu as SplitButton, hv as SplitButtonProps, hw as SplitButtonVariant, hx as Stack, hy as StackProps, hz as StaleChunkReloadOptions, hA as StatCard, hB as StatCardProps, hC as StatTile, hD as StatTileProps, hE as Statistic, hF as StatisticProps, hG as StatisticSize, hH as StatisticTone, hI as StatusBadge, hJ as StatusBadgeProvider, hK as StatusEmphasis, hL as StepChain, hM as StepChainItem, hN as StepChainItemProps, hO as StepChainProps, hP as StepChainStatus, hQ as StepItem, hR as Stepper, hS as StepperProps, hT as StrokeVariant, hU as SunburstChart, hV as SunburstChartProps, hW as SunburstNode, hX as Switch, hY as SwitchProps, hZ as SwitchSize, h_ as TYPE_SCALE, h$ as TabItem, i0 as Tabs, i1 as TabsProps, i2 as TagInput, i3 as TagInputOption, i4 as TagInputProps, i5 as TagInputTone, i6 as Text, i7 as TextLinkField, i8 as TextLinkFieldProps, i9 as TextProps, ia as TextSize, ib as TextTone, ic as TextToolbar, id as TextToolbarAlign, ie as TextToolbarCase, ig as TextToolbarMark, ih as TextToolbarProps, ii as TextWeight, ij as Textarea, ik as TextareaProps, il as Theme, im as TileButton, io as TileButtonProps, ip as TileSize, iq as TimeAgo, ir as TimeAgoProps, is as TimePicker, it as TimePickerProps, iu as TimeSeriesChart, iv as TimeSeriesChartProps, iw as TimeSeriesSeries, ix as TimelineMarker, iy as TimelineMarkerKind, iz as TimelineReport, iA as TimelineScrubProgress, iB as TimelineTrack, iC as TimelineTrackItem, iD as TimelineTrackKind, iE as TimelineTrackPending, iF as TimelineTrackPhase, iG as TimelineTrackPlayback, iH as TimelineTrackProps, iI as TimelineTrackThumb, iJ as Title, iK as TitleLevel, iL as TitleProps, iM as ToastAction, iN as ToastCloseReason, iO as ToastOptions, iP as ToastPlacement, iQ as ToastUndoableOptions, iR as Tooltip, iS as TooltipProps, iT as TopNav, iU as TopNavItem, iV as TopNavProps, iW as TransferProgress, iX as TransferProgressProps, iY as TransferProgressState, iZ as Tree, i_ as TreeDrop, i$ as TreeEmptySlot, j0 as TreeEmptySlotProps, j1 as TreeGroup, j2 as TreeGroupLabel, j3 as TreeGroupLabelProps, j4 as TreeGroupProps, j5 as TreeMove, j6 as TreeProps, j7 as TreeRow, j8 as TreeRowProps, j9 as TreeSeam, ja as TreeSeamProps, jb as TreemapChart, jc as TreemapChartProps, jd as TreemapItem, je as TreemapTile, jf as TypeStep, jg as UNDOABLE_MS, jh as UseAppUpdateOptions, ji as UseContextMenu, jj as UseProductionTimelineOpts, jk as VERSION, jl as VITE_PRELOAD_ERROR_EVENT, jm as WaterfallChart, jn as WaterfallChartProps, jo as WaterfallStep, jp as WidthsBar, jq as WidthsBarProps, jr as ZLayer, js as Z_LAYERS, jt as angleScale, ju as appendKey, jv as applyCorners, jw as applyIconSet, jx as applyThemePrefs, jy as arcPath, jz as areaBetween, jA as areaFrom, jB as assignSeriesSlots, jC as autoHighlightIndex, jD as backspace, jE as bandScale, jF as binValues, jG as borderSides, jH as borderStartEach, jI as budgetState, jJ as bumpPath, jK as buttonClasses, jL as calcOverall, jM as calcReportOverall, jN as colorFill, jO as colorSwatchClasses, jP as columnSharesWidths, jQ as confirm, jR as confirmDestructive, jS as cornersFor, jT as curvePath, jU as dashFor, jV as describeContextTarget, jW as dismissPopups, jX as fillFor, jY as fillId, jZ as fmtSliderDate, j_ as fromDateKey, j$ as glassStyle, k0 as glowId, k1 as groundId, k2 as groupColors, k3 as hexToHsv, k4 as highlightOpacity, k5 as hsvToHex, k6 as iconButtonClasses, k7 as inputClasses, k8 as installStaleChunkReload, k9 as isMac, ka as isSeverityTone, kb as isShown, kc as isSpacingStep, kd as isStaleChunkError, ke as keepsNativeMenu, kf as labelClasses, kg as ladderScale, kh as languageSelectWidth, ki as leavesContextMenuAlone, kj as linearPath, kk as linearScale, kl as logScale, km as maskId, kn as matchShellLanguage, ko as mediaFileName, kp as monotonePath, kq as niceAxis, kr as niceMax, ks as openGlobalSearch, kt as parseHexColor, ku as placeMenu, kv as polygonPoints, kw as popupBounds, kx as prompt, ky as pushRecentSearch, kz as radiusScale, kA as readSavedShellLanguage, kB as registerModalEscapeInterceptor, kC as resolveBrandMarkTreatment, kD as resolveColumnShares, kE as resolveColumnWidths, kF as resolveCorners, kG as resolvePortalBrandAsset, kH as resolveSeriesColor, kI as resolveSeriesColorWithin, kJ as resolveShellLanguage, kK as resolveTheme, kL as sanitizeRecentSearches, kM as saveShellLanguage, kN as seriesColor, kO as severityOf, kP as sidesStartEach, kQ as solidSurfaceStyle, kR as splinePath, kS as squarify, kT as stagger, kU as stepPath, kV as tabButtonId, kW as tabPanelId, kX as textToolbarRows, kY as textToolbarWindowColumns, kZ as toDateKey, k_ as toDayMs, k$ as toISODate, l0 as toast, l1 as toggleSeriesSlot, l2 as useAppUpdate, l3 as useClickOutside, l4 as useConfirm, l5 as useContextMenu, l6 as useDebouncedValue, l7 as useDropdownPosition, l8 as useFocusTrap, l9 as useHighlight, la as useInSettingRow, lb as useIsMobile, lc as useLocalStoragePrefs, ld as usePlotWidth, le as usePortalBranding, lf as useProductionTimeline, lg as useScrollLock, lh as useSettingAuto, li as useShellLanguage, lj as useShellPrefs, lk as useStatusLabel, ll as useTheme, lm as useTransferProgress } from './index-BddrJwtq.js';
1
+ import { S as SearchConfig, C as ColumnDef, a as SortState, P as PaginatedResponse } from './index-B6kl2VTe.js';
2
+ 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 AccordionTier, j as Align, k as AlignmentGrid, l as AlignmentGridProps, m as AlignmentPoint, n as AngleScale, o as AppUpdateBanner, p as AppUpdateBannerProps, q as AttachButton, r as AttachButtonProps, s as AttachmentDropZone, t as AttachmentDropZoneProps, u as AttachmentList, v as AttachmentListProps, w as AuthScreen, x as AuthScreenProps, y as Avatar, z as AvatarGroup, B as AvatarGroupProps, D as AvatarProps, E as AvatarSize, F as AvatarStatus, G as BORDER_LINE_STYLES, H as BORDER_WIDTHS, I as BackgroundVariant, J as BandScale, K as Banner, L as BannerEmphasis, M as BannerProps, N as BannerTone, O as BorderInput, Q as BorderInputProps, R as BorderLineStyle, T as BorderRole, U as BorderValue, V as Bounds, W as BoxPlotBox, X as BoxPlotChart, Y as BoxPlotChartProps, Z as BrandAssetEditor, _ as BrandAssetEditorProps, $ as BrandAssetPreview, a0 as BrandMark, a1 as BrandMarkProps, a2 as BrandMarkSlot, a3 as BrandMarkSurface, a4 as BrandMarkTreatment, a5 as BreadcrumbItem, a6 as Breadcrumbs, a7 as BreadcrumbsProps, a8 as BudgetBar, a9 as BudgetBarProps, aa as BudgetState, ab as Button, ac as ButtonClassesOptions, ad as ButtonProps, ae as ButtonSize, af as ButtonVariant, ag as CHART_INK, ah as CMD_A, ai as CMD_DOT, aj as CMD_ENTER, ak as CMD_K, al as CMD_S, am as COLUMN_COUNT_MAX, an as COLUMN_COUNT_WIDTHS, ao as COLUMN_SHARES_EQUAL, ap as COLUMN_SHARE_MIN, aq as CONTROL_HEIGHTS, ar as CORNERS, as as CORNERS_FOR_THEME, at as Calendar, au as CalendarMode, av as CalendarProps, aw as Candle, ax as CandlestickChart, ay as CandlestickChartProps, az as Card, aA as CardPadding, aB as CardProps, aC as CardTone, aD as CartesianPlot, aE as CartesianPlotProps, aF as CellStyle, aG as ChartBackgroundVariant, aH as ChartBrush, aI as ChartBrushProps, aJ as ChartCurve, aK as ChartDefs, aL as ChartDefsProps, aM as ChartDot, aN as ChartDotProps, aO as ChartDotVariant, aP as ChartFillVariant, aQ as ChartFrame, aR as ChartFrameProps, aS as ChartHighlightProvider, aT as ChartLegendEntry, aU as ChartLegendSwatch, aV as ChartRange, aW as ChartReferenceLine, aX as ChartRevealDirection, aY as ChartSkeleton, aZ as ChartSkeletonProps, a_ as ChartStatusTone, a$ as ChartStrokeVariant, b0 as ChartTooltip, b1 as ChartTooltipProps, b2 as ChartTooltipRow, b3 as ChatTemplate, b4 as Checkbox, b5 as CheckboxProps, b6 as CheckoutTemplate, b7 as ChordChart, b8 as ChordChartProps, b9 as ColorPicker, ba as ColorPickerPanel, bb as ColorPickerPanelProps, bc as ColorPickerProps, bd as ColorPreset, be as ColorSwatch, bf as ColorSwatchProps, bg as ColorSwatchSize, bh as ColoredBadge, bi as ColoredBadgeProps, bj as ColumnChart, bk as ColumnChartProps, bl as ColumnSeries, bm as ColumnShares, bn as ComposerAttachments, bo as ComposerAttachmentsProps, bp as ConfirmProvider, bq as ContainerFillChart, br as ContainerFillChartProps, bs as ContainerFillItem, bt as ContextMenu, bu as ContextMenuPoint, bv as ContextMenuProps, bw as ContextMenuState, bx as ControlSize, by as CornerOption, bz as Corners, bA as CornersInput, bB as CornersInputProps, bC as CountBadge, bD as CountBadgeProps, bE as CountBadgeTone, bF as Curve, bG as DAY_MS, bH as DashboardTemplate, bI as DataTable, bJ as DataTableColumn, bK as DataTableColumnGroup, bL as DataTableHeader, bM as DataTablePage, bN as DataTableProps, bO as DataTableRowLink, bP as DataTableRowProps, bQ as DatePicker, bR as DatePickerProps, bS as DateRangePicker, bT as DateRangePickerProps, bU as DateTimePicker, bV as DateTimePickerProps, bW as DescriptionColumns, bX as DescriptionItem, bY as DescriptionList, bZ as DescriptionListProps, b_ as Dialog, b$ as DialogProps, c0 as DialogSize, c1 as DisplayChipItem, c2 as DisplayChips, c3 as DisplayChipsProps, c4 as Divider, c5 as DividerProps, c6 as DividerSpacing, c7 as Drawer, c8 as DrawerProps, c9 as DrawerSide, ca as DrawerSize, cb as DropdownMenu, cc as DropdownMenuAlign, cd as DropdownMenuCheckboxItem, ce as DropdownMenuDividerItem, cf as DropdownMenuEntry, cg as DropdownMenuFooterApi, ch as DropdownMenuItem, ci as DropdownMenuLabelItem, cj as DropdownMenuLinkItem, ck as DropdownMenuProps, cl as DropdownMenuRadioItem, cm as DropdownMenuSide, cn as DropdownMenuStatusItem, co as DropdownPositionOptions, cp as ELEVATION_LEVELS, cq as ENGLISH, cr as ENTER, cs as EditableGrid, ct as EditableGridProps, cu as ElevationLevel, cv as EmailTemplate, cw as EmptyState, cx as EmptyStateProps, cy as EmptyValue, cz as EmptyValueProps, cA as ErrorBoundary, cB as ErrorBoundaryProps, cC as ErrorPage, cD as ErrorPageProps, cE as FONT_WEIGHTS, cF as FileIntake, cG as FilePicker, cH as FilePickerProps, cI as FillVariant, cJ as FloatingBar, cK as FloatingBarAlign, cL as FloatingBarProps, cM as FloatingBarSide, cN as FontWeightRole, cO as FormError, cP as FormErrorSummary, cQ as FormErrorSummaryProps, cR as FormField, cS as FormFieldProps, cT as FormLayoutPage, cU as FunnelChart, cV as FunnelChartProps, cW as FunnelStage, cX as GLASS_DIVIDER, cY as GLASS_INPUT_BG, cZ as GROUP_COLORS, c_ as GROUP_COLORS_SOLID, c$ as GalleryTemplate, d0 as Gap, d1 as GlassOptions, d2 as GlobalSearch, d3 as GlobalSearchProps, d4 as Grid, d5 as GridCols, d6 as GridColumn, d7 as GridProps, d8 as HeatmapChart, d9 as HeatmapChartProps, da as HelpCenter, db as HelpCenterDoc, dc as HelpCenterProps, dd as HexInput, de as HistogramBin, df as HistogramChart, dg as HistogramChartProps, dh as Hsv, di as INPUT_BASE, dj as INPUT_SIZES, dk as IconButton, dl as IconButtonClassesOptions, dm as IconButtonProps, dn as IconPicker, dp as IconPickerOption, dq as IconPickerProps, dr as IconRail, ds as IconRailButton, dt as IconRailButtonProps, du as IconRailLabels, dv as IconRailLabelsShown, dw as IconRailOrientation, dx as IconRailProps, dy as ImageFocusPoint, dz as ImageFocusPointProps, dA as Inline, dB as InlineProps, dC as Input, dD as InputNumber, dE as InputNumberProps, dF as InputProps, dG as InputSize, dH as Justify, dI as Kanban, dJ as KanbanColumn, dK as KanbanProps, dL as Kbd, dM as KbdProps, dN as KbdSize, dO as KbdTone, dP as Label, dQ as LabelClassesOptions, dR as LabelProps, dS as LadderScale, dT as LanguagePanel, dU as LanguagePanelProps, dV as LanguageSelect, dW as LanguageSelectProps, dX as LinearScale, dY as LinkFilter, dZ as LinkFilterField, d_ as LinkKindChoice, d$ as LinkOption, e0 as LinkOptionGroup, e1 as LinkPicker, e2 as LinkPickerFieldProps, e3 as LinkPickerProps, e4 as LinkPickerWindowProps, e5 as LinkRules, e6 as LinkTarget, e7 as ListDrop, e8 as ListFooter, e9 as ListLoadError, ea as ListLoadErrorProps, eb as ListMove, ec as ListRow, ed as ListRowProps, ee as LoadingSpinner, ef as LoadingSpinnerProps, eg as MAX_FRACTION_DIGITS, eh as MENU_MAX_HEIGHT, ei as MOD, ej as MOTION, ek as MOTION_DURATIONS, el as Markdown, el as MarkdownLite, em as MarkdownLiteProps, em as MarkdownProps, en as MediaUploadField, eo as MediaUploadFieldProps, ep as MediaUploadGrid, eq as MediaUploadGridItem, er as MediaUploadGridProps, es as MenuAlign, et as MenuPlacement, eu as MenuPos, ev as MenuSide, ew as Meter, ex as MeterProps, ey as MetricBar, ez as MetricBarProps, eA as Milestone, eB as MilestoneKind, eC as MilestoneTimeline, eD as MilestoneTimelineProps, eE as MotionSpeed, eF as NATIVE_MENU_ATTR, eG as NEXT_CHUNK_PATH_PREFIX, eH as NativeSelect, eI as NiceAxis, eJ as NumericKeypad, eK as NumericKeypadProps, eL as OVERLAY_OPEN_EVENT, eM as PLACEHOLDER_INK, eN as POPUP_MAX_WIDTH, eO as POST_PRODUCTION_STATUSES, eP as PageHeader, eQ as PageHeaderProps, eR as Pagination, eS as PaginationProps, eT as PaperclipGlyph, eU as Paragraph, eV as ParagraphProps, eW as PictureTileOption, eX as PictureTiles, eY as PictureTilesProps, eZ as PieChart, e_ as PieChartProps, e$ as PieSegment, f0 as PlotGeometry, f1 as Point, f2 as Popover, f3 as PopoverAlign, f4 as PopoverProps, f5 as PopoverRenderProps, f6 as PopoverSide, f7 as PopupMenu, f8 as PopupMenuDivider, f9 as PopupMenuItem, fa as PopupMenuItemProps, fb as PopupMenuLabel, fc as PopupMenuProps, fd as PopupSubmenu, fe as PopupSubmenuProps, ff as PortalBrandingContextValue, fg as PortalBrandingProvider, fh as PortalBrandingProviderProps, fi as ProductionTimeline, fj as ProductionTimelineProps, fk as ProductionTimelineSnapshot, fl as ProgressItem, fm as PublicPortal, fn as PublicPortalBranding, fo as RADAR_SERIES_CAP, fp as RADIUS_ROLES, fq as ROW_HEIGHTS, fr as RadarAxis, fs as RadarChart, ft as RadarChartProps, fu as RadarSeries, fv as RadialBarChart, fw as RadialBarChartProps, fx as RadialBarRow, fy as Radio, fz as RadioGroup, fA as RadioGroupOption, fB as RadioGroupOrientation, fC as RadioGroupProps, fD as RadioProps, fE as RadiusRole, fF as Range, fG as RangeChart, fH as RangeChartProps, fI as RangeRow, fJ as RankedBars, fK as RankedBarsProps, fL as RankedBarsRow, fM as ResizeHandle, fN as ResizeHandleOrientation, fO as ResizeHandleProps, fP as ResizeHandleSide, fQ as ResizeHandleStackSide, fR as ResolvedPortalBrandAsset, fS as Result, fT as ResultProps, fU as ResultStatus, fV as RevealDirection, fW as SCATTER_SERIES_CAP, fX as SERIES_SLOT_COUNT, fY as SERIES_VARS, fZ as SHELL_LANGUAGE_STORAGE_KEY, f_ as SHIFT, f$ as SPACING_ROLES, g0 as SPACING_SCALE, g1 as STAGES, g2 as STALE_CHUNK_RELOAD_COOLDOWN_MS, g3 as STALE_CHUNK_RELOAD_KEY, g4 as STATUS_VARS, g5 as SankeyChart, g6 as SankeyChartProps, g7 as SankeyLink, g8 as SankeyNode, g9 as ScatterChart, ga as ScatterChartProps, gb as ScatterPoint, gc as ScatterSeries, gd as SearchListRoute, ge as SearchProvider, gf as SearchQuickAction, gg as SearchResponse, gh as SearchResult, gi as SearchableItem, gj as SearchableOption, gk as SearchableOptionGroup, gl as SearchableSelect, gm as SearchableSelectBaseProps, gn as SearchableSelectMultipleProps, go as SearchableSelectProps, gp as Segmented, gq as SegmentedOption, gr as SegmentedProps, gs as SegmentedSize, gt as Select, gu as SelectBaseProps, gv as SelectFooterAction, gw as SelectItem, gx as SelectMultipleProps, gy as SelectOption, gz as SelectOptionGroup, gA as SelectProps, gB as SemanticGroup, gC as SeriesSlots, gD as SettingReset, gE as SettingResetProps, gF as SettingResetView, gG as SettingRow, gH as SettingRowProps, gI as SettingViewState, gJ as SeverityTone, gK as ShellContextKind, gL as ShellContextTarget, gM as ShellLanguage, gN as ShellLanguageProvider, gO as ShellLanguageState, gP as ShellPrefsAdapter, gQ as ShellPrefsProvider, gR as ShowWhen, gS as ShowWhenCheck, gT as ShowWhenContext, gU as ShowWhenProps, gV as ShowWhenRule, gW as ShowWhenValue, gX as Side, gY as SidebarActionButton, gZ as SidebarActionButtonProps, g_ as SidebarGroupLabel, g$ as SidebarGroupLabelProps, h0 as SidebarLayout, h1 as SidebarLayoutProps, h2 as SidebarNavGroup, h3 as SidebarNavGroupProps, h4 as SidebarNavItem, h5 as SidebarNavItemProps, h6 as SidesEachToggle, h7 as SidesInput, h8 as SidesInputProps, h9 as SidesValue, ha as Skeleton, hb as SkeletonProps, hc as SkeletonVariant, hd as Slider, he as SliderGroup, hf as SliderProps, hg as SliderSize, hh as Snippet, hi as SnippetProps, hj as SnippetSize, hk as SnippetVariant, hl as SortableList, hm as SortableListProps, hn as SortableListSpacing, ho as SpacingRole, hp as SpacingStep, hq as Sparkline, hr as SparklineProps, hs as SpinnerRing, ht as SpinnerRingProps, hu as SplitButton, hv as SplitButtonProps, hw as SplitButtonVariant, hx as Stack, hy as StackProps, hz as StaleChunkReloadOptions, hA as StatCard, hB as StatCardProps, hC as StatTile, hD as StatTileProps, hE as Statistic, hF as StatisticProps, hG as StatisticSize, hH as StatisticTone, hI as StatusBadge, hJ as StatusBadgeProvider, hK as StatusEmphasis, hL as StepChain, hM as StepChainItem, hN as StepChainItemProps, hO as StepChainProps, hP as StepChainStatus, hQ as StepItem, hR as Stepper, hS as StepperProps, hT as StrokeVariant, hU as SunburstChart, hV as SunburstChartProps, hW as SunburstNode, hX as Switch, hY as SwitchProps, hZ as SwitchSize, h_ as TYPE_SCALE, h$ as TabItem, i0 as Tabs, i1 as TabsProps, i2 as TagInput, i3 as TagInputOption, i4 as TagInputProps, i5 as TagInputTone, i6 as Text, i7 as TextLinkField, i8 as TextLinkFieldProps, i9 as TextProps, ia as TextSize, ib as TextTone, ic as TextToolbar, id as TextToolbarAlign, ie as TextToolbarCase, ig as TextToolbarMark, ih as TextToolbarProps, ii as TextWeight, ij as Textarea, ik as TextareaProps, il as Theme, im as TileButton, io as TileButtonProps, ip as TileSize, iq as TimeAgo, ir as TimeAgoProps, is as TimePicker, it as TimePickerProps, iu as TimeSeriesChart, iv as TimeSeriesChartProps, iw as TimeSeriesSeries, ix as TimelineMarker, iy as TimelineMarkerKind, iz as TimelineReport, iA as TimelineScrubProgress, iB as TimelineTrack, iC as TimelineTrackItem, iD as TimelineTrackKind, iE as TimelineTrackPending, iF as TimelineTrackPhase, iG as TimelineTrackPlayback, iH as TimelineTrackProps, iI as TimelineTrackThumb, iJ as Title, iK as TitleLevel, iL as TitleProps, iM as ToastAction, iN as ToastCloseReason, iO as ToastOptions, iP as ToastPlacement, iQ as ToastUndoableOptions, iR as Tooltip, iS as TooltipProps, iT as TopNav, iU as TopNavItem, iV as TopNavProps, iW as TransferProgress, iX as TransferProgressProps, iY as TransferProgressState, iZ as Tree, i_ as TreeDrop, i$ as TreeEmptySlot, j0 as TreeEmptySlotProps, j1 as TreeGroup, j2 as TreeGroupLabel, j3 as TreeGroupLabelProps, j4 as TreeGroupProps, j5 as TreeMove, j6 as TreeProps, j7 as TreeRow, j8 as TreeRowProps, j9 as TreeSeam, ja as TreeSeamProps, jb as TreemapChart, jc as TreemapChartProps, jd as TreemapItem, je as TreemapTile, jf as TypeStep, jg as UNDOABLE_MS, jh as UseAppUpdateOptions, ji as UseContextMenu, jj as UseProductionTimelineOpts, jk as VERSION, jl as VITE_PRELOAD_ERROR_EVENT, jm as WaterfallChart, jn as WaterfallChartProps, jo as WaterfallStep, jp as WidthsBar, jq as WidthsBarProps, jr as ZLayer, js as Z_LAYERS, jt as angleScale, ju as appendKey, jv as applyCorners, jw as applyIconSet, jx as applyThemePrefs, jy as arcPath, jz as areaBetween, jA as areaFrom, jB as assignSeriesSlots, jC as autoHighlightIndex, jD as backspace, jE as bandScale, jF as binValues, jG as borderSides, jH as borderStartEach, jI as budgetState, jJ as bumpPath, jK as buttonClasses, jL as calcOverall, jM as calcReportOverall, jN as colorFill, jO as colorSwatchClasses, jP as columnSharesWidths, jQ as confirm, jR as confirmDestructive, jS as cornersFor, jT as curvePath, jU as dashFor, jV as describeContextTarget, jW as dismissPopups, jX as fillFor, jY as fillId, jZ as fmtSliderDate, j_ as fromDateKey, j$ as glassStyle, k0 as glowId, k1 as groundId, k2 as groupColors, k3 as hexToHsv, k4 as highlightOpacity, k5 as hsvToHex, k6 as iconButtonClasses, k7 as inputClasses, k8 as installStaleChunkReload, k9 as isMac, ka as isSeverityTone, kb as isShown, kc as isSpacingStep, kd as isStaleChunkError, ke as keepsNativeMenu, kf as labelClasses, kg as ladderScale, kh as languageSelectWidth, ki as leavesContextMenuAlone, kj as linearPath, kk as linearScale, kl as logScale, km as maskId, kn as matchShellLanguage, ko as mediaFileName, kp as monotonePath, kq as niceAxis, kr as niceMax, ks as openGlobalSearch, kt as parseHexColor, ku as placeMenu, kv as polygonPoints, kw as popupBounds, kx as prompt, ky as pushRecentSearch, kz as radiusScale, kA as readSavedShellLanguage, kB as registerModalEscapeInterceptor, kC as resolveBrandMarkTreatment, kD as resolveColumnShares, kE as resolveColumnWidths, kF as resolveCorners, kG as resolvePortalBrandAsset, kH as resolveSeriesColor, kI as resolveSeriesColorWithin, kJ as resolveShellLanguage, kK as resolveTheme, kL as sanitizeRecentSearches, kM as saveShellLanguage, kN as seriesColor, kO as severityOf, kP as sidesStartEach, kQ as solidSurfaceStyle, kR as splinePath, kS as squarify, kT as stagger, kU as stepPath, kV as tabButtonId, kW as tabPanelId, kX as textToolbarRows, kY as textToolbarWindowColumns, kZ as toDateKey, k_ as toDayMs, k$ as toISODate, l0 as toast, l1 as toggleSeriesSlot, l2 as useAppUpdate, l3 as useClickOutside, l4 as useConfirm, l5 as useContextMenu, l6 as useDebouncedValue, l7 as useDropdownPosition, l8 as useFocusTrap, l9 as useHighlight, la as useInSettingRow, lb as useIsMobile, lc as useLocalStoragePrefs, ld as usePlotWidth, le as usePortalBranding, lf as useProductionTimeline, lg as useScrollLock, lh as useSettingAuto, li as useShellLanguage, lj as useShellPrefs, lk as useStatusLabel, ll as useTheme, lm as useTransferProgress } from './index-B6kl2VTe.js';
3
3
  export { C as CurrencyFormat, D as DATE_FORMAT_OPTIONS, a as DateFormatKey, E as EMPTY_VALUE, F as FOCAL_DEFAULT, b as FOCAL_NUDGE_COARSE, c as FOCAL_NUDGE_STEP, d as FocalPoint, e as FormatDateOptions, f as FormatMoneyOptions, T as TZ_AUTO, g as TimeAgoOptions, h as currencyDecimals, i as currencySymbol, j as firstDayOfWeek, k as focalFromRect, l as formatBytes, m as formatDate, n as formatDateTime, o as formatFocal, p as formatMoney, q as formatTime, r as getUserDateFormat, s as getUserTimezone, t as nudgeFocal, u as parseFocal, v as setCurrencyFormats, w as setUserDateFormat, x as setUserTimezone, y as syncTimezoneFromProfile, z as timeAgo } from './index-CHufemKB.js';
4
4
  export { isSafeLinkHref } from './markup/index.js';
5
5
  export { FileIntakeAlert, FileIntakeLimits, FileIntakeOptions, FileRejection, FileRejectionReason, acceptsFile, useFileIntake } from './file-intake/index.js';
6
6
  export { ICON_NAMES, ICON_SET_FOR_THEME, Icon, IconName, IconProps, IconTone, THEME_ICON_SETS, ThemeIconSet, iconSetFor, isIconName, loadIconSet } from './icons/index.js';
7
7
  export { a as IconDrawing, I as IconSet, b as activeIconSet, i as iconSets, c as iconsVersion, r as registerIconSet, d as registerIcons, e as resolveIcon, s as setDefaultIconSet, f as setIconSet, g as subscribeIcons } from './registry-IyW-xYGB.js';
8
- export { D as DEFAULT_SHELL_STRINGS, a as ShellStrings, S as ShellStringsOverride, b as ShellStringsProvider, u as useShellLocale, c as useShellStrings } from './strings-BXfu1R53.js';
8
+ export { D as DEFAULT_SHELL_STRINGS, a as ShellStrings, S as ShellStringsOverride, b as ShellStringsProvider, u as useShellLocale, c as useShellStrings } from './strings-C_0nDRsv.js';
9
9
  import { W as WindowRegistry } from './types-BOinJXUf.js';
10
10
  export { M as ModalRegistryEntry, P as PageRegistryEntry, a as WindowRegistryEntry, i as isEntityEntry, b as isPageEntry, s as setShellWindowRegistry } from './types-BOinJXUf.js';
11
11
  import * as react from 'react';
@@ -594,6 +594,19 @@ interface NotificationsConfig {
594
594
  /** Click handler for "View all notifications". When omitted, the link is hidden. */
595
595
  onViewAll?: () => void;
596
596
  }
597
+ /** How one row of the bell's list reads. The server composes titles like
598
+ * "Edward Tan reported a bug (BG#00518)", so two parts of the row used to
599
+ * say things twice: the record number, which wrapped the title onto a second
600
+ * line, and the actor, named again in "by Edward Tan" under it.
601
+ *
602
+ * - `title` drops a trailing "(entity_label)" — the number moves to `code`;
603
+ * - `actor` is the name for the meta line, or null when the title already
604
+ * opens with it. */
605
+ declare function notificationRowParts(notif: ShellNotification): {
606
+ title: string;
607
+ code: string | null;
608
+ actor: string | null;
609
+ };
597
610
  interface NotificationBellProps extends NotificationsConfig {
598
611
  popDirection?: 'left' | 'right';
599
612
  }
@@ -2610,4 +2623,4 @@ declare function useUndoable<T>(value: T, apply: (next: T) => void, opts: Undoab
2610
2623
  */
2611
2624
  declare function useUndoableState<T>(initial: T | (() => T), opts: UndoableOptions): [T, React.Dispatch<React.SetStateAction<T>>];
2612
2625
 
2613
- export { type ActivityKind, type AsyncEnvironment, BLOCKED_PCT_CPU, type BatteryInfo, BehaviorPanel, type BottleneckKind, type BulkColumn, type BulkColumnKind, BulkImportGrid, type BulkImportGridProps, type BulkRow, CancelButton, ChangePasswordForm, type ChangePasswordFormProps, type ChangelogEntry, type ClockCalendarConfig, ColumnDef, CopyButton, Customization, type CustomizationOmitSection, type CustomizationProps, type CustomizationSection, DEV_BANNER_TEXT, Desktop, type DesktopContextMenuItem, type DesktopHostConfig, DesktopHostProvider, DevIndicator, DocFavStar, type DuplicateGroup, type EntityFetcher, EntityList, type EntityListColumn, type EntityListContextAction, type EntityListProps, EntityWindowFallback, type EntityWindowFallbackProps, EntityWindowLoading, EntityWindowState, type EntityWindowStateProps, FilterBar, type FilterOption, type FpsGroup, type HealthCheckResult, ImageAnnotator, type ImageAnnotatorHandle, type ImageAnnotatorProps, LOG_CAP, Layout, type LayoutMode, type LayoutProps, type LogSummary, MIN_EVENT_SAMPLES, MIN_GROUP_SAMPLES, MODAL_SUBMIT_SELECTOR, type MenuLayer, type MergeBulkOptions, type MergeBulkResult, type MobileAppConfig, Modal, ModalActions, NotificationBell, type NotificationsConfig, type OpenPageOptions, PaginatedResponse, PdfActionButton, type PdfActionButtonProps, type PerfEnvironment, type PerfLogRecord, type PerfReading, type PerfReport, PerfStats, type PerfStatsProps, type PlatformHints, ResizableTable, SMOOTH_FPS, SearchConfig, ServerStatusIndicator, type ServerStatusIndicatorProps, type ServerStatusUser, type ShellAuth, ShellAuthProvider, type ShellBranding, ShellContextMenu, type ShellContextMenuProps, ShellEntityFetcherProvider, type ShellNotification, ShortcutHelp, SortState, type SortableColumn, SoundsPanel, type StagedTarget, StartMenu, type StickyEntityRef, type StickyResolver, SystemPreferences, type SystemPreferencesProps, type SystemPreferencesSection, type TitleParts, type TitleRole, type TodoProvider, type TodoTask, UndoControls, type UndoControlsApi, type UndoControlsProps, UndoProvider, type UndoProviderProps, type UndoSnapshot, type UndoState, type UndoStep, type UndoableOptions, type Verdict, WidgetManager, WindowCrashedFallback, WindowErrorBoundary, WindowManagerProvider, WindowRegistry, type WindowTarget, type WindowTargetOptions, WindowTitle, activateWindowById, appendRecord as appendPerfRecord, applyDevTitle, beginWindowGesture, classifyActivity, classify as classifyPerf, commitExposeHighlight, copyToClipboard, createWindowRegistry, createWindowTarget, describeMachine, describePerfReport, exitExposeMode, findDuplicateKeys, getActiveWindowRoute, getExposeHighlight, getWindowPosition, installThemeIconSets, isDevEnv, isInteracting, layoutModeOf, markMenuOpen, mergeBulkItems, toCsv as perfLogToCsv, perfReportFile, readEnvironment as readPerfEnvironment, requestAsyncEnvironment, requestWindowFront, setExposeHighlight, setShellApiClient, setShellAuthBridge, setShellNavIcons, setShellTodoProvider, setWindowDefaultPosition, setWindowPosition, splitTitle, subscribeExposeHighlight, summariseFrames, summariseLog as summarisePerfLog, toggleExposeMode, useColumnConfig, useCurrentTabKey, useDesktopHost, useEditHotkey, useEnclosingModalId, useFilters, useInfiniteScroll, useIsActiveWindow, useModalActive, useModalDuplicate, useModalSave, useNewHotkey, usePageSearch, useSetLayoutMode, useShellAuth, useShellEntityFetcher, useSort, useTableNav, useUndo, useUndoCanEdit, useUndoable, useUndoableState, useWidgetSettings, useWindowDirty, useWindowManager, useWindowMenuItem, useWindowTarget, useWindowTitle };
2626
+ export { type ActivityKind, type AsyncEnvironment, BLOCKED_PCT_CPU, type BatteryInfo, BehaviorPanel, type BottleneckKind, type BulkColumn, type BulkColumnKind, BulkImportGrid, type BulkImportGridProps, type BulkRow, CancelButton, ChangePasswordForm, type ChangePasswordFormProps, type ChangelogEntry, type ClockCalendarConfig, ColumnDef, CopyButton, Customization, type CustomizationOmitSection, type CustomizationProps, type CustomizationSection, DEV_BANNER_TEXT, Desktop, type DesktopContextMenuItem, type DesktopHostConfig, DesktopHostProvider, DevIndicator, DocFavStar, type DuplicateGroup, type EntityFetcher, EntityList, type EntityListColumn, type EntityListContextAction, type EntityListProps, EntityWindowFallback, type EntityWindowFallbackProps, EntityWindowLoading, EntityWindowState, type EntityWindowStateProps, FilterBar, type FilterOption, type FpsGroup, type HealthCheckResult, ImageAnnotator, type ImageAnnotatorHandle, type ImageAnnotatorProps, LOG_CAP, Layout, type LayoutMode, type LayoutProps, type LogSummary, MIN_EVENT_SAMPLES, MIN_GROUP_SAMPLES, MODAL_SUBMIT_SELECTOR, type MenuLayer, type MergeBulkOptions, type MergeBulkResult, type MobileAppConfig, Modal, ModalActions, NotificationBell, type NotificationsConfig, type OpenPageOptions, PaginatedResponse, PdfActionButton, type PdfActionButtonProps, type PerfEnvironment, type PerfLogRecord, type PerfReading, type PerfReport, PerfStats, type PerfStatsProps, type PlatformHints, ResizableTable, SMOOTH_FPS, SearchConfig, ServerStatusIndicator, type ServerStatusIndicatorProps, type ServerStatusUser, type ShellAuth, ShellAuthProvider, type ShellBranding, ShellContextMenu, type ShellContextMenuProps, ShellEntityFetcherProvider, type ShellNotification, ShortcutHelp, SortState, type SortableColumn, SoundsPanel, type StagedTarget, StartMenu, type StickyEntityRef, type StickyResolver, SystemPreferences, type SystemPreferencesProps, type SystemPreferencesSection, type TitleParts, type TitleRole, type TodoProvider, type TodoTask, UndoControls, type UndoControlsApi, type UndoControlsProps, UndoProvider, type UndoProviderProps, type UndoSnapshot, type UndoState, type UndoStep, type UndoableOptions, type Verdict, WidgetManager, WindowCrashedFallback, WindowErrorBoundary, WindowManagerProvider, WindowRegistry, type WindowTarget, type WindowTargetOptions, WindowTitle, activateWindowById, appendRecord as appendPerfRecord, applyDevTitle, beginWindowGesture, classifyActivity, classify as classifyPerf, commitExposeHighlight, copyToClipboard, createWindowRegistry, createWindowTarget, describeMachine, describePerfReport, exitExposeMode, findDuplicateKeys, getActiveWindowRoute, getExposeHighlight, getWindowPosition, installThemeIconSets, isDevEnv, isInteracting, layoutModeOf, markMenuOpen, mergeBulkItems, notificationRowParts, toCsv as perfLogToCsv, perfReportFile, readEnvironment as readPerfEnvironment, requestAsyncEnvironment, requestWindowFront, setExposeHighlight, setShellApiClient, setShellAuthBridge, setShellNavIcons, setShellTodoProvider, setWindowDefaultPosition, setWindowPosition, splitTitle, subscribeExposeHighlight, summariseFrames, summariseLog as summarisePerfLog, toggleExposeMode, useColumnConfig, useCurrentTabKey, useDesktopHost, useEditHotkey, useEnclosingModalId, useFilters, useInfiniteScroll, useIsActiveWindow, useModalActive, useModalDuplicate, useModalSave, useNewHotkey, usePageSearch, useSetLayoutMode, useShellAuth, useShellEntityFetcher, useSort, useTableNav, useUndo, useUndoCanEdit, useUndoable, useUndoableState, useWidgetSettings, useWindowDirty, useWindowManager, useWindowMenuItem, useWindowTarget, useWindowTitle };