@layers-app/editor 0.6.33 → 0.6.35

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 (214) hide show
  1. package/dist/index.cjs +2 -2
  2. package/dist/index.js +2 -2
  3. package/dist/{layers.DG2X-Z4k.js → layers.2KZRRux9.js} +1 -1
  4. package/dist/{layers.Cc4XJbqI.js → layers.2sNbhd7A.js} +3 -3
  5. package/dist/{layers.Dzb-EOtw.js → layers.3KaLYGmA.js} +1 -1
  6. package/dist/{layers.CmxTSSQl.js → layers.42sjrGCK.js} +1 -1
  7. package/dist/{layers.BXK2nZEt.js → layers.4q9g6bVk.js} +1 -1
  8. package/dist/{layers.BcsXO3Sr.js → layers.6CnRl5q7.js} +1 -1
  9. package/dist/{layers.B4oYqgAf.js → layers.7ElOpXJU.js} +1 -1
  10. package/dist/{layers.BcGrXjXr.js → layers.AsfPBG-V.js} +1 -1
  11. package/dist/{layers.djiwWQ80.js → layers.B-Z6N5cY.js} +1 -1
  12. package/dist/{layers.CNLeGn5d.js → layers.B0gNCokh.js} +1 -1
  13. package/dist/{layers.cayhAYTJ.js → layers.B0piecBb.js} +3 -3
  14. package/dist/{layers.DdpORWyP.js → layers.B1qfGMJh.js} +1 -1
  15. package/dist/{layers.KSEOcrYB.js → layers.B3f9e8Cl.js} +4 -4
  16. package/dist/{layers.BCP4_vRT.js → layers.B4XM_gqg.js} +2 -2
  17. package/dist/{layers.BwfZYaQG.js → layers.B5DVCb8r.js} +1 -1
  18. package/dist/{layers.B7JhZd2I.js → layers.B68SuDv6.js} +3 -3
  19. package/dist/{layers.Dn9n7yft.js → layers.B7Bf4gz6.js} +1 -1
  20. package/dist/{layers.Ba4cBzth.js → layers.B7tleaK6.js} +1 -1
  21. package/dist/{layers.DIrmCLbi.js → layers.B9tgukGD.js} +1 -1
  22. package/dist/{layers.BpdwZYYS.js → layers.BAC4rBS9.js} +5 -5
  23. package/dist/{layers.BCLlmh44.js → layers.BADU0Xxu.js} +1 -1
  24. package/dist/{layers.BOJFrhpQ.js → layers.BC744gND.js} +1 -1
  25. package/dist/{layers.CCmQUowN.js → layers.BDQARZhC.js} +1 -1
  26. package/dist/{layers.C2mgS7SZ.js → layers.BDmfNxfI.js} +1 -1
  27. package/dist/{layers.BnN8sC9p.js → layers.BEEvSx76.js} +1 -1
  28. package/dist/{layers.BQgVJvnP.js → layers.BF-J0JtI.js} +1 -1
  29. package/dist/{layers.BwPJVaqI.js → layers.BFKeEc_I.js} +1 -1
  30. package/dist/{layers.BN2eV0pj.js → layers.BGpgWOwd.js} +24 -24
  31. package/dist/{layers.BIIrg5nm.js → layers.BHHTLT3P.js} +4 -4
  32. package/dist/{layers.DH_x4CbV.js → layers.BH_DAW3F.js} +1 -1
  33. package/dist/{layers.BHK0inbk.js → layers.BI2QQ5gJ.js} +1 -1
  34. package/dist/{layers.UVN-s9YX.js → layers.BItfRW2q.js} +1 -1
  35. package/dist/{layers.Dlr8-rDf.js → layers.BJ7le_oN.js} +1 -1
  36. package/dist/{layers.BcPl5Qe6.js → layers.BK1ZTdfg.js} +1 -1
  37. package/dist/{layers.CYoE8Sqx.js → layers.BKJ8kHGd.js} +1 -1
  38. package/dist/{layers.Dd_AzgbG.js → layers.BMNoqNjd.js} +1 -1
  39. package/dist/layers.BQ-LtROA.js +8 -0
  40. package/dist/{layers.B1YwcMwQ.js → layers.BQvYX2hZ.js} +1 -1
  41. package/dist/{layers.CQ7YncAt.js → layers.BST6ajUV.js} +1 -1
  42. package/dist/{layers.CynXvxqw.js → layers.BSfXaQ5X.js} +1 -1
  43. package/dist/{layers.DWHz4Ywk.js → layers.BTBuzi5u.js} +1 -1
  44. package/dist/{layers.vgm37Yxs.js → layers.BTitkKSx.js} +1 -1
  45. package/dist/{layers.BFepClqF.js → layers.BUqmwsjZ.js} +1 -1
  46. package/dist/{layers.DVpLK2GK.js → layers.BVgHX3Sm.js} +2 -2
  47. package/dist/{layers.BQ21wtj3.js → layers.B_pPyZfE.js} +1 -1
  48. package/dist/{layers.DA25rpCR.js → layers.BbNeHlEk.js} +1 -1
  49. package/dist/{layers.rlSCwVt5.js → layers.BbqYJa8s.js} +1 -1
  50. package/dist/{layers.CS_4Lm_8.js → layers.BcEMPSez.js} +1 -1
  51. package/dist/layers.BdG6tLM5.js +6 -0
  52. package/dist/{layers.CBE7hx3O.js → layers.BedYltTK.js} +1 -1
  53. package/dist/{layers.CkDc4TV0.js → layers.Bh-509-q.js} +1 -1
  54. package/dist/{layers.D8Y81ouw.js → layers.BhMJLnqH.js} +3 -3
  55. package/dist/{layers.6n_7cTD8.js → layers.BhSKEVYi.js} +3 -3
  56. package/dist/{layers.CvDLOwYA.js → layers.BhuXV1mX.js} +1 -1
  57. package/dist/{layers.Cp98ko1W.js → layers.Biiw8P_I.js} +1 -1
  58. package/dist/{layers.qYZ1IdRD.js → layers.BikkMS96.js} +1 -1
  59. package/dist/{layers.4-TG63Eu.js → layers.Bj6GUL-7.js} +2 -2
  60. package/dist/{layers.DR5Lxt14.js → layers.BjvRnkGk.js} +1 -1
  61. package/dist/{layers.Bu-i1mDR.js → layers.BkUs0x7o.js} +1 -1
  62. package/dist/{layers.QD1Nh-y1.js → layers.BlU1Qdru.js} +1 -1
  63. package/dist/{layers.aefW0Tiy.js → layers.Bo9plYgb.js} +1 -1
  64. package/dist/{layers.Dz8dWqPu.js → layers.BpewD2W0.js} +4 -4
  65. package/dist/{layers.DtoL7prz.js → layers.BrwM0uLG.js} +2 -2
  66. package/dist/{layers.Iiyq1yB0.js → layers.BtPc9MR4.js} +1 -1
  67. package/dist/{layers.Dqr_gQPt.js → layers.BwcoykSI.js} +1 -1
  68. package/dist/{layers.BTkicRgj.js → layers.C-GKeGIO.js} +1 -1
  69. package/dist/{layers.B4O_TH5w.js → layers.C-VShe_t.js} +1 -1
  70. package/dist/{layers.OZEBWnc8.js → layers.C0Gp7snS.js} +1 -1
  71. package/dist/{layers.BpXMXtlG.js → layers.C1mVKx1k.js} +1 -1
  72. package/dist/{layers.BS_blUby.js → layers.C2hkxe_6.js} +2 -2
  73. package/dist/{layers.CLW8fE7_.js → layers.C5cMrh2U.js} +1 -1
  74. package/dist/{layers.Cmgba3d9.js → layers.C7R_BIbC.js} +1 -1
  75. package/dist/{layers.3wTXIDgx.js → layers.C7XXIyEj.js} +1 -1
  76. package/dist/{layers.CiNLW04Z.js → layers.C7XaI-n2.js} +1 -1
  77. package/dist/{layers.CCxagWjd.js → layers.C85_BJmO.js} +1 -1
  78. package/dist/{layers.DwvXALEt.js → layers.CCah99cq.js} +3 -3
  79. package/dist/{layers.Bkk1tfiU.js → layers.CEbe91Xk.js} +1 -1
  80. package/dist/{layers.CievM0cr.js → layers.CFxelW7L.js} +1 -1
  81. package/dist/{layers.CJ7FEMI3.js → layers.CGEpxC_O.js} +1 -1
  82. package/dist/{layers.DiuEyRec.js → layers.CGWJPPAo.js} +1 -1
  83. package/dist/{layers.BdkW6PaO.js → layers.CIt1AVQY.js} +1 -1
  84. package/dist/{layers.DigdFwOh.js → layers.CJm11IPu.js} +1 -1
  85. package/dist/{layers.BnzsFeYu.js → layers.CLnO3ojR.js} +1 -1
  86. package/dist/{layers.C_7LmM9Q.js → layers.COFXcY34.js} +1 -1
  87. package/dist/{layers.K-z8akar.js → layers.COatEuqR.js} +1 -1
  88. package/dist/layers.CQAVwlxQ.js +1 -0
  89. package/dist/{layers.Di6qp7AQ.js → layers.CQNXYK8w.js} +1 -1
  90. package/dist/{layers.Dx-MlKCZ.js → layers.CQhxTdtB.js} +3 -3
  91. package/dist/layers.CRltwwNq.js +1 -0
  92. package/dist/{layers.oyhYnO1A.js → layers.CUb72dKx.js} +1 -1
  93. package/dist/{layers.BGs9ma-D.js → layers.CVZxcidC.js} +1 -1
  94. package/dist/{layers.Bw6yMU1z.js → layers.CWFMdnwF.js} +1 -1
  95. package/dist/{layers.DIQzOOfE.js → layers.CWNPCuVz.js} +1 -1
  96. package/dist/{layers.CRulJp_Z.js → layers.CXFgrlZY.js} +1 -1
  97. package/dist/{layers.CSkamFaf.js → layers.CYq2iU6u.js} +1 -1
  98. package/dist/{layers.sOCiIgsF.js → layers.C_Dv7Y87.js} +1 -1
  99. package/dist/{layers.Bd9OJ-NO.js → layers.C_bWYa6o.js} +1 -1
  100. package/dist/{layers.j_0GpkkO.js → layers.CgP7TrPB.js} +1 -1
  101. package/dist/{layers.DNWNcZ1X.js → layers.CjOqbuja.js} +1 -1
  102. package/dist/{layers.BDGvtZKn.js → layers.CkoVtXCT.js} +1 -1
  103. package/dist/{layers.BNb216TW.js → layers.Cl0lRCEk.js} +1 -1
  104. package/dist/{layers.B8_EX8YU.js → layers.CltfOdjQ.js} +1 -1
  105. package/dist/{layers.BH_90fNg.js → layers.ClxReYFj.js} +1 -1
  106. package/dist/{layers.Brhx73kF.js → layers.Cm8pvho1.js} +1 -1
  107. package/dist/{layers.BIvYb-Ax.js → layers.CoCNDinX.js} +1 -1
  108. package/dist/{layers.C8--XqCC.js → layers.CpWQw_cT.js} +1 -1
  109. package/dist/{layers.CI2a2SwC.js → layers.Cpb3qNnH.js} +1 -1
  110. package/dist/{layers.DOuRclSM.js → layers.CsW0NOVs.js} +3 -3
  111. package/dist/{layers.hsXlOLuf.js → layers.CsezB-Ga.js} +1 -1
  112. package/dist/layers.CuSuFJYn.js +1 -0
  113. package/dist/{layers.B0XeCAl7.js → layers.CwJwFqqA.js} +1 -1
  114. package/dist/{layers.CGycYiau.js → layers.CwmfQaUz.js} +1 -1
  115. package/dist/{layers.BFhF0wsH.js → layers.CxErEFLg.js} +1 -1
  116. package/dist/{layers.CJB16bI5.js → layers.CyshuBjx.js} +4 -4
  117. package/dist/{layers.DCrgFcQg.js → layers.D-EKspyN.js} +1 -1
  118. package/dist/{layers.UVyNJtYL.js → layers.D1PWuKt3.js} +1 -1
  119. package/dist/{layers.CdxpwE8d.js → layers.D2P5SlLW.js} +1 -1
  120. package/dist/{layers.TMLtCyIN.js → layers.D30ITYjO.js} +3 -3
  121. package/dist/{layers.BsWuD6nM.js → layers.D3JQJsPw.js} +1 -1
  122. package/dist/{layers.DTOZQPXl.js → layers.D3Nwedwh.js} +1 -1
  123. package/dist/{layers.Cy7UpO3F.js → layers.D54UpOtU.js} +1 -1
  124. package/dist/{layers.mqmMPkAz.js → layers.D6wzZucU.js} +1 -1
  125. package/dist/{layers.CvvMi5b5.js → layers.D7SRG-jk.js} +4 -4
  126. package/dist/{layers.CU1cLziB.js → layers.D85qKXPn.js} +1 -1
  127. package/dist/{layers.Biq75rq_.js → layers.D9mOrzWK.js} +1 -1
  128. package/dist/{layers.-A3H4n3Z.js → layers.DAPNDRXA.js} +1 -1
  129. package/dist/{layers.7KlzJI5E.js → layers.DCxHr4rl.js} +1 -1
  130. package/dist/{layers.CTcJ1As9.js → layers.DDxTlU1l.js} +1 -1
  131. package/dist/{layers.S0Dp-oua.js → layers.DEqv46Dy.js} +1 -1
  132. package/dist/{layers.mtl8yanO.js → layers.DFVOihRV.js} +1 -1
  133. package/dist/{layers.DioGC8S_.js → layers.DFhrHA4q.js} +1 -1
  134. package/dist/{layers.0J_EvAvu.js → layers.DJGUFRvI.js} +3 -3
  135. package/dist/{layers.2zusVY61.js → layers.DJrtUgyR.js} +4 -4
  136. package/dist/{layers.DgePI-E0.js → layers.DKrhN4SF.js} +1 -1
  137. package/dist/{layers.CnvinyIb.js → layers.DN3e3Jp1.js} +4 -4
  138. package/dist/{layers.CALbgpsC.js → layers.DOKG6gAq.js} +1 -1
  139. package/dist/{layers.BYle1nJV.js → layers.DPDh5DWp.js} +1 -1
  140. package/dist/{layers.CYJIDVUW.js → layers.DPMDHM_Q.js} +6 -6
  141. package/dist/{layers.BbzKTuUT.js → layers.DS7VbqhC.js} +1 -1
  142. package/dist/{layers.bRWARNlL.js → layers.DTS8nuVB.js} +1 -1
  143. package/dist/{layers.DmJQAy0n.js → layers.DUuqYppr.js} +1 -1
  144. package/dist/{layers.BmElHL7V.js → layers.DWJOrC_3.js} +1 -1
  145. package/dist/{layers.DzraR3QP.js → layers.DX3SjEVj.js} +1 -1
  146. package/dist/{layers.BAsGPDdZ.js → layers.DZ33UM9S.js} +1 -1
  147. package/dist/{layers.BfPh2lEL.js → layers.DZZIWQPr.js} +1 -1
  148. package/dist/{layers.-IJdtwla.js → layers.DZm2gFa-.js} +4 -4
  149. package/dist/{layers.CbLQLdLU.js → layers.DbVR6lTZ.js} +7 -7
  150. package/dist/{layers.z5KI2M2X.js → layers.Dgx-AZp7.js} +1 -1
  151. package/dist/{layers.DKxD54vo.js → layers.DhEu7yw5.js} +1 -1
  152. package/dist/{layers.CdUrxJpY.js → layers.DhFprIDA.js} +1 -1
  153. package/dist/{layers.CefNq1cN.js → layers.DhUoInR4.js} +1 -1
  154. package/dist/{layers.D8J7ghc-.js → layers.Dhvl9LqW.js} +2 -2
  155. package/dist/{layers.8OOOu-cO.js → layers.Djs-sdPK.js} +1 -1
  156. package/dist/{layers.BLne2MxI.js → layers.DkqHsZDh.js} +1 -1
  157. package/dist/{layers.CBmuKAnw.js → layers.DlhLOaLH.js} +1 -1
  158. package/dist/layers.DozbsbIa.js +295 -0
  159. package/dist/{layers.CYwB7XEH.js → layers.DpRV4nCx.js} +1 -1
  160. package/dist/{layers.BF_pKnOI.js → layers.DrHcpRQw.js} +1 -1
  161. package/dist/{layers.BuX16eSl.js → layers.DvT-hx5h.js} +1 -1
  162. package/dist/{layers.CoQzxE76.js → layers.Dw4KfpA9.js} +1 -1
  163. package/dist/{layers.BzwLtGU1.js → layers.Dy6wegMx.js} +1 -1
  164. package/dist/{layers.DTY0XAWV.js → layers.DzU_brhD.js} +1 -1
  165. package/dist/{layers.DrqnbUBR.js → layers.FhoJ6MS-.js} +1 -1
  166. package/dist/{layers.Dnb17VTO.js → layers.Fkli95s_.js} +18239 -20293
  167. package/dist/{layers.C8R_3WcF.js → layers.HuGypa5Q.js} +1 -1
  168. package/dist/{layers.DkiCCpdz.js → layers.IHmuqOn6.js} +1 -1
  169. package/dist/{layers.B4qK-rHW.js → layers.IQ65oEXZ.js} +1 -1
  170. package/dist/{layers.V1Nkg-z3.js → layers.Ixaw4waj.js} +1 -1
  171. package/dist/{layers.B63BAlc5.js → layers.LkGeSqfj.js} +1 -1
  172. package/dist/{layers.BvW4TOmy.js → layers.PbbQLRbm.js} +4 -4
  173. package/dist/{layers.pQwIgwrY.js → layers.RACbWpJx.js} +1 -1
  174. package/dist/{layers.CzkBkiAU.js → layers.S2HGIrKV.js} +1 -1
  175. package/dist/layers.SqMtzngi.js +198 -0
  176. package/dist/{layers.DnZiJUfv.js → layers.T8W3D-JR.js} +1 -1
  177. package/dist/{layers.7hDcTk3F.js → layers.Vi8hk5MT.js} +1 -1
  178. package/dist/{layers.Bl_3cCIj.js → layers.WZNnIJOn.js} +1 -1
  179. package/dist/{layers.Cjaun7bD.js → layers.YGbodHIi.js} +1 -1
  180. package/dist/{layers.mJ6yfQrT.js → layers.YPA5QzDf.js} +1 -1
  181. package/dist/{layers.Bsa81NcK.js → layers.YlubsSef.js} +1 -1
  182. package/dist/{layers.DAoa09FI.js → layers.ZNwdNweI.js} +1 -1
  183. package/dist/{layers.CKBXoJiS.js → layers.dG5m8lga.js} +5 -5
  184. package/dist/{layers.B_frRz6M.js → layers.fj2e9OtX.js} +1 -1
  185. package/dist/{layers.CeQhBew_.js → layers.h085bWu1.js} +1 -1
  186. package/dist/{layers.BzT4Ix0I.js → layers.inZZtro-.js} +8 -8
  187. package/dist/{layers.BnwSlizE.js → layers.iwNZoGcE.js} +1 -1
  188. package/dist/{layers.BRD3XDMw.js → layers.jzyCrESQ.js} +3 -3
  189. package/dist/{layers.BXH27A7R.js → layers.lgC7Y64P.js} +1 -1
  190. package/dist/{layers.B0wNUEH7.js → layers.lnIW0XO1.js} +1 -1
  191. package/dist/{layers.Cjcr5-_t.js → layers.mWsHwyHu.js} +1 -1
  192. package/dist/{layers.Cp-QGCku.js → layers.msORhxhk.js} +1 -1
  193. package/dist/{layers.BRKOQLcx.js → layers.njGAPMtE.js} +1 -1
  194. package/dist/{layers.BNTzZxLC.js → layers.o3q4wSVN.js} +1 -1
  195. package/dist/{layers.D1j-eMP5.js → layers.o4bfcZvo.js} +1 -1
  196. package/dist/{layers.BFjCDLal.js → layers.q88me5jb.js} +2 -2
  197. package/dist/{layers.BuDlYZhv.js → layers.qBjIdLdL.js} +1 -1
  198. package/dist/{layers.Dv3Hvadf.js → layers.qdVd2xjK.js} +1 -1
  199. package/dist/{layers.B7p6qrU6.js → layers.t5aWnyt0.js} +1 -1
  200. package/dist/{layers.CwEoPjI6.js → layers.ubfLUyci.js} +1 -1
  201. package/dist/{layers.B4dJPcA7.js → layers.uxwhEe3r.js} +1 -1
  202. package/dist/{layers.CfdZzkDa.js → layers.vLXFRs6N.js} +1 -1
  203. package/dist/{layers.CY3QjWT_.js → layers.voXcySEd.js} +1 -1
  204. package/dist/{layers.DZ2bePz2.js → layers.wLC0_Yzh.js} +1 -1
  205. package/dist/{layers.Di3GQpXm.js → layers.wmTggXRz.js} +1 -1
  206. package/dist/{layers.CyuR2zZw.js → layers.yh2VFDzd.js} +1 -1
  207. package/package.json +23 -23
  208. package/dist/layers.B5f3BP0I.js +0 -6
  209. package/dist/layers.BaiLFRcG.js +0 -8
  210. package/dist/layers.CgVXskjn.js +0 -1
  211. package/dist/layers.D-dThlS_.js +0 -1
  212. package/dist/layers.DIim7Ros.js +0 -229
  213. package/dist/layers.DVLqHkLH.js +0 -1
  214. package/dist/layers.D_KOEtcB.js +0 -198
