@8btc/xcanvas 0.0.1 → 0.0.3

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 (105) hide show
  1. package/README.md +11 -7
  2. package/dist/{XCanvas-BxdLBkBz.js → XCanvas-C0EYxLJA.js} +205 -38
  3. package/dist/{ar-SA-G6X2FPQ2-DjqDLLYL.js → ar-SA-G6X2FPQ2-W0XelhXF.js} +1 -1
  4. package/dist/{arc-D1qX5GFf.js → arc-C932VSPf.js} +1 -1
  5. package/dist/{az-AZ-76LH7QW2-D7LOsF3_.js → az-AZ-76LH7QW2-C5U8iUWz.js} +1 -1
  6. package/dist/{bg-BG-XCXSNQG7-WI4tFn23.js → bg-BG-XCXSNQG7-DaUeaN9S.js} +1 -1
  7. package/dist/{blockDiagram-38ab4fdb-DtemKfEh.js → blockDiagram-38ab4fdb-CzhnG2_t.js} +5 -5
  8. package/dist/{bn-BD-2XOGV67Q-Bugx_8fy.js → bn-BD-2XOGV67Q-D0oH5I-o.js} +1 -1
  9. package/dist/{c4Diagram-3d4e48cf-Byd2vU9K.js → c4Diagram-3d4e48cf-282FLQHO.js} +2 -2
  10. package/dist/{ca-ES-6MX7JW3Y-6rFwKGsQ.js → ca-ES-6MX7JW3Y-IRZHqlmK.js} +1 -1
  11. package/dist/{channel-BT_3Ze-Y.js → channel-_6Vfoutp.js} +1 -1
  12. package/dist/{chunk-EIO257PC-C7qD7hGu.js → chunk-EIO257PC-0bWJEHTx.js} +1 -1
  13. package/dist/{classDiagram-70f12bd4-CwfYadk-.js → classDiagram-70f12bd4-zmngDfGr.js} +5 -5
  14. package/dist/{classDiagram-v2-f2320105-B28MuM8f.js → classDiagram-v2-f2320105-DMglAXxG.js} +5 -5
  15. package/dist/{clone-D2FUK8WY.js → clone-BYKyEIHh.js} +1 -1
  16. package/dist/{createText-2e5e7dd3-Ca1JfQaJ.js → createText-2e5e7dd3-BUcF4IVq.js} +1 -1
  17. package/dist/{cs-CZ-2BRQDIVT-Dhd8XszK.js → cs-CZ-2BRQDIVT-BfA8WrMH.js} +1 -1
  18. package/dist/{da-DK-5WZEPLOC-BhL87sSs.js → da-DK-5WZEPLOC-DkCQ483o.js} +1 -1
  19. package/dist/{de-DE-XR44H4JA-xSrZSV0J.js → de-DE-XR44H4JA-Bq1XRYA7.js} +1 -1
  20. package/dist/{edges-e0da2a9e-9VbVapWU.js → edges-e0da2a9e-BQONd9CI.js} +3 -3
  21. package/dist/{el-GR-BZB4AONW-DQORZ_pY.js → el-GR-BZB4AONW-DGv65YBs.js} +1 -1
  22. package/dist/{en-B4ZKOASM-D2BVbEdz.js → en-B4ZKOASM-Cfl8aysC.js} +1 -1
  23. package/dist/{erDiagram-9861fffd-D4S9QDes.js → erDiagram-9861fffd-CMvcb2VR.js} +4 -4
  24. package/dist/{es-ES-U4NZUMDT-C0Q89-0V.js → es-ES-U4NZUMDT-BKAShkHX.js} +1 -1
  25. package/dist/{eu-ES-A7QVB2H4-BwBW3cEw.js → eu-ES-A7QVB2H4-cm_miCHJ.js} +1 -1
  26. package/dist/{fa-IR-HGAKTJCU-DtZ74rm4.js → fa-IR-HGAKTJCU-k9MT_73c.js} +1 -1
  27. package/dist/{fi-FI-Z5N7JZ37-QvQan48z.js → fi-FI-Z5N7JZ37-BCHYlMlR.js} +1 -1
  28. package/dist/{flowDb-956e92f1-S6T8ppJw.js → flowDb-956e92f1-ikH3CJqP.js} +1 -1
  29. package/dist/{flowDiagram-66a62f08-C6TTwS5_.js → flowDiagram-66a62f08--s_n7gkw.js} +6 -6
  30. package/dist/{flowDiagram-v2-96b9c2cf-CzfeUNGP.js → flowDiagram-v2-96b9c2cf-RzQUc3Wr.js} +5 -5
  31. package/dist/{flowchart-elk-definition-4a651766-CRv1kWtk.js → flowchart-elk-definition-4a651766-BIq1Cqsd.js} +5 -5
  32. package/dist/{fr-FR-RHASNOE6-CZFiweNU.js → fr-FR-RHASNOE6-DUYZoeKK.js} +1 -1
  33. package/dist/{ganttDiagram-c361ad54-CAnfd8Sw.js → ganttDiagram-c361ad54-CCBU0F3m.js} +3 -3
  34. package/dist/{gitGraphDiagram-72cf32ee-CSGI-xRI.js → gitGraphDiagram-72cf32ee-DUQ30j3d.js} +1 -1
  35. package/dist/{gl-ES-HMX3MZ6V-Bqv2xL-V.js → gl-ES-HMX3MZ6V-C8pPFWZa.js} +1 -1
  36. package/dist/{graph-Ct2tKpKj.js → graph-B2f2BEF0.js} +1 -1
  37. package/dist/{he-IL-6SHJWFNN-kso30jhn.js → he-IL-6SHJWFNN-C0hRdy_x.js} +1 -1
  38. package/dist/{hi-IN-IWLTKZ5I-Busk5oaa.js → hi-IN-IWLTKZ5I-BxdWyvdV.js} +1 -1
  39. package/dist/{hu-HU-A5ZG7DT2-xSR2C2H0.js → hu-HU-A5ZG7DT2-CdyhPymk.js} +1 -1
  40. package/dist/{id-ID-SAP4L64H-BQQZYm1L.js → id-ID-SAP4L64H-B7Vr-v8Z.js} +1 -1
  41. package/dist/{image-EDRW2JGV-Cx7o2kxD.js → image-EDRW2JGV-DBCK9hyS.js} +1 -1
  42. package/dist/{index-3862675e-B3j3w-v_.js → index-3862675e-C4wYMxk3.js} +6 -6
  43. package/dist/{index-CLOU2Ikr.js → index-9w7ukxHz.js} +23 -23
  44. package/dist/index.css +10 -0
  45. package/dist/index.d.ts +9 -2
  46. package/dist/index.js +1 -1
  47. package/dist/index.umd.cjs +198 -31
  48. package/dist/{infoDiagram-f8f76790-NqA75uBo.js → infoDiagram-f8f76790-C4yNAsLD.js} +1 -1
  49. package/dist/{it-IT-JPQ66NNP-CAMVZrYt.js → it-IT-JPQ66NNP-C1yf5Pn2.js} +1 -1
  50. package/dist/{ja-JP-DBVTYXUO-CAX8A_Uj.js → ja-JP-DBVTYXUO-BnO-QJsx.js} +1 -1
  51. package/dist/{journeyDiagram-49397b02-By5oBzsZ.js → journeyDiagram-49397b02-Bj59pCtI.js} +3 -3
  52. package/dist/{kaa-6HZHGXH3-4-o94cPY.js → kaa-6HZHGXH3-DJZTtlkI.js} +1 -1
  53. package/dist/{kab-KAB-ZGHBKWFO-CgyjjBvZ.js → kab-KAB-ZGHBKWFO-ChGhxhhq.js} +1 -1
  54. package/dist/{kk-KZ-P5N5QNE5-BEqZcwLA.js → kk-KZ-P5N5QNE5-gBKfhhlj.js} +1 -1
  55. package/dist/{km-KH-HSX4SM5Z-DvKDbeH4.js → km-KH-HSX4SM5Z-zOOhs8vw.js} +1 -1
  56. package/dist/{ko-KR-MTYHY66A-DKCuAbKE.js → ko-KR-MTYHY66A-CWSzuY4R.js} +1 -1
  57. package/dist/{ku-TR-6OUDTVRD-CNUs4cCe.js → ku-TR-6OUDTVRD-BfOq798Y.js} +1 -1
  58. package/dist/{layout-AJxYKqQV.js → layout-BG2lRE_m.js} +2 -2
  59. package/dist/{line-DJIf5OM8.js → line-CH_ZEQQk.js} +1 -1
  60. package/dist/{linear-Cfj4s4vI.js → linear-D4iTNGM-.js} +1 -1
  61. package/dist/{lt-LT-XHIRWOB4-gouzGdoW.js → lt-LT-XHIRWOB4-C6Fzsyc0.js} +1 -1
  62. package/dist/{lv-LV-5QDEKY6T-CTvg1XFv.js → lv-LV-5QDEKY6T-C6GNNDtw.js} +1 -1
  63. package/dist/{mindmap-definition-fc14e90a-CBlwH_UF.js → mindmap-definition-fc14e90a-DDpRg6HK.js} +3 -3
  64. package/dist/{mr-IN-CRQNXWMA-QeYm06Kq.js → mr-IN-CRQNXWMA-CNxSFLAn.js} +1 -1
  65. package/dist/{my-MM-5M5IBNSE-DG3k9ORf.js → my-MM-5M5IBNSE-w-3titM3.js} +1 -1
  66. package/dist/{nb-NO-T6EIAALU-Cj995Nmg.js → nb-NO-T6EIAALU-F4nPiCP0.js} +1 -1
  67. package/dist/{nl-NL-IS3SIHDZ-B-2H7xey.js → nl-NL-IS3SIHDZ-O21_9WIX.js} +1 -1
  68. package/dist/{nn-NO-6E72VCQL-DrAwKKTN.js → nn-NO-6E72VCQL-CZISMGIK.js} +1 -1
  69. package/dist/{oc-FR-POXYY2M6-CeyJD7tq.js → oc-FR-POXYY2M6-CjxCLCUT.js} +1 -1
  70. package/dist/{pa-IN-N4M65BXN-DHzi6mjo.js → pa-IN-N4M65BXN-D7jimgrw.js} +1 -1
  71. package/dist/{percentages-BXMCSKIN-CDYsTuua.js → percentages-BXMCSKIN-BTRn1xWp.js} +1 -1
  72. package/dist/{pica-CzzcRNRD.js → pica-jebOMNp6.js} +1 -1
  73. package/dist/{pieDiagram-8a3498a8-DueGoZOh.js → pieDiagram-8a3498a8-B_WLhbLr.js} +2 -2
  74. package/dist/{pl-PL-T2D74RX3-BBNEV2c6.js → pl-PL-T2D74RX3-CgDEKtkh.js} +1 -1
  75. package/dist/{pt-BR-5N22H2LF-D2cTx_F0.js → pt-BR-5N22H2LF-BCUfTE07.js} +1 -1
  76. package/dist/{pt-PT-UZXXM6DQ-BddvLLsF.js → pt-PT-UZXXM6DQ-B-GXRdbj.js} +1 -1
  77. package/dist/{quadrantDiagram-120e2f19-Tb6_oGIn.js → quadrantDiagram-120e2f19-2OghUJdy.js} +2 -2
  78. package/dist/{requirementDiagram-deff3bca-CEeg0ep-.js → requirementDiagram-deff3bca-oKBIEwMX.js} +4 -4
  79. package/dist/{ro-RO-JPDTUUEW-DynuW50i.js → ro-RO-JPDTUUEW-BHLOWQeq.js} +1 -1
  80. package/dist/{ru-RU-B4JR7IUQ-B5Hecrew.js → ru-RU-B4JR7IUQ-Ria63Dpd.js} +1 -1
  81. package/dist/{sankeyDiagram-04a897e0-CGTLQ8Gm.js → sankeyDiagram-04a897e0-B0B-Yis1.js} +1 -1
  82. package/dist/{sequenceDiagram-704730f1-CZ72D-Nd.js → sequenceDiagram-704730f1-DRBGLLOM.js} +2 -2
  83. package/dist/{si-LK-N5RQ5JYF-BGMa93tc.js → si-LK-N5RQ5JYF-Cil5qujK.js} +1 -1
  84. package/dist/{sk-SK-C5VTKIMK-BttCAlBm.js → sk-SK-C5VTKIMK-Dt0eDzsd.js} +1 -1
  85. package/dist/{sl-SI-NN7IZMDC-DTC59nzG.js → sl-SI-NN7IZMDC-BJEkZ6WJ.js} +1 -1
  86. package/dist/{stateDiagram-587899a1-XISZzz_f.js → stateDiagram-587899a1-CjZz9jaP.js} +5 -5
  87. package/dist/{stateDiagram-v2-d93cdb3a-DbCcmzTc.js → stateDiagram-v2-d93cdb3a-DBsOvMyf.js} +5 -5
  88. package/dist/{styles-6aaf32cf-CyfdkEib.js → styles-6aaf32cf-CR8ib7dF.js} +1 -1
  89. package/dist/{styles-9a916d00-zQ92RrTB.js → styles-9a916d00-Ym7ZNeZk.js} +1 -1
  90. package/dist/{styles-c10674c1-BWmkigmR.js → styles-c10674c1-De0jrOTn.js} +4 -4
  91. package/dist/{subset-shared.chunk-BuFt2PpZ.js → subset-shared.chunk-BEjUelcQ.js} +2 -2
  92. package/dist/{subset-worker.chunk-CgaFXU4O.js → subset-worker.chunk-n3_kw7kt.js} +2 -2
  93. package/dist/{sv-SE-XGPEYMSR-BPDlPxC1.js → sv-SE-XGPEYMSR-5AbDYMb6.js} +1 -1
  94. package/dist/{svgDrawCommon-08f97a94-CJ0lufOi.js → svgDrawCommon-08f97a94-Cm9OyPaZ.js} +1 -1
  95. package/dist/{ta-IN-2NMHFXQM-CI1ZsNk9.js → ta-IN-2NMHFXQM-DqbaFUqG.js} +1 -1
  96. package/dist/{th-TH-HPSO5L25-CUM-w2Qt.js → th-TH-HPSO5L25-y_EwZOHP.js} +1 -1
  97. package/dist/{timeline-definition-85554ec2-DV6084Gl.js → timeline-definition-85554ec2-B1w5dvMD.js} +2 -2
  98. package/dist/{tr-TR-DEFEU3FU-CGpyf_vD.js → tr-TR-DEFEU3FU-B60JwM86.js} +1 -1
  99. package/dist/{uk-UA-QMV73CPH-Bg15Mv3J.js → uk-UA-QMV73CPH-C8oPT0hu.js} +1 -1
  100. package/dist/{vi-VN-M7AON7JQ-AYmca9so.js → vi-VN-M7AON7JQ-DMJZ0ET6.js} +1 -1
  101. package/dist/{xychartDiagram-e933f94c-P1e6EEaH.js → xychartDiagram-e933f94c-wcpGhGK2.js} +4 -4
  102. package/dist/{zh-CN-LNUGB5OW-Dem2Cc-c.js → zh-CN-LNUGB5OW-sNWiMT1l.js} +1 -1
  103. package/dist/{zh-HK-E62DVLB3-BjsDyiLI.js → zh-HK-E62DVLB3-CA5a8Fgn.js} +1 -1
  104. package/dist/{zh-TW-RAJ6MFWO-IDAsc9Pz.js → zh-TW-RAJ6MFWO-CvlMGV2V.js} +1 -1
  105. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import "./XCanvas-BxdLBkBz.js";
