@sheetxl/studio-vanilla 0.4.7 → 0.4.8

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 (92) hide show
  1. package/README.md +3 -3
  2. package/browser/cjs/{C14PMFhYpGUhrvq1.cjs → 3nTDo2EiTknjadbt.cjs} +1 -1
  3. package/browser/cjs/6Wu3sLyx-7NM6CXS.cjs +301 -0
  4. package/browser/cjs/B11W4AIKbkJQG6ug.cjs +6 -0
  5. package/browser/cjs/{Bgl5W-fCpnnnO3_F.cjs → BCnlTOmUDmizyvVV.cjs} +2 -2
  6. package/browser/cjs/{DE5MhliNUlcqzd9C.cjs → BIPxYhhi1F-y0gSm.cjs} +3 -3
  7. package/browser/cjs/{D5I2M8yOTfapq6d7.cjs → BYhOQCFEzewgsKDn.cjs} +2 -2
  8. package/browser/cjs/{C73dxZSAw05vqEtJ.cjs → BqLDj2GlSzX8ZN3l.cjs} +1 -1
  9. package/browser/cjs/{00LGtBNvHHqHMD_7.cjs → C2B3wbeahcHlbOBZ.cjs} +2 -2
  10. package/browser/cjs/C6nZKAevPqj8zJY-.cjs +6 -0
  11. package/browser/cjs/{B0pcLInszgzhrjui.cjs → CD_HItzF2RneMAER.cjs} +2 -2
  12. package/browser/cjs/{D8WkJStmUKY23vEC.cjs → CE5NVYltiso41NzK.cjs} +1 -1
  13. package/browser/cjs/{DPgVQdCYWI3fGYJ2.cjs → CHSE1pa8SMApg4BM.cjs} +2 -2
  14. package/browser/cjs/{HCih5BN1MZGUuqGG.cjs → CTXKzcsm-W1ujL_U.cjs} +6 -6
  15. package/browser/cjs/{CQAkk0gbl342HFs-.cjs → CcQjGGiCx6Qz7yJ4.cjs} +1 -1
  16. package/browser/cjs/{BC5f5sl2pjp8FYIk.cjs → Cqymi9AOXO_JYvY4.cjs} +2 -2
  17. package/browser/cjs/{DGlLxziqSNTW0c6v.cjs → D6pPBbRPLTNFSXuO.cjs} +1 -1
  18. package/browser/cjs/{DNQqhDlfagjGC2sO.cjs → DMUSzq5n2k0WNFw6.cjs} +2 -2
  19. package/browser/cjs/DWTMnPR33rKK87Xt.cjs +12 -0
  20. package/browser/cjs/{BBuQH_geF9Xg5HPn.cjs → Dds58NEqJ0OalWH3.cjs} +4 -4
  21. package/browser/cjs/{BKUcozo2wEv2ay2w.cjs → Dy4SB47It0LGbh2I.cjs} +1 -1
  22. package/browser/cjs/{DUrNYTSMA5KQTG77.cjs → VJLb1uMfbKAUW1QF.cjs} +8 -8
  23. package/browser/cjs/{DyQffD3gRWH5-nOp.cjs → bHWvGntvmuk8t7sX.cjs} +2 -2
  24. package/browser/cjs/{Clp5qh0fApIxsE35.cjs → euAV1pPrNOIb6DV4.cjs} +2 -2
  25. package/browser/cjs/{BC9xtBySc8rix4-F.cjs → i0D2haODisHW8uGg.cjs} +1 -1
  26. package/browser/cjs/index.cjs +2 -2
  27. package/browser/cjs/{DDFDUxH5Mew5rcdT.cjs → oNi7wirDlZ81Lm0Z.cjs} +1 -1
  28. package/browser/cjs/z1aNSOtWsEE21p2H.cjs +6 -0
  29. package/browser/esm/{f7jo5w0h4-vNZtjZ.mjs → 2RGq163l1wYJKGsa.mjs} +10886 -10877
  30. package/{cdn/assets/Cjl-eP68w6LXe0zR.js → browser/esm/4C7Rg83L5RYFoOvl.mjs} +5 -5
  31. package/{cdn/assets/CGL2dNgGZEziA1cG.js → browser/esm/6KgR81NK4yzANTBT.mjs} +8 -8
  32. package/{cdn/assets/D7ubLFCJK5RzTJOF.js → browser/esm/B1CYiJmSpyx4TD5r.mjs} +20 -20
  33. package/{cdn/assets/CzeybhBUMRs64-Mp.js → browser/esm/B7qUiL1xPnzfOHZw.mjs} +1 -1
  34. package/{cdn/assets/CHsVgElx78EEmCPY.js → browser/esm/BEFQcBJ71bA297Zu.mjs} +1 -1
  35. package/browser/esm/{C8PrD3vZULKFp7HL.mjs → BEIn7yNWsHNJisB6.mjs} +3 -3
  36. package/browser/esm/{DnEhhjrb_iK5ugui.mjs → BM74iVi-iQkHbrfo.mjs} +2 -2
  37. package/browser/esm/{DE0B_sDQJ2uyFacb.mjs → BP8kNG31HYSkk1VW.mjs} +26 -26
  38. package/browser/esm/{CdbRlOwSBEqFzw-Q.mjs → CA_DRvBOFOlhezCt.mjs} +8 -8
  39. package/browser/esm/{CrnqRK0Y_R59nkb0.mjs → CDkmbShJijwq4EBo.mjs} +6 -6
  40. package/browser/esm/{IhAvisOcXUTXM4fs.mjs → CPi83FXApMlTaVbs.mjs} +1 -1
  41. package/browser/esm/{bMPbHealpRV0cNsU.mjs → C_hRuPoaT857EnC1.mjs} +5 -5
  42. package/browser/esm/{fLUOP3GBZp9qFVpK.mjs → CjVsKZEPAncg5mIk.mjs} +1 -1
  43. package/browser/esm/{DQj7TIf3hkBsvgpu.mjs → Ckz080o58XOgRhqj.mjs} +2 -2
  44. package/browser/esm/{DJBqN2bozSAMAOUl.mjs → ClXspoNrNV-A8BaL.mjs} +2 -2
  45. package/browser/esm/{BssMWXVsjFZUIbK_.mjs → DQ0Li3WfKbZxSFuB.mjs} +2 -2
  46. package/browser/esm/{D03_7nbUXeSyElQe.mjs → DXyJaUwHLq39-Jfa.mjs} +5 -5
  47. package/browser/esm/{t16pmig4Yv-yOK3J.mjs → D_FC0zteMRPriWTD.mjs} +1 -1
  48. package/browser/esm/{CxesFvTfE_FHHeOa.mjs → DnWiOUNTPvi_llPT.mjs} +1 -1
  49. package/browser/esm/{B6OcmPVBCjTZiEO8.mjs → DyUvHYGMNA9W2zL6.mjs} +1 -1
  50. package/browser/esm/{DCLOetlYWQ4f6912.mjs → EUFvcP5R4HFDLn2V.mjs} +5 -5
  51. package/browser/esm/cSe92c0HnvbRwiVM.mjs +944 -0
  52. package/{cdn/assets/CSnM9G1CZ81wivjo.js → browser/esm/eXQ_1uhRMyN-hfDZ.mjs} +1 -1
  53. package/browser/esm/{BepIgOjpel6ND31E.mjs → h4NbNvV8KCL9Tl1v.mjs} +16 -16
  54. package/browser/esm/index.mjs +2 -2
  55. package/{cdn/assets/CNdoHnLQKWWUIXFN.js → browser/esm/xlL3Ai-ka9qMVeua.mjs} +2 -2
  56. package/cdn/assets/{CUqr4I0B5RzMvyfH.js → B2hDWpWSEoChxhVY.js} +11896 -11887
  57. package/{browser/esm/CzeybhBUMRs64-Mp.mjs → cdn/assets/B7qUiL1xPnzfOHZw.js} +1 -1
  58. package/{browser/esm/CHsVgElx78EEmCPY.mjs → cdn/assets/BEFQcBJ71bA297Zu.js} +1 -1
  59. package/cdn/assets/{DucOHAWR0Drvzaz2.js → BXBP2rNGQxrgUPvU.js} +5 -5
  60. package/cdn/assets/{BPKaeP61qs19hdJx.js → BgChN-ZVYUOMDX9_.js} +26 -26
  61. package/cdn/assets/{ChAbZK53mfolDCTD.js → Bvy1txLm7c3LbPL7.js} +6 -6
  62. package/cdn/assets/{BWyjsqZ8W7LRq-2H.js → C1x5-f1q8NeSwRA2.js} +16 -16
  63. package/{browser/esm/DfczJdsv--tsazCR.mjs → cdn/assets/C5NMOq74C3Sme49x.js} +20 -20
  64. package/cdn/assets/{BKMHTFN6LTvRZnlS.js → CLA1BGtRbWm0K0U0.js} +2 -2
  65. package/cdn/assets/{IhAvisOcXUTXM4fs.js → CPi83FXApMlTaVbs.js} +1 -1
  66. package/cdn/assets/{fLUOP3GBZp9qFVpK.js → CjVsKZEPAncg5mIk.js} +1 -1
  67. package/cdn/assets/{CRv8MUg-_zmoKFIt.js → CpVan9KpuEGXgwIK.js} +2 -2
  68. package/cdn/assets/{B-7gpSVkQWekyOlk.js → CtDntnnwJW1rZ3sM.js} +5 -5
  69. package/cdn/assets/{BFDNPYBEj2T1cP38.js → CuG5WoZ4OOj9RCsv.js} +3 -3
  70. package/{browser/esm/CnL3YzjxBxFK7qfL.mjs → cdn/assets/DTvvMKZZfsVRhbow.js} +5 -5
  71. package/cdn/assets/{t16pmig4Yv-yOK3J.js → D_FC0zteMRPriWTD.js} +1 -1
  72. package/cdn/assets/{CB496hBmWELULf2f.js → Dbd0AFDlzQDW0tOg.js} +5 -5
  73. package/cdn/assets/{CxesFvTfE_FHHeOa.js → DnWiOUNTPvi_llPT.js} +1 -1
  74. package/cdn/assets/{DPdbTtHJ9qzLqsDN.js → DppHXtCDGzttFdS4.js} +2 -2
  75. package/cdn/assets/{CvfZjHPPpLdHBSRa.js → DuU1-7vd87A1wfGJ.js} +2 -2
  76. package/cdn/assets/{B6OcmPVBCjTZiEO8.js → DyUvHYGMNA9W2zL6.js} +1 -1
  77. package/{browser/esm/C3vvXeb_u4RQddV1.mjs → cdn/assets/O1XID2whLDb1cTWS.js} +8 -8
  78. package/{browser/esm/CSnM9G1CZ81wivjo.mjs → cdn/assets/eXQ_1uhRMyN-hfDZ.js} +1 -1
  79. package/cdn/assets/{D8lNg-ZFq3SVt0qa.js → g4FhlroGKmJM7Utd.js} +8 -8
  80. package/cdn/assets/tJI1G_FjDgqWo3rJ.js +944 -0
  81. package/{browser/esm/CNdoHnLQKWWUIXFN.mjs → cdn/assets/xlL3Ai-ka9qMVeua.js} +2 -2
  82. package/cdn/index.js +24 -24
  83. package/cdn/loader.js +2 -2
  84. package/package.json +3 -3
  85. package/types/index.d.ts +8 -8
  86. package/browser/cjs/BO0CySmcqi-pkV4p.cjs +0 -6
  87. package/browser/cjs/BoG6Gi-uqIbSJdRv.cjs +0 -12
  88. package/browser/cjs/DD6f8EPYnuPb41GO.cjs +0 -6
  89. package/browser/cjs/DsuUTTVqL23hXXxq.cjs +0 -6
  90. package/browser/cjs/Dva96jeug6x2xYZm.cjs +0 -301
  91. package/browser/esm/6w21A0XUkGBQu8-3.mjs +0 -940
  92. package/cdn/assets/CHZP9CrMHXri-Ghe.js +0 -940