@@ -1,4 +1,4 @@
1
- import "./layers.BzT4Ix0I.js";
1
+ import "./layers.inZZtro-.js";
2
2
  var e = { paste: "貼上", pasteAsPlaintext: "", pasteCharts: "貼上圖表", selectAll: "全選", multiSelect: "多重選取", moveCanvas: "移動畫布", cut: "剪下", copy: "複製", copyAsPng: "以 PNG 格式複製", copyAsSvg: "以 SVG 格式複製", copyText: "", copySource: "", convertToCode: "", bringForward: "往上一層移動", sendToBack: "移到最底層", bringToFront: "移到最上層", sendBackward: "往下一層移動", delete: "刪除", copyStyles: "複製樣式", pasteStyles: "套用樣式", stroke: "筆跡顏色", background: "填充顏色", fill: "背景樣式", strokeWidth: "筆跡寬度", strokeStyle: "筆跡線條", strokeStyle_solid: "實線", strokeStyle_dashed: "虛線(較密)", strokeStyle_dotted: "虛線(較疏)", sloppiness: "筆跡風格", opacity: "透明度", textAlign: "文字對齊", edges: "邊角樣式", sharp: "銳角", round: "圓角", arrowheads: "箭嘴", arrowhead_none: "無箭嘴", arrowhead_arrow: "普通箭嘴", arrowhead_bar: "平頭條狀", arrowhead_circle: "", arrowhead_circle_outline: "", arrowhead_triangle: "三角箭嘴", arrowhead_triangle_outline: "", arrowhead_diamond: "", arrowhead_diamond_outline: "", fontSize: "字型大小", fontFamily: "字體", addWatermark: "加入「使用 Excalidraw 製圖」水印", handDrawn: "手繪體", normal: "電腦字體", code: "等寬體", small: "細", medium: "中", large: "大", veryLarge: "勁大", solid: "實心", hachure: "斜線", zigzag: "", crossHatch: "交叉格仔", thin: "幼", bold: "粗", left: "靠左對齊", center: "置中對齊", right: "靠右對齊", extraBold: "勁粗", architect: "手繪風格", artist: "藝術家風格", cartoonist: "卡通風格", fileTitle: "檔案名稱", colorPicker: "", canvasColors: "", canvasBackground: "畫布背景顏色", drawingCanvas: "畫布", layers: "圖層", actions: "動作", language: "🌏 語言", liveCollaboration: "", duplicateSelection: "製作副本", untitled: "未命名的作品", name: "", yourName: "你的名稱", madeWithExcalidraw: "使用 Excalidraw 製圖", group: "建立物件群組", ungroup: "取消物件群組", collaborators: "已連線的協作者", showGrid: "顯示網格", addToLibrary: "加入作品庫", removeFromLibrary: "從作品庫中移除", libraryLoadingMessage: "正在載入作品庫…", libraries: "瀏覽作品庫", loadingScene: "載入畫布中…", align: "物件對齊", alignTop: "水平置頂", alignBottom: "水平置底", alignLeft: "垂直靠左對齊", alignRight: "垂直靠右對齊", centerVertically: "垂直置中", centerHorizontally: "水平置中", distributeHorizontally: "左右等距", distributeVertically: "上下等距", flipHorizontal: "左右反轉", flipVertical: "上下反轉", viewMode: "唯讀模式", share: "", showStroke: "", showBackground: "", toggleTheme: "", personalLib: "", excalidrawLib: "", decreaseFontSize: "", increaseFontSize: "", unbindText: "", bindText: "", createContainerFromText: "", link: { edit: "", editEmbed: "", create: "", createEmbed: "", label: "", labelEmbed: "", empty: "" }, lineEditor: { edit: "", exit: "" }, elementLock: { lock: "", unlock: "", lockAll: "", unlockAll: "" }, statusPublished: "", sidebarLock: "", selectAllElementsInFrame: "", removeAllElementsFromFrame: "", eyeDropper: "", textToDiagram: "", prompt: "" }, u = { noItems: "", hint_emptyLibrary: "", hint_emptyPrivateLibrary: "" }, a = { clearReset: "清空畫布", exportJSON: "", exportImage: "", export: "", copyToClipboard: "", save: "", saveAs: "", load: "", getShareableLink: "", close: "", selectLanguage: "", scrollBackToContent: "", zoomIn: "", zoomOut: "", resetZoom: "", menu: "", done: "", edit: "", undo: "", redo: "", resetLibrary: "", createNewRoom: "", fullScreen: "", darkMode: "", lightMode: "", zenMode: "", objectsSnapMode: "", exitZenMode: "", cancel: "", clear: "", remove: "", embed: "", publishLibrary: "", submit: "", confirm: "", embeddableInteractionButton: "" }, o = { clearReset: "【‼️ 警告 ‼️ 無法復原的動作】你確定要清空呢塊畫布嗎?", couldNotCreateShareableLink: "", couldNotCreateShareableLinkTooBig: "", couldNotLoadInvalidFile: "", importBackendFailed: "", cannotExportEmptyCanvas: "無嘢可以匯出喎~畫吓嘢先?", couldNotCopyToClipboard: "", decryptFailed: "", uploadedSecurly: "", loadSceneOverridePrompt: "", collabStopOverridePrompt: "", errorAddingToLibrary: "", errorRemovingFromLibrary: "", confirmAddLibrary: "", imageDoesNotContainScene: "", cannotRestoreFromImage: "", invalidSceneUrl: "", resetLibrary: "", removeItemsFromsLibrary: "", invalidEncryptionKey: "", collabOfflineWarning: "" }, r = { unsupportedFileType: "", imageInsertError: "", fileTooBig: "", svgImageInsertError: "", failedToFetchImage: "", invalidSVGString: "", cannotResolveCollabServer: "", importLibraryError: "", collabSaveFailed: "", collabSaveFailed_sizeExceeded: "", imageToolNotSupported: "", brave_measure_text_error: { line1: "", line2: "", line3: "", line4: "" }, libraryElementTypeError: { embeddable: "", iframe: "", image: "" }, asyncPasteFailedOnRead: "", asyncPasteFailedOnParse: "", copyToSystemClipboardFailed: "" }, t = { selection: "", image: "", rectangle: "", diamond: "", ellipse: "", arrow: "", line: "", freedraw: "", text: "", library: "", lock: "", penMode: "", link: "", eraser: "", frame: "", magicframe: "", embeddable: "", laser: "", hand: "", extraTools: "", mermaidToExcalidraw: "", magicSettings: "" }, i = { canvasActions: "畫布動作", selectedShapeActions: "", shapes: "" }, l = { canvasPanning: "", linearElement: "", freeDraw: "", text: "", embeddable: "", text_selected: "", text_editing: "", linearElementMulti: "", lockAngle: "", resize: "", resizeImage: "", rotate: "", lineEditor_info: "", lineEditor_pointSelected: "", lineEditor_nothingSelected: "", placeImage: "", publishLibrary: "", bindTextToElement: "", deepBoxSelect: "", eraserRevert: "", firefox_clipboard_write: "", disableSnapping: "" }, n = { cannotShowPreview: "無法顯示預覽", canvasTooBig: "塊畫布太大啦,縮細啲先啦?", canvasTooBigTip: "" }, s = { headingMain: "", clearCanvasMessage: "如果重新整理頁面都係睇唔到,你可以<button>清空畫布</button>", clearCanvasCaveat: "(注意:呢個動作會直接丟棄你嘅作品,並且無法復原)", trackedToSentry: "", openIssueMessage: "", sceneContent: "" }, d = { desc_intro: "", desc_privacy: "", button_startSession: "", button_stopSession: "", desc_inProgressIntro: "", desc_shareLink: "", desc_exitSession: "", shareTitle: "" }, c = { title: "" }, F = { disk_title: "", disk_details: "", disk_button: "", link_title: "", link_details: "", link_button: "", excalidrawplus_description: "", excalidrawplus_button: "", excalidrawplus_exportError: "" }, m = { blog: "", click: "", deepSelect: "", deepBoxSelect: "", curvedArrow: "", curvedLine: "", documentation: "", doubleClick: "", drag: "", editor: "", editLineArrowPoints: "", editText: "", github: "", howto: "", or: "", preventBinding: "", tools: "", shortcuts: "", textFinish: "", textNewLine: "", title: "", view: "", zoomToFit: "", zoomToSelection: "", toggleElementLock: "", movePageUpDown: "", movePageLeftRight: "" }, p = { title: "" }, E = { title: "", itemName: "", authorName: "", githubUsername: "", twitterUsername: "", libraryName: "", libraryDesc: "", website: "", placeholder: { authorName: "", libraryName: "", libraryDesc: "", githubHandle: "", twitterHandle: "", website: "" }, errors: { required: "", website: "" }, noteDescription: "", noteGuidelines: "", noteLicense: "", noteItems: "", atleastOneLibItem: "", republishWarning: "" }, g = { title: "", content: "" }, D = { resetLibrary: "", removeItemsFromLib: "" }, b = { header: "", label: { withBackground: "", onlySelected: "", darkMode: "", embedScene: "", scale: "", padding: "" }, tooltip: { embedScene: "" }, title: { exportToPng: "", exportToSvg: "", copyPngToClipboard: "" }, button: { exportToPng: "", exportToSvg: "", copyPngToClipboard: "" } }, C = { tooltip: "", link: "" }, A = { angle: "", element: "", elements: "", height: "", scene: "", selected: "", storage: "", title: "", total: "", version: "", versionCopy: "", versionNotAvailable: "", width: "" }, B = { addedToLibrary: "", copyStyles: "", copyToClipboard: "", copyToClipboardAsPng: "", fileSaved: "", fileSavedToFilename: "", canvas: "畫布", selection: "", pasteAsSingleElement: "", unableToEmbed: "", unrecognizedLinkFormat: "" }, h = { transparent: "", black: "", white: "", red: "", pink: "", grape: "", violet: "", gray: "", blue: "", cyan: "", teal: "", green: "", yellow: "", orange: "", bronze: "" }, y = { app: { center_heading: "", center_heading_plus: "", menuHint: "" }, defaults: { menuHint: "", center_heading: "", toolbarHint: "", helpHint: "" } }, v = { mostUsedCustomColors: "", colors: "", shades: "", hexCode: "", noShades: "" }, S = { action: { exportToImage: { title: "", button: "", description: "" }, saveToDisk: { title: "", button: "", description: "" }, excalidrawPlus: { title: "", button: "", description: "" } }, modal: { loadFromFile: { title: "", button: "", description: "" }, shareableLink: { title: "", button: "", description: "" } } }, w = { title: "", button: "", description: "", syntax: "", preview: "" }, x = { labels: e, library: u, buttons: a, alerts: o, errors: r, toolBar: t, headings: i, hints: l, canvasError: n, errorSplash: s, roomDialog: d, errorDialog: c, exportDialog: F, helpDialog: m, clearCanvasDialog: p, publishDialog: E, publishSuccessDialog: g, confirmDialog: D, imageExportDialog: b, encrypted: C, stats: A, toast: B, colors: h, welcomeScreen: y, colorPicker: v, overwriteConfirm: S, mermaid: w };
