@sheetxl/studio-vanilla 0.3.17 → 0.3.19

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 (87) hide show
  1. package/browser/cjs/{Bc3a9_6Ve1YHGowK.cjs → 2FwFu5228wr-ARkA.cjs} +3 -3
  2. package/browser/cjs/B32tWc1qRv4tY12p.cjs +6 -0
  3. package/browser/cjs/{BnVtO_MwV8I3mDul.cjs → BA4eX47IpP00-8so.cjs} +2 -2
  4. package/browser/cjs/{DLSKs1QVKEKXE0w6.cjs → BKPCa_z6dnIQn-0l.cjs} +1 -1
  5. package/browser/cjs/{DKAdHUu3UvatZtg2.cjs → BWs24EHW-tVFgT-x.cjs} +2 -2
  6. package/browser/cjs/{tyAHtYASyFxcUsnd.cjs → BdvCvAgiry0f4S23.cjs} +1 -1
  7. package/browser/cjs/{DvL9Sc8iPPufipGY.cjs → CDKv578p0EwvHjZp.cjs} +1 -1
  8. package/browser/cjs/{C6fuW2cVa9dQZ4Je.cjs → CIo606dkZ8lkuDJ3.cjs} +1 -1
  9. package/browser/cjs/{DC6xjrFPr2HOnpEZ.cjs → CY7-VXmdgBslTVMX.cjs} +3 -3
  10. package/browser/cjs/{CTOC9ZTrMjZHrqbQ.cjs → Ce6oHmr7gMYWd8Yd.cjs} +5 -5
  11. package/browser/cjs/{Br7LE-apfiyLpwKT.cjs → Cfdd6ktavWDYX9ND.cjs} +1 -1
  12. package/browser/cjs/{BGcNUqTfmjyHIbaI.cjs → Cjh4Y6CzIKElfhND.cjs} +2 -2
  13. package/browser/cjs/{Bb-lqHwGFvmeBzPZ.cjs → Cnk7ISRHexlfGYia.cjs} +1 -1
  14. package/browser/cjs/{BserbrusW-zB2hKv.cjs → D0TmTI_7aDwkiyE4.cjs} +2 -2
  15. package/browser/cjs/{DxbPSb3PKSwud1HY.cjs → DJC4cn9wXv_q5aHy.cjs} +2 -2
  16. package/browser/cjs/{B0W8Ro2JrQ96SBYz.cjs → DPk0an7l4dAKSvt4.cjs} +6 -6
  17. package/browser/cjs/{cyLp79UpmhtbS2yS.cjs → DQu9kotW1g223yHH.cjs} +45 -45
  18. package/browser/cjs/{DzNRMZunrlSGwLSb.cjs → Do4JoiMPrmr8e_3I.cjs} +2 -2
  19. package/browser/cjs/DtwZ1dCv4IJK54Md.cjs +6 -0
  20. package/browser/cjs/{BnQxin2UUpaly5NP.cjs → MSGlzfMbdkBj2ODr.cjs} +1 -1
  21. package/browser/cjs/{CmpPGljzpUKgOIxx.cjs → USAsNV7756AJ-v-3.cjs} +1 -1
  22. package/browser/cjs/{CG4QG81y7pyNQwcS.cjs → bLAfby6zV0qLxdQi.cjs} +2 -2
  23. package/browser/cjs/{DSPikvyWE4g-uDuD.cjs → gPTujfwB4RqxIcij.cjs} +1 -1
  24. package/browser/cjs/index.cjs +2 -2
  25. package/browser/cjs/{B_3Ajb0Oax8flgwH.cjs → lObc2MW6JiaOpm-q.cjs} +2 -2
  26. package/browser/cjs/{TghIPPRKOuPkkaj_.cjs → mSxg83umiyMZNf9-.cjs} +2 -2
  27. package/browser/cjs/{CKZhKYw44E-Ni1nu.cjs → vWIDSfediysRj8eo.cjs} +6 -6
  28. package/{cdn/assets/CZUKS6s-vZgN9aos.js → browser/esm/4b-cAFWAwXYZkw0D.mjs} +1 -1
  29. package/browser/esm/{B8rvcrFdHFZY1Sz4.mjs → B8OZHivNmO5OFLTi.mjs} +17 -17
  30. package/browser/esm/BGvOrkSiilN4Dt_5.mjs +46 -0
  31. package/browser/esm/{BL2AZ33IU3F9bUt7.mjs → BjXzbYB0kCMhwN3Y.mjs} +2621 -2534
  32. package/browser/esm/{BH8SzwM3UkwJ3Eap.mjs → BlxEnptsgkGA0_21.mjs} +9 -9
  33. package/browser/esm/{BPrdUtlmJCtc3q1E.mjs → Bm440-d54x4naZeO.mjs} +1 -1
  34. package/{cdn/assets/CKDR83IC6nVl5Ejn.js → browser/esm/BnmsWZ7pB-RvN8Ce.mjs} +8 -8
  35. package/{cdn/assets/B1YbVSzaF3q-DvkR.js → browser/esm/BorGhlvsrSc8KIw4.mjs} +9 -9
  36. package/{cdn/assets/CXH_df_BJWGouWGx.js → browser/esm/Brg-pw5qowVCqKUF.mjs} +1 -1
  37. package/browser/esm/{Bzij_asTK4-12wX9.mjs → C2UMejLEXH1i7UT_.mjs} +3 -3
  38. package/browser/esm/{JNJMM7jPjOx60cf7.mjs → C6ty7TIqMKf0jms4.mjs} +1 -1
  39. package/browser/esm/{BMUhikJUsjFxek33.mjs → CDha50D0Zqdh75RO.mjs} +47 -47
  40. package/browser/esm/{D4Vwg7DdbgL5-gzc.mjs → CHNBfqp5n8JaC7UU.mjs} +3 -3
  41. package/{cdn/assets/BxSEIQhicQfdXtJF.js → browser/esm/CkOpEOqipQhoCXbp.mjs} +7 -7
  42. package/browser/esm/{CMBCkSY-ay1nfbs_.mjs → CxJ9wqppH10FCE7E.mjs} +2 -2
  43. package/browser/esm/{C3DBhxZlYozBEVla.mjs → D8V8o3E9AIpGCaJ0.mjs} +5 -5
  44. package/browser/esm/{CBWY-rnGz5x3lEXM.mjs → DGbBeyHSDhhZ67G7.mjs} +91 -91
  45. package/browser/esm/{u3fz83lT2CnMmRBA.mjs → DHtJbuH4VrIp2owl.mjs} +4 -4
  46. package/browser/esm/{C8xqJMf37wA-WPT0.mjs → DNEd6u6uOJT1ngWx.mjs} +7 -7
  47. package/browser/esm/{YdKPg8NGmPUPJuwl.mjs → DTW0B_xW-HuS3NuK.mjs} +5 -5
  48. package/browser/esm/{_Rc93Vlm8MW1zcHZ.mjs → DzowkvQRyggO7Ijl.mjs} +1 -1
  49. package/browser/esm/{CfoeArGH9Iu0fzXt.mjs → FNXLcvV7DgUq6zwL.mjs} +1 -1
  50. package/{cdn/assets/XBRwKmVZSI2nKxkp.js → browser/esm/SWAv_VgEKg95ORt5.mjs} +1 -1
  51. package/browser/esm/index.mjs +2 -2
  52. package/browser/esm/{CKipCLj2Z39o67b7.mjs → vYT-yKp90JOPBqDa.mjs} +2 -2
  53. package/{cdn/assets/CNjDb--pc3V19tGB.js → browser/esm/vsx7PlJlMQvNPm_L.mjs} +1 -1
  54. package/browser/esm/{BTLRhd22C-Nd_eBp.mjs → zovGkWpLePhgQd_n.mjs} +1 -1
  55. package/{browser/esm/CZUKS6s-vZgN9aos.mjs → cdn/assets/4b-cAFWAwXYZkw0D.js} +1 -1
  56. package/cdn/assets/{l9P-OMHe7Eutt2ON.js → 8QCrFIzHmtIoeBJm.js} +4 -4
  57. package/{browser/esm/BlH7pxV8dydnI68w.mjs → cdn/assets/8xNW6edqjY-klal3.js} +9 -9
  58. package/cdn/assets/{k3_rVDX-B8ArpvvF.js → BJlG0NMA-JM_rPkc.js} +91 -91
  59. package/cdn/assets/{B4xbV8b1vgkFuf8S.js → BNcPMWtsY8_g-EN4.js} +5 -5
  60. package/cdn/assets/BhwpQU1T51VKYXPZ.js +46 -0
  61. package/cdn/assets/{BPrdUtlmJCtc3q1E.js → Bm440-d54x4naZeO.js} +1 -1
  62. package/{browser/esm/CXH_df_BJWGouWGx.mjs → cdn/assets/Brg-pw5qowVCqKUF.js} +1 -1
  63. package/cdn/assets/{5Ol3UAykJGv4enb7.js → BrkvsmfqGj5-gULd.js} +2 -2
  64. package/cdn/assets/{OH4OLMUwFOvLynOc.js → BtcEbQwXXgpwi-Wc.js} +17 -17
  65. package/cdn/assets/{B0iEzLbaCkkrdj7y.js → C4-fZEqFmgf4Ryrf.js} +5 -5
  66. package/cdn/assets/{JNJMM7jPjOx60cf7.js → C6ty7TIqMKf0jms4.js} +1 -1
  67. package/cdn/assets/{C-FnVtey6FtIMdLg.js → CD48E90J73F2rFJF.js} +3 -3
  68. package/{browser/esm/BKcHYlDCeQadoUAd.mjs → cdn/assets/D3-MLKMldcoobrMe.js} +8 -8
  69. package/cdn/assets/{C40I-vetBKD2pUv3.js → DVoDFCX7Bv_zFVVi.js} +4599 -4512
  70. package/cdn/assets/{I7By3WBOaNjGDp5W.js → DkRkxpsLaXOm1dGc.js} +7 -7
  71. package/cdn/assets/{DB7EL7vNAfpdzGYu.js → DoNQnutyjVRliOV0.js} +2 -2
  72. package/cdn/assets/{CliYamYDN65pX6vp.js → DzXbXyuxyjtFLOXt.js} +9 -9
  73. package/cdn/assets/{_Rc93Vlm8MW1zcHZ.js → DzowkvQRyggO7Ijl.js} +1 -1
  74. package/cdn/assets/{CfoeArGH9Iu0fzXt.js → FNXLcvV7DgUq6zwL.js} +1 -1
  75. package/{browser/esm/XBRwKmVZSI2nKxkp.mjs → cdn/assets/SWAv_VgEKg95ORt5.js} +1 -1
  76. package/cdn/assets/{BIq8iXWFphwulDEI.js → TXu1jpI8ASN4INNu.js} +47 -47
  77. package/cdn/assets/{Dbhi34qDFM0nygPU.js → aAVhloO6mFh8WJzi.js} +3 -3
  78. package/{browser/esm/CNjDb--pc3V19tGB.mjs → cdn/assets/vsx7PlJlMQvNPm_L.js} +1 -1
  79. package/{browser/esm/C_5TG94caiLqXYi9.mjs → cdn/assets/yLoKmwpXykv9-Elu.js} +7 -7
  80. package/cdn/assets/{BTLRhd22C-Nd_eBp.js → zovGkWpLePhgQd_n.js} +1 -1
  81. package/cdn/index.js +2 -2
  82. package/cdn/loader.js +1 -1
  83. package/package.json +3 -3
  84. package/browser/cjs/DdImTaClMFBNUqjw.cjs +0 -6
  85. package/browser/cjs/Q-FApIecuUKlV75X.cjs +0 -6
  86. package/browser/esm/Bynz8AXGVCdHXnWS.mjs +0 -46
  87. package/cdn/assets/CVrbSur8obLaWUEL.js +0 -46
