@sheetxl/studio-vanilla 0.7.3 → 0.7.4
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.
- package/browser/cjs/{Nwjr-_1igB0QWOhx.cjs → 8ORcPDrnyLtyRBC5.cjs} +4 -4
- package/browser/cjs/{DAyEcbqQzttM-vxn.cjs → 8gwQqoquag37n7A4.cjs} +1 -1
- package/browser/cjs/{DEaS8TV80AORUrfm.cjs → 9YNUOzk1ChRHaQ0A.cjs} +1 -1
- package/browser/cjs/{NJRjP5fZf063qa_j.cjs → A4yAgzK3Yi1hFoyF.cjs} +1 -1
- package/browser/cjs/{B-_6rKIitR2q93fJ.cjs → B0Z0aRvslQ-luY7V.cjs} +2 -2
- package/browser/cjs/{DyC8iBrVH7LDDW1x.cjs → B13vFaAy_2-LVET-.cjs} +1 -1
- package/browser/cjs/{D1uSjhWmlU5THG1P.cjs → B2LQcZ92fWIJv2Gz.cjs} +1 -1
- package/browser/cjs/{DZlQ0ZdlhDYCKZ84.cjs → B3C8eQFrLaL-fvH-.cjs} +14 -14
- package/browser/cjs/{Bjbh4_Dk82VFJYks.cjs → B47DWuTo-MqQ3jZz.cjs} +1 -1
- package/browser/cjs/{Dm7olX2nDFTkXnZY.cjs → B4foheVEUqSBFEkt.cjs} +1 -1
- package/browser/cjs/{Bq5B84cvyZ8OYIz6.cjs → B7MW5qdFHlXONQ6l.cjs} +2 -2
- package/browser/cjs/{4XQsjfv-mpA7WJDa.cjs → BNPrWaUmde-C-8Vx.cjs} +1 -1
- package/browser/cjs/{D5iZt0R5B2wmTq9v.cjs → BeOgEB1ihIJx02Af.cjs} +1 -1
- package/browser/cjs/{Bmgx1KG2dHqvK0IP.cjs → BgSDdeTv_xCIgBGD.cjs} +3 -3
- package/browser/cjs/{BfrxFnXlulEOhhE1.cjs → BlswEA5cHtxUqfLX.cjs} +2 -2
- package/browser/cjs/{BI7D58lbU_QCK6AB.cjs → BprNr_E9PJXMBdn3.cjs} +1 -1
- package/browser/cjs/{B-G7myiBLkxxlzK2.cjs → BrKvmHqdJp6qNOFB.cjs} +1 -1
- package/browser/cjs/{BAVZCS-6TMywf-LE.cjs → ByA09xUI5G9YbxMz.cjs} +1 -1
- package/browser/cjs/{zVLCowqud_vITJlX.cjs → Bzqv14cPgkvKImRH.cjs} +1 -1
- package/browser/cjs/{CEMcAl53gqW4Tbar.cjs → C23bIG7E2r_Q0RAj.cjs} +3 -3
- package/browser/cjs/{8VX5F9-vSSGbO0aC.cjs → C7GKCVS4tFPkLsu7.cjs} +1 -1
- package/browser/cjs/{B4VQUY77kxW2ClsV.cjs → CAiDHxx6Gd0WmW60.cjs} +2 -2
- package/browser/cjs/{CpE3PTQkikAxhg4g.cjs → CBNecyEra54crLep.cjs} +2 -2
- package/browser/cjs/{CuEvMFFfmw4EzVAL.cjs → CTT_jzhLio55PSMa.cjs} +4 -4
- package/browser/cjs/{BmsbIZ939yQctHD6.cjs → CWOIza8vwfNX5KIr.cjs} +1 -1
- package/browser/cjs/{B1ArA8FKm4WVUvvM.cjs → Cd4lc7sbp3kKfIbA.cjs} +2 -2
- package/browser/cjs/Cfr9LxunC2fgJtM2.cjs +11 -0
- package/browser/cjs/{CDrgv3rpGPZh6d8e.cjs → ChIk2dRWK_RpFnZl.cjs} +3 -3
- package/browser/cjs/{CgmHXy-q0GruZI8X.cjs → CwsdwMi5Xs8b4Yhg.cjs} +1 -1
- package/browser/cjs/{amq-khP9nkyBI5Ro.cjs → D0ApB39VH979ZUCx.cjs} +1 -1
- package/browser/cjs/{QqzkV3azD4vIOKZ2.cjs → D3tIyPRHWxjXZjiu.cjs} +383 -383
- package/browser/cjs/{CZzooq_Dbdirg1so.cjs → D4llH4xbqGzmuVYe.cjs} +1 -1
- package/browser/cjs/{DPObIispo-BnNIS5.cjs → D6Gix9vU3zy6x0wx.cjs} +1 -1
- package/browser/cjs/{dAi3dUCADByWtU8J.cjs → D6RF346wXtLKkoJ-.cjs} +2 -2
- package/browser/cjs/{18KMc3DO6-QUK7EW.cjs → D6pv0GOQycMcOyhu.cjs} +1 -1
- package/browser/cjs/{MsEdoC-pzcFE0w_y.cjs → D80cB8tOFfQNF4oS.cjs} +2 -2
- package/browser/cjs/{Cv9z6TDkk54-RU6s.cjs → DAJLF0E4eUH-LX9t.cjs} +3 -3
- package/browser/cjs/{B6yCSqd62uTktnlY.cjs → DEzEcMfZx0I-QgJj.cjs} +1 -1
- package/browser/cjs/{Bx-t9hS0Ea8fS6cW.cjs → DFAQXO44wRvSlwCZ.cjs} +1 -1
- package/browser/cjs/DH59epfNQumKG6UO.cjs +6 -0
- package/browser/cjs/{Cz4bptupZrLkAnaS.cjs → DHdO6HcI4UB6Ks3h.cjs} +2 -2
- package/browser/cjs/{d0WPP_ytsh2QgluQ.cjs → DQrZ7_9M-BH9Zqhw.cjs} +2 -2
- package/browser/cjs/{CQms0ElWRvuMBvoH.cjs → DVATnEUJxTQMsLOO.cjs} +1 -1
- package/browser/cjs/{CyD7EdiqHml5T8Bq.cjs → De082R33Q24Czdd2.cjs} +2 -2
- package/browser/cjs/{BmbSOb6Ep0lvFpsE.cjs → Dg0Zl23k4ZwHK5Nt.cjs} +2 -2
- package/browser/cjs/{C0pqv1DbTg7j8n4t.cjs → DnirKDgaxys3R_a-.cjs} +1 -1
- package/browser/cjs/{C7soJWPu8fdQMDKh.cjs → DsWfniauN1Pu2Go3.cjs} +1 -1
- package/browser/cjs/JZZCpLEpsC2LCYHH.cjs +6 -0
- package/browser/cjs/{niUlo6nAYiwYIUyT.cjs → KuiK9SKQWvWBM3--.cjs} +1 -1
- package/browser/cjs/MD9O1VNhhdH5RoiA.cjs +330 -0
- package/browser/cjs/{xLprIpqHB-fTZxw6.cjs → Xzq847s6zAFUFWcq.cjs} +1 -1
- package/browser/cjs/{03L3sV1YAHRQUBjZ.cjs → dGtOlClU3aLzqX9G.cjs} +1 -1
- package/browser/cjs/index.cjs +2 -2
- package/browser/cjs/{BdIduBeLUGoOxDXC.cjs → ipGL9YCfyze4LbQj.cjs} +1 -1
- package/browser/cjs/oGzYb3Ra2l_2M4Fe.cjs +6 -0
- package/browser/cjs/{C6KT_ePmyek9jS3d.cjs → pI4yZSOoBjkftfKX.cjs} +1 -1
- package/browser/cjs/{Bk3dq9oyFJiJSGj_.cjs → q1y9tq62y47f7mxy.cjs} +1 -1
- package/browser/cjs/{D2oVp3EL6dX5ODnP.cjs → v9zKXidk5AvKGkz7.cjs} +1 -1
- package/browser/esm/{S-GjtOL5Bh3e-02h.mjs → 0egw9xufQUK5XQZ5.mjs} +1 -1
- package/{cdn/assets/qFrSZCDTH0G0JDfb.js → browser/esm/6dkX2k_H0PA_iz5X.mjs} +1 -1
- package/browser/esm/{Cf1M02sA8FLOwBzb.mjs → B3ECMs0QjPnXbJEw.mjs} +2 -2
- package/browser/esm/{BSF_fNyha8v2ysLL.mjs → B4U-HbDDW978wKeB.mjs} +3 -3
- package/{cdn/assets/BWvc1g3YiKSoqwev.js → browser/esm/B7wG8K-M9ldv3InT.mjs} +1 -1
- package/browser/esm/{CeMYqSz1VADp7RTo.mjs → B9wr_AwSb0JtPoMv.mjs} +1 -1
- package/{cdn/assets/dZylOjR-39eER4GB.js → browser/esm/BDSX8FAyHcAmsE-T.mjs} +1 -1
- package/browser/esm/{DO1U62H4O-dAJtf-.mjs → BTM0pYbZvfLqBj6Z.mjs} +2 -2
- package/browser/esm/{8f7G-rpq07c7sz0F.mjs → BVvwFIl1xvigNZTj.mjs} +1 -1
- package/{cdn/assets/mmv3YCV5K_S7Hjhe.js → browser/esm/BfH0870g7ogWyWTa.mjs} +1 -1
- package/{cdn/assets/nrVyS158rTnaAJVN.js → browser/esm/Bgcy7JI6AzSoovcw.mjs} +1 -1
- package/browser/esm/{0KR8f89vI_5Mwz7H.mjs → Bioh6T6jynIt2aBf.mjs} +5 -5
- package/{cdn/assets/BqAxzWcqJIGCb2d0.js → browser/esm/BkjhtLKdZkaleH6j.mjs} +1 -1
- package/browser/esm/{Bk0CMPODIHZODYkA.mjs → BrGzSkrQVV-CCVui.mjs} +1 -1
- package/browser/esm/{BdewC0t_gRjGI3Z9.mjs → BsryTthQuZrS1w0h.mjs} +3 -3
- package/browser/esm/{Da0goN3E6ovlx2Wk.mjs → BzCCXyLxR1Tx_PQ6.mjs} +3 -3
- package/browser/esm/{Dl3TiAoINXoApeKj.mjs → BzXLeceeaODxxlsN.mjs} +3 -3
- package/browser/esm/{CVu2epp9fhfex9NL.mjs → C1TJTYVoSUvCsI72.mjs} +2 -2
- package/{cdn/assets/D9hTqQqAW8QTc_8Q.js → browser/esm/C2sR98LOxBBkEECx.mjs} +1 -1
- package/browser/esm/{Dl7R3IFy9Y9o-Q0I.mjs → C3ZYwFCm4zV0PV7L.mjs} +1 -1
- package/{cdn/assets/Cek4YwPIyHWB2iVA.js → browser/esm/C4aAJQZlcVwK7Bv7.mjs} +1 -1
- package/browser/esm/{DX1rk0tNl-vYmcUE.mjs → C4dAWyoYzg5AFxSE.mjs} +2 -2
- package/browser/esm/{4LRM8_32XzCaSk1F.mjs → CFey64nL6K_JDHyo.mjs} +1 -1
- package/browser/esm/{Cpv_VJfcd0lQgsd2.mjs → CHOlVNulci003tpR.mjs} +4 -4
- package/browser/esm/{BSAZm7wqqfWEKCaf.mjs → CKOpVcqPaB2s4dTb.mjs} +1 -1
- package/browser/esm/{p476r_-Ouf3iaYIc.mjs → CR9jsRCQsHJO01J4.mjs} +15 -13
- package/browser/esm/{Crb7e3xskPF7eKP8.mjs → CSU3ycILp620z_i8.mjs} +2 -2
- package/browser/esm/CUq15BKQ0G25o03H.mjs +48 -0
- package/browser/esm/{8hyzunyf0O949-vz.mjs → Cb1GBW9E5GfRvhuS.mjs} +1 -1
- package/browser/esm/{auopa7YjuIcIlNMM.mjs → CbiCECqtZzDk6jeR.mjs} +2 -2
- package/browser/esm/{C1fL3M_1H6G3yS0L.mjs → Ce3pCanMx2TnvT0I.mjs} +16 -16
- package/browser/esm/{BOZs5TX4xwgrA2El.mjs → CfEvt84zrQGwFpt2.mjs} +1 -1
- package/browser/esm/{DiRWHRkwW9s9_GMc.mjs → ChrPZQnuQU-qVVa1.mjs} +34 -34
- package/browser/esm/{1FgykQ6oxhSQKBfW.mjs → CqxLzaP5z64d6Lx4.mjs} +1 -1
- package/{cdn/assets/Ckxn_MQ55THahZo3.js → browser/esm/CrqJMWWEjzFZ-_Pk.mjs} +1 -1
- package/{cdn/assets/C8t8iVNsz03fWG_i.js → browser/esm/CzgyRT7Dh3AVKcWl.mjs} +1 -1
- package/{cdn/assets/CmWuCsBWpv3hu5-B.js → browser/esm/DKrP22W3r6dc2ll8.mjs} +1 -1
- package/browser/esm/{fMUqs_3dU5oxSO7E.mjs → DRVrzDz7nVU_faHO.mjs} +383 -383
- package/{cdn/assets/0rJdjIu1JyUD78Iy.js → browser/esm/DYqsn4bTq8tt9z2d.mjs} +1 -1
- package/{cdn/assets/BdHTQaH6E3G3q0l9.js → browser/esm/DhT-2pf586yDvyqZ.mjs} +1 -1
- package/browser/esm/{DV62I0HQ_gAwiRbM.mjs → DjtYK-s8g6tP0TRw.mjs} +2 -2
- package/browser/esm/{B6GSLs_Ze16csEUM.mjs → DswWgS_zGnCjt804.mjs} +2 -2
- package/browser/esm/{BhjQAaTAZveEoHho.mjs → DvaoVWL-VdS7k_i3.mjs} +2 -2
- package/{cdn/assets/CBXt6vcEnDTzUhED.js → browser/esm/J_m4I2bQAeYSJPWS.mjs} +1 -1
- package/browser/esm/{B8W3PE6OA1hg00t1.mjs → JgQgURqWEwvTv_wi.mjs} +1 -1
- package/{cdn/assets/CvODiQFnL48SxLgJ.js → browser/esm/NohZsi_dnB1kc2oI.mjs} +1 -1
- package/browser/esm/{B67UzC_dxChimHYC.mjs → P5B5SOdOUaZr99nj.mjs} +2 -2
- package/browser/esm/{DqZVoNtqMI1C_e95.mjs → UQSXr-cpRWqp8Ktj.mjs} +2 -2
- package/{cdn/assets/CXwgvim5T1bDmyck.js → browser/esm/VzlXiTXfqwuLrkgg.mjs} +1 -1
- package/{cdn/assets/dx2PfVq4BgLwSo2m.js → browser/esm/YFMiozbFWZjo74Td.mjs} +1 -1
- package/browser/esm/{DSA5mYpR0vs_wuhO.mjs → Z1fSZhtHNjC6OoN6.mjs} +14944 -14857
- package/{cdn/assets/DEi-WYrO6icYcm8Z.js → browser/esm/_N4vH5kWapbfarDc.mjs} +1 -1
- package/browser/esm/ee5ZMqTpvvsprimB.mjs +1480 -0
- package/browser/esm/index.mjs +2 -2
- package/{cdn/assets/Cf5-RzokSUlqC84X.js → browser/esm/ji2x5yzvwhn2JiFp.mjs} +1 -1
- package/{cdn/assets/DCXFA__PEU2U1kRH.js → browser/esm/m7fz1VY0WrHhVE1u.mjs} +1 -1
- package/browser/esm/{BzL1AxfchzmIOM9M.mjs → uYFnTWRHS-M71aW3.mjs} +48 -48
- package/{cdn/assets/Dp5spPNYziuCpAjI.js → browser/esm/wrn_BUWuBI2ou-lE.mjs} +1 -1
- package/cdn/assets/{S-GjtOL5Bh3e-02h.js → 0egw9xufQUK5XQZ5.js} +1 -1
- package/{browser/esm/qFrSZCDTH0G0JDfb.mjs → cdn/assets/6dkX2k_H0PA_iz5X.js} +1 -1
- package/cdn/assets/{DKEuuOaurg6zrgED.js → B4MTgKmMZcXoDlYG.js} +2 -2
- package/{browser/esm/BWvc1g3YiKSoqwev.mjs → cdn/assets/B7wG8K-M9ldv3InT.js} +1 -1
- package/cdn/assets/{CeMYqSz1VADp7RTo.js → B9wr_AwSb0JtPoMv.js} +1 -1
- package/{browser/esm/dZylOjR-39eER4GB.mjs → cdn/assets/BDSX8FAyHcAmsE-T.js} +1 -1
- package/cdn/assets/{BrrCq2E9icHFWhxl.js → BFfLoUaapPcM_eb0.js} +13 -13
- package/cdn/assets/{GDbQpYg73jLjx2Zo.js → BHyn4CasWPQ92Eud.js} +32 -32
- package/cdn/assets/{8f7G-rpq07c7sz0F.js → BVvwFIl1xvigNZTj.js} +1 -1
- package/cdn/assets/{DCj2ksitjH0nflTl.js → BZ1FXLdV7kLoj8S2.js} +4 -4
- package/cdn/assets/{BlYrwcbZLI9o3GEx.js → BZpRwfavZD9rO_v8.js} +383 -383
- package/cdn/assets/{BnESyazjG2frLdU9.js → BeENppGCoF_AwA6g.js} +2 -2
- package/{browser/esm/mmv3YCV5K_S7Hjhe.mjs → cdn/assets/BfH0870g7ogWyWTa.js} +1 -1
- package/{browser/esm/nrVyS158rTnaAJVN.mjs → cdn/assets/Bgcy7JI6AzSoovcw.js} +1 -1
- package/{browser/esm/BqAxzWcqJIGCb2d0.mjs → cdn/assets/BkjhtLKdZkaleH6j.js} +1 -1
- package/cdn/assets/{CCroVkP2kxsAGCP0.js → Bp1BVz04Xy4W95PB.js} +7 -7
- package/cdn/assets/{KTdgK91s2uZQsbSi.js → BqbxC6sS2OoaM51Y.js} +2 -2
- package/cdn/assets/{Bk0CMPODIHZODYkA.js → BrGzSkrQVV-CCVui.js} +1 -1
- package/cdn/assets/{CxhoAHkORrJNv5rM.js → Bv7E-FgORAWOkyiV.js} +2 -2
- package/{browser/esm/D9hTqQqAW8QTc_8Q.mjs → cdn/assets/C2sR98LOxBBkEECx.js} +1 -1
- package/cdn/assets/{Dl7R3IFy9Y9o-Q0I.js → C3ZYwFCm4zV0PV7L.js} +1 -1
- package/{browser/esm/Cek4YwPIyHWB2iVA.mjs → cdn/assets/C4aAJQZlcVwK7Bv7.js} +1 -1
- package/cdn/assets/{4LRM8_32XzCaSk1F.js → CFey64nL6K_JDHyo.js} +1 -1
- package/cdn/assets/{BSAZm7wqqfWEKCaf.js → CKOpVcqPaB2s4dTb.js} +1 -1
- package/cdn/assets/{CUII-6d9j6HdVfok.js → CR-xAI2miMYh-gdy.js} +8 -8
- package/cdn/assets/CaHwS8usPT5gIFuY.js +41 -0
- package/cdn/assets/{8hyzunyf0O949-vz.js → Cb1GBW9E5GfRvhuS.js} +1 -1
- package/cdn/assets/{RlH7yLXkgv89-8Sy.js → CdoIc8OarIB8C5y3.js} +15 -15
- package/cdn/assets/{BOZs5TX4xwgrA2El.js → CfEvt84zrQGwFpt2.js} +1 -1
- package/{browser/esm/Ckxn_MQ55THahZo3.mjs → cdn/assets/CrqJMWWEjzFZ-_Pk.js} +1 -1
- package/cdn/assets/{Ds6hPhvZLAxQ0d5x.js → CvTBNZMoY5-DwtAb.js} +2 -2
- package/cdn/assets/CxFPsh5ojrvYoLqP.js +1480 -0
- package/{browser/esm/C8t8iVNsz03fWG_i.mjs → cdn/assets/CzgyRT7Dh3AVKcWl.js} +1 -1
- package/cdn/assets/{FqgG-BZHvOc2-ty2.js → D4aEzWRsHbRiDZQf.js} +14870 -14783
- package/cdn/assets/{C7qb2ZMtZYg_njDy.js → D6gMyvRPXwYEpaiW.js} +1 -1
- package/cdn/assets/{CaV3Cwu2U8o9Iobr.js → DAMni_kLlITX8qAW.js} +50 -50
- package/cdn/assets/{Bl-o1sKfmGvXl2C5.js → DK5o4bmDWZoxlyie.js} +3 -3
- package/{browser/esm/CmWuCsBWpv3hu5-B.mjs → cdn/assets/DKrP22W3r6dc2ll8.js} +1 -1
- package/cdn/assets/{CZf8ZnFjvZzbt6UD.js → DMOM_dk7px3Id2fD.js} +18 -16
- package/cdn/assets/{BnN9FFFUGToz96QP.js → DTHfoEyAv88YJtid.js} +2 -2
- package/cdn/assets/{xJ9KhWlLoNSP6-Hi.js → DWxb-keKnWDZ32ov.js} +2 -2
- package/{browser/esm/0rJdjIu1JyUD78Iy.mjs → cdn/assets/DYqsn4bTq8tt9z2d.js} +1 -1
- package/cdn/assets/{peax0VuRgyHFCQ_G.js → DZSQDf-SlYIAnwqI.js} +2 -2
- package/{browser/esm/BdHTQaH6E3G3q0l9.mjs → cdn/assets/DhT-2pf586yDvyqZ.js} +1 -1
- package/cdn/assets/{B-jfq2V5rCha0_Ee.js → DuVOZ5CVHDzuF-Wf.js} +5 -5
- package/cdn/assets/{DUJxr3mhCk0FDKII.js → IQp8evg14s1_pMGI.js} +3 -3
- package/{browser/esm/CBXt6vcEnDTzUhED.mjs → cdn/assets/J_m4I2bQAeYSJPWS.js} +1 -1
- package/cdn/assets/{B8W3PE6OA1hg00t1.js → JgQgURqWEwvTv_wi.js} +1 -1
- package/cdn/assets/{CYngTHj-adXcslLB.js → McZLFG7PefCrtXxD.js} +1 -1
- package/{browser/esm/CvODiQFnL48SxLgJ.mjs → cdn/assets/NohZsi_dnB1kc2oI.js} +1 -1
- package/cdn/assets/{C9PhjUfQhQP3mArV.js → TAuxEP6K9MOe8hvY.js} +3 -3
- package/cdn/assets/{D8-dJ4NPxgd13jjm.js → UGRaW68kY1lQin4c.js} +3 -3
- package/{browser/esm/CXwgvim5T1bDmyck.mjs → cdn/assets/VzlXiTXfqwuLrkgg.js} +1 -1
- package/{browser/esm/dx2PfVq4BgLwSo2m.mjs → cdn/assets/YFMiozbFWZjo74Td.js} +1 -1
- package/{browser/esm/DEi-WYrO6icYcm8Z.mjs → cdn/assets/_N4vH5kWapbfarDc.js} +1 -1
- package/cdn/assets/{BB7n0e6CxSvP7yHL.js → ddSl0Ga-rXVB9Yci.js} +10 -10
- package/cdn/assets/gRJ4OcAtWEBEGLJD.js +48 -0
- package/cdn/assets/{D6sNNtokp4mLQiw3.js → jeiAiNavXwDjx5bH.js} +19 -19
- package/{browser/esm/Cf5-RzokSUlqC84X.mjs → cdn/assets/ji2x5yzvwhn2JiFp.js} +1 -1
- package/{browser/esm/DCXFA__PEU2U1kRH.mjs → cdn/assets/m7fz1VY0WrHhVE1u.js} +1 -1
- package/cdn/assets/{Bopms-FCBYVpep58.js → mgzh0Oj545G9VFmY.js} +10 -10
- package/cdn/assets/{DuA0s3_rkCGnQ8YD.js → pv07rmyN2zy5KZrb.js} +2 -2
- package/cdn/assets/{DSQ_jXS2RYh7Mf48.js → tbqH71TvrNeRjwAy.js} +3 -3
- package/{browser/esm/Dp5spPNYziuCpAjI.mjs → cdn/assets/wrn_BUWuBI2ou-lE.js} +1 -1
- package/cdn/index.js +2 -2
- package/cdn/loader.js +1 -1
- package/package.json +3 -3
- package/browser/cjs/BtfwmEQ4p3yNqTRo.cjs +0 -11
- package/browser/cjs/CiYF8QjkKxQATXHv.cjs +0 -330
- package/browser/cjs/DCRD-C6Y3JpDBHzZ.cjs +0 -6
- package/browser/cjs/DfERjr0YTkM7nvqm.cjs +0 -6
- package/browser/cjs/DvyZxJDmtkZgGsNc.cjs +0 -6
- package/browser/esm/B_C8F4pEXETUmxZI.mjs +0 -46
- package/browser/esm/D9rQ4kBN9rUGEI2x.mjs +0 -1467
- package/cdn/assets/DOMjjxYgJmqxOutl.js +0 -1467
- package/cdn/assets/DUhtUNYvPgRNUg0w.js +0 -46
- package/cdn/assets/tuPLfw-QNAp0BwcX.js +0 -41
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.
|
|
2
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.4
|
|
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
|
/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.
|
|
2
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.4
|
|
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,6 +1,6 @@
|
|
|
1
|
-
import { r as a, T as x, j as o, a as L, B as W, b,
|
|
1
|
+
import { r as a, T as x, j as o, a as L, B as W, d as b, h as O, e as p, f as r } from "./Z1fSZhtHNjC6OoN6.mjs";
|
|
2
2
|
/**
|
|
3
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.
|
|
3
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.4
|
|
4
4
|
*
|
|
5
5
|
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
6
6
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.
|
|
2
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.4
|
|
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,6 +1,6 @@
|
|
|
1
|
-
import { aa as le, am as S } from "./
|
|
1
|
+
import { aa as le, am as S } from "./Z1fSZhtHNjC6OoN6.mjs";
|
|
2
2
|
/**
|
|
3
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.
|
|
3
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.4
|
|
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.
|
|
@@ -22,7 +22,7 @@ let M = null;
|
|
|
22
22
|
async function me() {
|
|
23
23
|
if (M) return M;
|
|
24
24
|
try {
|
|
25
|
-
return await (await import("./
|
|
25
|
+
return await (await import("./BrGzSkrQVV-CCVui.mjs")).initialize();
|
|
26
26
|
} catch (b) {
|
|
27
27
|
throw M = null, b;
|
|
28
28
|
} finally {
|
|
@@ -216,7 +216,7 @@ interface Promise<T> {
|
|
|
216
216
|
c = t, l = s;
|
|
217
217
|
});
|
|
218
218
|
try {
|
|
219
|
-
const { initialize: t } = await import("./
|
|
219
|
+
const { initialize: t } = await import("./C3ZYwFCm4zV0PV7L.mjs");
|
|
220
220
|
return v = await t(), c(), v;
|
|
221
221
|
} catch (t) {
|
|
222
222
|
throw console.error("Failed to import or initialize esbuild:", t), R = null, l(t), t;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.
|
|
2
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.4
|
|
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
|
-
import { r as n,
|
|
1
|
+
import { r as n, n as z, K as O, L as E, T as u, j as a, P as M, x as W, o as A, B as o, Q as q, R as J, J as h, Y as K, U as Q, W as f, q as y, _ as b, $ as j } from "./Z1fSZhtHNjC6OoN6.mjs";
|
|
2
2
|
/**
|
|
3
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.
|
|
3
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.4
|
|
4
4
|
*
|
|
5
5
|
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
6
6
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
7
7
|
*/
|
|
8
|
-
const
|
|
9
|
-
const { title: S, onHide: C, autoFocusSel: R = ".range-input input", context: N,
|
|
10
|
-
|
|
8
|
+
const _ = n.memo((w) => {
|
|
9
|
+
const { title: S, onHide: C, autoFocusSel: R = ".range-input input", context: N, command: r, commands: c, ...T } = w, [v, d] = n.useState(!1), [g, m] = n.useState(!1), x = n.useRef(null), [U, D] = n.useReducer((e) => e + 1, 0), [F, { width: V }] = z();
|
|
10
|
+
O(r);
|
|
11
11
|
const s = N ?? r.context(), t = s.table(), [B, H] = n.useState(() => t ? s.getNames().getRanges(t.getRange()) : null), P = n.useMemo(() => t?.getName() ?? "", [t]);
|
|
12
|
-
|
|
12
|
+
E(s.table(), { onAnchorCoordsChange(e) {
|
|
13
13
|
H(s.getNames().getRanges(e.getRange()));
|
|
14
14
|
}, onProtectedChange(e) {
|
|
15
15
|
D();
|
|
@@ -20,15 +20,17 @@ const k = n.memo((w) => {
|
|
|
20
20
|
s?.table().resize(e.at(0));
|
|
21
21
|
}, [s]);
|
|
22
22
|
let p = null;
|
|
23
|
-
|
|
23
|
+
s.table() || (p = a.jsx("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.jsx("div", { children: "No table selected" }) }));
|
|
24
|
+
const l = M();
|
|
25
|
+
return a.jsx(W, { ref: x, title: S ?? "Table Details", initialPosition: { y: "35" }, autoFocusSel: R, onHide: C, onFocus: () => d(!0), onBlur: (e) => {
|
|
24
26
|
x?.current?.contains(e.relatedTarget) || d(!1);
|
|
25
|
-
}, PaperProps: { elevation: v ? 3 : 1 }, ...T, children: a.jsxs(A, { dividers: !0, ref: F, sx: { display: "flex", flexDirection: "column", position: "relative", paddingLeft: (e) => e.spacing(1.5), paddingRight: (e) => e.spacing(1.5) }, children: [a.jsxs(o, { sx: { display: "flex", flexDirection: "column", transition: "opacity 60ms", opacity: s.table() ? 1 : 0 }, children: [a.jsx(o, { sx: { display: "flex", flexDirection: "row", gap: (e) => e.spacing(1) }, children: a.jsx(o, { sx: { display: "flex", flexDirection: "column", maxWidth: "100%", boxSizing: "border-box", paddingLeft: (e) => e.spacing(2), paddingRight: (e) => e.spacing(2) }, children: a.jsxs(o, { sx: { display: "flex", flexDirection: "column", alignItems: "center" }, children: [a.jsx(
|
|
27
|
+
}, PaperProps: { elevation: v ? 3 : 1 }, ...T, children: a.jsxs(A, { dividers: !0, ref: F, sx: { display: "flex", flexDirection: "column", position: "relative", paddingLeft: (e) => e.spacing(1.5), paddingRight: (e) => e.spacing(1.5) }, children: [a.jsxs(o, { sx: { display: "flex", flexDirection: "column", transition: "opacity 60ms", opacity: s.table() ? 1 : 0 }, children: [a.jsx(o, { sx: { display: "flex", flexDirection: "row", gap: (e) => e.spacing(1) }, children: a.jsx(o, { sx: { display: "flex", flexDirection: "column", maxWidth: "100%", boxSizing: "border-box", paddingLeft: (e) => e.spacing(2), paddingRight: (e) => e.spacing(2) }, children: a.jsxs(o, { sx: { display: "flex", flexDirection: "column", alignItems: "center" }, children: [a.jsx(q, { formName: "name", defaultInput: P, value: t?.getName() ?? "No table", onChangeInput: I, onValidate: (e) => {
|
|
26
28
|
t && t.getName().toLowerCase() === e.toLowerCase() || s?.getNames().validateName(e);
|
|
27
29
|
}, disabled: t?.isProtected() ?? !0, onFocus: (e) => {
|
|
28
30
|
g || e.target?.select(), m(!0);
|
|
29
|
-
} }), a.jsx(
|
|
31
|
+
} }), a.jsx(J, { formName: "range", value: B, onChangeInput: L, resolvedAddress: s.getNames().getRanges.bind(s.getNames()), disabled: t?.isProtected() ?? !0, onFocus: (e) => {
|
|
30
32
|
g || e.target?.select(), m(!0);
|
|
31
|
-
} })] }) }) }), a.jsxs(o, { sx: { minHeight: "10px", flex: "1 1 100%", display: "flex", flexDirection: "column", gap: (e) => e.spacing(0.5), marginTop: (e) => e.spacing(1) }, children: [a.jsx(h, { orientation: "horizontal", sx: { marginTop: (e) => e.spacing(1.5), marginBottom: (e) => e.spacing(0.75) } }), a.jsx(
|
|
33
|
+
} })] }) }) }), a.jsxs(o, { sx: { minHeight: "10px", flex: "1 1 100%", display: "flex", flexDirection: "column", gap: (e) => e.spacing(0.5), marginTop: (e) => e.spacing(1) }, children: [a.jsx(h, { orientation: "horizontal", sx: { marginTop: (e) => e.spacing(1.5), marginBottom: (e) => e.spacing(0.75) } }), a.jsx(K, { disabled: t?.isProtected(), styleOptions: t?.getStyleOptions() ?? null, onStyleOptionsChange: (e) => {
|
|
32
34
|
t.updateStyleOptions(e);
|
|
33
35
|
}, showHeaderRow: t?.getShowHeaders(), onShowHeaderRowChange: (e) => {
|
|
34
36
|
try {
|
|
@@ -48,9 +50,9 @@ const k = n.memo((w) => {
|
|
|
48
50
|
} catch (i) {
|
|
49
51
|
l.showError(i);
|
|
50
52
|
}
|
|
51
|
-
} }), a.jsx(o, { sx: { display: "flex", alignItems: "center", justifyContent: "center", flexDirection: "column", marginTop: (e) => e.spacing(2), marginBottom: (e) => e.spacing(1) }, children: a.jsx(
|
|
53
|
+
} }), a.jsx(o, { sx: { display: "flex", alignItems: "center", justifyContent: "center", flexDirection: "column", marginTop: (e) => e.spacing(2), marginBottom: (e) => e.spacing(1) }, children: a.jsx(Q, { table: t, styles: s.styles(), bodyStyle: s.bodyStyle(), cellHeight: 30, isLive: !0 }) }), a.jsx(h, { orientation: "horizontal" }), a.jsxs(o, { sx: { display: "flex", flexDirection: "column", justifyContent: "center" }, children: [a.jsx(f, { variant: b.Menuitem, command: c.getCommand("convertTableToRange"), commandState: t, icon: y(a.jsx(j, {})) }), a.jsx(f, { variant: b.Menuitem, commandState: t, command: c.getCommand("deleteTable"), icon: y(a.jsx(j, {})) })] })] })] }), p] }) });
|
|
52
54
|
});
|
|
53
55
|
export {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
+
_ as TableDetailsWindow,
|
|
57
|
+
_ as default
|
|
56
58
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.
|
|
2
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.4
|
|
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.
|
|
@@ -10,7 +10,7 @@ class o {
|
|
|
10
10
|
}
|
|
11
11
|
async getWorkerWrapper() {
|
|
12
12
|
if (this.workerWrapper) return this.workerWrapper;
|
|
13
|
-
const { createCompilerWorker: r } = await import("./
|
|
13
|
+
const { createCompilerWorker: r } = await import("./DRVrzDz7nVU_faHO.mjs");
|
|
14
14
|
return this.workerWrapper = await r(), this.workerWrapper;
|
|
15
15
|
}
|
|
16
16
|
async compileModule(r) {
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { az as C, w as y } from "./Z1fSZhtHNjC6OoN6.mjs";
|
|
2
|
+
/**
|
|
3
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.4
|
|
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, c) => {
|
|
9
|
+
const { trimLeadingBlankRow: i = !0, trimLeadingBlankColumn: f = !0, excludeHidden: g = !1, sheetKey: t = null, papaParseConfig: m = {} } = c || {}, w = await import("./m7fz1VY0WrHhVE1u.mjs").then((e) => e.p);
|
|
10
|
+
if (!a) throw new Error("workbook must be specified");
|
|
11
|
+
let r = null;
|
|
12
|
+
if (t === null ? r = a.getSelectedSheet() : typeof t == "number" ? r = a.getSheets().getItems()[t] : typeof t == "string" && (r = a.getSheets().getByName(t)), !r) throw new Error("invalid sheetKey specified");
|
|
13
|
+
let u = null;
|
|
14
|
+
const l = [];
|
|
15
|
+
let n = null, o = r.getUsedRange({ excludeHidden: g });
|
|
16
|
+
if (!o) throw new Error("Nothing to export");
|
|
17
|
+
if (!i || !f) {
|
|
18
|
+
const e = i ? o.getRowStart() : 0, s = f ? o.getColumnStart() : 0;
|
|
19
|
+
o = o.getOffsetTo(e, s);
|
|
20
|
+
}
|
|
21
|
+
o.forEach((e, s) => {
|
|
22
|
+
const d = s.getCoords(), S = s.getCell();
|
|
23
|
+
u !== d.rowIndex && (n && l.push(n), n = [], u = d.rowIndex);
|
|
24
|
+
const x = S.toTextUnformatted() ?? "";
|
|
25
|
+
n.push(x);
|
|
26
|
+
}, { includeEmpty: !0, address: null }), n && l.push(n);
|
|
27
|
+
const p = { ...m }, h = w.unparse(l, p);
|
|
28
|
+
return new TextEncoder().encode(h).buffer;
|
|
29
|
+
}, P = async (a, c) => {
|
|
30
|
+
const { papaParseConfig: i, setValuesOptions: f, createWorkbookOptions: g } = c ?? {}, t = c?.progress, m = t?.onStart?.(c?.name ?? "Parsing CSV");
|
|
31
|
+
await Promise.resolve(m);
|
|
32
|
+
const w = t?.onProgress, r = await import("./m7fz1VY0WrHhVE1u.mjs").then((e) => e.p), u = new TextDecoder().decode(a);
|
|
33
|
+
let l = -1;
|
|
34
|
+
const n = new C(g), o = n.getSelectedSheet().getEntireRange().startIncrementalUpdates({ orientation: y.Orientation.Row });
|
|
35
|
+
let p = 0;
|
|
36
|
+
const h = { ...i, transform: (e, s) => {
|
|
37
|
+
i?.transform && (e = i.transform(e, s));
|
|
38
|
+
const d = s;
|
|
39
|
+
d === 0 && l++;
|
|
40
|
+
let S = e ?? "";
|
|
41
|
+
return o.pushAt(l, d, S), p++, p % 1e5 == 0 && w?.(p), t?.onComplete?.(p), e;
|
|
42
|
+
} };
|
|
43
|
+
return r.parse(u, h).data, o.apply({ textParser: !0, ...f }), n;
|
|
44
|
+
};
|
|
45
|
+
export {
|
|
46
|
+
P as fromBufferCSV,
|
|
47
|
+
k as toBufferCSV
|
|
48
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.
|
|
2
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.4
|
|
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,6 +1,6 @@
|
|
|
1
|
-
import { az as J } from "./
|
|
1
|
+
import { az as J } from "./Z1fSZhtHNjC6OoN6.mjs";
|
|
2
2
|
/**
|
|
3
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.
|
|
3
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.4
|
|
4
4
|
*
|
|
5
5
|
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
6
6
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
import { r as s, T as u, j as l, a as B, B as M,
|
|
1
|
+
import { r as s, T as u, j as l, a as B, B as M, d as S, h as E, e as h, f as C } from "./Z1fSZhtHNjC6OoN6.mjs";
|
|
2
2
|
/**
|
|
3
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.
|
|
3
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.4
|
|
4
4
|
*
|
|
5
5
|
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
6
6
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
7
7
|
*/
|
|
8
8
|
const V = ["Ok", "Cancel"], z = s.memo((O) => {
|
|
9
|
-
const { initialComments: T = null, onUpdateComments: m, context:
|
|
10
|
-
const n = T ??
|
|
9
|
+
const { initialComments: T = null, onUpdateComments: m, context: j, onOption: d, onValidateOption: c, onDone: p, options: g = V, defaultOption: r = g?.[0], cancelOption: i = "Cancel", sx: k, ...w } = O, f = s.useMemo(() => {
|
|
10
|
+
const n = T ?? j?.()?.getComments();
|
|
11
11
|
let t = "";
|
|
12
12
|
if (n && n.content && n.content.runs) {
|
|
13
13
|
const a = n.content.runs;
|
|
14
|
-
for (let
|
|
15
|
-
const I = a[
|
|
14
|
+
for (let e = 0; e < a.length; e++) {
|
|
15
|
+
const I = a[e];
|
|
16
16
|
t += I?.text;
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
return t;
|
|
20
|
-
}, []), [
|
|
21
|
-
const t =
|
|
20
|
+
}, []), [o, y] = s.useState(f), [F, P] = s.useState(!1), x = s.useCallback(async (n, t) => null, []), b = u(async (n) => {
|
|
21
|
+
const t = o === "" ? [] : o.split(`
|
|
22
22
|
`);
|
|
23
23
|
if (n !== i) {
|
|
24
24
|
const a = [];
|
|
25
|
-
for (let
|
|
25
|
+
for (let e = 0; e < t.length; e++) a.push({ text: t[e] });
|
|
26
26
|
m?.({ content: { runs: a } });
|
|
27
27
|
}
|
|
28
28
|
d?.(n, n === i, n === r), p?.();
|
|
29
|
-
}, [
|
|
30
|
-
|
|
29
|
+
}, [o, m, p, d, r, i]), v = u((n) => {
|
|
30
|
+
y(n.target.value), x(n.target.value, null);
|
|
31
31
|
}, [c]), D = u(async (n) => {
|
|
32
32
|
let t = await Promise.resolve(c?.(n));
|
|
33
33
|
try {
|
|
34
|
-
t !== !1 && (t = await x(
|
|
34
|
+
t !== !1 && (t = await x(o, n));
|
|
35
35
|
} catch {
|
|
36
36
|
}
|
|
37
37
|
return t ?? !0;
|
|
38
|
-
}, [c,
|
|
39
|
-
return l.jsx(B, { title: (f ? "Edit" : "Insert") + " Comments", options: g, onDone: p, onOption: (n) =>
|
|
40
|
-
|
|
41
|
-
}, sx: { "& .MuiFormHelperText-root": { marginTop: (n) => n.spacing(0.5) } }, InputLabelProps: { shrink: !0 }, InputProps: { inputProps: { className: "autoFocus", spellCheck: !1, autoComplete: "off", sx: { paddingTop: (n) => n.spacing(1.25), paddingBottom: (n) => n.spacing(0.75), backgroundImage: `linear-gradient(${h("#fff", C(5))}, ${h("#fff", C(5))})` } } }, value:
|
|
38
|
+
}, [c, o]);
|
|
39
|
+
return l.jsx(B, { title: (f ? "Edit" : "Insert") + " Comments", options: g, onDone: p, onOption: (n) => b(n), onValidateOption: D, defaultOption: r, cancelOption: i, autoFocusSel: ".autoFocus", sx: { width: "480px", ...k }, ...w, children: l.jsx(M, { sx: { paddingTop: (n) => n.spacing(1), paddingBottom: (n) => n.spacing(0), rowGap: (n) => n.spacing(1), display: "flex", flexDirection: "column" }, children: l.jsx(S, { sx: { paddingTop: (n) => n.spacing(1.5), minWidth: 135, width: "100%" }, size: "small", children: l.jsx(E, { label: "Comments", placeholder: "Enter a comment.", onFocus: (n) => {
|
|
40
|
+
F || n.target?.select(), P(!0);
|
|
41
|
+
}, sx: { "& .MuiFormHelperText-root": { marginTop: (n) => n.spacing(0.5) } }, InputLabelProps: { shrink: !0 }, InputProps: { inputProps: { className: "autoFocus", spellCheck: !1, autoComplete: "off", sx: { paddingTop: (n) => n.spacing(1.25), paddingBottom: (n) => n.spacing(0.75), backgroundImage: `linear-gradient(${h("#fff", C(5))}, ${h("#fff", C(5))})` } } }, value: o, onChange: v, onContextMenu: (n) => {
|
|
42
42
|
n.stopPropagation();
|
|
43
43
|
} }) }) }) });
|
|
44
44
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.
|
|
2
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.4
|
|
3
3
|
*
|
|
4
4
|
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
5
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { l as E, j as t, r as o,
|
|
1
|
+
import { l as E, j as t, r as o, N as p, w as b, T as M, b as le, n as ae, x as re, o as ce, B as O, p as g, q as m, s as pe, t as j, v as de, h as Q, e as v, y as ue, V as fe, H as xe, z as ge, f as R, A as Y, E as me, G as he, J as Oe, M as je, d as Ce, I as ye, S as be } from "./Z1fSZhtHNjC6OoN6.mjs";
|
|
2
2
|
/**
|
|
3
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.
|
|
3
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.4
|
|
4
4
|
*
|
|
5
5
|
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
6
6
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
7
7
|
*/
|
|
8
|
-
const ve = E(t.jsx("path", { d: "M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20z" }), "ArrowBack"), Re = E(t.jsx("path", { d: "m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8z" }), "ArrowDownward"), Te = E(t.jsx("path", { d: "m12 4-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z" }), "ArrowForward"), ke = E(t.jsx("path", { d: "m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z" }), "ArrowUpward"),
|
|
8
|
+
const ve = E(t.jsx("path", { d: "M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20z" }), "ArrowBack"), Re = E(t.jsx("path", { d: "m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8z" }), "ArrowDownward"), Te = E(t.jsx("path", { d: "m12 4-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z" }), "ArrowForward"), ke = E(t.jsx("path", { d: "m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z" }), "ArrowUpward"), K = o.memo((T) => {
|
|
9
9
|
const { label: h, value: c, options: l, onSelect: d, tabIndex: C = 0, ...F } = T, [I, y] = o.useState(() => ee(c, l));
|
|
10
10
|
o.useEffect(() => {
|
|
11
11
|
y(ee(c, l));
|
|
12
12
|
}, [c, l]);
|
|
13
|
-
const
|
|
13
|
+
const L = M((u) => {
|
|
14
14
|
y(u.target.value), d?.(l[u.target.value]);
|
|
15
15
|
}, [d, l]), a = o.useMemo(() => Object.keys(l).map((u) => t.jsx(je, { value: u, children: u }, u)), [l]);
|
|
16
|
-
return t.jsxs(Ce, { sx: { minWidth: 135 }, size: "small", children: [t.jsx(ye, { children: h }), t.jsx(be, { inputProps: { tabIndex: C }, value: I, label: h, onChange:
|
|
17
|
-
}),
|
|
16
|
+
return t.jsxs(Ce, { sx: { minWidth: 135 }, size: "small", children: [t.jsx(ye, { children: h }), t.jsx(be, { inputProps: { tabIndex: C }, value: I, label: h, onChange: L, sx: { backgroundImage: `linear-gradient(${v("#fff", R(5))}, ${v("#fff", R(5))})` }, ...F, children: a })] });
|
|
17
|
+
}), Z = { Workbook: "workbook", Sheet: "sheet" }, _ = { enter: 140, exit: 140 }, ne = { Formulas: p.Content.Formulas, Values: p.Content.Values, Notes: p.Content.Notes, Comments: p.Content.Comments }, te = { ...ne };
|
|
18
18
|
delete te.Values;
|
|
19
19
|
const Se = { "By Rows": !0, "By Columns": !1 }, ee = (T, h) => {
|
|
20
20
|
const c = Object.keys(h);
|
|
@@ -23,43 +23,43 @@ const Se = { "By Rows": !0, "By Columns": !1 }, ee = (T, h) => {
|
|
|
23
23
|
if (h[d] === T) return d;
|
|
24
24
|
}
|
|
25
25
|
}, Ee = o.memo((T) => {
|
|
26
|
-
const { replace: h = !1, findText: c, replaceText: l, findOptions: d, replaceOptions: C, title: F, onHide: I, onFindOrReplace: y, ...
|
|
26
|
+
const { replace: h = !1, findText: c, replaceText: l, findOptions: d, replaceOptions: C, title: F, onHide: I, onFindOrReplace: y, ...L } = T, a = o.useRef(null), u = o.useRef(null), V = o.useRef(null), H = o.useRef(null), $ = o.useRef(null), z = o.useRef(null), B = (e, n) => {
|
|
27
27
|
n && (n.start(e, { center: !1 }), setTimeout(() => n.stop(e), 180));
|
|
28
|
-
}, [
|
|
28
|
+
}, [N, w] = o.useState(!1), [D, se] = o.useState(!1), [f, A] = o.useState(h), [W, P] = o.useState(!1), [G, U] = o.useState(!1), [i, r] = o.useState({ findText: null, replaceText: null, replace: h, replaceOptions: {}, findOptions: { matchCase: !1, matchEntireCell: !1, useRegex: !1, orientation: b.Orientation.Row, fields: [p.Content.Formulas] }, scope: Z.Sheet }), k = M(async (e, n, s, S) => {
|
|
29
29
|
if (!y) return;
|
|
30
30
|
const x = { ...i };
|
|
31
31
|
x.replaceOptions = { ...x.replaceOptions }, x.findOptions = { ...x.findOptions }, x.replaceOptions.maxCount = s ? void 0 : 1, x.replace = n, n && i.findOptions.fields?.[0] === p.Content.Values && (x.findOptions.fields = [p.Content.Formulas]), x.findOptions.reverse = !e;
|
|
32
32
|
const oe = await y({ autoFocus: S, ...x });
|
|
33
|
-
|
|
33
|
+
P(oe === 0);
|
|
34
34
|
}, [i, y]);
|
|
35
35
|
o.useEffect(() => {
|
|
36
|
-
|
|
37
|
-
}, [i,
|
|
38
|
-
const
|
|
36
|
+
P(!1);
|
|
37
|
+
}, [i, D, f]);
|
|
38
|
+
const q = M((e, n) => {
|
|
39
39
|
if (e.keyCode === le.Enter) {
|
|
40
40
|
if (!i.findText) return;
|
|
41
41
|
let s = !0, S = !1;
|
|
42
|
-
e.shiftKey && (s = !1), n ? (e.ctrlKey && e.altKey && (S = !0),
|
|
42
|
+
e.shiftKey && (s = !1), n ? (e.ctrlKey && e.altKey && (S = !0), B(e, S ? z.current : $.current)) : B(e, s ? H.current : V.current), k(s, n, S, !1);
|
|
43
43
|
}
|
|
44
|
-
}, [i]),
|
|
44
|
+
}, [i]), J = o.useRef(null);
|
|
45
45
|
o.useLayoutEffect(() => {
|
|
46
46
|
r((e) => {
|
|
47
47
|
const n = { ...e };
|
|
48
48
|
n.findText = c && c.length > 0 ? c : e.findText ?? "", w(!0), l !== void 0 && (n.replaceText = l), d && (n.findOptions = { ...n.findOptions, ...d }), n.replaceText || (n.replaceText = ""), n.replaceOptions && (n.replaceOptions = { ...n.replaceOptions }), C && (n.replaceOptions = { ...n.replaceOptions, ...C }), i.findOptions.fields?.[0] || (i.findOptions.fields = [p.Content.Formulas]);
|
|
49
49
|
const s = !(!C && l === void 0);
|
|
50
50
|
return s && A(s), n;
|
|
51
|
-
}), G ||
|
|
51
|
+
}), G || J.current?.focus();
|
|
52
52
|
}, [c, l, d, C]), o.useEffect(() => {
|
|
53
53
|
f ? (i.findOptions.fields[0], p.Content.Values) : w(!0);
|
|
54
54
|
}, [f]), o.useEffect(() => {
|
|
55
|
-
if (
|
|
55
|
+
if (N && a.current && i.findText === a.current.value) return a.current === document.activeElement || a.current.contains(document.activeElement) ? (a.current?.select(), void w(!1)) : void a.current.addEventListener("focus", () => {
|
|
56
56
|
a.current?.select(), w(!1);
|
|
57
57
|
}, { once: !0 });
|
|
58
|
-
}, [
|
|
59
|
-
const [ie, { width:
|
|
60
|
-
return t.jsx(re, { ref:
|
|
61
|
-
U(!1),
|
|
62
|
-
}, PaperProps: { elevation: G ? 3 : 1 }, ...
|
|
58
|
+
}, [N, i]);
|
|
59
|
+
const [ie, { width: X }] = ae();
|
|
60
|
+
return t.jsx(re, { ref: J, title: F ?? (f ? "Find & Replace" : "Find"), initialPosition: { y: "35" }, autoFocusSel: ".input", onHide: I, onFocus: () => U(!0), onBlur: () => {
|
|
61
|
+
U(!1), P(!1);
|
|
62
|
+
}, PaperProps: { elevation: G ? 3 : 1 }, ...L, children: t.jsxs(ce, { dividers: !0, ref: ie, sx: { display: "flex", flexDirection: "column", paddingLeft: (e) => e.spacing(1.5), paddingRight: (e) => e.spacing(1.5) }, onKeyDown: (e) => {
|
|
63
63
|
if (e.key === "h" && e.ctrlKey) A(!0), a.current?.contains(document.activeElement) && u.current?.focus();
|
|
64
64
|
else if (e.key === "f" && e.ctrlKey) a.current?.focus();
|
|
65
65
|
else if (e.key === "c" && e.altKey) r((n) => {
|
|
@@ -78,11 +78,11 @@ const Se = { "By Rows": !0, "By Columns": !1 }, ee = (T, h) => {
|
|
|
78
78
|
});
|
|
79
79
|
}
|
|
80
80
|
e.preventDefault();
|
|
81
|
-
}, children: [t.jsxs(O, { sx: { display: "flex", flexDirection: "row", gap: (e) => e.spacing(1) }, children: [t.jsxs(O, { sx: { display: "flex", flexDirection: "row", alignItems: "start", gap: (e) => e.spacing(0.25), paddingTop: "3px" }, children: [t.jsx(g, { selected:
|
|
81
|
+
}, children: [t.jsxs(O, { sx: { display: "flex", flexDirection: "row", gap: (e) => e.spacing(1) }, children: [t.jsxs(O, { sx: { display: "flex", flexDirection: "row", alignItems: "start", gap: (e) => e.spacing(0.25), paddingTop: "3px" }, children: [t.jsx(g, { selected: D, onSelectToggle: (e) => {
|
|
82
82
|
se(e);
|
|
83
83
|
}, preventFocus: !0, label: "Toggle Additional Options", icon: m(t.jsx(pe, {})) }), t.jsx(g, { selected: f, onSelectToggle: (e) => {
|
|
84
84
|
A(e);
|
|
85
|
-
}, preventFocus: !0, label: "Toggle Replace", icon: m(t.jsx(de, {})), shortcut: { key: f ? "F" : "H", modifiers: [j.Ctrl] } })] }), t.jsxs(O, { sx: { display: "flex", flexDirection: "column", maxWidth: "100%", boxSizing: "border-box" }, children: [t.jsxs(O, { sx: { display: "flex", flexDirection: "row", alignItems: "center" }, children: [t.jsx(
|
|
85
|
+
}, preventFocus: !0, label: "Toggle Replace", icon: m(t.jsx(de, {})), shortcut: { key: f ? "F" : "H", modifiers: [j.Ctrl] } })] }), t.jsxs(O, { sx: { display: "flex", flexDirection: "column", maxWidth: "100%", boxSizing: "border-box" }, children: [t.jsxs(O, { sx: { display: "flex", flexDirection: "row", alignItems: "center" }, children: [t.jsx(Q, { label: "Find", InputLabelProps: { shrink: !0 }, InputProps: { sx: { paddingRight: (e) => e.spacing(1), minWidth: X > 460 ? "20em" : void 0, backgroundImage: `linear-gradient(${v("#fff", R(5))}, ${v("#fff", R(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(0.75) } }, endAdornment: t.jsx(ue, { sx: { transform: "scale(0.75) translateX(16px)" }, position: "end", children: t.jsxs(O, { sx: { display: "flex", alignItems: "center", flexDirection: "row", gap: "1px" }, children: [t.jsx(g, { selected: i.findOptions.matchCase, onSelectToggle: (e) => {
|
|
86
86
|
r((n) => {
|
|
87
87
|
const s = { ...n };
|
|
88
88
|
return s.findOptions.matchCase = e, s;
|
|
@@ -97,43 +97,43 @@ const Se = { "By Rows": !0, "By Columns": !1 }, ee = (T, h) => {
|
|
|
97
97
|
const s = { ...n };
|
|
98
98
|
return s.findOptions.useRegex = e, s;
|
|
99
99
|
});
|
|
100
|
-
}, label: "Use Regular Expression", shortcut: { key: "R", modifiers: [j.Alt] }, icon: m(t.jsx(ge, {})) })] }) }) }, sx: { flex: "1 1 100%", marginRight: (e) => e.spacing(1), "& .MuiOutlinedInput-notchedOutline": { borderColor: (e) =>
|
|
100
|
+
}, label: "Use Regular Expression", shortcut: { key: "R", modifiers: [j.Alt] }, icon: m(t.jsx(ge, {})) })] }) }) }, sx: { flex: "1 1 100%", marginRight: (e) => e.spacing(1), "& .MuiOutlinedInput-notchedOutline": { borderColor: (e) => W ? `${e.palette.error.main} !important` : void 0 }, "& .MuiInputLabel-outlined": { color: (e) => W ? `${e.palette.error.main} !important` : void 0 } }, value: i.findText ?? "", onChange: (e) => {
|
|
101
101
|
r((n) => {
|
|
102
102
|
const s = { ...n };
|
|
103
103
|
return s.findText = e.target.value, s;
|
|
104
104
|
});
|
|
105
|
-
}, onKeyDown: (e) =>
|
|
105
|
+
}, onKeyDown: (e) => q(e, !1), onContextMenu: (e) => {
|
|
106
106
|
e.stopPropagation();
|
|
107
107
|
} }), t.jsx(g, { selected: i.findOptions.reverse, onSelectToggle: (e) => {
|
|
108
108
|
k(!1, !1);
|
|
109
109
|
}, touchRippleRef: V, label: "", shortcut: { key: "Enter", modifiers: [j.Shift] }, icon: m(i.findOptions.orientation !== b.Orientation.Column ? t.jsx(ve, {}) : t.jsx(ke, {})), disabled: !i.findText }), t.jsx(g, { selected: !i.findOptions.reverse, onSelectToggle: (e) => {
|
|
110
110
|
k(!0, !1);
|
|
111
|
-
}, touchRippleRef:
|
|
111
|
+
}, touchRippleRef: H, label: "Next Match", shortcut: { key: "Enter" }, icon: m(i.findOptions.orientation !== b.Orientation.Column ? t.jsx(Te, {}) : t.jsx(Re, {})), disabled: !i.findText })] }), t.jsx(Y, { in: f, timeout: _, onExit: () => {
|
|
112
112
|
a.current?.focus();
|
|
113
|
-
}, children: t.jsxs(O, { sx: { display: "flex", flexDirection: "row", alignItems: "center", marginTop: (e) => e.spacing(2) }, children: [t.jsx(
|
|
113
|
+
}, children: t.jsxs(O, { sx: { display: "flex", flexDirection: "row", alignItems: "center", marginTop: (e) => e.spacing(2) }, children: [t.jsx(Q, { label: "Replace", InputLabelProps: { shrink: !0 }, InputProps: { sx: { paddingRight: (e) => e.spacing(1), backgroundImage: `linear-gradient(${v("#fff", R(5))}, ${v("#fff", R(5))})` }, inputProps: { ref: u, className: "input", spellCheck: !1, autoComplete: "off", sx: { paddingTop: (e) => e.spacing(1.25), paddingBottom: (e) => e.spacing(0.75) } } }, sx: { flex: "1 1 100%", marginRight: (e) => e.spacing(1) }, value: i.replaceText ?? "", onChange: (e) => {
|
|
114
114
|
r((n) => {
|
|
115
115
|
const s = { ...n };
|
|
116
116
|
return s.replaceText = e.target.value, s;
|
|
117
117
|
});
|
|
118
|
-
}, onKeyDown: (e) =>
|
|
118
|
+
}, onKeyDown: (e) => q(e, !0), onContextMenu: (e) => {
|
|
119
119
|
e.stopPropagation();
|
|
120
120
|
} }), t.jsx(g, { onSelectToggle: (e) => {
|
|
121
121
|
k(!0, !0);
|
|
122
|
-
}, touchRippleRef:
|
|
122
|
+
}, touchRippleRef: $, label: "Replace", shortcut: { key: "Enter" }, icon: m(t.jsx(me, {})), disabled: !i.findText }), t.jsx(g, { onSelectToggle: (e) => {
|
|
123
123
|
k(!0, !0, !0);
|
|
124
|
-
}, touchRippleRef:
|
|
124
|
+
}, touchRippleRef: z, label: "Replace All", shortcut: { key: "Enter", modifiers: [j.Ctrl, j.Alt] }, icon: m(t.jsx(he, {})), disabled: !i.findText })] }) })] })] }), t.jsx(Y, { in: D, timeout: _, onExit: () => {
|
|
125
125
|
a.current?.focus();
|
|
126
|
-
}, children: t.jsxs(O, { sx: { minHeight: "10px", flex: "1 1 100%", display: "flex", flexDirection: "column", gap: (e) => e.spacing(0.5), marginTop: (e) => e.spacing(1) }, children: [t.jsx(Oe, { orientation: "horizontal", sx: { marginBottom: (e) => e.spacing(1.5) } }), t.jsxs(O, { sx: { display: "flex", flexDirection:
|
|
126
|
+
}, children: t.jsxs(O, { sx: { minHeight: "10px", flex: "1 1 100%", display: "flex", flexDirection: "column", gap: (e) => e.spacing(0.5), marginTop: (e) => e.spacing(1) }, children: [t.jsx(Oe, { orientation: "horizontal", sx: { marginBottom: (e) => e.spacing(1.5) } }), t.jsxs(O, { sx: { display: "flex", flexDirection: X >= 413 ? "row" : "column", justifyContent: "space-evenly", alignItems: "center", rowGap: (e) => e.spacing(2) }, tabIndex: -1, children: [t.jsx(K, { label: "Within", value: i.scope, options: Z, onSelect: (e) => {
|
|
127
127
|
r((n) => {
|
|
128
128
|
const s = { ...n };
|
|
129
129
|
return s.scope = e, s;
|
|
130
130
|
});
|
|
131
|
-
} }), t.jsx(
|
|
131
|
+
} }), t.jsx(K, { label: "Search", value: i.findOptions.orientation !== b.Orientation.Column, options: Se, onSelect: (e) => {
|
|
132
132
|
r((n) => {
|
|
133
133
|
const s = { ...n };
|
|
134
134
|
return s.findOptions.orientation = e ? b.Orientation.Row : b.Orientation.Column, s;
|
|
135
135
|
});
|
|
136
|
-
} }), t.jsx(
|
|
136
|
+
} }), t.jsx(K, { label: "Look in", value: f && i.findOptions.fields?.[0] === p.Content.Values ? p.Content.Formulas : i.findOptions.fields?.[0], options: f ? te : ne, onSelect: (e) => {
|
|
137
137
|
r((n) => {
|
|
138
138
|
const s = { ...n };
|
|
139
139
|
return s.findOptions.fields = [e], s;
|
|
@@ -142,6 +142,6 @@ const Se = { "By Rows": !0, "By Columns": !1 }, ee = (T, h) => {
|
|
|
142
142
|
});
|
|
143
143
|
export {
|
|
144
144
|
Ee as FindReplaceWindow,
|
|
145
|
-
|
|
145
|
+
Z as ScopeOptions,
|
|
146
146
|
Ee as default
|
|
147
147
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.
|
|
2
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.4
|
|
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
|
/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.
|
|
2
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.4
|
|
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
|
/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.
|
|
2
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.4
|
|
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
|
/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.
|
|
2
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.4
|
|
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.
|