@sheetxl/studio-vanilla 0.3.3 → 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/{C-YXuaIn5H1e3gGL.cjs → -aNm3r-RpjcRRCbw.cjs} +2 -2
  2. package/browser/cjs/6e91IXsvk9_k3W5c.cjs +6 -0
  3. package/browser/cjs/{TJOJ_VEsTmCJ4d0P.cjs → BLHbDre9R0bvyb9G.cjs} +2 -2
  4. package/browser/cjs/BN0MiwKQ8NjKXgue.cjs +7 -0
  5. package/browser/cjs/BNtn_2pcq6Dd-2HL.cjs +11 -0
  6. package/browser/cjs/{-mcHZst9U0zNDZao.cjs → BW_fZwvTtMLqteuJ.cjs} +1 -1
  7. package/browser/cjs/{Dh5RBi3PW-5ty2QU.cjs → Bg9KIoDuqtkhIYfN.cjs} +1 -1
  8. package/browser/cjs/{D4a_UoEEluqny9gi.cjs → BiiW2FlRZHxGIWso.cjs} +1 -1
  9. package/browser/cjs/{pPJG7KbyLkcVi77H.cjs → Biyqj-Wu75uxLHv1.cjs} +2 -2
  10. package/browser/cjs/BwocMiKAPb8s__1Z.cjs +6 -0
  11. package/browser/cjs/{CSZ-Bfo-TZpVumqr.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/{VXCGmehGJvuKNhXg.cjs → Cxt39d6l0pu9k1vT.cjs} +8 -8
  15. package/browser/cjs/{DbSTC90BuNxq2k-j.cjs → D7NgrO__M-IUmM8o.cjs} +1 -1
  16. package/browser/cjs/{DnkioRlJqXrbcW-8.cjs → DCWZ2ZkLp-Horeca.cjs} +1 -1
  17. package/browser/cjs/DDhq2nYMdw5b7wP6.cjs +301 -0
  18. package/browser/cjs/{Bhq8u8Q04XpLmF4K.cjs → DIawrhwQ7E_1l99b.cjs} +6 -6
  19. package/browser/cjs/{BoBKeal3_qovATWu.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/{BnYTCcol8RjTTC3U.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/{WKvz7zs0yI8-TRzJ.cjs → yvA5FY7oe6FILMqB.cjs} +1 -1
  28. package/{cdn/assets/DAC77jdtNbZopLX5.js → browser/esm/BLsIMzjofsOnRFrU.mjs} +16 -16
  29. package/{cdn/assets/DQQK1YdQWQGsESk_.js → browser/esm/BTQ-TGJnw7w1Y0CX.mjs} +14 -14
  30. package/browser/esm/{BNixyL5UPlHciWwi.mjs → BdLAPrmXIfjGFhhA.mjs} +152 -152
  31. package/browser/esm/BsDYj6xix3mlXry2.mjs +46 -0
  32. package/browser/esm/Btk74VwCVJ1T5LQD.mjs +46 -0
  33. package/browser/esm/{DhFd9KX61TdmTNyk.mjs → C60KakDbde-A4anI.mjs} +1 -1
  34. package/browser/esm/{1Esqj-uAqAeHBGzU.mjs → CAm14rTtmPL5-rvQ.mjs} +193 -192
  35. package/browser/esm/{CZ9K3g_56s3hfJO0.mjs → CLTP12OHGQ2k4_Kt.mjs} +21 -20
  36. package/browser/esm/{BXkh5kfYj7Zx_PAe.mjs → CPWh2H15145LP-d5.mjs} +1 -1
  37. package/browser/esm/CYXzmWJtZn5OJVBF.mjs +24861 -0
  38. package/{cdn/assets/BQFdL0Ou_nLqI7lR.js → browser/esm/ChMaIhqaEhF3SLLt.mjs} +6 -6
  39. package/browser/esm/{nT3k8GnD4H3I293i.mjs → CntwHkPpskE88Ixu.mjs} +11 -10
  40. package/{cdn/assets/C1opHAkl00_vHPMO.js → browser/esm/CsVV_QnEl77BQM3V.mjs} +1 -1
  41. package/{cdn/assets/iHc25sW_jPEvAQNG.js → browser/esm/CvFAAktSd9TQK1h4.mjs} +1 -1
  42. package/browser/esm/{DwLRqrlPfv8xcbxB.mjs → D0-tgawYa4KXYT2c.mjs} +2 -2
  43. package/browser/esm/{B3iFtnvwZZ0izvkj.mjs → D244UwY3qPC_LNc5.mjs} +2 -2
  44. package/{cdn/assets/B1bRlKApOQZbRHvx.js → browser/esm/DCuLWmzd9eLWgI03.mjs} +1 -1
  45. package/{cdn/assets/Dwd9xRP6sCbvd7-2.js → browser/esm/DDD5zfwNNPKuc_zZ.mjs} +1 -1
  46. package/browser/esm/{BZD8sqVzxMPTV1eH.mjs → DFa_tXqv1VN1OZdv.mjs} +75 -74
  47. package/{cdn/assets/Cqq1J11IdNmbXlgF.js → browser/esm/DJxioSY-hxyM7dmk.mjs} +24 -23
  48. package/{cdn/assets/Dkcj5uYhkoaa5JJt.js → browser/esm/DdrICyX8Ead15N32.mjs} +7 -7
  49. package/{cdn/assets/vw_ELbpa8MGzVBfc.js → browser/esm/Di2tNceI3NodSsgU.mjs} +10 -10
  50. package/browser/esm/{B7RdrgkvZilWOBgD.mjs → Did46-x6ZVwk_-r-.mjs} +1 -1
  51. package/browser/esm/Q1yWEkJBu4cVEF33.mjs +1467 -0
  52. package/browser/esm/index.mjs +2 -2
  53. package/{cdn/assets/CtW_m0lUeW_X_FHB.js → browser/esm/mq5uPzTIc1x8unBP.mjs} +1 -1
  54. package/browser/esm/wziCLl5xvHu6Guu_.mjs +22 -0
  55. package/cdn/assets/B41q92oKD_VR31Dd.js +46 -0
  56. package/cdn/assets/{DJ3siDIdJVpw0GCs.js → BOl7blN8JotSzCHJ.js} +2 -2
  57. package/{browser/esm/CaLAEGMKeQ3INVEV.mjs → cdn/assets/Bs-psXrTRw1jFety.js} +14 -14
  58. package/cdn/assets/{3ijH6Pl-l2q9T5Ky.js → BzptX9H_YCM2l0DE.js} +11 -10
  59. package/cdn/assets/{DhFd9KX61TdmTNyk.js → C60KakDbde-A4anI.js} +1 -1
  60. package/{browser/esm/Bz98C5-blFN81GJ-.mjs → cdn/assets/C8omEbSXHWI_wNjp.js} +10 -10
  61. package/{browser/esm/C7cRxJLNfGjCT_Hk.mjs → cdn/assets/CEXK9SXjFf1dGHZe.js} +16 -16
  62. package/cdn/assets/{BXkh5kfYj7Zx_PAe.js → CPWh2H15145LP-d5.js} +1 -1
  63. package/cdn/assets/C_E1C68wCcRpC6XN.js +46 -0
  64. package/cdn/assets/{D5Ns-uBNTj4-Jo0p.js → ClFGbVy7cnhMW-dO.js} +2 -2
  65. package/cdn/assets/{C4Vp4GoCEGQgWaGc.js → CoCIP7n4THmzOggq.js} +75 -74
  66. package/{browser/esm/C1opHAkl00_vHPMO.mjs → cdn/assets/CsVV_QnEl77BQM3V.js} +1 -1
  67. package/{browser/esm/iHc25sW_jPEvAQNG.mjs → cdn/assets/CvFAAktSd9TQK1h4.js} +1 -1
  68. package/{browser/esm/CdJVpNbmXP_fHybW.mjs → cdn/assets/Cz33L9W3cdQckAL5.js} +24 -23
  69. package/{browser/esm/DTHujOSrUxuBuwud.mjs → cdn/assets/DBgbBl_3O65WhfWN.js} +6 -6
  70. package/{browser/esm/B1bRlKApOQZbRHvx.mjs → cdn/assets/DCuLWmzd9eLWgI03.js} +1 -1
  71. package/{browser/esm/Dwd9xRP6sCbvd7-2.mjs → cdn/assets/DDD5zfwNNPKuc_zZ.js} +1 -1
  72. package/cdn/assets/DLYF-18qErpwF9Q-.js +1467 -0
  73. package/cdn/assets/{Dk8MDG7PNGIWw80U.js → DXMyzCcyP7039z13.js} +238 -238
  74. package/{browser/esm/FXy016gXiiQkH7aF.mjs → cdn/assets/DdrICyX8Ead15N32.js} +7 -7
  75. package/cdn/assets/{B7RdrgkvZilWOBgD.js → Did46-x6ZVwk_-r-.js} +1 -1
  76. package/cdn/assets/{ukDxhSJqMPzLXoCP.js → Dj3GhNedlKE9TeTn.js} +193 -192
  77. package/cdn/assets/F-RqJeKWiW4i5344.js +24708 -0
  78. package/cdn/assets/{DirkLhQ9-HVY0eDv.js → NHbXgEQMftGzY01r.js} +21 -20
  79. package/cdn/assets/lM5it-aJgI7DLNH9.js +22 -0
  80. package/{browser/esm/CtW_m0lUeW_X_FHB.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/-q2o2lS8jxJdArvq.cjs +0 -6
  85. package/browser/cjs/-wP4OG5GpQTxGLJN.cjs +0 -6
  86. package/browser/cjs/2TmE8J3tbgenWyNa.cjs +0 -6
  87. package/browser/cjs/3ghCxtNVxZjrbziE.cjs +0 -6
  88. package/browser/cjs/6AlZR3dVayTg7C5E.cjs +0 -452
  89. package/browser/cjs/B0BcYYAX9Qq_i5Iv.cjs +0 -6
  90. package/browser/cjs/B237Hj6a3Klw9rQn.cjs +0 -12
  91. package/browser/cjs/B24aLncmXYgEQNjl.cjs +0 -6
  92. package/browser/cjs/B9C-V-MR_epPI-2J.cjs +0 -6
  93. package/browser/cjs/BASowCefqJFspuu-.cjs +0 -6
  94. package/browser/cjs/BeDnbSWoeqV6GajE.cjs +0 -6
  95. package/browser/cjs/BucBlzmuZS_nYU9N.cjs +0 -6
  96. package/browser/cjs/C662YNYNcFb-AwnS.cjs +0 -6
  97. package/browser/cjs/CGg3vZ0YENmM73uu.cjs +0 -6
  98. package/browser/cjs/CJ9WKDMLDxv2vmlL.cjs +0 -6
  99. package/browser/cjs/CcxjUuuq3eq1io9D.cjs +0 -6
  100. package/browser/cjs/Ch4kNO1QwQ4Dqczw.cjs +0 -124
  101. package/browser/cjs/CrXR8mOrQVdukohR.cjs +0 -6
  102. package/browser/cjs/CuLinKNAohDMFqJU.cjs +0 -6
  103. package/browser/cjs/D0Ruzl2vdZGdUhjE.cjs +0 -12
  104. package/browser/cjs/D4CfqUrC04nbs39G.cjs +0 -6
  105. package/browser/cjs/D6cHa8Tv5I8L_uAO.cjs +0 -6
  106. package/browser/cjs/D7MyL7xgt0wGGz3I.cjs +0 -13
  107. package/browser/cjs/D7U5Wmdc51Op-pty.cjs +0 -6
  108. package/browser/cjs/D9SYWsd_viMxXbL_.cjs +0 -6
  109. package/browser/cjs/DMIPzZRAbLsma6rR.cjs +0 -7
  110. package/browser/cjs/DPTxGnV0pA87nrhG.cjs +0 -32
  111. package/browser/cjs/DTtUhkXmo3x2L2GG.cjs +0 -6
  112. package/browser/cjs/DgBFcVOVhZuytQ4k.cjs +0 -6
  113. package/browser/cjs/DoCfDJUgwatpHG4J.cjs +0 -1501
  114. package/browser/cjs/Dwc5vGQ4nkaSmift.cjs +0 -6
  115. package/browser/cjs/GbU6d05bhcxQrAUD.cjs +0 -15
  116. package/browser/cjs/OW7aZPHGxXjRF38A.cjs +0 -6
  117. package/browser/cjs/WQBNSYPbQzvO23r-.cjs +0 -6
  118. package/browser/cjs/XF920uRM7LSmFp49.cjs +0 -6
  119. package/browser/cjs/XazDEHRGho7wJTUR.cjs +0 -6
  120. package/browser/cjs/Zjw2XvR7-Zfykt20.cjs +0 -6
  121. package/browser/cjs/eM5uLWq0QtvNN4O-.cjs +0 -6
  122. package/browser/cjs/gjPOOFOH_THG1O-L.cjs +0 -6
  123. package/browser/cjs/hhZA8Q_VAVRnX3Rz.cjs +0 -7
  124. package/browser/cjs/qjCnEqCfcXzLIady.cjs +0 -6
  125. package/browser/cjs/s238D5kFNyDNYzIV.cjs +0 -6
  126. package/browser/cjs/t-6Fa6b5-CXTHDjn.cjs +0 -6
  127. package/browser/cjs/zvHV2c0_QPS3v2Wt.cjs +0 -11
  128. package/browser/esm/B-v14ikVOXpmpHCI.mjs +0 -5560
  129. package/browser/esm/B1M7fpFXcO34FZ5C.mjs +0 -29
  130. package/browser/esm/B6nZCfPr7UmxzAi6.mjs +0 -48671
  131. package/browser/esm/B7k3pb4haBsw-Yvr.mjs +0 -10
  132. package/browser/esm/B8ajmWm1J-ZsmBzK.mjs +0 -10
  133. package/browser/esm/BGvKR9TNj2ORlcKm.mjs +0 -10
  134. package/browser/esm/Bc8y371ooCwvBkRs.mjs +0 -10
  135. package/browser/esm/BezHCUZawkIGzzUm.mjs +0 -422
  136. package/browser/esm/BnxMjyy6JPTUe9Lg.mjs +0 -10
  137. package/browser/esm/BskzQvqHyjuVccIH.mjs +0 -22
  138. package/browser/esm/BzS_V6RkpVpk_d1w.mjs +0 -472
  139. package/browser/esm/CM--Vw5PcrLIXc8O.mjs +0 -12
  140. package/browser/esm/CflOcniWVa_VR5Wy.mjs +0 -10
  141. package/browser/esm/Cn9w-KgbsxAKNj6s.mjs +0 -10
  142. package/browser/esm/D6KdwQgZEBMy0260.mjs +0 -10
  143. package/browser/esm/DAOw8vm-XsJ_n7BK.mjs +0 -10
  144. package/browser/esm/DIKvxkHBBvYo2rnC.mjs +0 -10
  145. package/browser/esm/DNVkA-vwqtIw6aKf.mjs +0 -1575
  146. package/browser/esm/DTS0EgQuwHdS5aQN.mjs +0 -10
  147. package/browser/esm/DaeiyDhcdRvg5nGs.mjs +0 -1466
  148. package/browser/esm/DeSyxK8Ibb-tIa67.mjs +0 -10
  149. package/browser/esm/DgPz063GFvbhOHHK.mjs +0 -10
  150. package/browser/esm/Di8gWiOWhfFzcOuw.mjs +0 -21
  151. package/browser/esm/Dlg7LT4wsJCPSTCT.mjs +0 -46
  152. package/browser/esm/DqDxWoCftkWurpDk.mjs +0 -10
  153. package/browser/esm/DupExqAEenu5ZS6G.mjs +0 -820
  154. package/browser/esm/Dy1zdTKMeT50nXcy.mjs +0 -10
  155. package/browser/esm/Dz_O3du2SrhYK47v.mjs +0 -10
  156. package/browser/esm/IbCi65rCiiLS_OGe.mjs +0 -46
  157. package/browser/esm/R2Li5a5IPMuoQEGD.mjs +0 -10
  158. package/browser/esm/SWzqhkO1HABv0bfG.mjs +0 -10
  159. package/browser/esm/VDflSVY_vwi7ZcHQ.mjs +0 -3922
  160. package/browser/esm/dAJOajC7rsn3_hWk.mjs +0 -10
  161. package/browser/esm/fvsQWBiDZg7zRYOa.mjs +0 -10
  162. package/browser/esm/o8Z04Tjc17JBUDsL.mjs +0 -10
  163. package/browser/esm/qbGHKDeXrxvghjMt.mjs +0 -24
  164. package/browser/esm/uk5NsqjbkRuKv1vU.mjs +0 -10
  165. package/cdn/assets/B2P82Dvadjo7-hRY.js +0 -1466
  166. package/cdn/assets/B7k3pb4haBsw-Yvr.js +0 -10
  167. package/cdn/assets/B8ajmWm1J-ZsmBzK.js +0 -10
  168. package/cdn/assets/BFDOApZozGNnJdxs.js +0 -46
  169. package/cdn/assets/BGvKR9TNj2ORlcKm.js +0 -10
  170. package/cdn/assets/BJgFwyqDjKdTH0xW.js +0 -422
  171. package/cdn/assets/BKxjmGpW0pe8KUzm.js +0 -472
  172. package/cdn/assets/Bc8y371ooCwvBkRs.js +0 -10
  173. package/cdn/assets/BnxMjyy6JPTUe9Lg.js +0 -10
  174. package/cdn/assets/CM--Vw5PcrLIXc8O.js +0 -12
  175. package/cdn/assets/COS-oUtP1lQi0Hd8.js +0 -22
  176. package/cdn/assets/CSxbcCsSh3AdRzkk.js +0 -3922
  177. package/cdn/assets/CflOcniWVa_VR5Wy.js +0 -10
  178. package/cdn/assets/Cn9w-KgbsxAKNj6s.js +0 -10
  179. package/cdn/assets/Cqyz2pkIcU2pAivO.js +0 -5560
  180. package/cdn/assets/CuYtiG4SP9OK6dJP.js +0 -1575
  181. package/cdn/assets/D6KdwQgZEBMy0260.js +0 -10
  182. package/cdn/assets/DAOw8vm-XsJ_n7BK.js +0 -10
  183. package/cdn/assets/DCwhACFXcpYD60H9.js +0 -820
  184. package/cdn/assets/DIKvxkHBBvYo2rnC.js +0 -10
  185. package/cdn/assets/DOLBqVto8cJdYLWp.js +0 -46
  186. package/cdn/assets/DTS0EgQuwHdS5aQN.js +0 -10
  187. package/cdn/assets/DeSyxK8Ibb-tIa67.js +0 -10
  188. package/cdn/assets/Dew12-owBXPNmL1S.js +0 -29
  189. package/cdn/assets/DgPz063GFvbhOHHK.js +0 -10
  190. package/cdn/assets/Di8gWiOWhfFzcOuw.js +0 -21
  191. package/cdn/assets/DqDxWoCftkWurpDk.js +0 -10
  192. package/cdn/assets/Dy1zdTKMeT50nXcy.js +0 -10
  193. package/cdn/assets/Dz_O3du2SrhYK47v.js +0 -10
  194. package/cdn/assets/G9bfOnISYlZUeW4U.js +0 -48518
  195. package/cdn/assets/R2Li5a5IPMuoQEGD.js +0 -10
  196. package/cdn/assets/SWzqhkO1HABv0bfG.js +0 -10
  197. package/cdn/assets/dAJOajC7rsn3_hWk.js +0 -10
  198. package/cdn/assets/fvsQWBiDZg7zRYOa.js +0 -10
  199. package/cdn/assets/o8Z04Tjc17JBUDsL.js +0 -10
  200. package/cdn/assets/qbGHKDeXrxvghjMt.js +0 -24
  201. package/cdn/assets/uk5NsqjbkRuKv1vU.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 "./B6nZCfPr7UmxzAi6.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.3
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.3
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
+ };
@@ -0,0 +1,46 @@
1
+ import { Workbook as y, IRange as C } from "@sheetxl/sdk";
2
+ /**
3
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.5
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
+ const k = async (a, p) => {
9
+ const { trimLeadingBlankRow: i = !0, trimLeadingBlankColumn: u = !0, excludeHidden: h = !1, sheetKey: r = null, papaParseConfig: m = {} } = p || {}, f = await import("./CsVV_QnEl77BQM3V.js").then((s) => s.p);
10
+ if (!a) throw new Error("workbook must be specified");
11
+ let t = null;
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
+ let c = null;
14
+ const d = [];
15
+ let e = null, n = t.getUsedRange({ excludeHidden: h });
16
+ if (!n) throw new Error("Nothing to export");
17
+ if (!i || !u) {
18
+ const s = i ? n.getRowStart() : 0, l = u ? n.getColumnStart() : 0;
19
+ n = n.getOffsetTo(s, l);
20
+ }
21
+ n.forEach((s, l) => {
22
+ const w = l.getCoords(), x = l.getCell();
23
+ c !== w.rowIndex && (e && d.push(e), e = [], c = w.rowIndex);
24
+ const S = x.toTextUnformatted() ?? "";
25
+ e.push(S);
26
+ }, { includeEmpty: !0, address: null }), e && d.push(e);
27
+ const o = { ...m }, g = f.unparse(d, o);
28
+ return new TextEncoder().encode(g);
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
+ let f = -1;
32
+ const t = new y(h), c = t.getSelectedSheet().getEntireRange().startIncrementalUpdates({ orientation: C.Orientation.Row }), d = p?.onProgress;
33
+ let e = 0;
34
+ const n = { ...i, transform: (o, g) => {
35
+ i?.transform && (o = i.transform(o, g));
36
+ const s = g;
37
+ s === 0 && f++;
38
+ let l = o ?? "";
39
+ return c.pushAt(f, s, l), e++, e % 1e5 == 0 && d?.(e), o;
40
+ } };
41
+ return r.parse(m, n).data, c.apply({ textParser: !0, ...u }), t;
42
+ };
43
+ export {
44
+ R as fromBufferCSV,
45
+ k as toBufferCSV
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 { W as os, J as as, s as is, c as us, u as Su, h as ss, i as xt } from "./G9bfOnISYlZUeW4U.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.3
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,20 +1,20 @@
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, c 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 "./B6nZCfPr7UmxzAi6.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.3
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, H] = M((e) => e + 1, 0), [B, { 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
- H();
17
+ B();
18
18
  } });
19
19
  const L = x((e) => {
20
20
  o?.table().setName(e);
@@ -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: B, 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, T as O, c as H, b1 as s, b2 as l, q as r } from "./G9bfOnISYlZUeW4U.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.3
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 x = ({ 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
- x as SortDialog,
22
- x 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.3
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.
@@ -1,14 +1,14 @@
1
1
  import { jsx as i } from "react/jsx-runtime";
2
2
  import { memo as j, forwardRef as z, useState as s } from "react";
3
- import { B as n, o as E, T as K, c as R, F as W, f as q, g as x, D as A, k as y } from "./B6nZCfPr7UmxzAi6.mjs";
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
4
  /**
5
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.3
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 G = ["Input"], Y = j(z((w, J) => {
11
- const { initialValue: T = "", onOption: F, onValidateOption: r, onInputOption: l, onValidateInputOption: p, onDone: c, inputProps: u, inputLabel: I, inputType: P, inputPlaceHolder: k, options: d = G, autoFocusSel: v = ".autoFocus", cancelOption: g, defaultOption: m = d?.[0], ...C } = w, [b, D] = s(!1), [o, V] = s(T), [B, S] = s(""), [H, L] = s(!0), e = n(async (a, t) => {
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
12
  if (!p) return !0;
13
13
  const h = await p?.(a, t);
14
14
  S(h?.message ?? "");
@@ -16,10 +16,10 @@ const G = ["Input"], Y = j(z((w, J) => {
16
16
  return L(O), O;
17
17
  }, [p]), f = n(async (a) => {
18
18
  l?.(o, a);
19
- }, [o, l, c, F, g, m]), M = n(async (a) => {
19
+ }, [o, l, u, F, m, g]), M = n(async (a) => {
20
20
  a.keyCode === E.Enter && await e?.(o, null);
21
21
  }, [o, f]), N = n((a) => {
22
- V(a.target.value), e?.(a.target.value, null);
22
+ B(a.target.value), e?.(a.target.value, null);
23
23
  }, [r]), $ = n(async (a) => {
24
24
  let t = await e(o, a);
25
25
  try {
@@ -28,11 +28,11 @@ const G = ["Input"], Y = j(z((w, J) => {
28
28
  }
29
29
  return t ?? !0;
30
30
  }, [o, r]);
31
- return i(K, { options: d, onDone: c, onOption: (a, t) => {
31
+ return i(G, { options: d, onDone: u, onOption: (a, t) => {
32
32
  t || f(a);
33
- }, onValidateOption: $, cancelOption: g, defaultOption: m, autoFocusSel: v, ...C, children: i(R, { sx: { paddingTop: (a) => a.spacing(1), paddingBottom: (a) => a.spacing(0) }, children: i(W, { sx: { paddingTop: (a) => a.spacing(1.5), minWidth: 135, width: "100%" }, size: "small", children: i(q, { onFocus: (a) => {
34
- b || a.target?.select(), D(!0);
35
- }, type: P, label: I, helperText: B || " ", sx: { width: "100%", "& .MuiFormHelperText-root": { marginTop: (a) => a.spacing(0.5), color: H ? void 0 : "error.main" } }, InputLabelProps: { shrink: !0 }, InputProps: { inputProps: { placeholder: k, spellCheck: !1, autoComplete: "off", ...u, className: A("autoFocus", u?.className), sx: { paddingTop: (a) => a.spacing(1.25), paddingBottom: (a) => a.spacing(0.75), backgroundImage: `linear-gradient(${x("#fff", y(5))}, ${x("#fff", y(5))})` } } }, value: o, onChange: N, onKeyDown: M, onContextMenu: (a) => {
33
+ }, onValidateOption: $, cancelOption: 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
36
  a.stopPropagation();
37
37
  } }) }) }) });
38
38
  }));
@@ -1,16 +1,16 @@
1
- import { jsx as d, jsxs as B } from "react/jsx-runtime";
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, T as L, c as S, bn as A, bo as G } from "./B6nZCfPr7UmxzAi6.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.3
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, T = 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() ?? T, errorText: null }), [l, w] = p({ displayValue: a?.getRanges() ?? t?.selection() ?? null, errorText: null }), [y, 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(() => {
@@ -25,19 +25,19 @@ const M = ["Ok", "Cancel"], H = E((C) => {
25
25
  } catch (r) {
26
26
  s = r.message;
27
27
  }
28
- b({ displayText: e, errorText: s });
29
- }, []), j = 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
- }, [t, a]), k = h((e) => {
32
- w({ displayValue: e ?? null, errorText: null });
31
+ }, [t, a]), j = h((e) => {
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: B(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: T, value: n.displayText, onChangeInput: I, onValidate: j, onFocus: (e) => {
35
- y || e.target?.select(), O(!0);
36
- } }), d(G, { formName: "range", value: l.displayValue, onChangeInput: k, resolvedAddress: t.getNames().getRanges.bind(t.getNames()), onFocus: (e) => {
37
- y || e.target?.select(), O(!0);
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
+ T || e.target?.select(), O(!0);
36
+ } }), d(G, { formName: "range", value: l.displayValue, onChangeInput: j, resolvedAddress: t.getNames().getRanges.bind(t.getNames()), onFocus: (e) => {
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.3
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.3
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("./G9bfOnISYlZUeW4U.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 {