@@ -1,15 +1,15 @@
1
1
  import { jsx as i } from "react/jsx-runtime";
2
2
  import { memo as E, useMemo as M, useState as x, useCallback as j } from "react";
3
- import { w as r, b as S, B as V, F as $, a as z, c as h, ay as C } from "./C40I-vetBKD2pUv3.js";
3
+ import { v as r, b as S, B as V, F as $, T as z, a as h, ay as C } from "./DVoDFCX7Bv_zFVVi.js";
4
4
  /**
5
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.17
5
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.19
6
6
  *
7
7
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
8
8
  * License: The license can be found at https://www.sheetxl.com/license.
9
9
  */
10
10
  const G = ["Ok", "Cancel"], U = E((O) => {
11
- const { initialComments: w = null, onUpdateComments: m, context: y, onOption: u, onValidateOption: l, onDone: p, options: d = G, defaultOption: c = d?.[0], cancelOption: s = "Cancel", sx: F, ...b } = O, g = M(() => {
12
- const n = w ?? y?.()?.getComments();
11
+ const { initialComments: y = null, onUpdateComments: m, context: F, onOption: u, onValidateOption: l, onDone: p, options: d = G, defaultOption: c = d?.[0], cancelOption: s = "Cancel", sx: T, ...b } = O, g = M(() => {
12
+ const n = y ?? F?.()?.getComments();
13
13
  let t = "";
14
14
  if (n && n.content && n.content.runs) {
15
15
  const a = n.content.runs;
@@ -19,7 +19,7 @@ const G = ["Ok", "Cancel"], U = E((O) => {
19
19
  }
20
20
  }
21
21
  return t;
22
- }, []), [e, k] = x(g), [P, T] = x(!1), f = j(async (n, t) => null, []), v = r(async (n) => {
22
+ }, []), [e, k] = x(g), [v, w] = x(!1), f = j(async (n, t) => null, []), P = r(async (n) => {
23
23
  const t = e === "" ? [] : e.split(`
24
24
  `);
25
25
  if (n !== s) {
@@ -38,8 +38,8 @@ const G = ["Ok", "Cancel"], U = E((O) => {
38
38
  }
39
39
  return t ?? !0;
40
40
  }, [l, e]);
41
- return i(S, { title: (g ? "Edit" : "Insert") + " Comments", options: d, onDone: p, onOption: (n) => v(n), onValidateOption: I, defaultOption: c, cancelOption: s, autoFocusSel: ".autoFocus", sx: { width: "480px", ...F }, ...b, children: i(V, { sx: { paddingTop: (n) => n.spacing(1), paddingBottom: (n) => n.spacing(0), rowGap: (n) => n.spacing(1), display: "flex", flexDirection: "column" }, children: i($, { sx: { paddingTop: (n) => n.spacing(1.5), minWidth: 135, width: "100%" }, size: "small", children: i(z, { label: "Comments", placeholder: "Enter a comment.", onFocus: (n) => {
42
- P || n.target?.select(), T(!0);
41
+ return i(S, { title: (g ? "Edit" : "Insert") + " Comments", options: d, onDone: p, onOption: (n) => P(n), onValidateOption: I, defaultOption: c, cancelOption: s, autoFocusSel: ".autoFocus", sx: { width: "480px", ...T }, ...b, children: i(V, { sx: { paddingTop: (n) => n.spacing(1), paddingBottom: (n) => n.spacing(0), rowGap: (n) => n.spacing(1), display: "flex", flexDirection: "column" }, children: i($, { sx: { paddingTop: (n) => n.spacing(1.5), minWidth: 135, width: "100%" }, size: "small", children: i(z, { label: "Comments", placeholder: "Enter a comment.", onFocus: (n) => {
42
+ v || n.target?.select(), w(!0);
43
43
  }, sx: { "& .MuiFormHelperText-root": { marginTop: (n) => n.spacing(0.5) } }, InputLabelProps: { shrink: !0 }, InputProps: { inputProps: { className: "autoFocus", spellCheck: !1, autoComplete: "off", sx: { paddingTop: (n) => n.spacing(1.25), paddingBottom: (n) => n.spacing(0.75), backgroundImage: `linear-gradient(${h("#fff", C(5))}, ${h("#fff", C(5))})` } } }, value: e, onChange: D, onContextMenu: (n) => {
44
44
  n.stopPropagation();
45
45
  } }) }) }) });
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.17
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.19
3
3
  *
4
4
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -13,7 +13,7 @@ const i = { reactUrl: "https://esm.sh/react@19.1.0", reactJsxTransform: "https:/
13
13
  e.type = "importmap", e.textContent = JSON.stringify({ imports: { react: n, "react/jsx-runtime": a, "react-dom": s, "react-dom/client": c } }), document.head.appendChild(e), console.log("SheetXL: Import map injected:", e.textContent);
14
14
  }
15
15
  await new Promise((e) => setTimeout(e, 0));
16
- const o = await Promise.all([import("react"), import("react/jsx-runtime"), import("react-dom"), import("react-dom/client"), import("./C40I-vetBKD2pUv3.js").then((e) => e.b6)]);
16
+ const o = await Promise.all([import("react"), import("react/jsx-runtime"), import("react-dom"), import("react-dom/client"), import("./DVoDFCX7Bv_zFVVi.js").then((e) => e.b6)]);
17
17
  return console.log("SheetXL: Dependencies resolved:", o), { React: o[0], ReactJSXTransform: o[1], ReactDOM: o[2], ReactDOMClient: o[3], StudioMUI: o[4] };
18
18
  })(), r));
19
19
  export {
@@ -1,14 +1,14 @@
1
1
  import { jsx as i } from "react/jsx-runtime";
2
2
  import { memo as j, forwardRef as z, useState as s } from "react";
3
- import { T as n, s as E, b as K, B as R, F as W, a as X, c as x, X as q, e as y } from "./C40I-vetBKD2pUv3.js";
3
+ import { k as n, i as E, b as G, B as K, F as R, T as W, a as x, G as Y, Y as y } from "./DVoDFCX7Bv_zFVVi.js";
4
4
  /**
5
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.17
5
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.19
6
6
  *
7
7
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
8
8
  * License: The license can be found at https://www.sheetxl.com/license.
9
9
  */
10
- const A = ["Input"], Y = j(z((w, G) => {
11
- const { initialValue: T = "", onOption: F, onValidateOption: r, onInputOption: l, onValidateInputOption: p, onDone: u, inputProps: c, inputLabel: I, inputType: P, inputPlaceHolder: b, options: d = A, autoFocusSel: v = ".autoFocus", cancelOption: g, defaultOption: m = d?.[0], ...C } = w, [k, V] = s(!1), [o, B] = s(T), [D, S] = s(""), [H, L] = s(!0), e = n(async (a, t) => {
10
+ const q = ["Input"], X = j(z((w, A) => {
11
+ const { initialValue: T = "", onOption: F, onValidateOption: r, onInputOption: l, onValidateInputOption: p, onDone: u, inputProps: c, inputLabel: I, inputType: P, inputPlaceHolder: b, options: d = q, autoFocusSel: k = ".autoFocus", cancelOption: g, defaultOption: m = d?.[0], ...v } = w, [C, V] = s(!1), [o, B] = s(T), [D, S] = s(""), [H, L] = s(!0), e = n(async (a, t) => {
12
12
  if (!p) return !0;
13
13
  const h = await p?.(a, t);
14
14
  S(h?.message ?? "");
@@ -28,14 +28,14 @@ const A = ["Input"], Y = j(z((w, G) => {
28
28
  }
29
29
  return t ?? !0;
30
30
  }, [o, r]);
31
- return i(K, { options: d, onDone: u, onOption: (a, t) => {
31
+ return i(G, { options: d, onDone: u, onOption: (a, t) => {
32
32
  t || f(a);
33
- }, onValidateOption: $, cancelOption: g, defaultOption: m, autoFocusSel: v, ...C, children: i(R, { sx: { paddingTop: (a) => a.spacing(1), paddingBottom: (a) => a.spacing(0) }, children: i(W, { sx: { paddingTop: (a) => a.spacing(1.5), minWidth: 135, width: "100%" }, size: "small", children: i(X, { onFocus: (a) => {
34
- k || a.target?.select(), V(!0);
35
- }, type: P, label: I, helperText: D || " ", sx: { width: "100%", "& .MuiFormHelperText-root": { marginTop: (a) => a.spacing(0.5), color: H ? void 0 : "error.main" } }, InputLabelProps: { shrink: !0 }, InputProps: { inputProps: { placeholder: b, spellCheck: !1, autoComplete: "off", ...c, className: q("autoFocus", c?.className), sx: { paddingTop: (a) => a.spacing(1.25), paddingBottom: (a) => a.spacing(0.75), backgroundImage: `linear-gradient(${x("#fff", y(5))}, ${x("#fff", y(5))})` } } }, value: o, onChange: N, onKeyDown: M, onContextMenu: (a) => {
33
+ }, onValidateOption: $, cancelOption: g, defaultOption: m, autoFocusSel: k, ...v, children: i(K, { sx: { paddingTop: (a) => a.spacing(1), paddingBottom: (a) => a.spacing(0) }, children: i(R, { sx: { paddingTop: (a) => a.spacing(1.5), minWidth: 135, width: "100%" }, size: "small", children: i(W, { onFocus: (a) => {
34
+ C || a.target?.select(), V(!0);
35
+ }, type: P, label: I, helperText: D || " ", sx: { width: "100%", "& .MuiFormHelperText-root": { marginTop: (a) => a.spacing(0.5), color: H ? void 0 : "error.main" } }, InputLabelProps: { shrink: !0 }, InputProps: { inputProps: { placeholder: b, spellCheck: !1, autoComplete: "off", ...c, className: Y("autoFocus", c?.className), sx: { paddingTop: (a) => a.spacing(1.25), paddingBottom: (a) => a.spacing(0.75), backgroundImage: `linear-gradient(${x("#fff", y(5))}, ${x("#fff", y(5))})` } } }, value: o, onChange: N, onKeyDown: M, onContextMenu: (a) => {
36
36
  a.stopPropagation();
37
37
  } }) }) }) });
38
38
  }));
39
39
  export {
40
- Y as default
40
+ X as default
41
41
  };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.17
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.19
3
3
  *
4
4
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.17
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.19
3
3
  *
4
4
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.17
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.19
3
3
  *
4
4
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -1,7 +1,7 @@
1
- import { NumberFormat as Ht, ScalarType as Ft, ResourceCollection as vs, Tuple as Ss, IAutoFilter as Qt, AddressUtils as at, CoordUtils as De, FormulaError as Cs, IRange as ks, CommonUtils as es, Theme as As, JSONStableStringify as Es, Workbook as Ds, IColor as Ps, OutOfBoundsError as Os } from "@sheetxl/sdk";
2
- import { Q as cs } from "./C40I-vetBKD2pUv3.js";
1
+ import { NumberFormat as Ht, ScalarType as Ft, ResourceCollection as vs, Tuple as Ss, IAutoFilter as Jt, AddressUtils as at, CoordUtils as De, FormulaError as Cs, IRange as ks, CommonUtils as es, Theme as As, JSONStableStringify as Es, Workbook as Ds, IColor as Ps, OutOfBoundsError as Os } from "@sheetxl/sdk";
2
+ import { J as cs } from "./DVoDFCX7Bv_zFVVi.js";
3
3
  /**
4
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.17
4
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.19
5
5
  *
6
6
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
7
7
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -24,7 +24,7 @@ const q = function(i) {
24
24
  return i >= 1 && i <= 55295 || i >= 57344 && i <= 65533 || i >= 65536 && i <= 1114111;
25
25
  }, $s = us, Ms = function(i) {
26
26
  return us(i) || i === 45 || i === 46 || i >= 48 && i <= 57 || i === 183 || i >= 768 && i <= 879 || i >= 8255 && i <= 8256;
27
- }, js = Vs, Te = "http://www.w3.org/XML/1998/namespace", Yt = "http://www.w3.org/2000/xmlns/", Hs = { __proto__: null, xml: Te, xmlns: Yt }, Fs = { __proto__: null, amp: "&", gt: ">", lt: "<", quot: '"', apos: "'" }, O = -1, lt = -2, B = 13, Xt = 33, it = 10, St = 60, Jt = 61, M = 62, F = 63, Kt = 93, me = (i) => i === 34 || i === 39, ps = [34, 39], Xs = [...ps, 91, M], Bs = [...ps, St, Kt], Ws = [Jt, F, ...ds], _s = [...ds, M, 38, St];
27
+ }, js = Vs, Te = "http://www.w3.org/XML/1998/namespace", Yt = "http://www.w3.org/2000/xmlns/", Hs = { __proto__: null, xml: Te, xmlns: Yt }, Fs = { __proto__: null, amp: "&", gt: ">", lt: "<", quot: '"', apos: "'" }, O = -1, lt = -2, B = 13, Xt = 33, it = 10, St = 60, Qt = 61, M = 62, F = 63, Kt = 93, me = (i) => i === 34 || i === 39, ps = [34, 39], Xs = [...ps, 91, M], Bs = [...ps, St, Kt], Ws = [Qt, F, ...ds], _s = [...ds, M, 38, St];
28
28
  function Pe(i, t, s) {
29
29
  switch (t) {
30
30
  case "xml":
@@ -402,7 +402,7 @@ class Us {
402
402
  sXMLDeclName() {
403
403
  const t = this.captureTo(Ws);
404
404
  if (t === F) return this.state = Xt, this.name += this.text, this.text = "", void this.fail("XML declaration is incomplete.");
405
- if (q(t) || t === Jt) {
405
+ if (q(t) || t === Qt) {
406
406
  if (this.name += this.text, this.text = "", !this.xmlDeclExpects.includes(this.name)) switch (this.name.length) {
407
407
  case 0:
408
408
  this.fail("did not expect any more name/value pairs.");
@@ -413,13 +413,13 @@ class Us {
413
413
  default:
414
414
  this.fail(`expected one of ${this.xmlDeclExpects.join(", ")}`);
415
415
  }
416
- this.state = t === Jt ? 30 : 29;
416
+ this.state = t === Qt ? 30 : 29;
417
417
  }
418
418
  }
419
419
  sXMLDeclEq() {
420
420
  const t = this.getCodeNorm();
421
421
  if (t === F) return this.state = Xt, void this.fail("XML declaration is incomplete.");
422
- q(t) || (t !== Jt && this.fail("value required."), this.state = 30);
422
+ q(t) || (t !== Qt && this.fail("value required."), this.state = 30);
423
423
  }
424
424
  sXMLDeclValueStart() {
425
425
  const t = this.getCodeNorm();
@@ -477,14 +477,14 @@ class Us {
477
477
  }
478
478
  sAttribName() {
479
479
  const t = this.captureNameChars();
480
- t === Jt ? this.state = 39 : q(t) ? this.state = 38 : t === M ? (this.fail("attribute without value."), this.pushAttrib(this.name, this.name), this.name = this.text = "", this.openTag()) : t !== O && this.fail("disallowed character in attribute name.");
480
+ t === Qt ? this.state = 39 : q(t) ? this.state = 38 : t === M ? (this.fail("attribute without value."), this.pushAttrib(this.name, this.name), this.name = this.text = "", this.openTag()) : t !== O && this.fail("disallowed character in attribute name.");
481
481
  }
482
482
  sAttribNameSawWhite() {
483
483
  const t = this.skipSpaces();
484
484
  switch (t) {
485
485
  case O:
486
486
  return;
487
- case Jt:
487
+ case Qt:
488
488
  this.state = 39;
489
489
  break;
490
490
  default:
@@ -843,7 +843,7 @@ const ns = (i, t, s, o = null) => {
843
843
  a.set(x, E);
844
844
  }
845
845
  return a;
846
- }, Qs = ["lt1", "dk1", "lt2", "dk2", "accent1", "accent2", "accent3", "accent4", "accent5", "accent6", "hlink", "folHlink"], as = (i, t = "dk1") => {
846
+ }, Js = ["lt1", "dk1", "lt2", "dk2", "accent1", "accent2", "accent3", "accent4", "accent5", "accent6", "hlink", "folHlink"], as = (i, t = "dk1") => {
847
847
  let s;
848
848
  const o = i("auto");
849
849
  o === void 0 || o !== "1" && o !== "true" || (s = t);
@@ -852,10 +852,10 @@ const ns = (i, t, s, o = null) => {
852
852
  const a = i("rgb");
853
853
  a && (s = a.toLowerCase(), a.length !== 8 || a.startsWith("FF") || (s = "FF" + a.substring(2, a.length)));
854
854
  const c = i("theme");
855
- c && (s = Qs[c]);
855
+ c && (s = Js[c]);
856
856
  let m = i("tint");
857
857
  if (m && (s += ` ${Ps.AdjustmentType.ETint} ${parseFloat(m)}`), s) return s;
858
- }, Zs = (i) => i && i.replace(/^\{([\s\S]+)\}$/, "$1"), ei = (i) => i ? cs.roundAccurately(parseFloat(i) / 12700, 4) : null, si = (i) => i ? cs.roundAccurately(parseFloat(i) / 9525, 1) : null, ii = (i) => parseFloat(i) / 1e3, oi = (i) => parseFloat(i) / 6e4, Js = (i) => i === "true" || i === "1";
858
+ }, Zs = (i) => i && i.replace(/^\{([\s\S]+)\}$/, "$1"), ei = (i) => i ? cs.roundAccurately(parseFloat(i) / 12700, 4) : null, si = (i) => i ? cs.roundAccurately(parseFloat(i) / 9525, 1) : null, ii = (i) => parseFloat(i) / 1e3, oi = (i) => parseFloat(i) / 6e4, Qs = (i) => i === "true" || i === "1";
859
859
  class Bt {
860
860
  static {
861
861
  this.Collapsed = 1;
@@ -897,14 +897,14 @@ class Bt {
897
897
  const Ks = (i, t, s) => {
898
898
  if (i[0].value[0] === i[1].value[0]) return t;
899
899
  }, ls = { colStart: 0, colEnd: 0, rowStart: 0, rowEnd: 0 }, ri = Object.freeze(Object.defineProperty({ __proto__: null, fromBufferXLSX: async (i, t) => {
900
- const { password: s, onWarning: o, constructorOptions: n = {}, ...a } = t ?? {}, c = import("./_Rc93Vlm8MW1zcHZ.js"), m = import("./C-FnVtey6FtIMdLg.js");
900
+ const { password: s, onWarning: o, constructorOptions: n = {}, ...a } = t ?? {}, c = import("./DzowkvQRyggO7Ijl.js"), m = import("./CD48E90J73F2rFJF.js");
901
901
  let v = null;
902
902
  try {
903
903
  v = new DOMParser();
904
904
  } catch {
905
905
  }
906
906
  let b = null;
907
- v || (b = import("./CNjDb--pc3V19tGB.js").then((u) => u.i));
907
+ v || (b = import("./vsx7PlJlMQvNPm_L.js").then((u) => u.i));
908
908
  let x = null, E = null, y = null;
909
909
  try {
910
910
  const u = await Promise.all([c, m, b]);
@@ -947,7 +947,7 @@ const Ks = (i, t, s) => {
947
947
  const Y = {};
948
948
  Wt = Y;
949
949
  const tt = async () => {
950
- const bt = ((V, U, te, _, G, Q, wt) => {
950
+ const bt = ((V, U, te, _, G, J, wt) => {
951
951
  const h = new Gs(), Z = new Ss.TransposedBuilder();
952
952
  let j = null;
953
953
  h.registerVisitor({ from: "autoFilter", to: "filter", openTag: (e) => {
@@ -973,7 +973,7 @@ const Ks = (i, t, s) => {
973
973
  const l = e.getAttribute("dxfId", A);
974
974
  if (l !== null) {
975
975
  let d = _?.get(l);
976
- d || (Q?.(`Unable to load conditional color. Invalid dxfI: '${l}' at '${e.getPath()}'.`), d = {}), r.style = d;
976
+ d || (J?.(`Unable to load conditional color. Invalid dxfI: '${l}' at '${e.getPath()}'.`), d = {}), r.style = d;
977
977
  }
978
978
  e.copyToObject(r, "aboveAverage", w), e.copyToObject(r, "equalAverage", w), e.copyToObject(r, "stdDev", A), e.copyToObject(r, "bottom", w), e.copyToObject(r, "percent", w), e.copyToObject(r, "rank", A), e.copyToObject(r, "operator", k), e.copyToObject(r, "text", k), e.copyToObject(r, "timePeriod", k);
979
979
  } }), h.registerVisitor({ from: "colorScale", to: "colorScale" }), h.registerVisitor({ from: "dataBar", to: "dataBar", openTag: (e) => {
@@ -997,19 +997,19 @@ const Ks = (i, t, s) => {
997
997
  r.fields || (r.fields = []), r.fields.push(e.getSource()), e.copyTo("offset", A, "colId"), e.copyTo("hiddenButton", w), e.copyTo("showButton", w);
998
998
  } }), h.registerVisitor({ from: "colorFilter", to: "colorFilter", openTag: (e) => {
999
999
  const r = e.getParent();
1000
- r.criteria || (r.criteria = []), r.criteria.push(e.getSource()), e.getSource().type = Qt.Type.Color, e.copyTo("cellColor", w), e.copyTo("styleId", A, "dxfId");
1000
+ r.criteria || (r.criteria = []), r.criteria.push(e.getSource()), e.getSource().type = Jt.Type.Color, e.copyTo("cellColor", w), e.copyTo("styleId", A, "dxfId");
1001
1001
  } }), h.registerVisitor({ from: "dynamicFilter", to: "dynamicFilter", openTag: (e) => {
1002
1002
  const r = e.getParent();
1003
- r.criteria || (r.criteria = []), r.criteria.push(e.getSource()), e.getSource().type = Qt.Type.Dynamic, e.copyTo("dynamicType", k, "type"), e.copyTo("val", ct), e.copyTo("maxVal", ct, "maxVal");
1003
+ r.criteria || (r.criteria = []), r.criteria.push(e.getSource()), e.getSource().type = Jt.Type.Dynamic, e.copyTo("dynamicType", k, "type"), e.copyTo("val", ct), e.copyTo("maxVal", ct, "maxVal");
1004
1004
  } }), h.registerVisitor({ from: "iconFilter", to: "iconFilter", openTag: (e) => {
1005
1005
  const r = e.getParent();
1006
- r.criteria || (r.criteria = []), r.criteria.push(e.getSource()), e.getSource().type = Qt.Type.Icon, e.copyTo("iconId", A), e.copyTo("iconSet", k);
1006
+ r.criteria || (r.criteria = []), r.criteria.push(e.getSource()), e.getSource().type = Jt.Type.Icon, e.copyTo("iconId", A), e.copyTo("iconSet", k);
1007
1007
  } }), h.registerVisitor({ from: "top10", to: "top10", openTag: (e) => {
1008
1008
  const r = e.getParent();
1009
- r.criteria || (r.criteria = []), r.criteria.push(e.getSource()), e.getSource().type = Qt.Type.Top10, e.copyTo("filterVal", ct), e.copyTo("percent", w), e.copyTo("top", w), e.copyTo("val", ct);
1009
+ r.criteria || (r.criteria = []), r.criteria.push(e.getSource()), e.getSource().type = Jt.Type.Top10, e.copyTo("filterVal", ct), e.copyTo("percent", w), e.copyTo("top", w), e.copyTo("val", ct);
1010
1010
  } }), h.registerVisitor({ from: "filters", to: "filters", openTag: (e) => {
1011
1011
  const r = e.getParent();
1012
- r.criteria || (r.criteria = []), r.criteria.push(e.getSource()), e.getSource().type = Qt.Type.Items, e.copyTo("blank", w), e.copyTo("calendarType", k);
1012
+ r.criteria || (r.criteria = []), r.criteria.push(e.getSource()), e.getSource().type = Jt.Type.Items, e.copyTo("blank", w), e.copyTo("calendarType", k);
1013
1013
  } }), h.registerVisitor({ from: "dateGroupItem", to: "dateGroupItem", openTag: (e) => {
1014
1014
  const r = e.getParent();
1015
1015
  r.dateGroups || (r.dateGroups = []), r.dateGroups.push(e.getSource()), e.copyTo("group", k, "dateTimeGrouping"), e.copyTo("day", A), e.copyTo("hour", A), e.copyTo("minute", A), e.copyTo("month", A), e.copyTo("second", A), e.copyTo("year", A);
@@ -1018,7 +1018,7 @@ const Ks = (i, t, s) => {
1018
1018
  r.items || (r.items = []), r.items.push(e.getAttribute("val", ct));
1019
1019
  } }), h.registerVisitor({ from: "customFilters", to: "customFilters", openTag: (e) => {
1020
1020
  const r = e.getParent();
1021
- r.criteria || (r.criteria = []), r.criteria.push(e.getSource()), e.getSource().type = Qt.Type.Custom, e.copyTo("and", w);
1021
+ r.criteria || (r.criteria = []), r.criteria.push(e.getSource()), e.getSource().type = Jt.Type.Custom, e.copyTo("and", w);
1022
1022
  } }), h.registerVisitor({ from: "customFilter", to: "customFilter", openTag: (e) => {
1023
1023
  const r = e.getParent();
1024
1024
  r.filters || (r.filters = []), r.filters.push(e.getSource()), e.copyTo("operator", k), e.copyTo("value", ct, "val");
@@ -1038,7 +1038,7 @@ const Ks = (i, t, s) => {
1038
1038
  } }), h.registerVisitor({ from: "AlternateContent", to: null });
1039
1039
  const ge = (e) => {
1040
1040
  j = e.getSource(), e.copyTo("topLeft", k, "topLeftCell");
1041
- const r = Js(e.getAttribute("defaultGridColor")), l = e.getAttribute("colorId");
1041
+ const r = Qs(e.getAttribute("defaultGridColor")), l = e.getAttribute("colorId");
1042
1042
  l === null || r || (e.getSource().gridLineColor = "index" + parseFloat(l)), e.copyTo("showZeros", w), e.copyTo("showFormulas", w), e.copyTo("zoomScale", A), e.copyTo("showRowHeaders", w, "showRowColHeaders"), e.copyTo("showColumnHeaders", w, "showRowColHeaders"), e.copyTo("showRowGridlines", w, "showGridLines"), e.copyTo("showColumnGridlines", w, "showGridLines");
1043
1043
  };
1044
1044
  h.registerVisitor({ from: "sheetView", to: "view", openTag: (e) => {
@@ -1146,9 +1146,9 @@ const Ks = (i, t, s) => {
1146
1146
  const ws = pt?.get("richData") ?? [], Xe = at.normalizeA1ToR1C1, Be = De.createConflatingRanges(), We = /* @__PURE__ */ new Map(), ke = [];
1147
1147
  let ie = null;
1148
1148
  const _e = De.createConflatingRanges();
1149
- let oe, Dt = !1, X = -1, J = -1, gt = null, re = null;
1149
+ let oe, Dt = !1, X = -1, Q = -1, gt = null, re = null;
1150
1150
  const Ae = [];
1151
- let Ee = null, qe = -2, ft = 0, Gt = "", Pt = "", Ot = "", It = "", Vt = "", Lt = "", Nt = "", ze = "", Ue = "", Ge = "", Qe = "", Ze = "", Je = "", Ke = "", mt = !0, Rt = null;
1151
+ let Ee = null, qe = -2, ft = 0, Gt = "", Pt = "", Ot = "", It = "", Vt = "", Lt = "", Nt = "", ze = "", Ue = "", Ge = "", Je = "", Ze = "", Qe = "", Ke = "", mt = !0, Rt = null;
1152
1152
  return { ...l, onEnd: () => {
1153
1153
  Ae.length > 0 && (r.rows = Ae);
1154
1154
  let p = Be.done(Ks);
@@ -1215,7 +1215,7 @@ const Ks = (i, t, s) => {
1215
1215
  case "datatable":
1216
1216
  Ut = !0, se = N.ref, Ut = !0;
1217
1217
  }
1218
- N.ca !== void 0 && _e.append(X, J);
1218
+ N.ca !== void 0 && _e.append(X, Q);
1219
1219
  break;
1220
1220
  case "is":
1221
1221
  return void (Dt = !0);
@@ -1226,17 +1226,17 @@ const Ks = (i, t, s) => {
1226
1226
  if (C === "c") {
1227
1227
  oe = p;
1228
1228
  const N = p.attributes.r;
1229
- J = at.fastStringToCol(N);
1229
+ Q = at.fastStringToCol(N);
1230
1230
  const st = p.attributes.t;
1231
1231
  st === void 0 ? re = null : (re = st, re === "str" && (Dt = !0));
1232
1232
  let $ = p.attributes.s;
1233
- $ !== void 0 && ($ = parseInt($), Rt && Rt.value === $ && Rt.colEnd + 1 === J ? Rt.colEnd = J : (Rt = { colStart: J, rowStart: X, colEnd: J, rowEnd: X, value: $ }, zt.push(Rt)));
1233
+ $ !== void 0 && ($ = parseInt($), Rt && Rt.value === $ && Rt.colEnd + 1 === Q ? Rt.colEnd = Q : (Rt = { colStart: Q, rowStart: X, colEnd: Q, rowEnd: X, value: $ }, zt.push(Rt)));
1234
1234
  }
1235
1235
  } else {
1236
1236
  if (C === "row") {
1237
1237
  ot = !0;
1238
1238
  const N = p.attributes.r;
1239
- if (X = parseInt(N) - 1, ft = 0, Pt = p.attributes.customHeight, Pt !== void 0 && (ft |= Bt.CustomHeight), Pt !== Ue && (mt = !0, Ue = Pt), Gt = p.attributes.ht, Gt !== void 0 && (ft |= Bt.Ht), Gt !== ze && (mt = !0, ze = Gt), Ot = p.attributes.hidden, Ot !== void 0 && (ft |= Bt.Hidden), Ot !== Ge && (mt = !0, Ge = Ot), Vt = p.attributes.s, Vt !== void 0 && (ft |= Bt.S), Vt !== Ze && (mt = !0, Ze = Vt), It = p.attributes.customFormat, It !== void 0 && (ft |= Bt.CustomFormat), It !== Qe && (mt = !0, Qe = It), Lt = p.attributes.outlineLevel, Lt !== void 0 && (ft |= Bt.OutlineLevel), Lt !== Je && (mt = !0, Je = Lt), Nt = p.attributes.collapsed, Nt !== void 0 && (ft |= Bt.Collapsed), Nt !== Ke && (mt = !0, Ke = Nt), ft !== 0) if (qe + 1 !== X || mt) {
1239
+ if (X = parseInt(N) - 1, ft = 0, Pt = p.attributes.customHeight, Pt !== void 0 && (ft |= Bt.CustomHeight), Pt !== Ue && (mt = !0, Ue = Pt), Gt = p.attributes.ht, Gt !== void 0 && (ft |= Bt.Ht), Gt !== ze && (mt = !0, ze = Gt), Ot = p.attributes.hidden, Ot !== void 0 && (ft |= Bt.Hidden), Ot !== Ge && (mt = !0, Ge = Ot), Vt = p.attributes.s, Vt !== void 0 && (ft |= Bt.S), Vt !== Ze && (mt = !0, Ze = Vt), It = p.attributes.customFormat, It !== void 0 && (ft |= Bt.CustomFormat), It !== Je && (mt = !0, Je = It), Lt = p.attributes.outlineLevel, Lt !== void 0 && (ft |= Bt.OutlineLevel), Lt !== Qe && (mt = !0, Qe = Lt), Nt = p.attributes.collapsed, Nt !== void 0 && (ft |= Bt.Collapsed), Nt !== Ke && (mt = !0, Ke = Nt), ft !== 0) if (qe + 1 !== X || mt) {
1240
1240
  const st = Pt !== void 0 && (Pt === "1" || Pt === "true"), $ = It !== void 0 && (It === "1" || It === "true");
1241
1241
  Ee = { min: X, max: X, sz: st && Gt !== void 0 ? parseFloat(Gt) : -1, csz: st, h: Ot !== void 0 && (Ot === "1" || Ot === "true"), s: st && Vt !== void 0 && Vt !== "0" ? parseInt(Vt) : 0, cs: $, l: Lt === void 0 || Lt === "0" ? 0 : parseInt(Lt), cl: Nt !== void 0 && (Nt === "1" || Nt === "true") }, Ae.push(Ee);
1242
1242
  } else Ee.max = X;
@@ -1250,7 +1250,7 @@ const Ks = (i, t, s) => {
1250
1250
  const et = C.indexOf(":");
1251
1251
  if (et !== -1 && (C = C.slice(et + 1)), Dt) if (C === "is" || C === "v") {
1252
1252
  const N = S?.onEnd();
1253
- N !== null && e.addValue(X, J, "" + N);
1253
+ N !== null && e.addValue(X, Q, "" + N);
1254
1254
  } else S?.onCloseTag?.(p);
1255
1255
  return At && (At = !1), void (C === "c" && (oe = null, Dt = !1));
1256
1256
  }
@@ -1281,47 +1281,47 @@ const Ks = (i, t, s) => {
1281
1281
  }
1282
1282
  }
1283
1283
  const C = Cs.getBuiltInByLabel(p);
1284
- C ? gt = { t: Ft.Error, v: C.getCode() } : (gt = p, d?.(`Unknown formula error '${p}' in cell ${at.cellToString({ colIndex: J, rowIndex: X })}`));
1284
+ C ? gt = { t: Ft.Error, v: C.getCode() } : (gt = p, d?.(`Unknown formula error '${p}' in cell ${at.cellToString({ colIndex: Q, rowIndex: X })}`));
1285
1285
  break;
1286
1286
  case "str":
1287
1287
  case "inlineStr":
1288
1288
  Dt = !0;
1289
1289
  }
1290
- gt !== null && e.addValue(X, J, gt);
1290
+ gt !== null && e.addValue(X, Q, gt);
1291
1291
  }
1292
1292
  if (ie && (re === "e" && (ie[1] = !0), ke.push(ie), ie = null), Et) if (He === Et) rt = Fe;
1293
1293
  else {
1294
1294
  if (rt = We.get(Et), !rt) {
1295
1295
  const C = [];
1296
- fe = Xe(p, X, J, C), rt = [fe, C, p], We.set(Et, rt);
1296
+ fe = Xe(p, X, Q, C), rt = [fe, C, p], We.set(Et, rt);
1297
1297
  }
1298
1298
  He = Et, Fe = rt;
1299
1299
  }
1300
1300
  if (Ut) {
1301
1301
  const C = [];
1302
- fe = Xe(p, X, J, C), rt = [fe, C, p];
1302
+ fe = Xe(p, X, Q, C), rt = [fe, C, p];
1303
1303
  }
1304
- if (rt) return Be.append(X, J, rt), rt = null, Ut = !1, Et = null, void (se = null);
1304
+ if (rt) return Be.append(X, Q, rt), rt = null, Ut = !1, Et = null, void (se = null);
1305
1305
  Dt ? S?.onText(p) : ot || l?.onText(p);
1306
1306
  } };
1307
1307
  })(Z, V, h.createEventHandler(V, () => {
1308
- }, Q), Q, xs, wt);
1308
+ }, J), J, xs, wt);
1309
1309
  })(Y, (V, U = !1) => he(V, R, U) ?? null, fs, Ce, 0, (V) => {
1310
1310
  o && (V = R + ": " + V, o?.(V));
1311
1311
  }, W), _t = ns(R, ce), xt = await (async (V, U = 8388608) => {
1312
1312
  await (async () => {
1313
1313
  if (typeof ReadableStream > "u") if (typeof window > "u") {
1314
- const { ReadableStream: Q } = await import("./XBRwKmVZSI2nKxkp.js");
1315
- global.ReadableStream = Q;
1314
+ const { ReadableStream: J } = await import("./SWAv_VgEKg95ORt5.js");
1315
+ global.ReadableStream = J;
1316
1316
  } else console.warn("Browser does not support ReadableStream; consider loading a polyfill.");
1317
1317
  })();
1318
1318
  const te = new TextDecoder("utf-8");
1319
1319
  let _ = 0;
1320
1320
  const G = V instanceof Uint8Array ? V : new Uint8Array(V);
1321
- return new ReadableStream({ pull(Q) {
1322
- if (_ >= G.byteLength) return void Q.close();
1321
+ return new ReadableStream({ pull(J) {
1322
+ if (_ >= G.byteLength) return void J.close();
1323
1323
  const wt = G.subarray(_, Math.min(_ + U, G.byteLength)), h = te.decode(wt, { stream: _ + U < G.byteLength });
1324
- Q.enqueue(h), _ += wt.length;
1324
+ J.enqueue(h), _ += wt.length;
1325
1325
  } }).getReader();
1326
1326
  })(_t);
1327
1327
  try {
@@ -1335,8 +1335,8 @@ const Ks = (i, t, s) => {
1335
1335
  const V = "http://schemas.microsoft.com/office/2017/10/relationships/threadedComment";
1336
1336
  let U;
1337
1337
  qt.forEach((_, G) => {
1338
- _.type === V && (kt = he(G, R, !1, ut)?.comments, kt && kt.forEach((Q) => {
1339
- je.set(Q.id, Q);
1338
+ _.type === V && (kt = he(G, R, !1, ut)?.comments, kt && kt.forEach((J) => {
1339
+ je.set(J.id, J);
1340
1340
  }));
1341
1341
  });
1342
1342
  const te = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments";
@@ -1345,10 +1345,10 @@ const Ks = (i, t, s) => {
1345
1345
  }), U || kt) {
1346
1346
  const _ = kt ?? [], G = U?.comments;
1347
1347
  if (G) {
1348
- const Q = U?.authors;
1348
+ const J = U?.authors;
1349
1349
  for (let wt = 0; wt < G.length; wt++) {
1350
1350
  const h = G[wt];
1351
- let Z = h.authorId !== void 0 ? Q[h.authorId] : void 0;
1351
+ let Z = h.authorId !== void 0 ? J[h.authorId] : void 0;
1352
1352
  if ((!Z || Z.startsWith("tc=")) && (Z = Zs(Z.substring(3)), je.has(Z))) continue;
1353
1353
  let j = de.get(Z);
1354
1354
  j || (j = Re.get(Z)), j || (j = { id: es.uuidV4(), displayName: Z }, Re.set(j.displayName, j), de.set(j.id, j)), Z = j?.id ?? null;
@@ -1409,7 +1409,7 @@ const Ks = (i, t, s) => {
1409
1409
  throw u instanceof Os && (D = "Unable to open XLSX. There are too many rows or columns."), new Error(D, { cause: u });
1410
1410
  }
1411
1411
  }, toBufferXLSX: async (i, t) => {
1412
- const s = await import("./_Rc93Vlm8MW1zcHZ.js"), o = await i.toJSON(!0), n = s.utils.book_new();
1412
+ const s = await import("./DzowkvQRyggO7Ijl.js"), o = await i.toJSON(!0), n = s.utils.book_new();
1413
1413
  for (let a = 0; a < o.sheets.length; a++) {
1414
1414
  const c = o.sheets[a], m = s.utils.json_to_sheet([{}]);
1415
1415
  s.utils.book_append_sheet(n, m, c.name);
@@ -1457,7 +1457,7 @@ const Ks = (i, t, s) => {
1457
1457
  } }, Symbol.toStringTag, { value: "Module" }));
1458
1458
  export {
1459
1459
  ii as a,
1460
- Js as b,
1460
+ Qs as b,
1461
1461
  si as c,
1462
1462
  as as d,
1463
1463
  ri as i,
@@ -1,12 +1,12 @@
1
1
  import { Workbook as y, IRange as C } from "@sheetxl/sdk";
2
2
  /**
3
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.17
3
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.19
4
4
  *
5
5
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
6
6
  * License: The license can be found at https://www.sheetxl.com/license.
7
7
  */
8
8
  const k = async (a, p) => {
9
- const { trimLeadingBlankRow: i = !0, trimLeadingBlankColumn: u = !0, excludeHidden: h = !1, sheetKey: r = null, papaParseConfig: m = {} } = p || {}, f = await import("./BTLRhd22C-Nd_eBp.js").then((s) => s.p);
9
+ const { trimLeadingBlankRow: i = !0, trimLeadingBlankColumn: u = !0, excludeHidden: h = !1, sheetKey: r = null, papaParseConfig: m = {} } = p || {}, f = await import("./zovGkWpLePhgQd_n.js").then((s) => s.p);
10
10
  if (!a) throw new Error("workbook must be specified");
11
11
  let t = null;
12
12
  if (r === null ? t = a.getSelectedSheet() : typeof r == "number" ? t = a.getSheets().search()[r] : typeof r == "string" && (t = a.getSheets().getByName(r)), !t) throw new Error("invalid sheetKey specified");
@@ -27,7 +27,7 @@ const k = async (a, p) => {
27
27
  const o = { ...m }, g = f.unparse(d, o);
28
28
  return new TextEncoder().encode(g);
29
29
  }, R = async (a, p) => {
30
- const { papaParseConfig: i, setValuesOptions: u, constructorOptions: h } = p ?? {}, r = await import("./BTLRhd22C-Nd_eBp.js").then((o) => o.p), m = new TextDecoder().decode(a);
30
+ const { papaParseConfig: i, setValuesOptions: u, constructorOptions: h } = p ?? {}, r = await import("./zovGkWpLePhgQd_n.js").then((o) => o.p), m = new TextDecoder().decode(a);
31
31
  let f = -1;
32
32
  const t = new y(h), c = t.getSelectedSheet().getEntireRange().startIncrementalUpdates({ orientation: C.Orientation.Row }), d = p?.onProgress;
33
33
  let e = 0;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.17
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.19
3
3
  *
4
4
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -1,15 +1,15 @@
1
1
  import { jsx as t, jsxs as f } from "react/jsx-runtime";
2
2
  import { memo as G, useState as x, useCallback as O, useEffect as H, useMemo as w } from "react";
3
3
  import { NumberFormat as n } from "@sheetxl/sdk";
4
- import { w as l, av as K, b as _, B as P, F as S, aw as q, ax as A, c as p, ay as c, a as J, _ as D, az as Q } from "./BL2AZ33IU3F9bUt7.mjs";
4
+ import { v as l, av as K, b as q, B as P, F as S, aw as A, ax as J, a as p, ay as c, T as Q, $, az as U } from "./DVoDFCX7Bv_zFVVi.js";
5
5
  /**
6
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.17
6
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.19
7
7
  *
8
8
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
9
9
  * License: The license can be found at https://www.sheetxl.com/license.
10
10
  */
11
- const U = ["Ok", "Cancel"], ea = G(($) => {
12
- const { initialValue: I, context: h, onOption: b, onValidateOption: u, onInputOption: C, onDone: d, options: v = U, defaultOption: r = v?.[0], cancelOption: m = "Cancel", sx: N, ...V } = $, [e, T] = x(I), [j, z] = x(!1), g = O(async (a, o) => !0, []), y = l(async (a) => {
11
+ const X = ["Ok", "Cancel"], ea = G((D) => {
12
+ const { initialValue: I, context: h, onOption: b, onValidateOption: u, onInputOption: C, onDone: d, options: v = X, defaultOption: r = v?.[0], cancelOption: m = "Cancel", sx: N, ...V } = D, [e, T] = x(I), [j, z] = x(!1), g = O(async (a, o) => !0, []), y = l(async (a) => {
13
13
  C?.(e, a), b?.(a, a === m, a === r), d?.();
14
14
  }, [e, C, d, b, m, r]), B = l(async (a) => {
15
15
  a.keyCode === K.Enter && await g?.(e, null) !== !1 && y(r);
@@ -27,7 +27,7 @@ const U = ["Ok", "Cancel"], ea = G(($) => {
27
27
  F(n.Styles.lookupStyle(e).formatType ?? n.Type.Custom);
28
28
  }, [e]);
29
29
  const L = w(() => {
30
- const a = n.Styles.lookupPrimary(), o = (i) => t(Q, { value: i, children: i }, i), s = Object.keys(a).map((i) => o(a[i].formatType));
30
+ const a = n.Styles.lookupPrimary(), o = (i) => t(U, { value: i, children: i }, i), s = Object.keys(a).map((i) => o(a[i].formatType));
31
31
  return s.push(o(n.Type.Custom)), s;
32
32
  }, []), R = O((a) => {
33
33
  const o = a.target.value;
@@ -38,11 +38,11 @@ const U = ["Ok", "Cancel"], ea = G(($) => {
38
38
  const a = h();
39
39
  return a.createTemporaryCell({ value: a.getValue() ?? 12345, style: { numberFormat: e } });
40
40
  }, [k, e, h]);
41
- return t(_, { title: "Number Format", options: v, onDone: d, onOption: (a) => y(a), onValidateOption: E, defaultOption: r, cancelOption: m, autoFocusSel: ".autoFocus", sx: { width: "580px", ...N }, ...V, children: f(P, { sx: { paddingTop: (a) => a.spacing(1), paddingBottom: (a) => a.spacing(0), rowGap: (a) => a.spacing(1), display: "flex", flexDirection: "column" }, children: [f(S, { sx: { minWidth: 135 }, size: "small", children: [t(q, { children: "Category" }), t(A, { value: k, label: "Category", onChange: R, sx: { backgroundImage: `linear-gradient(${p("#fff", c(5))}, ${p("#fff", c(5))})` }, children: L })] }), t(S, { sx: { paddingTop: (a) => a.spacing(1.5), minWidth: 135, width: "100%" }, size: "small", children: t(J, { label: "Code", onFocus: (a) => {
41
+ return t(q, { title: "Number Format", options: v, onDone: d, onOption: (a) => y(a), onValidateOption: E, defaultOption: r, cancelOption: m, autoFocusSel: ".autoFocus", sx: { width: "580px", ...N }, ...V, children: f(P, { sx: { paddingTop: (a) => a.spacing(1), paddingBottom: (a) => a.spacing(0), rowGap: (a) => a.spacing(1), display: "flex", flexDirection: "column" }, children: [f(S, { sx: { minWidth: 135 }, size: "small", children: [t(A, { children: "Category" }), t(J, { value: k, label: "Category", onChange: R, sx: { backgroundImage: `linear-gradient(${p("#fff", c(5))}, ${p("#fff", c(5))})` }, children: L })] }), t(S, { sx: { paddingTop: (a) => a.spacing(1.5), minWidth: 135, width: "100%" }, size: "small", children: t(Q, { label: "Code", onFocus: (a) => {
42
42
  j || a.target?.select(), z(!0);
43
43
  }, sx: { "& .MuiFormHelperText-root": { marginTop: (a) => a.spacing(0.5) } }, InputLabelProps: { shrink: !0 }, InputProps: { inputProps: { className: "autoFocus", spellCheck: !1, autoComplete: "off", sx: { paddingTop: (a) => a.spacing(1.25), paddingBottom: (a) => a.spacing(0.75), backgroundImage: `linear-gradient(${p("#fff", c(5))}, ${p("#fff", c(5))})` } } }, value: e, onChange: M, onKeyDown: B, onContextMenu: (a) => {
44
44
  a.stopPropagation();
45
- } }) }), f(P, { children: [t(D, { variant: "caption", component: "div", sx: { paddingLeft: (a) => a.spacing(2) }, children: "Preview" }), t(D, { variant: "body2", component: "div", sx: { borderRadius: (a) => `${a.shape.borderRadius}px`, padding: (a) => a.spacing(1), border: (a) => `1px solid ${a.palette.grey[400]}` }, children: W.getNumberFormat().displayText || "(empty)" })] })] }) });
45
+ } }) }), f(P, { children: [t($, { variant: "caption", component: "div", sx: { paddingLeft: (a) => a.spacing(2) }, children: "Preview" }), t($, { variant: "body2", component: "div", sx: { borderRadius: (a) => `${a.shape.borderRadius}px`, padding: (a) => a.spacing(1), border: (a) => `1px solid ${a.palette.grey[400]}` }, children: W.getNumberFormat().displayText || "(empty)" })] })] }) });
46
46
  });
47
47
  export {
48
48
  ea as NumberFormatDialog,
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.17
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.19
3
3
  *
4
4
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
package/cdn/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.17
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.19
3
3
  *
4
4
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -115,7 +115,7 @@ let c;
115
115
  const b = async (e) => c || (c = await (async (n, t) => {
116
116
  try {
117
117
  if (t?.selector && C(t?.selector, t?.loading), !n) {
118
- const { resolveDependencies: r } = await import("./assets/DB7EL7vNAfpdzGYu.js");
118
+ const { resolveDependencies: r } = await import("./assets/DoNQnutyjVRliOV0.js");
119
119
  n = await r(t?.dependencies);
120
120
  }
121
121
  t?.licenseKey && await n.StudioMUI.LicenseManager.setLicenseKey(t.licenseKey), t?.selector && h(t?.selector);
package/cdn/loader.js CHANGED
@@ -1,5 +1,5 @@
1
1
  (function(e){typeof define=="function"&&define.amd?define(e):e()})(function(){"use strict";/**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.17
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.19
3
3
  *
4
4
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sheetxl/studio-vanilla",
3
3
  "description": "SheetXL Studio - Vanilla entry point for integrating SheetXL UI.",
4
- "version": "0.3.17",
4
+ "version": "0.3.19",
5
5
  "license": "SEE LICENSE IN <LICENSE>",
6
6
  "type": "module",
7
7
  "main": "./browser/esm/index.mjs",
@@ -41,12 +41,12 @@
41
41
  "@mui/styled-engine": "^6.5.0",
42
42
  "@mui/system": "^6.5.0",
43
43
  "@mui/utils": "^6.4.9",
44
- "@sheetxl/studio-mui": "^0.3.17",
44
+ "@sheetxl/studio-mui": "^0.3.19",
45
45
  "csstype": "^3.1.3",
46
46
  "http-server": "^14.1.1"
47
47
  },
48
48
  "peerDependencies": {
49
- "@sheetxl/sdk": "^0.3.17",
49
+ "@sheetxl/sdk": "^0.3.19",
50
50
  "react": "^19.1.0",
51
51
  "react-dom": "^19.1.0"
52
52
  }
@@ -1,6 +0,0 @@
1
- "use strict";/**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.17
3
- *
4
- * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
- * License: The license can be found at https://www.sheetxl.com/license.
6
- */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("react/jsx-runtime"),a=require("react"),e=require("./cyLp79UpmhtbS2yS.cjs"),H=["Input"],L=a.memo(a.forwardRef((x,N)=>{const{initialValue:y="",onOption:O,onValidateOption:l,onInputOption:r,onValidateInputOption:s,onDone:u,inputProps:c,inputLabel:v,inputType:w,inputPlaceHolder:F,options:d=H,autoFocusSel:S=".autoFocus",cancelOption:g,defaultOption:m=d?.[0],...b}=x,[P,C]=a.useState(!1),[n,I]=a.useState(y),[j,k]=a.useState(""),[V,q]=a.useState(!0),i=e.Tn(async(t,o)=>{if(!s)return!0;const h=await s?.(t,o);k(h?.message??"");const T=h?.valid??!0;return q(T),T},[s]),f=e.Tn(async t=>{r?.(n,t)},[n,r,u,O,g,m]),B=e.Tn(async t=>{t.keyCode===e.sr.Enter&&await i?.(n,null)},[n,f]),D=e.Tn(t=>{I(t.target.value),i?.(t.target.value,null)},[l]),M=e.Tn(async t=>{let o=await i(n,t);try{o!==!1&&(o=await i(n,t))}catch{}return o??!0},[n,l]);return p.jsx(e.b4,{options:d,onDone:u,onOption:(t,o)=>{o||f(t)},onValidateOption:M,cancelOption:g,defaultOption:m,autoFocusSel:S,...b,children:p.jsx(e.Box,{sx:{paddingTop:t=>t.spacing(1),paddingBottom:t=>t.spacing(0)},children:p.jsx(e.FormControl,{sx:{paddingTop:t=>t.spacing(1.5),minWidth:135,width:"100%"},size:"small",children:p.jsx(e.TextField,{onFocus:t=>{P||t.target?.select(),C(!0)},type:w,label:v,helperText:j||" ",sx:{width:"100%","& .MuiFormHelperText-root":{marginTop:t=>t.spacing(.5),color:V?void 0:"error.main"}},InputLabelProps:{shrink:!0},InputProps:{inputProps:{placeholder:F,spellCheck:!1,autoComplete:"off",...c,className:e.Xo("autoFocus",c?.className),sx:{paddingTop:t=>t.spacing(1.25),paddingBottom:t=>t.spacing(.75),backgroundImage:`linear-gradient(${e.alpha("#fff",e.ev(5))}, ${e.alpha("#fff",e.ev(5))})`}}},value:n,onChange:D,onKeyDown:B,onContextMenu:t=>{t.stopPropagation()}})})})})}));exports.default=L;
@@ -1,6 +0,0 @@
1
- "use strict";/**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.17
3
- *
4
- * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
- * License: The license can be found at https://www.sheetxl.com/license.
6
- */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),a=require("react"),t=require("./cyLp79UpmhtbS2yS.cjs"),p=a.memo(h=>{const{title:f,onHide:y,autoFocusSel:b=".range-input input",context:j,notifier:l=t.yu,command:r,commands:c,...w}=h,[S,d]=a.useState(!1),[g,x]=a.useState(!1),m=a.useRef(null),[F,C]=a.useReducer(e=>e+1,0),[R,{width:H}]=t.fc();t.Yi(r);const i=j??r.context(),n=i.table(),[v,B]=a.useState(()=>n?i.getNames().getRanges(n.getRange()):null),N=a.useMemo(()=>n?.getName()??"",[n]);t.un(i.table(),{onAnchorCoordsChange(e){B(i.getNames().getRanges(e.getRange()))},onProtectedChange(e){C()}});const T=t.pe(e=>{i?.table().setName(e)},[i]),D=t.pe(e=>{i?.table().resize(e.at(0))},[i]);let u=null;return i.table()||(u=o.jsx("div",{style:{position:"absolute",top:"0",left:"0",width:"100%",height:"100%",opacity:1,display:"flex",alignItems:"center",justifyItems:"center",justifyContent:"center",boxSizing:"border-box"},children:o.jsx("div",{children:"No table selected"})})),o.jsx(t.cS,{title:f??"Table Details",initialPosition:{y:"35"},autoFocusSel:b,refWindow:m,onHide:y,onFocus:()=>d(!0),onBlur:e=>{m?.current?.contains(e.relatedTarget)||d(!1)},PaperProps:{elevation:S?3:1},...w,children:o.jsxs(t.DialogContent,{dividers:!0,ref:R,sx:{display:"flex",flexDirection:"column",position:"relative",paddingLeft:e=>e.spacing(1.5),paddingRight:e=>e.spacing(1.5)},children:[o.jsxs(t.Box,{sx:{display:"flex",flexDirection:"column",transition:"opacity 60ms",opacity:i.table()?1:0},children:[o.jsx(t.Box,{sx:{display:"flex",flexDirection:"row",gap:e=>e.spacing(1)},children:o.jsx(t.Box,{sx:{display:"flex",flexDirection:"column",maxWidth:"100%",boxSizing:"border-box",paddingLeft:e=>e.spacing(2),paddingRight:e=>e.spacing(2)},children:o.jsxs(t.Box,{sx:{display:"flex",flexDirection:"column",alignItems:"center"},children:[o.jsx(t.cM,{formName:"name",defaultInput:N,value:n?.getName()??"No table",onChangeInput:T,onValidate:e=>{n&&n.getName().toLowerCase()===e.toLowerCase()||i?.getNames().validateName(e)},disabled:n?.isProtected()??!0,onFocus:e=>{g||e.target?.select(),x(!0)}}),o.jsx(t.dM,{formName:"range",value:v,onChangeInput:D,resolvedAddress:i.getNames().getRanges.bind(i.getNames()),disabled:n?.isProtected()??!0,onFocus:e=>{g||e.target?.select(),x(!0)}})]})})}),o.jsxs(t.Box,{sx:{minHeight:"10px",flex:"1 1 100%",display:"flex",flexDirection:"column",gap:e=>e.spacing(.5),marginTop:e=>e.spacing(1)},children:[o.jsx(t.Wt,{orientation:"horizontal",sx:{marginTop:e=>e.spacing(1.5),marginBottom:e=>e.spacing(.75)}}),o.jsx(t.HR,{disabled:n?.isProtected(),styleOptions:n?.getStyleOptions()??null,onStyleOptionsChange:e=>{n.updateStyleOptions(e)},showHeaderRow:n?.getShowHeaders(),onShowHeaderRowChange:e=>{try{n.setShowHeaders(e)}catch(s){l.showError(s)}},showTotalRow:n?.getShowTotals(),onShowTotalRowChange:e=>{try{n.setShowTotals(e)}catch(s){l.showError(s)}},showFilterButton:n?.getFilter()?n.getShowFilterButton():null,onShowFilterButtonChange:e=>{try{n.setShowFilterButton(e)}catch(s){l.showError(s)}}}),o.jsx(t.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column",marginTop:e=>e.spacing(2),marginBottom:e=>e.spacing(1)},children:o.jsx(t.tM,{table:n,styles:i.styles(),bodyStyle:i.bodyStyle(),cellHeight:30,isLive:!0})}),o.jsx(t.Wt,{orientation:"horizontal"}),o.jsxs(t.Box,{sx:{display:"flex",flexDirection:"column",justifyContent:"center"},children:[o.jsx(t.ze,{variant:t.en.Menuitem,command:c.getCommand("convertTableToRange"),commandState:n,icon:t.Ce(o.jsx(t.j1,{}))}),o.jsx(t.ze,{variant:t.en.Menuitem,commandState:n,command:c.getCommand("deleteTable"),icon:t.Ce(o.jsx(t.j1,{}))})]})]})]}),u]})})});exports.TableDetailsWindow=p,exports.default=p;