1
+ import "./XCanvas-C0EYxLJA.js";
2
2
  var a = { paste: "Beillesztés", pasteAsPlaintext: "Beillesztés formázatlan szövegként", pasteCharts: "Grafikon beillesztése", selectAll: "Összes kijelölése", multiSelect: "Elem hozzáadása a kijelöléshez", moveCanvas: "Vászon mozgatása", cut: "Kivágás", copy: "Másolás", copyAsPng: "Vágólapra másolás mint PNG", copyAsSvg: "Vágólapra másolás mint SVG", copyText: "Vágólapra másolás szövegként", copySource: "", convertToCode: "", bringForward: "Előrébb hozás", sendToBack: "Hátraküldés", bringToFront: "Előrehozás", sendBackward: "Hátrébb küldés", delete: "Törlés", copyStyles: "Stílus másolása", pasteStyles: "Stílus beillesztése", stroke: "Körvonal", background: "Háttér", fill: "Kitöltés", strokeWidth: "Körvonal vastagsága", strokeStyle: "Körvonal stílusa", strokeStyle_solid: "Kitöltött", strokeStyle_dashed: "Szaggatott", strokeStyle_dotted: "Pontozott", sloppiness: "Stílus", opacity: "Áttetszőség", textAlign: "Szöveg igazítása", edges: "Szélek", sharp: "Éles", round: "Kerek", arrowheads: "Nyílhegyek", arrowhead_none: "Nincs", arrowhead_arrow: "Nyíl", arrowhead_bar: "Oszlop", arrowhead_circle: "", arrowhead_circle_outline: "", arrowhead_triangle: "Háromszög", arrowhead_triangle_outline: "", arrowhead_diamond: "", arrowhead_diamond_outline: "", fontSize: "Betűméret", fontFamily: "Betűkészlet család", addWatermark: 'Add hozzá, hogy "Excalidraw-val készült"', handDrawn: "Kézzel rajzolt", normal: "Normál", code: "Kód", small: "Kicsi", medium: "Közepes", large: "Nagy", veryLarge: "Nagyon nagy", solid: "Kitöltött", hachure: "Vonalkázott", zigzag: "Cikkcakk", crossHatch: "Keresztcsíkozott", thin: "Vékony", bold: "Félkövér", left: "Bal", center: "Közép", right: "Jobb", extraBold: "Extra Félkövér", architect: "Tervezői", artist: "Művészi", cartoonist: "Karikatúrás", fileTitle: "Fájlnév", colorPicker: "Színválasztó", canvasColors: "Rajzvászonon használt", canvasBackground: "Vászon háttérszíne", drawingCanvas: "Rajzvászon", layers: "Rétegek", actions: "Műveletek", language: "Nyelv", liveCollaboration: "Élő együttműködés...", duplicateSelection: "Duplikálás", untitled: "Névtelen", name: "Név", yourName: "Neved", madeWithExcalidraw: "Excalidraw-val készült", group: "Csoportosítás", ungroup: "Csoportbontás", collaborators: "Közreműködők", showGrid: "Rács megjelenítése", addToLibrary: "Hozzáadás a könyvtárhoz", removeFromLibrary: "Eltávólítás a könyvtárból", libraryLoadingMessage: "Könyvtár betöltése…", libraries: "Könyvtárak böngészése", loadingScene: "Jelenet betöltése…", align: "Igazítás", alignTop: "Felülre igazítás", alignBottom: "Alulra igazítás", alignLeft: "Balra igazítás", alignRight: "Jobbra igazítás", centerVertically: "Függőlegesen középre igazított", centerHorizontally: "Vízszintesen középre igazított", distributeHorizontally: "Vízszintes elosztás", distributeVertically: "Függőleges elosztás", flipHorizontal: "Vízszintes tükrözés", flipVertical: "Függőleges tükrözés", viewMode: "Nézet", share: "Megosztás", showStroke: "Körvonal színválasztó megjelenítése", showBackground: "Háttérszín-választó megjelenítése", toggleTheme: "Téma váltása", personalLib: "Személyes könyvtár", excalidrawLib: "Excalidraw könyvtár", decreaseFontSize: "Betűméret csökkentése", increaseFontSize: "Betűméret növelése", unbindText: "Szövegkötés feloldása", bindText: "", createContainerFromText: "Szöveg bekeretezése", link: { edit: "Hivatkozás szerkesztése", editEmbed: "Link szerkesztése / beágyazása", create: "Hivatkozás létrehozása", createEmbed: "Link létrehozása / beágyazása", label: "Hivatkozás", labelEmbed: "", empty: "" }, lineEditor: { edit: "", exit: "" }, elementLock: { lock: "Rögzítés", unlock: "Rögzítés feloldása", lockAll: "Összes rögzítése", unlockAll: "Összes feloldása" }, statusPublished: "", sidebarLock: "", selectAllElementsInFrame: "", removeAllElementsFromFrame: "", eyeDropper: "", textToDiagram: "", prompt: "" }, l = { noItems: "", hint_emptyLibrary: "", hint_emptyPrivateLibrary: "" }, s = { clearReset: "Vászon törlése", exportJSON: "Exportálás fájlba", exportImage: "Kép exportálása...", export: "Mentés másként...", copyToClipboard: "Vágólapra másolás", save: "Mentés az aktuális fájlba", saveAs: "Mentés másként", load: "Megnyitás", getShareableLink: "Megosztható link létrehozása", close: "Bezárás", selectLanguage: "Nyelv kiválasztása", scrollBackToContent: "Visszagörgetés a tartalomhoz", zoomIn: "Nagyítás", zoomOut: "Kicsinyítés", resetZoom: "Nagyítás alaphelyzetbe", menu: "Menü", done: "Kész", edit: "Szerkesztés", undo: "Vissza", redo: "Újra", resetLibrary: "Könyvtár alaphelyzetbe állítása", createNewRoom: "Új szoba létrehozása", fullScreen: "Teljes képernyő", darkMode: "Sötét mód", lightMode: "Világos mód", zenMode: "Letisztult mód", objectsSnapMode: "", exitZenMode: "Kilépés a letisztult módból", cancel: "Mégsem", clear: "Kiűrítés", remove: "Eltávolítás", embed: "", publishLibrary: "Közzététel", submit: "Elküldés", confirm: "Megerősítés", embeddableInteractionButton: "" }, r = { clearReset: "Ez a művelet törli a vászont. Biztos benne?", couldNotCreateShareableLink: "Nem sikerült megosztható linket létrehozni.", couldNotCreateShareableLinkTooBig: "Nem sikerült megosztható linket látrehozni: túl nagy a jelenet", couldNotLoadInvalidFile: "Nem sikerült betölteni a helytelen fájlt", importBackendFailed: "Nem sikerült betölteni a szerverről.", cannotExportEmptyCanvas: "Üres vászont nem lehet exportálni.", couldNotCopyToClipboard: "", decryptFailed: "Nem sikerült visszafejteni a titkosított adatot.", uploadedSecurly: "A feltöltést végpontok közötti titkosítással biztosítottuk, ami azt jelenti, hogy egy harmadik fél nem tudja megnézni a tartalmát, beleértve az Excalidraw szervereit is.", loadSceneOverridePrompt: "A betöltött külső rajz felül fogja írnia meglévőt. Szeretnéd folytatni?", collabStopOverridePrompt: `A munkamenet leállítása felül fogja írni az előzőleg helyben tárolt rajzot. Biztosan ezt akarod?
3
3
  (Ha meg akarod tartani a helyben tárolt rajzot, egyszerűen csak zárd be a böngésző fület)`, errorAddingToLibrary: "A tétel nem addható hozzá a könyvtárhoz", errorRemovingFromLibrary: "A tétel nem távolítható el a könyvtárból", confirmAddLibrary: "Ez a művelet {{numShapes}} formát fog hozzáadni a könyvtáradhoz. Biztos vagy benne?", imageDoesNotContainScene: "Úgy tűnik, hogy ez a kép nem tartalmaz jelenetadatokat. Engedélyezted a jelenetbeágyazást az exportálás során?", cannotRestoreFromImage: "A jelenet visszaállítása nem sikerült ebből a kép fájlból", invalidSceneUrl: "Nem sikerült importálni a jelenetet a megadott URL-ről. Rossz formátumú, vagy nem tartalmaz érvényes Excalidraw JSON-adatokat.", resetLibrary: "Ezzel törlöd a könyvtárát. biztos vagy ebben?", removeItemsFromsLibrary: "{{count}} elemet törölsz a könyvtárból?", invalidEncryptionKey: "A titkosítási kulcsnak 22 karakterből kell állnia. Az élő együttműködés le van tiltva.", collabOfflineWarning: "" }, o = { unsupportedFileType: "Nem támogatott fájltípus.", imageInsertError: "Nem sikerült beszúrni a képet. Próbáld újra később...", fileTooBig: "A fájl túl nagy. A megengedett maximális méret {{maxSize}}.", svgImageInsertError: "Nem sikerült beszúrni az SVG-képet. Az SVG szintaktika érvénytelennek tűnik.", failedToFetchImage: "", invalidSVGString: "Érvénytelen SVG.", cannotResolveCollabServer: "", importLibraryError: "", collabSaveFailed: "", collabSaveFailed_sizeExceeded: "", imageToolNotSupported: "", brave_measure_text_error: { line1: "", line2: "", line3: "", line4: "" }, libraryElementTypeError: { embeddable: "", iframe: "", image: "" }, asyncPasteFailedOnRead: "", asyncPasteFailedOnParse: "", copyToSystemClipboardFailed: "" }, n = { selection: "Kijelölés", image: "Kép beszúrása", rectangle: "Téglalap", diamond: "Rombusz", ellipse: "Ellipszis", arrow: "Nyíl", line: "Vonal", freedraw: "Rajzolás", text: "Szöveg", library: "Könyvtár", lock: "Rajzolás után az aktív eszközt tartsa kijelölve", penMode: "", link: "Hivatkozás hozzáadása/frissítése a kiválasztott alakzathoz", eraser: "Radír", frame: "", magicframe: "", embeddable: "Weblap beágyazása", laser: "Lézermutató", hand: "", extraTools: "További eszközök", mermaidToExcalidraw: "", magicSettings: "" }, i = { canvasActions: "Vászon műveletek", selectedShapeActions: "Kijelölt forma műveletei", shapes: "Alakzatok" }, z = { canvasPanning: "", linearElement: "Kattintással görbe, az eger húzásával pedig egyenes nyilat rajzolhatsz", freeDraw: "Kattints és húzd, majd engedd el, amikor végeztél", text: "Tipp: A kijelölés eszközzel a dupla kattintás új szöveget hoz létre", embeddable: "", text_selected: "Kattints duplán, vagy nyomj entert a szöveg szerkesztéséhez", text_editing: "Nyomjd meg az Escape vagy a Ctrl/Cmd+ENTER billentyűkombinációt a szerkesztés befejezéséhez", linearElementMulti: "Kattints a következő ív pozíciójára, vagy fejezd be a nyilat az Escape vagy Enter megnyomásával", lockAngle: "A SHIFT billentyű lenyomva tartásával korlátozhatja forgatás szögét", resize: `A SHIFT billentyű lenyomva tartásával az átméretezés megtartja az arányokat,
4
4
  az ALT lenyomva tartásával pedig a középpont egy helyben marad`, resizeImage: `A SHIFT billentyű lenyomva tartásával szabadon átméretezheted,
@@ -1,4 +1,4 @@
1
- import "./XCanvas-BxdLBkBz.js";
1
+ import "./XCanvas-C0EYxLJA.js";
2
2
  var n = { paste: "Tempel", pasteAsPlaintext: "Tempel sebagai teks biasa", pasteCharts: "Tempel diagram", selectAll: "Pilih semua", multiSelect: "Tambahkan elemen ke pilihan", moveCanvas: "Pindahkan kanvas", cut: "Potong", copy: "Salin", copyAsPng: "Salin ke papan klip sebagai PNG", copyAsSvg: "Salin ke papan klip sebagai SVG", copyText: "Salin ke papan klip sebagai teks", copySource: "", convertToCode: "", bringForward: "Bawa maju", sendToBack: "Kirim ke belakang", bringToFront: "Bawa ke depan", sendBackward: "Kirim mundur", delete: "Hapus", copyStyles: "Salin gaya", pasteStyles: "Tempelkan gaya", stroke: "Guratan", background: "Latar", fill: "Isian", strokeWidth: "Lebar guratan", strokeStyle: "Gaya guratan", strokeStyle_solid: "Padat", strokeStyle_dashed: "Putus-putus", strokeStyle_dotted: "Titik-titik", sloppiness: "Kecerobohan", opacity: "Keburaman", textAlign: "Perataan teks", edges: "Tepi", sharp: "Tajam", round: "Bulat", arrowheads: "Mata panah", arrowhead_none: "Tidak ada", arrowhead_arrow: "Panah", arrowhead_bar: "Batang", arrowhead_circle: "", arrowhead_circle_outline: "", arrowhead_triangle: "Segitiga", arrowhead_triangle_outline: "", arrowhead_diamond: "", arrowhead_diamond_outline: "", fontSize: "Ukuran font", fontFamily: "Jenis font", addWatermark: 'Tambahkan "Dibuat dengan Excalidraw"', handDrawn: "Tulisan tangan", normal: "Normal", code: "Kode", small: "Kecil", medium: "Sedang", large: "Besar", veryLarge: "Sangat besar", solid: "Padat", hachure: "Garis-garis", zigzag: "Zigzag", crossHatch: "Asiran silang", thin: "Lembut", bold: "Tebal", left: "Kiri", center: "Tengah", right: "Kanan", extraBold: "Sangat tebal", architect: "Arsitek", artist: "Artis", cartoonist: "Kartunis", fileTitle: "Nama file", colorPicker: "Pilihan Warna", canvasColors: "Digunakan di kanvas", canvasBackground: "Latar Kanvas", drawingCanvas: "Kanvas", layers: "Lapisan", actions: "Aksi", language: "Bahasa", liveCollaboration: "Kolaborasi langsung...", duplicateSelection: "Duplikat", untitled: "Tanpa judul", name: "Nama", yourName: "Nama Anda", madeWithExcalidraw: "Dibuat dengan Excalidraw", group: "Kelompokan pilihan", ungroup: "Pisahkan pilihan", collaborators: "Kolaborator", showGrid: "Tampilkan grid", addToLibrary: "Tambahkan ke pustaka", removeFromLibrary: "Hapus dari pustaka", libraryLoadingMessage: "Memuat pustaka…", libraries: "Telusur pustaka", loadingScene: "Memuat pemandangan…", align: "Perataan", alignTop: "Rata atas", alignBottom: "Rata bawah", alignLeft: "Rata kiri", alignRight: "Rata kanan", centerVertically: "Pusatkan secara vertikal", centerHorizontally: "Pusatkan secara horizontal", distributeHorizontally: "Distribusikan horizontal", distributeVertically: "Distribusikan vertikal", flipHorizontal: "Balikkan horizontal", flipVertical: "Balikkan vertikal", viewMode: "Mode tampilan", share: "Bagikan", showStroke: "Tampilkan garis pengambil warna", showBackground: "Tampilkan latar pengambil warna", toggleTheme: "Ubah tema", personalLib: "Pustaka Pribadi", excalidrawLib: "Pustaka Excalidraw", decreaseFontSize: "Kecilkan ukuran font", increaseFontSize: "Besarkan ukuran font", unbindText: "Lepas teks", bindText: "Kunci teks ke kontainer", createContainerFromText: "Bungkus teks dalam kontainer", link: { edit: "Edit tautan", editEmbed: "", create: "Buat tautan", createEmbed: "", label: "Tautan", labelEmbed: "", empty: "" }, lineEditor: { edit: "Edit tautan", exit: "Keluar editor garis" }, elementLock: { lock: "Kunci", unlock: "Lepas", lockAll: "Kunci semua", unlockAll: "Lepas semua" }, statusPublished: "Telah terbit", sidebarLock: "Biarkan sidebar tetap terbuka", selectAllElementsInFrame: "Pilih semua elemen di bingkai", removeAllElementsFromFrame: "Hapus semua elemen dari bingkai", eyeDropper: "Ambil warna dari kanvas", textToDiagram: "", prompt: "" }, i = { noItems: "Belum ada item yang ditambahkan...", hint_emptyLibrary: "Pilih item pada kanvas untuk menambahkan nya di sini, atau pasang pustaka dari gudang di bawah ini.", hint_emptyPrivateLibrary: "Pilih item pada kanvas untuk menambahkan nya di sini." }, t = { clearReset: "Setel Ulang Kanvas", exportJSON: "Ekspor ke file", exportImage: "Ekspor gambar...", export: "Simpan ke...", copyToClipboard: "Salin ke Papan Klip", save: "Simpan ke file sekarang", saveAs: "Simpan sebagai", load: "Buka", getShareableLink: "Buat Tautan yang Bisa Dibagian", close: "Tutup", selectLanguage: "Pilih bahasa", scrollBackToContent: "Gulir kembali ke konten", zoomIn: "Besarkan", zoomOut: "Kecilkan", resetZoom: "Reset Pembesaran", menu: "Menu", done: "Selesai", edit: "Edit", undo: "Urungkan", redo: "Ulangi", resetLibrary: "Reset pustaka", createNewRoom: "Buat ruang baru", fullScreen: "Layar penuh", darkMode: "Mode gelap", lightMode: "Mode terang", zenMode: "Mode zen", objectsSnapMode: "", exitZenMode: "Keluar dari mode zen", cancel: "Batal", clear: "Hapus", remove: "Hapus", embed: "", publishLibrary: "Terbitkan", submit: "Kirimkan", confirm: "Konfirmasi", embeddableInteractionButton: "" }, r = { clearReset: "Ini akan menghapus semua yang ada dikanvas. Apakah kamu yakin ?", couldNotCreateShareableLink: "Tidak bisa membuat tautan yang bisa dibagikan", couldNotCreateShareableLinkTooBig: "Tidak dapat membuat tautan yang dapat dibagikan: pemandangan terlalu besar", couldNotLoadInvalidFile: "Tidak dapat memuat berkas yang tidak valid", importBackendFailed: "Gagal mengimpor dari backend", cannotExportEmptyCanvas: "Tidak bisa mengekspor kanvas kosong", couldNotCopyToClipboard: "Tidak bisa menyalin ke papan klip.", decryptFailed: "Tidak dapat mengdekripsi data.", uploadedSecurly: "Pengunggahan ini telah diamankan menggunakan enkripsi end-to-end, artinya server Excalidraw dan pihak ketiga tidak data membaca nya", loadSceneOverridePrompt: "Memuat gambar external akan mengganti konten Anda yang ada. Apakah Anda ingin melanjutkan?", collabStopOverridePrompt: `Menghentikan sesi akan menimpa gambar Anda yang tersimpan secara lokal. Anda yakin?
3
3
 
4
4
  (Jika Anda ingin menyimpan gambar lokal Anda, gantinya cukup tutup tab browser.)`, errorAddingToLibrary: "Tidak dapat menambahkan item ke pustaka", errorRemovingFromLibrary: "Tidak dapat membuang item dari pustaka", confirmAddLibrary: "Ini akan menambahkan {{numShapes}} bentuk ke pustaka Anda. Anda yakin?", imageDoesNotContainScene: "Gambar ini sepertinya tidak terdapat data pemandangan. Sudahkah Anda mengaktifkan penyematan pemandangan ketika ekspor?", cannotRestoreFromImage: "Pemandangan tidak dapat dipulihkan dari file gambar ini", invalidSceneUrl: "Tidak dapat impor pemandangan dari URL. Kemungkinan URL itu rusak atau tidak berisi data JSON Excalidraw yang valid.", resetLibrary: "Ini akan menghapus pustaka Anda. Anda yakin?", removeItemsFromsLibrary: "Hapus {{count}} item dari pustaka?", invalidEncryptionKey: "Sandi enkripsi harus 22 karakter. Kolaborasi langsung dinonaktifkan.", collabOfflineWarning: `Tidak ada koneksi internet.
@@ -1,4 +1,4 @@
1
- import { q, G, X } from "./XCanvas-BxdLBkBz.js";
1
+ import { q, G, X } from "./XCanvas-C0EYxLJA.js";
2
2
  export {
3
3
  q as decodePngMetadata,
4
4
  G as encodePngMetadata,
@@ -1,9 +1,9 @@
1
- import { i as isUndefined, G as Graph } from "./graph-Ct2tKpKj.js";
2
- import { m as map, l as layout } from "./layout-AJxYKqQV.js";
3
- import { c as clone } from "./clone-D2FUK8WY.js";
4
- import { i as insertMarkers$1, u as updateNodeBounds, s as setNodeElem, c as insertNode, b as insertEdgeLabel, g as getSubGraphTitleMargins, d as positionNode, a as insertEdge, p as positionEdgeLabel, e as intersectRect$1, f as createLabel$1, h as clear$1$1, j as clear$2 } from "./edges-e0da2a9e-9VbVapWU.js";
5
- import { l as log$1, g as getConfig, v as evaluate, d as select } from "./index-CLOU2Ikr.js";
6
- import { c as createText } from "./createText-2e5e7dd3-Ca1JfQaJ.js";
1
+ import { i as isUndefined, G as Graph } from "./graph-B2f2BEF0.js";
2
+ import { m as map, l as layout } from "./layout-BG2lRE_m.js";
3
+ import { c as clone } from "./clone-BYKyEIHh.js";
4
+ import { i as insertMarkers$1, u as updateNodeBounds, s as setNodeElem, c as insertNode, b as insertEdgeLabel, g as getSubGraphTitleMargins, d as positionNode, a as insertEdge, p as positionEdgeLabel, e as intersectRect$1, f as createLabel$1, h as clear$1$1, j as clear$2 } from "./edges-e0da2a9e-BQONd9CI.js";
5
+ import { l as log$1, g as getConfig, v as evaluate, d as select } from "./index-9w7ukxHz.js";
6
+ import { c as createText } from "./createText-2e5e7dd3-BUcF4IVq.js";
7
7
  function write(g) {
8
8
  var json = {
9
9
  options: {
@@ -1,4 +1,4 @@
1
- import { J as getDefaultExportFromCjs } from "./XCanvas-BxdLBkBz.js";
1
+ import { J as getDefaultExportFromCjs } from "./XCanvas-C0EYxLJA.js";
2
2
  const DEFAULT_FONT_SIZE = 20;
3
3
  const SVG_TO_SHAPE_MAPPER = {
4
4
  rect: "rectangle",
@@ -9892,7 +9892,7 @@ const detector$l = (txt) => {
9892
9892
  return /^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(txt);
9893
9893
  };
9894
9894
  const loader$m = async () => {
9895
- const { diagram: diagram2 } = await import("./c4Diagram-3d4e48cf-Byd2vU9K.js");
9895
+ const { diagram: diagram2 } = await import("./c4Diagram-3d4e48cf-282FLQHO.js");
9896
9896
  return { id: id$l, diagram: diagram2 };
9897
9897
  };
9898
9898
  const plugin$j = {
@@ -9910,7 +9910,7 @@ const detector$k = (txt, config2) => {
9910
9910
  return /^\s*graph/.test(txt);
9911
9911
  };
9912
9912
  const loader$l = async () => {
9913
- const { diagram: diagram2 } = await import("./flowDiagram-66a62f08-C6TTwS5_.js");
9913
+ const { diagram: diagram2 } = await import("./flowDiagram-66a62f08--s_n7gkw.js");
9914
9914
  return { id: id$k, diagram: diagram2 };
9915
9915
  };
9916
9916
  const plugin$i = {
@@ -9931,7 +9931,7 @@ const detector$j = (txt, config2) => {
9931
9931
  return /^\s*flowchart/.test(txt);
9932
9932
  };
9933
9933
  const loader$k = async () => {
9934
- const { diagram: diagram2 } = await import("./flowDiagram-v2-96b9c2cf-CzfeUNGP.js");
9934
+ const { diagram: diagram2 } = await import("./flowDiagram-v2-96b9c2cf-RzQUc3Wr.js");
9935
9935
  return { id: id$j, diagram: diagram2 };
9936
9936
  };
9937
9937
  const plugin$h = {
@@ -9945,7 +9945,7 @@ const detector$i = (txt) => {
9945
9945
  return /^\s*erDiagram/.test(txt);
9946
9946
  };
9947
9947
  const loader$j = async () => {
9948
- const { diagram: diagram2 } = await import("./erDiagram-9861fffd-D4S9QDes.js");
9948
+ const { diagram: diagram2 } = await import("./erDiagram-9861fffd-CMvcb2VR.js");
9949
9949
  return { id: id$i, diagram: diagram2 };
9950
9950
  };
9951
9951
  const plugin$g = {
@@ -9959,7 +9959,7 @@ const detector$h = (txt) => {
9959
9959
  return /^\s*gitGraph/.test(txt);
9960
9960
  };
9961
9961
  const loader$i = async () => {
9962
- const { diagram: diagram2 } = await import("./gitGraphDiagram-72cf32ee-CSGI-xRI.js");
9962
+ const { diagram: diagram2 } = await import("./gitGraphDiagram-72cf32ee-DUQ30j3d.js");
9963
9963
  return { id: id$h, diagram: diagram2 };
9964
9964
  };
9965
9965
  const plugin$f = {
@@ -9973,7 +9973,7 @@ const detector$g = (txt) => {
9973
9973
  return /^\s*gantt/.test(txt);
9974
9974
  };
9975
9975
  const loader$h = async () => {
9976
- const { diagram: diagram2 } = await import("./ganttDiagram-c361ad54-CAnfd8Sw.js");
9976
+ const { diagram: diagram2 } = await import("./ganttDiagram-c361ad54-CCBU0F3m.js");
9977
9977
  return { id: id$g, diagram: diagram2 };
9978
9978
  };
9979
9979
  const plugin$e = {
@@ -9987,7 +9987,7 @@ const detector$f = (txt) => {
9987
9987
  return /^\s*info/.test(txt);
9988
9988
  };
9989
9989
  const loader$g = async () => {
9990
- const { diagram: diagram2 } = await import("./infoDiagram-f8f76790-NqA75uBo.js");
9990
+ const { diagram: diagram2 } = await import("./infoDiagram-f8f76790-C4yNAsLD.js");
9991
9991
  return { id: id$f, diagram: diagram2 };
9992
9992
  };
9993
9993
  const info = {
@@ -10000,7 +10000,7 @@ const detector$e = (txt) => {
10000
10000
  return /^\s*pie/.test(txt);
10001
10001
  };
10002
10002
  const loader$f = async () => {
10003
- const { diagram: diagram2 } = await import("./pieDiagram-8a3498a8-DueGoZOh.js");
10003
+ const { diagram: diagram2 } = await import("./pieDiagram-8a3498a8-B_WLhbLr.js");
10004
10004
  return { id: id$e, diagram: diagram2 };
10005
10005
  };
10006
10006
  const pie = {
@@ -10013,7 +10013,7 @@ const detector$d = (txt) => {
10013
10013
  return /^\s*quadrantChart/.test(txt);
10014
10014
  };
10015
10015
  const loader$e = async () => {
10016
- const { diagram: diagram2 } = await import("./quadrantDiagram-120e2f19-Tb6_oGIn.js");
10016
+ const { diagram: diagram2 } = await import("./quadrantDiagram-120e2f19-2OghUJdy.js");
10017
10017
  return { id: id$d, diagram: diagram2 };
10018
10018
  };
10019
10019
  const plugin$d = {
@@ -10027,7 +10027,7 @@ const detector$c = (txt) => {
10027
10027
  return /^\s*xychart-beta/.test(txt);
10028
10028
  };
10029
10029
  const loader$d = async () => {
10030
- const { diagram: diagram2 } = await import("./xychartDiagram-e933f94c-P1e6EEaH.js");
10030
+ const { diagram: diagram2 } = await import("./xychartDiagram-e933f94c-wcpGhGK2.js");
10031
10031
  return { id: id$c, diagram: diagram2 };
10032
10032
  };
10033
10033
  const plugin$c = {
@@ -10041,7 +10041,7 @@ const detector$b = (txt) => {
10041
10041
  return /^\s*requirement(Diagram)?/.test(txt);
10042
10042
  };
10043
10043
  const loader$c = async () => {
10044
- const { diagram: diagram2 } = await import("./requirementDiagram-deff3bca-CEeg0ep-.js");
10044
+ const { diagram: diagram2 } = await import("./requirementDiagram-deff3bca-oKBIEwMX.js");
10045
10045
  return { id: id$b, diagram: diagram2 };
10046
10046
  };
10047
10047
  const plugin$b = {
@@ -10055,7 +10055,7 @@ const detector$a = (txt) => {
10055
10055
  return /^\s*sequenceDiagram/.test(txt);
10056
10056
  };
10057
10057
  const loader$b = async () => {
10058
- const { diagram: diagram2 } = await import("./sequenceDiagram-704730f1-CZ72D-Nd.js");
10058
+ const { diagram: diagram2 } = await import("./sequenceDiagram-704730f1-DRBGLLOM.js");
10059
10059
  return { id: id$a, diagram: diagram2 };
10060
10060
  };
10061
10061
  const plugin$a = {
@@ -10073,7 +10073,7 @@ const detector$9 = (txt, config2) => {
10073
10073
  return /^\s*classDiagram/.test(txt);
10074
10074
  };
10075
10075
  const loader$a = async () => {
10076
- const { diagram: diagram2 } = await import("./classDiagram-70f12bd4-CwfYadk-.js");
10076
+ const { diagram: diagram2 } = await import("./classDiagram-70f12bd4-zmngDfGr.js");
10077
10077
  return { id: id$9, diagram: diagram2 };
10078
10078
  };
10079
10079
  const plugin$9 = {
@@ -10091,7 +10091,7 @@ const detector$8 = (txt, config2) => {
10091
10091
  return /^\s*classDiagram-v2/.test(txt);
10092
10092
  };
10093
10093
  const loader$9 = async () => {
10094
- const { diagram: diagram2 } = await import("./classDiagram-v2-f2320105-B28MuM8f.js");
10094
+ const { diagram: diagram2 } = await import("./classDiagram-v2-f2320105-DMglAXxG.js");
10095
10095
  return { id: id$8, diagram: diagram2 };
10096
10096
  };
10097
10097
  const plugin$8 = {
@@ -10109,7 +10109,7 @@ const detector$7 = (txt, config2) => {
10109
10109
  return /^\s*stateDiagram/.test(txt);
10110
10110
  };
10111
10111
  const loader$8 = async () => {
10112
- const { diagram: diagram2 } = await import("./stateDiagram-587899a1-XISZzz_f.js");
10112
+ const { diagram: diagram2 } = await import("./stateDiagram-587899a1-CjZz9jaP.js");
10113
10113
  return { id: id$7, diagram: diagram2 };
10114
10114
  };
10115
10115
  const plugin$7 = {
@@ -10130,7 +10130,7 @@ const detector$6 = (txt, config2) => {
10130
10130
  return false;
10131
10131
  };
10132
10132
  const loader$7 = async () => {
10133
- const { diagram: diagram2 } = await import("./stateDiagram-v2-d93cdb3a-DbCcmzTc.js");
10133
+ const { diagram: diagram2 } = await import("./stateDiagram-v2-d93cdb3a-DBsOvMyf.js");
10134
10134
  return { id: id$6, diagram: diagram2 };
10135
10135
  };
10136
10136
  const plugin$6 = {
@@ -10144,7 +10144,7 @@ const detector$5 = (txt) => {
10144
10144
  return /^\s*journey/.test(txt);
10145
10145
  };
10146
10146
  const loader$6 = async () => {
10147
- const { diagram: diagram2 } = await import("./journeyDiagram-49397b02-By5oBzsZ.js");
10147
+ const { diagram: diagram2 } = await import("./journeyDiagram-49397b02-Bj59pCtI.js");
10148
10148
  return { id: id$5, diagram: diagram2 };
10149
10149
  };
10150
10150
  const plugin$5 = {
@@ -10399,7 +10399,7 @@ const detector$4 = (txt, config2) => {
10399
10399
  return false;
10400
10400
  };
10401
10401
  const loader$5 = async () => {
10402
- const { diagram: diagram2 } = await import("./flowchart-elk-definition-4a651766-CRv1kWtk.js");
10402
+ const { diagram: diagram2 } = await import("./flowchart-elk-definition-4a651766-BIq1Cqsd.js");
10403
10403
  return { id: id$4, diagram: diagram2 };
10404
10404
  };
10405
10405
  const plugin$4 = {
@@ -10413,7 +10413,7 @@ const detector$3 = (txt) => {
10413
10413
  return /^\s*timeline/.test(txt);
10414
10414
  };
10415
10415
  const loader$4 = async () => {
10416
- const { diagram: diagram2 } = await import("./timeline-definition-85554ec2-DV6084Gl.js");
10416
+ const { diagram: diagram2 } = await import("./timeline-definition-85554ec2-B1w5dvMD.js");
10417
10417
  return { id: id$3, diagram: diagram2 };
10418
10418
  };
10419
10419
  const plugin$3 = {
@@ -10427,7 +10427,7 @@ const detector$2 = (txt) => {
10427
10427
  return /^\s*mindmap/.test(txt);
10428
10428
  };
10429
10429
  const loader$3 = async () => {
10430
- const { diagram: diagram2 } = await import("./mindmap-definition-fc14e90a-CBlwH_UF.js");
10430
+ const { diagram: diagram2 } = await import("./mindmap-definition-fc14e90a-DDpRg6HK.js");
10431
10431
  return { id: id$2, diagram: diagram2 };
10432
10432
  };
10433
10433
  const plugin$2 = {
@@ -10441,7 +10441,7 @@ const detector$1 = (txt) => {
10441
10441
  return /^\s*sankey-beta/.test(txt);
10442
10442
  };
10443
10443
  const loader$2 = async () => {
10444
- const { diagram: diagram2 } = await import("./sankeyDiagram-04a897e0-CGTLQ8Gm.js");
10444
+ const { diagram: diagram2 } = await import("./sankeyDiagram-04a897e0-B0B-Yis1.js");
10445
10445
  return { id: id$1, diagram: diagram2 };
10446
10446
  };
10447
10447
  const plugin$1 = {
@@ -10455,7 +10455,7 @@ const detector = (txt) => {
10455
10455
  return /^\s*block-beta/.test(txt);
10456
10456
  };
10457
10457
  const loader$1 = async () => {
10458
- const { diagram: diagram2 } = await import("./blockDiagram-38ab4fdb-DtemKfEh.js");
10458
+ const { diagram: diagram2 } = await import("./blockDiagram-38ab4fdb-CzhnG2_t.js");
10459
10459
  return { id, diagram: diagram2 };
10460
10460
  };
10461
10461
  const plugin = {
package/dist/index.css CHANGED
@@ -17,7 +17,9 @@
17
17
  --color-red-500: oklch(63.7% .237 25.331);
18
18
  --color-blue-400: oklch(70.7% .165 254.624);
19
19
  --color-neutral-400: oklch(70.8% 0 0);
20
+ --color-neutral-500: oklch(55.6% 0 0);
20
21
  --color-neutral-600: oklch(43.9% 0 0);
22
+ --color-black: #000;
21
23
  --spacing: .25rem;
22
24
  --default-font-family: var(--font-sans);
23
25
  --default-mono-font-family: var(--font-mono);
@@ -403,10 +405,18 @@
403
405
  border-color: var(--color-neutral-400);
404
406
  }
405
407
 
408
+ .border-neutral-500 {
409
+ border-color: var(--color-neutral-500);
410
+ }
411
+
406
412
  .p-1 {
407
413
  padding: calc(var(--spacing) * 1);
408
414
  }
409
415
 
416
+ .text-black {
417
+ color: var(--color-black);
418
+ }
419
+
410
420
  .text-blue-400 {
411
421
  color: var(--color-blue-400);
412
422
  }
package/dist/index.d.ts CHANGED
@@ -7,6 +7,7 @@ export declare type Events = {
7
7
  type: "chat-to-edit";
8
8
  url: string;
9
9
  prompt: string;
10
+ id: string;
10
11
  };
11
12
  };
12
13
 
@@ -19,8 +20,10 @@ export declare interface XCanvasAPI {
19
20
  rawApi: ExcalidrawImperativeAPI;
20
21
  /** 在控制台中打印出当前canvas状态,用于调试 */
21
22
  __printCanvasInfo: () => void;
22
- /** 插入图片 */
23
- insertImg: (url: string) => Promise<void>;
23
+ /** 插入多张图片 */
24
+ insertImgs: (url: string[]) => Promise<void>;
25
+ /** 追加多张图片到画布末尾, 如果画布中存在对应图片(url相同),则不做任何操作 */
26
+ appendImgs: (urls: string[]) => Promise<void>;
24
27
  /** 保存canvas数据 */
25
28
  save: () => any;
26
29
  /** 从数据中恢复canvas画布 */
@@ -30,6 +33,10 @@ export declare interface XCanvasAPI {
30
33
  * @returns 同 `HTMLCanvasElement.toDataURL()` base64 编码的 png 文件,
31
34
  */
32
35
  captureCanvas: () => Promise<string>;
36
+ /**
37
+ * 将指定的 loading 元素替换为真实图片
38
+ */
39
+ replaceLoadingWithImages: (id: string, urls: string[]) => Promise<void>;
33
40
  }
34
41
 
35
42
  export declare interface XcanvasProps {
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import "react/jsx-runtime";
2
- import { M } from "./XCanvas-BxdLBkBz.js";
2
+ import { M } from "./XCanvas-C0EYxLJA.js";
3
3
  import "jotai";
4
4
  import "react";
5
5
  export {
@@ -27425,7 +27425,8 @@ TTD mermaid definition render errror: ${M.message}`, "color: yellow"), le("ai",
27425
27425
  initialData: {
27426
27426
  elements: [],
27427
27427
  appState: {
27428
- zoom: { value: 0.4 }
27428
+ gridModeEnabled: true,
27429
+ zoom: { value: 0.2 }
27429
27430
  }
27430
27431
  },
27431
27432
  viewModeEnabled: false,
@@ -27474,11 +27475,42 @@ TTD mermaid definition render errror: ${M.message}`, "color: yellow"), le("ai",
27474
27475
  });
27475
27476
  };
27476
27477
  img.onerror = (err2) => {
27478
+ console.error(`failed to download image: ${src}`);
27477
27479
  reject2(err2);
27478
27480
  };
27479
27481
  img.src = src;
27480
27482
  });
27481
27483
  }
27484
+ function findPlaceForNewElements(appState, elements2, newElements) {
27485
+ const padding2 = 100;
27486
+ const gap = 100;
27487
+ const canvasW = appState.width / appState.zoom.value;
27488
+ appState.height / appState.zoom.value;
27489
+ const minX = -appState.scrollX + padding2;
27490
+ const minY = -appState.scrollY + padding2;
27491
+ const maxX = minX + canvasW - padding2 * 2;
27492
+ let maxElY = -Infinity;
27493
+ elements2.forEach((el2) => {
27494
+ maxElY = Math.max(maxElY, el2.y + el2.height);
27495
+ });
27496
+ const px2 = minX;
27497
+ const py = Math.max(maxElY, minY) + gap;
27498
+ let startX2 = px2;
27499
+ let startY2 = py;
27500
+ const ret = newElements.map((it2, index2) => {
27501
+ if (startX2 + it2.width > maxX) {
27502
+ startX2 = px2;
27503
+ startY2 += it2.height + gap;
27504
+ }
27505
+ const place = {
27506
+ x: startX2,
27507
+ y: startY2
27508
+ };
27509
+ startX2 += it2.width + gap;
27510
+ return place;
27511
+ });
27512
+ return ret;
27513
+ }
27482
27514
  function ApiFactory() {
27483
27515
  const excalidrawAPI = jotai.useAtomValue(excalidrawApiAtom);
27484
27516
  const setApi = jotai.useSetAtom(apiAtom);
@@ -27486,6 +27518,48 @@ TTD mermaid definition render errror: ${M.message}`, "color: yellow"), le("ai",
27486
27518
  if (!excalidrawAPI) {
27487
27519
  return;
27488
27520
  }
27521
+ const insertImgs = async (urls) => {
27522
+ const rets = await Promise.all(
27523
+ urls.map(async (it2) => {
27524
+ const temp = await fetchImageAsDataUrl(it2);
27525
+ return {
27526
+ ...temp,
27527
+ url: it2
27528
+ };
27529
+ })
27530
+ );
27531
+ rets.forEach((it2) => {
27532
+ excalidrawAPI.addFiles([
27533
+ {
27534
+ mimeType: "image/png",
27535
+ id: it2.url,
27536
+ dataURL: it2.dataUrl,
27537
+ created: Date.now()
27538
+ }
27539
+ ]);
27540
+ });
27541
+ const places = findPlaceForNewElements(
27542
+ excalidrawAPI.getAppState(),
27543
+ excalidrawAPI.getSceneElements(),
27544
+ rets
27545
+ );
27546
+ const els = Yi(
27547
+ rets.map((it2, index2) => {
27548
+ return {
27549
+ type: "image",
27550
+ width: it2.width,
27551
+ height: it2.height,
27552
+ x: places[index2].x,
27553
+ y: places[index2].y,
27554
+ fileId: it2.url
27555
+ };
27556
+ })
27557
+ );
27558
+ const currentElements = excalidrawAPI.getSceneElements();
27559
+ excalidrawAPI.updateScene({
27560
+ elements: [...currentElements, ...els]
27561
+ });
27562
+ };
27489
27563
  setApi({
27490
27564
  rawApi: excalidrawAPI,
27491
27565
  __printCanvasInfo: () => {
@@ -27496,34 +27570,11 @@ TTD mermaid definition render errror: ${M.message}`, "color: yellow"), le("ai",
27496
27570
  appState: excalidrawAPI.getAppState()
27497
27571
  });
27498
27572
  },
27499
- insertImg: async (url) => {
27500
- const {
27501
- width: width2,
27502
- height,
27503
- dataUrl: imgDataUrl
27504
- } = await fetchImageAsDataUrl(url);
27505
- excalidrawAPI?.addFiles([
27506
- {
27507
- mimeType: "image/png",
27508
- id: url,
27509
- dataURL: imgDataUrl,
27510
- created: Date.now()
27511
- }
27512
- ]);
27513
- const el2 = Yi([
27514
- {
27515
- type: "image",
27516
- width: width2,
27517
- height,
27518
- x: 0,
27519
- y: 0,
27520
- fileId: url
27521
- }
27522
- ]);
27523
- const currentElements = excalidrawAPI.getSceneElements();
27524
- excalidrawAPI.updateScene({
27525
- elements: [...currentElements, ...el2]
27526
- });
27573
+ insertImgs,
27574
+ appendImgs: async (urls) => {
27575
+ const files = excalidrawAPI.getFiles();
27576
+ const newUrls = urls.filter((it2) => !files[it2]);
27577
+ await insertImgs(newUrls);
27527
27578
  },
27528
27579
  save: () => {
27529
27580
  const appState = excalidrawAPI.getAppState();
@@ -27570,11 +27621,59 @@ TTD mermaid definition render errror: ${M.message}`, "color: yellow"), le("ai",
27570
27621
  },
27571
27622
  files: excalidrawAPI.getFiles(),
27572
27623
  getDimensions: () => {
27573
- return { width: 1e3, height: 1e3, scale: 0.4 };
27624
+ return { width: 1e3, height: 1e3, scale: 0.3 };
27574
27625
  }
27575
27626
  });
27576
27627
  const base64 = canvas.toDataURL("image/png", 1);
27577
27628
  return base64;
27629
+ },
27630
+ replaceLoadingWithImages: async (id2, urls) => {
27631
+ const elements2 = excalidrawAPI.getSceneElements();
27632
+ const loadingEl = elements2.find(
27633
+ (it2) => it2.type === "embeddable" && it2.id === id2
27634
+ );
27635
+ if (!loadingEl) {
27636
+ insertImgs(urls);
27637
+ return;
27638
+ }
27639
+ const rets = await Promise.all(
27640
+ urls.map(async (it2) => {
27641
+ const temp = await fetchImageAsDataUrl(it2);
27642
+ return {
27643
+ ...temp,
27644
+ url: it2
27645
+ };
27646
+ })
27647
+ );
27648
+ rets.forEach((it2) => {
27649
+ excalidrawAPI.addFiles([
27650
+ {
27651
+ mimeType: "image/png",
27652
+ id: it2.url,
27653
+ dataURL: it2.dataUrl,
27654
+ created: Date.now()
27655
+ }
27656
+ ]);
27657
+ });
27658
+ let x3 = loadingEl.x;
27659
+ let y3 = loadingEl.y;
27660
+ const els = Yi(
27661
+ rets.map((it2, index2) => {
27662
+ const tempX = x3;
27663
+ x3 += it2.width + 100;
27664
+ return {
27665
+ type: "image",
27666
+ width: it2.width,
27667
+ height: it2.height,
27668
+ x: tempX,
27669
+ y: y3,
27670
+ fileId: it2.url
27671
+ };
27672
+ })
27673
+ );
27674
+ excalidrawAPI.updateScene({
27675
+ elements: [...elements2.filter((it2) => it2.id !== id2), ...els]
27676
+ });
27578
27677
  }
27579
27678
  });
27580
27679
  }, [excalidrawAPI, setApi]);
@@ -27606,12 +27705,80 @@ TTD mermaid definition render errror: ${M.message}`, "color: yellow"), le("ai",
27606
27705
  const base64 = canvas.toDataURL("image/png", 1);
27607
27706
  return base64;
27608
27707
  };
27708
+ const insertLoading = () => {
27709
+ if (!excalidrawAPI) return;
27710
+ const appState = excalidrawAPI.getAppState();
27711
+ const selectedIds = appState.selectedElementIds;
27712
+ if (Object.keys(selectedIds).length === 0) {
27713
+ throw "没有选中任何元素";
27714
+ }
27715
+ const selectedElements = excalidrawAPI.getSceneElements().filter((element2) => appState.selectedElementIds[element2.id]);
27716
+ if (selectedElements.length === 0) {
27717
+ throw "没有选中任何可见元素";
27718
+ }
27719
+ let minY = Infinity;
27720
+ let maxX = -Infinity;
27721
+ let maxY = -Infinity;
27722
+ selectedElements.forEach((el22) => {
27723
+ minY = Math.min(minY, el22.y);
27724
+ maxX = Math.max(maxX, el22.x + el22.width);
27725
+ maxY = Math.max(maxY, el22.y + el22.height);
27726
+ });
27727
+ const h3 = maxY - minY;
27728
+ const el2 = Yi([
27729
+ {
27730
+ type: "embeddable",
27731
+ x: maxX + 100,
27732
+ y: minY,
27733
+ width: h3,
27734
+ height: h3,
27735
+ id: `loading-${Date.now()}`,
27736
+ link: "https://www.google.com",
27737
+ // 添加必需的基本样式属性
27738
+ strokeColor: "#000",
27739
+ backgroundColor: "transparent",
27740
+ fillStyle: "solid",
27741
+ strokeWidth: 1,
27742
+ strokeStyle: "solid",
27743
+ roundness: null,
27744
+ roughness: 1,
27745
+ opacity: 100,
27746
+ // 添加必需的变换属性
27747
+ angle: 0,
27748
+ seed: Math.random(),
27749
+ version: 1,
27750
+ versionNonce: Math.random(),
27751
+ // 添加必需的状态属性
27752
+ locked: false,
27753
+ isDeleted: false,
27754
+ groupIds: [],
27755
+ // 添加绑定框属性
27756
+ boundElements: [],
27757
+ updated: Date.now(),
27758
+ // 添加必需的索引和帧ID属性
27759
+ frameId: null,
27760
+ index: null,
27761
+ // 添加缺失的index属性
27762
+ customData: {
27763
+ type: "loading",
27764
+ component: "loading"
27765
+ }
27766
+ }
27767
+ ]);
27768
+ const currentElements = excalidrawAPI.getSceneElements();
27769
+ excalidrawAPI.updateScene({
27770
+ elements: [...currentElements, ...el2]
27771
+ });
27772
+ return el2[0].id;
27773
+ };
27609
27774
  const handleChatToEdit = async () => {
27610
27775
  const dataUrl = await handleExport();
27776
+ const id2 = insertLoading();
27611
27777
  emitter.emit("chat-to-edit", {
27612
27778
  type: "chat-to-edit",
27613
27779
  url: dataUrl,
27614
- prompt
27780
+ prompt,
27781
+ id: id2
27615
27782
  });
27616
27783
  };
27617
27784
  React.useEffect(() => {
@@ -1,4 +1,4 @@
1
- import { l as log$1, B as selectSvgElement, e as configureSvgSize } from "./index-CLOU2Ikr.js";
1
+ import { l as log$1, B as selectSvgElement, e as configureSvgSize } from "./index-9w7ukxHz.js";
2
2
  var parser = (function() {
3
3
  var o = function(k, v, o2, l) {
4
4
  for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
@@ -1,4 +1,4 @@
1
- import "./XCanvas-BxdLBkBz.js";
1
+ import "./XCanvas-C0EYxLJA.js";
2
2
  var a = { paste: "Incolla", pasteAsPlaintext: "Incolla come testo normale", pasteCharts: "Incolla grafici", selectAll: "Seleziona tutto", multiSelect: "Aggiungi elemento alla selezione", moveCanvas: "Sposta tela", cut: "Taglia", copy: "Copia", copyAsPng: "Copia negli appunti come PNG", copyAsSvg: "Copia negli appunti come SVG", copyText: "Copia negli appunti come testo", copySource: "Copia sorgente negli appunti", convertToCode: "Converti in codice", bringForward: "Porta avanti", sendToBack: "Manda in fondo", bringToFront: "Porta in cima", sendBackward: "Manda dietro", delete: "Elimina", copyStyles: "Copia stili", pasteStyles: "Incolla stili", stroke: "Tratto", background: "Sfondo", fill: "Riempimento", strokeWidth: "Spessore del tratto", strokeStyle: "Stile del tratto", strokeStyle_solid: "Pieno", strokeStyle_dashed: "Tratteggiato", strokeStyle_dotted: "Punteggiato", sloppiness: "Imprecisione", opacity: "Opacità", textAlign: "Allineamento del testo", edges: "Bordi", sharp: "Acuto", round: "Rotondo", arrowheads: "Punta della freccia", arrowhead_none: "Nessuno", arrowhead_arrow: "Freccia", arrowhead_bar: "Barra", arrowhead_circle: "Cerchio", arrowhead_circle_outline: "Cerchio (contorno)", arrowhead_triangle: "Triangolo", arrowhead_triangle_outline: "Triangolo (contorno)", arrowhead_diamond: "Diamante", arrowhead_diamond_outline: "Diamante (contorno)", fontSize: "Dimensione carattere", fontFamily: "Carattere", addWatermark: 'Aggiungi "Creato con Excalidraw"', handDrawn: "A mano libera", normal: "Normale", code: "Codice", small: "Piccolo", medium: "Medio", large: "Grande", veryLarge: "Molto grande", solid: "Pieno", hachure: "Tratteggio obliquo", zigzag: "Zig zag", crossHatch: "Tratteggio incrociato", thin: "Sottile", bold: "Grassetto", left: "Sinistra", center: "Centro", right: "Destra", extraBold: "Extra Grassetto", architect: "Architetto", artist: "Artista", cartoonist: "Fumettista", fileTitle: "Nome del file", colorPicker: "Selettore colore", canvasColors: "Usato su tela", canvasBackground: "Sfondo tela", drawingCanvas: "Area di disegno", layers: "Livelli", actions: "Azioni", language: "Lingua", liveCollaboration: "Collaborazione dal vivo...", duplicateSelection: "Duplica", untitled: "Senza titolo", name: "Nome", yourName: "Il vostro nome", madeWithExcalidraw: "Creato con Excalidraw", group: "Crea gruppo da selezione", ungroup: "Dividi gruppo da selezione", collaborators: "Collaboratori", showGrid: "Visualizza griglia", addToLibrary: "Aggiungi alla libreria", removeFromLibrary: "Rimuovi dalla libreria", libraryLoadingMessage: "Caricamento libreria…", libraries: "Sfoglia librerie", loadingScene: "Caricamento della scena…", align: "Allinea", alignTop: "Allinea in alto", alignBottom: "Allinea in basso", alignLeft: "Allinea a sinistra", alignRight: "Allinea a destra", centerVertically: "Centra Verticalmente", centerHorizontally: "Centra orizzontalmente", distributeHorizontally: "Distribuisci orizzontalmente", distributeVertically: "Distribuisci verticalmente", flipHorizontal: "Capovolgi orizzontalmente", flipVertical: "Capovolgi verticalmente", viewMode: "Modalità visualizzazione", share: "Condividi", showStroke: "Mostra selettore colore del tratto", showBackground: "Mostra selettore colore di sfondo", toggleTheme: "Cambia tema", personalLib: "Libreria Personale", excalidrawLib: "Libreria di Excalidraw", decreaseFontSize: "Riduci dimensione dei caratteri", increaseFontSize: "Aumenta la dimensione dei caratteri", unbindText: "Scollega testo", bindText: "Associa il testo al container", createContainerFromText: "Avvolgi il testo in un container", link: { edit: "Modifica link", editEmbed: "Modifica collegamento e incorpora", create: "Crea link", createEmbed: "Crea collegamento e incorpora", label: "Link", labelEmbed: "Collega & incorpora", empty: "Nessun collegamento impostato" }, lineEditor: { edit: "Modifica linea", exit: "Esci dall'editor di linea" }, elementLock: { lock: "Blocca", unlock: "Sblocca", lockAll: "Blocca tutto", unlockAll: "Sblocca tutto" }, statusPublished: "Pubblicato", sidebarLock: "Mantieni aperta la barra laterale", selectAllElementsInFrame: "Seleziona tutti gli elementi nel riquadro", removeAllElementsFromFrame: "Rimuovi tutti gli elementi dal riquadro", eyeDropper: "Scegli il colore della tela", textToDiagram: "Testo a diagramma", prompt: "Prompt" }, o = { noItems: "Nessun elemento ancora aggiunto...", hint_emptyLibrary: "Seleziona un elemento sulla tela per aggiungerlo qui, o installa una libreria dal repository pubblico qui sotto.", hint_emptyPrivateLibrary: "Seleziona un elemento sulla tela per aggiungerlo qui." }, r = { clearReset: "Svuota la tela", exportJSON: "Esporta su file", exportImage: "Esporta immagine...", export: "Salva in...", copyToClipboard: "Copia negli appunti", save: "Salva sul file corrente", saveAs: "Salva con nome", load: "Apri", getShareableLink: "Ottieni link condivisibile", close: "Chiudi", selectLanguage: "Seleziona lingua", scrollBackToContent: "Scorri indietro fino al contenuto", zoomIn: "Aumenta ingrandimento", zoomOut: "Riduci ingrandimento", resetZoom: "Ripristina ingrandimento", menu: "Menù", done: "Fatto", edit: "Modifica", undo: "Annulla", redo: "Ripeti", resetLibrary: "Ripristina libreria", createNewRoom: "Crea nuova stanza", fullScreen: "Schermo intero", darkMode: "Tema scuro", lightMode: "Tema chiaro", zenMode: "Modalità Zen", objectsSnapMode: "Aggancia agli oggetti", exitZenMode: "Uscire dalla modalità zen", cancel: "Annulla", clear: "Cancella", remove: "Rimuovi", embed: "Attiva/disattiva incorporamento", publishLibrary: "Pubblica", submit: "Invia", confirm: "Conferma", embeddableInteractionButton: "Clicca per interagire" }, t = { clearReset: "Questa azione cancellerà l'intera tela. Sei sicuro?", couldNotCreateShareableLink: "Non riesco a creare un link condivisibile.", couldNotCreateShareableLinkTooBig: "Impossibile creare il link condivisibile: la scena è troppo grande", couldNotLoadInvalidFile: "Impossibile caricare un file no valido", importBackendFailed: "Importazione dal server fallita.", cannotExportEmptyCanvas: "Non è possibile esportare una tela vuota.", couldNotCopyToClipboard: "Impossibile copiare negli appunti.", decryptFailed: "Impossibile decriptare i dati.", uploadedSecurly: "L'upload è stato protetto con la crittografia end-to-end, il che significa che il server Excalidraw e terze parti non possono leggere il contenuto.", loadSceneOverridePrompt: "Se carichi questo disegno esterno, sostituirà quello che hai. Vuoi continuare?", collabStopOverridePrompt: `Interrompere la sessione sovrascriverà il precedente disegno memorizzato localmente. Sei sicuro?
3
3
 
4
4
  (Se vuoi mantenere il tuo disegno locale, chiudi semplicemente la scheda del browser.)`, errorAddingToLibrary: "Impossibile aggiungere l'elemento alla libreria", errorRemovingFromLibrary: "Impossibile rimuovere l'elemento dalla libreria", confirmAddLibrary: "Questo aggiungerà {{numShapes}} forma(e) alla tua libreria. Sei sicuro?", imageDoesNotContainScene: "Questa immagine pare non contenere alcuna scena. Avevi incluso la scena durante l'esportazione?", cannotRestoreFromImage: "Impossibile ripristinare la scena da questo file immagine", invalidSceneUrl: "Impossibile importare la scena dall'URL fornito. Potrebbe essere malformato o non contenere dati JSON Excalidraw validi.", resetLibrary: "Questa azione cancellerà l'intera libreria. Sei sicuro?", removeItemsFromsLibrary: "Eliminare {{count}} elementi dalla libreria?", invalidEncryptionKey: "La chiave di cifratura deve essere composta da 22 caratteri. La collaborazione live è disabilitata.", collabOfflineWarning: `Nessuna connessione internet disponibile.