@@ -1,17 +1,17 @@
1
1
  import { jsx as a, jsxs as s } from "react/jsx-runtime";
2
2
  import { memo as O, useState as r, useRef as M, useReducer as A, useMemo as E } from "react";
3
- import { aL as W, V, aM as k, aN as Q, v as x, aA as q, aB as G, B as n, aO as J, aP as K, ak as f, aQ as U, aR as X, ag as y, ah as b, ai as w, aS as S } from "./CUqr4I0B5RzMvyfH.js";
3
+ import { aL as Q, Q as W, aM as k, aN as V, w as x, aA as q, aB as G, B as n, aO as J, aP as K, ak as f, aQ as U, aR as X, ag as y, ah as b, ai as w, aS as S } from "./2RGq163l1wYJKGsa.mjs";
4
4
  /**
5
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.7
5
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.8
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 te = O((C) => {
11
- const { title: v, onHide: N, autoFocusSel: R = ".range-input input", context: T, notifier: l = W, command: c, commands: d, ...D } = C, [F, g] = r(!1), [m, p] = r(!1), h = M(null), [Y, B] = A((e) => e + 1, 0), [H, { width: Z }] = V();
11
+ const { title: N, onHide: R, autoFocusSel: v = ".range-input input", context: T, notifier: l = Q, command: c, commands: d, ...D } = C, [F, g] = r(!1), [m, p] = r(!1), h = M(null), [Y, B] = A((e) => e + 1, 0), [H, { width: Z }] = W();
12
12
  k(c);
13
13
  const o = T ?? c.context(), t = o.table(), [P, I] = r(() => t ? o.getNames().getRanges(t.getRange()) : null), j = E(() => t?.getName() ?? "", [t]);
14
- Q(o.table(), { onAnchorCoordsChange(e) {
14
+ V(o.table(), { onAnchorCoordsChange(e) {
15
15
  I(o.getNames().getRanges(e.getRange()));
16
16
  }, onProtectedChange(e) {
17
17
  B();
@@ -22,7 +22,7 @@ const te = O((C) => {
22
22
  o?.table().resize(e.at(0));
23
23
  }, [o]);
24
24
  let u = null;
25
- return o.table() || (u = a("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: a("div", { children: "No table selected" }) })), a(q, { title: v ?? "Table Details", initialPosition: { y: "35" }, autoFocusSel: R, refWindow: h, onHide: N, onFocus: () => g(!0), onBlur: (e) => {
25
+ return o.table() || (u = a("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: a("div", { children: "No table selected" }) })), a(q, { ref: h, title: N ?? "Table Details", initialPosition: { y: "35" }, autoFocusSel: v, onHide: R, onFocus: () => g(!0), onBlur: (e) => {
26
26
  h?.current?.contains(e.relatedTarget) || g(!1);
27
27
  }, PaperProps: { elevation: F ? 3 : 1 }, ...D, children: s(G, { dividers: !0, ref: H, sx: { display: "flex", flexDirection: "column", position: "relative", paddingLeft: (e) => e.spacing(1.5), paddingRight: (e) => e.spacing(1.5) }, children: [s(n, { sx: { display: "flex", flexDirection: "column", transition: "opacity 60ms", opacity: o.table() ? 1 : 0 }, children: [a(n, { sx: { display: "flex", flexDirection: "row", gap: (e) => e.spacing(1) }, children: a(n, { sx: { display: "flex", flexDirection: "column", maxWidth: "100%", boxSizing: "border-box", paddingLeft: (e) => e.spacing(2), paddingRight: (e) => e.spacing(2) }, children: s(n, { sx: { display: "flex", flexDirection: "column", alignItems: "center" }, children: [a(J, { formName: "name", defaultInput: j, value: t?.getName() ?? "No table", onChangeInput: L, onValidate: (e) => {
28
28
  t && t.getName().toLowerCase() === e.toLowerCase() || o?.getNames().validateName(e);
@@ -1,18 +1,18 @@
1
- import { jsx as o, jsxs as N } from "react/jsx-runtime";
2
- import { memo as T, useState as i, useCallback as k } from "react";
3
- import { v, b as w, B as j, aP as y, at as B, au as F } from "./CUqr4I0B5RzMvyfH.js";
1
+ import { jsx as o, jsxs as D } from "react/jsx-runtime";
2
+ import { memo as N, useState as i, useCallback as T } from "react";
3
+ import { w as k, b as j, B as v, aP as y, at as B, au as F } from "./2RGq163l1wYJKGsa.mjs";
4
4
  /**
5
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.7
5
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.8
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 H = ["Ok", "Cancel"], A = T((u) => {
11
- const { tableOptions: e, context: p, onOption: c, onValidateOption: I, onDone: r, options: d = H, defaultOption: t = d?.[0], cancelOption: s = "Cancel", sx: m, ...b } = u, [h, x] = i(!1), [n, O] = i(() => e?.hasHeader ?? !1), [l, f] = i(() => e?.ranges ?? null), C = v((a) => {
10
+ const H = ["Ok", "Cancel"], A = N((u) => {
11
+ const { tableOptions: e, context: p, onOption: c, onValidateOption: I, onDone: r, options: d = H, defaultOption: t = d?.[0], cancelOption: s = "Cancel", sx: m, ...b } = u, [h, x] = i(!1), [n, O] = i(() => e?.hasHeader ?? !1), [l, f] = i(() => e?.ranges ?? null), C = k((a) => {
12
12
  const g = { ...e, hasHeader: n, ranges: l };
13
13
  c?.(a, a === s, a === t), r?.({ option: a, tableOptions: g });
14
- }, [r, c, t, s, n, l, e]), D = k(async (a, g) => null, []);
15
- return o(w, { title: "Insert Table", options: d, onDone: C, onValidateOption: D, defaultOption: t, cancelOption: s, autoFocusSel: ".range-input input", sx: { width: "360px", ...m }, ...b, children: N(j, { sx: { paddingTop: (a) => a.spacing(1), paddingBottom: (a) => a.spacing(0), rowGap: (a) => a.spacing(1), display: "flex", flexDirection: "column" }, children: [o(y, { formName: "range", value: l, onChangeInput: (a) => f(a), resolvedAddress: p.getNames().getRanges.bind(p.getNames()), onFocus: (a) => {
14
+ }, [r, c, t, s, n, l, e]), w = T(async (a, g) => null, []);
15
+ return o(j, { title: "Insert Table", options: d, onDone: C, onValidateOption: w, defaultOption: t, cancelOption: s, autoFocusSel: ".range-input input", sx: { width: "360px", ...m }, ...b, children: D(v, { sx: { paddingTop: (a) => a.spacing(1), paddingBottom: (a) => a.spacing(0), rowGap: (a) => a.spacing(1), display: "flex", flexDirection: "column" }, children: [o(y, { formName: "range", value: l, onChangeInput: (a) => f(a), resolvedAddress: p.getNames().getRanges.bind(p.getNames()), onFocus: (a) => {
16
16
  h || a.target?.select(), x(!0);
17
17
  } }), o(B, { control: o(F, { checked: n, onChange: () => O(!n) }), label: "Table has headers", labelPlacement: "end" })] }) });
18
18
  });
@@ -1,10 +1,10 @@
1
1
  import { jsx as i, jsxs as p } from "react/jsx-runtime";
2
2
  import { memo as oe, useRef as C, useState as b, useEffect as L, useLayoutEffect as pe, useMemo as de } from "react";
3
3
  import { ICell as c, IRange as R } from "@sheetxl/sdk";
4
- import { t as D, v as H, av as ue, V as fe, aA as ge, aB as me, B as O, aC as m, ah as x, aD as xe, a8 as y, aE as he, T as _, a as k, aF as Oe, aG as Ce, aH as ye, aI as be, ay as w, aJ as ve, aK as Te, ak as Re, az as ke, F as we, aw as Ee, ax as Fe } from "./CUqr4I0B5RzMvyfH.js";
5
- import { C as ee } from "./CHZP9CrMHXri-Ghe.js";
4
+ import { v as D, w as H, av as ue, Q as fe, aA as ge, aB as me, B as O, aC as m, ah as x, aD as xe, a8 as y, aE as he, T as _, a as k, aF as Oe, aG as Ce, aH as ye, aI as be, ay as w, aJ as ve, aK as Te, ak as Re, az as ke, F as we, aw as Ee, ax as Fe } from "./2RGq163l1wYJKGsa.mjs";
5
+ import { C as ee } from "./cSe92c0HnvbRwiVM.mjs";
6
6
  /**
7
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.7
7
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.8
8
8
  *
9
9
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
10
10
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -29,17 +29,17 @@ const Ae = { "By Rows": !0, "By Columns": !1 }, ie = (E, h) => {
29
29
  }, ze = oe((E) => {
30
30
  const { replace: h = !1, findText: r, replaceText: a, findOptions: d, replaceOptions: v, title: A, onHide: K, onFindOrReplace: T, ...P } = E, s = C(null), u = C(null), $ = C(null), W = C(null), j = C(null), N = C(null), G = (e, t) => {
31
31
  t && (t.start(e, { center: !1 }), setTimeout(() => t.stop(e), 180));
32
- }, [J, I] = b(!1), [V, le] = b(!1), [f, B] = b(h), [U, M] = b(!1), [X, q] = b(!1), [o, l] = b({ findText: null, replaceText: null, replace: h, replaceOptions: {}, findOptions: { matchCase: !1, matchEntireCell: !1, useRegex: !1, orientation: R.Orientation.Row, fields: [c.Content.Formulas] }, scope: te.Sheet }), F = H(async (e, t, n, S) => {
32
+ }, [J, I] = b(!1), [B, le] = b(!1), [f, M] = b(h), [Q, V] = b(!1), [U, X] = b(!1), [o, l] = b({ findText: null, replaceText: null, replace: h, replaceOptions: {}, findOptions: { matchCase: !1, matchEntireCell: !1, useRegex: !1, orientation: R.Orientation.Row, fields: [c.Content.Formulas] }, scope: te.Sheet }), F = H(async (e, t, n, S) => {
33
33
  if (!T) return;
34
34
  const g = { ...o };
35
35
  g.replaceOptions = { ...g.replaceOptions }, g.findOptions = { ...g.findOptions }, g.replaceOptions.maxCount = n ? void 0 : 1, g.replace = t, t && o.findOptions.fields?.[0] === c.Content.Values && (g.findOptions.fields = [c.Content.Formulas]), g.findOptions.reverse = !e;
36
36
  const ce = await T({ autoFocus: S, ...g });
37
- M(ce === 0);
37
+ V(ce === 0);
38
38
  }, [o, T]);
39
39
  L(() => {
40
- M(!1);
41
- }, [o, V, f]);
42
- const Q = H((e, t) => {
40
+ V(!1);
41
+ }, [o, B, f]);
42
+ const q = H((e, t) => {
43
43
  if (e.keyCode === ue.Enter) {
44
44
  if (!o.findText) return;
45
45
  let n = !0, S = !1;
@@ -51,8 +51,8 @@ const Ae = { "By Rows": !0, "By Columns": !1 }, ie = (E, h) => {
51
51
  const t = { ...e };
52
52
  t.findText = r && r.length > 0 ? r : e.findText ?? "", I(!0), a !== void 0 && (t.replaceText = a), d && (t.findOptions = { ...t.findOptions, ...d }), t.replaceText || (t.replaceText = ""), t.replaceOptions && (t.replaceOptions = { ...t.replaceOptions }), v && (t.replaceOptions = { ...t.replaceOptions, ...v }), o.findOptions.fields?.[0] || (o.findOptions.fields = [c.Content.Formulas]);
53
53
  const n = !(!v && a === void 0);
54
- return n && B(n), t;
55
- }), X || Y.current?.focus();
54
+ return n && M(n), t;
55
+ }), U || Y.current?.focus();
56
56
  }, [r, a, d, v]), L(() => {
57
57
  f ? (o.findOptions.fields[0], c.Content.Values) : I(!0);
58
58
  }, [f]), L(() => {
@@ -61,10 +61,10 @@ const Ae = { "By Rows": !0, "By Columns": !1 }, ie = (E, h) => {
61
61
  }, { once: !0 });
62
62
  }, [J, o]);
63
63
  const [re, { width: Z }] = fe();
64
- return i(ge, { title: A ?? (f ? "Find & Replace" : "Find"), initialPosition: { y: "35" }, autoFocusSel: ".input", refWindow: Y, onHide: K, onFocus: () => q(!0), onBlur: () => {
65
- q(!1), M(!1);
66
- }, PaperProps: { elevation: X ? 3 : 1 }, ...P, children: p(me, { dividers: !0, ref: re, sx: { display: "flex", flexDirection: "column", paddingLeft: (e) => e.spacing(1.5), paddingRight: (e) => e.spacing(1.5) }, onKeyDown: (e) => {
67
- if (e.key === "h" && e.ctrlKey) B(!0), s.current?.contains(document.activeElement) && u.current?.focus();
64
+ return i(ge, { ref: Y, title: A ?? (f ? "Find & Replace" : "Find"), initialPosition: { y: "35" }, autoFocusSel: ".input", onHide: K, onFocus: () => X(!0), onBlur: () => {
65
+ X(!1), V(!1);
66
+ }, PaperProps: { elevation: U ? 3 : 1 }, ...P, children: p(me, { dividers: !0, ref: re, sx: { display: "flex", flexDirection: "column", paddingLeft: (e) => e.spacing(1.5), paddingRight: (e) => e.spacing(1.5) }, onKeyDown: (e) => {
67
+ if (e.key === "h" && e.ctrlKey) M(!0), s.current?.contains(document.activeElement) && u.current?.focus();
68
68
  else if (e.key === "f" && e.ctrlKey) s.current?.focus();
69
69
  else if (e.key === "c" && e.altKey) l((t) => {
70
70
  const n = { ...t };
@@ -82,10 +82,10 @@ const Ae = { "By Rows": !0, "By Columns": !1 }, ie = (E, h) => {
82
82
  });
83
83
  }
84
84
  e.preventDefault();
85
- }, children: [p(O, { sx: { display: "flex", flexDirection: "row", gap: (e) => e.spacing(1) }, children: [p(O, { sx: { display: "flex", flexDirection: "row", alignItems: "start", gap: (e) => e.spacing(0.25), paddingTop: "3px" }, children: [i(m, { selected: V, onSelectToggle: (e) => {
85
+ }, children: [p(O, { sx: { display: "flex", flexDirection: "row", gap: (e) => e.spacing(1) }, children: [p(O, { sx: { display: "flex", flexDirection: "row", alignItems: "start", gap: (e) => e.spacing(0.25), paddingTop: "3px" }, children: [i(m, { selected: B, onSelectToggle: (e) => {
86
86
  le(e);
87
87
  }, preventFocus: !0, label: "Toggle Additional Options", icon: x(i(xe, {})) }), i(m, { selected: f, onSelectToggle: (e) => {
88
- B(e);
88
+ M(e);
89
89
  }, preventFocus: !0, label: "Toggle Replace", icon: x(i(he, {})), shortcut: { key: f ? "F" : "H", modifiers: [y.Ctrl] } })] }), p(O, { sx: { display: "flex", flexDirection: "column", maxWidth: "100%", boxSizing: "border-box" }, children: [p(O, { sx: { display: "flex", flexDirection: "row", alignItems: "center" }, children: [i(_, { label: "Find", InputLabelProps: { shrink: !0 }, InputProps: { sx: { paddingRight: (e) => e.spacing(1), minWidth: Z > 460 ? "20em" : void 0, backgroundImage: `linear-gradient(${k("#fff", w(5))}, ${k("#fff", w(5))})` }, inputProps: { draggable: !1, ref: s, className: "input", autoFocus: !0, spellCheck: !1, autoComplete: "off", sx: { paddingTop: (e) => e.spacing(1.25), paddingBottom: (e) => e.spacing(0.75) } }, endAdornment: i(Oe, { sx: { transform: "scale(0.75) translateX(16px)" }, position: "end", children: p(O, { sx: { display: "flex", alignItems: "center", flexDirection: "row", gap: "1px" }, children: [i(m, { selected: o.findOptions.matchCase, onSelectToggle: (e) => {
90
90
  l((t) => {
91
91
  const n = { ...t };
@@ -101,12 +101,12 @@ const Ae = { "By Rows": !0, "By Columns": !1 }, ie = (E, h) => {
101
101
  const n = { ...t };
102
102
  return n.findOptions.useRegex = e, n;
103
103
  });
104
- }, label: "Use Regular Expression", shortcut: { key: "R", modifiers: [y.Alt] }, icon: x(i(be, {})) })] }) }) }, sx: { flex: "1 1 100%", marginRight: (e) => e.spacing(1), "& .MuiOutlinedInput-notchedOutline": { borderColor: (e) => U ? `${e.palette.error.main} !important` : void 0 }, "& .MuiInputLabel-outlined": { color: (e) => U ? `${e.palette.error.main} !important` : void 0 } }, value: o.findText ?? "", onChange: (e) => {
104
+ }, label: "Use Regular Expression", shortcut: { key: "R", modifiers: [y.Alt] }, icon: x(i(be, {})) })] }) }) }, sx: { flex: "1 1 100%", marginRight: (e) => e.spacing(1), "& .MuiOutlinedInput-notchedOutline": { borderColor: (e) => Q ? `${e.palette.error.main} !important` : void 0 }, "& .MuiInputLabel-outlined": { color: (e) => Q ? `${e.palette.error.main} !important` : void 0 } }, value: o.findText ?? "", onChange: (e) => {
105
105
  l((t) => {
106
106
  const n = { ...t };
107
107
  return n.findText = e.target.value, n;
108
108
  });
109
- }, onKeyDown: (e) => Q(e, !1), onContextMenu: (e) => {
109
+ }, onKeyDown: (e) => q(e, !1), onContextMenu: (e) => {
110
110
  e.stopPropagation();
111
111
  } }), i(m, { selected: o.findOptions.reverse, onSelectToggle: (e) => {
112
112
  F(!1, !1);
@@ -119,13 +119,13 @@ const Ae = { "By Rows": !0, "By Columns": !1 }, ie = (E, h) => {
119
119
  const n = { ...t };
120
120
  return n.replaceText = e.target.value, n;
121
121
  });
122
- }, onKeyDown: (e) => Q(e, !0), onContextMenu: (e) => {
122
+ }, onKeyDown: (e) => q(e, !0), onContextMenu: (e) => {
123
123
  e.stopPropagation();
124
124
  } }), i(m, { onSelectToggle: (e) => {
125
125
  F(!0, !0);
126
126
  }, touchRippleRef: j, label: "Replace", shortcut: { key: "Enter" }, icon: x(i(ve, {})), disabled: !o.findText }), i(m, { onSelectToggle: (e) => {
127
127
  F(!0, !0, !0);
128
- }, touchRippleRef: N, label: "Replace All", shortcut: { key: "Enter", modifiers: [y.Ctrl, y.Alt] }, icon: x(i(Te, {})), disabled: !o.findText })] }) })] })] }), i(ee, { in: V, timeout: ne, onExit: () => {
128
+ }, touchRippleRef: N, label: "Replace All", shortcut: { key: "Enter", modifiers: [y.Ctrl, y.Alt] }, icon: x(i(Te, {})), disabled: !o.findText })] }) })] })] }), i(ee, { in: B, timeout: ne, onExit: () => {
129
129
  s.current?.focus();
130
130
  }, children: p(O, { sx: { minHeight: "10px", flex: "1 1 100%", display: "flex", flexDirection: "column", gap: (e) => e.spacing(0.5), marginTop: (e) => e.spacing(1) }, children: [i(Re, { orientation: "horizontal", sx: { marginBottom: (e) => e.spacing(1.5) } }), p(O, { sx: { display: "flex", flexDirection: Z >= 413 ? "row" : "column", justifyContent: "space-evenly", alignItems: "center", rowGap: (e) => e.spacing(2) }, tabIndex: -1, children: [i(z, { label: "Within", value: o.scope, options: te, onSelect: (e) => {
131
131
  l((t) => {
@@ -1,6 +1,6 @@
1
1
  import C, { memo as ne, useState as _, useRef as m, useCallback as re, useEffect as S } from "react";
2
2
  /**
3
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.7
3
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.8
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.7
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.8
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,8 +1,8 @@
1
- import { J as Y } from "./f7jo5w0h4-vNZtjZ.mjs";
2
- import { c as x, b as f, r as I, t as Z, a as A, p as D, d as tt } from "./CrnqRK0Y_R59nkb0.mjs";
1
+ import { J as Y } from "./2RGq163l1wYJKGsa.mjs";
2
+ import { c as x, b as f, r as I, t as Z, a as A, p as D, d as tt } from "./CDkmbShJijwq4EBo.mjs";
3
3
  import { IFont as k, IAutoFilter as T, Sort as G, IRange as et, AddressUtils as W, IFill as C, IStyle as rt, ITextFrame as P, FormulaError as st, IBorder as V } from "@sheetxl/sdk";
4
4
  /**
5
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.7
5
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.8
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.
@@ -1,9 +1,9 @@
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 { 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 "./f7jo5w0h4-vNZtjZ.mjs";
4
+ import { w 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 "./2RGq163l1wYJKGsa.mjs";
5
5
  /**
6
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.7
6
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.8
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.
@@ -1,10 +1,10 @@
1
1
  import { jsx as H, jsxs as We } from "react/jsx-runtime";
2
- import { d as to, g as oo, u as no, s as ro, m as io, aT as Q, n as lo, p as so, aU as ao, aV as co, a as Z, aA as uo, aB as ho, av as wt, J as fo, B as he, T as po, aF as mo, a0 as go, a2 as vo, ay as fe, at as _o, au as So, $ as yo, aW as wo, aX as Co, aY as De, aZ as xo, a_ as Ro, a$ as bo, H as ye, b0 as To, b1 as zo, b2 as q, b3 as Io, b4 as V, b5 as Po } from "./f7jo5w0h4-vNZtjZ.mjs";
2
+ import { e as to, g as oo, u as no, s as ro, n as io, aT as Q, o as lo, q as so, aU as ao, aV as co, a as Z, aA as uo, aB as ho, av as wt, J as fo, B as he, T as po, aF as mo, a0 as go, a2 as vo, ay as fe, at as _o, au as So, $ as yo, aW as wo, aX as Co, aY as De, aZ as xo, a_ as Ro, a$ as bo, E as ye, b0 as To, b1 as zo, b2 as K, b3 as Io, b4 as V, b5 as Po } from "./2RGq163l1wYJKGsa.mjs";
3
3
  import * as x from "react";
4
4
  import Ct, { useState as pe, useMemo as ko, useEffect as je, cloneElement as Oo } from "react";
5
- import { f as N } from "./6w21A0XUkGBQu8-3.mjs";
5
+ import { h as N } from "./cSe92c0HnvbRwiVM.mjs";
6
6
  /**
7
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.7
7
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.8
8
8
  *
9
9
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
10
10
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -33,7 +33,7 @@ const Ao = to("MuiTableCell", ["root", "head", "body", "footer", "sizeSmall", "s
33
33
  function we(o) {
34
34
  return o !== "ownerState" && o !== "theme" && o !== "sx" && o !== "as";
35
35
  }
36
- function K(o, e) {
36
+ function q(o, e) {
37
37
  return e && o && typeof o == "object" && o.styles && !o.styles.startsWith("@layer") && (o.styles = `@layer ${e}{${String(o.styles)}}`), o;
38
38
  }
39
39
  function Wo(o) {
@@ -44,14 +44,14 @@ function ve(o, e, t) {
44
44
  if (Array.isArray(n)) return n.flatMap((r) => ve(o, r, t));
45
45
  if (Array.isArray(n?.variants)) {
46
46
  let r;
47
- if (n.isProcessed) r = t ? K(n.style, t) : n.style;
47
+ if (n.isProcessed) r = t ? q(n.style, t) : n.style;
48
48
  else {
49
49
  const { variants: l, ...i } = n;
50
- r = t ? K(q(i), t) : i;
50
+ r = t ? q(K(i), t) : i;
51
51
  }
52
52
  return xt(o, n.variants, [r], t);
53
53
  }
54
- return n?.isProcessed ? t ? K(q(n.style), t) : n.style : t ? K(q(n), t) : n;
54
+ return n?.isProcessed ? t ? q(K(n.style), t) : n.style : t ? q(K(n), t) : n;
55
55
  }
56
56
  function xt(o, e, t = [], n = void 0) {
57
57
  let r;
@@ -60,7 +60,7 @@ function xt(o, e, t = [], n = void 0) {
60
60
  if (typeof i.props == "function") {
61
61
  if (r ??= { ...o, ...o.ownerState, ownerState: o.ownerState }, !i.props(r)) continue;
62
62
  } else for (const a in i.props) if (o[a] !== i.props[a] && o.ownerState?.[a] !== i.props[a]) continue e;
63
- typeof i.style == "function" ? (r ??= { ...o, ...o.ownerState, ownerState: o.ownerState }, t.push(n ? K(q(i.style(r)), n) : i.style(r))) : t.push(n ? K(q(i.style), n) : i.style);
63
+ typeof i.style == "function" ? (r ??= { ...o, ...o.ownerState, ownerState: o.ownerState }, t.push(n ? q(K(i.style(r)), n) : i.style(r))) : t.push(n ? q(K(i.style), n) : i.style);
64
64
  }
65
65
  return t;
66
66
  }
@@ -89,13 +89,13 @@ const jo = function(o = {}) {
89
89
  };
90
90
  if (zo(b)) {
91
91
  const R = function(z) {
92
- const { variants: I, ...k } = z, P = { variants: I, style: q(k), isProcessed: !0 };
92
+ const { variants: I, ...k } = z, P = { variants: I, style: K(k), isProcessed: !0 };
93
93
  return P.style === k || I && I.forEach((T) => {
94
- typeof T.style != "function" && (T.style = q(T.style));
94
+ typeof T.style != "function" && (T.style = K(T.style));
95
95
  }), P;
96
96
  }(b);
97
97
  return function(z) {
98
- return R.variants ? ve(z, R, z.theme.modularCssLayers ? v : void 0) : z.theme.modularCssLayers ? K(R.style, v) : R.style;
98
+ return R.variants ? ve(z, R, z.theme.modularCssLayers ? v : void 0) : z.theme.modularCssLayers ? q(R.style, v) : R.style;
99
99
  };
100
100
  }
101
101
  return b;
@@ -371,7 +371,7 @@ function $e(o, e) {
371
371
  }
372
372
  return t;
373
373
  }
374
- function Ke(o) {
374
+ function qe(o) {
375
375
  for (var e = 1; e < arguments.length; e++) {
376
376
  var t = arguments[e] != null ? arguments[e] : {};
377
377
  e % 2 ? $e(Object(t), !0).forEach(function(n) {
@@ -415,7 +415,7 @@ var Ot = function() {
415
415
  this._detectElementResize && this._parentNode && this._detectElementResize.removeResizeListener(this._parentNode, this._onResize);
416
416
  } }, { key: "render", value: function() {
417
417
  var e = this.props, t = e.children, n = e.className, r = e.disableHeight, l = e.disableWidth, i = e.style, a = this.state, s = a.height, c = a.width, d = { overflow: "visible" }, h = {};
418
- return r || (d.height = 0, h.height = s), l || (d.width = 0, h.width = c), x.createElement("div", { className: n, ref: this._setRef, style: Ke(Ke({}, d), i) }, t(h));
418
+ return r || (d.height = 0, h.height = s), l || (d.width = 0, h.width = c), x.createElement("div", { className: n, ref: this._setRef, style: qe(qe({}, d), i) }, t(h));
419
419
  } }]);
420
420
  }();
421
421
  function Mt() {
@@ -491,7 +491,7 @@ function Te(o) {
491
491
  }
492
492
  return me;
493
493
  }
494
- function qe(o, e) {
494
+ function Ke(o, e) {
495
495
  var t = Object.keys(o);
496
496
  if (Object.getOwnPropertySymbols) {
497
497
  var n = Object.getOwnPropertySymbols(o);
@@ -504,9 +504,9 @@ function qe(o, e) {
504
504
  function Xe(o) {
505
505
  for (var e = 1; e < arguments.length; e++) {
506
506
  var t = arguments[e] != null ? arguments[e] : {};
507
- e % 2 ? qe(Object(t), !0).forEach(function(n) {
507
+ e % 2 ? Ke(Object(t), !0).forEach(function(n) {
508
508
  p(o, n, t[n]);
509
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(o, Object.getOwnPropertyDescriptors(t)) : qe(Object(t)).forEach(function(n) {
509
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(o, Object.getOwnPropertyDescriptors(t)) : Ke(Object(t)).forEach(function(n) {
510
510
  Object.defineProperty(o, n, Object.getOwnPropertyDescriptor(t, n));
511
511
  });
512
512
  }
@@ -878,11 +878,11 @@ function et(o) {
878
878
  var e = o.cellSize, t = o.cellSizeAndPositionManager, n = o.previousCellsCount, r = o.previousCellSize, l = o.previousScrollToAlignment, i = o.previousScrollToIndex, a = o.previousSize, s = o.scrollOffset, c = o.scrollToAlignment, d = o.scrollToIndex, h = o.size, f = o.sizeJustIncreasedFromZero, u = o.updateScrollIndexCallback, v = t.getCellCount(), m = d >= 0 && d < v;
879
879
  m && (h !== a || f || !r || typeof e == "number" && e !== r || c !== l || d !== i) ? u(d) : !m && v > 0 && (h < a || v < n) && s > t.getTotalSize() - h && u(v - 1);
880
880
  }
881
- var Ko = (F = typeof window < "u" ? window : typeof self < "u" ? self : {}).requestAnimationFrame || F.webkitRequestAnimationFrame || F.mozRequestAnimationFrame || F.oRequestAnimationFrame || F.msRequestAnimationFrame || function(o) {
881
+ var qo = (F = typeof window < "u" ? window : typeof self < "u" ? self : {}).requestAnimationFrame || F.webkitRequestAnimationFrame || F.mozRequestAnimationFrame || F.oRequestAnimationFrame || F.msRequestAnimationFrame || function(o) {
882
882
  return F.setTimeout(o, 1e3 / 60);
883
- }, qo = F.cancelAnimationFrame || F.webkitCancelAnimationFrame || F.mozCancelAnimationFrame || F.oCancelAnimationFrame || F.msCancelAnimationFrame || function(o) {
883
+ }, Ko = F.cancelAnimationFrame || F.webkitCancelAnimationFrame || F.mozCancelAnimationFrame || F.oCancelAnimationFrame || F.msCancelAnimationFrame || function(o) {
884
884
  F.clearTimeout(o);
885
- }, tt = Ko, Xo = qo, oe = function(o) {
885
+ }, tt = qo, Xo = Ko, oe = function(o) {
886
886
  return Xo(o.id);
887
887
  }, Ge = function(o, e) {
888
888
  var t;
@@ -1788,20 +1788,20 @@ function $t(o) {
1788
1788
  var e = o.sortDirection, t = N("ReactVirtualized__Table__sortableHeaderIcon", { "ReactVirtualized__Table__sortableHeaderIcon--ASC": e === de, "ReactVirtualized__Table__sortableHeaderIcon--DESC": e === ke });
1789
1789
  return x.createElement("svg", { className: t, width: 18, height: 18, viewBox: "0 0 24 24" }, e === de ? x.createElement("path", { d: "M7 14l5-5 5 5z" }) : x.createElement("path", { d: "M7 10l5 5 5-5z" }), x.createElement("path", { d: "M0 0h24v24H0z", fill: "none" }));
1790
1790
  }
1791
- function Kt() {
1791
+ function qt() {
1792
1792
  try {
1793
1793
  var o = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
1794
1794
  }));
1795
1795
  } catch {
1796
1796
  }
1797
- return (Kt = function() {
1797
+ return (qt = function() {
1798
1798
  return !!o;
1799
1799
  })();
1800
1800
  }
1801
1801
  $t.propTypes = {};
1802
1802
  var Se = function() {
1803
1803
  function o() {
1804
- return A(this, o), e = this, n = arguments, t = O(t = o), W(e, Kt() ? Reflect.construct(t, n || [], O(e).constructor) : t.apply(e, n));
1804
+ return A(this, o), e = this, n = arguments, t = O(t = o), W(e, qt() ? Reflect.construct(t, n || [], O(e).constructor) : t.apply(e, n));
1805
1805
  var e, t, n;
1806
1806
  }
1807
1807
  return D(o, x.Component), E(o);
@@ -1827,13 +1827,13 @@ function U(o) {
1827
1827
  }
1828
1828
  return o;
1829
1829
  }
1830
- function qt() {
1830
+ function Kt() {
1831
1831
  try {
1832
1832
  var o = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
1833
1833
  }));
1834
1834
  } catch {
1835
1835
  }
1836
- return (qt = function() {
1836
+ return (Kt = function() {
1837
1837
  return !!o;
1838
1838
  })();
1839
1839
  }
@@ -1850,7 +1850,7 @@ p(Se, "defaultProps", { cellDataGetter: function(o) {
1850
1850
  var Oe = function() {
1851
1851
  function o(e) {
1852
1852
  var t, n, r, l;
1853
- return A(this, o), n = this, l = [e], r = O(r = o), (t = W(n, qt() ? Reflect.construct(r, l || [], O(n).constructor) : r.apply(n, l))).state = { scrollbarWidth: 0 }, t._createColumn = t._createColumn.bind(t), t._createRow = t._createRow.bind(t), t._onScroll = t._onScroll.bind(t), t._onSectionRendered = t._onSectionRendered.bind(t), t._setRef = t._setRef.bind(t), t._setGridElementRef = t._setGridElementRef.bind(t), t;
1853
+ return A(this, o), n = this, l = [e], r = O(r = o), (t = W(n, Kt() ? Reflect.construct(r, l || [], O(n).constructor) : r.apply(n, l))).state = { scrollbarWidth: 0 }, t._createColumn = t._createColumn.bind(t), t._createRow = t._createRow.bind(t), t._onScroll = t._onScroll.bind(t), t._onSectionRendered = t._onSectionRendered.bind(t), t._setRef = t._setRef.bind(t), t._setGridElementRef = t._setGridElementRef.bind(t), t;
1854
1854
  }
1855
1855
  return D(o, x.PureComponent), E(o, [{ key: "forceUpdateGrid", value: function() {
1856
1856
  this.Grid && this.Grid.forceUpdate();
@@ -2147,7 +2147,7 @@ function an(o) {
2147
2147
  return v;
2148
2148
  }, [n, e]), [s, c] = pe(null);
2149
2149
  je(() => {
2150
- import("./CHsVgElx78EEmCPY.mjs").then((u) => {
2150
+ import("./BEFQcBJ71bA297Zu.mjs").then((u) => {
2151
2151
  c(new u.default(a, { threshold: 0, ignoreLocation: !0, keys: ["label", "description"] }));
2152
2152
  });
2153
2153
  }, [a]);
@@ -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 { v as r, b as S, B as V, F as $, T as z, a as h, ay as C } from "./f7jo5w0h4-vNZtjZ.mjs";
3
+ import { w as r, b as S, B as V, F as $, T as z, a as h, ay as C } from "./2RGq163l1wYJKGsa.mjs";
4
4
  /**
5
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.7
5
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.8
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: 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();
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, ...T } = O, g = M(() => {
12
+ const n = w ?? y?.()?.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), [v, w] = x(!1), f = j(async (n, t) => null, []), P = r(async (n) => {
22
+ }, []), [e, b] = x(g), [k, P] = x(!1), f = j(async (n, t) => null, []), v = r(async (n) => {
23
23
  const t = e === "" ? [] : e.split(`
24
24
  `);
25
25
  if (n !== s) {
@@ -29,7 +29,7 @@ const G = ["Ok", "Cancel"], U = E((O) => {
29
29
  }
30
30
  u?.(n, n === s, n === c), p?.();
31
31
  }, [e, m, p, u, c, s]), D = r((n) => {
32
- k(n.target.value), f(n.target.value, null);
32
+ b(n.target.value), f(n.target.value, null);
33
33
  }, [l]), I = r(async (n) => {
34
34
  let t = await Promise.resolve(l?.(n));
35
35
  try {
@@ -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) => 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);
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 }, ...T, 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
+ k || n.target?.select(), P(!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,7 +1,7 @@
1
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 "./f7jo5w0h4-vNZtjZ.mjs";
2
+ import { J as cs } from "./2RGq163l1wYJKGsa.mjs";
3
3
  /**
4
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.7
4
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.8
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.
@@ -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("./B6OcmPVBCjTZiEO8.mjs"), m = import("./C8PrD3vZULKFp7HL.mjs");
900
+ const { password: s, onWarning: o, createWorkbookOptions: n = {}, ...a } = t ?? {}, c = import("./DyUvHYGMNA9W2zL6.mjs"), m = import("./BEIn7yNWsHNJisB6.mjs");
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("./CxesFvTfE_FHHeOa.mjs").then((u) => u.i));
907
+ v || (b = import("./DnWiOUNTPvi_llPT.mjs").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]);
@@ -1311,7 +1311,7 @@ const Ks = (i, t, s) => {
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: J } = await import("./fLUOP3GBZp9qFVpK.mjs");
1314
+ const { ReadableStream: J } = await import("./CjVsKZEPAncg5mIk.mjs");
1315
1315
  globalThis.ReadableStream = J;
1316
1316
  } else console.warn("Browser does not support ReadableStream; consider loading a polyfill.");
1317
1317
  })();
@@ -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("./B6OcmPVBCjTZiEO8.mjs"), o = await i.toJSON(!0), n = s.utils.book_new();
1412
+ const s = await import("./DyUvHYGMNA9W2zL6.mjs"), 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);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.7
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.8
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,20 +1,20 @@
1
1
  import { jsx as o, jsxs as A } from "react/jsx-runtime";
2
2
  import { memo as E, useMemo as b, useState as g, useCallback as O } from "react";
3
- import { v as f, b as S, B as U, F as P, T as D, a as l, ay as p } from "./f7jo5w0h4-vNZtjZ.mjs";
3
+ import { w as f, b as S, B as U, F as P, T as D, a as l, ay as p } from "./2RGq163l1wYJKGsa.mjs";
4
4
  /**
5
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.7
5
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.8
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 V = ["Ok", "Cancel"], J = E((F) => {
11
- const { initialHyperlink: n = null, initialDisplay: v = null, onUpdateHyperlink: m, context: s, onOption: x, onValidateOption: r, onDone: d, options: h = V, defaultOption: c = h?.[0], cancelOption: i = "Cancel", sx: H, ...I } = F, w = b(() => (n ?? s?.()?.getHyperlink()) !== null, []), y = b(() => {
11
+ const { initialHyperlink: n = null, initialDisplay: w = null, onUpdateHyperlink: m, context: s, onOption: x, onValidateOption: r, onDone: d, options: h = V, defaultOption: c = h?.[0], cancelOption: i = "Cancel", sx: H, ...I } = F, v = b(() => (n ?? s?.()?.getHyperlink()) !== null, []), y = b(() => {
12
12
  let a = null, t = null;
13
13
  n && (typeof n == "string" ? t = n : a = n);
14
14
  const C = a ?? s?.()?.getHyperlink();
15
15
  return { address: t ?? C?.getAddress() ?? "", textToDisplay: C?.getDisplayText() ?? "" };
16
16
  }, [n, s]), [e, M] = g(y.address), [u, B] = g(() => {
17
- const a = s?.().toTextUnformatted() ?? v;
17
+ const a = s?.().toTextUnformatted() ?? w;
18
18
  return a === y.address ? "" : a;
19
19
  }), [$, k] = g(!1), L = O((a) => {
20
20
  B(a.target.value);
@@ -30,7 +30,7 @@ const V = ["Ok", "Cancel"], J = E((F) => {
30
30
  }
31
31
  return t ?? !0;
32
32
  }, [r]);
33
- return o(S, { title: (w ? "Edit" : "Insert") + " Link", options: h, onDone: d, onOption: (a) => W(a), onValidateOption: z, defaultOption: c, cancelOption: i, autoFocusSel: ".autoFocus", sx: { width: "480px", ...H }, ...I, children: A(U, { sx: { paddingTop: (a) => a.spacing(1), paddingBottom: (a) => a.spacing(0), rowGap: (a) => a.spacing(1), display: "flex", flexDirection: "column" }, children: [o(P, { sx: { paddingTop: (a) => a.spacing(1.5), minWidth: 135, width: "100%" }, size: "small", children: o(D, { label: "Address", placeholder: "Enter a url or cell reference.", onFocus: (a) => {
33
+ return o(S, { title: (v ? "Edit" : "Insert") + " Link", options: h, onDone: d, onOption: (a) => W(a), onValidateOption: z, defaultOption: c, cancelOption: i, autoFocusSel: ".autoFocus", sx: { width: "480px", ...H }, ...I, children: A(U, { sx: { paddingTop: (a) => a.spacing(1), paddingBottom: (a) => a.spacing(0), rowGap: (a) => a.spacing(1), display: "flex", flexDirection: "column" }, children: [o(P, { sx: { paddingTop: (a) => a.spacing(1.5), minWidth: 135, width: "100%" }, size: "small", children: o(D, { label: "Address", placeholder: "Enter a url or cell reference.", onFocus: (a) => {
34
34
  $ || a.target?.select(), k(!0);
35
35
  }, 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(${l("#fff", p(5))}, ${l("#fff", p(5))})` } } }, value: e, onChange: j, onContextMenu: (a) => {
36
36
  a.stopPropagation();
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.7
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.8
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,8 +1,8 @@
1
1
  import { jsx as z, jsxs as lt } from "react/jsx-runtime";
2
2
  import k, { memo as es, useState as pe, useCallback as de, useLayoutEffect as rs, PureComponent as mt, Component as _t, isValidElement as ns } from "react";
3
- import { M as os, E as as, I as is, B as us, P as Su, c as ss, S as xt } from "./f7jo5w0h4-vNZtjZ.mjs";
3
+ import { M as os, c as as, I as is, B as us, P as Su, R as ss, d as xt } from "./2RGq163l1wYJKGsa.mjs";
4
4
  /**
5
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.7
5
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.8
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.
@@ -1,8 +1,8 @@
1
1
  import { jsx as i } from "react/jsx-runtime";
2
2
  import { memo as z, forwardRef as E, useState as s } from "react";
3
- import { k as t, i as G, b as K, B as R, F as W, T as Y, a as x, G as q, Y as y } from "./f7jo5w0h4-vNZtjZ.mjs";
3
+ import { k as t, i as G, b as K, B as R, F as W, T as Y, a as x, G as q, Y as y } from "./2RGq163l1wYJKGsa.mjs";
4
4
  /**
5
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.7
5
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.8
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.7
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.8
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("./f7jo5w0h4-vNZtjZ.mjs").then((e) => e.b7)]);
16
+ const o = await Promise.all([import("react"), import("react/jsx-runtime"), import("react-dom"), import("react-dom/client"), import("./2RGq163l1wYJKGsa.mjs").then((e) => e.b7)]);
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 {