3
3
  export {
4
4
  o as alerts,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@layers-app/editor",
3
3
  "private": false,
4
- "version": "0.6.33",
4
+ "version": "0.6.35",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "start": "VITE_LAYERS=true vite --mode full ",
@@ -32,22 +32,20 @@
32
32
  "types": "dist/index.d.ts",
33
33
  "dependencies": {
34
34
  "@excalidraw/excalidraw": "^0.18.0",
35
- "@floating-ui/react": "^0.27.16",
36
35
  "@lexical/file": "^0.38.2",
37
36
  "@lexical/headless": "^0.38.2",
38
37
  "@lexical/markdown": "^0.38.2",
39
38
  "@lexical/react": "^0.38.2",
40
39
  "@tanstack/react-query": "^5.52.2",
40
+ "@floating-ui/react": "^0.27.16",
41
41
  "lexical": "^0.38.2",
42
42
  "react-selecto": "^1.26.3",
43
43
  "y-websocket": "^1.5.3",
44
44
  "yjs": "^13.6.20"
45
45
  },
46
46
  "devDependencies": {
47
- "@eslint/js": "^9.9.0",
48
- "@hugeicons/core-free-icons": "^2.0.0",
49
- "@hugeicons/react": "^1.1.1",
50
47
  "@layers-app/shared": "^0.2.3",
48
+ "@eslint/js": "^9.9.0",
51
49
  "@mantine/core": "8.3.5",
52
50
  "@mantine/dropzone": "8.3.5",
53
51
  "@mantine/form": "8.3.5",
@@ -97,7 +95,9 @@
97
95
  "vite-plugin-css-injected-by-js": "^3.5.0",
98
96
  "vite-plugin-dts": "^4.0.0-beta.1",
99
97
  "vite-plugin-static-copy": "^2.3.2",
100
- "vite-plugin-svgr": "^4.2.0"
98
+ "vite-plugin-svgr": "^4.2.0",
99
+ "@hugeicons/core-free-icons": "^2.0.0",
100
+ "@hugeicons/react": "^1.1.1"
101
101
  },
102
102
  "overrides": {
103
103
  "nanoid": "^5.0.9",
@@ -122,31 +122,31 @@
122
122
  }
123
123
  },
