@sheetxl/studio-vanilla 0.3.4 → 0.3.5

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 (201) hide show
  1. package/browser/cjs/-aNm3r-RpjcRRCbw.cjs +6 -0
  2. package/browser/cjs/6e91IXsvk9_k3W5c.cjs +6 -0
  3. package/browser/cjs/{BTgA_stiR3dZAHop.cjs → BLHbDre9R0bvyb9G.cjs} +2 -2
  4. package/browser/cjs/{BlYpCVX1NOGpcNB6.cjs → BN0MiwKQ8NjKXgue.cjs} +3 -3
  5. package/browser/cjs/BNtn_2pcq6Dd-2HL.cjs +11 -0
  6. package/browser/cjs/{D-I49Eh-SQg7zJYX.cjs → BW_fZwvTtMLqteuJ.cjs} +1 -1
  7. package/browser/cjs/{CdVKz1bz20BYztuB.cjs → Bg9KIoDuqtkhIYfN.cjs} +1 -1
  8. package/browser/cjs/{CpPM7Ir1EZB_8bER.cjs → BiiW2FlRZHxGIWso.cjs} +1 -1
  9. package/browser/cjs/{WPXWuf9j-uwazW31.cjs → Biyqj-Wu75uxLHv1.cjs} +2 -2
  10. package/browser/cjs/BwocMiKAPb8s__1Z.cjs +6 -0
  11. package/browser/cjs/{DzE824T4cXRcKowY.cjs → CdWBtYv7LuuDLPL2.cjs} +1 -1
  12. package/browser/cjs/CuY7mAREmYhHuYWx.cjs +6 -0
  13. package/browser/cjs/CvESC6HiL0-peppq.cjs +12 -0
  14. package/browser/cjs/{BDACVe5nzEmYknRm.cjs → Cxt39d6l0pu9k1vT.cjs} +8 -8
  15. package/browser/cjs/{CuldnUeQxpcu8oJ7.cjs → D7NgrO__M-IUmM8o.cjs} +1 -1
  16. package/browser/cjs/{BB5pxJh1jhHsvVZ1.cjs → DCWZ2ZkLp-Horeca.cjs} +1 -1
  17. package/browser/cjs/DDhq2nYMdw5b7wP6.cjs +301 -0
  18. package/browser/cjs/{BDmE5OFneHwyeeiD.cjs → DIawrhwQ7E_1l99b.cjs} +6 -6
  19. package/browser/cjs/{yZrSgyFKPqsiym7z.cjs → DKit140jXAUUSf-_.cjs} +2 -2
  20. package/browser/cjs/DKsZXMMHWKP9IZ4E.cjs +12 -0
  21. package/browser/cjs/DeAt9vyyaeB2vbxQ.cjs +6 -0
  22. package/browser/cjs/Dkl2t2DSaDxPbm2V.cjs +6 -0
  23. package/browser/cjs/Ya4f5p9go_UndgNy.cjs +6 -0
  24. package/browser/cjs/{46C8cTP5D1fDfsPs.cjs → hSI9QVPgIxqt3pXc.cjs} +1 -1
  25. package/browser/cjs/index.cjs +2 -2
  26. package/browser/cjs/qjPE6k7aYlu-R90s.cjs +6 -0
  27. package/browser/cjs/{DD0VHDU8F1FiLKcs.cjs → yvA5FY7oe6FILMqB.cjs} +1 -1
  28. package/{cdn/assets/CGUSbWH383tudMFu.js → browser/esm/BLsIMzjofsOnRFrU.mjs} +12 -12
  29. package/{cdn/assets/BY5dcSv5nxuvXMsr.js → browser/esm/BTQ-TGJnw7w1Y0CX.mjs} +13 -13
  30. package/{cdn/assets/CNhPYXS_v3a2ATBg.js → browser/esm/BdLAPrmXIfjGFhhA.mjs} +231 -231
  31. package/browser/esm/BsDYj6xix3mlXry2.mjs +46 -0
  32. package/browser/esm/{pxRv4ndPNkOMM_s3.mjs → Btk74VwCVJ1T5LQD.mjs} +13 -13
  33. package/browser/esm/{s8U6UEvd4LQsvEnH.mjs → C60KakDbde-A4anI.mjs} +1 -1
  34. package/browser/esm/{BfNo01-WwZl_5N1M.mjs → CAm14rTtmPL5-rvQ.mjs} +220 -219
  35. package/browser/esm/CLTP12OHGQ2k4_Kt.mjs +50 -0
  36. package/browser/esm/{qchlbvmOxrybWJep.mjs → CPWh2H15145LP-d5.mjs} +1 -1
  37. package/browser/esm/CYXzmWJtZn5OJVBF.mjs +24861 -0
  38. package/{cdn/assets/dQu9CDkkTpS5h580.js → browser/esm/ChMaIhqaEhF3SLLt.mjs} +8 -8
  39. package/browser/esm/{Dq1oxXMudxqdJaKZ.mjs → CntwHkPpskE88Ixu.mjs} +11 -10
  40. package/{cdn/assets/C-oc6cc0wXRVBFx2.js → browser/esm/CsVV_QnEl77BQM3V.mjs} +1 -1
  41. package/browser/esm/{CTdGamCv2VtpI05C.mjs → CvFAAktSd9TQK1h4.mjs} +1 -1
  42. package/browser/esm/{BjLCBG20KyjNKCpy.mjs → D0-tgawYa4KXYT2c.mjs} +2 -2
  43. package/browser/esm/{BXMZNx8rs4_V8pQL.mjs → D244UwY3qPC_LNc5.mjs} +2 -2
  44. package/{cdn/assets/Dl02UNFD2tNwtHQ9.js → browser/esm/DCuLWmzd9eLWgI03.mjs} +1 -1
  45. package/browser/esm/{C2Ik_RfF43fmFDeS.mjs → DDD5zfwNNPKuc_zZ.mjs} +1 -1
  46. package/browser/esm/{BNq1DlA_v8-hm8PQ.mjs → DFa_tXqv1VN1OZdv.mjs} +75 -74
  47. package/browser/esm/{CeWIrhJ_bsxOl7mw.mjs → DJxioSY-hxyM7dmk.mjs} +24 -23
  48. package/{cdn/assets/ct9ztJbQB16MJoyP.js → browser/esm/DdrICyX8Ead15N32.mjs} +7 -7
  49. package/browser/esm/Di2tNceI3NodSsgU.mjs +41 -0
  50. package/browser/esm/{BrWhLiIy81LKNSUX.mjs → Did46-x6ZVwk_-r-.mjs} +1 -1
  51. package/browser/esm/{DLJ1zBZE-WPdkpt2.mjs → Q1yWEkJBu4cVEF33.mjs} +132 -131
  52. package/browser/esm/index.mjs +2 -2
  53. package/{cdn/assets/RWhi_dOrWDICNt1t.js → browser/esm/mq5uPzTIc1x8unBP.mjs} +1 -1
  54. package/browser/esm/wziCLl5xvHu6Guu_.mjs +22 -0
  55. package/cdn/assets/{LxoKYdUqZ4Zgxjza.js → B41q92oKD_VR31Dd.js} +13 -13
  56. package/cdn/assets/{BMb4pCD8O5vK2p1B.js → BOl7blN8JotSzCHJ.js} +2 -2
  57. package/{browser/esm/Ddm9jggzrr5VJQ68.mjs → cdn/assets/Bs-psXrTRw1jFety.js} +13 -13
  58. package/cdn/assets/{COFTB6OufFls7NP1.js → BzptX9H_YCM2l0DE.js} +11 -10
  59. package/cdn/assets/{s8U6UEvd4LQsvEnH.js → C60KakDbde-A4anI.js} +1 -1
  60. package/cdn/assets/C8omEbSXHWI_wNjp.js +41 -0
  61. package/{browser/esm/CZRLp5H9dSrMEgaI.mjs → cdn/assets/CEXK9SXjFf1dGHZe.js} +12 -12
  62. package/cdn/assets/{qchlbvmOxrybWJep.js → CPWh2H15145LP-d5.js} +1 -1
  63. package/cdn/assets/C_E1C68wCcRpC6XN.js +46 -0
  64. package/cdn/assets/{BKDQtGZxRUUzBmnI.js → ClFGbVy7cnhMW-dO.js} +2 -2
  65. package/cdn/assets/{Be9YovX6b_0gKXs5.js → CoCIP7n4THmzOggq.js} +75 -74
  66. package/{browser/esm/C-oc6cc0wXRVBFx2.mjs → cdn/assets/CsVV_QnEl77BQM3V.js} +1 -1
  67. package/cdn/assets/{CTdGamCv2VtpI05C.js → CvFAAktSd9TQK1h4.js} +1 -1
  68. package/cdn/assets/{6tFlyQMvtppXfmuU.js → Cz33L9W3cdQckAL5.js} +24 -23
  69. package/{browser/esm/BoL2rsWK1YyT1PP7.mjs → cdn/assets/DBgbBl_3O65WhfWN.js} +8 -8
  70. package/{browser/esm/Dl02UNFD2tNwtHQ9.mjs → cdn/assets/DCuLWmzd9eLWgI03.js} +1 -1
  71. package/cdn/assets/{C2Ik_RfF43fmFDeS.js → DDD5zfwNNPKuc_zZ.js} +1 -1
  72. package/cdn/assets/{mAWImp_J2v8z8hbZ.js → DLYF-18qErpwF9Q-.js} +132 -131
  73. package/{browser/esm/Br4TnuxGRULZDhCA.mjs → cdn/assets/DXMyzCcyP7039z13.js} +231 -231
  74. package/{browser/esm/GbTp1_3jFZu0Ex24.mjs → cdn/assets/DdrICyX8Ead15N32.js} +7 -7
  75. package/cdn/assets/{BrWhLiIy81LKNSUX.js → Did46-x6ZVwk_-r-.js} +1 -1
  76. package/cdn/assets/{DYgFWlitgXmKdN_I.js → Dj3GhNedlKE9TeTn.js} +220 -219
  77. package/cdn/assets/F-RqJeKWiW4i5344.js +24708 -0
  78. package/cdn/assets/NHbXgEQMftGzY01r.js +50 -0
  79. package/cdn/assets/lM5it-aJgI7DLNH9.js +22 -0
  80. package/{browser/esm/RWhi_dOrWDICNt1t.mjs → cdn/assets/mq5uPzTIc1x8unBP.js} +1 -1
  81. package/cdn/index.js +2 -2
  82. package/cdn/loader.js +1 -1
  83. package/package.json +3 -2
  84. package/browser/cjs/0dkhOl0ItVZXnHg_.cjs +0 -6
  85. package/browser/cjs/7Xjct_4bBSU-vad1.cjs +0 -6
  86. package/browser/cjs/B2kFbeodTh3Gk-aQ.cjs +0 -6
  87. package/browser/cjs/B5UGK4AzAC9SjXJp.cjs +0 -6
  88. package/browser/cjs/B9kurj8mOePUlJX2.cjs +0 -6
  89. package/browser/cjs/BG8OR9VWCkyIRwrw.cjs +0 -6
  90. package/browser/cjs/BML8p6hKVpqMb-13.cjs +0 -124
  91. package/browser/cjs/BeGusiaaShhfh7Ch.cjs +0 -7
  92. package/browser/cjs/BgJ-surJf8jSxqmk.cjs +0 -6
  93. package/browser/cjs/BgJFVvwpAWB3ssLE.cjs +0 -6
  94. package/browser/cjs/Bi8tk3LAhLkM7IXm.cjs +0 -6
  95. package/browser/cjs/BnZdvx8z2BIDZv9J.cjs +0 -355
  96. package/browser/cjs/BvnUfF0WlIXumm-E.cjs +0 -6
  97. package/browser/cjs/BwGs6fp9j-iFwDlB.cjs +0 -32
  98. package/browser/cjs/C4JyilwtB4aWsWnG.cjs +0 -6
  99. package/browser/cjs/C8PUqW17bEbzJthE.cjs +0 -6
  100. package/browser/cjs/CBTWDt8vxgXfkDfh.cjs +0 -6
  101. package/browser/cjs/CJ29qM66PMBNE3G9.cjs +0 -6
  102. package/browser/cjs/CKtzkomrFnDVY5SY.cjs +0 -11
  103. package/browser/cjs/CLarA_vLTlgU3TCF.cjs +0 -13
  104. package/browser/cjs/CN8Y9NZjRCPl8CqY.cjs +0 -6
  105. package/browser/cjs/CNIPdrSO6Xr2gkt9.cjs +0 -6
  106. package/browser/cjs/CNkEdWYoHRiw_Uez.cjs +0 -6
  107. package/browser/cjs/CPFRW8nnIVWYeQYn.cjs +0 -12
  108. package/browser/cjs/CZih4fqvAIVbCVO4.cjs +0 -6
  109. package/browser/cjs/Cx3wCYZR6BKbOtgk.cjs +0 -6
  110. package/browser/cjs/Cx8xafhEESu639Ig.cjs +0 -6
  111. package/browser/cjs/CzqzVoUeKxH16SDC.cjs +0 -6
  112. package/browser/cjs/D-GDPxpVRx45cdpQ.cjs +0 -6
  113. package/browser/cjs/D50Wzp-4UIlO9uVc.cjs +0 -6
  114. package/browser/cjs/DB9rOzEP0g0ZGfBj.cjs +0 -6
  115. package/browser/cjs/DIeyUTfGkxwK6bdT.cjs +0 -15
  116. package/browser/cjs/DX_oDw_K4CB6Ej9i.cjs +0 -6
  117. package/browser/cjs/DcNRcLtSOkHAK_Mt.cjs +0 -6
  118. package/browser/cjs/Df8ZAsCgZ69F33-C.cjs +0 -6
  119. package/browser/cjs/DfCiN8VOEQt4cw-x.cjs +0 -12
  120. package/browser/cjs/DnkG5azaxDtt-73G.cjs +0 -6
  121. package/browser/cjs/Dr_HVAdkD1bM9yrW.cjs +0 -6
  122. package/browser/cjs/KbKjJCMErVEwKqoi.cjs +0 -6
  123. package/browser/cjs/Px_DbuQFWhjhPilq.cjs +0 -6
  124. package/browser/cjs/VmYEO_-N9Cn7JpZN.cjs +0 -6
  125. package/browser/cjs/c4HmqMqg3ugRd4gl.cjs +0 -1501
  126. package/browser/cjs/jmPMUQMT7KTdf9Sr.cjs +0 -6
  127. package/browser/cjs/zRbLzzCcfjQpsQ4j.cjs +0 -6
  128. package/browser/esm/0M23_yfYSvrAB5iY.mjs +0 -472
  129. package/browser/esm/2sPP8EL_OzSYDsKu.mjs +0 -10
  130. package/browser/esm/3SiPV9yNzSbQVINg.mjs +0 -10
  131. package/browser/esm/6CkscKSECxQpy0v6.mjs +0 -10
  132. package/browser/esm/94SRg1Gxbdr9B75m.mjs +0 -10
  133. package/browser/esm/B2I1Hudz2EIGw59h.mjs +0 -10
  134. package/browser/esm/B2fqssq7kMsGIg5g.mjs +0 -10
  135. package/browser/esm/BBBP9totA24zTbqh.mjs +0 -10
  136. package/browser/esm/BEYxIKe5B75ADXWP.mjs +0 -5582
  137. package/browser/esm/BIHHiMjUvXmWQ6w_.mjs +0 -10
  138. package/browser/esm/BYRVuU6FUEX6XBFW.mjs +0 -10
  139. package/browser/esm/Bq_HFm6_6_ycs_gE.mjs +0 -48519
  140. package/browser/esm/Bs6fth_bBoNrYDwE.mjs +0 -21
  141. package/browser/esm/C-QHwmJCeB3o-mzv.mjs +0 -3934
  142. package/browser/esm/C0U_bX9Hj97edVC9.mjs +0 -10
  143. package/browser/esm/CC8aO_pPT-tkJK_H.mjs +0 -10
  144. package/browser/esm/CGxu5NKxrEXE8QIe.mjs +0 -24
  145. package/browser/esm/CKHDKAaHkwZHUkoS.mjs +0 -22
  146. package/browser/esm/CbTDhJiJfpR6Btxp.mjs +0 -10
  147. package/browser/esm/CsUNORBKkJ7f3diG.mjs +0 -10
  148. package/browser/esm/CyYXh2ng_dKgHzbE.mjs +0 -29
  149. package/browser/esm/DRFsMc27LyLwGu56.mjs +0 -820
  150. package/browser/esm/DT09m4FGTu5N2LZJ.mjs +0 -10
  151. package/browser/esm/DUgyehn3re1zGQT5.mjs +0 -10
  152. package/browser/esm/DWOT4LkGXRN4FrJI.mjs +0 -10
  153. package/browser/esm/Dx1J8HBJdbrROP0v.mjs +0 -10
  154. package/browser/esm/Dz8v5MSOgkaH_zTd.mjs +0 -49
  155. package/browser/esm/F7oUe3nLrtaRYTas.mjs +0 -10
  156. package/browser/esm/FCkxbRy2XiqD3GdL.mjs +0 -41
  157. package/browser/esm/L5HOBW-m9BjZTUuw.mjs +0 -10
  158. package/browser/esm/XL9-bWRsLjEvW1Y0.mjs +0 -10
  159. package/browser/esm/ZXuNMFT0sYh8ui7O.mjs +0 -1575
  160. package/browser/esm/gX1gbnkwbpalR57F.mjs +0 -12
  161. package/browser/esm/im3UoVISx3VXhEFp.mjs +0 -46
  162. package/browser/esm/kagl0zcUDaK1IX_X.mjs +0 -10
  163. package/browser/esm/t7CffsKJY64LMXgS.mjs +0 -10
  164. package/browser/esm/x9wy-F3t5pNOvOIp.mjs +0 -425
  165. package/cdn/assets/2sPP8EL_OzSYDsKu.js +0 -10
  166. package/cdn/assets/3SiPV9yNzSbQVINg.js +0 -10
  167. package/cdn/assets/6CkscKSECxQpy0v6.js +0 -10
  168. package/cdn/assets/94SRg1Gxbdr9B75m.js +0 -10
  169. package/cdn/assets/B2I1Hudz2EIGw59h.js +0 -10
  170. package/cdn/assets/B2fqssq7kMsGIg5g.js +0 -10
  171. package/cdn/assets/BBBP9totA24zTbqh.js +0 -10
  172. package/cdn/assets/BD1S4plUUe1NPAqV.js +0 -425
  173. package/cdn/assets/BIHHiMjUvXmWQ6w_.js +0 -10
  174. package/cdn/assets/BPStm90FUYfOgibU.js +0 -41
  175. package/cdn/assets/BYRVuU6FUEX6XBFW.js +0 -10
  176. package/cdn/assets/Bs6fth_bBoNrYDwE.js +0 -21
  177. package/cdn/assets/BzlAT8jiYfNV3kGy.js +0 -820
  178. package/cdn/assets/C0U_bX9Hj97edVC9.js +0 -10
  179. package/cdn/assets/CC8aO_pPT-tkJK_H.js +0 -10
  180. package/cdn/assets/CG-YuIoWsi12_nu9.js +0 -22
  181. package/cdn/assets/CGxu5NKxrEXE8QIe.js +0 -24
  182. package/cdn/assets/CJOmvmuvywU33q7C.js +0 -3934
  183. package/cdn/assets/CbTDhJiJfpR6Btxp.js +0 -10
  184. package/cdn/assets/CsUNORBKkJ7f3diG.js +0 -10
  185. package/cdn/assets/DBq5E3hmvVO5ss1V.js +0 -5582
  186. package/cdn/assets/DT09m4FGTu5N2LZJ.js +0 -10
  187. package/cdn/assets/DUgyehn3re1zGQT5.js +0 -10
  188. package/cdn/assets/DWOT4LkGXRN4FrJI.js +0 -10
  189. package/cdn/assets/Det1P4Jrl9aZHFGe.js +0 -472
  190. package/cdn/assets/DjHCn_TmfObC_aJ1.js +0 -46
  191. package/cdn/assets/Dt3qIbvMvgQhNgeR.js +0 -1575
  192. package/cdn/assets/Dx1J8HBJdbrROP0v.js +0 -10
  193. package/cdn/assets/F7oUe3nLrtaRYTas.js +0 -10
  194. package/cdn/assets/L5HOBW-m9BjZTUuw.js +0 -10
  195. package/cdn/assets/U_ihCP2tbaRnqD2g.js +0 -48366
  196. package/cdn/assets/XL9-bWRsLjEvW1Y0.js +0 -10
  197. package/cdn/assets/Z4Ov3rzhXnezd-gU.js +0 -29
  198. package/cdn/assets/dR_uwa9znq6_hDmB.js +0 -49
  199. package/cdn/assets/gX1gbnkwbpalR57F.js +0 -12
  200. package/cdn/assets/kagl0zcUDaK1IX_X.js +0 -10
  201. package/cdn/assets/t7CffsKJY64LMXgS.js +0 -10
