@sheetxl/studio-vanilla 0.1.98

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 (184) hide show
  1. package/LICENSE.md +11 -0
  2. package/README.md +100 -0
  3. package/build/browser/cjs/1q6_3-jGNZllbF3R.cjs +6 -0
  4. package/build/browser/cjs/5KDindu3wyLVvG7F.cjs +6 -0
  5. package/build/browser/cjs/87m5i_TKPbDn6tke.cjs +30 -0
  6. package/build/browser/cjs/B0L2YQ9agsyHWOu2.cjs +6 -0
  7. package/build/browser/cjs/B3HvYH5kqySWdJ0f.cjs +6 -0
  8. package/build/browser/cjs/B6AOUko0HYRy2MPw.cjs +6 -0
  9. package/build/browser/cjs/BC5MKXBhHGdPeiJ3.cjs +21 -0
  10. package/build/browser/cjs/BG0RxkPyZY6Be7Lk.cjs +6 -0
  11. package/build/browser/cjs/BJsJYwvFiJBFxTov.cjs +6 -0
  12. package/build/browser/cjs/BMVMyi5NiMBuQrl9.cjs +52 -0
  13. package/build/browser/cjs/BS_QXQWoKRl_7MiR.cjs +17 -0
  14. package/build/browser/cjs/BZPhmHWsFBTIA3BQ.cjs +210 -0
  15. package/build/browser/cjs/B_5ro-VEKfZDMSn_.cjs +6 -0
  16. package/build/browser/cjs/B_c3i0fXSlX7dH12.cjs +1521 -0
  17. package/build/browser/cjs/BarieqwSecnaFn0d.cjs +6 -0
  18. package/build/browser/cjs/BfNo_1u55uW2HhAa.cjs +6 -0
  19. package/build/browser/cjs/Bl6FyLoMkFiQqhvc.cjs +7 -0
  20. package/build/browser/cjs/Bsyzteo6tD31A45e.cjs +11 -0
  21. package/build/browser/cjs/Btzizuqo7zQ_grdS.cjs +16 -0
  22. package/build/browser/cjs/BxBOlXY9P3Ymi6oT.cjs +6 -0
  23. package/build/browser/cjs/C0AP85yKTJU5XzPW.cjs +6 -0
  24. package/build/browser/cjs/C0Pjx18ua-OCdtpy.cjs +6 -0
  25. package/build/browser/cjs/CA2wSX6txFrM5nXD.cjs +6 -0
  26. package/build/browser/cjs/CB3jEtNo5ZsjfE5p.cjs +6 -0
  27. package/build/browser/cjs/CDiYZ1cSoLW8U5Mz.cjs +6 -0
  28. package/build/browser/cjs/CHD5c5FdcMm6vLyG.cjs +155 -0
  29. package/build/browser/cjs/COCpf8tSdkj2O19V.cjs +134 -0
  30. package/build/browser/cjs/CTV1KRGhkieiY4Rf.cjs +42 -0
  31. package/build/browser/cjs/CUw8AoM-rVbp1W3s.cjs +6 -0
  32. package/build/browser/cjs/CVTydWBioXRZeoNf.cjs +6 -0
  33. package/build/browser/cjs/C_uXPPlfjY68-QA8.cjs +6 -0
  34. package/build/browser/cjs/CaNR-X0TWW9OF1S0.cjs +33 -0
  35. package/build/browser/cjs/CiySKEsfDr8XnkZh.cjs +6 -0
  36. package/build/browser/cjs/CtBikymnhpcCzP3X.cjs +6 -0
  37. package/build/browser/cjs/CyF7bxA0DO13ETpx.cjs +30 -0
  38. package/build/browser/cjs/D-vkFAlNHXwUvmUT.cjs +16 -0
  39. package/build/browser/cjs/D2OU29-ZPOAWFVJB.cjs +22 -0
  40. package/build/browser/cjs/DFX31uXp449or-Xs.cjs +6 -0
  41. package/build/browser/cjs/DLqNXuHYff_kQuj1.cjs +6 -0
  42. package/build/browser/cjs/DMKZDMHHXLePvLy3.cjs +524 -0
  43. package/build/browser/cjs/DP8biA0GQqyPKLyq.cjs +6 -0
  44. package/build/browser/cjs/DcYrNx0uy99yQNMl.cjs +21 -0
  45. package/build/browser/cjs/Dcyg_YxTfBgi_6cp.cjs +26 -0
  46. package/build/browser/cjs/DeR9YbwO2xDBKVWN.cjs +21 -0
  47. package/build/browser/cjs/DfNbgyjaLMn81dqP.cjs +6 -0
  48. package/build/browser/cjs/DirazCTz5IsFWrUv.cjs +22 -0
  49. package/build/browser/cjs/Dix4vuDuOzj4WGCJ.cjs +19 -0
  50. package/build/browser/cjs/DqbTRjj97q78RuGC.cjs +6 -0
  51. package/build/browser/cjs/Dy28YI90qj65PHFO.cjs +17 -0
  52. package/build/browser/cjs/Nkl33Tt1_oEy9kjk.cjs +6 -0
  53. package/build/browser/cjs/S1S-AvD0w8s-LV8O.cjs +6 -0
  54. package/build/browser/cjs/bnPgbgGBTq7DESzd.cjs +6 -0
  55. package/build/browser/cjs/d9tJGmGw-3KZjpAx.cjs +17 -0
  56. package/build/browser/cjs/dke2gbIUS44QXwEl.cjs +6 -0
  57. package/build/browser/cjs/index.cjs +6 -0
  58. package/build/browser/cjs/mPpQR06-jf99r2jM.cjs +6 -0
  59. package/build/browser/cjs/wq0Sm3fu9rxt43OK.cjs +6 -0
  60. package/build/browser/cjs/xM54FRmGddZFVTTI.cjs +6 -0
  61. package/build/browser/cjs/xgGpGg5b8fu3GAnL.cjs +33 -0
  62. package/build/browser/esm/1Jl9rrRJdbPsUP_1.mjs +13222 -0
  63. package/build/browser/esm/3RX6dP_O-47yXKHQ.mjs +1492 -0
  64. package/build/browser/esm/5F5MTh8R-sIiPq0h.mjs +22 -0
  65. package/build/browser/esm/B3_l6_TLa9ImyRmW.mjs +5572 -0
  66. package/build/browser/esm/B7odLLxNfEmKGWX6.mjs +49 -0
  67. package/build/browser/esm/BAjCWyggrIkCz6wr.mjs +22 -0
  68. package/build/browser/esm/BE4io65W825i_dzC.mjs +58 -0
  69. package/build/browser/esm/BEZ41ST3hkC4W-_9.mjs +22 -0
  70. package/build/browser/esm/BKkD05hqNTBap4Oc.mjs +22 -0
  71. package/build/browser/esm/BOiR2dTlvcgYjz8P.mjs +402 -0
  72. package/build/browser/esm/BOjAZRs_NVerYv4t.mjs +22 -0
  73. package/build/browser/esm/BRkMPyIUXMixnL8d.mjs +22 -0
  74. package/build/browser/esm/BSS_RvWzDRX8_EJd.mjs +1684 -0
  75. package/build/browser/esm/BXC9rQVV2gq5x8br.mjs +22 -0
  76. package/build/browser/esm/BYmMkbrRTsNuR3aY.mjs +1358 -0
  77. package/build/browser/esm/BaSzK17p3_gCvNVV.mjs +24 -0
  78. package/build/browser/esm/BdtlmF31h4Y7RgUj.mjs +22 -0
  79. package/build/browser/esm/Be3zRnYQ13HUcsRW.mjs +150 -0
  80. package/build/browser/esm/BiSk8LRROMF0Bl4-.mjs +92 -0
  81. package/build/browser/esm/BlfHOASL_bJ6Hy0y.mjs +40 -0
  82. package/build/browser/esm/C-jC-wgAoMOxrVvv.mjs +1377 -0
  83. package/build/browser/esm/C0Lw5hMgKbooA6Jl.mjs +22 -0
  84. package/build/browser/esm/C32FpMEFLbDnBtO3.mjs +22 -0
  85. package/build/browser/esm/C9uN8RnLjnGSimTA.mjs +439 -0
  86. package/build/browser/esm/CB0UHheTgg0735hj.mjs +52 -0
  87. package/build/browser/esm/CU55zbw8Xbwap6Tl.mjs +22 -0
  88. package/build/browser/esm/CWRCdxOg103AFis3.mjs +3926 -0
  89. package/build/browser/esm/CpJdzwQYkBw7IPnN.mjs +22 -0
  90. package/build/browser/esm/CprFmxuwGvaUtLG2.mjs +22 -0
  91. package/build/browser/esm/CtZxtE4tRmMGFT5o.mjs +22 -0
  92. package/build/browser/esm/D-Oj36iQScXAKSMA.mjs +53 -0
  93. package/build/browser/esm/D2yyUr4KbJEFsxKC.mjs +21 -0
  94. package/build/browser/esm/D8HF2X8hvAkV29oq.mjs +55 -0
  95. package/build/browser/esm/DCauh523moR7slpq.mjs +22 -0
  96. package/build/browser/esm/DIA-Gy5mdjefjUaA.mjs +22 -0
  97. package/build/browser/esm/DJjdfX9aUyVGMkri.mjs +47 -0
  98. package/build/browser/esm/DMWb8cCaNVRcm-tT.mjs +2352 -0
  99. package/build/browser/esm/DP7HVKT0w_4L2vMQ.mjs +844 -0
  100. package/build/browser/esm/DToiYU1jffn1g7TH.mjs +639 -0
  101. package/build/browser/esm/DgSuz0WKGy36a2cp.mjs +22 -0
  102. package/build/browser/esm/Dgw3FTbNKuo2CIxP.mjs +22 -0
  103. package/build/browser/esm/DnV_Y9xoMPSav0-o.mjs +56 -0
  104. package/build/browser/esm/Do7pHqmnwO45_ymt.mjs +22 -0
  105. package/build/browser/esm/DqvZDTDIyX-qv4r9.mjs +29 -0
  106. package/build/browser/esm/Ds8V__cRAClpmjZn.mjs +1714 -0
  107. package/build/browser/esm/DtQdtXJDZgNEIz9d.mjs +440 -0
  108. package/build/browser/esm/DtpBQqwK7XXBMTB-.mjs +1598 -0
  109. package/build/browser/esm/DuzJ1k0LbZ29l8oN.mjs +945 -0
  110. package/build/browser/esm/Dxl4WJXcEhDAw_yE.mjs +42 -0
  111. package/build/browser/esm/LblYfFi1ns9H1ueN.mjs +28 -0
  112. package/build/browser/esm/NBkvFJzfLU32Pkup.mjs +496 -0
  113. package/build/browser/esm/SrBQAOpMKiDW0mGB.mjs +22 -0
  114. package/build/browser/esm/VLa1cYMb7h6UD253.mjs +64 -0
  115. package/build/browser/esm/YOEDF-U1QTzbXeMV.mjs +3826 -0
  116. package/build/browser/esm/a3tuiJ83MwzLMWaL.mjs +22 -0
  117. package/build/browser/esm/ai2Jw3PRL29E1T8h.mjs +22 -0
  118. package/build/browser/esm/ajBoEmoL9hCBQYYm.mjs +2175 -0
  119. package/build/browser/esm/index.mjs +13 -0
  120. package/build/browser/esm/k9kWmEk0ZT8y9Gii.mjs +48740 -0
  121. package/build/cdn/assets/1Jl9rrRJdbPsUP_1.js +13222 -0
  122. package/build/cdn/assets/4u46flV9M6Bwb7d3.js +29 -0
  123. package/build/cdn/assets/5F5MTh8R-sIiPq0h.js +22 -0
  124. package/build/cdn/assets/B3oMCEEls1lRVrGd.js +5572 -0
  125. package/build/cdn/assets/B4QYfmNd300iFLAx.js +945 -0
  126. package/build/cdn/assets/BAjCWyggrIkCz6wr.js +22 -0
  127. package/build/cdn/assets/BEZ41ST3hkC4W-_9.js +22 -0
  128. package/build/cdn/assets/BJIsFTUdHtUKsFJs.js +28 -0
  129. package/build/cdn/assets/BKkD05hqNTBap4Oc.js +22 -0
  130. package/build/cdn/assets/BOiR2dTlvcgYjz8P.js +402 -0
  131. package/build/cdn/assets/BOjAZRs_NVerYv4t.js +22 -0
  132. package/build/cdn/assets/BPFW3UexkNNh1lLK.js +2352 -0
  133. package/build/cdn/assets/BRkMPyIUXMixnL8d.js +22 -0
  134. package/build/cdn/assets/BSS_RvWzDRX8_EJd.js +1684 -0
  135. package/build/cdn/assets/BXC9rQVV2gq5x8br.js +22 -0
  136. package/build/cdn/assets/BY2sO3ExW1ShzKnX.js +1714 -0
  137. package/build/cdn/assets/BYmMkbrRTsNuR3aY.js +1358 -0
  138. package/build/cdn/assets/BaSzK17p3_gCvNVV.js +24 -0
  139. package/build/cdn/assets/BbpmcI-KEp3PqrdL.js +496 -0
  140. package/build/cdn/assets/BdtlmF31h4Y7RgUj.js +22 -0
  141. package/build/cdn/assets/BjgtkLR9U00HgSRn.js +58 -0
  142. package/build/cdn/assets/BlfHOASL_bJ6Hy0y.js +40 -0
  143. package/build/cdn/assets/C-jC-wgAoMOxrVvv.js +1377 -0
  144. package/build/cdn/assets/C0Lw5hMgKbooA6Jl.js +22 -0
  145. package/build/cdn/assets/C32FpMEFLbDnBtO3.js +22 -0
  146. package/build/cdn/assets/C7CDwp-nhN2WFzUs.js +844 -0
  147. package/build/cdn/assets/C9uN8RnLjnGSimTA.js +439 -0
  148. package/build/cdn/assets/CEq_C1Sim0pQ6fj0.js +56 -0
  149. package/build/cdn/assets/CLdcRW7BQK3JCguC.js +48587 -0
  150. package/build/cdn/assets/CU55zbw8Xbwap6Tl.js +22 -0
  151. package/build/cdn/assets/C_L_pvQemfhI00iS.js +150 -0
  152. package/build/cdn/assets/CkhSGQneqlTRflfQ.js +47 -0
  153. package/build/cdn/assets/CpJdzwQYkBw7IPnN.js +22 -0
  154. package/build/cdn/assets/CprFmxuwGvaUtLG2.js +22 -0
  155. package/build/cdn/assets/CtZxtE4tRmMGFT5o.js +22 -0
  156. package/build/cdn/assets/CvbyGDitUPabmYBl.js +64 -0
  157. package/build/cdn/assets/D06aHumWZLILF489.js +3926 -0
  158. package/build/cdn/assets/D2pceTwrS_dagByu.js +21 -0
  159. package/build/cdn/assets/D4ZBjoUG2QO1RO3t.js +1492 -0
  160. package/build/cdn/assets/DARyg_kqL8Eu81Fa.js +2175 -0
  161. package/build/cdn/assets/DCauh523moR7slpq.js +22 -0
  162. package/build/cdn/assets/DIA-Gy5mdjefjUaA.js +22 -0
  163. package/build/cdn/assets/DLHK1pMyNN3B2g-j.js +52 -0
  164. package/build/cdn/assets/DMoEzt3UKZedfext.js +1598 -0
  165. package/build/cdn/assets/DMwOymY267-LxmJ_.js +49 -0
  166. package/build/cdn/assets/DToiYU1jffn1g7TH.js +639 -0
  167. package/build/cdn/assets/DUUO52IRQCve_iCM.js +440 -0
  168. package/build/cdn/assets/DgSuz0WKGy36a2cp.js +22 -0
  169. package/build/cdn/assets/Dgw3FTbNKuo2CIxP.js +22 -0
  170. package/build/cdn/assets/Do7pHqmnwO45_ymt.js +22 -0
  171. package/build/cdn/assets/Dxl4WJXcEhDAw_yE.js +42 -0
  172. package/build/cdn/assets/QXzPuadwi3BBJC2-.js +53 -0
  173. package/build/cdn/assets/SrBQAOpMKiDW0mGB.js +22 -0
  174. package/build/cdn/assets/W3SqjN4yIzwYTvvj.js +55 -0
  175. package/build/cdn/assets/YOEDF-U1QTzbXeMV.js +3826 -0
  176. package/build/cdn/assets/a3tuiJ83MwzLMWaL.js +22 -0
  177. package/build/cdn/assets/ai2Jw3PRL29E1T8h.js +22 -0
  178. package/build/cdn/assets/fWcbv7BXhriCYeod.js +92 -0
  179. package/build/cdn/index.js +171 -0
  180. package/build/cdn/loader.js +6 -0
  181. package/build/licenses/dependencies.txt +1 -0
  182. package/build/package.json +61 -0
  183. package/build/types/index.d.ts +151 -0
  184. package/package.json +92 -0
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.0.0
3
+ *
4
+ * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
+ * License: The license can be found at https://www.sheetxl.com/license.
6
+ */
7
+ /**
8
+ * @license @sheetxl/studio-mui - Studio - Spreadsheet UI built with SheetXL SDK using React & MUI. - v0.0.0
9
+ *
10
+ * (C) 2025-present SheetXL Inc. & Michael T. Ford
11
+ * License: The license can be found at https://www.sheetxl.com/license.
12
+ */
13
+ /**
14
+ * @license @sheetxl/sdk - A high-performance, embeddable spreadsheet engine. - v0.0.0
15
+ *
16
+ * (C) 2025-present SheetXL Inc. & Michael T. Ford
17
+ * License: The license can be found at https://www.sheetxl.com/license.
18
+ */
19
+ const t = { CONVERT: { s: "Converts a number from one measurement system to another", p: { number: { d: "is the value in from_unit to convert." }, fromUnit: { d: "is the units for number." }, toUnit: { d: "is the units for the result" } } } };
20
+ export {
21
+ t as default
22
+ };
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.0.0
3
+ *
4
+ * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
+ * License: The license can be found at https://www.sheetxl.com/license.
6
+ */
7
+ /**
8
+ * @license @sheetxl/studio-mui - Studio - Spreadsheet UI built with SheetXL SDK using React & MUI. - v0.0.0
9
+ *
10
+ * (C) 2025-present SheetXL Inc. & Michael T. Ford
11
+ * License: The license can be found at https://www.sheetxl.com/license.
12
+ */
13
+ /**
14
+ * @license @sheetxl/sdk - A high-performance, embeddable spreadsheet engine. - v0.0.0
15
+ *
16
+ * (C) 2025-present SheetXL Inc. & Michael T. Ford
17
+ * License: The license can be found at https://www.sheetxl.com/license.
18
+ */
19
+ const e = { DELTA: { s: "Tests whether two numbers are equal", p: { number1: { d: "is the first number" }, number2: { d: "is the second number", v: 0 } } }, GESTEP: { s: "Tests whether a number is greater than a threshold value", p: { number: { d: "is the value to test against step" }, step: { d: "is the threshold value", v: 0 } } } };
20
+ export {
21
+ e as default
22
+ };
@@ -0,0 +1,92 @@
1
+ import { i as z } from "./CLdcRW7BQK3JCguC.js";
2
+ /**
3
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.0.0
4
+ *
5
+ * (C) 2025-present SheetXL Inc. & Michael T. Ford
6
+ * License: The license can be found at https://www.sheetxl.com/license.
7
+ */
8
+ /**
9
+ * @license @sheetxl/studio-mui - Studio - Spreadsheet UI built with SheetXL SDK using React & MUI. - v0.0.0
10
+ *
11
+ * (C) 2025-present SheetXL Inc. & Michael T. Ford
12
+ * License: The license can be found at https://www.sheetxl.com/license.
13
+ */
14
+ /**
15
+ * @license @sheetxl/io - IO - Import/Export Libraries for SheetXL. - v0.0.0
16
+ *
17
+ * (C) 2025-present SheetXL Inc. & Michael T. Ford
18
+ * License: The license can be found at https://www.sheetxl.com/license.
19
+ */
20
+ const j = async (g, p) => {
21
+ const i = await g.toJSON(), w = p?.whiteSpace ?? 0;
22
+ let b;
23
+ p?.beforeWrite?.(g, i), b = w === 0 ? JSON.stringify(i) : function(a, c = 2) {
24
+ const r = [];
25
+ function n(o) {
26
+ const e = c * o;
27
+ return r[e] === void 0 && (r[e] = " ".repeat(e)), r[e];
28
+ }
29
+ return function o(e, u, t, d) {
30
+ if (e == null || typeof e != "object") return JSON.stringify(e);
31
+ const m = n(u), J = n(u + 1);
32
+ if (Array.isArray(e)) {
33
+ const f = e.length;
34
+ if (f === 0) return "[]";
35
+ if (t !== 0) return JSON.stringify(e);
36
+ let l = `[
37
+ `;
38
+ for (let O = 0; O < f; O++) l += J + o(e[O], u + 1, t + 1, !0), O < f - 1 && (l += `,
39
+ `);
40
+ return l += `
41
+ ` + m + "]", l;
42
+ }
43
+ const N = Object.keys(e), h = N.length;
44
+ if (h === 0) return "{}";
45
+ if (!(t < 2)) return JSON.stringify(e);
46
+ let S = `{
47
+ `;
48
+ d || (t = 0);
49
+ for (let f = 0; f < h; f++) {
50
+ const l = N[f];
51
+ S += J + JSON.stringify(l) + ": " + o(e[l], u + 1, t, !1), f < h - 1 && (S += `,
52
+ `);
53
+ }
54
+ return S += `
55
+ ` + m + "}", S;
56
+ }(a, 0, 0, !1);
57
+ }(i, w);
58
+ let y = new TextEncoder().encode(b);
59
+ const s = p?.compress ?? !0;
60
+ return s && (y = await async function(a, c = "gzip") {
61
+ const r = new ReadableStream({ start(e) {
62
+ e.enqueue(a), e.close();
63
+ } }), n = new CompressionStream(c), o = r.pipeThrough(n);
64
+ return (await new Response(o).blob()).arrayBuffer();
65
+ }(y, typeof s == "string" ? s : void 0)), y;
66
+ }, T = async (g, p) => {
67
+ let i = g;
68
+ (function(s) {
69
+ if (s.byteLength < 4) return !1;
70
+ const a = new Uint8Array(s), c = { gzip: [31, 139], zip: [80, 75, 3, 4], bz2: [66, 90, 104], br: [206, 178, 207, 129] }, r = Object.keys(c);
71
+ for (let n = 0; n < r.length; n++) {
72
+ const o = r[n], e = c[o];
73
+ let u = !0;
74
+ for (let t = 0; t < e.length; t++) if (a[t] !== e[t]) {
75
+ u = !1;
76
+ break;
77
+ }
78
+ if (u) return o;
79
+ }
80
+ return !1;
81
+ })(i) && (i = await async function(s, a = "gzip") {
82
+ const c = new Blob([s]).stream(), r = new DecompressionStream(a), n = c.pipeThrough(r);
83
+ return (await new Response(n).blob()).arrayBuffer();
84
+ }(i));
85
+ let w = new TextDecoder().decode(i);
86
+ const b = JSON.parse(w), y = { ...p?.constructorOptions ?? {}, json: b };
87
+ return new z(y);
88
+ };
89
+ export {
90
+ T as fromBufferJSON,
91
+ j as toBufferJSON
92
+ };
@@ -0,0 +1,171 @@
1
+ /**
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.0.0
3
+ *
4
+ * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
+ * License: The license can be found at https://www.sheetxl.com/license.
6
+ */
7
+ const k = /* @__PURE__ */ new Map(), E = (e, n = {}) => {
8
+ const { message: t, icon: r, customElement: p, hide: m = !1, className: a, cssVars: f = {} } = n;
9
+ if (m) return;
10
+ const l = typeof e == "string" ? document.querySelector(e) : e;
11
+ if (!l) return void console.warn(`Element with selector "${e}" not found for panel.`);
12
+ let o;
13
+ if (h(e), p) o = p;
14
+ else {
15
+ o = document.createElement("div"), o.className = a ? `sheetxl-panel ${a}` : "sheetxl-panel";
16
+ const u = Object.entries(f).map(([s, y]) => `--sheetxl-panel-${s}: ${y};`).join(" "), g = `
17
+ @keyframes sheetxl-spin {
18
+ from { transform: rotate(0deg); }
19
+ to { transform: rotate(360deg); }
20
+ }
21
+ .sheetxl-panel {
22
+ position: absolute;
23
+ top: 0;
24
+ left: 0;
25
+ right: 0;
26
+ bottom: 0;
27
+ display: flex;
28
+ flex-direction: column;
29
+ align-items: center;
30
+ justify-content: center;
31
+ backdrop-filter: blur(4px);
32
+ border-radius: 4px;
33
+ z-index: 9999;
34
+ gap: 16px;
35
+
36
+ /* CSS variables with fallbacks */
37
+ color: var(--sheetxl-panel-color, #333);
38
+ }
39
+
40
+ .sheetxl-panel.dark {
41
+ color: var(--sheetxl-panel-color, #e0e0e0);
42
+ }
43
+
44
+ .sheetxl-icon {
45
+ width: 24px;
46
+ height: 24px;
47
+ color: var(--sheetxl-panel-icon-color, #1976d2);
48
+ }
49
+
50
+ .sheetxl-panel.loading {
51
+ /* Loading panel defaults */
52
+ color: var(--sheetxl-panel-color, #333);
53
+ }
54
+
55
+ .sheetxl-panel.loading.dark {
56
+ color: var(--sheetxl-panel-color, #e0e0e0);
57
+ }
58
+
59
+ .sheetxl-panel.error {
60
+ /* Error panel defaults */
61
+ color: var(--sheetxl-panel-color, #d32f2f);
62
+ }
63
+
64
+ .sheetxl-panel.error.dark {
65
+ color: var(--sheetxl-panel-color, #f44336);
66
+ }
67
+
68
+ .sheetxl-panel.error .sheetxl-icon {
69
+ color: var(--sheetxl-panel-icon-color, #d32f2f);
70
+ }
71
+
72
+ .sheetxl-panel.error.dark .sheetxl-icon {
73
+ color: var(--sheetxl-panel-icon-color, #f44336);
74
+ }
75
+
76
+ .sheetxl-message {
77
+ font-size: 1.1em;
78
+ font-weight: 500;
79
+ letter-spacing: 0.1px;
80
+ text-align: center;
81
+ margin: 0;
82
+ }
83
+ `, d = document.createElement("style");
84
+ if (d.textContent = g, o.appendChild(d), r) {
85
+ const s = document.createElement("div");
86
+ s.className = "sheetxl-icon", typeof r == "string" ? s.innerHTML = r : r instanceof HTMLElement && s.appendChild(r), o.appendChild(s);
87
+ }
88
+ if (t) {
89
+ const s = document.createElement("div");
90
+ s.className = "sheetxl-message", s.textContent = t, o.appendChild(s);
91
+ }
92
+ u && (o.style.cssText += u), window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches && o.classList.add("dark");
93
+ }
94
+ window.getComputedStyle(l).position === "static" && (l.style.position = "relative"), l.appendChild(o), k.set(e, o);
95
+ }, h = (e) => {
96
+ const n = k.get(e);
97
+ n && n.parentNode && (n.parentNode.removeChild(n), k.delete(e));
98
+ }, C = (e, n = {}) => {
99
+ E(e, { message: "Loading SheetXL...", icon: `
100
+ <svg width="24" height="24" viewBox="0 0 24 24" style="animation: sheetxl-spin 1s linear infinite;">
101
+ <circle cx="12" cy="12" r="10" fill="none" stroke="currentColor" stroke-width="2" stroke-dasharray="31.416" stroke-dashoffset="31.416">
102
+ <animate attributeName="stroke-dasharray" dur="2s" values="0 31.416;15.708 15.708;0 31.416" repeatCount="indefinite"/>
103
+ <animate attributeName="stroke-dashoffset" dur="2s" values="0;-15.708;-31.416" repeatCount="indefinite"/>
104
+ </circle>
105
+ </svg>
106
+ `, className: "loading", ...n });
107
+ }, L = (e, n = {}) => {
108
+ E(e, { message: "Failed to load SheetXL", icon: `
109
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor">
110
+ <path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"/>
111
+ </svg>
112
+ `, className: "error", ...n });
113
+ }, x = /* @__PURE__ */ new Map();
114
+ let c;
115
+ const b = async (e) => c || (c = await (async (n, t) => {
116
+ try {
117
+ if (t?.selector && C(t?.selector, t?.loading), !n) {
118
+ const { resolveDependencies: r } = await import("./assets/D2pceTwrS_dagByu.js");
119
+ n = await r(t?.dependencies);
120
+ }
121
+ t?.licenseKey && await n.StudioMUI.LicenseManager.setLicenseKey(t.licenseKey), t?.selector && h(t?.selector);
122
+ } catch (r) {
123
+ throw t?.selector && (h(t.selector), L(t.selector, { message: `Failed to initialize: ${r instanceof Error ? r.message : String(r)}`, ...t?.error })), console.error("Failed to initialize:", r), r;
124
+ }
125
+ return n;
126
+ })(null, typeof e == "object" ? e : void 0), c), M = { attachWorkbook: async (e, n) => (c || (c = await b(e)), (async (t, r, p, m) => {
127
+ if (!r) throw new Error("Either a 'selector' or a 'InitializationOptions' must be provided to attach.");
128
+ const a = typeof r == "string" ? r : r.selector || "#sheetxl", f = typeof a == "string" ? document.querySelector(a) : a;
129
+ if (!f) throw new Error(`Element with selector "${a}" not found.`);
130
+ if (x.has(a) && x.get(a) !== null) throw new Error(`SheetXL already attached to "${a}". Detach first if you want to re-attach.`);
131
+ const l = typeof r == "object" ? r : null;
132
+ C(a, l?.loading);
133
+ try {
134
+ h(a);
135
+ const o = t.ReactDOMClient.createRoot(f), u = t.React.createRef(), g = t.StudioMUI[p];
136
+ let d = null;
137
+ await new Promise((v) => {
138
+ o.render(t.React.createElement(g, { ...m, ref: (i) => {
139
+ console.log("SheetXL: Component instance ready:", i), i && (d = i, v());
140
+ } }));
141
+ });
142
+ const y = { runtime: t, root: o };
143
+ x.set(a, y);
144
+ let S = !1;
145
+ return new Proxy(d, { get(v, i, z) {
146
+ if (S) throw new Error(`SheetXL instance attached to "${a}" has been detached. Cannot access properties.`);
147
+ return i === "update" ? (N) => {
148
+ const X = { ...m, ...N, ref: u };
149
+ return o.render(t.React.createElement(g, X)), Promise.resolve();
150
+ } : i === "detach" ? () => (x.delete(a), o.unmount(), S = !0, Promise.resolve()) : Reflect.get(v, i, z);
151
+ } });
152
+ } catch (o) {
153
+ throw h(a), L(a, { message: `Failed to initialize: ${o instanceof Error ? o.message : String(o)}`, ...l?.error }), console.error("Failed to initialize:", o), o;
154
+ }
155
+ })(c, e, "StandaloneWorkbook", n)), async initialize(e) {
156
+ await b(e);
157
+ } }, w = document.currentScript;
158
+ if (w) {
159
+ console.log("SheetXL script tag:", w);
160
+ const e = w.dataset ? w.dataset.target : "#sheetxl";
161
+ document.querySelector(e) || console.error(`SheetXL: Target element "${e}" not found in the document.`), M.attachWorkbook(e, { autoFocus: !0 }).then((n) => {
162
+ console.log("SheetXL workbook created and attached:", n);
163
+ }).catch((n) => {
164
+ console.error("Error creating SheetXL workbook:", n);
165
+ });
166
+ }
167
+ const $ = M;
168
+ export {
169
+ $ as SheetXL,
170
+ $ as default
171
+ };
@@ -0,0 +1,6 @@
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.0.0
3
+ *
4
+ * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
+ * License: The license can be found at https://www.sheetxl.com/license.
6
+ */(()=>{const e=document.currentScript,o=()=>{if(!e)return void console.error("script tag is not available. Ensure the module tag is not used.");const r=e.dataset.target??"#sheetxl",t={...e.dataset},d=t.licenseKey;delete t.target,delete t.licenseKey;const i=e.src,c=new URL("./index.js",i).href;import(c).then(n=>{const a=document.querySelector(r);a?n.SheetXL.attachWorkbook({selector:a,licenseKey:d},t):console.error(`SheetXL: Target element "${r}" not found.`)}).catch(n=>{console.error(`SheetXL: Failed to load the main application from ${c}`,n)})};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",o):o()})()});
@@ -0,0 +1 @@
1
+ No third parties dependencies
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "@sheetxl/studio-vanilla",
3
+ "description": "SheetXL Studio - Vanilla entry point for integrating SheetXL UI.",
4
+ "version": "0.0.0",
5
+ "license": "SEE LICENSE IN <LICENSE>",
6
+ "type": "module",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./types/index.d.ts",
10
+ "browser": "./browser/esm/index.mjs",
11
+ "node": "./node/esm/index.mjs",
12
+ "import": "./browser/esm/index.mjs",
13
+ "require": "./browser/cjs/index.cjs",
14
+ "cdn": "./cdn/index.js"
15
+ },
16
+ "./cdn": "./cdn/index.js",
17
+ "./loader.js": "./cdn/loader.js"
18
+ },
19
+ "types": "./types/index.d.ts",
20
+ "main": "./browser/cjs/index.cjs",
21
+ "module": "./browser/esm/index.mjs",
22
+ "unpkg": "./cdn/index.js",
23
+ "jsdelivr": "./cdn/index.js",
24
+ "publishConfig": {
25
+ "access": "public"
26
+ },
27
+ "sideEffects": [
28
+ "*.css",
29
+ "**/*.css"
30
+ ],
31
+ "author": "Michael T Ford",
32
+ "keywords": [
33
+ "sheetxl",
34
+ "spreadsheet",
35
+ "utilities",
36
+ "sheets",
37
+ "grid",
38
+ "excel",
39
+ "vanilla",
40
+ "office",
41
+ "automation",
42
+ "charting"
43
+ ],
44
+ "dependencies": {
45
+ "@emotion/cache": "^11.14.0",
46
+ "@emotion/react": "^11.14.0",
47
+ "@emotion/styled": "^11.14.0",
48
+ "@mui/icons-material": "^6.4.2",
49
+ "@mui/material": "^6.4.2",
50
+ "@mui/styled-engine": "^6.4.2",
51
+ "@mui/system": "^6.4.2",
52
+ "@mui/utils": "^6.4.2",
53
+ "@sheetxl/studio-mui": "^0.0.0",
54
+ "csstype": "^3.1.3",
55
+ "http-server": "^14.1.1"
56
+ },
57
+ "peerDependencies": {
58
+ "react": "^19.1.0",
59
+ "react-dom": "^19.1.0"
60
+ }
61
+ }
@@ -0,0 +1,151 @@
1
+ import { IWorkbookElement as IWorkbookElement_2 } from '@sheetxl/studio-mui';
2
+ import { react } from 'react';
3
+ import { Root } from 'react-dom/client';
4
+ import { sheetxlStudioMui } from '@sheetxl/studio-mui';
5
+ import { StandaloneWorkbookProps as StandaloneWorkbookProps_2 } from '@sheetxl/studio-mui';
6
+
7
+ /**
8
+ * All elements attached to a DOM element will have the additional methods
9
+ * from Attached.
10
+ */
11
+ export declare interface Attached<P> {
12
+ /**
13
+ * Updates the properties of the attached SheetXL instance.
14
+ * @param props The new properties to apply.
15
+ * @returns A promise that resolves when the update is complete.
16
+ */
17
+ update: (props: P) => Promise<void>;
18
+ /**
19
+ * Detaches the SheetXL React component from its DOM element.
20
+ *
21
+ * @remarks
22
+ * This will clean up any React roots or event listeners.
23
+ */
24
+ detach: () => Promise<void>;
25
+ }
26
+
27
+ /**
28
+ * Dependencies that are resolved. These are defaulted
29
+ * but can be overwritten with either URLs or actual instances.
30
+ */
31
+ export declare interface Dependencies {
32
+ reactUrl?: string;
33
+ reactDomUrl?: string;
34
+ reactDomUrlClient?: string;
35
+ reactJsxTransform?: string;
36
+ }
37
+
38
+ /**
39
+ * Options for the one-time initialization of the SheetXL library.
40
+ */
41
+ export declare interface InitializationOptions {
42
+ /**
43
+ * If provided, this will be used to attach the SheetXL React component or to
44
+ * provide a loading error panel.
45
+ */
46
+ selector?: string | HTMLElement;
47
+ /**
48
+ * The string identifier for the SheetXL license key.
49
+ *
50
+ * @see
51
+ * {@link https://my.sheetxl.com} to generate a license key.
52
+ */
53
+ licenseKey?: string;
54
+ /**
55
+ * Configuration for the loading panel that appears while SheetXL is loading.
56
+ */
57
+ loading?: PanelConfig;
58
+ /**
59
+ * Configuration for the error panel that appears if there is an error loading SheetXL.
60
+ */
61
+ error?: PanelConfig;
62
+ /**
63
+ * By default, the runtime dependencies are resolved automatically but
64
+ * you can provide your own URLs or instances if needed.
65
+ */
66
+ dependencies?: Dependencies;
67
+ }
68
+
69
+ /**
70
+ * Interface for the SheetXL module that allows for simple javascript integration.
71
+ */
72
+ export declare interface ISheetXL {
73
+ /**
74
+ * Creates a SheetXL workbook component and attaches it to a DOM element.
75
+ *
76
+ * @param selector | InitializationOptions. The CSS selector of the DOM element to attach to (e.g., "#sheetxl").
77
+ * @param props Optional properties to pass to the SheetXL React component.
78
+ * @returns A promise that resolves to a function that, when called, will detach the SheetXL React component from the DOM element.
79
+ */
80
+ attachWorkbook(selector: string | InitializationOptions, props?: StandaloneWorkbookProps): Promise<IWorkbookElement & Attached<StandaloneWorkbookProps>>;
81
+ /**
82
+ * Initializes the SheetXL runtime with the provided options.
83
+ *
84
+ * @param options The initialization options.
85
+ *
86
+ * @remarks
87
+ * This does not need to be explicity called as `create` methods can also accept this.
88
+ * If this is called more than once all subsequent calls will be ignored.
89
+ */
90
+ initialize(options: InitializationOptions): Promise<void>;
91
+ }
92
+
93
+ /**
94
+ * Reference to IWorkbookElement.
95
+ *
96
+ * @link [IWorkbookElement](../interfaces/_sheetxl_studio-mui.IWorkbookElement.html)
97
+ */
98
+ export declare type IWorkbookElement = IWorkbookElement_2;
99
+
100
+ /**
101
+ * Configuration for panels that appear during loading or error states.
102
+ */
103
+ export declare interface PanelConfig {
104
+ /** Custom message to display */
105
+ message?: string;
106
+ /** Custom icon (HTML string or element) */
107
+ icon?: string | HTMLElement;
108
+ /** Custom HTML element to replace the entire panel */
109
+ customElement?: HTMLElement;
110
+ /**
111
+ * Whether to hide the panel. Defaults to `false`.
112
+ *
113
+ * @remarks
114
+ * This maybe set to `true` if a custom loading or error panel is provided.`
115
+ */
116
+ hide?: boolean;
117
+ /** Additional CSS class to apply to panel */
118
+ className?: string;
119
+ /** CSS custom properties for styling the panel */
120
+ cssVars?: {
121
+ /** Text color (--sheetxl-panel-color) */
122
+ color?: string;
123
+ /** Background color (--sheetxl-panel-background) */
124
+ background?: string;
125
+ /** Icon color (--sheetxl-panel-icon-color) */
126
+ iconColor?: string;
127
+ };
128
+ }
129
+
130
+ /* Excluded from this release type: ReactDOMRoot */
131
+
132
+ /* Excluded from this release type: ReactModule */
133
+
134
+ declare const SheetXL: ISheetXL;
135
+ export default SheetXL;
136
+
137
+ /**
138
+ * Reference to StandaloneWorkbookProps.
139
+ *
140
+ * @link [StandaloneWorkbookProps](../interfaces/_sheetxl_studio-mui.StandaloneWorkbookProps.html)
141
+ */
142
+ export declare type StandaloneWorkbookProps = StandaloneWorkbookProps_2;
143
+
144
+ /**
145
+ * Reference to StudioMUI module.
146
+ *
147
+ * @link [@sheetxl/studio-mui](../modules/_sheetxl_studio-mui.html)
148
+ */
149
+ export declare type StudioMUIModule = sheetxlStudioMui;
150
+
151
+ export { }
package/package.json ADDED
@@ -0,0 +1,92 @@
1
+ {
2
+ "name": "@sheetxl/studio-vanilla",
3
+ "description": "SheetXL Studio - Vanilla entry point for integrating SheetXL UI.",
4
+ "version": "0.1.98",
5
+ "license": "SEE LICENSE IN <LICENSE>",
6
+ "author": "Michael T Ford",
7
+ "private": false,
8
+ "publishConfig": {
9
+ "access": "public"
10
+ },
11
+ "files": [
12
+ "build"
13
+ ],
14
+ "type": "module",
15
+ "exports": {
16
+ ".": {
17
+ "development": "./src/index.ts",
18
+ "types": "./build/types/index.d.ts",
19
+ "cdn": "./build/cdn/index.js",
20
+ "import": {
21
+ "node": "./build/browser/esm/index.mjs",
22
+ "browser": "./build/browser/esm/index.mjs",
23
+ "default": "./build/browser/esm/index.mjs"
24
+ },
25
+ "require": {
26
+ "node": "./build/browser/cjs/index.cjs",
27
+ "browser": "./build/browser/cjs/index.cjs",
28
+ "default": "./build/browser/cjs/index.cjs"
29
+ }
30
+ },
31
+ "./cdn": {
32
+ "import": "./build/browser/index.js"
33
+ },
34
+ "./loader.js": "./build/browser/loader.js"
35
+ },
36
+ "types": "./build/types/index.d.ts",
37
+ "main": "./build/cjs/index.cjs",
38
+ "module": "./build/esm/index.mjs",
39
+ "unpkg": "./build/cdn/index.js",
40
+ "jsdelivr": "./dist/cdn/index.js",
41
+ "scripts": {
42
+ "dev": "vite --port 4000",
43
+ "dev:open": "vite --port 4000 --open",
44
+ "dev:host": "vite --port 4000 --host",
45
+ "build": "pnpm run build:lib && pnpm run build:es && pnpm run build:iife",
46
+ "build:lib": "vite build --config vite.config.ts",
47
+ "build:es": "vite build --config vite.es.ts",
48
+ "build:iife": "vite build --config vite.iife.ts",
49
+ "build:tsdocs:json": "typedoc --json ../../build/docs/studio-vanilla.json --excludeInternal --tsconfig ./tsconfig.build.json",
50
+ "preview": "http-server build -p 4000 --cors",
51
+ "clean": "rimraf ./build",
52
+ "clean:all": "git clean -fdX .",
53
+ "lint": "eslint .",
54
+ "test": "vitest run",
55
+ "test:watch": "vitest",
56
+ "coverage": "vitest run --coverage"
57
+ },
58
+ "dependencies": {
59
+ "@emotion/cache": "^11.14.0",
60
+ "@emotion/react": "^11.14.0",
61
+ "@emotion/styled": "^11.14.0",
62
+ "@mui/icons-material": "^6.4.2",
63
+ "@mui/material": "^6.4.2",
64
+ "@mui/styled-engine": "^6.4.2",
65
+ "@mui/system": "^6.4.2",
66
+ "@mui/utils": "^6.4.2",
67
+ "@sheetxl/studio-mui": "0.1.98",
68
+ "csstype": "^3.1.3",
69
+ "http-server": "^14.1.1"
70
+ },
71
+ "peerDependencies": {
72
+ "react": "^19.1.0",
73
+ "react-dom": "^19.1.0"
74
+ },
75
+ "sideEffects": [
76
+ "*.css",
77
+ "**/*.css"
78
+ ],
79
+ "keywords": [
80
+ "sheetxl",
81
+ "spreadsheet",
82
+ "utilities",
83
+ "sheets",
84
+ "grid",
85
+ "excel",
86
+ "vanilla",
87
+ "office",
88
+ "automation",
89
+ "charting"
90
+ ],
91
+ "gitHead": "a4384c94dbefebce4b25a9c81389d1d6fa1a52db"
92
+ }