124
124
  "peerDependencies": {
125
- "@dnd-kit/modifiers": ">=6",
126
- "@emotion/react": ">=11",
127
- "@emotion/styled": ">=11",
128
- "@hugeicons/core-free-icons": ">=1",
129
- "@hugeicons/react": ">=1",
130
- "@mantine/carousel": ">=8.0.0",
131
- "@mantine/colors-generator": ">=8.0.0",
125
+ "react": "^18.3.1",
126
+ "react-dom": "^18.3.1",
132
127
  "@mantine/core": ">=8.0.0",
133
- "@mantine/dropzone": ">=8.0.0",
134
- "@mantine/form": ">=8.0.0",
135
128
  "@mantine/hooks": ">=8.0.0",
129
+ "@mantine/form": ">=8.0.0",
136
130
  "@mantine/modals": ">=8.0.0",
137
131
  "@mantine/notifications": ">=8.0.0",
138
- "@mantine/tiptap": ">=8.0.0",
132
+ "@mantine/dropzone": ">=8.0.0",
133
+ "@mantine/carousel": ">=8.0.0",
134
+ "@mantine/colors-generator": ">=8.0.0",
139
135
  "@tabler/icons-react": ">=3.7.0",
140
136
  "@tanstack/react-query": "^5.52.2",
141
- "@tanstack/react-virtual": ">=3",
142
- "date-fns-tz": ">=3",
143
137
  "i18next": "^25.5.2",
144
- "js-confetti": ">=0.12",
145
- "lodash-es": ">=4.17.21",
146
- "react": "^18.3.1",
147
- "react-dom": "^18.3.1",
148
138
  "react-i18next": "^15.7.3",
149
- "swagger-ui-react": "^5.27.1"
139
+ "lodash-es": ">=4.17.21",
140
+ "swagger-ui-react": "^5.27.1",
141
+ "@mantine/tiptap": ">=8.0.0",
142
+ "@emotion/react": ">=11",
143
+ "@emotion/styled": ">=11",
144
+ "@hugeicons/react": ">=1",
145
+ "@hugeicons/core-free-icons": ">=1",
146
+ "date-fns-tz": ">=3",
147
+ "js-confetti": ">=0.12",
148
+ "@dnd-kit/modifiers": ">=6",
149
+ "@tanstack/react-virtual": ">=3"
150
150
  },