@@ -1,9 +1,9 @@
1
1
  import "react";
2
2
  import "react/jsx-runtime";
3
3
  import "react-dom/client";
4
- import { bH as i } from "./Bq_HFm6_6_ycs_gE.mjs";
4
+ import { b6 as i } from "./CYXzmWJtZn5OJVBF.mjs";
5
5
  /**
6
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.4
6
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.5
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,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.3.4
3
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.5
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.
@@ -0,0 +1,22 @@
1
+ import { jsx as t, jsxs as N } from "react/jsx-runtime";
2
+ import { memo as T, useState as i, useCallback as k } from "react";
3
+ import { t as w, m as j, B as v, aP as y, at as B, au as F } from "./CYXzmWJtZn5OJVBF.mjs";
4
+ /**
5
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.5
6
+ *
7
+ * (C) 2025-present SheetXL Inc. & Michael T. Ford
8
+ * License: The license can be found at https://www.sheetxl.com/license.
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: o = d?.[0], cancelOption: s = "Cancel", sx: m, ...h } = u, [x, O] = i(!1), [n, b] = i(() => e?.hasHeader ?? !1), [l, f] = i(() => e?.ranges ?? null), C = w((a) => {
12
+ const g = { ...e, hasHeader: n, ranges: l };
13
+ c?.(a, a === s, a === o), r?.({ option: a, tableOptions: g });
14
+ }, [r, c, o, s, n, l, e]), D = k(async (a, g) => null, []);
15
+ return t(j, { title: "Insert Table", options: d, onDone: C, onValidateOption: D, defaultOption: o, cancelOption: s, autoFocusSel: ".range-input input", sx: { width: "360px", ...m }, ...h, children: N(v, { sx: { paddingTop: (a) => a.spacing(1), paddingBottom: (a) => a.spacing(0), rowGap: (a) => a.spacing(1), display: "flex", flexDirection: "column" }, children: [t(y, { formName: "range", value: l, onChangeInput: (a) => f(a), resolvedAddress: p.getNames().getRanges.bind(p.getNames()), onFocus: (a) => {
16
+ x || a.target?.select(), O(!0);
17
+ } }), t(B, { control: t(F, { checked: n, onChange: () => b(!n) }), label: "Table has headers", labelPlacement: "end" })] }) });
18
+ });
19
+ export {
20
+ A as TableNewDialog,
21
+ A as default
22
+ };
@@ -1,15 +1,15 @@
1
- import { Z as y, k as C } from "./U_ihCP2tbaRnqD2g.js";
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.4
3
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.5
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: o = null, papaParseConfig: m = {} } = p || {}, f = await import("./C-oc6cc0wXRVBFx2.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("./CsVV_QnEl77BQM3V.js").then((s) => s.p);
10
10
  if (!a) throw new Error("workbook must be specified");
11
11
  let t = null;
12
- if (o === null ? t = a.getSelectedSheet() : typeof o == "number" ? t = a.getSheets().search()[o] : typeof o == "string" && (t = a.getSheets().getByName(o)), !t) throw new Error("invalid sheetKey specified");
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");
13
13
  let c = null;
14
14
  const d = [];
15
15
  let e = null, n = t.getUsedRange({ excludeHidden: h });
@@ -24,23 +24,23 @@ const k = async (a, p) => {
24
24
  const S = x.toTextUnformatted() ?? "";
25
25
  e.push(S);
26
26
  }, { includeEmpty: !0, address: null }), e && d.push(e);
27
- const r = { ...m }, g = f.unparse(d, r);
27
+ const o = { ...m }, g = f.unparse(d, o);
28
28
  return new TextEncoder().encode(g);
29
- }, B = async (a, p) => {
30
- const { papaParseConfig: i, setValuesOptions: u, constructorOptions: h } = p ?? {}, o = await import("./C-oc6cc0wXRVBFx2.js").then((r) => r.p), m = new TextDecoder().decode(a);
29
+ }, R = async (a, p) => {
30
+ const { papaParseConfig: i, setValuesOptions: u, constructorOptions: h } = p ?? {}, r = await import("./CsVV_QnEl77BQM3V.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;
34
- const n = { ...i, transform: (r, g) => {
35
- i?.transform && (r = i.transform(r, g));
34
+ const n = { ...i, transform: (o, g) => {
35
+ i?.transform && (o = i.transform(o, g));
36
36
  const s = g;
37
37
  s === 0 && f++;
38
- let l = r ?? "";
39
- return c.pushAt(f, s, l), e++, e % 1e5 == 0 && d?.(e), r;
38
+ let l = o ?? "";
39
+ return c.pushAt(f, s, l), e++, e % 1e5 == 0 && d?.(e), o;
40
40
  } };
41
- return o.parse(m, n).data, c.apply({ textParser: !0, ...u }), t;
41
+ return r.parse(m, n).data, c.apply({ textParser: !0, ...u }), t;
42
42
  };
43
43
  export {
44
- B as fromBufferCSV,
44
+ R as fromBufferCSV,
45
45
  k as toBufferCSV
46
46
  };
@@ -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 { y as os, i as as, j as is, B as us, l as Su, o as ss, r as xt } from "./U_ihCP2tbaRnqD2g.js";
3
+ import { D as os, E as as, c as is, B as us, I as Su, _ as ss, w as xt } from "./F-RqJeKWiW4i5344.js";
4
4
  /**
5
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.4
5
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.5
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,18 +1,18 @@
1
1
  import { jsx as a, jsxs as s } from "react/jsx-runtime";
2
- import { memo as O, useState as r, useRef as E, useReducer as M, useMemo as W } from "react";
3
- import { bk as A, ap as k, bl as q, bm as J, a7 as x, b9 as K, ba as V, B as n, bn as G, bo as Q, aN as b, bp as U, bq as X, aJ as f, aK as y, aL as w, br as S } from "./Bq_HFm6_6_ycs_gE.mjs";
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, t 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 "./F-RqJeKWiW4i5344.js";
4
4
  /**
5
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.4
5
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.5
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: N, onHide: v, autoFocusSel: R = ".range-input input", context: T, notifier: l = A, command: c, commands: d, ...D } = C, [F, g] = r(!1), [m, p] = r(!1), h = E(null), [Y, B] = M((e) => e + 1, 0), [H, { width: Z }] = k();
12
- q(c);
13
- const o = T ?? c.context(), t = o.table(), [I, P] = r(() => t ? o.getNames().getRanges(t.getRange()) : null), j = W(() => t?.getName() ?? "", [t]);
14
- J(o.table(), { onAnchorCoordsChange(e) {
15
- P(o.getNames().getRanges(e.getRange()));
11
+ const { title: N, onHide: R, autoFocusSel: v = ".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();
12
+ k(c);
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) {
15
+ I(o.getNames().getRanges(e.getRange()));
16
16
  }, onProtectedChange(e) {
17
17
  B();
18
18
  } });
@@ -22,15 +22,15 @@ 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(K, { title: N ?? "Table Details", initialPosition: { y: "35" }, autoFocusSel: R, refWindow: h, onHide: v, 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, { title: N ?? "Table Details", initialPosition: { y: "35" }, autoFocusSel: v, refWindow: h, onHide: R, onFocus: () => g(!0), onBlur: (e) => {
26
26
  h?.current?.contains(e.relatedTarget) || g(!1);
27
- }, PaperProps: { elevation: F ? 3 : 1 }, ...D, children: s(V, { 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(G, { formName: "name", defaultInput: j, value: t?.getName() ?? "No table", onChangeInput: L, onValidate: (e) => {
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);
29
29
  }, disabled: t?.isProtected() ?? !0, onFocus: (e) => {
30
30
  m || e.target?.select(), p(!0);
31
- } }), a(Q, { formName: "range", value: I, onChangeInput: z, resolvedAddress: o.getNames().getRanges.bind(o.getNames()), disabled: t?.isProtected() ?? !0, onFocus: (e) => {
31
+ } }), a(K, { formName: "range", value: P, onChangeInput: z, resolvedAddress: o.getNames().getRanges.bind(o.getNames()), disabled: t?.isProtected() ?? !0, onFocus: (e) => {
32
32
  m || e.target?.select(), p(!0);
33
- } })] }) }) }), s(n, { sx: { minHeight: "10px", flex: "1 1 100%", display: "flex", flexDirection: "column", gap: (e) => e.spacing(0.5), marginTop: (e) => e.spacing(1) }, children: [a(b, { orientation: "horizontal", sx: { marginTop: (e) => e.spacing(1.5), marginBottom: (e) => e.spacing(0.75) } }), a(U, { disabled: t?.isProtected(), styleOptions: t?.getStyleOptions() ?? null, onStyleOptionsChange: (e) => {
33
+ } })] }) }) }), s(n, { sx: { minHeight: "10px", flex: "1 1 100%", display: "flex", flexDirection: "column", gap: (e) => e.spacing(0.5), marginTop: (e) => e.spacing(1) }, children: [a(f, { orientation: "horizontal", sx: { marginTop: (e) => e.spacing(1.5), marginBottom: (e) => e.spacing(0.75) } }), a(U, { disabled: t?.isProtected(), styleOptions: t?.getStyleOptions() ?? null, onStyleOptionsChange: (e) => {
34
34
  t.updateStyleOptions(e);
35
35
  }, showHeaderRow: t?.getShowHeaders(), onShowHeaderRowChange: (e) => {
36
36
  try {
@@ -50,7 +50,7 @@ const te = O((C) => {
50
50
  } catch (i) {
51
51
  l.showError(i);
52
52
  }
53
- } }), a(n, { sx: { display: "flex", alignItems: "center", justifyContent: "center", flexDirection: "column", marginTop: (e) => e.spacing(2), marginBottom: (e) => e.spacing(1) }, children: a(X, { table: t, styles: o.styles(), bodyStyle: o.bodyStyle(), cellHeight: 30, isLive: !0 }) }), a(b, { orientation: "horizontal" }), s(n, { sx: { display: "flex", flexDirection: "column", justifyContent: "center" }, children: [a(f, { variant: w.Menuitem, command: d.getCommand("convertTableToRange"), commandState: t, icon: y(a(S, {})) }), a(f, { variant: w.Menuitem, commandState: t, command: d.getCommand("deleteTable"), icon: y(a(S, {})) })] })] })] }), u] }) });
53
+ } }), a(n, { sx: { display: "flex", alignItems: "center", justifyContent: "center", flexDirection: "column", marginTop: (e) => e.spacing(2), marginBottom: (e) => e.spacing(1) }, children: a(X, { table: t, styles: o.styles(), bodyStyle: o.bodyStyle(), cellHeight: 30, isLive: !0 }) }), a(f, { orientation: "horizontal" }), s(n, { sx: { display: "flex", flexDirection: "column", justifyContent: "center" }, children: [a(y, { variant: w.Menuitem, command: d.getCommand("convertTableToRange"), commandState: t, icon: b(a(S, {})) }), a(y, { variant: w.Menuitem, commandState: t, command: d.getCommand("deleteTable"), icon: b(a(S, {})) })] })] })] }), u] }) });
54
54
  });
55
55
  export {
56
56
  te as TableDetailsWindow,
@@ -1,23 +1,24 @@
1
- import { jsx as n, jsxs as C } from "react/jsx-runtime";
2
- import { useState as b } from "react";
3
- import { aY as a, a7 as m, n as O, B as H, b1 as s, b2 as l, k as r } from "./U_ihCP2tbaRnqD2g.js";
1
+ import { jsx as n, jsxs as h } from "react/jsx-runtime";
2
+ import { useState as C } from "react";
3
+ import { Sort as a, IRange as r } from "@sheetxl/sdk";
4
+ import { t as O, m as S, B as g, at as s, au as l } from "./F-RqJeKWiW4i5344.js";
4
5
  /**
5
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.4
6
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.5
6
7
  *
7
8
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
8
9
  * License: The license can be found at https://www.sheetxl.com/license.
9
10
  */
