@layers-app/editor 2.2.13 → 2.2.15

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 (213) hide show
  1. package/dist/index.cjs +2 -2
  2. package/dist/index.d.ts +41 -5
  3. package/dist/index.js +4 -4
  4. package/dist/{layers.BC7vhblC.js → layers.1HBRKOCr.js} +2 -2
  5. package/dist/{layers.3wwQYvzE.js → layers.7uu_dFK8.js} +1 -1
  6. package/dist/{layers.CBV4_Q8v.js → layers.8ejk3zko.js} +1 -1
  7. package/dist/{layers.l3mgnfnL.js → layers.99mMYy9h.js} +1 -1
  8. package/dist/{layers.B66zWJVX.js → layers.Ar7Q0cYd.js} +1 -1
  9. package/dist/{layers.D8a6nUov.js → layers.B-ZHB-Bf.js} +1 -1
  10. package/dist/{layers.DNUSxXhb.js → layers.B1-tmGD1.js} +2 -2
  11. package/dist/{layers.DnQ8Hqqs.js → layers.B1ttfAmQ.js} +1 -1
  12. package/dist/{layers.BrlWHGOv.js → layers.B1u_VVGI.js} +1 -1
  13. package/dist/{layers.yCLo3Wbl.js → layers.B201Heem.js} +8996 -10334
  14. package/dist/{layers.CtPms5Xq.js → layers.B3KTakx3.js} +1 -1
  15. package/dist/{layers.Dynz-n4p.js → layers.B68H9kJg.js} +4 -4
  16. package/dist/layers.B6KeIG9u.js +1 -0
  17. package/dist/{layers.BaR-0FXu.js → layers.B7nCMFj7.js} +1 -1
  18. package/dist/{layers.B3JEjkxk.js → layers.B84tjXVU.js} +2 -2
  19. package/dist/{layers.DXB7J8Cv.js → layers.B8yR20Ny.js} +1 -1
  20. package/dist/{layers.ai2dep1M.js → layers.BA4MRIZH.js} +1 -1
  21. package/dist/{layers.BIs6O-GJ.js → layers.BAnVQdk1.js} +1 -1
  22. package/dist/{layers.DjhDyCyv.js → layers.BCNyGz0l.js} +1 -1
  23. package/dist/{layers.DPKTuHVy.js → layers.BFbf-x8T.js} +1 -1
  24. package/dist/{layers.D5yxCQUQ.js → layers.BFbhYv5x.js} +4 -4
  25. package/dist/{layers.BFwFOFp6.js → layers.BFhLzOn_.js} +1 -1
  26. package/dist/{layers.DIYNIhmL.js → layers.BG8piiP6.js} +1 -1
  27. package/dist/{layers.B_fnqaZz.js → layers.BH3EDz8J.js} +3 -3
  28. package/dist/{layers.BcsT75ls.js → layers.BIj91s8M.js} +1 -1
  29. package/dist/{layers.XH7cZ7RM.js → layers.BJGAXglq.js} +1 -1
  30. package/dist/layers.BJWwtj05.js +1 -0
  31. package/dist/{layers.B_gZcwlE.js → layers.BK9BVRVU.js} +1 -1
  32. package/dist/{layers.DjwXaeUR.js → layers.BMJo3GSy.js} +1 -1
  33. package/dist/{layers.CjScpCJV.js → layers.BNCnk6zD.js} +1 -1
  34. package/dist/{layers.BsvIPtfm.js → layers.BOihU4M6.js} +1 -1
  35. package/dist/{layers.BigEixkp.js → layers.BTcECCp9.js} +1 -1
  36. package/dist/{layers.DtsEFkET.js → layers.BW6AHSw2.js} +1 -1
  37. package/dist/{layers.wGzJrfo_.js → layers.BWV-E96S.js} +1 -1
  38. package/dist/{layers.37tEugLg.js → layers.BX3ZJedn.js} +1 -1
  39. package/dist/{layers.B9sf0spO.js → layers.BX6tu0oo.js} +1 -1
  40. package/dist/{layers.DOb66OYY.js → layers.BY3IsWRw.js} +1 -1
  41. package/dist/{layers.CleLwZl0.js → layers.B_dzMPUL.js} +1 -1
  42. package/dist/{layers.CYhG0PVj.js → layers.Bb_M2Nbv.js} +1 -1
  43. package/dist/{layers.Z-TdlRF3.js → layers.BbpclPxe.js} +1 -1
  44. package/dist/{layers.BvHIl1Jn.js → layers.BcvdQvm3.js} +1 -1
  45. package/dist/{layers.Wc4x1Zm8.js → layers.Bgwp65S3.js} +1 -1
  46. package/dist/{layers.CW7IYnjZ.js → layers.BgxuL32K.js} +1 -1
  47. package/dist/{layers.CUNHYbl9.js → layers.BiU1U41q.js} +4 -4
  48. package/dist/{layers.D9Qf2-2n.js → layers.BibJBLE-.js} +1 -1
  49. package/dist/{layers.DvK-Bg8a.js → layers.Bjw19aIq.js} +1 -1
  50. package/dist/{layers.dTSX6ksI.js → layers.BkU4AN7i.js} +3 -3
  51. package/dist/{layers.DCw7IDLF.js → layers.BkZXbAoU.js} +1 -1
  52. package/dist/{layers.ESqpMXS3.js → layers.Bl2V5RPb.js} +1 -1
  53. package/dist/{layers.Bsi0UrCO.js → layers.BmyIaJ5e.js} +1 -1
  54. package/dist/{layers.BigDr41r.js → layers.Bnv-DwU7.js} +1 -1
  55. package/dist/{layers.BqxDJqKM.js → layers.BshZZhOJ.js} +1 -1
  56. package/dist/layers.BtzLvQvV.js +700 -0
  57. package/dist/{layers.CcDsGNq9.js → layers.BuwM8ZGL.js} +1 -1
  58. package/dist/{layers.OumDuIvP.js → layers.BvrO7BNd.js} +1 -1
  59. package/dist/{layers.Bt2vtG3f.js → layers.Bwj0Wit4.js} +1 -1
  60. package/dist/{layers.CYKwKRmZ.js → layers.BxjT9u_f.js} +1 -1
  61. package/dist/{layers.CP5kVDkH.js → layers.Bya3AhdH.js} +1 -1
  62. package/dist/{layers.CStfj82G.js → layers.BzWIxNJr.js} +1 -1
  63. package/dist/{layers.D1hpe05R.js → layers.C-PXroz8.js} +1 -1
  64. package/dist/{layers.BZsKqMo_.js → layers.C0Wp9yqj.js} +1 -1
  65. package/dist/{layers.BpS_R1ze.js → layers.C13ay-Pf.js} +1 -1
  66. package/dist/{layers.C0d-rEWd.js → layers.C3qcp6Wn.js} +1 -1
  67. package/dist/{layers.Dnp2z9ph.js → layers.C3rq_vys.js} +3 -3
  68. package/dist/{layers.BY8-cdIn.js → layers.C5urIO9L.js} +1 -1
  69. package/dist/{layers.BThnJXqq.js → layers.C6VrKY5E.js} +1 -1
  70. package/dist/{layers.sZIPFKhz.js → layers.C9f6j1GG.js} +4 -4
  71. package/dist/{layers.CeS02mnZ.js → layers.CA42dtGg.js} +1 -1
  72. package/dist/{layers.Bl1Au46v.js → layers.CCBzixpF.js} +1 -1
  73. package/dist/{layers.BtoPheAp.js → layers.CCoKYQm7.js} +1 -1
  74. package/dist/{layers.Bds0L5fM.js → layers.CD4AbnH-.js} +1 -1
  75. package/dist/{layers.CrhsbZkv.js → layers.CDn9MY7X.js} +1 -1
  76. package/dist/{layers.B2mGFsAC.js → layers.CDqsvGnF.js} +1 -1
  77. package/dist/{layers.DosKpDm5.js → layers.CGfHVR_8.js} +1 -1
  78. package/dist/{layers.WZzI_Kta.js → layers.CHOzGR1D.js} +1 -1
  79. package/dist/{layers.C8ZH1mci.js → layers.CHoAc92V.js} +1 -1
  80. package/dist/{layers.lpjtCe_h.js → layers.CIsgSUWR.js} +1 -1
  81. package/dist/{layers.BAqKF19S.js → layers.CKAyIKKo.js} +4 -4
  82. package/dist/{layers.CFJf_XjC.js → layers.CNC59Jpm.js} +3 -3
  83. package/dist/{layers.Dz4O4wYH.js → layers.CNe39u8B.js} +1 -1
  84. package/dist/{layers.g1tbWHIt.js → layers.CNn4A7Qc.js} +1 -1
  85. package/dist/{layers.P85lya-a.js → layers.CO77WNOM.js} +1 -1
  86. package/dist/{layers.CXDCVR_J.js → layers.COiVJ7CK.js} +1 -1
  87. package/dist/{layers.CDfbx7ul.js → layers.COxPGTLD.js} +1 -1
  88. package/dist/{layers.1UfoZIrI.js → layers.CR021P7R.js} +1 -1
  89. package/dist/{layers.CejpT0WV.js → layers.CS130O1F.js} +1 -1
  90. package/dist/{layers.D331JcVc.js → layers.CT7e3_cA.js} +4 -4
  91. package/dist/{layers.Cw3dSU_j.js → layers.CTdGoti9.js} +4 -4
  92. package/dist/{layers.BXtv16EU.js → layers.CTjQ04Jm.js} +1 -1
  93. package/dist/{layers.BnVEoBHV.js → layers.CUjdx5fM.js} +1 -1
  94. package/dist/{layers.BhT5rikg.js → layers.C_SFHMhT.js} +1 -1
  95. package/dist/{layers.DQ0s8efE.js → layers.C_Z_okpN.js} +1 -1
  96. package/dist/{layers.bzCn6mlQ.js → layers.C_jT8dXa.js} +2 -2
  97. package/dist/{layers.BKUDAY8p.js → layers.Cdmrn8XG.js} +1 -1
  98. package/dist/{layers.0aPpAvdf.js → layers.Ce5eSQF4.js} +1 -1
  99. package/dist/{layers.QncPHgyq.js → layers.CeECeaph.js} +1 -1
  100. package/dist/{layers.Clg0Pbcz.js → layers.Ceehh2Xx.js} +1 -1
  101. package/dist/{layers.BuAZE5RA.js → layers.CfB7Kr3T.js} +1 -1
  102. package/dist/{layers.BnDREviU.js → layers.CfKMVgM-.js} +1 -1
  103. package/dist/{layers.B3YzwKY_.js → layers.CgQFiexq.js} +1 -1
  104. package/dist/{layers.Dg4wujI9.js → layers.CictkUCB.js} +1 -1
  105. package/dist/{layers.AndwUZMN.js → layers.Cmr8HLVr.js} +1 -1
  106. package/dist/{layers.BYPnQ-jA.js → layers.CobjMun3.js} +1 -1
  107. package/dist/{layers.BSmPG8nH.js → layers.CpUDnDrR.js} +1 -1
  108. package/dist/{layers.8FxnTxBD.js → layers.CsCWLgyS.js} +1 -1
  109. package/dist/{layers.CZB2dVO1.js → layers.CsU4fOrm.js} +1 -1
  110. package/dist/{layers.CDGYthd7.js → layers.CstcQOU_.js} +1 -1
  111. package/dist/{layers.CEaS6td1.js → layers.CtV3MNt1.js} +1 -1
  112. package/dist/{layers.BdMRhosW.js → layers.CvLYOfw_.js} +4 -4
  113. package/dist/{layers.DwAs0sw_.js → layers.Cx98JrJO.js} +3 -3
  114. package/dist/{layers.Dxz26OMI.js → layers.CyS50vo4.js} +1 -1
  115. package/dist/{layers.BAgJYqZS.js → layers.CzxrVQZJ.js} +1 -1
  116. package/dist/{layers.dH54y4EX.js → layers.D-eTHfbm.js} +1 -1
  117. package/dist/{layers.Cc6Dy3lN.js → layers.D0XSoxIh.js} +1 -1
  118. package/dist/{layers.CwPRjURH.js → layers.D0wALH_j.js} +6 -6
  119. package/dist/{layers.Cj0AK_M3.js → layers.D1O76qtk.js} +1 -1
  120. package/dist/{layers.BJnYBCs1.js → layers.D1ePyfGa.js} +3 -3
  121. package/dist/{layers.CvQehbdA.js → layers.D20j9Tr7.js} +1 -1
  122. package/dist/{layers.DdCcfPLj.js → layers.D2KeSCbY.js} +3 -3
  123. package/dist/layers.D3qu_MDj.js +6 -0
  124. package/dist/{layers.CeOT2PQd.js → layers.D4OJAduR.js} +1 -1
  125. package/dist/{layers.srPvwTOS.js → layers.D4k2d_PJ.js} +1 -1
  126. package/dist/{layers.BSvoaj4y.js → layers.D5BE_Leu.js} +1 -1
  127. package/dist/{layers.BSyurqR0.js → layers.D6I-6B30.js} +1 -1
  128. package/dist/{layers.DhqkpEla.js → layers.D8vYNGoN.js} +1 -1
  129. package/dist/{layers.BPV47e59.js → layers.DCzDkApU.js} +1 -1
  130. package/dist/{layers.BjbTCxL7.js → layers.DD5IFB9e.js} +1 -1
  131. package/dist/{layers.CYuvR6xl.js → layers.DDHLiCry.js} +1 -1
  132. package/dist/layers.DG4jbcpC.js +904 -0
  133. package/dist/{layers.DS8FRAoI.js → layers.DJ-N7-bn.js} +1 -1
  134. package/dist/{layers.DeH-6Bdd.js → layers.DLGtdjDD.js} +5 -5
  135. package/dist/{layers.CD59hFOU.js → layers.DN7tC8ON.js} +1 -1
  136. package/dist/{layers.Dkh0KNA7.js → layers.DNw00Zzf.js} +1 -1
  137. package/dist/{layers.BacWku-_.js → layers.DOwKRBS2.js} +1 -1
  138. package/dist/{layers.k-T7HWtG.js → layers.DPPblCob.js} +1 -1
  139. package/dist/layers.DPlUixeN.js +1 -0
  140. package/dist/{layers.ChpRh-ln.js → layers.DREQfPKh.js} +3 -3
  141. package/dist/{layers.CDeO1yM0.js → layers.DRgdytYB.js} +1 -1
  142. package/dist/{layers.nY2hjF-S.js → layers.DSRIeWLB.js} +2 -2
  143. package/dist/{layers.DjX2hnXr.js → layers.DSq8O3u2.js} +1 -1
  144. package/dist/{layers.BmCu7IPT.js → layers.DWKxQNZq.js} +1 -1
  145. package/dist/{layers.DhYyc8EE.js → layers.DX2AoDzH.js} +1 -1
  146. package/dist/{layers.BQwJz_NL.js → layers.DXHAdC9s.js} +1 -1
  147. package/dist/{layers.BBKJEbGP.js → layers.DXvg_s1v.js} +2 -2
  148. package/dist/{layers.BbFbumMx.js → layers.DY4aTRUl.js} +1 -1
  149. package/dist/{layers.DusKIV96.js → layers.DahXv94g.js} +1 -1
  150. package/dist/{layers.Pkxzj3oB.js → layers.Dd0lsrdV.js} +1 -1
  151. package/dist/{layers.BAY04JaZ.js → layers.Dem8CmFn.js} +1 -1
  152. package/dist/{layers.CwbcSmTY.js → layers.DgqdIjwz.js} +117 -117
  153. package/dist/{layers.CB5FEkIo.js → layers.DhnzUunp.js} +3 -3
  154. package/dist/{layers.CMwdDXVu.js → layers.Djlfabv1.js} +1 -1
  155. package/dist/{layers.DKgfPRYD.js → layers.DmDnRpAI.js} +5 -5
  156. package/dist/{layers.DQ3fD-nt.js → layers.DogbT2sQ.js} +25 -25
  157. package/dist/{layers.BrfCLctd.js → layers.DojVzqkZ.js} +1 -1
  158. package/dist/{layers.CsU3BVt1.js → layers.Dq4Gy1Jy.js} +4 -4
  159. package/dist/{layers.7nD94Zq9.js → layers.DqN5SjrO.js} +1 -1
  160. package/dist/{layers.C1uyYyYs.js → layers.Dqt3rDkE.js} +1 -1
  161. package/dist/{layers.BH9Su9z-.js → layers.DtY8IMm6.js} +4 -4
  162. package/dist/{layers.BZoloilP.js → layers.DuoVv8Hb.js} +1 -1
  163. package/dist/{layers.DHjIFQ_M.js → layers.Dup2XYYb.js} +1 -1
  164. package/dist/{layers.Dhb2eyJ-.js → layers.Dv-uQR89.js} +1 -1
  165. package/dist/{layers.D2M9J9av.js → layers.DvpS1jTV.js} +1 -1
  166. package/dist/{layers.CscLHDkP.js → layers.DwxPC1iD.js} +1 -1
  167. package/dist/layers.Dx5ZkjwQ.js +198 -0
  168. package/dist/{layers.BqB6Yq44.js → layers.DxebjRcD.js} +1 -1
  169. package/dist/{layers.DBO29Egl.js → layers.DxfoL-9U.js} +1 -1
  170. package/dist/{layers.BKWnKnjv.js → layers.DyQhad7c.js} +3 -3
  171. package/dist/{layers.C9ctlRmN.js → layers.DyqCj3dP.js} +1 -1
  172. package/dist/{layers.C8XQB0hE.js → layers.DzoQaN17.js} +1 -1
  173. package/dist/{layers.BCUYEv9o.js → layers.DzzMhx-l.js} +1 -1
  174. package/dist/{layers.B2bKeFdG.js → layers.E9Ext2HT.js} +1 -1
  175. package/dist/{layers.ClJnHuky.js → layers.ER4cNuf6.js} +1 -1
  176. package/dist/{layers.o9ZAvGrl.js → layers.EVh_QlEr.js} +1 -1
  177. package/dist/{layers.DaX7VtGb.js → layers.L4WvtETF.js} +1 -1
  178. package/dist/{layers.C1cG7Bb2.js → layers.OsyM3TFW.js} +1 -1
  179. package/dist/{layers._PAU7LYb.js → layers.Sq01ui8C.js} +1 -1
  180. package/dist/{layers.B6b2Mbvh.js → layers.UEwHT_by.js} +1 -1
  181. package/dist/{layers.DeilQ54T.js → layers.YTHG2Apb.js} +1 -1
  182. package/dist/layers.YwwtbZte.js +1 -0
  183. package/dist/{layers.B_5WEr0K.js → layers.csfFUyHr.js} +1 -1
  184. package/dist/{layers.g-krtm71.js → layers.kWxuwjOK.js} +1 -1
  185. package/dist/{layers.CSNHMV8J.js → layers.keZq9JiN.js} +1 -1
  186. package/dist/{layers.DlzA-xHt.js → layers.kf-8G-tf.js} +1 -1
  187. package/dist/{layers.BdhtJPxa.js → layers.mRJBkk-f.js} +1 -1
  188. package/dist/{layers.DUCC1vXz.js → layers.n48qAHkM.js} +1 -1
  189. package/dist/{layers.C_T_LMJy.js → layers.okxozVhc.js} +26136 -25363
  190. package/dist/{layers.CZXlcEmg.js → layers.ooRrvrxo.js} +1 -1
  191. package/dist/{layers.yJpgPNcv.js → layers.pGd6B9C1.js} +1 -1
  192. package/dist/{layers.DZ31VEe-.js → layers.qM1P_DCD.js} +1 -1
  193. package/dist/{layers.B3zYKBsf.js → layers.qpCEVrfr.js} +1 -1
  194. package/dist/{layers.BcVU2ayW.js → layers.t7ujVwoH.js} +1 -1
  195. package/dist/{layers.CclBI9O_.js → layers.tW6VrAWA.js} +1 -1
  196. package/dist/{layers.BzM8rwNt.js → layers.tXvGbLLo.js} +1 -1
  197. package/dist/{layers.B5OSUMkS.js → layers.uOU_7yMT.js} +1 -1
  198. package/dist/layers.uOxzTLi8.js +8 -0
  199. package/dist/{layers.CGyBG9uN.js → layers.uj5aO3Td.js} +1 -1
  200. package/dist/{layers.HGzaw5gb.js → layers.vVoBYMgB.js} +1 -1
  201. package/dist/{layers.CxgO5L0U.js → layers.vWwZFH4t.js} +1 -1
  202. package/dist/{layers.DNahvyh3.js → layers.vb_gQYIH.js} +1 -1
  203. package/dist/{layers.qzgeeXgK.js → layers.zcYhb5k2.js} +1 -1
  204. package/package.json +80 -80
  205. package/dist/layers.BugevNWi.js +0 -520
  206. package/dist/layers.CNAxOHS_.js +0 -1
  207. package/dist/layers.Cl1WZyZB.js +0 -8
  208. package/dist/layers.D1yQKEca.js +0 -198
  209. package/dist/layers.D2OzccOg.js +0 -1
  210. package/dist/layers.IOldzt94.js +0 -1
  211. package/dist/layers.NG3ggnia.js +0 -6
  212. package/dist/layers.__VjF_qK.js +0 -1126
  213. package/dist/layers.ur5mqrxg.js +0 -1
