@layers-app/editor 2.2.43 → 2.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 (223) hide show
  1. package/dist/index.cjs +2 -2
  2. package/dist/index.d.ts +16 -1
  3. package/dist/index.js +12 -12
  4. package/dist/{layers.DMD2Uy-b.js → layers.-2KfQ6RG.js} +1 -1
  5. package/dist/{layers.D_fmVaW-.js → layers.2VLsd23I.js} +1 -1
  6. package/dist/layers.3t60RULo.js +1314 -0
  7. package/dist/layers.5g-d1lPI.js +1019 -0
  8. package/dist/{layers.DB3g0uv9.js → layers.6fNZWRMy.js} +1 -1
  9. package/dist/{layers.9fzhTnHG.js → layers.6nxhuUZS.js} +1 -1
  10. package/dist/{layers.Dv5cum-u.js → layers.77ToS0vJ.js} +1 -1
  11. package/dist/{layers.UgwPqXW8.js → layers.7oPXw6se.js} +1 -1
  12. package/dist/{layers.DquK_j31.js → layers.8aC_7H6s.js} +1 -1
  13. package/dist/{layers.DVH0bxj2.js → layers.9_5gtlo0.js} +1 -1
  14. package/dist/{layers.D9NG4hfd.js → layers.A2b0zfpv.js} +1 -1
  15. package/dist/{layers.CtmFs842.js → layers.AHmwp-MB.js} +1 -1
  16. package/dist/{layers.Q2dvyyyS.js → layers.B-EeOsPN.js} +1 -1
  17. package/dist/{layers.BaSqDCUi.js → layers.B-knJAmg.js} +1 -1
  18. package/dist/{layers.L0lr9_dy.js → layers.B0YPk_J2.js} +1 -1
  19. package/dist/layers.B0aoB6yM.js +1 -0
  20. package/dist/{layers.BcrIK8qs.js → layers.B0c5OY_G.js} +1 -1
  21. package/dist/{layers.DqkcR9Cj.js → layers.B1Asn8n_.js} +3 -3
  22. package/dist/{layers.BvTr3OqB.js → layers.B1QlqLSe.js} +1 -1
  23. package/dist/{layers.CIjbcwec.js → layers.B1YHDbg8.js} +1 -1
  24. package/dist/{layers.t9ki07H9.js → layers.B4dgRxLi.js} +8 -8
  25. package/dist/{layers.BzLOwAv9.js → layers.B4n7r8Ul.js} +1 -1
  26. package/dist/{layers.CzcULpYV.js → layers.B5AMuW0E.js} +1 -1
  27. package/dist/{layers.CW1tyuRJ.js → layers.B5R_HMQi.js} +33 -33
  28. package/dist/{layers.BHmZJxfg.js → layers.B7fR53su.js} +1 -1
  29. package/dist/{layers.DMrcq2Gr.js → layers.B8XK-8I-.js} +1 -1
  30. package/dist/{layers.T7eDGkWl.js → layers.B9Xz7B4H.js} +1 -1
  31. package/dist/{layers.CKVfFH8C.js → layers.BBT4Tvg5.js} +1 -1
  32. package/dist/{layers.C_qUkVxS.js → layers.BC_YpOSp.js} +1 -1
  33. package/dist/{layers.ENr5T7WS.js → layers.BD7kYiWS.js} +1 -1
  34. package/dist/{layers.BHu_YyDc.js → layers.BDQtN1aD.js} +1 -1
  35. package/dist/{layers.-wUVh76U.js → layers.BExC2g6w.js} +1 -1
  36. package/dist/{layers.C9Sr1U5-.js → layers.BFreQdwW.js} +13 -13
  37. package/dist/{layers.I-tHkE95.js → layers.BJkqxsDC.js} +1 -1
  38. package/dist/{layers.Con-Dh2E.js → layers.BKvhj3Jc.js} +3 -3
  39. package/dist/{layers.C4I6DUMy.js → layers.BKyKCEyP.js} +24 -24
  40. package/dist/{layers.BPiBAWd5.js → layers.BPdavEfb.js} +1 -1
  41. package/dist/{layers.D78A28yU.js → layers.BQjo-s-b.js} +4104 -4138
  42. package/dist/{layers.DoHU4UID.js → layers.BQy5VO07.js} +6 -6
  43. package/dist/{layers.CxOau-hs.js → layers.BSWJm3U8.js} +1 -1
  44. package/dist/{layers.DH3ePdsz.js → layers.BWD2tONt.js} +2 -2
  45. package/dist/{layers.hGNauRnS.js → layers.BaZ9oGNz.js} +4 -4
  46. package/dist/{layers.Cglb20ve.js → layers.BatQCiGf.js} +11 -11
  47. package/dist/{layers.DbbksUuA.js → layers.BccLIbKe.js} +1 -1
  48. package/dist/{layers.D1YO6sUx.js → layers.BfWe9IcW.js} +1 -1
  49. package/dist/layers.Bg7BQcmt.js +31 -0
  50. package/dist/{layers.0cO0ixPk.js → layers.Bgd7myyy.js} +1 -1
  51. package/dist/{layers.CcY8SYVh.js → layers.BhvmN99n.js} +1 -1
  52. package/dist/{layers.CjPHxy5F.js → layers.Bi4--lcT.js} +1 -1
  53. package/dist/{layers.B5iDAMC-.js → layers.Bj2_ntq3.js} +3 -3
  54. package/dist/{layers.D2uJTLQD.js → layers.Blhb8ubC.js} +1 -1
  55. package/dist/{layers.DXwUwZdz.js → layers.Bnjo7X5G.js} +31 -31
  56. package/dist/{layers.B3Z00oIe.js → layers.Bnozyuub.js} +1 -1
  57. package/dist/{layers.w5M_mTV4.js → layers.Bptrc7aE.js} +27 -27
  58. package/dist/{layers.BJCeJUWZ.js → layers.BrPGpTKD.js} +14568 -14351
  59. package/dist/{layers.BaFHpWlD.js → layers.Brsx_95a.js} +1 -1
  60. package/dist/{layers.B2oAQIVT.js → layers.Bs8dWBby.js} +1 -1
  61. package/dist/{layers.BU3693bQ.js → layers.Bsr7C4ON.js} +1 -1
  62. package/dist/{layers.FKGuICkq.js → layers.BtXZCoH_.js} +39 -39
  63. package/dist/{layers.DsxjlRxg.js → layers.BtXqThYa.js} +1 -1
  64. package/dist/layers.Bwc-8Isq.js +6 -0
  65. package/dist/{layers.DMmvRDDM.js → layers.Bx77WE5O.js} +1 -1
  66. package/dist/{layers.CF_7ZzFo.js → layers.C-78wB0V.js} +3 -3
  67. package/dist/{layers.C3I87c35.js → layers.C1rqQip5.js} +1 -1
  68. package/dist/{layers.B4oJOgaL.js → layers.C3_GElaJ.js} +1 -1
  69. package/dist/{layers.joa0U6F3.js → layers.C53iq2Ma.js} +1 -1
  70. package/dist/{layers.DKbpSRnS.js → layers.C6LbKv-M.js} +2 -2
  71. package/dist/{layers.Da0nsXuF.js → layers.C6ueC3Z0.js} +1 -1
  72. package/dist/{layers.DbYK2pEp.js → layers.C71O9vAp.js} +1 -1
  73. package/dist/{layers.BhBT87wa.js → layers.C7b_RmTv.js} +1 -1
  74. package/dist/{layers.BnPxqyuX.js → layers.C8Tfd7sP.js} +1 -1
  75. package/dist/{layers.DTvOLDFJ.js → layers.C8WbGo3j.js} +1 -1
  76. package/dist/{layers.Co188iOY.js → layers.C9Lko7YH.js} +1 -1
  77. package/dist/{layers.BjPDJ-Kw.js → layers.CAFSzILX.js} +21 -21
  78. package/dist/layers.CCHvuvhF.js +8 -0
  79. package/dist/{layers.nTJYG5Fr.js → layers.CFAdy1gb.js} +1 -1
  80. package/dist/{layers.D3fr8EC0.js → layers.CFL3W3X8.js} +2 -2
  81. package/dist/{layers.CUHCWsr6.js → layers.CFcETIOb.js} +1 -1
  82. package/dist/{layers.Dbri2FL3.js → layers.CIvcS__9.js} +1 -1
  83. package/dist/{layers.mOqn0HZL.js → layers.COTQMo6A.js} +1 -1
  84. package/dist/{layers.rnn88Z_F.js → layers.CQ7hsV-G.js} +1 -1
  85. package/dist/{layers.skYBIGuA.js → layers.CRRnsu0U.js} +1 -1
  86. package/dist/layers.CSJKF8Yc.js +1 -0
  87. package/dist/{layers.0mM7kmYM.js → layers.CT2g1VRg.js} +1 -1
  88. package/dist/{layers.e5-5q9GW.js → layers.CUGBlmw8.js} +1 -1
  89. package/dist/{layers.BN7XA9Mz.js → layers.CUV2M_pU.js} +1 -1
  90. package/dist/{layers.qZ_fMp-N.js → layers.CWkQixNL.js} +1 -1
  91. package/dist/{layers.Dwfq9cNX.js → layers.CXsKBYuP.js} +1 -1
  92. package/dist/{layers.DWCTsdNx.js → layers.CZVAUi9T.js} +1 -1
  93. package/dist/{layers.Dp9QA0Dz.js → layers.CZWgMRsn.js} +1 -1
  94. package/dist/layers.Ca29Mcjy.js +1 -0
  95. package/dist/{layers.CxfeVqFB.js → layers.CacnnrTU.js} +1 -1
  96. package/dist/{layers.5e-XI3nh.js → layers.CbuDjZaw.js} +1 -1
  97. package/dist/{layers.DFiSzcgX.js → layers.CcwJpgwT.js} +4 -4
  98. package/dist/{layers.CUGnkSgl.js → layers.CfUup9qJ.js} +1 -1
  99. package/dist/{layers.R2p30D-p.js → layers.CgjZSo5b.js} +1 -1
  100. package/dist/{layers.BLtR2kcw.js → layers.ChRuHm3l.js} +1 -1
  101. package/dist/{layers.phLsmtCV.js → layers.Chpc9546.js} +1 -1
  102. package/dist/{layers.B07DqX4u.js → layers.Ciq1sahM.js} +1 -1
  103. package/dist/{layers.DW5NMC_Y.js → layers.CkpDbJMJ.js} +1 -1
  104. package/dist/{layers.CqOEfQFk.js → layers.ClDrIPRU.js} +1 -1
  105. package/dist/{layers.Dib9h9Y9.js → layers.CmupXZHN.js} +1 -1
  106. package/dist/{layers.ByPB1YI0.js → layers.Cn8CWsBB.js} +2 -2
  107. package/dist/{layers.CyJwHXzH.js → layers.Cr0gsM_j.js} +6 -6
  108. package/dist/{layers.DXvR0Ic3.js → layers.CrRPE221.js} +1 -1
  109. package/dist/{layers.BRzmQpbn.js → layers.CsN1TpE_.js} +1 -1
  110. package/dist/{layers.03AG_Ahp.js → layers.CvePRtuZ.js} +1 -1
  111. package/dist/{layers.BfM6qako.js → layers.CwAI9EMJ.js} +95 -95
  112. package/dist/{layers.BcB0Nlwg.js → layers.CwLijGjy.js} +5 -5
  113. package/dist/{layers.CMJ7A9ld.js → layers.CxcPHDlk.js} +1 -1
  114. package/dist/layers.CyJLYOzo.js +1 -0
  115. package/dist/{layers.Btm6c1FD.js → layers.CyqBb3la.js} +1 -1
  116. package/dist/layers.CzQlolTW.js +1 -0
  117. package/dist/{layers.Cim2gy1q.js → layers.CzSHWBJE.js} +1 -1
  118. package/dist/{layers.Bx4TPdVb.js → layers.CztSiz59.js} +1 -1
  119. package/dist/{layers.BZ-_wuxN.js → layers.D1ALzL8l.js} +1 -1
  120. package/dist/{layers.CFWmVRYf.js → layers.D1q9XEqC.js} +1 -1
  121. package/dist/{layers.DGA33SjL.js → layers.D2P7q6AR.js} +2 -2
  122. package/dist/{layers.Cu4zCXaq.js → layers.D37qejd1.js} +4 -4
  123. package/dist/{layers.DO67bAdi.js → layers.D53pVbAt.js} +1 -1
  124. package/dist/layers.D5gltjTL.js +1163 -0
  125. package/dist/{layers.OZMdOIeE.js → layers.D8s5zGyA.js} +4 -4
  126. package/dist/{layers.o99xgyrj.js → layers.DBQznnML.js} +1 -1
  127. package/dist/layers.DGptlsw9.js +8 -0
  128. package/dist/{layers.Cb8w7m3T.js → layers.DIDIuUgi.js} +1 -1
  129. package/dist/{layers.DXGbCu9s.js → layers.DIk_oySe.js} +1 -1
  130. package/dist/layers.DLBYO9Pf.js +7 -0
  131. package/dist/{layers.DS2xWw5u.js → layers.DLaija6u.js} +1 -1
  132. package/dist/{layers.CLGJqlQC.js → layers.DLsrdKEz.js} +1 -1
  133. package/dist/{layers.DHLBQn4i.js → layers.DLyk5obs.js} +3 -3
  134. package/dist/{layers.D7IERGZB.js → layers.DNSrh1pA.js} +1 -1
  135. package/dist/{layers.B0xERJEP.js → layers.DO1gXiNA.js} +1 -1
  136. package/dist/layers.DOK4tUdd.js +90 -0
  137. package/dist/{layers.GSbMAxhC.js → layers.DP7UYubA.js} +1 -1
  138. package/dist/{layers.4Bvndpod.js → layers.DPlTEtvi.js} +1 -1
  139. package/dist/{layers.Dl_n_LxZ.js → layers.DQUdAZyr.js} +25 -25
  140. package/dist/{layers.sZWWruWl.js → layers.DRN4BpGT.js} +1 -1
  141. package/dist/{layers.CnLvIdDn.js → layers.DRoyt9-1.js} +4 -4
  142. package/dist/{layers.C4lKVCKG.js → layers.DUrkRJKo.js} +1 -1
  143. package/dist/{layers.Xh-WVbYL.js → layers.DX9VTWiX.js} +1 -1
  144. package/dist/{layers.6IPXZlHV.js → layers.DY8_UsFK.js} +137 -137
  145. package/dist/{layers.DZNF4hVk.js → layers.DZ-JaYP3.js} +7 -7
  146. package/dist/{layers.pp1C1Tmj.js → layers.DZDZ3CuA.js} +1 -1
  147. package/dist/{layers.DtaKuCjp.js → layers.DZZUeo4N.js} +1 -1
  148. package/dist/{layers.hUNsvmkE.js → layers.DZqU-iL6.js} +40 -40
  149. package/dist/{layers.Cm4ScAcA.js → layers.DaHHbgHM.js} +1 -1
  150. package/dist/{layers.BbMtfvwE.js → layers.DaLjgos9.js} +1 -1
  151. package/dist/{layers.D4WHc1zo.js → layers.DbcVW57C.js} +1 -1
  152. package/dist/{layers.Dc7NnfUG.js → layers.DbdtbmtQ.js} +1 -1
  153. package/dist/{layers.DMbmaXEp.js → layers.DcxJ1-U9.js} +1 -1
  154. package/dist/layers.DeT0xAwz.js +84 -0
  155. package/dist/{layers.DzZcev45.js → layers.Df3tBKAI.js} +1 -1
  156. package/dist/{layers.hkL7RA_5.js → layers.DhUwAghN.js} +1 -1
  157. package/dist/{layers.CJO8izOl.js → layers.Dj860md7.js} +1 -1
  158. package/dist/{layers.CwQebQGo.js → layers.DkYYvaOJ.js} +2 -2
  159. package/dist/{layers.B_bY10SW.js → layers.Dn4qgJFc.js} +2 -2
  160. package/dist/{layers.C_48WisB.js → layers.Dodjwwv6.js} +3 -3
  161. package/dist/{layers.zw0Kaz0i.js → layers.DohiIE20.js} +1 -1
  162. package/dist/{layers.Bdo184oK.js → layers.DpKYGJRZ.js} +2 -2
  163. package/dist/{layers.6hbGirUz.js → layers.DsWcmm1l.js} +1 -1
  164. package/dist/{layers.D9ajcZP1.js → layers.DvSTgxkV.js} +1 -1
  165. package/dist/{layers.CnHlffpI.js → layers.Dvv8fKKk.js} +1 -1
  166. package/dist/{layers.v9an1lHW.js → layers.DwPIhine.js} +1 -1
  167. package/dist/{layers.DmM2jU0O.js → layers.DwS8V2Or.js} +1 -1
  168. package/dist/{layers.Bk5Uaw8R.js → layers.DxABmn5O.js} +1 -1
  169. package/dist/layers.Dxr2o7ON.js +1 -0
  170. package/dist/{layers.CWyLzhzU.js → layers.DyciwgGK.js} +1 -1
  171. package/dist/{layers.BxBOl4Dl.js → layers.F57MyVA9.js} +1 -1
  172. package/dist/{layers.zzb4BOcI.js → layers.FzqiVsy_.js} +1 -1
  173. package/dist/{layers.BudxiKeS.js → layers.HEL5QDoC.js} +1 -1
  174. package/dist/{layers.BSzAtyQb.js → layers.HhdqZtv5.js} +1 -1
  175. package/dist/{layers.D2pb9Wvr.js → layers.IutlLti9.js} +1 -1
  176. package/dist/{layers.CKtCjDB5.js → layers.JZ7AxwMh.js} +1 -1
  177. package/dist/{layers.D_dNQ2RW.js → layers.LGDbkgsv.js} +42 -42
  178. package/dist/{layers.BdpJh8Oo.js → layers.LtQ1yaSI.js} +1 -1
  179. package/dist/{layers.C2WnW5up.js → layers.SM9QTuDI.js} +16 -16
  180. package/dist/{layers.D3UpXEwL.js → layers.U7NY32uM.js} +1 -1
  181. package/dist/{layers.BM0IeEyx.js → layers.U8mTjpv_.js} +1 -1
  182. package/dist/{layers.CS7HWB4X.js → layers.WQRYkQdm.js} +15 -15
  183. package/dist/{layers.C5-WLmjg.js → layers.XCBehSH1.js} +1 -1
  184. package/dist/{layers.pQg8FbPj.js → layers.ZbGNGWJD.js} +12 -12
  185. package/dist/{layers.B5iuTZ1t.js → layers.Zmw0un-f.js} +1 -1
  186. package/dist/{layers.Bdnbq1Fc.js → layers.aLsmNBld.js} +3 -3
  187. package/dist/{layers.Dm1yBfDi.js → layers.avpB9JpP.js} +1 -1
  188. package/dist/{layers.CPHBPK8k.js → layers.cnMJlmUn.js} +1 -1
  189. package/dist/{layers.Bxvsg8Mb.js → layers.dL8A7U4Q.js} +1 -1
  190. package/dist/{layers.STJilcsA.js → layers.eYOpCcnf.js} +1 -1
  191. package/dist/{layers.CemDejcL.js → layers.ehSnv8t3.js} +1 -1
  192. package/dist/{layers.Bo56cnSy.js → layers.fpcqoFdd.js} +1 -1
  193. package/dist/{layers.D_KUnC5f.js → layers.gG-4BCod.js} +1 -1
  194. package/dist/{layers.CIebvJty.js → layers.iJv3YGd2.js} +1 -1
  195. package/dist/{layers.n-WUmPth.js → layers.iT9k4umn.js} +1 -1
  196. package/dist/{layers.BswN_MdX.js → layers.iXNkI0ZC.js} +1 -1
  197. package/dist/{layers.BjkFiCls.js → layers.mlObVGIf.js} +5 -5
  198. package/dist/{layers.B7XHIy_4.js → layers.oaAarQby.js} +1 -1
  199. package/dist/{layers.BSDW_YyL.js → layers.oeHgntpN.js} +1 -1
  200. package/dist/{layers.DC3-RC1l.js → layers.pRgndjxw.js} +1 -1
  201. package/dist/{layers.DRtT_PXy.js → layers.tZA_LmJa.js} +1 -1
  202. package/dist/{layers.CnPbRZ5g.js → layers.teIuFApS.js} +1 -1
  203. package/dist/{layers.DiAn5oCP.js → layers.trRvrSLF.js} +1 -1
  204. package/dist/{layers.BnUlk4VQ.js → layers.visFusIB.js} +2982 -4133
  205. package/dist/{layers.CxqZJUKb.js → layers.wOUIpHWS.js} +1 -1
  206. package/dist/{layers.CjwpDgRI.js → layers.xFbuP3DI.js} +1 -1
  207. package/dist/{layers.BzQjss-Y.js → layers.xI6XwkCk.js} +1 -1
  208. package/dist/{layers.CQ-YrAtS.js → layers.xLIBX5yr.js} +1 -1
  209. package/dist/{layers.0PDCLAB9.js → layers.y9CU_epE.js} +1 -1
  210. package/dist/{layers.BRYVeXtX.js → layers.ywa822S7.js} +1 -1
  211. package/dist/layers.z2kEcNVH.js +5 -0
  212. package/package.json +2 -1
  213. package/dist/layers.BGELWsp6.js +0 -6
  214. package/dist/layers.BbPiDwK6.js +0 -8
  215. package/dist/layers.Bn8ENbPC.js +0 -1
  216. package/dist/layers.By6Y9awO.js +0 -1313
  217. package/dist/layers.CPNJ-TZg.js +0 -5
  218. package/dist/layers.CasHcfAK.js +0 -84
  219. package/dist/layers.DQGVM1KB.js +0 -1
  220. package/dist/layers.DRRyMIft.js +0 -1
  221. package/dist/layers.Ddrl9HG1.js +0 -96
  222. package/dist/layers.Dl5fPqLs.js +0 -1
  223. package/dist/layers.Dsw7pDbX.js +0 -748
