@sheetxl/studio-vanilla 0.2.0 → 0.3.0

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 (181) hide show
  1. package/LICENSE.md +11 -11
  2. package/README.md +97 -97
  3. package/browser/cjs/{SlClv0PVM92ztDVX.cjs → 3QL6_jTFdiirmbvL.cjs} +1 -1
  4. package/browser/cjs/{EDXMGSUZ8UQwkC7X.cjs → 733JB7rykyRwGt4E.cjs} +1 -1
  5. package/browser/cjs/{lkPV98fiKomQSCgR.cjs → 7_gN0Iu07E3GI7B1.cjs} +1 -1
  6. package/browser/cjs/{Bc2L0UJqPhPBwffj.cjs → 8igELOAHTBTibdxC.cjs} +1 -1
  7. package/browser/cjs/{CZkpEBAASzQBi8Bh.cjs → 99Nzn-PICRpNSUxm.cjs} +1 -1
  8. package/browser/cjs/{CmE57C_yA3jFIZos.cjs → B4tuWKTrIZsK5so4.cjs} +3 -3
  9. package/browser/cjs/{aWHOn3DaVbuU-ftK.cjs → B5_w23_mUAW0fmJf.cjs} +2 -2
  10. package/browser/cjs/{C0XmerLLqwaaqZ2o.cjs → B6YGJGvRNGuQ9_gp.cjs} +1 -1
  11. package/browser/cjs/{CJ9-quYDqOBB3oUV.cjs → BBRsvQi2qwf1nduI.cjs} +1 -1
  12. package/browser/cjs/{D5yPr453o--2fxmV.cjs → BBXoDmENVubxlArs.cjs} +4 -4
  13. package/browser/cjs/{DHFmQHgKgcFMFahD.cjs → BFLfq3S9KpGbl7Sg.cjs} +8 -8
  14. package/browser/cjs/{DVrhH2z9cGZBKu17.cjs → BFjFhtH4OqOirVjz.cjs} +32 -32
  15. package/browser/cjs/{BhQQmCaRq2RYxUie.cjs → BXfPkTrM6foeVPwk.cjs} +3 -3
  16. package/browser/cjs/{OpNWiW6pYHuJVaKY.cjs → BdCoE_M8e0hB71qX.cjs} +1 -1
  17. package/browser/cjs/{Bn43jSsdzLy_636p.cjs → BeR1ChCVTFwB5yHv.cjs} +3 -3
  18. package/browser/cjs/{AP-t2KCT_0bR_o4t.cjs → BgcoRkkmbBckGLPB.cjs} +1 -1
  19. package/browser/cjs/{Dy__fkEF_Jzrlf1D.cjs → Bjus8Eiw4cFgUHkk.cjs} +1 -1
  20. package/browser/cjs/{Be-w6Cc2N61jNFQe.cjs → BlYWr2BKhS18L5sc.cjs} +3 -3
  21. package/browser/cjs/{l1xXc-zCzzVSj1HN.cjs → Bqucdx31CZbbWECx.cjs} +4 -4
  22. package/browser/cjs/{B_pNdVIK1HzlKFSF.cjs → Br9jR9D1r5-o3MNY.cjs} +2 -2
  23. package/browser/cjs/{Cor1JV8jzd6HA1O9.cjs → ByAzlBbjSnhZyx7J.cjs} +5 -5
  24. package/browser/cjs/{CGnlC13lMNbZh3sP.cjs → BzHjhROODDie_GcY.cjs} +1 -1
  25. package/browser/cjs/{DtcLPs_dQHEN3bGR.cjs → C0s5F1POfARzrKP5.cjs} +3 -3
  26. package/browser/cjs/{CNs9_6duMD0PXHwG.cjs → C5jc-Y-Hgl0f-Bdo.cjs} +1 -1
  27. package/browser/cjs/{Cv80JVA2XYzBCaWN.cjs → C7zut22tCoRegV_d.cjs} +2 -2
  28. package/browser/cjs/{C6x5hrvJ433bQqqH.cjs → CFIXzpjjBJD9Ssfu.cjs} +3 -3
  29. package/browser/cjs/{Mdv1yV9ud45PsKRt.cjs → CMsqJV9uPQCkxjr1.cjs} +2 -2
  30. package/browser/cjs/{CgkUiG5Wgg1HcTYa.cjs → CPy6BZgWgaukH2wr.cjs} +1 -1
  31. package/browser/cjs/{CvhmZqLTDmkFauCs.cjs → CU_BzP7b4cIkOp0W.cjs} +2 -2
  32. package/browser/cjs/{Bbyd4sAM90GSqJqn.cjs → Cd5lC1p9vwmY8bXk.cjs} +4 -4
  33. package/browser/cjs/{DlBZXaCX3LQRptut.cjs → Cpw1pytHjcWHlrs5.cjs} +1 -1
  34. package/browser/cjs/{DHCCNLh27I_BglIv.cjs → Cq6nKXJncTvIPDs0.cjs} +5 -5
  35. package/browser/cjs/{C_iTpFgxZv6g-7m3.cjs → Cw23_9oAnZq0oGKM.cjs} +3 -3
  36. package/browser/cjs/{D6FNtKftCwyAwxsN.cjs → D0RwDzLW2tAOaOgp.cjs} +4 -4
  37. package/browser/cjs/{CuhJX_xGez7yc6zi.cjs → D1F49z1BTQNLc001.cjs} +2 -2
  38. package/browser/cjs/{-WimOX-_by9saCOH.cjs → D3jW9_q5k1lOmEQd.cjs} +8 -8
  39. package/browser/cjs/{km4BoFU87-pNNG5J.cjs → D6JdKwLNWc3ioSMm.cjs} +2 -2
  40. package/browser/cjs/{3w2ISP4JjVNmzrqs.cjs → DAEWVQt08NYEEiDp.cjs} +1 -1
  41. package/browser/cjs/{BZm3G8SHFhqXJ5Jo.cjs → DE8l2rQfo2VVUkcB.cjs} +4 -4
  42. package/browser/cjs/{prKrG5YAJ4ExfXHY.cjs → DIh6OO396kZjKhj2.cjs} +7 -7
  43. package/browser/cjs/{CU9y9CiXOR7IFAGB.cjs → DOfe_n57c-AmDBXL.cjs} +1 -1
  44. package/browser/cjs/{Bk9rYrDDbmByf-Kk.cjs → DVih-qsORYLFDJ00.cjs} +2 -2
  45. package/browser/cjs/{Cm19hoZFOQ4T_DTY.cjs → DVziX7RxofEvjdaZ.cjs} +2 -2
  46. package/browser/cjs/{geVI0OFpbRur4kxL.cjs → DW3yV3bFjBYU9FNp.cjs} +6 -6
  47. package/browser/cjs/{BDK2YaQ_WdlP_HdF.cjs → DdAp7pgJ74tC2bXc.cjs} +1 -1
  48. package/browser/cjs/{vpaDUo2WrdrlUWox.cjs → Dg-_EjDMveR9eAsS.cjs} +4 -4
  49. package/browser/cjs/{20oq16RduoK6IuCZ.cjs → Dqytj5avvhy0OfcQ.cjs} +2 -2
  50. package/browser/cjs/{CKfjvO-C5oBByvM4.cjs → Du3dcmxNI2FligcT.cjs} +1 -1
  51. package/browser/cjs/{rhwBn9bJGM1fHTpT.cjs → Dy8SVjsVQet5vLuM.cjs} +1 -1
  52. package/browser/cjs/{CUVcl_8fwvLTl8ZO.cjs → UaNxxw6ywOxwUm2P.cjs} +1 -1
  53. package/browser/cjs/{HL5BOFnf4XtzdqsS.cjs → VjVwC7Tg9iSVxZ_e.cjs} +2 -2
  54. package/browser/cjs/{B9REtaIpAi8F35id.cjs → cXKpamD3YJ7T7UIy.cjs} +3 -3
  55. package/browser/cjs/{C0KkDFATEXukfl0j.cjs → heo8nWRKxUNJeEc8.cjs} +2 -2
  56. package/browser/cjs/index.cjs +2 -2
  57. package/browser/cjs/{B5cV1UMP1UkKFRbL.cjs → jspcRaFi7FlNoOCi.cjs} +2 -2
  58. package/browser/cjs/{0kdpEwmehekH9O3t.cjs → mQf_DGFtPLC3XOGK.cjs} +1 -1
  59. package/browser/cjs/{C_JmjXjXg6Ycl_t6.cjs → pXJLtwMuQqVtfxDh.cjs} +1 -1
  60. package/browser/cjs/{DCgPUnL0Q5bTnusO.cjs → s-6Dp8AeCjfET6lC.cjs} +1 -1
  61. package/browser/cjs/{Dg5Lf7y1Os-1BWfx.cjs → wHFkNUwHgS4n79oY.cjs} +5 -5
  62. package/browser/esm/{2IFG1EGZ4BstfzzO.mjs → B0bFoOwu-SXqZdUA.mjs} +3 -3
  63. package/browser/esm/{E1R5xcWEyFUGz77Z.mjs → B3SIwz6UDnshg1xz.mjs} +3 -3
  64. package/browser/esm/{Dx35iUB-nAeCONTU.mjs → BF4cNyvUhV9e9yfu.mjs} +3 -3
  65. package/browser/esm/{LeqWxgpETsBLfM9S.mjs → BGHKmUXsDDoutTYQ.mjs} +2 -2
  66. package/browser/esm/{CEVdjgbSOkqM6gks.mjs → BaOp0-PqOpggAmtp.mjs} +3 -3
  67. package/browser/esm/{Fz-AZts2Lk6VgGtn.mjs → BeFmG8d-eHZsiUqR.mjs} +3 -3
  68. package/{cdn/assets/B5KblpU6ojvwGzld.js → browser/esm/BieQsUFphd-4Dl2o.mjs} +4 -4
  69. package/browser/esm/{HacQNvE-qbx_RTGf.mjs → BjJVmzUi3VgBwYWL.mjs} +3 -3
  70. package/browser/esm/{DqXAqUrCxY0s8eeL.mjs → Bn5K2xW-LDe4UKiG.mjs} +3 -3
  71. package/browser/esm/{Bv1kyZi_CNzyU0wM.mjs → Bqjg7PBsD1qpWapS.mjs} +3 -3
  72. package/browser/esm/{B_hQhGpEdNfdeECK.mjs → BqvvewQdU3dKato4.mjs} +8 -8
  73. package/browser/esm/{Cax3Gy4JS-lKyNWa.mjs → C53n3eOUOu4IDUnv.mjs} +3 -3
  74. package/browser/esm/{Cn4WWNIcHjVkozcN.mjs → CB7PEr_-y0BQWtqs.mjs} +6 -6
  75. package/browser/esm/{Cc8UhQeIi2R9xhLi.mjs → CDdRITGs1_hk1Kax.mjs} +4 -4
  76. package/{cdn/assets/B0J3pDq63QrDj6C-.js → browser/esm/CGCghKS4Jl7fGewC.mjs} +3 -3
  77. package/browser/esm/{D46R0vc8EDXOBoB8.mjs → CKJke70LtH4vX8Yy.mjs} +3 -3
  78. package/{cdn/assets/BF1UCuG25TaPe6Ah.js → browser/esm/CPlfXwZn952WQ8tu.mjs} +3 -3
  79. package/browser/esm/{DnBoGLFyl-sTKtCF.mjs → CRSV-894QtiDUmtJ.mjs} +7 -7
  80. package/browser/esm/{O3I_0JA16jsotYlO.mjs → CUR7HVbE-MYKeGoV.mjs} +5 -5
  81. package/{cdn/assets/i_EWmXLQe018WFIv.js → browser/esm/CVXeIfSHxFnpUSYz.mjs} +3 -3
  82. package/browser/esm/{C8Fp63LtXp1k3LSF.mjs → CYszs6SwCHoEdnWR.mjs} +3 -3
  83. package/browser/esm/{DUcfLyiXz-VgaOB4.mjs → CYvdymNohZi87Vmf.mjs} +4 -4
  84. package/browser/esm/{CdvMkp-EeYeQltyS.mjs → CZfsDeVlXP4VI0uK.mjs} +5 -5
  85. package/{cdn/assets/BrCaMwnNcblmuzDh.js → browser/esm/CZj7MpGmmgaB8lkL.mjs} +4 -4
  86. package/browser/esm/{SOdH8hP_uNxWw-D3.mjs → Cbs-rx1iLGiLCCUn.mjs} +50 -50
  87. package/browser/esm/{B5opv-736KpN6Bi4.mjs → Cfp-IQYhF8wI3U8j.mjs} +3 -3
  88. package/{cdn/assets/Cndg80xEbFcHtUn8.js → browser/esm/CnShx-cVURfKpVVG.mjs} +3 -3
  89. package/{cdn/assets/nVijr2StbdDY2e13.js → browser/esm/Cow5a04f6LqFGoQZ.mjs} +3 -3
  90. package/browser/esm/{Cwv4yqC_zytSa0P_.mjs → CsKXDEU_EhKwgwa2.mjs} +3 -3
  91. package/browser/esm/{DjDxVGn7JWBs4o5m.mjs → CwpligBAfWbwjv90.mjs} +3 -3
  92. package/browser/esm/{B47M3lFfW1t_gJZB.mjs → CxaMQw-I5c8XLq_x.mjs} +3 -3
  93. package/browser/esm/{BcdbwecLVoeuhtZL.mjs → Cz7ockkCtKQwddun.mjs} +6 -6
  94. package/browser/esm/{Iijcha1XE-c7OLNH.mjs → D2GULUblN-TF8TA3.mjs} +3 -3
  95. package/{cdn/assets/fHJOSOgVU027xNw-.js → browser/esm/D8I1NKgZQBM1OlB_.mjs} +3 -3
  96. package/{cdn/assets/D9C7gLp0kAPSxLtC.js → browser/esm/DE5GJPPKB9akZnOl.mjs} +3 -3
  97. package/browser/esm/{DPMEubfbdRv-vumV.mjs → DMc9rEXgTnQiUhVu.mjs} +3 -3
  98. package/browser/esm/{C9rK8RP4620RgQRS.mjs → DXky7q8UrsTfgOl6.mjs} +4 -4
  99. package/browser/esm/{B4x_WFSNRisMp9PK.mjs → D_mjyyaB1h7KHEAu.mjs} +3 -3
  100. package/browser/esm/{DcalwsKAfxQkC6tj.mjs → Dakx8EXKki7IUQWD.mjs} +4 -4
  101. package/{cdn/assets/DHkuZlzTuYV7YCeQ.js → browser/esm/DbbapxCRGpFogl_Q.mjs} +3 -3
  102. package/browser/esm/{C2gQBMYenqlI4flQ.mjs → Dbr6KB-IYBe-9CSb.mjs} +2 -2
  103. package/{cdn/assets/BuITsWgwvy1VWF9E.js → browser/esm/DeZqllxB8Fy4CjwJ.mjs} +3 -3
  104. package/{cdn/assets/DLUJaAlJp56PRHun.js → browser/esm/DhVke7KHq6lbQPZg.mjs} +3 -3
  105. package/browser/esm/{BZLFUPFZsWWl5XLX.mjs → DmwBpm4ERYyxSyyJ.mjs} +4 -4
  106. package/browser/esm/{BAYPWLjfgtuLg9qb.mjs → DpDIV4Iz_niumLpB.mjs} +3 -3
  107. package/browser/esm/{CDaAJggrXrOWRzgK.mjs → DwdX0RUFwrRrBtRA.mjs} +3 -3
  108. package/browser/esm/{D5VtB2hD3rvXyASS.mjs → HiDBwKQDu71n9dYT.mjs} +5 -5
  109. package/{cdn/assets/BuLL5OjBqMXUfH_A.js → browser/esm/Jv_Qhh-WUFMrxoID.mjs} +3 -3
  110. package/{cdn/assets/DYYzLaxXk8APXqEA.js → browser/esm/OGU71t0PDjtl3-M4.mjs} +3 -3
  111. package/browser/esm/{CNBg-OXuJX_EAZbw.mjs → TTYba_o2v8b2WWvm.mjs} +8 -8
  112. package/browser/esm/{BnjAI3vOpDYyQnou.mjs → Xxw0Y9hXxIwKKGPq.mjs} +3 -3
  113. package/{cdn/assets/CGlDo4wLUay4UXgF.js → browser/esm/ako9wmFN1XdkwSc1.mjs} +3 -3
  114. package/browser/esm/{BZv9jzgaGtXaiw5W.mjs → dYh86bRPKzI8ASeR.mjs} +3 -3
  115. package/browser/esm/{DVkLRz76XK91mLT7.mjs → iC6qNNMVatdQ7tzG.mjs} +3 -3
  116. package/browser/esm/index.mjs +2 -2
  117. package/browser/esm/{LeCCKiCnwske3JLp.mjs → rBWM2hNaaS5ELSY5.mjs} +8 -8
  118. package/{cdn/assets/07UGdEPZU4KgWAFN.js → browser/esm/sXwOwWbIPvtOcCOv.mjs} +3 -3
  119. package/{cdn/assets/CW2IdN3hA6cq5VBE.js → browser/esm/tUcACmQVgT_vQZRd.mjs} +3 -3
  120. package/{cdn/assets/CaLVQxWxp8lj_uyA.js → browser/esm/vBbdzr5TIj8oCBOQ.mjs} +3 -3
  121. package/cdn/assets/{B65mMi6-TRcnqOOr.js → 0KJ23PTXKNiflMEW.js} +3 -3
  122. package/cdn/assets/{BQ01ovyBt4DHdfm2.js → 3Oauro-m0-iFcqzH.js} +4 -4
  123. package/cdn/assets/{2IFG1EGZ4BstfzzO.js → B0bFoOwu-SXqZdUA.js} +3 -3
  124. package/cdn/assets/{E1R5xcWEyFUGz77Z.js → B3SIwz6UDnshg1xz.js} +3 -3
  125. package/cdn/assets/{BNF7gs2KIOp7CydV.js → B7MrO9H4Wh3DRVKy.js} +6 -6
  126. package/cdn/assets/{LeqWxgpETsBLfM9S.js → BGHKmUXsDDoutTYQ.js} +2 -2
  127. package/cdn/assets/{kj_NK4e2v-YDlOeA.js → BRJtUnAFvJgElG8C.js} +6 -6
  128. package/cdn/assets/{HacQNvE-qbx_RTGf.js → BjJVmzUi3VgBwYWL.js} +3 -3
  129. package/cdn/assets/{DqXAqUrCxY0s8eeL.js → Bn5K2xW-LDe4UKiG.js} +3 -3
  130. package/cdn/assets/{Bv1kyZi_CNzyU0wM.js → Bqjg7PBsD1qpWapS.js} +3 -3
  131. package/cdn/assets/{DltmvgX7cDRP7eGG.js → BzLOGtjuaZ3Mji-F.js} +8 -8
  132. package/cdn/assets/{Cax3Gy4JS-lKyNWa.js → C53n3eOUOu4IDUnv.js} +3 -3
  133. package/cdn/assets/{BelDTrwOGyChPcGE.js → C9pcd-6v0BwN-Nrg.js} +3 -3
  134. package/cdn/assets/{CWUdMl8HI6xopPZx.js → CC2fNxNRteCEEFhk.js} +4 -4
  135. package/cdn/assets/{Cc8UhQeIi2R9xhLi.js → CDdRITGs1_hk1Kax.js} +4 -4
  136. package/{browser/esm/B0J3pDq63QrDj6C-.mjs → cdn/assets/CGCghKS4Jl7fGewC.js} +3 -3
  137. package/cdn/assets/{DS4jen3n-p1f1Suv.js → CGc5eC8iV73B-vAE.js} +2 -2
  138. package/cdn/assets/{D46R0vc8EDXOBoB8.js → CKJke70LtH4vX8Yy.js} +3 -3
  139. package/{browser/esm/BF1UCuG25TaPe6Ah.mjs → cdn/assets/CPlfXwZn952WQ8tu.js} +3 -3
  140. package/cdn/assets/{B36BO77fuN4io3cH.js → CVOFtLS3D3hpykUP.js} +7 -7
  141. package/{browser/esm/i_EWmXLQe018WFIv.mjs → cdn/assets/CVXeIfSHxFnpUSYz.js} +3 -3
  142. package/{browser/esm/BrCaMwnNcblmuzDh.mjs → cdn/assets/CZj7MpGmmgaB8lkL.js} +4 -4
  143. package/cdn/assets/{B5opv-736KpN6Bi4.js → Cfp-IQYhF8wI3U8j.js} +3 -3
  144. package/{browser/esm/Cndg80xEbFcHtUn8.mjs → cdn/assets/CnShx-cVURfKpVVG.js} +3 -3
  145. package/{browser/esm/nVijr2StbdDY2e13.mjs → cdn/assets/Cow5a04f6LqFGoQZ.js} +3 -3
  146. package/cdn/assets/{DjDxVGn7JWBs4o5m.js → CwpligBAfWbwjv90.js} +3 -3
  147. package/cdn/assets/{Iijcha1XE-c7OLNH.js → D2GULUblN-TF8TA3.js} +3 -3
  148. package/cdn/assets/{E16WP2btW98-NdQA.js → D6CGsM4vcM8GtGg4.js} +3 -3
  149. package/cdn/assets/{CO8BPWxmHt9M0o5A.js → D6iCivbxJB9YAHRy.js} +4 -4
  150. package/cdn/assets/{B075ZA9s8bN6Bjk6.js → D7dirdQd4_w5Kf3O.js} +49 -49
  151. package/{browser/esm/fHJOSOgVU027xNw-.mjs → cdn/assets/D8I1NKgZQBM1OlB_.js} +3 -3
  152. package/cdn/assets/{_hp7T1iQm-VdgOx1.js → DDVokEjcl6-19dbU.js} +8 -8
  153. package/{browser/esm/D9C7gLp0kAPSxLtC.mjs → cdn/assets/DE5GJPPKB9akZnOl.js} +3 -3
  154. package/cdn/assets/{DPMEubfbdRv-vumV.js → DMc9rEXgTnQiUhVu.js} +3 -3
  155. package/cdn/assets/{BeDSWCZutZSLr6ui.js → DQCWbcueShZFNwmV.js} +3 -3
  156. package/cdn/assets/{BM3mTnON_Go8uW2n.js → DRNhrLbNn_6nGCEJ.js} +3 -3
  157. package/{browser/esm/CgNof4mi0iyac5e1.mjs → cdn/assets/DSaJvKGEG6fH2UFL.js} +4 -4
  158. package/cdn/assets/{BqDe3JfClPnZlUpT.js → DTaAiRRU2uWbT8Fc.js} +3 -3
  159. package/cdn/assets/{VBhE9EpKVDvlRQWF.js → DYZMXz31j3qNRh0f.js} +5 -5
  160. package/cdn/assets/{B0HGE6CZeNWxdgkD.js → D_PCdhiJi26hHS-8.js} +3 -3
  161. package/cdn/assets/{B4x_WFSNRisMp9PK.js → D_mjyyaB1h7KHEAu.js} +3 -3
  162. package/{browser/esm/DHkuZlzTuYV7YCeQ.mjs → cdn/assets/DbbapxCRGpFogl_Q.js} +3 -3
  163. package/{browser/esm/BuITsWgwvy1VWF9E.mjs → cdn/assets/DeZqllxB8Fy4CjwJ.js} +3 -3
  164. package/{browser/esm/DLUJaAlJp56PRHun.mjs → cdn/assets/DhVke7KHq6lbQPZg.js} +3 -3
  165. package/cdn/assets/{CFrbspKb0qyxwr1H.js → DotQ8xRWqk7D6hez.js} +5 -5
  166. package/cdn/assets/{CUe-PbZ8mz4nrE7E.js → DwOLxNWTgpajuVoq.js} +8 -8
  167. package/{browser/esm/BuLL5OjBqMXUfH_A.mjs → cdn/assets/Jv_Qhh-WUFMrxoID.js} +3 -3
  168. package/{browser/esm/DYYzLaxXk8APXqEA.mjs → cdn/assets/OGU71t0PDjtl3-M4.js} +3 -3
  169. package/cdn/assets/{DHhtxVQ8oICzeBem.js → S1pQULnXsDtSBJpY.js} +4 -4
  170. package/cdn/assets/{BnjAI3vOpDYyQnou.js → Xxw0Y9hXxIwKKGPq.js} +3 -3
  171. package/{browser/esm/CGlDo4wLUay4UXgF.mjs → cdn/assets/ako9wmFN1XdkwSc1.js} +3 -3
  172. package/cdn/assets/{Cwrp37FK1lwFYR0h.js → gu3uSTwzxG-Hq3Tn.js} +3 -3
  173. package/cdn/assets/{DVkLRz76XK91mLT7.js → iC6qNNMVatdQ7tzG.js} +3 -3
  174. package/cdn/assets/{C71PMxylnWyxGS2R.js → pf0juu-OwjVx8NfT.js} +5 -5
  175. package/{browser/esm/07UGdEPZU4KgWAFN.mjs → cdn/assets/sXwOwWbIPvtOcCOv.js} +3 -3
  176. package/{browser/esm/CW2IdN3hA6cq5VBE.mjs → cdn/assets/tUcACmQVgT_vQZRd.js} +3 -3
  177. package/{browser/esm/CaLVQxWxp8lj_uyA.mjs → cdn/assets/vBbdzr5TIj8oCBOQ.js} +3 -3
  178. package/cdn/assets/{i5sh0F171K8r-qUc.js → vhG_0swcLosZTyyb.js} +3 -3
  179. package/cdn/index.js +2 -2
  180. package/cdn/loader.js +1 -1
  181. package/package.json +2 -2