package/package.json CHANGED
@@ -1,80 +1,80 @@
1
- {
2
- "name": "@layers-app/editor",
3
- "private": false,
4
- "version": "2.2.13",
5
- "type": "module",
6
- "main": "dist/index.js",
7
- "types": "dist/index.d.ts",
8
- "files": [
9
- "dist"
10
- ],
11
- "publishConfig": {
12
- "access": "public"
13
- },
14
- "scripts": {
15
- "start": "cross-env VITE_LAYERS=true vite --mode full ",
16
- "start:specific": "VITE_LAYERS=false vite --mode full ",
17
- "build": "cross-env VITE_LAYERS=true vite build",
18
- "build:specific": "VITE_LAYERS=false vite build",
19
- "preview": "vite preview",
20
- "generate-dts": "tsc --project tsconfig.lib.json",
21
- "type-check": "tsc --noEmit --project tsconfig.check.json",
22
- "test": "vitest run",
23
- "test:watch": "vitest",
24
- "test:coverage": "vitest run --coverage",
25
- "start-test-server": "VITE_LAYERS=true vite --mode full --port 3001 --strictPort --host 0.0.0.0"
26
- },
27
- "dependencies": {
28
- "@excalidraw/excalidraw": "^0.18.0",
29
- "@floating-ui/react": "^0.27.16",
30
- "@layers-app/editor-core": "*",
31
- "@lexical/file": "^0.38.2",
32
- "@lexical/headless": "^0.38.2",
33
- "@lexical/markdown": "^0.38.2",
34
- "@lexical/react": "^0.38.2",
35
- "@tanstack/react-query": "^5.52.2",
36
- "lexical": "^0.38.2",
37
- "react-selecto": "^1.26.3",
38
- "y-websocket": "^1.5.3",
39
- "yjs": "^13.6.20"
40
- },
41
- "devDependencies": {
42
- "@layers-app/editor-video": "*"
43
- },
44
- "peerDependencies": {
45
- "@dnd-kit/modifiers": ">=6",
46
- "@emotion/react": ">=11",
47
- "@emotion/styled": ">=11",
48
- "@hugeicons/core-free-icons": "^4.0.0",
49
- "@hugeicons/react": ">=1",
50
- "@layers-app/editor-video": ">=0.3.0",
51
- "@tabler/icons-react": ">=3.7.0",
52
- "@mantine/carousel": "9.1.1",
53
- "@mantine/colors-generator": "9.1.1",
54
- "@mantine/core": "9.1.1",
55
- "@mantine/dropzone": "9.1.1",
56
- "@mantine/form": "9.1.1",
57
- "@mantine/hooks": "9.1.1",
58
- "@mantine/modals": "9.1.1",
59
- "@mantine/notifications": "9.1.1",
60
- "@mantine/tiptap": "9.1.1",
61
- "@tanstack/react-query": "^5.52.2",
62
- "@tanstack/react-virtual": ">=3",
63
- "date-fns-tz": ">=3",
64
- "i18next": "^25.5.2",
65
- "js-confetti": ">=0.12",
66
- "lodash-es": "^4.17.21",
67
- "react": "^19.2.0",
68
- "react-dom": "^19.2.0",
69
- "react-i18next": "^15.7.3",
70
- "swagger-ui-react": "^5.27.1"
71
- },
72
- "peerDependenciesMeta": {
73
- "@layers-app/editor-video": {
74
- "optional": true
75
- },
76
- "swagger-ui-react": {
77
- "optional": true
78
- }
79
- }
80
- }
1
+ {
2
+ "name": "@layers-app/editor",
3
+ "private": false,
4
+ "version": "2.2.15",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "publishConfig": {
12
+ "access": "public"
13
+ },
14
+ "scripts": {
15
+ "start": "cross-env VITE_LAYERS=true vite --mode full ",
16
+ "start:specific": "VITE_LAYERS=false vite --mode full ",
17
+ "build": "cross-env VITE_LAYERS=true vite build",
18
+ "build:specific": "VITE_LAYERS=false vite build",
19
+ "preview": "vite preview",
20
+ "generate-dts": "tsc --project tsconfig.lib.json",
21
+ "type-check": "tsc --noEmit --project tsconfig.check.json",
22
+ "test": "vitest run",
23
+ "test:watch": "vitest",
24
+ "test:coverage": "vitest run --coverage",
25
+ "start-test-server": "VITE_LAYERS=true vite --mode full --port 3001 --strictPort --host 0.0.0.0"
26
+ },
27
+ "dependencies": {
28
+ "@excalidraw/excalidraw": "^0.18.0",
29
+ "@floating-ui/react": "^0.27.16",
30
+ "@layers-app/editor-core": "*",
31
+ "@lexical/file": "^0.38.2",
32
+ "@lexical/headless": "^0.38.2",
33
+ "@lexical/markdown": "^0.38.2",
34
+ "@lexical/react": "^0.38.2",
35
+ "@tanstack/react-query": "^5.52.2",
36
+ "lexical": "^0.38.2",
37
+ "react-selecto": "^1.26.3",
38
+ "y-websocket": "^1.5.3",
39
+ "yjs": "^13.6.20"
40
+ },
41
+ "devDependencies": {
42
+ "@layers-app/editor-video": "*"
43
+ },
44
+ "peerDependencies": {
45
+ "@dnd-kit/modifiers": ">=6",
46
+ "@emotion/react": ">=11",
47
+ "@emotion/styled": ">=11",
48
+ "@hugeicons/core-free-icons": "^4.0.0",
49
+ "@hugeicons/react": ">=1",
50
+ "@layers-app/editor-video": ">=0.3.0",
51
+ "@tabler/icons-react": ">=3.7.0",
52
+ "@mantine/carousel": "9.1.1",
53
+ "@mantine/colors-generator": "9.1.1",
54
+ "@mantine/core": "9.1.1",
55
+ "@mantine/dropzone": "9.1.1",
56
+ "@mantine/form": "9.1.1",
57
+ "@mantine/hooks": "9.1.1",
58
+ "@mantine/modals": "9.1.1",
59
+ "@mantine/notifications": "9.1.1",
60
+ "@mantine/tiptap": "9.1.1",
61
+ "@tanstack/react-query": "^5.52.2",
62
+ "@tanstack/react-virtual": ">=3",
63
+ "date-fns-tz": ">=3",
64
+ "i18next": "^25.5.2",
65
+ "js-confetti": ">=0.12",
66
+ "lodash-es": "^4.17.21",
67
+ "react": "^19.2.0",
68
+ "react-dom": "^19.2.0",
69
+ "react-i18next": "^15.7.3",
70
+ "swagger-ui-react": "^5.27.1"
71
+ },
72
+ "peerDependenciesMeta": {
73
+ "@layers-app/editor-video": {
74
+ "optional": true
75
+ },
76
+ "swagger-ui-react": {
77
+ "optional": true
78
+ }
79
+ }
80
+ }
@@ -1,520 +0,0 @@
1
- import { jsxs as P, jsx as o, Fragment as le } from "react/jsx-runtime";
2
- import { useState as w, useCallback as C, useMemo as de, useContext as Q, useRef as ce, useEffect as D } from "react";
3
- import { useTranslation as H } from "react-i18next";
4
- import { useLexicalComposerContext as $ } from "@lexical/react/LexicalComposerContext";
5
- import { Stack as me, Button as L, Box as ue, LoadingOverlay as ge } from "@mantine/core";
6
- import { $getNodeByKey as N, COMMAND_PRIORITY_LOW as he, $setSelection as pe } from "lexical";
7
- import { b as A, c as fe, d as K, i as ee, P as ve, N as we, M as Ie, A as be, O as Ce, e as ye, H as R, g as Ne, T as Ae, f as xe, C as te, h as De, j as Oe, m as F, k as Te, n as Se, o as Ee, U as Me, q as Pe, r as ke, R as We, s as Y, t as _e, v as ze, w as Ue } from "./layers.C_T_LMJy.js";
8
- import { AttachmentsGalleryModal as Le, showErrorNotification as Re } from "@layers-app/shared";
9
- import "@lexical/react/LexicalDecoratorBlockNode";
10
- import "@lexical/utils";
11
- import { useDisclosure as Z } from "@mantine/hooks";
12
- import "@lexical/mark";
13
- import "@lexical/code";
14
- import "@lexical/selection";
15
- import "@lexical/react/LexicalBlockWithAlignableContents";
16
- import "@mantine/notifications";
17
- const Fe = () => {
18
- };
19
- function He({ nodeKey: e, src: n, id: i }) {
20
- const { t: r } = H(), [m] = $(), [u, g] = w(!1), [l, h] = w(!1), p = C(() => {
21
- h(!1), m.update(() => {
22
- const v = N(e);
23
- if (!A(v)) return;
24
- const I = v.getParent();
25
- fe(I) ? I.remove() : v.remove();
26
- });
27
- }, [m, e]), x = C(async () => {
28
- if (n)
29
- try {
30
- await K(n, ee(n));
31
- } catch {
32
- }
33
- }, [n]);
34
- return /* @__PURE__ */ P(
35
- "div",
36
- {
37
- className: "media-actions visible",
38
- style: {
39
- position: "absolute",
40
- top: 10,
41
- right: 10,
42
- zIndex: 10,
43
- pointerEvents: "auto",
44
- display: "flex",
45
- gap: 4
46
- },
47
- onClick: (v) => v.stopPropagation(),
48
- children: [
49
- /* @__PURE__ */ o(ve, { t: r, src: n, setShown: Fe, id: i }),
50
- /* @__PURE__ */ o(
51
- we,
52
- {
53
- opened: u,
54
- setOpened: g,
55
- t: r,
56
- editor: m,
57
- nodeKey: e
58
- }
59
- ),
60
- /* @__PURE__ */ o(
61
- Ie,
62
- {
63
- opened: l,
64
- onOpenChange: h,
65
- t: r,
66
- onDownload: () => void x(),
67
- onDelete: p
68
- }
69
- )
70
- ]
71
- }
72
- );
73
- }
74
- function $e({ nodeKey: e, src: n, id: i }) {
75
- const { t: r } = H(), [m] = $(), [u, { open: g, close: l }] = Z(!1), [h, { open: p, close: x }] = Z(!1), v = de(
76
- () => [
77
- {
78
- id: !i || i === "0" ? "" : i,
79
- Url: n ?? "",
80
- contentType: "",
81
- originalFileName: "",
82
- fileSize: 0,
83
- storageType: "",
84
- storagePath: "",
85
- fileName: "",
86
- parentType: "",
87
- parentId: "",
88
- ownerId: "",
89
- createdAt: /* @__PURE__ */ new Date(),
90
- updatedAt: /* @__PURE__ */ new Date(),
91
- version: 0,
92
- deleted: !1,
93
- deletedAt: /* @__PURE__ */ new Date()
94
- }
95
- ],
96
- [n, i]
97
- ), I = () => {
98
- l(), p();
99
- }, O = C(async () => {
100
- if (l(), !!n)
101
- try {
102
- await K(n, ee(n));
103
- } catch {
104
- }
105
- }, [n, l]), b = C(() => {
106
- l(), m.update(() => {
107
- const a = N(e);
108
- A(a) && a.remove();
109
- });
110
- }, [m, e, l]);
111
- return /* @__PURE__ */ P(le, { children: [
112
- /* @__PURE__ */ o(
113
- "div",
114
- {
115
- className: "image-touch-actions",
116
- style: {
117
- position: "absolute",
118
- top: 8,
119
- right: 8,
120
- zIndex: 10,
121
- pointerEvents: "auto"
122
- },
123
- onClick: (a) => a.stopPropagation(),
124
- children: /* @__PURE__ */ o(
125
- be,
126
- {
127
- label: r("editor.toolbar.more"),
128
- icon: Ce,
129
- iconColor: "var(--mantine-color-gray-text)",
130
- "aria-label": r("editor.toolbar.more"),
131
- onClick: g
132
- }
133
- )
134
- }
135
- ),
136
- /* @__PURE__ */ o(
137
- Le,
138
- {
139
- opened: h,
140
- onOpenChange: (a) => a ? p() : x(),
141
- attachments: v
142
- }
143
- ),
144
- /* @__PURE__ */ o(
145
- ye,
146
- {
147
- opened: u,
148
- onClose: l,
149
- title: r("editor.image.mobileActions"),
150
- children: /* @__PURE__ */ P(me, { gap: 4, p: 0, children: [
151
- /* @__PURE__ */ o(
152
- L,
153
- {
154
- type: "button",
155
- variant: "subtle",
156
- color: "gray",
157
- fullWidth: !0,
158
- justify: "flex-start",
159
- bg: "light-dark(var(--mantine-color-gray-0), var(--mantine-color-gray-outline-hover))",
160
- onClick: I,
161
- leftSection: /* @__PURE__ */ o(
162
- R,
163
- {
164
- icon: Ne,
165
- size: 16,
166
- color: "var(--mantine-color-dimmed)"
167
- }
168
- ),
169
- children: r("editor.image.previewFullScreen")
170
- }
171
- ),
172
- /* @__PURE__ */ o(
173
- L,
174
- {
175
- type: "button",
176
- variant: "subtle",
177
- color: "gray",
178
- fullWidth: !0,
179
- justify: "flex-start",
180
- bg: "light-dark(var(--mantine-color-gray-0), var(--mantine-color-gray-outline-hover))",
181
- onClick: () => void O(),
182
- leftSection: /* @__PURE__ */ o(
183
- R,
184
- {
185
- icon: Ae,
186
- size: 16,
187
- color: "var(--mantine-color-dimmed)"
188
- }
189
- ),
190
- children: r("editor.gallery.download")
191
- }
192
- ),
193
- /* @__PURE__ */ o(
194
- L,
195
- {
196
- type: "button",
197
- variant: "subtle",
198
- color: "red",
199
- fullWidth: !0,
200
- justify: "flex-start",
201
- bg: "light-dark(var(--mantine-color-gray-0), var(--mantine-color-gray-outline-hover))",
202
- onClick: b,
203
- leftSection: /* @__PURE__ */ o(
204
- R,
205
- {
206
- icon: xe,
207
- size: 16,
208
- color: "var(--mantine-color-red-6)"
209
- }
210
- ),
211
- children: r("editor.actions.delete")
212
- }
213
- )
214
- ] })
215
- }
216
- )
217
- ] });
218
- }
219
- const J = (e) => {
220
- const {
221
- width: n,
222
- height: i,
223
- isLoading: r,
224
- isError: m,
225
- src: u,
226
- id: g,
227
- altText: l,
228
- imageRef: h,
229
- maxWidth: p
230
- } = e;
231
- return /* @__PURE__ */ P(
232
- "div",
233
- {
234
- className: "media-wrapper",
235
- style: {
236
- width: n,
237
- height: i,
238
- display: "inline-flex",
239
- position: "relative"
240
- },
241
- children: [
242
- /* @__PURE__ */ o(
243
- ge,
244
- {
245
- visible: r,
246
- zIndex: 1e3,
247
- overlayProps: { backgroundOpacity: 0.5 },
248
- loaderProps: { size: 24, color: "black" }
249
- }
250
- ),
251
- /* @__PURE__ */ o(
252
- je,
253
- {
254
- className: null,
255
- src: u,
256
- altText: l,
257
- imageRef: h,
258
- width: "inherit",
259
- height: "inherit",
260
- maxWidth: p || "auto",
261
- id: g
262
- }
263
- ),
264
- ze && /* @__PURE__ */ o($e, { nodeKey: e.nodeKey, src: u, id: g }),
265
- Ue && /* @__PURE__ */ o(He, { nodeKey: e.nodeKey, src: u, id: g })
266
- ]
267
- }
268
- );
269
- };
270
- function je({
271
- altText: e,
272
- className: n,
273
- imageRef: i,
274
- src: r,
275
- width: m,
276
- height: u,
277
- maxWidth: g,
278
- id: l
279
- }) {
280
- const [h, p] = w(!1);
281
- return /* @__PURE__ */ o(
282
- "img",
283
- {
284
- className: `${n || void 0} ${h ? "" : "loading"}`,
285
- src: r,
286
- alt: e,
287
- ref: i,
288
- style: {
289
- height: u,
290
- maxWidth: g,
291
- width: m
292
- },
293
- onLoad: () => {
294
- r.includes("splash") ? setTimeout(() => {
295
- p(!0);
296
- }, 100) : p(!0);
297
- },
298
- draggable: "false",
299
- "data-id": l
300
- }
301
- );
302
- }
303
- function ct(e) {
304
- const { disable: n } = Q(te);
305
- return n && De.isPlaceholderSrc(e.src) ? null : /* @__PURE__ */ o(Be, { ...e });
306
- }
307
- function Be({
308
- src: e,
309
- altText: n,
310
- nodeKey: i,
311
- width: r,
312
- height: m,
313
- maxWidth: u,
314
- showCaption: g,
315
- caption: l,
316
- id: h,
317
- create: p,
318
- alignment: x,
319
- imagePickerTab: v
320
- }) {
321
- var q, X;
322
- const I = ce(null), [O, b] = w(!0), [a] = $(), [y, k] = w(!0), [f, W] = w({
323
- width: 0,
324
- height: 0
325
- }), { start: j } = Oe(), [Ge, _] = w(0), {
326
- fetchUploadMedia: T,
327
- fetchDeleteMedia: B,
328
- maxFileSize: Ve,
329
- imperativeHandleRef: S,
330
- disable: oe
331
- } = Q(te), E = F.has(e) && (((q = F.get(e)) == null ? void 0 : q.mediaNodeKeys.length) === 0 || ((X = F.get(e)) == null ? void 0 : X.mediaNodeKeys.length) === void 0 || e.trim() === ""), { t: M } = H(), [qe, ie] = w(0);
332
- D(() => a.registerDecoratorListener(() => {
333
- ie((t) => t + 1);
334
- }), [E]), D(() => {
335
- if (!e || e.startsWith("data:image/") || !e.trim()) {
336
- b(!1);
337
- return;
338
- }
339
- const t = new Image();
340
- t.src = e, t.onload = () => b(!1), t.onerror = () => {
341
- b(!1);
342
- };
343
- }, [e, E]);
344
- const ne = (t, d) => {
345
- a.update(() => {
346
- pe(null);
347
- const s = N(i);
348
- A(s) && s.setWidthAndHeight(t, d);
349
- });
350
- }, { historyState: G } = Te(), {
351
- settings: { showNestedEditorTreeView: V }
352
- } = Se();
353
- function ae(t) {
354
- return t.endsWith(".svg") || t.includes("image/svg+xml");
355
- }
356
- function re(t) {
357
- return new Promise((d, s) => {
358
- if (ae(t)) {
359
- d(0);
360
- return;
361
- }
362
- const c = new Image();
363
- c.src = t, c.onload = () => {
364
- d(c.width);
365
- }, c.onerror = () => {
366
- s(new Error("Failed to load image"));
367
- };
368
- });
369
- }
370
- D(() => {
371
- let t = r, d = m, s = 100;
372
- (e.includes("unsplash") ? e.trim() : !E && e.trim() || e.includes("upload-src-editor")) && e !== "upload" && re(e).then((c) => {
373
- typeof t == "number" && t < s && c < s ? (k(!0), W({
374
- width: t,
375
- height: d
376
- })) : c < s ? (k(!0), W({
377
- width: "auto",
378
- height: "auto"
379
- })) : (W({
380
- width: c,
381
- height: c
382
- }), k(!1));
383
- }).catch((c) => {
384
- console.warn("Ошибка при загрузке изображения:", c.message);
385
- });
386
- }, [e, E]), D(() => {
387
- f.width && f.height && y && a.update(() => {
388
- const t = N(i);
389
- A(t) && t.setWidthAndHeight(f.width, f.height);
390
- });
391
- }, [f.width, f.height, y]);
392
- const se = C(
393
- (t) => Ee(a, i, t),
394
- [a, i]
395
- ), z = C(
396
- (t, d) => {
397
- b(!1), a.update(() => {
398
- const s = N(i);
399
- A(s) && (s.setSrc(t), s.setId(d));
400
- });
401
- },
402
- [a, i]
403
- ), U = C(
404
- (t) => {
405
- b(!0);
406
- const d = j();
407
- T && T(
408
- t[0],
409
- (s, c) => {
410
- z(s, c), _(0);
411
- },
412
- (s) => {
413
- s && Re({
414
- message: M("editor.gallery.errorFile")
415
- }), _(0), z("", "");
416
- },
417
- d,
418
- (s) => {
419
- _(s);
420
- }
421
- );
422
- },
423
- [T, j, M, z]
424
- );
425
- return D(() => a.registerCommand(
426
- Me,
427
- (t) => e !== "upload" || t.targetNodeKey !== i ? !1 : (U(t.files), !0),
428
- he
429
- ), [a, U, i, e]), !e || e === "upload" ? /* @__PURE__ */ o(ue, { "data-editor-image-picker-drop-root": !0, w: "100%", children: /* @__PURE__ */ o(
430
- Pe,
431
- {
432
- inline: !0,
433
- nodeKey: i,
434
- defaultTabValue: v,
435
- onWriteTabToNode: se,
436
- uploading: !1,
437
- onUpload: (t) => {
438
- !T || !t.length || U(t);
439
- },
440
- popoverProps: {
441
- opened: !0,
442
- position: "bottom",
443
- zIndex: ke
444
- },
445
- onChange: (t) => {
446
- a.update(() => {
447
- const d = N(i);
448
- A(d) && d.setSrc(t);
449
- });
450
- }
451
- }
452
- ) }) : y ? /* @__PURE__ */ o(
453
- J,
454
- {
455
- width: f.width,
456
- height: f.height,
457
- isLoading: O,
458
- isError: !1,
459
- isIcon: y,
460
- src: e,
461
- id: h,
462
- editor: a,
463
- nodeKey: i,
464
- fetchDeleteMedia: B,
465
- altText: n,
466
- imageRef: I,
467
- maxWidth: u,
468
- showCaption: g,
469
- caption: l,
470
- isCollabActive: !1,
471
- historyState: G,
472
- showNestedEditorTreeView: V,
473
- t: M
474
- }
475
- ) : /* @__PURE__ */ o(
476
- We,
477
- {
478
- editor: a,
479
- isIcon: y,
480
- width: Y(r),
481
- height: Y(m),
482
- initialWidth: f.width || "",
483
- initialHeight: f.height || "",
484
- onResizeEnd: ne,
485
- alignment: x,
486
- disable: oe,
487
- onRegisterDecoratorEnter: (t) => {
488
- S != null && S.current && (S.current.decoratorEnterAction = t);
489
- },
490
- onActivate: () => a.dispatchCommand(_e, "show_menu"),
491
- children: /* @__PURE__ */ o(
492
- J,
493
- {
494
- width: "inherit",
495
- height: "inherit",
496
- isLoading: O,
497
- isError: !1,
498
- isIcon: y,
499
- src: e,
500
- id: h,
501
- editor: a,
502
- nodeKey: i,
503
- fetchDeleteMedia: B,
504
- altText: n,
505
- imageRef: I,
506
- maxWidth: u,
507
- showCaption: g,
508
- caption: l,
509
- isCollabActive: !1,
510
- historyState: G,
511
- showNestedEditorTreeView: V,
512
- t: M
513
- }
514
- )
515
- }
516
- );
517
- }
518
- export {
519
- ct as default
520
- };
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),i=require("react"),q=require("react-i18next"),z=require("@lexical/react/LexicalComposerContext"),N=require("@mantine/core"),w=require("lexical"),e=require("./layers.__VjF_qK.js"),G=require("@layers-app/shared");require("@lexical/react/LexicalDecoratorBlockNode");require("@lexical/utils");const R=require("@mantine/hooks");require("@lexical/mark");require("@lexical/code");require("@lexical/selection");require("@lexical/react/LexicalBlockWithAlignableContents");require("@mantine/notifications");const K=()=>{};function ee({nodeKey:t,src:r,id:a}){const{t:l}=q.useTranslation(),[m]=z.useLexicalComposerContext(),[h,f]=i.useState(!1),[c,p]=i.useState(!1),x=i.useCallback(()=>{p(!1),m.update(()=>{const v=w.$getNodeByKey(t);if(!e.$isImageNode(v))return;const C=v.getParent();e.$isImageOverlayWrapperNode(C)?C.remove():v.remove()})},[m,t]),j=i.useCallback(async()=>{if(r)try{await e.downloadImageFromExternalUrl(r,e.inferImageFilenameFromUrl(r))}catch{}},[r]);return n.jsxs("div",{className:"media-actions visible",style:{position:"absolute",top:10,right:10,zIndex:10,pointerEvents:"auto",display:"flex",gap:4},onClick:v=>v.stopPropagation(),children:[n.jsx(e.PreviewImage,{t:l,src:r,setShown:K,id:a}),n.jsx(e.NodeAlignmentMenu,{opened:h,setOpened:f,t:l,editor:m,nodeKey:t}),n.jsx(e.MediaActionMenu,{opened:c,onOpenChange:p,t:l,onDownload:()=>void j(),onDelete:x})]})}function te({nodeKey:t,src:r,id:a}){const{t:l}=q.useTranslation(),[m]=z.useLexicalComposerContext(),[h,{open:f,close:c}]=R.useDisclosure(!1),[p,{open:x,close:j}]=R.useDisclosure(!1),v=i.useMemo(()=>[{id:!a||a==="0"?"":a,Url:r??"",contentType:"",originalFileName:"",fileSize:0,storageType:"",storagePath:"",fileName:"",parentType:"",parentId:"",ownerId:"",createdAt:new Date,updatedAt:new Date,version:0,deleted:!1,deletedAt:new Date}],[r,a]),C=()=>{c(),x()},S=i.useCallback(async()=>{if(c(),!!r)try{await e.downloadImageFromExternalUrl(r,e.inferImageFilenameFromUrl(r))}catch{}},[r,c]),b=i.useCallback(()=>{c(),m.update(()=>{const s=w.$getNodeByKey(t);e.$isImageNode(s)&&s.remove()})},[m,t,c]);return n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"image-touch-actions",style:{position:"absolute",top:8,right:8,zIndex:10,pointerEvents:"auto"},onClick:s=>s.stopPropagation(),children:n.jsx(e.ActionIcon,{label:l("editor.toolbar.more"),icon:e.O1,iconColor:"var(--mantine-color-gray-text)","aria-label":l("editor.toolbar.more"),onClick:f})}),n.jsx(G.AttachmentsGalleryModal,{opened:p,onOpenChange:s=>s?x():j(),attachments:v}),n.jsx(e.MobileDrawer,{opened:h,onClose:c,title:l("editor.image.mobileActions"),children:n.jsxs(N.Stack,{gap:4,p:0,children:[n.jsx(N.Button,{type:"button",variant:"subtle",color:"gray",fullWidth:!0,justify:"flex-start",bg:"light-dark(var(--mantine-color-gray-0), var(--mantine-color-gray-outline-hover))",onClick:C,leftSection:n.jsx(e.HugeiconsIcon,{icon:e.gn,size:16,color:"var(--mantine-color-dimmed)"}),children:l("editor.image.previewFullScreen")}),n.jsx(N.Button,{type:"button",variant:"subtle",color:"gray",fullWidth:!0,justify:"flex-start",bg:"light-dark(var(--mantine-color-gray-0), var(--mantine-color-gray-outline-hover))",onClick:()=>void S(),leftSection:n.jsx(e.HugeiconsIcon,{icon:e.Tm,size:16,color:"var(--mantine-color-dimmed)"}),children:l("editor.gallery.download")}),n.jsx(N.Button,{type:"button",variant:"subtle",color:"red",fullWidth:!0,justify:"flex-start",bg:"light-dark(var(--mantine-color-gray-0), var(--mantine-color-gray-outline-hover))",onClick:b,leftSection:n.jsx(e.HugeiconsIcon,{icon:e.lg,size:16,color:"var(--mantine-color-red-6)"}),children:l("editor.actions.delete")})]})})]})}const H=t=>{const{width:r,height:a,isLoading:l,isError:m,src:h,id:f,altText:c,imageRef:p,maxWidth:x}=t;return n.jsxs("div",{className:"media-wrapper",style:{width:r,height:a,display:"inline-flex",position:"relative"},children:[n.jsx(N.LoadingOverlay,{visible:l,zIndex:1e3,overlayProps:{backgroundOpacity:.5},loaderProps:{size:24,color:"black"}}),n.jsx(oe,{className:null,src:h,altText:c,imageRef:p,width:"inherit",height:"inherit",maxWidth:x||"auto",id:f}),e.IS_TOUCH_DEVICE&&n.jsx(te,{nodeKey:t.nodeKey,src:h,id:f}),e.IS_TOUCH_TABLET&&n.jsx(ee,{nodeKey:t.nodeKey,src:h,id:f})]})};function oe({altText:t,className:r,imageRef:a,src:l,width:m,height:h,maxWidth:f,id:c}){const[p,x]=i.useState(!1);return n.jsx("img",{className:`${r||void 0} ${p?"":"loading"}`,src:l,alt:t,ref:a,style:{height:h,maxWidth:f,width:m},onLoad:()=>{l.includes("splash")?setTimeout(()=>{x(!0)},100):x(!0)},draggable:"false","data-id":c})}function ne(t){const{disable:r}=i.useContext(e.Context);return r&&e.ImageNode.isPlaceholderSrc(t.src)?null:n.jsx(ie,{...t})}function ie({src:t,altText:r,nodeKey:a,width:l,height:m,maxWidth:h,showCaption:f,caption:c,id:p,create:x,alignment:j,imagePickerTab:v}){var F,B;const C=i.useRef(null),[S,b]=i.useState(!0),[s]=z.useLexicalComposerContext(),[y,k]=i.useState(!0),[I,O]=i.useState({width:0,height:0}),{start:W}=e.useCancelUpload(),[ae,M]=i.useState(0),{fetchUploadMedia:A,fetchDeleteMedia:_,maxFileSize:re,imperativeHandleRef:D,disable:V}=i.useContext(e.Context),E=e.mediaMap.has(t)&&(((F=e.mediaMap.get(t))==null?void 0:F.mediaNodeKeys.length)===0||((B=e.mediaMap.get(t))==null?void 0:B.mediaNodeKeys.length)===void 0||t.trim()===""),{t:T}=q.useTranslation(),[se,X]=i.useState(0);i.useEffect(()=>s.registerDecoratorListener(()=>{X(o=>o+1)}),[E]),i.useEffect(()=>{if(!t||t.startsWith("data:image/")||!t.trim()){b(!1);return}const o=new Image;o.src=t,o.onload=()=>b(!1),o.onerror=()=>{b(!1)}},[t,E]);const Y=(o,u)=>{s.update(()=>{w.$setSelection(null);const d=w.$getNodeByKey(a);e.$isImageNode(d)&&d.setWidthAndHeight(o,u)})},{historyState:L}=e.useSharedHistoryContext(),{settings:{showNestedEditorTreeView:U}}=e.useSettings();function Z(o){return o.endsWith(".svg")||o.includes("image/svg+xml")}function J(o){return new Promise((u,d)=>{if(Z(o)){u(0);return}const g=new Image;g.src=o,g.onload=()=>{u(g.width)},g.onerror=()=>{d(new Error("Failed to load image"))}})}i.useEffect(()=>{let o=l,u=m,d=100;(t.includes("unsplash")?t.trim():!E&&t.trim()||t.includes("upload-src-editor"))&&t!=="upload"&&J(t).then(g=>{typeof o=="number"&&o<d&&g<d?(k(!0),O({width:o,height:u})):g<d?(k(!0),O({width:"auto",height:"auto"})):(O({width:g,height:g}),k(!1))}).catch(g=>{console.warn("Ошибка при загрузке изображения:",g.message)})},[t,E]),i.useEffect(()=>{I.width&&I.height&&y&&s.update(()=>{const o=w.$getNodeByKey(a);e.$isImageNode(o)&&o.setWidthAndHeight(I.width,I.height)})},[I.width,I.height,y]);const Q=i.useCallback(o=>e.$writeImagePickerTabToNode(s,a,o),[s,a]),P=i.useCallback((o,u)=>{b(!1),s.update(()=>{const d=w.$getNodeByKey(a);e.$isImageNode(d)&&(d.setSrc(o),d.setId(u))})},[s,a]),$=i.useCallback(o=>{b(!0);const u=W();A&&A(o[0],(d,g)=>{P(d,g),M(0)},d=>{d&&G.showErrorNotification({message:T("editor.gallery.errorFile")}),M(0),P("","")},u,d=>{M(d)})},[A,W,T,P]);return i.useEffect(()=>s.registerCommand(e.UPLOAD_IMAGE_COMMAND,o=>t!=="upload"||o.targetNodeKey!==a?!1:($(o.files),!0),w.COMMAND_PRIORITY_LOW),[s,$,a,t]),!t||t==="upload"?n.jsx(N.Box,{"data-editor-image-picker-drop-root":!0,w:"100%",children:n.jsx(e.ImagePicker,{inline:!0,nodeKey:a,defaultTabValue:v,onWriteTabToNode:Q,uploading:!1,onUpload:o=>{!A||!o.length||$(o)},popoverProps:{opened:!0,position:"bottom",zIndex:e.EDITOR_UI_MIN_Z_INDEX},onChange:o=>{s.update(()=>{const u=w.$getNodeByKey(a);e.$isImageNode(u)&&u.setSrc(o)})}})}):y?n.jsx(H,{width:I.width,height:I.height,isLoading:S,isError:!1,isIcon:y,src:t,id:p,editor:s,nodeKey:a,fetchDeleteMedia:_,altText:r,imageRef:C,maxWidth:h,showCaption:f,caption:c,isCollabActive:!1,historyState:L,showNestedEditorTreeView:U,t:T}):n.jsx(e.ResizableContainer,{editor:s,isIcon:y,width:e.parseContainerSize(l),height:e.parseContainerSize(m),initialWidth:I.width||"",initialHeight:I.height||"",onResizeEnd:Y,alignment:j,disable:V,onRegisterDecoratorEnter:o=>{D!=null&&D.current&&(D.current.decoratorEnterAction=o)},onActivate:()=>s.dispatchCommand(e.ON_CHANGE_COMMAND,"show_menu"),children:n.jsx(H,{width:"inherit",height:"inherit",isLoading:S,isError:!1,isIcon:y,src:t,id:p,editor:s,nodeKey:a,fetchDeleteMedia:_,altText:r,imageRef:C,maxWidth:h,showCaption:f,caption:c,isCollabActive:!1,historyState:L,showNestedEditorTreeView:U,t:T})})}exports.default=ne;