@@ -0,0 +1,1019 @@
1
+ import { jsx as n, jsxs as O, Fragment as B } from "react/jsx-runtime";
2
+ import { useState as y, useCallback as D, useRef as ee, useEffect as E, useMemo as te, useContext as Ce } from "react";
3
+ import { useTranslation as V } from "react-i18next";
4
+ import { useLexicalComposerContext as G } from "@lexical/react/LexicalComposerContext";
5
+ import { Menu as R, Flex as J, Popover as W, Stack as Ve, Button as $, Box as Ge, LoadingOverlay as Xe } from "@mantine/core";
6
+ import { $getNodeByKey as x, COMMAND_PRIORITY_LOW as Ye, $setSelection as Ze } from "lexical";
7
+ import { y as qe, z as Je, B as Qe, D as Ke, F as we, G as K, J as et, L as tt, A as oe, K as ot, P as nt, H as M, Q as De, n as Le, S as Oe, U as Ne, V as T, N as Ee, W as it, X as at, q as be, Y as rt, C as Pe, Z as lt, _ as st, a0 as Q, a1 as dt, a2 as ct, a3 as ut, a4 as pt, a5 as mt, a6 as gt, R as ft, m as ve, O as ht, k as ke, a7 as ye, o as wt } from "./layers.BrPGpTKD.js";
8
+ import { AttachmentsGalleryModal as xe, showErrorNotification as bt } from "@layers-app/shared";
9
+ import { useLexicalEditable as ne } from "@lexical/react/useLexicalEditable";
10
+ import { useDisclosure as H } from "@mantine/hooks";
11
+ import "@lexical/react/LexicalDecoratorBlockNode";
12
+ import "@lexical/utils";
13
+ import "@lexical/mark";
14
+ import "@lexical/code";
15
+ import "@lexical/selection";
16
+ import "react-dom";
17
+ import "@lexical/react/LexicalErrorBoundary";
18
+ import "@lexical/react/LexicalBlockWithAlignableContents";
19
+ import "@mantine/notifications";
20
+ function vt(e, i) {
21
+ const o = document.createElement("a");
22
+ o.href = e, o.download = i, o.rel = "noopener", document.body.appendChild(o), o.click(), o.remove();
23
+ }
24
+ function ie(e) {
25
+ try {
26
+ const o = new URL(e, window.location.origin).pathname.split("/").pop() || "image";
27
+ return o.includes(".") ? o : `${o}.png`;
28
+ } catch {
29
+ return "image";
30
+ }
31
+ }
32
+ async function ae(e, i) {
33
+ const o = await fetch(e);
34
+ if (!o.ok)
35
+ throw new Error("fetch failed");
36
+ const a = await o.blob(), r = URL.createObjectURL(a);
37
+ try {
38
+ vt(r, i);
39
+ } finally {
40
+ setTimeout(() => URL.revokeObjectURL(r), 0);
41
+ }
42
+ }
43
+ function kt({
44
+ editor: e,
45
+ nodeKey: i,
46
+ href: o,
47
+ onClose: a
48
+ }) {
49
+ const [r, s] = y(
50
+ () => qe(o)
51
+ ), [l, d] = y(() => Je(o)), [I, b] = y(!1), m = D((c) => {
52
+ s(c), b(!1);
53
+ }, []), g = D((c) => {
54
+ d(c), b(!1);
55
+ }, []), h = D(() => {
56
+ const c = Qe(l.trim(), r);
57
+ if (!c || !Ke(c, r)) {
58
+ b(!0);
59
+ return;
60
+ }
61
+ we(e, i, K(c)), a();
62
+ }, [e, i, l, r, a]), k = D(() => {
63
+ we(e, i, ""), a();
64
+ }, [e, i, a]), v = D(
65
+ (c) => {
66
+ c.key === "Enter" ? (c.preventDefault(), h()) : c.key === "Escape" && (c.preventDefault(), a());
67
+ },
68
+ [h, a]
69
+ );
70
+ return {
71
+ linkType: r,
72
+ linkUrl: l,
73
+ error: I,
74
+ onLinkTypeChange: m,
75
+ onUrlInputChange: g,
76
+ onUrlInputKeyDown: v,
77
+ onSave: h,
78
+ onRemove: k
79
+ };
80
+ }
81
+ function re({
82
+ editor: e,
83
+ nodeKey: i,
84
+ href: o,
85
+ onClose: a,
86
+ mobile: r
87
+ }) {
88
+ const s = ee(null), l = kt({ editor: e, nodeKey: i, href: o, onClose: a });
89
+ return E(() => {
90
+ var d;
91
+ (d = s.current) == null || d.focus({ preventScroll: !0 });
92
+ }, []), /* @__PURE__ */ n(
93
+ et,
94
+ {
95
+ inputRef: s,
96
+ linkUrl: l.linkUrl,
97
+ linkType: l.linkType,
98
+ error: l.error,
99
+ mobile: r,
100
+ onLinkTypeChange: l.onLinkTypeChange,
101
+ onUrlInputChange: l.onUrlInputChange,
102
+ onUrlInputKeyDown: l.onUrlInputKeyDown,
103
+ onCancel: a,
104
+ onSave: l.onSave,
105
+ onRemove: o ? l.onRemove : void 0
106
+ }
107
+ );
108
+ }
109
+ function Te({
110
+ opened: e,
111
+ onOpenChange: i,
112
+ t: o,
113
+ onDownload: a,
114
+ onDelete: r,
115
+ hasLink: s,
116
+ onLinkAction: l
117
+ }) {
118
+ return /* @__PURE__ */ O(
119
+ R,
120
+ {
121
+ opened: e,
122
+ onChange: i,
123
+ transitionProps: tt,
124
+ shadow: "md",
125
+ position: "bottom-start",
126
+ offset: 4,
127
+ withinPortal: !0,
128
+ closeOnItemClick: !0,
129
+ children: [
130
+ /* @__PURE__ */ n(R.Target, { children: /* @__PURE__ */ n(
131
+ oe,
132
+ {
133
+ label: o("editor.toolbar.more"),
134
+ icon: ot,
135
+ iconColor: "var(--mantine-color-gray-text)",
136
+ "aria-label": o("editor.toolbar.more")
137
+ }
138
+ ) }),
139
+ /* @__PURE__ */ O(
140
+ R.Dropdown,
141
+ {
142
+ p: 4,
143
+ miw: 164,
144
+ w: "max-content",
145
+ onMouseDown: (d) => d.preventDefault(),
146
+ children: [
147
+ l && /* @__PURE__ */ n(
148
+ R.Item,
149
+ {
150
+ leftSection: /* @__PURE__ */ n(J, { align: "center", justify: "center", c: "gray.6", children: /* @__PURE__ */ n(nt, { name: "link", size: 16 }) }),
151
+ onClick: (d) => {
152
+ d.stopPropagation(), l();
153
+ },
154
+ children: o(s ? "editor.link.editLink" : "editor.link.addLink")
155
+ }
156
+ ),
157
+ /* @__PURE__ */ n(
158
+ R.Item,
159
+ {
160
+ leftSection: /* @__PURE__ */ n(J, { align: "center", justify: "center", c: "gray.6", children: /* @__PURE__ */ n(M, { icon: De, size: 16 }) }),
161
+ onClick: (d) => {
162
+ d.stopPropagation(), a();
163
+ },
164
+ children: o("editor.gallery.download")
165
+ }
166
+ ),
167
+ /* @__PURE__ */ n(
168
+ R.Item,
169
+ {
170
+ color: "red",
171
+ leftSection: /* @__PURE__ */ n(J, { align: "center", justify: "center", c: "red.6", children: /* @__PURE__ */ n(M, { icon: Le, size: 16 }) }),
172
+ onClick: (d) => {
173
+ d.stopPropagation(), r();
174
+ },
175
+ children: o("editor.contextMenu.delete")
176
+ }
177
+ )
178
+ ]
179
+ }
180
+ )
181
+ ]
182
+ }
183
+ );
184
+ }
185
+ const Se = ({
186
+ t: e,
187
+ src: i,
188
+ setShown: o,
189
+ id: a
190
+ }) => {
191
+ const [r, { open: s, close: l }] = H(!1), d = Oe(), I = te(() => [
192
+ {
193
+ id: !a || a === "0" ? "" : a,
194
+ Url: i ?? "",
195
+ contentType: "image/*",
196
+ originalFileName: "",
197
+ fileSize: 0,
198
+ storageType: "",
199
+ storagePath: "",
200
+ fileName: "",
201
+ parentType: "",
202
+ parentId: "",
203
+ ownerId: "",
204
+ createdAt: /* @__PURE__ */ new Date(),
205
+ updatedAt: /* @__PURE__ */ new Date(),
206
+ version: 0,
207
+ deleted: !1,
208
+ deletedAt: /* @__PURE__ */ new Date()
209
+ }
210
+ ], [i, a]);
211
+ return /* @__PURE__ */ O(B, { children: [
212
+ /* @__PURE__ */ n(
213
+ xe,
214
+ {
215
+ opened: r,
216
+ onOpenChange: (m) => {
217
+ m ? s() : l();
218
+ },
219
+ attachments: I,
220
+ allowDownload: d
221
+ }
222
+ ),
223
+ /* @__PURE__ */ n(
224
+ oe,
225
+ {
226
+ label: e("editor.image.preview"),
227
+ icon: Ne,
228
+ iconColor: "var(--mantine-color-gray-text)",
229
+ "aria-label": e("editor.image.preview"),
230
+ onClick: () => {
231
+ o(!1), s();
232
+ }
233
+ }
234
+ )
235
+ ] });
236
+ }, yt = ({
237
+ nodeKey: e,
238
+ src: i,
239
+ href: o
240
+ }) => {
241
+ const [a] = G(), r = ne(), [s, l] = y(!1), [d, I] = y(!1), [b, m] = y(!1), { t: g } = V();
242
+ E(() => {
243
+ if (!b) return;
244
+ const v = (c) => {
245
+ const w = c.target;
246
+ w != null && w.closest(".floating-link-dropdown") || w != null && w.closest(".floating-link-type-combobox-dropdown") || m(!1);
247
+ };
248
+ return document.addEventListener("pointerdown", v, !0), () => document.removeEventListener("pointerdown", v, !0);
249
+ }, [b]);
250
+ const h = D(() => {
251
+ a.update(() => {
252
+ const v = x(e);
253
+ T(v) && v.remove();
254
+ });
255
+ }, [a, e]), k = D(async () => {
256
+ if (i)
257
+ try {
258
+ await ae(i, ie(i));
259
+ } catch {
260
+ }
261
+ }, [i]);
262
+ return /* @__PURE__ */ O(
263
+ W,
264
+ {
265
+ opened: b,
266
+ onChange: m,
267
+ position: "bottom-end",
268
+ offset: 4,
269
+ shadow: "md",
270
+ radius: "md",
271
+ withinPortal: !0,
272
+ closeOnClickOutside: !1,
273
+ children: [
274
+ /* @__PURE__ */ n(W.Target, { children: /* @__PURE__ */ O(
275
+ "div",
276
+ {
277
+ className: `media-actions ${r ? "" : "media-actions--readonly"}`,
278
+ children: [
279
+ /* @__PURE__ */ n(Se, { t: g, src: i, setShown: () => {
280
+ } }),
281
+ r && /* @__PURE__ */ O(B, { children: [
282
+ /* @__PURE__ */ n(
283
+ Ee,
284
+ {
285
+ opened: s,
286
+ setOpened: l,
287
+ t: g,
288
+ editor: a,
289
+ nodeKey: e,
290
+ setShown: () => {
291
+ }
292
+ }
293
+ ),
294
+ /* @__PURE__ */ n(
295
+ Te,
296
+ {
297
+ opened: d,
298
+ onOpenChange: I,
299
+ t: g,
300
+ onDownload: () => void k(),
301
+ onDelete: h,
302
+ hasLink: !!o,
303
+ onLinkAction: () => m(!0)
304
+ }
305
+ )
306
+ ] })
307
+ ]
308
+ }
309
+ ) }),
310
+ /* @__PURE__ */ n(
311
+ W.Dropdown,
312
+ {
313
+ className: `floating-link-dropdown floating-link-dropdown--${o ? "edit" : "create"}-mode`,
314
+ "data-test-id": "floating-link-dropdown",
315
+ children: /* @__PURE__ */ n(
316
+ re,
317
+ {
318
+ editor: a,
319
+ nodeKey: e,
320
+ href: o,
321
+ onClose: () => m(!1)
322
+ }
323
+ )
324
+ }
325
+ )
326
+ ]
327
+ }
328
+ );
329
+ }, It = () => {
330
+ };
331
+ function Ct({ nodeKey: e, src: i, id: o, href: a }) {
332
+ const { t: r } = V(), [s] = G(), l = ne(), [d, I] = y(!1), [b, m] = y(!1), [g, h] = y(!1);
333
+ E(() => {
334
+ if (!g) return;
335
+ const c = (w) => {
336
+ const u = w.target;
337
+ u != null && u.closest(".floating-link-dropdown") || u != null && u.closest(".floating-link-type-combobox-dropdown") || h(!1);
338
+ };
339
+ return document.addEventListener("pointerdown", c, !0), () => document.removeEventListener("pointerdown", c, !0);
340
+ }, [g]);
341
+ const k = D(() => {
342
+ m(!1), s.update(() => {
343
+ const c = x(e);
344
+ if (!T(c)) return;
345
+ const w = c.getParent();
346
+ it(w) ? w.remove() : c.remove();
347
+ });
348
+ }, [s, e]), v = D(async () => {
349
+ if (i)
350
+ try {
351
+ await ae(i, ie(i));
352
+ } catch {
353
+ }
354
+ }, [i]);
355
+ return /* @__PURE__ */ O(
356
+ W,
357
+ {
358
+ opened: g,
359
+ onChange: h,
360
+ position: "bottom-end",
361
+ offset: 4,
362
+ shadow: "md",
363
+ radius: "md",
364
+ withinPortal: !0,
365
+ closeOnClickOutside: !1,
366
+ children: [
367
+ /* @__PURE__ */ n(W.Target, { children: /* @__PURE__ */ O(
368
+ "div",
369
+ {
370
+ className: "media-actions visible",
371
+ style: {
372
+ position: "absolute",
373
+ top: 10,
374
+ right: 10,
375
+ zIndex: 10,
376
+ pointerEvents: "auto",
377
+ display: "flex",
378
+ gap: 4
379
+ },
380
+ onClick: (c) => c.stopPropagation(),
381
+ children: [
382
+ /* @__PURE__ */ n(Se, { t: r, src: i, setShown: It, id: o }),
383
+ l && /* @__PURE__ */ O(B, { children: [
384
+ /* @__PURE__ */ n(
385
+ Ee,
386
+ {
387
+ opened: d,
388
+ setOpened: I,
389
+ t: r,
390
+ editor: s,
391
+ nodeKey: e
392
+ }
393
+ ),
394
+ /* @__PURE__ */ n(
395
+ Te,
396
+ {
397
+ opened: b,
398
+ onOpenChange: m,
399
+ t: r,
400
+ onDownload: () => void v(),
401
+ onDelete: k,
402
+ hasLink: !!a,
403
+ onLinkAction: () => h(!0)
404
+ }
405
+ )
406
+ ] })
407
+ ]
408
+ }
409
+ ) }),
410
+ /* @__PURE__ */ n(
411
+ W.Dropdown,
412
+ {
413
+ className: `floating-link-dropdown floating-link-dropdown--${a ? "edit" : "create"}-mode`,
414
+ "data-test-id": "floating-link-dropdown",
415
+ children: /* @__PURE__ */ n(
416
+ re,
417
+ {
418
+ editor: s,
419
+ nodeKey: e,
420
+ href: a,
421
+ onClose: () => h(!1)
422
+ }
423
+ )
424
+ }
425
+ )
426
+ ]
427
+ }
428
+ );
429
+ }
430
+ function Dt({ nodeKey: e, src: i, id: o, href: a }) {
431
+ const { t: r } = V(), [s] = G(), l = ne(), d = Oe(), [I, { open: b, close: m }] = H(!1), [g, { open: h, close: k }] = H(!1), [v, { open: c, close: w }] = H(!1), u = () => {
432
+ m(), c();
433
+ }, P = te(
434
+ () => [
435
+ {
436
+ id: !o || o === "0" ? "" : o,
437
+ Url: i ?? "",
438
+ contentType: "image/*",
439
+ originalFileName: "",
440
+ fileSize: 0,
441
+ storageType: "",
442
+ storagePath: "",
443
+ fileName: "",
444
+ parentType: "",
445
+ parentId: "",
446
+ ownerId: "",
447
+ createdAt: /* @__PURE__ */ new Date(),
448
+ updatedAt: /* @__PURE__ */ new Date(),
449
+ version: 0,
450
+ deleted: !1,
451
+ deletedAt: /* @__PURE__ */ new Date()
452
+ }
453
+ ],
454
+ [i, o]
455
+ ), S = () => {
456
+ m(), h();
457
+ }, L = D(async () => {
458
+ if (m(), !!i)
459
+ try {
460
+ await ae(i, ie(i));
461
+ } catch {
462
+ }
463
+ }, [i, m]), U = D(() => {
464
+ m(), s.update(() => {
465
+ const N = x(e);
466
+ T(N) && N.remove();
467
+ });
468
+ }, [s, e, m]);
469
+ return /* @__PURE__ */ O(B, { children: [
470
+ /* @__PURE__ */ n(
471
+ "div",
472
+ {
473
+ className: "image-touch-actions",
474
+ style: {
475
+ position: "absolute",
476
+ top: 8,
477
+ right: 8,
478
+ zIndex: 10,
479
+ pointerEvents: "auto"
480
+ },
481
+ onClick: (N) => N.stopPropagation(),
482
+ children: /* @__PURE__ */ n(
483
+ oe,
484
+ {
485
+ label: r("editor.toolbar.more"),
486
+ icon: at,
487
+ iconColor: "var(--mantine-color-gray-text)",
488
+ "aria-label": r("editor.toolbar.more"),
489
+ onClick: b
490
+ }
491
+ )
492
+ }
493
+ ),
494
+ /* @__PURE__ */ n(
495
+ xe,
496
+ {
497
+ opened: g,
498
+ onOpenChange: (N) => N ? h() : k(),
499
+ attachments: P,
500
+ allowDownload: d
501
+ }
502
+ ),
503
+ /* @__PURE__ */ n(
504
+ be,
505
+ {
506
+ opened: I,
507
+ onClose: m,
508
+ title: r("editor.image.mobileActions"),
509
+ children: /* @__PURE__ */ O(Ve, { gap: 4, p: 0, children: [
510
+ /* @__PURE__ */ n(
511
+ $,
512
+ {
513
+ type: "button",
514
+ variant: "subtle",
515
+ color: "gray",
516
+ fullWidth: !0,
517
+ justify: "flex-start",
518
+ bg: "var(--editor-action-bg)",
519
+ onClick: S,
520
+ leftSection: /* @__PURE__ */ n(
521
+ M,
522
+ {
523
+ icon: Ne,
524
+ size: 16,
525
+ color: "var(--mantine-color-dimmed)"
526
+ }
527
+ ),
528
+ children: r("editor.image.previewFullScreen")
529
+ }
530
+ ),
531
+ l && /* @__PURE__ */ n(
532
+ $,
533
+ {
534
+ type: "button",
535
+ variant: "subtle",
536
+ color: "gray",
537
+ fullWidth: !0,
538
+ justify: "flex-start",
539
+ bg: "var(--editor-action-bg)",
540
+ onClick: u,
541
+ leftSection: /* @__PURE__ */ n(
542
+ M,
543
+ {
544
+ icon: rt,
545
+ size: 16,
546
+ color: "var(--mantine-color-dimmed)"
547
+ }
548
+ ),
549
+ children: r(a ? "editor.link.editLink" : "editor.link.addLink")
550
+ }
551
+ ),
552
+ d && /* @__PURE__ */ n(
553
+ $,
554
+ {
555
+ type: "button",
556
+ variant: "subtle",
557
+ color: "gray",
558
+ fullWidth: !0,
559
+ justify: "flex-start",
560
+ bg: "var(--editor-action-bg)",
561
+ onClick: () => void L(),
562
+ leftSection: /* @__PURE__ */ n(
563
+ M,
564
+ {
565
+ icon: De,
566
+ size: 16,
567
+ color: "var(--mantine-color-dimmed)"
568
+ }
569
+ ),
570
+ children: r("editor.gallery.download")
571
+ }
572
+ ),
573
+ l && /* @__PURE__ */ n(
574
+ $,
575
+ {
576
+ type: "button",
577
+ variant: "subtle",
578
+ color: "red",
579
+ fullWidth: !0,
580
+ justify: "flex-start",
581
+ bg: "var(--editor-action-bg)",
582
+ onClick: U,
583
+ leftSection: /* @__PURE__ */ n(
584
+ M,
585
+ {
586
+ icon: Le,
587
+ size: 16,
588
+ color: "var(--mantine-color-red-6)"
589
+ }
590
+ ),
591
+ children: r("editor.actions.delete")
592
+ }
593
+ )
594
+ ] })
595
+ }
596
+ ),
597
+ /* @__PURE__ */ n(
598
+ be,
599
+ {
600
+ opened: v,
601
+ onClose: w,
602
+ title: r(a ? "editor.link.editLink" : "editor.link.addLink"),
603
+ children: /* @__PURE__ */ n(
604
+ re,
605
+ {
606
+ editor: s,
607
+ nodeKey: e,
608
+ href: a,
609
+ onClose: w,
610
+ mobile: !0
611
+ }
612
+ )
613
+ }
614
+ )
615
+ ] });
616
+ }
617
+ const Ie = (e) => {
618
+ const {
619
+ width: i,
620
+ height: o,
621
+ isLoading: a,
622
+ isError: r,
623
+ src: s,
624
+ id: l,
625
+ altText: d,
626
+ imageRef: I,
627
+ maxWidth: b,
628
+ aspectRatio: m,
629
+ href: g
630
+ } = e, h = ee(null);
631
+ return /* @__PURE__ */ O(
632
+ "div",
633
+ {
634
+ className: "media-wrapper",
635
+ "data-reserved-box": m ? "" : void 0,
636
+ style: {
637
+ width: i,
638
+ height: m ? "auto" : o,
639
+ aspectRatio: m || void 0,
640
+ display: "inline-flex",
641
+ position: "relative"
642
+ },
643
+ children: [
644
+ /* @__PURE__ */ n(
645
+ Xe,
646
+ {
647
+ visible: a,
648
+ zIndex: 1e3,
649
+ overlayProps: { backgroundOpacity: 0.5 },
650
+ loaderProps: { size: 24, color: "black" }
651
+ }
652
+ ),
653
+ /* @__PURE__ */ n(
654
+ "a",
655
+ {
656
+ className: "editor-image-link",
657
+ "data-link": g ? "true" : void 0,
658
+ "data-href": g ? K(g) : void 0,
659
+ role: g ? "link" : void 0,
660
+ rel: g ? "noopener noreferrer" : void 0,
661
+ draggable: !1,
662
+ onMouseDown: g ? (k) => {
663
+ h.current = { x: k.clientX, y: k.clientY };
664
+ } : void 0,
665
+ onClick: g ? (k) => {
666
+ k.preventDefault();
667
+ const v = h.current;
668
+ h.current = null, !(v && Math.hypot(k.clientX - v.x, k.clientY - v.y) > 5) && window.open(K(g), "_blank", "noopener,noreferrer");
669
+ } : void 0,
670
+ children: /* @__PURE__ */ n(
671
+ Lt,
672
+ {
673
+ className: null,
674
+ src: s,
675
+ altText: d,
676
+ imageRef: I,
677
+ width: "inherit",
678
+ height: "inherit",
679
+ maxWidth: b || "auto",
680
+ id: l
681
+ }
682
+ )
683
+ }
684
+ ),
685
+ ke && /* @__PURE__ */ n(
686
+ Dt,
687
+ {
688
+ nodeKey: e.nodeKey,
689
+ src: s,
690
+ id: l,
691
+ href: g
692
+ }
693
+ ),
694
+ ye && /* @__PURE__ */ n(
695
+ Ct,
696
+ {
697
+ nodeKey: e.nodeKey,
698
+ src: s,
699
+ id: l,
700
+ href: g
701
+ }
702
+ ),
703
+ wt && !ke && !ye && /* @__PURE__ */ n(yt, { nodeKey: e.nodeKey, src: s, href: g })
704
+ ]
705
+ }
706
+ );
707
+ };
708
+ function Lt({
709
+ altText: e,
710
+ className: i,
711
+ imageRef: o,
712
+ src: a,
713
+ width: r,
714
+ height: s,
715
+ maxWidth: l,
716
+ id: d
717
+ }) {
718
+ const [I, b] = y(!1);
719
+ return /* @__PURE__ */ n(
720
+ "img",
721
+ {
722
+ className: `${i || void 0} ${I ? "" : "loading"}`,
723
+ src: a,
724
+ alt: e,
725
+ ref: o,
726
+ style: {
727
+ height: s,
728
+ maxWidth: l,
729
+ width: r
730
+ },
731
+ onLoad: () => {
732
+ a.includes("splash") ? setTimeout(() => {
733
+ b(!0);
734
+ }, 100) : b(!0);
735
+ },
736
+ draggable: "false",
737
+ "data-id": d
738
+ }
739
+ );
740
+ }
741
+ function Zt(e) {
742
+ const { disable: i } = Ce(Pe);
743
+ return i && lt.isPlaceholderSrc(e.src) ? null : /* @__PURE__ */ n(Ot, { ...e });
744
+ }
745
+ function Ot({
746
+ src: e,
747
+ altText: i,
748
+ nodeKey: o,
749
+ width: a,
750
+ height: r,
751
+ maxWidth: s,
752
+ showCaption: l,
753
+ caption: d,
754
+ id: I,
755
+ create: b,
756
+ alignment: m,
757
+ imagePickerTab: g,
758
+ aspectRatio: h,
759
+ href: k
760
+ }) {
761
+ var ge, fe;
762
+ const v = ee(null), [c, w] = y(!0), [u] = G(), [P, S] = y(!0), [L, U] = y({
763
+ width: 0,
764
+ height: 0
765
+ }), { start: N } = st(), [Nt, X] = y(0), {
766
+ fetchUploadMedia: z,
767
+ fetchDeleteMedia: le,
768
+ maxFileSize: Et,
769
+ imperativeHandleRef: F,
770
+ disable: Ue
771
+ } = Ce(Pe), _ = Q.has(e) && (((ge = Q.get(e)) == null ? void 0 : ge.mediaNodeKeys.length) === 0 || ((fe = Q.get(e)) == null ? void 0 : fe.mediaNodeKeys.length) === void 0 || e.trim() === ""), { t: j } = V(), se = (t) => {
772
+ if (typeof t == "number") return t > 0 ? t : null;
773
+ if (typeof t == "string" && !t.includes("%")) {
774
+ const f = parseFloat(t);
775
+ return Number.isFinite(f) && f > 0 ? f : null;
776
+ }
777
+ return null;
778
+ }, A = se(a), de = se(r), ce = A && de ? A / de : void 0, [Ae, Re] = y(
779
+ void 0
780
+ ), ue = te(() => {
781
+ try {
782
+ const t = parseFloat(
783
+ localStorage.getItem("layers-img-ratio:" + e) || ""
784
+ );
785
+ return Number.isFinite(t) && t > 0 ? t : void 0;
786
+ } catch {
787
+ return;
788
+ }
789
+ }, [e]), Me = ce ?? h ?? ue ?? Ae, [We, Y] = y(!1), ze = !We && !ce && (h ?? ue) != null, [Pt, Fe] = y(0);
790
+ E(() => u.registerDecoratorListener(() => {
791
+ Fe((t) => t + 1);
792
+ }), [_]), E(() => {
793
+ const t = u.getElementByKey(o);
794
+ t && (t.style.removeProperty("aspect-ratio"), t.style.removeProperty("width"));
795
+ }, [u, o]), E(() => {
796
+ if (!e || e.startsWith("data:image/") || !e.trim()) {
797
+ w(!1);
798
+ return;
799
+ }
800
+ const t = new Image();
801
+ t.src = e, t.onload = () => {
802
+ if (w(!1), t.naturalWidth) {
803
+ const f = t.naturalWidth / t.naturalHeight;
804
+ if (Re(f), t.naturalWidth >= 100)
805
+ try {
806
+ localStorage.setItem("layers-img-ratio:" + e, String(f));
807
+ } catch {
808
+ }
809
+ !h && t.naturalWidth >= 100 && u.update(
810
+ () => {
811
+ const p = x(o);
812
+ T(p) && p.getAspectRatio() == null && p.setAspectRatio(f);
813
+ },
814
+ { tag: "history-merge" }
815
+ );
816
+ }
817
+ }, t.onerror = () => {
818
+ w(!1);
819
+ };
820
+ }, [e, _]);
821
+ const _e = (t, f) => {
822
+ u.update(() => {
823
+ Ze(null);
824
+ const p = x(o);
825
+ T(p) && p.setWidthAndHeight(t, f);
826
+ });
827
+ }, { historyState: pe } = dt(), {
828
+ settings: { showNestedEditorTreeView: me }
829
+ } = ct();
830
+ function je(t) {
831
+ return t.endsWith(".svg") || t.includes("image/svg+xml");
832
+ }
833
+ function $e(t) {
834
+ if (!t.startsWith("data:")) return 0;
835
+ try {
836
+ const f = t.slice(t.indexOf(",") + 1), p = t.includes(";base64,") ? atob(f) : decodeURIComponent(f), C = p.match(
837
+ /viewBox\s*=\s*["']\s*[\d.eE+\-]+\s+[\d.eE+\-]+\s+([\d.eE+]+)\s+([\d.eE+]+)/i
838
+ );
839
+ if (C) return Math.round(parseFloat(C[1]));
840
+ const he = p.match(/\bwidth\s*=\s*["'](\d[\d.]*)(?:px)?["']/i);
841
+ if (he) return Math.round(parseFloat(he[1]));
842
+ } catch {
843
+ }
844
+ return 0;
845
+ }
846
+ function He(t) {
847
+ return new Promise((f, p) => {
848
+ if (je(t)) {
849
+ f($e(t));
850
+ return;
851
+ }
852
+ const C = new Image();
853
+ C.src = t, C.onload = () => {
854
+ f(C.width);
855
+ }, C.onerror = () => {
856
+ p(new Error("Failed to load image"));
857
+ };
858
+ });
859
+ }
860
+ E(() => {
861
+ let t = a, f = r, p = 100;
862
+ if ((e.includes("unsplash") ? e.trim() : !_ && e.trim() || e.includes("upload-src-editor")) && e !== "upload") {
863
+ if (A != null && A >= p) {
864
+ S(!1), U({ width: A, height: A }), Y(!0);
865
+ return;
866
+ }
867
+ He(e).then((C) => {
868
+ typeof t == "number" && t < p && C < p ? (S(!0), U({
869
+ width: t,
870
+ height: f
871
+ })) : C < p ? (S(!0), U({
872
+ width: "auto",
873
+ height: "auto"
874
+ })) : (U({
875
+ width: C,
876
+ height: C
877
+ }), S(!1)), Y(!0);
878
+ }).catch((C) => {
879
+ Y(!0), console.warn("Ошибка при загрузке изображения:", C.message);
880
+ });
881
+ }
882
+ }, [e, _]), E(() => {
883
+ L.width && L.height && P && u.update(() => {
884
+ const t = x(o);
885
+ T(t) && t.setWidthAndHeight(L.width, L.height);
886
+ });
887
+ }, [L.width, L.height, P]);
888
+ const Be = D(
889
+ (t) => ut(u, o, t),
890
+ [u, o]
891
+ ), Z = D(
892
+ (t, f) => {
893
+ w(!1), u.update(() => {
894
+ const p = x(o);
895
+ T(p) && (p.setSrc(t), p.setId(f));
896
+ });
897
+ },
898
+ [u, o]
899
+ ), q = D(
900
+ (t) => {
901
+ w(!0);
902
+ const f = N();
903
+ z && z(
904
+ t[0],
905
+ (p, C) => {
906
+ Z(p, C), X(0);
907
+ },
908
+ (p) => {
909
+ p && bt({
910
+ message: j("editor.gallery.errorFile")
911
+ }), X(0), Z(e.startsWith("blob:") ? "upload" : "", "");
912
+ },
913
+ f,
914
+ (p) => {
915
+ X(p);
916
+ }
917
+ );
918
+ },
919
+ [z, N, j, Z, e]
920
+ );
921
+ return E(() => u.registerCommand(
922
+ pt,
923
+ (t) => !e.startsWith("blob:") && e !== "upload" || t.targetNodeKey !== o ? !1 : (q(t.files), !0),
924
+ Ye
925
+ ), [u, q, o, e]), !e || e === "upload" ? /* @__PURE__ */ n(Ge, { "data-editor-image-picker-drop-root": !0, w: "100%", children: /* @__PURE__ */ n(
926
+ mt,
927
+ {
928
+ inline: !0,
929
+ nodeKey: o,
930
+ defaultTabValue: g,
931
+ onWriteTabToNode: Be,
932
+ uploading: !1,
933
+ onUpload: (t) => {
934
+ !z || !t.length || q(t);
935
+ },
936
+ popoverProps: {
937
+ opened: !0,
938
+ position: "bottom",
939
+ zIndex: gt
940
+ },
941
+ onChange: (t) => {
942
+ u.update(() => {
943
+ const f = x(o);
944
+ T(f) && f.setSrc(t);
945
+ });
946
+ }
947
+ }
948
+ ) }) : P && !ze ? /* @__PURE__ */ n(
949
+ Ie,
950
+ {
951
+ width: L.width,
952
+ height: L.height,
953
+ isLoading: c,
954
+ isError: !1,
955
+ isIcon: P,
956
+ src: e,
957
+ id: I,
958
+ editor: u,
959
+ nodeKey: o,
960
+ fetchDeleteMedia: le,
961
+ altText: i,
962
+ imageRef: v,
963
+ maxWidth: s,
964
+ showCaption: l,
965
+ caption: d,
966
+ isCollabActive: !1,
967
+ historyState: pe,
968
+ showNestedEditorTreeView: me,
969
+ t: j,
970
+ href: k
971
+ }
972
+ ) : /* @__PURE__ */ n(
973
+ ft,
974
+ {
975
+ editor: u,
976
+ isIcon: P,
977
+ width: ve(a),
978
+ height: ve(r),
979
+ initialWidth: L.width || "",
980
+ initialHeight: L.height || "",
981
+ onResizeEnd: _e,
982
+ alignment: m,
983
+ disable: Ue,
984
+ onRegisterDecoratorEnter: (t) => {
985
+ F != null && F.current && (F.current.decoratorEnterAction = t);
986
+ },
987
+ onActivate: () => u.dispatchCommand(ht, "show_menu"),
988
+ children: /* @__PURE__ */ n(
989
+ Ie,
990
+ {
991
+ width: "inherit",
992
+ height: "inherit",
993
+ aspectRatio: Me,
994
+ isLoading: c,
995
+ isError: !1,
996
+ isIcon: P,
997
+ src: e,
998
+ id: I,
999
+ editor: u,
1000
+ nodeKey: o,
1001
+ fetchDeleteMedia: le,
1002
+ altText: i,
1003
+ imageRef: v,
1004
+ maxWidth: s,
1005
+ showCaption: l,
1006
+ caption: d,
1007
+ isCollabActive: !1,
1008
+ historyState: pe,
1009
+ showNestedEditorTreeView: me,
1010
+ t: j,
1011
+ href: k
1012
+ }
1013
+ )
1014
+ }
1015
+ );
1016
+ }
1017
+ export {
1018
+ Zt as default
1019
+ };