package/LICENSE.md CHANGED
@@ -1,11 +1,11 @@
1
- # Repository Licensing
2
-
3
- SheetXL contains a mix of open-source and commercially licensed packages. Each package is individually licensed and contains its own license file.
4
-
5
- For the specific terms and conditions applicable to a package, please see the `LICENSE.md` file located in that package's root directory.
6
-
7
- Generally, packages intended for public distribution (such as CLIs, adapters, and vanilla wrappers) are licensed under the MIT license. All other core packages are proprietary and require a commercial license for use.
8
-
9
- For more details on commercial licensing, please visit our website:
10
-
11
- https://www.sheetxl.com/licensing-pricing
1
+ # Repository Licensing
2
+
3
+ SheetXL contains a mix of open-source and commercially licensed packages. Each package is individually licensed and contains its own license file.
4
+
5
+ For the specific terms and conditions applicable to a package, please see the `LICENSE.md` file located in that package's root directory.
6
+
7
+ Generally, packages intended for public distribution (such as CLIs, adapters, and vanilla wrappers) are licensed under the MIT license. All other core packages are proprietary and require a commercial license for use.
8
+
9
+ For more details on commercial licensing, please visit our website:
10
+
11
+ https://www.sheetxl.com/licensing-pricing
package/README.md CHANGED
@@ -1,97 +1,97 @@
1
- # Studio Vanilla
2
-
3
- ![SheetXL](https://www.sheetxl.com/logo-text.svg)
4
-
5
- ![npm](https://img.shields.io/npm/v/@sheetxl/studio-vanilla)
6
- ![license](https://img.shields.io/npm/l/@sheetxl/studio-vanilla)
7
-
8
- > The simplest way to embed the full SheetXL spreadsheet UI into any web page.
9
-
10
- This package bundles [`@sheetxl/sdk`](https://www.npmjs.com/package/@sheetxl/sdk) and
11
- [`@sheetxl/studio-mui`](https://www.npmjs.com/package/@sheetxl/studio-mui) into a simple api for vanilla js.
12
-
13
- ---
14
-
15
- ## 🚀 Live ESM Development Server
16
-
17
- This package includes a **live development server** that acts like a CDN for rapid testing and development. This is perfect for:
18
-
19
- - Testing the library during development without building
20
- - Simulating CDN usage locally
21
- - Hot module replacement for instant feedback
22
- - Live ESM imports for modern development
23
-
24
- ### Quick Start (Development Server)
25
-
26
- 1. **Start the dev server:**
27
-
28
- ```bash
29
- cd packages/studio-vanilla
30
- pnpm dev
31
- ```
32
-
33
- 2. **Open the dev interface:**
34
-
35
- Open [http://localhost:4000](http://localhost:4000) in your browser
36
-
37
- 3. **Use as CDN in your projects:**
38
-
39
- ```html
40
- <script type="module">
41
- import { SheetXL } from 'http://localhost:4000/src/index.ts';
42
-
43
- // Your code here
44
- await SheetXL.reactWorkbook('#my-container');
45
- </script>
46
- ```
47
-
48
- ### Development Features
49
-
50
- - ✅ **Hot Module Replacement**: Changes reflect instantly
51
- - ✅ **Source Maps**: Full debugging support
52
- - ✅ **ESM Imports**: Modern import syntax
53
- - ✅ **Live Demo**: Interactive testing interface
54
- - ✅ **CORS Headers**: Ready for cross-origin requests
55
- - ✅ **TypeScript**: Direct `.ts` imports supported
56
-
57
- ---
58
-
59
- ## 1. Quickest Start (CDN)
60
-
61
- For instant, no-build-step integration, add the following HTML snippet to your page. This is the primary use case for this package.
62
-
63
- ```html
64
- <!DOCTYPE html>
65
- <html>
66
- <head>
67
- <title>SheetXL Demo</title>
68
- </head>
69
- <body>
70
- <div id="container" style="height: 600px; width: 100%;"></div>
71
- <script type="module">
72
- (await import("https://unpkg.com/@sheetxl/studio-vanilla")).SheetXL.attachWorkbook("#container");
73
- </script>
74
- </body>
75
- </html>
76
- ```
77
-
78
- ## 2. Usage with a Bundler (via NPM)
79
-
80
- You can also install this package via NPM if you prefer to include it in your application build.
81
-
82
- ```bash
83
- # Using npm
84
- npm install @sheetxl/studio-vanilla
85
-
86
- # Using yarn
87
- yarn add @sheetxl/studio-vanilla
88
- ```
89
-
90
- After installation, you can import and use the SheetXL.attach method.
91
-
92
- ```javascript
93
- import { SheetXL } from '@sheetxl/studio-vanilla';
94
-
95
- // The attach method will render the spreadsheet into the specified DOM element.
96
- SheetXL.attachWorkbook("#your-container-element-id");
97
- ```
1
+ # Studio Vanilla
2
+
3
+ ![SheetXL](https://www.sheetxl.com/logo-text.svg)
4
+
5
+ ![npm](https://img.shields.io/npm/v/@sheetxl/studio-vanilla)
6
+ ![license](https://img.shields.io/npm/l/@sheetxl/studio-vanilla)
7
+
8
+ > The simplest way to embed the full SheetXL spreadsheet UI into any web page.
9
+
10
+ This package bundles [`@sheetxl/sdk`](https://www.npmjs.com/package/@sheetxl/sdk) and
11
+ [`@sheetxl/studio-mui`](https://www.npmjs.com/package/@sheetxl/studio-mui) into a simple api for vanilla js.
12
+
13
+ ---
14
+
15
+ ## 🚀 Live ESM Development Server
16
+
17
+ This package includes a **live development server** that acts like a CDN for rapid testing and development. This is perfect for:
18
+
19
+ - Testing the library during development without building
20
+ - Simulating CDN usage locally
21
+ - Hot module replacement for instant feedback
22
+ - Live ESM imports for modern development
23
+
24
+ ### Quick Start (Development Server)
25
+
26
+ 1. **Start the dev server:**
27
+
28
+ ```bash
29
+ cd packages/studio-vanilla
30
+ pnpm dev
31
+ ```
32
+
33
+ 2. **Open the dev interface:**
34
+
35
+ Open [http://localhost:4000](http://localhost:4000) in your browser
36
+
37
+ 3. **Use as CDN in your projects:**
38
+
39
+ ```html
40
+ <script type="module">
41
+ import { SheetXL } from 'http://localhost:4000/src/index.ts';
42
+
43
+ // Your code here
44
+ await SheetXL.reactWorkbook('#my-container');
45
+ </script>
46
+ ```
47
+
48
+ ### Development Features
49
+
50
+ - ✅ **Hot Module Replacement**: Changes reflect instantly
51
+ - ✅ **Source Maps**: Full debugging support
52
+ - ✅ **ESM Imports**: Modern import syntax
53
+ - ✅ **Live Demo**: Interactive testing interface
54
+ - ✅ **CORS Headers**: Ready for cross-origin requests
55
+ - ✅ **TypeScript**: Direct `.ts` imports supported
56
+
57
+ ---
58
+
59
+ ## 1. Quickest Start (CDN)
60
+
61
+ For instant, no-build-step integration, add the following HTML snippet to your page. This is the primary use case for this package.
62
+
63
+ ```html
64
+ <!DOCTYPE html>
65
+ <html>
66
+ <head>
67
+ <title>SheetXL Demo</title>
68
+ </head>
69
+ <body>
70
+ <div id="container" style="height: 600px; width: 100%;"></div>
71
+ <script type="module">
72
+ (await import("https://unpkg.com/@sheetxl/studio-vanilla")).SheetXL.attachWorkbook("#container");
73
+ </script>
74
+ </body>
75
+ </html>
76
+ ```
77
+
78
+ ## 2. Usage with a Bundler (via NPM)
79
+
80
+ You can also install this package via NPM if you prefer to include it in your application build.
81
+
82
+ ```bash
83
+ # Using npm
84
+ npm install @sheetxl/studio-vanilla
85
+
86
+ # Using yarn
87
+ yarn add @sheetxl/studio-vanilla
88
+ ```
89
+
90
+ After installation, you can import and use the SheetXL.attach method.
91
+
92
+ ```javascript
93
+ import { SheetXL } from '@sheetxl/studio-vanilla';
94
+
95
+ // The attach method will render the spreadsheet into the specified DOM element.
96
+ SheetXL.attachWorkbook("#your-container-element-id");
97
+ ```
@@ -1,5 +1,5 @@
1
1
  "use strict";/**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.2.0
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.0
3
3
  *
4
4
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -1,5 +1,5 @@
1
1
  "use strict";/**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.2.0
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.0
3
3
  *
4
4
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -1,5 +1,5 @@
1
1
  "use strict";/**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.2.0
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.0
3
3
  *
4
4
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -1,5 +1,5 @@
1
1
  "use strict";/**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.2.0
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.0
3
3
  *
4
4
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -1,5 +1,5 @@
1
1
  "use strict";/**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.2.0
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.0
3
3
  *
4
4
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -1,15 +1,15 @@
1
1
  "use strict";/**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.2.0
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.0
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.
6
6
  */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});/**
7
- * @license @sheetxl/studio-mui - Studio - Spreadsheet UI built with SheetXL SDK using React & MUI. - v0.2.0
7
+ * @license @sheetxl/studio-mui - Studio - Spreadsheet UI built with SheetXL SDK using React & MUI. - v0.3.0
8
8
  *
9
9
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
10
10
  * License: The license can be found at https://www.sheetxl.com/license.
11
11
  *//**
12
- * @license @sheetxl/io - IO - Import/Export Libraries for SheetXL. - v0.2.0
12
+ * @license @sheetxl/io - IO - Import/Export Libraries for SheetXL. - v0.3.0
13
13
  *
14
14
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
15
15
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -1,6 +1,6 @@
1
1
  "use strict";/**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.2.0
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.0
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.
6
- */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),l=require("react"),n=require("./DVrhH2z9cGZBKu17.cjs"),$=require("./-WimOX-_by9saCOH.cjs"),Y=n.createSvgIcon(o.jsx("path",{d:"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20z"}),"ArrowBack"),Z=n.createSvgIcon(o.jsx("path",{d:"m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8z"}),"ArrowDownward"),_=n.createSvgIcon(o.jsx("path",{d:"m12 4-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z"}),"ArrowForward"),ee=n.createSvgIcon(o.jsx("path",{d:"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z"}),"ArrowUpward"),w=l.memo(O=>{const{label:g,value:p,options:r,onSelect:u,tabIndex:m=0,...T}=O,[b,h]=l.useState(()=>W(p,r));l.useEffect(()=>{h(W(p,r))},[p,r]);const v=n.Te(d=>{h(d.target.value),u?.(r[d.target.value])},[u,r]),a=l.useMemo(()=>Object.keys(r).map(d=>o.jsx(n.MenuItem,{value:d,children:d},d)),[r]);return o.jsxs(n.FormControl,{sx:{minWidth:135},size:"small",children:[o.jsx(n.InputLabel,{children:g}),o.jsx(n.Select,{inputProps:{tabIndex:m},value:b,label:g,onChange:v,sx:{backgroundImage:`linear-gradient(${n.alpha("#fff",n.eo(5))}, ${n.alpha("#fff",n.eo(5))})`},...T,children:a})]})}),L={Workbook:"workbook",Sheet:"sheet"},z={enter:140,exit:140},X={Formulas:n.An.Content.Formulas,Values:n.An.Content.Values,Notes:n.An.Content.Notes,Comments:n.An.Content.Comments},Q={...X};delete Q.Values;const ne={"By Rows":!0,"By Columns":!1},W=(O,g)=>{const p=Object.keys(g);for(let r=0;r<p.length;r++){const u=p[r];if(g[u]===O)return u}},N=l.memo(O=>{const{replace:g=!1,findText:p,replaceText:r,findOptions:u,replaceOptions:m,title:T,onHide:b,onFindOrReplace:h,...v}=O,a=l.useRef(null),d=l.useRef(null),E=l.useRef(null),H=l.useRef(null),I=l.useRef(null),A=l.useRef(null),F=(e,t)=>{t&&(t.start(e,{center:!1}),setTimeout(()=>t.stop(e),180))},[B,y]=l.useState(!1),[R,U]=l.useState(!1),[f,S]=l.useState(g),[D,k]=l.useState(!1),[K,P]=l.useState(!1),[s,c]=l.useState({findText:null,replaceText:null,replace:g,replaceOptions:{},findOptions:{matchCase:!1,matchEntireCell:!1,useRegex:!1,orientation:n.q.Orientation.Row,fields:[n.An.Content.Formulas]},scope:L.Sheet}),j=n.Te(async(e,t,i,C)=>{if(!h)return;const x={...s};x.replaceOptions={...x.replaceOptions},x.findOptions={...x.findOptions},x.replaceOptions.maxCount=i?void 0:1,x.replace=t,t&&s.findOptions.fields?.[0]===n.An.Content.Values&&(x.findOptions.fields=[n.An.Content.Formulas]),x.findOptions.reverse=!e;const J=await h({autoFocus:C,...x});k(J===0)},[s,h]);l.useEffect(()=>{k(!1)},[s,R,f]);const M=n.Te((e,t)=>{if(e.keyCode===n.wn.Enter){if(!s.findText)return;let i=!0,C=!1;e.shiftKey&&(i=!1),t?(e.ctrlKey&&e.altKey&&(C=!0),F(e,C?A.current:I.current)):F(e,i?H.current:E.current),j(i,t,C,!1)}},[s]),q=l.useRef(null);l.useLayoutEffect(()=>{c(e=>{const t={...e};t.findText=p&&p.length>0?p:e.findText??"",y(!0),r!==void 0&&(t.replaceText=r),u&&(t.findOptions={...t.findOptions,...u}),t.replaceText||(t.replaceText=""),t.replaceOptions&&(t.replaceOptions={...t.replaceOptions}),m&&(t.replaceOptions={...t.replaceOptions,...m}),s.findOptions.fields?.[0]||(s.findOptions.fields=[n.An.Content.Formulas]);const i=!(!m&&r===void 0);return i&&S(i),t}),K||q.current?.focus()},[p,r,u,m]),l.useEffect(()=>{f?(s.findOptions.fields[0],n.An.Content.Values):y(!0)},[f]),l.useEffect(()=>{if(B&&a.current&&s.findText===a.current.value)return a.current===document.activeElement||a.current.contains(document.activeElement)?(a.current?.select(),void y(!1)):void a.current.addEventListener("focus",()=>{a.current?.select(),y(!1)},{once:!0})},[B,s]);const[G,{width:V}]=n.eg();return o.jsx(n.LH,{title:T??(f?"Find & Replace":"Find"),initialPosition:{y:"35"},autoFocusSel:".input",refWindow:q,onHide:b,onFocus:()=>P(!0),onBlur:()=>{P(!1),k(!1)},PaperProps:{elevation:K?3:1},...v,children:o.jsxs(n.DialogContent,{dividers:!0,ref:G,sx:{display:"flex",flexDirection:"column",paddingLeft:e=>e.spacing(1.5),paddingRight:e=>e.spacing(1.5)},onKeyDown:e=>{if(e.key==="h"&&e.ctrlKey)S(!0),a.current?.contains(document.activeElement)&&d.current?.focus();else if(e.key==="f"&&e.ctrlKey)a.current?.focus();else if(e.key==="c"&&e.altKey)c(t=>{const i={...t};return i.findOptions.matchCase=!t.findOptions.matchCase,i});else if(e.key==="e"&&e.altKey)c(t=>{const i={...t};return i.findOptions.matchEntireCell=!t.findOptions.matchEntireCell,i});else{if(e.key!=="r"||!e.altKey)return;c(t=>{const i={...t};return i.findOptions.useRegex=!t.findOptions.useRegex,i})}e.preventDefault()},children:[o.jsxs(n.Box,{sx:{display:"flex",flexDirection:"row",gap:e=>e.spacing(1)},children:[o.jsxs(n.Box,{sx:{display:"flex",flexDirection:"row",alignItems:"start",gap:e=>e.spacing(.25),paddingTop:"3px"},children:[o.jsx(n.uH,{selected:R,onSelectToggle:e=>{U(e)},preventFocus:!0,label:"Toggle Additional Options",icon:n.Le(o.jsx(n.QK,{}))}),o.jsx(n.uH,{selected:f,onSelectToggle:e=>{S(e)},preventFocus:!0,label:"Toggle Replace",icon:n.Le(o.jsx(n.JK,{})),shortcut:{key:f?"F":"H",modifiers:[n.He.Ctrl]}})]}),o.jsxs(n.Box,{sx:{display:"flex",flexDirection:"column",maxWidth:"100%",boxSizing:"border-box"},children:[o.jsxs(n.Box,{sx:{display:"flex",flexDirection:"row",alignItems:"center"},children:[o.jsx(n.TextField,{label:"Find",InputLabelProps:{shrink:!0},InputProps:{sx:{paddingRight:e=>e.spacing(1),minWidth:V>460?"20em":void 0,backgroundImage:`linear-gradient(${n.alpha("#fff",n.eo(5))}, ${n.alpha("#fff",n.eo(5))})`},inputProps:{draggable:!1,ref:a,className:"input",autoFocus:!0,spellCheck:!1,autoComplete:"off",sx:{paddingTop:e=>e.spacing(1.25),paddingBottom:e=>e.spacing(.75)}},endAdornment:o.jsx(n.InputAdornment,{sx:{transform:"scale(0.75) translateX(16px)"},position:"end",children:o.jsxs(n.Box,{sx:{display:"flex",alignItems:"center",flexDirection:"row",gap:"1px"},children:[o.jsx(n.uH,{selected:s.findOptions.matchCase,onSelectToggle:e=>{c(t=>{const i={...t};return i.findOptions.matchCase=e,i})},label:"Match Case",shortcut:{key:"C",modifiers:[n.He.Alt]},icon:n.Le(o.jsx(n.eX,{}))}),o.jsx(n.uH,{selected:s.findOptions.matchEntireCell,onSelectToggle:e=>{c(t=>{const i={...t};return i.findOptions.matchEntireCell=e,i})},label:"Match Entire Cell",shortcut:{key:"E",modifiers:[n.He.Alt]},icon:n.Le(o.jsx(n.tX,{}))}),o.jsx(n.uH,{selected:s.findOptions.useRegex,onSelectToggle:e=>{c(t=>{const i={...t};return i.findOptions.useRegex=e,i})},label:"Use Regular Expression",shortcut:{key:"R",modifiers:[n.He.Alt]},icon:n.Le(o.jsx(n.oX,{}))})]})})},sx:{flex:"1 1 100%",marginRight:e=>e.spacing(1),"& .MuiOutlinedInput-notchedOutline":{borderColor:e=>D?`${e.palette.error.main} !important`:void 0},"& .MuiInputLabel-outlined":{color:e=>D?`${e.palette.error.main} !important`:void 0}},value:s.findText??"",onChange:e=>{c(t=>{const i={...t};return i.findText=e.target.value,i})},onKeyDown:e=>M(e,!1),onContextMenu:e=>{e.stopPropagation()}}),o.jsx(n.uH,{selected:s.findOptions.reverse,onSelectToggle:e=>{j(!1,!1)},touchRippleRef:E,label:"",shortcut:{key:"Enter",modifiers:[n.He.Shift]},icon:n.Le(s.findOptions.orientation!==n.q.Orientation.Column?o.jsx(Y,{}):o.jsx(ee,{})),disabled:!s.findText}),o.jsx(n.uH,{selected:!s.findOptions.reverse,onSelectToggle:e=>{j(!0,!1)},touchRippleRef:H,label:"Next Match",shortcut:{key:"Enter"},icon:n.Le(s.findOptions.orientation!==n.q.Orientation.Column?o.jsx(_,{}):o.jsx(Z,{})),disabled:!s.findText})]}),o.jsx($.Collapse,{in:f,timeout:z,onExit:()=>{a.current?.focus()},children:o.jsxs(n.Box,{sx:{display:"flex",flexDirection:"row",alignItems:"center",marginTop:e=>e.spacing(2)},children:[o.jsx(n.TextField,{label:"Replace",InputLabelProps:{shrink:!0},InputProps:{sx:{paddingRight:e=>e.spacing(1),backgroundImage:`linear-gradient(${n.alpha("#fff",n.eo(5))}, ${n.alpha("#fff",n.eo(5))})`},inputProps:{ref:d,className:"input",spellCheck:!1,autoComplete:"off",sx:{paddingTop:e=>e.spacing(1.25),paddingBottom:e=>e.spacing(.75)}}},sx:{flex:"1 1 100%",marginRight:e=>e.spacing(1)},value:s.replaceText??"",onChange:e=>{c(t=>{const i={...t};return i.replaceText=e.target.value,i})},onKeyDown:e=>M(e,!0),onContextMenu:e=>{e.stopPropagation()}}),o.jsx(n.uH,{onSelectToggle:e=>{j(!0,!0)},touchRippleRef:I,label:"Replace",shortcut:{key:"Enter"},icon:n.Le(o.jsx(n.hV,{})),disabled:!s.findText}),o.jsx(n.uH,{onSelectToggle:e=>{j(!0,!0,!0)},touchRippleRef:A,label:"Replace All",shortcut:{key:"Enter",modifiers:[n.He.Ctrl,n.He.Alt]},icon:n.Le(o.jsx(n.nX,{})),disabled:!s.findText})]})})]})]}),o.jsx($.Collapse,{in:R,timeout:z,onExit:()=>{a.current?.focus()},children:o.jsxs(n.Box,{sx:{minHeight:"10px",flex:"1 1 100%",display:"flex",flexDirection:"column",gap:e=>e.spacing(.5),marginTop:e=>e.spacing(1)},children:[o.jsx(n.Qt,{orientation:"horizontal",sx:{marginBottom:e=>e.spacing(1.5)}}),o.jsxs(n.Box,{sx:{display:"flex",flexDirection:V>=413?"row":"column",justifyContent:"space-evenly",alignItems:"center",rowGap:e=>e.spacing(2)},tabIndex:-1,children:[o.jsx(w,{label:"Within",value:s.scope,options:L,onSelect:e=>{c(t=>{const i={...t};return i.scope=e,i})}}),o.jsx(w,{label:"Search",value:s.findOptions.orientation!==n.q.Orientation.Column,options:ne,onSelect:e=>{c(t=>{const i={...t};return i.findOptions.orientation=e?n.q.Orientation.Row:n.q.Orientation.Column,i})}}),o.jsx(w,{label:"Look in",value:f&&s.findOptions.fields?.[0]===n.An.Content.Values?n.An.Content.Formulas:s.findOptions.fields?.[0],options:f?Q:X,onSelect:e=>{c(t=>{const i={...t};return i.findOptions.fields=[e],i})}})]})]})})]})})});exports.FindReplaceWindow=N,exports.ScopeOptions=L,exports.default=N;
6
+ */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),l=require("react"),n=require("./BFjFhtH4OqOirVjz.cjs"),$=require("./D3jW9_q5k1lOmEQd.cjs"),Y=n.createSvgIcon(o.jsx("path",{d:"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20z"}),"ArrowBack"),Z=n.createSvgIcon(o.jsx("path",{d:"m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8z"}),"ArrowDownward"),_=n.createSvgIcon(o.jsx("path",{d:"m12 4-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z"}),"ArrowForward"),ee=n.createSvgIcon(o.jsx("path",{d:"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z"}),"ArrowUpward"),w=l.memo(O=>{const{label:g,value:p,options:r,onSelect:u,tabIndex:m=0,...T}=O,[b,h]=l.useState(()=>W(p,r));l.useEffect(()=>{h(W(p,r))},[p,r]);const v=n.Te(d=>{h(d.target.value),u?.(r[d.target.value])},[u,r]),a=l.useMemo(()=>Object.keys(r).map(d=>o.jsx(n.MenuItem,{value:d,children:d},d)),[r]);return o.jsxs(n.FormControl,{sx:{minWidth:135},size:"small",children:[o.jsx(n.InputLabel,{children:g}),o.jsx(n.Select,{inputProps:{tabIndex:m},value:b,label:g,onChange:v,sx:{backgroundImage:`linear-gradient(${n.alpha("#fff",n.eo(5))}, ${n.alpha("#fff",n.eo(5))})`},...T,children:a})]})}),L={Workbook:"workbook",Sheet:"sheet"},z={enter:140,exit:140},X={Formulas:n.An.Content.Formulas,Values:n.An.Content.Values,Notes:n.An.Content.Notes,Comments:n.An.Content.Comments},Q={...X};delete Q.Values;const ne={"By Rows":!0,"By Columns":!1},W=(O,g)=>{const p=Object.keys(g);for(let r=0;r<p.length;r++){const u=p[r];if(g[u]===O)return u}},N=l.memo(O=>{const{replace:g=!1,findText:p,replaceText:r,findOptions:u,replaceOptions:m,title:T,onHide:b,onFindOrReplace:h,...v}=O,a=l.useRef(null),d=l.useRef(null),E=l.useRef(null),H=l.useRef(null),I=l.useRef(null),A=l.useRef(null),F=(e,t)=>{t&&(t.start(e,{center:!1}),setTimeout(()=>t.stop(e),180))},[B,y]=l.useState(!1),[R,U]=l.useState(!1),[f,S]=l.useState(g),[D,k]=l.useState(!1),[K,P]=l.useState(!1),[s,c]=l.useState({findText:null,replaceText:null,replace:g,replaceOptions:{},findOptions:{matchCase:!1,matchEntireCell:!1,useRegex:!1,orientation:n.q.Orientation.Row,fields:[n.An.Content.Formulas]},scope:L.Sheet}),j=n.Te(async(e,t,i,C)=>{if(!h)return;const x={...s};x.replaceOptions={...x.replaceOptions},x.findOptions={...x.findOptions},x.replaceOptions.maxCount=i?void 0:1,x.replace=t,t&&s.findOptions.fields?.[0]===n.An.Content.Values&&(x.findOptions.fields=[n.An.Content.Formulas]),x.findOptions.reverse=!e;const J=await h({autoFocus:C,...x});k(J===0)},[s,h]);l.useEffect(()=>{k(!1)},[s,R,f]);const M=n.Te((e,t)=>{if(e.keyCode===n.wn.Enter){if(!s.findText)return;let i=!0,C=!1;e.shiftKey&&(i=!1),t?(e.ctrlKey&&e.altKey&&(C=!0),F(e,C?A.current:I.current)):F(e,i?H.current:E.current),j(i,t,C,!1)}},[s]),q=l.useRef(null);l.useLayoutEffect(()=>{c(e=>{const t={...e};t.findText=p&&p.length>0?p:e.findText??"",y(!0),r!==void 0&&(t.replaceText=r),u&&(t.findOptions={...t.findOptions,...u}),t.replaceText||(t.replaceText=""),t.replaceOptions&&(t.replaceOptions={...t.replaceOptions}),m&&(t.replaceOptions={...t.replaceOptions,...m}),s.findOptions.fields?.[0]||(s.findOptions.fields=[n.An.Content.Formulas]);const i=!(!m&&r===void 0);return i&&S(i),t}),K||q.current?.focus()},[p,r,u,m]),l.useEffect(()=>{f?(s.findOptions.fields[0],n.An.Content.Values):y(!0)},[f]),l.useEffect(()=>{if(B&&a.current&&s.findText===a.current.value)return a.current===document.activeElement||a.current.contains(document.activeElement)?(a.current?.select(),void y(!1)):void a.current.addEventListener("focus",()=>{a.current?.select(),y(!1)},{once:!0})},[B,s]);const[G,{width:V}]=n.eg();return o.jsx(n.LH,{title:T??(f?"Find & Replace":"Find"),initialPosition:{y:"35"},autoFocusSel:".input",refWindow:q,onHide:b,onFocus:()=>P(!0),onBlur:()=>{P(!1),k(!1)},PaperProps:{elevation:K?3:1},...v,children:o.jsxs(n.DialogContent,{dividers:!0,ref:G,sx:{display:"flex",flexDirection:"column",paddingLeft:e=>e.spacing(1.5),paddingRight:e=>e.spacing(1.5)},onKeyDown:e=>{if(e.key==="h"&&e.ctrlKey)S(!0),a.current?.contains(document.activeElement)&&d.current?.focus();else if(e.key==="f"&&e.ctrlKey)a.current?.focus();else if(e.key==="c"&&e.altKey)c(t=>{const i={...t};return i.findOptions.matchCase=!t.findOptions.matchCase,i});else if(e.key==="e"&&e.altKey)c(t=>{const i={...t};return i.findOptions.matchEntireCell=!t.findOptions.matchEntireCell,i});else{if(e.key!=="r"||!e.altKey)return;c(t=>{const i={...t};return i.findOptions.useRegex=!t.findOptions.useRegex,i})}e.preventDefault()},children:[o.jsxs(n.Box,{sx:{display:"flex",flexDirection:"row",gap:e=>e.spacing(1)},children:[o.jsxs(n.Box,{sx:{display:"flex",flexDirection:"row",alignItems:"start",gap:e=>e.spacing(.25),paddingTop:"3px"},children:[o.jsx(n.uH,{selected:R,onSelectToggle:e=>{U(e)},preventFocus:!0,label:"Toggle Additional Options",icon:n.Le(o.jsx(n.QK,{}))}),o.jsx(n.uH,{selected:f,onSelectToggle:e=>{S(e)},preventFocus:!0,label:"Toggle Replace",icon:n.Le(o.jsx(n.JK,{})),shortcut:{key:f?"F":"H",modifiers:[n.He.Ctrl]}})]}),o.jsxs(n.Box,{sx:{display:"flex",flexDirection:"column",maxWidth:"100%",boxSizing:"border-box"},children:[o.jsxs(n.Box,{sx:{display:"flex",flexDirection:"row",alignItems:"center"},children:[o.jsx(n.TextField,{label:"Find",InputLabelProps:{shrink:!0},InputProps:{sx:{paddingRight:e=>e.spacing(1),minWidth:V>460?"20em":void 0,backgroundImage:`linear-gradient(${n.alpha("#fff",n.eo(5))}, ${n.alpha("#fff",n.eo(5))})`},inputProps:{draggable:!1,ref:a,className:"input",autoFocus:!0,spellCheck:!1,autoComplete:"off",sx:{paddingTop:e=>e.spacing(1.25),paddingBottom:e=>e.spacing(.75)}},endAdornment:o.jsx(n.InputAdornment,{sx:{transform:"scale(0.75) translateX(16px)"},position:"end",children:o.jsxs(n.Box,{sx:{display:"flex",alignItems:"center",flexDirection:"row",gap:"1px"},children:[o.jsx(n.uH,{selected:s.findOptions.matchCase,onSelectToggle:e=>{c(t=>{const i={...t};return i.findOptions.matchCase=e,i})},label:"Match Case",shortcut:{key:"C",modifiers:[n.He.Alt]},icon:n.Le(o.jsx(n.eX,{}))}),o.jsx(n.uH,{selected:s.findOptions.matchEntireCell,onSelectToggle:e=>{c(t=>{const i={...t};return i.findOptions.matchEntireCell=e,i})},label:"Match Entire Cell",shortcut:{key:"E",modifiers:[n.He.Alt]},icon:n.Le(o.jsx(n.tX,{}))}),o.jsx(n.uH,{selected:s.findOptions.useRegex,onSelectToggle:e=>{c(t=>{const i={...t};return i.findOptions.useRegex=e,i})},label:"Use Regular Expression",shortcut:{key:"R",modifiers:[n.He.Alt]},icon:n.Le(o.jsx(n.oX,{}))})]})})},sx:{flex:"1 1 100%",marginRight:e=>e.spacing(1),"& .MuiOutlinedInput-notchedOutline":{borderColor:e=>D?`${e.palette.error.main} !important`:void 0},"& .MuiInputLabel-outlined":{color:e=>D?`${e.palette.error.main} !important`:void 0}},value:s.findText??"",onChange:e=>{c(t=>{const i={...t};return i.findText=e.target.value,i})},onKeyDown:e=>M(e,!1),onContextMenu:e=>{e.stopPropagation()}}),o.jsx(n.uH,{selected:s.findOptions.reverse,onSelectToggle:e=>{j(!1,!1)},touchRippleRef:E,label:"",shortcut:{key:"Enter",modifiers:[n.He.Shift]},icon:n.Le(s.findOptions.orientation!==n.q.Orientation.Column?o.jsx(Y,{}):o.jsx(ee,{})),disabled:!s.findText}),o.jsx(n.uH,{selected:!s.findOptions.reverse,onSelectToggle:e=>{j(!0,!1)},touchRippleRef:H,label:"Next Match",shortcut:{key:"Enter"},icon:n.Le(s.findOptions.orientation!==n.q.Orientation.Column?o.jsx(_,{}):o.jsx(Z,{})),disabled:!s.findText})]}),o.jsx($.Collapse,{in:f,timeout:z,onExit:()=>{a.current?.focus()},children:o.jsxs(n.Box,{sx:{display:"flex",flexDirection:"row",alignItems:"center",marginTop:e=>e.spacing(2)},children:[o.jsx(n.TextField,{label:"Replace",InputLabelProps:{shrink:!0},InputProps:{sx:{paddingRight:e=>e.spacing(1),backgroundImage:`linear-gradient(${n.alpha("#fff",n.eo(5))}, ${n.alpha("#fff",n.eo(5))})`},inputProps:{ref:d,className:"input",spellCheck:!1,autoComplete:"off",sx:{paddingTop:e=>e.spacing(1.25),paddingBottom:e=>e.spacing(.75)}}},sx:{flex:"1 1 100%",marginRight:e=>e.spacing(1)},value:s.replaceText??"",onChange:e=>{c(t=>{const i={...t};return i.replaceText=e.target.value,i})},onKeyDown:e=>M(e,!0),onContextMenu:e=>{e.stopPropagation()}}),o.jsx(n.uH,{onSelectToggle:e=>{j(!0,!0)},touchRippleRef:I,label:"Replace",shortcut:{key:"Enter"},icon:n.Le(o.jsx(n.hV,{})),disabled:!s.findText}),o.jsx(n.uH,{onSelectToggle:e=>{j(!0,!0,!0)},touchRippleRef:A,label:"Replace All",shortcut:{key:"Enter",modifiers:[n.He.Ctrl,n.He.Alt]},icon:n.Le(o.jsx(n.nX,{})),disabled:!s.findText})]})})]})]}),o.jsx($.Collapse,{in:R,timeout:z,onExit:()=>{a.current?.focus()},children:o.jsxs(n.Box,{sx:{minHeight:"10px",flex:"1 1 100%",display:"flex",flexDirection:"column",gap:e=>e.spacing(.5),marginTop:e=>e.spacing(1)},children:[o.jsx(n.Qt,{orientation:"horizontal",sx:{marginBottom:e=>e.spacing(1.5)}}),o.jsxs(n.Box,{sx:{display:"flex",flexDirection:V>=413?"row":"column",justifyContent:"space-evenly",alignItems:"center",rowGap:e=>e.spacing(2)},tabIndex:-1,children:[o.jsx(w,{label:"Within",value:s.scope,options:L,onSelect:e=>{c(t=>{const i={...t};return i.scope=e,i})}}),o.jsx(w,{label:"Search",value:s.findOptions.orientation!==n.q.Orientation.Column,options:ne,onSelect:e=>{c(t=>{const i={...t};return i.findOptions.orientation=e?n.q.Orientation.Row:n.q.Orientation.Column,i})}}),o.jsx(w,{label:"Look in",value:f&&s.findOptions.fields?.[0]===n.An.Content.Values?n.An.Content.Formulas:s.findOptions.fields?.[0],options:f?Q:X,onSelect:e=>{c(t=>{const i={...t};return i.findOptions.fields=[e],i})}})]})]})})]})})});exports.FindReplaceWindow=N,exports.ScopeOptions=L,exports.default=N;
@@ -1,5 +1,5 @@
1
1
  "use strict";/**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.2.0
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.0
3
3
  *
4
4
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -1,5 +1,5 @@
1
1
  "use strict";/**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.2.0
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.0
3
3
  *
4
4
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -1,15 +1,15 @@
1
1
  "use strict";/**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.2.0
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.0
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.
6
- */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./DVrhH2z9cGZBKu17.cjs"),g=require("./DHCCNLh27I_BglIv.cjs");/**
7
- * @license @sheetxl/studio-mui - Studio - Spreadsheet UI built with SheetXL SDK using React & MUI. - v0.2.0
6
+ */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./BFjFhtH4OqOirVjz.cjs"),g=require("./Cq6nKXJncTvIPDs0.cjs");/**
7
+ * @license @sheetxl/studio-mui - Studio - Spreadsheet UI built with SheetXL SDK using React & MUI. - v0.3.0
8
8
  *
9
9
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
10
10
  * License: The license can be found at https://www.sheetxl.com/license.
11
11
  *//**
12
- * @license @sheetxl/io - IO - Import/Export Libraries for SheetXL. - v0.2.0
12
+ * @license @sheetxl/io - IO - Import/Export Libraries for SheetXL. - v0.3.0
13
13
  *
14
14
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
15
15
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -1,25 +1,25 @@
1
1
  "use strict";/**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.2.0
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.0
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.
6
- */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const he=require("./geVI0OFpbRur4kxL.cjs");/**
7
- * @license @sheetxl/studio-mui - Studio - Spreadsheet UI built with SheetXL SDK using React & MUI. - v0.2.0
6
+ */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const he=require("./DW3yV3bFjBYU9FNp.cjs");/**
7
+ * @license @sheetxl/studio-mui - Studio - Spreadsheet UI built with SheetXL SDK using React & MUI. - v0.3.0
8
8
  *
9
9
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
10
10
  * License: The license can be found at https://www.sheetxl.com/license.
11
11
  *//**
12
- * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.2.0
12
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.3.0
13
13
  *
14
14
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
15
15
  * License: The license can be found at https://www.sheetxl.com/license.
16
16
  *//**
17
- * @license @sheetxl/scripting - Scripting - Scripting engine for Macros and formulas; includes TypeScript and EsBuild. - v0.2.0
17
+ * @license @sheetxl/scripting - Scripting - Scripting engine for Macros and formulas; includes TypeScript and EsBuild. - v0.3.0
18
18
  *
19
19
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
20
20
  * License: The license can be found at https://www.sheetxl.com/license.
21
21
  *//**
22
- * @license @sheetxl/primitives - Primitives - Base types for SheetXL functions. - v0.2.0
22
+ * @license @sheetxl/primitives - Primitives - Base types for SheetXL functions. - v0.3.0
23
23
  *
24
24
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
25
25
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -27,7 +27,7 @@
27
27
  interface FirstTest {
28
28
  isTrue?: boolean;
29
29
  }
30
- `,pe=new Map([["IReferenceRange","r"],["IRange","l"]]),me=new Map([["IWorkbook","workbook"],["ISheet","sheet"],["ICellRanges","ranges"],["ICellRange","range"],["IFormulaContext","context"]]),ne=(e,a)=>{Array.from(a.keys()).forEach(k=>{const x=a.get(k);a.set(`${e}.${k}`,x)})},xe=new Map([["Scalar","*"],["FormulaError.Known","e"],["Date","Date"],["JSON","JSON"]]),be=new Map([]),oe="SheetXL";ne(oe,pe),ne(oe,me),ne(oe,be);const Te=new Map([["Promise",()=>({async:!0})],["Observable",()=>({stream:!0})]]);let W=null;async function ke(){if(W)return W;try{return await(await Promise.resolve().then(()=>require("./vpaDUo2WrdrlUWox.cjs"))).initialize()}catch(e){throw W=null,e}finally{W=null}}exports.compileModule=async function(e){const a=e?.source??null;if(!a)return null;const k=(e.disableBundle||e.declarationsOnly)??!1,x=[Ce(),ke()],j=await Promise.all(x),X=j[0],s=j[1];let K="",M=null;const U=[],Y={allowJs:!0,declaration:!1,sourceMap:!1,inlineSourceMap:!1,inlineSources:!1,isolatedModules:!0,preserveConstEnums:!1,module:99,noResolve:!0,emitDeclarationOnly:!1,target:s.ScriptTarget.ES2020},z="script",O=`${z}.ts`,G="lib.d.ts",_="global.d.ts",F={[O]:a,[G]:`
30
+ `,pe=new Map([["IReferenceRange","r"],["IRange","l"]]),me=new Map([["IWorkbook","workbook"],["ISheet","sheet"],["ICellRanges","ranges"],["ICellRange","range"],["IFormulaContext","context"]]),ne=(e,a)=>{Array.from(a.keys()).forEach(k=>{const x=a.get(k);a.set(`${e}.${k}`,x)})},xe=new Map([["Scalar","*"],["FormulaError.Known","e"],["Date","Date"],["JSON","JSON"]]),be=new Map([]),oe="SheetXL";ne(oe,pe),ne(oe,me),ne(oe,be);const Te=new Map([["Promise",()=>({async:!0})],["Observable",()=>({stream:!0})]]);let W=null;async function ke(){if(W)return W;try{return await(await Promise.resolve().then(()=>require("./Dg-_EjDMveR9eAsS.cjs"))).initialize()}catch(e){throw W=null,e}finally{W=null}}exports.compileModule=async function(e){const a=e?.source??null;if(!a)return null;const k=(e.disableBundle||e.declarationsOnly)??!1,x=[Ce(),ke()],j=await Promise.all(x),X=j[0],s=j[1];let K="",M=null;const U=[],Y={allowJs:!0,declaration:!1,sourceMap:!1,inlineSourceMap:!1,inlineSources:!1,isolatedModules:!0,preserveConstEnums:!1,module:99,noResolve:!0,emitDeclarationOnly:!1,target:s.ScriptTarget.ES2020},z="script",O=`${z}.ts`,G="lib.d.ts",_="global.d.ts",F={[O]:a,[G]:`
31
31
  /**
32
32
  * Represents the completion of an asynchronous operation
33
33
  */
@@ -41,7 +41,7 @@ interface Promise<T> {
41
41
  finally(onfinally?: (() => void) | undefined | null): Promise<T>;
42
42
  }
43
43
  `,[_]:X},Q={getSourceFile:(t,d,E,l)=>s.createSourceFile(t,F[t],s.ScriptTarget.Latest,!0),fileExists:t=>F[t]!==void 0,readFile:t=>F[t],writeFile:(t,d)=>{F[t]=d},getCurrentDirectory:()=>"./",getCanonicalFileName:t=>t,useCaseSensitiveFileNames:()=>!0,getDefaultLibFileName:t=>G,getNewLine:()=>`
44
- `},I=s.createProgram([O,_],Y,Q),P=I.getTypeChecker(),Z=I.getSourceFile(O),y=I.emit();y.diagnostics.length>0&&console.warn(y.diagnostics),K=F[`${z}.js`];const n=(t,d,E,l)=>{if(t){if(t.kind===s.SyntaxKind.NumberKeyword)d.scalar="n";else if(t.kind===s.SyntaxKind.StringKeyword)d.scalar="s";else if(t.kind===s.SyntaxKind.BooleanKeyword)d.scalar="b";else if(t.kind===s.SyntaxKind.UndefinedKeyword||t.kind===s.SyntaxKind.NullKeyword||t.kind===s.SyntaxKind.VoidKeyword){if(l)return void S(t,new Error(`'undefined' is not a valid type for input: '${t?.parent?.name?.escapedText}'.`));d.scalar="z"}else if(t.kind===s.SyntaxKind.BigIntKeyword)d.scalar="n";else if(t.kind===s.SyntaxKind.AnyKeyword)d.scalar="z";else if(t.kind===s.SyntaxKind.ArrayType){const c=t.elementType;if(!c)return void S(t,new Error(`'Array' must be typed: '${t?.parent?.name?.escapedText}'.`));d.arrayDepth=(d.arrayDepth??0)+1,n(c,d,E,l)}else if(t.kind!==s.SyntaxKind.TupleType&&t.kind===s.SyntaxKind.TypeReference){const c=t.typeName?.getText?.()??null,N=pe.get(c);let T=!1;N&&(d.range=N,T=!0);const L=xe.get(c);if(L&&(d.scalar=L),L!==void 0&&(T=!0),l){const g=me.get(c);if(g)return g}else{const g=Te.get(c);if(g){const m={...d,...g()};let o=0;if(m.async&&o++,m.stream&&o++,o>1)return void S(t,new Error(`'${c}' cannot have multiple modifiers: '${t?.parent?.name?.escapedText}'.`));d=m,T=!0}}if(!T)return void S("node",new Error(`'${c}' is not a valid type: '${t?.parent?.name?.escapedText}'.`));const b=t.typeArguments;if(b){if(b.length!==1)return void S(t,new Error(`'${c}' must be typed with exactly 1 type: '${t?.parent?.name?.escapedText}'.`));n(b[0],d,E,l)}}}else S(t,new Error(`Type is not defined for '${d?.name??"return"}'.`))},i=[],S=(t,d)=>{i.push(d)};if(s.forEachChild(Z,t=>{if(E=t,(s.getCombinedModifierFlags(E)&s.ModifierFlags.Export)!==0&&s.isFunctionDeclaration(t)){const l={},c={parameters:{}},N=t?.name?.getText();try{l.name=N;const T=P.getSymbolAtLocation(t.name).getDocumentationComment(P);if(T&&T.length>0&&T[0].text){let m=T[0].text;m=m.replace(/[\r\n]+/g,"\\n").trim(),c.summary=m}const L={};n(t.type,L,l,!1),l.returnType=L;const b={};d=t,(s.getCombinedModifierFlags(d)&s.ModifierFlags.Default)!==0&&(b.default=!0,M=N),Object.keys(b).length>0&&(l.behavior=b),l.parameters=[];const g=new Map;for(let m=0;m<t.parameters.length;m++){const o=t.parameters[m],h={};h.name=o.name?.getText();const $=n(o.type,h,l,!0);if($){if(l.parameters.length!==0){const B=t?.parent,C=B?.name?.getText();return void S(t,new Error(`'${l.name}' contexts must be the first parameter: '${C}'.`))}l.context=$;continue}let v;if((o.initializer!==void 0&&o.initializer!==null||o.questionToken!==void 0&&o.questionToken!==null)&&(h.optional=!0,o.initializer))try{v=o.initializer.kind===s.SyntaxKind.StringLiteral?o.initializer.text:o.initializer.kind===s.SyntaxKind.NumericLiteral?parseFloat(o.initializer.text):o.initializer.kind===s.SyntaxKind.TrueKeyword||o.initializer.kind===s.SyntaxKind.FalseKeyword?o.initializer.kind===s.SyntaxKind.TrueKeyword:o.initializer.kind===s.SyntaxKind.NullKeyword?null:o.initializer.kind===s.SyntaxKind.ObjectLiteralExpression||o.initializer.kind===s.SyntaxKind.ArrayLiteralExpression?o.initializer.getText():o.initializer.getText?.()}catch(B){console.warn(`Couldn't extract default value for parameter '${h.name}'`,B)}o.dotDotDotToken&&(h.rest=!0),l.parameters.push(h);const w={description:""};c.parameters[h.name]=w;const u=P.getSymbolAtLocation(o.name).getDocumentationComment(P);u&&u.length>0&&u[0].text&&(w.description=u[0].text),v!==void 0&&(w.defaultValue=v),g.set(h.name,h)}if(t.jsDoc&&t.jsDoc.length>0){const m=t.jsDoc;for(let o=0;o<m.length;o++){const h=m[o]?.tags;if(h)for(let $=0;$<h.length;$++){const v=h[$];let w=v?.tagName?.text;if(!w)continue;w=w.toLowerCase();let u=v.comment;const B=w==="hidden";if((typeof u=="string"||B)&&(typeof u=="string"&&(u=u.replace(/[\r\n]+/g,"\\n").trim()),B||!u||(u=u.split(/\\n/)[0],u&&u.length!==0))){if(u&&typeof u=="string"){const C=/\{@link(code|plain)?\s+([^}|]+)(?:\s*\|\s*([^}]+))?\}/g;let D,R=u,V=[];for(;(D=C.exec(u))!==null;){const[ee,te,ye,ae]=D,fe=[ye.trim()];ae&&fe.push(ae.trim())}u=R,V.length>0&&w==="see"&&(c.links||(c.links=[]),c.links.push(...V))}if(w==="name"){const C=u;C!==N&&(c.name=C)}else if(w!=="description"){if(w==="summary"){const C=u;C&&(c.summary=C)}else if(w==="param"){const C=v.name?.text,D=g.get(C);if(!D){i.push(new Error(`Parameter '${C}' not found in function '${N}'.`));continue}if(v.typeExpression&&v.typeExpression.type)try{const R=v.typeExpression.type;if(R.kind===s.SyntaxKind.UnionType){const V=[];D.enums=V,R.types.forEach(ee=>{if(ee.kind===s.SyntaxKind.LiteralType){const te=ee.literal.text;te&&V.push(te)}})}}catch(R){console.warn("Error parsing JSDoc type expression:",R)}}else if(w==="returns"||w==="return")l.returnType.description=u;else if(w==="category")c.category=u;else if(w==="hidden"){let C=!0;const D=u?.toLowerCase();D==="false"?C=!1:D!=="true"&&(C=u),C!==!1&&(c.hidden=C??!0)}}}}}}Object.keys(l.returnType).length===0&&delete l.returnType,U.push([l,c])}catch(T){S(t,new Error(`'${N}': ${T.message}`))}}var d,E}),i.length>0)throw console.warn(i),new Error("There were compilation errors.",{cause:i});if(U.length===0)throw new Error("No exported functions.");const q=`${he.$.uuidV4()}-script`;try{k||i.length!==0||(K=await async function(t,d,E="/script.js",l="__SHEETXL"){try{const c=await async function(){if(A)return A;if(H){if(await H,!A)throw new Error("ESBuild initialization promise resolved, but instance is not available.");return A}let g,m;H=new Promise((o,h)=>{g=o,m=h});try{const{initialize:o}=await Promise.resolve().then(()=>require("./D6FNtKftCwyAwxsN.cjs"));return A=await o(),g(),A}catch(o){throw console.error("Failed to import or initialize esbuild:",o),H=null,m(o),o}}(),N="@sheetxl/primitives",T=`
44
+ `},I=s.createProgram([O,_],Y,Q),P=I.getTypeChecker(),Z=I.getSourceFile(O),y=I.emit();y.diagnostics.length>0&&console.warn(y.diagnostics),K=F[`${z}.js`];const n=(t,d,E,l)=>{if(t){if(t.kind===s.SyntaxKind.NumberKeyword)d.scalar="n";else if(t.kind===s.SyntaxKind.StringKeyword)d.scalar="s";else if(t.kind===s.SyntaxKind.BooleanKeyword)d.scalar="b";else if(t.kind===s.SyntaxKind.UndefinedKeyword||t.kind===s.SyntaxKind.NullKeyword||t.kind===s.SyntaxKind.VoidKeyword){if(l)return void S(t,new Error(`'undefined' is not a valid type for input: '${t?.parent?.name?.escapedText}'.`));d.scalar="z"}else if(t.kind===s.SyntaxKind.BigIntKeyword)d.scalar="n";else if(t.kind===s.SyntaxKind.AnyKeyword)d.scalar="z";else if(t.kind===s.SyntaxKind.ArrayType){const c=t.elementType;if(!c)return void S(t,new Error(`'Array' must be typed: '${t?.parent?.name?.escapedText}'.`));d.arrayDepth=(d.arrayDepth??0)+1,n(c,d,E,l)}else if(t.kind!==s.SyntaxKind.TupleType&&t.kind===s.SyntaxKind.TypeReference){const c=t.typeName?.getText?.()??null,N=pe.get(c);let T=!1;N&&(d.range=N,T=!0);const L=xe.get(c);if(L&&(d.scalar=L),L!==void 0&&(T=!0),l){const g=me.get(c);if(g)return g}else{const g=Te.get(c);if(g){const m={...d,...g()};let o=0;if(m.async&&o++,m.stream&&o++,o>1)return void S(t,new Error(`'${c}' cannot have multiple modifiers: '${t?.parent?.name?.escapedText}'.`));d=m,T=!0}}if(!T)return void S("node",new Error(`'${c}' is not a valid type: '${t?.parent?.name?.escapedText}'.`));const b=t.typeArguments;if(b){if(b.length!==1)return void S(t,new Error(`'${c}' must be typed with exactly 1 type: '${t?.parent?.name?.escapedText}'.`));n(b[0],d,E,l)}}}else S(t,new Error(`Type is not defined for '${d?.name??"return"}'.`))},i=[],S=(t,d)=>{i.push(d)};if(s.forEachChild(Z,t=>{if(E=t,(s.getCombinedModifierFlags(E)&s.ModifierFlags.Export)!==0&&s.isFunctionDeclaration(t)){const l={},c={parameters:{}},N=t?.name?.getText();try{l.name=N;const T=P.getSymbolAtLocation(t.name).getDocumentationComment(P);if(T&&T.length>0&&T[0].text){let m=T[0].text;m=m.replace(/[\r\n]+/g,"\\n").trim(),c.summary=m}const L={};n(t.type,L,l,!1),l.returnType=L;const b={};d=t,(s.getCombinedModifierFlags(d)&s.ModifierFlags.Default)!==0&&(b.default=!0,M=N),Object.keys(b).length>0&&(l.behavior=b),l.parameters=[];const g=new Map;for(let m=0;m<t.parameters.length;m++){const o=t.parameters[m],h={};h.name=o.name?.getText();const $=n(o.type,h,l,!0);if($){if(l.parameters.length!==0){const B=t?.parent,C=B?.name?.getText();return void S(t,new Error(`'${l.name}' contexts must be the first parameter: '${C}'.`))}l.context=$;continue}let v;if((o.initializer!==void 0&&o.initializer!==null||o.questionToken!==void 0&&o.questionToken!==null)&&(h.optional=!0,o.initializer))try{v=o.initializer.kind===s.SyntaxKind.StringLiteral?o.initializer.text:o.initializer.kind===s.SyntaxKind.NumericLiteral?parseFloat(o.initializer.text):o.initializer.kind===s.SyntaxKind.TrueKeyword||o.initializer.kind===s.SyntaxKind.FalseKeyword?o.initializer.kind===s.SyntaxKind.TrueKeyword:o.initializer.kind===s.SyntaxKind.NullKeyword?null:o.initializer.kind===s.SyntaxKind.ObjectLiteralExpression||o.initializer.kind===s.SyntaxKind.ArrayLiteralExpression?o.initializer.getText():o.initializer.getText?.()}catch(B){console.warn(`Couldn't extract default value for parameter '${h.name}'`,B)}o.dotDotDotToken&&(h.rest=!0),l.parameters.push(h);const w={description:""};c.parameters[h.name]=w;const u=P.getSymbolAtLocation(o.name).getDocumentationComment(P);u&&u.length>0&&u[0].text&&(w.description=u[0].text),v!==void 0&&(w.defaultValue=v),g.set(h.name,h)}if(t.jsDoc&&t.jsDoc.length>0){const m=t.jsDoc;for(let o=0;o<m.length;o++){const h=m[o]?.tags;if(h)for(let $=0;$<h.length;$++){const v=h[$];let w=v?.tagName?.text;if(!w)continue;w=w.toLowerCase();let u=v.comment;const B=w==="hidden";if((typeof u=="string"||B)&&(typeof u=="string"&&(u=u.replace(/[\r\n]+/g,"\\n").trim()),B||!u||(u=u.split(/\\n/)[0],u&&u.length!==0))){if(u&&typeof u=="string"){const C=/\{@link(code|plain)?\s+([^}|]+)(?:\s*\|\s*([^}]+))?\}/g;let D,R=u,V=[];for(;(D=C.exec(u))!==null;){const[ee,te,ye,ae]=D,fe=[ye.trim()];ae&&fe.push(ae.trim())}u=R,V.length>0&&w==="see"&&(c.links||(c.links=[]),c.links.push(...V))}if(w==="name"){const C=u;C!==N&&(c.name=C)}else if(w!=="description"){if(w==="summary"){const C=u;C&&(c.summary=C)}else if(w==="param"){const C=v.name?.text,D=g.get(C);if(!D){i.push(new Error(`Parameter '${C}' not found in function '${N}'.`));continue}if(v.typeExpression&&v.typeExpression.type)try{const R=v.typeExpression.type;if(R.kind===s.SyntaxKind.UnionType){const V=[];D.enums=V,R.types.forEach(ee=>{if(ee.kind===s.SyntaxKind.LiteralType){const te=ee.literal.text;te&&V.push(te)}})}}catch(R){console.warn("Error parsing JSDoc type expression:",R)}}else if(w==="returns"||w==="return")l.returnType.description=u;else if(w==="category")c.category=u;else if(w==="hidden"){let C=!0;const D=u?.toLowerCase();D==="false"?C=!1:D!=="true"&&(C=u),C!==!1&&(c.hidden=C??!0)}}}}}}Object.keys(l.returnType).length===0&&delete l.returnType,U.push([l,c])}catch(T){S(t,new Error(`'${N}': ${T.message}`))}}var d,E}),i.length>0)throw console.warn(i),new Error("There were compilation errors.",{cause:i});if(U.length===0)throw new Error("No exported functions.");const q=`${he.$.uuidV4()}-script`;try{k||i.length!==0||(K=await async function(t,d,E="/script.js",l="__SHEETXL"){try{const c=await async function(){if(A)return A;if(H){if(await H,!A)throw new Error("ESBuild initialization promise resolved, but instance is not available.");return A}let g,m;H=new Promise((o,h)=>{g=o,m=h});try{const{initialize:o}=await Promise.resolve().then(()=>require("./D0RwDzLW2tAOaOgp.cjs"));return A=await o(),g(),A}catch(o){throw console.error("Failed to import or initialize esbuild:",o),H=null,m(o),o}}(),N="@sheetxl/primitives",T=`
45
45
  export const FormulaContext = globalThis.${l}?.FormulaContext;
46
46
  export const ScalarType = globalThis.${l}?.ScalarType;
47
47
  export const Observable = globalThis.${l}?.Observable;