10
- const k = ({ range: h, options: c, cell: p, onDone: d, ...v }) => {
11
- const [t, o] = b(c ?? a.DefaultRangeOptions), u = m((e) => {
11
+ const D = ({ range: m, options: c, cell: p, onDone: d, ...u }) => {
12
+ const [t, o] = C(c ?? a.DefaultRangeOptions), v = O((e) => {
12
13
  let i = null;
13
14
  e === "Sort" && (i = { ...c, options: t }), d?.(i);
14
15
  }, [t, d, c]);
15
- return n(O, { title: "Sort", options: ["Sort", "Cancel"], onDone: u, ...v, children: C(H, { sx: { display: "flex", flexDirection: "column" }, children: [n(s, { control: n(l, { checked: !t.reverse, onChange: () => o((e) => ({ ...e, reverse: !e.reverse })) }), label: "Is Ascending", labelPlacement: "end" }), n(s, { control: n(l, { checked: t.hasHeader, onChange: () => o((e) => ({ ...e, hasHeader: !e.hasHeader })) }), label: "Has Header", labelPlacement: "end" }), n(s, { control: n(l, { checked: t.collatorOptions?.sensitivity === a.CaseSensitiveOptions.sensitivity, onChange: () => o((e) => ({ ...e, collatorOptions: t.collatorOptions?.sensitivity === a.CaseSensitiveOptions.sensitivity ? a.CaseInsensitiveOptions : a.CaseSensitiveOptions })) }), label: "Case Sensitive", labelPlacement: "end" }), n(s, { control: n(l, { checked: t.orientation === r.Orientation.Row, onChange: () => o((e) => {
16
+ return n(S, { title: "Sort", options: ["Sort", "Cancel"], onDone: v, ...u, children: h(g, { sx: { display: "flex", flexDirection: "column" }, children: [n(s, { control: n(l, { checked: !t.reverse, onChange: () => o((e) => ({ ...e, reverse: !e.reverse })) }), label: "Is Ascending", labelPlacement: "end" }), n(s, { control: n(l, { checked: t.hasHeader, onChange: () => o((e) => ({ ...e, hasHeader: !e.hasHeader })) }), label: "Has Header", labelPlacement: "end" }), n(s, { control: n(l, { checked: t.collatorOptions?.sensitivity === a.CaseSensitiveOptions.sensitivity, onChange: () => o((e) => ({ ...e, collatorOptions: t.collatorOptions?.sensitivity === a.CaseSensitiveOptions.sensitivity ? a.CaseInsensitiveOptions : a.CaseSensitiveOptions })) }), label: "Case Sensitive", labelPlacement: "end" }), n(s, { control: n(l, { checked: t.orientation === r.Orientation.Row, onChange: () => o((e) => {
16
17
  const i = e.orientation === r.Orientation.Row ? r.Orientation.Column : r.Orientation.Row;
17
- return { ...h.getDefaultSortCriteria(i, p).options, includeHidden: e.includeHidden, reverse: e.reverse, orientation: i };
18
+ return { ...m.getDefaultSortCriteria(i, p).options, includeHidden: e.includeHidden, reverse: e.reverse, orientation: i };
18
19
  }) }), label: "Row Sort", labelPlacement: "end" }), n(s, { control: n(l, { checked: t.includeHidden, onChange: () => o((e) => ({ ...e, includeHidden: !e.includeHidden })) }), label: "Include Hidden", labelPlacement: "end" })] }) });
19
20
  };
20
21
  export {
21
- k as SortDialog,
22
- k as default
22
+ D as SortDialog,
23
+ D as default
23
24
  };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.4
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.5
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.
@@ -0,0 +1,41 @@
1
+ import { jsx as i } from "react/jsx-runtime";
2
+ import { memo as j, forwardRef as z, useState as s } from "react";
3
+ import { T as n, s as E, m as G, B as K, F as R, a as W, b as x, X, G as y } from "./F-RqJeKWiW4i5344.js";
4
+ /**
5
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.5
6
+ *
7
+ * (C) 2025-present SheetXL Inc. & Michael T. Ford
8
+ * License: The license can be found at https://www.sheetxl.com/license.
9
+ */
10
+ const q = ["Input"], Y = 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: v = ".autoFocus", cancelOption: m, defaultOption: g = d?.[0], ...C } = w, [k, V] = s(!1), [o, B] = s(T), [D, S] = s(""), [H, L] = s(!0), e = n(async (a, t) => {
12
+ if (!p) return !0;
13
+ const h = await p?.(a, t);
14
+ S(h?.message ?? "");
15
+ const O = h?.valid ?? !0;
16
+ return L(O), O;
17
+ }, [p]), f = n(async (a) => {
18
+ l?.(o, a);
19
+ }, [o, l, u, F, m, g]), M = n(async (a) => {
20
+ a.keyCode === E.Enter && await e?.(o, null);
21
+ }, [o, f]), N = n((a) => {
22
+ B(a.target.value), e?.(a.target.value, null);
23
+ }, [r]), $ = n(async (a) => {
24
+ let t = await e(o, a);
25
+ try {
26
+ t !== !1 && (t = await e(o, a));
27
+ } catch {
28
+ }
29
+ return t ?? !0;
30
+ }, [o, r]);
31
+ return i(G, { options: d, onDone: u, onOption: (a, t) => {
32
+ t || f(a);
33
+ }, onValidateOption: $, cancelOption: m, defaultOption: g, autoFocusSel: v, ...C, 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
+ 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: X("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
+ a.stopPropagation();
37
+ } }) }) }) });
38
+ }));
39
+ export {
40
+ Y as default
41
+ };
@@ -1,16 +1,16 @@
1
1
  import { jsx as d, jsxs as k } from "react/jsx-runtime";
2
2
  import { memo as E, useMemo as V, useState as p, useCallback as h } from "react";
3
- import { a7 as u, n as L, B as S, bn as A, bo as G } from "./Bq_HFm6_6_ycs_gE.mjs";
3
+ import { t as u, m as L, B as S, aO as A, aP as G } from "./F-RqJeKWiW4i5344.js";
4
4
  /**
5
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.4
5
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.5
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 M = ["Ok", "Cancel"], H = E((C) => {
11
- const { value: a = null, context: t, onOption: c, onValidateOption: U, onDone: m, onUpdate: g, options: x = M, defaultOption: f = x?.[0], cancelOption: N = "Cancel", sx: R, ...v } = C, y = V(() => t?.getNames().findValidName("Range1"), []), i = V(() => {
10
+ const M = ["Ok", "Cancel"], z = E((C) => {
11
+ const { value: a = null, context: t, onOption: c, onValidateOption: P, onDone: m, onUpdate: g, options: x = M, defaultOption: f = x?.[0], cancelOption: N = "Cancel", sx: R, ...v } = C, y = V(() => t?.getNames().findValidName("Range1"), []), i = V(() => {
12
12
  if (!a) return !0;
13
- }, []), [n, b] = p({ displayText: a?.getName() ?? y, errorText: null }), [l, w] = p({ displayValue: a?.getRanges() ?? t?.selection() ?? null, errorText: null }), [T, O] = p(!1), D = h(async (e) => !n.errorText && !l.errorText, [t]), F = u((e, s, r) => {
13
+ }, []), [n, w] = p({ displayText: a?.getName() ?? y, errorText: null }), [l, D] = p({ displayValue: a?.getRanges() ?? t?.selection() ?? null, errorText: null }), [T, O] = p(!1), F = h(async (e) => !n.errorText && !l.errorText, [t]), B = u((e, s, r) => {
14
14
  if (!s) {
15
15
  let o = null;
16
16
  i ? o = t?.getNames().addReference(n?.displayText, l?.displayValue, !1) : (a.getType() === "reference" && a.doBatch(() => {
@@ -18,26 +18,26 @@ const M = ["Ok", "Cancel"], H = E((C) => {
18
18
  }, `Edit Named '${n?.displayText}'`), o = a), o && (o.select(), g(o, i));
19
19
  }
20
20
  c?.(e, s, r), m?.();
21
- }, [t, n, l, m, c, f, N, g]), B = u((e) => {
21
+ }, [t, n, l, m, c, f, N, g]), I = u((e) => {
22
22
  let s = null;
23
23
  try {
24
24
  t?.getNames().validateName(e);
25
25
  } catch (r) {
26
26
  s = r.message;
27
27
  }
28
- b({ displayText: e, errorText: s });
29
- }, []), I = u((e) => {
28
+ w({ displayText: e, errorText: s });
29
+ }, []), b = u((e) => {
30
30
  a && a.getName().toLowerCase() === e.toLowerCase() || t?.getNames().validateName(e);
31
31
  }, [t, a]), j = h((e) => {
32
- w({ displayValue: e ?? null, errorText: null });
32
+ D({ displayValue: e ?? null, errorText: null });
33
33
  }, []);
34
- return d(L, { title: (i ? "Define" : "Edit") + " Range", options: x, onOption: F, onValidateOption: D, defaultOption: f, cancelOption: N, autoFocusSel: ".autoFocus", sx: { width: "460px", ...R }, ...v, children: k(S, { sx: { paddingTop: (e) => e.spacing(1), paddingBottom: (e) => e.spacing(0), rowGap: (e) => e.spacing(1), range: "flex", flexDirection: "column" }, children: [d(A, { formName: "name", defaultInput: y, value: n.displayText, onChangeInput: B, onValidate: I, onFocus: (e) => {
34
+ return d(L, { title: (i ? "Define" : "Edit") + " Range", options: x, onOption: B, onValidateOption: F, defaultOption: f, cancelOption: N, autoFocusSel: ".autoFocus", sx: { width: "460px", ...R }, ...v, children: k(S, { sx: { paddingTop: (e) => e.spacing(1), paddingBottom: (e) => e.spacing(0), rowGap: (e) => e.spacing(1), range: "flex", flexDirection: "column" }, children: [d(A, { formName: "name", defaultInput: y, value: n.displayText, onChangeInput: I, onValidate: b, onFocus: (e) => {
35
35
  T || e.target?.select(), O(!0);
36
36
  } }), d(G, { formName: "range", value: l.displayValue, onChangeInput: j, resolvedAddress: t.getNames().getRanges.bind(t.getNames()), onFocus: (e) => {
37
37
  T || e.target?.select(), O(!0);
38
38
  } })] }) });
39
39
  });
40
40
  export {
41
- H as NamedReferenceDialog,
42
- H as default
41
+ z as NamedReferenceDialog,
42
+ z as default
43
43
  };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.4
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.5
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.
@@ -0,0 +1,46 @@
1
+ import { jsx as o, jsxs as A } from "react/jsx-runtime";
2
+ import { memo as E, useMemo as b, useState as g, useCallback as O } from "react";
3
+ import { t as m, m as S, B as U, F as P, a as D, b as l, ay as p } from "./F-RqJeKWiW4i5344.js";
4
+ /**
5
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.5
6
+ *
7
+ * (C) 2025-present SheetXL Inc. & Michael T. Ford
8
+ * License: The license can be found at https://www.sheetxl.com/license.
9
+ */
10
+ const V = ["Ok", "Cancel"], J = E((F) => {
11
+ const { initialHyperlink: n = null, initialDisplay: H = null, onUpdateHyperlink: f, context: s, onOption: x, onValidateOption: r, onDone: d, options: h = V, defaultOption: c = h?.[0], cancelOption: i = "Cancel", sx: I, ...v } = F, w = b(() => (n ?? s?.()?.getHyperlink()) !== null, []), y = b(() => {
12
+ let a = null, t = null;
13
+ n && (typeof n == "string" ? t = n : a = n);
14
+ const C = a ?? s?.()?.getHyperlink();
15
+ return { address: t ?? C?.getAddress() ?? "", textToDisplay: C?.getDisplayText() ?? "" };
16
+ }, [n, s]), [e, M] = g(y.address), [u, B] = g(() => {
17
+ const a = s?.().toTextUnformatted() ?? H;
18
+ return a === y.address ? "" : a;
19
+ }), [$, k] = g(!1), L = O((a) => {
20
+ B(a.target.value);
21
+ }, []), T = O(async (a, t) => null, []), W = m(async (a) => {
22
+ a !== i && f?.(e === "" ? null : { address: e }, u), x?.(a, a === i, a === c), d?.();
23
+ }, [e, u, f, d, x, c, i]), j = m((a) => {
24
+ M(a.target.value), T(a.target.value, null);
25
+ }, [r]), z = m(async (a) => {
26
+ let t = await Promise.resolve(r?.(a));
27
+ try {
28
+ t !== !1 && (t = await T(e, a));
29
+ } catch {
30
+ }
31
+ return t ?? !0;
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", ...I }, ...v, 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
+ $ || a.target?.select(), k(!0);
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
+ a.stopPropagation();
37
+ } }) }), o(P, { sx: { paddingTop: (a) => a.spacing(1.5), minWidth: 135, width: "100%" }, size: "small", children: o(D, { label: "Display Text", placeholder: e?.startsWith("#") ? e.substring(1) : e, onFocus: () => {
38
+ k(!0);
39
+ }, sx: { "& .MuiFormHelperText-root": { marginTop: (a) => a.spacing(0.5) } }, InputLabelProps: { shrink: !0 }, InputProps: { inputProps: { 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: u, onChange: L, onContextMenu: (a) => {
40
+ a.stopPropagation();
41
+ } }) })] }) });
42
+ });
43
+ export {
44
+ J as HyperlinkDialog,
45
+ J as default
46
+ };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.4
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.5
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("./U_ihCP2tbaRnqD2g.js").then((e) => e.bH)]);
16
+ const o = await Promise.all([import("react"), import("react/jsx-runtime"), import("react-dom"), import("react-dom/client"), import("./F-RqJeKWiW4i5344.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 {