151
151
  "peerDependenciesMeta": {
152
152
  "swagger-ui-react": {
@@ -1,6 +0,0 @@
1
- import { e as o, j as s, o as f } from "./layers.BzT4Ix0I.js";
2
- export {
3
- o as default,
4
- s as en,
5
- f as kaa
6
- };
@@ -1,8 +0,0 @@
1
- import { C as e, Q as t, N as m, A as r } from "./layers.rlSCwVt5.js";
2
- import "./layers.BzT4Ix0I.js";
3
- export {
4
- e as Commands,
5
- t as subsetToBase64,
6
- m as subsetToBinary,
7
- r as toBase64
8
- };
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./layers.djiwWQ80.js");require("./layers.CbLQLdLU.js");exports.Commands=e.CB;exports.subsetToBase64=e.QB;exports.subsetToBinary=e.NQ;exports.toBase64=e.AI;
@@ -1 +0,0 @@
1
- "use strict";const n=require("./layers.DOuRclSM.js"),s=(e,r)=>n.Utils.lang.round(n.Color.parse(e)[r]);exports.channel=s;
@@ -1,229 +0,0 @@
1
- import { jsx as a, jsxs as k } from "react/jsx-runtime";
2
- import { useTranslation as M } from "react-i18next";
3
- import { Modal as K, Text as U, Flex as _, Button as T, useMantineColorScheme as J, Loader as Y } from "@mantine/core";
4
- import { useRef as I, useState as m, useEffect as p, useCallback as R, Suspense as X, lazy as Z } from "react";
5
- import { BottomDrawerWithoutHeader as $ } from "@layers-app/shared";
6
- const se = ({
7
- isCloseModal: s,
8
- setCloseModalOpen: t,
9
- confirmClose: l
10
- }) => {
11
- const { t: i } = M();
12
- return /* @__PURE__ */ a(
13
- K,
14
- {
15
- opened: s,
16
- onClose: () => {
17
- t(!1);
18
- },
19
- centered: !0,
20
- title: i("editor.unsavedChanges.title"),
21
- closeOnClickOutside: !0,
22
- closeOnEscape: !0,
23
- size: "500",
24
- zIndex: 999,
25
- children: /* @__PURE__ */ k("div", { children: [
26
- /* @__PURE__ */ a(U, { mb: "md", children: i("editor.unsavedChanges.message") }),
27
- /* @__PURE__ */ k(_, { justify: "flex-end", gap: "sm", children: [
28
- /* @__PURE__ */ a(
29
- T,
30
- {
31
- variant: "default",
32
- onClick: () => {
33
- t(!1);
34
- },
35
- fullWidth: !0,
36
- children: i("editor.unsavedChanges.cancel")
37
- }
38
- ),
39
- /* @__PURE__ */ a(T, { color: "red", onClick: l, fullWidth: !0, children: i("editor.unsavedChanges.closeWithoutSaving") })
40
- ] })
41
- ] })
42
- }
43
- );
44
- }, E = {
45
- elements: [],
46
- files: {},
47
- appState: {},
48
- previewSVG: null
49
- }, le = (s) => {
50
- try {
51
- const t = JSON.parse(s);
52
- if (Array.isArray(t))
53
- return { ...E, elements: t };
54
- if (t && typeof t == "object")
55
- return {
56
- elements: Array.isArray(t.elements) ? t.elements : [],
57
- files: t.files && typeof t.files == "object" ? t.files : {},
58
- appState: t.appState && typeof t.appState == "object" ? t.appState : {},
59
- previewSVG: typeof t.previewSVG == "string" ? t.previewSVG : typeof t.previewSvg == "string" ? t.previewSvg : null
60
- };
61
- } catch {
62
- }
63
- return { ...E };
64
- }, q = {
65
- en: "en-US",
66
- ru: "ru-RU",
67
- fr: "fr-FR",
68
- de: "de-DE",
69
- es: "es-ES",
70
- it: "it-IT",
71
- pt: "pt-BR",
72
- zh: "zh-CN",
73
- ja: "ja-JP",
74
- ko: "ko-KR",
75
- ar: "ar-SA",
76
- hi: "hi-IN",
77
- nl: "nl-NL",
78
- tr: "tr-TR",
79
- pl: "pl-PL",
80
- sv: "sv-SE",
81
- cs: "cs-CZ",
82
- uk: "uk-UA",
83
- ro: "ro-RO",
84
- fi: "fi-FI",
85
- da: "da-DK",
86
- no: "no-NO",
87
- el: "el-GR",
88
- he: "he-IL",
89
- th: "th-TH",
90
- id: "id-ID",
91
- ms: "ms-MY",
92
- vi: "vi-VN"
93
- };
94
- let h = null;
95
- const Q = /* @__PURE__ */ Z(async () => {
96
- var t;
97
- const s = await import("./layers.BzT4Ix0I.js").then((l) => l.M);
98
- return !h && s && (h = s.exportToSvg || ((t = s.default) == null ? void 0 : t.exportToSvg) || s.default), { default: s.Excalidraw };
99
- }), P = () => {
100
- const [s, t] = m(
101
- null
102
- ), l = R(
103
- (i) => t(i),
104
- []
105
- );
106
- return [s, l];
107
- };
108
- function ie({
109
- onSave: s,
110
- initialElements: t,
111
- initialAppState: l,
112
- initialFiles: i,
113
- isShown: c = !1,
114
- onDelete: L,
115
- onClose: B,
116
- isEdited: D
117
- }) {
118
- const [o, S] = P(), { i18n: j } = M(), { colorScheme: z } = J(), x = I(!1), [d, A] = m(t), [g, N] = m(i), [V, O] = m(c);
119
- p(() => {
120
- c && O(!0);
121
- }, [c]), p(() => {
122
- !c || x.current || (x.current = !0, Promise.resolve({ }));
123
- }, [c]), p(() => {
124
- c && setTimeout(() => {
125
- var e;
126
- (e = o == null ? void 0 : o.refresh) == null || e.call(o);
127
- }, 500);
128
- }, [c, o]);
129
- const G = R(async () => {
130
- var b, w, C;
131
- let e = h;
132
- if (!e || typeof e != "function") {
133
- const n = await import("./layers.BzT4Ix0I.js").then((f) => f.M);
134
- e = n.exportToSvg || ((b = n.default) == null ? void 0 : b.exportToSvg) || n.default, e && typeof e == "function" && (h = e);
135
- }
136
- if (!e || typeof e != "function") {
137
- const n = await import("./layers.BzT4Ix0I.js").then((H) => H.M), f = n ? Object.keys(n) : [];
138
- throw console.error("Excalidraw module structure:", {
139
- keys: f,
140
- hasExportToSvg: n && "exportToSvg" in n,
141
- hasDefault: n && "default" in n,
142
- moduleType: typeof n,
143
- module: n
144
- }), new Error(
145
- `exportToSvg is not available from @excalidraw/excalidraw. Module keys: ${f.join(", ")}. Please ensure @excalidraw/excalidraw is properly installed.`
146
- );
147
- }
148
- const u = ((w = o == null ? void 0 : o.getAppState) == null ? void 0 : w.call(o)) ?? l, r = await e({
149
- appState: u,
150
- elements: d,
151
- files: g
152
- }), v = (C = r == null ? void 0 : r.firstElementChild) == null ? void 0 : C.firstElementChild, y = r.getAttribute("viewBox");
153
- if (y != null) {
154
- const n = y.split(" ");
155
- r.setAttribute("width", n[2]), r.setAttribute("height", n[3]);
156
- }
157
- return v && v.tagName === "style" && v.remove(), r.setAttribute("width", "100%"), r.setAttribute("height", "100%"), r.setAttribute("display", "block"), r.classList.add("excalidraw-svg"), r.outerHTML;
158
- }, [d, g, o, l]), W = () => {
159
- if (d && d.filter((e) => !e.isDeleted).length > 0) {
160
- const e = o == null ? void 0 : o.getAppState(), u = {
161
- exportBackground: e == null ? void 0 : e.exportBackground,
162
- exportScale: e == null ? void 0 : e.exportScale,
163
- exportWithDarkMode: (e == null ? void 0 : e.theme) === "dark",
164
- isBindingEnabled: e == null ? void 0 : e.isBindingEnabled,
165
- isLoading: e == null ? void 0 : e.isLoading,
166
- name: e == null ? void 0 : e.name,
167
- theme: e == null ? void 0 : e.theme,
168
- viewBackgroundColor: e == null ? void 0 : e.viewBackgroundColor,
169
- viewModeEnabled: e == null ? void 0 : e.viewModeEnabled,
170
- zenModeEnabled: e == null ? void 0 : e.zenModeEnabled,
171
- zoom: e == null ? void 0 : e.zoom
172
- };
173
- (async () => {
174
- const r = await G();
175
- s(d, u, g, r);
176
- })();
177
- } else
178
- L();
179
- }, F = (e, u, r) => {
180
- (e == null ? void 0 : e.length) !== (t == null ? void 0 : t.length) && (D.current = !0), A(e), N(r);
181
- };
182
- return /* @__PURE__ */ a(
183
- $,
184
- {
185
- opened: c,
186
- onClose: B,
187
- onSave: W,
188
- className: "excaildraw-modal",
189
- closeOnEscape: !1,
190
- children: V && /* @__PURE__ */ a(
191
- X,
192
- {
193
- fallback: /* @__PURE__ */ a(
194
- "div",
195
- {
196
- style: {
197
- display: "flex",
198
- justifyContent: "center",
199
- alignItems: "center",
200
- height: "100%",
201
- minHeight: "400px"
202
- },
203
- children: /* @__PURE__ */ a(Y, { size: "sm" })
204
- }
205
- ),
206
- children: /* @__PURE__ */ a(
207
- Q,
208
- {
209
- langCode: q[j.language],
210
- theme: z,
211
- onChange: F,
212
- excalidrawAPI: S,
213
- initialData: {
214
- appState: { ...l || { isLoading: !1 } },
215
- elements: t,
216
- files: i
217
- }
218
- }
219
- )
220
- }
221
- )
222
- }
223
- );
224
- }
225
- export {
226
- se as C,
227
- ie as E,
228
- le as p
229
- };
@@ -1 +0,0 @@
1
- "use strict";const i=require("react/jsx-runtime"),E=require("react-i18next"),d=require("@mantine/core"),l=require("react"),G=require("@layers-app/shared"),W=({isCloseModal:n,setCloseModalOpen:t,confirmClose:a})=>{const{t:c}=E.useTranslation();return i.jsx(d.Modal,{opened:n,onClose:()=>{t(!1)},centered:!0,title:c("editor.unsavedChanges.title"),closeOnClickOutside:!0,closeOnEscape:!0,size:"500",zIndex:999,children:i.jsxs("div",{children:[i.jsx(d.Text,{mb:"md",children:c("editor.unsavedChanges.message")}),i.jsxs(d.Flex,{justify:"flex-end",gap:"sm",children:[i.jsx(d.Button,{variant:"default",onClick:()=>{t(!1)},fullWidth:!0,children:c("editor.unsavedChanges.cancel")}),i.jsx(d.Button,{color:"red",onClick:a,fullWidth:!0,children:c("editor.unsavedChanges.closeWithoutSaving")})]})]})})},k={elements:[],files:{},appState:{},previewSVG:null},F=n=>{try{const t=JSON.parse(n);if(Array.isArray(t))return{...k,elements:t};if(t&&typeof t=="object")return{elements:Array.isArray(t.elements)?t.elements:[],files:t.files&&typeof t.files=="object"?t.files:{},appState:t.appState&&typeof t.appState=="object"?t.appState:{},previewSVG:typeof t.previewSVG=="string"?t.previewSVG:typeof t.previewSvg=="string"?t.previewSvg:null}}catch{}return{...k}},H={en:"en-US",ru:"ru-RU",fr:"fr-FR",de:"de-DE",es:"es-ES",it:"it-IT",pt:"pt-BR",zh:"zh-CN",ja:"ja-JP",ko:"ko-KR",ar:"ar-SA",hi:"hi-IN",nl:"nl-NL",tr:"tr-TR",pl:"pl-PL",sv:"sv-SE",cs:"cs-CZ",uk:"uk-UA",ro:"ro-RO",fi:"fi-FI",da:"da-DK",no:"no-NO",el:"el-GR",he:"he-IL",th:"th-TH",id:"id-ID",ms:"ms-MY",vi:"vi-VN"};let x=null;const K=l.lazy(async()=>{var t;const n=await Promise.resolve().then(()=>require("./layers.CbLQLdLU.js")).then(a=>a.index);return!x&&n&&(x=n.exportToSvg||((t=n.default)==null?void 0:t.exportToSvg)||n.default),{default:n.Excalidraw}}),U=()=>{const[n,t]=l.useState(null),a=l.useCallback(c=>t(c),[]);return[n,a]};function _({onSave:n,initialElements:t,initialAppState:a,initialFiles:c,isShown:u=!1,onDelete:T,onClose:j,isEdited:M}){const[r,R]=U(),{i18n:S}=E.useTranslation(),{colorScheme:B}=d.useMantineColorScheme(),y=l.useRef(!1),[f,D]=l.useState(t),[v,L]=l.useState(c),[z,A]=l.useState(u);l.useEffect(()=>{u&&A(!0)},[u]),l.useEffect(()=>{!u||y.current||(y.current=!0,Promise.resolve().then(()=>require("./layers.Dyvby5gX.js")))},[u]),l.useEffect(()=>{u&&setTimeout(()=>{var e;(e=r==null?void 0:r.refresh)==null||e.call(r)},500)},[u,r]);const q=l.useCallback(async()=>{var b,w,C;let e=x;if(!e||typeof e!="function"){const s=await Promise.resolve().then(()=>require("./layers.CbLQLdLU.js")).then(g=>g.index);e=s.exportToSvg||((b=s.default)==null?void 0:b.exportToSvg)||s.default,e&&typeof e=="function"&&(x=e)}if(!e||typeof e!="function"){const s=await Promise.resolve().then(()=>require("./layers.CbLQLdLU.js")).then(O=>O.index),g=s?Object.keys(s):[];throw console.error("Excalidraw module structure:",{keys:g,hasExportToSvg:s&&"exportToSvg"in s,hasDefault:s&&"default"in s,moduleType:typeof s,module:s}),new Error(`exportToSvg is not available from @excalidraw/excalidraw. Module keys: ${g.join(", ")}. Please ensure @excalidraw/excalidraw is properly installed.`)}const h=((w=r==null?void 0:r.getAppState)==null?void 0:w.call(r))??a,o=await e({appState:h,elements:f,files:v}),m=(C=o==null?void 0:o.firstElementChild)==null?void 0:C.firstElementChild,p=o.getAttribute("viewBox");if(p!=null){const s=p.split(" ");o.setAttribute("width",s[2]),o.setAttribute("height",s[3])}return m&&m.tagName==="style"&&m.remove(),o.setAttribute("width","100%"),o.setAttribute("height","100%"),o.setAttribute("display","block"),o.classList.add("excalidraw-svg"),o.outerHTML},[f,v,r,a]),N=()=>{if(f&&f.filter(e=>!e.isDeleted).length>0){const e=r==null?void 0:r.getAppState(),h={exportBackground:e==null?void 0:e.exportBackground,exportScale:e==null?void 0:e.exportScale,exportWithDarkMode:(e==null?void 0:e.theme)==="dark",isBindingEnabled:e==null?void 0:e.isBindingEnabled,isLoading:e==null?void 0:e.isLoading,name:e==null?void 0:e.name,theme:e==null?void 0:e.theme,viewBackgroundColor:e==null?void 0:e.viewBackgroundColor,viewModeEnabled:e==null?void 0:e.viewModeEnabled,zenModeEnabled:e==null?void 0:e.zenModeEnabled,zoom:e==null?void 0:e.zoom};(async()=>{const o=await q();n(f,h,v,o)})()}else T()},V=(e,h,o)=>{(e==null?void 0:e.length)!==(t==null?void 0:t.length)&&(M.current=!0),D(e),L(o)};return i.jsx(G.BottomDrawerWithoutHeader,{opened:u,onClose:j,onSave:N,className:"excaildraw-modal",closeOnEscape:!1,children:z&&i.jsx(l.Suspense,{fallback:i.jsx("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%",minHeight:"400px"},children:i.jsx(d.Loader,{size:"sm"})}),children:i.jsx(K,{langCode:H[S.language],theme:B,onChange:V,excalidrawAPI:R,initialData:{appState:{...a||{isLoading:!1}},elements:t,files:c}})})})}exports.ConfirmModal=W;exports.ExcalidrawModal=_;exports.parseExcalidrawData=F;