telva 1.1.3 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/dist/Telva.d.ts +3 -3
  2. package/dist/components/ContextMenu/ContextMenu.d.ts +1 -1
  3. package/dist/components/Primitives/AlertDialog/AlertDialog.d.ts.map +1 -1
  4. package/dist/components/Primitives/DropdownMenu/DMCheckboxItem.d.ts +1 -1
  5. package/dist/components/Primitives/DropdownMenu/DMItem.d.ts +1 -1
  6. package/dist/components/Primitives/DropdownMenu/DMTriggerIcon.d.ts +1 -1
  7. package/dist/components/ToolsPanel/ShapesMenu.d.ts +1 -1
  8. package/dist/components/TopPanel/PageMenu/PageMenu.d.ts +1 -1
  9. package/dist/components/TopPanel/PageOptionsDialog/PageOptionsDialog.d.ts +1 -1
  10. package/dist/constants.d.ts +1 -1
  11. package/dist/hooks/useFileSystem.d.ts +1 -1
  12. package/dist/hooks/useTelvaApp.d.ts +1 -1
  13. package/dist/hooks/useTheme.d.ts +1 -1
  14. package/dist/hooks/useTranslation.d.ts +2 -2
  15. package/dist/index.js +7 -7
  16. package/dist/index.js.map +3 -3
  17. package/dist/index.mjs +18 -30283
  18. package/dist/index.mjs.map +3 -3
  19. package/dist/state/StateManager/StateManager.d.ts +1 -1
  20. package/dist/state/TVDR.d.ts +1 -1
  21. package/dist/state/TelvaApp.d.ts +7 -7
  22. package/dist/state/commands/alignShapes/alignShapes.d.ts +2 -2
  23. package/dist/state/commands/changePage/changePage.d.ts +2 -2
  24. package/dist/state/commands/createPage/createPage.d.ts +2 -2
  25. package/dist/state/commands/createShapes/createShapes.d.ts +2 -2
  26. package/dist/state/commands/deletePage/deletePage.d.ts +2 -2
  27. package/dist/state/commands/deleteShapes/deleteShapes.d.ts +2 -2
  28. package/dist/state/commands/distributeShapes/distributeShapes.d.ts +2 -2
  29. package/dist/state/commands/duplicatePage/duplicatePage.d.ts +2 -2
  30. package/dist/state/commands/duplicateShapes/duplicateShapes.d.ts +2 -2
  31. package/dist/state/commands/flipShapes/flipShapes.d.ts +3 -3
  32. package/dist/state/commands/groupShapes/groupShapes.d.ts +2 -2
  33. package/dist/state/commands/insertContent/insertContent.d.ts +2 -2
  34. package/dist/state/commands/movePage/movePage.d.ts +2 -2
  35. package/dist/state/commands/moveShapesToPage/moveShapesToPage.d.ts +2 -2
  36. package/dist/state/commands/renamePage/renamePage.d.ts +2 -2
  37. package/dist/state/commands/reorderShapes/reorderShapes.d.ts +2 -2
  38. package/dist/state/commands/resetBounds/resetBounds.d.ts +2 -2
  39. package/dist/state/commands/rotateShapes/rotateShapes.d.ts +2 -2
  40. package/dist/state/commands/setShapesProps/setShapesProps.d.ts +2 -2
  41. package/dist/state/commands/shared/removeShapesFromPage.d.ts +1 -1
  42. package/dist/state/commands/stretchShapes/stretchShapes.d.ts +3 -3
  43. package/dist/state/commands/styleShapes/styleShapes.d.ts +2 -2
  44. package/dist/state/commands/toggleShapesDecoration/toggleShapesDecoration.d.ts +2 -2
  45. package/dist/state/commands/toggleShapesProp/toggleShapesProp.d.ts +2 -2
  46. package/dist/state/commands/translateShapes/translateShapes.d.ts +2 -2
  47. package/dist/state/commands/ungroupShapes/ungroupShapes.d.ts +3 -3
  48. package/dist/state/commands/updateShapes/updateShapes.d.ts +2 -2
  49. package/dist/state/data/filesystem.d.ts +1 -1
  50. package/dist/state/data/migrate.d.ts +1 -1
  51. package/dist/state/sessions/ArrowSession/ArrowSession.d.ts +3 -3
  52. package/dist/state/sessions/BaseSession.d.ts +2 -2
  53. package/dist/state/sessions/BrushSession/BrushSession.d.ts +3 -3
  54. package/dist/state/sessions/DrawSession/DrawSession.d.ts +3 -3
  55. package/dist/state/sessions/EditSession/EditSession.d.ts +3 -3
  56. package/dist/state/sessions/EraseSession/EraseSession.d.ts +4 -4
  57. package/dist/state/sessions/GridSession/GridSession.d.ts +3 -3
  58. package/dist/state/sessions/HandleSession/HandleSession.d.ts +3 -3
  59. package/dist/state/sessions/RotateSession/RotateSession.d.ts +3 -3
  60. package/dist/state/sessions/TransformSession/TransformSession.d.ts +3 -3
  61. package/dist/state/sessions/TransformSingleSession/TransformSingleSession.d.ts +3 -3
  62. package/dist/state/sessions/TranslateLabelSession/TranslateLabelSession.d.ts +3 -3
  63. package/dist/state/sessions/TranslateSession/TranslateSession.d.ts +3 -3
  64. package/dist/state/sessions/index.d.ts +1 -1
  65. package/dist/state/shapes/ArrowUtil/ArrowUtil.d.ts +2 -2
  66. package/dist/state/shapes/ArrowUtil/arrowHelpers.d.ts +1 -1
  67. package/dist/state/shapes/ArrowUtil/components/CurvedArrow.tsx.d.ts +1 -1
  68. package/dist/state/shapes/ArrowUtil/components/StraightArrow.d.ts +1 -1
  69. package/dist/state/shapes/DrawUtil/DrawUtil.d.ts +2 -2
  70. package/dist/state/shapes/DrawUtil/drawHelpers.d.ts +1 -1
  71. package/dist/state/shapes/EllipseUtil/EllipseUtil.d.ts +2 -2
  72. package/dist/state/shapes/EllipseUtil/components/DashedEllipse.d.ts +1 -1
  73. package/dist/state/shapes/EllipseUtil/components/DrawEllipse.d.ts +1 -1
  74. package/dist/state/shapes/EllipseUtil/ellipseHelpers.d.ts +1 -1
  75. package/dist/state/shapes/GroupUtil/GroupUtil.d.ts +2 -2
  76. package/dist/state/shapes/ImageUtil/ImageUtil.d.ts +3 -3
  77. package/dist/state/shapes/PenUtil/PenUtil.d.ts +2 -2
  78. package/dist/state/shapes/PenUtil/penHelpers.d.ts +1 -1
  79. package/dist/state/shapes/ReactComponentUtil/ReactComponentUtil.d.ts +4 -4
  80. package/dist/state/shapes/ReactComponentUtil/ReactComponentUtil.d.ts.map +1 -1
  81. package/dist/state/shapes/RectangleUtil/RectangleUtil.d.ts +3 -3
  82. package/dist/state/shapes/RectangleUtil/components/DashedRectangle.d.ts +1 -1
  83. package/dist/state/shapes/RectangleUtil/components/DrawRectangle.d.ts +1 -1
  84. package/dist/state/shapes/RectangleUtil/rectangleHelpers.d.ts +1 -1
  85. package/dist/state/shapes/StickyUtil/StickyUtil.d.ts +2 -2
  86. package/dist/state/shapes/TVShapeUtil.d.ts +1 -1
  87. package/dist/state/shapes/TextUtil/TextUtil.d.ts +8 -8
  88. package/dist/state/shapes/TriangleUtil/TriangleUtil.d.ts +3 -3
  89. package/dist/state/shapes/TriangleUtil/components/DashedTriangle.d.ts +1 -1
  90. package/dist/state/shapes/TriangleUtil/components/DrawTriangle.d.ts +1 -1
  91. package/dist/state/shapes/TriangleUtil/triangleHelpers.d.ts +1 -1
  92. package/dist/state/shapes/VideoUtil/VideoUtil.d.ts +3 -3
  93. package/dist/state/shapes/index.d.ts +2 -2
  94. package/dist/state/shapes/shared/TextLabel.d.ts +1 -1
  95. package/dist/state/shapes/shared/getTextAlign.d.ts +1 -1
  96. package/dist/state/shapes/shared/getTextSvgElement.d.ts +1 -1
  97. package/dist/state/shapes/shared/gradient-fill.d.ts +1 -1
  98. package/dist/state/shapes/shared/shape-styles.d.ts +1 -1
  99. package/dist/state/tools/ArrowTool/ArrowTool.d.ts +2 -2
  100. package/dist/state/tools/BaseTool.d.ts +2 -2
  101. package/dist/state/tools/DrawTool/DrawTool.d.ts +2 -2
  102. package/dist/state/tools/EllipseTool/EllipseTool.d.ts +2 -2
  103. package/dist/state/tools/EraseTool/EraseTool.d.ts +1 -1
  104. package/dist/state/tools/LineTool/LineTool.d.ts +2 -2
  105. package/dist/state/tools/PenEditTool.d.ts +2 -2
  106. package/dist/state/tools/PenTool/PenTool.d.ts +2 -2
  107. package/dist/state/tools/RectangleTool/RectangleTool.d.ts +2 -2
  108. package/dist/state/tools/SelectTool/SelectTool.d.ts +44 -44
  109. package/dist/state/tools/StickyTool/StickyTool.d.ts +2 -2
  110. package/dist/state/tools/TextTool/TextTool.d.ts +2 -2
  111. package/dist/state/tools/TriangleTool/TriangleTool.d.ts +2 -2
  112. package/dist/state/tools/index.d.ts +1 -1
  113. package/dist/types.d.ts +1 -1
  114. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,16 +1,16 @@
1
- "use strict";var Ih=Object.create;var Xr=Object.defineProperty,Ph=Object.defineProperties,Rh=Object.getOwnPropertyDescriptor,Dh=Object.getOwnPropertyDescriptors,Eh=Object.getOwnPropertyNames,Mi=Object.getOwnPropertySymbols,Bh=Object.getPrototypeOf,xa=Object.prototype.hasOwnProperty,Ul=Object.prototype.propertyIsEnumerable;var Ta=(i,o,e)=>o in i?Xr(i,o,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[o]=e,S=(i,o)=>{for(var e in o||(o={}))xa.call(o,e)&&Ta(i,e,o[e]);if(Mi)for(var e of Mi(o))Ul.call(o,e)&&Ta(i,e,o[e]);return i},I=(i,o)=>Ph(i,Dh(o));var Ae=(i,o)=>{var e={};for(var t in i)xa.call(i,t)&&o.indexOf(t)<0&&(e[t]=i[t]);if(i!=null&&Mi)for(var t of Mi(i))o.indexOf(t)<0&&Ul.call(i,t)&&(e[t]=i[t]);return e};var Mh=(i,o)=>()=>(i&&(o=i(i=0)),o);var ka=(i,o)=>{for(var e in o)Xr(i,e,{get:o[e],enumerable:!0})},Li=(i,o,e,t)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of Eh(o))!xa.call(i,n)&&n!==e&&Xr(i,n,{get:()=>o[n],enumerable:!(t=Rh(o,n))||t.enumerable});return i},Ai=(i,o,e)=>(Li(i,o,"default"),e&&Li(e,o,"default")),H=(i,o,e)=>(e=i!=null?Ih(Bh(i)):{},Li(o||!i||!i.__esModule?Xr(e,"default",{value:i,enumerable:!0}):e,i)),Lh=i=>Li(Xr({},"__esModule",{value:!0}),i);var d=(i,o,e)=>(Ta(i,typeof o!="symbol"?o+"":o,e),e);var F=(i,o,e)=>new Promise((t,n)=>{var r=a=>{try{l(e.next(a))}catch(c){n(c)}},s=a=>{try{l(e.throw(a))}catch(c){n(c)}},l=a=>a.done?t(a.value):Promise.resolve(a.value).then(r,s);l((e=e.apply(i,o)).next())});var Ws={};ka(Ws,{fetchGoogleFonts:()=>$p,getGoogleFontCategories:()=>gS,initGoogleFonts:()=>ml,loadGoogleFont:()=>Wp,searchGoogleFonts:()=>mS,setGoogleFontsApiKey:()=>hl});function hl(i){let o=i.replace(/["']/g,"").trim();o!==bi&&(bi=o,To=[],yi=null)}function $p(){return F(this,null,function*(){return To.length>0?To:yi||(yi=(()=>F(this,null,function*(){var i;try{if(!bi)return console.warn("[Google Fonts] No API key provided. Pass googleFontsApiKey to the <Telva> component."),[];let o=`https://www.googleapis.com/webfonts/v1/webfonts?key=${bi}&sort=popularity`,e=yield fetch(o);if(!e.ok)throw new Error(`HTTP ${e.status}: ${e.statusText}`);To=(i=(yield e.json()).items)!=null?i:[]}catch(o){console.error("[Google Fonts] Failed to fetch font list",o),To=[]}return To}))(),yi)})}function mS(i,o){let e=To;if(o&&(e=e.filter(n=>n.category===o)),!i)return e.slice(0,100);let t=i.toLowerCase();return e.filter(n=>n.family.toLowerCase().includes(t)).slice(0,100)}function gS(){return Array.from(new Set(To.map(i=>i.category))).filter(Boolean)}function jp(){var i;try{return JSON.parse((i=localStorage.getItem(Gp))!=null?i:"[]")}catch(o){return[]}}function fS(i){try{let o=jp();o.includes(i)||(o.push(i),localStorage.setItem(Gp,JSON.stringify(o)))}catch(o){}}function Wp(i,o){let e=`gfont-${i.replace(/\s+/g,"-")}`;if(document.getElementById(e))return;let t=i.replace(/\s+/g,"+"),n=document.createElement("link");n.id=e,n.rel="stylesheet",n.href=`https://fonts.googleapis.com/css?family=${t}:400,400i,700,700i&display=swap`,document.head.appendChild(n),fS(i)}function SS(){typeof window!="undefined"&&jp().forEach(i=>Wp(i))}function ml(){SS(),typeof window!="undefined"&&bi&&$p()}var bi,To,yi,Gp,vi=Mh(()=>{"use strict";bi="",To=[],yi=null;Gp="telva-loaded-google-fonts"});var zy={};ka(zy,{AlignStyle:()=>zt,AlignType:()=>Qr,Arrow:()=>xr,ColorStyle:()=>ji,DashStyle:()=>en,Decoration:()=>or,DistributeType:()=>ti,Draw:()=>Fs,Ellipse:()=>zs,FlipType:()=>Gi,FontSize:()=>md,FontStyle:()=>Eo,Group:()=>wp,Image:()=>Ip,MoveType:()=>$i,Pen:()=>Dp,ReactComponent:()=>Rp,Rectangle:()=>Vs,SessionType:()=>Ve,SizeStyle:()=>ni,Sticky:()=>mi,StretchType:()=>ei,TVAssetType:()=>Wi,TVDR:()=>B,TVEventHandler:()=>Jr,TVExportBackground:()=>rr,TVExportType:()=>so,TVShapeType:()=>oe,TVStatus:()=>Ht,TVUserStatus:()=>Pa,Telva:()=>Dy,TelvaApp:()=>Rn,Text:()=>Cp,Triangle:()=>Hs,Video:()=>Pp,buildCssGradient:()=>Bo,getShapeUtil:()=>al,shapeUtils:()=>kn,useFileSystem:()=>hd});module.exports=Lh(zy);var y3=require("@fontsource/caveat-brush"),b3=require("@fontsource/crimson-pro"),v3=require("@fontsource/dm-sans"),T3=require("@fontsource/recursive"),x3=require("@fontsource/source-code-pro"),k3=require("@fontsource/source-sans-pro"),ye=H(require("react")),Ch=require("react-error-boundary"),wh=require("react-intl"),Nl=require("telva-core");var tn=require("@radix-ui/react-icons"),Yt=H(require("react")),Jd=require("react-intl");var $y=require("react/jsx-runtime");var Kl=require("react/jsx-runtime");function Ca(i){let t=i,{size:o=16}=t,e=Ae(t,["size"]);return(0,Kl.jsx)("svg",I(S({width:24,height:24},e),{children:(0,Kl.jsx)("circle",{cx:12,cy:12,r:o/2})}))}var _l=require("react/jsx-runtime");function Yl(){return(0,_l.jsx)("svg",{width:"24",height:"24",stroke:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,_l.jsx)("circle",{cx:12,cy:12,r:8,fill:"none",strokeWidth:2.5,strokeLinecap:"round",strokeDasharray:50.26548*.1})})}var Xl=require("react/jsx-runtime"),Ah=`${50.26548*.025} ${50.26548*.1}`;function Zl(){return(0,Xl.jsx)("svg",{width:"24",height:"24",stroke:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,Xl.jsx)("circle",{cx:12,cy:12,r:8,fill:"none",strokeWidth:2.5,strokeLinecap:"round",strokeDasharray:Ah})})}var ql=require("react/jsx-runtime");function Jl(){return(0,ql.jsx)("svg",{width:"24",height:"24",viewBox:"1 1.5 21 22",fill:"currentColor",stroke:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,ql.jsx)("path",{d:"M10.0162 19.2768C10.0162 19.2768 9.90679 19.2517 9.6879 19.2017C9.46275 19.1454 9.12816 19.0422 8.68413 18.8921C8.23384 18.7358 7.81482 18.545 7.42707 18.3199C7.03307 18.101 6.62343 17.7883 6.19816 17.3818C5.77289 16.9753 5.33511 16.3718 4.88482 15.5713C4.43453 14.7645 4.1531 13.8545 4.04053 12.8414C3.92795 11.822 4.04991 10.8464 4.40639 9.91451C4.76286 8.98266 5.39452 8.10084 6.30135 7.26906C7.21444 6.44353 8.29325 5.83377 9.5378 5.43976C10.7823 5.05202 11.833 4.92068 12.6898 5.04576C13.5466 5.16459 14.3878 5.43664 15.2133 5.86191C16.0388 6.28718 16.7768 6.8688 17.4272 7.60678C18.0714 8.34475 18.5404 9.21406 18.8344 10.2147C19.1283 11.2153 19.1721 12.2598 18.9657 13.348C18.7593 14.4299 18.2872 15.4337 17.5492 16.3593C16.8112 17.2849 15.9263 18.0072 14.8944 18.5263C13.8624 19.0391 12.9056 19.3174 12.0238 19.3612C11.142 19.405 10.2101 19.2705 9.22823 18.9578C8.24635 18.6451 7.35828 18.151 6.56402 17.4756C5.77601 16.8002 6.08871 16.8658 7.50212 17.6726C8.90927 18.4731 10.1444 18.8484 11.2076 18.7983C12.2645 18.7545 13.2965 18.4825 14.3034 17.9822C15.3102 17.4819 16.1264 16.8221 16.7518 16.0028C17.3772 15.1835 17.7681 14.3111 17.9244 13.3855C18.0808 12.4599 18.0401 11.5781 17.8025 10.74C17.5586 9.902 17.1739 9.15464 16.6486 8.49797C16.1233 7.8413 15.2289 7.27844 13.9656 6.80939C12.7086 6.34034 11.4203 6.20901 10.1007 6.41539C8.78732 6.61552 7.69599 7.06893 6.82669 7.77564C5.96363 8.48859 5.34761 9.26409 4.97863 10.1021C4.60964 10.9402 4.45329 11.8376 4.50958 12.7945C4.56586 13.7513 4.79101 14.6238 5.18501 15.4118C5.57276 16.1998 5.96363 16.8002 6.35764 17.2129C6.75164 17.6257 7.13313 17.9509 7.50212 18.1886C7.87736 18.4325 8.28074 18.642 8.71227 18.8171C9.15005 18.9922 9.47839 19.111 9.69728 19.1736C9.91617 19.2361 10.0256 19.2705 10.0256 19.2768H10.0162Z",strokeWidth:"2"})})}var Ql=require("react/jsx-runtime");function ed(){return(0,Ql.jsx)("svg",{width:"24",height:"24",stroke:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,Ql.jsx)("circle",{cx:12,cy:12,r:8,fill:"none",strokeWidth:2,strokeLinecap:"round"})})}var Vh=require("react/jsx-runtime");var td=require("react/jsx-runtime");function wa(e){var t=e,{flipHorizontal:i}=t,o=Ae(t,["flipHorizontal"]);return(0,td.jsx)("svg",I(S({width:24,height:24,viewBox:"0 0 15 15",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",style:{transform:i?"scale(-1, 1)":"scale(1, 1)"}},o),{children:(0,td.jsx)("path",{d:"M10.6707 8.5081C10.6707 10.1923 9.3004 11.5625 7.61631 11.5625H6.5351C6.35593 11.5625 6.21074 11.4173 6.21074 11.2382V11.13C6.21074 10.9508 6.35591 10.8057 6.5351 10.8057H7.61631C8.88313 10.8057 9.91387 9.77492 9.91387 8.5081C9.91387 7.24128 8.88313 6.21054 7.61631 6.21054H5.62155L6.99534 7.58433C7.14289 7.73183 7.14289 7.97195 6.99534 8.11944C6.85216 8.26251 6.60298 8.2623 6.46013 8.11944L4.44045 6.09971C4.36898 6.02824 4.32959 5.93321 4.32959 5.8321C4.32959 5.73106 4.36898 5.63598 4.44045 5.56454L6.46024 3.54472C6.60309 3.40176 6.85248 3.40176 6.99535 3.54472C7.14291 3.69218 7.14291 3.93234 6.99535 4.07979L5.62156 5.45368H7.61631C9.3004 5.45368 10.6707 6.82393 10.6707 8.5081Z"})}))}var nd=require("react/jsx-runtime");function od(i){return(0,nd.jsx)("svg",I(S({width:24,height:24,viewBox:"-2 -2 28 28",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},i),{children:(0,nd.jsx)("path",{d:"M12.4239 4.62C13.3572 4.62 14.1572 4.73333 14.8239 4.96C15.4906 5.17333 15.9772 5.43333 16.2839 5.74C16.3639 5.82 16.4039 5.94 16.4039 6.1V8.86H14.0639C13.9172 8.86 13.8439 8.78666 13.8439 8.64V7.26C13.4306 7.12666 12.9572 7.06 12.4239 7.06C11.6506 7.06 11.0639 7.18 10.6639 7.42C10.2639 7.66 10.0639 8.04666 10.0639 8.58V9C10.0639 9.38666 10.1639 9.69333 10.3639 9.92C10.5772 10.1333 11.0306 10.3467 11.7239 10.56L13.6439 11.14C14.4706 11.38 15.1172 11.66 15.5839 11.98C16.0506 12.3 16.3772 12.68 16.5639 13.12C16.7639 13.5467 16.8639 14.0733 16.8639 14.7V15.62C16.8639 16.7933 16.4039 17.7133 15.4839 18.38C14.5639 19.0467 13.2839 19.38 11.6439 19.38C10.6706 19.38 9.79723 19.2867 9.0239 19.1C8.2639 18.9133 7.71056 18.6533 7.3639 18.32C7.3239 18.28 7.29056 18.24 7.2639 18.2C7.25056 18.1467 7.2439 18.06 7.2439 17.94V15.74H7.6239C8.2239 16.1533 8.85056 16.4533 9.5039 16.64C10.1572 16.8267 10.9306 16.92 11.8239 16.92C12.6506 16.92 13.2506 16.7867 13.6239 16.52C14.0106 16.2533 14.2039 15.9333 14.2039 15.56V14.88C14.2039 14.6667 14.1639 14.48 14.0839 14.32C14.0172 14.16 13.8706 14.0133 13.6439 13.88C13.4172 13.7467 13.0572 13.6067 12.5639 13.46L10.6639 12.88C9.7839 12.6133 9.11056 12.3 8.6439 11.94C8.17723 11.58 7.85056 11.18 7.6639 10.74C7.49056 10.3 7.4039 9.83333 7.4039 9.34V8.38C7.4039 7.64666 7.61056 7 8.0239 6.44C8.43723 5.88 9.01723 5.44 9.7639 5.12C10.5239 4.78666 11.4106 4.62 12.4239 4.62Z"})}))}var rd=require("react/jsx-runtime");function id(i){return(0,rd.jsx)("svg",I(S({width:24,height:24,viewBox:"-2 -2 28 28",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},i),{children:(0,rd.jsx)("path",{d:"M8.16191 19H5.68191C5.53525 19 5.46191 18.9267 5.46191 18.78V5H8.76191C8.88191 5 8.97525 5.03333 9.04191 5.1C9.10858 5.15333 9.17525 5.27333 9.24191 5.46C9.72191 6.59333 10.1686 7.7 10.5819 8.78C11.0086 9.84667 11.4352 10.98 11.8619 12.18H12.1619C12.6019 10.9667 13.0352 9.79333 13.4619 8.66C13.8886 7.52667 14.3552 6.30667 14.8619 5H18.3219C18.4686 5 18.5419 5.07333 18.5419 5.22V19H16.0619C15.9152 19 15.8419 18.9267 15.8419 18.78V16.26C15.8419 15.5267 15.8486 14.8133 15.8619 14.12C15.8886 13.4267 15.9286 12.6867 15.9819 11.9C16.0486 11.1 16.1419 10.1933 16.2619 9.18H15.9019C15.4352 10.3533 14.9486 11.5667 14.4419 12.82C13.9486 14.06 13.4819 15.2333 13.0419 16.34H11.1019C11.0619 16.34 11.0152 16.3333 10.9619 16.32C10.9219 16.2933 10.8886 16.2467 10.8619 16.18C10.4619 15.18 10.0086 14.06 9.50191 12.82C9.00858 11.58 8.53525 10.3667 8.08191 9.18H7.70191C7.83525 10.18 7.93525 11.0733 8.00191 11.86C8.06858 12.6467 8.10858 13.3933 8.12191 14.1C8.14858 14.8067 8.16191 15.5267 8.16191 16.26V19Z"})}))}var sd=require("react/jsx-runtime");function ad(i){return(0,sd.jsx)("svg",I(S({width:24,height:24,viewBox:"-2 -2 28 28",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},i),{children:(0,sd.jsx)("path",{d:"M7.68191 19C7.53525 19 7.46191 18.9267 7.46191 18.78V5H10.1219C10.2686 5 10.3419 5.07333 10.3419 5.22V16.56H13.4419V15.02H15.7619C15.9086 15.02 15.9819 15.0933 15.9819 15.24V19H7.68191Z"})}))}var Zr=require("react/jsx-runtime");function ld(){return(0,Zr.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,Zr.jsx)("path",{d:"M1.72838 9.33987L8.84935 2.34732C9.23874 1.96494 9.86279 1.96539 10.2516 2.34831L13.5636 5.60975C13.9655 6.00555 13.9607 6.65526 13.553 7.04507L8.13212 12.2278C7.94604 12.4057 7.69851 12.505 7.44107 12.505L6.06722 12.505L3.83772 12.505C3.5673 12.505 3.30842 12.3954 3.12009 12.2014L1.7114 10.7498C1.32837 10.3551 1.33596 9.72521 1.72838 9.33987Z",stroke:"currentColor"}),(0,Zr.jsx)("line",{x1:"6.01807",y1:"12.5",x2:"10.7959",y2:"12.5",stroke:"currentColor",strokeLinecap:"round"}),(0,Zr.jsx)("line",{x1:"5.50834",y1:"5.74606",x2:"10.1984",y2:"10.4361",stroke:"currentColor"})]})}var Qy=require("react/jsx-runtime");var dd=require("react/jsx-runtime");function cd(){return(0,dd.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,dd.jsx)("path",{d:"M3.64645 11.3536C3.45118 11.1583 3.45118 10.8417 3.64645 10.6465L11.1464 3.14645C11.3417 2.95118 11.6583 2.95118 11.8536 3.14645C12.0488 3.34171 12.0488 3.65829 11.8536 3.85355L4.35355 11.3536C4.15829 11.5488 3.84171 11.5488 3.64645 11.3536Z"})})}var ao=H(require("@radix-ui/react-dropdown-menu")),sr=require("@radix-ui/react-icons"),Bn=H(require("react")),Zd=require("react-intl");var Vi=require("@stitches/react");var{styled:R,createTheme:Hh}=(0,Vi.createStitches)({themeMap:S({},Vi.defaultThemeMap),theme:{colors:{bounds:"rgba(13, 153, 255, 1)",boundsBg:"rgba(13, 153, 255, 0.05)",hover:"#3a3a3a",overlay:"rgba(0, 0, 0, 0.25)",overlayContrast:"rgba(255, 255, 255, 0.1)",panel:"#2C2C2C",panelContrast:"#444444",selected:"rgba(13, 153, 255, 1)",selectedContrast:"#ffffff",text:"#E8EAED",tooltip:"#1a1a1a",tooltipContrast:"#ffffff",warn:"rgba(255, 100, 100, 1)",canvas:"#ffffffff",separator:"#444444",inputBg:"#383838",inputBorder:"#555555",textSecondary:"#9AA0A6",accent:"#0D99FF"},shadows:{2:"0px 1px 2px rgba(0, 0, 0, 0.3)",3:"0px 2px 4px rgba(0, 0, 0, 0.3)",4:"0px 4px 8px rgba(0, 0, 0, 0.3)",8:"0px 8px 16px rgba(0, 0, 0, 0.3)",12:"0px 12px 24px rgba(0, 0, 0, 0.3)",24:"0px 24px 48px rgba(0, 0, 0, 0.3)",key:"1px 1px rgba(0,0,0,1)",panel:`0px 0px 12px -2px rgba(0, 0, 0, 0.3),
1
+ "use strict";var Ih=Object.create;var Xr=Object.defineProperty,Ph=Object.defineProperties,Rh=Object.getOwnPropertyDescriptor,Dh=Object.getOwnPropertyDescriptors,Eh=Object.getOwnPropertyNames,Mi=Object.getOwnPropertySymbols,Bh=Object.getPrototypeOf,xa=Object.prototype.hasOwnProperty,Ul=Object.prototype.propertyIsEnumerable;var Ta=(i,o,e)=>o in i?Xr(i,o,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[o]=e,S=(i,o)=>{for(var e in o||(o={}))xa.call(o,e)&&Ta(i,e,o[e]);if(Mi)for(var e of Mi(o))Ul.call(o,e)&&Ta(i,e,o[e]);return i},I=(i,o)=>Ph(i,Dh(o));var Ae=(i,o)=>{var e={};for(var t in i)xa.call(i,t)&&o.indexOf(t)<0&&(e[t]=i[t]);if(i!=null&&Mi)for(var t of Mi(i))o.indexOf(t)<0&&Ul.call(i,t)&&(e[t]=i[t]);return e};var Mh=(i,o)=>()=>(i&&(o=i(i=0)),o);var ka=(i,o)=>{for(var e in o)Xr(i,e,{get:o[e],enumerable:!0})},Li=(i,o,e,t)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of Eh(o))!xa.call(i,n)&&n!==e&&Xr(i,n,{get:()=>o[n],enumerable:!(t=Rh(o,n))||t.enumerable});return i},Ai=(i,o,e)=>(Li(i,o,"default"),e&&Li(e,o,"default")),H=(i,o,e)=>(e=i!=null?Ih(Bh(i)):{},Li(o||!i||!i.__esModule?Xr(e,"default",{value:i,enumerable:!0}):e,i)),Lh=i=>Li(Xr({},"__esModule",{value:!0}),i);var d=(i,o,e)=>(Ta(i,typeof o!="symbol"?o+"":o,e),e);var F=(i,o,e)=>new Promise((t,n)=>{var r=a=>{try{l(e.next(a))}catch(c){n(c)}},s=a=>{try{l(e.throw(a))}catch(c){n(c)}},l=a=>a.done?t(a.value):Promise.resolve(a.value).then(r,s);l((e=e.apply(i,o)).next())});var Ws={};ka(Ws,{fetchGoogleFonts:()=>$p,getGoogleFontCategories:()=>gS,initGoogleFonts:()=>ml,loadGoogleFont:()=>Wp,searchGoogleFonts:()=>mS,setGoogleFontsApiKey:()=>hl});function hl(i){let o=i.replace(/["']/g,"").trim();o!==bi&&(bi=o,To=[],yi=null)}function $p(){return F(this,null,function*(){return To.length>0?To:yi||(yi=(()=>F(this,null,function*(){var i;try{if(!bi)return console.warn("[Google Fonts] No API key provided. Pass googleFontsApiKey to the <Telva> component."),[];let o=`https://www.googleapis.com/webfonts/v1/webfonts?key=${bi}&sort=popularity`,e=yield fetch(o);if(!e.ok)throw new Error(`HTTP ${e.status}: ${e.statusText}`);To=(i=(yield e.json()).items)!=null?i:[]}catch(o){console.error("[Google Fonts] Failed to fetch font list",o),To=[]}return To}))(),yi)})}function mS(i,o){let e=To;if(o&&(e=e.filter(n=>n.category===o)),!i)return e.slice(0,100);let t=i.toLowerCase();return e.filter(n=>n.family.toLowerCase().includes(t)).slice(0,100)}function gS(){return Array.from(new Set(To.map(i=>i.category))).filter(Boolean)}function jp(){var i;try{return JSON.parse((i=localStorage.getItem(Gp))!=null?i:"[]")}catch(o){return[]}}function fS(i){try{let o=jp();o.includes(i)||(o.push(i),localStorage.setItem(Gp,JSON.stringify(o)))}catch(o){}}function Wp(i,o){let e=`gfont-${i.replace(/\s+/g,"-")}`;if(document.getElementById(e))return;let t=i.replace(/\s+/g,"+"),n=document.createElement("link");n.id=e,n.rel="stylesheet",n.href=`https://fonts.googleapis.com/css?family=${t}:400,400i,700,700i&display=swap`,document.head.appendChild(n),fS(i)}function SS(){typeof window!="undefined"&&jp().forEach(i=>Wp(i))}function ml(){SS(),typeof window!="undefined"&&bi&&$p()}var bi,To,yi,Gp,vi=Mh(()=>{"use strict";bi="",To=[],yi=null;Gp="telva-loaded-google-fonts"});var zy={};ka(zy,{AlignStyle:()=>zt,AlignType:()=>Qr,Arrow:()=>xr,ColorStyle:()=>ji,DashStyle:()=>en,Decoration:()=>rr,DistributeType:()=>ti,Draw:()=>Fs,Ellipse:()=>zs,FlipType:()=>Gi,FontSize:()=>md,FontStyle:()=>Eo,Group:()=>wp,Image:()=>Ip,MoveType:()=>$i,Pen:()=>Dp,ReactComponent:()=>Rp,Rectangle:()=>Vs,SessionType:()=>Ve,SizeStyle:()=>ni,Sticky:()=>mi,StretchType:()=>ei,TVAssetType:()=>Wi,TVDR:()=>B,TVEventHandler:()=>Jr,TVExportBackground:()=>ir,TVExportType:()=>so,TVShapeType:()=>oe,TVStatus:()=>Ht,TVUserStatus:()=>Pa,Telva:()=>Dy,TelvaApp:()=>Rn,Text:()=>Cp,Triangle:()=>Hs,Video:()=>Pp,buildCssGradient:()=>Bo,getShapeUtil:()=>al,shapeUtils:()=>kn,useFileSystem:()=>hd});module.exports=Lh(zy);var y3=require("@fontsource/caveat-brush"),b3=require("@fontsource/crimson-pro"),v3=require("@fontsource/dm-sans"),T3=require("@fontsource/recursive"),x3=require("@fontsource/source-code-pro"),k3=require("@fontsource/source-sans-pro"),ye=H(require("react")),Ch=require("react-error-boundary"),wh=require("react-intl"),Nl=require("telva-core");var tn=require("@radix-ui/react-icons"),Yt=H(require("react")),Jd=require("react-intl");var $y=require("react/jsx-runtime");var Kl=require("react/jsx-runtime");function Ca(i){let t=i,{size:o=16}=t,e=Ae(t,["size"]);return(0,Kl.jsx)("svg",I(S({width:24,height:24},e),{children:(0,Kl.jsx)("circle",{cx:12,cy:12,r:o/2})}))}var _l=require("react/jsx-runtime");function Yl(){return(0,_l.jsx)("svg",{width:"24",height:"24",stroke:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,_l.jsx)("circle",{cx:12,cy:12,r:8,fill:"none",strokeWidth:2.5,strokeLinecap:"round",strokeDasharray:50.26548*.1})})}var Xl=require("react/jsx-runtime"),Ah=`${50.26548*.025} ${50.26548*.1}`;function Zl(){return(0,Xl.jsx)("svg",{width:"24",height:"24",stroke:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,Xl.jsx)("circle",{cx:12,cy:12,r:8,fill:"none",strokeWidth:2.5,strokeLinecap:"round",strokeDasharray:Ah})})}var ql=require("react/jsx-runtime");function Jl(){return(0,ql.jsx)("svg",{width:"24",height:"24",viewBox:"1 1.5 21 22",fill:"currentColor",stroke:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,ql.jsx)("path",{d:"M10.0162 19.2768C10.0162 19.2768 9.90679 19.2517 9.6879 19.2017C9.46275 19.1454 9.12816 19.0422 8.68413 18.8921C8.23384 18.7358 7.81482 18.545 7.42707 18.3199C7.03307 18.101 6.62343 17.7883 6.19816 17.3818C5.77289 16.9753 5.33511 16.3718 4.88482 15.5713C4.43453 14.7645 4.1531 13.8545 4.04053 12.8414C3.92795 11.822 4.04991 10.8464 4.40639 9.91451C4.76286 8.98266 5.39452 8.10084 6.30135 7.26906C7.21444 6.44353 8.29325 5.83377 9.5378 5.43976C10.7823 5.05202 11.833 4.92068 12.6898 5.04576C13.5466 5.16459 14.3878 5.43664 15.2133 5.86191C16.0388 6.28718 16.7768 6.8688 17.4272 7.60678C18.0714 8.34475 18.5404 9.21406 18.8344 10.2147C19.1283 11.2153 19.1721 12.2598 18.9657 13.348C18.7593 14.4299 18.2872 15.4337 17.5492 16.3593C16.8112 17.2849 15.9263 18.0072 14.8944 18.5263C13.8624 19.0391 12.9056 19.3174 12.0238 19.3612C11.142 19.405 10.2101 19.2705 9.22823 18.9578C8.24635 18.6451 7.35828 18.151 6.56402 17.4756C5.77601 16.8002 6.08871 16.8658 7.50212 17.6726C8.90927 18.4731 10.1444 18.8484 11.2076 18.7983C12.2645 18.7545 13.2965 18.4825 14.3034 17.9822C15.3102 17.4819 16.1264 16.8221 16.7518 16.0028C17.3772 15.1835 17.7681 14.3111 17.9244 13.3855C18.0808 12.4599 18.0401 11.5781 17.8025 10.74C17.5586 9.902 17.1739 9.15464 16.6486 8.49797C16.1233 7.8413 15.2289 7.27844 13.9656 6.80939C12.7086 6.34034 11.4203 6.20901 10.1007 6.41539C8.78732 6.61552 7.69599 7.06893 6.82669 7.77564C5.96363 8.48859 5.34761 9.26409 4.97863 10.1021C4.60964 10.9402 4.45329 11.8376 4.50958 12.7945C4.56586 13.7513 4.79101 14.6238 5.18501 15.4118C5.57276 16.1998 5.96363 16.8002 6.35764 17.2129C6.75164 17.6257 7.13313 17.9509 7.50212 18.1886C7.87736 18.4325 8.28074 18.642 8.71227 18.8171C9.15005 18.9922 9.47839 19.111 9.69728 19.1736C9.91617 19.2361 10.0256 19.2705 10.0256 19.2768H10.0162Z",strokeWidth:"2"})})}var Ql=require("react/jsx-runtime");function ed(){return(0,Ql.jsx)("svg",{width:"24",height:"24",stroke:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,Ql.jsx)("circle",{cx:12,cy:12,r:8,fill:"none",strokeWidth:2,strokeLinecap:"round"})})}var Vh=require("react/jsx-runtime");var td=require("react/jsx-runtime");function wa(e){var t=e,{flipHorizontal:i}=t,o=Ae(t,["flipHorizontal"]);return(0,td.jsx)("svg",I(S({width:24,height:24,viewBox:"0 0 15 15",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",style:{transform:i?"scale(-1, 1)":"scale(1, 1)"}},o),{children:(0,td.jsx)("path",{d:"M10.6707 8.5081C10.6707 10.1923 9.3004 11.5625 7.61631 11.5625H6.5351C6.35593 11.5625 6.21074 11.4173 6.21074 11.2382V11.13C6.21074 10.9508 6.35591 10.8057 6.5351 10.8057H7.61631C8.88313 10.8057 9.91387 9.77492 9.91387 8.5081C9.91387 7.24128 8.88313 6.21054 7.61631 6.21054H5.62155L6.99534 7.58433C7.14289 7.73183 7.14289 7.97195 6.99534 8.11944C6.85216 8.26251 6.60298 8.2623 6.46013 8.11944L4.44045 6.09971C4.36898 6.02824 4.32959 5.93321 4.32959 5.8321C4.32959 5.73106 4.36898 5.63598 4.44045 5.56454L6.46024 3.54472C6.60309 3.40176 6.85248 3.40176 6.99535 3.54472C7.14291 3.69218 7.14291 3.93234 6.99535 4.07979L5.62156 5.45368H7.61631C9.3004 5.45368 10.6707 6.82393 10.6707 8.5081Z"})}))}var nd=require("react/jsx-runtime");function od(i){return(0,nd.jsx)("svg",I(S({width:24,height:24,viewBox:"-2 -2 28 28",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},i),{children:(0,nd.jsx)("path",{d:"M12.4239 4.62C13.3572 4.62 14.1572 4.73333 14.8239 4.96C15.4906 5.17333 15.9772 5.43333 16.2839 5.74C16.3639 5.82 16.4039 5.94 16.4039 6.1V8.86H14.0639C13.9172 8.86 13.8439 8.78666 13.8439 8.64V7.26C13.4306 7.12666 12.9572 7.06 12.4239 7.06C11.6506 7.06 11.0639 7.18 10.6639 7.42C10.2639 7.66 10.0639 8.04666 10.0639 8.58V9C10.0639 9.38666 10.1639 9.69333 10.3639 9.92C10.5772 10.1333 11.0306 10.3467 11.7239 10.56L13.6439 11.14C14.4706 11.38 15.1172 11.66 15.5839 11.98C16.0506 12.3 16.3772 12.68 16.5639 13.12C16.7639 13.5467 16.8639 14.0733 16.8639 14.7V15.62C16.8639 16.7933 16.4039 17.7133 15.4839 18.38C14.5639 19.0467 13.2839 19.38 11.6439 19.38C10.6706 19.38 9.79723 19.2867 9.0239 19.1C8.2639 18.9133 7.71056 18.6533 7.3639 18.32C7.3239 18.28 7.29056 18.24 7.2639 18.2C7.25056 18.1467 7.2439 18.06 7.2439 17.94V15.74H7.6239C8.2239 16.1533 8.85056 16.4533 9.5039 16.64C10.1572 16.8267 10.9306 16.92 11.8239 16.92C12.6506 16.92 13.2506 16.7867 13.6239 16.52C14.0106 16.2533 14.2039 15.9333 14.2039 15.56V14.88C14.2039 14.6667 14.1639 14.48 14.0839 14.32C14.0172 14.16 13.8706 14.0133 13.6439 13.88C13.4172 13.7467 13.0572 13.6067 12.5639 13.46L10.6639 12.88C9.7839 12.6133 9.11056 12.3 8.6439 11.94C8.17723 11.58 7.85056 11.18 7.6639 10.74C7.49056 10.3 7.4039 9.83333 7.4039 9.34V8.38C7.4039 7.64666 7.61056 7 8.0239 6.44C8.43723 5.88 9.01723 5.44 9.7639 5.12C10.5239 4.78666 11.4106 4.62 12.4239 4.62Z"})}))}var rd=require("react/jsx-runtime");function id(i){return(0,rd.jsx)("svg",I(S({width:24,height:24,viewBox:"-2 -2 28 28",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},i),{children:(0,rd.jsx)("path",{d:"M8.16191 19H5.68191C5.53525 19 5.46191 18.9267 5.46191 18.78V5H8.76191C8.88191 5 8.97525 5.03333 9.04191 5.1C9.10858 5.15333 9.17525 5.27333 9.24191 5.46C9.72191 6.59333 10.1686 7.7 10.5819 8.78C11.0086 9.84667 11.4352 10.98 11.8619 12.18H12.1619C12.6019 10.9667 13.0352 9.79333 13.4619 8.66C13.8886 7.52667 14.3552 6.30667 14.8619 5H18.3219C18.4686 5 18.5419 5.07333 18.5419 5.22V19H16.0619C15.9152 19 15.8419 18.9267 15.8419 18.78V16.26C15.8419 15.5267 15.8486 14.8133 15.8619 14.12C15.8886 13.4267 15.9286 12.6867 15.9819 11.9C16.0486 11.1 16.1419 10.1933 16.2619 9.18H15.9019C15.4352 10.3533 14.9486 11.5667 14.4419 12.82C13.9486 14.06 13.4819 15.2333 13.0419 16.34H11.1019C11.0619 16.34 11.0152 16.3333 10.9619 16.32C10.9219 16.2933 10.8886 16.2467 10.8619 16.18C10.4619 15.18 10.0086 14.06 9.50191 12.82C9.00858 11.58 8.53525 10.3667 8.08191 9.18H7.70191C7.83525 10.18 7.93525 11.0733 8.00191 11.86C8.06858 12.6467 8.10858 13.3933 8.12191 14.1C8.14858 14.8067 8.16191 15.5267 8.16191 16.26V19Z"})}))}var sd=require("react/jsx-runtime");function ad(i){return(0,sd.jsx)("svg",I(S({width:24,height:24,viewBox:"-2 -2 28 28",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},i),{children:(0,sd.jsx)("path",{d:"M7.68191 19C7.53525 19 7.46191 18.9267 7.46191 18.78V5H10.1219C10.2686 5 10.3419 5.07333 10.3419 5.22V16.56H13.4419V15.02H15.7619C15.9086 15.02 15.9819 15.0933 15.9819 15.24V19H7.68191Z"})}))}var Zr=require("react/jsx-runtime");function ld(){return(0,Zr.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,Zr.jsx)("path",{d:"M1.72838 9.33987L8.84935 2.34732C9.23874 1.96494 9.86279 1.96539 10.2516 2.34831L13.5636 5.60975C13.9655 6.00555 13.9607 6.65526 13.553 7.04507L8.13212 12.2278C7.94604 12.4057 7.69851 12.505 7.44107 12.505L6.06722 12.505L3.83772 12.505C3.5673 12.505 3.30842 12.3954 3.12009 12.2014L1.7114 10.7498C1.32837 10.3551 1.33596 9.72521 1.72838 9.33987Z",stroke:"currentColor"}),(0,Zr.jsx)("line",{x1:"6.01807",y1:"12.5",x2:"10.7959",y2:"12.5",stroke:"currentColor",strokeLinecap:"round"}),(0,Zr.jsx)("line",{x1:"5.50834",y1:"5.74606",x2:"10.1984",y2:"10.4361",stroke:"currentColor"})]})}var Qy=require("react/jsx-runtime");var dd=require("react/jsx-runtime");function cd(){return(0,dd.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,dd.jsx)("path",{d:"M3.64645 11.3536C3.45118 11.1583 3.45118 10.8417 3.64645 10.6465L11.1464 3.14645C11.3417 2.95118 11.6583 2.95118 11.8536 3.14645C12.0488 3.34171 12.0488 3.65829 11.8536 3.85355L4.35355 11.3536C4.15829 11.5488 3.84171 11.5488 3.64645 11.3536Z"})})}var ao=H(require("@radix-ui/react-dropdown-menu")),ar=require("@radix-ui/react-icons"),Bn=H(require("react")),Zd=require("react-intl");var Vi=require("@stitches/react");var{styled:R,createTheme:Hh}=(0,Vi.createStitches)({themeMap:S({},Vi.defaultThemeMap),theme:{colors:{bounds:"rgba(13, 153, 255, 1)",boundsBg:"rgba(13, 153, 255, 0.05)",hover:"#3a3a3a",overlay:"rgba(0, 0, 0, 0.25)",overlayContrast:"rgba(255, 255, 255, 0.1)",panel:"#2C2C2C",panelContrast:"#444444",selected:"rgba(13, 153, 255, 1)",selectedContrast:"#ffffff",text:"#E8EAED",tooltip:"#1a1a1a",tooltipContrast:"#ffffff",warn:"rgba(255, 100, 100, 1)",canvas:"#ffffffff",separator:"#444444",inputBg:"#383838",inputBorder:"#555555",textSecondary:"#9AA0A6",accent:"#0D99FF"},shadows:{2:"0px 1px 2px rgba(0, 0, 0, 0.3)",3:"0px 2px 4px rgba(0, 0, 0, 0.3)",4:"0px 4px 8px rgba(0, 0, 0, 0.3)",8:"0px 8px 16px rgba(0, 0, 0, 0.3)",12:"0px 12px 24px rgba(0, 0, 0, 0.3)",24:"0px 24px 48px rgba(0, 0, 0, 0.3)",key:"1px 1px rgba(0,0,0,1)",panel:`0px 0px 12px -2px rgba(0, 0, 0, 0.3),
2
2
  0px 0px 8px -4px rgba(0, 0, 0, 0.2)`},space:{0:"2px",1:"3px",2:"4px",3:"8px",4:"12px",5:"16px",6:"32px",7:"48px"},fontSizes:{0:"10px",1:"11px",2:"12px",3:"13px",4:"16px"},fonts:{ui:'"DM Sans", system-ui, -apple-system, sans-serif',body:'"DM Sans", system-ui, -apple-system, sans-serif',mono:'"Source Code Pro", monospace'},fontWeights:{},lineHeights:{},letterSpacings:{},sizes:{},borderWidths:{0:"$1"},borderStyles:{},radii:{0:"4px",1:"6px",2:"8px",3:"10px",4:"14px",pill:"9999px"},zIndices:{},transitions:{}},media:{micro:"(max-width: 370px)",sm:"(min-width: 640px)",md:"(min-width: 768px)",lg:"(min-width: 1024px)"},utils:{zStrokeWidth:()=>i=>Array.isArray(i)?{strokeWidth:`calc(${i[0]}px / var(--tv-zoom))`}:{strokeWidth:`calc(${i}px / var(--tv-zoom))`}}}),Ia=Hh({colors:{bounds:"rgba(13, 153, 255, 1)",boundsBg:"rgba(13, 153, 255, 0.05)",hover:"#444A50",overlay:"rgba(0, 0, 0, 0.2)",overlayContrast:"rgba(255, 255, 255, 0.1)",panel:"#1E1E1E",panelContrast:"#444444",selected:"rgba(13, 153, 255, 1)",selectedContrast:"#ffffff",text:"#E8EAED",tooltip:"#111111",tooltipContrast:"#ffffff",canvas:"#141414",separator:"#333333",inputBg:"#2A2A2A",inputBorder:"#444444",textSecondary:"#888888",accent:"#0D99FF"},shadows:{2:"0px 1px 2px rgba(0, 0, 0, 0.4)",3:"0px 2px 4px rgba(0, 0, 0, 0.4)",4:"0px 4px 8px rgba(0, 0, 0, 0.4)",8:"0px 8px 16px rgba(0, 0, 0, 0.4)",12:"0px 12px 24px rgba(0, 0, 0, 0.4)",24:"0px 24px 48px rgba(0, 0, 0, 0.4)",panel:`0px 0px 12px -2px rgba(0, 0, 0, 0.4),
3
- 0px 0px 8px -4px rgba(0, 0, 0, 0.3)`}});var qr=R("div",{backgroundColor:"$panel",display:"flex",alignItems:"center",flexDirection:"row",padding:"$2",border:"1px solid $panelContrast",gap:0,overflow:"hidden",variants:{side:{center:{borderRadius:9},left:{padding:0,borderTop:0,borderLeft:0,borderTopRightRadius:0,borderBottomRightRadius:9,borderBottomLeftRadius:0},right:{padding:0,borderTop:0,borderRight:0,borderTopLeftRadius:0,borderBottomLeftRadius:9,borderBottomRightRadius:0}}},"& hr":{height:10,width:"100%",backgroundColor:"red",border:"none"}});var oi=H(require("react"));var Dn=H(require("@radix-ui/react-tooltip"));var ud=require("telva-core");var pd=require("react/jsx-runtime"),zh=()=>ud.Utils.isDarwin()?"\u2318":"Ctrl";function Hi({variant:i,children:o}){return(0,pd.jsx)(Fh,{variant:i,children:o.split("").map((e,t)=>(0,pd.jsx)("span",{children:e.replace("#",zh())},t))})}var Fh=R("kbd",{marginLeft:"$3",textShadow:"$2",textAlign:"center",fontSize:"$0",fontFamily:"$ui",color:"$text",background:"none",fontWeight:400,gap:"$1",display:"flex",alignItems:"center","& > span":{padding:"$0",borderRadius:"$0",display:"flex",alignItems:"center",justifyContent:"center"},variants:{variant:{tooltip:{"& > span":{color:"$tooltipContrast",background:"$overlayContrast",boxShadow:"$key",width:"20px",height:"20px"}},menu:{}}}});var Nn=require("react/jsx-runtime");function zi({children:i,label:o,kbd:e,id:t,side:n="top"}){return(0,Nn.jsx)("span",{id:t,children:(0,Nn.jsx)(Dn.Provider,{children:(0,Nn.jsxs)(Dn.Root,{children:[(0,Nn.jsx)(Dn.Trigger,{dir:"ltr",asChild:!0,children:(0,Nn.jsx)("span",{children:i})}),(0,Nn.jsxs)(Oh,{dir:"ltr",side:n,sideOffset:8,children:[o,e?(0,Nn.jsx)(Hi,{variant:"tooltip",children:e}):null,(0,Nn.jsx)($h,{})]})]})})})}var Oh=R(Dn.Content,{borderRadius:3,padding:"$3 $3 $3 $3",fontSize:"$1",backgroundColor:"$tooltip",color:"$tooltipContrast",boxShadow:"$3",display:"flex",alignItems:"center",fontFamily:"$ui",userSelect:"none",WebkitUserSelect:"none"}),$h=R(Dn.Arrow,{fill:"$tooltip",margin:"0 8px"});var fn={"@initial":"mobile","@micro":"micro","@sm":"small","@md":"medium","@lg":"large"};var tr=H(require("react"));function hd(){let i=tr.useCallback((r,s)=>F(this,null,function*(){s(r.fileSystemHandle?"saveFirstTime":"saveAgain",()=>F(this,null,function*(){try{yield r.saveProject(),r.newProject()}catch(l){}}),()=>F(this,null,function*(){r.newProject()}),()=>F(this,null,function*(){}))}),[]),o=tr.useCallback((r,s)=>F(this,null,function*(){if(!r.fileSystemHandle&&!r.isDirty){r.openProject();return}s(r.fileSystemHandle?"saveFirstTime":"saveAgain",()=>F(this,null,function*(){try{yield r.saveProject(),yield r.openProject()}catch(l){}}),()=>F(this,null,function*(){r.openProject()}),()=>F(this,null,function*(){}))}),[]),e=tr.useCallback(r=>{r.saveProject()},[]),t=tr.useCallback(r=>{r.saveProjectAs()},[]),n=tr.useCallback(r=>F(this,null,function*(){var s;(s=r.openAsset)==null||s.call(r)}),[]);return{onNewProject:i,onSaveProject:e,onSaveProjectAs:t,onOpenProject:o,onOpenMedia:n}}var nr=H(require("react"));function Fi(){let i=_(),{openDialog:o}=Oi(),e=nr.useCallback(l=>F(this,null,function*(){var a,c;l&&i.callbacks.onOpenProject&&l.preventDefault(),(c=(a=i.callbacks).onNewProject)==null||c.call(a,i,o)}),[i,o]),t=nr.useCallback(l=>{var a,c;l&&i.callbacks.onOpenProject&&l.preventDefault(),(c=(a=i.callbacks).onSaveProject)==null||c.call(a,i)},[i]),n=nr.useCallback(l=>{var a,c;l&&i.callbacks.onOpenProject&&l.preventDefault(),(c=(a=i.callbacks).onSaveProjectAs)==null||c.call(a,i)},[i]),r=nr.useCallback(l=>F(this,null,function*(){var a,c;l&&i.callbacks.onOpenProject&&l.preventDefault(),(c=(a=i.callbacks).onOpenProject)==null||c.call(a,i,o)}),[i,o]),s=nr.useCallback(l=>F(this,null,function*(){var a,c;l&&i.callbacks.onOpenMedia&&l.preventDefault(),(c=(a=i.callbacks).onOpenMedia)==null||c.call(a,i)}),[i]);return{onNewProject:e,onSaveProject:t,onSaveProjectAs:n,onOpenProject:r,onOpenMedia:s}}var Ni=H(require("react")),W=require("react-hotkeys-hook");var Jr=class{constructor(){d(this,"onPinchStart");d(this,"onPinchEnd");d(this,"onPinch");d(this,"onKeyDown");d(this,"onKeyUp");d(this,"onPointerMove");d(this,"onPointerUp");d(this,"onPan");d(this,"onZoom");d(this,"onPointerDown");d(this,"onPointCanvas");d(this,"onDoubleClickCanvas");d(this,"onRightPointCanvas");d(this,"onDragCanvas");d(this,"onReleaseCanvas");d(this,"onPointShape");d(this,"onDoubleClickShape");d(this,"onRightPointShape");d(this,"onDragShape");d(this,"onHoverShape");d(this,"onUnhoverShape");d(this,"onReleaseShape");d(this,"onPointBounds");d(this,"onDoubleClickBounds");d(this,"onRightPointBounds");d(this,"onDragBounds");d(this,"onHoverBounds");d(this,"onUnhoverBounds");d(this,"onReleaseBounds");d(this,"onPointBoundsHandle");d(this,"onDoubleClickBoundsHandle");d(this,"onRightPointBoundsHandle");d(this,"onDragBoundsHandle");d(this,"onHoverBoundsHandle");d(this,"onUnhoverBoundsHandle");d(this,"onReleaseBoundsHandle");d(this,"onPointHandle");d(this,"onDoubleClickHandle");d(this,"onRightPointHandle");d(this,"onDragHandle");d(this,"onHoverHandle");d(this,"onUnhoverHandle");d(this,"onReleaseHandle");d(this,"onShapeBlur");d(this,"onShapeClone")}},Pa=(n=>(n.Idle="idle",n.Connecting="connecting",n.Connected="connected",n.Disconnected="disconnected",n))(Pa||{}),Ve=(u=>(u.Transform="transform",u.Translate="translate",u.TransformSingle="transformSingle",u.Brush="brush",u.Arrow="arrow",u.Draw="draw",u.Erase="erase",u.Rotate="rotate",u.Handle="handle",u.Grid="grid",u.Edit="edit",u))(Ve||{}),Ht=(g=>(g.Idle="idle",g.PointingHandle="pointingHandle",g.PointingBounds="pointingBounds",g.PointingBoundsHandle="pointingBoundsHandle",g.TranslatingLabel="translatingLabel",g.TranslatingHandle="translatingHandle",g.Translating="translating",g.Transforming="transforming",g.Rotating="rotating",g.Pinching="pinching",g.Brushing="brushing",g.Creating="creating",g.EditingText="editing-text",g))(Ht||{}),$i=(n=>(n.Backward="backward",n.Forward="forward",n.ToFront="toFront",n.ToBack="toBack",n))($i||{}),Qr=(s=>(s.Top="top",s.CenterVertical="centerVertical",s.Bottom="bottom",s.Left="left",s.CenterHorizontal="centerHorizontal",s.Right="right",s))(Qr||{}),ei=(e=>(e.Horizontal="horizontal",e.Vertical="vertical",e))(ei||{}),ti=(e=>(e.Horizontal="horizontal",e.Vertical="vertical",e))(ti||{}),Gi=(e=>(e.Horizontal="horizontal",e.Vertical="vertical",e))(Gi||{}),oe=(g=>(g.Sticky="sticky",g.Ellipse="ellipse",g.Rectangle="rectangle",g.Triangle="triangle",g.Draw="draw",g.Arrow="arrow",g.Line="line",g.Text="text",g.Group="group",g.Image="image",g.Video="video",g.ReactComponent="reactComponent",g.Pen="pen",g))(oe||{}),or=(o=>(o.Arrow="arrow",o))(or||{}),ji=(h=>(h.White="white",h.LightGray="lightGray",h.Gray="gray",h.Black="black",h.Green="green",h.Cyan="cyan",h.Blue="blue",h.Indigo="indigo",h.Violet="violet",h.Red="red",h.Orange="orange",h.Yellow="yellow",h))(ji||{}),ni=(t=>(t.Small="small",t.Medium="medium",t.Large="large",t))(ni||{}),en=(n=>(n.Draw="draw",n.Solid="solid",n.Dashed="dashed",n.Dotted="dotted",n))(en||{}),md=(n=>(n.Small="small",n.Medium="medium",n.Large="large",n.ExtraLarge="extraLarge",n))(md||{}),zt=(n=>(n.Start="start",n.Middle="middle",n.End="end",n.Justify="justify",n))(zt||{}),Eo=(n=>(n.Script="script",n.Sans="sans",n.Serif="serif",n.Mono="mono",n))(Eo||{});function Bo(i){let o=i.stops.map(e=>{let t=e.color.slice(0,7),[n,r,s]=[1,3,5].map(l=>parseInt(t.slice(l,l+2),16));return`rgba(${n},${r},${s},${e.opacity}) ${e.position}%`}).join(", ");switch(i.type){case"linear":return`linear-gradient(${i.angle}deg, ${o})`;case"radial":return`radial-gradient(circle at ${i.centerX}% ${i.centerY}%, ${o})`;case"conic":case"diamond":return`conic-gradient(from ${i.angle}deg at ${i.centerX}% ${i.centerY}%, ${o})`;default:return`linear-gradient(90deg, ${o})`}}var Wi=(e=>(e.Image="image",e.Video="video",e))(Wi||{}),so=(r=>(r.PNG="png",r.JPG="jpeg",r.WEBP="webp",r.SVG="svg",r.JSON="json",r))(so||{}),rr=(n=>(n.Transparent="transparent",n.Auto="auto",n.Light="light",n.Dark="dark",n))(rr||{});function gd(i){let o=_(),e=Ni.useCallback((a=!1)=>{let c=i.current;return a&&(o.isMenuOpen||o.settings.keepStyleMenuOpen)?!0:c&&(document.activeElement===c||c.contains(document.activeElement))},[i]);Ni.useEffect(()=>{if(!o)return;let a=u=>{if(!!e(!0)){if(o.readOnly){o.copy(void 0,u);return}o.cut(void 0,u)}},c=u=>{!e(!0)||o.copy(void 0,u)},p=u=>{!e(!0)||o.readOnly||o.paste(void 0,u)};return document.addEventListener("cut",a),document.addEventListener("copy",c),document.addEventListener("paste",p),()=>{document.removeEventListener("cut",a),document.removeEventListener("copy",c),document.removeEventListener("paste",p)}},[o]),(0,W.useHotkeys)("v,1",()=>{!e(!0)||o.selectTool("select")},[o,i.current]),(0,W.useHotkeys)("d,2",()=>{!e(!0)||o.selectTool("draw")},void 0,[o]),(0,W.useHotkeys)("p",()=>{!e(!0)||o.selectTool("pen")},void 0,[o]),(0,W.useHotkeys)("e,3",()=>{!e(!0)||o.selectTool("erase")},void 0,[o]),(0,W.useHotkeys)("r,4",()=>{!e(!0)||o.selectTool("rectangle")},void 0,[o]),(0,W.useHotkeys)("o,5",()=>{!e(!0)||o.selectTool("ellipse")},void 0,[o]),(0,W.useHotkeys)("g,6",()=>{!e()||o.selectTool("triangle")},void 0,[o]),(0,W.useHotkeys)("l,7",()=>{!e(!0)||o.selectTool("line")},void 0,[o]),(0,W.useHotkeys)("a,8",()=>{!e(!0)||o.selectTool("arrow")},void 0,[o]),(0,W.useHotkeys)("t,9",()=>{!e(!0)||o.selectTool("text")},void 0,[o]),(0,W.useHotkeys)("s,0",()=>{!e(!0)||o.selectTool("sticky")},void 0,[o]),(0,W.useHotkeys)("ctrl+shift+d,\u2318+shift+d",a=>{!e(!0)||(o.toggleDarkMode(),a.preventDefault())},void 0,[o]),(0,W.useHotkeys)("ctrl+.,\u2318+.",()=>{!e(!0)||o.toggleFocusMode()},void 0,[o]),(0,W.useHotkeys)("ctrl+shift+g,\u2318+shift+g",()=>{!e(!0)||o.toggleGrid()},void 0,[o]);let{onNewProject:t,onOpenProject:n,onSaveProject:r,onSaveProjectAs:s,onOpenMedia:l}=Fi();(0,W.useHotkeys)("ctrl+n,\u2318+n",a=>{a.preventDefault(),e()&&t(a)},void 0,[o]),(0,W.useHotkeys)("ctrl+s,\u2318+s",a=>{!e()||r(a)},void 0,[o]),(0,W.useHotkeys)("ctrl+shift+s,\u2318+shift+s",a=>{!e()||s(a)},void 0,[o]),(0,W.useHotkeys)("ctrl+alt+1,\u2318+alt+1",a=>{!e()||o.exportImage("svg",{scale:2,quality:1})},void 0,[o]),(0,W.useHotkeys)("ctrl+alt+2,\u2318+alt+2",a=>{!e()||o.exportImage("png",{scale:2,quality:1})},void 0,[o]),(0,W.useHotkeys)("ctrl+alt+3,\u2318+alt+3",a=>{!e()||o.exportImage("jpeg",{scale:2,quality:1})},void 0,[o]),(0,W.useHotkeys)("ctrl+alt+4,\u2318+alt+4",a=>{!e()||o.exportImage("webp",{scale:2,quality:1})},void 0,[o]),(0,W.useHotkeys)("ctrl+alt+5,\u2318+alt+5",a=>{!e()||o.exportJson()},void 0,[o]),(0,W.useHotkeys)("ctrl+o,\u2318+o",a=>{!e()||n(a)},void 0,[o]),(0,W.useHotkeys)("ctrl+u,\u2318+u",a=>{!e()||l(a)},void 0,[o]),(0,W.useHotkeys)("\u2318+z,ctrl+z",a=>{a.preventDefault(),e(!0)&&(o.session?o.cancelSession():o.undo())},void 0,[o]),(0,W.useHotkeys)("ctrl+shift+z,\u2318+shift+z",()=>{!e(!0)||(o.session?o.cancelSession():o.redo())},void 0,[o]),(0,W.useHotkeys)("\u2318+u,ctrl+u",()=>{!e()||o.undoSelect()},void 0,[o]),(0,W.useHotkeys)("ctrl+shift-u,\u2318+shift+u",()=>{!e()||o.redoSelect()},void 0,[o]),(0,W.useHotkeys)("ctrl+=,\u2318+=,ctrl+num_add,\u2318+num_add",a=>{!e(!0)||(o.zoomIn(),a.preventDefault())},void 0,[o]),(0,W.useHotkeys)("ctrl+-,\u2318+-,ctrl+num_subtract,\u2318+num_subtract",a=>{!e(!0)||(o.zoomOut(),a.preventDefault())},void 0,[o]),(0,W.useHotkeys)("shift+0,ctrl+numpad_0,\u2318+numpad_0",()=>{!e(!0)||o.resetZoom()},void 0,[o]),(0,W.useHotkeys)("shift+1",()=>{!e(!0)||o.zoomToFit()},void 0,[o]),(0,W.useHotkeys)("shift+2",()=>{!e(!0)||o.zoomToSelection()},void 0,[o]),(0,W.useHotkeys)("ctrl+d,\u2318+d",a=>{!e()||(o.duplicate(),a.preventDefault())},void 0,[o]),(0,W.useHotkeys)("shift+h",()=>{!e(!0)||o.flipHorizontal()},void 0,[o]),(0,W.useHotkeys)("shift+v",()=>{!e(!0)||o.flipVertical()},void 0,[o]),(0,W.useHotkeys)("escape",()=>{!e(!0)||o.cancel()},void 0,[o]),(0,W.useHotkeys)("backspace,del",()=>{!e()||o.delete()},void 0,[o]),(0,W.useHotkeys)("\u2318+a,ctrl+a",()=>{!e(!0)||o.selectAll()},void 0,[o]),(0,W.useHotkeys)("up",()=>{!e()||o.nudge([0,-1],!1)},void 0,[o]),(0,W.useHotkeys)("right",()=>{!e()||o.nudge([1,0],!1)},void 0,[o]),(0,W.useHotkeys)("down",()=>{!e()||o.nudge([0,1],!1)},void 0,[o]),(0,W.useHotkeys)("left",()=>{!e()||o.nudge([-1,0],!1)},void 0,[o]),(0,W.useHotkeys)("shift+up",()=>{!e()||o.nudge([0,-1],!0)},void 0,[o]),(0,W.useHotkeys)("shift+right",()=>{!e()||o.nudge([1,0],!0)},void 0,[o]),(0,W.useHotkeys)("shift+down",()=>{!e()||o.nudge([0,1],!0)},void 0,[o]),(0,W.useHotkeys)("shift+left",()=>{!e()||o.nudge([-1,0],!0)},void 0,[o]),(0,W.useHotkeys)("\u2318+shift+l,ctrl+shift+l",()=>{!e()||o.toggleLocked()},void 0,[o]),(0,W.useHotkeys)("\u2318+shift+c,ctrl+shift+c",a=>{!e()||(o.copySvg(),a.preventDefault())},void 0,[o]),(0,W.useHotkeys)("\u2318+g,ctrl+g",a=>{!e()||(o.group(),a.preventDefault())},void 0,[o]),(0,W.useHotkeys)("\u2318+shift+g,ctrl+shift+g",a=>{!e()||(o.ungroup(),a.preventDefault())},void 0,[o]),(0,W.useHotkeys)("[",()=>{!e(!0)||o.moveBackward()},void 0,[o]),(0,W.useHotkeys)("]",()=>{!e(!0)||o.moveForward()},void 0,[o]),(0,W.useHotkeys)("shift+[",()=>{!e(!0)||o.moveToBack()},void 0,[o]),(0,W.useHotkeys)("shift+]",()=>{!e(!0)||o.moveToFront()},void 0,[o]),(0,W.useHotkeys)("ctrl+shift+backspace,\u2318+shift+backspace",a=>{!e()||(o.settings.isDebugMode&&o.resetDocument(),a.preventDefault())},void 0,[o]),(0,W.useHotkeys)("alt+command+l,alt+ctrl+l",a=>{!e(!0)||(o.style({textAlign:"start"}),a.preventDefault())},void 0,[o]),(0,W.useHotkeys)("alt+command+t,alt+ctrl+t",a=>{!e(!0)||(o.style({textAlign:"middle"}),a.preventDefault())},void 0,[o]),(0,W.useHotkeys)("alt+command+r,alt+ctrl+r",a=>{!e(!0)||(o.style({textAlign:"end"}),a.preventDefault())},void 0,[o])}var En=H(require("react")),Ra=En.createContext({}),Gh=()=>{let[i,o]=En.useState(0);En.useEffect(()=>o(1))};function _(){return En.useContext(Ra)}var Da=En.createContext({});function Sn(){let i=En.useContext(Da);return Gh(),i}var _d=H(require("react"));var fd={"style.menu.color":"\u0627\u0644\u0644\u0648\u0646","style.menu.fill":"\u064A\u0645\u0644\u0623","style.menu.dash":"\u0645\u062A\u0642\u0637\u0639","style.menu.size":"\u062D\u062C\u0645","style.menu.keep.open":"\u062A\u0628\u0642\u0649 \u0645\u0641\u062A\u0648\u062D\u0629","style.menu.font":"\u0627\u0644\u062E\u0637","style.menu.align":"\u0645\u062D\u0627\u0630\u0627\u0629",styles:"\u0627\u0644\u0623\u0646\u0645\u0627\u0637","zoom.in":"\u062A\u0643\u0628\u064A\u0631","zoom.out":"\u062A\u0635\u063A\u064A\u0631",to:"\u0625\u0644\u0649","menu.tools":"\u0623\u062F\u0648\u0627\u062A","menu.transform":"\u0627\u0644\u062A\u062D\u0648\u064A\u0644\u0627\u062A","menu.file":"\u0645\u0644\u0641","menu.edit":"\u062A\u062D\u0631\u064A\u0631","menu.view":"\u0645\u0639\u0627\u064A\u0646\u0629","menu.preferences":"\u0627\u0644\u062A\u0641\u0636\u064A\u0644\u0627\u062A","menu.sign.in":"\u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644","menu.sign.out":"\u062E\u0631\u0648\u062C","become.a.sponsor":"\u0643\u0646 \u0631\u0627\u0639\u064A\u0627\u064B","zoom.to.content":"\u0627\u0644\u0639\u0648\u062F\u0629 \u0625\u0644\u0649 \u0627\u0644\u0645\u062D\u062A\u0648\u0649","zoom.to.selection":"\u062A\u0643\u0628\u064A\u0631 \u0644\u0644\u062A\u062D\u062F\u064A\u062F","zoom.to.fit":"\u062A\u0643\u0628\u064A\u0631 \u0644\u062A\u0646\u0627\u0633\u0628","zoom.to":"\u062A\u0643\u0628\u064A\u0631 \u0625\u0644\u0649","preferences.dark.mode":"\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u062F\u0627\u0643\u0646","preferences.focus.mode":"\u0648\u0636\u0639 \u0627\u0644\u062A\u0631\u0643\u064A\u0632","preferences.debug.mode":"\u0648\u0636\u0639 \u0627\u0644\u062A\u0635\u062D\u064A\u062D","preferences.show.grid":"\u0627\u0638\u0647\u0631 \u0627\u0644\u0634\u0628\u0643\u0629","preferences.use.cad.selection":"\u0627\u0633\u062A\u062E\u062F\u0627\u0645 \u0627\u0644\u062A\u062D\u062F\u064A\u062F CAD","preferences.keep.stylemenu.open":"\u0627\u0644\u0627\u062D\u062A\u0641\u0627\u0638 \u0628\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0646\u0645\u0637 \u0645\u0641\u062A\u0648\u062D\u0629","preferences.always.show.snaps":"\u0625\u0638\u0647\u0627\u0631 \u0627\u0644\u0644\u0642\u0637\u0627\u062A \u062F\u0627\u0626\u0645\u064B\u0627","preferences.rotate.handles":"\u062A\u062F\u0648\u064A\u0631 \u0627\u0644\u0645\u0642\u0627\u0628\u0636","preferences.binding.handles":"\u0645\u0642\u0627\u0628\u0636 \u0645\u0644\u0632\u0645\u0629","preferences.clone.handles":"\u0645\u0642\u0627\u0628\u0636 \u0627\u0633\u062A\u0646\u0633\u0627\u062E",undo:"\u0627\u0644\u063A\u0627\u0621",redo:"\u0625\u0639\u0627\u062F\u0629",cut:"\u0642\u0637\u0639",copy:"\u0646\u0633\u062D",paste:"\u0644\u0635\u0642","copy.as":"\u0646\u0633\u062E \u0627\u0644\u0649","export.as":"\u0635\u062F\u0631 \u0627\u0644\u0649","select.all":"\u0627\u062E\u062A\u0631 \u0627\u0644\u0643\u0644","select.none":"\u0644\u0627 \u062A\u062E\u062A\u0631 \u0634\u064A\u0621",delete:"\u062D\u0630\u0641","new.project":"\u0645\u0634\u0631\u0648\u0639 \u062C\u062F\u064A\u062F",open:"\u0641\u062A\u062D",save:"\u062D\u0641\u0638","save.as":"\u062D\u0641\u0638 \u0628\u0627\u0633\u0645","upload.media":"\u062A\u062D\u0645\u064A\u0644 \u0627\u0644\u0648\u0633\u0627\u0626\u0637","create.page":"\u0625\u0646\u0634\u0627\u0621 \u0635\u0641\u062D\u0629","new.page":"\u0635\u0641\u062D\u0629 \u062C\u062F\u064A\u062F\u0629","page.name":"\u0627\u0633\u0645 \u0627\u0644\u0635\u0641\u062D\u0629",duplicate:"\u0646\u0633\u062E",cancel:"\u0627\u0644\u063A\u0627\u0621","copy.invite.link":"\u0646\u0633\u062E \u0631\u0627\u0628\u0637 \u0627\u0644\u062F\u0639\u0648\u0629","copy.readonly.link":"\u0646\u0633\u062E \u0631\u0627\u0628\u0637 \u062F\u0639\u0648\u0629 \u0627\u0644\u0642\u0631\u0627\u0621\u0629 \u0641\u0642\u0637","create.multiplayer.project":"\u0642\u0645 \u0628\u0625\u0646\u0634\u0627\u0621 \u0645\u0634\u0631\u0648\u0639 \u0645\u062A\u0639\u062F\u062F \u0627\u0644\u0644\u0627\u0639\u0628\u064A\u0646","copy.multiplayer.project":"\u0646\u0633\u062E \u0625\u0644\u0649 \u0645\u0634\u0631\u0648\u0639 \u0645\u062A\u0639\u062F\u062F \u0627\u0644\u0644\u0627\u0639\u0628\u064A\u0646",select:"\u0627\u062E\u062A\u0631",eraser:"\u0645\u0645\u062D\u0627\u0629",draw:"\u0631\u0633\u0645",arrow:"\u0633\u0647\u0645",text:"\u0646\u0635",sticky:"\u0644\u0627\u0635\u0642",rectangle:"\u0645\u0631\u0628\u0639",ellipse:"\u0628\u064A\u0636\u0627\u0648\u064A",triangle:"\u0645\u062B\u0644\u062B",line:"\u062E\u0637",rotate:"\u062F\u0648\u0651\u0631","lock.aspect.ratio":"\u0642\u0641\u0644 \u0646\u0633\u0628\u0629 \u0627\u0644\u0627\u0628\u0639\u0627\u062F","unlock.aspect.ratio":"\u0641\u062A\u062D \u0642\u0641\u0644 \u0646\u0633\u0628\u0629 \u0627\u0644\u0627\u0628\u0639\u0627\u062F",group:"\u062C\u0645\u0651\u0639",ungroup:"\u0641\u0643 \u0627\u0644\u062A\u062C\u0645\u0639","move.to.back":"\u0627\u0646\u062A\u0642\u0644 \u0625\u0644\u0649 \u0627\u0644\u062E\u0644\u0641","move.backward":"\u062A\u062D\u0631\u064A\u0643 \u0644\u0644\u062E\u0644\u0641","move.forward":"\u062A\u062D\u0631\u064A\u0643 \u0644\u0644\u0623\u0645\u0627\u0645","move.to.front":"\u062A\u062D\u0631\u0643 \u0644\u0644\u0623\u0645\u0627\u0645","reset.angle":"\u0625\u0639\u0627\u062F\u0629 \u0636\u0628\u0637 \u0627\u0644\u0632\u0627\u0648\u064A\u0629",lock:"\u0642\u0641\u0644",unlock:"\u0627\u0644\u063A\u0627\u0621 \u0627\u0644\u0642\u0641\u0644","move.to.page":"\u0627\u0646\u0642\u0644 \u0625\u0644\u0649 \u0627\u0644\u0635\u0641\u062D\u0629","flip.horizontal":"\u0627\u0646\u0639\u0643\u0627\u0633 \u0623\u0641\u0642\u064A","flip.vertical":"\u0627\u0646\u0639\u0643\u0627\u0633 \u0639\u0645\u0648\u062F\u064A",move:"\u062D\u0631\u0651\u0643","to.front":"\u0644\u0644\u0627\u0645\u0627\u0645",forward:"\u0644\u0644\u062E\u0644\u0641",backward:"\u0644\u0644\u0648\u0631\u0627\u0621",back:"\u062E\u0644\u0641",language:"\u0644\u063A\u0629","translation.link":"\u0644\u0644\u0645\u0632\u064A\u062F","dock.position":"\u0645\u0648\u0642\u0639 \u0627\u0644\u0627\u062F\u0648\u0627\u062A",bottom:"\u0627\u0633\u0641\u0644",left:"\u064A\u0633\u0627\u0631",right:"\u064A\u0645\u064A\u0646",top:"\u0623\u0639\u0644\u0649",page:"\u0635\u0641\u062D\u0629","keyboard.shortcuts":"\u0627\u062E\u062A\u0635\u0627\u0631\u0627\u062A \u0644\u0648\u062D\u0629 \u0627\u0644\u0645\u0641\u0627\u062A\u064A\u062D",search:"\u0628\u062D\u062B",loading:"{dots}\u062A\u062D\u0645\u064A\u0644 ","export.background":"\u062A\u0635\u062F\u064A\u0631 \u0627\u0644\u062E\u0644\u0641\u064A\u0629",transparent:"\u0634\u0640\u0641\u0627\u0641",auto:"\u0630\u0627\u062A\u064A",light:"\u062E\u0641\u064A\u0641",dark:"\u063A\u0627\u0645\u0642","dialog.save.firsttime":"\u0647\u0644 \u062A\u0631\u064A\u062F \u062D\u0641\u0638 \u0627\u0644\u062A\u063A\u064A\u064A\u0631\u0627\u062A \u0639\u0644\u0649 \u0647\u0630\u0627 \u0627\u0644\u0645\u0634\u0631\u0648\u0639\u061F","dialog.save.again":"\u0647\u0644 \u062A\u0631\u064A\u062F \u062D\u0641\u0638 \u0627\u0644\u062A\u063A\u064A\u064A\u0631\u0627\u062A \u0639\u0644\u0649 \u0647\u0630\u0627 \u0627\u0644\u0645\u0634\u0631\u0648\u0639\u061F","dialog.cancel":"\u0625\u0644\u063A\u0627\u0621","dialog.no":"\u0644\u0627","dialog.yes":"\u0646\u0639\u0645","enter.file.name":"\u0623\u062F\u062E\u0644 \u0627\u0633\u0645 \u0627\u0644\u0645\u0644\u0641",image:"\u0635\u0648\u0631\u0629","align.left":"\u0635\u0641\u0651 \u0644\u0644\u064A\u0633\u0627\u0631","align.center.x":"\u0635\u0641\u0651 \u0627\u0644\u0645\u062D\u0648\u0631 \u0627\u0644\u0623\u0641\u0642\u064A \u0644\u0644\u0648\u0633\u0637","align.right":"\u0635\u0641\u0651 \u0644\u0644\u064A\u0645\u064A\u0646","align.top":"\u0635\u0641\u0651 \u0644\u0644\u0623\u0639\u0644\u0649","align.center.y":"\u0635\u0641\u0651 \u0627\u0644\u0645\u062D\u0648\u0631 \u0627\u0644\u0639\u0645\u0648\u062F\u064A \u0644\u0644\u0648\u0633\u0637","align.bottom":"\u0635\u0641\u0651 \u0644\u0644\u0623\u0633\u0641\u0644","distribute.x":"\u062A\u0648\u0632\u064A\u0639 \u0623\u0641\u0642\u064A","distribute.y":"\u062A\u0648\u0632\u064A\u0639 \u0639\u0645\u0648\u062F\u064A","stretch.x":"\u062A\u0645\u062F\u064A\u062F \u0623\u0641\u0642\u064A","stretch.y":"\u062A\u0645\u062F\u064A\u062F \u0639\u0645\u0648\u062F\u064A"};var Sd={"style.menu.color":"Farve","style.menu.fill":"Fyld","style.menu.dash":"Streg","style.menu.size":"St\xF8rrelse","style.menu.keep.open":"Hold \xE5ben","style.menu.font":"Skrifttype","style.menu.align":"Juster",styles:"Format","zoom.in":"Zoom ind","zoom.out":"Zoom ud",to:"til","menu.tools":"V\xE6rkt\xF8jer","menu.transform":"Transformer","menu.file":"Fil","menu.edit":"Rediger","menu.view":"Vis","menu.preferences":"Indstillinger","menu.sign.in":"Log ind","menu.sign.out":"Log ud","become.a.sponsor":"Bliv sponsor","zoom.to.selection":"Zoom til valgte","zoom.to.fit":"Zoom til l\xE6rred","zoom.to":"Zoom til","zoom.to.content":"Zoom til indhold","preferences.dark.mode":"M\xF8rkt udseende","preferences.focus.mode":"Fokus tilstand","preferences.debug.mode":"Debug tilstand","preferences.show.grid":"Vis net","preferences.use.cad.selection":"Brug CAD udv\xE6lgelse","preferences.keep.stylemenu.open":"Hold formatmenuen \xE5ben","preferences.always.show.snaps":"Vis altid snaps","preferences.rotate.handles":"Roteringsh\xE5ndtag","preferences.binding.handles":"Bindingsh\xE5ndtag","preferences.clone.handles":"Kloningsh\xE5ndtag",undo:"Fortryd",redo:"Gentag",cut:"Klip",copy:"Kopier",paste:"Inds\xE6t","copy.as":"Kopier som","export.as":"Eksporter som","select.all":"V\xE6lg alt","select.none":"Frav\xE6lg alt",delete:"Slet","new.project":"Nyt projekt",open:"\xC5ben",save:"Gem","save.as":"Gem som","upload.media":"Upload medie","create.page":"Opret side","new.page":"Ny side","page.name":"Sidenavn",duplicate:"Dupliker",cancel:"Fortryd","copy.invite.link":"Kopier invitationslink","create.multiplayer.project":"Opret multiplayer projekt","copy.multiplayer.project":"Kopier til multiplayer projekt",select:"V\xE6lg",eraser:"Viskel\xE6der",draw:"Tegn",arrow:"Pil",text:"Tekst",sticky:"Note",rectangle:"Rektangel",ellipse:"Ellipse",triangle:"Trekant",line:"Linje",rotate:"Roter","lock.aspect.ratio":"L\xE5s billedformat","unlock.aspect.ratio":"Frig\xF8r billedformat",group:"Grupper",ungroup:"Opdel gruppe","move.to.back":"Placer bagerst","move.backward":"Flyt tilbage","move.forward":"Flyt frem","move.to.front":"L\xE6g forrest","reset.angle":"Nulstil vinkel",lock:"L\xE5s",unlock:"L\xE5s op","move.to.page":"Flyt til side","flip.horizontal":"Vend vandret","flip.vertical":"Vend lodret",move:"Flyt","to.front":"Forrest",forward:"Frem",backward:"Tilbage",back:"Bagerst",language:"Sprog","align.bottom":"Justering nederst","align.center.x":"Vandret justering centreret","align.center.y":"Lodret justering centreret","align.distribute":"Juster / distribuer","align.left":"Justering til venstre","align.right":"Justering til h\xF8jre","align.top":"Justering \xF8verst","copy.readonly.link":"Kopier skrivebeskyttet link","dialog.save.again":"Vil du gemme \xE6ndringerne til dit projekt?","dialog.save.firsttime":"Vil du gemme dit projekt?","dialog.yes":"Ja","dialog.no":"Nej","dialog.cancel":"Fortryd","enter.file.name":"Skriv filnavn","distribute.x":"Vandret distribuering","distribute.y":"Lodret distribuering","dock.position":"Placering af v\xE6rkt\xF8jslinje",bottom:"Nederst",left:"Venstre",right:"H\xF8jre",top:"\xD8verst","export.background":"Baggrund ved eksport",auto:"Automatisk",light:"Lys",dark:"M\xF8rk",image:"Billede","keyboard.shortcuts":"Tastaturgenveje",loading:"Indl\xE6ser",page:"Side",search:"S\xF8g","stretch.x":"Str\xE6k vandret","stretch.y":"Str\xE6k lodret","translation.link":"L\xE6r mere",transparent:"Gennemsigtig"};var yd={"style.menu.color":"Farbe","style.menu.fill":"F\xFCllen","style.menu.dash":"Strich","style.menu.size":"Gr\xF6\xDFe","style.menu.keep.open":"Offen halten","style.menu.font":"Schriftart","style.menu.align":"Ausrichten",styles:"Stile","zoom.in":"Heranzoomen","zoom.out":"Herauszoomen",to:"zu","menu.tools":"Werkzeuge","menu.transform":"Transformieren","menu.file":"Datei","menu.edit":"Bearbeiten","menu.view":"Ansicht","menu.preferences":"Pr\xE4ferenzen","menu.sign.in":"Einloggen","menu.sign.out":"Ausloggen","become.a.sponsor":"Sponsor werden","zoom.to.content":"Zur\xFCck zum Inhalt","zoom.to.selection":"Zur Auswahl zoomen","zoom.to.fit":"Zoom anpassen","zoom.to":"Zoomen nach","preferences.dark.mode":"Dunkler Modus","preferences.focus.mode":"Fokus Modus","preferences.debug.mode":"Debug Modus","preferences.show.grid":"Gitter anzeigen","preferences.use.cad.selection":"CAD Auswahl verwenden","preferences.keep.stylemenu.open":"Stilmen\xFC offen halten","preferences.always.show.snaps":"Hilfslinien immer anzeigen","preferences.rotate.handles":"Rotiergriffe","preferences.binding.handles":"Bindegriffe","preferences.clone.handles":"Klongriffe",undo:"R\xFCckg\xE4ngig machen",redo:"Wiederherstellen",cut:"Ausschneiden",copy:"Kopieren",paste:"Einf\xFCgen","copy.as":"Kopieren als","export.as":"Exportieren als","select.all":"Alles ausw\xE4hlen","select.none":"Nichts ausw\xE4hlen",delete:"L\xF6schen","new.project":"Neues Projekt",open:"\xD6ffnen",save:"Speichern","save.as":"Speichern als","upload.media":"Medien hochladen","create.page":"Seite erstellen","new.page":"Neue Seite","page.name":"Seitenname",duplicate:"Duplizieren","shape.options":"Form Optionen",shapes:"Fromen",cancel:"Abbrechen","copy.invite.link":"Einladungslink kopieren","copy.readonly.link":"Schreibgesch\xFCtzten Link kopieren","create.multiplayer.project":"Geteiltes Projekt erstellen","copy.multiplayer.project":"In ein Geteiltes Projekt kopieren",select:"Ausw\xE4hlen",eraser:"Radierer",draw:"Malen",arrow:"Pfeil",text:"Text",sticky:"Notiz",rectangle:"Rechteck",ellipse:"Ellipse",triangle:"Dreieck",line:"Linie",rotate:"Drehen","lock.aspect.ratio":"Seitenverh\xE4ltnis sperren","unlock.aspect.ratio":"Seitenverh\xE4ltnis entsperren",group:"Gruppieren",ungroup:"Gruppierung aufheben","move.to.back":"Nach Hinten verschieben","move.backward":"R\xFCckw\xE4rts schieben","move.forward":"Vorw\xE4rts schieben","move.to.front":"Nach Vorne verschieben","reset.angle":"Winkel zur\xFCcksetzen",lock:"Sperren",unlock:"Entsperren","align.distribute":"Ausrichten / Verteilen","move.to.page":"Zu Seite verschieben","flip.horizontal":"Horizontal spiegeln","flip.vertical":"Vertikal spiegeln",move:"Verschieben","to.front":"Nach Vorne",forward:"Vorw\xE4rts",backward:"R\xFCckw\xE4rts",back:"Hinten",language:"Sprache","translation.link":"Mehr erfahren","dock.position":"Dock Position",bottom:"Unten",left:"Links",right:"Rechts",top:"Oben",page:"Seite","keyboard.shortcuts":"Tastaturkurzbefehle",search:"Suche",loading:"Laden{dots}","export.background":"Hintergrund Exportieren",transparent:"Transparent",auto:"Auto",light:"Hell",dark:"Dunkel",github:"Github",twitter:"Twitter",discord:"Discord",image:"Bild","align.left":"Links ausrichten","align.center.x":"Horizontal mittig ausrichten","align.right":"Rechts ausrichten","align.top":"Oben ausrichten","align.center.y":"Vertikal mittig ausrichten","align.bottom":"Unten ausrichten","distribute.x":"Horizontal verteilen","distribute.y":"Vertikal verteilen","stretch.x":"Horizontal strecken","stretch.y":"Vertikal strecken","dialog.save.firsttime":"M\xF6chten Sie Ihr aktuelles Projekt speichern?","dialog.save.again":"M\xF6chten Sie die \xC4nderungen an Ihrem aktuellen Projekt speichern?","dialog.cancel":"Abbrechen","dialog.no":"Nein","dialog.yes":"Ja","enter.file.name":"Dateiname eingeben","telva-beta":"Probieren Sie das neue telva",white:"Wei\xDF",lightGray:"hellgrau",gray:"Frau",black:"Schwarz",green:"Gr\xFCn",cyan:"Cyan",blue:"Blau",indigo:"Indigo",violet:"Violett",red:"Rot",orange:"Orange",yellow:"Gelb",solid:"Durchgehend",dashed:"Gestrichelt",dotted:"Gepunktet",small:"Klein",medium:"Mittel",large:"Gro\xDF"};var bd={};var vd={"style.menu.color":"Color","style.menu.fill":"Relleno","style.menu.dash":"L\xEDnea","style.menu.size":"Tama\xF1o","style.menu.keep.open":"Mantener abierto","style.menu.font":"Fuente","style.menu.align":"Alineaci\xF3n",styles:"Estilos","zoom.in":"Acercar","zoom.out":"Alejar",to:"A","menu.tools":"Herramientas","menu.transform":"Transformar","menu.file":"Archivo","menu.edit":"Editar","menu.view":"Ver","menu.preferences":"Preferencias","menu.sign.in":"Iniciar sesi\xF3n","menu.sign.out":"Cerrar sesi\xF3n","become.a.sponsor":"Convi\xE9rtete en patrocinador","zoom.to.content":"Acercar al contenido","zoom.to.selection":"Acercar a la selecci\xF3n","zoom.to.fit":"Ajustar a la ventana","zoom.to":"Acercar a","preferences.dark.mode":"Modo oscuro","preferences.focus.mode":"Modo concentraci\xF3n","preferences.debug.mode":"Modo depuraci\xF3n","preferences.show.grid":"Mostrar cuadr\xEDcula","preferences.use.cad.selection":"Usar selecci\xF3n CAD","preferences.keep.stylemenu.open":"Mantener men\xFA de estilos abierto","preferences.always.show.snaps":"Mostrar puntos de ajuste","preferences.rotate.handles":"Control de rotaci\xF3n","preferences.binding.handles":"Control de vinculaci\xF3n","preferences.clone.handles":"Control de clonaci\xF3n",undo:"Deshacer",redo:"Rehacer",cut:"Cortar",copy:"Copiar",paste:"Pegar","copy.as":"Copiar como","export.as":"Exportar como","select.all":"Selecionar todo","select.none":"Selecionar nada",delete:"Borrar","new.project":"Nuevo Proyecto",open:"Abrir",save:"Guardar","save.as":"Guardar como","upload.media":"Subir medios","create.page":"Crear p\xE1gina","new.page":"Nueva p\xE1gina","page.name":"Nombre de p\xE1gina",duplicate:"Duplicar","shape.options":"Opciones de formas",shapes:"Formas",cancel:"Cancelar","copy.invite.link":"Copiar invitaci\xF3n","copy.readonly.link":"Copiar invitaci\xF3n (solo lectura)","create.multiplayer.project":"Crear proyecto multijugador","copy.multiplayer.project":"Copiar proyecto multijugador",select:"Seleccionar",eraser:"Borrador",draw:"Dibujar",arrow:"Flecha",text:"Texto",sticky:"Pegatina",rectangle:"Rect\xE1ngulo",ellipse:"Elipse",triangle:"Tri\xE1ngulo",line:"L\xEDnea",rotate:"Rotar","lock.aspect.ratio":"Bloquear relaci\xF3n de aspecto","unlock.aspect.ratio":"Desbloquear relaci\xF3n de aspecto",group:"Agrupar",ungroup:"Desagrupar","move.to.back":"Mover al fondo","move.backward":"Mover atr\xE1s","move.forward":"Mover adelante","move.to.front":"Mover al frente","reset.angle":"Restablecer \xE1ngulo",lock:"Bloquear",unlock:"Desbloquear","align.distribute":"Alinear / Distribuir","move.to.page":"Mover a p\xE1gina","flip.horizontal":"Voltear horizontalmente","flip.vertical":"Voltear verticalmente",move:"Mover","to.front":"Al frente",forward:"Adelante",backward:"Atr\xE1s",back:"Fondo",language:"Idioma","translation.link":"Saber m\xE1s","dock.position":"Posici\xF3n del dock",bottom:"Abajo",left:"Izquierda",right:"Derecha",top:"Arriba",page:"P\xE1gina","keyboard.shortcuts":"Atajos de teclado",search:"Buscar",loading:"Cargando{dots}","export.background":"Exportar fondo",transparent:"Transparente",auto:"Auto",light:"Claro",dark:"Oscuro",github:"Github",twitter:"Twitter",discord:"Discord",image:"Imagen","align.left":"Alinear a la izquierda","align.center.x":"Alinear al centro horizontalmente","align.right":"Alinear a la derecha","align.top":"Alinear arriba","align.center.y":"Alinear al centro verticalmente","align.bottom":"Alinear abajo","distribute.x":"Distribuir horizontalmente","distribute.y":"Distribuir verticalmente","stretch.x":"Estirar horizontalmente","stretch.y":"Estirar verticalmente","dialog.save.firsttime":"\xBFQuieres guardar el proyecto actual?","dialog.save.again":"\xBFQuieres guardar los cambios en el proyecto actual?","dialog.cancel":"Cancelar","dialog.no":"No","dialog.yes":"S\xED","enter.file.name":"Introduce el nombre del arquivo","telva-beta":"Prueba el nuevo telva",white:"Blanco",lightGray:"Gris claro",gray:"Gris",black:"Negro",green:"Verde",cyan:"Cian",blue:"Azul",indigo:"Indigo",violet:"Violeta",red:"Rojo",orange:"Naranja",yellow:"Amarillo",solid:"Cont\xEDnuo",dashed:"Discont\xEDnuo",dotted:"Punteado",small:"Peque\xF1o",medium:"Mediano",large:"Grande"};var Td={"style.menu.color":"\u0631\u0646\u06AF","style.menu.fill":"\u062A\u0648\u067E\u064F\u0631","style.menu.dash":"\u062E\u0637\u200C\u0686\u06CC\u0646","style.menu.size":"\u0627\u0646\u062F\u0627\u0632\u0647","style.menu.keep.open":"\u0628\u0627\u0632 \u0646\u06AF\u0647\u200C\u062F\u0627\u0634\u062A\u0646","style.menu.font":"\u0642\u0644\u0645","style.menu.align":"\u062A\u0631\u0627\u0632",styles:"\u0633\u0628\u06A9\u200C\u0647\u0627","zoom.in":"\u0628\u0632\u0631\u06AF\u200C\u0646\u0645\u0627\u06CC\u06CC","zoom.out":"\u06A9\u0648\u0686\u06A9\u200C\u0646\u0645\u0627\u06CC\u06CC",to:"\u0628\u0647","menu.tools":"\u0627\u0628\u0632\u0627\u0631\u0647\u0627","menu.transform":"\u062A\u063A\u06CC\u06CC\u0631 \u0634\u06A9\u0644","menu.file":"\u067E\u0631\u0648\u0646\u062F\u0647","menu.edit":"\u0648\u06CC\u0631\u0627\u06CC\u0634","menu.view":"\u0646\u0645\u0627\u06CC\u0634","menu.preferences":"\u062A\u0631\u062C\u06CC\u062D\u0627\u062A","menu.sign.in":"\u0648\u0631\u0648\u062F","menu.sign.out":"\u062E\u0631\u0648\u062C","become.a.sponsor":"\u062D\u0645\u0627\u06CC\u062A\u200C\u06A9\u0646\u0646\u062F\u0647 \u0634\u0648\u06CC\u062F","zoom.to.content":"\u0628\u0627\u0632\u06AF\u0634\u062A \u0628\u0647 \u0645\u062D\u062A\u0648\u0627","zoom.to.selection":"\u0628\u0632\u0631\u06AF\u200C\u0646\u0645\u0627\u06CC\u06CC \u0628\u0647 \u0646\u0627\u062D\u06CC\u0647 \u0627\u0646\u062A\u062E\u0627\u0628\u200C\u0634\u062F\u0647","zoom.to.fit":"\u0628\u0632\u0631\u06AF\u200C\u0646\u0645\u0627\u06CC\u06CC \u0645\u062A\u0646\u0627\u0633\u0628 \u0628\u0627 \u0635\u0641\u062D\u0647","zoom.to":"\u0628\u0632\u0631\u06AF\u200C\u0646\u0645\u0627\u06CC\u06CC \u0628\u0647","preferences.dark.mode":"\u062D\u0627\u0644\u062A \u062A\u0627\u0631\u06CC\u06A9","preferences.focus.mode":"\u062D\u0627\u0644\u062A \u062A\u0645\u0631\u06A9\u0632","preferences.debug.mode":"\u062D\u0627\u0644\u062A \u0639\u06CC\u0628\u200C\u06CC\u0627\u0628\u06CC","preferences.show.grid":"\u0646\u0645\u0627\u06CC\u0634 \u062E\u0637\u0648\u0637 \u0631\u0627\u0647\u0646\u0645\u0627","preferences.use.cad.selection":"\u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u0627\u0632 \u062D\u0627\u0644\u062A \u0627\u0646\u062A\u062E\u0627\u0628 CAD","preferences.keep.stylemenu.open":"\u0628\u0627\u0632 \u0646\u06AF\u0647\u200C\u062F\u0627\u0634\u062A\u0646 \u0645\u0646\u0648\u06CC \u0633\u0628\u06A9\u200C\u0647\u0627","preferences.always.show.snaps":"\u0647\u0645\u06CC\u0634\u0647 \u0646\u0642\u0627\u0637 \u0686\u0633\u0628\u0627\u0646 \u0631\u0627 \u0646\u0634\u0627\u0646 \u0628\u062F\u0647","preferences.rotate.handles":"\u062F\u0633\u062A\u06AF\u06CC\u0631\u0647\u200C\u0647\u0627\u06CC \u0686\u0631\u062E\u0634","preferences.binding.handles":"\u062F\u0633\u062A\u06AF\u06CC\u0631\u0647\u200C\u0647\u0627\u06CC \u0627\u062A\u0635\u0627\u0644\u200C\u062F\u0647\u0646\u062F\u0647","preferences.clone.handles":"\u062F\u0633\u062A\u06AF\u06CC\u0631\u0647\u200C\u0647\u0627\u06CC \u062A\u06A9\u062B\u06CC\u0631",undo:"\u0648\u0627\u06AF\u0631\u062F\u0627\u0646\u06CC",redo:"\u0627\u0646\u062C\u0627\u0645 \u062F\u0648\u0628\u0627\u0631\u0647",cut:"\u0628\u0631\u06CC\u062F\u0646",copy:"\u06A9\u067E\u06CC",paste:"\u062C\u0627\u06CC\u200C\u06AF\u0630\u0627\u0631\u06CC","copy.as":"\u06A9\u067E\u06CC \u0628\u0647\u200C\u0639\u0646\u0648\u0627\u0646","export.as":"\u062E\u0631\u0648\u062C\u06CC\u200C\u06AF\u0631\u0641\u062A\u0646 \u0628\u0647\u200C\u0639\u0646\u0648\u0627\u0646","select.all":"\u0627\u0646\u062A\u062E\u0627\u0628 \u0647\u0645\u0647","select.none":"\u0627\u0646\u062A\u062E\u0627\u0628 \u0647\u06CC\u0686\u200C\u06CC\u06A9",delete:"\u062D\u0630\u0641","new.project":"\u067E\u0631\u0648\u0698\u0647 \u062C\u062F\u06CC\u062F",open:"\u0628\u0627\u0632\u06A9\u0631\u062F\u0646",save:"\u0630\u062E\u06CC\u0631\u0647","save.as":"\u0630\u062E\u06CC\u0631\u0647 \u0628\u0647\u200C\u0639\u0646\u0648\u0627\u0646","upload.media":"\u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC \u0631\u0633\u0627\u0646\u0647","create.page":"\u0627\u06CC\u062C\u0627\u062F \u0628\u0631\u06AF\u0647","new.page":"\u0628\u0631\u06AF\u0647 \u062C\u062F\u06CC\u062F","page.name":"\u0646\u0627\u0645 \u0628\u0631\u06AF\u0647",duplicate:"\u062A\u06A9\u062B\u06CC\u0631\u06A9\u0631\u062F\u0646","shape.options":"\u06AF\u0632\u06CC\u0646\u0647\u200C\u0647\u0627\u06CC \u0634\u06A9\u0644",shapes:"\u0634\u06A9\u0644\u200C\u0647\u0627",cancel:"\u0644\u063A\u0648","copy.invite.link":"\u06A9\u067E\u06CC\u200C\u06A9\u0631\u062F\u0646 \u067E\u06CC\u0648\u0646\u062F \u062F\u0639\u0648\u062A","copy.readonly.link":"\u06A9\u067E\u06CC\u200C\u06A9\u0631\u062F\u0646 \u067E\u06CC\u0648\u0646\u062F \u063A\u06CC\u0631\u0642\u0627\u0628\u0644 \u0648\u06CC\u0631\u0627\u06CC\u0634","create.multiplayer.project":"\u0627\u06CC\u062C\u0627\u062F \u06CC\u06A9 \u067E\u0631\u0648\u0698\u0647 \u0686\u0646\u062F\u0646\u0641\u0631\u0647","copy.multiplayer.project":"\u06A9\u067E\u06CC \u0628\u0647 \u067E\u0631\u0648\u0698\u0647 \u0686\u0646\u062F\u0646\u0641\u0631\u0647",select:"\u0627\u0646\u062A\u062E\u0627\u0628",eraser:"\u067E\u0627\u06A9\u200C\u06A9\u0646",draw:"\u0631\u0633\u0645",arrow:"\u0641\u0650\u0644\u0650\u0634",text:"\u0645\u062A\u0646",sticky:"\u0628\u0631\u06AF\u0647 \u0686\u0633\u0628\u0627\u0646",rectangle:"\u0686\u0647\u0627\u0631\u06AF\u0648\u0634",ellipse:"\u06AF\u0631\u062F\u06CC",triangle:"\u0633\u0647\u200C\u06AF\u0648\u0634",line:"\u062E\u0637",rotate:"\u0686\u0631\u062E\u0627\u0646\u062F\u0646","lock.aspect.ratio":"\u0642\u0641\u0644\u200C\u06A9\u0631\u062F\u0646 \u0646\u0633\u0628\u062A \u0627\u0628\u0639\u0627\u062F","unlock.aspect.ratio":"\u0627\u062C\u0627\u0632\u0647 \u062A\u063A\u06CC\u06CC\u0631 \u0646\u0633\u0628\u062A \u0627\u0628\u0639\u0627\u062F",group:"\u06AF\u0631\u0648\u0647\u200C\u0628\u0646\u062F\u06CC",ungroup:"\u0644\u063A\u0648 \u06AF\u0631\u0648\u0647\u200C\u0628\u0646\u062F\u06CC","move.to.back":"\u0627\u0646\u062A\u0642\u0627\u0644 \u0628\u0647 \u0639\u0642\u0628","move.backward":"\u0627\u0646\u062A\u0642\u0627\u0644 \u0628\u0647 \u0633\u0645\u062A \u0639\u0642\u0628","move.forward":"\u0627\u0646\u062A\u0642\u0627\u0644 \u0628\u0647 \u0633\u0645\u062A \u062C\u0644\u0648","move.to.front":"\u0627\u0646\u062A\u0642\u0627\u0644 \u0628\u0647 \u062C\u0644\u0648","reset.angle":"\u0628\u0627\u0632\u0646\u0634\u0627\u0646\u06CC \u0632\u0627\u0648\u06CC\u0647",lock:"\u0642\u0641\u0644",unlock:"\u0628\u0627\u0632\u06A9\u0631\u062F\u0646 \u0642\u0641\u0644","align.distribute":"\u062A\u0631\u0627\u0632 / \u067E\u062E\u0634\u200C\u06A9\u0631\u062F\u0646","move.to.page":"\u0627\u0646\u062A\u0642\u0627\u0644 \u0628\u0647 \u0628\u0631\u06AF\u0647","flip.horizontal":"\u0648\u0627\u0631\u0648\u0646\u0647\u200C\u0633\u0627\u0632\u06CC \u0627\u0641\u0642\u06CC","flip.vertical":"\u0648\u0627\u0631\u0648\u0646\u0647\u200C\u0633\u0627\u0632\u06CC \u0639\u0645\u0648\u062F\u06CC",move:"\u062D\u0631\u06A9\u062A\u200C\u062F\u0627\u062F\u0646","to.front":"\u0628\u0647 \u062C\u0644\u0648",forward:"\u0628\u0647 \u0633\u0645\u062A \u062C\u0644\u0648",backward:"\u0628\u0647 \u0633\u0645\u062A \u0639\u0642\u0628",back:"\u0628\u0647 \u0639\u0642\u0628",language:"\u0632\u0628\u0627\u0646","translation.link":"\u06CC\u0627\u062F\u06AF\u06CC\u0631\u06CC \u0628\u06CC\u0634\u062A\u0631","dock.position":"\u0645\u0648\u0642\u0639\u06CC\u062A \u0646\u0648\u0627\u0631 \u0627\u0628\u0632\u0627\u0631",bottom:"\u067E\u0627\u06CC\u06CC\u0646",left:"\u0686\u067E",right:"\u0631\u0627\u0633\u062A",top:"\u0628\u0627\u0644\u0627",page:"\u0628\u0631\u06AF\u0647","keyboard.shortcuts":"\u0645\u06CC\u0627\u0646\u200C\u0628\u0631\u0647\u0627\u06CC \u0635\u0641\u062D\u0647\u200C\u06A9\u0644\u06CC\u062F",search:"\u062C\u0633\u062A\u062C\u0648",loading:"\u0628\u0627\u0631\u06AF\u06CC\u0631\u06CC{dots}","export.background":"\u062E\u0631\u0648\u062C\u06CC\u200C\u06AF\u0631\u0641\u062A\u0646 \u067E\u0633\u200C\u0632\u0645\u06CC\u0646\u0647",transparent:"\u0634\u0641\u0627\u0641",auto:"\u062E\u0648\u062F\u06A9\u0627\u0631",light:"\u0631\u0648\u0634\u0646",dark:"\u062A\u0627\u0631\u06CC\u06A9",github:"\u06AF\u06CC\u062A\u200C\u0647\u0627\u0628",twitter:"\u062A\u0648\u06CC\u06CC\u062A\u0631",discord:"\u062F\u06CC\u0633\u06A9\u0648\u0631\u062F",image:"\u062A\u0635\u0648\u06CC\u0631","align.left":"\u062A\u0631\u0627\u0632 \u0628\u0647 \u0686\u067E","align.center.x":"\u062A\u0631\u0627\u0632 \u0628\u0647 \u0645\u0631\u06A9\u0632 \u0627\u0641\u0642\u06CC","align.right":"\u062A\u0631\u0627\u0632 \u0628\u0647 \u0631\u0627\u0633\u062A","align.top":"\u062A\u0631\u0627\u0632 \u0628\u0647 \u0628\u0627\u0644\u0627","align.center.y":"\u062A\u0631\u0627\u0632 \u0628\u0647 \u0645\u0631\u06A9\u0632 \u0639\u0645\u0648\u062F\u06CC","align.bottom":"\u062A\u0631\u0627\u0632 \u0628\u0647 \u067E\u0627\u06CC\u06CC\u0646","distribute.x":"\u067E\u062E\u0634\u200C\u06A9\u0631\u062F\u0646 \u0627\u0641\u0642\u06CC","distribute.y":"\u067E\u062E\u0634\u200C\u06A9\u0631\u062F\u0646 \u0639\u0645\u0648\u062F\u06CC","stretch.x":"\u06A9\u0634\u200C\u0622\u0648\u0631\u062F\u0646 \u0627\u0641\u0642\u06CC","stretch.y":"\u06A9\u0634\u200C\u0622\u0648\u0631\u062F\u0646 \u0639\u0645\u0648\u062F\u06CC","dialog.save.firsttime":"\u0622\u06CC\u0627 \u0645\u06CC\u200C\u062E\u0648\u0627\u0647\u06CC\u062F \u067E\u0631\u0648\u0698\u0647 \u0641\u0639\u0644\u06CC \u062E\u0648\u062F \u0631\u0627 \u0630\u062E\u06CC\u0631\u0647 \u06A9\u0646\u06CC\u062F\u061F","dialog.save.again":"\u0622\u06CC\u0627 \u0645\u06CC\u200C\u062E\u0648\u0627\u0647\u06CC\u062F \u06A9\u0647 \u062A\u063A\u06CC\u06CC\u0631\u0627\u062A \u0631\u0627 \u062F\u0631 \u067E\u0631\u0648\u0698\u0647 \u0641\u0639\u0644\u06CC \u062E\u0648\u062F \u0630\u062E\u06CC\u0631\u0647 \u06A9\u0646\u06CC\u062F\u061F","dialog.cancel":"\u0644\u063A\u0648","dialog.no":"\u062E\u06CC\u0631","dialog.yes":"\u0628\u0644\u0647","enter.file.name":"\u0646\u0627\u0645 \u067E\u0631\u0648\u0646\u062F\u0647 \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F","telva-beta":"\u0627\u0645\u062A\u062D\u0627\u0646\u200C\u06A9\u0631\u062F\u0646 telva \u062C\u062F\u06CC\u062F",white:"\u0633\u0641\u06CC\u062F",lightGray:"\u062E\u0627\u06A9\u0633\u062A\u0631\u06CC \u0631\u0648\u0634\u0646",gray:"\u062E\u0627\u06A9\u0633\u062A\u0631\u06CC",black:"\u0645\u0634\u06A9\u06CC",green:"\u0633\u0628\u0632",cyan:"\u0641\u06CC\u0631\u0648\u0632\u0647\u200C\u0627\u06CC",blue:"\u0622\u0628\u06CC",indigo:"\u0646\u06CC\u0644\u06CC",violet:"\u0628\u0646\u0641\u0634",red:"\u0642\u0631\u0645\u0632",orange:"\u0646\u0627\u0631\u0646\u062C\u06CC",yellow:"\u0632\u0631\u062F",solid:"\u062A\u0648\u067E\u064F\u0631",dashed:"\u062E\u0637\u200C\u0686\u06CC\u0646",dotted:"\u0646\u0642\u0637\u0647\u200C\u0686\u06CC\u0646",small:"\u06A9\u0648\u0686\u06A9",medium:"\u0645\u062A\u0648\u0633\u0637",large:"\u0628\u0632\u0631\u06AF"};var xd={"style.menu.color":"Couleur","style.menu.fill":"Remplir","style.menu.dash":"Bordure","style.menu.size":"Taille","style.menu.keep.open":"Toujours afficher le menu","style.menu.font":"Police","style.menu.align":"Alignement",styles:"Styles","zoom.in":"Zoom avant","zoom.out":"Zoom arri\xE8re",to:"\xC0","menu.tools":"Outils","menu.transform":"Transformation","menu.file":"Fichier","menu.edit":"\xC9dition","menu.view":"Afficher","menu.preferences":"Pr\xE9f\xE9rences","menu.sign.in":"S'authentifier","menu.sign.out":"Se d\xE9connecter","become.a.sponsor":"Devenir un sponsor","zoom.to.content":"Retour au contenu","zoom.to.selection":"Ajuster le zoom \xE0 la s\xE9lection","zoom.to.fit":"Adapter le zoom au contenu","zoom.to":"R\xE9tablir le zoom \xE0","preferences.dark.mode":"Mode sombre","preferences.focus.mode":"Mode focus","preferences.debug.mode":"Afficher la barre d\xE9veloppeur","preferences.show.grid":"Afficher la grille","preferences.use.cad.selection":"Utiliser la s\xE9lection CAD","preferences.keep.stylemenu.open":"Toujours afficher le menu styles","preferences.always.show.snaps":"Afficher les rep\xE8res dynamiques","preferences.rotate.handles":"Manier la rotation","preferences.binding.handles":"Manier les liaisons","preferences.clone.handles":"Manier le clonage",undo:"Annuler",redo:"R\xE9tablir",cut:"Couper",copy:"Copier",paste:"Coller","copy.as":"Copier au format","export.as":"Exporter au format","select.all":"Tout s\xE9lectionner","select.none":"Tout d\xE9s\xE9lectionner",delete:"Supprimer","new.project":"Nouveau project",open:"Ouvrir",save:"Enregistrer","save.as":"Enregistrer sous","upload.media":"Importer un m\xE9dia","create.page":"Cr\xE9er une page","new.page":"Nouvelle Page","page.name":"Nom de la page",duplicate:"Dupliquer",cancel:"Annuler","copy.invite.link":"Copier le lien d'invitation","copy.readonly.link":"Copier le lien en lecture seule d'invitation","create.multiplayer.project":"Cr\xE9er un project multi-joueurs","copy.multiplayer.project":"Copier dans un projet multi-joueurs",select:"S\xE9lection",eraser:"Gomme",draw:"Crayon",arrow:"Fl\xE8che",text:"Texte",sticky:"Note",rectangle:"Rectangle",ellipse:"Cercle",triangle:"Triangle",line:"Ligne",rotate:"Rotation","lock.aspect.ratio":"Verrouiller les proportions","unlock.aspect.ratio":"D\xE9verrouiller les proportions",group:"Grouper",ungroup:"D\xE9grouper","move.to.back":"D\xE9placer \xE0 l'arri\xE8re-plan","move.backward":"Reculer d'un plan","move.forward":"Avancer d'un plan","move.to.front":"Placer au premier plan","reset.angle":"R\xE9initialiser la rotation",lock:"Verrouiller",unlock:"D\xE9verrouiller","align.distribute":"Alignement / R\xE9partion","move.to.page":"D\xE9placer vers la page","flip.horizontal":"Retourner horizontalement","flip.vertical":"Retourner verticalement",move:"Disposition","to.front":"Placer au premier plan",forward:"Avancer d'un plan",backward:"Reculer d'un plan",back:"D\xE9placer \xE0 l'arri\xE8re-plan",language:"Langage","translation.link":"En savoir plus","dock.position":"Position du dock",bottom:"En bas",left:"\xC0 gauche",right:"\xC0 droite",top:"En haut",page:"Page","keyboard.shortcuts":"Raccourcis clavier",search:"Rechercher",loading:"Chargement{dots}","export.background":"Couleur d'arri\xE8re-plan de l'export",transparent:"Transparent",auto:"Automatique",light:"Clair",dark:"Sombre"};var kd={"style.menu.color":"Cor","style.menu.fill":"Recheo","style.menu.dash":"Li\xF1a","style.menu.size":"Tama\xF1o","style.menu.keep.open":"Manter aberto","style.menu.font":"Fonte","style.menu.align":"Ali\xF1amento",styles:"Estilos","zoom.in":"Achegar","zoom.out":"Afastar",to:"A","menu.tools":"Ferramentas","menu.transform":"Transformar","menu.file":"Arquivo","menu.edit":"Editar","menu.view":"Ver","menu.preferences":"Preferencias","menu.sign.in":"Iniciar sesi\xF3n","menu.sign.out":"Pechar sesi\xF3n","become.a.sponsor":"Conv\xEDrtete en patrocinador","zoom.to.content":"Achegar ao contido","zoom.to.selection":"Achegar \xE1 selecci\xF3n","zoom.to.fit":"Axustar \xE1 vent\xE1","zoom.to":"Achegar a","preferences.dark.mode":"Modo escuro","preferences.focus.mode":"Modo concentraci\xF3n","preferences.debug.mode":"Modo depuraci\xF3n","preferences.show.grid":"Amosar cuadr\xEDcula","preferences.use.cad.selection":"Usar selecci\xF3n CAD","preferences.keep.stylemenu.open":"Manter men\xFA de estilos aberto","preferences.always.show.snaps":"Amosar puntos de axuste","preferences.rotate.handles":"Control de rotaci\xF3n","preferences.binding.handles":"Control de vinculaci\xF3n","preferences.clone.handles":"Control de clonaci\xF3n",undo:"Desfacer",redo:"Refacer",cut:"Cortar",copy:"Copiar",paste:"Pegar","copy.as":"Copiar como","export.as":"Exportar como","select.all":"Selecionar todo","select.none":"Selecionar nada",delete:"Borrar","new.project":"Novo Proxecto",open:"Abrir",save:"Gardar","save.as":"Gardar como","upload.media":"Subir medios","create.page":"Crear p\xE1xina","new.page":"Nova p\xE1xina","page.name":"Nome de p\xE1xina",duplicate:"Duplicar","shape.options":"Opci\xF3ns de formas",shapes:"Formas",cancel:"Cancelar","copy.invite.link":"Copiar invitaci\xF3n","copy.readonly.link":"Copiar invitaci\xF3n (s\xF3 lectura)","create.multiplayer.project":"Crear proxecto multixogador","copy.multiplayer.project":"Copiar proxecto multixogador",select:"Seleccionar",eraser:"Borrador",draw:"Debuxar",arrow:"Frecha",text:"Texto",sticky:"Pegatina",rectangle:"Rect\xE1ngulo",ellipse:"Elipse",triangle:"Tri\xE1ngulo",line:"Li\xF1a",rotate:"Rotar","lock.aspect.ratio":"Bloquear relaci\xF3n de aspecto","unlock.aspect.ratio":"Desbloquear relaci\xF3n de aspecto",group:"Agrupar",ungroup:"Desagrupar","move.to.back":"Mover ao fondo","move.backward":"Mover atr\xE1s","move.forward":"Mover adiante","move.to.front":"Mover ao fronte","reset.angle":"Restablecer \xE1ngulo",lock:"Bloquear",unlock:"Desbloquear","align.distribute":"Ali\xF1ar / Distribu\xEDr","move.to.page":"Mover \xE1 p\xE1xina","flip.horizontal":"Voltear horizontalmente","flip.vertical":"Voltear verticalmente",move:"Mover","to.front":"Ao fronte",forward:"Adilante",backward:"Atr\xE1s",back:"Fondo",language:"Idioma","translation.link":"Saber m\xE1is","dock.position":"Posici\xF3n do dock",bottom:"Abaixo",left:"Esquerda",right:"Dereita",top:"Arriba",page:"P\xE1xina","keyboard.shortcuts":"Atallos de teclado",search:"Buscar",loading:"Cargando{dots}","export.background":"Exportar fondo",transparent:"Transparente",auto:"Auto",light:"Claro",dark:"Escuro",github:"Github",twitter:"Twitter",discord:"Discord",image:"Imaxe","align.left":"Ali\xF1ar \xE1 esquerda","align.center.x":"Ali\xF1ar ao centro horizontalmente","align.right":"Ali\xF1ar \xE1 dereita","align.top":"Ali\xF1ar arriba","align.center.y":"Ali\xF1ar ao centro verticalmente","align.bottom":"Ali\xF1ar abaixo","distribute.x":"Distribu\xEDr horizontalmente","distribute.y":"Distribu\xEDr verticalmente","stretch.x":"Estirar horizontalmente","stretch.y":"Estirar verticalmente","dialog.save.firsttime":"Queres gardar o proxecto actual?","dialog.save.again":"Queres gardar os cambios ao proxecto actual?","dialog.cancel":"Cancelar","dialog.no":"No","dialog.yes":"S\xED","enter.file.name":"Introduce o nome do arquivo","telva-beta":"Proba o novo telva",white:"Branco",lightGray:"Gris claro",gray:"Gris",black:"Negro",green:"Verde",cyan:"Cian",blue:"Azul",indigo:"Indigo",violet:"Violeta",red:"Vermello",orange:"Laranxa",yellow:"Amarelo",solid:"Cont\xEDnuo",dashed:"Discont\xEDnuo",dotted:"Punteado",small:"Pequeno",medium:"Mediano",large:"Grande"};var Cd={"style.menu.color":"\u05E6\u05D1\u05E2","style.menu.fill":"\u05DE\u05DC\u05D0","style.menu.dash":"\u05D2\u05D1\u05D5\u05DC","style.menu.size":"\u05D2\u05D5\u05D3\u05DC","style.menu.keep.open":"\u05D4\u05E9\u05D0\u05E8 \u05E4\u05EA\u05D5\u05D7","style.menu.font":"\u05D2\u05D5\u05E4\u05DF","style.menu.align":"\u05D9\u05D9\u05E9\u05D5\u05E8",styles:"\u05E2\u05D9\u05E6\u05D5\u05D1","zoom.in":"\u05D4\u05D2\u05D3\u05DC \u05EA\u05E6\u05D5\u05D2\u05D4","zoom.out":"\u05D4\u05E7\u05D8\u05DF \u05EA\u05E6\u05D5\u05D2\u05D4",to:"\u05DC","menu.file":"\u05E7\u05D5\u05D1\u05E5","menu.edit":"\u05E2\u05E8\u05D9\u05DB\u05D4","menu.view":"\u05EA\u05E6\u05D5\u05D2\u05D4","menu.preferences":"\u05DE\u05D0\u05E4\u05D9\u05D9\u05E0\u05D9\u05DD","menu.sign.in":"\u05D4\u05D9\u05E8\u05E9\u05DD","menu.sign.out":"\u05D4\u05EA\u05E0\u05EA\u05E7","become.a.sponsor":"\u05DE\u05EA\u05DF \u05D7\u05E1\u05D5\u05EA","zoom.to.selection":"\u05D6\u05D5\u05DD \u05DC\u05D1\u05D7\u05D9\u05E8\u05D4","zoom.to.fit":"\u05D6\u05D5\u05DD \u05DC\u05D4\u05EA\u05D0\u05DE\u05D4","zoom.to":"\u05D6\u05D5\u05DD \u05DC","preferences.dark.mode":"\u05DE\u05E6\u05D1 \u05D7\u05E9\u05D5\u05DA","preferences.focus.mode":"\u05DE\u05E6\u05D1 \u05E4\u05D5\u05E7\u05D5\u05E1","preferences.debug.mode":"\u05DE\u05E6\u05D1 \u05D3\u05D9\u05D1\u05D0\u05D2","preferences.show.grid":"(\u05D2\u05E8\u05D9\u05D3)\u05D4\u05E8\u05D0\u05D4 \u05E8\u05E9\u05EA \u05E2\u05D9\u05DE\u05D5\u05D3","preferences.use.cad.selection":"\u05E1\u05D9\u05DE\u05D5\u05DF CAD","preferences.keep.stylemenu.open":"\u05D4\u05E9\u05D0\u05E8 \u05EA\u05E4\u05E8\u05D9\u05D8 \u05E2\u05D9\u05E6\u05D5\u05D1 \u05E4\u05EA\u05D5\u05D7","preferences.always.show.snaps":"\u05D4\u05E8\u05D0\u05D4 \u05E7\u05D5\u05D5\u05D9 \u05DE\u05EA\u05D0\u05E8","preferences.rotate.handles":"\u05D4\u05E8\u05D0\u05D4 \u05D9\u05D3\u05D9\u05D5\u05EA \u05E1\u05D9\u05D1\u05D5\u05D1","preferences.binding.handles":"\u05D4\u05E8\u05D0\u05D4 \u05D9\u05D3\u05D9\u05D5\u05EA \u05E7\u05E9\u05D9\u05E8\u05D4","preferences.clone.handles":"\u05D4\u05E8\u05D0\u05D4 \u05D9\u05D3\u05D9\u05D5\u05EA \u05E9\u05D9\u05DB\u05E4\u05D5\u05DC",undo:"\u05D1\u05D8\u05DC",redo:"\u05E2\u05E9\u05D4 \u05DE\u05D7\u05D3\u05E9",cut:"\u05D2\u05D6\u05D5\u05E8",copy:"\u05D4\u05E2\u05EA\u05E7",paste:"\u05D4\u05D3\u05D1\u05E7","copy.as":"\u05D4\u05E2\u05EA\u05E7 \u05DB","export.as":"\u05D9\u05D9\u05E6\u05D0 \u05DB","select.all":"\u05D1\u05D7\u05E8 \u05D4\u05DB\u05DC","select.none":"\u05D1\u05D8\u05DC \u05D1\u05D7\u05D9\u05E8\u05D4",delete:"\u05DE\u05D7\u05E7","new.project":"\u05E4\u05E8\u05D5\u05D9\u05E7\u05D8 \u05D7\u05D3\u05E9",open:"\u05E4\u05EA\u05D7",save:"\u05E9\u05DE\u05D5\u05E8","save.as":"\u05E9\u05DE\u05D5\u05E8 \u05DB","upload.media":"\u05D4\u05E2\u05DC\u05D0\u05EA \u05DE\u05D3\u05D9\u05D4","create.page":"\u05E6\u05D5\u05E8 \u05D3\u05E3","new.page":"\u05D3\u05E3 \u05D7\u05D3\u05E9","page.name":"\u05E9\u05DD \u05D4\u05D3\u05E3",duplicate:"\u05E9\u05DB\u05E4\u05DC",cancel:"\u05D1\u05D8\u05DC","copy.invite.link":"\u05D4\u05E2\u05EA\u05E7 \u05E7\u05D9\u05E9\u05D5\u05E8 \u05D4\u05D6\u05DE\u05E0\u05D4","create.multiplayer.project":"\u05E6\u05D5\u05E8 \u05E4\u05E8\u05D5\u05D9\u05E7\u05D8 \u05E8\u05D1 \u05DE\u05E9\u05EA\u05EA\u05E4\u05D9\u05DD","copy.multiplayer.project":"\u05D4\u05E2\u05EA\u05E7 \u05DC\u05E4\u05E8\u05D5\u05D9\u05E7\u05D8 \u05E8\u05D1 \u05DE\u05E9\u05EA\u05EA\u05E4\u05D9\u05DD",select:"\u05E1\u05DE\u05DF",eraser:"\u05DE\u05D7\u05E7",draw:"\u05E6\u05D9\u05D9\u05E8",arrow:"\u05D7\u05E5",text:"\u05D8\u05E7\u05E1\u05D8",sticky:"\u05D3\u05D1\u05D9\u05E7\u05D9",rectangle:"\u05DE\u05E8\u05D5\u05D1\u05E2",ellipse:"\u05D0\u05DC\u05D9\u05E4\u05E1\u05D4",triangle:"\u05DE\u05E9\u05D5\u05DC\u05E9",line:"\u05E7\u05D5",rotate:"\u05E1\u05D5\u05D1\u05D1","lock.aspect.ratio":"\u05E0\u05E2\u05DC \u05D9\u05D7\u05E1 \u05E8\u05D5\u05D7\u05D1-\u05D2\u05D5\u05D1\u05D4","unlock.aspect.ratio":"\u05E9\u05D7\u05E8\u05E8 \u05E0\u05E2\u05D9\u05DC\u05EA \u05D9\u05D7\u05E1 \u05E8\u05D5\u05D7\u05D1-\u05D2\u05D5\u05D1\u05D4",group:"\u05E7\u05D1\u05E5",ungroup:"\u05D1\u05D8\u05DC \u05E7\u05D9\u05D1\u05D5\u05E5","move.to.back":"\u05D4\u05D1\u05D0 \u05DC\u05EA\u05D7\u05EA\u05D9\u05EA","move.backward":"\u05D4\u05D6\u05D6 \u05D0\u05D7\u05D5\u05E8\u05D4","move.forward":"\u05D4\u05D6\u05D6 \u05E7\u05D3\u05D9\u05DE\u05D4","move.to.front":"\u05D4\u05D1\u05D0 \u05DC\u05D7\u05D6\u05D9\u05EA","reset.angle":"\u05D0\u05E4\u05E1 \u05D6\u05D5\u05D5\u05D9\u05EA",lock:"\u05E0\u05E2\u05DC",unlock:"\u05E9\u05D7\u05E8\u05E8 \u05E0\u05E2\u05D9\u05DC\u05D4","move.to.page":"\u05D4\u05D6\u05D6 \u05DC\u05D3\u05E3","flip.horizontal":"\u05D4\u05E4\u05D5\u05DA \u05D0\u05D5\u05E4\u05E7\u05D9\u05EA","flip.vertical":"\u05D4\u05E4\u05D5\u05DA \u05D0\u05E0\u05DB\u05D9\u05EA",move:"\u05D4\u05D6\u05D6","to.front":"\u05D4\u05D1\u05D0 \u05DC\u05E7\u05D3\u05D9\u05DE\u05D4",forward:"\u05E7\u05D3\u05D9\u05DE\u05D4",backward:"\u05D0\u05D7\u05D5\u05E8\u05D4",back:"\u05D1\u05D7\u05D6\u05E8\u05D4",language:"\u05E9\u05E4\u05D4"};var wd={"style.menu.color":"Colore","style.menu.fill":"Riempi","style.menu.dash":"Tratteggo","style.menu.size":"Dimensione","style.menu.keep.open":"Mantieni aperto","style.menu.font":"Font","style.menu.align":"Allineamento",styles:"Stile","zoom.in":"Ingrandisci","zoom.out":"Rimpicciolisci",to:"Imposta","menu.file":"File","menu.edit":"Modifica","menu.view":"Visualizzazione","menu.preferences":"Preferenze","menu.sign.in":"Accedi","menu.sign.out":"Esci","become.a.sponsor":"Sponsorizza","zoom.to.selection":"Adatta alla selezione","zoom.to.fit":"Adatta","zoom.to":"Ingrandisci","preferences.dark.mode":"Modalit\xE0 scura","preferences.focus.mode":"Modalit\xE0 zen","preferences.debug.mode":"Modalit\xE0 sviluppatore","preferences.show.grid":"Mostra griglia","preferences.use.cad.selection":"Selezione CAD","preferences.keep.stylemenu.open":"Mantieni menu stile aperto","preferences.always.show.snaps":"Mostra sempre le guide","preferences.rotate.handles":"Controlli d'inclinazione","preferences.binding.handles":"Controlli d'associazione","preferences.clone.handles":"Controlli di clonazione",undo:"Annulla",redo:"Ripristina",cut:"Taglia",copy:"Copia",paste:"Incolla","copy.as":"Copia come","export.as":"Esporta come","select.all":"Seleziona tutto","select.none":"Deseleziona tutto",delete:"Elimina","new.project":"Nuovo progetto",open:"Apri",save:"Salva","save.as":"Salva come","upload.media":"Carica contenuti multimediali","create.page":"Crea nuova pagina","new.page":"Nuova pagina","page.name":"Nome pagina",page:"Pagina",duplicate:"Duplica",cancel:"Chiudi","copy.invite.link":"Copia link invito","create.multiplayer.project":"Crea progetto multiplayer","copy.multiplayer.project":"Trasforma in progetto multiplayer",select:"Seleziona",eraser:"Gomma",draw:"Matita",arrow:"Freccia",text:"Casella di testo",sticky:"Post-it",rectangle:"Rettangolo",ellipse:"Ellisse",triangle:"Triangolo",line:"Linea",rotate:"Ruota","lock.aspect.ratio":"Blocca rapporto lati","unlock.aspect.ratio":"Sblocca rapporto lati",group:"Raggruppa",ungroup:"Separa","move.to.back":"Muovi in fondo","move.backward":"Sposta indietro","move.forward":"Sposta avanti","move.to.front":"Muovi in fronte","reset.angle":"Reimposta angolo",lock:"Blocca",unlock:"Sblocca","move.to.page":"Trasferisci a pagina","flip.horizontal":"Ribalta orizzontalmente","flip.vertical":"Ribalta verticalmente",move:"Sposta","to.front":"In primo piano",forward:"Sposta avanti",backward:"Sposta indietro",back:"In fondo",language:"Lingua","dock.position":"Posizione dock",bottom:"In basso",left:"Sinistra",right:"Destra",top:"In Alto"};var Id={"style.menu.color":"\u8272","style.menu.fill":"\u5857\u308A\u3064\u3076\u3057","style.menu.dash":"\u7DDA","style.menu.size":"\u592A\u3055/\u30B5\u30A4\u30BA","style.menu.keep.open":"\u5E38\u306B\u8868\u793A","style.menu.font":"\u30D5\u30A9\u30F3\u30C8","style.menu.align":"\u914D\u7F6E",styles:"\u30B9\u30BF\u30A4\u30EB","zoom.in":"\u62E1\u5927","zoom.out":"\u7E2E\u5C0F",to:" ","menu.file":"\u30D5\u30A1\u30A4\u30EB","menu.edit":"\u7DE8\u96C6","menu.view":"\u8868\u793A","menu.preferences":"\u8A2D\u5B9A","menu.sign.in":"\u30B5\u30A4\u30F3\u30A4\u30F3","menu.sign.out":"\u30B5\u30A4\u30F3\u30A2\u30A6\u30C8","become.a.sponsor":"\u652F\u63F4\u3059\u308B","zoom.to.selection":"\u9078\u629E\u3057\u305F\u30A2\u30A4\u30C6\u30E0\u306B\u5408\u308F\u305B\u3066\u62E1\u5927","zoom.to.fit":"\u62E1\u5927\u3057\u3066\u3059\u3079\u3066\u3092\u8868\u793A","zoom.to":"\u62E1\u5927\u7387","preferences.dark.mode":"\u30C0\u30FC\u30AF\u30E2\u30FC\u30C9","preferences.focus.mode":"\u30D5\u30A9\u30FC\u30AB\u30B9\u30E2\u30FC\u30C9","preferences.debug.mode":"\u30C7\u30D0\u30C3\u30B0\u30E2\u30FC\u30C9","preferences.show.grid":"\u30B0\u30EA\u30C3\u30C9\u3092\u8868\u793A","preferences.use.cad.selection":"CAD\u306E\u9078\u629E\u6CD5\u3092\u4F7F\u7528","preferences.keep.stylemenu.open":"\u30B9\u30BF\u30A4\u30EB\u30E1\u30CB\u30E5\u30FC\u3092\u5E38\u306B\u8868\u793A","preferences.always.show.snaps":"\u30B9\u30CA\u30C3\u30D7\u3092\u5E38\u306B\u8868\u793A","preferences.rotate.handles":"\u56DE\u8EE2\u30CF\u30F3\u30C9\u30EB\u3092\u8868\u793A","preferences.binding.handles":"\u7D50\u5408\u30CF\u30F3\u30C9\u30EB\u3092\u8868\u793A","preferences.clone.handles":"\u30AF\u30ED\u30FC\u30F3\u30CF\u30F3\u30C9\u30EB\u3092\u8868\u793A",undo:"\u5143\u306B\u623B\u3059",redo:"\u3084\u308A\u76F4\u3057",cut:"\u5207\u308A\u53D6\u308A",copy:"\u30B3\u30D4\u30FC",paste:"\u8CBC\u308A\u4ED8\u3051","copy.as":"\u5F62\u5F0F\u3092\u9078\u629E\u3057\u3066\u30B3\u30D4\u30FC","export.as":"\u5F62\u5F0F\u3092\u9078\u629E\u3057\u3066\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8","select.all":"\u3059\u3079\u3066\u9078\u629E","select.none":"\u9078\u629E\u3092\u89E3\u9664",delete:"\u524A\u9664","new.project":"\u65B0\u3057\u3044\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",open:"\u958B\u304F",save:"\u4FDD\u5B58","save.as":"\u540D\u524D\u3092\u3064\u3051\u3066\u4FDD\u5B58","upload.media":"\u30E1\u30C7\u30A3\u30A2\u3092\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9","create.page":"\u30DA\u30FC\u30B8\u3092\u4F5C\u6210","new.page":"\u65B0\u898F\u30DA\u30FC\u30B8","page.name":"\u30DA\u30FC\u30B8\u540D",duplicate:"\u8907\u88FD",cancel:"\u30AD\u30E3\u30F3\u30BB\u30EB","copy.invite.link":"\u5171\u6709\u30EA\u30F3\u30AF\u3092\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u306B\u30B3\u30D4\u30FC","create.multiplayer.project":"\u30DE\u30EB\u30C1\u30D7\u30EC\u30A4\u30E4\u30FC\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u4F5C\u6210","copy.multiplayer.project":"\u30DE\u30EB\u30C1\u30D7\u30EC\u30A4\u30E4\u30FC\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u30B3\u30D4\u30FC",select:"\u9078\u629E",eraser:"\u6D88\u3057\u30B4\u30E0",draw:"\u63CF\u753B",arrow:"\u77E2\u5370",text:"\u30C6\u30AD\u30B9\u30C8",sticky:"\u3075\u305B\u3093",rectangle:"\u9577\u65B9\u5F62",ellipse:"\u6955\u5186\u5F62",triangle:"\u4E09\u89D2\u5F62",line:"\u7DDA",rotate:"\u56DE\u8EE2","lock.aspect.ratio":"\u7E26\u6A2A\u6BD4\u3092\u56FA\u5B9A","unlock.aspect.ratio":"\u7E26\u6A2A\u6BD4\u306E\u56FA\u5B9A\u3092\u89E3\u9664",group:"\u30B0\u30EB\u30FC\u30D4\u30F3\u30B0",ungroup:"\u30B0\u30EB\u30FC\u30D7\u89E3\u9664","move.to.back":"\u6700\u80CC\u9762\u306B\u79FB\u52D5","move.backward":"\u3072\u3068\u3064\u5F8C\u308D\u306B\u79FB\u52D5","move.forward":"\u3072\u3068\u3064\u524D\u306B\u79FB\u52D5","move.to.front":"\u6700\u524D\u9762\u306B\u79FB\u52D5","reset.angle":"\u89D2\u5EA6\u3092\u521D\u671F\u5316",lock:"\u30ED\u30C3\u30AF",unlock:"\u30A2\u30F3\u30ED\u30C3\u30AF","move.to.page":"\u30DA\u30FC\u30B8\u3078\u79FB\u52D5","flip.horizontal":"\u6C34\u5E73\u65B9\u5411\u306B\u53CD\u8EE2","flip.vertical":"\u5782\u76F4\u65B9\u5411\u306B\u53CD\u8EE2",move:"\u79FB\u52D5","to.front":"\u6700\u524D\u9762\u3078",forward:"\u3072\u3068\u3064\u524D\u3078",backward:"\u3072\u3068\u3064\u5F8C\u308D\u3078",back:"\u6700\u80CC\u9762\u3078",language:"\u8A00\u8A9E"};var Pd={"style.menu.color":"\uC0C9\uAE54","style.menu.fill":"\uCC44\uC6B0\uAE30","style.menu.dash":"\uD14C\uB450\uB9AC","style.menu.size":"\uD06C\uAE30","style.menu.keep.open":"\uD56D\uC0C1 \uC5F4\uAE30","style.menu.font":"\uAE00\uAF34","style.menu.align":"\uC815\uB82C",styles:"\uC2A4\uD0C0\uC77C","zoom.in":"\uD655\uB300","zoom.out":"\uCD95\uC18C",to:"To","menu.tools":"\uB3C4\uAD6C","menu.transform":"\uBCC0\uD658","menu.file":"\uD30C\uC77C","menu.edit":"\uD3B8\uC9D1","menu.view":"\uBCF4\uAE30","menu.preferences":"\uC124\uC815","menu.sign.in":"\uB85C\uADF8\uC778","menu.sign.out":"\uB85C\uADF8\uC544\uC6C3","become.a.sponsor":"\uD6C4\uC6D0\uC790 \uB418\uAE30","zoom.to.content":"\uCEE8\uD150\uCE20\uB85C \uB3CC\uC544\uAC00\uAE30","zoom.to.selection":"\uC120\uD0DD \uC694\uC18C\uC5D0 \uB9DE\uCD94\uAE30","zoom.to.fit":"\uC804\uCCB4\uC5D0 \uB9DE\uCD94\uAE30","zoom.to":"\uB9DE\uCD94\uAE30","preferences.dark.mode":"\uB2E4\uD06C \uBAA8\uB4DC","preferences.focus.mode":"\uC9D1\uC911 \uBAA8\uB4DC","preferences.debug.mode":"\uB514\uBC84\uADF8 \uBAA8\uB4DC","preferences.show.grid":"\uACA9\uC790 \uBCF4\uAE30","preferences.use.cad.selection":"CAD \uC120\uD0DD \uC0AC\uC6A9","preferences.keep.stylemenu.open":"\uC2A4\uD0C0\uC77C \uBA54\uB274 \uD56D\uC0C1 \uC5F4\uAE30","preferences.always.show.snaps":"Snap \uD56D\uC0C1 \uC5F4\uAE30","preferences.rotate.handles":"\uD68C\uC804 \uBCF4\uC774\uAE30","preferences.binding.handles":"\uBC14\uC778\uB529 \uBCF4\uC774\uAE30","preferences.clone.handles":"\uBCF5\uC81C \uBCF4\uC774\uAE30",undo:"\uC2E4\uD589\uCDE8\uC18C",redo:"\uC7AC\uC2E4\uD589",cut:"\uC790\uB974\uAE30",copy:"\uBCF5\uC0AC",paste:"\uBD99\uC5EC\uB123\uAE30","copy.as":"\uC774\uBBF8\uC9C0\uB85C \uBCF5\uC0AC","export.as":"\uB0B4\uBCF4\uB0B4\uAE30","select.all":"\uC804\uCCB4 \uC120\uD0DD","select.none":"\uC120\uD0DD \uD574\uC81C",delete:"\uC0AD\uC81C","new.project":"\uC0C8 \uD504\uB85C\uC81D\uD2B8",open:"\uC5F4\uAE30",save:"\uC800\uC7A5","save.as":"\uB2E4\uB978 \uC774\uB984\uC73C\uB85C \uC800\uC7A5","upload.media":"\uBBF8\uB514\uC5B4 \uC5C5\uB85C\uB4DC","create.page":"\uC0C8 \uD398\uC774\uC9C0 \uC0DD\uC131","new.page":"\uC0C8 \uD398\uC774\uC9C0","page.name":"\uD398\uC774\uC9C0 \uC774\uB984",duplicate:"\uBCF5\uC81C",cancel:"\uCDE8\uC18C","copy.invite.link":"\uCD08\uB300 \uB9C1\uD06C \uBCF5\uC0AC","copy.readonly.link":"\uC77D\uAE30 \uC804\uC6A9 \uB9C1\uD06C \uBCF5\uC0AC","create.multiplayer.project":"\uC2E4\uC2DC\uAC04 \uD611\uC5C5 \uD504\uB85C\uC81D\uD2B8 \uC0DD\uC131","copy.multiplayer.project":"\uC2E4\uC2DC\uAC04 \uD611\uC5C5 \uD504\uB85C\uC81D\uD2B8\uB85C \uBCF5\uC81C",select:"\uC120\uD0DD",eraser:"\uC9C0\uC6B0\uAC1C",draw:"\uD39C",arrow:"\uD654\uC0B4\uD45C",text:"\uD14D\uC2A4\uD2B8",sticky:"\uC2A4\uD2F0\uD0A4\uB178\uD2B8",rectangle:"\uC0AC\uAC01\uD615",ellipse:"\uC6D0",triangle:"\uC0BC\uAC01\uD615",line:"\uC120",rotate:"\uD68C\uC804","lock.aspect.ratio":"\uBE44\uC728 \uC7A0\uAE08","unlock.aspect.ratio":"\uBE44\uC728 \uC7A0\uAE08 \uD574\uC81C",group:"\uADF8\uB8F9\uD654",ungroup:"\uADF8\uB8F9\uD654 \uD574\uC81C","move.to.back":"\uB9E8 \uB4A4\uB85C \uBCF4\uB0B4\uAE30","move.backward":"\uB4A4\uB85C \uBCF4\uB0B4\uAE30","move.forward":"\uC55E\uC73C\uB85C \uAC00\uC838\uC624\uAE30","move.to.front":"\uB9E8 \uC55E\uC73C\uB85C \uAC00\uC838\uC624\uAE30","reset.angle":"\uD68C\uC804 \uCD08\uAE30\uD654",lock:"\uC7A0\uAE08",unlock:"\uC7A0\uAE08 \uD574\uC81C","align.distribute":"\uC815\uB82C / \uAC04\uACA9 \uB9DE\uCD94\uAE30","move.to.page":"\uD398\uC774\uC9C0\uB85C \uC774\uB3D9","flip.horizontal":"\uC88C\uC6B0 \uB300\uCE6D","flip.vertical":"\uC0C1\uD558 \uB300\uCE6D",move:"\uC21C\uC11C","to.front":"\uB9E8 \uC55E\uC73C\uB85C",forward:"\uC55E\uC73C\uB85C",backward:"\uB4A4\uB85C",back:"\uB9E8 \uB4A4\uB85C",language:"\uC5B8\uC5B4","translation.link":"\uB354 \uC54C\uC544\uBCF4\uAE30","dock.position":"\uB3C5 \uC704\uCE58",bottom:"\uD558\uB2E8",left:"\uC67C\uCABD",right:"\uC624\uB978\uCABD",top:"\uC0C1\uB2E8",page:"\uD398\uC774\uC9C0","keyboard.shortcuts":"\uD0A4\uBCF4\uB4DC \uB2E8\uCD95\uD0A4",search:"\uAC80\uC0C9",loading:"\uB85C\uB529{dots}","export.background":"\uBC30\uACBD \uB0B4\uBCF4\uB0B4\uAE30",transparent:"\uD22C\uBA85",auto:"\uC790\uB3D9",light:"\uB77C\uC774\uD2B8",dark:"\uB2E4\uD06C",github:"Github",twitter:"Twitter",discord:"Discord",image:"\uC774\uBBF8\uC9C0","align.left":"\uC67C\uCABD \uC815\uB82C","align.center.x":"\uC218\uD3C9 \uC911\uC559 \uC815\uB82C","align.right":"\uC624\uB978\uCABD \uC815\uB82C","align.top":"\uC0C1\uB2E8 \uC815\uB82C","align.center.y":"\uC218\uC9C1 \uC911\uC559 \uC815\uB82C","align.bottom":"\uD558\uB2E8 \uC815\uB82C","distribute.x":"\uAC00\uB85C \uAC04\uACA9 \uB9DE\uCD94\uAE30","distribute.y":"\uC138\uB85C \uAC04\uACA9 \uB9DE\uCD94\uAE30","stretch.x":"\uC218\uD3C9\uC73C\uB85C \uB298\uB9AC\uAE30","stretch.y":"\uC218\uC9C1\uC73C\uB85C \uB298\uB9AC\uAE30","dialog.save.firsttime":"\uD604\uC7AC \uD504\uB85C\uC81D\uD2B8\uB97C \uC800\uC7A5\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?","dialog.save.again":"\uBCC0\uACBD\uC0AC\uD56D\uC744 \uD604\uC7AC \uD504\uB85C\uC81D\uD2B8\uC5D0 \uC800\uC7A5\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?","dialog.cancel":"\uCDE8\uC18C","dialog.no":"\uC544\uB2C8\uC624","dialog.yes":"\uB124","enter.file.name":"\uD30C\uC77C \uC774\uB984\uC744 \uC785\uB825\uD574\uC8FC\uC138\uC694","telva-beta":"\uC0C8\uB85C\uC6B4 telva\uB97C \uC0AC\uC6A9\uD574\uBCF4\uC138\uC694"};var Rd={"style.menu.color":"\u0631\u06D5\u0646\u06AF","style.menu.fill":"\u067E\u0695\u06A9\u0631\u062F\u0646\u06D5\u0648\u06D5","style.menu.dash":"\u0644\u06D5\u062A \u0644\u06D5\u062A","style.menu.size":"\u0642\u06D5\u0628\u0627\u0631\u06D5","style.menu.keep.open":"\u0628\u06D5 \u06A9\u0631\u0627\u0648\u06D5\u06CC\u06CC \u0628\u0645\u06CE\u0646\u06D5\u0631\u06D5\u0648\u06D5","style.menu.font":"\u0647\u06CE\u06B5","style.menu.align":"\u0695\u06CE\u06A9\u062E\u0633\u062A\u0646",styles:"\u0646\u06D5\u062E\u0634\u06D5\u06A9\u0627\u0646","zoom.in":"\u0647\u06CE\u0646\u0627\u0646\u06D5 \u067E\u06CE\u0634\u06D5\u0648\u06D5","zoom.out":"\u062F\u0648\u0648\u0631 \u062E\u0633\u062A\u0646\u06D5\u0648\u06D5",to:"\u0628\u06C6","menu.tools":"\u0626\u0627\u0645\u0631\u0627\u0632\u06D5\u06A9\u0627\u0646","menu.transform":"\u06AF\u06C6\u0695\u06CC\u0646","menu.file":"\u0641\u0627\u06CC\u0644\u06CE\u06A9","menu.edit":"\u062F\u06D5\u0633\u062A\u06A9\u0627\u0631\u06CC","menu.view":"\u062F\u06CC\u0645\u06D5\u0646","menu.preferences":"\u062E\u0648\u0627\u0633\u062A","menu.sign.in":"\u0686\u0648\u0648\u0646\u06D5 \u0698\u0648\u0648\u0631\u06D5\u0648\u06D5","menu.sign.out":"\u062F\u06D5\u0631\u0686\u0648\u0648\u0646","become.a.sponsor":"\u0633\u067E\u06C6\u0646\u0633\u06D5\u0631 \u0628\u06D5","zoom.to.content":"\u0632\u0648\u0648\u0645 \u0628\u06A9\u06D5 \u0628\u06C6 \u0646\u0627\u0648\u06D5\u0695\u06C6\u06A9","zoom.to.selection":"\u0632\u0648\u0648\u0645 \u0628\u06A9\u06D5 \u0628\u06C6 \u0647\u06D5\u06B5\u0628\u0698\u0627\u0631\u062F\u0646","zoom.to.fit":"\u0632\u0648\u0648\u0645 \u0628\u06A9\u06D5 \u0628\u06C6 \u0626\u06D5\u0648\u06D5\u06CC \u0644\u06D5\u06AF\u06D5\u06B5\u06CC\u062F\u0627 \u0628\u06AF\u0648\u0646\u062C\u06CE\u062A","zoom.to":"\u0632\u0648\u0648\u0645 \u0628\u06A9\u06D5 \u0628\u06C6","preferences.dark.mode":"\u062F\u06C6\u062E\u06CC \u062A\u0627\u0631\u06CC\u06A9","preferences.focus.mode":"\u062F\u06C6\u062E\u06CC \u0641\u06C6\u06A9\u06D5\u0633","preferences.debug.mode":"\u0645\u06C6\u062F\u06CC \u0647\u06D5\u06B5\u06D5\u062F\u06C6\u0632\u06CC\u0646","preferences.show.grid":"\u062A\u06C6\u0695\u06CC \u067E\u06CC\u0634\u0627\u0646 \u0628\u062F\u06D5","preferences.use.cad.selection":"\u0628\u06D5\u06A9\u0627\u0631\u0628\u0647\u06CE\u0646\u06D5 CAD \u0647\u06D5\u06B5\u0628\u0698\u0627\u0631\u062F\u0646\u06CC","preferences.keep.stylemenu.open":"\u0645\u06CE\u0646\u06C6\u06CC \u0633\u062A\u0627\u06CC\u0644 \u0628\u06D5 \u06A9\u0631\u0627\u0648\u06D5\u06CC\u06CC \u0628\u0647\u06CE\u06B5\u06D5\u0631\u06D5\u0648\u06D5","preferences.always.show.snaps":"\u0647\u06D5\u0645\u06CC\u0634\u06D5 \u0648\u06CE\u0646\u06D5\u06CC \u062E\u06CE\u0631\u0627 \u067E\u06CC\u0634\u0627\u0646 \u0628\u062F\u06D5","preferences.rotate.handles":"\u0633\u0648\u0631\u0627\u0646\u06D5\u0648\u06D5\u06CC \u062F\u06D5\u0633\u062A\u06D5\u06A9\u0627\u0646","preferences.binding.handles":"\u0628\u06D5\u0633\u062A\u0646\u06D5\u0648\u06D5\u06CC \u062F\u06D5\u0633\u062A\u06D5\u06A9\u0627\u0646","preferences.clone.handles":"\u06A9\u0644\u06C6\u0646 \u06A9\u0631\u062F\u0646\u06CC \u062F\u06D5\u0633\u062A\u06D5\u06A9\u0627\u0646",undo:"\u067E\u0627\u0634\u06D5\u06A9\u0634\u06D5 \u0628\u06A9\u06D5",redo:"\u062F\u0648\u0648\u0628\u0627\u0631\u06D5 \u0628\u06CC\u06A9\u06D5\u0631\u06D5\u0648\u06D5",cut:"\u0628\u0695\u06CC\u0646",copy:"\u06A9\u06C6\u067E\u06CC \u0628\u06A9\u06D5",paste:"\u067E\u06D5\u06CC\u0633\u062A \u0628\u06A9\u06D5","copy.as":"\u06A9\u06C6\u067E\u06CC \u0648\u06D5\u06A9","export.as":"\u0647\u06D5\u0646\u0627\u0631\u062F\u06D5\u06A9\u0631\u062F\u0646 \u0648\u06D5\u06A9","select.all":"\u0647\u06D5\u0645\u0648\u0648\u06CC\u0627\u0646 \u0647\u06D5\u06B5\u0628\u0698\u06CE\u0631\u0647","select.none":"\u0647\u06CC\u0686 \u0647\u0647\u200C\u06B5\u0645\u0647\u200C\u0628\u0698\u06CE\u0631\u0647\u200C",delete:"\u0633\u0695\u06CC\u0646\u06D5\u0648\u06D5","new.project":"\u067E\u0695\u06C6\u0698\u06D5\u06CC \u0646\u0648\u06CE",open:"\u06A9\u0631\u062F\u0646\u06D5\u0648\u06D5",save:"\u0647\u06D5\u06B5\u06AF\u0631\u062A\u0646","save.as":"\u0647\u06D5\u06B5\u06AF\u0631\u062A\u0646 \u0648\u06D5\u06A9","upload.media":"\u062F\u0627\u06AF\u0631\u062A\u0646\u06CC \u0645\u06CC\u062F\u06CC\u0627","create.page":"\u062F\u0631\u0648\u0633\u062A\u06A9\u0631\u062F\u0646\u06CC \u0644\u0627\u067E\u06D5\u0695\u06D5","new.page":"\u0644\u0627\u067E\u06D5\u0695\u06D5\u06CC \u0646\u0648\u06CE","page.name":"\u0646\u0627\u0648\u06CC \u0644\u0627\u067E\u06D5\u0695\u06D5",duplicate:"\u062F\u0648\u0648\u0628\u0627\u0631\u06D5\u06A9\u0631\u062F\u0646\u06D5\u0648\u06D5",cancel:"\u0695\u06D5\u062A\u06A9\u0631\u062F\u0646\u06D5\u0648\u06D5","copy.invite.link":"\u0644\u06CC\u0646\u06A9\u06CC \u0628\u0627\u0646\u06AF\u0647\u06CE\u0634\u062A\u06A9\u0631\u062F\u0646 \u06A9\u06C6\u067E\u06CC \u0628\u06A9\u06D5","copy.readonly.link":"\u0628\u06D5 \u0634\u06CE\u0648\u06D5\u06CC\u06D5\u06A9\u06CC \u0647\u06D5\u0695\u06D5\u0645\u06D5\u06A9\u06CC \u06A9\u06C6\u067E\u06CC \u0628\u06A9\u06D5","create.multiplayer.project":"\u062F\u0631\u0648\u0633\u062A\u06A9\u0631\u062F\u0646\u06CC \u067E\u0631\u06C6\u0698\u06D5\u06CC \u0641\u0631\u06D5 \u0628\u06D5\u06A9\u0627\u0631\u0647\u06CE\u0646\u06D5\u0631","copy.multiplayer.project":"\u06A9\u06C6\u067E\u06CC \u0628\u06A9\u06D5 \u0628\u06C6 \u067E\u0695\u06C6\u0698\u06D5\u06CC\u06D5\u06A9\u06CC \u0641\u0631\u06D5 \u0628\u06D5\u06A9\u0627\u0631\u0647\u06CE\u0646\u06D5\u0631",select:"\u062F\u06D5\u0633\u0646\u06CC\u0627\u0634\u0646\u06A9\u0631\u062F\u0646",eraser:"\u0633\u0695\u06D5\u0631\u06D5\u0648\u06D5",draw:"\u0648\u06CE\u0646\u06D5\u06A9\u06CE\u0634\u0627\u0646",arrow:"\u062A\u06CC\u0631",text:"\u062F\u06D5\u0642",sticky:"\u0686\u06D5\u0633\u067E\u0627\u0648",rectangle:"\u0644\u0627\u06A9\u06CE\u0634\u06D5",ellipse:"\u0628\u06CC\u0628\u0644\u06CC",triangle:"\u0633\u06CE\u06AF\u06C6\u0634\u06D5",line:"\u0647\u06CE\u06B5",rotate:"\u0633\u0648\u0695\u0627\u0646\u06D5\u0648\u06D5","lock.aspect.ratio":"\u0642\u0641\u06B5\u06A9\u0631\u062F\u0646\u06CC \u0695\u06CE\u0698\u06D5\u06CC \u0695\u0648\u0648\u0628\u06D5\u0631\u06CC","unlock.aspect.ratio":"\u06A9\u0631\u062F\u0646\u06D5\u0648\u06D5\u06CC \u0695\u06CE\u0698\u06D5\u06CC \u0695\u0648\u0648\u0628\u06D5\u0631\u06CC",group:"\u06A9\u06C6\u0645\u06D5\u06B5\u06D5",ungroup:"\u0644\u0627\u0628\u0631\u062F\u0646\u06CC \u06A9\u06C6\u0645\u06D5\u06B5\u06D5","move.to.back":"\u0628\u0686\u06C6 \u0628\u06C6 \u067E\u0634\u062A\u06D5\u0648\u06D5","move.backward":"\u0628\u06D5\u0631\u06D5\u0648 \u062F\u0648\u0627\u0648\u06D5","move.forward":"\u0628\u0695\u06C6 \u067E\u06CE\u0634\u06D5\u0648\u06D5","move.to.front":"\u0628\u06AF\u0648\u0627\u0632\u0631\u06CE\u062A\u06D5\u0648\u06D5 \u0628\u06C6 \u067E\u06CE\u0634\u06D5\u0648\u06D5","reset.angle":"\u06AF\u06C6\u0634\u06D5\u06CC \u067E\u0634\u0648\u0648\u062F\u0627\u0646",lock:"\u0642\u0648\u0641\u06B5",unlock:"\u0644\u0627\u0628\u0631\u062F\u0646\u06CC \u0642\u0648\u0641\u06B5","move.to.page":"\u0628\u0686\u06C6 \u0628\u06C6 \u0644\u0627\u067E\u06D5\u0695\u06D5","flip.horizontal":"\u0626\u0627\u0633\u06C6\u06CC\u06CC \u0648\u06D5\u0631\u06AF\u06D5\u0695\u0627\u0646\u062F\u0646","flip.vertical":"\u0633\u062A\u0648\u0646\u06CC \u0648\u06D5\u0631\u06AF\u06D5\u0695\u0627\u0646\u062F\u0646",move:"\u062C\u0648\u0648\u06B5\u06D5","to.front":"\u0628\u06C6 \u067E\u06CE\u0634\u06D5\u0648\u06D5",forward:"\u0628\u06C6\u067E\u0634\u062A\u06D5\u0648\u06D5",backward:"\u0628\u06C6\u062F\u0648\u0627\u0648\u06D5",back:"\u06AF\u06D5\u0695\u0627\u0646\u06D5\u0648\u06D5",language:"\u0632\u0645\u0627\u0646","translation.link":"\u0628\u06D5\u0633\u062A\u06D5\u0631\u06CC \u0648\u06D5\u0631\u06AF\u06CE\u0695\u0627\u0646","dock.position":"\u0634\u0648\u06CE\u0646\u06CC \u062F\u06C6\u06A9",bottom:"\u062E\u0648\u0627\u0631\u06D5\u0648\u06D5",left:"\u0686\u06D5\u067E",right:"\u0695\u0627\u0633\u062A",top:"\u0633\u06D5\u0631\u0648\u0648",page:"\u0644\u0627\u067E\u06D5\u0695\u06D5","keyboard.shortcuts":"\u06A9\u0648\u0631\u062A\u06A9\u0631\u0627\u0648\u06D5\u06A9\u0627\u0646\u06CC \u062A\u06D5\u062E\u062A\u06D5\u06A9\u0644\u06CC\u0644",search:"\u06AF\u06D5\u0695\u0627\u0646",loading:"\u0628\u0627\u0631\u06A9\u0631\u062F\u0646","export.background":"\u067E\u0627\u0634\u062E\u0627\u0646\u06CC \u0647\u06D5\u0646\u0627\u0631\u062F\u06D5\u06A9\u0631\u062F\u0646",transparent:"\u0695\u0648\u0648\u0646",auto:"\u0626\u06C6\u062A\u06C6\u0645\u0627\u062A\u06CC\u06A9\u06CC",light:"\u0631\u0648\u0648\u0646\u0627\u06A9",dark:"\u062A\u0627\u0631\u06CC\u06A9"};var Dd={"style.menu.color":"Color","style.menu.fill":"Fill","style.menu.dash":"Dash","style.menu.size":"Size","style.menu.keep.open":"Keep Open","style.menu.font":"Font","style.menu.align":"Align",styles:"Styles","zoom.in":"Zoom In","zoom.out":"Zoom Out",to:"To","menu.tools":"Tools","menu.transform":"Transform","menu.file":"File","menu.edit":"Edit","menu.view":"View","menu.preferences":"Preferences","menu.sign.in":"Sign In","menu.sign.out":"Sign Out","become.a.sponsor":"Become a Sponsor","zoom.to.content":"Back to content","zoom.to.selection":"Zoom to Selection","zoom.to.fit":"Zoom to Fit","zoom.to":"Zoom to","preferences.dark.mode":"Dark Mode","preferences.focus.mode":"Focus Mode","preferences.debug.mode":"Debug Mode","preferences.show.grid":"Show Grid","preferences.use.cad.selection":"Use CAD Selection","preferences.keep.stylemenu.open":"Keep Style Menu Open","preferences.always.show.snaps":"Always Show Snaps","preferences.rotate.handles":"Rotate Handles","preferences.binding.handles":"Binding Handles","preferences.clone.handles":"Clone Handles",undo:"Undo",redo:"Redo",cut:"Cut",copy:"Copy",paste:"Paste","copy.as":"Copy As","export.as":"Export As","select.all":"Select All","select.none":"Select None",delete:"Delete","new.project":"New Project",open:"Open",save:"Save","save.as":"Save As","upload.media":"Upload Media","create.page":"Create Page","new.page":"New Page","page.name":"Page Name",duplicate:"Duplicate","shape.options":"Shape Options",shapes:"Shapes",cancel:"Cancel","copy.invite.link":"Copy Invite Link","copy.readonly.link":"Copy ReadOnly Link","create.multiplayer.project":"Create a Multiplayer Project","copy.multiplayer.project":"Copy to Multiplayer Project",select:"Select",eraser:"Eraser",draw:"Draw",arrow:"Arrow",text:"Text",sticky:"Sticky",rectangle:"Rectangle",ellipse:"Ellipse",triangle:"Triangle",line:"Line",rotate:"Rotate","lock.aspect.ratio":"Lock Aspect Ratio","unlock.aspect.ratio":"Unlock Aspect Ratio",group:"Group",ungroup:"Ungroup","move.to.back":"Move to Back","move.backward":"Move Backward","move.forward":"Move Forward","move.to.front":"Move to Front","reset.angle":"Reset Angle",lock:"Lock",unlock:"Unlock","align.distribute":"Align / Distribute","move.to.page":"Move to Page","flip.horizontal":"Flip Horizontal","flip.vertical":"Flip Vertical",move:"Move","to.front":"To Front",forward:"Forward",backward:"Backward",back:"To Back",language:"Language","translation.link":"Learn More","dock.position":"Dock Position",bottom:"Bottom",left:"Left",right:"Right",top:"Top",page:"Page","keyboard.shortcuts":"Keyboard shortcuts",search:"Search",loading:"Loading{dots}","export.background":"Export Background",transparent:"Transparent",auto:"Auto",light:"Light",dark:"Dark",github:"Github",twitter:"Twitter",discord:"Discord",image:"Image","align.left":"Align Left","align.center.x":"Align Horizontal Center","align.right":"Align Right","align.top":"Align Top","align.center.y":"Align Vertical Center","align.bottom":"Align Bottom","distribute.x":"Distribute Horizontal","distribute.y":"Distribute Vertical","stretch.x":"Stretch Horizontal","stretch.y":"Stretch Vertical","dialog.save.firsttime":"Do you want to save your current project?","dialog.save.again":"Do you want to save changes to your current project?","dialog.cancel":"Cancel","dialog.no":"No","dialog.yes":"Yes","enter.file.name":"Enter file name","telva-beta":"Try the new telva",white:"White",lightGray:"Light gray",gray:"Gray",black:"Black",green:"Green",cyan:"Cyan",blue:"Blue",indigo:"Indigo",violet:"Violet",red:"Red",orange:"Orange",yellow:"Yellow",solid:"Solid",dashed:"Dashed",dotted:"Dotted",small:"Small",medium:"Medium",large:"Large"};var Ed={"style.menu.color":"\u1021\u101B\u1031\u102C\u1004\u103A","style.menu.fill":"\u1021\u101B\u1031\u102C\u1004\u103A \u1011\u100A\u103A\u1037\u1019\u100A\u103A","style.menu.dash":"\u1019\u103B\u1025\u103A\u1038\u1005\u1000\u103A","style.menu.size":"\u1021\u101B\u103D\u101A\u103A\u1021\u1005\u102C\u1038","style.menu.keep.open":"\u1016\u103D\u1004\u103A\u1037\u1011\u102C\u1038\u1019\u100A\u103A","style.menu.font":"\u1005\u102C\u101E\u102C\u1038\u1016\u1031\u102C\u1004\u103A\u1037","style.menu.align":"\u1021\u1011\u102C\u1038\u1021\u101E\u102D\u102F",styles:"\u1005\u1010\u102D\u102F\u1004\u103A","zoom.in":"\u1021\u1000\u103C\u102E\u1038\u1001\u103B\u1032\u1037\u1019\u100A\u103A","zoom.out":"\u1015\u103C\u1014\u103A\u1000\u103B\u1025\u103A\u1038\u1019\u100A\u103A",to:"\u101E\u102D\u102F\u1037","menu.tools":"\u1000\u102D\u101B\u102D\u101A\u102C\u1019\u103B\u102C\u1038","menu.transform":"\u1015\u103C\u1031\u102C\u1004\u103A\u1038\u101C\u100A\u103A\u101B\u1014\u103A","menu.file":"\u1016\u102D\u102F\u1004\u103A","menu.edit":"\u1015\u103C\u102F\u1015\u103C\u1004\u103A","menu.view":"\u1021\u1019\u103C\u1004\u103A","menu.preferences":"\u1006\u1000\u103A\u1010\u1004\u103A","menu.sign.in":"\u101D\u1004\u103A\u1019\u100A\u103A","menu.sign.out":"\u1011\u103D\u1000\u103A\u1019\u100A\u103A","become.a.sponsor":"\u1004\u103D\u1031\u1000\u103C\u1031\u1038\u1011\u1031\u102C\u1000\u103A\u1015\u1036\u1019\u100A\u103A","zoom.to.content":"\u1015\u1004\u103A\u1019\u1014\u1031\u101B\u102C\u101E\u102D\u102F\u1037 \u1015\u103C\u1014\u103A\u101E\u103D\u102C\u1038\u1019\u100A\u103A","zoom.to.selection":"\u101B\u103D\u1031\u1038\u1011\u102C\u1038\u101E\u1031\u102C \u1014\u1031\u101B\u102C\u101E\u102D\u102F\u1037 \u1021\u102C\u101B\u102F\u1036\u1015\u103C\u102F\u1019\u100A\u103A","zoom.to.fit":"\u1021\u1036\u1000\u102D\u102F\u1000\u103A\u1016\u103C\u1005\u103A\u1021\u1031\u102C\u1004\u103A \u1001\u103B\u1032\u1037\u1019\u100A\u103A","zoom.to":"\u1015\u102F\u1036\u1019\u103E\u1014\u103A\u1006\u102D\u102F\u1012\u103A\u101E\u102D\u102F\u1037 \u1001\u103B\u1032\u1037\u1019\u100A\u103A","preferences.dark.mode":"\u1021\u1019\u103E\u1031\u102C\u1004\u103A \u1019\u102F\u1012\u103A","preferences.focus.mode":"\u101B\u103E\u1004\u103A\u1038\u101B\u103E\u1004\u103A\u1038\u101C\u1004\u103A\u1038\u101C\u1004\u103A\u1038 \u1019\u102F\u1012\u103A","preferences.debug.mode":"\u1005\u1019\u103A\u1038\u101E\u1015\u103A \u1019\u102F\u1012\u103A","preferences.show.grid":"\u1014\u1031\u102C\u1000\u103A\u1001\u1036 \u1007\u101A\u102C\u1038\u1000\u103D\u1000\u103A\u1015\u103C\u101B\u1014\u103A","preferences.use.cad.selection":"CAD \u1000\u1032\u1037\u101E\u102D\u102F\u1037 \u101B\u103D\u1031\u1038\u1001\u103B\u101A\u103A\u1019\u103E\u102F \u1015\u103C\u102F\u101C\u102F\u1015\u103A\u1019\u100A\u103A","preferences.keep.stylemenu.open":"\u1005\u1010\u102D\u102F\u1004\u103A\u101C\u103A \u1019\u102E\u1014\u1030\u1038\u1000\u102D\u102F \u1021\u1019\u103C\u1032\u1016\u103D\u1004\u103A\u1037\u1011\u102C\u1038\u1019\u100A\u103A","preferences.always.show.snaps":"Always Show Snaps","preferences.rotate.handles":"Rotate Handles","preferences.binding.handles":"Binding Handles","preferences.clone.handles":"Clone Handles",undo:"\u1014\u1002\u102D\u102F\u1019\u1030\u101C\u101E\u102D\u102F\u1037 \u1015\u103C\u1014\u103A\u101C\u102F\u1015\u103A\u101B\u1014\u103A",redo:"\u1015\u103C\u1014\u103A\u101C\u102F\u1015\u103A\u101B\u1014\u103A",cut:"\u1016\u103C\u1010\u103A\u101A\u1030",copy:"\u1000\u1030\u1038\u101A\u1030",paste:"\u1000\u1030\u1038\u101E\u103D\u1004\u103A\u1038","copy.as":"\u1000\u1030\u1038\u101A\u1030\u1019\u100A\u103A\u1037 \u1015\u102F\u1036\u1005\u1036","export.as":"\u1011\u102F\u1010\u103A\u1001\u103B\u1004\u103A\u101E\u100A\u103A\u1037 \u1015\u102F\u1036\u1005\u1036","select.all":"\u1021\u102C\u1038\u101C\u102F\u1036\u1038\u1000\u102D\u102F \u101B\u103D\u1031\u1038\u1001\u103B\u101A\u103A\u101B\u1014\u103A","select.none":"\u1010\u1005\u103A\u1001\u102F\u1019\u103E \u1019\u101B\u103D\u1031\u1038\u1010\u1031\u102C\u1037\u1015\u102B",delete:"\u1016\u103B\u1000\u103A\u1019\u100A\u103A","new.project":"\u1015\u101B\u1031\u102C\u1002\u103B\u1000\u103A \u1021\u101E\u1005\u103A",open:"\u1016\u103D\u1004\u103A\u1037\u1019\u100A\u103A",save:"\u101E\u102D\u1019\u103A\u1038\u1019\u100A\u103A","save.as":"\u1021\u1001\u103C\u102C\u1038\u101E\u1031\u102C \u1015\u102F\u1036\u1005\u1036\u1016\u103C\u1004\u103A\u1037 \u101E\u102D\u1019\u103A\u1038\u1019\u100A\u103A","upload.media":"\u1019\u102E\u1012\u102E\u101A\u102C\u1016\u102D\u102F\u1004\u103A\u1019\u103B\u102C\u1038 \u1010\u1004\u103A\u1019\u100A\u103A","create.page":"\u1005\u102C\u1019\u103B\u1000\u103A\u1014\u103E\u102C \u1021\u101E\u1005\u103A\u1016\u103D\u1004\u103A\u1037\u1019\u100A\u103A","new.page":"\u1005\u102C\u1019\u103B\u1000\u103A\u1014\u103E\u102C \u1021\u101E\u1005\u103A","page.name":"\u1005\u102C\u1019\u103B\u1000\u103A\u1014\u103E\u102C \u1021\u1019\u100A\u103A",duplicate:"\u1015\u103D\u102C\u1038\u1019\u100A\u103A",cancel:"\u1019\u101C\u102F\u1015\u103A\u1010\u1031\u102C\u1037\u1015\u102B","copy.invite.link":"\u1016\u102D\u1010\u103A\u1000\u103C\u102C\u1038\u101B\u1014\u103A \u101C\u1004\u103A\u1037\u1001\u103A\u1000\u1030\u1038\u101A\u1030\u1019\u100A\u103A","copy.readonly.link":"\u1000\u103C\u100A\u103A\u1037\u101B\u1030\u101B\u1014\u103A\u1021\u1010\u103D\u1000\u103A\u101E\u102C \u101C\u1004\u103A\u1037\u1001\u103A\u1000\u1030\u1038\u101A\u1030\u1019\u100A\u103A","create.multiplayer.project":"\u1021\u1019\u103B\u102C\u1038\u101E\u102F\u1036\u1038 \u1015\u101B\u1031\u102C\u1002\u103B\u1000\u103A\u1021\u1016\u103C\u1005\u103A \u1021\u101E\u1005\u103A\u1016\u1014\u103A\u1010\u102E\u1038\u1019\u100A\u103A","copy.multiplayer.project":"\u1021\u1019\u103B\u102C\u1038\u101E\u102F\u1036\u1038 \u1015\u101B\u1031\u102C\u1002\u103B\u1000\u103A\u1021\u1016\u103C\u1005\u103A\u101E\u102D\u102F\u1037 \u1000\u1030\u1038\u101A\u1030\u1019\u100A\u103A",select:"\u101B\u103D\u1031\u1038\u1001\u103B\u101A\u103A\u1019\u103E\u102F",eraser:"\u1001\u1032\u1016\u103B\u1000\u103A",draw:"\u1001\u1032\u1010\u1036",arrow:"\u1019\u103C\u103E\u102C\u1038",text:"\u1005\u102C\u101E\u102C\u1038",sticky:"\u1000\u1015\u103A\u1001\u103D\u102C\u1019\u103E\u1010\u103A\u1005\u102F",rectangle:"\u101C\u1031\u1011\u1031\u102C\u1004\u103A\u1037",ellipse:"\u1018\u1032\u1025",triangle:"\u1010\u103C\u102D\u1002\u1036",line:"\u1019\u103B\u1025\u103A\u1038",rotate:"\u101C\u103E\u100A\u103A\u1037\u1019\u100A\u103A","lock.aspect.ratio":"\u1021\u1001\u103B\u102D\u102F\u1038\u1021\u1005\u102C\u1038 \u1011\u102D\u1014\u103A\u1038\u1011\u102C\u1038\u1019\u100A\u103A","unlock.aspect.ratio":"\u1021\u1001\u103B\u102D\u102F\u1038\u1021\u1005\u102C\u1038 \u1019\u1011\u102D\u1014\u103A\u1038\u1010\u1031\u102C\u1037\u1015\u102B",group:"\u1021\u102F\u1015\u103A\u1005\u102F\u1016\u103D\u1032\u1037",ungroup:"\u1021\u102F\u1015\u103A\u1005\u102F\u1001\u103D\u1032","move.to.back":"\u1014\u1031\u102C\u1000\u103A\u1006\u102F\u1036\u1038\u101E\u102D\u102F\u1037 \u1015\u102D\u102F\u1037\u1019\u100A\u103A","move.backward":"\u1014\u1031\u102C\u1000\u103A\u101E\u102D\u102F\u1037 \u1010\u1005\u103A\u1006\u1004\u103A\u1037\u1015\u102D\u102F\u1037\u1019\u100A\u103A","move.forward":"\u101B\u103E\u1031\u1037\u101E\u102D\u102F\u1037 \u1010\u1005\u103A\u1006\u1004\u103A\u1037\u1015\u102D\u102F\u1037\u1019\u100A\u103A","move.to.front":"\u101B\u103E\u1031\u1037\u1006\u102F\u1036\u1038\u101E\u102D\u102F\u1037 \u1015\u102D\u102F\u1037\u1019\u100A\u103A","reset.angle":"\u1014\u1002\u102D\u102F\u1019\u1030\u101C \u1011\u1031\u102C\u1004\u103A\u1037\u1001\u103B\u102D\u102F\u1038\u1005\u102C\u1038\u101E\u102D\u102F\u1037\u1015\u103C\u1031\u102C\u1004\u103A\u1038\u1019\u100A\u103A",lock:"\u1001\u1010\u103A\u1011\u102C\u1038\u1019\u100A\u103A",unlock:"\u1016\u103D\u1004\u103A\u1037\u1011\u102C\u1038\u1019\u100A\u103A","align.distribute":"\u1014\u1031\u101B\u102C \u1021\u1011\u102C\u1038\u1021\u101E\u102D\u102F/ \u1021\u1006\u1014\u103A\u1037\u1021\u1000\u103B\u102F\u1036\u1037","move.to.page":"\u1005\u102C\u1019\u103B\u1000\u103A\u1014\u103E\u102C\u1010\u1005\u103A\u1001\u102F\u101E\u102D\u102F\u1037 \u101B\u103D\u1031\u1038\u1019\u100A\u103A","flip.horizontal":"\u1021\u101C\u103B\u102C\u1038\u101C\u102D\u102F\u1000\u103A \u101C\u103E\u1014\u103A\u1019\u100A\u103A","flip.vertical":"\u1012\u1031\u102B\u1004\u103A\u101C\u102D\u102F\u1000\u103A \u101C\u103E\u1014\u103A\u1019\u100A\u103A",move:"\u101B\u103D\u1031\u1037\u1019\u100A\u103A","to.front":"\u101B\u103E\u1031\u1037\u1006\u102F\u1036\u1038\u101E\u102D\u102F\u1037",forward:"\u101B\u103E\u1031\u1037\u1010\u1005\u103A\u1006\u1004\u103A\u1037",backward:"\u1014\u1031\u102C\u1000\u103A\u1010\u1005\u103A\u1006\u1004\u103A\u1037",back:"\u1014\u1031\u102C\u1000\u103A\u1006\u102F\u1036\u1038\u101E\u102D\u102F\u1037",language:"\u1018\u102C\u101E\u102C\u1005\u1000\u102C\u1038","translation.link":"\u1015\u102D\u102F\u1019\u102D\u102F\u104D \u101C\u1031\u1037\u101C\u102C\u101B\u1014\u103A","dock.position":"\u1000\u102D\u101B\u102D\u101A\u102C \u1021\u1014\u1031\u1021\u1011\u102C\u1038",bottom:"\u1021\u1031\u102C\u1000\u103A",left:"\u1018\u101A\u103A",right:"\u100A\u102C",top:"\u1011\u102D\u1015\u103A",page:"\u1005\u102C\u1019\u103B\u1000\u103A\u1014\u103E\u102C","keyboard.shortcuts":"Keyboard shortcuts",search:"\u101B\u103E\u102C\u1016\u103D\u1031\u101B\u1014\u103A",loading:"\u1001\u100F\u1005\u1031\u102C\u1004\u103A\u1037\u1015\u1031\u1038\u101B\u1014\u103A{dots}","export.background":"\u1014\u1031\u102C\u1000\u103A\u1001\u1036 \u1011\u102F\u1010\u103A\u101A\u1030\u1019\u100A\u103A",transparent:"\u1014\u1031\u102C\u1000\u103A\u1001\u1036 \u1021\u1000\u103C\u100A\u103A",auto:"Auto",light:"\u1021\u101C\u1004\u103A\u1038",dark:"\u1021\u1019\u103E\u1031\u102C\u1004\u103A",github:"Github",twitter:"Twitter",discord:"Discord",image:"\u1013\u102C\u1010\u103A\u1015\u102F\u1036","align.left":"\u1018\u101A\u103A\u1016\u1000\u103A\u101E\u102D\u102F\u1037 \u100A\u103E\u102D\u101B\u1014\u103A","align.center.x":"\u1021\u101C\u103B\u102C\u1038\u101C\u102D\u102F\u1000\u103A \u1017\u101F\u102D\u102F\u1006\u102E\u101E\u102D\u102F\u1037 \u100A\u103E\u102D\u101B\u1014\u103A","align.right":"\u100A\u102C\u1016\u1000\u103A\u101E\u102D\u102F\u1037 \u100A\u103E\u102D\u101B\u1014\u103A","align.top":"\u1021\u1015\u1031\u102B\u103A\u101E\u102D\u102F\u1037 \u100A\u103E\u102D\u101B\u1014\u103A","align.center.y":"\u1012\u1031\u102B\u1004\u103A\u101C\u102D\u102F\u1000\u103A \u1017\u101F\u102D\u102F\u1006\u102E\u101E\u102D\u102F\u1037 \u100A\u103E\u102D\u101B\u1014\u103A","align.bottom":"\u1021\u1031\u102C\u1000\u103A\u101E\u102D\u102F\u1037 \u100A\u103E\u102D\u101B\u1014\u103A","distribute.x":"\u1021\u101C\u103B\u102C\u1038\u101C\u102D\u102F\u1000\u103A \u1016\u103C\u1014\u103A\u1037\u101B\u1014\u103A","distribute.y":"\u1012\u1031\u102B\u1004\u103A\u101C\u102D\u102F\u1000\u103A \u1016\u103C\u1014\u103A\u1037\u101B\u1014\u103A","stretch.x":"\u1021\u101C\u103B\u102C\u1038\u101C\u102D\u102F\u1000\u103A \u1006\u103D\u1032\u1006\u1014\u103A\u1037\u101B\u1014\u103A","stretch.y":"\u1012\u1031\u102B\u1004\u103A\u101C\u102D\u102F\u1000\u103A \u1006\u103D\u1032\u1006\u1014\u103A\u1037\u101B\u1014\u103A","dialog.save.firsttime":"\u101A\u1001\u102F \u1015\u101B\u1031\u102C\u1002\u103B\u1000\u103A\u1000\u102D\u102F \u101E\u102D\u1019\u103A\u1038\u1006\u100A\u103A\u101C\u102D\u102F\u1015\u102B\u101E\u101C\u102C\u1038 ?","dialog.save.again":"\u101A\u1001\u102F \u1015\u101B\u1031\u102C\u1002\u103B\u1000\u103A\u1010\u103D\u1004\u103A \u1015\u103C\u1004\u103A\u1011\u102C\u1038\u101E\u1031\u102C \u1021\u1015\u103C\u1031\u102C\u1004\u103A\u1038\u1021\u101C\u100A\u103A\u1019\u103B\u102C\u1038\u1000\u102D\u102F \u1021\u1010\u100A\u103A\u1015\u103C\u102F \u101E\u102D\u1019\u103A\u1038\u1006\u100A\u103A\u101C\u102D\u102F\u1015\u102B\u101E\u101C\u102C\u1038?","dialog.cancel":"\u1018\u102C\u1019\u103E \u1019\u101C\u102F\u1015\u103A\u1010\u1031\u102C\u1037\u1015\u102B","dialog.no":"\u1019\u101C\u102D\u102F\u1010\u1031\u102C\u1037\u1015\u102B","dialog.yes":"\u101C\u102D\u102F\u1015\u102B\u101E\u100A\u103A","enter.file.name":"\u1016\u102D\u102F\u1004\u103A\u1014\u102C\u1019\u100A\u103A \u1011\u100A\u103A\u1037\u101E\u103D\u1004\u103A\u1038\u101B\u1014\u103A","telva-beta":"telva \u1021\u101E\u1005\u103A\u1005\u1019\u103A\u1038\u101E\u102F\u1036\u1038\u1000\u103C\u100A\u103A\u1037\u101B\u1014\u103A"};var Bd={"style.menu.color":"Farge","style.menu.fill":"Fyll","style.menu.dash":"Linje","style.menu.size":"St\xF8rrelse","style.menu.keep.open":"Hold \xE5pen","style.menu.font":"Teksttype","style.menu.align":"Juster",styles:"Stiler","zoom.in":"Zoom inn","zoom.out":"Zoom ut",to:"til","menu.file":"Fil","menu.edit":"Rediger","menu.view":"Vis","menu.preferences":"Preferanser","menu.sign.in":"Logg inn","menu.sign.out":"Logg ut","become.a.sponsor":"Bli en sponsor","zoom.to.selection":"Zoom til valg","zoom.to.fit":"Zoom for \xE5 passe","zoom.to":"Zoom til","preferences.dark.mode":"M\xF8rk modus","preferences.focus.mode":"Fokus modus","preferences.debug.mode":"Debug modus","preferences.show.grid":"Vis rutenett","preferences.use.cad.selection":"Bruk CAD seleksjon","preferences.keep.stylemenu.open":"Hold stilmeny \xE5pen","preferences.always.show.snaps":"Vis alltid snaps","preferences.rotate.handles":"Vis roteringsh\xE5ndtak","preferences.binding.handles":"Vis bindingsh\xE5ndtak","preferences.clone.handles":"Vis kloningsh\xE5ndtak",undo:"Angre",redo:"Gj\xF8r om",cut:"Klipp ut",copy:"Kopier",paste:"Lim inn","copy.as":"Kopier som","export.as":"Eksporter som","select.all":"Velg alle","select.none":"Velg ingen",delete:"Slett","new.project":"Nytt prosjekt",open:"\xC5pne",save:"Lagre","save.as":"Lagre som","upload.media":"Last opp media","create.page":"Opprett side","new.page":"Ny side","page.name":"Sidenavn",duplicate:"Dupliser",cancel:"Avbryt","copy.invite.link":"Kopier invitasjonslink","create.multiplayer.project":"Opprett et flerspiller prosjekt","copy.multiplayer.project":"Kopier til flerspiller prosjekt",select:"Velg",eraser:"Viskel\xE6r",draw:"Tegn",arrow:"Pil",text:"Tekst",sticky:"Lapp",rectangle:"Rektangel",ellipse:"Ellipse",triangle:"Trekant",line:"Linje",rotate:"Roter","lock.aspect.ratio":"L\xE5s st\xF8rrelsesforhold","unlock.aspect.ratio":"L\xE5s opp st\xF8rrelsesforhold",group:"Grupper",ungroup:"Avgrupper","move.to.back":"Flytt bakerst","move.backward":"Flytt bakover","move.forward":"Flytt forover","move.to.front":"Flytt til front","reset.angle":"Tilbakestill vinkel",lock:"L\xE5s",unlock:"L\xE5s opp","move.to.page":"Flytt til side","flip.horizontal":"Snu horisontalt","flip.vertical":"Snu vertikalt",move:"Flytt","to.front":"Foran",forward:"Framover",backward:"Bakover",back:"Bakerst",language:"Spr\xE5k"};var Md={"style.menu.color":"\u0930\u0902\u0917","style.menu.fill":"\u092D\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","style.menu.dash":"\u0927\u0930\u094D\u0915\u093E","style.menu.size":"\u0906\u0915\u093E\u0930","style.menu.keep.open":"\u0916\u0941\u0932\u093E \u0930\u093E\u0916\u094D\u0928\u0941\u0939\u094B\u0938\u094D","style.menu.font":"\u092B\u0928\u094D\u091F","style.menu.align":"\u092A\u0919\u094D\u0915\u094D\u0924\u093F\u092C\u0926\u094D\u0927",styles:"\u0936\u0948\u0932\u0940\u0939\u0930\u0942","zoom.in":"\u091C\u0941\u092E \u0907\u0928","zoom.out":"\u091C\u0941\u092E \u0906\u0909\u091F",to:"\u091F\u0941","menu.file":"\u092B\u093E\u0907\u0932","menu.edit":"\u0938\u092E\u094D\u092A\u093E\u0926\u0928 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","menu.view":"\u092D\u094D\u092F\u0942","menu.preferences":"\u092A\u094D\u0930\u093E\u0925\u092E\u093F\u0915\u0924\u093E\u0939\u0930\u0942","menu.sign.in":"\u0938\u093E\u0907\u0928 \u0907\u0928 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","menu.sign.out":"\u0938\u093E\u0907\u0928 \u0906\u0909\u091F \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","become.a.sponsor":"\u092A\u094D\u0930\u093E\u092F\u094B\u091C\u0915 \u092C\u0928\u094D\u0928\u0941\u0939\u094B\u0938\u094D","zoom.to.selection":"\u091C\u0941\u092E \u091F\u0941 \u0938\u0947\u0932\u0947\u0915\u094D\u0938\u0928","zoom.to.fit":"\u091C\u0941\u092E \u091F\u0941 \u092B\u093F\u091F","zoom.to":"\u091C\u0941\u092E \u091F\u0941","preferences.dark.mode":"\u0905\u0901\u0927\u094D\u092F\u093E\u0930\u094B \u092E\u094B\u0921","preferences.focus.mode":"\u092B\u094B\u0915\u0938 \u092E\u094B\u0921","preferences.debug.mode":"\u0921\u093F\u092C\u0917 \u092E\u094B\u0921","preferences.show.grid":"\u0917\u094D\u0930\u093F\u0921 \u0926\u0947\u0916\u093E\u0909\u0928\u0941\u0939\u094B\u0938\u094D","preferences.use.cad.selection":"CAD \u0938\u0947\u0932\u0947\u0915\u094D\u0938\u0928 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","preferences.keep.stylemenu.open":"\u0938\u094D\u091F\u093E\u0907\u0932 \u092E\u0947\u0928\u0941 \u0916\u0941\u0932\u093E \u0930\u093E\u0916\u094D\u0928\u0941\u0939\u094B\u0938\u094D","preferences.always.show.snaps":"\u0938\u0927\u0948\u0901 \u0938\u094D\u0928\u094D\u092F\u093E\u092A\u0939\u0930\u0942 \u0926\u0947\u0916\u093E\u0909\u0928\u0941\u0939\u094B\u0938\u094D","preferences.rotate.handles":"\u0939\u094D\u092F\u093E\u0928\u094D\u0921\u0932\u0939\u0930\u0942 \u0918\u0941\u092E\u093E\u0909\u0928\u0941\u0939\u094B\u0938\u094D","preferences.binding.handles":"\u092C\u093E\u0907\u0928\u094D\u0921\u093F\u0919 \u0939\u094D\u092F\u093E\u0928\u094D\u0921\u0932\u0939\u0930\u0942","preferences.clone.handles":"\u0915\u094D\u0932\u094B\u0928 \u0939\u094D\u092F\u093E\u0928\u094D\u0921\u0932\u0939\u0930\u0942",undo:"\u092A\u0942\u0930\u094D\u0935\u0935\u0924 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",redo:"\u092A\u0941\u0928\u0903 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",cut:"\u0915\u091F \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",copy:"\u0915\u092A\u093F \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",paste:"\u092A\u0947\u0938\u094D\u091F \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","copy.as":"\u0915\u092A\u093F \u090F\u091C","export.as":"\u090F\u0915\u094D\u0938\u092A\u094B\u0930\u094D\u091F \u090F\u091C","select.all":"\u0938\u092C\u0948 \u091B\u093E\u0928\u094D\u0928\u0941\u0939\u094B\u0938\u094D","select.none":"\u0915\u0947\u0939\u093F \u092A\u0928\u093F \u0938\u0947\u0932\u0947\u0915\u094D\u091F \u0928\u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",delete:"\u092E\u0947\u091F\u093E\u0909\u0928\u0941\u0939\u094B\u0938\u094D","new.project":"\u0928\u092F\u093E\u0901 \u092A\u0930\u093F\u092F\u094B\u091C\u0928\u093E",open:"\u0916\u094B\u0932\u094D\u0928\u0941\u0939\u094B\u0938\u094D",save:"\u0938\u0941\u0930\u0915\u094D\u0937\u093F\u0924 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","save.as":"\u0938\u0947\u092D \u090F\u091C","upload.media":"\u092E\u093F\u0921\u093F\u092F\u093E \u0905\u092A\u0932\u094B\u0921 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","create.page":"\u092A\u0943\u0937\u094D\u0920 \u0938\u093F\u0930\u094D\u091C\u0928\u093E \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","new.page":"\u0928\u092F\u093E\u0901 \u092A\u0943\u0937\u094D\u0920 \u0938\u093F\u0930\u094D\u091C\u0928\u093E \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","page.name":"\u092A\u0943\u0937\u094D\u0920\u0915\u094B \u0928\u093E\u092E",duplicate:"\u0905\u0928\u0941\u0932\u093F\u092A\u093F \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",cancel:"\u0930\u0926\u094D\u0926 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","copy.invite.link":"\u0928\u093F\u092E\u0928\u094D\u0924\u094D\u0930\u0923\u093E \u0932\u093F\u0919\u094D\u0915 \u0915\u092A\u093F \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","create.multiplayer.project":"\u092E\u0932\u094D\u091F\u093F\u092A\u094D\u0932\u0947\u092F\u0930 \u092A\u0930\u093F\u092F\u094B\u091C\u0928\u093E \u0938\u093F\u0930\u094D\u091C\u0928\u093E \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","copy.multiplayer.project":"\u092E\u0932\u094D\u091F\u093F\u092A\u094D\u0932\u0947\u092F\u0930 \u092A\u094D\u0930\u094B\u091C\u0947\u0915\u094D\u091F\u092E\u093E \u0915\u092A\u093F \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",select:"\u0938\u0947\u0932\u0947\u0915\u094D\u091F",eraser:"\u0907\u0930\u0947\u091C\u0930",draw:"\u091A\u093F\u0924\u094D\u0930 \u092C\u0928\u093E\u0909\u0928\u0941",arrow:"\u0924\u0940\u0930",text:"\u0936\u092C\u094D\u0926",sticky:"\u091F\u093E\u0901\u0938\u093F\u0928\u0947",rectangle:"\u0906\u092F\u0924",ellipse:"\u0926\u0940\u0930\u094D\u0918\u0935\u0943\u0924\u094D\u0924",triangle:"\u0924\u094D\u0930\u093F\u092D\u0941\u091C",line:"\u0930\u0947\u0916\u093E",rotate:"\u0918\u0941\u092E\u093E\u0909\u0928\u0941\u0939\u094B\u0938\u094D","lock.aspect.ratio":"\u0906\u0915\u093E\u0930 \u0905\u0928\u0941\u092A\u093E\u0924 \u0932\u0915 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","unlock.aspect.ratio":"\u0906\u0915\u093E\u0930 \u0905\u0928\u0941\u092A\u093E\u0924 \u0905\u0928\u0932\u0915 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",group:"\u0938\u092E\u0942\u0939",ungroup:"\u0938\u092E\u0942\u0939 \u0930\u0926\u094D\u0926 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","move.to.back":"\u092A\u091B\u093E\u0921\u093F \u0938\u093E\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","move.backward":"\u0925\u092A \u092A\u091B\u093E\u0921\u093F \u0938\u093E\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","move.forward":"\u0905\u0917\u093E\u0921\u093F \u0938\u093E\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","move.to.front":"\u0925\u092A \u0905\u0917\u093E\u0921\u093F \u0938\u093E\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","reset.angle":"\u0915\u094B\u0923 \u0930\u093F\u0938\u0947\u091F \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",lock:"\u0932\u0915 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",unlock:"\u0905\u0928\u0932\u0915 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","move.to.page":"\u092A\u0943\u0937\u094D\u0920\u092E\u093E \u0938\u093E\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","flip.horizontal":"\u0924\u0947\u0930\u094D\u0938\u094B \u092B\u094D\u0932\u093F\u092A \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","flip.vertical":"\u0920\u093E\u0921\u094B \u092B\u094D\u0932\u093F\u092A \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",move:"\u0938\u093E\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","to.front":"\u0925\u092A \u0905\u0917\u093E\u0921\u093F",forward:"\u0905\u0917\u093E\u0921\u093F",backward:"\u092A\u091B\u093E\u0921\u093F",back:"\u0925\u092A \u092A\u091B\u093E\u0921\u093F",language:"\u092D\u093E\u0937\u093E"};var Ld={"style.menu.color":"Farge","style.menu.fill":"Fyll","style.menu.dash":"Line","style.menu.size":"Storleik","style.menu.keep.open":"Hald open","style.menu.font":"Teksttype","style.menu.align":"Tilpass",styles:"Stilar","zoom.in":"Zoom inn","zoom.out":"Zoom ut",to:"til","menu.file":"Fil","menu.edit":"Rediger","menu.view":"Vis","menu.preferences":"Innstillingar","menu.sign.in":"Logg inn","menu.sign.out":"Logg ut","become.a.sponsor":"Vert sponsor","zoom.to.content":"Zoom til innhald","zoom.to.selection":"Zoom til valte element","zoom.to.fit":"Zoom for \xE5 passe","zoom.to":"Zoom til","preferences.dark.mode":"M\xF8rkmodus","preferences.focus.mode":"Fokusmodus","preferences.debug.mode":"Debugmodus","preferences.show.grid":"Vis rutenett","preferences.use.cad.selection":"Bruk CAD-val","preferences.keep.stylemenu.open":"Hald stilmeny open","preferences.always.show.snaps":"Vis alltid snaps","preferences.rotate.handles":"Vis roteringshandtak","preferences.binding.handles":"Vis bindingshandtak","preferences.clone.handles":"Vis kloningshandtak",undo:"Angre",redo:"Gjer om",cut:"Klipp ut",copy:"Kopier",paste:"Lim inn","copy.as":"Kopier som","export.as":"Eksporter som","select.all":"Vel alle","select.none":"Vel ingen",delete:"Slett","new.project":"Nytt prosjekt",open:"Opne",save:"Lagre","save.as":"Lagre som","upload.media":"Last opp media","create.page":"Opprett side","new.page":"Ny side","page.name":"Sidenamn",duplicate:"Dupliser",cancel:"Avbryt","copy.invite.link":"Kopier invitasjonslenke","copy.readonly.link":"Kopier invitasjonslenke (skrivebeskytta)","create.multiplayer.project":"Lag samarbeidsprosjekt","copy.multiplayer.project":"Kopier til samarbeidsprosjekt",select:"Vel",eraser:"Viskel\xEAr",draw:"Teikn",arrow:"Pil",text:"Tekst",sticky:"Lapp",rectangle:"Rektangel",ellipse:"Runding",triangle:"Trekant",line:"Line",rotate:"Roter","lock.aspect.ratio":"L\xE5s storleiksforhold","unlock.aspect.ratio":"L\xE5s opp storleiksforhold",group:"Grupper",ungroup:"Avgrupper","move.to.back":"Flytt bakarst","move.backward":"Flytt bakover","move.forward":"Flytt framover","move.to.front":"Flytt til front","reset.angle":"Tilbakestill vinkel",lock:"L\xE5s",unlock:"L\xE5s opp","move.to.page":"Flytt til side","flip.horizontal":"Snu horisontalt","flip.vertical":"Snu vertikalt",move:"Flytt","to.front":"Framme",forward:"Framover",backward:"Bakover",back:"Bakarst",language:"Spr\xE5k","translation.link":"Les meir","dock.position":"Dokkplassering",bottom:"Nede",left:"Venstre",right:"H\xF8gre",top:"Oppe",page:"Side","keyboard.shortcuts":"Sn\xF8ggtastar",search:"S\xF8k",loading:"Lastar{dots}","export.background":"Eksporter bakgrunn",transparent:"Gjennomsiktig",auto:"Auto",light:"Lys",dark:"M\xF8rk",github:"Github",twitter:"Twitter",discord:"Discord",image:"Bilete","align.left":"Venstrestill","align.center.x":"Midtstill horisontalt","align.right":"H\xF8grestill","align.top":"Still til toppen","align.center.y":"Midtstill vertikalt","align.bottom":"Still til botnen","distribute.x":"Distribuer horisontalt","distribute.y":"Distribuer vertikalt","stretch.x":"Strekk horisontalt","stretch.y":"Strekk vertikalt","dialog.save.firsttime":"Vil du lagre det noverande prosjektet ditt?","dialog.save.again":"Vil du lagre endringane i det noverande prosjektet ditt?","dialog.cancel":"Avbryt","dialog.no":"Nei","dialog.yes":"Ja","enter.file.name":"Fyll inn filnamn","telva-beta":"Pr\xF8v den nye telva",white:"Kvit",lightGray:"Lys gr\xE5",gray:"Gr\xE5",black:"Svart",green:"Gr\xF8n",cyan:"Cyan",blue:"Bk\xE5",indigo:"Indigo",violet:"Fiol",red:"Raud",orange:"Oransj",yellow:"Gul",solid:"Heil",dashed:"Stipla",dotted:"Prikka",small:"Liten",medium:"Mellomstor",large:"Stor"};var Ad={"style.menu.color":"Kolor","style.menu.fill":"Wype\u0142nienie","style.menu.dash":"Linia","style.menu.size":"Rozmiar","style.menu.keep.open":"Zachowaj otwarte","style.menu.font":"Czcionka","style.menu.align":"Wyr\xF3wnanie",styles:"Style","zoom.in":"Przybli\u017C","zoom.out":"Oddal",to:"do","menu.file":"Plik","menu.edit":"Edycja","menu.view":"Widok","menu.preferences":"Preferencje","menu.sign.in":"Zaloguj","menu.sign.out":"Wyloguj","become.a.sponsor":"Zosta\u0144 sponsorem","zoom.to.selection":"Przybli\u017C do zaznaczenia","zoom.to.fit":"Wype\u0142nij ekran","zoom.to":"Przybli\u017C do","preferences.dark.mode":"Tryb ciemny","preferences.focus.mode":"Tryb skupienia","preferences.debug.mode":"Tryb debugowania","preferences.show.grid":"Poka\u017C siatk\u0119","preferences.use.cad.selection":"U\u017Cyj zaznaczania CAD","preferences.keep.stylemenu.open":"Zachowaj menu styli otwarte","preferences.always.show.snaps":"Przyci\u0105gaj obiekty","preferences.rotate.handles":"Uchwyty obrotu","preferences.binding.handles":"Uchwyty powi\u0105zania","preferences.clone.handles":"Uchwyty klonuj\u0105ce",undo:"Cofnij",redo:"Powt\xF3rz",cut:"Wytnij",copy:"Kopiuj",paste:"Wklej","copy.as":"Kopiuj jako","export.as":"Eksportuj jako","select.all":"Zaznacz wszystko","select.none":"Odznacz wszystko",delete:"Usu\u0144","new.project":"Nowy projekt",open:"Otw\xF3rz",save:"Zapisz","save.as":"Zapisz jako","upload.media":"Za\u0142aduj multimedia","create.page":"Utw\xF3rz stron\u0119","new.page":"Nowa strona","page.name":"Nazwa strony",duplicate:"Powiel",cancel:"Anuluj","copy.invite.link":"Kopiuj link zaproszenia","create.multiplayer.project":"Stw\xF3rz projekt wieloosobowy","copy.multiplayer.project":"Kopiuj do projektu wieloosobowego",select:"Zaznacz",eraser:"Gumka",draw:"Rysuj",arrow:"Strza\u0142ka",text:"Tekst",sticky:"Naklejka",rectangle:"Prostok\u0105t",ellipse:"Elipsa",triangle:"Tr\xF3jk\u0105t",line:"Linia",rotate:"Obr\xF3\u0107","lock.aspect.ratio":"Zablokuj proporcje","unlock.aspect.ratio":"Odblokuj proporcje",group:"Grupuj",ungroup:"Rozgrupuj","move.to.back":"Przenie\u015B na ty\u0142","move.backward":"Przesu\u0144 do ty\u0142u","move.forward":"Przesu\u0144 do przodu","move.to.front":"Przenie\u015B na prz\xF3d","reset.angle":"Resetuj k\u0105t",lock:"Zablokuj",unlock:"Odblokuj","move.to.page":"Przenie\u015B na stron\u0119","flip.horizontal":"Odwr\xF3\u0107 w poziomie","flip.vertical":"Odwr\xF3\u0107 w pionie",move:"Przenie\u015B","to.front":"Na wierzch",forward:"Do przodu",backward:"Do ty\u0142u",back:"Na sp\xF3d",language:"J\u0119zyk","translation.link":"Czytaj wi\u0119cej","dock.position":"Pozycja przybornika",bottom:"D\xF3\u0142",left:"Lewa",right:"Prawa",top:"G\xF3ra",page:"Strona","keyboard.shortcuts":"Skr\xF3ty klawiszowe",search:"Szukaj",loading:"\u0141adowanie{dots}","export.background":"Eksportuj t\u0142o",transparent:"Przezroczyste",auto:"Automatyczny",light:"Jasny",dark:"Ciemny",github:"Github",twitter:"Twitter",discord:"Discord",image:"Obraz","align.left":"Wyr\xF3wnaj do lewej","align.center.x":"Wycentruj poziomo","align.right":"Wyr\xF3wnaj do prawej","align.top":"Wyr\xF3wnaj do g\xF3ry","align.center.y":"Wycentruj pionowo","align.bottom":"Wyr\xF3wnaj do do\u0142u","distribute.x":"Roz\u0142\xF3\u017C poziomo","distribute.y":"Roz\u0142\xF3\u017C pionowo","stretch.x":"Rozci\u0105gnij poziomo","stretch.y":"Rozci\u0105gnij pionowo","dialog.save.firsttime":"Czy chcesz zapisa\u0107 bie\u017C\u0105cy projekt?","dialog.save.again":"Czy chcesz zapisa\u0107 zmiany w bie\u017C\u0105cym projekcie?","dialog.cancel":"Anuluj","dialog.no":"Nie","dialog.yes":"Tak","enter.file.name":"Podaj nazw\u0119 pliku","telva-beta":"Wypr\xF3buj nowy telva"};var Vd={"style.menu.color":"Cor","style.menu.fill":"Preencher","style.menu.dash":"Tra\xE7o","style.menu.size":"Tamanho","style.menu.keep.open":"Manter aberto","style.menu.font":"Fonte","style.menu.align":"Alinhamento",styles:"Estilos","zoom.in":"Aumentar zoom","zoom.out":"Diminuir zoom",to:"para","menu.file":"Arquivo","menu.edit":"Editar","menu.view":"Visualizar","menu.preferences":"Prefer\xEAncias","menu.sign.in":"Entrar","menu.sign.out":"Sair","become.a.sponsor":"Torne-se um patrocinador","zoom.to.selection":"Zoom para a sele\xE7\xE3o","zoom.to.fit":"Zoom para ajuste","zoom.to":"Zoom para","preferences.dark.mode":"Modo Escuro","preferences.focus.mode":"Modo Foco","preferences.debug.mode":"Modo Debug","preferences.show.grid":"Mostrar Grade","preferences.use.cad.selection":"Usar sele\xE7\xE3o CAD","preferences.keep.stylemenu.open":"Manter Menu de Estilos Aberto","preferences.always.show.snaps":"Mostrar Pontos de Ajuste","preferences.rotate.handles":"Controle de Rota\xE7\xE3o","preferences.binding.handles":"Controle de V\xEDnculos","preferences.clone.handles":"Controle de Clone",undo:"Desfazer",redo:"Refazer",cut:"Cortar",copy:"Copiar",paste:"Colar","copy.as":"Copiar como","export.as":"Exportar como","select.all":"Selecionar todos","select.none":"Selecionar nenhum",delete:"Deletar","new.project":"Novo Projeto",open:"Abrir",save:"Salvar","save.as":"Salvar Como","upload.media":"Carregar M\xEDdia",page:"P\xE1gina",search:"Procurar",loading:"Carregando{dots}","export.background":"Exportar Fundo",transparent:"Transparente",auto:"Autom\xE1tico",light:"Claro",dark:"Escuro","menu.tools":"Ferramentas","menu.transform":"Transformar","zoom.to.content":"Voltar ao Conte\xFAdo","translation.link":"Saiba Mais","copy.readonly.link":"Copiar Link ReadOnly","align.distribute":"Alinhar / Distribuir","create.page":"Criar P\xE1gina","new.page":"Nova P\xE1gina","page.name":"Nome da P\xE1gina",duplicate:"Duplicar",cancel:"Cancelar","copy.invite.link":"Copiar Link de Convite","create.multiplayer.project":"Criar um Projeto Multijogador","copy.multiplayer.project":"Copiar para Projeto Multijogador",select:"Selecionar",eraser:"Borracha",draw:"Desenhar",arrow:"Seta",text:"Texto",sticky:"Adesivo",rectangle:"Ret\xE2ngulo",ellipse:"Elipse",triangle:"Tri\xE2ngulo",line:"Linha",rotate:"Rotacionar","lock.aspect.ratio":"Travar Propor\xE7\xE3o da Tela","unlock.aspect.ratio":"Destravar Propor\xE7\xE3o da Tela",group:"Agrupar",ungroup:"Desagrupar","move.to.back":"Recuar","move.backward":"Enviar para Tr\xE1s","move.forward":"Avan\xE7ar","move.to.front":"Trazer para Frente","reset.angle":"Reiniciar \xC2ngulo",lock:"Travar",unlock:"Destravar","move.to.page":"Mover para P\xE1gina","flip.horizontal":"Virar Horizontalmente","flip.vertical":"Virar Verticalmente",move:"Mover","to.front":"Para Frente",forward:"Avan\xE7ar",backward:"Recuar",back:"Voltar",language:"Idioma",image:"Imagem","keyboard.shortcuts":"Atalhos de Teclado","dock.position":"Posi\xE7\xE3o de Ferramentas",bottom:"Inferior",top:"Superior",right:"Direita",left:"Esquerda","align.left":"Alinhar \xE0 esquerda","align.center.x":"Alinhar ao centro na horizontal","align.right":"Alinhar \xE0 direita","align.top":"Alinhas em cima","align.center.y":"Alinhar ao centro na vertical","align.bottom":"Alinhar embaixo","distribute.x":"Distruibuir na horizontal","distribute.y":"Distruibuir na vertical","stretch.x":"Esticar na horizontal","stretch.y":"Esticar na vertical","dialog.save.firsttime":"Voc\xEA deseja salvar seu projeto atual?","dialog.save.again":"Voc\xEA deseja salvar as mudan\xE7as ao projeto atual?","dialog.cancel":"Cancelar","dialog.no":"N\xE3o","dialog.yes":"Sim","enter.file.name":"Insira o nome do arquivo"};var Hd={"style.menu.color":"Cor","style.menu.fill":"Preencher","style.menu.dash":"Tra\xE7o","style.menu.size":"Tamanho","style.menu.keep.open":"Manter aberto","style.menu.font":"Fonte","style.menu.align":"Alinhamento",styles:"Estilos","zoom.in":"Aumentar zoom","zoom.out":"Diminuir zoom",to:"para","menu.file":"Ficheiro","menu.edit":"Editar","menu.view":"Visualizar","menu.preferences":"Prefer\xEAncias","menu.sign.in":"Entrar","menu.sign.out":"Sair","become.a.sponsor":"Torne-se um patrocinador","zoom.to.selection":"Zoom na sele\xE7\xE3o","zoom.to.fit":"Zoom para caber","zoom.to":"Zoom para","preferences.dark.mode":"Modo Escuro","preferences.focus.mode":"Modo Foco","preferences.debug.mode":"Modo Debug","preferences.show.grid":"Mostrar Grelha","preferences.use.cad.selection":"Usar sele\xE7\xE3o CAD","preferences.keep.stylemenu.open":"Manter Menu de Estilos Aberto","preferences.always.show.snaps":"Mostrar Pontos de Ajuste","preferences.rotate.handles":"Controlo de Rota\xE7\xE3o","preferences.binding.handles":"Controlo de Binds","preferences.clone.handles":"Controlo de Clone",undo:"Desfazer",redo:"Refazer",cut:"Cortar",copy:"Copiar",paste:"Colar","copy.as":"Copiar como","export.as":"Exportar como","select.all":"Selecionar todos","select.none":"Selecionar nenhum",delete:"Apagar","new.project":"Novo Projeto",open:"Abrir",save:"Salvar","save.as":"Salvar Como","upload.media":"Upload M\xE9dia","create.page":"Criar P\xE1gina","new.page":"Nova P\xE1gina","page.name":"Nome da P\xE1gina",duplicate:"Duplicar",cancel:"Cancelar","copy.invite.link":"Copiar Link de Convite","create.multiplayer.project":"Criar um Projeto Multi-Utilizador","copy.multiplayer.project":"Copiar num Projeto Multi-Utilizador",select:"Selecionar",eraser:"Borracha",draw:"Desenhar",arrow:"Seta",text:"Texto",sticky:"Post-it",rectangle:"Ret\xE2ngulo",ellipse:"Elipse",triangle:"Tri\xE2ngulo",line:"Linha",rotate:"Rodar","lock.aspect.ratio":"Trancar a Propor\xE7\xE3o","unlock.aspect.ratio":"Destrancar a Propor\xE7\xE3o",group:"Agrupar",ungroup:"Desagrupar","move.to.back":"Colocar no Fundo","move.backward":"Mover abaixo","move.forward":"Mover acima","move.to.front":"Colocar \xE0 Frente","reset.angle":"Reiniciar \xC2ngulo",lock:"Trancar",unlock:"Destrancar","move.to.page":"Mover para P\xE1gina","flip.horizontal":"Inverter Horizontalmente","flip.vertical":"Inverter Verticalmente",move:"Mover","to.front":"Para Frente",forward:"Avan\xE7ar",backward:"Recuar",back:"Voltar",language:"L\xEDngua"};var zd={"style.menu.color":"\u0426\u0432\u0435\u0442","style.menu.fill":"\u0417\u0430\u043F\u043E\u043B\u043D\u044F\u0442\u044C","style.menu.dash":"\u0428\u0442\u0440\u0438\u0445","style.menu.size":"\u0420\u0430\u0437\u043C\u0435\u0440","style.menu.keep.open":"\u0414\u0435\u0440\u0436\u0430\u0442\u044C \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u043C","style.menu.font":"\u0428\u0440\u0438\u0444\u0442","style.menu.align":"\u0412\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435",styles:"\u0421\u0442\u0438\u043B\u044C","zoom.in":"\u0423\u0432\u0435\u043B\u0438\u0447\u0438\u0442\u044C","zoom.out":"\u0423\u043C\u0435\u043D\u044C\u0448\u0438\u0442\u044C",to:"\u043A","menu.tools":"\u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B","menu.transform":"\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435","menu.file":"\u0424\u0430\u0439\u043B","menu.edit":"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435","menu.view":"\u0412\u0438\u0434","menu.preferences":"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438","menu.sign.in":"\u0412\u043E\u0439\u0442\u0438","menu.sign.out":"\u0412\u044B\u0439\u0442\u0438","become.a.sponsor":"\u0421\u0442\u0430\u0442\u044C \u0441\u043F\u043E\u043D\u0441\u043E\u0440\u043E\u043C","zoom.to.content":"\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043A \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u043C\u0443","zoom.to.selection":"\u041C\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u043E \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044E","zoom.to.fit":"\u041C\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u043E \u0440\u0430\u0437\u043C\u0435\u0440\u0443 \u044D\u043A\u0440\u0430\u043D\u0430","zoom.to":"\u041C\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043A","preferences.dark.mode":"\u0422\u0451\u043C\u043D\u0430\u044F \u0442\u0435\u043C\u0430","preferences.focus.mode":"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u0438\u0441\u0442\u0438\u0447\u043D\u044B\u0439 \u0440\u0435\u0436\u0438\u043C","preferences.debug.mode":"\u0420\u0435\u0436\u0438\u043C \u043E\u0442\u043B\u0430\u0434\u043A\u0438","preferences.show.grid":"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0441\u0435\u0442\u043A\u0443","preferences.use.cad.selection":"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C CAD \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435","preferences.keep.stylemenu.open":"\u0414\u0435\u0440\u0436\u0430\u0442\u044C \u043C\u0435\u043D\u044E \u0441\u0442\u0438\u043B\u0435\u0439 \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u043C","preferences.always.show.snaps":"\u0412\u0441\u0435\u0433\u0434\u0430 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043F\u0440\u0438\u0432\u044F\u0437\u043A\u0438","preferences.rotate.handles":"\u0420\u0443\u0447\u043A\u0438 \u0432\u0440\u0430\u0449\u0435\u043D\u0438\u044F","preferences.binding.handles":"\u0420\u0443\u0447\u043A\u0438 \u043F\u0440\u0438\u0432\u044F\u0437\u043A\u0438","preferences.clone.handles":"\u0420\u0443\u0447\u043A\u0438 \u043A\u043B\u043E\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F",undo:"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C",redo:"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C",cut:"\u0412\u044B\u0440\u0435\u0437\u0430\u0442\u044C",copy:"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C",paste:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C","copy.as":"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043A\u0430\u043A","export.as":"\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043A\u0430\u043A","select.all":"\u0412\u044B\u0434\u0435\u043B\u0438\u0442\u044C \u0432\u0441\u0451","select.none":"\u0421\u043D\u044F\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435",delete:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C","new.project":"\u041D\u043E\u0432\u044B\u0439 \u043F\u0440\u043E\u0435\u043A\u0442",open:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C",save:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C","save.as":"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043A\u0430\u043A","upload.media":"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u043C\u0435\u0434\u0438\u0430\u0444\u0430\u0439\u043B","create.page":"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443","new.page":"\u041D\u043E\u0432\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430","page.name":"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B",duplicate:"\u0414\u0443\u0431\u043B\u0438\u0440\u043E\u0432\u0430\u0442\u044C",cancel:"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C","copy.invite.link":"\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443 \u043F\u0440\u0438\u0433\u043B\u0430\u0448\u0435\u043D\u0438\u044F","copy.readonly.link":"\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443 \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u043B\u044F \u0447\u0442\u0435\u043D\u0438\u044F","create.multiplayer.project":"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u043C\u043D\u043E\u0433\u043E\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439 \u043F\u0440\u043E\u0435\u043A\u0442","copy.multiplayer.project":"\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432 \u043C\u043D\u043E\u0433\u043E\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439 \u043F\u0440\u043E\u0435\u043A\u0442",select:"\u0412\u044B\u0434\u0435\u043B\u0438\u0442\u044C",eraser:"\u041B\u0430\u0441\u0442\u0438\u043A",draw:"\u0420\u0438\u0441\u043E\u0432\u0430\u0442\u044C",arrow:"\u0421\u0442\u0440\u0435\u043B\u043A\u0430",text:"\u0422\u0435\u043A\u0441\u0442",sticky:"\u0417\u0430\u043C\u0435\u0442\u043A\u0430",rectangle:"\u041F\u0440\u044F\u043C\u043E\u0443\u0433\u043E\u043B\u044C\u043D\u0438\u043A",ellipse:"\u042D\u043B\u043B\u0438\u043F\u0441",triangle:"\u0422\u0440\u0435\u0443\u0433\u043E\u043B\u044C\u043D\u0438\u043A",line:"\u041B\u0438\u043D\u0438\u044F",rotate:"\u041F\u043E\u0432\u0435\u0440\u043D\u0443\u0442\u044C","lock.aspect.ratio":"\u0417\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u043E\u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u0441\u0442\u043E\u0440\u043E\u043D","unlock.aspect.ratio":"\u0420\u0430\u0437\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u043E\u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u0441\u0442\u043E\u0440\u043E\u043D",group:"\u0421\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C",ungroup:"\u0420\u0430\u0437\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C","move.to.back":"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u043D\u0430\u0437\u0430\u0434","move.backward":"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u043D\u0430 \u0437\u0430\u0434\u043D\u0438\u0439 \u043F\u043B\u0430\u043D","move.forward":"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0432\u043F\u0435\u0440\u0451\u0434","move.to.front":"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u043D\u0430 \u043F\u0435\u0440\u0435\u0434\u043D\u0438\u0439 \u043F\u043B\u0430\u043D","reset.angle":"\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u0443\u0433\u043E\u043B",lock:"\u0411\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C",unlock:"\u0420\u0430\u0437\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C","align.distribute":"\u0412\u044B\u0440\u043E\u0432\u043D\u044F\u0442\u044C / \u0440\u0430\u0441\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u0442\u044C","move.to.page":"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u043D\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443","flip.horizontal":"\u041F\u0435\u0440\u0435\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u043E","flip.vertical":"\u041F\u0435\u0440\u0435\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E",move:"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C","to.front":"\u041D\u0430 \u043F\u0435\u0440\u0435\u0434\u043D\u0438\u0439 \u043F\u043B\u0430\u043D",forward:"\u0412\u043F\u0435\u0440\u0435\u0434",backward:"\u041D\u0430 \u0437\u0430\u0434\u043D\u0438\u0439 \u043F\u043B\u0430\u043D",back:"\u041D\u0430\u0437\u0430\u0434",language:"\u042F\u0437\u044B\u043A","translation.link":"\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u0435\u0435","dock.position":"\u0420\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043F\u0430\u043D\u0435\u043B\u0438 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432",bottom:"\u0421\u043D\u0438\u0437\u0443",left:"\u0421\u043B\u0435\u0432\u0430",right:"\u0421\u043F\u0440\u0430\u0432\u0430",top:"\u0421\u0432\u0435\u0440\u0445\u0443",page:"\u0421\u0442\u0440\u0430\u043D\u0438\u0446\u0430","keyboard.shortcuts":"\u0421\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u044F \u043A\u043B\u0430\u0432\u0438\u0448",search:"\u041F\u043E\u0438\u0441\u043A",loading:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430","export.background":"\u042D\u043A\u0441\u043F\u043E\u0440\u0442 \u0444\u043E\u043D\u0430",transparent:"\u041F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u0439",auto:"\u0410\u0432\u0442\u043E",light:"\u0421\u0432\u0435\u0442\u043B\u044B\u0439",dark:"\u0422\u0451\u043C\u043D\u044B\u0439",image:"\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435","align.left":"\u0412\u044B\u0440\u043E\u0432\u043D\u044F\u0442\u044C \u043F\u043E \u043B\u0435\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E","align.center.x":"\u0412\u044B\u0440\u043E\u0432\u043D\u044F\u0442\u044C \u043F\u043E \u0446\u0435\u043D\u0442\u0440\u0443 \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u043E","align.right":"\u0412\u044B\u0440\u043E\u0432\u043D\u044F\u0442\u044C \u043F\u043E \u043F\u0440\u0430\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E","align.top":"\u0412\u044B\u0440\u043E\u0432\u043D\u044F\u0442\u044C \u043F\u043E \u0432\u0435\u0440\u0445\u043D\u0435\u043C\u0443 \u043A\u0440\u0430\u044E","align.center.y":"\u0412\u044B\u0440\u043E\u0432\u043D\u044F\u0442\u044C \u043F\u043E \u0446\u0435\u043D\u0442\u0440\u0443 \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E","align.bottom":"\u0412\u044B\u0440\u043E\u0432\u043D\u044F\u0442\u044C \u043F\u043E \u043D\u0438\u0436\u043D\u0435\u043C\u0443 \u043A\u0440\u0430\u044E","distribute.x":"\u0420\u0430\u0441\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u0442\u044C \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u043E","distribute.y":"\u0420\u0430\u0441\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u0442\u044C \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E","stretch.x":"\u0420\u0430\u0441\u0442\u044F\u043D\u0443\u0442\u044C \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u043E","stretch.y":"\u0420\u0430\u0441\u0442\u044F\u043D\u0443\u0442\u044C \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E",share:"\u041F\u043E\u0434\u0435\u043B\u0438\u0442\u044C\u0441\u044F","copy.current.page.link":"\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443 \u043D\u0430 \u0442\u0435\u043A\u0443\u0449\u0443\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443","copy.project.link":"\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443 \u043D\u0430 \u043F\u0440\u043E\u0435\u043A\u0442","data.too.big.encoded":"\u0414\u0430\u043D\u043D\u044B\u0435 \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u0432\u0435\u043B\u0438\u043A\u0438, \u0447\u0442\u043E\u0431\u044B \u0437\u0430\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0438\u0445 \u0432 \u0441\u0441\u044B\u043B\u043A\u0435. \u041D\u0435 \u0432\u043A\u043B\u044E\u0447\u0430\u0439\u0442\u0435 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0438\u043B\u0438 \u0432\u0438\u0434\u0435\u043E!","dialog.save.firsttime":"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0442\u0435\u043A\u0443\u0449\u0438\u0439 \u043F\u0440\u043E\u0435\u043A\u0442?","dialog.save.again":"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0432 \u0442\u0435\u043A\u0443\u0449\u0435\u043C \u043F\u0440\u043E\u0435\u043A\u0442\u0435?","dialog.cancel":"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C","dialog.no":"\u041D\u0435\u0442","dialog.yes":"\u0414\u0430","enter.file.name":"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0438\u043C\u044F \u0444\u0430\u0439\u043B\u0430"};var Fd={"style.menu.color":"F\xE4rg","style.menu.fill":"Ifylld","style.menu.dash":"Streck","style.menu.size":"Storlek","style.menu.keep.open":"H\xE5ll stilmenyn \xF6ppen","style.menu.font":"Typsnitt","style.menu.align":"Justera",styles:"Utseende","zoom.in":"Zooma in","zoom.out":"Zooma ut",to:"Till","menu.tools":"Verktyg","menu.transform":"Transform","menu.file":"Arkiv","menu.edit":"Redigera","menu.view":"Inneh\xE5ll","menu.preferences":"Inst\xE4llningar","menu.sign.in":"Logga in","menu.sign.out":"Logga ut","become.a.sponsor":"Bli en sponsor","zoom.to.content":"Anpassa zoom till inneh\xE5ll","zoom.to.selection":"Anpassa zoom till urval","zoom.to.fit":"Anpassa zoom till sk\xE4rm","zoom.to":"Zooma till","preferences.dark.mode":"M\xF6rkt l\xE4ge","preferences.focus.mode":"Fokusl\xE4ge","preferences.debug.mode":"Debugl\xE4ge","preferences.show.grid":"Visa rutn\xE4t","preferences.use.cad.selection":"V\xE4lj som i CAD-mjukvara","preferences.keep.stylemenu.open":"H\xE5ll stilmenyn \xF6ppen","preferences.always.show.snaps":"Visa alltid f\xE4stpunkter","preferences.rotate.handles":"Rotationshandtag","preferences.binding.handles":"Bindningshandtag","preferences.clone.handles":"Kloningshandtag",undo:"\xC5ngra",redo:"G\xF6r om",cut:"Klipp ut",copy:"Kopiera",paste:"Klistra in","copy.as":"Kopiera som","export.as":"Exportera till","select.all":"V\xE4lj alla","select.none":"V\xE4lj ingen",delete:"Radera","new.project":"Nytt projekt",open:"\xD6ppna",save:"Spara","save.as":"Spara som","upload.media":"Ladda upp media","create.page":"Skapa sida","new.page":"Ny sida","page.name":"Sidnamn",duplicate:"Duplicera",cancel:"Avbryt","copy.invite.link":"Kopiera l\xE4nk med redigeringsr\xE4ttigheter","copy.readonly.link":"Kopiera l\xE4nk med l\xE4sr\xE4ttigheter","create.multiplayer.project":"Skapa ett Multiplayer-projekt","copy.multiplayer.project":"Kopiera till Multiplayer-project",select:"V\xE4lj",eraser:"Radera",draw:"Rita",arrow:"Pil",text:"Text",sticky:"Klisterlapp",rectangle:"Rektangel",ellipse:"Ellips",triangle:"Triangel",line:"Linje",rotate:"Rotera","lock.aspect.ratio":"L\xE5s storleksf\xF6rh\xE5llande","unlock.aspect.ratio":"L\xE5s upp storleksf\xF6rh\xE5llande",group:"Gruppera",ungroup:"Avgruppera","move.to.back":"Placera l\xE4ngst bak","move.backward":"Flytta bak\xE5t","move.forward":"Flytta fram\xE5t","move.to.front":"Placera l\xE4ngst fram","reset.angle":"\xC5terst\xE4ll vinkel",lock:"L\xE5s",unlock:"L\xE5s upp","align.distribute":"Justera / Placera","move.to.page":"Flytta till sida","flip.horizontal":"V\xE4nd horisontellt","flip.vertical":"V\xE4nd vertikalt",move:"Flytta","to.front":"Till l\xE4ngst fram",forward:"Fram\xE5t",backward:"Bak\xE5t",back:"Till l\xE4ngst bak",language:"Spr\xE5k","translation.link":"Mer information","dock.position":"Dockningsposition",bottom:"Botten",left:"V\xE4nster",right:"H\xF6ger",top:"Topp",page:"Sida","keyboard.shortcuts":"Tangentbordsgenv\xE4gar",search:"S\xF6k",loading:"Laddar{dots}","export.background":"Exportbakgrund",transparent:"Transparent",auto:"Auto",light:"Ljus",dark:"M\xF6rk",github:"Github",twitter:"Twitter",discord:"Discord",image:"Bild"};var Od={"style.menu.color":"\u0C30\u0C02\u0C17\u0C41","style.menu.fill":"\u0C28\u0C3F\u0C02\u0C2A\u0C41","style.menu.dash":"\u0C05\u0C21\u0C4D\u0C21 \u0C17\u0C40\u0C24","style.menu.size":"\u0C2A\u0C30\u0C3F\u0C2E\u0C3E\u0C23\u0C02","style.menu.keep.open":"\u0C24\u0C46\u0C30\u0C3F\u0C1A\u0C3F \u0C09\u0C02\u0C1A\u0C41","style.menu.font":"\u0C05\u0C15\u0C4D\u0C37\u0C30\u0C3E\u0C15\u0C43\u0C24\u0C3F","style.menu.align":"\u0C38\u0C30\u0C3F\u0C2A\u0C30\u0C1A\u0C41",styles:"\u0C35\u0C3F\u0C27\u0C2E\u0C41\u0C32\u0C41","zoom.in":"\u0C26\u0C17\u0C4D\u0C17\u0C30\u0C17\u0C3E \u0C1A\u0C42\u0C2A\u0C41","zoom.out":"\u0C26\u0C42\u0C30\u0C02\u0C17\u0C3E \u0C1A\u0C42\u0C2A\u0C41",to:"\u0C35\u0C26\u0C4D\u0C26\u0C15\u0C41","menu.tools":"\u0C2A\u0C30\u0C3F\u0C15\u0C30\u0C3E\u0C32\u0C41","menu.transform":"\u0C2E\u0C3E\u0C30\u0C4D\u0C1A\u0C41","menu.file":"\u0C2B\u0C48\u0C32\u0C4D","menu.edit":"\u0C2A\u0C30\u0C3F\u0C37\u0C4D\u0C15\u0C30\u0C3F\u0C02\u0C1A\u0C41","menu.view":"\u0C1A\u0C42\u0C2A\u0C41","menu.preferences":"\u0C0E\u0C02\u0C1A\u0C41\u0C15\u0C4A\u0C28\u0C4D\u0C28\u0C35\u0C3F","menu.sign.in":"\u0C2A\u0C4D\u0C30\u0C35\u0C47\u0C36\u0C3F\u0C02\u0C1A\u0C41","menu.sign.out":"\u0C28\u0C3F\u0C37\u0C4D\u0C15\u0C4D\u0C30\u0C2E\u0C23","become.a.sponsor":"\u0C35\u0C3F\u0C30\u0C3E\u0C33\u0C26\u0C3E\u0C30\u0C41\u0C32\u0C41 \u0C05\u0C35\u0C4D\u0C35\u0C02\u0C21\u0C3F","zoom.to.content":"\u0C35\u0C3F\u0C37\u0C2F\u0C3E\u0C28\u0C4D\u0C28\u0C47 \u0C1A\u0C42\u0C2A\u0C41","zoom.to.selection":"\u0C0E\u0C02\u0C1A\u0C41\u0C15\u0C41\u0C28\u0C4D\u0C28 \u0C35\u0C3F\u0C37\u0C2F\u0C3E\u0C28\u0C4D\u0C28\u0C47 \u0C1A\u0C42\u0C2A\u0C41","zoom.to.fit":"\u0C38\u0C30\u0C3F\u0C2A\u0C46\u0C1F\u0C4D\u0C1F\u0C3F \u0C1A\u0C42\u0C2A\u0C41","zoom.to":"\u0C1A\u0C42\u0C2A\u0C41","preferences.dark.mode":"\u0C1A\u0C40\u0C15\u0C1F\u0C48\u0C28 \u0C15\u0C4D\u0C30\u0C2E\u0C02","preferences.focus.mode":"\u0C24\u0C40\u0C15\u0C4D\u0C37\u0C23 \u0C15\u0C4D\u0C30\u0C2E\u0C02","preferences.debug.mode":"\u0C24\u0C2A\u0C4D\u0C2A\u0C41\u0C32\u0C47\u0C30\u0C41 \u0C15\u0C4D\u0C30\u0C2E\u0C02","preferences.show.grid":"\u0C1A\u0C1F\u0C4D\u0C30\u0C02 \u0C1A\u0C42\u0C2A\u0C41","preferences.use.cad.selection":"CAD\u0C28\u0C3F \u0C35\u0C3E\u0C21\u0C41","preferences.keep.stylemenu.open":"\u0C35\u0C3F\u0C27\u0C2E\u0C41\u0C32 \u0C2A\u0C24\u0C4D\u0C24\u0C3F \u0C24\u0C46\u0C30\u0C3F\u0C1A\u0C3F\u0C35\u0C41\u0C02\u0C1A\u0C41","preferences.always.show.snaps":"\u0C0E\u0C2A\u0C4D\u0C2A\u0C41\u0C21\u0C42 \u0C26\u0C43\u0C36\u0C4D\u0C2F\u0C2D\u0C3E\u0C17\u0C02 \u0C1A\u0C42\u0C2A\u0C41","preferences.rotate.handles":"\u0C39\u0C4D\u0C2F\u0C3E\u0C02\u0C21\u0C3F\u0C32\u0C4D\u0C38\u0C4D \u0C24\u0C3F\u0C2A\u0C4D\u0C2A\u0C41","preferences.binding.handles":"\u0C2F\u0C3E\u0C02\u0C21\u0C3F\u0C32\u0C4D\u0C38\u0C4D \u0C15\u0C1F\u0C4D\u0C1F\u0C41","preferences.clone.handles":"\u0C2F\u0C3E\u0C02\u0C21\u0C3F\u0C32\u0C4D\u0C38\u0C4D \u0C28\u0C15\u0C32\u0C41",undo:"\u0C2E\u0C3E\u0C30\u0C4D\u0C2A\u0C41\u0C28\u0C3F \u0C24\u0C3F\u0C30\u0C41\u0C17\u0C17\u0C4A\u0C1F\u0C4D\u0C1F\u0C41",redo:"\u0C2E\u0C33\u0C4D\u0C33\u0C40 \u0C2E\u0C3E\u0C30\u0C4D\u0C1A\u0C41",cut:"\u0C15\u0C24\u0C4D\u0C24\u0C3F\u0C30\u0C3F\u0C02\u0C1A\u0C41",copy:"\u0C28\u0C15\u0C32\u0C41",paste:"\u0C05\u0C24\u0C3F\u0C15\u0C3F\u0C02\u0C1A\u0C41","copy.as":"\u0C28\u0C15\u0C32\u0C41\u0C2A\u0C4D\u0C30\u0C24\u0C3F\u0C17\u0C3E \u0C07\u0C15\u0C4D\u0C15\u0C21\u0C3F\u0C15\u0C3F","export.as":"\u0C0E\u0C17\u0C41\u0C2E\u0C24\u0C3F \u0C07\u0C15\u0C4D\u0C15\u0C21\u0C3F\u0C15\u0C3F","select.all":"\u0C05\u0C28\u0C4D\u0C28\u0C40 \u0C0E\u0C02\u0C2A\u0C3F\u0C15\u0C1A\u0C46\u0C2F\u0C4D\u0C2F\u0C3F","select.none":"\u0C0E\u0C26\u0C40 \u0C0E\u0C02\u0C2A\u0C3F\u0C15\u0C1A\u0C46\u0C2F\u0C4D\u0C2F\u0C35\u0C26\u0C4D\u0C26\u0C41",delete:"\u0C24\u0C4A\u0C32\u0C17\u0C3F\u0C02\u0C1A\u0C41","new.project":"\u0C15\u0C4A\u0C24\u0C4D\u0C24 \u0C2A\u0C4D\u0C30\u0C3E\u0C1C\u0C46\u0C15\u0C4D\u0C1F\u0C41",open:"\u0C24\u0C46\u0C30\u0C41\u0C35\u0C41",save:"\u0C26\u0C3E\u0C2F\u0C3F","save.as":"\u0C07\u0C32\u0C3E \u0C26\u0C3E\u0C2F\u0C3F","upload.media":"\u0C0E\u0C17\u0C41\u0C2E\u0C24\u0C3F \u0C2E\u0C3E\u0C27\u0C4D\u0C2F\u0C02","create.page":"\u0C2A\u0C41\u0C1F \u0C15\u0C32\u0C4D\u0C2A\u0C3F\u0C02\u0C1A\u0C41","new.page":"\u0C15\u0C4A\u0C24\u0C4D\u0C24 \u0C2A\u0C41\u0C1F","page.name":"\u0C2A\u0C41\u0C1F \u0C2A\u0C47\u0C30\u0C41",duplicate:"\u0C2E\u0C3E\u0C30\u0C41\u0C2A\u0C4D\u0C30\u0C24\u0C3F",cancel:"\u0C30\u0C26\u0C4D\u0C26\u0C41\u0C1A\u0C47\u0C2F\u0C3F","copy.invite.link":"\u0C05\u0C39\u0C4D\u0C35\u0C3E\u0C28 \u0C32\u0C3F\u0C02\u0C15\u0C41 \u0C30\u0C3E\u0C2F\u0C3F","copy.readonly.link":"\u0C2E\u0C3E\u0C30\u0C28\u0C3F\u0C2A\u0C4D\u0C30\u0C24\u0C3F \u0C32\u0C3F\u0C02\u0C15\u0C41 \u0C30\u0C3E\u0C2F\u0C3F","create.multiplayer.project":"\u0C2C\u0C39\u0C41\u0C15\u0C30\u0C4D\u0C24\u0C32 \u0C2A\u0C4D\u0C30\u0C3E\u0C1C\u0C46\u0C15\u0C4D\u0C1F\u0C41 \u0C15\u0C32\u0C4D\u0C2A\u0C3F\u0C02\u0C1A\u0C41","copy.multiplayer.project":"\u0C2C\u0C39\u0C41\u0C15\u0C30\u0C4D\u0C24\u0C32 \u0C2A\u0C4D\u0C30\u0C3E\u0C1C\u0C46\u0C15\u0C4D\u0C1F\u0C41\u0C15\u0C41 \u0C30\u0C3E\u0C2F\u0C3F",select:"\u0C0E\u0C02\u0C2A\u0C3F\u0C15\u0C1A\u0C46\u0C2F\u0C4D\u0C2F\u0C3F",eraser:"Eraser",draw:"\u0C17\u0C40\u0C2F\u0C4D\u0C2F\u0C3F",arrow:"\u0C2C\u0C3E\u0C23\u0C02",text:"\u0C05\u0C15\u0C4D\u0C37\u0C30\u0C2E\u0C41\u0C32\u0C41",sticky:"\u0C05\u0C24\u0C41\u0C15\u0C4D\u0C15\u0C41\u0C28\u0C47",rectangle:"\u0C26\u0C40\u0C30\u0C4D\u0C18\u0C1A\u0C24\u0C41\u0C30\u0C38\u0C4D\u0C30\u0C02",ellipse:"\u0C26\u0C40\u0C30\u0C4D\u0C18\u0C35\u0C43\u0C24\u0C4D\u0C24\u0C02",triangle:"\u0C24\u0C4D\u0C30\u0C3F\u0C2D\u0C41\u0C1C\u0C02",line:"\u0C17\u0C40\u0C24",rotate:"\u0C24\u0C3F\u0C2A\u0C4D\u0C2A\u0C41","lock.aspect.ratio":"\u0C06\u0C38\u0C4D\u0C2A\u0C46\u0C15\u0C4D\u0C1F\u0C4D \u0C28\u0C3F\u0C37\u0C4D\u0C2A\u0C24\u0C4D\u0C24\u0C3F\u0C15\u0C3F \u0C24\u0C3E\u0C33\u0C02\u0C2A\u0C46\u0C1F\u0C4D\u0C1F\u0C41","unlock.aspect.ratio":"\u0C06\u0C38\u0C4D\u0C2A\u0C46\u0C15\u0C4D\u0C1F\u0C4D \u0C28\u0C3F\u0C37\u0C4D\u0C2A\u0C24\u0C4D\u0C24\u0C3F \u0C24\u0C3E\u0C33\u0C02\u0C24\u0C46\u0C30\u0C41\u0C35\u0C41",group:"\u0C17\u0C41\u0C02\u0C2A\u0C41\u0C17\u0C3E \u0C0F\u0C30\u0C4D\u0C2A\u0C30\u0C1A\u0C41",ungroup:"\u0C17\u0C41\u0C02\u0C2A\u0C41\u0C28\u0C41 \u0C1A\u0C46\u0C26\u0C30\u0C17\u0C4A\u0C1F\u0C4D\u0C1F\u0C41","move.to.back":"\u0C06\u0C16\u0C30\u0C3F\u0C15\u0C3F \u0C1C\u0C30\u0C41\u0C2A\u0C41","move.backward":"\u0C35\u0C46\u0C28\u0C41\u0C15\u0C15\u0C41 \u0C1C\u0C30\u0C41\u0C2A\u0C41","move.forward":"\u0C2E\u0C41\u0C02\u0C26\u0C41\u0C15\u0C41 \u0C1C\u0C30\u0C41\u0C2A\u0C41","move.to.front":"\u0C2E\u0C4A\u0C26\u0C1F\u0C3F\u0C15\u0C3F \u0C1C\u0C30\u0C41\u0C2A\u0C41","reset.angle":"\u0C15\u0C4B\u0C23\u0C02 \u0C30\u0C40\u0C38\u0C46\u0C1F\u0C4D",lock:"\u0C24\u0C3E\u0C33\u0C02 \u0C35\u0C46\u0C2F\u0C4D\u0C2F\u0C3F",unlock:"\u0C24\u0C3E\u0C33\u0C02 \u0C24\u0C3F\u0C2F\u0C4D\u0C2F\u0C3F","align.distribute":" \u0C38\u0C30\u0C3F\u0C2A\u0C30\u0C1A\u0C41/\u0C35\u0C46\u0C26\u0C1C\u0C32\u0C4D\u0C32\u0C41","move.to.page":"\u0C2A\u0C41\u0C1F\u0C32\u0C4B\u0C15\u0C3F \u0C1C\u0C30\u0C41\u0C2A\u0C41","flip.horizontal":"\u0C05\u0C21\u0C4D\u0C21\u0C02\u0C17\u0C3E \u0C2A\u0C32\u0C4D\u0C1F\u0C40","flip.vertical":"\u0C28\u0C3F\u0C32\u0C41\u0C35\u0C41\u0C17\u0C3E \u0C2A\u0C32\u0C4D\u0C1F\u0C40",move:"\u0C1C\u0C30\u0C41\u0C2A\u0C41","to.front":"\u0C2E\u0C4A\u0C26\u0C1F\u0C3F\u0C15\u0C3F",forward:"\u0C2E\u0C41\u0C02\u0C26\u0C41\u0C15\u0C41",backward:"\u0C35\u0C46\u0C28\u0C41\u0C15\u0C15\u0C41",back:"\u0C06\u0C16\u0C30\u0C3F\u0C15\u0C3F",language:"\u0C2D\u0C3E\u0C37","translation.link":"\u0C2E\u0C30\u0C3F \u0C15\u0C4A\u0C28\u0C4D\u0C28\u0C3F \u0C35\u0C3F\u0C37\u0C2F\u0C3E\u0C32\u0C41","dock.position":"\u0C2E\u0C02\u0C1A \u0C38\u0C4D\u0C25\u0C3E\u0C28\u0C02",bottom:"\u0C05\u0C21\u0C41\u0C17\u0C41\u0C28",left:"\u0C0E\u0C21\u0C2E\u0C35\u0C48\u0C2A\u0C41",right:"\u0C15\u0C41\u0C21\u0C3F\u0C35\u0C48\u0C2A\u0C41",top:"\u0C2A\u0C48\u0C28",page:"\u0C2A\u0C41\u0C24","keyboard.shortcuts":"\u0C15\u0C40\u0C2C\u0C4B\u0C30\u0C4D\u0C21\u0C4D \u0C38\u0C24\u0C4D\u0C35\u0C30\u0C2E\u0C3E\u0C30\u0C4D\u0C17\u0C02",search:"\u0C35\u0C46\u0C24\u0C41\u0C15\u0C41",loading:"Loading{dots}","export.background":"\u0C28\u0C47\u0C2A\u0C25\u0C4D\u0C2F\u0C02 \u0C0E\u0C17\u0C41\u0C2E\u0C24\u0C3F",transparent:"\u0C15\u0C3E\u0C02\u0C24\u0C3F \u0C2D\u0C47\u0C26\u0C4D\u0C2F\u0C2E\u0C41",auto:"\u0C38\u0C4D\u0C35\u0C2F\u0C02\u0C15\u0C43\u0C24\u0C02",light:"\u0C35\u0C46\u0C32\u0C41\u0C24\u0C41\u0C30\u0C41",dark:"\u0C1A\u0C40\u0C15\u0C1F\u0C3F",github:"Github",twitter:"Twitter",discord:"Discord",image:"\u0C1A\u0C3F\u0C24\u0C4D\u0C30\u0C02","align.left":"\u0C0E\u0C21\u0C2E\u0C35\u0C48\u0C2A\u0C41\u0C15\u0C41 \u0C15\u0C41\u0C26\u0C41\u0C30\u0C4D\u0C1A\u0C41","align.center.x":"\u0C05\u0C21\u0C4D\u0C21\u0C02\u0C17\u0C3E \u0C2E\u0C27\u0C4D\u0C2F\u0C32\u0C4B \u0C15\u0C41\u0C26\u0C41\u0C30\u0C4D\u0C1A\u0C41","align.right":"\u0C15\u0C41\u0C21\u0C3F\u0C35\u0C48\u0C2A\u0C41\u0C15\u0C41 \u0C15\u0C41\u0C26\u0C41\u0C30\u0C4D\u0C1A\u0C41","align.top":"\u0C2A\u0C48\u0C15\u0C3F \u0C15\u0C41\u0C26\u0C41\u0C30\u0C4D\u0C1A\u0C41","align.center.y":"\u0C28\u0C3F\u0C32\u0C41\u0C35\u0C41\u0C17\u0C3E \u0C2E\u0C27\u0C4D\u0C2F\u0C32\u0C4B \u0C15\u0C41\u0C26\u0C41\u0C30\u0C4D\u0C1A\u0C41","align.bottom":"\u0C05\u0C21\u0C41\u0C17\u0C41\u0C28 \u0C15\u0C41\u0C26\u0C41\u0C30\u0C4D\u0C1A\u0C41","distribute.x":"\u0C05\u0C21\u0C4D\u0C21\u0C02\u0C17\u0C3E \u0C2A\u0C02\u0C1A\u0C41","distribute.y":"\u0C28\u0C3F\u0C32\u0C41\u0C35\u0C41\u0C17\u0C3E \u0C2A\u0C02\u0C1A\u0C41","stretch.x":"\u0C05\u0C21\u0C4D\u0C21\u0C02\u0C17\u0C3E \u0C32\u0C3E\u0C17\u0C41","stretch.y":"\u0C28\u0C3F\u0C32\u0C41\u0C35\u0C41\u0C17\u0C3E \u0C32\u0C3E\u0C17\u0C41","dialog.save.firsttime":"\u0C2E\u0C40\u0C30\u0C41 \u0C08 \u0C2A\u0C4D\u0C30\u0C3E\u0C1C\u0C46\u0C15\u0C4D\u0C1F\u0C4D \u0C2D\u0C26\u0C4D\u0C30\u0C2A\u0C30\u0C1A\u0C41\u0C15\u0C4B\u0C35\u0C3E\u0C32\u0C28\u0C3F \u0C05\u0C28\u0C41\u0C15\u0C41\u0C02\u0C1F\u0C41\u0C28\u0C4D\u0C28\u0C3E\u0C30\u0C3E?","dialog.save.again":"\u0C2E\u0C40\u0C30\u0C41 \u0C08 \u0C2A\u0C4D\u0C30\u0C3E\u0C1C\u0C46\u0C15\u0C4D\u0C1F\u0C4D \u0C2D\u0C26\u0C4D\u0C30\u0C2A\u0C30\u0C1A\u0C41\u0C15\u0C4B\u0C35\u0C3E\u0C32\u0C28\u0C3F \u0C05\u0C28\u0C41\u0C15\u0C41\u0C02\u0C1F\u0C41\u0C28\u0C4D\u0C28\u0C3E\u0C30\u0C3E?","dialog.cancel":"\u0C30\u0C26\u0C4D\u0C26\u0C41\u0C1A\u0C46\u0C2F\u0C4D\u0C2F\u0C3F","dialog.no":"\u0C35\u0C26\u0C4D\u0C26\u0C41","dialog.yes":"\u0C38\u0C30\u0C47","enter.file.name":"\u0C2B\u0C48\u0C32\u0C4D \u0C2A\u0C46\u0C30\u0C41 \u0C1A\u0C46\u0C2A\u0C4D\u0C2A\u0C02\u0C21\u0C3F"};var $d={"style.menu.color":"\u0E2A\u0E35","style.menu.fill":"\u0E40\u0E15\u0E34\u0E21","style.menu.dash":"\u0E01\u0E23\u0E2D\u0E1A","style.menu.size":"\u0E02\u0E19\u0E32\u0E14","style.menu.keep.open":"\u0E40\u0E1B\u0E34\u0E14\u0E17\u0E34\u0E49\u0E07\u0E44\u0E27\u0E49","style.menu.font":"\u0E41\u0E1A\u0E1A\u0E2D\u0E31\u0E01\u0E29\u0E23","style.menu.align":"\u0E08\u0E31\u0E14\u0E15\u0E33\u0E41\u0E2B\u0E19\u0E48\u0E07",styles:"\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A","zoom.in":"\u0E0B\u0E39\u0E21\u0E40\u0E02\u0E49\u0E32","zoom.out":"\u0E0B\u0E39\u0E21\u0E2D\u0E2D\u0E01",to:"\u0E0B\u0E39\u0E21\u0E44\u0E1B\u0E17\u0E35\u0E48","menu.tools":"\u0E40\u0E04\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E21\u0E37\u0E2D","menu.transform":"\u0E41\u0E1B\u0E25\u0E07","menu.file":"\u0E44\u0E1F\u0E25\u0E4C","menu.edit":"\u0E41\u0E01\u0E49\u0E44\u0E02","menu.view":"\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07","menu.preferences":"\u0E01\u0E32\u0E23\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32","menu.sign.in":"\u0E40\u0E02\u0E49\u0E32\u0E2A\u0E39\u0E48\u0E23\u0E30\u0E1A\u0E1A","menu.sign.out":"\u0E2D\u0E2D\u0E01\u0E08\u0E32\u0E01\u0E23\u0E30\u0E1A\u0E1A","become.a.sponsor":"\u0E23\u0E48\u0E27\u0E21\u0E40\u0E1B\u0E47\u0E19\u0E2A\u0E1B\u0E2D\u0E19\u0E40\u0E0B\u0E2D\u0E23\u0E4C","zoom.to.content":"\u0E01\u0E25\u0E31\u0E1A\u0E44\u0E1B\u0E22\u0E31\u0E07\u0E40\u0E19\u0E37\u0E49\u0E2D\u0E2B\u0E32","zoom.to.selection":"\u0E0B\u0E39\u0E21\u0E44\u0E1B\u0E22\u0E31\u0E07\u0E2A\u0E48\u0E27\u0E19\u0E17\u0E35\u0E48\u0E40\u0E25\u0E37\u0E2D\u0E01","zoom.to.fit":"\u0E0B\u0E39\u0E21\u0E43\u0E2B\u0E49\u0E40\u0E15\u0E47\u0E21\u0E1E\u0E2D\u0E14\u0E35","zoom.to":"\u0E0B\u0E39\u0E21\u0E44\u0E1B\u0E17\u0E35\u0E48","preferences.dark.mode":"\u0E42\u0E2B\u0E21\u0E14\u0E21\u0E37\u0E14","preferences.focus.mode":"\u0E42\u0E2B\u0E21\u0E14\u0E42\u0E1F\u0E01\u0E31\u0E2A","preferences.debug.mode":"\u0E42\u0E2B\u0E21\u0E14\u0E14\u0E35\u0E1A\u0E31\u0E01","preferences.show.grid":"\u0E41\u0E2A\u0E14\u0E07\u0E15\u0E32\u0E23\u0E32\u0E07","preferences.use.cad.selection":"\u0E01\u0E32\u0E23\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E41\u0E1A\u0E1A CAD","preferences.keep.stylemenu.open":"\u0E40\u0E1B\u0E34\u0E14\u0E40\u0E21\u0E19\u0E39\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E17\u0E34\u0E49\u0E07\u0E44\u0E27\u0E49","preferences.always.show.snaps":"\u0E41\u0E2A\u0E14\u0E07\u0E2A\u0E41\u0E19\u0E1B\u0E15\u0E25\u0E2D\u0E14","preferences.rotate.handles":"\u0E41\u0E2A\u0E14\u0E07\u0E08\u0E38\u0E14\u0E08\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E2B\u0E21\u0E38\u0E19","preferences.binding.handles":"\u0E41\u0E2A\u0E14\u0E07\u0E2B\u0E21\u0E32\u0E22\u0E40\u0E25\u0E02\u0E2D\u0E49\u0E32\u0E07\u0E2D\u0E34\u0E07","preferences.clone.handles":"\u0E41\u0E2A\u0E14\u0E07\u0E15\u0E31\u0E27\u0E42\u0E04\u0E25\u0E19",undo:"\u0E40\u0E25\u0E34\u0E01\u0E17\u0E33",redo:"\u0E17\u0E33\u0E0B\u0E49\u0E33",cut:"\u0E15\u0E31\u0E14",copy:"\u0E04\u0E31\u0E14\u0E25\u0E2D\u0E01",paste:"\u0E27\u0E32\u0E07","copy.as":"\u0E04\u0E31\u0E14\u0E25\u0E2D\u0E01\u0E40\u0E1B\u0E47\u0E19","export.as":"\u0E2A\u0E48\u0E07\u0E2D\u0E2D\u0E01\u0E40\u0E1B\u0E47\u0E19","select.all":"\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14","select.none":"\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01\u0E2A\u0E34\u0E48\u0E07\u0E17\u0E35\u0E48\u0E40\u0E25\u0E37\u0E2D\u0E01",delete:"\u0E25\u0E1A","new.project":"\u0E42\u0E1B\u0E23\u0E40\u0E08\u0E01\u0E15\u0E4C\u0E43\u0E2B\u0E21\u0E48",open:"\u0E40\u0E1B\u0E34\u0E14",save:"\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01","save.as":"\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E40\u0E1B\u0E47\u0E19","upload.media":"\u0E2D\u0E31\u0E1E\u0E42\u0E2B\u0E25\u0E14\u0E21\u0E35\u0E40\u0E14\u0E35\u0E22","create.page":"\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E2B\u0E19\u0E49\u0E32","new.page":"\u0E2B\u0E19\u0E49\u0E32\u0E43\u0E2B\u0E21\u0E48","page.name":"\u0E0A\u0E37\u0E48\u0E2D\u0E2B\u0E19\u0E49\u0E32",duplicate:"\u0E2A\u0E33\u0E40\u0E19\u0E32",cancel:"\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01","copy.invite.link":"\u0E04\u0E31\u0E14\u0E25\u0E2D\u0E01\u0E25\u0E34\u0E07\u0E01\u0E4C\u0E40\u0E0A\u0E34\u0E0D","copy.readonly.link":"\u0E04\u0E31\u0E14\u0E25\u0E2D\u0E01\u0E25\u0E34\u0E07\u0E01\u0E4C\u0E41\u0E1A\u0E1A\u0E43\u0E2B\u0E49\u0E2D\u0E48\u0E32\u0E19\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E40\u0E14\u0E35\u0E22\u0E27","create.multiplayer.project":"\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E42\u0E1B\u0E23\u0E40\u0E08\u0E01\u0E15\u0E4C\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19\u0E2B\u0E25\u0E32\u0E22\u0E04\u0E19","copy.multiplayer.project":"\u0E04\u0E31\u0E14\u0E25\u0E2D\u0E01\u0E42\u0E1B\u0E23\u0E40\u0E08\u0E01\u0E15\u0E4C\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19\u0E2B\u0E25\u0E32\u0E22\u0E04\u0E19",select:"\u0E40\u0E25\u0E37\u0E2D\u0E01",eraser:"\u0E22\u0E32\u0E07\u0E25\u0E1A",draw:"\u0E27\u0E32\u0E14",arrow:"\u0E25\u0E39\u0E01\u0E28\u0E23",text:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21",sticky:"\u0E01\u0E23\u0E30\u0E14\u0E32\u0E29\u0E42\u0E19\u0E4A\u0E15",rectangle:"\u0E2A\u0E35\u0E48\u0E40\u0E2B\u0E25\u0E35\u0E48\u0E22\u0E21\u0E1C\u0E37\u0E19\u0E1C\u0E49\u0E32",ellipse:"\u0E27\u0E07\u0E23\u0E35",triangle:"\u0E2A\u0E32\u0E21\u0E40\u0E2B\u0E25\u0E35\u0E48\u0E22\u0E21",line:"\u0E40\u0E2A\u0E49\u0E19",rotate:"\u0E2B\u0E21\u0E38\u0E19","lock.aspect.ratio":"\u0E25\u0E47\u0E2D\u0E04\u0E2D\u0E31\u0E15\u0E23\u0E32\u0E2A\u0E48\u0E27\u0E19\u0E20\u0E32\u0E1E","unlock.aspect.ratio":"\u0E1B\u0E25\u0E14\u0E25\u0E47\u0E2D\u0E01\u0E2D\u0E31\u0E15\u0E23\u0E32\u0E2A\u0E48\u0E27\u0E19\u0E20\u0E32\u0E1E",group:"\u0E01\u0E25\u0E38\u0E48\u0E21",ungroup:"\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01\u0E01\u0E25\u0E38\u0E48\u0E21","move.to.back":"\u0E22\u0E49\u0E32\u0E22\u0E44\u0E1B\u0E14\u0E49\u0E32\u0E19\u0E2B\u0E25\u0E31\u0E07","move.backward":"\u0E02\u0E22\u0E31\u0E1A\u0E16\u0E2D\u0E22\u0E2B\u0E25\u0E31\u0E07","move.forward":"\u0E02\u0E22\u0E31\u0E1A\u0E44\u0E1B\u0E2B\u0E19\u0E49\u0E32","move.to.front":"\u0E22\u0E49\u0E32\u0E22\u0E44\u0E1B\u0E14\u0E49\u0E32\u0E19\u0E2B\u0E19\u0E49\u0E32","reset.angle":"\u0E23\u0E35\u0E40\u0E0B\u0E47\u0E15\u0E21\u0E38\u0E21",lock:"\u0E25\u0E47\u0E2D\u0E04",unlock:"\u0E1B\u0E25\u0E14\u0E25\u0E47\u0E2D\u0E04","align.distribute":"\u0E08\u0E31\u0E14\u0E15\u0E33\u0E41\u0E2B\u0E19\u0E48\u0E07 / \u0E01\u0E23\u0E30\u0E08\u0E32\u0E22","move.to.page":"\u0E22\u0E49\u0E32\u0E22\u0E44\u0E1B\u0E22\u0E31\u0E07\u0E2B\u0E19\u0E49\u0E32","flip.horizontal":"\u0E1E\u0E25\u0E34\u0E01\u0E41\u0E19\u0E27\u0E19\u0E2D\u0E19","flip.vertical":"\u0E1E\u0E25\u0E34\u0E01\u0E41\u0E19\u0E27\u0E15\u0E31\u0E49\u0E07",move:"\u0E22\u0E49\u0E32\u0E22","to.front":"\u0E44\u0E1B\u0E22\u0E31\u0E07\u0E14\u0E49\u0E32\u0E19\u0E2B\u0E19\u0E49\u0E32",forward:"\u0E02\u0E49\u0E32\u0E07\u0E2B\u0E19\u0E49\u0E32",backward:"\u0E02\u0E49\u0E32\u0E07\u0E2B\u0E25\u0E31\u0E07",back:"\u0E44\u0E1B\u0E22\u0E31\u0E07\u0E14\u0E49\u0E32\u0E19\u0E2B\u0E25\u0E31\u0E07",language:"\u0E20\u0E32\u0E29\u0E32","translation.link":"\u0E40\u0E23\u0E35\u0E22\u0E19\u0E23\u0E39\u0E49\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E40\u0E15\u0E34\u0E21","dock.position":"\u0E15\u0E33\u0E41\u0E2B\u0E19\u0E48\u0E07\u0E41\u0E16\u0E1A\u0E40\u0E04\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E21\u0E37\u0E2D",bottom:"\u0E02\u0E49\u0E32\u0E07\u0E25\u0E48\u0E32\u0E07",left:"\u0E02\u0E49\u0E32\u0E07\u0E0B\u0E49\u0E32\u0E22",right:"\u0E02\u0E49\u0E32\u0E07\u0E02\u0E27\u0E32",top:"\u0E02\u0E49\u0E32\u0E07\u0E1A\u0E19",page:"\u0E2B\u0E19\u0E49\u0E32","keyboard.shortcuts":"\u0E41\u0E1B\u0E49\u0E19\u0E1E\u0E34\u0E21\u0E1E\u0E4C\u0E25\u0E31\u0E14",search:"\u0E04\u0E49\u0E19\u0E2B\u0E32",loading:"\u0E01\u0E33\u0E25\u0E31\u0E07\u0E42\u0E2B\u0E25\u0E14{dots}","export.background":"\u0E2A\u0E48\u0E07\u0E2D\u0E2D\u0E01\u0E1E\u0E37\u0E49\u0E19\u0E2B\u0E25\u0E31\u0E07",transparent:"\u0E42\u0E1B\u0E23\u0E48\u0E07\u0E43\u0E2A",auto:"\u0E2D\u0E31\u0E15\u0E42\u0E19\u0E21\u0E31\u0E15\u0E34",light:"\u0E2A\u0E27\u0E48\u0E32\u0E07",dark:"\u0E21\u0E37\u0E14",github:"Github",twitter:"Twitter",discord:"Discord",image:"\u0E20\u0E32\u0E1E","align.left":"\u0E08\u0E31\u0E14\u0E43\u0E2B\u0E49\u0E0A\u0E34\u0E14\u0E0B\u0E49\u0E32\u0E22","align.center.x":"\u0E08\u0E31\u0E14\u0E43\u0E2B\u0E49\u0E2D\u0E22\u0E39\u0E48\u0E01\u0E36\u0E48\u0E07\u0E01\u0E25\u0E32\u0E07\u0E41\u0E19\u0E27\u0E19\u0E2D\u0E19","align.right":"\u0E08\u0E31\u0E14\u0E43\u0E2B\u0E49\u0E0A\u0E34\u0E14\u0E02\u0E27\u0E32","align.top":"\u0E08\u0E31\u0E14\u0E43\u0E2B\u0E49\u0E2D\u0E22\u0E39\u0E48\u0E14\u0E49\u0E32\u0E19\u0E1A\u0E19","align.center.y":"\u0E08\u0E31\u0E14\u0E43\u0E2B\u0E49\u0E2D\u0E22\u0E39\u0E48\u0E01\u0E36\u0E48\u0E07\u0E01\u0E25\u0E32\u0E07\u0E41\u0E19\u0E27\u0E15\u0E31\u0E49\u0E07","align.bottom":"\u0E08\u0E31\u0E14\u0E43\u0E2B\u0E49\u0E2D\u0E22\u0E39\u0E48\u0E14\u0E49\u0E32\u0E19\u0E25\u0E48\u0E32\u0E07","distribute.x":"\u0E01\u0E23\u0E30\u0E08\u0E32\u0E22\u0E41\u0E19\u0E27\u0E19\u0E2D\u0E19","distribute.y":"\u0E01\u0E23\u0E30\u0E08\u0E32\u0E22\u0E41\u0E19\u0E27\u0E15\u0E31\u0E49\u0E07","stretch.x":"\u0E22\u0E37\u0E14\u0E41\u0E19\u0E27\u0E19\u0E2D\u0E19","stretch.y":"\u0E22\u0E37\u0E14\u0E41\u0E19\u0E27\u0E15\u0E31\u0E49\u0E07","dialog.save.firsttime":"\u0E04\u0E38\u0E13\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E42\u0E1B\u0E23\u0E40\u0E08\u0E47\u0E01\u0E15\u0E4C\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E2B\u0E23\u0E37\u0E2D\u0E44\u0E21\u0E48?","dialog.save.again":"\u0E04\u0E38\u0E13\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E01\u0E32\u0E23\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E41\u0E1B\u0E25\u0E07\u0E43\u0E19\u0E42\u0E1B\u0E23\u0E40\u0E08\u0E47\u0E01\u0E15\u0E4C\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E2B\u0E23\u0E37\u0E2D\u0E44\u0E21\u0E48?","dialog.cancel":"\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01","dialog.no":"\u0E44\u0E21\u0E48","dialog.yes":"\u0E43\u0E0A\u0E48","enter.file.name":"\u0E01\u0E23\u0E2D\u0E01\u0E0A\u0E37\u0E48\u0E2D\u0E44\u0E1F\u0E25\u0E4C"};var Gd={"style.menu.color":"Renk","style.menu.fill":"Doldur","style.menu.dash":"\xC7izgi","style.menu.size":"Boyut","style.menu.keep.open":"A\xE7\u0131k Tut","style.menu.font":"Yaz\u0131 Tipi","style.menu.align":"Hizala",styles:"Stiller","zoom.in":"Yak\u0131nla\u015Ft\u0131r","zoom.out":"Uzakla\u015Ft\u0131r",to:"","menu.file":"Dosya","menu.edit":"D\xFCzenle","menu.view":"G\xF6r\xFCnt\xFC","menu.preferences":"Tercihler","menu.sign.in":"Giri\u015F Yap","menu.sign.out":"Oturumu Kapat","become.a.sponsor":"Sponsor Ol","zoom.to.selection":"Se\xE7ime Yak\u0131nla\u015Ft\u0131r","zoom.to.fit":"S\u0131\u011Fd\u0131rmak i\xE7in Yak\u0131nla\u015Ft\u0131r","zoom.to":"Yak\u0131nla\u015Ft\u0131r","preferences.dark.mode":"Karanl\u0131k Mod","preferences.focus.mode":"Odak Modu","preferences.debug.mode":"Debug Modu","preferences.show.grid":"Izgaray\u0131 G\xF6ster","preferences.use.cad.selection":"CAD Se\xE7imi Kullan","preferences.keep.stylemenu.open":"Stil Men\xFCs\xFCn\xFC A\xE7\u0131k Tut","preferences.always.show.snaps":"Hiza \xC7izgilerini Hep G\xF6ster","preferences.rotate.handles":"Rotasyon Kontrolc\xFCleri","preferences.binding.handles":"Ba\u011Flama Kontrolc\xFCleri","preferences.clone.handles":"Klon Kontrolc\xFCleri",undo:"Geri Al",redo:"Yinele",cut:"Kes",copy:"Kopyala",paste:"Yap\u0131\u015Ft\u0131r","copy.as":"Olarak Kopyala","export.as":"Olarak D\u0131\u015Far\u0131 Aktar","select.all":"Hepsini Se\xE7","select.none":"Hi\xE7birini Se\xE7me",delete:"Sil","new.project":"Yeni Proje",open:"A\xE7",save:"Kaydet","save.as":"Farkl\u0131 Kaydet","upload.media":"Medya Y\xFCkle","create.page":"Sayfa Olu\u015Ftur","new.page":"Yeni Sayfa","page.name":"Sayfa \u0130smi",duplicate:"Kopya Olu\u015Ftur",cancel:"\u0130ptal","copy.invite.link":"Davet Linkini Kopyala","create.multiplayer.project":"\xC7ok Oyunculu Proje Olu\u015Ftur","copy.multiplayer.project":"\xC7ok Oyunculu Projeye Kopyala",select:"Se\xE7",eraser:"Silgi",draw:"\xC7izim",arrow:"Ok",text:"Yaz\u0131",sticky:"Yap\u0131\u015Fkan",rectangle:"Dikd\xF6rtgen",ellipse:"Elips",triangle:"\xDC\xE7gen",line:"\xC7izgi",rotate:"D\xF6nd\xFCr","lock.aspect.ratio":"En Boy Oran\u0131n\u0131 Kilitle","unlock.aspect.ratio":"En Boy Oran\u0131 Kilidini A\xE7",group:"Grupla",ungroup:"Gruplamay\u0131 Kald\u0131r","move.to.back":"Arkaya Ta\u015F\u0131","move.backward":"En Arkaya Ta\u015F\u0131","move.forward":"En \xD6ne Ta\u015F\u0131","move.to.front":"\xD6ne Ta\u015F\u0131","reset.angle":"A\xE7\u0131y\u0131 S\u0131f\u0131rla",lock:"Kilitle",unlock:"Kilidini A\xE7","move.to.page":"Sayfaya Ta\u015F\u0131","flip.horizontal":"Yatay \xC7evir","flip.vertical":"Dikey \xC7evir",move:"Ta\u015F\u0131","to.front":"\xD6ne",forward:"En \xD6ne",backward:"En Arkaya",back:"Arkaya",language:"Dil"};var jd={"style.menu.color":"\u041A\u043E\u043B\u0456\u0440","style.menu.fill":"\u0417\u0430\u043F\u043E\u0432\u043D\u044E\u0432\u0430\u0442\u0438","style.menu.dash":"\u0428\u0442\u0440\u0438\u0445","style.menu.size":"\u0420\u043E\u0437\u043C\u0456\u0440","style.menu.keep.open":"\u0422\u0440\u0438\u043C\u0430\u0442\u0438 \u0432\u0456\u0434\u043A\u0440\u0438\u0442\u0438\u043C","style.menu.font":"\u0428\u0440\u0438\u0444\u0442","style.menu.align":"\u0412\u0438\u0440\u0456\u0432\u043D\u044F\u0442\u0438",styles:"\u0421\u0442\u0438\u043B\u044C","zoom.in":"\u0417\u0431\u0456\u043B\u044C\u0448\u0438\u0442\u0438","zoom.out":"\u0417\u043C\u0435\u043D\u0448\u0438\u0442\u0438",to:"\u0434\u043E","menu.file":"\u0424\u0430\u0439\u043B","menu.edit":"\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u043D\u043D\u044F","menu.view":"\u0412\u0438\u0433\u043B\u044F\u0434","menu.preferences":"\u041D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F","menu.sign.in":"\u0423\u0432\u0456\u0439\u0442\u0438","menu.sign.out":"\u0412\u0438\u0439\u0442\u0438","become.a.sponsor":"\u0421\u0442\u0430\u0442\u0438 \u0441\u043F\u043E\u043D\u0441\u043E\u0440\u043E\u043C","zoom.to.selection":"\u041D\u0430\u0431\u043B\u0438\u0437\u0438\u0442\u0438 \u0434\u043E \u0432\u0438\u0434\u0456\u043B\u0435\u043D\u043D\u044F","zoom.to.fit":"\u0417\u0431\u0456\u043B\u044C\u0448\u0438\u0442\u0438 \u0437\u0430 \u0440\u043E\u0437\u043C\u0456\u0440\u043E\u043C \u0435\u043A\u0440\u0430\u043D\u0443","zoom.to":"\u041D\u0430\u0431\u043B\u0438\u0437\u0438\u0442\u0438 \u0434\u043E","preferences.dark.mode":"\u0422\u0435\u043C\u043D\u0430 \u0442\u0435\u043C\u0430","preferences.focus.mode":"\u041C\u0456\u043D\u0456\u043C\u0430\u043B\u0456\u0441\u0442\u0438\u0447\u043D\u0438\u0439 \u0440\u0435\u0436\u0438\u043C","preferences.debug.mode":"\u0420\u0435\u0436\u0438\u043C \u043D\u0430\u043B\u0430\u0433\u043E\u0434\u0436\u0435\u043D\u043D\u044F","preferences.show.grid":"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u0438 \u0441\u0456\u0442\u043A\u0443","preferences.use.cad.selection":"\u0412\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0432\u0430\u0442\u0438 CAD \u0432\u0438\u0434\u0456\u043B\u0435\u043D\u043D\u044F","preferences.keep.stylemenu.open":"\u0422\u0440\u0438\u043C\u0430\u0442\u0438 \u043C\u0435\u043D\u044E \u0441\u0442\u0438\u043B\u0456\u0432 \u0432\u0456\u0434\u043A\u0440\u0438\u0442\u0438\u043C","preferences.always.show.snaps":"\u0417\u0430\u0432\u0436\u0434\u0438 \u043F\u043E\u043A\u0430\u0437\u0443\u0432\u0430\u0442\u0438 \u043F\u0440\u0438\u0432'\u044F\u0437\u043A\u0438","preferences.rotate.handles":"\u0420\u0443\u0447\u043A\u0438 \u043E\u0431\u0435\u0440\u0442\u0430\u043D\u043D\u044F","preferences.binding.handles":"\u0420\u0443\u0447\u043A\u0438 \u043F\u0440\u0438\u0432'\u044F\u0437\u043A\u0438","preferences.clone.handles":"\u0420\u0443\u0447\u043A\u0438 \u043A\u043B\u043E\u043D\u0443\u0432\u0430\u043D\u043D\u044F",undo:"\u0421\u043A\u0430\u0441\u0443\u0432\u0430\u0442\u0438",redo:"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0438",cut:"\u0412\u0438\u0440\u0456\u0437\u0430\u0442\u0438",copy:"\u0421\u043A\u043E\u043F\u0456\u044E\u0432\u0430\u0442\u0438",paste:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438","copy.as":"\u0421\u043A\u043E\u043F\u0456\u044E\u0432\u0430\u0442\u0438 \u044F\u043A","export.as":"\u0415\u043A\u0441\u043F\u043E\u0440\u0442\u0443\u0432\u0430\u0442\u0438 \u044F\u043A","select.all":"\u041E\u0431\u0440\u0430\u0442\u0438 \u0432\u0441\u0435","select.none":"\u0417\u043D\u044F\u0442\u0438 \u0432\u0438\u0434\u0456\u043B\u0435\u043D\u043D\u044F",delete:"\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438","new.project":"\u041D\u043E\u0432\u0438\u0439 \u043F\u0440\u043E\u0435\u043A\u0442",open:"\u0412\u0456\u0434\u043A\u0440\u0438\u0442\u0438",save:"\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438","save.as":"\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438 \u044F\u043A","upload.media":"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0438\u0442\u0438 \u043C\u0435\u0434\u0456\u0430","create.page":"\u0421\u0442\u0432\u043E\u0440\u0438\u0442\u0438 \u0441\u0442\u043E\u0440\u0456\u043D\u043A\u0443","new.page":"\u041D\u043E\u0432\u0430 \u0441\u0442\u043E\u0440\u0456\u043D\u043A\u0430","page.name":"\u041D\u0430\u0437\u0432\u0430 \u0441\u0442\u043E\u0440\u0456\u043D\u043A\u0438",duplicate:"\u0414\u0443\u0431\u043B\u044E\u0432\u0430\u0442\u0438",cancel:"\u0421\u043A\u0430\u0441\u0443\u0432\u0430\u0442\u0438","copy.invite.link":"\u0421\u043A\u043E\u043F\u0456\u044E\u0432\u0430\u0442\u0438 \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F \u043D\u0430 \u0437\u0430\u043F\u0440\u043E\u0448\u0435\u043D\u043D\u044F","create.multiplayer.project":"\u0421\u0442\u0432\u043E\u0440\u0438\u0442\u0438 \u0431\u0430\u0433\u0430\u0442\u043E\u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044C\u043A\u0438\u0439 \u043F\u0440\u043E\u0435\u043A\u0442","copy.multiplayer.project":"\u0421\u043A\u043E\u043F\u0456\u044E\u0432\u0430\u0442\u0438 \u0432 \u0431\u0430\u0433\u0430\u0442\u043E\u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044C\u043A\u0438\u0439 \u043F\u0440\u043E\u0435\u043A\u0442",select:"\u0412\u0438\u0431\u0438\u0440\u0430\u0442\u0438",eraser:"\u041B\u0430\u0441\u0442\u0438\u043A",draw:"\u041C\u0430\u043B\u044E\u0432\u0430\u0442\u0438",arrow:"\u0421\u0442\u0440\u0456\u043B\u043A\u0430",text:"\u0422\u0435\u043A\u0441\u0442",sticky:"\u041D\u043E\u0442\u0430\u0442\u043A\u0430",rectangle:"\u041F\u0440\u044F\u043C\u043E\u043A\u0443\u0442\u043D\u0438\u043A",ellipse:"\u0415\u043B\u0456\u043F\u0441",triangle:"\u0422\u0440\u0438\u043A\u0443\u0442\u043D\u0438\u043A",line:" \u041B\u0456\u043D\u0456\u044F",rotate:"\u041F\u043E\u0432\u0435\u0440\u043D\u0443\u0442\u0438","lock.aspect.ratio":"\u0417\u0430\u0431\u043B\u043E\u043A\u0443\u0432\u0430\u0442\u0438 \u0441\u043F\u0456\u0432\u0432\u0456\u0434\u043D\u043E\u0448\u0435\u043D\u043D\u044F \u0441\u0442\u043E\u0440\u0456\u043D","unlock.aspect.ratio":" \u0420\u043E\u0437\u0431\u043B\u043E\u043A\u0443\u0432\u0430\u0442\u0438 \u0441\u043F\u0456\u0432\u0432\u0456\u0434\u043D\u043E\u0448\u0435\u043D\u043D\u044F \u0441\u0442\u043E\u0440\u0456\u043D",group:"\u0417\u0433\u0440\u0443\u043F\u0443\u0432\u0430\u0442\u0438",ungroup:" \u0420\u043E\u0437\u0433\u0440\u0443\u043F\u0443\u0432\u0430\u0442\u0438","move.to.back":"\u041F\u0435\u0440\u0435\u043C\u0456\u0441\u0442\u0438\u0442\u0438 \u043D\u0430\u0437\u0430\u0434","move.backward":"\u041F\u0435\u0440\u0435\u043C\u0456\u0441\u0442\u0438\u0442\u0438 \u043D\u0430 \u0437\u0430\u0434\u043D\u0456\u0439 \u043F\u043B\u0430\u043D","move.forward":"\u041F\u0435\u0440\u0435\u043C\u0456\u0441\u0442\u0438\u0442\u0438 \u0432\u043F\u0435\u0440\u0435\u0434","move.to.front":"\u041F\u0435\u0440\u0435\u043C\u0456\u0441\u0442\u0438\u0442\u0438 \u043D\u0430 \u043F\u0435\u0440\u0435\u0434\u043D\u0456\u0439 \u043F\u043B\u0430\u043D","reset.angle":"\u0421\u043A\u0438\u0434\u0430\u043D\u043D\u044F \u043A\u0443\u0442\u0430",lock:"\u0411\u043B\u043E\u043A\u0443\u0432\u0430\u043D\u043D\u044F",unlock:" \u0420\u043E\u0437\u0431\u043B\u043E\u043A\u0443\u0432\u0430\u043D\u043D\u044F","move.to.page":"\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043D\u0430 \u0441\u0442\u043E\u0440\u0456\u043D\u043A\u0443","flip.horizontal":"\u041F\u0435\u0440\u0435\u0432\u0435\u0440\u043D\u0443\u0442\u0438 \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u043E","flip.vertical":"\u041F\u0435\u0440\u0435\u0432\u0435\u0440\u043D\u0443\u0442\u0438 \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E",move:"\u041F\u0435\u0440\u0435\u043C\u0456\u0441\u0442\u0438\u0442\u0438","to.front":"\u041D\u0430 \u043F\u0435\u0440\u0435\u0434\u043D\u0456\u0439 \u043F\u043B\u0430\u043D",forward:" \u0412\u043F\u0435\u0440\u0435\u0434",backward:"\u041D\u0430 \u0437\u0430\u0434\u043D\u0456\u0439 \u043F\u043B\u0430\u043D",back:"\u041D\u0430\u0437\u0430\u0434",language:"\u041C\u043E\u0432\u0430"};var Wd={"style.menu.color":"\u989C\u8272","style.menu.fill":"\u586B\u5145","style.menu.dash":"\u8FB9\u6846","style.menu.size":"\u5C3A\u5BF8","style.menu.keep.open":"\u4FDD\u6301\u5E38\u5F00","style.menu.font":"\u5B57\u4F53","style.menu.align":"\u5BF9\u9F50",styles:"\u6837\u5F0F","zoom.in":"\u653E\u5927","zoom.out":"\u7F29\u5C0F",to:"\u7F29\u653E\u81F3","menu.tools":"\u5DE5\u5177","menu.transform":"\u8F6C\u6362","menu.file":"\u6587\u4EF6","menu.edit":"\u7F16\u8F91","menu.view":"\u89C6\u56FE","menu.preferences":"\u504F\u597D","menu.sign.in":"\u767B\u5F55","menu.sign.out":"\u767B\u51FA",search:"\u641C\u7D22","become.a.sponsor":"\u6210\u4E3A\u8D5E\u52A9\u8005","zoom.to.selection":"\u7F29\u653E\u9009\u4E2D","zoom.to.fit":"\u81EA\u9002\u5E94\u7F29\u653E","zoom.to":"\u7F29\u653E\u81F3","zoom.to.content":"\u7F29\u653E\u81F3\u5185\u5BB9","preferences.dark.mode":"\u6697\u9ED1\u6A21\u5F0F","preferences.focus.mode":"\u4E13\u6CE8\u6A21\u5F0F","preferences.debug.mode":"\u8C03\u8BD5\u6A21\u5F0F","preferences.show.grid":"\u663E\u793A\u7F51\u683C","preferences.use.cad.selection":"\u4F7F\u7528 CAD \u9009\u62E9","preferences.keep.stylemenu.open":"\u4FDD\u6301\u6837\u5F0F\u83DC\u5355\u5E38\u5F00","preferences.always.show.snaps":"\u603B\u662F\u5C55\u793A\u5BF9\u9F50\u7EBF","preferences.rotate.handles":"\u65CB\u8F6C\u624B\u67C4","preferences.binding.handles":"\u6346\u7ED1\u624B\u67C4","preferences.clone.handles":"\u514B\u9686\u624B\u67C4",undo:"\u64A4\u9500",redo:"\u91CD\u505A",cut:"\u526A\u5207",copy:"\u590D\u5236",paste:"\u7C98\u8D34","copy.as":"\u590D\u5236\u4E3A","export.as":"\u5BFC\u51FA\u4E3A","select.all":"\u9009\u4E2D\u5168\u90E8","select.none":"\u53D6\u6D88\u9009\u4E2D",delete:"\u5220\u9664","new.project":"\u65B0\u9879\u76EE",open:"\u6253\u5F00",save:"\u4FDD\u5B58","save.as":"\u4FDD\u5B58\u4E3A","upload.media":"\u4E0A\u4F20\u5A92\u4F53\u6587\u4EF6","create.page":"\u521B\u5EFA\u9875\u9762","new.page":"\u65B0\u9875\u9762","page.name":"\u9875\u9762\u540D\u79F0",duplicate:"\u590D\u5236",cancel:"\u53D6\u6D88","copy.invite.link":"\u590D\u5236\u9080\u8BF7\u94FE\u63A5","create.multiplayer.project":"\u521B\u5EFA\u591A\u4EBA\u9879\u76EE","copy.multiplayer.project":"\u590D\u5236\u5230\u591A\u4EBA\u9879\u76EE",select:"\u9009\u62E9",eraser:"\u6A61\u76AE",draw:"\u753B\u7B14",arrow:"\u7BAD\u5934",text:"\u6587\u672C",sticky:"\u4FBF\u5229\u8D34",rectangle:"\u77E9\u5F62",ellipse:"\u692D\u5706\u5F62",triangle:"\u4E09\u89D2\u5F62",line:"\u76F4\u7EBF",rotate:"\u65CB\u8F6C","lock.aspect.ratio":"\u9501\u5B9A\u5BBD\u9AD8\u6BD4","unlock.aspect.ratio":"\u89E3\u9501\u5BBD\u9AD8\u6BD4",group:"\u5206\u7EC4",ungroup:"\u53D6\u6D88\u5206\u7EC4","move.to.back":"\u7F6E\u5E95","move.backward":"\u4E0B\u79FB\u4E00\u5C42","move.forward":"\u4E0A\u79FB\u4E00\u5C42","move.to.front":"\u7F6E\u9876","reset.angle":"\u91CD\u7F6E\u65CB\u8F6C\u89D2\u5EA6",lock:"\u9501\u5B9A",unlock:"\u89E3\u9501","move.to.page":"\u79FB\u52A8\u5230\u9875\u9762","flip.horizontal":"\u6C34\u5E73\u7FFB\u8F6C","flip.vertical":"\u5782\u76F4\u7FFB\u8F6C",move:"\u79FB\u52A8","to.front":"\u7F6E\u9876",forward:"\u4E0A\u4E00\u5C42",backward:"\u4E0B\u4E00\u5C42",back:"\u7F6E\u5E95",language:"\u8BED\u8A00","keyboard.shortcuts":"\u952E\u76D8\u5FEB\u6377\u952E","translation.link":"\u4E86\u89E3\u66F4\u591A",page:"\u9875\u9762","dock.position":"\u951A\u70B9\u4F4D\u7F6E",bottom:"\u4E0B\u9762",left:"\u5DE6\u9762",right:"\u53F3\u9762",top:"\u4E0A\u9762","export.background":"\u5BFC\u51FA\u80CC\u666F\u8272",transparent:"\u900F\u660E",auto:"\u81EA\u52A8",light:"\u660E\u4EAE",dark:"\u6697\u9ED1","copy.readonly.link":"\u590D\u5236\u53EA\u8BFB\u94FE\u63A5",image:"\u56FE\u7247","align.distribute":"\u5BF9\u9F50 / \u5206\u6563","dialog.save.firsttime":"\u60A8\u662F\u5426\u60F3\u4FDD\u5B58\u5F53\u524D\u7684\u9879\u76EE\uFF1F","dialog.save.again":"\u60A8\u662F\u5426\u60F3\u4FDD\u5B58\u5BF9\u5F53\u524D\u9879\u76EE\u7684\u66F4\u6539\uFF1F","dialog.cancel":"\u53D6\u6D88","dialog.no":"\u5426","dialog.yes":"\u662F"};var Nd={"style.menu.color":"\u984F\u8272","style.menu.fill":"\u586B\u5145","style.menu.dash":"\u865B\u7DDA","style.menu.size":"\u5927\u5C0F","style.menu.keep.open":"\u4FDD\u6301\u958B\u555F","style.menu.font":"\u5B57\u578B","style.menu.align":"\u5C0D\u9F4A",styles:"\u6A23\u5F0F","zoom.in":"\u653E\u5927","zoom.out":"\u7E2E\u5C0F",to:"\u81F3","menu.file":"\u6A94\u6848","menu.edit":"\u7DE8\u8F2F","menu.view":"\u6AA2\u8996","menu.preferences":"\u9078\u9805","menu.sign.in":"\u767B\u5165","menu.sign.out":"\u767B\u51FA","become.a.sponsor":"\u6210\u70BA\u8D0A\u52A9\u8005","zoom.to.selection":"\u7E2E\u653E\u81F3\u9078\u53D6\u7BC4\u570D","zoom.to.fit":"\u7E2E\u653E\u81F3\u9069\u7576\u5927\u5C0F","zoom.to":"\u7E2E\u653E\u81F3","preferences.dark.mode":"\u6DF1\u8272\u6A21\u5F0F","preferences.focus.mode":"\u5C08\u6CE8\u6A21\u5F0F","preferences.debug.mode":"\u9664\u932F\u6A21\u5F0F","preferences.show.grid":"\u986F\u793A\u7DB2\u683C","preferences.use.cad.selection":"\u4F7F\u7528 CAD \u9078\u53D6","preferences.keep.stylemenu.open":"\u6A23\u5F0F\u9078\u55AE\u4FDD\u6301\u958B\u555F","preferences.always.show.snaps":"\u6C38\u9060\u986F\u793A\u5C0D\u9F4A\u7DDA","preferences.rotate.handles":"\u65CB\u8F49\u63A7\u9EDE","preferences.binding.handles":"\u7D81\u5B9A\u63A7\u9EDE","preferences.clone.handles":"\u8907\u88FD\u63A7\u9EDE",undo:"\u5FA9\u539F",redo:"\u53D6\u6D88\u5FA9\u539F",cut:"\u526A\u4E0B",copy:"\u8907\u88FD",paste:"\u8CBC\u4E0A","copy.as":"\u8907\u88FD\u6210","export.as":"\u532F\u51FA\u6210","select.all":"\u5168\u9078","select.none":"\u53D6\u6D88\u9078\u53D6",delete:"\u522A\u9664","new.project":"\u65B0\u5C08\u6848",open:"\u958B\u555F",save:"\u5132\u5B58","save.as":"\u53E6\u5B58\u70BA","upload.media":"\u4E0A\u50B3\u5A92\u9AD4","create.page":"\u5EFA\u7ACB\u9801\u9762","new.page":"\u65B0\u9801\u9762","page.name":"\u9801\u9762\u540D\u7A31",duplicate:"\u8907\u88FD",cancel:"\u53D6\u6D88","copy.invite.link":"\u8907\u88FD\u9080\u8ACB\u9023\u7D50","copy.readonly.link":"\u8907\u88FD\u552F\u8B80\u9023\u7D50","create.multiplayer.project":"\u5EFA\u7ACB\u591A\u4EBA\u5C08\u6848","copy.multiplayer.project":"\u8907\u88FD\u81F3\u591A\u4EBA\u5C08\u6848",select:"\u9078\u53D6",eraser:"\u6A61\u76AE\u64E6",draw:"\u624B\u7E6A",arrow:"\u7BAD\u982D",text:"\u6587\u5B57",sticky:"\u4FBF\u5229\u8CBC",rectangle:"\u9577\u65B9\u5F62",ellipse:"\u6A62\u5713\u5F62",triangle:"\u4E09\u89D2\u5F62",line:"\u76F4\u7DDA",rotate:"\u65CB\u8F49","lock.aspect.ratio":"\u9396\u5B9A\u9577\u5BEC\u6BD4","unlock.aspect.ratio":"\u89E3\u9396\u9577\u5BEC\u6BD4",group:"\u7D44\u6210\u7FA4\u7D44",ungroup:"\u53D6\u6D88\u7FA4\u7D44","move.to.back":"\u79FB\u5230\u6700\u4E0B\u5C64","move.backward":"\u4E0B\u79FB\u4E00\u5C64","move.forward":"\u4E0A\u79FB\u4E00\u5C64","move.to.front":"\u79FB\u5230\u6700\u4E0A\u5C64","reset.angle":"\u91CD\u8A2D\u89D2\u5EA6",lock:"\u9396\u5B9A",unlock:"\u89E3\u9396","move.to.page":"\u79FB\u81F3\u9801\u9762","flip.horizontal":"\u6C34\u5E73\u7FFB\u8F49","flip.vertical":"\u5782\u76F4\u7FFB\u8F49",move:"\u79FB\u52D5","to.front":"\u5230\u6700\u4E0A\u5C64",forward:"\u5230\u4E0A\u4E00\u5C64",backward:"\u5230\u4E0B\u4E00\u5C64",back:"\u5230\u6700\u4E0B\u5C64",language:"\u8A9E\u8A00","translation.link":"\u4E86\u89E3\u8A73\u60C5","dock.position":"\u5DE5\u5177\u5217\u4F4D\u7F6E",bottom:"\u4E0B\u65B9",left:"\u5DE6\u5074",right:"\u53F3\u5074",top:"\u4E0A\u65B9",page:"\u9801\u9762"};var Ud=[{locale:"ar",label:"\u0639\u0631\u0628\u064A",messages:fd},{locale:"da",label:"Danish",messages:Sd},{locale:"de",label:"Deutsch",messages:yd},{locale:"en",label:"English",messages:bd},{locale:"es",label:"Espa\xF1ol",messages:vd},{locale:"fa",label:"\u0641\u0627\u0631\u0633\u06CC",messages:Td},{locale:"fr",label:"Fran\xE7ais",messages:xd},{locale:"gl",label:"Galego",messages:kd},{locale:"he",label:"\u05E2\u05D1\u05E8\u05D9\u05EA",messages:Cd},{locale:"it",label:"Italiano",messages:wd},{locale:"ja",label:"\u65E5\u672C\u8A9E",messages:Id},{locale:"ko-kr",label:"\uD55C\uAD6D\uC5B4",messages:Pd},{locale:"my",label:"\u1019\u103C\u1014\u103A\u1019\u102C\u1005\u102C",messages:Ed},{locale:"nb-no",label:"Norwegian Bokm\xE5l",messages:Bd},{locale:"ne",label:"\u0928\u0947\u092A\u093E\u0932\u0940",messages:Md},{locale:"nn-no",label:"Norwegian Nynorsk",messages:Ld},{locale:"pl",label:"Polski",messages:Ad},{locale:"pt",label:"Portugu\xEAs - Europeu",messages:Hd},{locale:"pt-br",label:"Portugu\xEAs - Brasil",messages:Vd},{locale:"ru",label:"Russian",messages:zd},{locale:"sv",label:"Svenska",messages:Fd},{locale:"te",label:"\u0C24\u0C46\u0C32\u0C41\u0C17\u0C41",messages:Od},{locale:"tr",label:"T\xFCrk\xE7e",messages:Gd},{locale:"uk",label:"Ukrainian",messages:jd},{locale:"zh-ch",label:"\u7B80\u4F53\u4E2D\u6587",messages:Wd},{locale:"zh-tw",label:"\u7E41\u9AD4\u4E2D\u6587 (\u53F0\u7063)",messages:Nd},{locale:"th",label:"\u0E20\u0E32\u0E29\u0E32\u0E44\u0E17\u0E22",messages:$d},{locale:"ku",label:"\u06A9\u0648\u0631\u062F\u06CC",messages:Rd}];Ud.sort((i,o)=>i.locale<o.locale?-1:1);function Kd(i){var e;let o=Ud.find(t=>t.locale===i);return{locale:i,label:(e=o==null?void 0:o.label)!=null?e:i,messages:S(S({},Dd),o==null?void 0:o.messages)}}function Yd(i){return _d.useMemo(()=>{let o=typeof navigator!="undefined"?navigator.language.split(/[-_]/)[0]:"en";return Kd(i!=null?i:o)},[i])}var Ui=H(require("react")),Ea=Ui.createContext({}),Oi=()=>{let i=Ui.useContext(Ea);if(!i)throw new Error("useCtx must be inside a Provider with a value");return i};var ir=require("react/jsx-runtime"),Rt=oi.forwardRef((h,u)=>{var g=h,{onSelect:i,onClick:o,onDoubleClick:e,variant:t,children:n,isToolLocked:r=!1,disabled:s=!1,isActive:l=!1,onKeyDown:a,id:c}=g,p=Ae(g,["onSelect","onClick","onDoubleClick","variant","children","isToolLocked","disabled","isActive","onKeyDown","id"]);return(0,ir.jsxs)(Sm,I(S({ref:u,isActive:l,variant:t,onClick:o,disabled:s,onPointerDown:i,onDoubleClick:e,onKeyDown:a,bp:fn,id:c},p),{children:[(0,ir.jsx)(yn,{children:n}),r&&(0,ir.jsx)(ym,{})]}))});function Ba(r){var s=r,{label:i,kbd:o,variant:e,isLocked:t}=s,n=Ae(s,["label","kbd","variant","isLocked"]);let l=_(),a=oi.useCallback(()=>{l.toggleToolLock()},[]),c=oi.useCallback(p=>{p.key===" "&&l.isForcePanning&&p.preventDefault()},[]);return(0,ir.jsx)(zi,{label:i[0].toUpperCase()+i.slice(1),kbd:o,children:(0,ir.jsx)(Rt,I(S({},n),{variant:e,isToolLocked:t&&n.isActive,onDoubleClick:a,onKeyDown:c,"aria-label":i[0].toUpperCase()+i.slice(1)}))})}var yn=R("div",{position:"relative",height:"100%",width:"100%",backgroundColor:"$panel",borderRadius:"$2",margin:"0",display:"flex",alignItems:"center",justifyContent:"center",fontFamily:"$ui",color:"inherit",userSelect:"none",WebkitUserSelect:"none",boxSizing:"border-box",border:"1px solid transparent","-webkit-tap-highlight-color":"transparent","tap-highlight-color":"transparent"}),Sm=R("button",{position:"relative",color:"$text",fontSize:"$0",background:"none",margin:"0",padding:"$2",display:"flex",alignItems:"center",justifyContent:"center",outline:"none",cursor:"pointer",pointerEvents:"all",height:"40px",width:"40px",border:"1px solid $panel","-webkit-tap-highlight-color":"transparent","tap-highlight-color":"transparent",[`&:disabled ${yn}`]:{opacity:.618},variants:{variant:{primary:{marginTop:"0"},icon:{[`& ${yn}`]:{display:"grid","& > *":{gridRow:1,gridColumn:1}}},text:{width:"auto",[`& ${yn}`]:{fontSize:"$1",padding:"0 $3",gap:"$3"}},circle:{padding:0,height:32,width:32,border:"none",[`& ${yn}`]:{border:"1px solid $panelContrast",borderRadius:"100%",boxShadow:"$panel"},[`& ${yn} > svg`]:{width:14,height:14}}},isActive:{true:{},false:{}},bp:{mobile:{padding:0},small:{}}},compoundVariants:[{variant:"primary",bp:"mobile",css:{height:40,width:36,[`& ${yn} > svg`]:{width:16,height:16}}},{variant:"primary",bp:"small",css:{height:"40px",width:"40px",[`& ${yn} > svg`]:{width:20,height:20}}},{isActive:!0,css:{[`${yn}`]:{backgroundColor:"$selected",color:"$selectedContrast"}}},{isActive:!1,bp:"small",css:{[`&:hover:not(:disabled) ${yn}`]:{backgroundColor:"$hover"},[`&:focus:not(:disabled) ${yn}`]:{backgroundColor:"$hover"}}}]}),ym=R("div",{position:"absolute",width:10,height:10,backgroundColor:"$selected",borderRadius:"100%",bottom:-2,border:"2px solid $panel",zIndex:100});var _t=require("react/jsx-runtime"),Ma=["rectangle","ellipse","triangle","line"],Xd={["rectangle"]:(0,_t.jsx)(sr.SquareIcon,{}),["ellipse"]:(0,_t.jsx)(sr.CircleIcon,{}),["triangle"]:(0,_t.jsx)(sr.VercelLogoIcon,{}),["line"]:(0,_t.jsx)(cd,{})},bm=i=>i.settings.dockPosition,qd=Bn.memo(function({activeTool:o,isToolLocked:e}){let t=_(),n=(0,Zd.useIntl)(),r=t.useStore(bm),[s,l]=Bn.useState("rectangle");Bn.useEffect(()=>{Ma.includes(o)&&s!==o&&l(o)},[o]);let a=Bn.useCallback(()=>{t.selectTool(s)},[o,t]),c=Bn.useCallback(()=>{t.toggleToolLock()},[t]),p=Bn.useCallback(m=>{m.key===" "&&t.shiftKey&&m.preventDefault()},[]),u=Ma.includes(o),h=r==="bottom"||r==="top"?"top":r,g=r==="bottom"||r==="top"?"row":"column";return(0,_t.jsxs)(ao.Root,{dir:"ltr",onOpenChange:a,children:[(0,_t.jsx)(ao.Trigger,{dir:"ltr",asChild:!0,id:"TD-PrimaryTools-Shapes",children:(0,_t.jsx)(Rt,{disabled:u&&t.shiftKey,variant:"primary",onDoubleClick:c,isToolLocked:u&&e,isActive:u,onKeyDown:p,"aria-label":n.formatMessage({id:"shapes"}),children:Xd[s]})}),(0,_t.jsx)(ao.Content,{asChild:!0,side:h,sideOffset:12,children:(0,_t.jsx)(qr,{side:"center",style:{flexDirection:g},children:Ma.map((m,f)=>(0,_t.jsx)(zi,{label:n.formatMessage({id:m}),kbd:(4+f).toString(),id:`TD-PrimaryTools-Shapes-${m}`,children:(0,_t.jsx)(ao.Item,{asChild:!0,children:(0,_t.jsx)(Rt,{"aria-label":n.formatMessage({id:m}),variant:"primary",onClick:()=>{t.selectTool(m),l(m)},children:Xd[m]})})},m))})})]})});var me=require("react/jsx-runtime"),vm=i=>i.appState.activeTool,Tm=i=>i.appState.isToolLocked,xm=i=>i.settings.canvasMode,Qd=Yt.memo(function(){let o=_(),e=(0,Jd.useIntl)(),t=o.useStore(vm),n=o.useStore(Tm),r=o.useStore(xm),s=Yt.useCallback(()=>o.selectTool("select"),[o]),l=Yt.useCallback(()=>o.selectTool("erase"),[o]),a=Yt.useCallback(()=>o.selectTool("draw"),[o]),c=Yt.useCallback(()=>o.selectTool("pen"),[o]),p=Yt.useCallback(()=>o.selectTool("arrow"),[o]),u=Yt.useCallback(()=>o.selectTool("text"),[o]),h=Yt.useCallback(()=>o.selectTool("sticky"),[o]),g=Yt.useCallback(()=>F(this,null,function*(){return o.openAsset()}),[o]),m=Yt.useCallback(()=>o.toggleCanvasMode(),[o]),f=Yt.useCallback(v=>{v.stopPropagation()},[]);return(0,me.jsx)(km,{onPointerDown:f,children:(0,me.jsxs)(Cm,{children:[(0,me.jsx)(Un,{onClick:s,isActive:t==="select",title:e.formatMessage({id:"select"}),children:(0,me.jsx)(tn.CursorArrowIcon,{})}),(0,me.jsx)(La,{}),(0,me.jsx)(Un,{onClick:a,isActive:t==="draw",title:e.formatMessage({id:"draw"}),children:(0,me.jsx)(tn.Pencil1Icon,{})}),(0,me.jsx)(Un,{onClick:c,isActive:t==="pen",title:"Pen",children:(0,me.jsx)(tn.Pencil2Icon,{})}),(0,me.jsx)(Un,{onClick:l,isActive:t==="erase",title:e.formatMessage({id:"eraser"}),children:(0,me.jsx)(ld,{})}),(0,me.jsx)(La,{}),(0,me.jsx)(wm,{children:(0,me.jsx)(qd,{activeTool:t,isToolLocked:n})}),(0,me.jsx)(Un,{onClick:p,isActive:t==="arrow",title:e.formatMessage({id:"arrow"}),children:(0,me.jsx)(tn.ArrowTopRightIcon,{})}),(0,me.jsx)(Un,{onClick:u,isActive:t==="text",title:e.formatMessage({id:"text"}),children:(0,me.jsx)(tn.TextIcon,{})}),(0,me.jsx)(Un,{onClick:h,isActive:t==="sticky",title:"Sticky Note",children:(0,me.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",children:[(0,me.jsx)("rect",{x:"2",y:"2",width:"11",height:"11",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,me.jsx)("line",{x1:"5",y1:"6",x2:"10",y2:"6",stroke:"currentColor",strokeWidth:"1"}),(0,me.jsx)("line",{x1:"5",y1:"9",x2:"8",y2:"9",stroke:"currentColor",strokeWidth:"1"})]})}),(0,me.jsx)(Un,{onClick:g,title:e.formatMessage({id:"image"}),children:(0,me.jsx)(tn.ImageIcon,{})}),(0,me.jsx)(La,{}),(0,me.jsx)(Un,{onClick:m,isActive:r==="straight",title:r==="freehand"?"Straight mode":"Freehand mode",children:r==="freehand"?(0,me.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",children:(0,me.jsx)("path",{d:"M2 12C4 8 6 4 8 6C10 8 11 3 13 3",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",fill:"none"})}):(0,me.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",children:(0,me.jsx)("path",{d:"M2 12L7.5 3L13 12",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})})})]})})}),km=R("div",{position:"absolute",bottom:"16px",left:"50%",transform:"translateX(-50%)",zIndex:300,pointerEvents:"all"}),Cm=R("div",{display:"flex",alignItems:"center",gap:"2px",padding:"6px 8px",background:"$panel",borderRadius:"$pill",boxShadow:"0 2px 16px rgba(0,0,0,0.25), 0 0 0 1px rgba(255,255,255,0.06)",backdropFilter:"blur(12px)"}),Un=R("button",{all:"unset",display:"flex",alignItems:"center",justifyContent:"center",width:"36px",height:"36px",borderRadius:"$2",color:"$textSecondary",cursor:"pointer",transition:"all 0.12s ease",flexShrink:0,"& svg":{width:"16px",height:"16px"},"&:hover":{background:"$hover",color:"$text"},variants:{isActive:{true:{background:"$accent",color:"white","&:hover":{background:"$accent",color:"white"}}}}}),La=R("div",{width:"1px",height:"20px",background:"$separator",margin:"0 4px",flexShrink:0,opacity:.5}),wm=R("div",{display:"flex","& button":{width:"36px",height:"36px",padding:0,borderRadius:"$2",border:"none"},'& [class*="StyledToolButtonInner"]':{borderRadius:"$2",background:"transparent"}});var we=H(require("@radix-ui/react-context-menu")),Xe=require("@radix-ui/react-icons"),de=H(require("react")),Oe=require("react-intl");var Te=R("hr",{height:0,paddingTop:1,width:"calc(100%+8px)",backgroundColor:"$hover",border:"none",margin:"$2 -4px"});var Kn=R("div",{position:"relative",overflow:"hidden",userSelect:"none",WebkitUserSelect:"none",display:"flex",flexDirection:"column",zIndex:99997,minWidth:180,pointerEvents:"all",backgroundColor:"$panel",border:"1px solid $panelContrast",boxShadow:"$panel",padding:"$2 $2",borderRadius:"$3",font:"$ui",maxHeight:"100vh",overflowY:"auto",overflowX:"hidden","&::webkit-scrollbar":{display:"none"},"-ms-overflow-style":"none",scrollbarWidth:"none",variants:{size:{small:{minWidth:72}},overflow:{true:{maxHeight:"60vh"}}}});var ec=require("@radix-ui/react-dropdown-menu"),Ki=require("@radix-ui/react-icons"),tc=H(require("react"));var Ft=R("div",{height:"100%",borderRadius:"4px",marginRight:"1px",width:"fit-content",display:"grid",alignItems:"center",justifyContent:"center",outline:"none",border:"none",pointerEvents:"all",cursor:"pointer",color:"currentColor","& svg":{height:16,width:16,strokeWidth:1},"& > *":{gridRow:1,gridColumn:1}});var _n=require("react/jsx-runtime"),st=tc.forwardRef((u,p)=>{var h=u,{onClick:i,isActive:o=!1,isWarning:e=!1,hasIndicator:t=!1,hasArrow:n=!1,disabled:r=!1,variant:s,kbd:l,children:a}=h,c=Ae(h,["onClick","isActive","isWarning","hasIndicator","hasArrow","disabled","variant","kbd","children"]);return(0,_n.jsx)(Im,I(S({ref:p,bp:fn,isWarning:e,isActive:o,disabled:r,onClick:i,variant:s},c),{children:(0,_n.jsxs)(nc,{children:[a,l?(0,_n.jsx)(Hi,{variant:"menu",children:l}):void 0,t&&(0,_n.jsx)(ec.ItemIndicator,{dir:"ltr",children:(0,_n.jsx)(Ft,{children:(0,_n.jsx)(Ki.CheckIcon,{})})}),n&&(0,_n.jsx)(Ft,{children:(0,_n.jsx)(Ki.ChevronRightIcon,{})})]})}))}),nc=R("div",{height:"100%",width:"100%",backgroundColor:"$panel",borderRadius:"$2",display:"flex",gap:"$1",flexDirection:"row",alignItems:"center",padding:"0 $3",justifyContent:"space-between",border:"1px solid transparent","& svg":{position:"relative",stroke:"$overlay",strokeWidth:1,zIndex:1},[`& > ${Ft}`]:{paddingLeft:"$3"}}),Im=R("button",{position:"relative",width:"100%",background:"none",border:"none",cursor:"pointer",height:32,minHeight:32,outline:"none",color:"$text",fontFamily:"$ui",fontWeight:400,fontSize:"$1",borderRadius:4,userSelect:"none",WebkitUserSelect:"none",margin:0,padding:"0 0","&[data-disabled]":{opacity:.3},"&:disabled":{opacity:.3},[`&:focus:not(:disabled) ${nc}`]:{backgroundColor:"$hover"},"& a":{textDecoration:"none",color:"$text"},variants:{bp:{mobile:{},small:{}},variant:{styleMenu:{margin:"$1 0 $1 0"},wide:{gridColumn:"1 / span 4"}},size:{icon:{padding:"4px ",width:"auto"}},isWarning:{true:{color:"$warn"}},isActive:{true:{backgroundColor:"$hover"},false:{}}}});var A=require("react/jsx-runtime"),Pm=i=>i.document.pageStates[i.appState.currentPageId].selectedIds.length,Rm=i=>i.settings.isDebugMode,Dm=i=>i.document.pageStates[i.appState.currentPageId].selectedIds.some(o=>i.document.pages[i.appState.currentPageId].shapes[o].children!==void 0),Em=i=>i.stopPropagation(),Bm=({onBlur:i,children:o})=>{let e=Sn();return(0,A.jsxs)(we.Root,{dir:"ltr",children:[(0,A.jsx)(we.Trigger,{dir:"ltr",children:o}),(0,A.jsx)(we.Portal,{container:e.current,children:(0,A.jsx)(we.Content,{onEscapeKeyDown:Em,tabIndex:-1,onBlur:i,asChild:!0,children:(0,A.jsx)(Kn,{id:"TD-ContextMenu",children:(0,A.jsx)(Mm,{})})})})]})},Mm=de.memo(function(){let o=_(),e=(0,Oe.useIntl)(),t=o.useStore(Pm),n=o.useStore(Rm),r=o.useStore(Dm),s=de.useCallback(()=>{o.flipHorizontal()},[o]),l=de.useCallback(()=>{o.flipVertical()},[o]),a=de.useCallback(()=>{o.duplicate()},[o]),c=de.useCallback(()=>{o.toggleLocked()},[o]),p=de.useCallback(()=>{o.group()},[o]),u=de.useCallback(()=>{o.moveToBack()},[o]),h=de.useCallback(()=>{o.moveBackward()},[o]),g=de.useCallback(()=>{o.moveForward()},[o]),m=de.useCallback(()=>{o.moveToFront()},[o]),f=de.useCallback(()=>{o.delete()},[o]),v=de.useCallback(()=>{o.cut()},[o]),b=de.useCallback(()=>{o.copy()},[o]),T=de.useCallback(()=>{o.paste()},[o]),y=de.useCallback(()=>{o.copyImage("svg",{scale:1,quality:1,transparentBackground:!1})},[o]),x=de.useCallback(()=>{o.copyImage("png",{scale:2,quality:1,transparentBackground:!0})},[o]),P=de.useCallback(()=>{o.undo()},[o]),k=de.useCallback(()=>{o.redo()},[o]),D=de.useCallback(()=>F(this,null,function*(){o.exportImage("png",{scale:2,quality:1})}),[o]),C=de.useCallback(()=>F(this,null,function*(){o.exportImage("jpeg",{scale:2,quality:1})}),[o]),E=de.useCallback(()=>F(this,null,function*(){o.exportImage("webp",{scale:2,quality:1})}),[o]),M=de.useCallback(()=>F(this,null,function*(){o.exportImage("svg",{scale:1,quality:1})}),[o]),L=de.useCallback(()=>F(this,null,function*(){o.copyJson()}),[o]),V=de.useCallback(()=>F(this,null,function*(){o.exportJson()}),[o]),X=de.useCallback(()=>F(this,null,function*(){o.convertToImage()}),[o]),se=t>0,G=t>1,ne=t>2,pe=t===1?o.getShape(o.selectedIds[0],o.currentPageId):null,he=(pe==null?void 0:pe.type)==="reactComponent";return(0,A.jsx)(A.Fragment,{children:se?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(ge,{onClick:a,kbd:"#D",id:"TD-ContextMenu-Duplicate",children:(0,A.jsx)(Oe.FormattedMessage,{id:"duplicate"})}),(0,A.jsx)(ge,{onClick:s,kbd:"\u21E7H",id:"TD-ContextMenu-Flip_Horizontal",children:(0,A.jsx)(Oe.FormattedMessage,{id:"flip.horizontal"})}),(0,A.jsx)(ge,{onClick:l,kbd:"\u21E7V",id:"TD-ContextMenu-Flip_Vertical",children:(0,A.jsx)(Oe.FormattedMessage,{id:"flip.vertical"})}),(0,A.jsxs)(ge,{onClick:c,kbd:"#\u21E7L",id:"TD-ContextMenu- Lock_Unlock",children:[(0,A.jsx)(Oe.FormattedMessage,{id:"lock"})," / ",(0,A.jsx)(Oe.FormattedMessage,{id:"unlock"})]}),(G||r)&&(0,A.jsx)(Te,{}),G&&(0,A.jsx)(ge,{onClick:p,kbd:"#G",id:"TD-ContextMenu-Group",children:(0,A.jsx)(Oe.FormattedMessage,{id:"group"})}),r&&(0,A.jsx)(ge,{onClick:p,kbd:"#G",id:"TD-ContextMenu-Ungroup",children:(0,A.jsx)(Oe.FormattedMessage,{id:"ungroup"})}),(0,A.jsx)(Te,{}),(0,A.jsxs)(_i,{label:e.formatMessage({id:"move"}),id:"TD-ContextMenu-Move",children:[(0,A.jsx)(ge,{onClick:m,kbd:"\u21E7]",id:"TD-ContextMenu-Move-To_Front",children:(0,A.jsx)(Oe.FormattedMessage,{id:"to.front"})}),(0,A.jsx)(ge,{onClick:g,kbd:"]",id:"TD-ContextMenu-Move-Forward",children:(0,A.jsx)(Oe.FormattedMessage,{id:"forward"})}),(0,A.jsx)(ge,{onClick:h,kbd:"[",id:"TD-ContextMenu-Move-Backward",children:(0,A.jsx)(Oe.FormattedMessage,{id:"backward"})}),(0,A.jsx)(ge,{onClick:u,kbd:"\u21E7[",id:"TD-ContextMenu-Move-To_Back",children:(0,A.jsx)(Oe.FormattedMessage,{id:"back"})})]}),(0,A.jsx)(zm,{}),G&&(0,A.jsx)(Lm,{hasTwoOrMore:G,hasThreeOrMore:ne}),(0,A.jsx)(Te,{}),(0,A.jsx)(ge,{onClick:v,kbd:"#X",id:"TD-ContextMenu-Cut",children:(0,A.jsx)(Oe.FormattedMessage,{id:"cut"})}),(0,A.jsx)(ge,{onClick:b,kbd:"#C",id:"TD-ContextMenu-Copy",children:(0,A.jsx)(Oe.FormattedMessage,{id:"copy"})}),(0,A.jsx)(ge,{onClick:T,kbd:"#V",id:"TD-ContextMenu-Paste",children:(0,A.jsx)(Oe.FormattedMessage,{id:"paste"})}),(0,A.jsx)(Te,{}),(0,A.jsxs)(_i,{label:`${e.formatMessage({id:"copy.as"})}...`,size:"small",id:"TD-ContextMenu-Copy-As",children:[(0,A.jsx)(ge,{onClick:y,id:"TD-ContextMenu-Copy-as-SVG",children:"SVG"}),(0,A.jsx)(ge,{onClick:x,id:"TD-ContextMenu-Copy-As-PNG",children:"PNG"}),n&&(0,A.jsx)(ge,{onClick:L,id:"TD-ContextMenu-Copy_as_JSON",children:"JSON"})]}),(0,A.jsxs)(_i,{label:`${e.formatMessage({id:"export.as"})}...`,size:"small",id:"TD-ContextMenu-Export",children:[(0,A.jsx)(ge,{onClick:M,id:"TD-ContextMenu-Export-SVG",children:"SVG"}),(0,A.jsx)(ge,{onClick:D,id:"TD-ContextMenu-Export-PNG",children:"PNG"}),(0,A.jsx)(ge,{onClick:C,id:"TD-ContextMenu-Export-JPG",children:"JPG"}),(0,A.jsx)(ge,{onClick:E,id:"TD-ContextMenu-Export-WEBP",children:"WEBP"}),n&&(0,A.jsx)(ge,{onClick:V,id:"TD-ContextMenu-Export-JSON",children:"JSON"})]}),(0,A.jsx)(Te,{}),he&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(ge,{onClick:X,id:"TD-ContextMenu-Convert-To-Image",children:"Convert to Image"}),(0,A.jsx)(Te,{})]}),(0,A.jsx)(ge,{onClick:f,kbd:"\u232B",id:"TD-ContextMenu-Delete",children:(0,A.jsx)(Oe.FormattedMessage,{id:"delete"})})]}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(ge,{onClick:T,kbd:"#V",id:"TD-ContextMenu-Paste",children:(0,A.jsx)(Oe.FormattedMessage,{id:"paste"})}),(0,A.jsx)(ge,{onClick:P,kbd:"#Z",id:"TD-ContextMenu-Undo",children:(0,A.jsx)(Oe.FormattedMessage,{id:"undo"})}),(0,A.jsx)(ge,{onClick:k,kbd:"#\u21E7Z",id:"TD-ContextMenu-Redo",children:(0,A.jsx)(Oe.FormattedMessage,{id:"redo"})}),(0,A.jsxs)(_i,{label:`${e.formatMessage({id:"export.as"})}...`,size:"small",id:"TD-ContextMenu-Export",children:[(0,A.jsx)(ge,{onClick:M,id:"TD-ContextMenu-Export-SVG",children:"SVG"}),(0,A.jsx)(ge,{onClick:D,id:"TD-ContextMenu-Export-PNG",children:"PNG"}),(0,A.jsx)(ge,{onClick:C,id:"TD-ContextMenu-Export-JPG",children:"JPG"}),(0,A.jsx)(ge,{onClick:E,id:"TD-ContextMenu-Export-WEBP",children:"WEBP"}),n&&(0,A.jsx)(ge,{onClick:V,id:"TD-ContextMenu-Export-JSON",children:"JSON"})]})]})})});function Lm({hasThreeOrMore:i}){let o=_(),e=de.useCallback(()=>{o.align("top")},[o]),t=de.useCallback(()=>{o.align("centerVertical")},[o]),n=de.useCallback(()=>{o.align("bottom")},[o]),r=de.useCallback(()=>{o.stretch("vertical")},[o]),s=de.useCallback(()=>{o.distribute("vertical")},[o]),l=de.useCallback(()=>{o.align("left")},[o]),a=de.useCallback(()=>{o.align("centerHorizontal")},[o]),c=de.useCallback(()=>{o.align("right")},[o]),p=de.useCallback(()=>{o.stretch("horizontal")},[o]),u=de.useCallback(()=>{o.distribute("horizontal")},[o]),h=Sn();return(0,A.jsxs)(we.Sub,{children:[(0,A.jsx)(Va,{id:"TD-ContextMenu-Align-Distribute-Trigger",children:(0,A.jsx)(Oe.FormattedMessage,{id:"align.distribute"})}),(0,A.jsx)(we.Portal,{container:h.current,children:(0,A.jsx)(we.SubContent,{asChild:!0,sideOffset:4,alignOffset:-2,children:(0,A.jsxs)(Am,{numberOfSelected:i?"threeOrMore":"twoOrMore",children:[(0,A.jsx)(Mn,{onClick:l,id:"TD-ContextMenu-Align_Distribute-AlignLeft",children:(0,A.jsx)(Xe.AlignLeftIcon,{})}),(0,A.jsx)(Mn,{onClick:a,id:"TD-ContextMenu-Align_Distribute-AlignCenterHorizontal",children:(0,A.jsx)(Xe.AlignCenterHorizontallyIcon,{})}),(0,A.jsx)(Mn,{onClick:c,id:"TD-ContextMenu-Align_Distribute-AlignRight",children:(0,A.jsx)(Xe.AlignRightIcon,{})}),(0,A.jsx)(Mn,{onClick:p,id:"TD-ContextMenu-Align_Distribute-StretchHorizontal",children:(0,A.jsx)(Xe.StretchHorizontallyIcon,{})}),i&&(0,A.jsx)(Mn,{onClick:u,id:"TD-ContextMenu-Align_Distribute-SpaceEvenlyHorizontal",children:(0,A.jsx)(Xe.SpaceEvenlyHorizontallyIcon,{})}),(0,A.jsx)(Mn,{onClick:e,id:"TD-ContextMenu-Align_Distribute-AlignTop",children:(0,A.jsx)(Xe.AlignTopIcon,{})}),(0,A.jsx)(Mn,{onClick:t,id:"TD-ContextMenu-Align_Distribute-AlignCenterVertical",children:(0,A.jsx)(Xe.AlignCenterVerticallyIcon,{})}),(0,A.jsx)(Mn,{onClick:n,id:"TD-ContextMenu-Align_Distribute-AlignBottom",children:(0,A.jsx)(Xe.AlignBottomIcon,{})}),(0,A.jsx)(Mn,{onClick:r,id:"TD-ContextMenu-Align_Distribute-StretchVertical",children:(0,A.jsx)(Xe.StretchVerticallyIcon,{})}),i&&(0,A.jsx)(Mn,{onClick:s,id:"TD-ContextMenu-Align_Distribute-SpaceEvenlyVertical",children:(0,A.jsx)(Xe.SpaceEvenlyVerticallyIcon,{})}),(0,A.jsx)(Aa,{offset:13})]})})})]})}var Am=R(Kn,{display:"grid",variants:{numberOfSelected:{threeOrMore:{gridTemplateColumns:"repeat(5, auto)"},twoOrMore:{gridTemplateColumns:"repeat(4, auto)"}}}}),Vm=i=>i.appState.currentPageId,Hm=i=>i.document.pages;function zm(){let i=_(),o=i.useStore(Vm),e=i.useStore(Hm),t=Object.values(e).sort((r,s)=>(r.childIndex||0)-(s.childIndex||0)).filter(r=>r.id!==o),n=Sn();return t.length===0?null:(0,A.jsxs)(we.Sub,{children:[(0,A.jsx)(Va,{children:(0,A.jsx)(Oe.FormattedMessage,{id:"move.to.page"})}),(0,A.jsx)(we.Portal,{container:n.current,children:(0,A.jsx)(we.SubContent,{sideOffset:4,alignOffset:-2,asChild:!0,children:(0,A.jsxs)(Kn,{children:[t.map(({id:r,name:s},l)=>(0,A.jsx)(ge,{disabled:r===o,onClick:()=>i.moveToPage(r),children:s||`Page ${l}`},r)),(0,A.jsx)(Aa,{offset:13})]})})})]})}function _i({children:i,label:o,size:e,id:t}){let n=Sn();return(0,A.jsxs)(we.Sub,{children:[(0,A.jsx)(Va,{children:o}),(0,A.jsx)(we.Portal,{container:n.current,children:(0,A.jsx)(we.SubContent,{sideOffset:4,alignOffset:-2,asChild:!0,children:(0,A.jsxs)(Kn,{size:e,children:[i,(0,A.jsx)(Aa,{offset:13})]})})})]})}var Aa=R(we.ContextMenuArrow,{fill:"$panel"});function Mn(e){var t=e,{onSelect:i}=t,o=Ae(t,["onSelect"]);return(0,A.jsx)(we.ContextMenuItem,{dir:"ltr",onSelect:i,asChild:!0,children:(0,A.jsx)(Rt,S({},o))})}var ge=e=>{var t=e,{id:i}=t,o=Ae(t,["id"]);return(0,A.jsx)(we.ContextMenuItem,{asChild:!0,id:i,children:(0,A.jsx)(st,S({},o))})},Va=e=>{var t=e,{id:i}=t,o=Ae(t,["id"]);return(0,A.jsx)(we.SubTrigger,{asChild:!0,id:i,children:(0,A.jsx)(st,S({hasArrow:!0},o))})},Ha=de.memo(Bm);var Xt=require("react/jsx-runtime");function za({error:i,resetErrorBoundary:o}){let e=_(),t=()=>{window.location.reload(),o()},n=()=>{let l=document.createElement("textarea");l.value=i.message,document.body.appendChild(l),l.select(),document.execCommand("copy"),l.remove()},r=()=>{e.saveProjectAs()},s=()=>{e.resetDocument(),o()};return(0,Xt.jsx)(Fm,{children:(0,Xt.jsxs)(Om,{children:[(0,Xt.jsx)("div",{children:"We've encountered an error!"}),(0,Xt.jsx)("pre",{children:(0,Xt.jsx)("code",{children:i.message})}),(0,Xt.jsxs)($m,{children:[(0,Xt.jsx)(st,{onClick:n,children:"Copy Error"}),(0,Xt.jsx)(st,{onClick:t,children:"Refresh Page"})]}),(0,Xt.jsx)(Te,{}),(0,Xt.jsxs)("p",{children:["Keep getting this error?"," ",(0,Xt.jsx)("a",{onClick:r,title:"Download your project",children:"Download your project"})," ","as a backup and then"," ",(0,Xt.jsx)("a",{onClick:s,title:"Reset the document",children:"reset the document"}),"."]})]})})}var Fm=R("div",{position:"absolute",top:0,left:0,width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"$canvas"}),Om=R("div",{backgroundColor:"$panel",border:"1px solid $panelContrast",padding:"$5",borderRadius:8,boxShadow:"$panel",maxWidth:320,color:"$text",fontFamily:"$ui",fontSize:"$2",textAlign:"center",display:"flex",flexDirection:"column",gap:"$3","& > pre":{marginTop:"$3",marginBottom:"$3",textAlign:"left",whiteSpace:"pre-wrap",backgroundColor:"$hover",padding:"$4",borderRadius:"$2",fontFamily:'"Menlo", "Monaco", monospace',fontWeight:500},"& p":{fontFamily:"$body",lineHeight:1.7,padding:"$5",margin:0},"& a":{color:"$text",cursor:"pointer",textDecoration:"underline"},"& hr":{marginLeft:"-$5",marginRight:"-$5"}}),$m=R("div",{display:"flex","& > button > div":{justifyContent:"center",textAlign:"center"}});var nn=require("@radix-ui/react-icons"),Tt=H(require("react"));var ar=H(require("react")),oc=require("telva-core");var Yi=H(require("react")),Fa=Yi.createContext([]);function Xi(){return Yi.useContext(Fa)}var Dt=require("react/jsx-runtime"),rc=ar.memo(function(){let o=_(),e=Xi(),[t,n]=ar.useState(null),r=ar.useCallback(s=>{n(s.id);try{let[l,a]=s.defaultSize,c=o.getPagePoint([window.innerWidth/2-l/2,window.innerHeight/2-a/2]),p=oc.Utils.uniqueId();o.createShapes({id:p,type:"reactComponent",name:s.name,point:c,size:[l,a],componentId:s.id,style:{color:"black",size:"small",dash:"draw"}}),o.select(p)}catch(l){console.error("Failed to import component:",l)}finally{n(null)}},[o]);return(0,Dt.jsxs)(Gm,{children:[e.length===0?(0,Dt.jsxs)(jm,{children:["No components registered.",(0,Dt.jsx)("br",{}),"Add components in ",(0,Dt.jsx)("code",{children:"apps/www/react/registry.tsx"})]}):e.map(s=>(0,Dt.jsxs)(Wm,{children:[(0,Dt.jsx)(Nm,{style:{background:s.previewColor||"#6366f1"},children:(0,Dt.jsx)("span",{children:"<"+s.name+" />"})}),(0,Dt.jsxs)(Um,{children:[(0,Dt.jsx)(Km,{children:s.name}),(0,Dt.jsx)(_m,{children:s.description}),(0,Dt.jsx)(Ym,{children:s.sourcePath})]}),(0,Dt.jsx)(Xm,{onClick:()=>r(s),disabled:t===s.id,children:t===s.id?"...":"Import"})]},s.id)),(0,Dt.jsxs)(Zm,{children:["Components render LIVE on your canvas.",(0,Dt.jsx)("br",{})]})]})}),Gm=R("div",{flex:1,padding:"6px",overflowY:"auto","&::-webkit-scrollbar":{width:"3px"},"&::-webkit-scrollbar-thumb":{background:"$separator",borderRadius:"2px"}}),jm=R("div",{padding:"16px 8px",fontSize:"10px",color:"$textSecondary",textAlign:"center",lineHeight:1.5,"& code":{fontSize:"9px",background:"$inputBg",padding:"1px 4px",borderRadius:"$0"}}),Wm=R("div",{display:"flex",alignItems:"center",gap:"6px",padding:"6px",borderRadius:"$2",border:"1px solid $separator",marginBottom:"4px",transition:"background 0.08s","&:hover":{background:"$hover"}}),Nm=R("div",{width:"36px",height:"36px",borderRadius:"$1",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,"& span":{fontSize:"7px",color:"rgba(255,255,255,0.8)",fontFamily:"$mono"}}),Um=R("div",{flex:1,minWidth:0}),Km=R("div",{fontSize:"10px",fontWeight:600,color:"$text",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}),_m=R("div",{fontSize:"9px",color:"$textSecondary",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}),Ym=R("div",{fontSize:"8px",color:"$textSecondary",opacity:.6,fontFamily:"$mono",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}),Xm=R("button",{all:"unset",fontSize:"9px",fontWeight:600,color:"white",background:"$accent",padding:"3px 8px",borderRadius:"$1",cursor:"pointer",flexShrink:0,transition:"opacity 0.1s","&:hover":{opacity:.85},"&:disabled":{opacity:.5,cursor:"not-allowed"}}),Zm=R("div",{padding:"10px 6px",fontSize:"8px",color:"$textSecondary",lineHeight:1.4,borderTop:"1px solid $separator",marginTop:"6px","& code":{fontSize:"8px",background:"$inputBg",padding:"1px 3px",borderRadius:"$0"}});var K=require("react/jsx-runtime"),qm=i=>{let o=i.document.pages[i.appState.currentPageId];return Object.values(o.shapes).sort((e,t)=>t.childIndex-e.childIndex)},Jm=i=>i.document.pageStates[i.appState.currentPageId].selectedIds,ic={["draw"]:(0,K.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 15 15",fill:"none",children:(0,K.jsx)("path",{d:"M2 12C4 8 8 4 10 6C12 8 13 3 13 3",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",fill:"none"})}),["rectangle"]:(0,K.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 15 15",fill:"none",children:(0,K.jsx)("rect",{x:"2",y:"3",width:"11",height:"9",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"})}),["ellipse"]:(0,K.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 15 15",fill:"none",children:(0,K.jsx)("ellipse",{cx:"7.5",cy:"7.5",rx:"5.5",ry:"4.5",stroke:"currentColor",strokeWidth:"1.2",fill:"none"})}),["triangle"]:(0,K.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 15 15",fill:"none",children:(0,K.jsx)("path",{d:"M7.5 2L13 13H2L7.5 2Z",stroke:"currentColor",strokeWidth:"1.2",fill:"none"})}),["arrow"]:(0,K.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 15 15",fill:"none",children:(0,K.jsx)("path",{d:"M3 12L12 3M12 3H6M12 3V9",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round"})}),["text"]:(0,K.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 15 15",fill:"none",children:(0,K.jsx)("path",{d:"M3 3H12M7.5 3V12",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})}),["sticky"]:(0,K.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 15 15",fill:"none",children:[(0,K.jsx)("rect",{x:"2",y:"2",width:"11",height:"11",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,K.jsx)("path",{d:"M5 6H10M5 9H8",stroke:"currentColor",strokeWidth:"0.8"})]}),["line"]:(0,K.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 15 15",fill:"none",children:(0,K.jsx)("line",{x1:"2",y1:"13",x2:"13",y2:"2",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})}),["image"]:(0,K.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 15 15",fill:"none",children:[(0,K.jsx)("rect",{x:"2",y:"3",width:"11",height:"9",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,K.jsx)("circle",{cx:"5",cy:"6",r:"1",fill:"currentColor"})]}),["video"]:(0,K.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 15 15",fill:"none",children:[(0,K.jsx)("rect",{x:"2",y:"3",width:"11",height:"9",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,K.jsx)("path",{d:"M6 6V9L9 7.5L6 6Z",fill:"currentColor"})]}),["group"]:(0,K.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 15 15",fill:"none",children:[(0,K.jsx)("rect",{x:"1",y:"4",width:"8",height:"7",rx:"1",stroke:"currentColor",strokeWidth:"1",fill:"none"}),(0,K.jsx)("rect",{x:"5",y:"2",width:"8",height:"7",rx:"1",stroke:"currentColor",strokeWidth:"1",fill:"none"})]})},Oa=Tt.memo(function(){let[o,e]=Tt.useState("layers");return(0,K.jsxs)(eg,{onPointerDown:t=>t.stopPropagation(),onPointerUp:t=>t.stopPropagation(),onClick:t=>t.stopPropagation(),children:[(0,K.jsxs)(tg,{children:[(0,K.jsx)(sc,{isActive:o==="layers",onClick:()=>e("layers"),children:"Layers"}),(0,K.jsx)(sc,{isActive:o==="components",onClick:()=>e("components"),children:"Components"})]}),o==="layers"?(0,K.jsx)(Qm,{}):(0,K.jsx)(rc,{})]})});function Qm(){let i=_(),o=i.useStore(qm),e=i.useStore(Jm),[t,n]=Tt.useState(null),r=Tt.useRef(null),s=Tt.useMemo(()=>o.filter(a=>a.parentId===i.currentPageId),[o,i.currentPageId]),l=Tt.useCallback((a,c,p)=>{if(a===c)return;let u=[...s],h=u.findIndex(T=>T.id===a);if(h===-1)return;let g=u.filter(T=>T.id!==a),m=g.findIndex(T=>T.id===c);if(m===-1)return;let f=p==="before"?m:m+1;g.splice(f,0,u[h]);let v=g.length,b={};g.forEach((T,y)=>{b[T.id]={childIndex:v-y}}),i.patchState({document:{pages:{[i.currentPageId]:{shapes:b}}}},"reorder_layers")},[s,i]);return(0,K.jsx)(ng,{onDragOver:a=>a.preventDefault(),onDrop:()=>{r.current=null,n(null)},children:s.length===0?(0,K.jsx)(og,{children:"No elements on canvas"}):s.map(a=>(0,K.jsx)(lc,{shape:a,allShapes:o,selectedIds:e,app:i,depth:0,dragOverInfo:t,onLayerDragStart:c=>{r.current=c},onLayerDragOver:(c,p)=>n({id:c,position:p}),onLayerDrop:(c,p)=>{r.current&&l(r.current,c,p),r.current=null,n(null)},onLayerDragEnd:()=>{r.current=null,n(null)}},a.id))})}function lc({shape:i,allShapes:o,selectedIds:e,app:t,depth:n,dragOverInfo:r,onLayerDragStart:s,onLayerDragOver:l,onLayerDrop:a,onLayerDragEnd:c}){let p=e.includes(i.id),h=i.type==="group"?i.children||[]:[],g=h.length>0,[m,f]=Tt.useState(!0),v=Tt.useCallback(C=>{C.stopPropagation(),C.shiftKey?p?t.deselect(i.id):t.select(...e,i.id):t.select(i.id)},[t,i.id,e,p]),b=Tt.useCallback(C=>{C.stopPropagation(),t.toggleHidden([i.id])},[t,i.id]),T=Tt.useCallback(C=>{C.stopPropagation(),t.toggleLocked([i.id])},[t,i.id]),y=ic[i.type]||ic["rectangle"],x=i.name||i.type,P=Tt.useMemo(()=>g?h.map(C=>o.find(E=>E.id===C)).filter(Boolean):[],[g,h,o]),D=(r==null?void 0:r.id)===i.id?r.position==="before"?{borderTop:"2px solid #0D99FF"}:{borderBottom:"2px solid #0D99FF"}:{};return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(dc,{draggable:!!s,onClick:v,isSelected:p,style:S({paddingLeft:`${8+n*14}px`,cursor:s?"grab":"pointer"},D),onDragStart:C=>{C.stopPropagation(),C.dataTransfer.effectAllowed="move",s==null||s(i.id)},onDragOver:C=>{C.preventDefault(),C.stopPropagation();let E=C.currentTarget.getBoundingClientRect(),M=C.clientY<E.top+E.height/2?"before":"after";l==null||l(i.id,M)},onDrop:C=>{C.preventDefault(),C.stopPropagation();let E=C.currentTarget.getBoundingClientRect(),M=C.clientY<E.top+E.height/2?"before":"after";a==null||a(i.id,M)},onDragEnd:C=>{C.stopPropagation(),c==null||c()},children:[g?(0,K.jsx)(rg,{onClick:C=>{C.stopPropagation(),f(!m)},children:m?(0,K.jsx)(nn.ChevronDownIcon,{}):(0,K.jsx)(nn.ChevronRightIcon,{})}):(0,K.jsx)(ig,{}),(0,K.jsx)(sg,{children:y}),(0,K.jsx)(ag,{children:x}),(0,K.jsxs)(lg,{children:[(0,K.jsx)(ac,{onClick:b,children:i.isHidden?(0,K.jsx)(nn.EyeClosedIcon,{}):(0,K.jsx)(nn.EyeOpenIcon,{})}),(0,K.jsx)(ac,{onClick:T,children:i.isLocked?(0,K.jsx)(nn.LockClosedIcon,{}):(0,K.jsx)(nn.LockOpen1Icon,{})})]})]}),g&&m&&(0,K.jsx)(dg,{children:P.map(C=>(0,K.jsx)(lc,{shape:C,allShapes:o,selectedIds:e,app:t,depth:n+1},C.id))})]})}var eg=R("div",{display:"flex",flexDirection:"column",flex:1,minHeight:0,overflow:"hidden"}),tg=R("div",{display:"flex",borderBottom:"1px solid $separator",flexShrink:0}),sc=R("button",{all:"unset",flex:1,padding:"6px 0",fontSize:"9px",fontWeight:600,textAlign:"center",color:"$textSecondary",cursor:"pointer",textTransform:"uppercase",letterSpacing:"0.06em",transition:"all 0.1s",borderBottom:"2px solid transparent","&:hover":{color:"$text"},variants:{isActive:{true:{color:"$accent",borderBottomColor:"$accent"}}}}),ng=R("div",{flex:1,overflowY:"auto",overflowX:"hidden","&::-webkit-scrollbar":{width:"3px"},"&::-webkit-scrollbar-thumb":{background:"$separator",borderRadius:"2px"}}),og=R("div",{padding:"16px 12px",fontSize:"10px",color:"$textSecondary",fontStyle:"italic",textAlign:"center"}),dc=R("div",{display:"flex",alignItems:"center",gap:"4px",height:"26px",paddingRight:"6px",cursor:"pointer",transition:"background 0.08s","&:hover":{background:"$hover"},variants:{isSelected:{true:{background:"rgba(13, 153, 255, 0.15)","&:hover":{background:"rgba(13, 153, 255, 0.2)"}}}}}),rg=R("button",{all:"unset",display:"flex",alignItems:"center",justifyContent:"center",width:"14px",height:"14px",cursor:"pointer",color:"$textSecondary",flexShrink:0,"& svg":{width:"10px",height:"10px"},"&:hover":{color:"$text"}}),ig=R("div",{width:"14px",flexShrink:0}),sg=R("div",{display:"flex",alignItems:"center",justifyContent:"center",width:"14px",height:"14px",color:"$textSecondary",flexShrink:0}),ag=R("span",{fontSize:"10px",color:"$text",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",flex:1,fontWeight:500}),lg=R("div",{display:"flex",gap:"1px",opacity:0,transition:"opacity 0.1s",[`${dc}:hover &`]:{opacity:1}}),ac=R("button",{all:"unset",display:"flex",alignItems:"center",justifyContent:"center",width:"18px",height:"18px",borderRadius:"$0",color:"$textSecondary",cursor:"pointer","& svg":{width:"10px",height:"10px"},"&:hover":{color:"$text",background:"$hover"}}),dg=R("div",{borderLeft:"1px solid $separator",marginLeft:"18px"});var pc=H(require("react"));var cc=require("react/jsx-runtime"),$a=pc.memo(function(){return(0,cc.jsx)(cg,{children:(0,cc.jsx)(Oa,{})})}),cg=R("div",{display:"flex",flexDirection:"column",width:"200px",height:"100%",background:"$panel",borderRight:"1px solid $separator",zIndex:200,pointerEvents:"all",overflow:"hidden",flexShrink:0});var hc=require("react-intl");var uc=require("react/jsx-runtime"),pg=i=>i.appState.isLoading;function Ga(){let o=_().useStore(pg);return(0,uc.jsx)(ug,{hidden:!o,children:(0,uc.jsx)(hc.FormattedMessage,{id:"loading",values:{dots:"..."}})})}var ug=R("div",{position:"absolute",top:0,left:"50%",transform:"translate(-50%, 0)",borderBottomLeftRadius:"12px",borderBottomRightRadius:"12px",padding:"8px 16px",fontFamily:"var(--fonts-ui)",fontSize:"var(--fontSizes-1)",boxShadow:"var(--shadows-panel)",backgroundColor:"white",zIndex:200,pointerEvents:"none","& > div > *":{pointerEvents:"all"},variants:{transform:{hidden:{transform:"translate(-50%, 100%)"},visible:{transform:"translate(-50%, 0%)"}}}});var Et=H(require("@radix-ui/react-alert-dialog")),lr=require("react-intl");var at=require("react/jsx-runtime");function hg({children:i,onClose:o,container:e}){return(0,at.jsxs)(Et.Portal,{container:e,children:[(0,at.jsx)(bg,{}),(0,at.jsx)(vg,{onKeyDown:n=>{switch(n.key){case"Escape":o==null||o();break}},children:i})]})}var mg=R(Et.Description,{marginBottom:20,color:"$text",fontSize:"$2",lineHeight:1.5,textAlign:"center",maxWidth:"62%",minWidth:0,alignSelf:"center"}),gg=Et.Root,fg=hg,Sg=mg,mc=Et.Action,yg=Et.Cancel,gc=({container:i})=>{let{setDialogState:o,dialogState:e,onCancel:t,onNo:n,onYes:r}=Oi(),s=(0,lr.useIntl)(),l={saveFirstTime:s.formatMessage({id:"dialog.save.firsttime"}),saveAgain:s.formatMessage({id:"dialog.save.again"})};return(0,at.jsx)(gg,{open:e!==null,children:(0,at.jsxs)(fg,{onClose:()=>o(null),container:i,children:[e&&(0,at.jsx)(Sg,{children:l[e]}),(0,at.jsxs)("div",{style:{width:"100%",gap:"$6",display:"flex",justifyContent:"space-between"},children:[t&&(0,at.jsx)(yg,{asChild:!0,children:(0,at.jsx)(dr,{css:{color:"$text"},onClick:()=>{t(),o(null)},children:(0,at.jsx)(lr.FormattedMessage,{id:"dialog.cancel"})})}),(0,at.jsxs)("div",{style:{flexShrink:0},children:[n&&(0,at.jsx)(mc,{asChild:!0,children:(0,at.jsx)(dr,{onClick:()=>{n(),o(null)},children:(0,at.jsx)(lr.FormattedMessage,{id:"dialog.no"})})}),r&&(0,at.jsx)(mc,{asChild:!0,children:(0,at.jsx)(dr,{css:{backgroundColor:"#2F80ED",color:"White"},onClick:()=>{r(),o(null)},children:(0,at.jsx)(lr.FormattedMessage,{id:"dialog.yes"})})})]})]})]})})},bg=R(Et.Overlay,{position:"fixed",inset:0,backgroundColor:"rgba(0, 0, 0, .15)",pointerEvents:"all"}),_0=R(Et.Overlay,{backgroundColor:"rgba(0, 0, 0, .15)",position:"absolute",pointerEvents:"all",inset:0}),vg=R(Et.Content,{position:"fixed",font:"$ui",top:"50%",left:"50%",transform:"translate(-50%, -50%)",width:"max-content",padding:"$3",pointerEvents:"all",backgroundColor:"$panel",borderRadius:"$3",display:"flex",flexDirection:"column",justifyContent:"center",fontFamily:"$ui",border:"1px solid $panelContrast",boxShadow:"$panel"}),dr=R("button",{all:"unset",display:"inline-flex",alignItems:"center",justifyContent:"center",borderRadius:"$2",padding:"0 15px",fontSize:"$1",lineHeight:1,fontWeight:"normal",height:36,color:"$text",cursor:"pointer",minWidth:48});var bn=H(require("@radix-ui/react-alert-dialog")),yc=require("@radix-ui/react-icons"),cr=H(require("react")),ri=require("react-intl");var fc=H(require("react"));var Zi=require("react/jsx-runtime"),qi=fc.forwardRef((t,e)=>{var n=t,{icon:i}=n,o=Ae(n,["icon"]);return(0,Zi.jsxs)(Tg,{children:[(0,Zi.jsx)(xg,I(S({},o),{ref:e})),i?(0,Zi.jsx)(kg,{children:i}):null]})}),Tg=R("div",{position:"relative",width:"100%",height:"min-content"}),xg=R("input",{color:"$text",border:"none",textAlign:"left",width:"100%",paddingLeft:"$3",paddingRight:"$6",backgroundColor:"$background",height:"32px",outline:"none",fontFamily:"$ui",fontSize:"$1","&:focus":{backgroundColor:"$hover"},borderRadius:"$2"}),kg=R(Ft,{top:0,right:0,position:"absolute",paddingLeft:"$3",paddingRight:"$3",pointerEvents:"none",color:"$text"});var lt=require("react/jsx-runtime"),bc=({isOpen:i,onClose:o})=>{let e=_(),t=Sn(),n=(0,ri.useIntl)(),[r,s]=cr.useState(e.document.name),[l,a]=cr.useState("tldr"),c=cr.useCallback(h=>{let g=h.target.value.trimStart();s(g)},[]);function p(h){h.stopPropagation()}let u=cr.useCallback(h=>{switch(h.key){case"Enter":{let g=r.trim().replace(/\.(tldr|tld)$/,"");e.saveProjectAs(g,l),o();break}case"Escape":{o();break}}},[r,l]);return(0,lt.jsx)(bn.Root,{open:i,children:(0,lt.jsxs)(bn.Portal,{container:t.current,children:[(0,lt.jsx)(wg,{onPointerDown:o}),(0,lt.jsxs)(Cg,{dir:"ltr",onKeyDown:p,onKeyUp:p,children:[(0,lt.jsx)(Pg,{placeholder:n.formatMessage({id:"enter.file.name"}),value:r,onChange:c,onKeyDown:u,icon:(0,lt.jsx)(yc.Pencil1Icon,{})}),(0,lt.jsxs)(Rg,{children:[(0,lt.jsx)(Dg,{children:"Format:"}),(0,lt.jsx)(Sc,{active:l==="tldr",onClick:()=>a("tldr"),children:".tldr"}),(0,lt.jsx)(Sc,{active:l==="tld",onClick:()=>a("tld"),children:".tld"})]}),(0,lt.jsxs)(Ig,{children:[(0,lt.jsx)(bn.Action,{asChild:!0,children:(0,lt.jsx)(dr,{onClick:o,children:(0,lt.jsx)(ri.FormattedMessage,{id:"cancel"})})}),(0,lt.jsx)(bn.Action,{asChild:!0,children:(0,lt.jsx)(dr,{css:{backgroundColor:"#2F80ED",color:"White"},onClick:()=>{let h=r.trim().replace(/\.(tldr|tld)$/,"");e.saveProjectAs(h,l),o()},children:(0,lt.jsx)(ri.FormattedMessage,{id:"save"})})})]})]})]})})},Cg=R(bn.Content,{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",minWidth:300,maxWidth:"fit-content",maxHeight:"85vh",marginTop:"-5vh",pointerEvents:"all",backgroundColor:"$panel",padding:"$3",borderRadius:"$2",font:"$ui",zIndex:999999,"&:focus":{outline:"none"}}),wg=R(bn.Overlay,{backgroundColor:"rgba(0, 0, 0, .15)",position:"absolute",pointerEvents:"all",inset:0,zIndex:999998}),Ig=R("div",{width:"100%",display:"flex",alignItems:"center",gap:8,justifyContent:"flex-end",marginTop:10}),Pg=R(qi,{background:"$hover"}),Rg=R("div",{display:"flex",alignItems:"center",gap:6,marginTop:8}),Dg=R("span",{fontSize:11,color:"$textSecondary",flexShrink:0}),Sc=R("button",{all:"unset",padding:"3px 10px",borderRadius:4,fontSize:11,fontFamily:"monospace",cursor:"pointer",border:"1px solid $separator",color:"$textSecondary",transition:"all 0.1s","&:hover":{background:"$hover",color:"$text"},variants:{active:{true:{background:"#2F80ED",borderColor:"#2F80ED",color:"white","&:hover":{background:"#2F80ED",color:"white"}}}}});var Jp=H(require("react"));var Re=H(require("react")),Ti=require("telva-core");var ja=require("telva-core");function Ot(i,o){let e=ja.Utils.getFromCache(o,i,()=>{let[t,n]=i.size;return{minX:0,maxX:t,minY:0,maxY:n,width:t,height:n}});return ja.Utils.translateBounds(e,i.point)}var Eg={["start"]:"left",["middle"]:"center",["end"]:"right",["justify"]:"justify"};function vc(i="start"){return Eg[i]}var on="-0.03em";var pr=[.5,.5],h1=Math.PI*2,Wa=".tldr",Mo={linear:i=>i,easeInQuad:i=>i*i,easeOutQuad:i=>i*(2-i),easeInOutQuad:i=>i<.5?2*i*i:-1+(4-2*i)*i,easeInCubic:i=>i*i*i,easeOutCubic:i=>--i*i*i+1,easeInOutCubic:i=>i<.5?4*i*i*i:(i-1)*(2*i-2)*(2*i-2)+1,easeInQuart:i=>i*i*i*i,easeOutQuart:i=>1- --i*i*i*i,easeInOutQuart:i=>i<.5?8*i*i*i*i:1-8*--i*i*i*i,easeInQuint:i=>i*i*i*i*i,easeOutQuint:i=>1+--i*i*i*i*i,easeInOutQuint:i=>i<.5?16*i*i*i*i*i:1+16*--i*i*i*i*i,easeInSine:i=>1-Math.cos(i*Math.PI/2),easeOutSine:i=>Math.sin(i*Math.PI/2),easeInOutSine:i=>-(Math.cos(Math.PI*i)-1)/2,easeInExpo:i=>i<=0?0:Math.pow(2,10*i-10),easeOutExpo:i=>i>=1?1:1-Math.pow(2,-10*i),easeInOutExpo:i=>i<=0?0:i>=1?1:i<.5?Math.pow(2,20*i-10)/2:(2-Math.pow(2,-20*i+10))/2};var Ji=["#EC5E41","#F2555A","#F04F88","#E34BA9","#BD54C6","#9D5BD2","#7B66DC","#02B1CC","#11B3A3","#39B178","#55B467","#FF802B"],Bg=typeof Window=="undefined"?!1:/^((?!chrome|android).)*safari/i.test(navigator.userAgent),Tc=typeof Window=="undefined"?!1:/linux/i.test(navigator.userAgent),Qi=[".png",".svg",".jpg",".jpeg",".gif"],es=Bg?[]:[".mp4",".webm"];var $t;function Mg(){var o;(o=document.getElementById("__textLabelMeasure"))==null||o.remove();let i=document.createElement("pre");return i.id="__textLabelMeasure",Object.assign(i.style,{whiteSpace:"pre",width:"auto",border:"1px solid transparent",padding:"4px",margin:"0px",letterSpacing:on,opacity:"0",position:"absolute",top:"-500px",left:"0px",zIndex:"9999",pointerEvents:"none",userSelect:"none","-webkit-user-select":"none",alignmentBaseline:"mathematical",dominantBaseline:"mathematical"}),i.tabIndex=-1,document.body.appendChild(i),i}typeof window!="undefined"&&($t=Mg());var Lg="";function xc(){Lg=""}function lo(i,o,e){if(!i)return[16,32];if(!$t)return[10,10];$t.parent||document.body.appendChild($t),$t.textContent=i,$t.style.font=o,e?($t.style.whiteSpace="pre-wrap",$t.style.wordBreak="break-word",$t.style.width=`${e}px`):($t.style.whiteSpace="pre",$t.style.wordBreak="normal",$t.style.width="auto");let t=$t.offsetWidth||1,n=$t.offsetHeight||1;return[t,n]}var Ag=new RegExp(`${[32,160,4961,65792,65793,4153,4241].map(i=>String.fromCodePoint(i)).join("|")}`);function co(i,o,e,t,n,r=!1){let s="normal",a=on,c=Vg({text:i,wrap:r,width:n,fontSize:o,fontWeight:s,fontFamily:e,fontStyle:"normal",textAlign:"left",letterSpacing:on,lineHeight:1}),p=document.createElementNS("http://www.w3.org/2000/svg","text");p.setAttribute("font-size",o+"px"),p.setAttribute("font-family",e),p.setAttribute("font-weight",s),p.setAttribute("line-height",1*o+"px"),p.setAttribute("letter-spacing",a),p.setAttribute("text-align",t!=null?t:"left"),p.setAttribute("dominant-baseline","mathematical"),p.setAttribute("alignment-baseline","mathematical");let u=c.map((h,g)=>{let m=document.createElementNS("http://www.w3.org/2000/svg","tspan");return m.textContent=h+`
3
+ 0px 0px 8px -4px rgba(0, 0, 0, 0.3)`}});var qr=R("div",{backgroundColor:"$panel",display:"flex",alignItems:"center",flexDirection:"row",padding:"$2",border:"1px solid $panelContrast",gap:0,overflow:"hidden",variants:{side:{center:{borderRadius:9},left:{padding:0,borderTop:0,borderLeft:0,borderTopRightRadius:0,borderBottomRightRadius:9,borderBottomLeftRadius:0},right:{padding:0,borderTop:0,borderRight:0,borderTopLeftRadius:0,borderBottomLeftRadius:9,borderBottomRightRadius:0}}},"& hr":{height:10,width:"100%",backgroundColor:"red",border:"none"}});var oi=H(require("react"));var Dn=H(require("@radix-ui/react-tooltip"));var ud=require("telva-core");var pd=require("react/jsx-runtime"),zh=()=>ud.Utils.isDarwin()?"\u2318":"Ctrl";function Hi({variant:i,children:o}){return(0,pd.jsx)(Fh,{variant:i,children:o.split("").map((e,t)=>(0,pd.jsx)("span",{children:e.replace("#",zh())},t))})}var Fh=R("kbd",{marginLeft:"$3",textShadow:"$2",textAlign:"center",fontSize:"$0",fontFamily:"$ui",color:"$text",background:"none",fontWeight:400,gap:"$1",display:"flex",alignItems:"center","& > span":{padding:"$0",borderRadius:"$0",display:"flex",alignItems:"center",justifyContent:"center"},variants:{variant:{tooltip:{"& > span":{color:"$tooltipContrast",background:"$overlayContrast",boxShadow:"$key",width:"20px",height:"20px"}},menu:{}}}});var Nn=require("react/jsx-runtime");function zi({children:i,label:o,kbd:e,id:t,side:n="top"}){return(0,Nn.jsx)("span",{id:t,children:(0,Nn.jsx)(Dn.Provider,{children:(0,Nn.jsxs)(Dn.Root,{children:[(0,Nn.jsx)(Dn.Trigger,{dir:"ltr",asChild:!0,children:(0,Nn.jsx)("span",{children:i})}),(0,Nn.jsxs)(Oh,{dir:"ltr",side:n,sideOffset:8,children:[o,e?(0,Nn.jsx)(Hi,{variant:"tooltip",children:e}):null,(0,Nn.jsx)($h,{})]})]})})})}var Oh=R(Dn.Content,{borderRadius:3,padding:"$3 $3 $3 $3",fontSize:"$1",backgroundColor:"$tooltip",color:"$tooltipContrast",boxShadow:"$3",display:"flex",alignItems:"center",fontFamily:"$ui",userSelect:"none",WebkitUserSelect:"none"}),$h=R(Dn.Arrow,{fill:"$tooltip",margin:"0 8px"});var fn={"@initial":"mobile","@micro":"micro","@sm":"small","@md":"medium","@lg":"large"};var nr=H(require("react"));function hd(){let i=nr.useCallback((r,s)=>F(this,null,function*(){s(r.fileSystemHandle?"saveFirstTime":"saveAgain",()=>F(this,null,function*(){try{yield r.saveProject(),r.newProject()}catch(l){}}),()=>F(this,null,function*(){r.newProject()}),()=>F(this,null,function*(){}))}),[]),o=nr.useCallback((r,s)=>F(this,null,function*(){if(!r.fileSystemHandle&&!r.isDirty){r.openProject();return}s(r.fileSystemHandle?"saveFirstTime":"saveAgain",()=>F(this,null,function*(){try{yield r.saveProject(),yield r.openProject()}catch(l){}}),()=>F(this,null,function*(){r.openProject()}),()=>F(this,null,function*(){}))}),[]),e=nr.useCallback(r=>{r.saveProject()},[]),t=nr.useCallback(r=>{r.saveProjectAs()},[]),n=nr.useCallback(r=>F(this,null,function*(){var s;(s=r.openAsset)==null||s.call(r)}),[]);return{onNewProject:i,onSaveProject:e,onSaveProjectAs:t,onOpenProject:o,onOpenMedia:n}}var or=H(require("react"));function Fi(){let i=_(),{openDialog:o}=Oi(),e=or.useCallback(l=>F(this,null,function*(){var a,c;l&&i.callbacks.onOpenProject&&l.preventDefault(),(c=(a=i.callbacks).onNewProject)==null||c.call(a,i,o)}),[i,o]),t=or.useCallback(l=>{var a,c;l&&i.callbacks.onOpenProject&&l.preventDefault(),(c=(a=i.callbacks).onSaveProject)==null||c.call(a,i)},[i]),n=or.useCallback(l=>{var a,c;l&&i.callbacks.onOpenProject&&l.preventDefault(),(c=(a=i.callbacks).onSaveProjectAs)==null||c.call(a,i)},[i]),r=or.useCallback(l=>F(this,null,function*(){var a,c;l&&i.callbacks.onOpenProject&&l.preventDefault(),(c=(a=i.callbacks).onOpenProject)==null||c.call(a,i,o)}),[i,o]),s=or.useCallback(l=>F(this,null,function*(){var a,c;l&&i.callbacks.onOpenMedia&&l.preventDefault(),(c=(a=i.callbacks).onOpenMedia)==null||c.call(a,i)}),[i]);return{onNewProject:e,onSaveProject:t,onSaveProjectAs:n,onOpenProject:r,onOpenMedia:s}}var Ni=H(require("react")),W=require("react-hotkeys-hook");var Jr=class{constructor(){d(this,"onPinchStart");d(this,"onPinchEnd");d(this,"onPinch");d(this,"onKeyDown");d(this,"onKeyUp");d(this,"onPointerMove");d(this,"onPointerUp");d(this,"onPan");d(this,"onZoom");d(this,"onPointerDown");d(this,"onPointCanvas");d(this,"onDoubleClickCanvas");d(this,"onRightPointCanvas");d(this,"onDragCanvas");d(this,"onReleaseCanvas");d(this,"onPointShape");d(this,"onDoubleClickShape");d(this,"onRightPointShape");d(this,"onDragShape");d(this,"onHoverShape");d(this,"onUnhoverShape");d(this,"onReleaseShape");d(this,"onPointBounds");d(this,"onDoubleClickBounds");d(this,"onRightPointBounds");d(this,"onDragBounds");d(this,"onHoverBounds");d(this,"onUnhoverBounds");d(this,"onReleaseBounds");d(this,"onPointBoundsHandle");d(this,"onDoubleClickBoundsHandle");d(this,"onRightPointBoundsHandle");d(this,"onDragBoundsHandle");d(this,"onHoverBoundsHandle");d(this,"onUnhoverBoundsHandle");d(this,"onReleaseBoundsHandle");d(this,"onPointHandle");d(this,"onDoubleClickHandle");d(this,"onRightPointHandle");d(this,"onDragHandle");d(this,"onHoverHandle");d(this,"onUnhoverHandle");d(this,"onReleaseHandle");d(this,"onShapeBlur");d(this,"onShapeClone")}},Pa=(n=>(n.Idle="idle",n.Connecting="connecting",n.Connected="connected",n.Disconnected="disconnected",n))(Pa||{}),Ve=(u=>(u.Transform="transform",u.Translate="translate",u.TransformSingle="transformSingle",u.Brush="brush",u.Arrow="arrow",u.Draw="draw",u.Erase="erase",u.Rotate="rotate",u.Handle="handle",u.Grid="grid",u.Edit="edit",u))(Ve||{}),Ht=(g=>(g.Idle="idle",g.PointingHandle="pointingHandle",g.PointingBounds="pointingBounds",g.PointingBoundsHandle="pointingBoundsHandle",g.TranslatingLabel="translatingLabel",g.TranslatingHandle="translatingHandle",g.Translating="translating",g.Transforming="transforming",g.Rotating="rotating",g.Pinching="pinching",g.Brushing="brushing",g.Creating="creating",g.EditingText="editing-text",g))(Ht||{}),$i=(n=>(n.Backward="backward",n.Forward="forward",n.ToFront="toFront",n.ToBack="toBack",n))($i||{}),Qr=(s=>(s.Top="top",s.CenterVertical="centerVertical",s.Bottom="bottom",s.Left="left",s.CenterHorizontal="centerHorizontal",s.Right="right",s))(Qr||{}),ei=(e=>(e.Horizontal="horizontal",e.Vertical="vertical",e))(ei||{}),ti=(e=>(e.Horizontal="horizontal",e.Vertical="vertical",e))(ti||{}),Gi=(e=>(e.Horizontal="horizontal",e.Vertical="vertical",e))(Gi||{}),oe=(g=>(g.Sticky="sticky",g.Ellipse="ellipse",g.Rectangle="rectangle",g.Triangle="triangle",g.Draw="draw",g.Arrow="arrow",g.Line="line",g.Text="text",g.Group="group",g.Image="image",g.Video="video",g.ReactComponent="reactComponent",g.Pen="pen",g))(oe||{}),rr=(o=>(o.Arrow="arrow",o))(rr||{}),ji=(h=>(h.White="white",h.LightGray="lightGray",h.Gray="gray",h.Black="black",h.Green="green",h.Cyan="cyan",h.Blue="blue",h.Indigo="indigo",h.Violet="violet",h.Red="red",h.Orange="orange",h.Yellow="yellow",h))(ji||{}),ni=(t=>(t.Small="small",t.Medium="medium",t.Large="large",t))(ni||{}),en=(n=>(n.Draw="draw",n.Solid="solid",n.Dashed="dashed",n.Dotted="dotted",n))(en||{}),md=(n=>(n.Small="small",n.Medium="medium",n.Large="large",n.ExtraLarge="extraLarge",n))(md||{}),zt=(n=>(n.Start="start",n.Middle="middle",n.End="end",n.Justify="justify",n))(zt||{}),Eo=(n=>(n.Script="script",n.Sans="sans",n.Serif="serif",n.Mono="mono",n))(Eo||{});function Bo(i){let o=i.stops.map(e=>{let t=e.color.slice(0,7),[n,r,s]=[1,3,5].map(l=>parseInt(t.slice(l,l+2),16));return`rgba(${n},${r},${s},${e.opacity}) ${e.position}%`}).join(", ");switch(i.type){case"linear":return`linear-gradient(${i.angle}deg, ${o})`;case"radial":return`radial-gradient(circle at ${i.centerX}% ${i.centerY}%, ${o})`;case"conic":case"diamond":return`conic-gradient(from ${i.angle}deg at ${i.centerX}% ${i.centerY}%, ${o})`;default:return`linear-gradient(90deg, ${o})`}}var Wi=(e=>(e.Image="image",e.Video="video",e))(Wi||{}),so=(r=>(r.PNG="png",r.JPG="jpeg",r.WEBP="webp",r.SVG="svg",r.JSON="json",r))(so||{}),ir=(n=>(n.Transparent="transparent",n.Auto="auto",n.Light="light",n.Dark="dark",n))(ir||{});function gd(i){let o=_(),e=Ni.useCallback((a=!1)=>{let c=i.current;return a&&(o.isMenuOpen||o.settings.keepStyleMenuOpen)?!0:c&&(document.activeElement===c||c.contains(document.activeElement))},[i]);Ni.useEffect(()=>{if(!o)return;let a=u=>{if(!!e(!0)){if(o.readOnly){o.copy(void 0,u);return}o.cut(void 0,u)}},c=u=>{!e(!0)||o.copy(void 0,u)},p=u=>{!e(!0)||o.readOnly||o.paste(void 0,u)};return document.addEventListener("cut",a),document.addEventListener("copy",c),document.addEventListener("paste",p),()=>{document.removeEventListener("cut",a),document.removeEventListener("copy",c),document.removeEventListener("paste",p)}},[o]),(0,W.useHotkeys)("v,1",()=>{!e(!0)||o.selectTool("select")},[o,i.current]),(0,W.useHotkeys)("d,2",()=>{!e(!0)||o.selectTool("draw")},void 0,[o]),(0,W.useHotkeys)("p",()=>{!e(!0)||o.selectTool("pen")},void 0,[o]),(0,W.useHotkeys)("e,3",()=>{!e(!0)||o.selectTool("erase")},void 0,[o]),(0,W.useHotkeys)("r,4",()=>{!e(!0)||o.selectTool("rectangle")},void 0,[o]),(0,W.useHotkeys)("o,5",()=>{!e(!0)||o.selectTool("ellipse")},void 0,[o]),(0,W.useHotkeys)("g,6",()=>{!e()||o.selectTool("triangle")},void 0,[o]),(0,W.useHotkeys)("l,7",()=>{!e(!0)||o.selectTool("line")},void 0,[o]),(0,W.useHotkeys)("a,8",()=>{!e(!0)||o.selectTool("arrow")},void 0,[o]),(0,W.useHotkeys)("t,9",()=>{!e(!0)||o.selectTool("text")},void 0,[o]),(0,W.useHotkeys)("s,0",()=>{!e(!0)||o.selectTool("sticky")},void 0,[o]),(0,W.useHotkeys)("ctrl+shift+d,\u2318+shift+d",a=>{!e(!0)||(o.toggleDarkMode(),a.preventDefault())},void 0,[o]),(0,W.useHotkeys)("ctrl+.,\u2318+.",()=>{!e(!0)||o.toggleFocusMode()},void 0,[o]),(0,W.useHotkeys)("ctrl+shift+g,\u2318+shift+g",()=>{!e(!0)||o.toggleGrid()},void 0,[o]);let{onNewProject:t,onOpenProject:n,onSaveProject:r,onSaveProjectAs:s,onOpenMedia:l}=Fi();(0,W.useHotkeys)("ctrl+n,\u2318+n",a=>{a.preventDefault(),e()&&t(a)},void 0,[o]),(0,W.useHotkeys)("ctrl+s,\u2318+s",a=>{!e()||r(a)},void 0,[o]),(0,W.useHotkeys)("ctrl+shift+s,\u2318+shift+s",a=>{!e()||s(a)},void 0,[o]),(0,W.useHotkeys)("ctrl+alt+1,\u2318+alt+1",a=>{!e()||o.exportImage("svg",{scale:2,quality:1})},void 0,[o]),(0,W.useHotkeys)("ctrl+alt+2,\u2318+alt+2",a=>{!e()||o.exportImage("png",{scale:2,quality:1})},void 0,[o]),(0,W.useHotkeys)("ctrl+alt+3,\u2318+alt+3",a=>{!e()||o.exportImage("jpeg",{scale:2,quality:1})},void 0,[o]),(0,W.useHotkeys)("ctrl+alt+4,\u2318+alt+4",a=>{!e()||o.exportImage("webp",{scale:2,quality:1})},void 0,[o]),(0,W.useHotkeys)("ctrl+alt+5,\u2318+alt+5",a=>{!e()||o.exportJson()},void 0,[o]),(0,W.useHotkeys)("ctrl+o,\u2318+o",a=>{!e()||n(a)},void 0,[o]),(0,W.useHotkeys)("ctrl+u,\u2318+u",a=>{!e()||l(a)},void 0,[o]),(0,W.useHotkeys)("\u2318+z,ctrl+z",a=>{a.preventDefault(),e(!0)&&(o.session?o.cancelSession():o.undo())},void 0,[o]),(0,W.useHotkeys)("ctrl+shift+z,\u2318+shift+z",()=>{!e(!0)||(o.session?o.cancelSession():o.redo())},void 0,[o]),(0,W.useHotkeys)("\u2318+u,ctrl+u",()=>{!e()||o.undoSelect()},void 0,[o]),(0,W.useHotkeys)("ctrl+shift-u,\u2318+shift+u",()=>{!e()||o.redoSelect()},void 0,[o]),(0,W.useHotkeys)("ctrl+=,\u2318+=,ctrl+num_add,\u2318+num_add",a=>{!e(!0)||(o.zoomIn(),a.preventDefault())},void 0,[o]),(0,W.useHotkeys)("ctrl+-,\u2318+-,ctrl+num_subtract,\u2318+num_subtract",a=>{!e(!0)||(o.zoomOut(),a.preventDefault())},void 0,[o]),(0,W.useHotkeys)("shift+0,ctrl+numpad_0,\u2318+numpad_0",()=>{!e(!0)||o.resetZoom()},void 0,[o]),(0,W.useHotkeys)("shift+1",()=>{!e(!0)||o.zoomToFit()},void 0,[o]),(0,W.useHotkeys)("shift+2",()=>{!e(!0)||o.zoomToSelection()},void 0,[o]),(0,W.useHotkeys)("ctrl+d,\u2318+d",a=>{!e()||(o.duplicate(),a.preventDefault())},void 0,[o]),(0,W.useHotkeys)("shift+h",()=>{!e(!0)||o.flipHorizontal()},void 0,[o]),(0,W.useHotkeys)("shift+v",()=>{!e(!0)||o.flipVertical()},void 0,[o]),(0,W.useHotkeys)("escape",()=>{!e(!0)||o.cancel()},void 0,[o]),(0,W.useHotkeys)("backspace,del",()=>{!e()||o.delete()},void 0,[o]),(0,W.useHotkeys)("\u2318+a,ctrl+a",()=>{!e(!0)||o.selectAll()},void 0,[o]),(0,W.useHotkeys)("up",()=>{!e()||o.nudge([0,-1],!1)},void 0,[o]),(0,W.useHotkeys)("right",()=>{!e()||o.nudge([1,0],!1)},void 0,[o]),(0,W.useHotkeys)("down",()=>{!e()||o.nudge([0,1],!1)},void 0,[o]),(0,W.useHotkeys)("left",()=>{!e()||o.nudge([-1,0],!1)},void 0,[o]),(0,W.useHotkeys)("shift+up",()=>{!e()||o.nudge([0,-1],!0)},void 0,[o]),(0,W.useHotkeys)("shift+right",()=>{!e()||o.nudge([1,0],!0)},void 0,[o]),(0,W.useHotkeys)("shift+down",()=>{!e()||o.nudge([0,1],!0)},void 0,[o]),(0,W.useHotkeys)("shift+left",()=>{!e()||o.nudge([-1,0],!0)},void 0,[o]),(0,W.useHotkeys)("\u2318+shift+l,ctrl+shift+l",()=>{!e()||o.toggleLocked()},void 0,[o]),(0,W.useHotkeys)("\u2318+shift+c,ctrl+shift+c",a=>{!e()||(o.copySvg(),a.preventDefault())},void 0,[o]),(0,W.useHotkeys)("\u2318+g,ctrl+g",a=>{!e()||(o.group(),a.preventDefault())},void 0,[o]),(0,W.useHotkeys)("\u2318+shift+g,ctrl+shift+g",a=>{!e()||(o.ungroup(),a.preventDefault())},void 0,[o]),(0,W.useHotkeys)("[",()=>{!e(!0)||o.moveBackward()},void 0,[o]),(0,W.useHotkeys)("]",()=>{!e(!0)||o.moveForward()},void 0,[o]),(0,W.useHotkeys)("shift+[",()=>{!e(!0)||o.moveToBack()},void 0,[o]),(0,W.useHotkeys)("shift+]",()=>{!e(!0)||o.moveToFront()},void 0,[o]),(0,W.useHotkeys)("ctrl+shift+backspace,\u2318+shift+backspace",a=>{!e()||(o.settings.isDebugMode&&o.resetDocument(),a.preventDefault())},void 0,[o]),(0,W.useHotkeys)("alt+command+l,alt+ctrl+l",a=>{!e(!0)||(o.style({textAlign:"start"}),a.preventDefault())},void 0,[o]),(0,W.useHotkeys)("alt+command+t,alt+ctrl+t",a=>{!e(!0)||(o.style({textAlign:"middle"}),a.preventDefault())},void 0,[o]),(0,W.useHotkeys)("alt+command+r,alt+ctrl+r",a=>{!e(!0)||(o.style({textAlign:"end"}),a.preventDefault())},void 0,[o])}var En=H(require("react")),Ra=En.createContext({}),Gh=()=>{let[i,o]=En.useState(0);En.useEffect(()=>o(1))};function _(){return En.useContext(Ra)}var Da=En.createContext({});function Sn(){let i=En.useContext(Da);return Gh(),i}var _d=H(require("react"));var fd={"style.menu.color":"\u0627\u0644\u0644\u0648\u0646","style.menu.fill":"\u064A\u0645\u0644\u0623","style.menu.dash":"\u0645\u062A\u0642\u0637\u0639","style.menu.size":"\u062D\u062C\u0645","style.menu.keep.open":"\u062A\u0628\u0642\u0649 \u0645\u0641\u062A\u0648\u062D\u0629","style.menu.font":"\u0627\u0644\u062E\u0637","style.menu.align":"\u0645\u062D\u0627\u0630\u0627\u0629",styles:"\u0627\u0644\u0623\u0646\u0645\u0627\u0637","zoom.in":"\u062A\u0643\u0628\u064A\u0631","zoom.out":"\u062A\u0635\u063A\u064A\u0631",to:"\u0625\u0644\u0649","menu.tools":"\u0623\u062F\u0648\u0627\u062A","menu.transform":"\u0627\u0644\u062A\u062D\u0648\u064A\u0644\u0627\u062A","menu.file":"\u0645\u0644\u0641","menu.edit":"\u062A\u062D\u0631\u064A\u0631","menu.view":"\u0645\u0639\u0627\u064A\u0646\u0629","menu.preferences":"\u0627\u0644\u062A\u0641\u0636\u064A\u0644\u0627\u062A","menu.sign.in":"\u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644","menu.sign.out":"\u062E\u0631\u0648\u062C","become.a.sponsor":"\u0643\u0646 \u0631\u0627\u0639\u064A\u0627\u064B","zoom.to.content":"\u0627\u0644\u0639\u0648\u062F\u0629 \u0625\u0644\u0649 \u0627\u0644\u0645\u062D\u062A\u0648\u0649","zoom.to.selection":"\u062A\u0643\u0628\u064A\u0631 \u0644\u0644\u062A\u062D\u062F\u064A\u062F","zoom.to.fit":"\u062A\u0643\u0628\u064A\u0631 \u0644\u062A\u0646\u0627\u0633\u0628","zoom.to":"\u062A\u0643\u0628\u064A\u0631 \u0625\u0644\u0649","preferences.dark.mode":"\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u062F\u0627\u0643\u0646","preferences.focus.mode":"\u0648\u0636\u0639 \u0627\u0644\u062A\u0631\u0643\u064A\u0632","preferences.debug.mode":"\u0648\u0636\u0639 \u0627\u0644\u062A\u0635\u062D\u064A\u062D","preferences.show.grid":"\u0627\u0638\u0647\u0631 \u0627\u0644\u0634\u0628\u0643\u0629","preferences.use.cad.selection":"\u0627\u0633\u062A\u062E\u062F\u0627\u0645 \u0627\u0644\u062A\u062D\u062F\u064A\u062F CAD","preferences.keep.stylemenu.open":"\u0627\u0644\u0627\u062D\u062A\u0641\u0627\u0638 \u0628\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0646\u0645\u0637 \u0645\u0641\u062A\u0648\u062D\u0629","preferences.always.show.snaps":"\u0625\u0638\u0647\u0627\u0631 \u0627\u0644\u0644\u0642\u0637\u0627\u062A \u062F\u0627\u0626\u0645\u064B\u0627","preferences.rotate.handles":"\u062A\u062F\u0648\u064A\u0631 \u0627\u0644\u0645\u0642\u0627\u0628\u0636","preferences.binding.handles":"\u0645\u0642\u0627\u0628\u0636 \u0645\u0644\u0632\u0645\u0629","preferences.clone.handles":"\u0645\u0642\u0627\u0628\u0636 \u0627\u0633\u062A\u0646\u0633\u0627\u062E",undo:"\u0627\u0644\u063A\u0627\u0621",redo:"\u0625\u0639\u0627\u062F\u0629",cut:"\u0642\u0637\u0639",copy:"\u0646\u0633\u062D",paste:"\u0644\u0635\u0642","copy.as":"\u0646\u0633\u062E \u0627\u0644\u0649","export.as":"\u0635\u062F\u0631 \u0627\u0644\u0649","select.all":"\u0627\u062E\u062A\u0631 \u0627\u0644\u0643\u0644","select.none":"\u0644\u0627 \u062A\u062E\u062A\u0631 \u0634\u064A\u0621",delete:"\u062D\u0630\u0641","new.project":"\u0645\u0634\u0631\u0648\u0639 \u062C\u062F\u064A\u062F",open:"\u0641\u062A\u062D",save:"\u062D\u0641\u0638","save.as":"\u062D\u0641\u0638 \u0628\u0627\u0633\u0645","upload.media":"\u062A\u062D\u0645\u064A\u0644 \u0627\u0644\u0648\u0633\u0627\u0626\u0637","create.page":"\u0625\u0646\u0634\u0627\u0621 \u0635\u0641\u062D\u0629","new.page":"\u0635\u0641\u062D\u0629 \u062C\u062F\u064A\u062F\u0629","page.name":"\u0627\u0633\u0645 \u0627\u0644\u0635\u0641\u062D\u0629",duplicate:"\u0646\u0633\u062E",cancel:"\u0627\u0644\u063A\u0627\u0621","copy.invite.link":"\u0646\u0633\u062E \u0631\u0627\u0628\u0637 \u0627\u0644\u062F\u0639\u0648\u0629","copy.readonly.link":"\u0646\u0633\u062E \u0631\u0627\u0628\u0637 \u062F\u0639\u0648\u0629 \u0627\u0644\u0642\u0631\u0627\u0621\u0629 \u0641\u0642\u0637","create.multiplayer.project":"\u0642\u0645 \u0628\u0625\u0646\u0634\u0627\u0621 \u0645\u0634\u0631\u0648\u0639 \u0645\u062A\u0639\u062F\u062F \u0627\u0644\u0644\u0627\u0639\u0628\u064A\u0646","copy.multiplayer.project":"\u0646\u0633\u062E \u0625\u0644\u0649 \u0645\u0634\u0631\u0648\u0639 \u0645\u062A\u0639\u062F\u062F \u0627\u0644\u0644\u0627\u0639\u0628\u064A\u0646",select:"\u0627\u062E\u062A\u0631",eraser:"\u0645\u0645\u062D\u0627\u0629",draw:"\u0631\u0633\u0645",arrow:"\u0633\u0647\u0645",text:"\u0646\u0635",sticky:"\u0644\u0627\u0635\u0642",rectangle:"\u0645\u0631\u0628\u0639",ellipse:"\u0628\u064A\u0636\u0627\u0648\u064A",triangle:"\u0645\u062B\u0644\u062B",line:"\u062E\u0637",rotate:"\u062F\u0648\u0651\u0631","lock.aspect.ratio":"\u0642\u0641\u0644 \u0646\u0633\u0628\u0629 \u0627\u0644\u0627\u0628\u0639\u0627\u062F","unlock.aspect.ratio":"\u0641\u062A\u062D \u0642\u0641\u0644 \u0646\u0633\u0628\u0629 \u0627\u0644\u0627\u0628\u0639\u0627\u062F",group:"\u062C\u0645\u0651\u0639",ungroup:"\u0641\u0643 \u0627\u0644\u062A\u062C\u0645\u0639","move.to.back":"\u0627\u0646\u062A\u0642\u0644 \u0625\u0644\u0649 \u0627\u0644\u062E\u0644\u0641","move.backward":"\u062A\u062D\u0631\u064A\u0643 \u0644\u0644\u062E\u0644\u0641","move.forward":"\u062A\u062D\u0631\u064A\u0643 \u0644\u0644\u0623\u0645\u0627\u0645","move.to.front":"\u062A\u062D\u0631\u0643 \u0644\u0644\u0623\u0645\u0627\u0645","reset.angle":"\u0625\u0639\u0627\u062F\u0629 \u0636\u0628\u0637 \u0627\u0644\u0632\u0627\u0648\u064A\u0629",lock:"\u0642\u0641\u0644",unlock:"\u0627\u0644\u063A\u0627\u0621 \u0627\u0644\u0642\u0641\u0644","move.to.page":"\u0627\u0646\u0642\u0644 \u0625\u0644\u0649 \u0627\u0644\u0635\u0641\u062D\u0629","flip.horizontal":"\u0627\u0646\u0639\u0643\u0627\u0633 \u0623\u0641\u0642\u064A","flip.vertical":"\u0627\u0646\u0639\u0643\u0627\u0633 \u0639\u0645\u0648\u062F\u064A",move:"\u062D\u0631\u0651\u0643","to.front":"\u0644\u0644\u0627\u0645\u0627\u0645",forward:"\u0644\u0644\u062E\u0644\u0641",backward:"\u0644\u0644\u0648\u0631\u0627\u0621",back:"\u062E\u0644\u0641",language:"\u0644\u063A\u0629","translation.link":"\u0644\u0644\u0645\u0632\u064A\u062F","dock.position":"\u0645\u0648\u0642\u0639 \u0627\u0644\u0627\u062F\u0648\u0627\u062A",bottom:"\u0627\u0633\u0641\u0644",left:"\u064A\u0633\u0627\u0631",right:"\u064A\u0645\u064A\u0646",top:"\u0623\u0639\u0644\u0649",page:"\u0635\u0641\u062D\u0629","keyboard.shortcuts":"\u0627\u062E\u062A\u0635\u0627\u0631\u0627\u062A \u0644\u0648\u062D\u0629 \u0627\u0644\u0645\u0641\u0627\u062A\u064A\u062D",search:"\u0628\u062D\u062B",loading:"{dots}\u062A\u062D\u0645\u064A\u0644 ","export.background":"\u062A\u0635\u062F\u064A\u0631 \u0627\u0644\u062E\u0644\u0641\u064A\u0629",transparent:"\u0634\u0640\u0641\u0627\u0641",auto:"\u0630\u0627\u062A\u064A",light:"\u062E\u0641\u064A\u0641",dark:"\u063A\u0627\u0645\u0642","dialog.save.firsttime":"\u0647\u0644 \u062A\u0631\u064A\u062F \u062D\u0641\u0638 \u0627\u0644\u062A\u063A\u064A\u064A\u0631\u0627\u062A \u0639\u0644\u0649 \u0647\u0630\u0627 \u0627\u0644\u0645\u0634\u0631\u0648\u0639\u061F","dialog.save.again":"\u0647\u0644 \u062A\u0631\u064A\u062F \u062D\u0641\u0638 \u0627\u0644\u062A\u063A\u064A\u064A\u0631\u0627\u062A \u0639\u0644\u0649 \u0647\u0630\u0627 \u0627\u0644\u0645\u0634\u0631\u0648\u0639\u061F","dialog.cancel":"\u0625\u0644\u063A\u0627\u0621","dialog.no":"\u0644\u0627","dialog.yes":"\u0646\u0639\u0645","enter.file.name":"\u0623\u062F\u062E\u0644 \u0627\u0633\u0645 \u0627\u0644\u0645\u0644\u0641",image:"\u0635\u0648\u0631\u0629","align.left":"\u0635\u0641\u0651 \u0644\u0644\u064A\u0633\u0627\u0631","align.center.x":"\u0635\u0641\u0651 \u0627\u0644\u0645\u062D\u0648\u0631 \u0627\u0644\u0623\u0641\u0642\u064A \u0644\u0644\u0648\u0633\u0637","align.right":"\u0635\u0641\u0651 \u0644\u0644\u064A\u0645\u064A\u0646","align.top":"\u0635\u0641\u0651 \u0644\u0644\u0623\u0639\u0644\u0649","align.center.y":"\u0635\u0641\u0651 \u0627\u0644\u0645\u062D\u0648\u0631 \u0627\u0644\u0639\u0645\u0648\u062F\u064A \u0644\u0644\u0648\u0633\u0637","align.bottom":"\u0635\u0641\u0651 \u0644\u0644\u0623\u0633\u0641\u0644","distribute.x":"\u062A\u0648\u0632\u064A\u0639 \u0623\u0641\u0642\u064A","distribute.y":"\u062A\u0648\u0632\u064A\u0639 \u0639\u0645\u0648\u062F\u064A","stretch.x":"\u062A\u0645\u062F\u064A\u062F \u0623\u0641\u0642\u064A","stretch.y":"\u062A\u0645\u062F\u064A\u062F \u0639\u0645\u0648\u062F\u064A"};var Sd={"style.menu.color":"Farve","style.menu.fill":"Fyld","style.menu.dash":"Streg","style.menu.size":"St\xF8rrelse","style.menu.keep.open":"Hold \xE5ben","style.menu.font":"Skrifttype","style.menu.align":"Juster",styles:"Format","zoom.in":"Zoom ind","zoom.out":"Zoom ud",to:"til","menu.tools":"V\xE6rkt\xF8jer","menu.transform":"Transformer","menu.file":"Fil","menu.edit":"Rediger","menu.view":"Vis","menu.preferences":"Indstillinger","menu.sign.in":"Log ind","menu.sign.out":"Log ud","become.a.sponsor":"Bliv sponsor","zoom.to.selection":"Zoom til valgte","zoom.to.fit":"Zoom til l\xE6rred","zoom.to":"Zoom til","zoom.to.content":"Zoom til indhold","preferences.dark.mode":"M\xF8rkt udseende","preferences.focus.mode":"Fokus tilstand","preferences.debug.mode":"Debug tilstand","preferences.show.grid":"Vis net","preferences.use.cad.selection":"Brug CAD udv\xE6lgelse","preferences.keep.stylemenu.open":"Hold formatmenuen \xE5ben","preferences.always.show.snaps":"Vis altid snaps","preferences.rotate.handles":"Roteringsh\xE5ndtag","preferences.binding.handles":"Bindingsh\xE5ndtag","preferences.clone.handles":"Kloningsh\xE5ndtag",undo:"Fortryd",redo:"Gentag",cut:"Klip",copy:"Kopier",paste:"Inds\xE6t","copy.as":"Kopier som","export.as":"Eksporter som","select.all":"V\xE6lg alt","select.none":"Frav\xE6lg alt",delete:"Slet","new.project":"Nyt projekt",open:"\xC5ben",save:"Gem","save.as":"Gem som","upload.media":"Upload medie","create.page":"Opret side","new.page":"Ny side","page.name":"Sidenavn",duplicate:"Dupliker",cancel:"Fortryd","copy.invite.link":"Kopier invitationslink","create.multiplayer.project":"Opret multiplayer projekt","copy.multiplayer.project":"Kopier til multiplayer projekt",select:"V\xE6lg",eraser:"Viskel\xE6der",draw:"Tegn",arrow:"Pil",text:"Tekst",sticky:"Note",rectangle:"Rektangel",ellipse:"Ellipse",triangle:"Trekant",line:"Linje",rotate:"Roter","lock.aspect.ratio":"L\xE5s billedformat","unlock.aspect.ratio":"Frig\xF8r billedformat",group:"Grupper",ungroup:"Opdel gruppe","move.to.back":"Placer bagerst","move.backward":"Flyt tilbage","move.forward":"Flyt frem","move.to.front":"L\xE6g forrest","reset.angle":"Nulstil vinkel",lock:"L\xE5s",unlock:"L\xE5s op","move.to.page":"Flyt til side","flip.horizontal":"Vend vandret","flip.vertical":"Vend lodret",move:"Flyt","to.front":"Forrest",forward:"Frem",backward:"Tilbage",back:"Bagerst",language:"Sprog","align.bottom":"Justering nederst","align.center.x":"Vandret justering centreret","align.center.y":"Lodret justering centreret","align.distribute":"Juster / distribuer","align.left":"Justering til venstre","align.right":"Justering til h\xF8jre","align.top":"Justering \xF8verst","copy.readonly.link":"Kopier skrivebeskyttet link","dialog.save.again":"Vil du gemme \xE6ndringerne til dit projekt?","dialog.save.firsttime":"Vil du gemme dit projekt?","dialog.yes":"Ja","dialog.no":"Nej","dialog.cancel":"Fortryd","enter.file.name":"Skriv filnavn","distribute.x":"Vandret distribuering","distribute.y":"Lodret distribuering","dock.position":"Placering af v\xE6rkt\xF8jslinje",bottom:"Nederst",left:"Venstre",right:"H\xF8jre",top:"\xD8verst","export.background":"Baggrund ved eksport",auto:"Automatisk",light:"Lys",dark:"M\xF8rk",image:"Billede","keyboard.shortcuts":"Tastaturgenveje",loading:"Indl\xE6ser",page:"Side",search:"S\xF8g","stretch.x":"Str\xE6k vandret","stretch.y":"Str\xE6k lodret","translation.link":"L\xE6r mere",transparent:"Gennemsigtig"};var yd={"style.menu.color":"Farbe","style.menu.fill":"F\xFCllen","style.menu.dash":"Strich","style.menu.size":"Gr\xF6\xDFe","style.menu.keep.open":"Offen halten","style.menu.font":"Schriftart","style.menu.align":"Ausrichten",styles:"Stile","zoom.in":"Heranzoomen","zoom.out":"Herauszoomen",to:"zu","menu.tools":"Werkzeuge","menu.transform":"Transformieren","menu.file":"Datei","menu.edit":"Bearbeiten","menu.view":"Ansicht","menu.preferences":"Pr\xE4ferenzen","menu.sign.in":"Einloggen","menu.sign.out":"Ausloggen","become.a.sponsor":"Sponsor werden","zoom.to.content":"Zur\xFCck zum Inhalt","zoom.to.selection":"Zur Auswahl zoomen","zoom.to.fit":"Zoom anpassen","zoom.to":"Zoomen nach","preferences.dark.mode":"Dunkler Modus","preferences.focus.mode":"Fokus Modus","preferences.debug.mode":"Debug Modus","preferences.show.grid":"Gitter anzeigen","preferences.use.cad.selection":"CAD Auswahl verwenden","preferences.keep.stylemenu.open":"Stilmen\xFC offen halten","preferences.always.show.snaps":"Hilfslinien immer anzeigen","preferences.rotate.handles":"Rotiergriffe","preferences.binding.handles":"Bindegriffe","preferences.clone.handles":"Klongriffe",undo:"R\xFCckg\xE4ngig machen",redo:"Wiederherstellen",cut:"Ausschneiden",copy:"Kopieren",paste:"Einf\xFCgen","copy.as":"Kopieren als","export.as":"Exportieren als","select.all":"Alles ausw\xE4hlen","select.none":"Nichts ausw\xE4hlen",delete:"L\xF6schen","new.project":"Neues Projekt",open:"\xD6ffnen",save:"Speichern","save.as":"Speichern als","upload.media":"Medien hochladen","create.page":"Seite erstellen","new.page":"Neue Seite","page.name":"Seitenname",duplicate:"Duplizieren","shape.options":"Form Optionen",shapes:"Fromen",cancel:"Abbrechen","copy.invite.link":"Einladungslink kopieren","copy.readonly.link":"Schreibgesch\xFCtzten Link kopieren","create.multiplayer.project":"Geteiltes Projekt erstellen","copy.multiplayer.project":"In ein Geteiltes Projekt kopieren",select:"Ausw\xE4hlen",eraser:"Radierer",draw:"Malen",arrow:"Pfeil",text:"Text",sticky:"Notiz",rectangle:"Rechteck",ellipse:"Ellipse",triangle:"Dreieck",line:"Linie",rotate:"Drehen","lock.aspect.ratio":"Seitenverh\xE4ltnis sperren","unlock.aspect.ratio":"Seitenverh\xE4ltnis entsperren",group:"Gruppieren",ungroup:"Gruppierung aufheben","move.to.back":"Nach Hinten verschieben","move.backward":"R\xFCckw\xE4rts schieben","move.forward":"Vorw\xE4rts schieben","move.to.front":"Nach Vorne verschieben","reset.angle":"Winkel zur\xFCcksetzen",lock:"Sperren",unlock:"Entsperren","align.distribute":"Ausrichten / Verteilen","move.to.page":"Zu Seite verschieben","flip.horizontal":"Horizontal spiegeln","flip.vertical":"Vertikal spiegeln",move:"Verschieben","to.front":"Nach Vorne",forward:"Vorw\xE4rts",backward:"R\xFCckw\xE4rts",back:"Hinten",language:"Sprache","translation.link":"Mehr erfahren","dock.position":"Dock Position",bottom:"Unten",left:"Links",right:"Rechts",top:"Oben",page:"Seite","keyboard.shortcuts":"Tastaturkurzbefehle",search:"Suche",loading:"Laden{dots}","export.background":"Hintergrund Exportieren",transparent:"Transparent",auto:"Auto",light:"Hell",dark:"Dunkel",github:"Github",twitter:"Twitter",discord:"Discord",image:"Bild","align.left":"Links ausrichten","align.center.x":"Horizontal mittig ausrichten","align.right":"Rechts ausrichten","align.top":"Oben ausrichten","align.center.y":"Vertikal mittig ausrichten","align.bottom":"Unten ausrichten","distribute.x":"Horizontal verteilen","distribute.y":"Vertikal verteilen","stretch.x":"Horizontal strecken","stretch.y":"Vertikal strecken","dialog.save.firsttime":"M\xF6chten Sie Ihr aktuelles Projekt speichern?","dialog.save.again":"M\xF6chten Sie die \xC4nderungen an Ihrem aktuellen Projekt speichern?","dialog.cancel":"Abbrechen","dialog.no":"Nein","dialog.yes":"Ja","enter.file.name":"Dateiname eingeben","telva-beta":"Probieren Sie das neue telva",white:"Wei\xDF",lightGray:"hellgrau",gray:"Frau",black:"Schwarz",green:"Gr\xFCn",cyan:"Cyan",blue:"Blau",indigo:"Indigo",violet:"Violett",red:"Rot",orange:"Orange",yellow:"Gelb",solid:"Durchgehend",dashed:"Gestrichelt",dotted:"Gepunktet",small:"Klein",medium:"Mittel",large:"Gro\xDF"};var bd={};var vd={"style.menu.color":"Color","style.menu.fill":"Relleno","style.menu.dash":"L\xEDnea","style.menu.size":"Tama\xF1o","style.menu.keep.open":"Mantener abierto","style.menu.font":"Fuente","style.menu.align":"Alineaci\xF3n",styles:"Estilos","zoom.in":"Acercar","zoom.out":"Alejar",to:"A","menu.tools":"Herramientas","menu.transform":"Transformar","menu.file":"Archivo","menu.edit":"Editar","menu.view":"Ver","menu.preferences":"Preferencias","menu.sign.in":"Iniciar sesi\xF3n","menu.sign.out":"Cerrar sesi\xF3n","become.a.sponsor":"Convi\xE9rtete en patrocinador","zoom.to.content":"Acercar al contenido","zoom.to.selection":"Acercar a la selecci\xF3n","zoom.to.fit":"Ajustar a la ventana","zoom.to":"Acercar a","preferences.dark.mode":"Modo oscuro","preferences.focus.mode":"Modo concentraci\xF3n","preferences.debug.mode":"Modo depuraci\xF3n","preferences.show.grid":"Mostrar cuadr\xEDcula","preferences.use.cad.selection":"Usar selecci\xF3n CAD","preferences.keep.stylemenu.open":"Mantener men\xFA de estilos abierto","preferences.always.show.snaps":"Mostrar puntos de ajuste","preferences.rotate.handles":"Control de rotaci\xF3n","preferences.binding.handles":"Control de vinculaci\xF3n","preferences.clone.handles":"Control de clonaci\xF3n",undo:"Deshacer",redo:"Rehacer",cut:"Cortar",copy:"Copiar",paste:"Pegar","copy.as":"Copiar como","export.as":"Exportar como","select.all":"Selecionar todo","select.none":"Selecionar nada",delete:"Borrar","new.project":"Nuevo Proyecto",open:"Abrir",save:"Guardar","save.as":"Guardar como","upload.media":"Subir medios","create.page":"Crear p\xE1gina","new.page":"Nueva p\xE1gina","page.name":"Nombre de p\xE1gina",duplicate:"Duplicar","shape.options":"Opciones de formas",shapes:"Formas",cancel:"Cancelar","copy.invite.link":"Copiar invitaci\xF3n","copy.readonly.link":"Copiar invitaci\xF3n (solo lectura)","create.multiplayer.project":"Crear proyecto multijugador","copy.multiplayer.project":"Copiar proyecto multijugador",select:"Seleccionar",eraser:"Borrador",draw:"Dibujar",arrow:"Flecha",text:"Texto",sticky:"Pegatina",rectangle:"Rect\xE1ngulo",ellipse:"Elipse",triangle:"Tri\xE1ngulo",line:"L\xEDnea",rotate:"Rotar","lock.aspect.ratio":"Bloquear relaci\xF3n de aspecto","unlock.aspect.ratio":"Desbloquear relaci\xF3n de aspecto",group:"Agrupar",ungroup:"Desagrupar","move.to.back":"Mover al fondo","move.backward":"Mover atr\xE1s","move.forward":"Mover adelante","move.to.front":"Mover al frente","reset.angle":"Restablecer \xE1ngulo",lock:"Bloquear",unlock:"Desbloquear","align.distribute":"Alinear / Distribuir","move.to.page":"Mover a p\xE1gina","flip.horizontal":"Voltear horizontalmente","flip.vertical":"Voltear verticalmente",move:"Mover","to.front":"Al frente",forward:"Adelante",backward:"Atr\xE1s",back:"Fondo",language:"Idioma","translation.link":"Saber m\xE1s","dock.position":"Posici\xF3n del dock",bottom:"Abajo",left:"Izquierda",right:"Derecha",top:"Arriba",page:"P\xE1gina","keyboard.shortcuts":"Atajos de teclado",search:"Buscar",loading:"Cargando{dots}","export.background":"Exportar fondo",transparent:"Transparente",auto:"Auto",light:"Claro",dark:"Oscuro",github:"Github",twitter:"Twitter",discord:"Discord",image:"Imagen","align.left":"Alinear a la izquierda","align.center.x":"Alinear al centro horizontalmente","align.right":"Alinear a la derecha","align.top":"Alinear arriba","align.center.y":"Alinear al centro verticalmente","align.bottom":"Alinear abajo","distribute.x":"Distribuir horizontalmente","distribute.y":"Distribuir verticalmente","stretch.x":"Estirar horizontalmente","stretch.y":"Estirar verticalmente","dialog.save.firsttime":"\xBFQuieres guardar el proyecto actual?","dialog.save.again":"\xBFQuieres guardar los cambios en el proyecto actual?","dialog.cancel":"Cancelar","dialog.no":"No","dialog.yes":"S\xED","enter.file.name":"Introduce el nombre del arquivo","telva-beta":"Prueba el nuevo telva",white:"Blanco",lightGray:"Gris claro",gray:"Gris",black:"Negro",green:"Verde",cyan:"Cian",blue:"Azul",indigo:"Indigo",violet:"Violeta",red:"Rojo",orange:"Naranja",yellow:"Amarillo",solid:"Cont\xEDnuo",dashed:"Discont\xEDnuo",dotted:"Punteado",small:"Peque\xF1o",medium:"Mediano",large:"Grande"};var Td={"style.menu.color":"\u0631\u0646\u06AF","style.menu.fill":"\u062A\u0648\u067E\u064F\u0631","style.menu.dash":"\u062E\u0637\u200C\u0686\u06CC\u0646","style.menu.size":"\u0627\u0646\u062F\u0627\u0632\u0647","style.menu.keep.open":"\u0628\u0627\u0632 \u0646\u06AF\u0647\u200C\u062F\u0627\u0634\u062A\u0646","style.menu.font":"\u0642\u0644\u0645","style.menu.align":"\u062A\u0631\u0627\u0632",styles:"\u0633\u0628\u06A9\u200C\u0647\u0627","zoom.in":"\u0628\u0632\u0631\u06AF\u200C\u0646\u0645\u0627\u06CC\u06CC","zoom.out":"\u06A9\u0648\u0686\u06A9\u200C\u0646\u0645\u0627\u06CC\u06CC",to:"\u0628\u0647","menu.tools":"\u0627\u0628\u0632\u0627\u0631\u0647\u0627","menu.transform":"\u062A\u063A\u06CC\u06CC\u0631 \u0634\u06A9\u0644","menu.file":"\u067E\u0631\u0648\u0646\u062F\u0647","menu.edit":"\u0648\u06CC\u0631\u0627\u06CC\u0634","menu.view":"\u0646\u0645\u0627\u06CC\u0634","menu.preferences":"\u062A\u0631\u062C\u06CC\u062D\u0627\u062A","menu.sign.in":"\u0648\u0631\u0648\u062F","menu.sign.out":"\u062E\u0631\u0648\u062C","become.a.sponsor":"\u062D\u0645\u0627\u06CC\u062A\u200C\u06A9\u0646\u0646\u062F\u0647 \u0634\u0648\u06CC\u062F","zoom.to.content":"\u0628\u0627\u0632\u06AF\u0634\u062A \u0628\u0647 \u0645\u062D\u062A\u0648\u0627","zoom.to.selection":"\u0628\u0632\u0631\u06AF\u200C\u0646\u0645\u0627\u06CC\u06CC \u0628\u0647 \u0646\u0627\u062D\u06CC\u0647 \u0627\u0646\u062A\u062E\u0627\u0628\u200C\u0634\u062F\u0647","zoom.to.fit":"\u0628\u0632\u0631\u06AF\u200C\u0646\u0645\u0627\u06CC\u06CC \u0645\u062A\u0646\u0627\u0633\u0628 \u0628\u0627 \u0635\u0641\u062D\u0647","zoom.to":"\u0628\u0632\u0631\u06AF\u200C\u0646\u0645\u0627\u06CC\u06CC \u0628\u0647","preferences.dark.mode":"\u062D\u0627\u0644\u062A \u062A\u0627\u0631\u06CC\u06A9","preferences.focus.mode":"\u062D\u0627\u0644\u062A \u062A\u0645\u0631\u06A9\u0632","preferences.debug.mode":"\u062D\u0627\u0644\u062A \u0639\u06CC\u0628\u200C\u06CC\u0627\u0628\u06CC","preferences.show.grid":"\u0646\u0645\u0627\u06CC\u0634 \u062E\u0637\u0648\u0637 \u0631\u0627\u0647\u0646\u0645\u0627","preferences.use.cad.selection":"\u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u0627\u0632 \u062D\u0627\u0644\u062A \u0627\u0646\u062A\u062E\u0627\u0628 CAD","preferences.keep.stylemenu.open":"\u0628\u0627\u0632 \u0646\u06AF\u0647\u200C\u062F\u0627\u0634\u062A\u0646 \u0645\u0646\u0648\u06CC \u0633\u0628\u06A9\u200C\u0647\u0627","preferences.always.show.snaps":"\u0647\u0645\u06CC\u0634\u0647 \u0646\u0642\u0627\u0637 \u0686\u0633\u0628\u0627\u0646 \u0631\u0627 \u0646\u0634\u0627\u0646 \u0628\u062F\u0647","preferences.rotate.handles":"\u062F\u0633\u062A\u06AF\u06CC\u0631\u0647\u200C\u0647\u0627\u06CC \u0686\u0631\u062E\u0634","preferences.binding.handles":"\u062F\u0633\u062A\u06AF\u06CC\u0631\u0647\u200C\u0647\u0627\u06CC \u0627\u062A\u0635\u0627\u0644\u200C\u062F\u0647\u0646\u062F\u0647","preferences.clone.handles":"\u062F\u0633\u062A\u06AF\u06CC\u0631\u0647\u200C\u0647\u0627\u06CC \u062A\u06A9\u062B\u06CC\u0631",undo:"\u0648\u0627\u06AF\u0631\u062F\u0627\u0646\u06CC",redo:"\u0627\u0646\u062C\u0627\u0645 \u062F\u0648\u0628\u0627\u0631\u0647",cut:"\u0628\u0631\u06CC\u062F\u0646",copy:"\u06A9\u067E\u06CC",paste:"\u062C\u0627\u06CC\u200C\u06AF\u0630\u0627\u0631\u06CC","copy.as":"\u06A9\u067E\u06CC \u0628\u0647\u200C\u0639\u0646\u0648\u0627\u0646","export.as":"\u062E\u0631\u0648\u062C\u06CC\u200C\u06AF\u0631\u0641\u062A\u0646 \u0628\u0647\u200C\u0639\u0646\u0648\u0627\u0646","select.all":"\u0627\u0646\u062A\u062E\u0627\u0628 \u0647\u0645\u0647","select.none":"\u0627\u0646\u062A\u062E\u0627\u0628 \u0647\u06CC\u0686\u200C\u06CC\u06A9",delete:"\u062D\u0630\u0641","new.project":"\u067E\u0631\u0648\u0698\u0647 \u062C\u062F\u06CC\u062F",open:"\u0628\u0627\u0632\u06A9\u0631\u062F\u0646",save:"\u0630\u062E\u06CC\u0631\u0647","save.as":"\u0630\u062E\u06CC\u0631\u0647 \u0628\u0647\u200C\u0639\u0646\u0648\u0627\u0646","upload.media":"\u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC \u0631\u0633\u0627\u0646\u0647","create.page":"\u0627\u06CC\u062C\u0627\u062F \u0628\u0631\u06AF\u0647","new.page":"\u0628\u0631\u06AF\u0647 \u062C\u062F\u06CC\u062F","page.name":"\u0646\u0627\u0645 \u0628\u0631\u06AF\u0647",duplicate:"\u062A\u06A9\u062B\u06CC\u0631\u06A9\u0631\u062F\u0646","shape.options":"\u06AF\u0632\u06CC\u0646\u0647\u200C\u0647\u0627\u06CC \u0634\u06A9\u0644",shapes:"\u0634\u06A9\u0644\u200C\u0647\u0627",cancel:"\u0644\u063A\u0648","copy.invite.link":"\u06A9\u067E\u06CC\u200C\u06A9\u0631\u062F\u0646 \u067E\u06CC\u0648\u0646\u062F \u062F\u0639\u0648\u062A","copy.readonly.link":"\u06A9\u067E\u06CC\u200C\u06A9\u0631\u062F\u0646 \u067E\u06CC\u0648\u0646\u062F \u063A\u06CC\u0631\u0642\u0627\u0628\u0644 \u0648\u06CC\u0631\u0627\u06CC\u0634","create.multiplayer.project":"\u0627\u06CC\u062C\u0627\u062F \u06CC\u06A9 \u067E\u0631\u0648\u0698\u0647 \u0686\u0646\u062F\u0646\u0641\u0631\u0647","copy.multiplayer.project":"\u06A9\u067E\u06CC \u0628\u0647 \u067E\u0631\u0648\u0698\u0647 \u0686\u0646\u062F\u0646\u0641\u0631\u0647",select:"\u0627\u0646\u062A\u062E\u0627\u0628",eraser:"\u067E\u0627\u06A9\u200C\u06A9\u0646",draw:"\u0631\u0633\u0645",arrow:"\u0641\u0650\u0644\u0650\u0634",text:"\u0645\u062A\u0646",sticky:"\u0628\u0631\u06AF\u0647 \u0686\u0633\u0628\u0627\u0646",rectangle:"\u0686\u0647\u0627\u0631\u06AF\u0648\u0634",ellipse:"\u06AF\u0631\u062F\u06CC",triangle:"\u0633\u0647\u200C\u06AF\u0648\u0634",line:"\u062E\u0637",rotate:"\u0686\u0631\u062E\u0627\u0646\u062F\u0646","lock.aspect.ratio":"\u0642\u0641\u0644\u200C\u06A9\u0631\u062F\u0646 \u0646\u0633\u0628\u062A \u0627\u0628\u0639\u0627\u062F","unlock.aspect.ratio":"\u0627\u062C\u0627\u0632\u0647 \u062A\u063A\u06CC\u06CC\u0631 \u0646\u0633\u0628\u062A \u0627\u0628\u0639\u0627\u062F",group:"\u06AF\u0631\u0648\u0647\u200C\u0628\u0646\u062F\u06CC",ungroup:"\u0644\u063A\u0648 \u06AF\u0631\u0648\u0647\u200C\u0628\u0646\u062F\u06CC","move.to.back":"\u0627\u0646\u062A\u0642\u0627\u0644 \u0628\u0647 \u0639\u0642\u0628","move.backward":"\u0627\u0646\u062A\u0642\u0627\u0644 \u0628\u0647 \u0633\u0645\u062A \u0639\u0642\u0628","move.forward":"\u0627\u0646\u062A\u0642\u0627\u0644 \u0628\u0647 \u0633\u0645\u062A \u062C\u0644\u0648","move.to.front":"\u0627\u0646\u062A\u0642\u0627\u0644 \u0628\u0647 \u062C\u0644\u0648","reset.angle":"\u0628\u0627\u0632\u0646\u0634\u0627\u0646\u06CC \u0632\u0627\u0648\u06CC\u0647",lock:"\u0642\u0641\u0644",unlock:"\u0628\u0627\u0632\u06A9\u0631\u062F\u0646 \u0642\u0641\u0644","align.distribute":"\u062A\u0631\u0627\u0632 / \u067E\u062E\u0634\u200C\u06A9\u0631\u062F\u0646","move.to.page":"\u0627\u0646\u062A\u0642\u0627\u0644 \u0628\u0647 \u0628\u0631\u06AF\u0647","flip.horizontal":"\u0648\u0627\u0631\u0648\u0646\u0647\u200C\u0633\u0627\u0632\u06CC \u0627\u0641\u0642\u06CC","flip.vertical":"\u0648\u0627\u0631\u0648\u0646\u0647\u200C\u0633\u0627\u0632\u06CC \u0639\u0645\u0648\u062F\u06CC",move:"\u062D\u0631\u06A9\u062A\u200C\u062F\u0627\u062F\u0646","to.front":"\u0628\u0647 \u062C\u0644\u0648",forward:"\u0628\u0647 \u0633\u0645\u062A \u062C\u0644\u0648",backward:"\u0628\u0647 \u0633\u0645\u062A \u0639\u0642\u0628",back:"\u0628\u0647 \u0639\u0642\u0628",language:"\u0632\u0628\u0627\u0646","translation.link":"\u06CC\u0627\u062F\u06AF\u06CC\u0631\u06CC \u0628\u06CC\u0634\u062A\u0631","dock.position":"\u0645\u0648\u0642\u0639\u06CC\u062A \u0646\u0648\u0627\u0631 \u0627\u0628\u0632\u0627\u0631",bottom:"\u067E\u0627\u06CC\u06CC\u0646",left:"\u0686\u067E",right:"\u0631\u0627\u0633\u062A",top:"\u0628\u0627\u0644\u0627",page:"\u0628\u0631\u06AF\u0647","keyboard.shortcuts":"\u0645\u06CC\u0627\u0646\u200C\u0628\u0631\u0647\u0627\u06CC \u0635\u0641\u062D\u0647\u200C\u06A9\u0644\u06CC\u062F",search:"\u062C\u0633\u062A\u062C\u0648",loading:"\u0628\u0627\u0631\u06AF\u06CC\u0631\u06CC{dots}","export.background":"\u062E\u0631\u0648\u062C\u06CC\u200C\u06AF\u0631\u0641\u062A\u0646 \u067E\u0633\u200C\u0632\u0645\u06CC\u0646\u0647",transparent:"\u0634\u0641\u0627\u0641",auto:"\u062E\u0648\u062F\u06A9\u0627\u0631",light:"\u0631\u0648\u0634\u0646",dark:"\u062A\u0627\u0631\u06CC\u06A9",github:"\u06AF\u06CC\u062A\u200C\u0647\u0627\u0628",twitter:"\u062A\u0648\u06CC\u06CC\u062A\u0631",discord:"\u062F\u06CC\u0633\u06A9\u0648\u0631\u062F",image:"\u062A\u0635\u0648\u06CC\u0631","align.left":"\u062A\u0631\u0627\u0632 \u0628\u0647 \u0686\u067E","align.center.x":"\u062A\u0631\u0627\u0632 \u0628\u0647 \u0645\u0631\u06A9\u0632 \u0627\u0641\u0642\u06CC","align.right":"\u062A\u0631\u0627\u0632 \u0628\u0647 \u0631\u0627\u0633\u062A","align.top":"\u062A\u0631\u0627\u0632 \u0628\u0647 \u0628\u0627\u0644\u0627","align.center.y":"\u062A\u0631\u0627\u0632 \u0628\u0647 \u0645\u0631\u06A9\u0632 \u0639\u0645\u0648\u062F\u06CC","align.bottom":"\u062A\u0631\u0627\u0632 \u0628\u0647 \u067E\u0627\u06CC\u06CC\u0646","distribute.x":"\u067E\u062E\u0634\u200C\u06A9\u0631\u062F\u0646 \u0627\u0641\u0642\u06CC","distribute.y":"\u067E\u062E\u0634\u200C\u06A9\u0631\u062F\u0646 \u0639\u0645\u0648\u062F\u06CC","stretch.x":"\u06A9\u0634\u200C\u0622\u0648\u0631\u062F\u0646 \u0627\u0641\u0642\u06CC","stretch.y":"\u06A9\u0634\u200C\u0622\u0648\u0631\u062F\u0646 \u0639\u0645\u0648\u062F\u06CC","dialog.save.firsttime":"\u0622\u06CC\u0627 \u0645\u06CC\u200C\u062E\u0648\u0627\u0647\u06CC\u062F \u067E\u0631\u0648\u0698\u0647 \u0641\u0639\u0644\u06CC \u062E\u0648\u062F \u0631\u0627 \u0630\u062E\u06CC\u0631\u0647 \u06A9\u0646\u06CC\u062F\u061F","dialog.save.again":"\u0622\u06CC\u0627 \u0645\u06CC\u200C\u062E\u0648\u0627\u0647\u06CC\u062F \u06A9\u0647 \u062A\u063A\u06CC\u06CC\u0631\u0627\u062A \u0631\u0627 \u062F\u0631 \u067E\u0631\u0648\u0698\u0647 \u0641\u0639\u0644\u06CC \u062E\u0648\u062F \u0630\u062E\u06CC\u0631\u0647 \u06A9\u0646\u06CC\u062F\u061F","dialog.cancel":"\u0644\u063A\u0648","dialog.no":"\u062E\u06CC\u0631","dialog.yes":"\u0628\u0644\u0647","enter.file.name":"\u0646\u0627\u0645 \u067E\u0631\u0648\u0646\u062F\u0647 \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F","telva-beta":"\u0627\u0645\u062A\u062D\u0627\u0646\u200C\u06A9\u0631\u062F\u0646 telva \u062C\u062F\u06CC\u062F",white:"\u0633\u0641\u06CC\u062F",lightGray:"\u062E\u0627\u06A9\u0633\u062A\u0631\u06CC \u0631\u0648\u0634\u0646",gray:"\u062E\u0627\u06A9\u0633\u062A\u0631\u06CC",black:"\u0645\u0634\u06A9\u06CC",green:"\u0633\u0628\u0632",cyan:"\u0641\u06CC\u0631\u0648\u0632\u0647\u200C\u0627\u06CC",blue:"\u0622\u0628\u06CC",indigo:"\u0646\u06CC\u0644\u06CC",violet:"\u0628\u0646\u0641\u0634",red:"\u0642\u0631\u0645\u0632",orange:"\u0646\u0627\u0631\u0646\u062C\u06CC",yellow:"\u0632\u0631\u062F",solid:"\u062A\u0648\u067E\u064F\u0631",dashed:"\u062E\u0637\u200C\u0686\u06CC\u0646",dotted:"\u0646\u0642\u0637\u0647\u200C\u0686\u06CC\u0646",small:"\u06A9\u0648\u0686\u06A9",medium:"\u0645\u062A\u0648\u0633\u0637",large:"\u0628\u0632\u0631\u06AF"};var xd={"style.menu.color":"Couleur","style.menu.fill":"Remplir","style.menu.dash":"Bordure","style.menu.size":"Taille","style.menu.keep.open":"Toujours afficher le menu","style.menu.font":"Police","style.menu.align":"Alignement",styles:"Styles","zoom.in":"Zoom avant","zoom.out":"Zoom arri\xE8re",to:"\xC0","menu.tools":"Outils","menu.transform":"Transformation","menu.file":"Fichier","menu.edit":"\xC9dition","menu.view":"Afficher","menu.preferences":"Pr\xE9f\xE9rences","menu.sign.in":"S'authentifier","menu.sign.out":"Se d\xE9connecter","become.a.sponsor":"Devenir un sponsor","zoom.to.content":"Retour au contenu","zoom.to.selection":"Ajuster le zoom \xE0 la s\xE9lection","zoom.to.fit":"Adapter le zoom au contenu","zoom.to":"R\xE9tablir le zoom \xE0","preferences.dark.mode":"Mode sombre","preferences.focus.mode":"Mode focus","preferences.debug.mode":"Afficher la barre d\xE9veloppeur","preferences.show.grid":"Afficher la grille","preferences.use.cad.selection":"Utiliser la s\xE9lection CAD","preferences.keep.stylemenu.open":"Toujours afficher le menu styles","preferences.always.show.snaps":"Afficher les rep\xE8res dynamiques","preferences.rotate.handles":"Manier la rotation","preferences.binding.handles":"Manier les liaisons","preferences.clone.handles":"Manier le clonage",undo:"Annuler",redo:"R\xE9tablir",cut:"Couper",copy:"Copier",paste:"Coller","copy.as":"Copier au format","export.as":"Exporter au format","select.all":"Tout s\xE9lectionner","select.none":"Tout d\xE9s\xE9lectionner",delete:"Supprimer","new.project":"Nouveau project",open:"Ouvrir",save:"Enregistrer","save.as":"Enregistrer sous","upload.media":"Importer un m\xE9dia","create.page":"Cr\xE9er une page","new.page":"Nouvelle Page","page.name":"Nom de la page",duplicate:"Dupliquer",cancel:"Annuler","copy.invite.link":"Copier le lien d'invitation","copy.readonly.link":"Copier le lien en lecture seule d'invitation","create.multiplayer.project":"Cr\xE9er un project multi-joueurs","copy.multiplayer.project":"Copier dans un projet multi-joueurs",select:"S\xE9lection",eraser:"Gomme",draw:"Crayon",arrow:"Fl\xE8che",text:"Texte",sticky:"Note",rectangle:"Rectangle",ellipse:"Cercle",triangle:"Triangle",line:"Ligne",rotate:"Rotation","lock.aspect.ratio":"Verrouiller les proportions","unlock.aspect.ratio":"D\xE9verrouiller les proportions",group:"Grouper",ungroup:"D\xE9grouper","move.to.back":"D\xE9placer \xE0 l'arri\xE8re-plan","move.backward":"Reculer d'un plan","move.forward":"Avancer d'un plan","move.to.front":"Placer au premier plan","reset.angle":"R\xE9initialiser la rotation",lock:"Verrouiller",unlock:"D\xE9verrouiller","align.distribute":"Alignement / R\xE9partion","move.to.page":"D\xE9placer vers la page","flip.horizontal":"Retourner horizontalement","flip.vertical":"Retourner verticalement",move:"Disposition","to.front":"Placer au premier plan",forward:"Avancer d'un plan",backward:"Reculer d'un plan",back:"D\xE9placer \xE0 l'arri\xE8re-plan",language:"Langage","translation.link":"En savoir plus","dock.position":"Position du dock",bottom:"En bas",left:"\xC0 gauche",right:"\xC0 droite",top:"En haut",page:"Page","keyboard.shortcuts":"Raccourcis clavier",search:"Rechercher",loading:"Chargement{dots}","export.background":"Couleur d'arri\xE8re-plan de l'export",transparent:"Transparent",auto:"Automatique",light:"Clair",dark:"Sombre"};var kd={"style.menu.color":"Cor","style.menu.fill":"Recheo","style.menu.dash":"Li\xF1a","style.menu.size":"Tama\xF1o","style.menu.keep.open":"Manter aberto","style.menu.font":"Fonte","style.menu.align":"Ali\xF1amento",styles:"Estilos","zoom.in":"Achegar","zoom.out":"Afastar",to:"A","menu.tools":"Ferramentas","menu.transform":"Transformar","menu.file":"Arquivo","menu.edit":"Editar","menu.view":"Ver","menu.preferences":"Preferencias","menu.sign.in":"Iniciar sesi\xF3n","menu.sign.out":"Pechar sesi\xF3n","become.a.sponsor":"Conv\xEDrtete en patrocinador","zoom.to.content":"Achegar ao contido","zoom.to.selection":"Achegar \xE1 selecci\xF3n","zoom.to.fit":"Axustar \xE1 vent\xE1","zoom.to":"Achegar a","preferences.dark.mode":"Modo escuro","preferences.focus.mode":"Modo concentraci\xF3n","preferences.debug.mode":"Modo depuraci\xF3n","preferences.show.grid":"Amosar cuadr\xEDcula","preferences.use.cad.selection":"Usar selecci\xF3n CAD","preferences.keep.stylemenu.open":"Manter men\xFA de estilos aberto","preferences.always.show.snaps":"Amosar puntos de axuste","preferences.rotate.handles":"Control de rotaci\xF3n","preferences.binding.handles":"Control de vinculaci\xF3n","preferences.clone.handles":"Control de clonaci\xF3n",undo:"Desfacer",redo:"Refacer",cut:"Cortar",copy:"Copiar",paste:"Pegar","copy.as":"Copiar como","export.as":"Exportar como","select.all":"Selecionar todo","select.none":"Selecionar nada",delete:"Borrar","new.project":"Novo Proxecto",open:"Abrir",save:"Gardar","save.as":"Gardar como","upload.media":"Subir medios","create.page":"Crear p\xE1xina","new.page":"Nova p\xE1xina","page.name":"Nome de p\xE1xina",duplicate:"Duplicar","shape.options":"Opci\xF3ns de formas",shapes:"Formas",cancel:"Cancelar","copy.invite.link":"Copiar invitaci\xF3n","copy.readonly.link":"Copiar invitaci\xF3n (s\xF3 lectura)","create.multiplayer.project":"Crear proxecto multixogador","copy.multiplayer.project":"Copiar proxecto multixogador",select:"Seleccionar",eraser:"Borrador",draw:"Debuxar",arrow:"Frecha",text:"Texto",sticky:"Pegatina",rectangle:"Rect\xE1ngulo",ellipse:"Elipse",triangle:"Tri\xE1ngulo",line:"Li\xF1a",rotate:"Rotar","lock.aspect.ratio":"Bloquear relaci\xF3n de aspecto","unlock.aspect.ratio":"Desbloquear relaci\xF3n de aspecto",group:"Agrupar",ungroup:"Desagrupar","move.to.back":"Mover ao fondo","move.backward":"Mover atr\xE1s","move.forward":"Mover adiante","move.to.front":"Mover ao fronte","reset.angle":"Restablecer \xE1ngulo",lock:"Bloquear",unlock:"Desbloquear","align.distribute":"Ali\xF1ar / Distribu\xEDr","move.to.page":"Mover \xE1 p\xE1xina","flip.horizontal":"Voltear horizontalmente","flip.vertical":"Voltear verticalmente",move:"Mover","to.front":"Ao fronte",forward:"Adilante",backward:"Atr\xE1s",back:"Fondo",language:"Idioma","translation.link":"Saber m\xE1is","dock.position":"Posici\xF3n do dock",bottom:"Abaixo",left:"Esquerda",right:"Dereita",top:"Arriba",page:"P\xE1xina","keyboard.shortcuts":"Atallos de teclado",search:"Buscar",loading:"Cargando{dots}","export.background":"Exportar fondo",transparent:"Transparente",auto:"Auto",light:"Claro",dark:"Escuro",github:"Github",twitter:"Twitter",discord:"Discord",image:"Imaxe","align.left":"Ali\xF1ar \xE1 esquerda","align.center.x":"Ali\xF1ar ao centro horizontalmente","align.right":"Ali\xF1ar \xE1 dereita","align.top":"Ali\xF1ar arriba","align.center.y":"Ali\xF1ar ao centro verticalmente","align.bottom":"Ali\xF1ar abaixo","distribute.x":"Distribu\xEDr horizontalmente","distribute.y":"Distribu\xEDr verticalmente","stretch.x":"Estirar horizontalmente","stretch.y":"Estirar verticalmente","dialog.save.firsttime":"Queres gardar o proxecto actual?","dialog.save.again":"Queres gardar os cambios ao proxecto actual?","dialog.cancel":"Cancelar","dialog.no":"No","dialog.yes":"S\xED","enter.file.name":"Introduce o nome do arquivo","telva-beta":"Proba o novo telva",white:"Branco",lightGray:"Gris claro",gray:"Gris",black:"Negro",green:"Verde",cyan:"Cian",blue:"Azul",indigo:"Indigo",violet:"Violeta",red:"Vermello",orange:"Laranxa",yellow:"Amarelo",solid:"Cont\xEDnuo",dashed:"Discont\xEDnuo",dotted:"Punteado",small:"Pequeno",medium:"Mediano",large:"Grande"};var Cd={"style.menu.color":"\u05E6\u05D1\u05E2","style.menu.fill":"\u05DE\u05DC\u05D0","style.menu.dash":"\u05D2\u05D1\u05D5\u05DC","style.menu.size":"\u05D2\u05D5\u05D3\u05DC","style.menu.keep.open":"\u05D4\u05E9\u05D0\u05E8 \u05E4\u05EA\u05D5\u05D7","style.menu.font":"\u05D2\u05D5\u05E4\u05DF","style.menu.align":"\u05D9\u05D9\u05E9\u05D5\u05E8",styles:"\u05E2\u05D9\u05E6\u05D5\u05D1","zoom.in":"\u05D4\u05D2\u05D3\u05DC \u05EA\u05E6\u05D5\u05D2\u05D4","zoom.out":"\u05D4\u05E7\u05D8\u05DF \u05EA\u05E6\u05D5\u05D2\u05D4",to:"\u05DC","menu.file":"\u05E7\u05D5\u05D1\u05E5","menu.edit":"\u05E2\u05E8\u05D9\u05DB\u05D4","menu.view":"\u05EA\u05E6\u05D5\u05D2\u05D4","menu.preferences":"\u05DE\u05D0\u05E4\u05D9\u05D9\u05E0\u05D9\u05DD","menu.sign.in":"\u05D4\u05D9\u05E8\u05E9\u05DD","menu.sign.out":"\u05D4\u05EA\u05E0\u05EA\u05E7","become.a.sponsor":"\u05DE\u05EA\u05DF \u05D7\u05E1\u05D5\u05EA","zoom.to.selection":"\u05D6\u05D5\u05DD \u05DC\u05D1\u05D7\u05D9\u05E8\u05D4","zoom.to.fit":"\u05D6\u05D5\u05DD \u05DC\u05D4\u05EA\u05D0\u05DE\u05D4","zoom.to":"\u05D6\u05D5\u05DD \u05DC","preferences.dark.mode":"\u05DE\u05E6\u05D1 \u05D7\u05E9\u05D5\u05DA","preferences.focus.mode":"\u05DE\u05E6\u05D1 \u05E4\u05D5\u05E7\u05D5\u05E1","preferences.debug.mode":"\u05DE\u05E6\u05D1 \u05D3\u05D9\u05D1\u05D0\u05D2","preferences.show.grid":"(\u05D2\u05E8\u05D9\u05D3)\u05D4\u05E8\u05D0\u05D4 \u05E8\u05E9\u05EA \u05E2\u05D9\u05DE\u05D5\u05D3","preferences.use.cad.selection":"\u05E1\u05D9\u05DE\u05D5\u05DF CAD","preferences.keep.stylemenu.open":"\u05D4\u05E9\u05D0\u05E8 \u05EA\u05E4\u05E8\u05D9\u05D8 \u05E2\u05D9\u05E6\u05D5\u05D1 \u05E4\u05EA\u05D5\u05D7","preferences.always.show.snaps":"\u05D4\u05E8\u05D0\u05D4 \u05E7\u05D5\u05D5\u05D9 \u05DE\u05EA\u05D0\u05E8","preferences.rotate.handles":"\u05D4\u05E8\u05D0\u05D4 \u05D9\u05D3\u05D9\u05D5\u05EA \u05E1\u05D9\u05D1\u05D5\u05D1","preferences.binding.handles":"\u05D4\u05E8\u05D0\u05D4 \u05D9\u05D3\u05D9\u05D5\u05EA \u05E7\u05E9\u05D9\u05E8\u05D4","preferences.clone.handles":"\u05D4\u05E8\u05D0\u05D4 \u05D9\u05D3\u05D9\u05D5\u05EA \u05E9\u05D9\u05DB\u05E4\u05D5\u05DC",undo:"\u05D1\u05D8\u05DC",redo:"\u05E2\u05E9\u05D4 \u05DE\u05D7\u05D3\u05E9",cut:"\u05D2\u05D6\u05D5\u05E8",copy:"\u05D4\u05E2\u05EA\u05E7",paste:"\u05D4\u05D3\u05D1\u05E7","copy.as":"\u05D4\u05E2\u05EA\u05E7 \u05DB","export.as":"\u05D9\u05D9\u05E6\u05D0 \u05DB","select.all":"\u05D1\u05D7\u05E8 \u05D4\u05DB\u05DC","select.none":"\u05D1\u05D8\u05DC \u05D1\u05D7\u05D9\u05E8\u05D4",delete:"\u05DE\u05D7\u05E7","new.project":"\u05E4\u05E8\u05D5\u05D9\u05E7\u05D8 \u05D7\u05D3\u05E9",open:"\u05E4\u05EA\u05D7",save:"\u05E9\u05DE\u05D5\u05E8","save.as":"\u05E9\u05DE\u05D5\u05E8 \u05DB","upload.media":"\u05D4\u05E2\u05DC\u05D0\u05EA \u05DE\u05D3\u05D9\u05D4","create.page":"\u05E6\u05D5\u05E8 \u05D3\u05E3","new.page":"\u05D3\u05E3 \u05D7\u05D3\u05E9","page.name":"\u05E9\u05DD \u05D4\u05D3\u05E3",duplicate:"\u05E9\u05DB\u05E4\u05DC",cancel:"\u05D1\u05D8\u05DC","copy.invite.link":"\u05D4\u05E2\u05EA\u05E7 \u05E7\u05D9\u05E9\u05D5\u05E8 \u05D4\u05D6\u05DE\u05E0\u05D4","create.multiplayer.project":"\u05E6\u05D5\u05E8 \u05E4\u05E8\u05D5\u05D9\u05E7\u05D8 \u05E8\u05D1 \u05DE\u05E9\u05EA\u05EA\u05E4\u05D9\u05DD","copy.multiplayer.project":"\u05D4\u05E2\u05EA\u05E7 \u05DC\u05E4\u05E8\u05D5\u05D9\u05E7\u05D8 \u05E8\u05D1 \u05DE\u05E9\u05EA\u05EA\u05E4\u05D9\u05DD",select:"\u05E1\u05DE\u05DF",eraser:"\u05DE\u05D7\u05E7",draw:"\u05E6\u05D9\u05D9\u05E8",arrow:"\u05D7\u05E5",text:"\u05D8\u05E7\u05E1\u05D8",sticky:"\u05D3\u05D1\u05D9\u05E7\u05D9",rectangle:"\u05DE\u05E8\u05D5\u05D1\u05E2",ellipse:"\u05D0\u05DC\u05D9\u05E4\u05E1\u05D4",triangle:"\u05DE\u05E9\u05D5\u05DC\u05E9",line:"\u05E7\u05D5",rotate:"\u05E1\u05D5\u05D1\u05D1","lock.aspect.ratio":"\u05E0\u05E2\u05DC \u05D9\u05D7\u05E1 \u05E8\u05D5\u05D7\u05D1-\u05D2\u05D5\u05D1\u05D4","unlock.aspect.ratio":"\u05E9\u05D7\u05E8\u05E8 \u05E0\u05E2\u05D9\u05DC\u05EA \u05D9\u05D7\u05E1 \u05E8\u05D5\u05D7\u05D1-\u05D2\u05D5\u05D1\u05D4",group:"\u05E7\u05D1\u05E5",ungroup:"\u05D1\u05D8\u05DC \u05E7\u05D9\u05D1\u05D5\u05E5","move.to.back":"\u05D4\u05D1\u05D0 \u05DC\u05EA\u05D7\u05EA\u05D9\u05EA","move.backward":"\u05D4\u05D6\u05D6 \u05D0\u05D7\u05D5\u05E8\u05D4","move.forward":"\u05D4\u05D6\u05D6 \u05E7\u05D3\u05D9\u05DE\u05D4","move.to.front":"\u05D4\u05D1\u05D0 \u05DC\u05D7\u05D6\u05D9\u05EA","reset.angle":"\u05D0\u05E4\u05E1 \u05D6\u05D5\u05D5\u05D9\u05EA",lock:"\u05E0\u05E2\u05DC",unlock:"\u05E9\u05D7\u05E8\u05E8 \u05E0\u05E2\u05D9\u05DC\u05D4","move.to.page":"\u05D4\u05D6\u05D6 \u05DC\u05D3\u05E3","flip.horizontal":"\u05D4\u05E4\u05D5\u05DA \u05D0\u05D5\u05E4\u05E7\u05D9\u05EA","flip.vertical":"\u05D4\u05E4\u05D5\u05DA \u05D0\u05E0\u05DB\u05D9\u05EA",move:"\u05D4\u05D6\u05D6","to.front":"\u05D4\u05D1\u05D0 \u05DC\u05E7\u05D3\u05D9\u05DE\u05D4",forward:"\u05E7\u05D3\u05D9\u05DE\u05D4",backward:"\u05D0\u05D7\u05D5\u05E8\u05D4",back:"\u05D1\u05D7\u05D6\u05E8\u05D4",language:"\u05E9\u05E4\u05D4"};var wd={"style.menu.color":"Colore","style.menu.fill":"Riempi","style.menu.dash":"Tratteggo","style.menu.size":"Dimensione","style.menu.keep.open":"Mantieni aperto","style.menu.font":"Font","style.menu.align":"Allineamento",styles:"Stile","zoom.in":"Ingrandisci","zoom.out":"Rimpicciolisci",to:"Imposta","menu.file":"File","menu.edit":"Modifica","menu.view":"Visualizzazione","menu.preferences":"Preferenze","menu.sign.in":"Accedi","menu.sign.out":"Esci","become.a.sponsor":"Sponsorizza","zoom.to.selection":"Adatta alla selezione","zoom.to.fit":"Adatta","zoom.to":"Ingrandisci","preferences.dark.mode":"Modalit\xE0 scura","preferences.focus.mode":"Modalit\xE0 zen","preferences.debug.mode":"Modalit\xE0 sviluppatore","preferences.show.grid":"Mostra griglia","preferences.use.cad.selection":"Selezione CAD","preferences.keep.stylemenu.open":"Mantieni menu stile aperto","preferences.always.show.snaps":"Mostra sempre le guide","preferences.rotate.handles":"Controlli d'inclinazione","preferences.binding.handles":"Controlli d'associazione","preferences.clone.handles":"Controlli di clonazione",undo:"Annulla",redo:"Ripristina",cut:"Taglia",copy:"Copia",paste:"Incolla","copy.as":"Copia come","export.as":"Esporta come","select.all":"Seleziona tutto","select.none":"Deseleziona tutto",delete:"Elimina","new.project":"Nuovo progetto",open:"Apri",save:"Salva","save.as":"Salva come","upload.media":"Carica contenuti multimediali","create.page":"Crea nuova pagina","new.page":"Nuova pagina","page.name":"Nome pagina",page:"Pagina",duplicate:"Duplica",cancel:"Chiudi","copy.invite.link":"Copia link invito","create.multiplayer.project":"Crea progetto multiplayer","copy.multiplayer.project":"Trasforma in progetto multiplayer",select:"Seleziona",eraser:"Gomma",draw:"Matita",arrow:"Freccia",text:"Casella di testo",sticky:"Post-it",rectangle:"Rettangolo",ellipse:"Ellisse",triangle:"Triangolo",line:"Linea",rotate:"Ruota","lock.aspect.ratio":"Blocca rapporto lati","unlock.aspect.ratio":"Sblocca rapporto lati",group:"Raggruppa",ungroup:"Separa","move.to.back":"Muovi in fondo","move.backward":"Sposta indietro","move.forward":"Sposta avanti","move.to.front":"Muovi in fronte","reset.angle":"Reimposta angolo",lock:"Blocca",unlock:"Sblocca","move.to.page":"Trasferisci a pagina","flip.horizontal":"Ribalta orizzontalmente","flip.vertical":"Ribalta verticalmente",move:"Sposta","to.front":"In primo piano",forward:"Sposta avanti",backward:"Sposta indietro",back:"In fondo",language:"Lingua","dock.position":"Posizione dock",bottom:"In basso",left:"Sinistra",right:"Destra",top:"In Alto"};var Id={"style.menu.color":"\u8272","style.menu.fill":"\u5857\u308A\u3064\u3076\u3057","style.menu.dash":"\u7DDA","style.menu.size":"\u592A\u3055/\u30B5\u30A4\u30BA","style.menu.keep.open":"\u5E38\u306B\u8868\u793A","style.menu.font":"\u30D5\u30A9\u30F3\u30C8","style.menu.align":"\u914D\u7F6E",styles:"\u30B9\u30BF\u30A4\u30EB","zoom.in":"\u62E1\u5927","zoom.out":"\u7E2E\u5C0F",to:" ","menu.file":"\u30D5\u30A1\u30A4\u30EB","menu.edit":"\u7DE8\u96C6","menu.view":"\u8868\u793A","menu.preferences":"\u8A2D\u5B9A","menu.sign.in":"\u30B5\u30A4\u30F3\u30A4\u30F3","menu.sign.out":"\u30B5\u30A4\u30F3\u30A2\u30A6\u30C8","become.a.sponsor":"\u652F\u63F4\u3059\u308B","zoom.to.selection":"\u9078\u629E\u3057\u305F\u30A2\u30A4\u30C6\u30E0\u306B\u5408\u308F\u305B\u3066\u62E1\u5927","zoom.to.fit":"\u62E1\u5927\u3057\u3066\u3059\u3079\u3066\u3092\u8868\u793A","zoom.to":"\u62E1\u5927\u7387","preferences.dark.mode":"\u30C0\u30FC\u30AF\u30E2\u30FC\u30C9","preferences.focus.mode":"\u30D5\u30A9\u30FC\u30AB\u30B9\u30E2\u30FC\u30C9","preferences.debug.mode":"\u30C7\u30D0\u30C3\u30B0\u30E2\u30FC\u30C9","preferences.show.grid":"\u30B0\u30EA\u30C3\u30C9\u3092\u8868\u793A","preferences.use.cad.selection":"CAD\u306E\u9078\u629E\u6CD5\u3092\u4F7F\u7528","preferences.keep.stylemenu.open":"\u30B9\u30BF\u30A4\u30EB\u30E1\u30CB\u30E5\u30FC\u3092\u5E38\u306B\u8868\u793A","preferences.always.show.snaps":"\u30B9\u30CA\u30C3\u30D7\u3092\u5E38\u306B\u8868\u793A","preferences.rotate.handles":"\u56DE\u8EE2\u30CF\u30F3\u30C9\u30EB\u3092\u8868\u793A","preferences.binding.handles":"\u7D50\u5408\u30CF\u30F3\u30C9\u30EB\u3092\u8868\u793A","preferences.clone.handles":"\u30AF\u30ED\u30FC\u30F3\u30CF\u30F3\u30C9\u30EB\u3092\u8868\u793A",undo:"\u5143\u306B\u623B\u3059",redo:"\u3084\u308A\u76F4\u3057",cut:"\u5207\u308A\u53D6\u308A",copy:"\u30B3\u30D4\u30FC",paste:"\u8CBC\u308A\u4ED8\u3051","copy.as":"\u5F62\u5F0F\u3092\u9078\u629E\u3057\u3066\u30B3\u30D4\u30FC","export.as":"\u5F62\u5F0F\u3092\u9078\u629E\u3057\u3066\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8","select.all":"\u3059\u3079\u3066\u9078\u629E","select.none":"\u9078\u629E\u3092\u89E3\u9664",delete:"\u524A\u9664","new.project":"\u65B0\u3057\u3044\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",open:"\u958B\u304F",save:"\u4FDD\u5B58","save.as":"\u540D\u524D\u3092\u3064\u3051\u3066\u4FDD\u5B58","upload.media":"\u30E1\u30C7\u30A3\u30A2\u3092\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9","create.page":"\u30DA\u30FC\u30B8\u3092\u4F5C\u6210","new.page":"\u65B0\u898F\u30DA\u30FC\u30B8","page.name":"\u30DA\u30FC\u30B8\u540D",duplicate:"\u8907\u88FD",cancel:"\u30AD\u30E3\u30F3\u30BB\u30EB","copy.invite.link":"\u5171\u6709\u30EA\u30F3\u30AF\u3092\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u306B\u30B3\u30D4\u30FC","create.multiplayer.project":"\u30DE\u30EB\u30C1\u30D7\u30EC\u30A4\u30E4\u30FC\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u4F5C\u6210","copy.multiplayer.project":"\u30DE\u30EB\u30C1\u30D7\u30EC\u30A4\u30E4\u30FC\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u30B3\u30D4\u30FC",select:"\u9078\u629E",eraser:"\u6D88\u3057\u30B4\u30E0",draw:"\u63CF\u753B",arrow:"\u77E2\u5370",text:"\u30C6\u30AD\u30B9\u30C8",sticky:"\u3075\u305B\u3093",rectangle:"\u9577\u65B9\u5F62",ellipse:"\u6955\u5186\u5F62",triangle:"\u4E09\u89D2\u5F62",line:"\u7DDA",rotate:"\u56DE\u8EE2","lock.aspect.ratio":"\u7E26\u6A2A\u6BD4\u3092\u56FA\u5B9A","unlock.aspect.ratio":"\u7E26\u6A2A\u6BD4\u306E\u56FA\u5B9A\u3092\u89E3\u9664",group:"\u30B0\u30EB\u30FC\u30D4\u30F3\u30B0",ungroup:"\u30B0\u30EB\u30FC\u30D7\u89E3\u9664","move.to.back":"\u6700\u80CC\u9762\u306B\u79FB\u52D5","move.backward":"\u3072\u3068\u3064\u5F8C\u308D\u306B\u79FB\u52D5","move.forward":"\u3072\u3068\u3064\u524D\u306B\u79FB\u52D5","move.to.front":"\u6700\u524D\u9762\u306B\u79FB\u52D5","reset.angle":"\u89D2\u5EA6\u3092\u521D\u671F\u5316",lock:"\u30ED\u30C3\u30AF",unlock:"\u30A2\u30F3\u30ED\u30C3\u30AF","move.to.page":"\u30DA\u30FC\u30B8\u3078\u79FB\u52D5","flip.horizontal":"\u6C34\u5E73\u65B9\u5411\u306B\u53CD\u8EE2","flip.vertical":"\u5782\u76F4\u65B9\u5411\u306B\u53CD\u8EE2",move:"\u79FB\u52D5","to.front":"\u6700\u524D\u9762\u3078",forward:"\u3072\u3068\u3064\u524D\u3078",backward:"\u3072\u3068\u3064\u5F8C\u308D\u3078",back:"\u6700\u80CC\u9762\u3078",language:"\u8A00\u8A9E"};var Pd={"style.menu.color":"\uC0C9\uAE54","style.menu.fill":"\uCC44\uC6B0\uAE30","style.menu.dash":"\uD14C\uB450\uB9AC","style.menu.size":"\uD06C\uAE30","style.menu.keep.open":"\uD56D\uC0C1 \uC5F4\uAE30","style.menu.font":"\uAE00\uAF34","style.menu.align":"\uC815\uB82C",styles:"\uC2A4\uD0C0\uC77C","zoom.in":"\uD655\uB300","zoom.out":"\uCD95\uC18C",to:"To","menu.tools":"\uB3C4\uAD6C","menu.transform":"\uBCC0\uD658","menu.file":"\uD30C\uC77C","menu.edit":"\uD3B8\uC9D1","menu.view":"\uBCF4\uAE30","menu.preferences":"\uC124\uC815","menu.sign.in":"\uB85C\uADF8\uC778","menu.sign.out":"\uB85C\uADF8\uC544\uC6C3","become.a.sponsor":"\uD6C4\uC6D0\uC790 \uB418\uAE30","zoom.to.content":"\uCEE8\uD150\uCE20\uB85C \uB3CC\uC544\uAC00\uAE30","zoom.to.selection":"\uC120\uD0DD \uC694\uC18C\uC5D0 \uB9DE\uCD94\uAE30","zoom.to.fit":"\uC804\uCCB4\uC5D0 \uB9DE\uCD94\uAE30","zoom.to":"\uB9DE\uCD94\uAE30","preferences.dark.mode":"\uB2E4\uD06C \uBAA8\uB4DC","preferences.focus.mode":"\uC9D1\uC911 \uBAA8\uB4DC","preferences.debug.mode":"\uB514\uBC84\uADF8 \uBAA8\uB4DC","preferences.show.grid":"\uACA9\uC790 \uBCF4\uAE30","preferences.use.cad.selection":"CAD \uC120\uD0DD \uC0AC\uC6A9","preferences.keep.stylemenu.open":"\uC2A4\uD0C0\uC77C \uBA54\uB274 \uD56D\uC0C1 \uC5F4\uAE30","preferences.always.show.snaps":"Snap \uD56D\uC0C1 \uC5F4\uAE30","preferences.rotate.handles":"\uD68C\uC804 \uBCF4\uC774\uAE30","preferences.binding.handles":"\uBC14\uC778\uB529 \uBCF4\uC774\uAE30","preferences.clone.handles":"\uBCF5\uC81C \uBCF4\uC774\uAE30",undo:"\uC2E4\uD589\uCDE8\uC18C",redo:"\uC7AC\uC2E4\uD589",cut:"\uC790\uB974\uAE30",copy:"\uBCF5\uC0AC",paste:"\uBD99\uC5EC\uB123\uAE30","copy.as":"\uC774\uBBF8\uC9C0\uB85C \uBCF5\uC0AC","export.as":"\uB0B4\uBCF4\uB0B4\uAE30","select.all":"\uC804\uCCB4 \uC120\uD0DD","select.none":"\uC120\uD0DD \uD574\uC81C",delete:"\uC0AD\uC81C","new.project":"\uC0C8 \uD504\uB85C\uC81D\uD2B8",open:"\uC5F4\uAE30",save:"\uC800\uC7A5","save.as":"\uB2E4\uB978 \uC774\uB984\uC73C\uB85C \uC800\uC7A5","upload.media":"\uBBF8\uB514\uC5B4 \uC5C5\uB85C\uB4DC","create.page":"\uC0C8 \uD398\uC774\uC9C0 \uC0DD\uC131","new.page":"\uC0C8 \uD398\uC774\uC9C0","page.name":"\uD398\uC774\uC9C0 \uC774\uB984",duplicate:"\uBCF5\uC81C",cancel:"\uCDE8\uC18C","copy.invite.link":"\uCD08\uB300 \uB9C1\uD06C \uBCF5\uC0AC","copy.readonly.link":"\uC77D\uAE30 \uC804\uC6A9 \uB9C1\uD06C \uBCF5\uC0AC","create.multiplayer.project":"\uC2E4\uC2DC\uAC04 \uD611\uC5C5 \uD504\uB85C\uC81D\uD2B8 \uC0DD\uC131","copy.multiplayer.project":"\uC2E4\uC2DC\uAC04 \uD611\uC5C5 \uD504\uB85C\uC81D\uD2B8\uB85C \uBCF5\uC81C",select:"\uC120\uD0DD",eraser:"\uC9C0\uC6B0\uAC1C",draw:"\uD39C",arrow:"\uD654\uC0B4\uD45C",text:"\uD14D\uC2A4\uD2B8",sticky:"\uC2A4\uD2F0\uD0A4\uB178\uD2B8",rectangle:"\uC0AC\uAC01\uD615",ellipse:"\uC6D0",triangle:"\uC0BC\uAC01\uD615",line:"\uC120",rotate:"\uD68C\uC804","lock.aspect.ratio":"\uBE44\uC728 \uC7A0\uAE08","unlock.aspect.ratio":"\uBE44\uC728 \uC7A0\uAE08 \uD574\uC81C",group:"\uADF8\uB8F9\uD654",ungroup:"\uADF8\uB8F9\uD654 \uD574\uC81C","move.to.back":"\uB9E8 \uB4A4\uB85C \uBCF4\uB0B4\uAE30","move.backward":"\uB4A4\uB85C \uBCF4\uB0B4\uAE30","move.forward":"\uC55E\uC73C\uB85C \uAC00\uC838\uC624\uAE30","move.to.front":"\uB9E8 \uC55E\uC73C\uB85C \uAC00\uC838\uC624\uAE30","reset.angle":"\uD68C\uC804 \uCD08\uAE30\uD654",lock:"\uC7A0\uAE08",unlock:"\uC7A0\uAE08 \uD574\uC81C","align.distribute":"\uC815\uB82C / \uAC04\uACA9 \uB9DE\uCD94\uAE30","move.to.page":"\uD398\uC774\uC9C0\uB85C \uC774\uB3D9","flip.horizontal":"\uC88C\uC6B0 \uB300\uCE6D","flip.vertical":"\uC0C1\uD558 \uB300\uCE6D",move:"\uC21C\uC11C","to.front":"\uB9E8 \uC55E\uC73C\uB85C",forward:"\uC55E\uC73C\uB85C",backward:"\uB4A4\uB85C",back:"\uB9E8 \uB4A4\uB85C",language:"\uC5B8\uC5B4","translation.link":"\uB354 \uC54C\uC544\uBCF4\uAE30","dock.position":"\uB3C5 \uC704\uCE58",bottom:"\uD558\uB2E8",left:"\uC67C\uCABD",right:"\uC624\uB978\uCABD",top:"\uC0C1\uB2E8",page:"\uD398\uC774\uC9C0","keyboard.shortcuts":"\uD0A4\uBCF4\uB4DC \uB2E8\uCD95\uD0A4",search:"\uAC80\uC0C9",loading:"\uB85C\uB529{dots}","export.background":"\uBC30\uACBD \uB0B4\uBCF4\uB0B4\uAE30",transparent:"\uD22C\uBA85",auto:"\uC790\uB3D9",light:"\uB77C\uC774\uD2B8",dark:"\uB2E4\uD06C",github:"Github",twitter:"Twitter",discord:"Discord",image:"\uC774\uBBF8\uC9C0","align.left":"\uC67C\uCABD \uC815\uB82C","align.center.x":"\uC218\uD3C9 \uC911\uC559 \uC815\uB82C","align.right":"\uC624\uB978\uCABD \uC815\uB82C","align.top":"\uC0C1\uB2E8 \uC815\uB82C","align.center.y":"\uC218\uC9C1 \uC911\uC559 \uC815\uB82C","align.bottom":"\uD558\uB2E8 \uC815\uB82C","distribute.x":"\uAC00\uB85C \uAC04\uACA9 \uB9DE\uCD94\uAE30","distribute.y":"\uC138\uB85C \uAC04\uACA9 \uB9DE\uCD94\uAE30","stretch.x":"\uC218\uD3C9\uC73C\uB85C \uB298\uB9AC\uAE30","stretch.y":"\uC218\uC9C1\uC73C\uB85C \uB298\uB9AC\uAE30","dialog.save.firsttime":"\uD604\uC7AC \uD504\uB85C\uC81D\uD2B8\uB97C \uC800\uC7A5\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?","dialog.save.again":"\uBCC0\uACBD\uC0AC\uD56D\uC744 \uD604\uC7AC \uD504\uB85C\uC81D\uD2B8\uC5D0 \uC800\uC7A5\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?","dialog.cancel":"\uCDE8\uC18C","dialog.no":"\uC544\uB2C8\uC624","dialog.yes":"\uB124","enter.file.name":"\uD30C\uC77C \uC774\uB984\uC744 \uC785\uB825\uD574\uC8FC\uC138\uC694","telva-beta":"\uC0C8\uB85C\uC6B4 telva\uB97C \uC0AC\uC6A9\uD574\uBCF4\uC138\uC694"};var Rd={"style.menu.color":"\u0631\u06D5\u0646\u06AF","style.menu.fill":"\u067E\u0695\u06A9\u0631\u062F\u0646\u06D5\u0648\u06D5","style.menu.dash":"\u0644\u06D5\u062A \u0644\u06D5\u062A","style.menu.size":"\u0642\u06D5\u0628\u0627\u0631\u06D5","style.menu.keep.open":"\u0628\u06D5 \u06A9\u0631\u0627\u0648\u06D5\u06CC\u06CC \u0628\u0645\u06CE\u0646\u06D5\u0631\u06D5\u0648\u06D5","style.menu.font":"\u0647\u06CE\u06B5","style.menu.align":"\u0695\u06CE\u06A9\u062E\u0633\u062A\u0646",styles:"\u0646\u06D5\u062E\u0634\u06D5\u06A9\u0627\u0646","zoom.in":"\u0647\u06CE\u0646\u0627\u0646\u06D5 \u067E\u06CE\u0634\u06D5\u0648\u06D5","zoom.out":"\u062F\u0648\u0648\u0631 \u062E\u0633\u062A\u0646\u06D5\u0648\u06D5",to:"\u0628\u06C6","menu.tools":"\u0626\u0627\u0645\u0631\u0627\u0632\u06D5\u06A9\u0627\u0646","menu.transform":"\u06AF\u06C6\u0695\u06CC\u0646","menu.file":"\u0641\u0627\u06CC\u0644\u06CE\u06A9","menu.edit":"\u062F\u06D5\u0633\u062A\u06A9\u0627\u0631\u06CC","menu.view":"\u062F\u06CC\u0645\u06D5\u0646","menu.preferences":"\u062E\u0648\u0627\u0633\u062A","menu.sign.in":"\u0686\u0648\u0648\u0646\u06D5 \u0698\u0648\u0648\u0631\u06D5\u0648\u06D5","menu.sign.out":"\u062F\u06D5\u0631\u0686\u0648\u0648\u0646","become.a.sponsor":"\u0633\u067E\u06C6\u0646\u0633\u06D5\u0631 \u0628\u06D5","zoom.to.content":"\u0632\u0648\u0648\u0645 \u0628\u06A9\u06D5 \u0628\u06C6 \u0646\u0627\u0648\u06D5\u0695\u06C6\u06A9","zoom.to.selection":"\u0632\u0648\u0648\u0645 \u0628\u06A9\u06D5 \u0628\u06C6 \u0647\u06D5\u06B5\u0628\u0698\u0627\u0631\u062F\u0646","zoom.to.fit":"\u0632\u0648\u0648\u0645 \u0628\u06A9\u06D5 \u0628\u06C6 \u0626\u06D5\u0648\u06D5\u06CC \u0644\u06D5\u06AF\u06D5\u06B5\u06CC\u062F\u0627 \u0628\u06AF\u0648\u0646\u062C\u06CE\u062A","zoom.to":"\u0632\u0648\u0648\u0645 \u0628\u06A9\u06D5 \u0628\u06C6","preferences.dark.mode":"\u062F\u06C6\u062E\u06CC \u062A\u0627\u0631\u06CC\u06A9","preferences.focus.mode":"\u062F\u06C6\u062E\u06CC \u0641\u06C6\u06A9\u06D5\u0633","preferences.debug.mode":"\u0645\u06C6\u062F\u06CC \u0647\u06D5\u06B5\u06D5\u062F\u06C6\u0632\u06CC\u0646","preferences.show.grid":"\u062A\u06C6\u0695\u06CC \u067E\u06CC\u0634\u0627\u0646 \u0628\u062F\u06D5","preferences.use.cad.selection":"\u0628\u06D5\u06A9\u0627\u0631\u0628\u0647\u06CE\u0646\u06D5 CAD \u0647\u06D5\u06B5\u0628\u0698\u0627\u0631\u062F\u0646\u06CC","preferences.keep.stylemenu.open":"\u0645\u06CE\u0646\u06C6\u06CC \u0633\u062A\u0627\u06CC\u0644 \u0628\u06D5 \u06A9\u0631\u0627\u0648\u06D5\u06CC\u06CC \u0628\u0647\u06CE\u06B5\u06D5\u0631\u06D5\u0648\u06D5","preferences.always.show.snaps":"\u0647\u06D5\u0645\u06CC\u0634\u06D5 \u0648\u06CE\u0646\u06D5\u06CC \u062E\u06CE\u0631\u0627 \u067E\u06CC\u0634\u0627\u0646 \u0628\u062F\u06D5","preferences.rotate.handles":"\u0633\u0648\u0631\u0627\u0646\u06D5\u0648\u06D5\u06CC \u062F\u06D5\u0633\u062A\u06D5\u06A9\u0627\u0646","preferences.binding.handles":"\u0628\u06D5\u0633\u062A\u0646\u06D5\u0648\u06D5\u06CC \u062F\u06D5\u0633\u062A\u06D5\u06A9\u0627\u0646","preferences.clone.handles":"\u06A9\u0644\u06C6\u0646 \u06A9\u0631\u062F\u0646\u06CC \u062F\u06D5\u0633\u062A\u06D5\u06A9\u0627\u0646",undo:"\u067E\u0627\u0634\u06D5\u06A9\u0634\u06D5 \u0628\u06A9\u06D5",redo:"\u062F\u0648\u0648\u0628\u0627\u0631\u06D5 \u0628\u06CC\u06A9\u06D5\u0631\u06D5\u0648\u06D5",cut:"\u0628\u0695\u06CC\u0646",copy:"\u06A9\u06C6\u067E\u06CC \u0628\u06A9\u06D5",paste:"\u067E\u06D5\u06CC\u0633\u062A \u0628\u06A9\u06D5","copy.as":"\u06A9\u06C6\u067E\u06CC \u0648\u06D5\u06A9","export.as":"\u0647\u06D5\u0646\u0627\u0631\u062F\u06D5\u06A9\u0631\u062F\u0646 \u0648\u06D5\u06A9","select.all":"\u0647\u06D5\u0645\u0648\u0648\u06CC\u0627\u0646 \u0647\u06D5\u06B5\u0628\u0698\u06CE\u0631\u0647","select.none":"\u0647\u06CC\u0686 \u0647\u0647\u200C\u06B5\u0645\u0647\u200C\u0628\u0698\u06CE\u0631\u0647\u200C",delete:"\u0633\u0695\u06CC\u0646\u06D5\u0648\u06D5","new.project":"\u067E\u0695\u06C6\u0698\u06D5\u06CC \u0646\u0648\u06CE",open:"\u06A9\u0631\u062F\u0646\u06D5\u0648\u06D5",save:"\u0647\u06D5\u06B5\u06AF\u0631\u062A\u0646","save.as":"\u0647\u06D5\u06B5\u06AF\u0631\u062A\u0646 \u0648\u06D5\u06A9","upload.media":"\u062F\u0627\u06AF\u0631\u062A\u0646\u06CC \u0645\u06CC\u062F\u06CC\u0627","create.page":"\u062F\u0631\u0648\u0633\u062A\u06A9\u0631\u062F\u0646\u06CC \u0644\u0627\u067E\u06D5\u0695\u06D5","new.page":"\u0644\u0627\u067E\u06D5\u0695\u06D5\u06CC \u0646\u0648\u06CE","page.name":"\u0646\u0627\u0648\u06CC \u0644\u0627\u067E\u06D5\u0695\u06D5",duplicate:"\u062F\u0648\u0648\u0628\u0627\u0631\u06D5\u06A9\u0631\u062F\u0646\u06D5\u0648\u06D5",cancel:"\u0695\u06D5\u062A\u06A9\u0631\u062F\u0646\u06D5\u0648\u06D5","copy.invite.link":"\u0644\u06CC\u0646\u06A9\u06CC \u0628\u0627\u0646\u06AF\u0647\u06CE\u0634\u062A\u06A9\u0631\u062F\u0646 \u06A9\u06C6\u067E\u06CC \u0628\u06A9\u06D5","copy.readonly.link":"\u0628\u06D5 \u0634\u06CE\u0648\u06D5\u06CC\u06D5\u06A9\u06CC \u0647\u06D5\u0695\u06D5\u0645\u06D5\u06A9\u06CC \u06A9\u06C6\u067E\u06CC \u0628\u06A9\u06D5","create.multiplayer.project":"\u062F\u0631\u0648\u0633\u062A\u06A9\u0631\u062F\u0646\u06CC \u067E\u0631\u06C6\u0698\u06D5\u06CC \u0641\u0631\u06D5 \u0628\u06D5\u06A9\u0627\u0631\u0647\u06CE\u0646\u06D5\u0631","copy.multiplayer.project":"\u06A9\u06C6\u067E\u06CC \u0628\u06A9\u06D5 \u0628\u06C6 \u067E\u0695\u06C6\u0698\u06D5\u06CC\u06D5\u06A9\u06CC \u0641\u0631\u06D5 \u0628\u06D5\u06A9\u0627\u0631\u0647\u06CE\u0646\u06D5\u0631",select:"\u062F\u06D5\u0633\u0646\u06CC\u0627\u0634\u0646\u06A9\u0631\u062F\u0646",eraser:"\u0633\u0695\u06D5\u0631\u06D5\u0648\u06D5",draw:"\u0648\u06CE\u0646\u06D5\u06A9\u06CE\u0634\u0627\u0646",arrow:"\u062A\u06CC\u0631",text:"\u062F\u06D5\u0642",sticky:"\u0686\u06D5\u0633\u067E\u0627\u0648",rectangle:"\u0644\u0627\u06A9\u06CE\u0634\u06D5",ellipse:"\u0628\u06CC\u0628\u0644\u06CC",triangle:"\u0633\u06CE\u06AF\u06C6\u0634\u06D5",line:"\u0647\u06CE\u06B5",rotate:"\u0633\u0648\u0695\u0627\u0646\u06D5\u0648\u06D5","lock.aspect.ratio":"\u0642\u0641\u06B5\u06A9\u0631\u062F\u0646\u06CC \u0695\u06CE\u0698\u06D5\u06CC \u0695\u0648\u0648\u0628\u06D5\u0631\u06CC","unlock.aspect.ratio":"\u06A9\u0631\u062F\u0646\u06D5\u0648\u06D5\u06CC \u0695\u06CE\u0698\u06D5\u06CC \u0695\u0648\u0648\u0628\u06D5\u0631\u06CC",group:"\u06A9\u06C6\u0645\u06D5\u06B5\u06D5",ungroup:"\u0644\u0627\u0628\u0631\u062F\u0646\u06CC \u06A9\u06C6\u0645\u06D5\u06B5\u06D5","move.to.back":"\u0628\u0686\u06C6 \u0628\u06C6 \u067E\u0634\u062A\u06D5\u0648\u06D5","move.backward":"\u0628\u06D5\u0631\u06D5\u0648 \u062F\u0648\u0627\u0648\u06D5","move.forward":"\u0628\u0695\u06C6 \u067E\u06CE\u0634\u06D5\u0648\u06D5","move.to.front":"\u0628\u06AF\u0648\u0627\u0632\u0631\u06CE\u062A\u06D5\u0648\u06D5 \u0628\u06C6 \u067E\u06CE\u0634\u06D5\u0648\u06D5","reset.angle":"\u06AF\u06C6\u0634\u06D5\u06CC \u067E\u0634\u0648\u0648\u062F\u0627\u0646",lock:"\u0642\u0648\u0641\u06B5",unlock:"\u0644\u0627\u0628\u0631\u062F\u0646\u06CC \u0642\u0648\u0641\u06B5","move.to.page":"\u0628\u0686\u06C6 \u0628\u06C6 \u0644\u0627\u067E\u06D5\u0695\u06D5","flip.horizontal":"\u0626\u0627\u0633\u06C6\u06CC\u06CC \u0648\u06D5\u0631\u06AF\u06D5\u0695\u0627\u0646\u062F\u0646","flip.vertical":"\u0633\u062A\u0648\u0646\u06CC \u0648\u06D5\u0631\u06AF\u06D5\u0695\u0627\u0646\u062F\u0646",move:"\u062C\u0648\u0648\u06B5\u06D5","to.front":"\u0628\u06C6 \u067E\u06CE\u0634\u06D5\u0648\u06D5",forward:"\u0628\u06C6\u067E\u0634\u062A\u06D5\u0648\u06D5",backward:"\u0628\u06C6\u062F\u0648\u0627\u0648\u06D5",back:"\u06AF\u06D5\u0695\u0627\u0646\u06D5\u0648\u06D5",language:"\u0632\u0645\u0627\u0646","translation.link":"\u0628\u06D5\u0633\u062A\u06D5\u0631\u06CC \u0648\u06D5\u0631\u06AF\u06CE\u0695\u0627\u0646","dock.position":"\u0634\u0648\u06CE\u0646\u06CC \u062F\u06C6\u06A9",bottom:"\u062E\u0648\u0627\u0631\u06D5\u0648\u06D5",left:"\u0686\u06D5\u067E",right:"\u0695\u0627\u0633\u062A",top:"\u0633\u06D5\u0631\u0648\u0648",page:"\u0644\u0627\u067E\u06D5\u0695\u06D5","keyboard.shortcuts":"\u06A9\u0648\u0631\u062A\u06A9\u0631\u0627\u0648\u06D5\u06A9\u0627\u0646\u06CC \u062A\u06D5\u062E\u062A\u06D5\u06A9\u0644\u06CC\u0644",search:"\u06AF\u06D5\u0695\u0627\u0646",loading:"\u0628\u0627\u0631\u06A9\u0631\u062F\u0646","export.background":"\u067E\u0627\u0634\u062E\u0627\u0646\u06CC \u0647\u06D5\u0646\u0627\u0631\u062F\u06D5\u06A9\u0631\u062F\u0646",transparent:"\u0695\u0648\u0648\u0646",auto:"\u0626\u06C6\u062A\u06C6\u0645\u0627\u062A\u06CC\u06A9\u06CC",light:"\u0631\u0648\u0648\u0646\u0627\u06A9",dark:"\u062A\u0627\u0631\u06CC\u06A9"};var Dd={"style.menu.color":"Color","style.menu.fill":"Fill","style.menu.dash":"Dash","style.menu.size":"Size","style.menu.keep.open":"Keep Open","style.menu.font":"Font","style.menu.align":"Align",styles:"Styles","zoom.in":"Zoom In","zoom.out":"Zoom Out",to:"To","menu.tools":"Tools","menu.transform":"Transform","menu.file":"File","menu.edit":"Edit","menu.view":"View","menu.preferences":"Preferences","menu.sign.in":"Sign In","menu.sign.out":"Sign Out","become.a.sponsor":"Become a Sponsor","zoom.to.content":"Back to content","zoom.to.selection":"Zoom to Selection","zoom.to.fit":"Zoom to Fit","zoom.to":"Zoom to","preferences.dark.mode":"Dark Mode","preferences.focus.mode":"Focus Mode","preferences.debug.mode":"Debug Mode","preferences.show.grid":"Show Grid","preferences.use.cad.selection":"Use CAD Selection","preferences.keep.stylemenu.open":"Keep Style Menu Open","preferences.always.show.snaps":"Always Show Snaps","preferences.rotate.handles":"Rotate Handles","preferences.binding.handles":"Binding Handles","preferences.clone.handles":"Clone Handles",undo:"Undo",redo:"Redo",cut:"Cut",copy:"Copy",paste:"Paste","copy.as":"Copy As","export.as":"Export As","select.all":"Select All","select.none":"Select None",delete:"Delete","new.project":"New Project",open:"Open",save:"Save","save.as":"Save As","upload.media":"Upload Media","create.page":"Create Page","new.page":"New Page","page.name":"Page Name",duplicate:"Duplicate","shape.options":"Shape Options",shapes:"Shapes",cancel:"Cancel","copy.invite.link":"Copy Invite Link","copy.readonly.link":"Copy ReadOnly Link","create.multiplayer.project":"Create a Multiplayer Project","copy.multiplayer.project":"Copy to Multiplayer Project",select:"Select",eraser:"Eraser",draw:"Draw",arrow:"Arrow",text:"Text",sticky:"Sticky",rectangle:"Rectangle",ellipse:"Ellipse",triangle:"Triangle",line:"Line",rotate:"Rotate","lock.aspect.ratio":"Lock Aspect Ratio","unlock.aspect.ratio":"Unlock Aspect Ratio",group:"Group",ungroup:"Ungroup","move.to.back":"Move to Back","move.backward":"Move Backward","move.forward":"Move Forward","move.to.front":"Move to Front","reset.angle":"Reset Angle",lock:"Lock",unlock:"Unlock","align.distribute":"Align / Distribute","move.to.page":"Move to Page","flip.horizontal":"Flip Horizontal","flip.vertical":"Flip Vertical",move:"Move","to.front":"To Front",forward:"Forward",backward:"Backward",back:"To Back",language:"Language","translation.link":"Learn More","dock.position":"Dock Position",bottom:"Bottom",left:"Left",right:"Right",top:"Top",page:"Page","keyboard.shortcuts":"Keyboard shortcuts",search:"Search",loading:"Loading{dots}","export.background":"Export Background",transparent:"Transparent",auto:"Auto",light:"Light",dark:"Dark",github:"Github",twitter:"Twitter",discord:"Discord",image:"Image","align.left":"Align Left","align.center.x":"Align Horizontal Center","align.right":"Align Right","align.top":"Align Top","align.center.y":"Align Vertical Center","align.bottom":"Align Bottom","distribute.x":"Distribute Horizontal","distribute.y":"Distribute Vertical","stretch.x":"Stretch Horizontal","stretch.y":"Stretch Vertical","dialog.save.firsttime":"Do you want to save your current project?","dialog.save.again":"Do you want to save changes to your current project?","dialog.cancel":"Cancel","dialog.no":"No","dialog.yes":"Yes","enter.file.name":"Enter file name","telva-beta":"Try the new telva",white:"White",lightGray:"Light gray",gray:"Gray",black:"Black",green:"Green",cyan:"Cyan",blue:"Blue",indigo:"Indigo",violet:"Violet",red:"Red",orange:"Orange",yellow:"Yellow",solid:"Solid",dashed:"Dashed",dotted:"Dotted",small:"Small",medium:"Medium",large:"Large"};var Ed={"style.menu.color":"\u1021\u101B\u1031\u102C\u1004\u103A","style.menu.fill":"\u1021\u101B\u1031\u102C\u1004\u103A \u1011\u100A\u103A\u1037\u1019\u100A\u103A","style.menu.dash":"\u1019\u103B\u1025\u103A\u1038\u1005\u1000\u103A","style.menu.size":"\u1021\u101B\u103D\u101A\u103A\u1021\u1005\u102C\u1038","style.menu.keep.open":"\u1016\u103D\u1004\u103A\u1037\u1011\u102C\u1038\u1019\u100A\u103A","style.menu.font":"\u1005\u102C\u101E\u102C\u1038\u1016\u1031\u102C\u1004\u103A\u1037","style.menu.align":"\u1021\u1011\u102C\u1038\u1021\u101E\u102D\u102F",styles:"\u1005\u1010\u102D\u102F\u1004\u103A","zoom.in":"\u1021\u1000\u103C\u102E\u1038\u1001\u103B\u1032\u1037\u1019\u100A\u103A","zoom.out":"\u1015\u103C\u1014\u103A\u1000\u103B\u1025\u103A\u1038\u1019\u100A\u103A",to:"\u101E\u102D\u102F\u1037","menu.tools":"\u1000\u102D\u101B\u102D\u101A\u102C\u1019\u103B\u102C\u1038","menu.transform":"\u1015\u103C\u1031\u102C\u1004\u103A\u1038\u101C\u100A\u103A\u101B\u1014\u103A","menu.file":"\u1016\u102D\u102F\u1004\u103A","menu.edit":"\u1015\u103C\u102F\u1015\u103C\u1004\u103A","menu.view":"\u1021\u1019\u103C\u1004\u103A","menu.preferences":"\u1006\u1000\u103A\u1010\u1004\u103A","menu.sign.in":"\u101D\u1004\u103A\u1019\u100A\u103A","menu.sign.out":"\u1011\u103D\u1000\u103A\u1019\u100A\u103A","become.a.sponsor":"\u1004\u103D\u1031\u1000\u103C\u1031\u1038\u1011\u1031\u102C\u1000\u103A\u1015\u1036\u1019\u100A\u103A","zoom.to.content":"\u1015\u1004\u103A\u1019\u1014\u1031\u101B\u102C\u101E\u102D\u102F\u1037 \u1015\u103C\u1014\u103A\u101E\u103D\u102C\u1038\u1019\u100A\u103A","zoom.to.selection":"\u101B\u103D\u1031\u1038\u1011\u102C\u1038\u101E\u1031\u102C \u1014\u1031\u101B\u102C\u101E\u102D\u102F\u1037 \u1021\u102C\u101B\u102F\u1036\u1015\u103C\u102F\u1019\u100A\u103A","zoom.to.fit":"\u1021\u1036\u1000\u102D\u102F\u1000\u103A\u1016\u103C\u1005\u103A\u1021\u1031\u102C\u1004\u103A \u1001\u103B\u1032\u1037\u1019\u100A\u103A","zoom.to":"\u1015\u102F\u1036\u1019\u103E\u1014\u103A\u1006\u102D\u102F\u1012\u103A\u101E\u102D\u102F\u1037 \u1001\u103B\u1032\u1037\u1019\u100A\u103A","preferences.dark.mode":"\u1021\u1019\u103E\u1031\u102C\u1004\u103A \u1019\u102F\u1012\u103A","preferences.focus.mode":"\u101B\u103E\u1004\u103A\u1038\u101B\u103E\u1004\u103A\u1038\u101C\u1004\u103A\u1038\u101C\u1004\u103A\u1038 \u1019\u102F\u1012\u103A","preferences.debug.mode":"\u1005\u1019\u103A\u1038\u101E\u1015\u103A \u1019\u102F\u1012\u103A","preferences.show.grid":"\u1014\u1031\u102C\u1000\u103A\u1001\u1036 \u1007\u101A\u102C\u1038\u1000\u103D\u1000\u103A\u1015\u103C\u101B\u1014\u103A","preferences.use.cad.selection":"CAD \u1000\u1032\u1037\u101E\u102D\u102F\u1037 \u101B\u103D\u1031\u1038\u1001\u103B\u101A\u103A\u1019\u103E\u102F \u1015\u103C\u102F\u101C\u102F\u1015\u103A\u1019\u100A\u103A","preferences.keep.stylemenu.open":"\u1005\u1010\u102D\u102F\u1004\u103A\u101C\u103A \u1019\u102E\u1014\u1030\u1038\u1000\u102D\u102F \u1021\u1019\u103C\u1032\u1016\u103D\u1004\u103A\u1037\u1011\u102C\u1038\u1019\u100A\u103A","preferences.always.show.snaps":"Always Show Snaps","preferences.rotate.handles":"Rotate Handles","preferences.binding.handles":"Binding Handles","preferences.clone.handles":"Clone Handles",undo:"\u1014\u1002\u102D\u102F\u1019\u1030\u101C\u101E\u102D\u102F\u1037 \u1015\u103C\u1014\u103A\u101C\u102F\u1015\u103A\u101B\u1014\u103A",redo:"\u1015\u103C\u1014\u103A\u101C\u102F\u1015\u103A\u101B\u1014\u103A",cut:"\u1016\u103C\u1010\u103A\u101A\u1030",copy:"\u1000\u1030\u1038\u101A\u1030",paste:"\u1000\u1030\u1038\u101E\u103D\u1004\u103A\u1038","copy.as":"\u1000\u1030\u1038\u101A\u1030\u1019\u100A\u103A\u1037 \u1015\u102F\u1036\u1005\u1036","export.as":"\u1011\u102F\u1010\u103A\u1001\u103B\u1004\u103A\u101E\u100A\u103A\u1037 \u1015\u102F\u1036\u1005\u1036","select.all":"\u1021\u102C\u1038\u101C\u102F\u1036\u1038\u1000\u102D\u102F \u101B\u103D\u1031\u1038\u1001\u103B\u101A\u103A\u101B\u1014\u103A","select.none":"\u1010\u1005\u103A\u1001\u102F\u1019\u103E \u1019\u101B\u103D\u1031\u1038\u1010\u1031\u102C\u1037\u1015\u102B",delete:"\u1016\u103B\u1000\u103A\u1019\u100A\u103A","new.project":"\u1015\u101B\u1031\u102C\u1002\u103B\u1000\u103A \u1021\u101E\u1005\u103A",open:"\u1016\u103D\u1004\u103A\u1037\u1019\u100A\u103A",save:"\u101E\u102D\u1019\u103A\u1038\u1019\u100A\u103A","save.as":"\u1021\u1001\u103C\u102C\u1038\u101E\u1031\u102C \u1015\u102F\u1036\u1005\u1036\u1016\u103C\u1004\u103A\u1037 \u101E\u102D\u1019\u103A\u1038\u1019\u100A\u103A","upload.media":"\u1019\u102E\u1012\u102E\u101A\u102C\u1016\u102D\u102F\u1004\u103A\u1019\u103B\u102C\u1038 \u1010\u1004\u103A\u1019\u100A\u103A","create.page":"\u1005\u102C\u1019\u103B\u1000\u103A\u1014\u103E\u102C \u1021\u101E\u1005\u103A\u1016\u103D\u1004\u103A\u1037\u1019\u100A\u103A","new.page":"\u1005\u102C\u1019\u103B\u1000\u103A\u1014\u103E\u102C \u1021\u101E\u1005\u103A","page.name":"\u1005\u102C\u1019\u103B\u1000\u103A\u1014\u103E\u102C \u1021\u1019\u100A\u103A",duplicate:"\u1015\u103D\u102C\u1038\u1019\u100A\u103A",cancel:"\u1019\u101C\u102F\u1015\u103A\u1010\u1031\u102C\u1037\u1015\u102B","copy.invite.link":"\u1016\u102D\u1010\u103A\u1000\u103C\u102C\u1038\u101B\u1014\u103A \u101C\u1004\u103A\u1037\u1001\u103A\u1000\u1030\u1038\u101A\u1030\u1019\u100A\u103A","copy.readonly.link":"\u1000\u103C\u100A\u103A\u1037\u101B\u1030\u101B\u1014\u103A\u1021\u1010\u103D\u1000\u103A\u101E\u102C \u101C\u1004\u103A\u1037\u1001\u103A\u1000\u1030\u1038\u101A\u1030\u1019\u100A\u103A","create.multiplayer.project":"\u1021\u1019\u103B\u102C\u1038\u101E\u102F\u1036\u1038 \u1015\u101B\u1031\u102C\u1002\u103B\u1000\u103A\u1021\u1016\u103C\u1005\u103A \u1021\u101E\u1005\u103A\u1016\u1014\u103A\u1010\u102E\u1038\u1019\u100A\u103A","copy.multiplayer.project":"\u1021\u1019\u103B\u102C\u1038\u101E\u102F\u1036\u1038 \u1015\u101B\u1031\u102C\u1002\u103B\u1000\u103A\u1021\u1016\u103C\u1005\u103A\u101E\u102D\u102F\u1037 \u1000\u1030\u1038\u101A\u1030\u1019\u100A\u103A",select:"\u101B\u103D\u1031\u1038\u1001\u103B\u101A\u103A\u1019\u103E\u102F",eraser:"\u1001\u1032\u1016\u103B\u1000\u103A",draw:"\u1001\u1032\u1010\u1036",arrow:"\u1019\u103C\u103E\u102C\u1038",text:"\u1005\u102C\u101E\u102C\u1038",sticky:"\u1000\u1015\u103A\u1001\u103D\u102C\u1019\u103E\u1010\u103A\u1005\u102F",rectangle:"\u101C\u1031\u1011\u1031\u102C\u1004\u103A\u1037",ellipse:"\u1018\u1032\u1025",triangle:"\u1010\u103C\u102D\u1002\u1036",line:"\u1019\u103B\u1025\u103A\u1038",rotate:"\u101C\u103E\u100A\u103A\u1037\u1019\u100A\u103A","lock.aspect.ratio":"\u1021\u1001\u103B\u102D\u102F\u1038\u1021\u1005\u102C\u1038 \u1011\u102D\u1014\u103A\u1038\u1011\u102C\u1038\u1019\u100A\u103A","unlock.aspect.ratio":"\u1021\u1001\u103B\u102D\u102F\u1038\u1021\u1005\u102C\u1038 \u1019\u1011\u102D\u1014\u103A\u1038\u1010\u1031\u102C\u1037\u1015\u102B",group:"\u1021\u102F\u1015\u103A\u1005\u102F\u1016\u103D\u1032\u1037",ungroup:"\u1021\u102F\u1015\u103A\u1005\u102F\u1001\u103D\u1032","move.to.back":"\u1014\u1031\u102C\u1000\u103A\u1006\u102F\u1036\u1038\u101E\u102D\u102F\u1037 \u1015\u102D\u102F\u1037\u1019\u100A\u103A","move.backward":"\u1014\u1031\u102C\u1000\u103A\u101E\u102D\u102F\u1037 \u1010\u1005\u103A\u1006\u1004\u103A\u1037\u1015\u102D\u102F\u1037\u1019\u100A\u103A","move.forward":"\u101B\u103E\u1031\u1037\u101E\u102D\u102F\u1037 \u1010\u1005\u103A\u1006\u1004\u103A\u1037\u1015\u102D\u102F\u1037\u1019\u100A\u103A","move.to.front":"\u101B\u103E\u1031\u1037\u1006\u102F\u1036\u1038\u101E\u102D\u102F\u1037 \u1015\u102D\u102F\u1037\u1019\u100A\u103A","reset.angle":"\u1014\u1002\u102D\u102F\u1019\u1030\u101C \u1011\u1031\u102C\u1004\u103A\u1037\u1001\u103B\u102D\u102F\u1038\u1005\u102C\u1038\u101E\u102D\u102F\u1037\u1015\u103C\u1031\u102C\u1004\u103A\u1038\u1019\u100A\u103A",lock:"\u1001\u1010\u103A\u1011\u102C\u1038\u1019\u100A\u103A",unlock:"\u1016\u103D\u1004\u103A\u1037\u1011\u102C\u1038\u1019\u100A\u103A","align.distribute":"\u1014\u1031\u101B\u102C \u1021\u1011\u102C\u1038\u1021\u101E\u102D\u102F/ \u1021\u1006\u1014\u103A\u1037\u1021\u1000\u103B\u102F\u1036\u1037","move.to.page":"\u1005\u102C\u1019\u103B\u1000\u103A\u1014\u103E\u102C\u1010\u1005\u103A\u1001\u102F\u101E\u102D\u102F\u1037 \u101B\u103D\u1031\u1038\u1019\u100A\u103A","flip.horizontal":"\u1021\u101C\u103B\u102C\u1038\u101C\u102D\u102F\u1000\u103A \u101C\u103E\u1014\u103A\u1019\u100A\u103A","flip.vertical":"\u1012\u1031\u102B\u1004\u103A\u101C\u102D\u102F\u1000\u103A \u101C\u103E\u1014\u103A\u1019\u100A\u103A",move:"\u101B\u103D\u1031\u1037\u1019\u100A\u103A","to.front":"\u101B\u103E\u1031\u1037\u1006\u102F\u1036\u1038\u101E\u102D\u102F\u1037",forward:"\u101B\u103E\u1031\u1037\u1010\u1005\u103A\u1006\u1004\u103A\u1037",backward:"\u1014\u1031\u102C\u1000\u103A\u1010\u1005\u103A\u1006\u1004\u103A\u1037",back:"\u1014\u1031\u102C\u1000\u103A\u1006\u102F\u1036\u1038\u101E\u102D\u102F\u1037",language:"\u1018\u102C\u101E\u102C\u1005\u1000\u102C\u1038","translation.link":"\u1015\u102D\u102F\u1019\u102D\u102F\u104D \u101C\u1031\u1037\u101C\u102C\u101B\u1014\u103A","dock.position":"\u1000\u102D\u101B\u102D\u101A\u102C \u1021\u1014\u1031\u1021\u1011\u102C\u1038",bottom:"\u1021\u1031\u102C\u1000\u103A",left:"\u1018\u101A\u103A",right:"\u100A\u102C",top:"\u1011\u102D\u1015\u103A",page:"\u1005\u102C\u1019\u103B\u1000\u103A\u1014\u103E\u102C","keyboard.shortcuts":"Keyboard shortcuts",search:"\u101B\u103E\u102C\u1016\u103D\u1031\u101B\u1014\u103A",loading:"\u1001\u100F\u1005\u1031\u102C\u1004\u103A\u1037\u1015\u1031\u1038\u101B\u1014\u103A{dots}","export.background":"\u1014\u1031\u102C\u1000\u103A\u1001\u1036 \u1011\u102F\u1010\u103A\u101A\u1030\u1019\u100A\u103A",transparent:"\u1014\u1031\u102C\u1000\u103A\u1001\u1036 \u1021\u1000\u103C\u100A\u103A",auto:"Auto",light:"\u1021\u101C\u1004\u103A\u1038",dark:"\u1021\u1019\u103E\u1031\u102C\u1004\u103A",github:"Github",twitter:"Twitter",discord:"Discord",image:"\u1013\u102C\u1010\u103A\u1015\u102F\u1036","align.left":"\u1018\u101A\u103A\u1016\u1000\u103A\u101E\u102D\u102F\u1037 \u100A\u103E\u102D\u101B\u1014\u103A","align.center.x":"\u1021\u101C\u103B\u102C\u1038\u101C\u102D\u102F\u1000\u103A \u1017\u101F\u102D\u102F\u1006\u102E\u101E\u102D\u102F\u1037 \u100A\u103E\u102D\u101B\u1014\u103A","align.right":"\u100A\u102C\u1016\u1000\u103A\u101E\u102D\u102F\u1037 \u100A\u103E\u102D\u101B\u1014\u103A","align.top":"\u1021\u1015\u1031\u102B\u103A\u101E\u102D\u102F\u1037 \u100A\u103E\u102D\u101B\u1014\u103A","align.center.y":"\u1012\u1031\u102B\u1004\u103A\u101C\u102D\u102F\u1000\u103A \u1017\u101F\u102D\u102F\u1006\u102E\u101E\u102D\u102F\u1037 \u100A\u103E\u102D\u101B\u1014\u103A","align.bottom":"\u1021\u1031\u102C\u1000\u103A\u101E\u102D\u102F\u1037 \u100A\u103E\u102D\u101B\u1014\u103A","distribute.x":"\u1021\u101C\u103B\u102C\u1038\u101C\u102D\u102F\u1000\u103A \u1016\u103C\u1014\u103A\u1037\u101B\u1014\u103A","distribute.y":"\u1012\u1031\u102B\u1004\u103A\u101C\u102D\u102F\u1000\u103A \u1016\u103C\u1014\u103A\u1037\u101B\u1014\u103A","stretch.x":"\u1021\u101C\u103B\u102C\u1038\u101C\u102D\u102F\u1000\u103A \u1006\u103D\u1032\u1006\u1014\u103A\u1037\u101B\u1014\u103A","stretch.y":"\u1012\u1031\u102B\u1004\u103A\u101C\u102D\u102F\u1000\u103A \u1006\u103D\u1032\u1006\u1014\u103A\u1037\u101B\u1014\u103A","dialog.save.firsttime":"\u101A\u1001\u102F \u1015\u101B\u1031\u102C\u1002\u103B\u1000\u103A\u1000\u102D\u102F \u101E\u102D\u1019\u103A\u1038\u1006\u100A\u103A\u101C\u102D\u102F\u1015\u102B\u101E\u101C\u102C\u1038 ?","dialog.save.again":"\u101A\u1001\u102F \u1015\u101B\u1031\u102C\u1002\u103B\u1000\u103A\u1010\u103D\u1004\u103A \u1015\u103C\u1004\u103A\u1011\u102C\u1038\u101E\u1031\u102C \u1021\u1015\u103C\u1031\u102C\u1004\u103A\u1038\u1021\u101C\u100A\u103A\u1019\u103B\u102C\u1038\u1000\u102D\u102F \u1021\u1010\u100A\u103A\u1015\u103C\u102F \u101E\u102D\u1019\u103A\u1038\u1006\u100A\u103A\u101C\u102D\u102F\u1015\u102B\u101E\u101C\u102C\u1038?","dialog.cancel":"\u1018\u102C\u1019\u103E \u1019\u101C\u102F\u1015\u103A\u1010\u1031\u102C\u1037\u1015\u102B","dialog.no":"\u1019\u101C\u102D\u102F\u1010\u1031\u102C\u1037\u1015\u102B","dialog.yes":"\u101C\u102D\u102F\u1015\u102B\u101E\u100A\u103A","enter.file.name":"\u1016\u102D\u102F\u1004\u103A\u1014\u102C\u1019\u100A\u103A \u1011\u100A\u103A\u1037\u101E\u103D\u1004\u103A\u1038\u101B\u1014\u103A","telva-beta":"telva \u1021\u101E\u1005\u103A\u1005\u1019\u103A\u1038\u101E\u102F\u1036\u1038\u1000\u103C\u100A\u103A\u1037\u101B\u1014\u103A"};var Bd={"style.menu.color":"Farge","style.menu.fill":"Fyll","style.menu.dash":"Linje","style.menu.size":"St\xF8rrelse","style.menu.keep.open":"Hold \xE5pen","style.menu.font":"Teksttype","style.menu.align":"Juster",styles:"Stiler","zoom.in":"Zoom inn","zoom.out":"Zoom ut",to:"til","menu.file":"Fil","menu.edit":"Rediger","menu.view":"Vis","menu.preferences":"Preferanser","menu.sign.in":"Logg inn","menu.sign.out":"Logg ut","become.a.sponsor":"Bli en sponsor","zoom.to.selection":"Zoom til valg","zoom.to.fit":"Zoom for \xE5 passe","zoom.to":"Zoom til","preferences.dark.mode":"M\xF8rk modus","preferences.focus.mode":"Fokus modus","preferences.debug.mode":"Debug modus","preferences.show.grid":"Vis rutenett","preferences.use.cad.selection":"Bruk CAD seleksjon","preferences.keep.stylemenu.open":"Hold stilmeny \xE5pen","preferences.always.show.snaps":"Vis alltid snaps","preferences.rotate.handles":"Vis roteringsh\xE5ndtak","preferences.binding.handles":"Vis bindingsh\xE5ndtak","preferences.clone.handles":"Vis kloningsh\xE5ndtak",undo:"Angre",redo:"Gj\xF8r om",cut:"Klipp ut",copy:"Kopier",paste:"Lim inn","copy.as":"Kopier som","export.as":"Eksporter som","select.all":"Velg alle","select.none":"Velg ingen",delete:"Slett","new.project":"Nytt prosjekt",open:"\xC5pne",save:"Lagre","save.as":"Lagre som","upload.media":"Last opp media","create.page":"Opprett side","new.page":"Ny side","page.name":"Sidenavn",duplicate:"Dupliser",cancel:"Avbryt","copy.invite.link":"Kopier invitasjonslink","create.multiplayer.project":"Opprett et flerspiller prosjekt","copy.multiplayer.project":"Kopier til flerspiller prosjekt",select:"Velg",eraser:"Viskel\xE6r",draw:"Tegn",arrow:"Pil",text:"Tekst",sticky:"Lapp",rectangle:"Rektangel",ellipse:"Ellipse",triangle:"Trekant",line:"Linje",rotate:"Roter","lock.aspect.ratio":"L\xE5s st\xF8rrelsesforhold","unlock.aspect.ratio":"L\xE5s opp st\xF8rrelsesforhold",group:"Grupper",ungroup:"Avgrupper","move.to.back":"Flytt bakerst","move.backward":"Flytt bakover","move.forward":"Flytt forover","move.to.front":"Flytt til front","reset.angle":"Tilbakestill vinkel",lock:"L\xE5s",unlock:"L\xE5s opp","move.to.page":"Flytt til side","flip.horizontal":"Snu horisontalt","flip.vertical":"Snu vertikalt",move:"Flytt","to.front":"Foran",forward:"Framover",backward:"Bakover",back:"Bakerst",language:"Spr\xE5k"};var Md={"style.menu.color":"\u0930\u0902\u0917","style.menu.fill":"\u092D\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","style.menu.dash":"\u0927\u0930\u094D\u0915\u093E","style.menu.size":"\u0906\u0915\u093E\u0930","style.menu.keep.open":"\u0916\u0941\u0932\u093E \u0930\u093E\u0916\u094D\u0928\u0941\u0939\u094B\u0938\u094D","style.menu.font":"\u092B\u0928\u094D\u091F","style.menu.align":"\u092A\u0919\u094D\u0915\u094D\u0924\u093F\u092C\u0926\u094D\u0927",styles:"\u0936\u0948\u0932\u0940\u0939\u0930\u0942","zoom.in":"\u091C\u0941\u092E \u0907\u0928","zoom.out":"\u091C\u0941\u092E \u0906\u0909\u091F",to:"\u091F\u0941","menu.file":"\u092B\u093E\u0907\u0932","menu.edit":"\u0938\u092E\u094D\u092A\u093E\u0926\u0928 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","menu.view":"\u092D\u094D\u092F\u0942","menu.preferences":"\u092A\u094D\u0930\u093E\u0925\u092E\u093F\u0915\u0924\u093E\u0939\u0930\u0942","menu.sign.in":"\u0938\u093E\u0907\u0928 \u0907\u0928 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","menu.sign.out":"\u0938\u093E\u0907\u0928 \u0906\u0909\u091F \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","become.a.sponsor":"\u092A\u094D\u0930\u093E\u092F\u094B\u091C\u0915 \u092C\u0928\u094D\u0928\u0941\u0939\u094B\u0938\u094D","zoom.to.selection":"\u091C\u0941\u092E \u091F\u0941 \u0938\u0947\u0932\u0947\u0915\u094D\u0938\u0928","zoom.to.fit":"\u091C\u0941\u092E \u091F\u0941 \u092B\u093F\u091F","zoom.to":"\u091C\u0941\u092E \u091F\u0941","preferences.dark.mode":"\u0905\u0901\u0927\u094D\u092F\u093E\u0930\u094B \u092E\u094B\u0921","preferences.focus.mode":"\u092B\u094B\u0915\u0938 \u092E\u094B\u0921","preferences.debug.mode":"\u0921\u093F\u092C\u0917 \u092E\u094B\u0921","preferences.show.grid":"\u0917\u094D\u0930\u093F\u0921 \u0926\u0947\u0916\u093E\u0909\u0928\u0941\u0939\u094B\u0938\u094D","preferences.use.cad.selection":"CAD \u0938\u0947\u0932\u0947\u0915\u094D\u0938\u0928 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","preferences.keep.stylemenu.open":"\u0938\u094D\u091F\u093E\u0907\u0932 \u092E\u0947\u0928\u0941 \u0916\u0941\u0932\u093E \u0930\u093E\u0916\u094D\u0928\u0941\u0939\u094B\u0938\u094D","preferences.always.show.snaps":"\u0938\u0927\u0948\u0901 \u0938\u094D\u0928\u094D\u092F\u093E\u092A\u0939\u0930\u0942 \u0926\u0947\u0916\u093E\u0909\u0928\u0941\u0939\u094B\u0938\u094D","preferences.rotate.handles":"\u0939\u094D\u092F\u093E\u0928\u094D\u0921\u0932\u0939\u0930\u0942 \u0918\u0941\u092E\u093E\u0909\u0928\u0941\u0939\u094B\u0938\u094D","preferences.binding.handles":"\u092C\u093E\u0907\u0928\u094D\u0921\u093F\u0919 \u0939\u094D\u092F\u093E\u0928\u094D\u0921\u0932\u0939\u0930\u0942","preferences.clone.handles":"\u0915\u094D\u0932\u094B\u0928 \u0939\u094D\u092F\u093E\u0928\u094D\u0921\u0932\u0939\u0930\u0942",undo:"\u092A\u0942\u0930\u094D\u0935\u0935\u0924 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",redo:"\u092A\u0941\u0928\u0903 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",cut:"\u0915\u091F \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",copy:"\u0915\u092A\u093F \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",paste:"\u092A\u0947\u0938\u094D\u091F \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","copy.as":"\u0915\u092A\u093F \u090F\u091C","export.as":"\u090F\u0915\u094D\u0938\u092A\u094B\u0930\u094D\u091F \u090F\u091C","select.all":"\u0938\u092C\u0948 \u091B\u093E\u0928\u094D\u0928\u0941\u0939\u094B\u0938\u094D","select.none":"\u0915\u0947\u0939\u093F \u092A\u0928\u093F \u0938\u0947\u0932\u0947\u0915\u094D\u091F \u0928\u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",delete:"\u092E\u0947\u091F\u093E\u0909\u0928\u0941\u0939\u094B\u0938\u094D","new.project":"\u0928\u092F\u093E\u0901 \u092A\u0930\u093F\u092F\u094B\u091C\u0928\u093E",open:"\u0916\u094B\u0932\u094D\u0928\u0941\u0939\u094B\u0938\u094D",save:"\u0938\u0941\u0930\u0915\u094D\u0937\u093F\u0924 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","save.as":"\u0938\u0947\u092D \u090F\u091C","upload.media":"\u092E\u093F\u0921\u093F\u092F\u093E \u0905\u092A\u0932\u094B\u0921 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","create.page":"\u092A\u0943\u0937\u094D\u0920 \u0938\u093F\u0930\u094D\u091C\u0928\u093E \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","new.page":"\u0928\u092F\u093E\u0901 \u092A\u0943\u0937\u094D\u0920 \u0938\u093F\u0930\u094D\u091C\u0928\u093E \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","page.name":"\u092A\u0943\u0937\u094D\u0920\u0915\u094B \u0928\u093E\u092E",duplicate:"\u0905\u0928\u0941\u0932\u093F\u092A\u093F \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",cancel:"\u0930\u0926\u094D\u0926 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","copy.invite.link":"\u0928\u093F\u092E\u0928\u094D\u0924\u094D\u0930\u0923\u093E \u0932\u093F\u0919\u094D\u0915 \u0915\u092A\u093F \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","create.multiplayer.project":"\u092E\u0932\u094D\u091F\u093F\u092A\u094D\u0932\u0947\u092F\u0930 \u092A\u0930\u093F\u092F\u094B\u091C\u0928\u093E \u0938\u093F\u0930\u094D\u091C\u0928\u093E \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","copy.multiplayer.project":"\u092E\u0932\u094D\u091F\u093F\u092A\u094D\u0932\u0947\u092F\u0930 \u092A\u094D\u0930\u094B\u091C\u0947\u0915\u094D\u091F\u092E\u093E \u0915\u092A\u093F \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",select:"\u0938\u0947\u0932\u0947\u0915\u094D\u091F",eraser:"\u0907\u0930\u0947\u091C\u0930",draw:"\u091A\u093F\u0924\u094D\u0930 \u092C\u0928\u093E\u0909\u0928\u0941",arrow:"\u0924\u0940\u0930",text:"\u0936\u092C\u094D\u0926",sticky:"\u091F\u093E\u0901\u0938\u093F\u0928\u0947",rectangle:"\u0906\u092F\u0924",ellipse:"\u0926\u0940\u0930\u094D\u0918\u0935\u0943\u0924\u094D\u0924",triangle:"\u0924\u094D\u0930\u093F\u092D\u0941\u091C",line:"\u0930\u0947\u0916\u093E",rotate:"\u0918\u0941\u092E\u093E\u0909\u0928\u0941\u0939\u094B\u0938\u094D","lock.aspect.ratio":"\u0906\u0915\u093E\u0930 \u0905\u0928\u0941\u092A\u093E\u0924 \u0932\u0915 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","unlock.aspect.ratio":"\u0906\u0915\u093E\u0930 \u0905\u0928\u0941\u092A\u093E\u0924 \u0905\u0928\u0932\u0915 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",group:"\u0938\u092E\u0942\u0939",ungroup:"\u0938\u092E\u0942\u0939 \u0930\u0926\u094D\u0926 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","move.to.back":"\u092A\u091B\u093E\u0921\u093F \u0938\u093E\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","move.backward":"\u0925\u092A \u092A\u091B\u093E\u0921\u093F \u0938\u093E\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","move.forward":"\u0905\u0917\u093E\u0921\u093F \u0938\u093E\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","move.to.front":"\u0925\u092A \u0905\u0917\u093E\u0921\u093F \u0938\u093E\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","reset.angle":"\u0915\u094B\u0923 \u0930\u093F\u0938\u0947\u091F \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",lock:"\u0932\u0915 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",unlock:"\u0905\u0928\u0932\u0915 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","move.to.page":"\u092A\u0943\u0937\u094D\u0920\u092E\u093E \u0938\u093E\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","flip.horizontal":"\u0924\u0947\u0930\u094D\u0938\u094B \u092B\u094D\u0932\u093F\u092A \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","flip.vertical":"\u0920\u093E\u0921\u094B \u092B\u094D\u0932\u093F\u092A \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",move:"\u0938\u093E\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D","to.front":"\u0925\u092A \u0905\u0917\u093E\u0921\u093F",forward:"\u0905\u0917\u093E\u0921\u093F",backward:"\u092A\u091B\u093E\u0921\u093F",back:"\u0925\u092A \u092A\u091B\u093E\u0921\u093F",language:"\u092D\u093E\u0937\u093E"};var Ld={"style.menu.color":"Farge","style.menu.fill":"Fyll","style.menu.dash":"Line","style.menu.size":"Storleik","style.menu.keep.open":"Hald open","style.menu.font":"Teksttype","style.menu.align":"Tilpass",styles:"Stilar","zoom.in":"Zoom inn","zoom.out":"Zoom ut",to:"til","menu.file":"Fil","menu.edit":"Rediger","menu.view":"Vis","menu.preferences":"Innstillingar","menu.sign.in":"Logg inn","menu.sign.out":"Logg ut","become.a.sponsor":"Vert sponsor","zoom.to.content":"Zoom til innhald","zoom.to.selection":"Zoom til valte element","zoom.to.fit":"Zoom for \xE5 passe","zoom.to":"Zoom til","preferences.dark.mode":"M\xF8rkmodus","preferences.focus.mode":"Fokusmodus","preferences.debug.mode":"Debugmodus","preferences.show.grid":"Vis rutenett","preferences.use.cad.selection":"Bruk CAD-val","preferences.keep.stylemenu.open":"Hald stilmeny open","preferences.always.show.snaps":"Vis alltid snaps","preferences.rotate.handles":"Vis roteringshandtak","preferences.binding.handles":"Vis bindingshandtak","preferences.clone.handles":"Vis kloningshandtak",undo:"Angre",redo:"Gjer om",cut:"Klipp ut",copy:"Kopier",paste:"Lim inn","copy.as":"Kopier som","export.as":"Eksporter som","select.all":"Vel alle","select.none":"Vel ingen",delete:"Slett","new.project":"Nytt prosjekt",open:"Opne",save:"Lagre","save.as":"Lagre som","upload.media":"Last opp media","create.page":"Opprett side","new.page":"Ny side","page.name":"Sidenamn",duplicate:"Dupliser",cancel:"Avbryt","copy.invite.link":"Kopier invitasjonslenke","copy.readonly.link":"Kopier invitasjonslenke (skrivebeskytta)","create.multiplayer.project":"Lag samarbeidsprosjekt","copy.multiplayer.project":"Kopier til samarbeidsprosjekt",select:"Vel",eraser:"Viskel\xEAr",draw:"Teikn",arrow:"Pil",text:"Tekst",sticky:"Lapp",rectangle:"Rektangel",ellipse:"Runding",triangle:"Trekant",line:"Line",rotate:"Roter","lock.aspect.ratio":"L\xE5s storleiksforhold","unlock.aspect.ratio":"L\xE5s opp storleiksforhold",group:"Grupper",ungroup:"Avgrupper","move.to.back":"Flytt bakarst","move.backward":"Flytt bakover","move.forward":"Flytt framover","move.to.front":"Flytt til front","reset.angle":"Tilbakestill vinkel",lock:"L\xE5s",unlock:"L\xE5s opp","move.to.page":"Flytt til side","flip.horizontal":"Snu horisontalt","flip.vertical":"Snu vertikalt",move:"Flytt","to.front":"Framme",forward:"Framover",backward:"Bakover",back:"Bakarst",language:"Spr\xE5k","translation.link":"Les meir","dock.position":"Dokkplassering",bottom:"Nede",left:"Venstre",right:"H\xF8gre",top:"Oppe",page:"Side","keyboard.shortcuts":"Sn\xF8ggtastar",search:"S\xF8k",loading:"Lastar{dots}","export.background":"Eksporter bakgrunn",transparent:"Gjennomsiktig",auto:"Auto",light:"Lys",dark:"M\xF8rk",github:"Github",twitter:"Twitter",discord:"Discord",image:"Bilete","align.left":"Venstrestill","align.center.x":"Midtstill horisontalt","align.right":"H\xF8grestill","align.top":"Still til toppen","align.center.y":"Midtstill vertikalt","align.bottom":"Still til botnen","distribute.x":"Distribuer horisontalt","distribute.y":"Distribuer vertikalt","stretch.x":"Strekk horisontalt","stretch.y":"Strekk vertikalt","dialog.save.firsttime":"Vil du lagre det noverande prosjektet ditt?","dialog.save.again":"Vil du lagre endringane i det noverande prosjektet ditt?","dialog.cancel":"Avbryt","dialog.no":"Nei","dialog.yes":"Ja","enter.file.name":"Fyll inn filnamn","telva-beta":"Pr\xF8v den nye telva",white:"Kvit",lightGray:"Lys gr\xE5",gray:"Gr\xE5",black:"Svart",green:"Gr\xF8n",cyan:"Cyan",blue:"Bk\xE5",indigo:"Indigo",violet:"Fiol",red:"Raud",orange:"Oransj",yellow:"Gul",solid:"Heil",dashed:"Stipla",dotted:"Prikka",small:"Liten",medium:"Mellomstor",large:"Stor"};var Ad={"style.menu.color":"Kolor","style.menu.fill":"Wype\u0142nienie","style.menu.dash":"Linia","style.menu.size":"Rozmiar","style.menu.keep.open":"Zachowaj otwarte","style.menu.font":"Czcionka","style.menu.align":"Wyr\xF3wnanie",styles:"Style","zoom.in":"Przybli\u017C","zoom.out":"Oddal",to:"do","menu.file":"Plik","menu.edit":"Edycja","menu.view":"Widok","menu.preferences":"Preferencje","menu.sign.in":"Zaloguj","menu.sign.out":"Wyloguj","become.a.sponsor":"Zosta\u0144 sponsorem","zoom.to.selection":"Przybli\u017C do zaznaczenia","zoom.to.fit":"Wype\u0142nij ekran","zoom.to":"Przybli\u017C do","preferences.dark.mode":"Tryb ciemny","preferences.focus.mode":"Tryb skupienia","preferences.debug.mode":"Tryb debugowania","preferences.show.grid":"Poka\u017C siatk\u0119","preferences.use.cad.selection":"U\u017Cyj zaznaczania CAD","preferences.keep.stylemenu.open":"Zachowaj menu styli otwarte","preferences.always.show.snaps":"Przyci\u0105gaj obiekty","preferences.rotate.handles":"Uchwyty obrotu","preferences.binding.handles":"Uchwyty powi\u0105zania","preferences.clone.handles":"Uchwyty klonuj\u0105ce",undo:"Cofnij",redo:"Powt\xF3rz",cut:"Wytnij",copy:"Kopiuj",paste:"Wklej","copy.as":"Kopiuj jako","export.as":"Eksportuj jako","select.all":"Zaznacz wszystko","select.none":"Odznacz wszystko",delete:"Usu\u0144","new.project":"Nowy projekt",open:"Otw\xF3rz",save:"Zapisz","save.as":"Zapisz jako","upload.media":"Za\u0142aduj multimedia","create.page":"Utw\xF3rz stron\u0119","new.page":"Nowa strona","page.name":"Nazwa strony",duplicate:"Powiel",cancel:"Anuluj","copy.invite.link":"Kopiuj link zaproszenia","create.multiplayer.project":"Stw\xF3rz projekt wieloosobowy","copy.multiplayer.project":"Kopiuj do projektu wieloosobowego",select:"Zaznacz",eraser:"Gumka",draw:"Rysuj",arrow:"Strza\u0142ka",text:"Tekst",sticky:"Naklejka",rectangle:"Prostok\u0105t",ellipse:"Elipsa",triangle:"Tr\xF3jk\u0105t",line:"Linia",rotate:"Obr\xF3\u0107","lock.aspect.ratio":"Zablokuj proporcje","unlock.aspect.ratio":"Odblokuj proporcje",group:"Grupuj",ungroup:"Rozgrupuj","move.to.back":"Przenie\u015B na ty\u0142","move.backward":"Przesu\u0144 do ty\u0142u","move.forward":"Przesu\u0144 do przodu","move.to.front":"Przenie\u015B na prz\xF3d","reset.angle":"Resetuj k\u0105t",lock:"Zablokuj",unlock:"Odblokuj","move.to.page":"Przenie\u015B na stron\u0119","flip.horizontal":"Odwr\xF3\u0107 w poziomie","flip.vertical":"Odwr\xF3\u0107 w pionie",move:"Przenie\u015B","to.front":"Na wierzch",forward:"Do przodu",backward:"Do ty\u0142u",back:"Na sp\xF3d",language:"J\u0119zyk","translation.link":"Czytaj wi\u0119cej","dock.position":"Pozycja przybornika",bottom:"D\xF3\u0142",left:"Lewa",right:"Prawa",top:"G\xF3ra",page:"Strona","keyboard.shortcuts":"Skr\xF3ty klawiszowe",search:"Szukaj",loading:"\u0141adowanie{dots}","export.background":"Eksportuj t\u0142o",transparent:"Przezroczyste",auto:"Automatyczny",light:"Jasny",dark:"Ciemny",github:"Github",twitter:"Twitter",discord:"Discord",image:"Obraz","align.left":"Wyr\xF3wnaj do lewej","align.center.x":"Wycentruj poziomo","align.right":"Wyr\xF3wnaj do prawej","align.top":"Wyr\xF3wnaj do g\xF3ry","align.center.y":"Wycentruj pionowo","align.bottom":"Wyr\xF3wnaj do do\u0142u","distribute.x":"Roz\u0142\xF3\u017C poziomo","distribute.y":"Roz\u0142\xF3\u017C pionowo","stretch.x":"Rozci\u0105gnij poziomo","stretch.y":"Rozci\u0105gnij pionowo","dialog.save.firsttime":"Czy chcesz zapisa\u0107 bie\u017C\u0105cy projekt?","dialog.save.again":"Czy chcesz zapisa\u0107 zmiany w bie\u017C\u0105cym projekcie?","dialog.cancel":"Anuluj","dialog.no":"Nie","dialog.yes":"Tak","enter.file.name":"Podaj nazw\u0119 pliku","telva-beta":"Wypr\xF3buj nowy telva"};var Vd={"style.menu.color":"Cor","style.menu.fill":"Preencher","style.menu.dash":"Tra\xE7o","style.menu.size":"Tamanho","style.menu.keep.open":"Manter aberto","style.menu.font":"Fonte","style.menu.align":"Alinhamento",styles:"Estilos","zoom.in":"Aumentar zoom","zoom.out":"Diminuir zoom",to:"para","menu.file":"Arquivo","menu.edit":"Editar","menu.view":"Visualizar","menu.preferences":"Prefer\xEAncias","menu.sign.in":"Entrar","menu.sign.out":"Sair","become.a.sponsor":"Torne-se um patrocinador","zoom.to.selection":"Zoom para a sele\xE7\xE3o","zoom.to.fit":"Zoom para ajuste","zoom.to":"Zoom para","preferences.dark.mode":"Modo Escuro","preferences.focus.mode":"Modo Foco","preferences.debug.mode":"Modo Debug","preferences.show.grid":"Mostrar Grade","preferences.use.cad.selection":"Usar sele\xE7\xE3o CAD","preferences.keep.stylemenu.open":"Manter Menu de Estilos Aberto","preferences.always.show.snaps":"Mostrar Pontos de Ajuste","preferences.rotate.handles":"Controle de Rota\xE7\xE3o","preferences.binding.handles":"Controle de V\xEDnculos","preferences.clone.handles":"Controle de Clone",undo:"Desfazer",redo:"Refazer",cut:"Cortar",copy:"Copiar",paste:"Colar","copy.as":"Copiar como","export.as":"Exportar como","select.all":"Selecionar todos","select.none":"Selecionar nenhum",delete:"Deletar","new.project":"Novo Projeto",open:"Abrir",save:"Salvar","save.as":"Salvar Como","upload.media":"Carregar M\xEDdia",page:"P\xE1gina",search:"Procurar",loading:"Carregando{dots}","export.background":"Exportar Fundo",transparent:"Transparente",auto:"Autom\xE1tico",light:"Claro",dark:"Escuro","menu.tools":"Ferramentas","menu.transform":"Transformar","zoom.to.content":"Voltar ao Conte\xFAdo","translation.link":"Saiba Mais","copy.readonly.link":"Copiar Link ReadOnly","align.distribute":"Alinhar / Distribuir","create.page":"Criar P\xE1gina","new.page":"Nova P\xE1gina","page.name":"Nome da P\xE1gina",duplicate:"Duplicar",cancel:"Cancelar","copy.invite.link":"Copiar Link de Convite","create.multiplayer.project":"Criar um Projeto Multijogador","copy.multiplayer.project":"Copiar para Projeto Multijogador",select:"Selecionar",eraser:"Borracha",draw:"Desenhar",arrow:"Seta",text:"Texto",sticky:"Adesivo",rectangle:"Ret\xE2ngulo",ellipse:"Elipse",triangle:"Tri\xE2ngulo",line:"Linha",rotate:"Rotacionar","lock.aspect.ratio":"Travar Propor\xE7\xE3o da Tela","unlock.aspect.ratio":"Destravar Propor\xE7\xE3o da Tela",group:"Agrupar",ungroup:"Desagrupar","move.to.back":"Recuar","move.backward":"Enviar para Tr\xE1s","move.forward":"Avan\xE7ar","move.to.front":"Trazer para Frente","reset.angle":"Reiniciar \xC2ngulo",lock:"Travar",unlock:"Destravar","move.to.page":"Mover para P\xE1gina","flip.horizontal":"Virar Horizontalmente","flip.vertical":"Virar Verticalmente",move:"Mover","to.front":"Para Frente",forward:"Avan\xE7ar",backward:"Recuar",back:"Voltar",language:"Idioma",image:"Imagem","keyboard.shortcuts":"Atalhos de Teclado","dock.position":"Posi\xE7\xE3o de Ferramentas",bottom:"Inferior",top:"Superior",right:"Direita",left:"Esquerda","align.left":"Alinhar \xE0 esquerda","align.center.x":"Alinhar ao centro na horizontal","align.right":"Alinhar \xE0 direita","align.top":"Alinhas em cima","align.center.y":"Alinhar ao centro na vertical","align.bottom":"Alinhar embaixo","distribute.x":"Distruibuir na horizontal","distribute.y":"Distruibuir na vertical","stretch.x":"Esticar na horizontal","stretch.y":"Esticar na vertical","dialog.save.firsttime":"Voc\xEA deseja salvar seu projeto atual?","dialog.save.again":"Voc\xEA deseja salvar as mudan\xE7as ao projeto atual?","dialog.cancel":"Cancelar","dialog.no":"N\xE3o","dialog.yes":"Sim","enter.file.name":"Insira o nome do arquivo"};var Hd={"style.menu.color":"Cor","style.menu.fill":"Preencher","style.menu.dash":"Tra\xE7o","style.menu.size":"Tamanho","style.menu.keep.open":"Manter aberto","style.menu.font":"Fonte","style.menu.align":"Alinhamento",styles:"Estilos","zoom.in":"Aumentar zoom","zoom.out":"Diminuir zoom",to:"para","menu.file":"Ficheiro","menu.edit":"Editar","menu.view":"Visualizar","menu.preferences":"Prefer\xEAncias","menu.sign.in":"Entrar","menu.sign.out":"Sair","become.a.sponsor":"Torne-se um patrocinador","zoom.to.selection":"Zoom na sele\xE7\xE3o","zoom.to.fit":"Zoom para caber","zoom.to":"Zoom para","preferences.dark.mode":"Modo Escuro","preferences.focus.mode":"Modo Foco","preferences.debug.mode":"Modo Debug","preferences.show.grid":"Mostrar Grelha","preferences.use.cad.selection":"Usar sele\xE7\xE3o CAD","preferences.keep.stylemenu.open":"Manter Menu de Estilos Aberto","preferences.always.show.snaps":"Mostrar Pontos de Ajuste","preferences.rotate.handles":"Controlo de Rota\xE7\xE3o","preferences.binding.handles":"Controlo de Binds","preferences.clone.handles":"Controlo de Clone",undo:"Desfazer",redo:"Refazer",cut:"Cortar",copy:"Copiar",paste:"Colar","copy.as":"Copiar como","export.as":"Exportar como","select.all":"Selecionar todos","select.none":"Selecionar nenhum",delete:"Apagar","new.project":"Novo Projeto",open:"Abrir",save:"Salvar","save.as":"Salvar Como","upload.media":"Upload M\xE9dia","create.page":"Criar P\xE1gina","new.page":"Nova P\xE1gina","page.name":"Nome da P\xE1gina",duplicate:"Duplicar",cancel:"Cancelar","copy.invite.link":"Copiar Link de Convite","create.multiplayer.project":"Criar um Projeto Multi-Utilizador","copy.multiplayer.project":"Copiar num Projeto Multi-Utilizador",select:"Selecionar",eraser:"Borracha",draw:"Desenhar",arrow:"Seta",text:"Texto",sticky:"Post-it",rectangle:"Ret\xE2ngulo",ellipse:"Elipse",triangle:"Tri\xE2ngulo",line:"Linha",rotate:"Rodar","lock.aspect.ratio":"Trancar a Propor\xE7\xE3o","unlock.aspect.ratio":"Destrancar a Propor\xE7\xE3o",group:"Agrupar",ungroup:"Desagrupar","move.to.back":"Colocar no Fundo","move.backward":"Mover abaixo","move.forward":"Mover acima","move.to.front":"Colocar \xE0 Frente","reset.angle":"Reiniciar \xC2ngulo",lock:"Trancar",unlock:"Destrancar","move.to.page":"Mover para P\xE1gina","flip.horizontal":"Inverter Horizontalmente","flip.vertical":"Inverter Verticalmente",move:"Mover","to.front":"Para Frente",forward:"Avan\xE7ar",backward:"Recuar",back:"Voltar",language:"L\xEDngua"};var zd={"style.menu.color":"\u0426\u0432\u0435\u0442","style.menu.fill":"\u0417\u0430\u043F\u043E\u043B\u043D\u044F\u0442\u044C","style.menu.dash":"\u0428\u0442\u0440\u0438\u0445","style.menu.size":"\u0420\u0430\u0437\u043C\u0435\u0440","style.menu.keep.open":"\u0414\u0435\u0440\u0436\u0430\u0442\u044C \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u043C","style.menu.font":"\u0428\u0440\u0438\u0444\u0442","style.menu.align":"\u0412\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435",styles:"\u0421\u0442\u0438\u043B\u044C","zoom.in":"\u0423\u0432\u0435\u043B\u0438\u0447\u0438\u0442\u044C","zoom.out":"\u0423\u043C\u0435\u043D\u044C\u0448\u0438\u0442\u044C",to:"\u043A","menu.tools":"\u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B","menu.transform":"\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435","menu.file":"\u0424\u0430\u0439\u043B","menu.edit":"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435","menu.view":"\u0412\u0438\u0434","menu.preferences":"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438","menu.sign.in":"\u0412\u043E\u0439\u0442\u0438","menu.sign.out":"\u0412\u044B\u0439\u0442\u0438","become.a.sponsor":"\u0421\u0442\u0430\u0442\u044C \u0441\u043F\u043E\u043D\u0441\u043E\u0440\u043E\u043C","zoom.to.content":"\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043A \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u043C\u0443","zoom.to.selection":"\u041C\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u043E \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044E","zoom.to.fit":"\u041C\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u043E \u0440\u0430\u0437\u043C\u0435\u0440\u0443 \u044D\u043A\u0440\u0430\u043D\u0430","zoom.to":"\u041C\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043A","preferences.dark.mode":"\u0422\u0451\u043C\u043D\u0430\u044F \u0442\u0435\u043C\u0430","preferences.focus.mode":"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u0438\u0441\u0442\u0438\u0447\u043D\u044B\u0439 \u0440\u0435\u0436\u0438\u043C","preferences.debug.mode":"\u0420\u0435\u0436\u0438\u043C \u043E\u0442\u043B\u0430\u0434\u043A\u0438","preferences.show.grid":"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0441\u0435\u0442\u043A\u0443","preferences.use.cad.selection":"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C CAD \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435","preferences.keep.stylemenu.open":"\u0414\u0435\u0440\u0436\u0430\u0442\u044C \u043C\u0435\u043D\u044E \u0441\u0442\u0438\u043B\u0435\u0439 \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u043C","preferences.always.show.snaps":"\u0412\u0441\u0435\u0433\u0434\u0430 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043F\u0440\u0438\u0432\u044F\u0437\u043A\u0438","preferences.rotate.handles":"\u0420\u0443\u0447\u043A\u0438 \u0432\u0440\u0430\u0449\u0435\u043D\u0438\u044F","preferences.binding.handles":"\u0420\u0443\u0447\u043A\u0438 \u043F\u0440\u0438\u0432\u044F\u0437\u043A\u0438","preferences.clone.handles":"\u0420\u0443\u0447\u043A\u0438 \u043A\u043B\u043E\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F",undo:"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C",redo:"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C",cut:"\u0412\u044B\u0440\u0435\u0437\u0430\u0442\u044C",copy:"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C",paste:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C","copy.as":"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043A\u0430\u043A","export.as":"\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043A\u0430\u043A","select.all":"\u0412\u044B\u0434\u0435\u043B\u0438\u0442\u044C \u0432\u0441\u0451","select.none":"\u0421\u043D\u044F\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435",delete:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C","new.project":"\u041D\u043E\u0432\u044B\u0439 \u043F\u0440\u043E\u0435\u043A\u0442",open:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C",save:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C","save.as":"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043A\u0430\u043A","upload.media":"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u043C\u0435\u0434\u0438\u0430\u0444\u0430\u0439\u043B","create.page":"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443","new.page":"\u041D\u043E\u0432\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430","page.name":"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B",duplicate:"\u0414\u0443\u0431\u043B\u0438\u0440\u043E\u0432\u0430\u0442\u044C",cancel:"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C","copy.invite.link":"\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443 \u043F\u0440\u0438\u0433\u043B\u0430\u0448\u0435\u043D\u0438\u044F","copy.readonly.link":"\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443 \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u043B\u044F \u0447\u0442\u0435\u043D\u0438\u044F","create.multiplayer.project":"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u043C\u043D\u043E\u0433\u043E\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439 \u043F\u0440\u043E\u0435\u043A\u0442","copy.multiplayer.project":"\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432 \u043C\u043D\u043E\u0433\u043E\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439 \u043F\u0440\u043E\u0435\u043A\u0442",select:"\u0412\u044B\u0434\u0435\u043B\u0438\u0442\u044C",eraser:"\u041B\u0430\u0441\u0442\u0438\u043A",draw:"\u0420\u0438\u0441\u043E\u0432\u0430\u0442\u044C",arrow:"\u0421\u0442\u0440\u0435\u043B\u043A\u0430",text:"\u0422\u0435\u043A\u0441\u0442",sticky:"\u0417\u0430\u043C\u0435\u0442\u043A\u0430",rectangle:"\u041F\u0440\u044F\u043C\u043E\u0443\u0433\u043E\u043B\u044C\u043D\u0438\u043A",ellipse:"\u042D\u043B\u043B\u0438\u043F\u0441",triangle:"\u0422\u0440\u0435\u0443\u0433\u043E\u043B\u044C\u043D\u0438\u043A",line:"\u041B\u0438\u043D\u0438\u044F",rotate:"\u041F\u043E\u0432\u0435\u0440\u043D\u0443\u0442\u044C","lock.aspect.ratio":"\u0417\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u043E\u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u0441\u0442\u043E\u0440\u043E\u043D","unlock.aspect.ratio":"\u0420\u0430\u0437\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u043E\u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u0441\u0442\u043E\u0440\u043E\u043D",group:"\u0421\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C",ungroup:"\u0420\u0430\u0437\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C","move.to.back":"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u043D\u0430\u0437\u0430\u0434","move.backward":"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u043D\u0430 \u0437\u0430\u0434\u043D\u0438\u0439 \u043F\u043B\u0430\u043D","move.forward":"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0432\u043F\u0435\u0440\u0451\u0434","move.to.front":"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u043D\u0430 \u043F\u0435\u0440\u0435\u0434\u043D\u0438\u0439 \u043F\u043B\u0430\u043D","reset.angle":"\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u0443\u0433\u043E\u043B",lock:"\u0411\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C",unlock:"\u0420\u0430\u0437\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C","align.distribute":"\u0412\u044B\u0440\u043E\u0432\u043D\u044F\u0442\u044C / \u0440\u0430\u0441\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u0442\u044C","move.to.page":"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u043D\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443","flip.horizontal":"\u041F\u0435\u0440\u0435\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u043E","flip.vertical":"\u041F\u0435\u0440\u0435\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E",move:"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C","to.front":"\u041D\u0430 \u043F\u0435\u0440\u0435\u0434\u043D\u0438\u0439 \u043F\u043B\u0430\u043D",forward:"\u0412\u043F\u0435\u0440\u0435\u0434",backward:"\u041D\u0430 \u0437\u0430\u0434\u043D\u0438\u0439 \u043F\u043B\u0430\u043D",back:"\u041D\u0430\u0437\u0430\u0434",language:"\u042F\u0437\u044B\u043A","translation.link":"\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u0435\u0435","dock.position":"\u0420\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043F\u0430\u043D\u0435\u043B\u0438 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432",bottom:"\u0421\u043D\u0438\u0437\u0443",left:"\u0421\u043B\u0435\u0432\u0430",right:"\u0421\u043F\u0440\u0430\u0432\u0430",top:"\u0421\u0432\u0435\u0440\u0445\u0443",page:"\u0421\u0442\u0440\u0430\u043D\u0438\u0446\u0430","keyboard.shortcuts":"\u0421\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u044F \u043A\u043B\u0430\u0432\u0438\u0448",search:"\u041F\u043E\u0438\u0441\u043A",loading:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430","export.background":"\u042D\u043A\u0441\u043F\u043E\u0440\u0442 \u0444\u043E\u043D\u0430",transparent:"\u041F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u044B\u0439",auto:"\u0410\u0432\u0442\u043E",light:"\u0421\u0432\u0435\u0442\u043B\u044B\u0439",dark:"\u0422\u0451\u043C\u043D\u044B\u0439",image:"\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435","align.left":"\u0412\u044B\u0440\u043E\u0432\u043D\u044F\u0442\u044C \u043F\u043E \u043B\u0435\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E","align.center.x":"\u0412\u044B\u0440\u043E\u0432\u043D\u044F\u0442\u044C \u043F\u043E \u0446\u0435\u043D\u0442\u0440\u0443 \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u043E","align.right":"\u0412\u044B\u0440\u043E\u0432\u043D\u044F\u0442\u044C \u043F\u043E \u043F\u0440\u0430\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E","align.top":"\u0412\u044B\u0440\u043E\u0432\u043D\u044F\u0442\u044C \u043F\u043E \u0432\u0435\u0440\u0445\u043D\u0435\u043C\u0443 \u043A\u0440\u0430\u044E","align.center.y":"\u0412\u044B\u0440\u043E\u0432\u043D\u044F\u0442\u044C \u043F\u043E \u0446\u0435\u043D\u0442\u0440\u0443 \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E","align.bottom":"\u0412\u044B\u0440\u043E\u0432\u043D\u044F\u0442\u044C \u043F\u043E \u043D\u0438\u0436\u043D\u0435\u043C\u0443 \u043A\u0440\u0430\u044E","distribute.x":"\u0420\u0430\u0441\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u0442\u044C \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u043E","distribute.y":"\u0420\u0430\u0441\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u0442\u044C \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E","stretch.x":"\u0420\u0430\u0441\u0442\u044F\u043D\u0443\u0442\u044C \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u043E","stretch.y":"\u0420\u0430\u0441\u0442\u044F\u043D\u0443\u0442\u044C \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E",share:"\u041F\u043E\u0434\u0435\u043B\u0438\u0442\u044C\u0441\u044F","copy.current.page.link":"\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443 \u043D\u0430 \u0442\u0435\u043A\u0443\u0449\u0443\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443","copy.project.link":"\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443 \u043D\u0430 \u043F\u0440\u043E\u0435\u043A\u0442","data.too.big.encoded":"\u0414\u0430\u043D\u043D\u044B\u0435 \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u0432\u0435\u043B\u0438\u043A\u0438, \u0447\u0442\u043E\u0431\u044B \u0437\u0430\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0438\u0445 \u0432 \u0441\u0441\u044B\u043B\u043A\u0435. \u041D\u0435 \u0432\u043A\u043B\u044E\u0447\u0430\u0439\u0442\u0435 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0438\u043B\u0438 \u0432\u0438\u0434\u0435\u043E!","dialog.save.firsttime":"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0442\u0435\u043A\u0443\u0449\u0438\u0439 \u043F\u0440\u043E\u0435\u043A\u0442?","dialog.save.again":"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0432 \u0442\u0435\u043A\u0443\u0449\u0435\u043C \u043F\u0440\u043E\u0435\u043A\u0442\u0435?","dialog.cancel":"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C","dialog.no":"\u041D\u0435\u0442","dialog.yes":"\u0414\u0430","enter.file.name":"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0438\u043C\u044F \u0444\u0430\u0439\u043B\u0430"};var Fd={"style.menu.color":"F\xE4rg","style.menu.fill":"Ifylld","style.menu.dash":"Streck","style.menu.size":"Storlek","style.menu.keep.open":"H\xE5ll stilmenyn \xF6ppen","style.menu.font":"Typsnitt","style.menu.align":"Justera",styles:"Utseende","zoom.in":"Zooma in","zoom.out":"Zooma ut",to:"Till","menu.tools":"Verktyg","menu.transform":"Transform","menu.file":"Arkiv","menu.edit":"Redigera","menu.view":"Inneh\xE5ll","menu.preferences":"Inst\xE4llningar","menu.sign.in":"Logga in","menu.sign.out":"Logga ut","become.a.sponsor":"Bli en sponsor","zoom.to.content":"Anpassa zoom till inneh\xE5ll","zoom.to.selection":"Anpassa zoom till urval","zoom.to.fit":"Anpassa zoom till sk\xE4rm","zoom.to":"Zooma till","preferences.dark.mode":"M\xF6rkt l\xE4ge","preferences.focus.mode":"Fokusl\xE4ge","preferences.debug.mode":"Debugl\xE4ge","preferences.show.grid":"Visa rutn\xE4t","preferences.use.cad.selection":"V\xE4lj som i CAD-mjukvara","preferences.keep.stylemenu.open":"H\xE5ll stilmenyn \xF6ppen","preferences.always.show.snaps":"Visa alltid f\xE4stpunkter","preferences.rotate.handles":"Rotationshandtag","preferences.binding.handles":"Bindningshandtag","preferences.clone.handles":"Kloningshandtag",undo:"\xC5ngra",redo:"G\xF6r om",cut:"Klipp ut",copy:"Kopiera",paste:"Klistra in","copy.as":"Kopiera som","export.as":"Exportera till","select.all":"V\xE4lj alla","select.none":"V\xE4lj ingen",delete:"Radera","new.project":"Nytt projekt",open:"\xD6ppna",save:"Spara","save.as":"Spara som","upload.media":"Ladda upp media","create.page":"Skapa sida","new.page":"Ny sida","page.name":"Sidnamn",duplicate:"Duplicera",cancel:"Avbryt","copy.invite.link":"Kopiera l\xE4nk med redigeringsr\xE4ttigheter","copy.readonly.link":"Kopiera l\xE4nk med l\xE4sr\xE4ttigheter","create.multiplayer.project":"Skapa ett Multiplayer-projekt","copy.multiplayer.project":"Kopiera till Multiplayer-project",select:"V\xE4lj",eraser:"Radera",draw:"Rita",arrow:"Pil",text:"Text",sticky:"Klisterlapp",rectangle:"Rektangel",ellipse:"Ellips",triangle:"Triangel",line:"Linje",rotate:"Rotera","lock.aspect.ratio":"L\xE5s storleksf\xF6rh\xE5llande","unlock.aspect.ratio":"L\xE5s upp storleksf\xF6rh\xE5llande",group:"Gruppera",ungroup:"Avgruppera","move.to.back":"Placera l\xE4ngst bak","move.backward":"Flytta bak\xE5t","move.forward":"Flytta fram\xE5t","move.to.front":"Placera l\xE4ngst fram","reset.angle":"\xC5terst\xE4ll vinkel",lock:"L\xE5s",unlock:"L\xE5s upp","align.distribute":"Justera / Placera","move.to.page":"Flytta till sida","flip.horizontal":"V\xE4nd horisontellt","flip.vertical":"V\xE4nd vertikalt",move:"Flytta","to.front":"Till l\xE4ngst fram",forward:"Fram\xE5t",backward:"Bak\xE5t",back:"Till l\xE4ngst bak",language:"Spr\xE5k","translation.link":"Mer information","dock.position":"Dockningsposition",bottom:"Botten",left:"V\xE4nster",right:"H\xF6ger",top:"Topp",page:"Sida","keyboard.shortcuts":"Tangentbordsgenv\xE4gar",search:"S\xF6k",loading:"Laddar{dots}","export.background":"Exportbakgrund",transparent:"Transparent",auto:"Auto",light:"Ljus",dark:"M\xF6rk",github:"Github",twitter:"Twitter",discord:"Discord",image:"Bild"};var Od={"style.menu.color":"\u0C30\u0C02\u0C17\u0C41","style.menu.fill":"\u0C28\u0C3F\u0C02\u0C2A\u0C41","style.menu.dash":"\u0C05\u0C21\u0C4D\u0C21 \u0C17\u0C40\u0C24","style.menu.size":"\u0C2A\u0C30\u0C3F\u0C2E\u0C3E\u0C23\u0C02","style.menu.keep.open":"\u0C24\u0C46\u0C30\u0C3F\u0C1A\u0C3F \u0C09\u0C02\u0C1A\u0C41","style.menu.font":"\u0C05\u0C15\u0C4D\u0C37\u0C30\u0C3E\u0C15\u0C43\u0C24\u0C3F","style.menu.align":"\u0C38\u0C30\u0C3F\u0C2A\u0C30\u0C1A\u0C41",styles:"\u0C35\u0C3F\u0C27\u0C2E\u0C41\u0C32\u0C41","zoom.in":"\u0C26\u0C17\u0C4D\u0C17\u0C30\u0C17\u0C3E \u0C1A\u0C42\u0C2A\u0C41","zoom.out":"\u0C26\u0C42\u0C30\u0C02\u0C17\u0C3E \u0C1A\u0C42\u0C2A\u0C41",to:"\u0C35\u0C26\u0C4D\u0C26\u0C15\u0C41","menu.tools":"\u0C2A\u0C30\u0C3F\u0C15\u0C30\u0C3E\u0C32\u0C41","menu.transform":"\u0C2E\u0C3E\u0C30\u0C4D\u0C1A\u0C41","menu.file":"\u0C2B\u0C48\u0C32\u0C4D","menu.edit":"\u0C2A\u0C30\u0C3F\u0C37\u0C4D\u0C15\u0C30\u0C3F\u0C02\u0C1A\u0C41","menu.view":"\u0C1A\u0C42\u0C2A\u0C41","menu.preferences":"\u0C0E\u0C02\u0C1A\u0C41\u0C15\u0C4A\u0C28\u0C4D\u0C28\u0C35\u0C3F","menu.sign.in":"\u0C2A\u0C4D\u0C30\u0C35\u0C47\u0C36\u0C3F\u0C02\u0C1A\u0C41","menu.sign.out":"\u0C28\u0C3F\u0C37\u0C4D\u0C15\u0C4D\u0C30\u0C2E\u0C23","become.a.sponsor":"\u0C35\u0C3F\u0C30\u0C3E\u0C33\u0C26\u0C3E\u0C30\u0C41\u0C32\u0C41 \u0C05\u0C35\u0C4D\u0C35\u0C02\u0C21\u0C3F","zoom.to.content":"\u0C35\u0C3F\u0C37\u0C2F\u0C3E\u0C28\u0C4D\u0C28\u0C47 \u0C1A\u0C42\u0C2A\u0C41","zoom.to.selection":"\u0C0E\u0C02\u0C1A\u0C41\u0C15\u0C41\u0C28\u0C4D\u0C28 \u0C35\u0C3F\u0C37\u0C2F\u0C3E\u0C28\u0C4D\u0C28\u0C47 \u0C1A\u0C42\u0C2A\u0C41","zoom.to.fit":"\u0C38\u0C30\u0C3F\u0C2A\u0C46\u0C1F\u0C4D\u0C1F\u0C3F \u0C1A\u0C42\u0C2A\u0C41","zoom.to":"\u0C1A\u0C42\u0C2A\u0C41","preferences.dark.mode":"\u0C1A\u0C40\u0C15\u0C1F\u0C48\u0C28 \u0C15\u0C4D\u0C30\u0C2E\u0C02","preferences.focus.mode":"\u0C24\u0C40\u0C15\u0C4D\u0C37\u0C23 \u0C15\u0C4D\u0C30\u0C2E\u0C02","preferences.debug.mode":"\u0C24\u0C2A\u0C4D\u0C2A\u0C41\u0C32\u0C47\u0C30\u0C41 \u0C15\u0C4D\u0C30\u0C2E\u0C02","preferences.show.grid":"\u0C1A\u0C1F\u0C4D\u0C30\u0C02 \u0C1A\u0C42\u0C2A\u0C41","preferences.use.cad.selection":"CAD\u0C28\u0C3F \u0C35\u0C3E\u0C21\u0C41","preferences.keep.stylemenu.open":"\u0C35\u0C3F\u0C27\u0C2E\u0C41\u0C32 \u0C2A\u0C24\u0C4D\u0C24\u0C3F \u0C24\u0C46\u0C30\u0C3F\u0C1A\u0C3F\u0C35\u0C41\u0C02\u0C1A\u0C41","preferences.always.show.snaps":"\u0C0E\u0C2A\u0C4D\u0C2A\u0C41\u0C21\u0C42 \u0C26\u0C43\u0C36\u0C4D\u0C2F\u0C2D\u0C3E\u0C17\u0C02 \u0C1A\u0C42\u0C2A\u0C41","preferences.rotate.handles":"\u0C39\u0C4D\u0C2F\u0C3E\u0C02\u0C21\u0C3F\u0C32\u0C4D\u0C38\u0C4D \u0C24\u0C3F\u0C2A\u0C4D\u0C2A\u0C41","preferences.binding.handles":"\u0C2F\u0C3E\u0C02\u0C21\u0C3F\u0C32\u0C4D\u0C38\u0C4D \u0C15\u0C1F\u0C4D\u0C1F\u0C41","preferences.clone.handles":"\u0C2F\u0C3E\u0C02\u0C21\u0C3F\u0C32\u0C4D\u0C38\u0C4D \u0C28\u0C15\u0C32\u0C41",undo:"\u0C2E\u0C3E\u0C30\u0C4D\u0C2A\u0C41\u0C28\u0C3F \u0C24\u0C3F\u0C30\u0C41\u0C17\u0C17\u0C4A\u0C1F\u0C4D\u0C1F\u0C41",redo:"\u0C2E\u0C33\u0C4D\u0C33\u0C40 \u0C2E\u0C3E\u0C30\u0C4D\u0C1A\u0C41",cut:"\u0C15\u0C24\u0C4D\u0C24\u0C3F\u0C30\u0C3F\u0C02\u0C1A\u0C41",copy:"\u0C28\u0C15\u0C32\u0C41",paste:"\u0C05\u0C24\u0C3F\u0C15\u0C3F\u0C02\u0C1A\u0C41","copy.as":"\u0C28\u0C15\u0C32\u0C41\u0C2A\u0C4D\u0C30\u0C24\u0C3F\u0C17\u0C3E \u0C07\u0C15\u0C4D\u0C15\u0C21\u0C3F\u0C15\u0C3F","export.as":"\u0C0E\u0C17\u0C41\u0C2E\u0C24\u0C3F \u0C07\u0C15\u0C4D\u0C15\u0C21\u0C3F\u0C15\u0C3F","select.all":"\u0C05\u0C28\u0C4D\u0C28\u0C40 \u0C0E\u0C02\u0C2A\u0C3F\u0C15\u0C1A\u0C46\u0C2F\u0C4D\u0C2F\u0C3F","select.none":"\u0C0E\u0C26\u0C40 \u0C0E\u0C02\u0C2A\u0C3F\u0C15\u0C1A\u0C46\u0C2F\u0C4D\u0C2F\u0C35\u0C26\u0C4D\u0C26\u0C41",delete:"\u0C24\u0C4A\u0C32\u0C17\u0C3F\u0C02\u0C1A\u0C41","new.project":"\u0C15\u0C4A\u0C24\u0C4D\u0C24 \u0C2A\u0C4D\u0C30\u0C3E\u0C1C\u0C46\u0C15\u0C4D\u0C1F\u0C41",open:"\u0C24\u0C46\u0C30\u0C41\u0C35\u0C41",save:"\u0C26\u0C3E\u0C2F\u0C3F","save.as":"\u0C07\u0C32\u0C3E \u0C26\u0C3E\u0C2F\u0C3F","upload.media":"\u0C0E\u0C17\u0C41\u0C2E\u0C24\u0C3F \u0C2E\u0C3E\u0C27\u0C4D\u0C2F\u0C02","create.page":"\u0C2A\u0C41\u0C1F \u0C15\u0C32\u0C4D\u0C2A\u0C3F\u0C02\u0C1A\u0C41","new.page":"\u0C15\u0C4A\u0C24\u0C4D\u0C24 \u0C2A\u0C41\u0C1F","page.name":"\u0C2A\u0C41\u0C1F \u0C2A\u0C47\u0C30\u0C41",duplicate:"\u0C2E\u0C3E\u0C30\u0C41\u0C2A\u0C4D\u0C30\u0C24\u0C3F",cancel:"\u0C30\u0C26\u0C4D\u0C26\u0C41\u0C1A\u0C47\u0C2F\u0C3F","copy.invite.link":"\u0C05\u0C39\u0C4D\u0C35\u0C3E\u0C28 \u0C32\u0C3F\u0C02\u0C15\u0C41 \u0C30\u0C3E\u0C2F\u0C3F","copy.readonly.link":"\u0C2E\u0C3E\u0C30\u0C28\u0C3F\u0C2A\u0C4D\u0C30\u0C24\u0C3F \u0C32\u0C3F\u0C02\u0C15\u0C41 \u0C30\u0C3E\u0C2F\u0C3F","create.multiplayer.project":"\u0C2C\u0C39\u0C41\u0C15\u0C30\u0C4D\u0C24\u0C32 \u0C2A\u0C4D\u0C30\u0C3E\u0C1C\u0C46\u0C15\u0C4D\u0C1F\u0C41 \u0C15\u0C32\u0C4D\u0C2A\u0C3F\u0C02\u0C1A\u0C41","copy.multiplayer.project":"\u0C2C\u0C39\u0C41\u0C15\u0C30\u0C4D\u0C24\u0C32 \u0C2A\u0C4D\u0C30\u0C3E\u0C1C\u0C46\u0C15\u0C4D\u0C1F\u0C41\u0C15\u0C41 \u0C30\u0C3E\u0C2F\u0C3F",select:"\u0C0E\u0C02\u0C2A\u0C3F\u0C15\u0C1A\u0C46\u0C2F\u0C4D\u0C2F\u0C3F",eraser:"Eraser",draw:"\u0C17\u0C40\u0C2F\u0C4D\u0C2F\u0C3F",arrow:"\u0C2C\u0C3E\u0C23\u0C02",text:"\u0C05\u0C15\u0C4D\u0C37\u0C30\u0C2E\u0C41\u0C32\u0C41",sticky:"\u0C05\u0C24\u0C41\u0C15\u0C4D\u0C15\u0C41\u0C28\u0C47",rectangle:"\u0C26\u0C40\u0C30\u0C4D\u0C18\u0C1A\u0C24\u0C41\u0C30\u0C38\u0C4D\u0C30\u0C02",ellipse:"\u0C26\u0C40\u0C30\u0C4D\u0C18\u0C35\u0C43\u0C24\u0C4D\u0C24\u0C02",triangle:"\u0C24\u0C4D\u0C30\u0C3F\u0C2D\u0C41\u0C1C\u0C02",line:"\u0C17\u0C40\u0C24",rotate:"\u0C24\u0C3F\u0C2A\u0C4D\u0C2A\u0C41","lock.aspect.ratio":"\u0C06\u0C38\u0C4D\u0C2A\u0C46\u0C15\u0C4D\u0C1F\u0C4D \u0C28\u0C3F\u0C37\u0C4D\u0C2A\u0C24\u0C4D\u0C24\u0C3F\u0C15\u0C3F \u0C24\u0C3E\u0C33\u0C02\u0C2A\u0C46\u0C1F\u0C4D\u0C1F\u0C41","unlock.aspect.ratio":"\u0C06\u0C38\u0C4D\u0C2A\u0C46\u0C15\u0C4D\u0C1F\u0C4D \u0C28\u0C3F\u0C37\u0C4D\u0C2A\u0C24\u0C4D\u0C24\u0C3F \u0C24\u0C3E\u0C33\u0C02\u0C24\u0C46\u0C30\u0C41\u0C35\u0C41",group:"\u0C17\u0C41\u0C02\u0C2A\u0C41\u0C17\u0C3E \u0C0F\u0C30\u0C4D\u0C2A\u0C30\u0C1A\u0C41",ungroup:"\u0C17\u0C41\u0C02\u0C2A\u0C41\u0C28\u0C41 \u0C1A\u0C46\u0C26\u0C30\u0C17\u0C4A\u0C1F\u0C4D\u0C1F\u0C41","move.to.back":"\u0C06\u0C16\u0C30\u0C3F\u0C15\u0C3F \u0C1C\u0C30\u0C41\u0C2A\u0C41","move.backward":"\u0C35\u0C46\u0C28\u0C41\u0C15\u0C15\u0C41 \u0C1C\u0C30\u0C41\u0C2A\u0C41","move.forward":"\u0C2E\u0C41\u0C02\u0C26\u0C41\u0C15\u0C41 \u0C1C\u0C30\u0C41\u0C2A\u0C41","move.to.front":"\u0C2E\u0C4A\u0C26\u0C1F\u0C3F\u0C15\u0C3F \u0C1C\u0C30\u0C41\u0C2A\u0C41","reset.angle":"\u0C15\u0C4B\u0C23\u0C02 \u0C30\u0C40\u0C38\u0C46\u0C1F\u0C4D",lock:"\u0C24\u0C3E\u0C33\u0C02 \u0C35\u0C46\u0C2F\u0C4D\u0C2F\u0C3F",unlock:"\u0C24\u0C3E\u0C33\u0C02 \u0C24\u0C3F\u0C2F\u0C4D\u0C2F\u0C3F","align.distribute":" \u0C38\u0C30\u0C3F\u0C2A\u0C30\u0C1A\u0C41/\u0C35\u0C46\u0C26\u0C1C\u0C32\u0C4D\u0C32\u0C41","move.to.page":"\u0C2A\u0C41\u0C1F\u0C32\u0C4B\u0C15\u0C3F \u0C1C\u0C30\u0C41\u0C2A\u0C41","flip.horizontal":"\u0C05\u0C21\u0C4D\u0C21\u0C02\u0C17\u0C3E \u0C2A\u0C32\u0C4D\u0C1F\u0C40","flip.vertical":"\u0C28\u0C3F\u0C32\u0C41\u0C35\u0C41\u0C17\u0C3E \u0C2A\u0C32\u0C4D\u0C1F\u0C40",move:"\u0C1C\u0C30\u0C41\u0C2A\u0C41","to.front":"\u0C2E\u0C4A\u0C26\u0C1F\u0C3F\u0C15\u0C3F",forward:"\u0C2E\u0C41\u0C02\u0C26\u0C41\u0C15\u0C41",backward:"\u0C35\u0C46\u0C28\u0C41\u0C15\u0C15\u0C41",back:"\u0C06\u0C16\u0C30\u0C3F\u0C15\u0C3F",language:"\u0C2D\u0C3E\u0C37","translation.link":"\u0C2E\u0C30\u0C3F \u0C15\u0C4A\u0C28\u0C4D\u0C28\u0C3F \u0C35\u0C3F\u0C37\u0C2F\u0C3E\u0C32\u0C41","dock.position":"\u0C2E\u0C02\u0C1A \u0C38\u0C4D\u0C25\u0C3E\u0C28\u0C02",bottom:"\u0C05\u0C21\u0C41\u0C17\u0C41\u0C28",left:"\u0C0E\u0C21\u0C2E\u0C35\u0C48\u0C2A\u0C41",right:"\u0C15\u0C41\u0C21\u0C3F\u0C35\u0C48\u0C2A\u0C41",top:"\u0C2A\u0C48\u0C28",page:"\u0C2A\u0C41\u0C24","keyboard.shortcuts":"\u0C15\u0C40\u0C2C\u0C4B\u0C30\u0C4D\u0C21\u0C4D \u0C38\u0C24\u0C4D\u0C35\u0C30\u0C2E\u0C3E\u0C30\u0C4D\u0C17\u0C02",search:"\u0C35\u0C46\u0C24\u0C41\u0C15\u0C41",loading:"Loading{dots}","export.background":"\u0C28\u0C47\u0C2A\u0C25\u0C4D\u0C2F\u0C02 \u0C0E\u0C17\u0C41\u0C2E\u0C24\u0C3F",transparent:"\u0C15\u0C3E\u0C02\u0C24\u0C3F \u0C2D\u0C47\u0C26\u0C4D\u0C2F\u0C2E\u0C41",auto:"\u0C38\u0C4D\u0C35\u0C2F\u0C02\u0C15\u0C43\u0C24\u0C02",light:"\u0C35\u0C46\u0C32\u0C41\u0C24\u0C41\u0C30\u0C41",dark:"\u0C1A\u0C40\u0C15\u0C1F\u0C3F",github:"Github",twitter:"Twitter",discord:"Discord",image:"\u0C1A\u0C3F\u0C24\u0C4D\u0C30\u0C02","align.left":"\u0C0E\u0C21\u0C2E\u0C35\u0C48\u0C2A\u0C41\u0C15\u0C41 \u0C15\u0C41\u0C26\u0C41\u0C30\u0C4D\u0C1A\u0C41","align.center.x":"\u0C05\u0C21\u0C4D\u0C21\u0C02\u0C17\u0C3E \u0C2E\u0C27\u0C4D\u0C2F\u0C32\u0C4B \u0C15\u0C41\u0C26\u0C41\u0C30\u0C4D\u0C1A\u0C41","align.right":"\u0C15\u0C41\u0C21\u0C3F\u0C35\u0C48\u0C2A\u0C41\u0C15\u0C41 \u0C15\u0C41\u0C26\u0C41\u0C30\u0C4D\u0C1A\u0C41","align.top":"\u0C2A\u0C48\u0C15\u0C3F \u0C15\u0C41\u0C26\u0C41\u0C30\u0C4D\u0C1A\u0C41","align.center.y":"\u0C28\u0C3F\u0C32\u0C41\u0C35\u0C41\u0C17\u0C3E \u0C2E\u0C27\u0C4D\u0C2F\u0C32\u0C4B \u0C15\u0C41\u0C26\u0C41\u0C30\u0C4D\u0C1A\u0C41","align.bottom":"\u0C05\u0C21\u0C41\u0C17\u0C41\u0C28 \u0C15\u0C41\u0C26\u0C41\u0C30\u0C4D\u0C1A\u0C41","distribute.x":"\u0C05\u0C21\u0C4D\u0C21\u0C02\u0C17\u0C3E \u0C2A\u0C02\u0C1A\u0C41","distribute.y":"\u0C28\u0C3F\u0C32\u0C41\u0C35\u0C41\u0C17\u0C3E \u0C2A\u0C02\u0C1A\u0C41","stretch.x":"\u0C05\u0C21\u0C4D\u0C21\u0C02\u0C17\u0C3E \u0C32\u0C3E\u0C17\u0C41","stretch.y":"\u0C28\u0C3F\u0C32\u0C41\u0C35\u0C41\u0C17\u0C3E \u0C32\u0C3E\u0C17\u0C41","dialog.save.firsttime":"\u0C2E\u0C40\u0C30\u0C41 \u0C08 \u0C2A\u0C4D\u0C30\u0C3E\u0C1C\u0C46\u0C15\u0C4D\u0C1F\u0C4D \u0C2D\u0C26\u0C4D\u0C30\u0C2A\u0C30\u0C1A\u0C41\u0C15\u0C4B\u0C35\u0C3E\u0C32\u0C28\u0C3F \u0C05\u0C28\u0C41\u0C15\u0C41\u0C02\u0C1F\u0C41\u0C28\u0C4D\u0C28\u0C3E\u0C30\u0C3E?","dialog.save.again":"\u0C2E\u0C40\u0C30\u0C41 \u0C08 \u0C2A\u0C4D\u0C30\u0C3E\u0C1C\u0C46\u0C15\u0C4D\u0C1F\u0C4D \u0C2D\u0C26\u0C4D\u0C30\u0C2A\u0C30\u0C1A\u0C41\u0C15\u0C4B\u0C35\u0C3E\u0C32\u0C28\u0C3F \u0C05\u0C28\u0C41\u0C15\u0C41\u0C02\u0C1F\u0C41\u0C28\u0C4D\u0C28\u0C3E\u0C30\u0C3E?","dialog.cancel":"\u0C30\u0C26\u0C4D\u0C26\u0C41\u0C1A\u0C46\u0C2F\u0C4D\u0C2F\u0C3F","dialog.no":"\u0C35\u0C26\u0C4D\u0C26\u0C41","dialog.yes":"\u0C38\u0C30\u0C47","enter.file.name":"\u0C2B\u0C48\u0C32\u0C4D \u0C2A\u0C46\u0C30\u0C41 \u0C1A\u0C46\u0C2A\u0C4D\u0C2A\u0C02\u0C21\u0C3F"};var $d={"style.menu.color":"\u0E2A\u0E35","style.menu.fill":"\u0E40\u0E15\u0E34\u0E21","style.menu.dash":"\u0E01\u0E23\u0E2D\u0E1A","style.menu.size":"\u0E02\u0E19\u0E32\u0E14","style.menu.keep.open":"\u0E40\u0E1B\u0E34\u0E14\u0E17\u0E34\u0E49\u0E07\u0E44\u0E27\u0E49","style.menu.font":"\u0E41\u0E1A\u0E1A\u0E2D\u0E31\u0E01\u0E29\u0E23","style.menu.align":"\u0E08\u0E31\u0E14\u0E15\u0E33\u0E41\u0E2B\u0E19\u0E48\u0E07",styles:"\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A","zoom.in":"\u0E0B\u0E39\u0E21\u0E40\u0E02\u0E49\u0E32","zoom.out":"\u0E0B\u0E39\u0E21\u0E2D\u0E2D\u0E01",to:"\u0E0B\u0E39\u0E21\u0E44\u0E1B\u0E17\u0E35\u0E48","menu.tools":"\u0E40\u0E04\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E21\u0E37\u0E2D","menu.transform":"\u0E41\u0E1B\u0E25\u0E07","menu.file":"\u0E44\u0E1F\u0E25\u0E4C","menu.edit":"\u0E41\u0E01\u0E49\u0E44\u0E02","menu.view":"\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07","menu.preferences":"\u0E01\u0E32\u0E23\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32","menu.sign.in":"\u0E40\u0E02\u0E49\u0E32\u0E2A\u0E39\u0E48\u0E23\u0E30\u0E1A\u0E1A","menu.sign.out":"\u0E2D\u0E2D\u0E01\u0E08\u0E32\u0E01\u0E23\u0E30\u0E1A\u0E1A","become.a.sponsor":"\u0E23\u0E48\u0E27\u0E21\u0E40\u0E1B\u0E47\u0E19\u0E2A\u0E1B\u0E2D\u0E19\u0E40\u0E0B\u0E2D\u0E23\u0E4C","zoom.to.content":"\u0E01\u0E25\u0E31\u0E1A\u0E44\u0E1B\u0E22\u0E31\u0E07\u0E40\u0E19\u0E37\u0E49\u0E2D\u0E2B\u0E32","zoom.to.selection":"\u0E0B\u0E39\u0E21\u0E44\u0E1B\u0E22\u0E31\u0E07\u0E2A\u0E48\u0E27\u0E19\u0E17\u0E35\u0E48\u0E40\u0E25\u0E37\u0E2D\u0E01","zoom.to.fit":"\u0E0B\u0E39\u0E21\u0E43\u0E2B\u0E49\u0E40\u0E15\u0E47\u0E21\u0E1E\u0E2D\u0E14\u0E35","zoom.to":"\u0E0B\u0E39\u0E21\u0E44\u0E1B\u0E17\u0E35\u0E48","preferences.dark.mode":"\u0E42\u0E2B\u0E21\u0E14\u0E21\u0E37\u0E14","preferences.focus.mode":"\u0E42\u0E2B\u0E21\u0E14\u0E42\u0E1F\u0E01\u0E31\u0E2A","preferences.debug.mode":"\u0E42\u0E2B\u0E21\u0E14\u0E14\u0E35\u0E1A\u0E31\u0E01","preferences.show.grid":"\u0E41\u0E2A\u0E14\u0E07\u0E15\u0E32\u0E23\u0E32\u0E07","preferences.use.cad.selection":"\u0E01\u0E32\u0E23\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E41\u0E1A\u0E1A CAD","preferences.keep.stylemenu.open":"\u0E40\u0E1B\u0E34\u0E14\u0E40\u0E21\u0E19\u0E39\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E17\u0E34\u0E49\u0E07\u0E44\u0E27\u0E49","preferences.always.show.snaps":"\u0E41\u0E2A\u0E14\u0E07\u0E2A\u0E41\u0E19\u0E1B\u0E15\u0E25\u0E2D\u0E14","preferences.rotate.handles":"\u0E41\u0E2A\u0E14\u0E07\u0E08\u0E38\u0E14\u0E08\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E2B\u0E21\u0E38\u0E19","preferences.binding.handles":"\u0E41\u0E2A\u0E14\u0E07\u0E2B\u0E21\u0E32\u0E22\u0E40\u0E25\u0E02\u0E2D\u0E49\u0E32\u0E07\u0E2D\u0E34\u0E07","preferences.clone.handles":"\u0E41\u0E2A\u0E14\u0E07\u0E15\u0E31\u0E27\u0E42\u0E04\u0E25\u0E19",undo:"\u0E40\u0E25\u0E34\u0E01\u0E17\u0E33",redo:"\u0E17\u0E33\u0E0B\u0E49\u0E33",cut:"\u0E15\u0E31\u0E14",copy:"\u0E04\u0E31\u0E14\u0E25\u0E2D\u0E01",paste:"\u0E27\u0E32\u0E07","copy.as":"\u0E04\u0E31\u0E14\u0E25\u0E2D\u0E01\u0E40\u0E1B\u0E47\u0E19","export.as":"\u0E2A\u0E48\u0E07\u0E2D\u0E2D\u0E01\u0E40\u0E1B\u0E47\u0E19","select.all":"\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14","select.none":"\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01\u0E2A\u0E34\u0E48\u0E07\u0E17\u0E35\u0E48\u0E40\u0E25\u0E37\u0E2D\u0E01",delete:"\u0E25\u0E1A","new.project":"\u0E42\u0E1B\u0E23\u0E40\u0E08\u0E01\u0E15\u0E4C\u0E43\u0E2B\u0E21\u0E48",open:"\u0E40\u0E1B\u0E34\u0E14",save:"\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01","save.as":"\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E40\u0E1B\u0E47\u0E19","upload.media":"\u0E2D\u0E31\u0E1E\u0E42\u0E2B\u0E25\u0E14\u0E21\u0E35\u0E40\u0E14\u0E35\u0E22","create.page":"\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E2B\u0E19\u0E49\u0E32","new.page":"\u0E2B\u0E19\u0E49\u0E32\u0E43\u0E2B\u0E21\u0E48","page.name":"\u0E0A\u0E37\u0E48\u0E2D\u0E2B\u0E19\u0E49\u0E32",duplicate:"\u0E2A\u0E33\u0E40\u0E19\u0E32",cancel:"\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01","copy.invite.link":"\u0E04\u0E31\u0E14\u0E25\u0E2D\u0E01\u0E25\u0E34\u0E07\u0E01\u0E4C\u0E40\u0E0A\u0E34\u0E0D","copy.readonly.link":"\u0E04\u0E31\u0E14\u0E25\u0E2D\u0E01\u0E25\u0E34\u0E07\u0E01\u0E4C\u0E41\u0E1A\u0E1A\u0E43\u0E2B\u0E49\u0E2D\u0E48\u0E32\u0E19\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E40\u0E14\u0E35\u0E22\u0E27","create.multiplayer.project":"\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E42\u0E1B\u0E23\u0E40\u0E08\u0E01\u0E15\u0E4C\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19\u0E2B\u0E25\u0E32\u0E22\u0E04\u0E19","copy.multiplayer.project":"\u0E04\u0E31\u0E14\u0E25\u0E2D\u0E01\u0E42\u0E1B\u0E23\u0E40\u0E08\u0E01\u0E15\u0E4C\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19\u0E2B\u0E25\u0E32\u0E22\u0E04\u0E19",select:"\u0E40\u0E25\u0E37\u0E2D\u0E01",eraser:"\u0E22\u0E32\u0E07\u0E25\u0E1A",draw:"\u0E27\u0E32\u0E14",arrow:"\u0E25\u0E39\u0E01\u0E28\u0E23",text:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21",sticky:"\u0E01\u0E23\u0E30\u0E14\u0E32\u0E29\u0E42\u0E19\u0E4A\u0E15",rectangle:"\u0E2A\u0E35\u0E48\u0E40\u0E2B\u0E25\u0E35\u0E48\u0E22\u0E21\u0E1C\u0E37\u0E19\u0E1C\u0E49\u0E32",ellipse:"\u0E27\u0E07\u0E23\u0E35",triangle:"\u0E2A\u0E32\u0E21\u0E40\u0E2B\u0E25\u0E35\u0E48\u0E22\u0E21",line:"\u0E40\u0E2A\u0E49\u0E19",rotate:"\u0E2B\u0E21\u0E38\u0E19","lock.aspect.ratio":"\u0E25\u0E47\u0E2D\u0E04\u0E2D\u0E31\u0E15\u0E23\u0E32\u0E2A\u0E48\u0E27\u0E19\u0E20\u0E32\u0E1E","unlock.aspect.ratio":"\u0E1B\u0E25\u0E14\u0E25\u0E47\u0E2D\u0E01\u0E2D\u0E31\u0E15\u0E23\u0E32\u0E2A\u0E48\u0E27\u0E19\u0E20\u0E32\u0E1E",group:"\u0E01\u0E25\u0E38\u0E48\u0E21",ungroup:"\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01\u0E01\u0E25\u0E38\u0E48\u0E21","move.to.back":"\u0E22\u0E49\u0E32\u0E22\u0E44\u0E1B\u0E14\u0E49\u0E32\u0E19\u0E2B\u0E25\u0E31\u0E07","move.backward":"\u0E02\u0E22\u0E31\u0E1A\u0E16\u0E2D\u0E22\u0E2B\u0E25\u0E31\u0E07","move.forward":"\u0E02\u0E22\u0E31\u0E1A\u0E44\u0E1B\u0E2B\u0E19\u0E49\u0E32","move.to.front":"\u0E22\u0E49\u0E32\u0E22\u0E44\u0E1B\u0E14\u0E49\u0E32\u0E19\u0E2B\u0E19\u0E49\u0E32","reset.angle":"\u0E23\u0E35\u0E40\u0E0B\u0E47\u0E15\u0E21\u0E38\u0E21",lock:"\u0E25\u0E47\u0E2D\u0E04",unlock:"\u0E1B\u0E25\u0E14\u0E25\u0E47\u0E2D\u0E04","align.distribute":"\u0E08\u0E31\u0E14\u0E15\u0E33\u0E41\u0E2B\u0E19\u0E48\u0E07 / \u0E01\u0E23\u0E30\u0E08\u0E32\u0E22","move.to.page":"\u0E22\u0E49\u0E32\u0E22\u0E44\u0E1B\u0E22\u0E31\u0E07\u0E2B\u0E19\u0E49\u0E32","flip.horizontal":"\u0E1E\u0E25\u0E34\u0E01\u0E41\u0E19\u0E27\u0E19\u0E2D\u0E19","flip.vertical":"\u0E1E\u0E25\u0E34\u0E01\u0E41\u0E19\u0E27\u0E15\u0E31\u0E49\u0E07",move:"\u0E22\u0E49\u0E32\u0E22","to.front":"\u0E44\u0E1B\u0E22\u0E31\u0E07\u0E14\u0E49\u0E32\u0E19\u0E2B\u0E19\u0E49\u0E32",forward:"\u0E02\u0E49\u0E32\u0E07\u0E2B\u0E19\u0E49\u0E32",backward:"\u0E02\u0E49\u0E32\u0E07\u0E2B\u0E25\u0E31\u0E07",back:"\u0E44\u0E1B\u0E22\u0E31\u0E07\u0E14\u0E49\u0E32\u0E19\u0E2B\u0E25\u0E31\u0E07",language:"\u0E20\u0E32\u0E29\u0E32","translation.link":"\u0E40\u0E23\u0E35\u0E22\u0E19\u0E23\u0E39\u0E49\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E40\u0E15\u0E34\u0E21","dock.position":"\u0E15\u0E33\u0E41\u0E2B\u0E19\u0E48\u0E07\u0E41\u0E16\u0E1A\u0E40\u0E04\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E21\u0E37\u0E2D",bottom:"\u0E02\u0E49\u0E32\u0E07\u0E25\u0E48\u0E32\u0E07",left:"\u0E02\u0E49\u0E32\u0E07\u0E0B\u0E49\u0E32\u0E22",right:"\u0E02\u0E49\u0E32\u0E07\u0E02\u0E27\u0E32",top:"\u0E02\u0E49\u0E32\u0E07\u0E1A\u0E19",page:"\u0E2B\u0E19\u0E49\u0E32","keyboard.shortcuts":"\u0E41\u0E1B\u0E49\u0E19\u0E1E\u0E34\u0E21\u0E1E\u0E4C\u0E25\u0E31\u0E14",search:"\u0E04\u0E49\u0E19\u0E2B\u0E32",loading:"\u0E01\u0E33\u0E25\u0E31\u0E07\u0E42\u0E2B\u0E25\u0E14{dots}","export.background":"\u0E2A\u0E48\u0E07\u0E2D\u0E2D\u0E01\u0E1E\u0E37\u0E49\u0E19\u0E2B\u0E25\u0E31\u0E07",transparent:"\u0E42\u0E1B\u0E23\u0E48\u0E07\u0E43\u0E2A",auto:"\u0E2D\u0E31\u0E15\u0E42\u0E19\u0E21\u0E31\u0E15\u0E34",light:"\u0E2A\u0E27\u0E48\u0E32\u0E07",dark:"\u0E21\u0E37\u0E14",github:"Github",twitter:"Twitter",discord:"Discord",image:"\u0E20\u0E32\u0E1E","align.left":"\u0E08\u0E31\u0E14\u0E43\u0E2B\u0E49\u0E0A\u0E34\u0E14\u0E0B\u0E49\u0E32\u0E22","align.center.x":"\u0E08\u0E31\u0E14\u0E43\u0E2B\u0E49\u0E2D\u0E22\u0E39\u0E48\u0E01\u0E36\u0E48\u0E07\u0E01\u0E25\u0E32\u0E07\u0E41\u0E19\u0E27\u0E19\u0E2D\u0E19","align.right":"\u0E08\u0E31\u0E14\u0E43\u0E2B\u0E49\u0E0A\u0E34\u0E14\u0E02\u0E27\u0E32","align.top":"\u0E08\u0E31\u0E14\u0E43\u0E2B\u0E49\u0E2D\u0E22\u0E39\u0E48\u0E14\u0E49\u0E32\u0E19\u0E1A\u0E19","align.center.y":"\u0E08\u0E31\u0E14\u0E43\u0E2B\u0E49\u0E2D\u0E22\u0E39\u0E48\u0E01\u0E36\u0E48\u0E07\u0E01\u0E25\u0E32\u0E07\u0E41\u0E19\u0E27\u0E15\u0E31\u0E49\u0E07","align.bottom":"\u0E08\u0E31\u0E14\u0E43\u0E2B\u0E49\u0E2D\u0E22\u0E39\u0E48\u0E14\u0E49\u0E32\u0E19\u0E25\u0E48\u0E32\u0E07","distribute.x":"\u0E01\u0E23\u0E30\u0E08\u0E32\u0E22\u0E41\u0E19\u0E27\u0E19\u0E2D\u0E19","distribute.y":"\u0E01\u0E23\u0E30\u0E08\u0E32\u0E22\u0E41\u0E19\u0E27\u0E15\u0E31\u0E49\u0E07","stretch.x":"\u0E22\u0E37\u0E14\u0E41\u0E19\u0E27\u0E19\u0E2D\u0E19","stretch.y":"\u0E22\u0E37\u0E14\u0E41\u0E19\u0E27\u0E15\u0E31\u0E49\u0E07","dialog.save.firsttime":"\u0E04\u0E38\u0E13\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E42\u0E1B\u0E23\u0E40\u0E08\u0E47\u0E01\u0E15\u0E4C\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E2B\u0E23\u0E37\u0E2D\u0E44\u0E21\u0E48?","dialog.save.again":"\u0E04\u0E38\u0E13\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E01\u0E32\u0E23\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E41\u0E1B\u0E25\u0E07\u0E43\u0E19\u0E42\u0E1B\u0E23\u0E40\u0E08\u0E47\u0E01\u0E15\u0E4C\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E2B\u0E23\u0E37\u0E2D\u0E44\u0E21\u0E48?","dialog.cancel":"\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01","dialog.no":"\u0E44\u0E21\u0E48","dialog.yes":"\u0E43\u0E0A\u0E48","enter.file.name":"\u0E01\u0E23\u0E2D\u0E01\u0E0A\u0E37\u0E48\u0E2D\u0E44\u0E1F\u0E25\u0E4C"};var Gd={"style.menu.color":"Renk","style.menu.fill":"Doldur","style.menu.dash":"\xC7izgi","style.menu.size":"Boyut","style.menu.keep.open":"A\xE7\u0131k Tut","style.menu.font":"Yaz\u0131 Tipi","style.menu.align":"Hizala",styles:"Stiller","zoom.in":"Yak\u0131nla\u015Ft\u0131r","zoom.out":"Uzakla\u015Ft\u0131r",to:"","menu.file":"Dosya","menu.edit":"D\xFCzenle","menu.view":"G\xF6r\xFCnt\xFC","menu.preferences":"Tercihler","menu.sign.in":"Giri\u015F Yap","menu.sign.out":"Oturumu Kapat","become.a.sponsor":"Sponsor Ol","zoom.to.selection":"Se\xE7ime Yak\u0131nla\u015Ft\u0131r","zoom.to.fit":"S\u0131\u011Fd\u0131rmak i\xE7in Yak\u0131nla\u015Ft\u0131r","zoom.to":"Yak\u0131nla\u015Ft\u0131r","preferences.dark.mode":"Karanl\u0131k Mod","preferences.focus.mode":"Odak Modu","preferences.debug.mode":"Debug Modu","preferences.show.grid":"Izgaray\u0131 G\xF6ster","preferences.use.cad.selection":"CAD Se\xE7imi Kullan","preferences.keep.stylemenu.open":"Stil Men\xFCs\xFCn\xFC A\xE7\u0131k Tut","preferences.always.show.snaps":"Hiza \xC7izgilerini Hep G\xF6ster","preferences.rotate.handles":"Rotasyon Kontrolc\xFCleri","preferences.binding.handles":"Ba\u011Flama Kontrolc\xFCleri","preferences.clone.handles":"Klon Kontrolc\xFCleri",undo:"Geri Al",redo:"Yinele",cut:"Kes",copy:"Kopyala",paste:"Yap\u0131\u015Ft\u0131r","copy.as":"Olarak Kopyala","export.as":"Olarak D\u0131\u015Far\u0131 Aktar","select.all":"Hepsini Se\xE7","select.none":"Hi\xE7birini Se\xE7me",delete:"Sil","new.project":"Yeni Proje",open:"A\xE7",save:"Kaydet","save.as":"Farkl\u0131 Kaydet","upload.media":"Medya Y\xFCkle","create.page":"Sayfa Olu\u015Ftur","new.page":"Yeni Sayfa","page.name":"Sayfa \u0130smi",duplicate:"Kopya Olu\u015Ftur",cancel:"\u0130ptal","copy.invite.link":"Davet Linkini Kopyala","create.multiplayer.project":"\xC7ok Oyunculu Proje Olu\u015Ftur","copy.multiplayer.project":"\xC7ok Oyunculu Projeye Kopyala",select:"Se\xE7",eraser:"Silgi",draw:"\xC7izim",arrow:"Ok",text:"Yaz\u0131",sticky:"Yap\u0131\u015Fkan",rectangle:"Dikd\xF6rtgen",ellipse:"Elips",triangle:"\xDC\xE7gen",line:"\xC7izgi",rotate:"D\xF6nd\xFCr","lock.aspect.ratio":"En Boy Oran\u0131n\u0131 Kilitle","unlock.aspect.ratio":"En Boy Oran\u0131 Kilidini A\xE7",group:"Grupla",ungroup:"Gruplamay\u0131 Kald\u0131r","move.to.back":"Arkaya Ta\u015F\u0131","move.backward":"En Arkaya Ta\u015F\u0131","move.forward":"En \xD6ne Ta\u015F\u0131","move.to.front":"\xD6ne Ta\u015F\u0131","reset.angle":"A\xE7\u0131y\u0131 S\u0131f\u0131rla",lock:"Kilitle",unlock:"Kilidini A\xE7","move.to.page":"Sayfaya Ta\u015F\u0131","flip.horizontal":"Yatay \xC7evir","flip.vertical":"Dikey \xC7evir",move:"Ta\u015F\u0131","to.front":"\xD6ne",forward:"En \xD6ne",backward:"En Arkaya",back:"Arkaya",language:"Dil"};var jd={"style.menu.color":"\u041A\u043E\u043B\u0456\u0440","style.menu.fill":"\u0417\u0430\u043F\u043E\u0432\u043D\u044E\u0432\u0430\u0442\u0438","style.menu.dash":"\u0428\u0442\u0440\u0438\u0445","style.menu.size":"\u0420\u043E\u0437\u043C\u0456\u0440","style.menu.keep.open":"\u0422\u0440\u0438\u043C\u0430\u0442\u0438 \u0432\u0456\u0434\u043A\u0440\u0438\u0442\u0438\u043C","style.menu.font":"\u0428\u0440\u0438\u0444\u0442","style.menu.align":"\u0412\u0438\u0440\u0456\u0432\u043D\u044F\u0442\u0438",styles:"\u0421\u0442\u0438\u043B\u044C","zoom.in":"\u0417\u0431\u0456\u043B\u044C\u0448\u0438\u0442\u0438","zoom.out":"\u0417\u043C\u0435\u043D\u0448\u0438\u0442\u0438",to:"\u0434\u043E","menu.file":"\u0424\u0430\u0439\u043B","menu.edit":"\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u043D\u043D\u044F","menu.view":"\u0412\u0438\u0433\u043B\u044F\u0434","menu.preferences":"\u041D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F","menu.sign.in":"\u0423\u0432\u0456\u0439\u0442\u0438","menu.sign.out":"\u0412\u0438\u0439\u0442\u0438","become.a.sponsor":"\u0421\u0442\u0430\u0442\u0438 \u0441\u043F\u043E\u043D\u0441\u043E\u0440\u043E\u043C","zoom.to.selection":"\u041D\u0430\u0431\u043B\u0438\u0437\u0438\u0442\u0438 \u0434\u043E \u0432\u0438\u0434\u0456\u043B\u0435\u043D\u043D\u044F","zoom.to.fit":"\u0417\u0431\u0456\u043B\u044C\u0448\u0438\u0442\u0438 \u0437\u0430 \u0440\u043E\u0437\u043C\u0456\u0440\u043E\u043C \u0435\u043A\u0440\u0430\u043D\u0443","zoom.to":"\u041D\u0430\u0431\u043B\u0438\u0437\u0438\u0442\u0438 \u0434\u043E","preferences.dark.mode":"\u0422\u0435\u043C\u043D\u0430 \u0442\u0435\u043C\u0430","preferences.focus.mode":"\u041C\u0456\u043D\u0456\u043C\u0430\u043B\u0456\u0441\u0442\u0438\u0447\u043D\u0438\u0439 \u0440\u0435\u0436\u0438\u043C","preferences.debug.mode":"\u0420\u0435\u0436\u0438\u043C \u043D\u0430\u043B\u0430\u0433\u043E\u0434\u0436\u0435\u043D\u043D\u044F","preferences.show.grid":"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u0438 \u0441\u0456\u0442\u043A\u0443","preferences.use.cad.selection":"\u0412\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0432\u0430\u0442\u0438 CAD \u0432\u0438\u0434\u0456\u043B\u0435\u043D\u043D\u044F","preferences.keep.stylemenu.open":"\u0422\u0440\u0438\u043C\u0430\u0442\u0438 \u043C\u0435\u043D\u044E \u0441\u0442\u0438\u043B\u0456\u0432 \u0432\u0456\u0434\u043A\u0440\u0438\u0442\u0438\u043C","preferences.always.show.snaps":"\u0417\u0430\u0432\u0436\u0434\u0438 \u043F\u043E\u043A\u0430\u0437\u0443\u0432\u0430\u0442\u0438 \u043F\u0440\u0438\u0432'\u044F\u0437\u043A\u0438","preferences.rotate.handles":"\u0420\u0443\u0447\u043A\u0438 \u043E\u0431\u0435\u0440\u0442\u0430\u043D\u043D\u044F","preferences.binding.handles":"\u0420\u0443\u0447\u043A\u0438 \u043F\u0440\u0438\u0432'\u044F\u0437\u043A\u0438","preferences.clone.handles":"\u0420\u0443\u0447\u043A\u0438 \u043A\u043B\u043E\u043D\u0443\u0432\u0430\u043D\u043D\u044F",undo:"\u0421\u043A\u0430\u0441\u0443\u0432\u0430\u0442\u0438",redo:"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0438",cut:"\u0412\u0438\u0440\u0456\u0437\u0430\u0442\u0438",copy:"\u0421\u043A\u043E\u043F\u0456\u044E\u0432\u0430\u0442\u0438",paste:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438","copy.as":"\u0421\u043A\u043E\u043F\u0456\u044E\u0432\u0430\u0442\u0438 \u044F\u043A","export.as":"\u0415\u043A\u0441\u043F\u043E\u0440\u0442\u0443\u0432\u0430\u0442\u0438 \u044F\u043A","select.all":"\u041E\u0431\u0440\u0430\u0442\u0438 \u0432\u0441\u0435","select.none":"\u0417\u043D\u044F\u0442\u0438 \u0432\u0438\u0434\u0456\u043B\u0435\u043D\u043D\u044F",delete:"\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438","new.project":"\u041D\u043E\u0432\u0438\u0439 \u043F\u0440\u043E\u0435\u043A\u0442",open:"\u0412\u0456\u0434\u043A\u0440\u0438\u0442\u0438",save:"\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438","save.as":"\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438 \u044F\u043A","upload.media":"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0438\u0442\u0438 \u043C\u0435\u0434\u0456\u0430","create.page":"\u0421\u0442\u0432\u043E\u0440\u0438\u0442\u0438 \u0441\u0442\u043E\u0440\u0456\u043D\u043A\u0443","new.page":"\u041D\u043E\u0432\u0430 \u0441\u0442\u043E\u0440\u0456\u043D\u043A\u0430","page.name":"\u041D\u0430\u0437\u0432\u0430 \u0441\u0442\u043E\u0440\u0456\u043D\u043A\u0438",duplicate:"\u0414\u0443\u0431\u043B\u044E\u0432\u0430\u0442\u0438",cancel:"\u0421\u043A\u0430\u0441\u0443\u0432\u0430\u0442\u0438","copy.invite.link":"\u0421\u043A\u043E\u043F\u0456\u044E\u0432\u0430\u0442\u0438 \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F \u043D\u0430 \u0437\u0430\u043F\u0440\u043E\u0448\u0435\u043D\u043D\u044F","create.multiplayer.project":"\u0421\u0442\u0432\u043E\u0440\u0438\u0442\u0438 \u0431\u0430\u0433\u0430\u0442\u043E\u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044C\u043A\u0438\u0439 \u043F\u0440\u043E\u0435\u043A\u0442","copy.multiplayer.project":"\u0421\u043A\u043E\u043F\u0456\u044E\u0432\u0430\u0442\u0438 \u0432 \u0431\u0430\u0433\u0430\u0442\u043E\u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044C\u043A\u0438\u0439 \u043F\u0440\u043E\u0435\u043A\u0442",select:"\u0412\u0438\u0431\u0438\u0440\u0430\u0442\u0438",eraser:"\u041B\u0430\u0441\u0442\u0438\u043A",draw:"\u041C\u0430\u043B\u044E\u0432\u0430\u0442\u0438",arrow:"\u0421\u0442\u0440\u0456\u043B\u043A\u0430",text:"\u0422\u0435\u043A\u0441\u0442",sticky:"\u041D\u043E\u0442\u0430\u0442\u043A\u0430",rectangle:"\u041F\u0440\u044F\u043C\u043E\u043A\u0443\u0442\u043D\u0438\u043A",ellipse:"\u0415\u043B\u0456\u043F\u0441",triangle:"\u0422\u0440\u0438\u043A\u0443\u0442\u043D\u0438\u043A",line:" \u041B\u0456\u043D\u0456\u044F",rotate:"\u041F\u043E\u0432\u0435\u0440\u043D\u0443\u0442\u0438","lock.aspect.ratio":"\u0417\u0430\u0431\u043B\u043E\u043A\u0443\u0432\u0430\u0442\u0438 \u0441\u043F\u0456\u0432\u0432\u0456\u0434\u043D\u043E\u0448\u0435\u043D\u043D\u044F \u0441\u0442\u043E\u0440\u0456\u043D","unlock.aspect.ratio":" \u0420\u043E\u0437\u0431\u043B\u043E\u043A\u0443\u0432\u0430\u0442\u0438 \u0441\u043F\u0456\u0432\u0432\u0456\u0434\u043D\u043E\u0448\u0435\u043D\u043D\u044F \u0441\u0442\u043E\u0440\u0456\u043D",group:"\u0417\u0433\u0440\u0443\u043F\u0443\u0432\u0430\u0442\u0438",ungroup:" \u0420\u043E\u0437\u0433\u0440\u0443\u043F\u0443\u0432\u0430\u0442\u0438","move.to.back":"\u041F\u0435\u0440\u0435\u043C\u0456\u0441\u0442\u0438\u0442\u0438 \u043D\u0430\u0437\u0430\u0434","move.backward":"\u041F\u0435\u0440\u0435\u043C\u0456\u0441\u0442\u0438\u0442\u0438 \u043D\u0430 \u0437\u0430\u0434\u043D\u0456\u0439 \u043F\u043B\u0430\u043D","move.forward":"\u041F\u0435\u0440\u0435\u043C\u0456\u0441\u0442\u0438\u0442\u0438 \u0432\u043F\u0435\u0440\u0435\u0434","move.to.front":"\u041F\u0435\u0440\u0435\u043C\u0456\u0441\u0442\u0438\u0442\u0438 \u043D\u0430 \u043F\u0435\u0440\u0435\u0434\u043D\u0456\u0439 \u043F\u043B\u0430\u043D","reset.angle":"\u0421\u043A\u0438\u0434\u0430\u043D\u043D\u044F \u043A\u0443\u0442\u0430",lock:"\u0411\u043B\u043E\u043A\u0443\u0432\u0430\u043D\u043D\u044F",unlock:" \u0420\u043E\u0437\u0431\u043B\u043E\u043A\u0443\u0432\u0430\u043D\u043D\u044F","move.to.page":"\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043D\u0430 \u0441\u0442\u043E\u0440\u0456\u043D\u043A\u0443","flip.horizontal":"\u041F\u0435\u0440\u0435\u0432\u0435\u0440\u043D\u0443\u0442\u0438 \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u043E","flip.vertical":"\u041F\u0435\u0440\u0435\u0432\u0435\u0440\u043D\u0443\u0442\u0438 \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E",move:"\u041F\u0435\u0440\u0435\u043C\u0456\u0441\u0442\u0438\u0442\u0438","to.front":"\u041D\u0430 \u043F\u0435\u0440\u0435\u0434\u043D\u0456\u0439 \u043F\u043B\u0430\u043D",forward:" \u0412\u043F\u0435\u0440\u0435\u0434",backward:"\u041D\u0430 \u0437\u0430\u0434\u043D\u0456\u0439 \u043F\u043B\u0430\u043D",back:"\u041D\u0430\u0437\u0430\u0434",language:"\u041C\u043E\u0432\u0430"};var Wd={"style.menu.color":"\u989C\u8272","style.menu.fill":"\u586B\u5145","style.menu.dash":"\u8FB9\u6846","style.menu.size":"\u5C3A\u5BF8","style.menu.keep.open":"\u4FDD\u6301\u5E38\u5F00","style.menu.font":"\u5B57\u4F53","style.menu.align":"\u5BF9\u9F50",styles:"\u6837\u5F0F","zoom.in":"\u653E\u5927","zoom.out":"\u7F29\u5C0F",to:"\u7F29\u653E\u81F3","menu.tools":"\u5DE5\u5177","menu.transform":"\u8F6C\u6362","menu.file":"\u6587\u4EF6","menu.edit":"\u7F16\u8F91","menu.view":"\u89C6\u56FE","menu.preferences":"\u504F\u597D","menu.sign.in":"\u767B\u5F55","menu.sign.out":"\u767B\u51FA",search:"\u641C\u7D22","become.a.sponsor":"\u6210\u4E3A\u8D5E\u52A9\u8005","zoom.to.selection":"\u7F29\u653E\u9009\u4E2D","zoom.to.fit":"\u81EA\u9002\u5E94\u7F29\u653E","zoom.to":"\u7F29\u653E\u81F3","zoom.to.content":"\u7F29\u653E\u81F3\u5185\u5BB9","preferences.dark.mode":"\u6697\u9ED1\u6A21\u5F0F","preferences.focus.mode":"\u4E13\u6CE8\u6A21\u5F0F","preferences.debug.mode":"\u8C03\u8BD5\u6A21\u5F0F","preferences.show.grid":"\u663E\u793A\u7F51\u683C","preferences.use.cad.selection":"\u4F7F\u7528 CAD \u9009\u62E9","preferences.keep.stylemenu.open":"\u4FDD\u6301\u6837\u5F0F\u83DC\u5355\u5E38\u5F00","preferences.always.show.snaps":"\u603B\u662F\u5C55\u793A\u5BF9\u9F50\u7EBF","preferences.rotate.handles":"\u65CB\u8F6C\u624B\u67C4","preferences.binding.handles":"\u6346\u7ED1\u624B\u67C4","preferences.clone.handles":"\u514B\u9686\u624B\u67C4",undo:"\u64A4\u9500",redo:"\u91CD\u505A",cut:"\u526A\u5207",copy:"\u590D\u5236",paste:"\u7C98\u8D34","copy.as":"\u590D\u5236\u4E3A","export.as":"\u5BFC\u51FA\u4E3A","select.all":"\u9009\u4E2D\u5168\u90E8","select.none":"\u53D6\u6D88\u9009\u4E2D",delete:"\u5220\u9664","new.project":"\u65B0\u9879\u76EE",open:"\u6253\u5F00",save:"\u4FDD\u5B58","save.as":"\u4FDD\u5B58\u4E3A","upload.media":"\u4E0A\u4F20\u5A92\u4F53\u6587\u4EF6","create.page":"\u521B\u5EFA\u9875\u9762","new.page":"\u65B0\u9875\u9762","page.name":"\u9875\u9762\u540D\u79F0",duplicate:"\u590D\u5236",cancel:"\u53D6\u6D88","copy.invite.link":"\u590D\u5236\u9080\u8BF7\u94FE\u63A5","create.multiplayer.project":"\u521B\u5EFA\u591A\u4EBA\u9879\u76EE","copy.multiplayer.project":"\u590D\u5236\u5230\u591A\u4EBA\u9879\u76EE",select:"\u9009\u62E9",eraser:"\u6A61\u76AE",draw:"\u753B\u7B14",arrow:"\u7BAD\u5934",text:"\u6587\u672C",sticky:"\u4FBF\u5229\u8D34",rectangle:"\u77E9\u5F62",ellipse:"\u692D\u5706\u5F62",triangle:"\u4E09\u89D2\u5F62",line:"\u76F4\u7EBF",rotate:"\u65CB\u8F6C","lock.aspect.ratio":"\u9501\u5B9A\u5BBD\u9AD8\u6BD4","unlock.aspect.ratio":"\u89E3\u9501\u5BBD\u9AD8\u6BD4",group:"\u5206\u7EC4",ungroup:"\u53D6\u6D88\u5206\u7EC4","move.to.back":"\u7F6E\u5E95","move.backward":"\u4E0B\u79FB\u4E00\u5C42","move.forward":"\u4E0A\u79FB\u4E00\u5C42","move.to.front":"\u7F6E\u9876","reset.angle":"\u91CD\u7F6E\u65CB\u8F6C\u89D2\u5EA6",lock:"\u9501\u5B9A",unlock:"\u89E3\u9501","move.to.page":"\u79FB\u52A8\u5230\u9875\u9762","flip.horizontal":"\u6C34\u5E73\u7FFB\u8F6C","flip.vertical":"\u5782\u76F4\u7FFB\u8F6C",move:"\u79FB\u52A8","to.front":"\u7F6E\u9876",forward:"\u4E0A\u4E00\u5C42",backward:"\u4E0B\u4E00\u5C42",back:"\u7F6E\u5E95",language:"\u8BED\u8A00","keyboard.shortcuts":"\u952E\u76D8\u5FEB\u6377\u952E","translation.link":"\u4E86\u89E3\u66F4\u591A",page:"\u9875\u9762","dock.position":"\u951A\u70B9\u4F4D\u7F6E",bottom:"\u4E0B\u9762",left:"\u5DE6\u9762",right:"\u53F3\u9762",top:"\u4E0A\u9762","export.background":"\u5BFC\u51FA\u80CC\u666F\u8272",transparent:"\u900F\u660E",auto:"\u81EA\u52A8",light:"\u660E\u4EAE",dark:"\u6697\u9ED1","copy.readonly.link":"\u590D\u5236\u53EA\u8BFB\u94FE\u63A5",image:"\u56FE\u7247","align.distribute":"\u5BF9\u9F50 / \u5206\u6563","dialog.save.firsttime":"\u60A8\u662F\u5426\u60F3\u4FDD\u5B58\u5F53\u524D\u7684\u9879\u76EE\uFF1F","dialog.save.again":"\u60A8\u662F\u5426\u60F3\u4FDD\u5B58\u5BF9\u5F53\u524D\u9879\u76EE\u7684\u66F4\u6539\uFF1F","dialog.cancel":"\u53D6\u6D88","dialog.no":"\u5426","dialog.yes":"\u662F"};var Nd={"style.menu.color":"\u984F\u8272","style.menu.fill":"\u586B\u5145","style.menu.dash":"\u865B\u7DDA","style.menu.size":"\u5927\u5C0F","style.menu.keep.open":"\u4FDD\u6301\u958B\u555F","style.menu.font":"\u5B57\u578B","style.menu.align":"\u5C0D\u9F4A",styles:"\u6A23\u5F0F","zoom.in":"\u653E\u5927","zoom.out":"\u7E2E\u5C0F",to:"\u81F3","menu.file":"\u6A94\u6848","menu.edit":"\u7DE8\u8F2F","menu.view":"\u6AA2\u8996","menu.preferences":"\u9078\u9805","menu.sign.in":"\u767B\u5165","menu.sign.out":"\u767B\u51FA","become.a.sponsor":"\u6210\u70BA\u8D0A\u52A9\u8005","zoom.to.selection":"\u7E2E\u653E\u81F3\u9078\u53D6\u7BC4\u570D","zoom.to.fit":"\u7E2E\u653E\u81F3\u9069\u7576\u5927\u5C0F","zoom.to":"\u7E2E\u653E\u81F3","preferences.dark.mode":"\u6DF1\u8272\u6A21\u5F0F","preferences.focus.mode":"\u5C08\u6CE8\u6A21\u5F0F","preferences.debug.mode":"\u9664\u932F\u6A21\u5F0F","preferences.show.grid":"\u986F\u793A\u7DB2\u683C","preferences.use.cad.selection":"\u4F7F\u7528 CAD \u9078\u53D6","preferences.keep.stylemenu.open":"\u6A23\u5F0F\u9078\u55AE\u4FDD\u6301\u958B\u555F","preferences.always.show.snaps":"\u6C38\u9060\u986F\u793A\u5C0D\u9F4A\u7DDA","preferences.rotate.handles":"\u65CB\u8F49\u63A7\u9EDE","preferences.binding.handles":"\u7D81\u5B9A\u63A7\u9EDE","preferences.clone.handles":"\u8907\u88FD\u63A7\u9EDE",undo:"\u5FA9\u539F",redo:"\u53D6\u6D88\u5FA9\u539F",cut:"\u526A\u4E0B",copy:"\u8907\u88FD",paste:"\u8CBC\u4E0A","copy.as":"\u8907\u88FD\u6210","export.as":"\u532F\u51FA\u6210","select.all":"\u5168\u9078","select.none":"\u53D6\u6D88\u9078\u53D6",delete:"\u522A\u9664","new.project":"\u65B0\u5C08\u6848",open:"\u958B\u555F",save:"\u5132\u5B58","save.as":"\u53E6\u5B58\u70BA","upload.media":"\u4E0A\u50B3\u5A92\u9AD4","create.page":"\u5EFA\u7ACB\u9801\u9762","new.page":"\u65B0\u9801\u9762","page.name":"\u9801\u9762\u540D\u7A31",duplicate:"\u8907\u88FD",cancel:"\u53D6\u6D88","copy.invite.link":"\u8907\u88FD\u9080\u8ACB\u9023\u7D50","copy.readonly.link":"\u8907\u88FD\u552F\u8B80\u9023\u7D50","create.multiplayer.project":"\u5EFA\u7ACB\u591A\u4EBA\u5C08\u6848","copy.multiplayer.project":"\u8907\u88FD\u81F3\u591A\u4EBA\u5C08\u6848",select:"\u9078\u53D6",eraser:"\u6A61\u76AE\u64E6",draw:"\u624B\u7E6A",arrow:"\u7BAD\u982D",text:"\u6587\u5B57",sticky:"\u4FBF\u5229\u8CBC",rectangle:"\u9577\u65B9\u5F62",ellipse:"\u6A62\u5713\u5F62",triangle:"\u4E09\u89D2\u5F62",line:"\u76F4\u7DDA",rotate:"\u65CB\u8F49","lock.aspect.ratio":"\u9396\u5B9A\u9577\u5BEC\u6BD4","unlock.aspect.ratio":"\u89E3\u9396\u9577\u5BEC\u6BD4",group:"\u7D44\u6210\u7FA4\u7D44",ungroup:"\u53D6\u6D88\u7FA4\u7D44","move.to.back":"\u79FB\u5230\u6700\u4E0B\u5C64","move.backward":"\u4E0B\u79FB\u4E00\u5C64","move.forward":"\u4E0A\u79FB\u4E00\u5C64","move.to.front":"\u79FB\u5230\u6700\u4E0A\u5C64","reset.angle":"\u91CD\u8A2D\u89D2\u5EA6",lock:"\u9396\u5B9A",unlock:"\u89E3\u9396","move.to.page":"\u79FB\u81F3\u9801\u9762","flip.horizontal":"\u6C34\u5E73\u7FFB\u8F49","flip.vertical":"\u5782\u76F4\u7FFB\u8F49",move:"\u79FB\u52D5","to.front":"\u5230\u6700\u4E0A\u5C64",forward:"\u5230\u4E0A\u4E00\u5C64",backward:"\u5230\u4E0B\u4E00\u5C64",back:"\u5230\u6700\u4E0B\u5C64",language:"\u8A9E\u8A00","translation.link":"\u4E86\u89E3\u8A73\u60C5","dock.position":"\u5DE5\u5177\u5217\u4F4D\u7F6E",bottom:"\u4E0B\u65B9",left:"\u5DE6\u5074",right:"\u53F3\u5074",top:"\u4E0A\u65B9",page:"\u9801\u9762"};var Ud=[{locale:"ar",label:"\u0639\u0631\u0628\u064A",messages:fd},{locale:"da",label:"Danish",messages:Sd},{locale:"de",label:"Deutsch",messages:yd},{locale:"en",label:"English",messages:bd},{locale:"es",label:"Espa\xF1ol",messages:vd},{locale:"fa",label:"\u0641\u0627\u0631\u0633\u06CC",messages:Td},{locale:"fr",label:"Fran\xE7ais",messages:xd},{locale:"gl",label:"Galego",messages:kd},{locale:"he",label:"\u05E2\u05D1\u05E8\u05D9\u05EA",messages:Cd},{locale:"it",label:"Italiano",messages:wd},{locale:"ja",label:"\u65E5\u672C\u8A9E",messages:Id},{locale:"ko-kr",label:"\uD55C\uAD6D\uC5B4",messages:Pd},{locale:"my",label:"\u1019\u103C\u1014\u103A\u1019\u102C\u1005\u102C",messages:Ed},{locale:"nb-no",label:"Norwegian Bokm\xE5l",messages:Bd},{locale:"ne",label:"\u0928\u0947\u092A\u093E\u0932\u0940",messages:Md},{locale:"nn-no",label:"Norwegian Nynorsk",messages:Ld},{locale:"pl",label:"Polski",messages:Ad},{locale:"pt",label:"Portugu\xEAs - Europeu",messages:Hd},{locale:"pt-br",label:"Portugu\xEAs - Brasil",messages:Vd},{locale:"ru",label:"Russian",messages:zd},{locale:"sv",label:"Svenska",messages:Fd},{locale:"te",label:"\u0C24\u0C46\u0C32\u0C41\u0C17\u0C41",messages:Od},{locale:"tr",label:"T\xFCrk\xE7e",messages:Gd},{locale:"uk",label:"Ukrainian",messages:jd},{locale:"zh-ch",label:"\u7B80\u4F53\u4E2D\u6587",messages:Wd},{locale:"zh-tw",label:"\u7E41\u9AD4\u4E2D\u6587 (\u53F0\u7063)",messages:Nd},{locale:"th",label:"\u0E20\u0E32\u0E29\u0E32\u0E44\u0E17\u0E22",messages:$d},{locale:"ku",label:"\u06A9\u0648\u0631\u062F\u06CC",messages:Rd}];Ud.sort((i,o)=>i.locale<o.locale?-1:1);function Kd(i){var e;let o=Ud.find(t=>t.locale===i);return{locale:i,label:(e=o==null?void 0:o.label)!=null?e:i,messages:S(S({},Dd),o==null?void 0:o.messages)}}function Yd(i){return _d.useMemo(()=>{let o=typeof navigator!="undefined"?navigator.language.split(/[-_]/)[0]:"en";return Kd(i!=null?i:o)},[i])}var Ui=H(require("react")),Ea=Ui.createContext({}),Oi=()=>{let i=Ui.useContext(Ea);if(!i)throw new Error("useCtx must be inside a Provider with a value");return i};var sr=require("react/jsx-runtime"),Dt=oi.forwardRef((h,u)=>{var g=h,{onSelect:i,onClick:o,onDoubleClick:e,variant:t,children:n,isToolLocked:r=!1,disabled:s=!1,isActive:l=!1,onKeyDown:a,id:c}=g,p=Ae(g,["onSelect","onClick","onDoubleClick","variant","children","isToolLocked","disabled","isActive","onKeyDown","id"]);return(0,sr.jsxs)(Sm,I(S({ref:u,isActive:l,variant:t,onClick:o,disabled:s,onPointerDown:i,onDoubleClick:e,onKeyDown:a,bp:fn,id:c},p),{children:[(0,sr.jsx)(yn,{children:n}),r&&(0,sr.jsx)(ym,{})]}))});function Ba(r){var s=r,{label:i,kbd:o,variant:e,isLocked:t}=s,n=Ae(s,["label","kbd","variant","isLocked"]);let l=_(),a=oi.useCallback(()=>{l.toggleToolLock()},[]),c=oi.useCallback(p=>{p.key===" "&&l.isForcePanning&&p.preventDefault()},[]);return(0,sr.jsx)(zi,{label:i[0].toUpperCase()+i.slice(1),kbd:o,children:(0,sr.jsx)(Dt,I(S({},n),{variant:e,isToolLocked:t&&n.isActive,onDoubleClick:a,onKeyDown:c,"aria-label":i[0].toUpperCase()+i.slice(1)}))})}var yn=R("div",{position:"relative",height:"100%",width:"100%",backgroundColor:"$panel",borderRadius:"$2",margin:"0",display:"flex",alignItems:"center",justifyContent:"center",fontFamily:"$ui",color:"inherit",userSelect:"none",WebkitUserSelect:"none",boxSizing:"border-box",border:"1px solid transparent","-webkit-tap-highlight-color":"transparent","tap-highlight-color":"transparent"}),Sm=R("button",{position:"relative",color:"$text",fontSize:"$0",background:"none",margin:"0",padding:"$2",display:"flex",alignItems:"center",justifyContent:"center",outline:"none",cursor:"pointer",pointerEvents:"all",height:"40px",width:"40px",border:"1px solid $panel","-webkit-tap-highlight-color":"transparent","tap-highlight-color":"transparent",[`&:disabled ${yn}`]:{opacity:.618},variants:{variant:{primary:{marginTop:"0"},icon:{[`& ${yn}`]:{display:"grid","& > *":{gridRow:1,gridColumn:1}}},text:{width:"auto",[`& ${yn}`]:{fontSize:"$1",padding:"0 $3",gap:"$3"}},circle:{padding:0,height:32,width:32,border:"none",[`& ${yn}`]:{border:"1px solid $panelContrast",borderRadius:"100%",boxShadow:"$panel"},[`& ${yn} > svg`]:{width:14,height:14}}},isActive:{true:{},false:{}},bp:{mobile:{padding:0},small:{}}},compoundVariants:[{variant:"primary",bp:"mobile",css:{height:40,width:36,[`& ${yn} > svg`]:{width:16,height:16}}},{variant:"primary",bp:"small",css:{height:"40px",width:"40px",[`& ${yn} > svg`]:{width:20,height:20}}},{isActive:!0,css:{[`${yn}`]:{backgroundColor:"$selected",color:"$selectedContrast"}}},{isActive:!1,bp:"small",css:{[`&:hover:not(:disabled) ${yn}`]:{backgroundColor:"$hover"},[`&:focus:not(:disabled) ${yn}`]:{backgroundColor:"$hover"}}}]}),ym=R("div",{position:"absolute",width:10,height:10,backgroundColor:"$selected",borderRadius:"100%",bottom:-2,border:"2px solid $panel",zIndex:100});var _t=require("react/jsx-runtime"),Ma=["rectangle","ellipse","triangle","line"],Xd={["rectangle"]:(0,_t.jsx)(ar.SquareIcon,{}),["ellipse"]:(0,_t.jsx)(ar.CircleIcon,{}),["triangle"]:(0,_t.jsx)(ar.VercelLogoIcon,{}),["line"]:(0,_t.jsx)(cd,{})},bm=i=>i.settings.dockPosition,qd=Bn.memo(function({activeTool:o,isToolLocked:e}){let t=_(),n=(0,Zd.useIntl)(),r=t.useStore(bm),[s,l]=Bn.useState("rectangle");Bn.useEffect(()=>{Ma.includes(o)&&s!==o&&l(o)},[o]);let a=Bn.useCallback(()=>{t.selectTool(s)},[o,t]),c=Bn.useCallback(()=>{t.toggleToolLock()},[t]),p=Bn.useCallback(m=>{m.key===" "&&t.shiftKey&&m.preventDefault()},[]),u=Ma.includes(o),h=r==="bottom"||r==="top"?"top":r,g=r==="bottom"||r==="top"?"row":"column";return(0,_t.jsxs)(ao.Root,{dir:"ltr",onOpenChange:a,children:[(0,_t.jsx)(ao.Trigger,{dir:"ltr",asChild:!0,id:"TD-PrimaryTools-Shapes",children:(0,_t.jsx)(Dt,{disabled:u&&t.shiftKey,variant:"primary",onDoubleClick:c,isToolLocked:u&&e,isActive:u,onKeyDown:p,"aria-label":n.formatMessage({id:"shapes"}),children:Xd[s]})}),(0,_t.jsx)(ao.Content,{asChild:!0,side:h,sideOffset:12,children:(0,_t.jsx)(qr,{side:"center",style:{flexDirection:g},children:Ma.map((m,f)=>(0,_t.jsx)(zi,{label:n.formatMessage({id:m}),kbd:(4+f).toString(),id:`TD-PrimaryTools-Shapes-${m}`,children:(0,_t.jsx)(ao.Item,{asChild:!0,children:(0,_t.jsx)(Dt,{"aria-label":n.formatMessage({id:m}),variant:"primary",onClick:()=>{t.selectTool(m),l(m)},children:Xd[m]})})},m))})})]})});var me=require("react/jsx-runtime"),vm=i=>i.appState.activeTool,Tm=i=>i.appState.isToolLocked,xm=i=>i.settings.canvasMode,Qd=Yt.memo(function(){let o=_(),e=(0,Jd.useIntl)(),t=o.useStore(vm),n=o.useStore(Tm),r=o.useStore(xm),s=Yt.useCallback(()=>o.selectTool("select"),[o]),l=Yt.useCallback(()=>o.selectTool("erase"),[o]),a=Yt.useCallback(()=>o.selectTool("draw"),[o]),c=Yt.useCallback(()=>o.selectTool("pen"),[o]),p=Yt.useCallback(()=>o.selectTool("arrow"),[o]),u=Yt.useCallback(()=>o.selectTool("text"),[o]),h=Yt.useCallback(()=>o.selectTool("sticky"),[o]),g=Yt.useCallback(()=>F(this,null,function*(){return o.openAsset()}),[o]),m=Yt.useCallback(()=>o.toggleCanvasMode(),[o]),f=Yt.useCallback(v=>{v.stopPropagation()},[]);return(0,me.jsx)(km,{onPointerDown:f,children:(0,me.jsxs)(Cm,{children:[(0,me.jsx)(Un,{onClick:s,isActive:t==="select",title:e.formatMessage({id:"select"}),children:(0,me.jsx)(tn.CursorArrowIcon,{})}),(0,me.jsx)(La,{}),(0,me.jsx)(Un,{onClick:a,isActive:t==="draw",title:e.formatMessage({id:"draw"}),children:(0,me.jsx)(tn.Pencil1Icon,{})}),(0,me.jsx)(Un,{onClick:c,isActive:t==="pen",title:"Pen",children:(0,me.jsx)(tn.Pencil2Icon,{})}),(0,me.jsx)(Un,{onClick:l,isActive:t==="erase",title:e.formatMessage({id:"eraser"}),children:(0,me.jsx)(ld,{})}),(0,me.jsx)(La,{}),(0,me.jsx)(wm,{children:(0,me.jsx)(qd,{activeTool:t,isToolLocked:n})}),(0,me.jsx)(Un,{onClick:p,isActive:t==="arrow",title:e.formatMessage({id:"arrow"}),children:(0,me.jsx)(tn.ArrowTopRightIcon,{})}),(0,me.jsx)(Un,{onClick:u,isActive:t==="text",title:e.formatMessage({id:"text"}),children:(0,me.jsx)(tn.TextIcon,{})}),(0,me.jsx)(Un,{onClick:h,isActive:t==="sticky",title:"Sticky Note",children:(0,me.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",children:[(0,me.jsx)("rect",{x:"2",y:"2",width:"11",height:"11",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,me.jsx)("line",{x1:"5",y1:"6",x2:"10",y2:"6",stroke:"currentColor",strokeWidth:"1"}),(0,me.jsx)("line",{x1:"5",y1:"9",x2:"8",y2:"9",stroke:"currentColor",strokeWidth:"1"})]})}),(0,me.jsx)(Un,{onClick:g,title:e.formatMessage({id:"image"}),children:(0,me.jsx)(tn.ImageIcon,{})}),(0,me.jsx)(La,{}),(0,me.jsx)(Un,{onClick:m,isActive:r==="straight",title:r==="freehand"?"Straight mode":"Freehand mode",children:r==="freehand"?(0,me.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",children:(0,me.jsx)("path",{d:"M2 12C4 8 6 4 8 6C10 8 11 3 13 3",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",fill:"none"})}):(0,me.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",children:(0,me.jsx)("path",{d:"M2 12L7.5 3L13 12",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})})})]})})}),km=R("div",{position:"absolute",bottom:"16px",left:"50%",transform:"translateX(-50%)",zIndex:300,pointerEvents:"all"}),Cm=R("div",{display:"flex",alignItems:"center",gap:"2px",padding:"6px 8px",background:"$panel",borderRadius:"$pill",boxShadow:"0 2px 16px rgba(0,0,0,0.25), 0 0 0 1px rgba(255,255,255,0.06)",backdropFilter:"blur(12px)"}),Un=R("button",{all:"unset",display:"flex",alignItems:"center",justifyContent:"center",width:"36px",height:"36px",borderRadius:"$2",color:"$textSecondary",cursor:"pointer",transition:"all 0.12s ease",flexShrink:0,"& svg":{width:"16px",height:"16px"},"&:hover":{background:"$hover",color:"$text"},variants:{isActive:{true:{background:"$accent",color:"white","&:hover":{background:"$accent",color:"white"}}}}}),La=R("div",{width:"1px",height:"20px",background:"$separator",margin:"0 4px",flexShrink:0,opacity:.5}),wm=R("div",{display:"flex","& button":{width:"36px",height:"36px",padding:0,borderRadius:"$2",border:"none"},'& [class*="StyledToolButtonInner"]':{borderRadius:"$2",background:"transparent"}});var we=H(require("@radix-ui/react-context-menu")),Xe=require("@radix-ui/react-icons"),de=H(require("react")),Oe=require("react-intl");var Te=R("hr",{height:0,paddingTop:1,width:"calc(100%+8px)",backgroundColor:"$hover",border:"none",margin:"$2 -4px"});var Kn=R("div",{position:"relative",overflow:"hidden",userSelect:"none",WebkitUserSelect:"none",display:"flex",flexDirection:"column",zIndex:99997,minWidth:180,pointerEvents:"all",backgroundColor:"$panel",border:"1px solid $panelContrast",boxShadow:"$panel",padding:"$2 $2",borderRadius:"$3",font:"$ui",maxHeight:"100vh",overflowY:"auto",overflowX:"hidden","&::webkit-scrollbar":{display:"none"},"-ms-overflow-style":"none",scrollbarWidth:"none",variants:{size:{small:{minWidth:72}},overflow:{true:{maxHeight:"60vh"}}}});var ec=require("@radix-ui/react-dropdown-menu"),Ki=require("@radix-ui/react-icons"),tc=H(require("react"));var Ft=R("div",{height:"100%",borderRadius:"4px",marginRight:"1px",width:"fit-content",display:"grid",alignItems:"center",justifyContent:"center",outline:"none",border:"none",pointerEvents:"all",cursor:"pointer",color:"currentColor","& svg":{height:16,width:16,strokeWidth:1},"& > *":{gridRow:1,gridColumn:1}});var _n=require("react/jsx-runtime"),at=tc.forwardRef((u,p)=>{var h=u,{onClick:i,isActive:o=!1,isWarning:e=!1,hasIndicator:t=!1,hasArrow:n=!1,disabled:r=!1,variant:s,kbd:l,children:a}=h,c=Ae(h,["onClick","isActive","isWarning","hasIndicator","hasArrow","disabled","variant","kbd","children"]);return(0,_n.jsx)(Im,I(S({ref:p,bp:fn,isWarning:e,isActive:o,disabled:r,onClick:i,variant:s},c),{children:(0,_n.jsxs)(nc,{children:[a,l?(0,_n.jsx)(Hi,{variant:"menu",children:l}):void 0,t&&(0,_n.jsx)(ec.ItemIndicator,{dir:"ltr",children:(0,_n.jsx)(Ft,{children:(0,_n.jsx)(Ki.CheckIcon,{})})}),n&&(0,_n.jsx)(Ft,{children:(0,_n.jsx)(Ki.ChevronRightIcon,{})})]})}))}),nc=R("div",{height:"100%",width:"100%",backgroundColor:"$panel",borderRadius:"$2",display:"flex",gap:"$1",flexDirection:"row",alignItems:"center",padding:"0 $3",justifyContent:"space-between",border:"1px solid transparent","& svg":{position:"relative",stroke:"$overlay",strokeWidth:1,zIndex:1},[`& > ${Ft}`]:{paddingLeft:"$3"}}),Im=R("button",{position:"relative",width:"100%",background:"none",border:"none",cursor:"pointer",height:32,minHeight:32,outline:"none",color:"$text",fontFamily:"$ui",fontWeight:400,fontSize:"$1",borderRadius:4,userSelect:"none",WebkitUserSelect:"none",margin:0,padding:"0 0","&[data-disabled]":{opacity:.3},"&:disabled":{opacity:.3},[`&:focus:not(:disabled) ${nc}`]:{backgroundColor:"$hover"},"& a":{textDecoration:"none",color:"$text"},variants:{bp:{mobile:{},small:{}},variant:{styleMenu:{margin:"$1 0 $1 0"},wide:{gridColumn:"1 / span 4"}},size:{icon:{padding:"4px ",width:"auto"}},isWarning:{true:{color:"$warn"}},isActive:{true:{backgroundColor:"$hover"},false:{}}}});var A=require("react/jsx-runtime"),Pm=i=>i.document.pageStates[i.appState.currentPageId].selectedIds.length,Rm=i=>i.settings.isDebugMode,Dm=i=>i.document.pageStates[i.appState.currentPageId].selectedIds.some(o=>i.document.pages[i.appState.currentPageId].shapes[o].children!==void 0),Em=i=>i.stopPropagation(),Bm=({onBlur:i,children:o})=>{let e=Sn();return(0,A.jsxs)(we.Root,{dir:"ltr",children:[(0,A.jsx)(we.Trigger,{dir:"ltr",children:o}),(0,A.jsx)(we.Portal,{container:e.current,children:(0,A.jsx)(we.Content,{onEscapeKeyDown:Em,tabIndex:-1,onBlur:i,asChild:!0,children:(0,A.jsx)(Kn,{id:"TD-ContextMenu",children:(0,A.jsx)(Mm,{})})})})]})},Mm=de.memo(function(){let o=_(),e=(0,Oe.useIntl)(),t=o.useStore(Pm),n=o.useStore(Rm),r=o.useStore(Dm),s=de.useCallback(()=>{o.flipHorizontal()},[o]),l=de.useCallback(()=>{o.flipVertical()},[o]),a=de.useCallback(()=>{o.duplicate()},[o]),c=de.useCallback(()=>{o.toggleLocked()},[o]),p=de.useCallback(()=>{o.group()},[o]),u=de.useCallback(()=>{o.moveToBack()},[o]),h=de.useCallback(()=>{o.moveBackward()},[o]),g=de.useCallback(()=>{o.moveForward()},[o]),m=de.useCallback(()=>{o.moveToFront()},[o]),f=de.useCallback(()=>{o.delete()},[o]),v=de.useCallback(()=>{o.cut()},[o]),b=de.useCallback(()=>{o.copy()},[o]),T=de.useCallback(()=>{o.paste()},[o]),y=de.useCallback(()=>{o.copyImage("svg",{scale:1,quality:1,transparentBackground:!1})},[o]),x=de.useCallback(()=>{o.copyImage("png",{scale:2,quality:1,transparentBackground:!0})},[o]),P=de.useCallback(()=>{o.undo()},[o]),k=de.useCallback(()=>{o.redo()},[o]),D=de.useCallback(()=>F(this,null,function*(){o.exportImage("png",{scale:2,quality:1})}),[o]),C=de.useCallback(()=>F(this,null,function*(){o.exportImage("jpeg",{scale:2,quality:1})}),[o]),E=de.useCallback(()=>F(this,null,function*(){o.exportImage("webp",{scale:2,quality:1})}),[o]),M=de.useCallback(()=>F(this,null,function*(){o.exportImage("svg",{scale:1,quality:1})}),[o]),L=de.useCallback(()=>F(this,null,function*(){o.copyJson()}),[o]),V=de.useCallback(()=>F(this,null,function*(){o.exportJson()}),[o]),X=de.useCallback(()=>F(this,null,function*(){o.convertToImage()}),[o]),se=t>0,G=t>1,ne=t>2,pe=t===1?o.getShape(o.selectedIds[0],o.currentPageId):null,he=(pe==null?void 0:pe.type)==="reactComponent";return(0,A.jsx)(A.Fragment,{children:se?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(ge,{onClick:a,kbd:"#D",id:"TD-ContextMenu-Duplicate",children:(0,A.jsx)(Oe.FormattedMessage,{id:"duplicate"})}),(0,A.jsx)(ge,{onClick:s,kbd:"\u21E7H",id:"TD-ContextMenu-Flip_Horizontal",children:(0,A.jsx)(Oe.FormattedMessage,{id:"flip.horizontal"})}),(0,A.jsx)(ge,{onClick:l,kbd:"\u21E7V",id:"TD-ContextMenu-Flip_Vertical",children:(0,A.jsx)(Oe.FormattedMessage,{id:"flip.vertical"})}),(0,A.jsxs)(ge,{onClick:c,kbd:"#\u21E7L",id:"TD-ContextMenu- Lock_Unlock",children:[(0,A.jsx)(Oe.FormattedMessage,{id:"lock"})," / ",(0,A.jsx)(Oe.FormattedMessage,{id:"unlock"})]}),(G||r)&&(0,A.jsx)(Te,{}),G&&(0,A.jsx)(ge,{onClick:p,kbd:"#G",id:"TD-ContextMenu-Group",children:(0,A.jsx)(Oe.FormattedMessage,{id:"group"})}),r&&(0,A.jsx)(ge,{onClick:p,kbd:"#G",id:"TD-ContextMenu-Ungroup",children:(0,A.jsx)(Oe.FormattedMessage,{id:"ungroup"})}),(0,A.jsx)(Te,{}),(0,A.jsxs)(_i,{label:e.formatMessage({id:"move"}),id:"TD-ContextMenu-Move",children:[(0,A.jsx)(ge,{onClick:m,kbd:"\u21E7]",id:"TD-ContextMenu-Move-To_Front",children:(0,A.jsx)(Oe.FormattedMessage,{id:"to.front"})}),(0,A.jsx)(ge,{onClick:g,kbd:"]",id:"TD-ContextMenu-Move-Forward",children:(0,A.jsx)(Oe.FormattedMessage,{id:"forward"})}),(0,A.jsx)(ge,{onClick:h,kbd:"[",id:"TD-ContextMenu-Move-Backward",children:(0,A.jsx)(Oe.FormattedMessage,{id:"backward"})}),(0,A.jsx)(ge,{onClick:u,kbd:"\u21E7[",id:"TD-ContextMenu-Move-To_Back",children:(0,A.jsx)(Oe.FormattedMessage,{id:"back"})})]}),(0,A.jsx)(zm,{}),G&&(0,A.jsx)(Lm,{hasTwoOrMore:G,hasThreeOrMore:ne}),(0,A.jsx)(Te,{}),(0,A.jsx)(ge,{onClick:v,kbd:"#X",id:"TD-ContextMenu-Cut",children:(0,A.jsx)(Oe.FormattedMessage,{id:"cut"})}),(0,A.jsx)(ge,{onClick:b,kbd:"#C",id:"TD-ContextMenu-Copy",children:(0,A.jsx)(Oe.FormattedMessage,{id:"copy"})}),(0,A.jsx)(ge,{onClick:T,kbd:"#V",id:"TD-ContextMenu-Paste",children:(0,A.jsx)(Oe.FormattedMessage,{id:"paste"})}),(0,A.jsx)(Te,{}),(0,A.jsxs)(_i,{label:`${e.formatMessage({id:"copy.as"})}...`,size:"small",id:"TD-ContextMenu-Copy-As",children:[(0,A.jsx)(ge,{onClick:y,id:"TD-ContextMenu-Copy-as-SVG",children:"SVG"}),(0,A.jsx)(ge,{onClick:x,id:"TD-ContextMenu-Copy-As-PNG",children:"PNG"}),n&&(0,A.jsx)(ge,{onClick:L,id:"TD-ContextMenu-Copy_as_JSON",children:"JSON"})]}),(0,A.jsxs)(_i,{label:`${e.formatMessage({id:"export.as"})}...`,size:"small",id:"TD-ContextMenu-Export",children:[(0,A.jsx)(ge,{onClick:M,id:"TD-ContextMenu-Export-SVG",children:"SVG"}),(0,A.jsx)(ge,{onClick:D,id:"TD-ContextMenu-Export-PNG",children:"PNG"}),(0,A.jsx)(ge,{onClick:C,id:"TD-ContextMenu-Export-JPG",children:"JPG"}),(0,A.jsx)(ge,{onClick:E,id:"TD-ContextMenu-Export-WEBP",children:"WEBP"}),n&&(0,A.jsx)(ge,{onClick:V,id:"TD-ContextMenu-Export-JSON",children:"JSON"})]}),(0,A.jsx)(Te,{}),he&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(ge,{onClick:X,id:"TD-ContextMenu-Convert-To-Image",children:"Convert to Image"}),(0,A.jsx)(Te,{})]}),(0,A.jsx)(ge,{onClick:f,kbd:"\u232B",id:"TD-ContextMenu-Delete",children:(0,A.jsx)(Oe.FormattedMessage,{id:"delete"})})]}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(ge,{onClick:T,kbd:"#V",id:"TD-ContextMenu-Paste",children:(0,A.jsx)(Oe.FormattedMessage,{id:"paste"})}),(0,A.jsx)(ge,{onClick:P,kbd:"#Z",id:"TD-ContextMenu-Undo",children:(0,A.jsx)(Oe.FormattedMessage,{id:"undo"})}),(0,A.jsx)(ge,{onClick:k,kbd:"#\u21E7Z",id:"TD-ContextMenu-Redo",children:(0,A.jsx)(Oe.FormattedMessage,{id:"redo"})}),(0,A.jsxs)(_i,{label:`${e.formatMessage({id:"export.as"})}...`,size:"small",id:"TD-ContextMenu-Export",children:[(0,A.jsx)(ge,{onClick:M,id:"TD-ContextMenu-Export-SVG",children:"SVG"}),(0,A.jsx)(ge,{onClick:D,id:"TD-ContextMenu-Export-PNG",children:"PNG"}),(0,A.jsx)(ge,{onClick:C,id:"TD-ContextMenu-Export-JPG",children:"JPG"}),(0,A.jsx)(ge,{onClick:E,id:"TD-ContextMenu-Export-WEBP",children:"WEBP"}),n&&(0,A.jsx)(ge,{onClick:V,id:"TD-ContextMenu-Export-JSON",children:"JSON"})]})]})})});function Lm({hasThreeOrMore:i}){let o=_(),e=de.useCallback(()=>{o.align("top")},[o]),t=de.useCallback(()=>{o.align("centerVertical")},[o]),n=de.useCallback(()=>{o.align("bottom")},[o]),r=de.useCallback(()=>{o.stretch("vertical")},[o]),s=de.useCallback(()=>{o.distribute("vertical")},[o]),l=de.useCallback(()=>{o.align("left")},[o]),a=de.useCallback(()=>{o.align("centerHorizontal")},[o]),c=de.useCallback(()=>{o.align("right")},[o]),p=de.useCallback(()=>{o.stretch("horizontal")},[o]),u=de.useCallback(()=>{o.distribute("horizontal")},[o]),h=Sn();return(0,A.jsxs)(we.Sub,{children:[(0,A.jsx)(Va,{id:"TD-ContextMenu-Align-Distribute-Trigger",children:(0,A.jsx)(Oe.FormattedMessage,{id:"align.distribute"})}),(0,A.jsx)(we.Portal,{container:h.current,children:(0,A.jsx)(we.SubContent,{asChild:!0,sideOffset:4,alignOffset:-2,children:(0,A.jsxs)(Am,{numberOfSelected:i?"threeOrMore":"twoOrMore",children:[(0,A.jsx)(Mn,{onClick:l,id:"TD-ContextMenu-Align_Distribute-AlignLeft",children:(0,A.jsx)(Xe.AlignLeftIcon,{})}),(0,A.jsx)(Mn,{onClick:a,id:"TD-ContextMenu-Align_Distribute-AlignCenterHorizontal",children:(0,A.jsx)(Xe.AlignCenterHorizontallyIcon,{})}),(0,A.jsx)(Mn,{onClick:c,id:"TD-ContextMenu-Align_Distribute-AlignRight",children:(0,A.jsx)(Xe.AlignRightIcon,{})}),(0,A.jsx)(Mn,{onClick:p,id:"TD-ContextMenu-Align_Distribute-StretchHorizontal",children:(0,A.jsx)(Xe.StretchHorizontallyIcon,{})}),i&&(0,A.jsx)(Mn,{onClick:u,id:"TD-ContextMenu-Align_Distribute-SpaceEvenlyHorizontal",children:(0,A.jsx)(Xe.SpaceEvenlyHorizontallyIcon,{})}),(0,A.jsx)(Mn,{onClick:e,id:"TD-ContextMenu-Align_Distribute-AlignTop",children:(0,A.jsx)(Xe.AlignTopIcon,{})}),(0,A.jsx)(Mn,{onClick:t,id:"TD-ContextMenu-Align_Distribute-AlignCenterVertical",children:(0,A.jsx)(Xe.AlignCenterVerticallyIcon,{})}),(0,A.jsx)(Mn,{onClick:n,id:"TD-ContextMenu-Align_Distribute-AlignBottom",children:(0,A.jsx)(Xe.AlignBottomIcon,{})}),(0,A.jsx)(Mn,{onClick:r,id:"TD-ContextMenu-Align_Distribute-StretchVertical",children:(0,A.jsx)(Xe.StretchVerticallyIcon,{})}),i&&(0,A.jsx)(Mn,{onClick:s,id:"TD-ContextMenu-Align_Distribute-SpaceEvenlyVertical",children:(0,A.jsx)(Xe.SpaceEvenlyVerticallyIcon,{})}),(0,A.jsx)(Aa,{offset:13})]})})})]})}var Am=R(Kn,{display:"grid",variants:{numberOfSelected:{threeOrMore:{gridTemplateColumns:"repeat(5, auto)"},twoOrMore:{gridTemplateColumns:"repeat(4, auto)"}}}}),Vm=i=>i.appState.currentPageId,Hm=i=>i.document.pages;function zm(){let i=_(),o=i.useStore(Vm),e=i.useStore(Hm),t=Object.values(e).sort((r,s)=>(r.childIndex||0)-(s.childIndex||0)).filter(r=>r.id!==o),n=Sn();return t.length===0?null:(0,A.jsxs)(we.Sub,{children:[(0,A.jsx)(Va,{children:(0,A.jsx)(Oe.FormattedMessage,{id:"move.to.page"})}),(0,A.jsx)(we.Portal,{container:n.current,children:(0,A.jsx)(we.SubContent,{sideOffset:4,alignOffset:-2,asChild:!0,children:(0,A.jsxs)(Kn,{children:[t.map(({id:r,name:s},l)=>(0,A.jsx)(ge,{disabled:r===o,onClick:()=>i.moveToPage(r),children:s||`Page ${l}`},r)),(0,A.jsx)(Aa,{offset:13})]})})})]})}function _i({children:i,label:o,size:e,id:t}){let n=Sn();return(0,A.jsxs)(we.Sub,{children:[(0,A.jsx)(Va,{children:o}),(0,A.jsx)(we.Portal,{container:n.current,children:(0,A.jsx)(we.SubContent,{sideOffset:4,alignOffset:-2,asChild:!0,children:(0,A.jsxs)(Kn,{size:e,children:[i,(0,A.jsx)(Aa,{offset:13})]})})})]})}var Aa=R(we.ContextMenuArrow,{fill:"$panel"});function Mn(e){var t=e,{onSelect:i}=t,o=Ae(t,["onSelect"]);return(0,A.jsx)(we.ContextMenuItem,{dir:"ltr",onSelect:i,asChild:!0,children:(0,A.jsx)(Dt,S({},o))})}var ge=e=>{var t=e,{id:i}=t,o=Ae(t,["id"]);return(0,A.jsx)(we.ContextMenuItem,{asChild:!0,id:i,children:(0,A.jsx)(at,S({},o))})},Va=e=>{var t=e,{id:i}=t,o=Ae(t,["id"]);return(0,A.jsx)(we.SubTrigger,{asChild:!0,id:i,children:(0,A.jsx)(at,S({hasArrow:!0},o))})},Ha=de.memo(Bm);var Xt=require("react/jsx-runtime");function za({error:i,resetErrorBoundary:o}){let e=_(),t=()=>{window.location.reload(),o()},n=()=>{let l=document.createElement("textarea");l.value=i.message,document.body.appendChild(l),l.select(),document.execCommand("copy"),l.remove()},r=()=>{e.saveProjectAs()},s=()=>{e.resetDocument(),o()};return(0,Xt.jsx)(Fm,{children:(0,Xt.jsxs)(Om,{children:[(0,Xt.jsx)("div",{children:"We've encountered an error!"}),(0,Xt.jsx)("pre",{children:(0,Xt.jsx)("code",{children:i.message})}),(0,Xt.jsxs)($m,{children:[(0,Xt.jsx)(at,{onClick:n,children:"Copy Error"}),(0,Xt.jsx)(at,{onClick:t,children:"Refresh Page"})]}),(0,Xt.jsx)(Te,{}),(0,Xt.jsxs)("p",{children:["Keep getting this error?"," ",(0,Xt.jsx)("a",{onClick:r,title:"Download your project",children:"Download your project"})," ","as a backup and then"," ",(0,Xt.jsx)("a",{onClick:s,title:"Reset the document",children:"reset the document"}),"."]})]})})}var Fm=R("div",{position:"absolute",top:0,left:0,width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"$canvas"}),Om=R("div",{backgroundColor:"$panel",border:"1px solid $panelContrast",padding:"$5",borderRadius:8,boxShadow:"$panel",maxWidth:320,color:"$text",fontFamily:"$ui",fontSize:"$2",textAlign:"center",display:"flex",flexDirection:"column",gap:"$3","& > pre":{marginTop:"$3",marginBottom:"$3",textAlign:"left",whiteSpace:"pre-wrap",backgroundColor:"$hover",padding:"$4",borderRadius:"$2",fontFamily:'"Menlo", "Monaco", monospace',fontWeight:500},"& p":{fontFamily:"$body",lineHeight:1.7,padding:"$5",margin:0},"& a":{color:"$text",cursor:"pointer",textDecoration:"underline"},"& hr":{marginLeft:"-$5",marginRight:"-$5"}}),$m=R("div",{display:"flex","& > button > div":{justifyContent:"center",textAlign:"center"}});var nn=require("@radix-ui/react-icons"),xt=H(require("react"));var lr=H(require("react")),oc=require("telva-core");var Yi=H(require("react")),Fa=Yi.createContext([]);function Xi(){return Yi.useContext(Fa)}var Et=require("react/jsx-runtime"),rc=lr.memo(function(){let o=_(),e=Xi(),[t,n]=lr.useState(null),r=lr.useCallback(s=>{n(s.id);try{let[l,a]=s.defaultSize,c=o.getPagePoint([window.innerWidth/2-l/2,window.innerHeight/2-a/2]),p=oc.Utils.uniqueId();o.createShapes({id:p,type:"reactComponent",name:s.name,point:c,size:[l,a],componentId:s.id,style:{color:"black",size:"small",dash:"draw"}}),o.select(p)}catch(l){console.error("Failed to import component:",l)}finally{n(null)}},[o]);return(0,Et.jsxs)(Gm,{children:[e.length===0?(0,Et.jsxs)(jm,{children:["No components registered.",(0,Et.jsx)("br",{}),"Add components in ",(0,Et.jsx)("code",{children:"apps/www/react/registry.tsx"})]}):e.map(s=>(0,Et.jsxs)(Wm,{children:[(0,Et.jsx)(Nm,{style:{background:s.previewColor||"#6366f1"},children:(0,Et.jsx)("span",{children:"<"+s.name+" />"})}),(0,Et.jsxs)(Um,{children:[(0,Et.jsx)(Km,{children:s.name}),(0,Et.jsx)(_m,{children:s.description}),(0,Et.jsx)(Ym,{children:s.sourcePath})]}),(0,Et.jsx)(Xm,{onClick:()=>r(s),disabled:t===s.id,children:t===s.id?"...":"Import"})]},s.id)),(0,Et.jsxs)(Zm,{children:["Components render LIVE on your canvas.",(0,Et.jsx)("br",{})]})]})}),Gm=R("div",{flex:1,padding:"6px",overflowY:"auto","&::-webkit-scrollbar":{width:"3px"},"&::-webkit-scrollbar-thumb":{background:"$separator",borderRadius:"2px"}}),jm=R("div",{padding:"16px 8px",fontSize:"10px",color:"$textSecondary",textAlign:"center",lineHeight:1.5,"& code":{fontSize:"9px",background:"$inputBg",padding:"1px 4px",borderRadius:"$0"}}),Wm=R("div",{display:"flex",alignItems:"center",gap:"6px",padding:"6px",borderRadius:"$2",border:"1px solid $separator",marginBottom:"4px",transition:"background 0.08s","&:hover":{background:"$hover"}}),Nm=R("div",{width:"36px",height:"36px",borderRadius:"$1",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,"& span":{fontSize:"7px",color:"rgba(255,255,255,0.8)",fontFamily:"$mono"}}),Um=R("div",{flex:1,minWidth:0}),Km=R("div",{fontSize:"10px",fontWeight:600,color:"$text",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}),_m=R("div",{fontSize:"9px",color:"$textSecondary",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}),Ym=R("div",{fontSize:"8px",color:"$textSecondary",opacity:.6,fontFamily:"$mono",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}),Xm=R("button",{all:"unset",fontSize:"9px",fontWeight:600,color:"white",background:"$accent",padding:"3px 8px",borderRadius:"$1",cursor:"pointer",flexShrink:0,transition:"opacity 0.1s","&:hover":{opacity:.85},"&:disabled":{opacity:.5,cursor:"not-allowed"}}),Zm=R("div",{padding:"10px 6px",fontSize:"8px",color:"$textSecondary",lineHeight:1.4,borderTop:"1px solid $separator",marginTop:"6px","& code":{fontSize:"8px",background:"$inputBg",padding:"1px 3px",borderRadius:"$0"}});var K=require("react/jsx-runtime"),qm=i=>{let o=i.document.pages[i.appState.currentPageId];return Object.values(o.shapes).sort((e,t)=>t.childIndex-e.childIndex)},Jm=i=>i.document.pageStates[i.appState.currentPageId].selectedIds,ic={["draw"]:(0,K.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 15 15",fill:"none",children:(0,K.jsx)("path",{d:"M2 12C4 8 8 4 10 6C12 8 13 3 13 3",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",fill:"none"})}),["rectangle"]:(0,K.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 15 15",fill:"none",children:(0,K.jsx)("rect",{x:"2",y:"3",width:"11",height:"9",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"})}),["ellipse"]:(0,K.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 15 15",fill:"none",children:(0,K.jsx)("ellipse",{cx:"7.5",cy:"7.5",rx:"5.5",ry:"4.5",stroke:"currentColor",strokeWidth:"1.2",fill:"none"})}),["triangle"]:(0,K.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 15 15",fill:"none",children:(0,K.jsx)("path",{d:"M7.5 2L13 13H2L7.5 2Z",stroke:"currentColor",strokeWidth:"1.2",fill:"none"})}),["arrow"]:(0,K.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 15 15",fill:"none",children:(0,K.jsx)("path",{d:"M3 12L12 3M12 3H6M12 3V9",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round"})}),["text"]:(0,K.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 15 15",fill:"none",children:(0,K.jsx)("path",{d:"M3 3H12M7.5 3V12",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})}),["sticky"]:(0,K.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 15 15",fill:"none",children:[(0,K.jsx)("rect",{x:"2",y:"2",width:"11",height:"11",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,K.jsx)("path",{d:"M5 6H10M5 9H8",stroke:"currentColor",strokeWidth:"0.8"})]}),["line"]:(0,K.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 15 15",fill:"none",children:(0,K.jsx)("line",{x1:"2",y1:"13",x2:"13",y2:"2",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})}),["image"]:(0,K.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 15 15",fill:"none",children:[(0,K.jsx)("rect",{x:"2",y:"3",width:"11",height:"9",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,K.jsx)("circle",{cx:"5",cy:"6",r:"1",fill:"currentColor"})]}),["video"]:(0,K.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 15 15",fill:"none",children:[(0,K.jsx)("rect",{x:"2",y:"3",width:"11",height:"9",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,K.jsx)("path",{d:"M6 6V9L9 7.5L6 6Z",fill:"currentColor"})]}),["group"]:(0,K.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 15 15",fill:"none",children:[(0,K.jsx)("rect",{x:"1",y:"4",width:"8",height:"7",rx:"1",stroke:"currentColor",strokeWidth:"1",fill:"none"}),(0,K.jsx)("rect",{x:"5",y:"2",width:"8",height:"7",rx:"1",stroke:"currentColor",strokeWidth:"1",fill:"none"})]})},Oa=xt.memo(function(){let[o,e]=xt.useState("layers");return(0,K.jsxs)(eg,{onPointerDown:t=>t.stopPropagation(),onPointerUp:t=>t.stopPropagation(),onClick:t=>t.stopPropagation(),children:[(0,K.jsxs)(tg,{children:[(0,K.jsx)(sc,{isActive:o==="layers",onClick:()=>e("layers"),children:"Layers"}),(0,K.jsx)(sc,{isActive:o==="components",onClick:()=>e("components"),children:"Components"})]}),o==="layers"?(0,K.jsx)(Qm,{}):(0,K.jsx)(rc,{})]})});function Qm(){let i=_(),o=i.useStore(qm),e=i.useStore(Jm),[t,n]=xt.useState(null),r=xt.useRef(null),s=xt.useMemo(()=>o.filter(a=>a.parentId===i.currentPageId),[o,i.currentPageId]),l=xt.useCallback((a,c,p)=>{if(a===c)return;let u=[...s],h=u.findIndex(T=>T.id===a);if(h===-1)return;let g=u.filter(T=>T.id!==a),m=g.findIndex(T=>T.id===c);if(m===-1)return;let f=p==="before"?m:m+1;g.splice(f,0,u[h]);let v=g.length,b={};g.forEach((T,y)=>{b[T.id]={childIndex:v-y}}),i.patchState({document:{pages:{[i.currentPageId]:{shapes:b}}}},"reorder_layers")},[s,i]);return(0,K.jsx)(ng,{onDragOver:a=>a.preventDefault(),onDrop:()=>{r.current=null,n(null)},children:s.length===0?(0,K.jsx)(og,{children:"No elements on canvas"}):s.map(a=>(0,K.jsx)(lc,{shape:a,allShapes:o,selectedIds:e,app:i,depth:0,dragOverInfo:t,onLayerDragStart:c=>{r.current=c},onLayerDragOver:(c,p)=>n({id:c,position:p}),onLayerDrop:(c,p)=>{r.current&&l(r.current,c,p),r.current=null,n(null)},onLayerDragEnd:()=>{r.current=null,n(null)}},a.id))})}function lc({shape:i,allShapes:o,selectedIds:e,app:t,depth:n,dragOverInfo:r,onLayerDragStart:s,onLayerDragOver:l,onLayerDrop:a,onLayerDragEnd:c}){let p=e.includes(i.id),h=i.type==="group"?i.children||[]:[],g=h.length>0,[m,f]=xt.useState(!0),v=xt.useCallback(C=>{C.stopPropagation(),C.shiftKey?p?t.deselect(i.id):t.select(...e,i.id):t.select(i.id)},[t,i.id,e,p]),b=xt.useCallback(C=>{C.stopPropagation(),t.toggleHidden([i.id])},[t,i.id]),T=xt.useCallback(C=>{C.stopPropagation(),t.toggleLocked([i.id])},[t,i.id]),y=ic[i.type]||ic["rectangle"],x=i.name||i.type,P=xt.useMemo(()=>g?h.map(C=>o.find(E=>E.id===C)).filter(Boolean):[],[g,h,o]),D=(r==null?void 0:r.id)===i.id?r.position==="before"?{borderTop:"2px solid #0D99FF"}:{borderBottom:"2px solid #0D99FF"}:{};return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(dc,{draggable:!!s,onClick:v,isSelected:p,style:S({paddingLeft:`${8+n*14}px`,cursor:s?"grab":"pointer"},D),onDragStart:C=>{C.stopPropagation(),C.dataTransfer.effectAllowed="move",s==null||s(i.id)},onDragOver:C=>{C.preventDefault(),C.stopPropagation();let E=C.currentTarget.getBoundingClientRect(),M=C.clientY<E.top+E.height/2?"before":"after";l==null||l(i.id,M)},onDrop:C=>{C.preventDefault(),C.stopPropagation();let E=C.currentTarget.getBoundingClientRect(),M=C.clientY<E.top+E.height/2?"before":"after";a==null||a(i.id,M)},onDragEnd:C=>{C.stopPropagation(),c==null||c()},children:[g?(0,K.jsx)(rg,{onClick:C=>{C.stopPropagation(),f(!m)},children:m?(0,K.jsx)(nn.ChevronDownIcon,{}):(0,K.jsx)(nn.ChevronRightIcon,{})}):(0,K.jsx)(ig,{}),(0,K.jsx)(sg,{children:y}),(0,K.jsx)(ag,{children:x}),(0,K.jsxs)(lg,{children:[(0,K.jsx)(ac,{onClick:b,children:i.isHidden?(0,K.jsx)(nn.EyeClosedIcon,{}):(0,K.jsx)(nn.EyeOpenIcon,{})}),(0,K.jsx)(ac,{onClick:T,children:i.isLocked?(0,K.jsx)(nn.LockClosedIcon,{}):(0,K.jsx)(nn.LockOpen1Icon,{})})]})]}),g&&m&&(0,K.jsx)(dg,{children:P.map(C=>(0,K.jsx)(lc,{shape:C,allShapes:o,selectedIds:e,app:t,depth:n+1},C.id))})]})}var eg=R("div",{display:"flex",flexDirection:"column",flex:1,minHeight:0,overflow:"hidden"}),tg=R("div",{display:"flex",borderBottom:"1px solid $separator",flexShrink:0}),sc=R("button",{all:"unset",flex:1,padding:"6px 0",fontSize:"9px",fontWeight:600,textAlign:"center",color:"$textSecondary",cursor:"pointer",textTransform:"uppercase",letterSpacing:"0.06em",transition:"all 0.1s",borderBottom:"2px solid transparent","&:hover":{color:"$text"},variants:{isActive:{true:{color:"$accent",borderBottomColor:"$accent"}}}}),ng=R("div",{flex:1,overflowY:"auto",overflowX:"hidden","&::-webkit-scrollbar":{width:"3px"},"&::-webkit-scrollbar-thumb":{background:"$separator",borderRadius:"2px"}}),og=R("div",{padding:"16px 12px",fontSize:"10px",color:"$textSecondary",fontStyle:"italic",textAlign:"center"}),dc=R("div",{display:"flex",alignItems:"center",gap:"4px",height:"26px",paddingRight:"6px",cursor:"pointer",transition:"background 0.08s","&:hover":{background:"$hover"},variants:{isSelected:{true:{background:"rgba(13, 153, 255, 0.15)","&:hover":{background:"rgba(13, 153, 255, 0.2)"}}}}}),rg=R("button",{all:"unset",display:"flex",alignItems:"center",justifyContent:"center",width:"14px",height:"14px",cursor:"pointer",color:"$textSecondary",flexShrink:0,"& svg":{width:"10px",height:"10px"},"&:hover":{color:"$text"}}),ig=R("div",{width:"14px",flexShrink:0}),sg=R("div",{display:"flex",alignItems:"center",justifyContent:"center",width:"14px",height:"14px",color:"$textSecondary",flexShrink:0}),ag=R("span",{fontSize:"10px",color:"$text",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",flex:1,fontWeight:500}),lg=R("div",{display:"flex",gap:"1px",opacity:0,transition:"opacity 0.1s",[`${dc}:hover &`]:{opacity:1}}),ac=R("button",{all:"unset",display:"flex",alignItems:"center",justifyContent:"center",width:"18px",height:"18px",borderRadius:"$0",color:"$textSecondary",cursor:"pointer","& svg":{width:"10px",height:"10px"},"&:hover":{color:"$text",background:"$hover"}}),dg=R("div",{borderLeft:"1px solid $separator",marginLeft:"18px"});var pc=H(require("react"));var cc=require("react/jsx-runtime"),$a=pc.memo(function(){return(0,cc.jsx)(cg,{children:(0,cc.jsx)(Oa,{})})}),cg=R("div",{display:"flex",flexDirection:"column",width:"200px",height:"100%",background:"$panel",borderRight:"1px solid $separator",zIndex:200,pointerEvents:"all",overflow:"hidden",flexShrink:0});var hc=require("react-intl");var uc=require("react/jsx-runtime"),pg=i=>i.appState.isLoading;function Ga(){let o=_().useStore(pg);return(0,uc.jsx)(ug,{hidden:!o,children:(0,uc.jsx)(hc.FormattedMessage,{id:"loading",values:{dots:"..."}})})}var ug=R("div",{position:"absolute",top:0,left:"50%",transform:"translate(-50%, 0)",borderBottomLeftRadius:"12px",borderBottomRightRadius:"12px",padding:"8px 16px",fontFamily:"var(--fonts-ui)",fontSize:"var(--fontSizes-1)",boxShadow:"var(--shadows-panel)",backgroundColor:"white",zIndex:200,pointerEvents:"none","& > div > *":{pointerEvents:"all"},variants:{transform:{hidden:{transform:"translate(-50%, 100%)"},visible:{transform:"translate(-50%, 0%)"}}}});var ht=H(require("@radix-ui/react-alert-dialog")),Mo=require("react-intl");var Ze=require("react/jsx-runtime");function hg({children:i,onClose:o,container:e}){return(0,Ze.jsxs)(ht.Portal,{container:e,children:[(0,Ze.jsx)(bg,{}),(0,Ze.jsx)(vg,{onKeyDown:n=>{switch(n.key){case"Escape":o==null||o();break}},children:i})]})}var mg=R(ht.Description,{marginBottom:20,color:"$text",fontSize:"$2",lineHeight:1.5,textAlign:"center",maxWidth:"62%",minWidth:0,alignSelf:"center"}),gg=ht.Root,fg=hg,Sg=mg,mc=ht.Action,yg=ht.Cancel,gc=({container:i})=>{let{setDialogState:o,dialogState:e,onCancel:t,onNo:n,onYes:r}=Oi(),s=(0,Mo.useIntl)(),l={saveFirstTime:s.formatMessage({id:"dialog.save.firsttime"}),saveAgain:s.formatMessage({id:"dialog.save.again"})};return(0,Ze.jsxs)(gg,{open:e!==null,children:[(0,Ze.jsx)(ht.AlertDialogTitle,{children:(0,Ze.jsx)(Mo.FormattedMessage,{id:"dialog.confirm"})}),(0,Ze.jsxs)(fg,{onClose:()=>o(null),container:i,children:[e&&(0,Ze.jsx)(Sg,{children:l[e]}),(0,Ze.jsxs)("div",{style:{width:"100%",gap:"$6",display:"flex",justifyContent:"space-between"},children:[t&&(0,Ze.jsx)(yg,{asChild:!0,children:(0,Ze.jsx)(dr,{css:{color:"$text"},onClick:()=>{t(),o(null)},children:(0,Ze.jsx)(Mo.FormattedMessage,{id:"dialog.cancel"})})}),(0,Ze.jsxs)("div",{style:{flexShrink:0},children:[n&&(0,Ze.jsx)(mc,{asChild:!0,children:(0,Ze.jsx)(dr,{onClick:()=>{n(),o(null)},children:(0,Ze.jsx)(Mo.FormattedMessage,{id:"dialog.no"})})}),r&&(0,Ze.jsx)(mc,{asChild:!0,children:(0,Ze.jsx)(dr,{css:{backgroundColor:"#2F80ED",color:"White"},onClick:()=>{r(),o(null)},children:(0,Ze.jsx)(Mo.FormattedMessage,{id:"dialog.yes"})})})]})]})]})]})},bg=R(ht.Overlay,{position:"fixed",inset:0,backgroundColor:"rgba(0, 0, 0, .15)",pointerEvents:"all"}),_0=R(ht.Overlay,{backgroundColor:"rgba(0, 0, 0, .15)",position:"absolute",pointerEvents:"all",inset:0}),vg=R(ht.Content,{position:"fixed",font:"$ui",top:"50%",left:"50%",transform:"translate(-50%, -50%)",width:"max-content",padding:"$3",pointerEvents:"all",backgroundColor:"$panel",borderRadius:"$3",display:"flex",flexDirection:"column",justifyContent:"center",fontFamily:"$ui",border:"1px solid $panelContrast",boxShadow:"$panel"}),dr=R("button",{all:"unset",display:"inline-flex",alignItems:"center",justifyContent:"center",borderRadius:"$2",padding:"0 15px",fontSize:"$1",lineHeight:1,fontWeight:"normal",height:36,color:"$text",cursor:"pointer",minWidth:48});var bn=H(require("@radix-ui/react-alert-dialog")),yc=require("@radix-ui/react-icons"),cr=H(require("react")),ri=require("react-intl");var fc=H(require("react"));var Zi=require("react/jsx-runtime"),qi=fc.forwardRef((t,e)=>{var n=t,{icon:i}=n,o=Ae(n,["icon"]);return(0,Zi.jsxs)(Tg,{children:[(0,Zi.jsx)(xg,I(S({},o),{ref:e})),i?(0,Zi.jsx)(kg,{children:i}):null]})}),Tg=R("div",{position:"relative",width:"100%",height:"min-content"}),xg=R("input",{color:"$text",border:"none",textAlign:"left",width:"100%",paddingLeft:"$3",paddingRight:"$6",backgroundColor:"$background",height:"32px",outline:"none",fontFamily:"$ui",fontSize:"$1","&:focus":{backgroundColor:"$hover"},borderRadius:"$2"}),kg=R(Ft,{top:0,right:0,position:"absolute",paddingLeft:"$3",paddingRight:"$3",pointerEvents:"none",color:"$text"});var lt=require("react/jsx-runtime"),bc=({isOpen:i,onClose:o})=>{let e=_(),t=Sn(),n=(0,ri.useIntl)(),[r,s]=cr.useState(e.document.name),[l,a]=cr.useState("tldr"),c=cr.useCallback(h=>{let g=h.target.value.trimStart();s(g)},[]);function p(h){h.stopPropagation()}let u=cr.useCallback(h=>{switch(h.key){case"Enter":{let g=r.trim().replace(/\.(tldr|tld)$/,"");e.saveProjectAs(g,l),o();break}case"Escape":{o();break}}},[r,l]);return(0,lt.jsx)(bn.Root,{open:i,children:(0,lt.jsxs)(bn.Portal,{container:t.current,children:[(0,lt.jsx)(wg,{onPointerDown:o}),(0,lt.jsxs)(Cg,{dir:"ltr",onKeyDown:p,onKeyUp:p,children:[(0,lt.jsx)(Pg,{placeholder:n.formatMessage({id:"enter.file.name"}),value:r,onChange:c,onKeyDown:u,icon:(0,lt.jsx)(yc.Pencil1Icon,{})}),(0,lt.jsxs)(Rg,{children:[(0,lt.jsx)(Dg,{children:"Format:"}),(0,lt.jsx)(Sc,{active:l==="tldr",onClick:()=>a("tldr"),children:".tldr"}),(0,lt.jsx)(Sc,{active:l==="tld",onClick:()=>a("tld"),children:".tld"})]}),(0,lt.jsxs)(Ig,{children:[(0,lt.jsx)(bn.Action,{asChild:!0,children:(0,lt.jsx)(dr,{onClick:o,children:(0,lt.jsx)(ri.FormattedMessage,{id:"cancel"})})}),(0,lt.jsx)(bn.Action,{asChild:!0,children:(0,lt.jsx)(dr,{css:{backgroundColor:"#2F80ED",color:"White"},onClick:()=>{let h=r.trim().replace(/\.(tldr|tld)$/,"");e.saveProjectAs(h,l),o()},children:(0,lt.jsx)(ri.FormattedMessage,{id:"save"})})})]})]})]})})},Cg=R(bn.Content,{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",minWidth:300,maxWidth:"fit-content",maxHeight:"85vh",marginTop:"-5vh",pointerEvents:"all",backgroundColor:"$panel",padding:"$3",borderRadius:"$2",font:"$ui",zIndex:999999,"&:focus":{outline:"none"}}),wg=R(bn.Overlay,{backgroundColor:"rgba(0, 0, 0, .15)",position:"absolute",pointerEvents:"all",inset:0,zIndex:999998}),Ig=R("div",{width:"100%",display:"flex",alignItems:"center",gap:8,justifyContent:"flex-end",marginTop:10}),Pg=R(qi,{background:"$hover"}),Rg=R("div",{display:"flex",alignItems:"center",gap:6,marginTop:8}),Dg=R("span",{fontSize:11,color:"$textSecondary",flexShrink:0}),Sc=R("button",{all:"unset",padding:"3px 10px",borderRadius:4,fontSize:11,fontFamily:"monospace",cursor:"pointer",border:"1px solid $separator",color:"$textSecondary",transition:"all 0.1s","&:hover":{background:"$hover",color:"$text"},variants:{active:{true:{background:"#2F80ED",borderColor:"#2F80ED",color:"white","&:hover":{background:"#2F80ED",color:"white"}}}}});var Jp=H(require("react"));var Re=H(require("react")),Ti=require("telva-core");var ja=require("telva-core");function Ot(i,o){let e=ja.Utils.getFromCache(o,i,()=>{let[t,n]=i.size;return{minX:0,maxX:t,minY:0,maxY:n,width:t,height:n}});return ja.Utils.translateBounds(e,i.point)}var Eg={["start"]:"left",["middle"]:"center",["end"]:"right",["justify"]:"justify"};function vc(i="start"){return Eg[i]}var on="-0.03em";var pr=[.5,.5],h1=Math.PI*2,Wa=".tldr",Lo={linear:i=>i,easeInQuad:i=>i*i,easeOutQuad:i=>i*(2-i),easeInOutQuad:i=>i<.5?2*i*i:-1+(4-2*i)*i,easeInCubic:i=>i*i*i,easeOutCubic:i=>--i*i*i+1,easeInOutCubic:i=>i<.5?4*i*i*i:(i-1)*(2*i-2)*(2*i-2)+1,easeInQuart:i=>i*i*i*i,easeOutQuart:i=>1- --i*i*i*i,easeInOutQuart:i=>i<.5?8*i*i*i*i:1-8*--i*i*i*i,easeInQuint:i=>i*i*i*i*i,easeOutQuint:i=>1+--i*i*i*i*i,easeInOutQuint:i=>i<.5?16*i*i*i*i*i:1+16*--i*i*i*i*i,easeInSine:i=>1-Math.cos(i*Math.PI/2),easeOutSine:i=>Math.sin(i*Math.PI/2),easeInOutSine:i=>-(Math.cos(Math.PI*i)-1)/2,easeInExpo:i=>i<=0?0:Math.pow(2,10*i-10),easeOutExpo:i=>i>=1?1:1-Math.pow(2,-10*i),easeInOutExpo:i=>i<=0?0:i>=1?1:i<.5?Math.pow(2,20*i-10)/2:(2-Math.pow(2,-20*i+10))/2};var Ji=["#EC5E41","#F2555A","#F04F88","#E34BA9","#BD54C6","#9D5BD2","#7B66DC","#02B1CC","#11B3A3","#39B178","#55B467","#FF802B"],Bg=typeof Window=="undefined"?!1:/^((?!chrome|android).)*safari/i.test(navigator.userAgent),Tc=typeof Window=="undefined"?!1:/linux/i.test(navigator.userAgent),Qi=[".png",".svg",".jpg",".jpeg",".gif"],es=Bg?[]:[".mp4",".webm"];var $t;function Mg(){var o;(o=document.getElementById("__textLabelMeasure"))==null||o.remove();let i=document.createElement("pre");return i.id="__textLabelMeasure",Object.assign(i.style,{whiteSpace:"pre",width:"auto",border:"1px solid transparent",padding:"4px",margin:"0px",letterSpacing:on,opacity:"0",position:"absolute",top:"-500px",left:"0px",zIndex:"9999",pointerEvents:"none",userSelect:"none","-webkit-user-select":"none",alignmentBaseline:"mathematical",dominantBaseline:"mathematical"}),i.tabIndex=-1,document.body.appendChild(i),i}typeof window!="undefined"&&($t=Mg());var Lg="";function xc(){Lg=""}function lo(i,o,e){if(!i)return[16,32];if(!$t)return[10,10];$t.parent||document.body.appendChild($t),$t.textContent=i,$t.style.font=o,e?($t.style.whiteSpace="pre-wrap",$t.style.wordBreak="break-word",$t.style.width=`${e}px`):($t.style.whiteSpace="pre",$t.style.wordBreak="normal",$t.style.width="auto");let t=$t.offsetWidth||1,n=$t.offsetHeight||1;return[t,n]}var Ag=new RegExp(`${[32,160,4961,65792,65793,4153,4241].map(i=>String.fromCodePoint(i)).join("|")}`);function co(i,o,e,t,n,r=!1){let s="normal",a=on,c=Vg({text:i,wrap:r,width:n,fontSize:o,fontWeight:s,fontFamily:e,fontStyle:"normal",textAlign:"left",letterSpacing:on,lineHeight:1}),p=document.createElementNS("http://www.w3.org/2000/svg","text");p.setAttribute("font-size",o+"px"),p.setAttribute("font-family",e),p.setAttribute("font-weight",s),p.setAttribute("line-height",1*o+"px"),p.setAttribute("letter-spacing",a),p.setAttribute("text-align",t!=null?t:"left"),p.setAttribute("dominant-baseline","mathematical"),p.setAttribute("alignment-baseline","mathematical");let u=c.map((h,g)=>{let m=document.createElementNS("http://www.w3.org/2000/svg","tspan");return m.textContent=h+`
4
4
  `,m.setAttribute("y",1*o*(g+.5)+"px"),p.appendChild(m),m});switch(t){case"middle":{p.setAttribute("text-align","center"),p.setAttribute("text-anchor","middle"),u.forEach(h=>h.setAttribute("x",n/2+""));break}case"end":{p.setAttribute("text-align","right"),p.setAttribute("text-anchor","end"),u.forEach(h=>h.setAttribute("x",-4+n+""));break}default:p.setAttribute("text-align","left"),p.setAttribute("text-anchor","start"),u.forEach(h=>h.setAttribute("x",4+""))}return p}function Vg(i){let o=document.createElement("div");o.style.setProperty("position","absolute"),o.style.setProperty("top","-9999px"),o.style.setProperty("left","-9999px"),o.style.setProperty("width",i.width+"px"),o.style.setProperty("height","min-content"),o.style.setProperty("font-size",i.fontSize+"px"),o.style.setProperty("font-family",i.fontFamily),o.style.setProperty("font-weight",i.fontWeight),o.style.setProperty("line-height",i.lineHeight*i.fontSize+"px"),o.style.setProperty("letter-spacing",i.letterSpacing),o.style.setProperty("text-align",i.textAlign),document.body.appendChild(o);let e=i.text.split(Ag).flatMap(s=>s.replace(`
5
5
  `,`
6
- `)).join(" ").split(" ");o.innerText=e[0];let t=o.offsetHeight,n=[e[0]],r=[n];for(let s=1;s<e.length;s++){let l=e[s];o.innerText+=" "+l;let a=o.offsetHeight;a>t&&(t=a,n=[],r.push(n)),n.push(l)}return o.remove(),r.map(s=>s.join(" "))}var ii=require("react/jsx-runtime");function kc({id:i,bounds:o,labelSize:e,offset:t,scale:n=1}){return(0,ii.jsx)("defs",{children:(0,ii.jsxs)("mask",{id:i+"_clip",children:[(0,ii.jsx)("rect",{x:-100,y:-100,width:o.width+200,height:o.height+200,fill:"white"}),(0,ii.jsx)("rect",{x:o.width/2-e[0]/2*n+((t==null?void 0:t[0])||0),y:o.height/2-e[1]/2*n+((t==null?void 0:t[1])||0),width:e[0]*n,height:e[1]*n,rx:4*n,ry:4*n,fill:"black",opacity:Math.max(n,.8)})]})})}var Cc=require("telva-intersect"),qt=require("telva-vec");var ts=Math.PI*2,Zt=class{static inwardEdgeNormal(o){let e=qt.Vec.sub(o[1],o[0]),t=qt.Vec.len2(e);return[-e[0]/t,e[1]/t]}static outwardEdgeNormal(o){return qt.Vec.neg(Zt.inwardEdgeNormal(o))}static isReflexVertex(o,e){let t=o.length,n=o[(e+t-1)%t],r=o[e],s=o[(e+1)%t];return Zt.leftSide(n,s,r)<0}static getEdges(o){return o.map((e,t)=>[e,o[(t+1)%o.length]])}static edgesIntersection([o,e],[t,n]){let r=(n[1]-t[1])*(e[0]-o[0])-(n[0]-t[0])*(e[1]-o[1]);if(r==0)return null;let s=((n[0]-t[0])*(o[1]-t[1])-(n[1]-t[1])*(o[0]-t[0]))/r,l=((e[0]-o[0])*(o[1]-t[1])-(e[1]-o[1])*(o[0]-t[0]))/r;return s<0||l<0||s>1||l>1?null:[o[0]+s*(e[0]-o[0]),o[1]+s*(e[1]-o[1])]}static appendArc(o,e,t,n,r,s=!1){let l=[...o],a=Math.atan2(n[1]-e[1],n[0]-e[0]),c=Math.atan2(r[1]-e[1],r[0]-e[0]);a<0&&(a+=ts),c<0&&(c+=ts);let p=5,u=a>c?a-c:a+ts-c,h=(s?-u:ts-u)/p;l.push(n);for(let g=1;g<p;++g){let m=a+h*g;l.push([e[0]+Math.cos(m)*t,e[1]+Math.sin(m)*t])}return l.push(r),l}static createOffsetEdge(o,e){return o.map(t=>qt.Vec.add(t,e))}static getOffsetPolygon(o,e=0){let t=Zt.getEdges(o),n=t.map(s=>Zt.createOffsetEdge(s,qt.Vec.mul(Zt.outwardEdgeNormal(s),e))),r=[];for(let s=0;s<n.length;s++){let l=n[s],a=n[(s+n.length-1)%n.length],c=Zt.edgesIntersection(a,l);c?r.push(c):Zt.appendArc(r,t[s][0],e,a[1],l[0],!1)}return r}static createPaddingPolygon(o,e=0){let t=o.map(r=>Zt.createOffsetEdge(r,Zt.inwardEdgeNormal(r))),n=[];for(let r=0;r<t.length;r++){let s=t[r],l=t[(r+t.length-1)%t.length],a=Zt.edgesIntersection(l,s);a?n.push(a):Zt.appendArc(n,o[r][0],e,l[1],s[0],!0)}return n}},Na=Zt;d(Na,"leftSide",qt.Vec.isLeft);function wc(i,o){if(i.length<3)throw Error("Polygon must have at least 3 points");let e=i.length;return i.map((t,n)=>[t,i[(n+1)%e]]).map(([t,n])=>{let r=qt.Vec.mul(qt.Vec.per(qt.Vec.uni(qt.Vec.sub(n,t))),o);return[qt.Vec.add(t,r),qt.Vec.add(n,r)]}).map((t,n,r)=>{let s=(0,Cc.intersectLineLine)(t,r[(n+1)%r.length]);if(s===void 0)throw Error("Expected an intersection");return s})}var Lo=require("telva-core");var Ic="#fafafa",Ua="#343d45",ur={["white"]:"#f0f1f3",["lightGray"]:"#c6cbd1",["gray"]:"#788492",["black"]:"#1d1d1d",["green"]:"#36b24d",["cyan"]:"#0e98ad",["blue"]:"#1c7ed6",["indigo"]:"#4263eb",["violet"]:"#7746f1",["red"]:"#ff2133",["orange"]:"#ff9433",["yellow"]:"#ffc936"},Hg={light:I(S({},Object.fromEntries(Object.entries(ur).map(([i,o])=>[i,Lo.Utils.lerpColor(o,Ic,.45)]))),{["white"]:"#ffffff",["black"]:"#3d3d3d"}),dark:I(S({},Object.fromEntries(Object.entries(ur).map(([i,o])=>[i,Lo.Utils.lerpColor(Lo.Utils.lerpColor(o,"#999999",.3),Ua,.4)]))),{["white"]:"#1d1d1d",["black"]:"#bbbbbb"})},Yn={light:I(S({},ur),{["white"]:"#1d1d1d"}),dark:I(S({},Object.fromEntries(Object.entries(ur).map(([i,o])=>[i,Lo.Utils.lerpColor(o,Ua,.1)]))),{["white"]:"#cecece",["black"]:"#cecece"})},Ao={light:I(S({},Object.fromEntries(Object.entries(ur).map(([i,o])=>[i,Lo.Utils.lerpColor(o,Ic,.82)]))),{["white"]:"#fefefe"}),dark:I(S({},Object.fromEntries(Object.entries(ur).map(([i,o])=>[i,Lo.Utils.lerpColor(o,Ua,.82)]))),{["white"]:"rgb(30,33,37)",["black"]:"#1e1e1f"})},zg={["small"]:2,["medium"]:3.5,["large"]:5},Fg={["small"]:28,["medium"]:48,["large"]:96,auto:"auto"},Og={["script"]:'"Caveat Brush"',["sans"]:'"Source Sans Pro"',["serif"]:'"Crimson Pro"',["mono"]:'"Source Code Pro"'},$g={["script"]:1,["sans"]:1,["serif"]:1,["mono"]:1},Gg={["small"]:24,["medium"]:36,["large"]:48,auto:"auto"};function jg(i){return zg[i]}function Vo(i,o="script"){return Fg[i]*$g[o]}function Ln(i="script",o){return o?`"${o}"`:Og[i]}function Ka(i){return Gg[i]}function Bt(i){let o=Vo(i.size,i.font),e=Ln(i.font,i.fontFamily),{scale:t=1}=i;return`${o*t}px/1 ${e}`}function Pc(i){let o=Ka(i.size),e=Ln(i.font,i.fontFamily),{scale:t=1}=i;return`${o*t}px/1 ${e}`}function _a(i,o=!1){var r,s;let{color:e}=i,t=o?"dark":"light",n=e==="white"||e==="black"?"yellow":e;return{fill:(r=i.fillHex)!=null?r:Hg[t][n],stroke:(s=i.strokeHex)!=null?s:null,color:o?"#1d1d1d":"#0d0d0d"}}function te(i,o){var l,a,c,p;let{color:e,size:t,isFilled:n}=i,r=(l=i.strokeWidthOverride)!=null?l:jg(t),s=o?"dark":"light";return{stroke:(a=i.strokeHex)!=null?a:Yn[s][e],fill:n?(c=i.fillHex)!=null?c:Ao[s][e]:"none",strokeWidth:r,opacity:(p=i.opacity)!=null?p:1}}var $e={color:"black",size:"small",isFilled:!1,dash:"draw",scale:1},hr=I(S({},$e),{font:"script",textAlign:"middle"});var Rc=" ",Ue=class{static insertTextFirefox(o,e){o.setRangeText(e,o.selectionStart||0,o.selectionEnd||0,"end"),o.dispatchEvent(new InputEvent("input",{data:e,inputType:"insertText",isComposing:!1}))}static insert(o,e){let t=o.ownerDocument,n=t.activeElement;n!==o&&o.focus(),t.execCommand("insertText",!1,e)||Ue.insertTextFirefox(o,e),n===t.body?o.blur():n instanceof HTMLElement&&n!==o&&n.focus()}static set(o,e){o.select(),Ue.insert(o,e)}static getSelection(o){let{selectionStart:e,selectionEnd:t}=o;return o.value.slice(e||void 0,t||void 0)}static wrapSelection(o,e,t){let{selectionStart:n,selectionEnd:r}=o,s=Ue.getSelection(o);Ue.insert(o,e+s+(t!=null?t:e)),o.selectionStart=(n||0)+e.length,o.selectionEnd=(r||0)+e.length}static replace(o,e,t){let n=0;o.value.replace(e,(...r)=>{let s=n+r[r.length-2],l=r[0].length;o.selectionStart=s,o.selectionEnd=s+l;let a=typeof t=="string"?t:t(...r);return Ue.insert(o,a),o.selectionStart=s,n+=a.length-l,a})}static findLineEnd(o,e){let t=o.lastIndexOf(`
6
+ `)).join(" ").split(" ");o.innerText=e[0];let t=o.offsetHeight,n=[e[0]],r=[n];for(let s=1;s<e.length;s++){let l=e[s];o.innerText+=" "+l;let a=o.offsetHeight;a>t&&(t=a,n=[],r.push(n)),n.push(l)}return o.remove(),r.map(s=>s.join(" "))}var ii=require("react/jsx-runtime");function kc({id:i,bounds:o,labelSize:e,offset:t,scale:n=1}){return(0,ii.jsx)("defs",{children:(0,ii.jsxs)("mask",{id:i+"_clip",children:[(0,ii.jsx)("rect",{x:-100,y:-100,width:o.width+200,height:o.height+200,fill:"white"}),(0,ii.jsx)("rect",{x:o.width/2-e[0]/2*n+((t==null?void 0:t[0])||0),y:o.height/2-e[1]/2*n+((t==null?void 0:t[1])||0),width:e[0]*n,height:e[1]*n,rx:4*n,ry:4*n,fill:"black",opacity:Math.max(n,.8)})]})})}var Cc=require("telva-intersect"),qt=require("telva-vec");var ts=Math.PI*2,Zt=class{static inwardEdgeNormal(o){let e=qt.Vec.sub(o[1],o[0]),t=qt.Vec.len2(e);return[-e[0]/t,e[1]/t]}static outwardEdgeNormal(o){return qt.Vec.neg(Zt.inwardEdgeNormal(o))}static isReflexVertex(o,e){let t=o.length,n=o[(e+t-1)%t],r=o[e],s=o[(e+1)%t];return Zt.leftSide(n,s,r)<0}static getEdges(o){return o.map((e,t)=>[e,o[(t+1)%o.length]])}static edgesIntersection([o,e],[t,n]){let r=(n[1]-t[1])*(e[0]-o[0])-(n[0]-t[0])*(e[1]-o[1]);if(r==0)return null;let s=((n[0]-t[0])*(o[1]-t[1])-(n[1]-t[1])*(o[0]-t[0]))/r,l=((e[0]-o[0])*(o[1]-t[1])-(e[1]-o[1])*(o[0]-t[0]))/r;return s<0||l<0||s>1||l>1?null:[o[0]+s*(e[0]-o[0]),o[1]+s*(e[1]-o[1])]}static appendArc(o,e,t,n,r,s=!1){let l=[...o],a=Math.atan2(n[1]-e[1],n[0]-e[0]),c=Math.atan2(r[1]-e[1],r[0]-e[0]);a<0&&(a+=ts),c<0&&(c+=ts);let p=5,u=a>c?a-c:a+ts-c,h=(s?-u:ts-u)/p;l.push(n);for(let g=1;g<p;++g){let m=a+h*g;l.push([e[0]+Math.cos(m)*t,e[1]+Math.sin(m)*t])}return l.push(r),l}static createOffsetEdge(o,e){return o.map(t=>qt.Vec.add(t,e))}static getOffsetPolygon(o,e=0){let t=Zt.getEdges(o),n=t.map(s=>Zt.createOffsetEdge(s,qt.Vec.mul(Zt.outwardEdgeNormal(s),e))),r=[];for(let s=0;s<n.length;s++){let l=n[s],a=n[(s+n.length-1)%n.length],c=Zt.edgesIntersection(a,l);c?r.push(c):Zt.appendArc(r,t[s][0],e,a[1],l[0],!1)}return r}static createPaddingPolygon(o,e=0){let t=o.map(r=>Zt.createOffsetEdge(r,Zt.inwardEdgeNormal(r))),n=[];for(let r=0;r<t.length;r++){let s=t[r],l=t[(r+t.length-1)%t.length],a=Zt.edgesIntersection(l,s);a?n.push(a):Zt.appendArc(n,o[r][0],e,l[1],s[0],!0)}return n}},Na=Zt;d(Na,"leftSide",qt.Vec.isLeft);function wc(i,o){if(i.length<3)throw Error("Polygon must have at least 3 points");let e=i.length;return i.map((t,n)=>[t,i[(n+1)%e]]).map(([t,n])=>{let r=qt.Vec.mul(qt.Vec.per(qt.Vec.uni(qt.Vec.sub(n,t))),o);return[qt.Vec.add(t,r),qt.Vec.add(n,r)]}).map((t,n,r)=>{let s=(0,Cc.intersectLineLine)(t,r[(n+1)%r.length]);if(s===void 0)throw Error("Expected an intersection");return s})}var Ao=require("telva-core");var Ic="#fafafa",Ua="#343d45",ur={["white"]:"#f0f1f3",["lightGray"]:"#c6cbd1",["gray"]:"#788492",["black"]:"#1d1d1d",["green"]:"#36b24d",["cyan"]:"#0e98ad",["blue"]:"#1c7ed6",["indigo"]:"#4263eb",["violet"]:"#7746f1",["red"]:"#ff2133",["orange"]:"#ff9433",["yellow"]:"#ffc936"},Hg={light:I(S({},Object.fromEntries(Object.entries(ur).map(([i,o])=>[i,Ao.Utils.lerpColor(o,Ic,.45)]))),{["white"]:"#ffffff",["black"]:"#3d3d3d"}),dark:I(S({},Object.fromEntries(Object.entries(ur).map(([i,o])=>[i,Ao.Utils.lerpColor(Ao.Utils.lerpColor(o,"#999999",.3),Ua,.4)]))),{["white"]:"#1d1d1d",["black"]:"#bbbbbb"})},Yn={light:I(S({},ur),{["white"]:"#1d1d1d"}),dark:I(S({},Object.fromEntries(Object.entries(ur).map(([i,o])=>[i,Ao.Utils.lerpColor(o,Ua,.1)]))),{["white"]:"#cecece",["black"]:"#cecece"})},Vo={light:I(S({},Object.fromEntries(Object.entries(ur).map(([i,o])=>[i,Ao.Utils.lerpColor(o,Ic,.82)]))),{["white"]:"#fefefe"}),dark:I(S({},Object.fromEntries(Object.entries(ur).map(([i,o])=>[i,Ao.Utils.lerpColor(o,Ua,.82)]))),{["white"]:"rgb(30,33,37)",["black"]:"#1e1e1f"})},zg={["small"]:2,["medium"]:3.5,["large"]:5},Fg={["small"]:28,["medium"]:48,["large"]:96,auto:"auto"},Og={["script"]:'"Caveat Brush"',["sans"]:'"Source Sans Pro"',["serif"]:'"Crimson Pro"',["mono"]:'"Source Code Pro"'},$g={["script"]:1,["sans"]:1,["serif"]:1,["mono"]:1},Gg={["small"]:24,["medium"]:36,["large"]:48,auto:"auto"};function jg(i){return zg[i]}function Ho(i,o="script"){return Fg[i]*$g[o]}function Ln(i="script",o){return o?`"${o}"`:Og[i]}function Ka(i){return Gg[i]}function Bt(i){let o=Ho(i.size,i.font),e=Ln(i.font,i.fontFamily),{scale:t=1}=i;return`${o*t}px/1 ${e}`}function Pc(i){let o=Ka(i.size),e=Ln(i.font,i.fontFamily),{scale:t=1}=i;return`${o*t}px/1 ${e}`}function _a(i,o=!1){var r,s;let{color:e}=i,t=o?"dark":"light",n=e==="white"||e==="black"?"yellow":e;return{fill:(r=i.fillHex)!=null?r:Hg[t][n],stroke:(s=i.strokeHex)!=null?s:null,color:o?"#1d1d1d":"#0d0d0d"}}function te(i,o){var l,a,c,p;let{color:e,size:t,isFilled:n}=i,r=(l=i.strokeWidthOverride)!=null?l:jg(t),s=o?"dark":"light";return{stroke:(a=i.strokeHex)!=null?a:Yn[s][e],fill:n?(c=i.fillHex)!=null?c:Vo[s][e]:"none",strokeWidth:r,opacity:(p=i.opacity)!=null?p:1}}var $e={color:"black",size:"small",isFilled:!1,dash:"draw",scale:1},hr=I(S({},$e),{font:"script",textAlign:"middle"});var Rc=" ",Ue=class{static insertTextFirefox(o,e){o.setRangeText(e,o.selectionStart||0,o.selectionEnd||0,"end"),o.dispatchEvent(new InputEvent("input",{data:e,inputType:"insertText",isComposing:!1}))}static insert(o,e){let t=o.ownerDocument,n=t.activeElement;n!==o&&o.focus(),t.execCommand("insertText",!1,e)||Ue.insertTextFirefox(o,e),n===t.body?o.blur():n instanceof HTMLElement&&n!==o&&n.focus()}static set(o,e){o.select(),Ue.insert(o,e)}static getSelection(o){let{selectionStart:e,selectionEnd:t}=o;return o.value.slice(e||void 0,t||void 0)}static wrapSelection(o,e,t){let{selectionStart:n,selectionEnd:r}=o,s=Ue.getSelection(o);Ue.insert(o,e+s+(t!=null?t:e)),o.selectionStart=(n||0)+e.length,o.selectionEnd=(r||0)+e.length}static replace(o,e,t){let n=0;o.value.replace(e,(...r)=>{let s=n+r[r.length-2],l=r[0].length;o.selectionStart=s,o.selectionEnd=s+l;let a=typeof t=="string"?t:t(...r);return Ue.insert(o,a),o.selectionStart=s,n+=a.length-l,a})}static findLineEnd(o,e){let t=o.lastIndexOf(`
7
7
  `,e-1)+1;return o.charAt(t)!==" "?e:t+1}static indent(o){var l;let{selectionStart:e,selectionEnd:t,value:n}=o,r=n.slice(e,t),s=(l=/\n/g.exec(r))==null?void 0:l.length;if(s&&s>0){let a=n.lastIndexOf(`
8
8
  `,e-1)+1,c=o.value.slice(a,t-1),p=c.replace(/^|\n/g,`$&${Rc}`),u=p.length-c.length;o.setSelectionRange(a,t-1),Ue.insert(o,p),o.setSelectionRange(e+1,t+u)}else Ue.insert(o,Rc)}static unindent(o){let{selectionStart:e,selectionEnd:t,value:n}=o,r=n.lastIndexOf(`
9
- `,e-1)+1,s=Ue.findLineEnd(n,t),l=o.value.slice(r,s),a=l.replace(/(^|\n)(\t| {1,2})/g,"$1"),c=l.length-a.length;o.setSelectionRange(r,s),Ue.insert(o,a);let p=/\t| {1,2}/.exec(n.slice(r,e)),u=p?p[0].length:0,h=e-u;o.setSelectionRange(e-u,Math.max(h,t-c))}};var yt=H(require("react"));var ht=i=>i.stopPropagation();var jt=require("telva-core"),bo=require("telva-intersect"),q=require("telva-vec");function mt(i){if(i===null)return i;if(i instanceof Date)return new Date(i.getTime());if(typeof i=="object")if(typeof i[Symbol.iterator]=="function"){let o=[];if(i.length>0)for(let e of i)o.push(mt(e));return o}else{let o=Object.keys(i),e={};if(o.length>0)for(let t of o)e[t]=mt(i[t]);return e}return i}var zo=H(require("react")),Gt=require("telva-core"),fr=require("telva-intersect"),Y=require("telva-vec");var Dc=H(require("react")),rn=require("telva-core"),mr=require("telva-intersect"),An=require("telva-vec");var ee=class extends rn.TLShapeUtil{constructor(){super(...arguments);d(this,"canBind",!1);d(this,"canEdit",!1);d(this,"canClone",!1);d(this,"isAspectRatioLocked",!1);d(this,"hideResizeHandles",!1);d(this,"bindingDistance",16);d(this,"hitTestPoint",(e,t)=>rn.Utils.pointInBounds(t,this.getRotatedBounds(e)));d(this,"hitTestLineSegment",(e,t,n)=>{let r=rn.Utils.getBoundsFromPoints([t,n]),s=this.getBounds(e);return rn.Utils.boundsContain(s,r)||e.rotation?(0,mr.intersectLineSegmentPolyline)(t,n,rn.Utils.getRotatedCorners(this.getBounds(e))).didIntersect:(0,mr.intersectLineSegmentBounds)(t,n,this.getBounds(e)).length>0});d(this,"create",e=>(this.refMap.set(e.id,Dc.createRef()),this.getShape(e)));d(this,"getCenter",e=>rn.Utils.getBoundsCenter(this.getBounds(e)));d(this,"getExpandedBounds",e=>rn.Utils.expandBounds(this.getBounds(e),this.bindingDistance));d(this,"getBindingPoint",(e,t,n,r,s,l)=>{let a=this.getBounds(e),c=this.getExpandedBounds(e);if(!rn.Utils.pointInBounds(n,c))return;let p=(0,mr.intersectRayBounds)(r,s,c).filter(b=>b.didIntersect).map(b=>b.points[0]);if(!p.length)return;let u=this.getCenter(e),h=p.sort((b,T)=>An.Vec.dist(T,r)-An.Vec.dist(b,r))[0],g=An.Vec.med(n,h),m,f;l?(m=An.Vec.dist(n,u)<16/2?u:n,f=0):(An.Vec.distanceToLineSegment(n,g,u)<16/2?m=u:m=g,rn.Utils.pointInBounds(n,a)?f=this.bindingDistance:f=Math.max(this.bindingDistance,rn.Utils.getBoundsSides(a).map(b=>An.Vec.distanceToLineSegment(b[1][0],b[1][1],n)).sort((b,T)=>b-T)[0]));let v=An.Vec.divV(An.Vec.sub(m,[c.minX,c.minY]),[c.width,c.height]);return{point:An.Vec.clampV(v,0,1),distance:f}});d(this,"mutate",(e,t)=>t);d(this,"transform",(e,t,n)=>I(S({},e),{point:[t.minX,t.minY]}));d(this,"transformSingle",(e,t,n)=>this.transform(e,t,n));d(this,"updateChildren");d(this,"onChildrenChange");d(this,"onHandleChange");d(this,"onRightPointHandle");d(this,"onDoubleClickHandle");d(this,"onDoubleClickBoundsHandle");d(this,"onSessionComplete");d(this,"getSvgElement",(e,t)=>{var s,l,a,c,p;let n=(s=document.getElementById(e.id+"_svg"))==null?void 0:s.cloneNode(!0);if(!n)return;if((c=(a=(l=e.label)==null?void 0:l.trim())==null?void 0:a.length)!=null?c:0>0){let u=e,h=document.createElementNS("http://www.w3.org/2000/svg","g"),g=Bt(e.style),m=Vo(e.style.size,e.style.font)*((p=e.style.scale)!=null?p:1),f=Ln(e.style.font).slice(1,-1),v=this.getBounds(e),b=Math.max(0,v.width-16),T=lo(e.label,g,b),y=co(u.label,m,f,"middle",b,!0);return y.setAttribute("transform",`translate(${v.width/2-b/2}, ${v.height/2-T[1]/2})`),y.setAttribute("fill",te(e.style,t).stroke),y.setAttribute("transform-origin","center center"),h.setAttribute("text-align","center"),h.setAttribute("text-anchor","middle"),h.appendChild(n),h.appendChild(y),h}return n})}};var Ya=H(require("perfect-freehand")),Xn=require("telva-core"),ns=require("telva-intersect"),fe=H(require("telva-vec"));function Mc(i,o,e,t){return["M",i[0],i[1],"A",e[2],e[2],0,0,t<0?0:1,o[0],o[1]].join(" ")}function si(i,o){let{start:e,end:t}=i,n=fe.default.dist(e.point,t.point),r=fe.default.med(e.point,t.point),s=n/2*o,l=fe.default.uni(fe.default.vec(e.point,t.point));return fe.default.toFixed(Math.abs(s)<10?r:fe.default.add(r,fe.default.mul(fe.default.per(l),s)))}function Lc(i,o,e,t,n,r){let s=Xn.Utils.rng(i),l=te(o).strokeWidth,a=n?fe.default.nudge(e,t,l):e,c=r?fe.default.nudge(t,e,l):t,p=(0,Ya.default)([a,c],{size:l,thinning:.618+s()*.2,easing:Mo.easeOutQuad,simulatePressure:!0,streamline:0,last:!0});return Xn.Utils.getSvgPathFromStroke(p)}function Ac(i,o,e,t,n,r,s,l,a,c){let p=Xn.Utils.rng(i),u=te(o).strokeWidth,h=n?fe.default.rotWith(e,s,u/a):e,g=r?fe.default.rotWith(t,s,-(u/a)):t,m=fe.default.angle(s,h),f=fe.default.angle(s,g),v=[],b=8+Math.floor(Math.abs(a)/20*1+p()/2);for(let y=0;y<b;y++){let x=c(y/b),P=Xn.Utils.lerpAngles(m,f,x);v.push(fe.default.toFixed(fe.default.nudgeAtAngle(s,P,l)))}let T=(0,Ya.default)([h,...v,g],{size:1+u,thinning:.618+p()*.2,easing:Mo.easeOutQuad,simulatePressure:!1,streamline:0,last:!0});return Xn.Utils.getSvgPathFromStroke(T)}function Zn(i,o,e){return Xn.Utils.circleFromThreePoints(i,e,o)}function os(i,o,e,t,n){let r=(0,ns.intersectCircleCircle)(i,o*.618,e,t).points;if(!r)return B.warn("Could not find an intersection for the arrow head."),{left:i,right:i};let s=n?r[0]:r[1],l=s?fe.default.nudge(fe.default.rotWith(s,i,Math.PI/6),i,o*-.382):i,a=s?fe.default.nudge(fe.default.rotWith(s,i,-Math.PI/6),i,o*-.382):i;return{left:l,right:a}}function rs(i,o,e){let t=(0,ns.intersectCircleLineSegment)(i,e,i,o).points;if(!t)return B.warn("Could not find an intersection for the arrow head."),{left:i,right:i};let n=t[0],r=n?fe.default.rotWith(n,i,Math.PI/6):i,s=n?fe.default.rotWith(n,i,-Math.PI/6):i;return{left:r,right:s}}function Ec(i,o,e,t,n){let{left:r,right:s}=os(i,o,e,t,n);return`M ${r} L ${i} ${s}`}function Bc(i,o,e){let{left:t,right:n}=rs(i,o,e);return`M ${t} L ${i} ${n}`}function Vc(i,o,e,t,n,r){let{strokeWidth:s}=te(i,!1),l=fe.default.dist(o,t),a=Math.min(l/3,s*8),c=[];if(fe.default.dist(e,fe.default.toFixed(fe.default.med(o,t)))<1)c.push(`M ${o} L ${t}`),n&&c.push(Bc(o,t,a)),r&&c.push(Bc(t,o,a));else{let u=Zn(o,e,t),h=[u[0],u[1]],g=u[2],m=Ho(h,g,o,t);c.push(`M ${o} A ${g} ${g} 0 0 ${m>0?"1":"0"} ${t}`),n&&c.push(Ec(o,a,h,g,m<0)),r&&c.push(Ec(t,a,h,g,m>=0))}return c.join(" ")}function ai(i,o,e){if(fe.default.dist2(o,fe.default.med(i,e))<=4)return[i,e];let t=[],n=Zn(i,o,e),r=[n[0],n[1]],s=n[2],l=fe.default.angle(r,i),a=fe.default.angle(r,e);for(let c=0;c<20;c++){let p=c/19,u=Xn.Utils.lerpAngles(l,a,p);t.push(fe.default.nudgeAtAngle(r,u,s))}return t}function Hc(i,o,e){if(e===i||e===o)return!0;let t=Math.PI*2,n=(o-i+t)%t,r=(e-i+t)%t;return n<=Math.PI!=r>n}function Ho(i,o,e,t){let n=Xn.Utils.getSweep(i,e,t);return o*(2*Math.PI)*(n/(2*Math.PI))}var zc=H(require("react")),Xa=require("telva-core"),Fc=H(require("telva-vec"));var is=require("react/jsx-runtime");function gr({left:i,middle:o,right:e,stroke:t,strokeWidth:n}){return(0,is.jsxs)("g",{children:[(0,is.jsx)("path",{className:"tv-stroke-hitarea",d:`M ${i} L ${o} ${e}`}),(0,is.jsx)("path",{d:`M ${i} L ${o} ${e}`,fill:"none",stroke:t,strokeWidth:n,strokeLinecap:"round",strokeLinejoin:"round",pointerEvents:"none"})]})}var po=require("react/jsx-runtime"),Oc=zc.memo(function({id:o,style:e,start:t,bend:n,end:r,arrowBend:s,decorationStart:l,decorationEnd:a,isDraw:c,isDarkMode:p}){let u=Fc.default.dist(t,r);if(u<2)return null;let h=te(e,p),{strokeWidth:g}=h,m=1+g*1.618,f=Zn(t,n,r),v=[f[0],f[1]],b=f[2],T=Ho(v,b,t,r),y=Xa.Utils.rng(o),x=Mo[y()>0?"easeInOutSine":"easeInOutCubic"],P=c?Ac(o,e,t,r,l,a,v,b,T,x):Mc(t,r,f,s),{strokeDasharray:k,strokeDashoffset:D}=Xa.Utils.getPerfectDashProps(Math.abs(T),m,e.dash,2,!1),C=Math.min(u/3,g*8),E=l?os(t,C,v,b,T<0):null,M=a?os(r,C,v,b,T>=0):null;return(0,po.jsxs)(po.Fragment,{children:[(0,po.jsx)("path",{className:"tv-stroke-hitarea",d:P}),(0,po.jsx)("path",{d:P,fill:c?h.stroke:"none",stroke:h.stroke,strokeWidth:c?0:m,strokeDasharray:k,strokeDashoffset:D,strokeLinecap:"round",strokeLinejoin:"round",pointerEvents:"none"}),E&&(0,po.jsx)(gr,{left:E.left,middle:t,right:E.right,stroke:h.stroke,strokeWidth:m}),M&&(0,po.jsx)(gr,{left:M.left,middle:r,right:M.right,stroke:h.stroke,strokeWidth:m})]})});var $c=H(require("react")),Gc=require("telva-core"),ss=H(require("telva-vec"));var uo=require("react/jsx-runtime"),jc=$c.memo(function({id:o,style:e,start:t,end:n,decorationStart:r,decorationEnd:s,isDraw:l,isDarkMode:a}){let c=ss.default.dist(t,n);if(c<2)return null;let p=te(e,a),{strokeWidth:u}=p,h=1+u*1.618,g=l?Lc(o,e,t,n,r,s):"M"+ss.default.toFixed(t)+"L"+ss.default.toFixed(n),{strokeDasharray:m,strokeDashoffset:f}=Gc.Utils.getPerfectDashProps(c,u*1.618,e.dash,2,!1),v=Math.min(c/3,u*8),b=r?rs(t,n,v):null,T=s?rs(n,t,v):null;return(0,uo.jsxs)(uo.Fragment,{children:[(0,uo.jsx)("path",{className:"tv-stroke-hitarea",d:g}),(0,uo.jsx)("path",{d:g,fill:p.stroke,stroke:p.stroke,strokeWidth:l?h/2:h,strokeDasharray:m,strokeDashoffset:f,strokeLinecap:"round",strokeLinejoin:"round",pointerEvents:"stroke"}),b&&(0,uo.jsx)(gr,{left:b.left,middle:t,right:b.right,stroke:p.stroke,strokeWidth:h}),T&&(0,uo.jsx)(gr,{left:T.left,middle:n,right:T.right,stroke:p.stroke,strokeWidth:h})]})});var xt=require("react/jsx-runtime"),as=class extends ee{constructor(){super(...arguments);d(this,"type","arrow");d(this,"hideBounds",!0);d(this,"canEdit",!0);d(this,"pathCache",new WeakMap);d(this,"getShape",e=>{var t,n,r,s;return S({id:"id",type:"arrow",name:"Arrow",parentId:"page",childIndex:1,point:[0,0],rotation:0,bend:0,handles:{start:S({id:"start",index:0,point:[0,0],canBind:!0},(t=e.handles)==null?void 0:t.start),end:S({id:"end",index:1,point:[1,1],canBind:!0},(n=e.handles)==null?void 0:n.end),bend:S({id:"bend",index:2,point:[.5,.5]},(r=e.handles)==null?void 0:r.bend)},decorations:(s=e.decorations)!=null?s:{end:"arrow"},style:S(I(S({},$e),{isFilled:!1}),e.style),label:"",labelPoint:[.5,.5]},e)});d(this,"Component",ee.Component(({shape:e,isEditing:t,isGhost:n,meta:r,events:s,onShapeChange:l,onShapeBlur:a},c)=>{var V,X,se;let{id:p,label:u="",handles:{start:h,bend:g,end:m},decorations:f={},style:v}=e,b=(X=(V=u==null?void 0:u.trim())==null?void 0:V.length)!=null?X:0>0,T=Y.Vec.dist(g.point,Y.Vec.toFixed(Y.Vec.med(h.point,m.point)))<1,y=Bt(v),x=te(v,r.isDarkMode),P=b||t?lo(u,y):[0,0],k=this.getBounds(e),D=zo.useMemo(()=>{let{start:G,bend:ne,end:pe}=e.handles;if(T)return Y.Vec.dist(G.point,pe.point);let he=Zn(G.point,ne.point,pe.point),Me=he.slice(0,2),vt=he[2],rt=Ho(Me,vt,G.point,pe.point);return Math.abs(rt)},[e.handles]),C=Math.max(.5,Math.min(1,Math.max(D/(P[1]+128),D/(P[0]+128)))),E=zo.useMemo(()=>{let G=this.getBounds(e);return Y.Vec.sub(e.handles.bend.point,Y.Vec.toFixed([G.width/2,G.height/2]))},[e,C]),M=zo.useCallback(G=>{l==null||l({id:p,label:G})},[l]),L=T?jc:Oc;return(0,xt.jsxs)(Wg,I(S({ref:c},s),{children:[(0,xt.jsx)(ho,{font:y,text:u,color:(se=v.labelColor)!=null?se:x.stroke,background:v.labelBackground,textGradient:v.textGradient,offsetX:E[0],offsetY:E[1],scale:C,isEditing:t,onChange:M,onBlur:a}),(0,xt.jsxs)(Gt.SVGContainer,{id:e.id+"_svg",children:[(0,xt.jsx)("defs",{children:(0,xt.jsxs)("mask",{id:e.id+"_clip",children:[(0,xt.jsx)("rect",{x:-100,y:-100,width:k.width+200,height:k.height+200,fill:"white"}),(0,xt.jsx)("rect",{x:k.width/2-P[0]/2*C+E[0],y:k.height/2-P[1]/2*C+E[1],width:P[0]*C,height:P[1]*C,rx:4*C,ry:4*C,fill:"black",opacity:1})]})}),(0,xt.jsx)("g",{pointerEvents:"none",opacity:n?.3:x.opacity,mask:b||t?`url(#${e.id}_clip)`:"",children:(0,xt.jsx)(L,{id:p,style:v,start:h.point,end:m.point,bend:g.point,arrowBend:e.bend,decorationStart:f==null?void 0:f.start,decorationEnd:f==null?void 0:f.end,isDraw:v.dash==="draw",isDarkMode:r.isDarkMode})})]})]}))}));d(this,"Indicator",ee.Indicator(({shape:e,bounds:t})=>{var b,T;let{style:n,decorations:r,label:s,handles:{start:l,bend:a,end:c}}=e,p=(T=(b=s==null?void 0:s.trim())==null?void 0:b.length)!=null?T:0>0,u=Bt(n),h=p?lo(s,u):[0,0],g=Y.Vec.dist(a.point,Y.Vec.toFixed(Y.Vec.med(l.point,c.point)))<1,m=zo.useMemo(()=>{let{start:y,bend:x,end:P}=e.handles;if(g)return Y.Vec.dist(y.point,P.point);let k=Zn(y.point,x.point,P.point),D=k.slice(0,2),C=k[2],E=Ho(D,C,y.point,P.point);return Math.abs(E)},[e.handles]),f=Math.max(.5,Math.min(1,Math.max(m/(h[1]+128),m/(h[0]+128)))),v=zo.useMemo(()=>{let y=this.getBounds(e);return Y.Vec.sub(e.handles.bend.point,[y.width/2,y.height/2])},[e,f]);return(0,xt.jsxs)(xt.Fragment,{children:[p&&(0,xt.jsx)(kc,{id:e.id,scale:f,offset:v,bounds:t,labelSize:h}),(0,xt.jsx)("path",{d:Vc(n,l.point,a.point,c.point,r==null?void 0:r.start,r==null?void 0:r.end),mask:p?`url(#${e.id}_clip)`:""}),p&&(0,xt.jsx)("rect",{x:t.width/2-h[0]/2*f+v[0],y:t.height/2-h[1]/2*f+v[1],width:h[0]*f,height:h[1]*f,rx:4*f,ry:4*f,fill:"transparent"})]})}));d(this,"getBounds",e=>{let t=Gt.Utils.getFromCache(this.boundsCache,e,()=>{let{handles:{start:n,bend:r,end:s}}=e;return Gt.Utils.getBoundsFromPoints(ai(n.point,r.point,s.point))});return Gt.Utils.translateBounds(t,e.point)});d(this,"getRotatedBounds",e=>{let{handles:{start:t,bend:n,end:r}}=e,s=ai(t.point,n.point,r.point),{minX:l,minY:a,maxX:c,maxY:p}=Gt.Utils.getBoundsFromPoints(s);return e.rotation!==0&&(s=s.map(u=>Y.Vec.rotWith(u,[(l+c)/2,(a+p)/2],e.rotation||0))),Gt.Utils.translateBounds(Gt.Utils.getBoundsFromPoints(s),e.point)});d(this,"getCenter",e=>{let{start:t,end:n}=e.handles;return Y.Vec.add(e.point,Y.Vec.med(t.point,n.point))});d(this,"shouldRender",(e,t)=>t.decorations!==e.decorations||t.handles!==e.handles||t.style!==e.style||t.label!==e.label);d(this,"hitTestPoint",(e,t)=>{let{handles:{start:n,bend:r,end:s}}=e,l=Y.Vec.sub(t,e.point),a=ai(n.point,r.point,s.point);for(let c=1;c<a.length;c++)if(Y.Vec.distanceToLineSegment(a[c-1],a[c],l)<1)return!0;return!1});d(this,"hitTestLineSegment",(e,t,n)=>{let{handles:{start:r,bend:s,end:l}}=e,a=Y.Vec.sub(t,e.point),c=Y.Vec.sub(n,e.point),p=ai(r.point,s.point,l.point);for(let u=1;u<p.length;u++)if((0,fr.intersectLineSegmentLineSegment)(p[u-1],p[u],a,c).didIntersect)return!0;return!1});d(this,"hitTestBounds",(e,t)=>{let{start:n,end:r,bend:s}=e.handles,l=Y.Vec.add(e.point,n.point),a=Y.Vec.add(e.point,r.point);if(Gt.Utils.pointInBounds(l,t)||Gt.Utils.pointInBounds(a,t))return!0;if(Y.Vec.isEqual(Y.Vec.med(n.point,r.point),s.point))return(0,fr.intersectLineSegmentBounds)(l,a,t).length>0;{let[c,p,u]=Zn(n.point,s.point,r.point),h=Y.Vec.add(e.point,[c,p]);return(0,fr.intersectArcBounds)(h,u,l,a,t).length>0}});d(this,"transform",(e,t,{initialShape:n,scaleX:r,scaleY:s})=>{let l=this.getBounds(n),a=["start","end"],c=S({},n.handles);a.forEach(h=>{if(h==="bend")return;let[g,m]=c[h].point,f=g/l.width,v=m/l.height;c[h]=I(S({},c[h]),{point:[t.width*(r<0?1-f:f),t.height*(s<0?1-v:v)]})});let p=r>0&&s<0||r<0&&s>0?-n.bend:n.bend,u=si(c,p);return c.bend.point=u,{point:Y.Vec.toFixed([t.minX,t.minY]),handles:c,bend:p}});d(this,"onDoubleClickHandle",(e,t)=>{var n,r;switch(t){case"bend":return{bend:0,handles:I(S({},e.handles),{bend:I(S({},e.handles.bend),{point:si(e.handles,e.bend)})})};case"start":return{decorations:I(S({},e.decorations),{start:(n=e.decorations)!=null&&n.start?void 0:"arrow"})};case"end":return{decorations:I(S({},e.decorations),{end:(r=e.decorations)!=null&&r.end?void 0:"arrow"})}}return this});d(this,"onHandleChange",(e,t)=>{let n=Gt.Utils.deepMerge(e.handles,t),r=e.bend;if(n=Gt.Utils.deepMerge(n,{start:{point:Y.Vec.toFixed(n.start.point)},end:{point:Y.Vec.toFixed(n.end.point)}}),Y.Vec.isEqual(n.start.point,n.end.point))return;if("bend"in t){let{start:p,end:u,bend:h}=n,g=Y.Vec.dist(p.point,u.point),m=Y.Vec.med(p.point,u.point),f=Y.Vec.angle(p.point,u.point),v=Y.Vec.uni(Y.Vec.vec(p.point,u.point)),b=Y.Vec.add(m,Y.Vec.mul(Y.Vec.per(v),g)),T=Y.Vec.sub(m,Y.Vec.mul(Y.Vec.per(v),g)),y=Y.Vec.nearestPointOnLineSegment(b,T,h.point,!0),P=Y.Vec.dist(m,y)/(g/2);r=Gt.Utils.clamp(P,-.99,.99);let k=Y.Vec.angle(p.point,y);Y.Vec.isEqual(m,si(n,r))?r=0:Hc(f,f+Math.PI,k)&&(r*=-1)}let s={point:e.point,bend:r,handles:I(S({},n),{bend:I(S({},n.bend),{point:si(n,r)})})},l=e.point,a=this.getBounds(S({},s)),c=Y.Vec.sub([a.minX,a.minY],l);return Y.Vec.isEqual(c,[0,0])||(Object.values(s.handles).forEach(p=>{p.point=Y.Vec.toFixed(Y.Vec.sub(p.point,c))}),s.point=Y.Vec.toFixed(Y.Vec.add(s.point,c))),s});d(this,"getSvgElement",(e,t)=>{var s,l,a,c,p;let n=(s=document.getElementById(e.id+"_svg"))==null?void 0:s.cloneNode(!0);if(!n)return;if((c=(a=(l=e.label)==null?void 0:l.trim())==null?void 0:a.length)!=null?c:0>0){let u=e,h=document.createElementNS("http://www.w3.org/2000/svg","g"),g=Bt(e.style),m=lo(e.label,g),f=Vo(e.style.size,e.style.font)*((p=e.style.scale)!=null?p:1),v=Ln(e.style.font).slice(1,-1),b=co(u.label,f,v,"start",m[0],!1),T,{start:y,bend:x,end:P}=e.handles;if(Y.Vec.dist(x.point,Y.Vec.toFixed(Y.Vec.med(y.point,P.point)))<1)T=Y.Vec.dist(y.point,P.point);else{let V=Zn(y.point,x.point,P.point),X=V.slice(0,2),se=V[2],G=Ho(X,se,y.point,P.point);T=Math.abs(G)}let D=Math.max(.5,Math.min(1,Math.max(T/(m[1]+128),T/(m[0]+128)))),C=this.getBounds(e),E=Y.Vec.sub(e.handles.bend.point,[C.width/2,C.height/2]),M=C.width/2-m[0]/2*D+E[0],L=C.height/2-m[1]/2*D+E[1];return b.setAttribute("transform",`translate(${M}, ${L})`),b.setAttribute("fill",te(e.style,t).stroke),b.setAttribute("transform-origin","center center"),h.setAttribute("text-align","center"),h.setAttribute("text-anchor","middle"),h.appendChild(n),h.appendChild(b),h}return n})}},Wg=R("div",{width:"100%",height:"100%"});var an=H(require("react")),je=require("telva-core"),qn=require("telva-intersect"),sn=require("telva-vec");var Fo=require("react/jsx-runtime");function kt(i,o){var s,l,a;let e=o.gradient;if(!e||!o.isFilled||!e.stops||e.stops.length<2)return{defs:null,gradFill:null};let t=`grad-${i}`,n=e.stops.map((c,p)=>(0,Fo.jsx)("stop",{offset:`${c.position}%`,stopColor:c.color,stopOpacity:c.opacity},p));if(e.type==="linear"){let p=(((s=e.angle)!=null?s:90)-90)*Math.PI/180,u=Math.cos(p),h=Math.sin(p),g=50-u*50,m=50-h*50,f=50+u*50,v=50+h*50;return{defs:(0,Fo.jsx)("defs",{children:(0,Fo.jsx)("linearGradient",{id:t,x1:`${g}%`,y1:`${m}%`,x2:`${f}%`,y2:`${v}%`,gradientUnits:"objectBoundingBox",children:n})}),gradFill:`url(#${t})`}}if(e.type==="radial"){let c=((l=e.centerX)!=null?l:50)/100,p=((a=e.centerY)!=null?a:50)/100;return{defs:(0,Fo.jsx)("defs",{children:(0,Fo.jsx)("radialGradient",{id:t,cx:c,cy:p,r:"0.5",gradientUnits:"objectBoundingBox",children:n})}),gradFill:`url(#${t})`}}return{defs:(0,Fo.jsx)("defs",{children:(0,Fo.jsx)("linearGradient",{id:t,x1:"0%",y1:"0%",x2:"100%",y2:"100%",gradientUnits:"objectBoundingBox",children:n})}),gradFill:`url(#${t})`}}var li=require("perfect-freehand"),cs=require("telva-core"),ls=H(require("telva-vec"));var Ng={easing:i=>Math.sin(i*Math.PI/2),simulatePressure:!0},Ug={easing:i=>i*i,simulatePressure:!1};function Za(i){let o=te(i.style);return I(S({size:1+o.strokeWidth*1.5,thinning:.7,streamline:.35,smoothing:.5},i.points[1][2]===.5?Ng:Ug),{last:i.isComplete})}function Wc(i){return i.points.length<2?"":cs.Utils.getSvgPathFromStroke((0,li.getStrokePoints)(i.points,Za(i)).map(o=>o.point))}function Nc(i,o){return(0,li.getStrokePoints)(i.points,o)}function Uc(i){if(i.points.length<2)return"";let o=Za(i),e=Nc(i,o);return cs.Utils.getSvgPathFromStroke((0,li.getStrokeOutlinePoints)(e,o))}function qa(i){let{points:o}=i;if(o.length<2)return"M 0 0 L 0 0";let e=Za(i),t=Nc(i,e),n=o[o.length-1];return ls.default.isEqual(t[0].point,n)||t.push({point:n}),cs.Utils.getSvgPathFromStrokePoints(t)}function Kc(i){let{points:o}=i;if(o.length<2)return"M 0 0 L 0 0";let e=ds(o,3);if(e.length<2)return`M ${o[0][0]} ${o[0][1]} L ${o[o.length-1][0]} ${o[o.length-1][1]}`;let t=`M ${e[0][0].toFixed(2)} ${e[0][1].toFixed(2)}`;for(let n=1;n<e.length;n++)t+=` L ${e[n][0].toFixed(2)} ${e[n][1].toFixed(2)}`;return t}function _c(i){let{points:o}=i;if(o.length<3)return"";let e=ds(o,3);if(e.length<3)return"";let t=`M ${e[0][0].toFixed(2)} ${e[0][1].toFixed(2)}`;for(let n=1;n<e.length;n++)t+=` L ${e[n][0].toFixed(2)} ${e[n][1].toFixed(2)}`;return t+=" Z",t}function ds(i,o){if(i.length<=2)return i;let e=0,t=0,n=i[0],r=i[i.length-1];for(let s=1;s<i.length-1;s++){let l=Kg(i[s],n,r);l>e&&(e=l,t=s)}if(e>o){let s=ds(i.slice(0,t+1),o),l=ds(i.slice(t),o);return[...s.slice(0,-1),...l]}return[n,r]}function Kg(i,o,e){let t=e[0]-o[0],n=e[1]-o[1],r=Math.sqrt(t*t+n*n);if(r===0)return ls.default.dist(i,o);let s=((i[0]-o[0])*t+(i[1]-o[1])*n)/(r*r),l=[o[0]+s*t,o[1]+s*n];return ls.default.dist(i,l)}var nt=require("react/jsx-runtime"),ps=class extends ee{constructor(){super(...arguments);d(this,"type","draw");d(this,"pointsBoundsCache",new WeakMap([]));d(this,"shapeBoundsCache",new Map);d(this,"rotatedCache",new WeakMap([]));d(this,"pointCache",{});d(this,"canClone",!0);d(this,"getShape",e=>je.Utils.deepMerge({id:"id",type:"draw",name:"Draw",parentId:"page",childIndex:1,point:[0,0],rotation:0,style:$e,points:[],isComplete:!1},e));d(this,"Component",ee.Component(({shape:e,meta:t,isSelected:n,isGhost:r,events:s},l)=>{var et;let{points:a,style:c,isComplete:p}=e,u=t.canvasMode==="straight",h=t.nodeEditingId===e.id,g=_(),m=an.useRef(null),[f,v]=an.useState(null),b=an.useCallback((be,j)=>sn.Vec.sub(g.getPagePoint([be,j]),e.point),[g,e.point]),T=an.useCallback(be=>{if(be.length===0)return;let j=Math.min(...be.map(N=>N[0])),ae=Math.min(...be.map(N=>N[1])),le=be.map(([N,Q,re])=>[+(N-j).toFixed(2),+(Q-ae).toFixed(2),re!=null?re:.5]),Z=sn.Vec.add(e.point,[j,ae]);g.updateShapes({id:e.id,point:Z,points:le})},[g,e.id,e.point]),y=an.useMemo(()=>u?_c(e):Wc(e),[a,c.size,u,c.strokeWidthOverride]),x=an.useMemo(()=>u?Kc(e):c.dash==="draw"?Uc(e):qa(e),[a,c.size,c.dash,p,u,c.strokeWidthOverride]),P=te(c,t.isDarkMode),{stroke:k,fill:D,strokeWidth:C,opacity:E}=P,{defs:M,gradFill:L}=kt(e.id,c),V=L!=null?L:D,X=(et=g.zoom)!=null?et:1,se=an.useMemo(()=>{if(!h||a.length<1)return null;let be=5/X,j=3.5/X,ae=a.map((Z,N)=>(0,nt.jsx)("circle",{cx:Z[0],cy:Z[1],r:f===N?be*1.4:be,fill:f===N?"#0D99FF":"white",stroke:"#0D99FF",strokeWidth:1.5/X,style:{cursor:"move",pointerEvents:"all"},onPointerEnter:()=>v(N),onPointerLeave:()=>v(null),onPointerDown:Q=>{Q.stopPropagation(),Q.currentTarget.setPointerCapture(Q.pointerId),m.current={nodeIdx:N}},onPointerMove:Q=>{var Le;if(!m.current||m.current.nodeIdx!==N)return;Q.stopPropagation();let re=b(Q.clientX,Q.clientY),z=[...a];z[N]=[re[0],re[1],(Le=a[N][2])!=null?Le:.5],g.patchState({document:{pages:{[g.currentPageId]:{shapes:{[e.id]:{points:z}}}}}})},onPointerUp:Q=>{var Le;if(!m.current)return;Q.stopPropagation();let re=b(Q.clientX,Q.clientY),z=[...a];z[N]=[re[0],re[1],(Le=a[N][2])!=null?Le:.5],m.current=null,T(z)}},`n-${N}`)),le=a.slice(0,-1).map((Z,N)=>{let Q=a[N+1],re=(Z[0]+Q[0])/2,z=(Z[1]+Q[1])/2;return(0,nt.jsx)("circle",{cx:re,cy:z,r:j,fill:"white",stroke:"#0D99FF",strokeWidth:1/X,strokeDasharray:`${2/X} ${2/X}`,style:{cursor:"crosshair",pointerEvents:"all"},onPointerDown:Le=>{Le.stopPropagation();let Kt=[re,z,.5],Qt=[...a.slice(0,N+1),Kt,...a.slice(N+1)];g.updateShapes({id:e.id,points:Qt})}},`m-${N}`)});return(0,nt.jsxs)("g",{style:{pointerEvents:"none"},children:[a.slice(0,-1).map((Z,N)=>(0,nt.jsx)("line",{x1:Z[0],y1:Z[1],x2:a[N+1][0],y2:a[N+1][1],stroke:"#0D99FF",strokeWidth:1/X,strokeOpacity:.4,pointerEvents:"none"},`l-${N}`)),le,ae]})},[h,a,X,f,e.id,g.currentPageId]),G=this.getBounds(e);if(G.width<=C/2&&G.height<=C/2){let be=1+C;return(0,nt.jsxs)(je.SVGContainer,I(S({ref:l,id:e.id+"_svg"},s),{children:[M,(0,nt.jsx)("circle",{r:be,fill:k,stroke:k,pointerEvents:"all",opacity:r?.3:E})]}))}let pe=c.isFilled&&a.length>3&&sn.Vec.dist(a[0],a[a.length-1])<C*2,he=h?{overflow:"visible"}:void 0;if(!u&&e.style.dash==="draw")return(0,nt.jsxs)(je.SVGContainer,I(S({ref:l,id:e.id+"_svg"},s),{style:he,children:[M,(0,nt.jsxs)("g",{opacity:r?.3:E,children:[(0,nt.jsx)("path",{className:pe||n?"tv-fill-hitarea":"tv-stroke-hitarea",d:x}),pe&&(0,nt.jsx)("path",{d:y,stroke:"none",fill:V,strokeLinejoin:"round",strokeLinecap:"round",pointerEvents:"none"}),(0,nt.jsx)("path",{d:x,fill:k,stroke:k,strokeWidth:C/2,strokeLinejoin:"round",strokeLinecap:"round",pointerEvents:"none"})]}),se]}));let Me=u?"none":{["draw"]:"none",["solid"]:"none",["dotted"]:`0.1 ${C*4}`,["dashed"]:`${C*4} ${C*4}`}[c.dash],vt=u?"none":{["draw"]:"none",["solid"]:"none",["dotted"]:"0",["dashed"]:"0"}[c.dash],rt=1+C*1.5;return(0,nt.jsxs)(je.SVGContainer,I(S({ref:l,id:e.id+"_svg"},s),{style:he,children:[M,(0,nt.jsxs)("g",{opacity:r?.3:E,children:[(0,nt.jsx)("path",{className:pe&&n?"tv-fill-hitarea":"tv-stroke-hitarea",d:x}),(0,nt.jsx)("path",{d:x,fill:pe?V:"none",stroke:"none",strokeWidth:Math.min(4,C*2),strokeLinejoin:u?"miter":"round",strokeLinecap:u?"square":"round",pointerEvents:"none"}),(0,nt.jsx)("path",{d:x,fill:"none",stroke:k,strokeWidth:rt,strokeDasharray:Me,strokeDashoffset:vt,strokeLinejoin:u?"miter":"round",strokeLinecap:u?"square":"round",pointerEvents:"none"})]}),se]}))}));d(this,"Indicator",ee.Indicator(({shape:e})=>{let{points:t}=e,n=an.useMemo(()=>qa(e),[t,e.style.size,e.style.strokeWidthOverride]),r=this.getBounds(e);return r.width<4&&r.height<4?(0,nt.jsx)("circle",{x:r.width/2,y:r.height/2,r:1}):(0,nt.jsx)("path",{d:n})}));d(this,"transform",(e,t,{initialShape:n,scaleX:r,scaleY:s})=>{let l=je.Utils.getFromCache(this.boundsCache,n,()=>je.Utils.getBoundsFromPoints(n.points)),a=n.points.map(([u,h,g])=>[t.width*(r<0?1-u/l.width:u/l.width),t.height*(s<0?1-h/l.height:h/l.height),g]),c=je.Utils.getBoundsFromPoints(e.points),p=sn.Vec.sub([t.minX,t.minY],[c.minX,c.minY]);return{points:a,point:p}});d(this,"getBounds",e=>{let t=!this.pointsBoundsCache.has(e.points),n=this.pointCache[e.id]!==e.point;if(t){let r=je.Utils.getBoundsFromPoints(e.points);this.pointsBoundsCache.set(e.points,r),this.shapeBoundsCache.set(e.id,je.Utils.translateBounds(r,e.point)),this.pointCache[e.id]=e.point}else n&&!t&&(this.pointCache[e.id]=e.point,this.shapeBoundsCache.set(e.id,je.Utils.translateBounds(this.pointsBoundsCache.get(e.points),e.point)));return this.shapeBoundsCache.get(e.id)});d(this,"shouldRender",(e,t)=>t.points!==e.points||t.style!==e.style||t.isComplete!==e.isComplete);d(this,"hitTestPoint",(e,t)=>{let n=sn.Vec.sub(t,e.point);return je.Utils.pointInPolyline(n,e.points)});d(this,"hitTestLineSegment",(e,t,n)=>{let{points:r,point:s}=e,l=sn.Vec.sub(t,s),a=sn.Vec.sub(n,s),c=this.getBounds(e);if(c.width<8&&c.height<8)return sn.Vec.distanceToLineSegment(t,n,je.Utils.getBoundsCenter(c))<5;if((0,qn.intersectLineSegmentBounds)(l,a,c)){for(let p=1;p<r.length;p++)if((0,qn.intersectLineSegmentLineSegment)(r[p-1],r[p],l,a).didIntersect)return!0}return!1});d(this,"hitTestBounds",(e,t)=>{if(!e.rotation){let s=this.getBounds(e);return je.Utils.boundsContain(t,s)||(je.Utils.boundsContain(s,t)||(0,qn.intersectBoundsBounds)(s,t).length>0)&&(0,qn.intersectBoundsPolyline)(je.Utils.translateBounds(t,sn.Vec.neg(e.point)),e.points).length>0}let n=this.getRotatedBounds(e),r=je.Utils.getFromCache(this.rotatedCache,e,()=>{let s=je.Utils.getBoundsCenter(je.Utils.getBoundsFromPoints(e.points));return e.points.map(l=>sn.Vec.rotWith(l,s,e.rotation||0))});return je.Utils.boundsContain(t,n)||(0,qn.intersectBoundsPolyline)(je.Utils.translateBounds(t,sn.Vec.neg(e.point)),r).length>0})}};var ep=H(require("react")),ln=require("telva-core"),go=require("telva-intersect"),Ct=require("telva-vec");var Yc=H(require("react")),Ja=require("telva-core");var Sr=require("react/jsx-runtime"),Xc=Yc.memo(function({id:o,radius:e,style:t,isSelected:n,isDarkMode:r}){let{stroke:s,strokeWidth:l,fill:a}=te(t,r),{defs:c,gradFill:p}=kt(o,t),u=p!=null?p:a,h=1+l*1.618,g=Math.max(0,e[0]-h/2),m=Math.max(0,e[1]-h/2),f=Ja.Utils.perimeterOfEllipse(g,m),{strokeDasharray:v,strokeDashoffset:b}=Ja.Utils.getPerfectDashProps(f<64?f*2:f,l*1.618,t.dash,4);return(0,Sr.jsxs)(Sr.Fragment,{children:[c,(0,Sr.jsx)("ellipse",{className:t.isFilled||n?"tv-fill-hitarea":"tv-stroke-hitarea",cx:e[0],cy:e[1],rx:e[0],ry:e[1]}),(0,Sr.jsx)("ellipse",{cx:e[0],cy:e[1],rx:g,ry:m,fill:u,stroke:s,strokeWidth:h,strokeDasharray:v,strokeDashoffset:b,pointerEvents:"none",strokeLinecap:"round",strokeLinejoin:"round"})]})});var Jc=H(require("react"));var us=require("perfect-freehand"),Oo=require("telva-core");function Zc(i,o,e){let{strokeWidth:t}=te(e),n=Oo.Utils.rng(i),r=o[0]+n()*t*2,s=o[1]+n()*t*2,l=Oo.Utils.perimeterOfEllipse(r,s),a=[],c=Math.PI+Math.PI*n(),p=Math.abs(n()),u=Math.max(16,l/10);for(let h=0;h<u;h++){let g=Mo.easeInOutSine(h/(u+1)),m=c*2+Math.PI*(2+p)*g,f=Math.cos(m),v=Math.sin(m);a.push([r*f+o[0],s*v+o[1],g+.5+n()/2])}return(0,us.getStrokePoints)(a,{size:1+t*2,thinning:.618,end:{taper:l/8},start:{taper:l/12},streamline:0,simulatePressure:!0})}function qc(i,o,e){let{strokeWidth:t}=te(e),n=Oo.Utils.rng(i),r=o[0]+n()*t*2,s=o[1]+n()*t*2,l=Oo.Utils.perimeterOfEllipse(r,s);return Oo.Utils.getSvgPathFromStroke((0,us.getStrokeOutlinePoints)(Zc(i,o,e),{size:2+t*2,thinning:.618,end:{taper:l/8},start:{taper:l/12},streamline:0,simulatePressure:!0}))}function hs(i,o,e){return Oo.Utils.getSvgPathFromStrokePoints(Zc(i,o,e))}var $o=require("react/jsx-runtime"),Qc=Jc.memo(function({id:o,radius:e,style:t,isSelected:n,isDarkMode:r}){let{stroke:s,strokeWidth:l,fill:a}=te(t,r),{defs:c,gradFill:p}=kt(o,t),u=p!=null?p:a,h=qc(o,e,t);return(0,$o.jsxs)($o.Fragment,{children:[c,(0,$o.jsx)("ellipse",{className:t.isFilled||n?"tv-fill-hitarea":"tv-stroke-hitarea",cx:e[0],cy:e[1],rx:e[0],ry:e[1]}),t.isFilled&&(0,$o.jsx)("path",{d:hs(o,e,t),stroke:"none",fill:u,pointerEvents:"none"}),(0,$o.jsx)("path",{d:h,fill:s,stroke:s,strokeWidth:l,pointerEvents:"none",strokeLinecap:"round",strokeLinejoin:"round"})]})});var mo=require("react/jsx-runtime"),ms=class extends ee{constructor(){super(...arguments);d(this,"type","ellipse");d(this,"canBind",!0);d(this,"canClone",!0);d(this,"canEdit",!0);d(this,"getShape",e=>ln.Utils.deepMerge({id:"id",type:"ellipse",name:"Ellipse",parentId:"page",childIndex:1,point:[0,0],radius:[1,1],rotation:0,style:$e,label:"",labelPoint:[.5,.5]},e));d(this,"Component",ee.Component(({shape:e,isGhost:t,isSelected:n,isBinding:r,isEditing:s,meta:l,bounds:a,events:c,onShapeChange:p,onShapeBlur:u},h)=>{var L;let{id:g,radius:m,style:f,label:v="",labelPoint:b=pr}=e,T=Bt(e.style),y=te(f,l.isDarkMode),x=y.strokeWidth,P=1+x*1.618,k=Math.max(0,m[0]-P/2),D=Math.max(0,m[1]-P/2),E=!(l.canvasMode==="straight")&&f.dash==="draw"?Qc:Xc,M=ep.useCallback(V=>p==null?void 0:p({id:g,label:V}),[p]);return(0,mo.jsxs)(_g,I(S({ref:h},c),{children:[(0,mo.jsx)(ho,{isEditing:s,onChange:M,onBlur:u,font:T,text:v,color:(L=f.labelColor)!=null?L:y.stroke,background:f.labelBackground,textGradient:f.textGradient,offsetX:(b[0]-.5)*a.width,offsetY:(b[1]-.5)*a.height,width:Math.max(0,a.width*.707-16)}),(0,mo.jsxs)(ln.SVGContainer,{id:e.id+"_svg",opacity:t?.3:y.opacity,children:[r&&(0,mo.jsx)("ellipse",{className:"tv-binding-indicator",cx:a.width/2,cy:a.height/2,rx:Math.max(0,a.width/2),ry:Math.max(0,a.height/2),strokeWidth:y.strokeWidth}),(0,mo.jsx)(E,{id:g,style:f,radius:m,isSelected:n,isDarkMode:l.isDarkMode})]})]}))}));d(this,"Indicator",ee.Indicator(({shape:e,meta:t})=>{let{id:n,radius:r,style:s}=e,a=te(s).strokeWidth,c=1+a*1.618,p=Math.max(0,r[0]-c/2),u=Math.max(0,r[1]-c/2);return!((t==null?void 0:t.canvasMode)==="straight")&&s.dash==="draw"?(0,mo.jsx)("path",{d:hs(n,r,s)}):(0,mo.jsx)("ellipse",{cx:r[0],cy:r[1],rx:p,ry:u})}));d(this,"hitTestPoint",(e,t)=>ln.Utils.pointInBounds(t,this.getRotatedBounds(e))&&ln.Utils.pointInEllipse(t,this.getCenter(e),e.radius[0],e.radius[1],e.rotation||0));d(this,"hitTestLineSegment",(e,t,n)=>(0,go.intersectLineSegmentEllipse)(t,n,this.getCenter(e),e.radius[0],e.radius[1],e.rotation||0).didIntersect);d(this,"getBounds",e=>ln.Utils.getFromCache(this.boundsCache,e,()=>ln.Utils.getRotatedEllipseBounds(e.point[0],e.point[1],e.radius[0],e.radius[1],0)));d(this,"getRotatedBounds",e=>ln.Utils.getRotatedEllipseBounds(e.point[0],e.point[1],e.radius[0],e.radius[1],e.rotation));d(this,"hitTestBounds",(e,t)=>{let n=this.getBounds(e);return ln.Utils.boundsContained(n,t)||(0,go.intersectEllipseBounds)(this.getCenter(e),e.radius[0],e.radius[1],e.rotation||0,t).length>0});d(this,"shouldRender",(e,t)=>t.radius!==e.radius||t.style!==e.style||t.label!==e.label);d(this,"getCenter",e=>Ct.Vec.add(e.point,e.radius));d(this,"getBindingPoint",(e,t,n,r,s,l)=>{{let a=this.getExpandedBounds(e),c=this.getCenter(e),p,u;if(!ln.Utils.pointInEllipse(n,c,e.radius[0]+this.bindingDistance,e.radius[1]+this.bindingDistance))return;if(l)Ct.Vec.dist(n,this.getCenter(e))<12?p=[.5,.5]:p=Ct.Vec.divV(Ct.Vec.sub(n,[a.minX,a.minY]),[a.width,a.height]),u=0;else{let h=(0,go.intersectRayEllipse)(r,s,c,e.radius[0],e.radius[1],e.rotation||0).points.sort((m,f)=>Ct.Vec.dist(m,r)-Ct.Vec.dist(f,r))[0];if(h||(h=(0,go.intersectLineSegmentEllipse)(n,c,c,e.radius[0],e.radius[1],e.rotation||0).points.sort((m,f)=>Ct.Vec.dist(m,n)-Ct.Vec.dist(f,n))[0]),!h)return;let g=Ct.Vec.med(n,h);if(Ct.Vec.distanceToLineSegment(n,g,this.getCenter(e))<12?p=[.5,.5]:p=Ct.Vec.divV(Ct.Vec.sub(g,[a.minX,a.minY]),[a.width,a.height]),ln.Utils.pointInEllipse(n,c,e.radius[0],e.radius[1],e.rotation||0))u=this.bindingDistance/2;else{let m=(0,go.intersectLineSegmentEllipse)(n,c,c,e.radius[0],e.radius[1],e.rotation||0).points[0];if(!m)return;u=Math.max(this.bindingDistance/2,Ct.Vec.dist(n,m))}}return{point:p,distance:u}}});d(this,"transform",(e,t,{scaleX:n,scaleY:r,initialShape:s})=>{let{rotation:l=0}=s;return{point:[t.minX,t.minY],radius:[t.width/2,t.height/2],rotation:n<0&&r>=0||r<0&&n>=0?-(l||0):l||0}});d(this,"transformSingle",(e,t)=>({point:Ct.Vec.toFixed([t.minX,t.minY]),radius:Ct.Vec.div([t.width,t.height],2)}))}},_g=R("div",{width:"100%",height:"100%"});var fs=require("telva-core");var Jn=require("react/jsx-runtime"),gs=class extends ee{constructor(){super(...arguments);d(this,"type","group");d(this,"canBind",!0);d(this,"getShape",e=>fs.Utils.deepMerge({id:"id",type:"group",name:"Group",parentId:"page",childIndex:1,point:[0,0],size:[100,100],rotation:0,children:[],style:$e},e));d(this,"Component",ee.Component(({shape:e,isBinding:t,isGhost:n,isHovered:r,isSelected:s,events:l},a)=>{let{id:c,size:p}=e,u=2,h=Math.max(0,p[0]-u/2),g=Math.max(0,p[1]-u/2),f=[[[u/2,u/2],[h,u/2],h-u/2],[[h,u/2],[h,g],g-u/2],[[h,g],[u/2,g],h-u/2],[[u/2,g],[u/2,u/2],g-u/2]].map(([v,b],T)=>(0,Jn.jsx)("line",{x1:v[0],y1:v[1],x2:b[0],y2:b[1]},c+"_"+T));return(0,Jn.jsxs)(fs.SVGContainer,I(S({ref:a},l),{children:[t&&(0,Jn.jsx)("rect",{className:"tv-binding-indicator",strokeWidth:this.bindingDistance}),(0,Jn.jsxs)("g",{opacity:n?.3:1,children:[(0,Jn.jsx)("rect",{x:0,y:0,width:p[0],height:p[1],fill:"transparent",pointerEvents:"all"}),(0,Jn.jsx)(tp,{stroke:"black",opacity:r||s?1:0,strokeLinecap:"round",pointerEvents:"stroke",children:f})]})]}))}));d(this,"Indicator",ee.Indicator(({shape:e})=>{let{id:t,size:n}=e,r=2,s=Math.max(0,n[0]-r/2),l=Math.max(0,n[1]-r/2),c=[[[r/2,r/2],[s,r/2],s-r/2],[[s,r/2],[s,l],l-r/2],[[s,l],[r/2,l],s-r/2],[[r/2,l],[r/2,r/2],l-r/2]].map(([p,u],h)=>(0,Jn.jsx)("line",{x1:p[0],y1:p[1],x2:u[0],y2:u[1]},t+"_"+h));return(0,Jn.jsx)(tp,{strokeLinecap:"round",pointerEvents:"stroke",children:c})}));d(this,"getBounds",e=>Ot(e,this.boundsCache));d(this,"shouldRender",(e,t)=>t.size!==e.size||t.style!==e.style)}},tp=R("g",{strokeWidth:"calc(1.5px * var(--tv-scale))",strokeDasharray:"calc(1px * var(--tv-scale)), calc(3px * var(--tv-scale))"});var Qa=require("@stitches/react"),di=H(require("react")),ys=require("telva-core");var yr=require("react/jsx-runtime"),Ss=class extends ee{constructor(){super(...arguments);d(this,"type","image");d(this,"canBind",!0);d(this,"canClone",!0);d(this,"isAspectRatioLocked",!0);d(this,"showCloneHandles",!1);d(this,"getShape",e=>ys.Utils.deepMerge({id:"image",type:"image",name:"Image",parentId:"page",childIndex:1,point:[0,0],size:[1,1],rotation:0,style:I(S({},$e),{isFilled:!0}),assetId:"assetId"},e));d(this,"Component",ee.Component(({shape:e,asset:t={src:""},isBinding:n,isGhost:r,meta:s,events:l,onShapeChange:a},c)=>{let{size:p,style:u}=e,{bindingDistance:h}=this,g=di.useRef(null),m=di.useRef(null);return di.useLayoutEffect(()=>{let f=m.current;if(!f)return;let[v,b]=p;f.style.width=`${v}px`,f.style.height=`${b}px`},[p]),(0,yr.jsxs)(ys.HTMLContainer,I(S({ref:c},l),{children:[n&&(0,yr.jsx)("div",{className:"tv-binding-indicator",style:{position:"absolute",top:`calc(${-h}px * var(--tv-zoom))`,left:`calc(${-h}px * var(--tv-zoom))`,width:`calc(100% + ${h*2}px * var(--tv-zoom))`,height:`calc(100% + ${h*2}px * var(--tv-zoom))`,backgroundColor:"var(--tv-selectFill)"}}),(0,yr.jsx)(Yg,{ref:m,isDarkMode:s.isDarkMode,isFilled:u.isFilled,isGhost:r,children:(0,yr.jsx)(Xg,{id:e.id+"_image",ref:g,src:t.src,alt:"tl_image_asset",draggable:!1})})]}))}));d(this,"Indicator",ee.Indicator(({shape:e})=>{let{size:[t,n]}=e;return(0,yr.jsx)("rect",{x:0,y:0,rx:2,ry:2,width:Math.max(1,t),height:Math.max(1,n)})}));d(this,"getBounds",e=>Ot(e,this.boundsCache));d(this,"shouldRender",(e,t)=>t.size!==e.size||t.style!==e.style);d(this,"transform",Vn);d(this,"transformSingle",Hn);d(this,"getSvgElement",e=>{let t=this.getBounds(e),n=document.createElementNS("http://www.w3.org/2000/svg","image");return n.setAttribute("width",`${t.width}`),n.setAttribute("height",`${t.height}`),n.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink"),n})}},Yg=(0,Qa.styled)("div",{pointerEvents:"all",position:"relative",fontFamily:"sans-serif",fontSize:"2em",height:"100%",width:"100%",borderRadius:"3px",perspective:"800px",overflow:"hidden",p:{userSelect:"none"},img:{userSelect:"none"},variants:{isGhost:{false:{opacity:1},true:{transition:"opacity .2s",opacity:.3}},isFilled:{true:{},false:{}},isDarkMode:{true:{},false:{}}},compoundVariants:[{isFilled:!0,isDarkMode:!0,css:{boxShadow:"2px 3px 12px -2px rgba(0,0,0,.3), 1px 1px 4px rgba(0,0,0,.3), 1px 1px 2px rgba(0,0,0,.3)"}},{isFilled:!0,isDarkMode:!1,css:{boxShadow:"2px 3px 12px -2px rgba(0,0,0,.2), 1px 1px 4px rgba(0,0,0,.16), 1px 1px 2px rgba(0,0,0,.16)"}}]}),Xg=(0,Qa.styled)("img",{position:"absolute",top:0,left:0,width:"100%",height:"100%",maxWidth:"100%",minWidth:"100%",pointerEvents:"none",objectFit:"cover",userSelect:"none",borderRadius:2});var vn=H(require("react")),gt=require("telva-core"),Ts=require("telva-intersect"),Mt=require("telva-vec");var op=require("telva-core"),Zg=24;function qg(i,o,e,t,n){let r=1-n,s=r*r,l=n*n,a=s*r,c=3*s*n,p=3*r*l,u=l*n;return[a*i[0]+c*o[0]+p*e[0]+u*t[0],a*i[1]+c*o[1]+p*e[1]+u*t[1]]}function np(i,o,e,t){var a,c;let n=(a=o.cp2)!=null?a:o.point,r=(c=e.cp1)!=null?c:e.point;if(!(o.cp2!=null||e.cp1!=null)){i.push(e.point);return}let l=Math.max(4,t);for(let p=1;p<=l;p++){let u=p/l;i.push(qg(o.point,n,r,e.point,u))}}function ci(i,o,e=Zg){if(i.length===0)return[];if(i.length===1)return[i[0].point];let t=[i[0].point];for(let n=1;n<i.length;n++)np(t,i[n-1],i[n],e);return o&&i.length>2&&np(t,i[i.length-1],i[0],e),t}function el(i,o){var t,n,r,s;if(i.length===0)return"";if(i.length===1){let{point:l}=i[0];return`M ${l[0]} ${l[1]}`}let e=`M ${i[0].point[0].toFixed(2)} ${i[0].point[1].toFixed(2)}`;for(let l=1;l<i.length;l++){let a=i[l-1],c=i[l],p=(t=a.cp2)!=null?t:a.point,u=(n=c.cp1)!=null?n:c.point;a.cp2!=null||c.cp1!=null?e+=` C ${p[0].toFixed(2)} ${p[1].toFixed(2)} ${u[0].toFixed(2)} ${u[1].toFixed(2)} ${c.point[0].toFixed(2)} ${c.point[1].toFixed(2)}`:e+=` L ${c.point[0].toFixed(2)} ${c.point[1].toFixed(2)}`}if(o&&i.length>2){let l=i[i.length-1],a=i[0],c=(r=l.cp2)!=null?r:l.point,p=(s=a.cp1)!=null?s:a.point;(l.cp2!=null||a.cp1!=null)&&(e+=` C ${c[0].toFixed(2)} ${c[1].toFixed(2)} ${p[0].toFixed(2)} ${p[1].toFixed(2)} ${a.point[0].toFixed(2)} ${a.point[1].toFixed(2)}`),e+=" Z"}return e}function bs(i,o=!1){if(i.length===0)return{minX:0,minY:0,maxX:1,maxY:1,width:1,height:1};let e=ci(i,o);return e.length===0?{minX:0,minY:0,maxX:1,maxY:1,width:1,height:1}:op.Utils.getBoundsFromPoints(e)}function tl(i,o=!1){if(i.length===0)return{segments:i,offset:[0,0]};let e=bs(i,o),t=[e.minX,e.minY];return{segments:i.map(r=>({point:[r.point[0]-t[0],r.point[1]-t[1]],cp1:r.cp1?[r.cp1[0]-t[0],r.cp1[1]-t[1]]:void 0,cp2:r.cp2?[r.cp2[0]-t[0],r.cp2[1]-t[1]]:void 0})),offset:t}}function pi(i,o){return[2*i[0]-o[0],2*i[1]-o[1]]}var qe=require("react/jsx-runtime"),vs=class extends ee{constructor(){super(...arguments);d(this,"type","pen");d(this,"canClone",!0);d(this,"pointsBoundsCache",new WeakMap);d(this,"shapeBoundsCache",new Map);d(this,"pointCache",{});d(this,"getShape",e=>gt.Utils.deepMerge({id:"id",type:"pen",name:"Pen",parentId:"page",childIndex:1,point:[0,0],rotation:0,style:$e,segments:[],isClosed:!1,isComplete:!1,previewPoint:void 0,isPlacingHandle:!1},e));d(this,"Component",ee.Component(({shape:e,meta:t,isSelected:n,isGhost:r,events:s},l)=>{var rt,et,be;let{segments:a,style:c,isClosed:p,isComplete:u,previewPoint:h,isPlacingHandle:g}=e,m=t.nodeEditingId===e.id,f=_(),v=vn.useRef(null),[b,T]=vn.useState(null),y=vn.useCallback((j,ae)=>Mt.Vec.sub(f.getPagePoint([j,ae]),e.point),[f,e.point]),x=vn.useCallback(j=>{f.patchState({document:{pages:{[f.currentPageId]:{shapes:{[e.id]:{segments:j}}}}}})},[f,e.id]),P=vn.useCallback(j=>{f.updateShapes({id:e.id,segments:j})},[f,e.id]),k=te(c,t.isDarkMode),{stroke:D,fill:C,strokeWidth:E,opacity:M}=k,{defs:L,gradFill:V}=kt(e.id,c),X=V!=null?V:C,se=vn.useMemo(()=>el(a,p),[a,p]),G=(rt=f.zoom)!=null?rt:1,ne=1+E*1.5,pe=(et={["draw"]:"none",["solid"]:"none",["dotted"]:`0.1 ${E*4}`,["dashed"]:`${E*4} ${E*4}`}[c.dash])!=null?et:"none",he=(be={["draw"]:"0",["solid"]:"0",["dotted"]:"0",["dashed"]:"0"}[c.dash])!=null?be:"0",Me=vn.useMemo(()=>{if(!m||a.length===0)return null;let j=5/G,ae=3.5/G,le=1/G,Z=[],N=[],Q=[];return a.forEach((re,z)=>{let[Le,Kt]=re.point;if(re.cp1){let[ve,tt]=re.cp1,it=`cp1-${z}`;Q.push((0,qe.jsx)("line",{x1:Le,y1:Kt,x2:ve,y2:tt,stroke:"#0D99FF",strokeWidth:le,strokeOpacity:.6,pointerEvents:"none"},`lcp1-${z}`)),N.push((0,qe.jsx)("circle",{cx:ve,cy:tt,r:b===it?ae*1.4:ae,fill:b===it?"#0D99FF":"white",stroke:"#0D99FF",strokeWidth:le,style:{cursor:"move"},onPointerEnter:()=>T(it),onPointerLeave:()=>T(null),onPointerDown:ue=>{ue.stopPropagation(),ue.currentTarget.setPointerCapture(ue.pointerId),v.current={kind:"cp1",idx:z}},onPointerMove:ue=>{if(!v.current||v.current.kind!=="cp1"||v.current.idx!==z)return;ue.stopPropagation();let xe=y(ue.clientX,ue.clientY),Pe=[...a];Pe[z]=I(S({},Pe[z]),{cp1:xe}),x(Pe)},onPointerUp:ue=>{if(!v.current)return;ue.stopPropagation();let xe=y(ue.clientX,ue.clientY),Pe=[...a];Pe[z]=I(S({},Pe[z]),{cp1:xe}),v.current=null,P(Pe)}},it))}if(re.cp2){let[ve,tt]=re.cp2,it=`cp2-${z}`;Q.push((0,qe.jsx)("line",{x1:Le,y1:Kt,x2:ve,y2:tt,stroke:"#0D99FF",strokeWidth:le,strokeOpacity:.6,pointerEvents:"none"},`lcp2-${z}`)),N.push((0,qe.jsx)("circle",{cx:ve,cy:tt,r:b===it?ae*1.4:ae,fill:b===it?"#0D99FF":"white",stroke:"#0D99FF",strokeWidth:le,style:{cursor:"move"},onPointerEnter:()=>T(it),onPointerLeave:()=>T(null),onPointerDown:ue=>{ue.stopPropagation(),ue.currentTarget.setPointerCapture(ue.pointerId),v.current={kind:"cp2",idx:z}},onPointerMove:ue=>{if(!v.current||v.current.kind!=="cp2"||v.current.idx!==z)return;ue.stopPropagation();let xe=y(ue.clientX,ue.clientY),Pe=[...a];Pe[z]=I(S({},Pe[z]),{cp2:xe}),z+1<Pe.length&&(Pe[z+1]=I(S({},Pe[z+1]),{cp1:pi(Pe[z].point,xe)})),x(Pe)},onPointerUp:ue=>{if(!v.current)return;ue.stopPropagation();let xe=y(ue.clientX,ue.clientY),Pe=[...a];Pe[z]=I(S({},Pe[z]),{cp2:xe}),z+1<Pe.length&&(Pe[z+1]=I(S({},Pe[z+1]),{cp1:pi(Pe[z].point,xe)})),v.current=null,P(Pe)}},it))}let Qt=`node-${z}`;if(Z.push((0,qe.jsx)("circle",{cx:Le,cy:Kt,r:b===Qt?j*1.4:j,fill:b===Qt?"#0D99FF":"white",stroke:"#0D99FF",strokeWidth:1.5/G,style:{cursor:"move"},onPointerEnter:()=>T(Qt),onPointerLeave:()=>T(null),onPointerDown:ve=>{ve.stopPropagation(),ve.currentTarget.setPointerCapture(ve.pointerId),v.current={kind:"node",idx:z}},onPointerMove:ve=>{if(!v.current||v.current.kind!=="node"||v.current.idx!==z)return;ve.stopPropagation();let tt=y(ve.clientX,ve.clientY),it=a[z].point,ue=Mt.Vec.sub(tt,it),xe=[...a];xe[z]=I(S({},xe[z]),{point:tt,cp1:xe[z].cp1?Mt.Vec.add(xe[z].cp1,ue):void 0,cp2:xe[z].cp2?Mt.Vec.add(xe[z].cp2,ue):void 0}),x(xe)},onPointerUp:ve=>{if(!v.current)return;ve.stopPropagation();let tt=y(ve.clientX,ve.clientY),it=a[z].point,ue=Mt.Vec.sub(tt,it),xe=[...a];xe[z]=I(S({},xe[z]),{point:tt,cp1:xe[z].cp1?Mt.Vec.add(xe[z].cp1,ue):void 0,cp2:xe[z].cp2?Mt.Vec.add(xe[z].cp2,ue):void 0}),v.current=null,P(xe)}},Qt)),z<a.length-1){let ve=a[z+1],tt=(Le+ve.point[0])/2,it=(Kt+ve.point[1])/2;Z.push((0,qe.jsx)("circle",{cx:tt,cy:it,r:ae,fill:"white",stroke:"#0D99FF",strokeWidth:le,strokeDasharray:`${2/G} ${2/G}`,style:{cursor:"crosshair"},onPointerDown:ue=>{ue.stopPropagation();let xe={point:[tt,it]},Pe=[...a.slice(0,z+1),xe,...a.slice(z+1)];f.updateShapes({id:e.id,segments:Pe})}},`mid-${z}`))}}),(0,qe.jsxs)("g",{children:[Q,N,Z]})},[m,a,G,b,e.id,y,x,P,f]);if(a.length===0)return(0,qe.jsx)(gt.SVGContainer,I(S({ref:l,id:e.id+"_svg"},s),{children:(0,qe.jsx)("circle",{r:4,fill:D,stroke:D,pointerEvents:"all"})}));let vt=m||!u?{overflow:"visible"}:void 0;return(0,qe.jsxs)(gt.SVGContainer,I(S({ref:l,id:e.id+"_svg"},s),{style:vt,children:[L,(0,qe.jsxs)("g",{opacity:r?.3:M,children:[(0,qe.jsx)("path",{className:c.isFilled&&n?"tv-fill-hitarea":"tv-stroke-hitarea",d:se}),c.isFilled&&p&&(0,qe.jsx)("path",{d:se,fill:X,stroke:"none",pointerEvents:"none"}),(0,qe.jsx)("path",{d:se,fill:"none",stroke:D,strokeWidth:ne,strokeDasharray:pe,strokeDashoffset:he,strokeLinejoin:"round",strokeLinecap:"round",pointerEvents:"none"}),!u&&h&&a.length>0&&(()=>{let j=a[a.length-1],ae;if(g&&j.cp2){let[le,Z]=j.point,[N,Q]=j.cp2,[re,z]=h;ae=`M ${le} ${Z} C ${N} ${Q} ${re} ${z} ${re} ${z}`}else{let[le,Z]=j.point,[N,Q]=h;ae=`M ${le} ${Z} L ${N} ${Q}`}return(0,qe.jsx)("path",{d:ae,fill:"none",stroke:D,strokeWidth:ne*.8,strokeDasharray:`${ne*4} ${ne*3}`,strokeLinecap:"round",opacity:.55,pointerEvents:"none"})})(),!u&&h&&a.length>=2&&(()=>{let j=a[0],ae=Math.hypot(h[0]-j.point[0],h[1]-j.point[1]),le=12/G;return ae<=le?(0,qe.jsx)("circle",{cx:j.point[0],cy:j.point[1],r:8/G,fill:"none",stroke:"#0D99FF",strokeWidth:1.5/G,opacity:.8,pointerEvents:"none"}):null})(),!u&&a.length>0&&(0,qe.jsx)("circle",{cx:a[a.length-1].point[0],cy:a[a.length-1].point[1],r:4/G,fill:D,stroke:"none",pointerEvents:"none"})]}),Me]}))}));d(this,"Indicator",ee.Indicator(({shape:e})=>{let{segments:t,isClosed:n}=e,r=el(t,n);return r?(0,qe.jsx)("path",{d:r}):(0,qe.jsx)("circle",{r:1})}));d(this,"getBounds",e=>{let t=!this.pointsBoundsCache.has(e.segments),n=this.pointCache[e.id]!==e.point;if(t){let r=e.segments.length>0?bs(e.segments,e.isClosed):{minX:0,minY:0,maxX:1,maxY:1,width:1,height:1},s=I(S({},r),{width:Math.max(r.width,1),height:Math.max(r.height,1)});this.pointsBoundsCache.set(e.segments,s),this.shapeBoundsCache.set(e.id,gt.Utils.translateBounds(s,e.point)),this.pointCache[e.id]=e.point}else n&&(this.pointCache[e.id]=e.point,this.shapeBoundsCache.set(e.id,gt.Utils.translateBounds(this.pointsBoundsCache.get(e.segments),e.point)));return this.shapeBoundsCache.get(e.id)});d(this,"shouldRender",(e,t)=>t.segments!==e.segments||t.style!==e.style||t.isClosed!==e.isClosed||t.isComplete!==e.isComplete||t.previewPoint!==e.previewPoint||t.isPlacingHandle!==e.isPlacingHandle);d(this,"transform",(e,t,{initialShape:n,scaleX:r,scaleY:s})=>{let l=this.getBounds(n),a=Math.max(l.width,1),c=Math.max(l.height,1),p=m=>({point:[t.width*(r<0?1-(m.point[0]-l.minX)/a:(m.point[0]-l.minX)/a),t.height*(s<0?1-(m.point[1]-l.minY)/c:(m.point[1]-l.minY)/c)],cp1:m.cp1?[t.width*(r<0?1-(m.cp1[0]-l.minX)/a:(m.cp1[0]-l.minX)/a),t.height*(s<0?1-(m.cp1[1]-l.minY)/c:(m.cp1[1]-l.minY)/c)]:void 0,cp2:m.cp2?[t.width*(r<0?1-(m.cp2[0]-l.minX)/a:(m.cp2[0]-l.minX)/a),t.height*(s<0?1-(m.cp2[1]-l.minY)/c:(m.cp2[1]-l.minY)/c)]:void 0}),u=n.segments.map(p),h=bs(u,e.isClosed),g=Mt.Vec.sub([t.minX,t.minY],[h.minX,h.minY]);return{segments:u,point:g}});d(this,"hitTestPoint",(e,t)=>{let n=ci(e.segments,e.isClosed);if(n.length===0)return!1;let r=Mt.Vec.sub(t,e.point),s=8;return e.isClosed&&e.style.isFilled&&gt.Utils.pointInPolygon(r,n)?!0:n.length===1?Mt.Vec.dist(r,n[0])<=s:gt.Utils.pointInPolyline(r,n,s)});d(this,"hitTestLineSegment",(e,t,n)=>{let r=ci(e.segments,e.isClosed);if(r.length===0)return!1;let s=Mt.Vec.sub(t,e.point),l=Mt.Vec.sub(n,e.point),a=8;if(r.length===1)return Mt.Vec.distanceToLineSegment(s,l,r[0])<=a;for(let c=1;c<r.length;c++)if((0,Ts.intersectLineSegmentLineSegment)(r[c-1],r[c],s,l).didIntersect)return!0;return e.isClosed&&e.style.isFilled&&(gt.Utils.pointInPolygon(s,r)||gt.Utils.pointInPolygon(l,r))?!0:gt.Utils.pointInPolyline(s,r,a)||gt.Utils.pointInPolyline(l,r,a)});d(this,"hitTestBounds",(e,t)=>{let n=this.getBounds(e);if(gt.Utils.boundsContain(t,n))return!0;let r=ci(e.segments,e.isClosed);if(r.length===0)return!1;let s=gt.Utils.translateBounds(t,Mt.Vec.neg(e.point));if(r.some(l=>gt.Utils.pointInBounds(l,s))||(0,Ts.intersectBoundsPolyline)(s,r).length>0)return!0;if(e.isClosed&&e.style.isFilled){let l=[s.minX+s.width/2,s.minY+s.height/2];if(gt.Utils.pointInPolygon(l,r))return!0}return!1})}};var br=H(require("react")),ks=require("telva-core");var Go=require("react/jsx-runtime"),xs=class extends ee{constructor(){super(...arguments);d(this,"type","reactComponent");d(this,"canBind",!1);d(this,"canClone",!0);d(this,"isAspectRatioLocked",!1);d(this,"showCloneHandles",!1);d(this,"getShape",e=>ks.Utils.deepMerge({id:"reactComponent",type:"reactComponent",name:"React Component",parentId:"page",childIndex:1,point:[0,0],size:[400,300],rotation:0,style:I(S({},$e),{isFilled:!0}),componentId:""},e));d(this,"Component",ee.Component(({shape:e,isGhost:t,events:n},r)=>{let{size:s,componentId:l}=e,a=br.useRef(null);return br.useLayoutEffect(()=>{let c=a.current;!c||(c.style.width=`${s[0]}px`,c.style.height=`${s[1]}px`)},[s]),(0,Go.jsx)(ks.HTMLContainer,I(S({ref:r},n),{children:(0,Go.jsx)("div",{id:`${e.id}_react_component`,ref:a,style:{width:`${s[0]}px`,height:`${s[1]}px`,position:"relative",overflow:"hidden",borderRadius:"4px",opacity:t?.3:1,pointerEvents:"all"},children:(0,Go.jsx)(Jg,{componentId:l,width:s[0],height:s[1]})})}))}));d(this,"Indicator",ee.Indicator(({shape:e})=>{let{size:[t,n]}=e;return(0,Go.jsx)("rect",{x:0,y:0,rx:4,ry:4,width:Math.max(1,t),height:Math.max(1,n),fill:"none",stroke:"var(--tv-selected)"})}));d(this,"getBounds",e=>Ot(e,this.boundsCache));d(this,"shouldRender",(e,t)=>t.size!==e.size||t.style!==e.style||t.componentId!==e.componentId);d(this,"transform",Vn);d(this,"transformSingle",Hn);d(this,"getSvgElement",(e,t)=>F(this,null,function*(){let n=document.getElementById(`${e.id}_react_component`);if(!n)return;let[r,s]=e.size;try{let l=n.querySelector("canvas"),a="";if(l&&(a=l.toDataURL("image/png")),!a||a==="data:,"){let p=document.createElement("div");p.style.cssText=["position:fixed","top:0","left:0",`width:${r}px`,`height:${s}px`,"overflow:hidden","border-radius:4px","background:#ffffff","z-index:-9999","pointer-events:none"].join(";"),p.innerHTML=n.innerHTML,document.body.appendChild(p);try{let u=(yield import("html2canvas")).default;a=(yield u(p,{width:r,height:s,useCORS:!0,backgroundColor:"#ffffff",logging:!1})).toDataURL("image/png")}finally{document.body.removeChild(p)}}if(!a||a==="data:,")return;let c=document.createElementNS("http://www.w3.org/2000/svg","image");return c.setAttribute("width",`${r}`),c.setAttribute("height",`${s}`),c.setAttribute("href",a),c}catch(l){console.warn("Failed to snapshot React Component for SVG export",l)}}))}};function Jg({componentId:i,width:o,height:e}){let t=Xi(),n=br.useMemo(()=>t.find(s=>s.id===i),[t,i]);if(!n)return(0,Go.jsxs)("div",{style:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",background:"linear-gradient(135deg, #667eea 0%, #764ba2 100%)",color:"white",fontSize:14,fontFamily:"DM Sans, sans-serif",borderRadius:4},children:['Component "',i,'" not found']});let r=n.component;return(0,Go.jsx)(r,{})}var fo=H(require("react")),Ps=require("telva-core"),pp=H(require("telva-vec"));var Qg=require("react/jsx-runtime");function rp({strokeWidth:i,size:o}){return(0,Qg.jsx)("rect",{className:"tv-binding-indicator",x:i,y:i,width:Math.max(0,o[0]-i/2),height:Math.max(0,o[1]-i/2),strokeWidth:16*2})}var ip=H(require("react")),nl=require("telva-core");var Qn=require("react/jsx-runtime"),sp=ip.memo(function({id:o,style:e,size:t,isSelected:n,isDarkMode:r}){var y;let{stroke:s,strokeWidth:l,fill:a}=te(e,r),{defs:c,gradFill:p}=kt(o,e),u=p!=null?p:a,h=1+l*1.618,g=Math.max(0,t[0]-h/2),m=Math.max(0,t[1]-h/2),f=(y=e.borderRadius)!=null?y:0,v=f>0||e.dash==="solid",{strokeDasharray:b,strokeDashoffset:T}=nl.Utils.getPerfectDashProps(2*(g+m),l*1.618,e.dash);return(0,Qn.jsxs)(Qn.Fragment,{children:[c,(0,Qn.jsx)("rect",{className:n||e.isFilled?"tv-fill-hitarea":"tv-stroke-hitarea",x:h/2,y:h/2,width:g,height:m,rx:f,ry:f,strokeWidth:16}),e.isFilled&&(0,Qn.jsx)("rect",{x:h/2,y:h/2,width:g,height:m,rx:f,ry:f,fill:u,pointerEvents:"none"}),v?(0,Qn.jsx)("rect",{x:h/2,y:h/2,width:g,height:m,rx:f,ry:f,fill:"none",stroke:s,strokeWidth:h,strokeDasharray:b,strokeDashoffset:T,pointerEvents:"none",strokeLinecap:"round"}):(0,Qn.jsx)("g",{pointerEvents:"none",stroke:s,strokeWidth:h,strokeLinecap:"round",children:[[[h/2,h/2],[g,h/2],g-h/2],[[g,h/2],[g,m],m-h/2],[[g,m],[h/2,m],g-h/2],[[h/2,m],[h/2,h/2],m-h/2]].map(([x,P,k],D)=>{let C=nl.Utils.getPerfectDashProps(k,l*1.618,e.dash);return(0,Qn.jsx)("line",{x1:x[0],y1:x[1],x2:P[0],y2:P[1],strokeDasharray:C.strokeDasharray,strokeDashoffset:C.strokeDashoffset},o+"_"+D)})})]})});var dp=H(require("react"));var Cs=H(require("perfect-freehand")),ui=require("telva-core"),ft=H(require("telva-vec"));function ef(i,o,e){let t=te(o),n=ui.Utils.rng(i),r=t.strokeWidth,s=Math.max(0,e[0]),l=Math.max(0,e[1]),a=Array.from(Array(4)).map(()=>[n()*r*.75,n()*r*.75]),c=ft.default.add([r/2,r/2],a[0]),p=ft.default.add([s-r/2,r/2],a[1]),u=ft.default.add([s-r/2,l-r/2],a[2]),h=ft.default.add([r/2,l-r/2],a[3]),g=Math.round(Math.abs(n()*2*4)),m=Math.min(s/4,r*2),f=Math.min(l/4,r*2),v=Math.max(8,Math.floor(s/16)),b=Math.max(8,Math.floor(l/16)),T=ui.Utils.rotateArray([ft.default.pointsBetween(ft.default.add(c,[m,0]),ft.default.sub(p,[m,0]),v),ft.default.pointsBetween(ft.default.add(p,[0,f]),ft.default.sub(u,[0,f]),b),ft.default.pointsBetween(ft.default.sub(u,[m,0]),ft.default.add(h,[m,0]),v),ft.default.pointsBetween(ft.default.sub(h,[0,f]),ft.default.add(c,[0,f]),b)],g);return{points:[...T.flat(),...T[0]].slice(5,Math.floor((g%2===0?v:b)/-2)+3)}}function ap(i,o,e){let{points:t}=ef(i,o,e),{strokeWidth:n}=te(o);return{points:t,options:{size:n,thinning:.65,streamline:.3,smoothing:1,simulatePressure:!1,last:!0}}}function lp(i,o,e){let{points:t,options:n}=ap(i,o,e),r=(0,Cs.default)(t,n);return ui.Utils.getSvgPathFromStroke(r)}function ws(i,o,e){let{points:t,options:n}=ap(i,o,e);return ui.Utils.getSvgPathFromStrokePoints((0,Cs.getStrokePoints)(t,n))}var jo=require("react/jsx-runtime"),cp=dp.memo(function({id:o,style:e,size:t,isSelected:n,isDarkMode:r}){let{isFilled:s}=e,{stroke:l,strokeWidth:a,fill:c}=te(e,r),{defs:p,gradFill:u}=kt(o,e),h=u!=null?u:c,g=lp(o,e,t),m=ws(o,e,t);return(0,jo.jsxs)(jo.Fragment,{children:[p,(0,jo.jsx)("path",{className:e.isFilled||n?"tv-fill-hitarea":"tv-stroke-hitarea",d:m}),s&&(0,jo.jsx)("path",{d:m,fill:h,pointerEvents:"none"}),(0,jo.jsx)("path",{d:g,fill:l,stroke:l,strokeWidth:a,pointerEvents:"none"})]})});var dn=require("react/jsx-runtime"),Is=class extends ee{constructor(){super(...arguments);d(this,"type","rectangle");d(this,"canBind",!0);d(this,"canClone",!0);d(this,"canEdit",!0);d(this,"getShape",e=>Ps.Utils.deepMerge({id:"id",type:"rectangle",name:"Rectangle",parentId:"page",childIndex:1,point:[0,0],size:[1,1],rotation:0,style:$e,label:"",labelPoint:[.5,.5]},e));d(this,"Component",ee.Component(({shape:e,isEditing:t,isBinding:n,isSelected:r,isGhost:s,meta:l,bounds:a,events:c,onShapeBlur:p,onShapeChange:u},h)=>{var G,ne;let{id:g,size:m,style:f,label:v="",labelPoint:b=pr}=e,T=Bt(f),y=te(f,l.isDarkMode),P=!(l.canvasMode==="straight")&&f.dash==="draw"?cp:sp,k=fo.useCallback(pe=>u==null?void 0:u({id:g,label:pe}),[u]),D=l.nodeEditingId===e.id,C=_(),E=fo.useRef(null),[M,L]=fo.useState(null),V=(G=C.zoom)!=null?G:1,X=fo.useMemo(()=>{if(!D)return null;let[pe,he]=m,Me=[[0,0],[pe,0],[pe,he],[0,he]],vt=[2,3,0,1],rt=5/V,et=1/V;return(0,dn.jsxs)("g",{children:[Me.map((be,j)=>{let ae=Me[(j+1)%4];return(0,dn.jsx)("line",{x1:be[0],y1:be[1],x2:ae[0],y2:ae[1],stroke:"#0D99FF",strokeWidth:et,strokeOpacity:.4,pointerEvents:"none"},`el-${j}`)}),Me.map(([be,j],ae)=>(0,dn.jsx)("circle",{cx:be,cy:j,r:M===ae?rt*1.4:rt,fill:M===ae?"#0D99FF":"white",stroke:"#0D99FF",strokeWidth:1.5/V,style:{cursor:"nwse-resize"},onPointerEnter:()=>L(ae),onPointerLeave:()=>L(null),onPointerDown:le=>{le.stopPropagation(),le.currentTarget.setPointerCapture(le.pointerId);let Z=Me[vt[ae]];E.current={nodeIdx:ae,fixedPage:pp.default.add(e.point,Z)}},onPointerMove:le=>{if(!E.current||E.current.nodeIdx!==ae)return;le.stopPropagation();let Z=C.getPagePoint([le.clientX,le.clientY]),N=E.current.fixedPage,Q=Math.min(Z[0],N[0]),re=Math.min(Z[1],N[1]),z=Math.max(Z[0],N[0]),Le=Math.max(Z[1],N[1]);C.patchState({document:{pages:{[C.currentPageId]:{shapes:{[e.id]:{point:[Q,re],size:[Math.max(1,z-Q),Math.max(1,Le-re)]}}}}}})},onPointerUp:le=>{if(!E.current)return;le.stopPropagation();let Z=C.getPagePoint([le.clientX,le.clientY]),N=E.current.fixedPage,Q=Math.min(Z[0],N[0]),re=Math.min(Z[1],N[1]),z=Math.max(Z[0],N[0]),Le=Math.max(Z[1],N[1]);E.current=null,C.updateShapes({id:e.id,point:[Q,re],size:[Math.max(1,z-Q),Math.max(1,Le-re)]})}},`cn-${ae}`)),Me.map((be,j)=>{let ae=Me[(j+1)%4],le=(be[0]+ae[0])/2,Z=(be[1]+ae[1])/2;return(0,dn.jsx)("circle",{cx:le,cy:Z,r:3.5/V,fill:"white",stroke:"#0D99FF",strokeWidth:et,strokeDasharray:`${2/V} ${2/V}`,style:{cursor:"crosshair"},pointerEvents:"none"},`mid-${j}`)})]})},[D,m,V,M,e.id,e.point,C]),se=D?{overflow:"visible"}:void 0;return(0,dn.jsxs)(tf,I(S({ref:h},c),{children:[(0,dn.jsx)(ho,{isEditing:t,onChange:k,onBlur:p,font:T,text:v,color:(ne=f.labelColor)!=null?ne:y.stroke,background:f.labelBackground,textGradient:f.textGradient,offsetX:(b[0]-.5)*a.width,offsetY:(b[1]-.5)*a.height,width:Math.max(0,a.width-16)}),(0,dn.jsxs)(Ps.SVGContainer,{id:e.id+"_svg",opacity:s?.3:y.opacity,style:se,children:[n&&(0,dn.jsx)(rp,{strokeWidth:y.strokeWidth,size:m}),(0,dn.jsx)(P,{id:g,style:f,size:m,isSelected:r,isDarkMode:l.isDarkMode}),X]})]}))}));d(this,"Indicator",ee.Indicator(({shape:e,meta:t})=>{var a,c;let{id:n,style:r,size:s}=e;return!((t==null?void 0:t.canvasMode)==="straight")&&r.dash==="draw"?(0,dn.jsx)("path",{d:ws(n,r,s)}):(0,dn.jsx)("rect",{x:0,y:0,rx:(a=r.borderRadius)!=null?a:0,ry:(c=r.borderRadius)!=null?c:0,width:Math.max(1,s[0]),height:Math.max(1,s[1])})}));d(this,"getBounds",e=>Ot(e,this.boundsCache));d(this,"shouldRender",(e,t)=>t.size!==e.size||t.style!==e.style||t.label!==e.label);d(this,"transform",Vn);d(this,"transformSingle",Hn)}},tf=R("div",{width:"100%",height:"100%"});var Lt=H(require("react")),Ds=require("telva-core"),up=require("telva-vec");var Wo=require("react/jsx-runtime"),Rs=class extends ee{constructor(){super(...arguments);d(this,"type","sticky");d(this,"canBind",!0);d(this,"canEdit",!0);d(this,"canClone",!0);d(this,"hideResizeHandles",!0);d(this,"showCloneHandles",!0);d(this,"getShape",e=>Ds.Utils.deepMerge({id:"id",type:"sticky",name:"Sticky",parentId:"page",childIndex:1,point:[0,0],size:[200,200],text:"",rotation:0,style:hr},e));d(this,"Component",ee.Component(({shape:e,meta:t,events:n,isGhost:r,isBinding:s,isEditing:l,onShapeBlur:a,onShapeChange:c},p)=>{let u=Pc(e.style),{color:h,fill:g,stroke:m}=_a(e.style,t.isDarkMode),f=Lt.useRef(null),v=Lt.useRef(null),b=Lt.useRef(null),T=Lt.useRef(!1),y=Lt.useCallback(L=>{L.stopPropagation()},[]),x=Lt.useCallback(L=>{c==null||c({id:e.id,type:e.type,text:B.normalizeText(L)})},[e.id]),P=Lt.useCallback(L=>{x(L.currentTarget.value)},[c,x]),k=Lt.useCallback(L=>{if(L.key==="Escape"){L.preventDefault(),L.stopPropagation(),a==null||a();return}if(L.key==="Tab"&&e.text.length===0){L.preventDefault();return}if(!(L.key==="Meta"||L.metaKey))L.stopPropagation();else if(L.key==="z"&&L.metaKey){L.shiftKey?document.execCommand("redo",!1):document.execCommand("undo",!1),L.stopPropagation(),L.preventDefault();return}(L.metaKey||L.ctrlKey)&&L.key==="="&&L.preventDefault(),L.key==="Tab"&&(L.preventDefault(),L.shiftKey?Ue.unindent(L.currentTarget):Ue.indent(L.currentTarget),c==null||c(I(S({},e),{text:B.normalizeText(L.currentTarget.value)})))},[e,c]),D=Lt.useCallback(L=>{L.currentTarget.setSelectionRange(0,0),a==null||a()},[]),C=Lt.useCallback(L=>{!l||!T.current||L.currentTarget.select()},[l]);Lt.useEffect(()=>{if(l){T.current=!0;let L=v.current;L.focus(),L.select()}},[l]),Lt.useEffect(()=>{let L=b.current,{size:V}=e,{offsetHeight:X}=L,se=ol-zn*2,G=V[1]-zn*2;if(X===G)return;if(X>se){c==null||c({id:e.id,size:[V[0],X+zn*2]});return}if(X<se&&V[1]>ol){c==null||c({id:e.id,size:[V[0],ol]});return}let ne=v.current;ne==null||ne.focus()},[e.text,e.size[1],e.style]);let E=e.style.textGradient,M=S({font:u,color:E?"transparent":h,textShadow:t.isDarkMode?"0.5px 0.5px 2px rgba(255, 255, 255,.25)":"0.5px 0.5px 2px rgba(255, 255, 255,.5)"},E?{background:Bo(E),WebkitBackgroundClip:"text",backgroundClip:"text"}:{});return(0,Wo.jsx)(Ds.HTMLContainer,I(S({ref:p},n),{children:(0,Wo.jsxs)(nf,{ref:f,isDarkMode:t.isDarkMode,isGhost:r,style:S({backgroundColor:g,border:m?`2px solid ${m}`:void 0},M),children:[s&&(0,Wo.jsx)("div",{className:"tv-binding-indicator",style:{position:"absolute",top:-this.bindingDistance,left:-this.bindingDistance,width:`calc(100% + ${this.bindingDistance*2}px)`,height:`calc(100% + ${this.bindingDistance*2}px)`,backgroundColor:"var(--tv-selectFill)"}}),(0,Wo.jsxs)(of,{ref:b,isEditing:l,alignment:e.style.textAlign,children:[e.text,"\u200B"]}),l&&(0,Wo.jsx)(rf,{ref:v,onPointerDown:y,value:e.text,onChange:P,onKeyDown:k,onFocus:C,onBlur:D,tabIndex:-1,autoComplete:"false",autoCapitalize:"false",autoCorrect:"false",autoSave:"false",autoFocus:!0,spellCheck:!0,alignment:e.style.textAlign,onContextMenu:ht,onCopy:ht,onPaste:ht,onCut:ht})]})}))}));d(this,"Indicator",ee.Indicator(({shape:e})=>{let{size:[t,n]}=e;return(0,Wo.jsx)("rect",{x:0,y:0,rx:3,ry:3,width:Math.max(1,t),height:Math.max(1,n)})}));d(this,"getBounds",e=>Ot(e,this.boundsCache));d(this,"shouldRender",(e,t)=>t.size!==e.size||t.style!==e.style||t.text!==e.text);d(this,"transform",(e,t,{scaleX:n,scaleY:r,transformOrigin:s})=>({point:up.Vec.toFixed([t.minX+(t.width-e.size[0])*(n<0?1-s[0]:s[0]),t.minY+(t.height-e.size[1])*(r<0?1-s[1]:s[1])])}));d(this,"transformSingle",e=>e);d(this,"getSvgElement",(e,t)=>{var h,g;let n=this.getBounds(e),r=_a(e.style,t),s=Ka(e.style.size)*((h=e.style.scale)!=null?h:1),l=Ln(e.style.font,e.style.fontFamily).slice(1,-1),a=(g=e.style.textAlign)!=null?g:"start",c=co(e.text,s,l,a,n.width-zn*2,!0);c.setAttribute("fill",r.color),c.setAttribute("transform",`translate(${zn}, ${zn})`);let p=document.createElementNS("http://www.w3.org/2000/svg","g"),u=document.createElementNS("http://www.w3.org/2000/svg","rect");return u.setAttribute("width",n.width+""),u.setAttribute("height",n.height+""),u.setAttribute("fill",r.fill),r.stroke&&(u.setAttribute("stroke",r.stroke),u.setAttribute("stroke-width","2")),u.setAttribute("rx","3"),u.setAttribute("ry","3"),p.appendChild(u),p.appendChild(c),p})}},zn=16,ol=200,nf=R("div",{pointerEvents:"all",position:"relative",backgroundColor:"rgba(255, 220, 100)",fontFamily:"sans-serif",height:"100%",width:"100%",padding:zn+"px",borderRadius:"3px",perspective:"800px",variants:{isGhost:{false:{opacity:1},true:{transition:"opacity .2s",opacity:.3}},isDarkMode:{true:{boxShadow:"2px 3px 12px -2px rgba(0,0,0,.3), 1px 1px 4px rgba(0,0,0,.3), 1px 1px 2px rgba(0,0,0,.3)"},false:{boxShadow:"2px 3px 12px -2px rgba(0,0,0,.2), 1px 1px 4px rgba(0,0,0,.16), 1px 1px 2px rgba(0,0,0,.16)"}}}}),hp={whiteSpace:"pre-wrap",overflowWrap:"break-word",letterSpacing:on},of=R("div",S({position:"absolute",top:zn,left:zn,width:`calc(100% - ${zn*2}px)`,height:"fit-content",font:"inherit",pointerEvents:"none",userSelect:"none",variants:{isEditing:{true:{opacity:1},false:{opacity:1}},alignment:{["start"]:{textAlign:"left"},["middle"]:{textAlign:"center"},["end"]:{textAlign:"right"},["justify"]:{textAlign:"justify"}}}},hp)),rf=R("textarea",I(S({width:"100%",height:"100%",border:"none",overflow:"hidden",background:"none",outline:"none",textAlign:"left",font:"inherit",padding:0,color:"transparent",verticalAlign:"top",resize:"none",caretColor:"black"},hp),{variants:{alignment:{["start"]:{textAlign:"left"},["middle"]:{textAlign:"center"},["end"]:{textAlign:"right"},["justify"]:{textAlign:"justify"}}},"&:focus":{outline:"none",border:"none"}}));var At=H(require("react")),vr=require("telva-core"),eo=require("telva-vec");var No=require("react/jsx-runtime"),Es=class extends ee{constructor(){super(...arguments);d(this,"type","text");d(this,"isAspectRatioLocked",!1);d(this,"canEdit",!0);d(this,"canBind",!0);d(this,"canClone",!0);d(this,"bindingDistance",16/2);d(this,"getShape",e=>vr.Utils.deepMerge({id:"id",type:"text",name:"Text",parentId:"page",childIndex:1,point:[0,0],rotation:0,text:" ",style:hr},e));d(this,"texts",new Map);d(this,"Component",ee.Component(({shape:e,isBinding:t,isGhost:n,isEditing:r,onShapeBlur:s,onShapeChange:l,meta:a,events:c},p)=>{let{text:u,style:h}=e,g=te(h,a.isDarkMode),m=Bt(e.style),f=At.useRef(null),v=At.useRef(!1),b=At.useRef(u);At.useLayoutEffect(()=>{if(u!==b.current){let C=[0,0];this.texts.set(e.id,u);let E=this.getBounds(e),M=this.getBounds(e);switch(e.style.textAlign){case"start":break;case"middle":{C=eo.Vec.div([M.width-E.width,0],2);break}case"end":{C=[M.width-E.width,0];break}}b.current=u,l==null||l(I(S({},e),{id:e.id,point:eo.Vec.sub(e.point,C),text:u}))}},[u]);let T=At.useCallback(C=>{let E=[0,0],M=B.normalizeText(C.currentTarget.value),L=this.getBounds(e);this.texts.set(e.id,M);let V=this.getBounds(I(S({},e),{text:M}));switch(e.style.textAlign){case"start":break;case"middle":{E=eo.Vec.div([V.width-L.width,0],2);break}case"end":{E=[V.width-L.width,0];break}}b.current=M,l==null||l(I(S({},e),{id:e.id,point:eo.Vec.sub(e.point,E),text:M}))},[e.id,e.point]),y=At.useCallback(C=>{if(C.key==="Escape"){C.preventDefault(),C.stopPropagation(),s==null||s();return}if(C.key==="Tab"&&e.text.length===0){C.preventDefault();return}if(C.key==="Enter"&&(C.metaKey||C.ctrlKey)){C.preventDefault(),C.stopPropagation(),f.current.blur();return}if(!(C.key==="Meta"||C.metaKey))C.stopPropagation();else if(C.key==="z"&&C.metaKey){C.shiftKey?document.execCommand("redo",!1):document.execCommand("undo",!1),C.stopPropagation(),C.preventDefault();return}(C.metaKey||C.ctrlKey)&&C.key==="="&&C.preventDefault(),C.key==="Tab"&&(C.preventDefault(),C.shiftKey?Ue.unindent(C.currentTarget):Ue.indent(C.currentTarget),l==null||l(I(S({},e),{text:B.normalizeText(C.currentTarget.value)})))},[e,l]),x=At.useCallback(C=>{C.currentTarget.setSelectionRange(0,0),s==null||s()},[]),P=At.useCallback(C=>{!r||!v.current||document.activeElement===C.currentTarget&&C.currentTarget.select()},[r]),k=At.useCallback(C=>{r&&C.stopPropagation()},[r]),D=At.useRef(r);return At.useEffect(()=>{r?(D.current=!0,this.texts.set(e.id,u),requestAnimationFrame(()=>{v.current=!0;let C=f.current;C&&(C.focus(),C.select())})):D.current&&(D.current=!1,s==null||s())},[r]),(0,No.jsx)(vr.HTMLContainer,I(S({ref:p},c),{children:(0,No.jsx)(af,{isGhost:n,isEditing:r,onPointerDown:k,style:{opacity:n?void 0:g.opacity},children:(0,No.jsxs)(lf,{style:S({font:m,color:h.textGradient&&!r?"transparent":g.stroke,textAlign:vc(h.textAlign),width:e.size?`${e.size[0]}px`:"auto",whiteSpace:e.size?"pre-wrap":"pre",wordBreak:e.size?"break-word":"normal",overflowWrap:e.size?"break-word":"normal"},h.textGradient&&!r?{background:Bo(h.textGradient),WebkitBackgroundClip:"text",backgroundClip:"text"}:{}),children:[t&&(0,No.jsx)("div",{className:"tv-binding-indicator",style:{position:"absolute",top:-this.bindingDistance,left:-this.bindingDistance,width:`calc(100% + ${this.bindingDistance*2}px)`,height:`calc(100% + ${this.bindingDistance*2}px)`,backgroundColor:"var(--tv-selectFill)"}}),r?(0,No.jsx)(df,{ref:f,style:{font:m,color:g.stroke},name:"text",tabIndex:-1,autoComplete:"false",autoCapitalize:"false",autoCorrect:"false",autoSave:"false",autoFocus:!0,placeholder:"",spellCheck:"true",wrap:"off",dir:"auto",datatype:"wysiwyg",defaultValue:u,color:g.stroke,onFocus:P,onChange:T,onKeyDown:y,onBlur:x,onPointerDown:k,onContextMenu:ht,onCopy:ht,onPaste:ht,onCut:ht}):u,"\u200B"]})})}))}));d(this,"Indicator",ee.Indicator(({shape:e})=>{let{width:t,height:n}=this.getBounds(e);return(0,No.jsx)("rect",{x:0,y:0,width:t,height:n})}));d(this,"getBounds",e=>{let t=vr.Utils.getFromCache(this.boundsCache,e,()=>{var s;if(!wt)return{minX:0,minY:0,maxX:10,maxY:10,width:10,height:10};wt.parentNode||document.body.appendChild(wt),wt.style.font=Bt(e.style),wt.textContent=(s=this.texts.get(e.id))!=null?s:e.text,e.size?(wt.style.whiteSpace="pre-wrap",wt.style.wordBreak="break-word",wt.style.overflowWrap="break-word",wt.style.width=`${e.size[0]}px`):(wt.style.whiteSpace="pre",wt.style.wordBreak="normal",wt.style.overflowWrap="normal",wt.style.width="auto");let n=e.size?e.size[0]:wt.offsetWidth||1,r=wt.offsetHeight||1;return{minX:0,maxX:n,minY:0,maxY:r,width:n,height:r}});return vr.Utils.translateBounds(t,e.point)});d(this,"shouldRender",(e,t)=>t.text!==e.text||t.style.scale!==e.style.scale||t.style!==e.style||t.size!==e.size);d(this,"transform",(e,t,{initialShape:n,scaleX:r,scaleY:s})=>{let{rotation:l=0,style:{scale:a=1}}=n,c=a*Math.abs(Math.min(r,s));return{point:[t.minX,t.minY],size:[t.width,t.height],rotation:r<0&&s>=0||s<0&&r>=0?-(l||0):l,style:I(S({},n.style),{scale:c})}});d(this,"transformSingle",(e,t,{initialShape:n,scaleX:r,scaleY:s})=>({point:eo.Vec.toFixed([t.minX,t.minY]),size:[t.width,t.height]}));d(this,"onDoubleClickBoundsHandle",e=>{let t=this.getCenter(e),n=this.getCenter(I(S({},e),{style:I(S({},e.style),{scale:1})}));return{style:I(S({},e.style),{scale:1}),point:eo.Vec.toFixed(eo.Vec.add(e.point,eo.Vec.sub(t,n)))}});d(this,"getSvgElement",(e,t)=>{var p,u;let n=this.getBounds(e),r=te(e.style,t),s=Vo(e.style.size,e.style.font)*((p=e.style.scale)!=null?p:1),l=Ln(e.style.font).slice(1,-1),a=(u=e.style.textAlign)!=null?u:"middle",c=co(e.text,s,l,a,e.size?e.size[0]:n.width,!!e.size);return c.setAttribute("fill",r.stroke),c})}},wt;function sf(){var o;(o=document.getElementById("__textMeasure"))==null||o.remove();let i=document.createElement("pre");return i.id="__textMeasure",Object.assign(i.style,{whiteSpace:"pre",width:"auto",border:"1px solid transparent",padding:"4px",margin:"0px",letterSpacing:on,opacity:"0",position:"absolute",top:"-500px",left:"0px",zIndex:"9999",pointerEvents:"none",userSelect:"none",alignmentBaseline:"mathematical",dominantBaseline:"mathematical"}),i.tabIndex=-1,document.body.appendChild(i),i}typeof window!="undefined"&&(wt=sf());var af=R("div",{width:"100%",height:"100%",variants:{isGhost:{false:{opacity:1},true:{transition:"opacity .2s",opacity:.3}},isEditing:{false:{pointerEvents:"all",userSelect:"all"},true:{pointerEvents:"none",userSelect:"none"}}}}),mp={whiteSpace:"pre-wrap",overflowWrap:"break-word"},lf=R("div",S({position:"absolute",width:"100%",height:"100%",padding:"4px",zIndex:1,minHeight:1,minWidth:1,lineHeight:1,letterSpacing:on,outline:0,fontWeight:"500",backfaceVisibility:"hidden",userSelect:"none",pointerEvents:"none",WebkitUserSelect:"none",WebkitTouchCallout:"none",isEditing:{false:{},true:{pointerEvents:"all",background:"$boundsBg",userSelect:"text",WebkitUserSelect:"text"}}},mp)),df=R("textarea",I(S({position:"absolute",top:0,left:0,zIndex:1,width:"100%",height:"100%",border:"none",padding:"4px",resize:"none",textAlign:"inherit",minHeight:"inherit",minWidth:"inherit",lineHeight:"inherit",letterSpacing:"inherit",outline:0,fontWeight:"inherit",overflow:"hidden",backfaceVisibility:"hidden",display:"inline-block",pointerEvents:"all",background:"$boundsBg",userSelect:"text",WebkitUserSelect:"text"},mp),{"&:focus":{outline:"none",border:"none"}}));var to=H(require("react")),Tn=require("telva-core"),Tr=require("telva-intersect"),St=H(require("telva-vec"));var yp=H(require("react")),il=require("telva-core"),bp=H(require("telva-vec"));var Bs=H(require("perfect-freehand")),hi=require("telva-core"),So=H(require("telva-vec"));function cn(i,o=0,e=0){let[t,n]=i,r=[[t/2,0],[t,n],[0,n]];return o&&(r=wc(r,o)),e&&(r=r.map(s=>So.default.rotWith(s,[t/2,n/2],e))),r}function rl(i){let[o,e]=i,t=[[o/2,0],[o,e],[0,e]];return[(t[0][0]+t[1][0]+t[2][0])/3,(t[0][1]+t[1][1]+t[2][1])/3]}function cf(i,o,e){let[t,n]=o,r=hi.Utils.rng(i),s=Array.from(Array(3)).map(()=>[r()*e*.75,r()*e*.75]),l=[So.default.add([t/2,0],s[0]),So.default.add([t,n],s[1]),So.default.add([0,n],s[2])],a=Math.round(Math.abs(r()*2*3)),c=hi.Utils.rotateArray([So.default.pointsBetween(l[0],l[1],32),So.default.pointsBetween(l[1],l[2],32),So.default.pointsBetween(l[2],l[0],32)],a);return{points:[...c.flat(),...c[0]]}}function gp(i,o,e){let{strokeWidth:t}=te(e),{points:n}=cf(i,o,t);return{points:n,options:{size:t,thinning:.65,streamline:.3,smoothing:1,simulatePressure:!1,last:!0}}}function fp(i,o,e){let{points:t,options:n}=gp(i,o,e),r=(0,Bs.default)(t,n);return hi.Utils.getSvgPathFromStroke(r)}function Sp(i,o,e){let{points:t,options:n}=gp(i,o,e);return hi.Utils.getSvgPathFromStrokePoints((0,Bs.getStrokePoints)(t,n))}var yo=require("react/jsx-runtime"),vp=yp.memo(function({id:o,size:e,style:t,isSelected:n,isDarkMode:r}){let{stroke:s,strokeWidth:l,fill:a}=te(t,r),{defs:c,gradFill:p}=kt(o,t),u=p!=null?p:a,h=1+l*1.618,g=cn(e),f=il.Utils.pointsToLineSegments(g,!0).map(([b,T],y)=>{let{strokeDasharray:x,strokeDashoffset:P}=il.Utils.getPerfectDashProps(bp.default.dist(b,T),l*1.618,t.dash);return(0,yo.jsx)("line",{x1:b[0],y1:b[1],x2:T[0],y2:T[1],stroke:s,strokeWidth:h,strokeLinecap:"round",strokeDasharray:x,strokeDashoffset:P},o+"_"+y)}),v=g.join();return(0,yo.jsxs)(yo.Fragment,{children:[c,(0,yo.jsx)("polygon",{className:t.isFilled||n?"tv-fill-hitarea":"tv-stroke-hitarea",points:v}),t.isFilled&&(0,yo.jsx)("polygon",{fill:u,points:v,pointerEvents:"none"}),(0,yo.jsx)("g",{pointerEvents:"stroke",children:f})]})});var Tp=H(require("react"));var Uo=require("react/jsx-runtime"),xp=Tp.memo(function({id:o,size:e,style:t,isSelected:n,isDarkMode:r}){let{stroke:s,strokeWidth:l,fill:a}=te(t,r),{defs:c,gradFill:p}=kt(o,t),u=p!=null?p:a,h=fp(o,e,t),g=Sp(o,e,t);return(0,Uo.jsxs)(Uo.Fragment,{children:[c,(0,Uo.jsx)("path",{className:t.isFilled||n?"tv-fill-hitarea":"tv-stroke-hitarea",d:g}),t.isFilled&&(0,Uo.jsx)("path",{d:g,fill:u,pointerEvents:"none"}),(0,Uo.jsx)("path",{d:h,fill:s,stroke:s,strokeWidth:l,pointerEvents:"none"})]})});var pf=require("react/jsx-runtime");function kp({size:i}){let o=cn(i).join();return(0,pf.jsx)("polygon",{className:"tv-binding-indicator",points:o,strokeWidth:16*2})}var Fn=require("react/jsx-runtime"),Ms=class extends ee{constructor(){super(...arguments);d(this,"type","triangle");d(this,"canBind",!0);d(this,"canClone",!0);d(this,"canEdit",!0);d(this,"getShape",e=>Tn.Utils.deepMerge({id:"id",type:"triangle",name:"Triangle",parentId:"page",childIndex:1,point:[0,0],size:[1,1],rotation:0,style:$e,label:"",labelPoint:[.5,.5]},e));d(this,"Component",ee.Component(({shape:e,bounds:t,isBinding:n,isEditing:r,isSelected:s,isGhost:l,meta:a,events:c,onShapeChange:p,onShapeBlur:u},h)=>{var ne,pe;let{id:g,label:m="",size:f,style:v,labelPoint:b=pr}=e,T=Bt(v),y=te(v,a.isDarkMode),P=!(a.canvasMode==="straight")&&v.dash==="draw"?xp:vp,k=to.useCallback(he=>p==null?void 0:p({id:g,label:he}),[p]),D=to.useMemo(()=>{let he=St.default.div(f,2);return(rl(f)[1]-he[1])*.72},[f]),C=a.nodeEditingId===e.id,E=_(),M=to.useRef(null),[L,V]=to.useState(null),X=(ne=E.zoom)!=null?ne:1,se=to.useMemo(()=>{if(!C)return null;let[he,Me]=f,vt=[[0,0],[he,0],[he,Me],[0,Me]],rt=[2,3,0,1],et=5/X,be=1/X,j=cn(f);return(0,Fn.jsxs)("g",{children:[j.map((ae,le)=>{let Z=j[(le+1)%j.length];return(0,Fn.jsx)("line",{x1:ae[0],y1:ae[1],x2:Z[0],y2:Z[1],stroke:"#0D99FF",strokeWidth:be,strokeOpacity:.3,pointerEvents:"none"},`tl-${le}`)}),vt.map(([ae,le],Z)=>(0,Fn.jsx)("circle",{cx:ae,cy:le,r:L===Z?et*1.4:et,fill:L===Z?"#0D99FF":"white",stroke:"#0D99FF",strokeWidth:1.5/X,style:{cursor:"nwse-resize"},onPointerEnter:()=>V(Z),onPointerLeave:()=>V(null),onPointerDown:N=>{N.stopPropagation(),N.currentTarget.setPointerCapture(N.pointerId);let Q=vt[rt[Z]];M.current={nodeIdx:Z,fixedPage:St.default.add(e.point,Q)}},onPointerMove:N=>{if(!M.current||M.current.nodeIdx!==Z)return;N.stopPropagation();let Q=E.getPagePoint([N.clientX,N.clientY]),re=M.current.fixedPage,z=Math.min(Q[0],re[0]),Le=Math.min(Q[1],re[1]),Kt=Math.max(Q[0],re[0]),Qt=Math.max(Q[1],re[1]);E.patchState({document:{pages:{[E.currentPageId]:{shapes:{[e.id]:{point:[z,Le],size:[Math.max(1,Kt-z),Math.max(1,Qt-Le)]}}}}}})},onPointerUp:N=>{if(!M.current)return;N.stopPropagation();let Q=E.getPagePoint([N.clientX,N.clientY]),re=M.current.fixedPage,z=Math.min(Q[0],re[0]),Le=Math.min(Q[1],re[1]),Kt=Math.max(Q[0],re[0]),Qt=Math.max(Q[1],re[1]);M.current=null,E.updateShapes({id:e.id,point:[z,Le],size:[Math.max(1,Kt-z),Math.max(1,Qt-Le)]})}},`cn-${Z}`))]})},[C,f,X,L,e.id,e.point,E]),G=C?{overflow:"visible"}:void 0;return(0,Fn.jsxs)(uf,I(S({ref:h},c),{children:[(0,Fn.jsx)(ho,{font:T,text:m,color:(pe=v.labelColor)!=null?pe:y.stroke,background:v.labelBackground,textGradient:v.textGradient,offsetX:(b[0]-.5)*t.width,offsetY:D+(b[1]-.5)*t.height,width:Math.max(0,t.width*.5-16),isEditing:r,onChange:k,onBlur:u}),(0,Fn.jsxs)(Tn.SVGContainer,{id:e.id+"_svg",opacity:l?.3:y.opacity,style:G,children:[n&&(0,Fn.jsx)(kp,{size:f}),(0,Fn.jsx)(P,{id:g,style:v,size:f,isSelected:s,isDarkMode:a.isDarkMode}),se]})]}))}));d(this,"Indicator",ee.Indicator(({shape:e})=>{let{size:t}=e;return(0,Fn.jsx)("polygon",{points:cn(t).join()})}));d(this,"shouldRender",(e,t)=>t.size!==e.size||t.style!==e.style||t.label!==e.label);d(this,"getBounds",e=>Ot(e,this.boundsCache));d(this,"getExpandedBounds",e=>Tn.Utils.getBoundsFromPoints(cn(e.size,this.bindingDistance).map(t=>St.default.add(t,e.point))));d(this,"hitTestLineSegment",(e,t,n)=>(0,Tr.intersectLineSegmentPolyline)(t,n,this.getPoints(e)).didIntersect);d(this,"hitTestBounds",(e,t)=>Tn.Utils.boundsContained(this.getBounds(e),t)||(0,Tr.intersectBoundsPolygon)(t,this.getPoints(e)).length>0);d(this,"getBindingPoint",(e,t,n,r,s,l)=>{let a=this.getExpandedBounds(e);if(!Tn.Utils.pointInBounds(n,a))return;let c=cn(e.size).map(y=>St.default.add(y,e.point)),p=cn(e.size,this.bindingDistance).map(y=>St.default.add(y,e.point)),u=Tn.Utils.pointsToLineSegments(c,!0).map(([y,x])=>St.default.distanceToLineSegment(y,x,n)).sort((y,x)=>y-x)[0];if(!(Tn.Utils.pointInPolygon(n,p)||u<this.bindingDistance))return;let h=Tn.Utils.pointsToLineSegments(p.concat([p[0]])).map(y=>(0,Tr.intersectRayLineSegment)(r,s,y[0],y[1])).filter(y=>y.didIntersect).flatMap(y=>y.points);if(!h.length)return;let g=St.default.add(rl(e.size),e.point),m=h.sort((y,x)=>St.default.dist(x,r)-St.default.dist(y,r))[0],f=St.default.med(n,m),v,b;l?(v=St.default.dist(n,g)<16/2?g:n,b=0):(St.default.distanceToLineSegment(n,f,g)<16/2?v=g:v=f,Tn.Utils.pointInPolygon(n,c)?b=this.bindingDistance:b=Math.max(this.bindingDistance,u));let T=St.default.divV(St.default.sub(v,[a.minX,a.minY]),[a.width,a.height]);return{point:St.default.clampV(T,0,1),distance:b}});d(this,"transform",Vn);d(this,"transformSingle",Hn)}getPoints(e){let{rotation:t=0,point:[n,r],size:[s,l]}=e;return[[n+s/2,r],[n,r+l],[n+s,r+l]].map(a=>St.default.rotWith(a,this.getCenter(e),t))}},uf=R("div",{width:"100%",height:"100%"});var sl=require("@stitches/react"),xn=H(require("react")),As=require("telva-core");var Ko=require("react/jsx-runtime"),Ls=class extends ee{constructor(){super(...arguments);d(this,"type","video");d(this,"canBind",!0);d(this,"canEdit",!0);d(this,"canClone",!0);d(this,"isAspectRatioLocked",!0);d(this,"showCloneHandles",!1);d(this,"isStateful",!0);d(this,"getShape",e=>As.Utils.deepMerge({id:"video",type:"video",name:"Video",parentId:"page",childIndex:1,point:[0,0],size:[1,1],rotation:0,style:$e,assetId:"assetId",isPlaying:!0,currentTime:0},e));d(this,"Component",ee.Component(({shape:e,asset:t={src:""},isBinding:n,isEditing:r,isGhost:s,meta:l,events:a,onShapeChange:c},p)=>{let u=xn.useRef(null),h=xn.useRef(null),{currentTime:g=0,size:m,isPlaying:f,style:v}=e;xn.useLayoutEffect(()=>{let x=h.current;if(!x)return;let[P,k]=m;x.style.width=`${P}px`,x.style.height=`${k}px`},[m]),xn.useLayoutEffect(()=>{let x=u.current;!x||(f?x.play():x.pause())},[f]),xn.useLayoutEffect(()=>{let x=u.current;!x||g!==x.currentTime&&(x.currentTime=g)},[g]);let b=xn.useCallback(()=>{c==null||c({id:e.id,isPlaying:!0})},[]),T=xn.useCallback(()=>{c==null||c({id:e.id,isPlaying:!1})},[]),y=xn.useCallback(()=>{let x=u.current;!x||!r||c==null||c({id:e.id,currentTime:x.currentTime})},[r]);return(0,Ko.jsxs)(As.HTMLContainer,I(S({ref:p},a),{children:[n&&(0,Ko.jsx)("div",{className:"tv-binding-indicator",style:{position:"absolute",top:-this.bindingDistance,left:-this.bindingDistance,width:`calc(100% + ${this.bindingDistance*2}px)`,height:`calc(100% + ${this.bindingDistance*2}px)`,backgroundColor:"var(--tv-selectFill)"}}),(0,Ko.jsx)(hf,{ref:h,isDarkMode:l.isDarkMode,isGhost:s,isFilled:v.isFilled,children:(0,Ko.jsx)(mf,{ref:u,id:e.id+"_video",muted:!0,loop:!0,playsInline:!0,disableRemotePlayback:!0,disablePictureInPicture:!0,controls:r,autoPlay:f,onPlay:b,onPause:T,onTimeUpdate:y,children:(0,Ko.jsx)("source",{src:t.src})})})]}))}));d(this,"Indicator",ee.Indicator(({shape:e})=>{let{size:[t,n]}=e;return(0,Ko.jsx)("rect",{x:0,y:0,rx:2,ry:2,width:Math.max(1,t),height:Math.max(1,n)})}));d(this,"getBounds",e=>Ot(e,this.boundsCache));d(this,"shouldRender",(e,t)=>t.size!==e.size||t.style!==e.style||t.isPlaying!==e.isPlaying);d(this,"getSvgElement",e=>{let t=this.getBounds(e),n=document.createElementNS("http://www.w3.org/2000/svg","image");return n.setAttribute("width",`${t.width}`),n.setAttribute("height",`${t.height}`),n.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink"),n});d(this,"transform",Vn);d(this,"transformSingle",Hn)}},hf=(0,sl.styled)("div",{pointerEvents:"all",position:"relative",fontFamily:"sans-serif",fontSize:"2em",height:"100%",width:"100%",borderRadius:"3px",perspective:"800px",overflow:"hidden",p:{userSelect:"none"},img:{userSelect:"none"},variants:{isGhost:{false:{opacity:1},true:{transition:"opacity .2s",opacity:.3}},isFilled:{true:{},false:{}},isDarkMode:{true:{},false:{}}},compoundVariants:[{isFilled:!0,isDarkMode:!0,css:{boxShadow:"2px 3px 12px -2px rgba(0,0,0,.3), 1px 1px 4px rgba(0,0,0,.3), 1px 1px 2px rgba(0,0,0,.3)"}},{isFilled:!0,isDarkMode:!1,css:{boxShadow:"2px 3px 12px -2px rgba(0,0,0,.2), 1px 1px 4px rgba(0,0,0,.16), 1px 1px 2px rgba(0,0,0,.16)"}}]}),mf=(0,sl.styled)("video",{position:"absolute",top:0,left:0,width:"100%",height:"100%",maxWidth:"100%",minWidth:"100%",pointerEvents:"none",objectFit:"cover",userSelect:"none",borderRadius:2});var Vs=new Is,Hs=new Ms,zs=new ms,Fs=new ps,xr=new as,Cp=new Es,wp=new gs,mi=new Rs,Ip=new Ss,Pp=new Ls,Rp=new xs,Dp=new vs,kn={["rectangle"]:Vs,["triangle"]:Hs,["ellipse"]:zs,["draw"]:Fs,["arrow"]:xr,["text"]:Cp,["group"]:wp,["sticky"]:mi,["image"]:Ip,["video"]:Pp,["reactComponent"]:Rp,["pen"]:Dp},al=i=>typeof i=="string"?kn[i]:kn[i.type];var Ep=!0,U=class{static getShapeUtil(o){return al(o)}static getSelectedShapes(o,e){let t=U.getPage(o,e);return U.getSelectedIds(o,e).map(r=>t.shapes[r])}static screenToWorld(o,e){let t=U.getPageState(o,o.appState.currentPageId).camera;return q.Vec.sub(q.Vec.div(e,t.zoom),t.point)}static getCameraZoom(o){return jt.Utils.clamp(o,.1,5)}static getPage(o,e){return o.document.pages[e]}static getPageState(o,e){return o.document.pageStates[e]}static getSelectedIds(o,e){return U.getPageState(o,e).selectedIds}static getShapes(o,e){return Object.values(U.getPage(o,e).shapes)}static getCamera(o,e){return U.getPageState(o,e).camera}static getShape(o,e,t){return U.getPage(o,t).shapes[e]}static getCenter(o){return U.getShapeUtil(o).getCenter(o)}static getBounds(o){return U.getShapeUtil(o).getBounds(o)}static getRotatedBounds(o){return U.getShapeUtil(o).getRotatedBounds(o)}static getSelectedBounds(o){return jt.Utils.getCommonBounds(U.getSelectedShapes(o,o.appState.currentPageId).map(e=>U.getShapeUtil(e).getBounds(e)))}static getParentId(o,e,t){return U.getShape(o,e,t).parentId}static getDocumentBranch(o,e,t){let n=U.getShape(o,e,t);return n.children===void 0?[e]:[e,...n.children.flatMap(r=>U.getDocumentBranch(o,r,t))]}static getSelectedBranchSnapshot(o,e,t){let n=U.getPage(o,e),r=U.getSelectedIds(o,e).flatMap(s=>U.getDocumentBranch(o,s,e).map(l=>n.shapes[l])).filter(s=>!s.isLocked).map(jt.Utils.deepClone);return t!==void 0?r.map(s=>S({id:s.id},t(s))):r}static getSelectedShapeSnapshot(o,e,t){let n=U.getSelectedShapes(o,e).filter(r=>!r.isLocked).map(jt.Utils.deepClone);return t!==void 0?n.map(r=>S({id:r.id},t(r))):n}static getAllEffectedShapeIds(o,e,t){let n=U.getPage(o,t),r=new Set(e);return e.forEach(s=>{let l=n.shapes[s];function a(p){p.children!==void 0&&p.children.filter(u=>!r.has(u)).forEach(u=>{r.add(u),a(n.shapes[u])})}a(l);function c(p){let u=p.parentId;u!==n.id&&(r.has(u)||(r.add(u),c(n.shapes[u])))}c(l),r.forEach(p=>{Object.values(n.bindings).filter(u=>u.fromId===p||u.toId===p).forEach(u=>r.add(u.fromId===p?u.toId:u.fromId))})}),Array.from(r.values())}static getLinkedShapeIds(o,e,t,n=!0){let r=U.getSelectedIds(o,e),s=U.getPage(o,e),l=new Set(r),a=new Set,c=[...r],p=new Set(Object.values(s.shapes).filter(u=>{var h;return u.type==="arrow"&&(u.handles.start.bindingId||((h=u.handles)==null?void 0:h.end.bindingId))}));for(;c.length;){let u=c.pop();if(!(u&&p.size))break;a.has(u)||(a.add(u),p.forEach(h=>{var T,y;let{handles:{start:{bindingId:g},end:{bindingId:m}}}=h,f=g?s.bindings[g]:null,v=m?s.bindings[m]:null,b=!1;f&&f.toId===u?(t==="center"?b=!0:((T=h.decorations)==null?void 0:T.start)&&v?b=t==="left":b=t==="right",b&&(n&&l.add(h.id),l.add(u),v&&(l.add(v.toId),c.push(v.toId)))):v&&v.toId===u&&(t==="center"?b=!0:((y=h.decorations)==null?void 0:y.end)&&f?b=t==="left":b=t==="right",b&&(n&&l.add(h.id),l.add(u),f&&(l.add(f.toId),c.push(f.toId)))),(!f||l.has(f.toId))&&(!v||l.has(v.toId))&&p.delete(h)}))}return Array.from(l.values())}static getChildIndexAbove(o,e,t){let n=o.document.pages[t],r=n.shapes[e],s;if(r.parentId===n.id)s=Object.values(n.shapes).filter(c=>c.parentId===n.id).sort((c,p)=>c.childIndex-p.childIndex);else{let c=n.shapes[r.parentId];if(!c.children)throw Error("No children in parent!");s=c.children.map(p=>n.shapes[p]).sort((p,u)=>p.childIndex-u.childIndex)}let l=s.indexOf(r),a=s[l+1];return a?a.childIndex:r.childIndex+1}static getBeforeShape(o,e){return Object.fromEntries(Object.keys(e).map(t=>[t,o[t]]))}static mutateShapes(o,e,t,n,r=!1){let s={},l={};e.forEach((c,p)=>{let u=U.getShape(o,c,n);if(u.isLocked)return;(u==null?void 0:u.type)==="group"&&(e.length===1||r)&&u.children.forEach((g,m)=>{let f=U.getShape(o,g,n);if(f.isLocked)return;let v=t(f,m);v&&(s[g]=U.getBeforeShape(f,v),l[g]=v)});let h=t(u,p);h&&(s[c]=U.getBeforeShape(u,h),l[c]=h)});let a=jt.Utils.deepMerge(o,{document:{pages:{[o.appState.currentPageId]:{shapes:l}}}});return{before:s,after:l,data:a}}static createShapes(o,e,t){let n={document:{pages:{[t]:{shapes:S({},Object.fromEntries(e.flatMap(s=>{let l=[[s.id,void 0]];if(s.parentId!==t){let a=U.getShape(o,s.parentId,t);if(!a.children)throw Error("No children in parent!");l.push([a.id,{children:a.children}])}return l})))}}}},r={document:{pages:{[t]:{shapes:{shapes:S({},Object.fromEntries(e.flatMap(s=>{let l=[[s.id,s]];if(s.parentId!==t){let a=U.getShape(o,s.parentId,t);if(!a.children)throw Error("No children in parent!");l.push([a.id,{children:[...a.children,s.id]}])}return l})))}}}}};return{before:n,after:r}}static deleteShapes(o,e,t){t=t||o.appState.currentPageId;let n=U.getPage(o,t),r=typeof e[0]=="string"?e:e.map(a=>a.id),s={document:{pages:{[t]:{shapes:S({},Object.fromEntries(r.flatMap(a=>{let c=n.shapes[a],p=[[c.id,c]];if(c.parentId!==t){let u=n.shapes[c.parentId];if(!u.children)throw Error("No children in parent!");p.push([u.id,{children:u.children}])}return p}))),bindings:S({},Object.fromEntries(Object.values(n.bindings).filter(a=>r.includes(a.fromId)||r.includes(a.toId)).map(a=>[a.id,a])))}}}},l={document:{pages:{[t]:{shapes:S({},Object.fromEntries(r.flatMap(a=>{let c=n.shapes[a],p=[[c.id,void 0]];if(c.parentId!==n.id){let u=n.shapes[c.parentId];if(!u.children)throw Error("No children in parent!");p.push([u.id,{children:u.children.filter(h=>h!==c.id)}])}return p})))}}}};return{before:s,after:l}}static onSessionComplete(o){var t,n;let e=(n=(t=U.getShapeUtil(o)).onSessionComplete)==null?void 0:n.call(t,o);return e?S(S({},o),e):o}static onChildrenChange(o,e,t){var r,s;if(!e.children)return;let n=(s=(r=U.getShapeUtil(e)).onChildrenChange)==null?void 0:s.call(r,e,e.children.map(l=>U.getShape(o,l,t)));return n?S(S({},e),n):e}static updateArrowBindings(o,e){var s,l,a,c,p,u;let t={start:mt(e.handles.start),end:mt(e.handles.end)},n={isBound:!1,handle:e.handles.start,point:q.Vec.add(e.handles.start.point,e.point)},r={isBound:!1,handle:e.handles.end,point:q.Vec.add(e.handles.end.point,e.point)};if(e.handles.start.bindingId){let h=((s=e.decorations)==null?void 0:s.start)!==void 0,g=e.handles.start,m=o.bindings[e.handles.start.bindingId];if(!m)throw Error("Could not find a binding to match the start handle's bindingId: "+e.handles.start.bindingId);let f=o.shapes[m.toId],v=U.getShapeUtil(f),b=v.getBounds(f),T=v.getExpandedBounds(f),y=h?jt.Utils.expandBounds(b,m.distance):b,{minX:x,minY:P,width:k,height:D}=T,C=q.Vec.add([x,P],q.Vec.mulV([k,D],q.Vec.rotWith(m.point,[.5,.5],f.rotation||0)));n={isBound:!0,hasDecoration:h,binding:m,handle:g,point:C,util:v,target:f,bounds:b,expandedBounds:T,intersectBounds:y,center:v.getCenter(f)}}if(e.handles.end.bindingId){let h=((l=e.decorations)==null?void 0:l.end)!==void 0,g=e.handles.end,m=o.bindings[e.handles.end.bindingId];if(!m)throw Error("Could not find a binding to match the end handle's bindingId");let f=o.shapes[m.toId],v=U.getShapeUtil(f),b=v.getBounds(f),T=v.getExpandedBounds(f),y=h?jt.Utils.expandBounds(b,m.distance):b,{minX:x,minY:P,width:k,height:D}=T,C=q.Vec.add([x,P],q.Vec.mulV([k,D],q.Vec.rotWith(m.point,[.5,.5],f.rotation||0)));r={isBound:!0,hasDecoration:h,binding:m,handle:g,point:C,util:v,target:f,bounds:b,expandedBounds:T,intersectBounds:y,center:v.getCenter(f)}}for(let h of["end","start"]){let g=h==="start"?n:r,m=h==="start"?r:n;if(g.isBound)if(!g.binding.distance)t[h].point=q.Vec.sub(g.point,e.point);else{let f=q.Vec.uni(q.Vec.sub(g.point,m.point));switch(g.target.type){case"ellipse":{let v=(0,bo.intersectRayEllipse)(m.point,f,g.center,g.target.radius[0]+(g.hasDecoration?g.binding.distance:0),g.target.radius[1]+(g.hasDecoration?g.binding.distance:0),g.target.rotation||0).points.sort((b,T)=>q.Vec.dist(b,m.point)-q.Vec.dist(T,m.point));v[0]!==void 0&&(t[h].point=q.Vec.toFixed(q.Vec.sub(v[0],e.point)));break}case"triangle":{let v=g.target.point,b=cn(g.target.size,g.hasDecoration?16:0,g.target.rotation).map(y=>q.Vec.add(y,v)),T=jt.Utils.pointsToLineSegments(b,!0).map(([y,x])=>(0,bo.intersectRayLineSegment)(m.point,f,y,x)).filter(y=>y.didIntersect).flatMap(y=>y.points).sort((y,x)=>q.Vec.dist(y,m.point)-q.Vec.dist(x,m.point));T[0]!==void 0&&(t[h].point=q.Vec.toFixed(q.Vec.sub(T[0],e.point)));break}default:{let v=(0,bo.intersectRayBounds)(m.point,f,g.intersectBounds,g.target.rotation).filter(T=>T.didIntersect).map(T=>T.points[0]).sort((T,y)=>q.Vec.dist(T,m.point)-q.Vec.dist(y,m.point));if(!v[0])continue;let b;if(m.isBound&&(b=(0,bo.intersectRayBounds)(m.point,f,m.intersectBounds,m.target.rotation).filter(y=>y.didIntersect).map(y=>y.points[0]).sort((y,x)=>q.Vec.dist(y,m.point)-q.Vec.dist(x,m.point))[0]),m.isBound&&(v.length<2||b&&v[0]&&Math.ceil(q.Vec.dist(v[0],b))<16*2.5||jt.Utils.boundsContain(g.expandedBounds,m.expandedBounds)||jt.Utils.boundsCollide(g.expandedBounds,m.expandedBounds))){let T=q.Vec.uni(q.Vec.sub(m.point,g.point)),y=(0,bo.intersectRayBounds)(g.point,T,g.bounds,g.target.rotation).filter(x=>x.didIntersect).map(x=>x.points[0]);if(!y[0])continue;t[h].point=q.Vec.toFixed(q.Vec.sub(y[0],e.point)),t[h==="start"?"end":"start"].point=q.Vec.toFixed(q.Vec.add(q.Vec.sub(y[0],e.point),q.Vec.mul(T,Math.min(q.Vec.dist(y[0],m.point),16*2.5*(jt.Utils.boundsContain(m.bounds,g.intersectBounds)?-1:1)))))}else if(!m.isBound&&(v[0]&&q.Vec.dist(v[0],m.point)<16*2.5||jt.Utils.pointInBounds(m.point,g.intersectBounds))){let T=q.Vec.uni(q.Vec.sub(g.center,m.point));return(c=(a=U.getShapeUtil(e)).onHandleChange)==null?void 0:c.call(a,e,{[h]:I(S({},e.handles[h]),{point:q.Vec.toFixed(q.Vec.add(q.Vec.sub(m.point,e.point),q.Vec.mul(T,16*2.5)))})})}else v[0]&&(t[h].point=q.Vec.toFixed(q.Vec.sub(v[0],e.point)))}}}}return(u=(p=U.getShapeUtil(e)).onHandleChange)==null?void 0:u.call(p,e,t)}static transform(o,e,t){let n=U.getShapeUtil(o).transform(o,e,t);return n?S(S({},o),n):o}static transformSingle(o,e,t){let n=U.getShapeUtil(o).transformSingle(o,e,t);return n?S(S({},o),n):o}static getRotatedShapeMutation(o,e,t,n){var c,p;let r=q.Vec.sub(e,o.point),s=q.Vec.rotWith(e,t,n),l=q.Vec.toFixed(q.Vec.sub(s,r));if(o.handles!==void 0)return(p=(c=this.getShapeUtil(o)).onHandleChange)==null?void 0:p.call(c,I(S({},o),{point:l}),Object.fromEntries(Object.entries(o.handles).map(([h,g])=>{let m=q.Vec.toFixed(q.Vec.rotWith(g.point,r,n));return[h,I(S({},g),{point:m})]})));let a=jt.Utils.clampRadians((o.rotation||0)+n);return{point:l,rotation:a}}static updateParents(o,e,t){let n=U.getPage(o,e);if(t.length===0)return;let{shapes:r}=U.getPage(o,e),s=Array.from(new Set(t.map(l=>r[l].parentId).values())).filter(l=>l!==n.id);for(let l of s){let a=r[l];if(!a.children)throw Error("A shape is parented to a shape without a children array.");U.onChildrenChange(o,a,e)}U.updateParents(o,e,s)}static getBinding(o,e,t){return U.getPage(o,t).bindings[e]}static getBindings(o,e){let t=U.getPage(o,e);return Object.values(t.bindings)}static getBindableShapeIds(o){return U.getShapes(o,o.appState.currentPageId).filter(e=>U.getShapeUtil(e).canBind).sort((e,t)=>t.childIndex-e.childIndex).map(e=>e.id)}static getBindingsWithShapeIds(o,e,t){return Array.from(new Set(U.getBindings(o,t).filter(n=>e.includes(n.toId)||e.includes(n.fromId))).values())}static getRelatedBindings(o,e,t){let n=new Set(e),r=U.getPage(o,t),s=Object.values(r.bindings),l=new Set(s.filter(p=>n.has(p.toId)||n.has(p.fromId))),a=l.size,c=-1;for(;c!==0;)l.forEach(p=>{let u=p.fromId;for(let h of s)h.fromId===u&&l.add(h),h.toId===u&&l.add(h)}),c=l.size-a,a=l.size;return Array.from(l.values())}static normalizeText(o){return o.replace(U.fixNewLines,`
9
+ `,e-1)+1,s=Ue.findLineEnd(n,t),l=o.value.slice(r,s),a=l.replace(/(^|\n)(\t| {1,2})/g,"$1"),c=l.length-a.length;o.setSelectionRange(r,s),Ue.insert(o,a);let p=/\t| {1,2}/.exec(n.slice(r,e)),u=p?p[0].length:0,h=e-u;o.setSelectionRange(e-u,Math.max(h,t-c))}};var bt=H(require("react"));var mt=i=>i.stopPropagation();var jt=require("telva-core"),bo=require("telva-intersect"),q=require("telva-vec");function gt(i){if(i===null)return i;if(i instanceof Date)return new Date(i.getTime());if(typeof i=="object")if(typeof i[Symbol.iterator]=="function"){let o=[];if(i.length>0)for(let e of i)o.push(gt(e));return o}else{let o=Object.keys(i),e={};if(o.length>0)for(let t of o)e[t]=gt(i[t]);return e}return i}var Fo=H(require("react")),Gt=require("telva-core"),fr=require("telva-intersect"),Y=require("telva-vec");var Dc=H(require("react")),rn=require("telva-core"),mr=require("telva-intersect"),An=require("telva-vec");var ee=class extends rn.TLShapeUtil{constructor(){super(...arguments);d(this,"canBind",!1);d(this,"canEdit",!1);d(this,"canClone",!1);d(this,"isAspectRatioLocked",!1);d(this,"hideResizeHandles",!1);d(this,"bindingDistance",16);d(this,"hitTestPoint",(e,t)=>rn.Utils.pointInBounds(t,this.getRotatedBounds(e)));d(this,"hitTestLineSegment",(e,t,n)=>{let r=rn.Utils.getBoundsFromPoints([t,n]),s=this.getBounds(e);return rn.Utils.boundsContain(s,r)||e.rotation?(0,mr.intersectLineSegmentPolyline)(t,n,rn.Utils.getRotatedCorners(this.getBounds(e))).didIntersect:(0,mr.intersectLineSegmentBounds)(t,n,this.getBounds(e)).length>0});d(this,"create",e=>(this.refMap.set(e.id,Dc.createRef()),this.getShape(e)));d(this,"getCenter",e=>rn.Utils.getBoundsCenter(this.getBounds(e)));d(this,"getExpandedBounds",e=>rn.Utils.expandBounds(this.getBounds(e),this.bindingDistance));d(this,"getBindingPoint",(e,t,n,r,s,l)=>{let a=this.getBounds(e),c=this.getExpandedBounds(e);if(!rn.Utils.pointInBounds(n,c))return;let p=(0,mr.intersectRayBounds)(r,s,c).filter(b=>b.didIntersect).map(b=>b.points[0]);if(!p.length)return;let u=this.getCenter(e),h=p.sort((b,T)=>An.Vec.dist(T,r)-An.Vec.dist(b,r))[0],g=An.Vec.med(n,h),m,f;l?(m=An.Vec.dist(n,u)<16/2?u:n,f=0):(An.Vec.distanceToLineSegment(n,g,u)<16/2?m=u:m=g,rn.Utils.pointInBounds(n,a)?f=this.bindingDistance:f=Math.max(this.bindingDistance,rn.Utils.getBoundsSides(a).map(b=>An.Vec.distanceToLineSegment(b[1][0],b[1][1],n)).sort((b,T)=>b-T)[0]));let v=An.Vec.divV(An.Vec.sub(m,[c.minX,c.minY]),[c.width,c.height]);return{point:An.Vec.clampV(v,0,1),distance:f}});d(this,"mutate",(e,t)=>t);d(this,"transform",(e,t,n)=>I(S({},e),{point:[t.minX,t.minY]}));d(this,"transformSingle",(e,t,n)=>this.transform(e,t,n));d(this,"updateChildren");d(this,"onChildrenChange");d(this,"onHandleChange");d(this,"onRightPointHandle");d(this,"onDoubleClickHandle");d(this,"onDoubleClickBoundsHandle");d(this,"onSessionComplete");d(this,"getSvgElement",(e,t)=>{var s,l,a,c,p;let n=(s=document.getElementById(e.id+"_svg"))==null?void 0:s.cloneNode(!0);if(!n)return;if((c=(a=(l=e.label)==null?void 0:l.trim())==null?void 0:a.length)!=null?c:0>0){let u=e,h=document.createElementNS("http://www.w3.org/2000/svg","g"),g=Bt(e.style),m=Ho(e.style.size,e.style.font)*((p=e.style.scale)!=null?p:1),f=Ln(e.style.font).slice(1,-1),v=this.getBounds(e),b=Math.max(0,v.width-16),T=lo(e.label,g,b),y=co(u.label,m,f,"middle",b,!0);return y.setAttribute("transform",`translate(${v.width/2-b/2}, ${v.height/2-T[1]/2})`),y.setAttribute("fill",te(e.style,t).stroke),y.setAttribute("transform-origin","center center"),h.setAttribute("text-align","center"),h.setAttribute("text-anchor","middle"),h.appendChild(n),h.appendChild(y),h}return n})}};var Ya=H(require("perfect-freehand")),Xn=require("telva-core"),ns=require("telva-intersect"),fe=H(require("telva-vec"));function Mc(i,o,e,t){return["M",i[0],i[1],"A",e[2],e[2],0,0,t<0?0:1,o[0],o[1]].join(" ")}function si(i,o){let{start:e,end:t}=i,n=fe.default.dist(e.point,t.point),r=fe.default.med(e.point,t.point),s=n/2*o,l=fe.default.uni(fe.default.vec(e.point,t.point));return fe.default.toFixed(Math.abs(s)<10?r:fe.default.add(r,fe.default.mul(fe.default.per(l),s)))}function Lc(i,o,e,t,n,r){let s=Xn.Utils.rng(i),l=te(o).strokeWidth,a=n?fe.default.nudge(e,t,l):e,c=r?fe.default.nudge(t,e,l):t,p=(0,Ya.default)([a,c],{size:l,thinning:.618+s()*.2,easing:Lo.easeOutQuad,simulatePressure:!0,streamline:0,last:!0});return Xn.Utils.getSvgPathFromStroke(p)}function Ac(i,o,e,t,n,r,s,l,a,c){let p=Xn.Utils.rng(i),u=te(o).strokeWidth,h=n?fe.default.rotWith(e,s,u/a):e,g=r?fe.default.rotWith(t,s,-(u/a)):t,m=fe.default.angle(s,h),f=fe.default.angle(s,g),v=[],b=8+Math.floor(Math.abs(a)/20*1+p()/2);for(let y=0;y<b;y++){let x=c(y/b),P=Xn.Utils.lerpAngles(m,f,x);v.push(fe.default.toFixed(fe.default.nudgeAtAngle(s,P,l)))}let T=(0,Ya.default)([h,...v,g],{size:1+u,thinning:.618+p()*.2,easing:Lo.easeOutQuad,simulatePressure:!1,streamline:0,last:!0});return Xn.Utils.getSvgPathFromStroke(T)}function Zn(i,o,e){return Xn.Utils.circleFromThreePoints(i,e,o)}function os(i,o,e,t,n){let r=(0,ns.intersectCircleCircle)(i,o*.618,e,t).points;if(!r)return B.warn("Could not find an intersection for the arrow head."),{left:i,right:i};let s=n?r[0]:r[1],l=s?fe.default.nudge(fe.default.rotWith(s,i,Math.PI/6),i,o*-.382):i,a=s?fe.default.nudge(fe.default.rotWith(s,i,-Math.PI/6),i,o*-.382):i;return{left:l,right:a}}function rs(i,o,e){let t=(0,ns.intersectCircleLineSegment)(i,e,i,o).points;if(!t)return B.warn("Could not find an intersection for the arrow head."),{left:i,right:i};let n=t[0],r=n?fe.default.rotWith(n,i,Math.PI/6):i,s=n?fe.default.rotWith(n,i,-Math.PI/6):i;return{left:r,right:s}}function Ec(i,o,e,t,n){let{left:r,right:s}=os(i,o,e,t,n);return`M ${r} L ${i} ${s}`}function Bc(i,o,e){let{left:t,right:n}=rs(i,o,e);return`M ${t} L ${i} ${n}`}function Vc(i,o,e,t,n,r){let{strokeWidth:s}=te(i,!1),l=fe.default.dist(o,t),a=Math.min(l/3,s*8),c=[];if(fe.default.dist(e,fe.default.toFixed(fe.default.med(o,t)))<1)c.push(`M ${o} L ${t}`),n&&c.push(Bc(o,t,a)),r&&c.push(Bc(t,o,a));else{let u=Zn(o,e,t),h=[u[0],u[1]],g=u[2],m=zo(h,g,o,t);c.push(`M ${o} A ${g} ${g} 0 0 ${m>0?"1":"0"} ${t}`),n&&c.push(Ec(o,a,h,g,m<0)),r&&c.push(Ec(t,a,h,g,m>=0))}return c.join(" ")}function ai(i,o,e){if(fe.default.dist2(o,fe.default.med(i,e))<=4)return[i,e];let t=[],n=Zn(i,o,e),r=[n[0],n[1]],s=n[2],l=fe.default.angle(r,i),a=fe.default.angle(r,e);for(let c=0;c<20;c++){let p=c/19,u=Xn.Utils.lerpAngles(l,a,p);t.push(fe.default.nudgeAtAngle(r,u,s))}return t}function Hc(i,o,e){if(e===i||e===o)return!0;let t=Math.PI*2,n=(o-i+t)%t,r=(e-i+t)%t;return n<=Math.PI!=r>n}function zo(i,o,e,t){let n=Xn.Utils.getSweep(i,e,t);return o*(2*Math.PI)*(n/(2*Math.PI))}var zc=H(require("react")),Xa=require("telva-core"),Fc=H(require("telva-vec"));var is=require("react/jsx-runtime");function gr({left:i,middle:o,right:e,stroke:t,strokeWidth:n}){return(0,is.jsxs)("g",{children:[(0,is.jsx)("path",{className:"tv-stroke-hitarea",d:`M ${i} L ${o} ${e}`}),(0,is.jsx)("path",{d:`M ${i} L ${o} ${e}`,fill:"none",stroke:t,strokeWidth:n,strokeLinecap:"round",strokeLinejoin:"round",pointerEvents:"none"})]})}var po=require("react/jsx-runtime"),Oc=zc.memo(function({id:o,style:e,start:t,bend:n,end:r,arrowBend:s,decorationStart:l,decorationEnd:a,isDraw:c,isDarkMode:p}){let u=Fc.default.dist(t,r);if(u<2)return null;let h=te(e,p),{strokeWidth:g}=h,m=1+g*1.618,f=Zn(t,n,r),v=[f[0],f[1]],b=f[2],T=zo(v,b,t,r),y=Xa.Utils.rng(o),x=Lo[y()>0?"easeInOutSine":"easeInOutCubic"],P=c?Ac(o,e,t,r,l,a,v,b,T,x):Mc(t,r,f,s),{strokeDasharray:k,strokeDashoffset:D}=Xa.Utils.getPerfectDashProps(Math.abs(T),m,e.dash,2,!1),C=Math.min(u/3,g*8),E=l?os(t,C,v,b,T<0):null,M=a?os(r,C,v,b,T>=0):null;return(0,po.jsxs)(po.Fragment,{children:[(0,po.jsx)("path",{className:"tv-stroke-hitarea",d:P}),(0,po.jsx)("path",{d:P,fill:c?h.stroke:"none",stroke:h.stroke,strokeWidth:c?0:m,strokeDasharray:k,strokeDashoffset:D,strokeLinecap:"round",strokeLinejoin:"round",pointerEvents:"none"}),E&&(0,po.jsx)(gr,{left:E.left,middle:t,right:E.right,stroke:h.stroke,strokeWidth:m}),M&&(0,po.jsx)(gr,{left:M.left,middle:r,right:M.right,stroke:h.stroke,strokeWidth:m})]})});var $c=H(require("react")),Gc=require("telva-core"),ss=H(require("telva-vec"));var uo=require("react/jsx-runtime"),jc=$c.memo(function({id:o,style:e,start:t,end:n,decorationStart:r,decorationEnd:s,isDraw:l,isDarkMode:a}){let c=ss.default.dist(t,n);if(c<2)return null;let p=te(e,a),{strokeWidth:u}=p,h=1+u*1.618,g=l?Lc(o,e,t,n,r,s):"M"+ss.default.toFixed(t)+"L"+ss.default.toFixed(n),{strokeDasharray:m,strokeDashoffset:f}=Gc.Utils.getPerfectDashProps(c,u*1.618,e.dash,2,!1),v=Math.min(c/3,u*8),b=r?rs(t,n,v):null,T=s?rs(n,t,v):null;return(0,uo.jsxs)(uo.Fragment,{children:[(0,uo.jsx)("path",{className:"tv-stroke-hitarea",d:g}),(0,uo.jsx)("path",{d:g,fill:p.stroke,stroke:p.stroke,strokeWidth:l?h/2:h,strokeDasharray:m,strokeDashoffset:f,strokeLinecap:"round",strokeLinejoin:"round",pointerEvents:"stroke"}),b&&(0,uo.jsx)(gr,{left:b.left,middle:t,right:b.right,stroke:p.stroke,strokeWidth:h}),T&&(0,uo.jsx)(gr,{left:T.left,middle:n,right:T.right,stroke:p.stroke,strokeWidth:h})]})});var kt=require("react/jsx-runtime"),as=class extends ee{constructor(){super(...arguments);d(this,"type","arrow");d(this,"hideBounds",!0);d(this,"canEdit",!0);d(this,"pathCache",new WeakMap);d(this,"getShape",e=>{var t,n,r,s;return S({id:"id",type:"arrow",name:"Arrow",parentId:"page",childIndex:1,point:[0,0],rotation:0,bend:0,handles:{start:S({id:"start",index:0,point:[0,0],canBind:!0},(t=e.handles)==null?void 0:t.start),end:S({id:"end",index:1,point:[1,1],canBind:!0},(n=e.handles)==null?void 0:n.end),bend:S({id:"bend",index:2,point:[.5,.5]},(r=e.handles)==null?void 0:r.bend)},decorations:(s=e.decorations)!=null?s:{end:"arrow"},style:S(I(S({},$e),{isFilled:!1}),e.style),label:"",labelPoint:[.5,.5]},e)});d(this,"Component",ee.Component(({shape:e,isEditing:t,isGhost:n,meta:r,events:s,onShapeChange:l,onShapeBlur:a},c)=>{var V,X,se;let{id:p,label:u="",handles:{start:h,bend:g,end:m},decorations:f={},style:v}=e,b=(X=(V=u==null?void 0:u.trim())==null?void 0:V.length)!=null?X:0>0,T=Y.Vec.dist(g.point,Y.Vec.toFixed(Y.Vec.med(h.point,m.point)))<1,y=Bt(v),x=te(v,r.isDarkMode),P=b||t?lo(u,y):[0,0],k=this.getBounds(e),D=Fo.useMemo(()=>{let{start:G,bend:ne,end:pe}=e.handles;if(T)return Y.Vec.dist(G.point,pe.point);let he=Zn(G.point,ne.point,pe.point),Me=he.slice(0,2),Tt=he[2],it=zo(Me,Tt,G.point,pe.point);return Math.abs(it)},[e.handles]),C=Math.max(.5,Math.min(1,Math.max(D/(P[1]+128),D/(P[0]+128)))),E=Fo.useMemo(()=>{let G=this.getBounds(e);return Y.Vec.sub(e.handles.bend.point,Y.Vec.toFixed([G.width/2,G.height/2]))},[e,C]),M=Fo.useCallback(G=>{l==null||l({id:p,label:G})},[l]),L=T?jc:Oc;return(0,kt.jsxs)(Wg,I(S({ref:c},s),{children:[(0,kt.jsx)(ho,{font:y,text:u,color:(se=v.labelColor)!=null?se:x.stroke,background:v.labelBackground,textGradient:v.textGradient,offsetX:E[0],offsetY:E[1],scale:C,isEditing:t,onChange:M,onBlur:a}),(0,kt.jsxs)(Gt.SVGContainer,{id:e.id+"_svg",children:[(0,kt.jsx)("defs",{children:(0,kt.jsxs)("mask",{id:e.id+"_clip",children:[(0,kt.jsx)("rect",{x:-100,y:-100,width:k.width+200,height:k.height+200,fill:"white"}),(0,kt.jsx)("rect",{x:k.width/2-P[0]/2*C+E[0],y:k.height/2-P[1]/2*C+E[1],width:P[0]*C,height:P[1]*C,rx:4*C,ry:4*C,fill:"black",opacity:1})]})}),(0,kt.jsx)("g",{pointerEvents:"none",opacity:n?.3:x.opacity,mask:b||t?`url(#${e.id}_clip)`:"",children:(0,kt.jsx)(L,{id:p,style:v,start:h.point,end:m.point,bend:g.point,arrowBend:e.bend,decorationStart:f==null?void 0:f.start,decorationEnd:f==null?void 0:f.end,isDraw:v.dash==="draw",isDarkMode:r.isDarkMode})})]})]}))}));d(this,"Indicator",ee.Indicator(({shape:e,bounds:t})=>{var b,T;let{style:n,decorations:r,label:s,handles:{start:l,bend:a,end:c}}=e,p=(T=(b=s==null?void 0:s.trim())==null?void 0:b.length)!=null?T:0>0,u=Bt(n),h=p?lo(s,u):[0,0],g=Y.Vec.dist(a.point,Y.Vec.toFixed(Y.Vec.med(l.point,c.point)))<1,m=Fo.useMemo(()=>{let{start:y,bend:x,end:P}=e.handles;if(g)return Y.Vec.dist(y.point,P.point);let k=Zn(y.point,x.point,P.point),D=k.slice(0,2),C=k[2],E=zo(D,C,y.point,P.point);return Math.abs(E)},[e.handles]),f=Math.max(.5,Math.min(1,Math.max(m/(h[1]+128),m/(h[0]+128)))),v=Fo.useMemo(()=>{let y=this.getBounds(e);return Y.Vec.sub(e.handles.bend.point,[y.width/2,y.height/2])},[e,f]);return(0,kt.jsxs)(kt.Fragment,{children:[p&&(0,kt.jsx)(kc,{id:e.id,scale:f,offset:v,bounds:t,labelSize:h}),(0,kt.jsx)("path",{d:Vc(n,l.point,a.point,c.point,r==null?void 0:r.start,r==null?void 0:r.end),mask:p?`url(#${e.id}_clip)`:""}),p&&(0,kt.jsx)("rect",{x:t.width/2-h[0]/2*f+v[0],y:t.height/2-h[1]/2*f+v[1],width:h[0]*f,height:h[1]*f,rx:4*f,ry:4*f,fill:"transparent"})]})}));d(this,"getBounds",e=>{let t=Gt.Utils.getFromCache(this.boundsCache,e,()=>{let{handles:{start:n,bend:r,end:s}}=e;return Gt.Utils.getBoundsFromPoints(ai(n.point,r.point,s.point))});return Gt.Utils.translateBounds(t,e.point)});d(this,"getRotatedBounds",e=>{let{handles:{start:t,bend:n,end:r}}=e,s=ai(t.point,n.point,r.point),{minX:l,minY:a,maxX:c,maxY:p}=Gt.Utils.getBoundsFromPoints(s);return e.rotation!==0&&(s=s.map(u=>Y.Vec.rotWith(u,[(l+c)/2,(a+p)/2],e.rotation||0))),Gt.Utils.translateBounds(Gt.Utils.getBoundsFromPoints(s),e.point)});d(this,"getCenter",e=>{let{start:t,end:n}=e.handles;return Y.Vec.add(e.point,Y.Vec.med(t.point,n.point))});d(this,"shouldRender",(e,t)=>t.decorations!==e.decorations||t.handles!==e.handles||t.style!==e.style||t.label!==e.label);d(this,"hitTestPoint",(e,t)=>{let{handles:{start:n,bend:r,end:s}}=e,l=Y.Vec.sub(t,e.point),a=ai(n.point,r.point,s.point);for(let c=1;c<a.length;c++)if(Y.Vec.distanceToLineSegment(a[c-1],a[c],l)<1)return!0;return!1});d(this,"hitTestLineSegment",(e,t,n)=>{let{handles:{start:r,bend:s,end:l}}=e,a=Y.Vec.sub(t,e.point),c=Y.Vec.sub(n,e.point),p=ai(r.point,s.point,l.point);for(let u=1;u<p.length;u++)if((0,fr.intersectLineSegmentLineSegment)(p[u-1],p[u],a,c).didIntersect)return!0;return!1});d(this,"hitTestBounds",(e,t)=>{let{start:n,end:r,bend:s}=e.handles,l=Y.Vec.add(e.point,n.point),a=Y.Vec.add(e.point,r.point);if(Gt.Utils.pointInBounds(l,t)||Gt.Utils.pointInBounds(a,t))return!0;if(Y.Vec.isEqual(Y.Vec.med(n.point,r.point),s.point))return(0,fr.intersectLineSegmentBounds)(l,a,t).length>0;{let[c,p,u]=Zn(n.point,s.point,r.point),h=Y.Vec.add(e.point,[c,p]);return(0,fr.intersectArcBounds)(h,u,l,a,t).length>0}});d(this,"transform",(e,t,{initialShape:n,scaleX:r,scaleY:s})=>{let l=this.getBounds(n),a=["start","end"],c=S({},n.handles);a.forEach(h=>{if(h==="bend")return;let[g,m]=c[h].point,f=g/l.width,v=m/l.height;c[h]=I(S({},c[h]),{point:[t.width*(r<0?1-f:f),t.height*(s<0?1-v:v)]})});let p=r>0&&s<0||r<0&&s>0?-n.bend:n.bend,u=si(c,p);return c.bend.point=u,{point:Y.Vec.toFixed([t.minX,t.minY]),handles:c,bend:p}});d(this,"onDoubleClickHandle",(e,t)=>{var n,r;switch(t){case"bend":return{bend:0,handles:I(S({},e.handles),{bend:I(S({},e.handles.bend),{point:si(e.handles,e.bend)})})};case"start":return{decorations:I(S({},e.decorations),{start:(n=e.decorations)!=null&&n.start?void 0:"arrow"})};case"end":return{decorations:I(S({},e.decorations),{end:(r=e.decorations)!=null&&r.end?void 0:"arrow"})}}return this});d(this,"onHandleChange",(e,t)=>{let n=Gt.Utils.deepMerge(e.handles,t),r=e.bend;if(n=Gt.Utils.deepMerge(n,{start:{point:Y.Vec.toFixed(n.start.point)},end:{point:Y.Vec.toFixed(n.end.point)}}),Y.Vec.isEqual(n.start.point,n.end.point))return;if("bend"in t){let{start:p,end:u,bend:h}=n,g=Y.Vec.dist(p.point,u.point),m=Y.Vec.med(p.point,u.point),f=Y.Vec.angle(p.point,u.point),v=Y.Vec.uni(Y.Vec.vec(p.point,u.point)),b=Y.Vec.add(m,Y.Vec.mul(Y.Vec.per(v),g)),T=Y.Vec.sub(m,Y.Vec.mul(Y.Vec.per(v),g)),y=Y.Vec.nearestPointOnLineSegment(b,T,h.point,!0),P=Y.Vec.dist(m,y)/(g/2);r=Gt.Utils.clamp(P,-.99,.99);let k=Y.Vec.angle(p.point,y);Y.Vec.isEqual(m,si(n,r))?r=0:Hc(f,f+Math.PI,k)&&(r*=-1)}let s={point:e.point,bend:r,handles:I(S({},n),{bend:I(S({},n.bend),{point:si(n,r)})})},l=e.point,a=this.getBounds(S({},s)),c=Y.Vec.sub([a.minX,a.minY],l);return Y.Vec.isEqual(c,[0,0])||(Object.values(s.handles).forEach(p=>{p.point=Y.Vec.toFixed(Y.Vec.sub(p.point,c))}),s.point=Y.Vec.toFixed(Y.Vec.add(s.point,c))),s});d(this,"getSvgElement",(e,t)=>{var s,l,a,c,p;let n=(s=document.getElementById(e.id+"_svg"))==null?void 0:s.cloneNode(!0);if(!n)return;if((c=(a=(l=e.label)==null?void 0:l.trim())==null?void 0:a.length)!=null?c:0>0){let u=e,h=document.createElementNS("http://www.w3.org/2000/svg","g"),g=Bt(e.style),m=lo(e.label,g),f=Ho(e.style.size,e.style.font)*((p=e.style.scale)!=null?p:1),v=Ln(e.style.font).slice(1,-1),b=co(u.label,f,v,"start",m[0],!1),T,{start:y,bend:x,end:P}=e.handles;if(Y.Vec.dist(x.point,Y.Vec.toFixed(Y.Vec.med(y.point,P.point)))<1)T=Y.Vec.dist(y.point,P.point);else{let V=Zn(y.point,x.point,P.point),X=V.slice(0,2),se=V[2],G=zo(X,se,y.point,P.point);T=Math.abs(G)}let D=Math.max(.5,Math.min(1,Math.max(T/(m[1]+128),T/(m[0]+128)))),C=this.getBounds(e),E=Y.Vec.sub(e.handles.bend.point,[C.width/2,C.height/2]),M=C.width/2-m[0]/2*D+E[0],L=C.height/2-m[1]/2*D+E[1];return b.setAttribute("transform",`translate(${M}, ${L})`),b.setAttribute("fill",te(e.style,t).stroke),b.setAttribute("transform-origin","center center"),h.setAttribute("text-align","center"),h.setAttribute("text-anchor","middle"),h.appendChild(n),h.appendChild(b),h}return n})}},Wg=R("div",{width:"100%",height:"100%"});var an=H(require("react")),je=require("telva-core"),qn=require("telva-intersect"),sn=require("telva-vec");var Oo=require("react/jsx-runtime");function Ct(i,o){var s,l,a;let e=o.gradient;if(!e||!o.isFilled||!e.stops||e.stops.length<2)return{defs:null,gradFill:null};let t=`grad-${i}`,n=e.stops.map((c,p)=>(0,Oo.jsx)("stop",{offset:`${c.position}%`,stopColor:c.color,stopOpacity:c.opacity},p));if(e.type==="linear"){let p=(((s=e.angle)!=null?s:90)-90)*Math.PI/180,u=Math.cos(p),h=Math.sin(p),g=50-u*50,m=50-h*50,f=50+u*50,v=50+h*50;return{defs:(0,Oo.jsx)("defs",{children:(0,Oo.jsx)("linearGradient",{id:t,x1:`${g}%`,y1:`${m}%`,x2:`${f}%`,y2:`${v}%`,gradientUnits:"objectBoundingBox",children:n})}),gradFill:`url(#${t})`}}if(e.type==="radial"){let c=((l=e.centerX)!=null?l:50)/100,p=((a=e.centerY)!=null?a:50)/100;return{defs:(0,Oo.jsx)("defs",{children:(0,Oo.jsx)("radialGradient",{id:t,cx:c,cy:p,r:"0.5",gradientUnits:"objectBoundingBox",children:n})}),gradFill:`url(#${t})`}}return{defs:(0,Oo.jsx)("defs",{children:(0,Oo.jsx)("linearGradient",{id:t,x1:"0%",y1:"0%",x2:"100%",y2:"100%",gradientUnits:"objectBoundingBox",children:n})}),gradFill:`url(#${t})`}}var li=require("perfect-freehand"),cs=require("telva-core"),ls=H(require("telva-vec"));var Ng={easing:i=>Math.sin(i*Math.PI/2),simulatePressure:!0},Ug={easing:i=>i*i,simulatePressure:!1};function Za(i){let o=te(i.style);return I(S({size:1+o.strokeWidth*1.5,thinning:.7,streamline:.35,smoothing:.5},i.points[1][2]===.5?Ng:Ug),{last:i.isComplete})}function Wc(i){return i.points.length<2?"":cs.Utils.getSvgPathFromStroke((0,li.getStrokePoints)(i.points,Za(i)).map(o=>o.point))}function Nc(i,o){return(0,li.getStrokePoints)(i.points,o)}function Uc(i){if(i.points.length<2)return"";let o=Za(i),e=Nc(i,o);return cs.Utils.getSvgPathFromStroke((0,li.getStrokeOutlinePoints)(e,o))}function qa(i){let{points:o}=i;if(o.length<2)return"M 0 0 L 0 0";let e=Za(i),t=Nc(i,e),n=o[o.length-1];return ls.default.isEqual(t[0].point,n)||t.push({point:n}),cs.Utils.getSvgPathFromStrokePoints(t)}function Kc(i){let{points:o}=i;if(o.length<2)return"M 0 0 L 0 0";let e=ds(o,3);if(e.length<2)return`M ${o[0][0]} ${o[0][1]} L ${o[o.length-1][0]} ${o[o.length-1][1]}`;let t=`M ${e[0][0].toFixed(2)} ${e[0][1].toFixed(2)}`;for(let n=1;n<e.length;n++)t+=` L ${e[n][0].toFixed(2)} ${e[n][1].toFixed(2)}`;return t}function _c(i){let{points:o}=i;if(o.length<3)return"";let e=ds(o,3);if(e.length<3)return"";let t=`M ${e[0][0].toFixed(2)} ${e[0][1].toFixed(2)}`;for(let n=1;n<e.length;n++)t+=` L ${e[n][0].toFixed(2)} ${e[n][1].toFixed(2)}`;return t+=" Z",t}function ds(i,o){if(i.length<=2)return i;let e=0,t=0,n=i[0],r=i[i.length-1];for(let s=1;s<i.length-1;s++){let l=Kg(i[s],n,r);l>e&&(e=l,t=s)}if(e>o){let s=ds(i.slice(0,t+1),o),l=ds(i.slice(t),o);return[...s.slice(0,-1),...l]}return[n,r]}function Kg(i,o,e){let t=e[0]-o[0],n=e[1]-o[1],r=Math.sqrt(t*t+n*n);if(r===0)return ls.default.dist(i,o);let s=((i[0]-o[0])*t+(i[1]-o[1])*n)/(r*r),l=[o[0]+s*t,o[1]+s*n];return ls.default.dist(i,l)}var ot=require("react/jsx-runtime"),ps=class extends ee{constructor(){super(...arguments);d(this,"type","draw");d(this,"pointsBoundsCache",new WeakMap([]));d(this,"shapeBoundsCache",new Map);d(this,"rotatedCache",new WeakMap([]));d(this,"pointCache",{});d(this,"canClone",!0);d(this,"getShape",e=>je.Utils.deepMerge({id:"id",type:"draw",name:"Draw",parentId:"page",childIndex:1,point:[0,0],rotation:0,style:$e,points:[],isComplete:!1},e));d(this,"Component",ee.Component(({shape:e,meta:t,isSelected:n,isGhost:r,events:s},l)=>{var tt;let{points:a,style:c,isComplete:p}=e,u=t.canvasMode==="straight",h=t.nodeEditingId===e.id,g=_(),m=an.useRef(null),[f,v]=an.useState(null),b=an.useCallback((be,j)=>sn.Vec.sub(g.getPagePoint([be,j]),e.point),[g,e.point]),T=an.useCallback(be=>{if(be.length===0)return;let j=Math.min(...be.map(N=>N[0])),ae=Math.min(...be.map(N=>N[1])),le=be.map(([N,Q,re])=>[+(N-j).toFixed(2),+(Q-ae).toFixed(2),re!=null?re:.5]),Z=sn.Vec.add(e.point,[j,ae]);g.updateShapes({id:e.id,point:Z,points:le})},[g,e.id,e.point]),y=an.useMemo(()=>u?_c(e):Wc(e),[a,c.size,u,c.strokeWidthOverride]),x=an.useMemo(()=>u?Kc(e):c.dash==="draw"?Uc(e):qa(e),[a,c.size,c.dash,p,u,c.strokeWidthOverride]),P=te(c,t.isDarkMode),{stroke:k,fill:D,strokeWidth:C,opacity:E}=P,{defs:M,gradFill:L}=Ct(e.id,c),V=L!=null?L:D,X=(tt=g.zoom)!=null?tt:1,se=an.useMemo(()=>{if(!h||a.length<1)return null;let be=5/X,j=3.5/X,ae=a.map((Z,N)=>(0,ot.jsx)("circle",{cx:Z[0],cy:Z[1],r:f===N?be*1.4:be,fill:f===N?"#0D99FF":"white",stroke:"#0D99FF",strokeWidth:1.5/X,style:{cursor:"move",pointerEvents:"all"},onPointerEnter:()=>v(N),onPointerLeave:()=>v(null),onPointerDown:Q=>{Q.stopPropagation(),Q.currentTarget.setPointerCapture(Q.pointerId),m.current={nodeIdx:N}},onPointerMove:Q=>{var Le;if(!m.current||m.current.nodeIdx!==N)return;Q.stopPropagation();let re=b(Q.clientX,Q.clientY),z=[...a];z[N]=[re[0],re[1],(Le=a[N][2])!=null?Le:.5],g.patchState({document:{pages:{[g.currentPageId]:{shapes:{[e.id]:{points:z}}}}}})},onPointerUp:Q=>{var Le;if(!m.current)return;Q.stopPropagation();let re=b(Q.clientX,Q.clientY),z=[...a];z[N]=[re[0],re[1],(Le=a[N][2])!=null?Le:.5],m.current=null,T(z)}},`n-${N}`)),le=a.slice(0,-1).map((Z,N)=>{let Q=a[N+1],re=(Z[0]+Q[0])/2,z=(Z[1]+Q[1])/2;return(0,ot.jsx)("circle",{cx:re,cy:z,r:j,fill:"white",stroke:"#0D99FF",strokeWidth:1/X,strokeDasharray:`${2/X} ${2/X}`,style:{cursor:"crosshair",pointerEvents:"all"},onPointerDown:Le=>{Le.stopPropagation();let Kt=[re,z,.5],Qt=[...a.slice(0,N+1),Kt,...a.slice(N+1)];g.updateShapes({id:e.id,points:Qt})}},`m-${N}`)});return(0,ot.jsxs)("g",{style:{pointerEvents:"none"},children:[a.slice(0,-1).map((Z,N)=>(0,ot.jsx)("line",{x1:Z[0],y1:Z[1],x2:a[N+1][0],y2:a[N+1][1],stroke:"#0D99FF",strokeWidth:1/X,strokeOpacity:.4,pointerEvents:"none"},`l-${N}`)),le,ae]})},[h,a,X,f,e.id,g.currentPageId]),G=this.getBounds(e);if(G.width<=C/2&&G.height<=C/2){let be=1+C;return(0,ot.jsxs)(je.SVGContainer,I(S({ref:l,id:e.id+"_svg"},s),{children:[M,(0,ot.jsx)("circle",{r:be,fill:k,stroke:k,pointerEvents:"all",opacity:r?.3:E})]}))}let pe=c.isFilled&&a.length>3&&sn.Vec.dist(a[0],a[a.length-1])<C*2,he=h?{overflow:"visible"}:void 0;if(!u&&e.style.dash==="draw")return(0,ot.jsxs)(je.SVGContainer,I(S({ref:l,id:e.id+"_svg"},s),{style:he,children:[M,(0,ot.jsxs)("g",{opacity:r?.3:E,children:[(0,ot.jsx)("path",{className:pe||n?"tv-fill-hitarea":"tv-stroke-hitarea",d:x}),pe&&(0,ot.jsx)("path",{d:y,stroke:"none",fill:V,strokeLinejoin:"round",strokeLinecap:"round",pointerEvents:"none"}),(0,ot.jsx)("path",{d:x,fill:k,stroke:k,strokeWidth:C/2,strokeLinejoin:"round",strokeLinecap:"round",pointerEvents:"none"})]}),se]}));let Me=u?"none":{["draw"]:"none",["solid"]:"none",["dotted"]:`0.1 ${C*4}`,["dashed"]:`${C*4} ${C*4}`}[c.dash],Tt=u?"none":{["draw"]:"none",["solid"]:"none",["dotted"]:"0",["dashed"]:"0"}[c.dash],it=1+C*1.5;return(0,ot.jsxs)(je.SVGContainer,I(S({ref:l,id:e.id+"_svg"},s),{style:he,children:[M,(0,ot.jsxs)("g",{opacity:r?.3:E,children:[(0,ot.jsx)("path",{className:pe&&n?"tv-fill-hitarea":"tv-stroke-hitarea",d:x}),(0,ot.jsx)("path",{d:x,fill:pe?V:"none",stroke:"none",strokeWidth:Math.min(4,C*2),strokeLinejoin:u?"miter":"round",strokeLinecap:u?"square":"round",pointerEvents:"none"}),(0,ot.jsx)("path",{d:x,fill:"none",stroke:k,strokeWidth:it,strokeDasharray:Me,strokeDashoffset:Tt,strokeLinejoin:u?"miter":"round",strokeLinecap:u?"square":"round",pointerEvents:"none"})]}),se]}))}));d(this,"Indicator",ee.Indicator(({shape:e})=>{let{points:t}=e,n=an.useMemo(()=>qa(e),[t,e.style.size,e.style.strokeWidthOverride]),r=this.getBounds(e);return r.width<4&&r.height<4?(0,ot.jsx)("circle",{x:r.width/2,y:r.height/2,r:1}):(0,ot.jsx)("path",{d:n})}));d(this,"transform",(e,t,{initialShape:n,scaleX:r,scaleY:s})=>{let l=je.Utils.getFromCache(this.boundsCache,n,()=>je.Utils.getBoundsFromPoints(n.points)),a=n.points.map(([u,h,g])=>[t.width*(r<0?1-u/l.width:u/l.width),t.height*(s<0?1-h/l.height:h/l.height),g]),c=je.Utils.getBoundsFromPoints(e.points),p=sn.Vec.sub([t.minX,t.minY],[c.minX,c.minY]);return{points:a,point:p}});d(this,"getBounds",e=>{let t=!this.pointsBoundsCache.has(e.points),n=this.pointCache[e.id]!==e.point;if(t){let r=je.Utils.getBoundsFromPoints(e.points);this.pointsBoundsCache.set(e.points,r),this.shapeBoundsCache.set(e.id,je.Utils.translateBounds(r,e.point)),this.pointCache[e.id]=e.point}else n&&!t&&(this.pointCache[e.id]=e.point,this.shapeBoundsCache.set(e.id,je.Utils.translateBounds(this.pointsBoundsCache.get(e.points),e.point)));return this.shapeBoundsCache.get(e.id)});d(this,"shouldRender",(e,t)=>t.points!==e.points||t.style!==e.style||t.isComplete!==e.isComplete);d(this,"hitTestPoint",(e,t)=>{let n=sn.Vec.sub(t,e.point);return je.Utils.pointInPolyline(n,e.points)});d(this,"hitTestLineSegment",(e,t,n)=>{let{points:r,point:s}=e,l=sn.Vec.sub(t,s),a=sn.Vec.sub(n,s),c=this.getBounds(e);if(c.width<8&&c.height<8)return sn.Vec.distanceToLineSegment(t,n,je.Utils.getBoundsCenter(c))<5;if((0,qn.intersectLineSegmentBounds)(l,a,c)){for(let p=1;p<r.length;p++)if((0,qn.intersectLineSegmentLineSegment)(r[p-1],r[p],l,a).didIntersect)return!0}return!1});d(this,"hitTestBounds",(e,t)=>{if(!e.rotation){let s=this.getBounds(e);return je.Utils.boundsContain(t,s)||(je.Utils.boundsContain(s,t)||(0,qn.intersectBoundsBounds)(s,t).length>0)&&(0,qn.intersectBoundsPolyline)(je.Utils.translateBounds(t,sn.Vec.neg(e.point)),e.points).length>0}let n=this.getRotatedBounds(e),r=je.Utils.getFromCache(this.rotatedCache,e,()=>{let s=je.Utils.getBoundsCenter(je.Utils.getBoundsFromPoints(e.points));return e.points.map(l=>sn.Vec.rotWith(l,s,e.rotation||0))});return je.Utils.boundsContain(t,n)||(0,qn.intersectBoundsPolyline)(je.Utils.translateBounds(t,sn.Vec.neg(e.point)),r).length>0})}};var ep=H(require("react")),ln=require("telva-core"),go=require("telva-intersect"),wt=require("telva-vec");var Yc=H(require("react")),Ja=require("telva-core");var Sr=require("react/jsx-runtime"),Xc=Yc.memo(function({id:o,radius:e,style:t,isSelected:n,isDarkMode:r}){let{stroke:s,strokeWidth:l,fill:a}=te(t,r),{defs:c,gradFill:p}=Ct(o,t),u=p!=null?p:a,h=1+l*1.618,g=Math.max(0,e[0]-h/2),m=Math.max(0,e[1]-h/2),f=Ja.Utils.perimeterOfEllipse(g,m),{strokeDasharray:v,strokeDashoffset:b}=Ja.Utils.getPerfectDashProps(f<64?f*2:f,l*1.618,t.dash,4);return(0,Sr.jsxs)(Sr.Fragment,{children:[c,(0,Sr.jsx)("ellipse",{className:t.isFilled||n?"tv-fill-hitarea":"tv-stroke-hitarea",cx:e[0],cy:e[1],rx:e[0],ry:e[1]}),(0,Sr.jsx)("ellipse",{cx:e[0],cy:e[1],rx:g,ry:m,fill:u,stroke:s,strokeWidth:h,strokeDasharray:v,strokeDashoffset:b,pointerEvents:"none",strokeLinecap:"round",strokeLinejoin:"round"})]})});var Jc=H(require("react"));var us=require("perfect-freehand"),$o=require("telva-core");function Zc(i,o,e){let{strokeWidth:t}=te(e),n=$o.Utils.rng(i),r=o[0]+n()*t*2,s=o[1]+n()*t*2,l=$o.Utils.perimeterOfEllipse(r,s),a=[],c=Math.PI+Math.PI*n(),p=Math.abs(n()),u=Math.max(16,l/10);for(let h=0;h<u;h++){let g=Lo.easeInOutSine(h/(u+1)),m=c*2+Math.PI*(2+p)*g,f=Math.cos(m),v=Math.sin(m);a.push([r*f+o[0],s*v+o[1],g+.5+n()/2])}return(0,us.getStrokePoints)(a,{size:1+t*2,thinning:.618,end:{taper:l/8},start:{taper:l/12},streamline:0,simulatePressure:!0})}function qc(i,o,e){let{strokeWidth:t}=te(e),n=$o.Utils.rng(i),r=o[0]+n()*t*2,s=o[1]+n()*t*2,l=$o.Utils.perimeterOfEllipse(r,s);return $o.Utils.getSvgPathFromStroke((0,us.getStrokeOutlinePoints)(Zc(i,o,e),{size:2+t*2,thinning:.618,end:{taper:l/8},start:{taper:l/12},streamline:0,simulatePressure:!0}))}function hs(i,o,e){return $o.Utils.getSvgPathFromStrokePoints(Zc(i,o,e))}var Go=require("react/jsx-runtime"),Qc=Jc.memo(function({id:o,radius:e,style:t,isSelected:n,isDarkMode:r}){let{stroke:s,strokeWidth:l,fill:a}=te(t,r),{defs:c,gradFill:p}=Ct(o,t),u=p!=null?p:a,h=qc(o,e,t);return(0,Go.jsxs)(Go.Fragment,{children:[c,(0,Go.jsx)("ellipse",{className:t.isFilled||n?"tv-fill-hitarea":"tv-stroke-hitarea",cx:e[0],cy:e[1],rx:e[0],ry:e[1]}),t.isFilled&&(0,Go.jsx)("path",{d:hs(o,e,t),stroke:"none",fill:u,pointerEvents:"none"}),(0,Go.jsx)("path",{d:h,fill:s,stroke:s,strokeWidth:l,pointerEvents:"none",strokeLinecap:"round",strokeLinejoin:"round"})]})});var mo=require("react/jsx-runtime"),ms=class extends ee{constructor(){super(...arguments);d(this,"type","ellipse");d(this,"canBind",!0);d(this,"canClone",!0);d(this,"canEdit",!0);d(this,"getShape",e=>ln.Utils.deepMerge({id:"id",type:"ellipse",name:"Ellipse",parentId:"page",childIndex:1,point:[0,0],radius:[1,1],rotation:0,style:$e,label:"",labelPoint:[.5,.5]},e));d(this,"Component",ee.Component(({shape:e,isGhost:t,isSelected:n,isBinding:r,isEditing:s,meta:l,bounds:a,events:c,onShapeChange:p,onShapeBlur:u},h)=>{var L;let{id:g,radius:m,style:f,label:v="",labelPoint:b=pr}=e,T=Bt(e.style),y=te(f,l.isDarkMode),x=y.strokeWidth,P=1+x*1.618,k=Math.max(0,m[0]-P/2),D=Math.max(0,m[1]-P/2),E=!(l.canvasMode==="straight")&&f.dash==="draw"?Qc:Xc,M=ep.useCallback(V=>p==null?void 0:p({id:g,label:V}),[p]);return(0,mo.jsxs)(_g,I(S({ref:h},c),{children:[(0,mo.jsx)(ho,{isEditing:s,onChange:M,onBlur:u,font:T,text:v,color:(L=f.labelColor)!=null?L:y.stroke,background:f.labelBackground,textGradient:f.textGradient,offsetX:(b[0]-.5)*a.width,offsetY:(b[1]-.5)*a.height,width:Math.max(0,a.width*.707-16)}),(0,mo.jsxs)(ln.SVGContainer,{id:e.id+"_svg",opacity:t?.3:y.opacity,children:[r&&(0,mo.jsx)("ellipse",{className:"tv-binding-indicator",cx:a.width/2,cy:a.height/2,rx:Math.max(0,a.width/2),ry:Math.max(0,a.height/2),strokeWidth:y.strokeWidth}),(0,mo.jsx)(E,{id:g,style:f,radius:m,isSelected:n,isDarkMode:l.isDarkMode})]})]}))}));d(this,"Indicator",ee.Indicator(({shape:e,meta:t})=>{let{id:n,radius:r,style:s}=e,a=te(s).strokeWidth,c=1+a*1.618,p=Math.max(0,r[0]-c/2),u=Math.max(0,r[1]-c/2);return!((t==null?void 0:t.canvasMode)==="straight")&&s.dash==="draw"?(0,mo.jsx)("path",{d:hs(n,r,s)}):(0,mo.jsx)("ellipse",{cx:r[0],cy:r[1],rx:p,ry:u})}));d(this,"hitTestPoint",(e,t)=>ln.Utils.pointInBounds(t,this.getRotatedBounds(e))&&ln.Utils.pointInEllipse(t,this.getCenter(e),e.radius[0],e.radius[1],e.rotation||0));d(this,"hitTestLineSegment",(e,t,n)=>(0,go.intersectLineSegmentEllipse)(t,n,this.getCenter(e),e.radius[0],e.radius[1],e.rotation||0).didIntersect);d(this,"getBounds",e=>ln.Utils.getFromCache(this.boundsCache,e,()=>ln.Utils.getRotatedEllipseBounds(e.point[0],e.point[1],e.radius[0],e.radius[1],0)));d(this,"getRotatedBounds",e=>ln.Utils.getRotatedEllipseBounds(e.point[0],e.point[1],e.radius[0],e.radius[1],e.rotation));d(this,"hitTestBounds",(e,t)=>{let n=this.getBounds(e);return ln.Utils.boundsContained(n,t)||(0,go.intersectEllipseBounds)(this.getCenter(e),e.radius[0],e.radius[1],e.rotation||0,t).length>0});d(this,"shouldRender",(e,t)=>t.radius!==e.radius||t.style!==e.style||t.label!==e.label);d(this,"getCenter",e=>wt.Vec.add(e.point,e.radius));d(this,"getBindingPoint",(e,t,n,r,s,l)=>{{let a=this.getExpandedBounds(e),c=this.getCenter(e),p,u;if(!ln.Utils.pointInEllipse(n,c,e.radius[0]+this.bindingDistance,e.radius[1]+this.bindingDistance))return;if(l)wt.Vec.dist(n,this.getCenter(e))<12?p=[.5,.5]:p=wt.Vec.divV(wt.Vec.sub(n,[a.minX,a.minY]),[a.width,a.height]),u=0;else{let h=(0,go.intersectRayEllipse)(r,s,c,e.radius[0],e.radius[1],e.rotation||0).points.sort((m,f)=>wt.Vec.dist(m,r)-wt.Vec.dist(f,r))[0];if(h||(h=(0,go.intersectLineSegmentEllipse)(n,c,c,e.radius[0],e.radius[1],e.rotation||0).points.sort((m,f)=>wt.Vec.dist(m,n)-wt.Vec.dist(f,n))[0]),!h)return;let g=wt.Vec.med(n,h);if(wt.Vec.distanceToLineSegment(n,g,this.getCenter(e))<12?p=[.5,.5]:p=wt.Vec.divV(wt.Vec.sub(g,[a.minX,a.minY]),[a.width,a.height]),ln.Utils.pointInEllipse(n,c,e.radius[0],e.radius[1],e.rotation||0))u=this.bindingDistance/2;else{let m=(0,go.intersectLineSegmentEllipse)(n,c,c,e.radius[0],e.radius[1],e.rotation||0).points[0];if(!m)return;u=Math.max(this.bindingDistance/2,wt.Vec.dist(n,m))}}return{point:p,distance:u}}});d(this,"transform",(e,t,{scaleX:n,scaleY:r,initialShape:s})=>{let{rotation:l=0}=s;return{point:[t.minX,t.minY],radius:[t.width/2,t.height/2],rotation:n<0&&r>=0||r<0&&n>=0?-(l||0):l||0}});d(this,"transformSingle",(e,t)=>({point:wt.Vec.toFixed([t.minX,t.minY]),radius:wt.Vec.div([t.width,t.height],2)}))}},_g=R("div",{width:"100%",height:"100%"});var fs=require("telva-core");var Jn=require("react/jsx-runtime"),gs=class extends ee{constructor(){super(...arguments);d(this,"type","group");d(this,"canBind",!0);d(this,"getShape",e=>fs.Utils.deepMerge({id:"id",type:"group",name:"Group",parentId:"page",childIndex:1,point:[0,0],size:[100,100],rotation:0,children:[],style:$e},e));d(this,"Component",ee.Component(({shape:e,isBinding:t,isGhost:n,isHovered:r,isSelected:s,events:l},a)=>{let{id:c,size:p}=e,u=2,h=Math.max(0,p[0]-u/2),g=Math.max(0,p[1]-u/2),f=[[[u/2,u/2],[h,u/2],h-u/2],[[h,u/2],[h,g],g-u/2],[[h,g],[u/2,g],h-u/2],[[u/2,g],[u/2,u/2],g-u/2]].map(([v,b],T)=>(0,Jn.jsx)("line",{x1:v[0],y1:v[1],x2:b[0],y2:b[1]},c+"_"+T));return(0,Jn.jsxs)(fs.SVGContainer,I(S({ref:a},l),{children:[t&&(0,Jn.jsx)("rect",{className:"tv-binding-indicator",strokeWidth:this.bindingDistance}),(0,Jn.jsxs)("g",{opacity:n?.3:1,children:[(0,Jn.jsx)("rect",{x:0,y:0,width:p[0],height:p[1],fill:"transparent",pointerEvents:"all"}),(0,Jn.jsx)(tp,{stroke:"black",opacity:r||s?1:0,strokeLinecap:"round",pointerEvents:"stroke",children:f})]})]}))}));d(this,"Indicator",ee.Indicator(({shape:e})=>{let{id:t,size:n}=e,r=2,s=Math.max(0,n[0]-r/2),l=Math.max(0,n[1]-r/2),c=[[[r/2,r/2],[s,r/2],s-r/2],[[s,r/2],[s,l],l-r/2],[[s,l],[r/2,l],s-r/2],[[r/2,l],[r/2,r/2],l-r/2]].map(([p,u],h)=>(0,Jn.jsx)("line",{x1:p[0],y1:p[1],x2:u[0],y2:u[1]},t+"_"+h));return(0,Jn.jsx)(tp,{strokeLinecap:"round",pointerEvents:"stroke",children:c})}));d(this,"getBounds",e=>Ot(e,this.boundsCache));d(this,"shouldRender",(e,t)=>t.size!==e.size||t.style!==e.style)}},tp=R("g",{strokeWidth:"calc(1.5px * var(--tv-scale))",strokeDasharray:"calc(1px * var(--tv-scale)), calc(3px * var(--tv-scale))"});var Qa=require("@stitches/react"),di=H(require("react")),ys=require("telva-core");var yr=require("react/jsx-runtime"),Ss=class extends ee{constructor(){super(...arguments);d(this,"type","image");d(this,"canBind",!0);d(this,"canClone",!0);d(this,"isAspectRatioLocked",!0);d(this,"showCloneHandles",!1);d(this,"getShape",e=>ys.Utils.deepMerge({id:"image",type:"image",name:"Image",parentId:"page",childIndex:1,point:[0,0],size:[1,1],rotation:0,style:I(S({},$e),{isFilled:!0}),assetId:"assetId"},e));d(this,"Component",ee.Component(({shape:e,asset:t={src:""},isBinding:n,isGhost:r,meta:s,events:l,onShapeChange:a},c)=>{let{size:p,style:u}=e,{bindingDistance:h}=this,g=di.useRef(null),m=di.useRef(null);return di.useLayoutEffect(()=>{let f=m.current;if(!f)return;let[v,b]=p;f.style.width=`${v}px`,f.style.height=`${b}px`},[p]),(0,yr.jsxs)(ys.HTMLContainer,I(S({ref:c},l),{children:[n&&(0,yr.jsx)("div",{className:"tv-binding-indicator",style:{position:"absolute",top:`calc(${-h}px * var(--tv-zoom))`,left:`calc(${-h}px * var(--tv-zoom))`,width:`calc(100% + ${h*2}px * var(--tv-zoom))`,height:`calc(100% + ${h*2}px * var(--tv-zoom))`,backgroundColor:"var(--tv-selectFill)"}}),(0,yr.jsx)(Yg,{ref:m,isDarkMode:s.isDarkMode,isFilled:u.isFilled,isGhost:r,children:(0,yr.jsx)(Xg,{id:e.id+"_image",ref:g,src:t.src,alt:"tl_image_asset",draggable:!1})})]}))}));d(this,"Indicator",ee.Indicator(({shape:e})=>{let{size:[t,n]}=e;return(0,yr.jsx)("rect",{x:0,y:0,rx:2,ry:2,width:Math.max(1,t),height:Math.max(1,n)})}));d(this,"getBounds",e=>Ot(e,this.boundsCache));d(this,"shouldRender",(e,t)=>t.size!==e.size||t.style!==e.style);d(this,"transform",Vn);d(this,"transformSingle",Hn);d(this,"getSvgElement",e=>{let t=this.getBounds(e),n=document.createElementNS("http://www.w3.org/2000/svg","image");return n.setAttribute("width",`${t.width}`),n.setAttribute("height",`${t.height}`),n.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink"),n})}},Yg=(0,Qa.styled)("div",{pointerEvents:"all",position:"relative",fontFamily:"sans-serif",fontSize:"2em",height:"100%",width:"100%",borderRadius:"3px",perspective:"800px",overflow:"hidden",p:{userSelect:"none"},img:{userSelect:"none"},variants:{isGhost:{false:{opacity:1},true:{transition:"opacity .2s",opacity:.3}},isFilled:{true:{},false:{}},isDarkMode:{true:{},false:{}}},compoundVariants:[{isFilled:!0,isDarkMode:!0,css:{boxShadow:"2px 3px 12px -2px rgba(0,0,0,.3), 1px 1px 4px rgba(0,0,0,.3), 1px 1px 2px rgba(0,0,0,.3)"}},{isFilled:!0,isDarkMode:!1,css:{boxShadow:"2px 3px 12px -2px rgba(0,0,0,.2), 1px 1px 4px rgba(0,0,0,.16), 1px 1px 2px rgba(0,0,0,.16)"}}]}),Xg=(0,Qa.styled)("img",{position:"absolute",top:0,left:0,width:"100%",height:"100%",maxWidth:"100%",minWidth:"100%",pointerEvents:"none",objectFit:"cover",userSelect:"none",borderRadius:2});var vn=H(require("react")),ft=require("telva-core"),Ts=require("telva-intersect"),Mt=require("telva-vec");var op=require("telva-core"),Zg=24;function qg(i,o,e,t,n){let r=1-n,s=r*r,l=n*n,a=s*r,c=3*s*n,p=3*r*l,u=l*n;return[a*i[0]+c*o[0]+p*e[0]+u*t[0],a*i[1]+c*o[1]+p*e[1]+u*t[1]]}function np(i,o,e,t){var a,c;let n=(a=o.cp2)!=null?a:o.point,r=(c=e.cp1)!=null?c:e.point;if(!(o.cp2!=null||e.cp1!=null)){i.push(e.point);return}let l=Math.max(4,t);for(let p=1;p<=l;p++){let u=p/l;i.push(qg(o.point,n,r,e.point,u))}}function ci(i,o,e=Zg){if(i.length===0)return[];if(i.length===1)return[i[0].point];let t=[i[0].point];for(let n=1;n<i.length;n++)np(t,i[n-1],i[n],e);return o&&i.length>2&&np(t,i[i.length-1],i[0],e),t}function el(i,o){var t,n,r,s;if(i.length===0)return"";if(i.length===1){let{point:l}=i[0];return`M ${l[0]} ${l[1]}`}let e=`M ${i[0].point[0].toFixed(2)} ${i[0].point[1].toFixed(2)}`;for(let l=1;l<i.length;l++){let a=i[l-1],c=i[l],p=(t=a.cp2)!=null?t:a.point,u=(n=c.cp1)!=null?n:c.point;a.cp2!=null||c.cp1!=null?e+=` C ${p[0].toFixed(2)} ${p[1].toFixed(2)} ${u[0].toFixed(2)} ${u[1].toFixed(2)} ${c.point[0].toFixed(2)} ${c.point[1].toFixed(2)}`:e+=` L ${c.point[0].toFixed(2)} ${c.point[1].toFixed(2)}`}if(o&&i.length>2){let l=i[i.length-1],a=i[0],c=(r=l.cp2)!=null?r:l.point,p=(s=a.cp1)!=null?s:a.point;(l.cp2!=null||a.cp1!=null)&&(e+=` C ${c[0].toFixed(2)} ${c[1].toFixed(2)} ${p[0].toFixed(2)} ${p[1].toFixed(2)} ${a.point[0].toFixed(2)} ${a.point[1].toFixed(2)}`),e+=" Z"}return e}function bs(i,o=!1){if(i.length===0)return{minX:0,minY:0,maxX:1,maxY:1,width:1,height:1};let e=ci(i,o);return e.length===0?{minX:0,minY:0,maxX:1,maxY:1,width:1,height:1}:op.Utils.getBoundsFromPoints(e)}function tl(i,o=!1){if(i.length===0)return{segments:i,offset:[0,0]};let e=bs(i,o),t=[e.minX,e.minY];return{segments:i.map(r=>({point:[r.point[0]-t[0],r.point[1]-t[1]],cp1:r.cp1?[r.cp1[0]-t[0],r.cp1[1]-t[1]]:void 0,cp2:r.cp2?[r.cp2[0]-t[0],r.cp2[1]-t[1]]:void 0})),offset:t}}function pi(i,o){return[2*i[0]-o[0],2*i[1]-o[1]]}var Je=require("react/jsx-runtime"),vs=class extends ee{constructor(){super(...arguments);d(this,"type","pen");d(this,"canClone",!0);d(this,"pointsBoundsCache",new WeakMap);d(this,"shapeBoundsCache",new Map);d(this,"pointCache",{});d(this,"getShape",e=>ft.Utils.deepMerge({id:"id",type:"pen",name:"Pen",parentId:"page",childIndex:1,point:[0,0],rotation:0,style:$e,segments:[],isClosed:!1,isComplete:!1,previewPoint:void 0,isPlacingHandle:!1},e));d(this,"Component",ee.Component(({shape:e,meta:t,isSelected:n,isGhost:r,events:s},l)=>{var it,tt,be;let{segments:a,style:c,isClosed:p,isComplete:u,previewPoint:h,isPlacingHandle:g}=e,m=t.nodeEditingId===e.id,f=_(),v=vn.useRef(null),[b,T]=vn.useState(null),y=vn.useCallback((j,ae)=>Mt.Vec.sub(f.getPagePoint([j,ae]),e.point),[f,e.point]),x=vn.useCallback(j=>{f.patchState({document:{pages:{[f.currentPageId]:{shapes:{[e.id]:{segments:j}}}}}})},[f,e.id]),P=vn.useCallback(j=>{f.updateShapes({id:e.id,segments:j})},[f,e.id]),k=te(c,t.isDarkMode),{stroke:D,fill:C,strokeWidth:E,opacity:M}=k,{defs:L,gradFill:V}=Ct(e.id,c),X=V!=null?V:C,se=vn.useMemo(()=>el(a,p),[a,p]),G=(it=f.zoom)!=null?it:1,ne=1+E*1.5,pe=(tt={["draw"]:"none",["solid"]:"none",["dotted"]:`0.1 ${E*4}`,["dashed"]:`${E*4} ${E*4}`}[c.dash])!=null?tt:"none",he=(be={["draw"]:"0",["solid"]:"0",["dotted"]:"0",["dashed"]:"0"}[c.dash])!=null?be:"0",Me=vn.useMemo(()=>{if(!m||a.length===0)return null;let j=5/G,ae=3.5/G,le=1/G,Z=[],N=[],Q=[];return a.forEach((re,z)=>{let[Le,Kt]=re.point;if(re.cp1){let[ve,nt]=re.cp1,st=`cp1-${z}`;Q.push((0,Je.jsx)("line",{x1:Le,y1:Kt,x2:ve,y2:nt,stroke:"#0D99FF",strokeWidth:le,strokeOpacity:.6,pointerEvents:"none"},`lcp1-${z}`)),N.push((0,Je.jsx)("circle",{cx:ve,cy:nt,r:b===st?ae*1.4:ae,fill:b===st?"#0D99FF":"white",stroke:"#0D99FF",strokeWidth:le,style:{cursor:"move"},onPointerEnter:()=>T(st),onPointerLeave:()=>T(null),onPointerDown:ue=>{ue.stopPropagation(),ue.currentTarget.setPointerCapture(ue.pointerId),v.current={kind:"cp1",idx:z}},onPointerMove:ue=>{if(!v.current||v.current.kind!=="cp1"||v.current.idx!==z)return;ue.stopPropagation();let xe=y(ue.clientX,ue.clientY),Pe=[...a];Pe[z]=I(S({},Pe[z]),{cp1:xe}),x(Pe)},onPointerUp:ue=>{if(!v.current)return;ue.stopPropagation();let xe=y(ue.clientX,ue.clientY),Pe=[...a];Pe[z]=I(S({},Pe[z]),{cp1:xe}),v.current=null,P(Pe)}},st))}if(re.cp2){let[ve,nt]=re.cp2,st=`cp2-${z}`;Q.push((0,Je.jsx)("line",{x1:Le,y1:Kt,x2:ve,y2:nt,stroke:"#0D99FF",strokeWidth:le,strokeOpacity:.6,pointerEvents:"none"},`lcp2-${z}`)),N.push((0,Je.jsx)("circle",{cx:ve,cy:nt,r:b===st?ae*1.4:ae,fill:b===st?"#0D99FF":"white",stroke:"#0D99FF",strokeWidth:le,style:{cursor:"move"},onPointerEnter:()=>T(st),onPointerLeave:()=>T(null),onPointerDown:ue=>{ue.stopPropagation(),ue.currentTarget.setPointerCapture(ue.pointerId),v.current={kind:"cp2",idx:z}},onPointerMove:ue=>{if(!v.current||v.current.kind!=="cp2"||v.current.idx!==z)return;ue.stopPropagation();let xe=y(ue.clientX,ue.clientY),Pe=[...a];Pe[z]=I(S({},Pe[z]),{cp2:xe}),z+1<Pe.length&&(Pe[z+1]=I(S({},Pe[z+1]),{cp1:pi(Pe[z].point,xe)})),x(Pe)},onPointerUp:ue=>{if(!v.current)return;ue.stopPropagation();let xe=y(ue.clientX,ue.clientY),Pe=[...a];Pe[z]=I(S({},Pe[z]),{cp2:xe}),z+1<Pe.length&&(Pe[z+1]=I(S({},Pe[z+1]),{cp1:pi(Pe[z].point,xe)})),v.current=null,P(Pe)}},st))}let Qt=`node-${z}`;if(Z.push((0,Je.jsx)("circle",{cx:Le,cy:Kt,r:b===Qt?j*1.4:j,fill:b===Qt?"#0D99FF":"white",stroke:"#0D99FF",strokeWidth:1.5/G,style:{cursor:"move"},onPointerEnter:()=>T(Qt),onPointerLeave:()=>T(null),onPointerDown:ve=>{ve.stopPropagation(),ve.currentTarget.setPointerCapture(ve.pointerId),v.current={kind:"node",idx:z}},onPointerMove:ve=>{if(!v.current||v.current.kind!=="node"||v.current.idx!==z)return;ve.stopPropagation();let nt=y(ve.clientX,ve.clientY),st=a[z].point,ue=Mt.Vec.sub(nt,st),xe=[...a];xe[z]=I(S({},xe[z]),{point:nt,cp1:xe[z].cp1?Mt.Vec.add(xe[z].cp1,ue):void 0,cp2:xe[z].cp2?Mt.Vec.add(xe[z].cp2,ue):void 0}),x(xe)},onPointerUp:ve=>{if(!v.current)return;ve.stopPropagation();let nt=y(ve.clientX,ve.clientY),st=a[z].point,ue=Mt.Vec.sub(nt,st),xe=[...a];xe[z]=I(S({},xe[z]),{point:nt,cp1:xe[z].cp1?Mt.Vec.add(xe[z].cp1,ue):void 0,cp2:xe[z].cp2?Mt.Vec.add(xe[z].cp2,ue):void 0}),v.current=null,P(xe)}},Qt)),z<a.length-1){let ve=a[z+1],nt=(Le+ve.point[0])/2,st=(Kt+ve.point[1])/2;Z.push((0,Je.jsx)("circle",{cx:nt,cy:st,r:ae,fill:"white",stroke:"#0D99FF",strokeWidth:le,strokeDasharray:`${2/G} ${2/G}`,style:{cursor:"crosshair"},onPointerDown:ue=>{ue.stopPropagation();let xe={point:[nt,st]},Pe=[...a.slice(0,z+1),xe,...a.slice(z+1)];f.updateShapes({id:e.id,segments:Pe})}},`mid-${z}`))}}),(0,Je.jsxs)("g",{children:[Q,N,Z]})},[m,a,G,b,e.id,y,x,P,f]);if(a.length===0)return(0,Je.jsx)(ft.SVGContainer,I(S({ref:l,id:e.id+"_svg"},s),{children:(0,Je.jsx)("circle",{r:4,fill:D,stroke:D,pointerEvents:"all"})}));let Tt=m||!u?{overflow:"visible"}:void 0;return(0,Je.jsxs)(ft.SVGContainer,I(S({ref:l,id:e.id+"_svg"},s),{style:Tt,children:[L,(0,Je.jsxs)("g",{opacity:r?.3:M,children:[(0,Je.jsx)("path",{className:c.isFilled&&n?"tv-fill-hitarea":"tv-stroke-hitarea",d:se}),c.isFilled&&p&&(0,Je.jsx)("path",{d:se,fill:X,stroke:"none",pointerEvents:"none"}),(0,Je.jsx)("path",{d:se,fill:"none",stroke:D,strokeWidth:ne,strokeDasharray:pe,strokeDashoffset:he,strokeLinejoin:"round",strokeLinecap:"round",pointerEvents:"none"}),!u&&h&&a.length>0&&(()=>{let j=a[a.length-1],ae;if(g&&j.cp2){let[le,Z]=j.point,[N,Q]=j.cp2,[re,z]=h;ae=`M ${le} ${Z} C ${N} ${Q} ${re} ${z} ${re} ${z}`}else{let[le,Z]=j.point,[N,Q]=h;ae=`M ${le} ${Z} L ${N} ${Q}`}return(0,Je.jsx)("path",{d:ae,fill:"none",stroke:D,strokeWidth:ne*.8,strokeDasharray:`${ne*4} ${ne*3}`,strokeLinecap:"round",opacity:.55,pointerEvents:"none"})})(),!u&&h&&a.length>=2&&(()=>{let j=a[0],ae=Math.hypot(h[0]-j.point[0],h[1]-j.point[1]),le=12/G;return ae<=le?(0,Je.jsx)("circle",{cx:j.point[0],cy:j.point[1],r:8/G,fill:"none",stroke:"#0D99FF",strokeWidth:1.5/G,opacity:.8,pointerEvents:"none"}):null})(),!u&&a.length>0&&(0,Je.jsx)("circle",{cx:a[a.length-1].point[0],cy:a[a.length-1].point[1],r:4/G,fill:D,stroke:"none",pointerEvents:"none"})]}),Me]}))}));d(this,"Indicator",ee.Indicator(({shape:e})=>{let{segments:t,isClosed:n}=e,r=el(t,n);return r?(0,Je.jsx)("path",{d:r}):(0,Je.jsx)("circle",{r:1})}));d(this,"getBounds",e=>{let t=!this.pointsBoundsCache.has(e.segments),n=this.pointCache[e.id]!==e.point;if(t){let r=e.segments.length>0?bs(e.segments,e.isClosed):{minX:0,minY:0,maxX:1,maxY:1,width:1,height:1},s=I(S({},r),{width:Math.max(r.width,1),height:Math.max(r.height,1)});this.pointsBoundsCache.set(e.segments,s),this.shapeBoundsCache.set(e.id,ft.Utils.translateBounds(s,e.point)),this.pointCache[e.id]=e.point}else n&&(this.pointCache[e.id]=e.point,this.shapeBoundsCache.set(e.id,ft.Utils.translateBounds(this.pointsBoundsCache.get(e.segments),e.point)));return this.shapeBoundsCache.get(e.id)});d(this,"shouldRender",(e,t)=>t.segments!==e.segments||t.style!==e.style||t.isClosed!==e.isClosed||t.isComplete!==e.isComplete||t.previewPoint!==e.previewPoint||t.isPlacingHandle!==e.isPlacingHandle);d(this,"transform",(e,t,{initialShape:n,scaleX:r,scaleY:s})=>{let l=this.getBounds(n),a=Math.max(l.width,1),c=Math.max(l.height,1),p=m=>({point:[t.width*(r<0?1-(m.point[0]-l.minX)/a:(m.point[0]-l.minX)/a),t.height*(s<0?1-(m.point[1]-l.minY)/c:(m.point[1]-l.minY)/c)],cp1:m.cp1?[t.width*(r<0?1-(m.cp1[0]-l.minX)/a:(m.cp1[0]-l.minX)/a),t.height*(s<0?1-(m.cp1[1]-l.minY)/c:(m.cp1[1]-l.minY)/c)]:void 0,cp2:m.cp2?[t.width*(r<0?1-(m.cp2[0]-l.minX)/a:(m.cp2[0]-l.minX)/a),t.height*(s<0?1-(m.cp2[1]-l.minY)/c:(m.cp2[1]-l.minY)/c)]:void 0}),u=n.segments.map(p),h=bs(u,e.isClosed),g=Mt.Vec.sub([t.minX,t.minY],[h.minX,h.minY]);return{segments:u,point:g}});d(this,"hitTestPoint",(e,t)=>{let n=ci(e.segments,e.isClosed);if(n.length===0)return!1;let r=Mt.Vec.sub(t,e.point),s=8;return e.isClosed&&e.style.isFilled&&ft.Utils.pointInPolygon(r,n)?!0:n.length===1?Mt.Vec.dist(r,n[0])<=s:ft.Utils.pointInPolyline(r,n,s)});d(this,"hitTestLineSegment",(e,t,n)=>{let r=ci(e.segments,e.isClosed);if(r.length===0)return!1;let s=Mt.Vec.sub(t,e.point),l=Mt.Vec.sub(n,e.point),a=8;if(r.length===1)return Mt.Vec.distanceToLineSegment(s,l,r[0])<=a;for(let c=1;c<r.length;c++)if((0,Ts.intersectLineSegmentLineSegment)(r[c-1],r[c],s,l).didIntersect)return!0;return e.isClosed&&e.style.isFilled&&(ft.Utils.pointInPolygon(s,r)||ft.Utils.pointInPolygon(l,r))?!0:ft.Utils.pointInPolyline(s,r,a)||ft.Utils.pointInPolyline(l,r,a)});d(this,"hitTestBounds",(e,t)=>{let n=this.getBounds(e);if(ft.Utils.boundsContain(t,n))return!0;let r=ci(e.segments,e.isClosed);if(r.length===0)return!1;let s=ft.Utils.translateBounds(t,Mt.Vec.neg(e.point));if(r.some(l=>ft.Utils.pointInBounds(l,s))||(0,Ts.intersectBoundsPolyline)(s,r).length>0)return!0;if(e.isClosed&&e.style.isFilled){let l=[s.minX+s.width/2,s.minY+s.height/2];if(ft.Utils.pointInPolygon(l,r))return!0}return!1})}};var br=H(require("react")),ks=require("telva-core");var jo=require("react/jsx-runtime"),xs=class extends ee{constructor(){super(...arguments);d(this,"type","reactComponent");d(this,"canBind",!1);d(this,"canClone",!0);d(this,"isAspectRatioLocked",!1);d(this,"showCloneHandles",!1);d(this,"getShape",e=>ks.Utils.deepMerge({id:"reactComponent",type:"reactComponent",name:"React Component",parentId:"page",childIndex:1,point:[0,0],size:[400,300],rotation:0,style:I(S({},$e),{isFilled:!0}),componentId:""},e));d(this,"Component",ee.Component(({shape:e,isGhost:t,events:n},r)=>{let{size:s,componentId:l}=e,a=br.useRef(null);return br.useLayoutEffect(()=>{let c=a.current;!c||(c.style.width=`${s[0]}px`,c.style.height=`${s[1]}px`)},[s]),(0,jo.jsx)(ks.HTMLContainer,I(S({ref:r},n),{children:(0,jo.jsx)("div",{id:`${e.id}_react_component`,ref:a,style:{width:`${s[0]}px`,height:`${s[1]}px`,position:"relative",overflow:"hidden",borderRadius:"4px",opacity:t?.3:1,pointerEvents:"all"},children:(0,jo.jsx)(Jg,{componentId:l})})}))}));d(this,"Indicator",ee.Indicator(({shape:e})=>{let{size:[t,n]}=e;return(0,jo.jsx)("rect",{x:0,y:0,rx:4,ry:4,width:Math.max(1,t),height:Math.max(1,n),fill:"none",stroke:"var(--tv-selected)"})}));d(this,"getBounds",e=>Ot(e,this.boundsCache));d(this,"shouldRender",(e,t)=>t.size!==e.size||t.style!==e.style||t.componentId!==e.componentId);d(this,"transform",Vn);d(this,"transformSingle",Hn);d(this,"getSvgElement",(e,t)=>F(this,null,function*(){let n=document.getElementById(`${e.id}_react_component`);if(!n)return;let[r,s]=e.size;try{let l=n.querySelector("canvas"),a="";if(l&&(a=l.toDataURL("image/png")),!a||a==="data:,"){let p=(yield import("html2canvas-pro")).default;a=(yield p(n,{width:r,height:s,scale:1,useCORS:!0,backgroundColor:"#ffffff",logging:!1})).toDataURL("image/png")}if(!a||a==="data:,")return;let c=document.createElementNS("http://www.w3.org/2000/svg","image");return c.setAttribute("width",`${r}`),c.setAttribute("height",`${s}`),c.setAttribute("href",a),c}catch(l){console.warn("Failed to snapshot React Component for SVG export",l)}}))}};function Jg({componentId:i}){let o=Xi(),e=br.useMemo(()=>o.find(n=>n.id===i),[o,i]);if(!e)return(0,jo.jsxs)("div",{style:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",background:"linear-gradient(135deg, #667eea 0%, #764ba2 100%)",color:"white",fontSize:14,fontFamily:"DM Sans, sans-serif",borderRadius:4},children:['Component "',i,'" not found']});let t=e.component;return(0,jo.jsx)(t,{})}var fo=H(require("react")),Ps=require("telva-core"),pp=H(require("telva-vec"));var Qg=require("react/jsx-runtime");function rp({strokeWidth:i,size:o}){return(0,Qg.jsx)("rect",{className:"tv-binding-indicator",x:i,y:i,width:Math.max(0,o[0]-i/2),height:Math.max(0,o[1]-i/2),strokeWidth:16*2})}var ip=H(require("react")),nl=require("telva-core");var Qn=require("react/jsx-runtime"),sp=ip.memo(function({id:o,style:e,size:t,isSelected:n,isDarkMode:r}){var y;let{stroke:s,strokeWidth:l,fill:a}=te(e,r),{defs:c,gradFill:p}=Ct(o,e),u=p!=null?p:a,h=1+l*1.618,g=Math.max(0,t[0]-h/2),m=Math.max(0,t[1]-h/2),f=(y=e.borderRadius)!=null?y:0,v=f>0||e.dash==="solid",{strokeDasharray:b,strokeDashoffset:T}=nl.Utils.getPerfectDashProps(2*(g+m),l*1.618,e.dash);return(0,Qn.jsxs)(Qn.Fragment,{children:[c,(0,Qn.jsx)("rect",{className:n||e.isFilled?"tv-fill-hitarea":"tv-stroke-hitarea",x:h/2,y:h/2,width:g,height:m,rx:f,ry:f,strokeWidth:16}),e.isFilled&&(0,Qn.jsx)("rect",{x:h/2,y:h/2,width:g,height:m,rx:f,ry:f,fill:u,pointerEvents:"none"}),v?(0,Qn.jsx)("rect",{x:h/2,y:h/2,width:g,height:m,rx:f,ry:f,fill:"none",stroke:s,strokeWidth:h,strokeDasharray:b,strokeDashoffset:T,pointerEvents:"none",strokeLinecap:"round"}):(0,Qn.jsx)("g",{pointerEvents:"none",stroke:s,strokeWidth:h,strokeLinecap:"round",children:[[[h/2,h/2],[g,h/2],g-h/2],[[g,h/2],[g,m],m-h/2],[[g,m],[h/2,m],g-h/2],[[h/2,m],[h/2,h/2],m-h/2]].map(([x,P,k],D)=>{let C=nl.Utils.getPerfectDashProps(k,l*1.618,e.dash);return(0,Qn.jsx)("line",{x1:x[0],y1:x[1],x2:P[0],y2:P[1],strokeDasharray:C.strokeDasharray,strokeDashoffset:C.strokeDashoffset},o+"_"+D)})})]})});var dp=H(require("react"));var Cs=H(require("perfect-freehand")),ui=require("telva-core"),St=H(require("telva-vec"));function ef(i,o,e){let t=te(o),n=ui.Utils.rng(i),r=t.strokeWidth,s=Math.max(0,e[0]),l=Math.max(0,e[1]),a=Array.from(Array(4)).map(()=>[n()*r*.75,n()*r*.75]),c=St.default.add([r/2,r/2],a[0]),p=St.default.add([s-r/2,r/2],a[1]),u=St.default.add([s-r/2,l-r/2],a[2]),h=St.default.add([r/2,l-r/2],a[3]),g=Math.round(Math.abs(n()*2*4)),m=Math.min(s/4,r*2),f=Math.min(l/4,r*2),v=Math.max(8,Math.floor(s/16)),b=Math.max(8,Math.floor(l/16)),T=ui.Utils.rotateArray([St.default.pointsBetween(St.default.add(c,[m,0]),St.default.sub(p,[m,0]),v),St.default.pointsBetween(St.default.add(p,[0,f]),St.default.sub(u,[0,f]),b),St.default.pointsBetween(St.default.sub(u,[m,0]),St.default.add(h,[m,0]),v),St.default.pointsBetween(St.default.sub(h,[0,f]),St.default.add(c,[0,f]),b)],g);return{points:[...T.flat(),...T[0]].slice(5,Math.floor((g%2===0?v:b)/-2)+3)}}function ap(i,o,e){let{points:t}=ef(i,o,e),{strokeWidth:n}=te(o);return{points:t,options:{size:n,thinning:.65,streamline:.3,smoothing:1,simulatePressure:!1,last:!0}}}function lp(i,o,e){let{points:t,options:n}=ap(i,o,e),r=(0,Cs.default)(t,n);return ui.Utils.getSvgPathFromStroke(r)}function ws(i,o,e){let{points:t,options:n}=ap(i,o,e);return ui.Utils.getSvgPathFromStrokePoints((0,Cs.getStrokePoints)(t,n))}var Wo=require("react/jsx-runtime"),cp=dp.memo(function({id:o,style:e,size:t,isSelected:n,isDarkMode:r}){let{isFilled:s}=e,{stroke:l,strokeWidth:a,fill:c}=te(e,r),{defs:p,gradFill:u}=Ct(o,e),h=u!=null?u:c,g=lp(o,e,t),m=ws(o,e,t);return(0,Wo.jsxs)(Wo.Fragment,{children:[p,(0,Wo.jsx)("path",{className:e.isFilled||n?"tv-fill-hitarea":"tv-stroke-hitarea",d:m}),s&&(0,Wo.jsx)("path",{d:m,fill:h,pointerEvents:"none"}),(0,Wo.jsx)("path",{d:g,fill:l,stroke:l,strokeWidth:a,pointerEvents:"none"})]})});var dn=require("react/jsx-runtime"),Is=class extends ee{constructor(){super(...arguments);d(this,"type","rectangle");d(this,"canBind",!0);d(this,"canClone",!0);d(this,"canEdit",!0);d(this,"getShape",e=>Ps.Utils.deepMerge({id:"id",type:"rectangle",name:"Rectangle",parentId:"page",childIndex:1,point:[0,0],size:[1,1],rotation:0,style:$e,label:"",labelPoint:[.5,.5]},e));d(this,"Component",ee.Component(({shape:e,isEditing:t,isBinding:n,isSelected:r,isGhost:s,meta:l,bounds:a,events:c,onShapeBlur:p,onShapeChange:u},h)=>{var G,ne;let{id:g,size:m,style:f,label:v="",labelPoint:b=pr}=e,T=Bt(f),y=te(f,l.isDarkMode),P=!(l.canvasMode==="straight")&&f.dash==="draw"?cp:sp,k=fo.useCallback(pe=>u==null?void 0:u({id:g,label:pe}),[u]),D=l.nodeEditingId===e.id,C=_(),E=fo.useRef(null),[M,L]=fo.useState(null),V=(G=C.zoom)!=null?G:1,X=fo.useMemo(()=>{if(!D)return null;let[pe,he]=m,Me=[[0,0],[pe,0],[pe,he],[0,he]],Tt=[2,3,0,1],it=5/V,tt=1/V;return(0,dn.jsxs)("g",{children:[Me.map((be,j)=>{let ae=Me[(j+1)%4];return(0,dn.jsx)("line",{x1:be[0],y1:be[1],x2:ae[0],y2:ae[1],stroke:"#0D99FF",strokeWidth:tt,strokeOpacity:.4,pointerEvents:"none"},`el-${j}`)}),Me.map(([be,j],ae)=>(0,dn.jsx)("circle",{cx:be,cy:j,r:M===ae?it*1.4:it,fill:M===ae?"#0D99FF":"white",stroke:"#0D99FF",strokeWidth:1.5/V,style:{cursor:"nwse-resize"},onPointerEnter:()=>L(ae),onPointerLeave:()=>L(null),onPointerDown:le=>{le.stopPropagation(),le.currentTarget.setPointerCapture(le.pointerId);let Z=Me[Tt[ae]];E.current={nodeIdx:ae,fixedPage:pp.default.add(e.point,Z)}},onPointerMove:le=>{if(!E.current||E.current.nodeIdx!==ae)return;le.stopPropagation();let Z=C.getPagePoint([le.clientX,le.clientY]),N=E.current.fixedPage,Q=Math.min(Z[0],N[0]),re=Math.min(Z[1],N[1]),z=Math.max(Z[0],N[0]),Le=Math.max(Z[1],N[1]);C.patchState({document:{pages:{[C.currentPageId]:{shapes:{[e.id]:{point:[Q,re],size:[Math.max(1,z-Q),Math.max(1,Le-re)]}}}}}})},onPointerUp:le=>{if(!E.current)return;le.stopPropagation();let Z=C.getPagePoint([le.clientX,le.clientY]),N=E.current.fixedPage,Q=Math.min(Z[0],N[0]),re=Math.min(Z[1],N[1]),z=Math.max(Z[0],N[0]),Le=Math.max(Z[1],N[1]);E.current=null,C.updateShapes({id:e.id,point:[Q,re],size:[Math.max(1,z-Q),Math.max(1,Le-re)]})}},`cn-${ae}`)),Me.map((be,j)=>{let ae=Me[(j+1)%4],le=(be[0]+ae[0])/2,Z=(be[1]+ae[1])/2;return(0,dn.jsx)("circle",{cx:le,cy:Z,r:3.5/V,fill:"white",stroke:"#0D99FF",strokeWidth:tt,strokeDasharray:`${2/V} ${2/V}`,style:{cursor:"crosshair"},pointerEvents:"none"},`mid-${j}`)})]})},[D,m,V,M,e.id,e.point,C]),se=D?{overflow:"visible"}:void 0;return(0,dn.jsxs)(tf,I(S({ref:h},c),{children:[(0,dn.jsx)(ho,{isEditing:t,onChange:k,onBlur:p,font:T,text:v,color:(ne=f.labelColor)!=null?ne:y.stroke,background:f.labelBackground,textGradient:f.textGradient,offsetX:(b[0]-.5)*a.width,offsetY:(b[1]-.5)*a.height,width:Math.max(0,a.width-16)}),(0,dn.jsxs)(Ps.SVGContainer,{id:e.id+"_svg",opacity:s?.3:y.opacity,style:se,children:[n&&(0,dn.jsx)(rp,{strokeWidth:y.strokeWidth,size:m}),(0,dn.jsx)(P,{id:g,style:f,size:m,isSelected:r,isDarkMode:l.isDarkMode}),X]})]}))}));d(this,"Indicator",ee.Indicator(({shape:e,meta:t})=>{var a,c;let{id:n,style:r,size:s}=e;return!((t==null?void 0:t.canvasMode)==="straight")&&r.dash==="draw"?(0,dn.jsx)("path",{d:ws(n,r,s)}):(0,dn.jsx)("rect",{x:0,y:0,rx:(a=r.borderRadius)!=null?a:0,ry:(c=r.borderRadius)!=null?c:0,width:Math.max(1,s[0]),height:Math.max(1,s[1])})}));d(this,"getBounds",e=>Ot(e,this.boundsCache));d(this,"shouldRender",(e,t)=>t.size!==e.size||t.style!==e.style||t.label!==e.label);d(this,"transform",Vn);d(this,"transformSingle",Hn)}},tf=R("div",{width:"100%",height:"100%"});var Lt=H(require("react")),Ds=require("telva-core"),up=require("telva-vec");var No=require("react/jsx-runtime"),Rs=class extends ee{constructor(){super(...arguments);d(this,"type","sticky");d(this,"canBind",!0);d(this,"canEdit",!0);d(this,"canClone",!0);d(this,"hideResizeHandles",!0);d(this,"showCloneHandles",!0);d(this,"getShape",e=>Ds.Utils.deepMerge({id:"id",type:"sticky",name:"Sticky",parentId:"page",childIndex:1,point:[0,0],size:[200,200],text:"",rotation:0,style:hr},e));d(this,"Component",ee.Component(({shape:e,meta:t,events:n,isGhost:r,isBinding:s,isEditing:l,onShapeBlur:a,onShapeChange:c},p)=>{let u=Pc(e.style),{color:h,fill:g,stroke:m}=_a(e.style,t.isDarkMode),f=Lt.useRef(null),v=Lt.useRef(null),b=Lt.useRef(null),T=Lt.useRef(!1),y=Lt.useCallback(L=>{L.stopPropagation()},[]),x=Lt.useCallback(L=>{c==null||c({id:e.id,type:e.type,text:B.normalizeText(L)})},[e.id]),P=Lt.useCallback(L=>{x(L.currentTarget.value)},[c,x]),k=Lt.useCallback(L=>{if(L.key==="Escape"){L.preventDefault(),L.stopPropagation(),a==null||a();return}if(L.key==="Tab"&&e.text.length===0){L.preventDefault();return}if(!(L.key==="Meta"||L.metaKey))L.stopPropagation();else if(L.key==="z"&&L.metaKey){L.shiftKey?document.execCommand("redo",!1):document.execCommand("undo",!1),L.stopPropagation(),L.preventDefault();return}(L.metaKey||L.ctrlKey)&&L.key==="="&&L.preventDefault(),L.key==="Tab"&&(L.preventDefault(),L.shiftKey?Ue.unindent(L.currentTarget):Ue.indent(L.currentTarget),c==null||c(I(S({},e),{text:B.normalizeText(L.currentTarget.value)})))},[e,c]),D=Lt.useCallback(L=>{L.currentTarget.setSelectionRange(0,0),a==null||a()},[]),C=Lt.useCallback(L=>{!l||!T.current||L.currentTarget.select()},[l]);Lt.useEffect(()=>{if(l){T.current=!0;let L=v.current;L.focus(),L.select()}},[l]),Lt.useEffect(()=>{let L=b.current,{size:V}=e,{offsetHeight:X}=L,se=ol-zn*2,G=V[1]-zn*2;if(X===G)return;if(X>se){c==null||c({id:e.id,size:[V[0],X+zn*2]});return}if(X<se&&V[1]>ol){c==null||c({id:e.id,size:[V[0],ol]});return}let ne=v.current;ne==null||ne.focus()},[e.text,e.size[1],e.style]);let E=e.style.textGradient,M=S({font:u,color:E?"transparent":h,textShadow:t.isDarkMode?"0.5px 0.5px 2px rgba(255, 255, 255,.25)":"0.5px 0.5px 2px rgba(255, 255, 255,.5)"},E?{background:Bo(E),WebkitBackgroundClip:"text",backgroundClip:"text"}:{});return(0,No.jsx)(Ds.HTMLContainer,I(S({ref:p},n),{children:(0,No.jsxs)(nf,{ref:f,isDarkMode:t.isDarkMode,isGhost:r,style:S({backgroundColor:g,border:m?`2px solid ${m}`:void 0},M),children:[s&&(0,No.jsx)("div",{className:"tv-binding-indicator",style:{position:"absolute",top:-this.bindingDistance,left:-this.bindingDistance,width:`calc(100% + ${this.bindingDistance*2}px)`,height:`calc(100% + ${this.bindingDistance*2}px)`,backgroundColor:"var(--tv-selectFill)"}}),(0,No.jsxs)(of,{ref:b,isEditing:l,alignment:e.style.textAlign,children:[e.text,"\u200B"]}),l&&(0,No.jsx)(rf,{ref:v,onPointerDown:y,value:e.text,onChange:P,onKeyDown:k,onFocus:C,onBlur:D,tabIndex:-1,autoComplete:"false",autoCapitalize:"false",autoCorrect:"false",autoSave:"false",autoFocus:!0,spellCheck:!0,alignment:e.style.textAlign,onContextMenu:mt,onCopy:mt,onPaste:mt,onCut:mt})]})}))}));d(this,"Indicator",ee.Indicator(({shape:e})=>{let{size:[t,n]}=e;return(0,No.jsx)("rect",{x:0,y:0,rx:3,ry:3,width:Math.max(1,t),height:Math.max(1,n)})}));d(this,"getBounds",e=>Ot(e,this.boundsCache));d(this,"shouldRender",(e,t)=>t.size!==e.size||t.style!==e.style||t.text!==e.text);d(this,"transform",(e,t,{scaleX:n,scaleY:r,transformOrigin:s})=>({point:up.Vec.toFixed([t.minX+(t.width-e.size[0])*(n<0?1-s[0]:s[0]),t.minY+(t.height-e.size[1])*(r<0?1-s[1]:s[1])])}));d(this,"transformSingle",e=>e);d(this,"getSvgElement",(e,t)=>{var h,g;let n=this.getBounds(e),r=_a(e.style,t),s=Ka(e.style.size)*((h=e.style.scale)!=null?h:1),l=Ln(e.style.font,e.style.fontFamily).slice(1,-1),a=(g=e.style.textAlign)!=null?g:"start",c=co(e.text,s,l,a,n.width-zn*2,!0);c.setAttribute("fill",r.color),c.setAttribute("transform",`translate(${zn}, ${zn})`);let p=document.createElementNS("http://www.w3.org/2000/svg","g"),u=document.createElementNS("http://www.w3.org/2000/svg","rect");return u.setAttribute("width",n.width+""),u.setAttribute("height",n.height+""),u.setAttribute("fill",r.fill),r.stroke&&(u.setAttribute("stroke",r.stroke),u.setAttribute("stroke-width","2")),u.setAttribute("rx","3"),u.setAttribute("ry","3"),p.appendChild(u),p.appendChild(c),p})}},zn=16,ol=200,nf=R("div",{pointerEvents:"all",position:"relative",backgroundColor:"rgba(255, 220, 100)",fontFamily:"sans-serif",height:"100%",width:"100%",padding:zn+"px",borderRadius:"3px",perspective:"800px",variants:{isGhost:{false:{opacity:1},true:{transition:"opacity .2s",opacity:.3}},isDarkMode:{true:{boxShadow:"2px 3px 12px -2px rgba(0,0,0,.3), 1px 1px 4px rgba(0,0,0,.3), 1px 1px 2px rgba(0,0,0,.3)"},false:{boxShadow:"2px 3px 12px -2px rgba(0,0,0,.2), 1px 1px 4px rgba(0,0,0,.16), 1px 1px 2px rgba(0,0,0,.16)"}}}}),hp={whiteSpace:"pre-wrap",overflowWrap:"break-word",letterSpacing:on},of=R("div",S({position:"absolute",top:zn,left:zn,width:`calc(100% - ${zn*2}px)`,height:"fit-content",font:"inherit",pointerEvents:"none",userSelect:"none",variants:{isEditing:{true:{opacity:1},false:{opacity:1}},alignment:{["start"]:{textAlign:"left"},["middle"]:{textAlign:"center"},["end"]:{textAlign:"right"},["justify"]:{textAlign:"justify"}}}},hp)),rf=R("textarea",I(S({width:"100%",height:"100%",border:"none",overflow:"hidden",background:"none",outline:"none",textAlign:"left",font:"inherit",padding:0,color:"transparent",verticalAlign:"top",resize:"none",caretColor:"black"},hp),{variants:{alignment:{["start"]:{textAlign:"left"},["middle"]:{textAlign:"center"},["end"]:{textAlign:"right"},["justify"]:{textAlign:"justify"}}},"&:focus":{outline:"none",border:"none"}}));var At=H(require("react")),vr=require("telva-core"),eo=require("telva-vec");var Uo=require("react/jsx-runtime"),Es=class extends ee{constructor(){super(...arguments);d(this,"type","text");d(this,"isAspectRatioLocked",!1);d(this,"canEdit",!0);d(this,"canBind",!0);d(this,"canClone",!0);d(this,"bindingDistance",16/2);d(this,"getShape",e=>vr.Utils.deepMerge({id:"id",type:"text",name:"Text",parentId:"page",childIndex:1,point:[0,0],rotation:0,text:" ",style:hr},e));d(this,"texts",new Map);d(this,"Component",ee.Component(({shape:e,isBinding:t,isGhost:n,isEditing:r,onShapeBlur:s,onShapeChange:l,meta:a,events:c},p)=>{let{text:u,style:h}=e,g=te(h,a.isDarkMode),m=Bt(e.style),f=At.useRef(null),v=At.useRef(!1),b=At.useRef(u);At.useLayoutEffect(()=>{if(u!==b.current){let C=[0,0];this.texts.set(e.id,u);let E=this.getBounds(e),M=this.getBounds(e);switch(e.style.textAlign){case"start":break;case"middle":{C=eo.Vec.div([M.width-E.width,0],2);break}case"end":{C=[M.width-E.width,0];break}}b.current=u,l==null||l(I(S({},e),{id:e.id,point:eo.Vec.sub(e.point,C),text:u}))}},[u]);let T=At.useCallback(C=>{let E=[0,0],M=B.normalizeText(C.currentTarget.value),L=this.getBounds(e);this.texts.set(e.id,M);let V=this.getBounds(I(S({},e),{text:M}));switch(e.style.textAlign){case"start":break;case"middle":{E=eo.Vec.div([V.width-L.width,0],2);break}case"end":{E=[V.width-L.width,0];break}}b.current=M,l==null||l(I(S({},e),{id:e.id,point:eo.Vec.sub(e.point,E),text:M}))},[e.id,e.point]),y=At.useCallback(C=>{if(C.key==="Escape"){C.preventDefault(),C.stopPropagation(),s==null||s();return}if(C.key==="Tab"&&e.text.length===0){C.preventDefault();return}if(C.key==="Enter"&&(C.metaKey||C.ctrlKey)){C.preventDefault(),C.stopPropagation(),f.current.blur();return}if(!(C.key==="Meta"||C.metaKey))C.stopPropagation();else if(C.key==="z"&&C.metaKey){C.shiftKey?document.execCommand("redo",!1):document.execCommand("undo",!1),C.stopPropagation(),C.preventDefault();return}(C.metaKey||C.ctrlKey)&&C.key==="="&&C.preventDefault(),C.key==="Tab"&&(C.preventDefault(),C.shiftKey?Ue.unindent(C.currentTarget):Ue.indent(C.currentTarget),l==null||l(I(S({},e),{text:B.normalizeText(C.currentTarget.value)})))},[e,l]),x=At.useCallback(C=>{C.currentTarget.setSelectionRange(0,0),s==null||s()},[]),P=At.useCallback(C=>{!r||!v.current||document.activeElement===C.currentTarget&&C.currentTarget.select()},[r]),k=At.useCallback(C=>{r&&C.stopPropagation()},[r]),D=At.useRef(r);return At.useEffect(()=>{r?(D.current=!0,this.texts.set(e.id,u),requestAnimationFrame(()=>{v.current=!0;let C=f.current;C&&(C.focus(),C.select())})):D.current&&(D.current=!1,s==null||s())},[r]),(0,Uo.jsx)(vr.HTMLContainer,I(S({ref:p},c),{children:(0,Uo.jsx)(af,{isGhost:n,isEditing:r,onPointerDown:k,style:{opacity:n?void 0:g.opacity},children:(0,Uo.jsxs)(lf,{style:S({font:m,color:h.textGradient&&!r?"transparent":g.stroke,textAlign:vc(h.textAlign),width:e.size?`${e.size[0]}px`:"auto",whiteSpace:e.size?"pre-wrap":"pre",wordBreak:e.size?"break-word":"normal",overflowWrap:e.size?"break-word":"normal"},h.textGradient&&!r?{background:Bo(h.textGradient),WebkitBackgroundClip:"text",backgroundClip:"text"}:{}),children:[t&&(0,Uo.jsx)("div",{className:"tv-binding-indicator",style:{position:"absolute",top:-this.bindingDistance,left:-this.bindingDistance,width:`calc(100% + ${this.bindingDistance*2}px)`,height:`calc(100% + ${this.bindingDistance*2}px)`,backgroundColor:"var(--tv-selectFill)"}}),r?(0,Uo.jsx)(df,{ref:f,style:{font:m,color:g.stroke},name:"text",tabIndex:-1,autoComplete:"false",autoCapitalize:"false",autoCorrect:"false",autoSave:"false",autoFocus:!0,placeholder:"",spellCheck:"true",wrap:"off",dir:"auto",datatype:"wysiwyg",defaultValue:u,color:g.stroke,onFocus:P,onChange:T,onKeyDown:y,onBlur:x,onPointerDown:k,onContextMenu:mt,onCopy:mt,onPaste:mt,onCut:mt}):u,"\u200B"]})})}))}));d(this,"Indicator",ee.Indicator(({shape:e})=>{let{width:t,height:n}=this.getBounds(e);return(0,Uo.jsx)("rect",{x:0,y:0,width:t,height:n})}));d(this,"getBounds",e=>{let t=vr.Utils.getFromCache(this.boundsCache,e,()=>{var s;if(!It)return{minX:0,minY:0,maxX:10,maxY:10,width:10,height:10};It.parentNode||document.body.appendChild(It),It.style.font=Bt(e.style),It.textContent=(s=this.texts.get(e.id))!=null?s:e.text,e.size?(It.style.whiteSpace="pre-wrap",It.style.wordBreak="break-word",It.style.overflowWrap="break-word",It.style.width=`${e.size[0]}px`):(It.style.whiteSpace="pre",It.style.wordBreak="normal",It.style.overflowWrap="normal",It.style.width="auto");let n=e.size?e.size[0]:It.offsetWidth||1,r=It.offsetHeight||1;return{minX:0,maxX:n,minY:0,maxY:r,width:n,height:r}});return vr.Utils.translateBounds(t,e.point)});d(this,"shouldRender",(e,t)=>t.text!==e.text||t.style.scale!==e.style.scale||t.style!==e.style||t.size!==e.size);d(this,"transform",(e,t,{initialShape:n,scaleX:r,scaleY:s})=>{let{rotation:l=0,style:{scale:a=1}}=n,c=a*Math.abs(Math.min(r,s));return{point:[t.minX,t.minY],size:[t.width,t.height],rotation:r<0&&s>=0||s<0&&r>=0?-(l||0):l,style:I(S({},n.style),{scale:c})}});d(this,"transformSingle",(e,t,{initialShape:n,scaleX:r,scaleY:s})=>({point:eo.Vec.toFixed([t.minX,t.minY]),size:[t.width,t.height]}));d(this,"onDoubleClickBoundsHandle",e=>{let t=this.getCenter(e),n=this.getCenter(I(S({},e),{style:I(S({},e.style),{scale:1})}));return{style:I(S({},e.style),{scale:1}),point:eo.Vec.toFixed(eo.Vec.add(e.point,eo.Vec.sub(t,n)))}});d(this,"getSvgElement",(e,t)=>{var p,u;let n=this.getBounds(e),r=te(e.style,t),s=Ho(e.style.size,e.style.font)*((p=e.style.scale)!=null?p:1),l=Ln(e.style.font).slice(1,-1),a=(u=e.style.textAlign)!=null?u:"middle",c=co(e.text,s,l,a,e.size?e.size[0]:n.width,!!e.size);return c.setAttribute("fill",r.stroke),c})}},It;function sf(){var o;(o=document.getElementById("__textMeasure"))==null||o.remove();let i=document.createElement("pre");return i.id="__textMeasure",Object.assign(i.style,{whiteSpace:"pre",width:"auto",border:"1px solid transparent",padding:"4px",margin:"0px",letterSpacing:on,opacity:"0",position:"absolute",top:"-500px",left:"0px",zIndex:"9999",pointerEvents:"none",userSelect:"none",alignmentBaseline:"mathematical",dominantBaseline:"mathematical"}),i.tabIndex=-1,document.body.appendChild(i),i}typeof window!="undefined"&&(It=sf());var af=R("div",{width:"100%",height:"100%",variants:{isGhost:{false:{opacity:1},true:{transition:"opacity .2s",opacity:.3}},isEditing:{false:{pointerEvents:"all",userSelect:"all"},true:{pointerEvents:"none",userSelect:"none"}}}}),mp={whiteSpace:"pre-wrap",overflowWrap:"break-word"},lf=R("div",S({position:"absolute",width:"100%",height:"100%",padding:"4px",zIndex:1,minHeight:1,minWidth:1,lineHeight:1,letterSpacing:on,outline:0,fontWeight:"500",backfaceVisibility:"hidden",userSelect:"none",pointerEvents:"none",WebkitUserSelect:"none",WebkitTouchCallout:"none",isEditing:{false:{},true:{pointerEvents:"all",background:"$boundsBg",userSelect:"text",WebkitUserSelect:"text"}}},mp)),df=R("textarea",I(S({position:"absolute",top:0,left:0,zIndex:1,width:"100%",height:"100%",border:"none",padding:"4px",resize:"none",textAlign:"inherit",minHeight:"inherit",minWidth:"inherit",lineHeight:"inherit",letterSpacing:"inherit",outline:0,fontWeight:"inherit",overflow:"hidden",backfaceVisibility:"hidden",display:"inline-block",pointerEvents:"all",background:"$boundsBg",userSelect:"text",WebkitUserSelect:"text"},mp),{"&:focus":{outline:"none",border:"none"}}));var to=H(require("react")),Tn=require("telva-core"),Tr=require("telva-intersect"),yt=H(require("telva-vec"));var yp=H(require("react")),il=require("telva-core"),bp=H(require("telva-vec"));var Bs=H(require("perfect-freehand")),hi=require("telva-core"),So=H(require("telva-vec"));function cn(i,o=0,e=0){let[t,n]=i,r=[[t/2,0],[t,n],[0,n]];return o&&(r=wc(r,o)),e&&(r=r.map(s=>So.default.rotWith(s,[t/2,n/2],e))),r}function rl(i){let[o,e]=i,t=[[o/2,0],[o,e],[0,e]];return[(t[0][0]+t[1][0]+t[2][0])/3,(t[0][1]+t[1][1]+t[2][1])/3]}function cf(i,o,e){let[t,n]=o,r=hi.Utils.rng(i),s=Array.from(Array(3)).map(()=>[r()*e*.75,r()*e*.75]),l=[So.default.add([t/2,0],s[0]),So.default.add([t,n],s[1]),So.default.add([0,n],s[2])],a=Math.round(Math.abs(r()*2*3)),c=hi.Utils.rotateArray([So.default.pointsBetween(l[0],l[1],32),So.default.pointsBetween(l[1],l[2],32),So.default.pointsBetween(l[2],l[0],32)],a);return{points:[...c.flat(),...c[0]]}}function gp(i,o,e){let{strokeWidth:t}=te(e),{points:n}=cf(i,o,t);return{points:n,options:{size:t,thinning:.65,streamline:.3,smoothing:1,simulatePressure:!1,last:!0}}}function fp(i,o,e){let{points:t,options:n}=gp(i,o,e),r=(0,Bs.default)(t,n);return hi.Utils.getSvgPathFromStroke(r)}function Sp(i,o,e){let{points:t,options:n}=gp(i,o,e);return hi.Utils.getSvgPathFromStrokePoints((0,Bs.getStrokePoints)(t,n))}var yo=require("react/jsx-runtime"),vp=yp.memo(function({id:o,size:e,style:t,isSelected:n,isDarkMode:r}){let{stroke:s,strokeWidth:l,fill:a}=te(t,r),{defs:c,gradFill:p}=Ct(o,t),u=p!=null?p:a,h=1+l*1.618,g=cn(e),f=il.Utils.pointsToLineSegments(g,!0).map(([b,T],y)=>{let{strokeDasharray:x,strokeDashoffset:P}=il.Utils.getPerfectDashProps(bp.default.dist(b,T),l*1.618,t.dash);return(0,yo.jsx)("line",{x1:b[0],y1:b[1],x2:T[0],y2:T[1],stroke:s,strokeWidth:h,strokeLinecap:"round",strokeDasharray:x,strokeDashoffset:P},o+"_"+y)}),v=g.join();return(0,yo.jsxs)(yo.Fragment,{children:[c,(0,yo.jsx)("polygon",{className:t.isFilled||n?"tv-fill-hitarea":"tv-stroke-hitarea",points:v}),t.isFilled&&(0,yo.jsx)("polygon",{fill:u,points:v,pointerEvents:"none"}),(0,yo.jsx)("g",{pointerEvents:"stroke",children:f})]})});var Tp=H(require("react"));var Ko=require("react/jsx-runtime"),xp=Tp.memo(function({id:o,size:e,style:t,isSelected:n,isDarkMode:r}){let{stroke:s,strokeWidth:l,fill:a}=te(t,r),{defs:c,gradFill:p}=Ct(o,t),u=p!=null?p:a,h=fp(o,e,t),g=Sp(o,e,t);return(0,Ko.jsxs)(Ko.Fragment,{children:[c,(0,Ko.jsx)("path",{className:t.isFilled||n?"tv-fill-hitarea":"tv-stroke-hitarea",d:g}),t.isFilled&&(0,Ko.jsx)("path",{d:g,fill:u,pointerEvents:"none"}),(0,Ko.jsx)("path",{d:h,fill:s,stroke:s,strokeWidth:l,pointerEvents:"none"})]})});var pf=require("react/jsx-runtime");function kp({size:i}){let o=cn(i).join();return(0,pf.jsx)("polygon",{className:"tv-binding-indicator",points:o,strokeWidth:16*2})}var Fn=require("react/jsx-runtime"),Ms=class extends ee{constructor(){super(...arguments);d(this,"type","triangle");d(this,"canBind",!0);d(this,"canClone",!0);d(this,"canEdit",!0);d(this,"getShape",e=>Tn.Utils.deepMerge({id:"id",type:"triangle",name:"Triangle",parentId:"page",childIndex:1,point:[0,0],size:[1,1],rotation:0,style:$e,label:"",labelPoint:[.5,.5]},e));d(this,"Component",ee.Component(({shape:e,bounds:t,isBinding:n,isEditing:r,isSelected:s,isGhost:l,meta:a,events:c,onShapeChange:p,onShapeBlur:u},h)=>{var ne,pe;let{id:g,label:m="",size:f,style:v,labelPoint:b=pr}=e,T=Bt(v),y=te(v,a.isDarkMode),P=!(a.canvasMode==="straight")&&v.dash==="draw"?xp:vp,k=to.useCallback(he=>p==null?void 0:p({id:g,label:he}),[p]),D=to.useMemo(()=>{let he=yt.default.div(f,2);return(rl(f)[1]-he[1])*.72},[f]),C=a.nodeEditingId===e.id,E=_(),M=to.useRef(null),[L,V]=to.useState(null),X=(ne=E.zoom)!=null?ne:1,se=to.useMemo(()=>{if(!C)return null;let[he,Me]=f,Tt=[[0,0],[he,0],[he,Me],[0,Me]],it=[2,3,0,1],tt=5/X,be=1/X,j=cn(f);return(0,Fn.jsxs)("g",{children:[j.map((ae,le)=>{let Z=j[(le+1)%j.length];return(0,Fn.jsx)("line",{x1:ae[0],y1:ae[1],x2:Z[0],y2:Z[1],stroke:"#0D99FF",strokeWidth:be,strokeOpacity:.3,pointerEvents:"none"},`tl-${le}`)}),Tt.map(([ae,le],Z)=>(0,Fn.jsx)("circle",{cx:ae,cy:le,r:L===Z?tt*1.4:tt,fill:L===Z?"#0D99FF":"white",stroke:"#0D99FF",strokeWidth:1.5/X,style:{cursor:"nwse-resize"},onPointerEnter:()=>V(Z),onPointerLeave:()=>V(null),onPointerDown:N=>{N.stopPropagation(),N.currentTarget.setPointerCapture(N.pointerId);let Q=Tt[it[Z]];M.current={nodeIdx:Z,fixedPage:yt.default.add(e.point,Q)}},onPointerMove:N=>{if(!M.current||M.current.nodeIdx!==Z)return;N.stopPropagation();let Q=E.getPagePoint([N.clientX,N.clientY]),re=M.current.fixedPage,z=Math.min(Q[0],re[0]),Le=Math.min(Q[1],re[1]),Kt=Math.max(Q[0],re[0]),Qt=Math.max(Q[1],re[1]);E.patchState({document:{pages:{[E.currentPageId]:{shapes:{[e.id]:{point:[z,Le],size:[Math.max(1,Kt-z),Math.max(1,Qt-Le)]}}}}}})},onPointerUp:N=>{if(!M.current)return;N.stopPropagation();let Q=E.getPagePoint([N.clientX,N.clientY]),re=M.current.fixedPage,z=Math.min(Q[0],re[0]),Le=Math.min(Q[1],re[1]),Kt=Math.max(Q[0],re[0]),Qt=Math.max(Q[1],re[1]);M.current=null,E.updateShapes({id:e.id,point:[z,Le],size:[Math.max(1,Kt-z),Math.max(1,Qt-Le)]})}},`cn-${Z}`))]})},[C,f,X,L,e.id,e.point,E]),G=C?{overflow:"visible"}:void 0;return(0,Fn.jsxs)(uf,I(S({ref:h},c),{children:[(0,Fn.jsx)(ho,{font:T,text:m,color:(pe=v.labelColor)!=null?pe:y.stroke,background:v.labelBackground,textGradient:v.textGradient,offsetX:(b[0]-.5)*t.width,offsetY:D+(b[1]-.5)*t.height,width:Math.max(0,t.width*.5-16),isEditing:r,onChange:k,onBlur:u}),(0,Fn.jsxs)(Tn.SVGContainer,{id:e.id+"_svg",opacity:l?.3:y.opacity,style:G,children:[n&&(0,Fn.jsx)(kp,{size:f}),(0,Fn.jsx)(P,{id:g,style:v,size:f,isSelected:s,isDarkMode:a.isDarkMode}),se]})]}))}));d(this,"Indicator",ee.Indicator(({shape:e})=>{let{size:t}=e;return(0,Fn.jsx)("polygon",{points:cn(t).join()})}));d(this,"shouldRender",(e,t)=>t.size!==e.size||t.style!==e.style||t.label!==e.label);d(this,"getBounds",e=>Ot(e,this.boundsCache));d(this,"getExpandedBounds",e=>Tn.Utils.getBoundsFromPoints(cn(e.size,this.bindingDistance).map(t=>yt.default.add(t,e.point))));d(this,"hitTestLineSegment",(e,t,n)=>(0,Tr.intersectLineSegmentPolyline)(t,n,this.getPoints(e)).didIntersect);d(this,"hitTestBounds",(e,t)=>Tn.Utils.boundsContained(this.getBounds(e),t)||(0,Tr.intersectBoundsPolygon)(t,this.getPoints(e)).length>0);d(this,"getBindingPoint",(e,t,n,r,s,l)=>{let a=this.getExpandedBounds(e);if(!Tn.Utils.pointInBounds(n,a))return;let c=cn(e.size).map(y=>yt.default.add(y,e.point)),p=cn(e.size,this.bindingDistance).map(y=>yt.default.add(y,e.point)),u=Tn.Utils.pointsToLineSegments(c,!0).map(([y,x])=>yt.default.distanceToLineSegment(y,x,n)).sort((y,x)=>y-x)[0];if(!(Tn.Utils.pointInPolygon(n,p)||u<this.bindingDistance))return;let h=Tn.Utils.pointsToLineSegments(p.concat([p[0]])).map(y=>(0,Tr.intersectRayLineSegment)(r,s,y[0],y[1])).filter(y=>y.didIntersect).flatMap(y=>y.points);if(!h.length)return;let g=yt.default.add(rl(e.size),e.point),m=h.sort((y,x)=>yt.default.dist(x,r)-yt.default.dist(y,r))[0],f=yt.default.med(n,m),v,b;l?(v=yt.default.dist(n,g)<16/2?g:n,b=0):(yt.default.distanceToLineSegment(n,f,g)<16/2?v=g:v=f,Tn.Utils.pointInPolygon(n,c)?b=this.bindingDistance:b=Math.max(this.bindingDistance,u));let T=yt.default.divV(yt.default.sub(v,[a.minX,a.minY]),[a.width,a.height]);return{point:yt.default.clampV(T,0,1),distance:b}});d(this,"transform",Vn);d(this,"transformSingle",Hn)}getPoints(e){let{rotation:t=0,point:[n,r],size:[s,l]}=e;return[[n+s/2,r],[n,r+l],[n+s,r+l]].map(a=>yt.default.rotWith(a,this.getCenter(e),t))}},uf=R("div",{width:"100%",height:"100%"});var sl=require("@stitches/react"),xn=H(require("react")),As=require("telva-core");var _o=require("react/jsx-runtime"),Ls=class extends ee{constructor(){super(...arguments);d(this,"type","video");d(this,"canBind",!0);d(this,"canEdit",!0);d(this,"canClone",!0);d(this,"isAspectRatioLocked",!0);d(this,"showCloneHandles",!1);d(this,"isStateful",!0);d(this,"getShape",e=>As.Utils.deepMerge({id:"video",type:"video",name:"Video",parentId:"page",childIndex:1,point:[0,0],size:[1,1],rotation:0,style:$e,assetId:"assetId",isPlaying:!0,currentTime:0},e));d(this,"Component",ee.Component(({shape:e,asset:t={src:""},isBinding:n,isEditing:r,isGhost:s,meta:l,events:a,onShapeChange:c},p)=>{let u=xn.useRef(null),h=xn.useRef(null),{currentTime:g=0,size:m,isPlaying:f,style:v}=e;xn.useLayoutEffect(()=>{let x=h.current;if(!x)return;let[P,k]=m;x.style.width=`${P}px`,x.style.height=`${k}px`},[m]),xn.useLayoutEffect(()=>{let x=u.current;!x||(f?x.play():x.pause())},[f]),xn.useLayoutEffect(()=>{let x=u.current;!x||g!==x.currentTime&&(x.currentTime=g)},[g]);let b=xn.useCallback(()=>{c==null||c({id:e.id,isPlaying:!0})},[]),T=xn.useCallback(()=>{c==null||c({id:e.id,isPlaying:!1})},[]),y=xn.useCallback(()=>{let x=u.current;!x||!r||c==null||c({id:e.id,currentTime:x.currentTime})},[r]);return(0,_o.jsxs)(As.HTMLContainer,I(S({ref:p},a),{children:[n&&(0,_o.jsx)("div",{className:"tv-binding-indicator",style:{position:"absolute",top:-this.bindingDistance,left:-this.bindingDistance,width:`calc(100% + ${this.bindingDistance*2}px)`,height:`calc(100% + ${this.bindingDistance*2}px)`,backgroundColor:"var(--tv-selectFill)"}}),(0,_o.jsx)(hf,{ref:h,isDarkMode:l.isDarkMode,isGhost:s,isFilled:v.isFilled,children:(0,_o.jsx)(mf,{ref:u,id:e.id+"_video",muted:!0,loop:!0,playsInline:!0,disableRemotePlayback:!0,disablePictureInPicture:!0,controls:r,autoPlay:f,onPlay:b,onPause:T,onTimeUpdate:y,children:(0,_o.jsx)("source",{src:t.src})})})]}))}));d(this,"Indicator",ee.Indicator(({shape:e})=>{let{size:[t,n]}=e;return(0,_o.jsx)("rect",{x:0,y:0,rx:2,ry:2,width:Math.max(1,t),height:Math.max(1,n)})}));d(this,"getBounds",e=>Ot(e,this.boundsCache));d(this,"shouldRender",(e,t)=>t.size!==e.size||t.style!==e.style||t.isPlaying!==e.isPlaying);d(this,"getSvgElement",e=>{let t=this.getBounds(e),n=document.createElementNS("http://www.w3.org/2000/svg","image");return n.setAttribute("width",`${t.width}`),n.setAttribute("height",`${t.height}`),n.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink"),n});d(this,"transform",Vn);d(this,"transformSingle",Hn)}},hf=(0,sl.styled)("div",{pointerEvents:"all",position:"relative",fontFamily:"sans-serif",fontSize:"2em",height:"100%",width:"100%",borderRadius:"3px",perspective:"800px",overflow:"hidden",p:{userSelect:"none"},img:{userSelect:"none"},variants:{isGhost:{false:{opacity:1},true:{transition:"opacity .2s",opacity:.3}},isFilled:{true:{},false:{}},isDarkMode:{true:{},false:{}}},compoundVariants:[{isFilled:!0,isDarkMode:!0,css:{boxShadow:"2px 3px 12px -2px rgba(0,0,0,.3), 1px 1px 4px rgba(0,0,0,.3), 1px 1px 2px rgba(0,0,0,.3)"}},{isFilled:!0,isDarkMode:!1,css:{boxShadow:"2px 3px 12px -2px rgba(0,0,0,.2), 1px 1px 4px rgba(0,0,0,.16), 1px 1px 2px rgba(0,0,0,.16)"}}]}),mf=(0,sl.styled)("video",{position:"absolute",top:0,left:0,width:"100%",height:"100%",maxWidth:"100%",minWidth:"100%",pointerEvents:"none",objectFit:"cover",userSelect:"none",borderRadius:2});var Vs=new Is,Hs=new Ms,zs=new ms,Fs=new ps,xr=new as,Cp=new Es,wp=new gs,mi=new Rs,Ip=new Ss,Pp=new Ls,Rp=new xs,Dp=new vs,kn={["rectangle"]:Vs,["triangle"]:Hs,["ellipse"]:zs,["draw"]:Fs,["arrow"]:xr,["text"]:Cp,["group"]:wp,["sticky"]:mi,["image"]:Ip,["video"]:Pp,["reactComponent"]:Rp,["pen"]:Dp},al=i=>typeof i=="string"?kn[i]:kn[i.type];var Ep=!1,U=class{static getShapeUtil(o){return al(o)}static getSelectedShapes(o,e){let t=U.getPage(o,e);return U.getSelectedIds(o,e).map(r=>t.shapes[r])}static screenToWorld(o,e){let t=U.getPageState(o,o.appState.currentPageId).camera;return q.Vec.sub(q.Vec.div(e,t.zoom),t.point)}static getCameraZoom(o){return jt.Utils.clamp(o,.1,5)}static getPage(o,e){return o.document.pages[e]}static getPageState(o,e){return o.document.pageStates[e]}static getSelectedIds(o,e){return U.getPageState(o,e).selectedIds}static getShapes(o,e){return Object.values(U.getPage(o,e).shapes)}static getCamera(o,e){return U.getPageState(o,e).camera}static getShape(o,e,t){return U.getPage(o,t).shapes[e]}static getCenter(o){return U.getShapeUtil(o).getCenter(o)}static getBounds(o){return U.getShapeUtil(o).getBounds(o)}static getRotatedBounds(o){return U.getShapeUtil(o).getRotatedBounds(o)}static getSelectedBounds(o){return jt.Utils.getCommonBounds(U.getSelectedShapes(o,o.appState.currentPageId).map(e=>U.getShapeUtil(e).getBounds(e)))}static getParentId(o,e,t){return U.getShape(o,e,t).parentId}static getDocumentBranch(o,e,t){let n=U.getShape(o,e,t);return n.children===void 0?[e]:[e,...n.children.flatMap(r=>U.getDocumentBranch(o,r,t))]}static getSelectedBranchSnapshot(o,e,t){let n=U.getPage(o,e),r=U.getSelectedIds(o,e).flatMap(s=>U.getDocumentBranch(o,s,e).map(l=>n.shapes[l])).filter(s=>!s.isLocked).map(jt.Utils.deepClone);return t!==void 0?r.map(s=>S({id:s.id},t(s))):r}static getSelectedShapeSnapshot(o,e,t){let n=U.getSelectedShapes(o,e).filter(r=>!r.isLocked).map(jt.Utils.deepClone);return t!==void 0?n.map(r=>S({id:r.id},t(r))):n}static getAllEffectedShapeIds(o,e,t){let n=U.getPage(o,t),r=new Set(e);return e.forEach(s=>{let l=n.shapes[s];function a(p){p.children!==void 0&&p.children.filter(u=>!r.has(u)).forEach(u=>{r.add(u),a(n.shapes[u])})}a(l);function c(p){let u=p.parentId;u!==n.id&&(r.has(u)||(r.add(u),c(n.shapes[u])))}c(l),r.forEach(p=>{Object.values(n.bindings).filter(u=>u.fromId===p||u.toId===p).forEach(u=>r.add(u.fromId===p?u.toId:u.fromId))})}),Array.from(r.values())}static getLinkedShapeIds(o,e,t,n=!0){let r=U.getSelectedIds(o,e),s=U.getPage(o,e),l=new Set(r),a=new Set,c=[...r],p=new Set(Object.values(s.shapes).filter(u=>{var h;return u.type==="arrow"&&(u.handles.start.bindingId||((h=u.handles)==null?void 0:h.end.bindingId))}));for(;c.length;){let u=c.pop();if(!(u&&p.size))break;a.has(u)||(a.add(u),p.forEach(h=>{var T,y;let{handles:{start:{bindingId:g},end:{bindingId:m}}}=h,f=g?s.bindings[g]:null,v=m?s.bindings[m]:null,b=!1;f&&f.toId===u?(t==="center"?b=!0:((T=h.decorations)==null?void 0:T.start)&&v?b=t==="left":b=t==="right",b&&(n&&l.add(h.id),l.add(u),v&&(l.add(v.toId),c.push(v.toId)))):v&&v.toId===u&&(t==="center"?b=!0:((y=h.decorations)==null?void 0:y.end)&&f?b=t==="left":b=t==="right",b&&(n&&l.add(h.id),l.add(u),f&&(l.add(f.toId),c.push(f.toId)))),(!f||l.has(f.toId))&&(!v||l.has(v.toId))&&p.delete(h)}))}return Array.from(l.values())}static getChildIndexAbove(o,e,t){let n=o.document.pages[t],r=n.shapes[e],s;if(r.parentId===n.id)s=Object.values(n.shapes).filter(c=>c.parentId===n.id).sort((c,p)=>c.childIndex-p.childIndex);else{let c=n.shapes[r.parentId];if(!c.children)throw Error("No children in parent!");s=c.children.map(p=>n.shapes[p]).sort((p,u)=>p.childIndex-u.childIndex)}let l=s.indexOf(r),a=s[l+1];return a?a.childIndex:r.childIndex+1}static getBeforeShape(o,e){return Object.fromEntries(Object.keys(e).map(t=>[t,o[t]]))}static mutateShapes(o,e,t,n,r=!1){let s={},l={};e.forEach((c,p)=>{let u=U.getShape(o,c,n);if(u.isLocked)return;(u==null?void 0:u.type)==="group"&&(e.length===1||r)&&u.children.forEach((g,m)=>{let f=U.getShape(o,g,n);if(f.isLocked)return;let v=t(f,m);v&&(s[g]=U.getBeforeShape(f,v),l[g]=v)});let h=t(u,p);h&&(s[c]=U.getBeforeShape(u,h),l[c]=h)});let a=jt.Utils.deepMerge(o,{document:{pages:{[o.appState.currentPageId]:{shapes:l}}}});return{before:s,after:l,data:a}}static createShapes(o,e,t){let n={document:{pages:{[t]:{shapes:S({},Object.fromEntries(e.flatMap(s=>{let l=[[s.id,void 0]];if(s.parentId!==t){let a=U.getShape(o,s.parentId,t);if(!a.children)throw Error("No children in parent!");l.push([a.id,{children:a.children}])}return l})))}}}},r={document:{pages:{[t]:{shapes:{shapes:S({},Object.fromEntries(e.flatMap(s=>{let l=[[s.id,s]];if(s.parentId!==t){let a=U.getShape(o,s.parentId,t);if(!a.children)throw Error("No children in parent!");l.push([a.id,{children:[...a.children,s.id]}])}return l})))}}}}};return{before:n,after:r}}static deleteShapes(o,e,t){t=t||o.appState.currentPageId;let n=U.getPage(o,t),r=typeof e[0]=="string"?e:e.map(a=>a.id),s={document:{pages:{[t]:{shapes:S({},Object.fromEntries(r.flatMap(a=>{let c=n.shapes[a],p=[[c.id,c]];if(c.parentId!==t){let u=n.shapes[c.parentId];if(!u.children)throw Error("No children in parent!");p.push([u.id,{children:u.children}])}return p}))),bindings:S({},Object.fromEntries(Object.values(n.bindings).filter(a=>r.includes(a.fromId)||r.includes(a.toId)).map(a=>[a.id,a])))}}}},l={document:{pages:{[t]:{shapes:S({},Object.fromEntries(r.flatMap(a=>{let c=n.shapes[a],p=[[c.id,void 0]];if(c.parentId!==n.id){let u=n.shapes[c.parentId];if(!u.children)throw Error("No children in parent!");p.push([u.id,{children:u.children.filter(h=>h!==c.id)}])}return p})))}}}};return{before:s,after:l}}static onSessionComplete(o){var t,n;let e=(n=(t=U.getShapeUtil(o)).onSessionComplete)==null?void 0:n.call(t,o);return e?S(S({},o),e):o}static onChildrenChange(o,e,t){var r,s;if(!e.children)return;let n=(s=(r=U.getShapeUtil(e)).onChildrenChange)==null?void 0:s.call(r,e,e.children.map(l=>U.getShape(o,l,t)));return n?S(S({},e),n):e}static updateArrowBindings(o,e){var s,l,a,c,p,u;let t={start:gt(e.handles.start),end:gt(e.handles.end)},n={isBound:!1,handle:e.handles.start,point:q.Vec.add(e.handles.start.point,e.point)},r={isBound:!1,handle:e.handles.end,point:q.Vec.add(e.handles.end.point,e.point)};if(e.handles.start.bindingId){let h=((s=e.decorations)==null?void 0:s.start)!==void 0,g=e.handles.start,m=o.bindings[e.handles.start.bindingId];if(!m)throw Error("Could not find a binding to match the start handle's bindingId: "+e.handles.start.bindingId);let f=o.shapes[m.toId],v=U.getShapeUtil(f),b=v.getBounds(f),T=v.getExpandedBounds(f),y=h?jt.Utils.expandBounds(b,m.distance):b,{minX:x,minY:P,width:k,height:D}=T,C=q.Vec.add([x,P],q.Vec.mulV([k,D],q.Vec.rotWith(m.point,[.5,.5],f.rotation||0)));n={isBound:!0,hasDecoration:h,binding:m,handle:g,point:C,util:v,target:f,bounds:b,expandedBounds:T,intersectBounds:y,center:v.getCenter(f)}}if(e.handles.end.bindingId){let h=((l=e.decorations)==null?void 0:l.end)!==void 0,g=e.handles.end,m=o.bindings[e.handles.end.bindingId];if(!m)throw Error("Could not find a binding to match the end handle's bindingId");let f=o.shapes[m.toId],v=U.getShapeUtil(f),b=v.getBounds(f),T=v.getExpandedBounds(f),y=h?jt.Utils.expandBounds(b,m.distance):b,{minX:x,minY:P,width:k,height:D}=T,C=q.Vec.add([x,P],q.Vec.mulV([k,D],q.Vec.rotWith(m.point,[.5,.5],f.rotation||0)));r={isBound:!0,hasDecoration:h,binding:m,handle:g,point:C,util:v,target:f,bounds:b,expandedBounds:T,intersectBounds:y,center:v.getCenter(f)}}for(let h of["end","start"]){let g=h==="start"?n:r,m=h==="start"?r:n;if(g.isBound)if(!g.binding.distance)t[h].point=q.Vec.sub(g.point,e.point);else{let f=q.Vec.uni(q.Vec.sub(g.point,m.point));switch(g.target.type){case"ellipse":{let v=(0,bo.intersectRayEllipse)(m.point,f,g.center,g.target.radius[0]+(g.hasDecoration?g.binding.distance:0),g.target.radius[1]+(g.hasDecoration?g.binding.distance:0),g.target.rotation||0).points.sort((b,T)=>q.Vec.dist(b,m.point)-q.Vec.dist(T,m.point));v[0]!==void 0&&(t[h].point=q.Vec.toFixed(q.Vec.sub(v[0],e.point)));break}case"triangle":{let v=g.target.point,b=cn(g.target.size,g.hasDecoration?16:0,g.target.rotation).map(y=>q.Vec.add(y,v)),T=jt.Utils.pointsToLineSegments(b,!0).map(([y,x])=>(0,bo.intersectRayLineSegment)(m.point,f,y,x)).filter(y=>y.didIntersect).flatMap(y=>y.points).sort((y,x)=>q.Vec.dist(y,m.point)-q.Vec.dist(x,m.point));T[0]!==void 0&&(t[h].point=q.Vec.toFixed(q.Vec.sub(T[0],e.point)));break}default:{let v=(0,bo.intersectRayBounds)(m.point,f,g.intersectBounds,g.target.rotation).filter(T=>T.didIntersect).map(T=>T.points[0]).sort((T,y)=>q.Vec.dist(T,m.point)-q.Vec.dist(y,m.point));if(!v[0])continue;let b;if(m.isBound&&(b=(0,bo.intersectRayBounds)(m.point,f,m.intersectBounds,m.target.rotation).filter(y=>y.didIntersect).map(y=>y.points[0]).sort((y,x)=>q.Vec.dist(y,m.point)-q.Vec.dist(x,m.point))[0]),m.isBound&&(v.length<2||b&&v[0]&&Math.ceil(q.Vec.dist(v[0],b))<16*2.5||jt.Utils.boundsContain(g.expandedBounds,m.expandedBounds)||jt.Utils.boundsCollide(g.expandedBounds,m.expandedBounds))){let T=q.Vec.uni(q.Vec.sub(m.point,g.point)),y=(0,bo.intersectRayBounds)(g.point,T,g.bounds,g.target.rotation).filter(x=>x.didIntersect).map(x=>x.points[0]);if(!y[0])continue;t[h].point=q.Vec.toFixed(q.Vec.sub(y[0],e.point)),t[h==="start"?"end":"start"].point=q.Vec.toFixed(q.Vec.add(q.Vec.sub(y[0],e.point),q.Vec.mul(T,Math.min(q.Vec.dist(y[0],m.point),16*2.5*(jt.Utils.boundsContain(m.bounds,g.intersectBounds)?-1:1)))))}else if(!m.isBound&&(v[0]&&q.Vec.dist(v[0],m.point)<16*2.5||jt.Utils.pointInBounds(m.point,g.intersectBounds))){let T=q.Vec.uni(q.Vec.sub(g.center,m.point));return(c=(a=U.getShapeUtil(e)).onHandleChange)==null?void 0:c.call(a,e,{[h]:I(S({},e.handles[h]),{point:q.Vec.toFixed(q.Vec.add(q.Vec.sub(m.point,e.point),q.Vec.mul(T,16*2.5)))})})}else v[0]&&(t[h].point=q.Vec.toFixed(q.Vec.sub(v[0],e.point)))}}}}return(u=(p=U.getShapeUtil(e)).onHandleChange)==null?void 0:u.call(p,e,t)}static transform(o,e,t){let n=U.getShapeUtil(o).transform(o,e,t);return n?S(S({},o),n):o}static transformSingle(o,e,t){let n=U.getShapeUtil(o).transformSingle(o,e,t);return n?S(S({},o),n):o}static getRotatedShapeMutation(o,e,t,n){var c,p;let r=q.Vec.sub(e,o.point),s=q.Vec.rotWith(e,t,n),l=q.Vec.toFixed(q.Vec.sub(s,r));if(o.handles!==void 0)return(p=(c=this.getShapeUtil(o)).onHandleChange)==null?void 0:p.call(c,I(S({},o),{point:l}),Object.fromEntries(Object.entries(o.handles).map(([h,g])=>{let m=q.Vec.toFixed(q.Vec.rotWith(g.point,r,n));return[h,I(S({},g),{point:m})]})));let a=jt.Utils.clampRadians((o.rotation||0)+n);return{point:l,rotation:a}}static updateParents(o,e,t){let n=U.getPage(o,e);if(t.length===0)return;let{shapes:r}=U.getPage(o,e),s=Array.from(new Set(t.map(l=>r[l].parentId).values())).filter(l=>l!==n.id);for(let l of s){let a=r[l];if(!a.children)throw Error("A shape is parented to a shape without a children array.");U.onChildrenChange(o,a,e)}U.updateParents(o,e,s)}static getBinding(o,e,t){return U.getPage(o,t).bindings[e]}static getBindings(o,e){let t=U.getPage(o,e);return Object.values(t.bindings)}static getBindableShapeIds(o){return U.getShapes(o,o.appState.currentPageId).filter(e=>U.getShapeUtil(e).canBind).sort((e,t)=>t.childIndex-e.childIndex).map(e=>e.id)}static getBindingsWithShapeIds(o,e,t){return Array.from(new Set(U.getBindings(o,t).filter(n=>e.includes(n.toId)||e.includes(n.fromId))).values())}static getRelatedBindings(o,e,t){let n=new Set(e),r=U.getPage(o,t),s=Object.values(r.bindings),l=new Set(s.filter(p=>n.has(p.toId)||n.has(p.fromId))),a=l.size,c=-1;for(;c!==0;)l.forEach(p=>{let u=p.fromId;for(let h of s)h.fromId===u&&l.add(h),h.toId===u&&l.add(h)}),c=l.size-a,a=l.size;return Array.from(l.values())}static normalizeText(o){return o.replace(U.fixNewLines,`
10
10
  `).split(`
11
11
  `).map(e=>e||" ").join(`
12
- `)}static assertShapeHasProperty(o,e){if(o[e]===void 0)throw new Error}static warn(o){Ep&&console.warn(o)}static error(o){Ep&&console.error(o)}static getSvgString(o,e=1){let t=o.cloneNode(!0);return o.setAttribute("width",+o.getAttribute("width")*e+""),o.setAttribute("height",+o.getAttribute("height")*e+""),new XMLSerializer().serializeToString(t).replaceAll("&#10; ","").replaceAll(/((\s|")[0-9]*\.[0-9]{2})([0-9]*)(\b|"|\))/g,"$1")}static getSvgAsDataUrl(o,e=1){let t=U.getSvgString(o,e);return`data:image/svg+xml;base64,${window.btoa(unescape(t))}`}static getImageForSvg(n){return F(this,arguments,function*(o,e="png",t={}){let{scale:r=2,quality:s=1}=t,l=U.getSvgString(o,r);if(!l)return;let a=yield new Promise(p=>{let u=new Image;u.crossOrigin="anonymous";let g=`data:image/svg+xml;base64,${window.btoa(unescape(encodeURIComponent(l)))}`;u.onload=()=>{let m=document.createElement("canvas"),f=m.getContext("2d"),v=u.width,b=u.height;m.width=v,m.height=b,f.drawImage(u,0,0,v,b),URL.revokeObjectURL(g),p(m)},u.onerror=()=>{console.warn("Could not convert that SVG to an image.")},u.src=g});return yield new Promise(p=>a.toBlob(u=>p(u),"image/"+e,s))})}},B=U;d(B,"copyStringToClipboard",o=>{try{navigator.clipboard&&navigator.clipboard.write([new ClipboardItem({"text/plain":new Blob([o],{type:"text/plain"})})])}catch(e){let t=document.createElement("textarea");t.setAttribute("position","fixed"),t.setAttribute("top","0"),t.setAttribute("readonly","true"),t.setAttribute("contenteditable","true"),t.style.position="fixed",t.value=o,document.body.appendChild(t),t.focus(),t.select();try{let n=document.createRange();n.selectNodeContents(t);let r=window.getSelection();r&&(r.removeAllRanges(),r.addRange(n),t.setSelectionRange(0,t.value.length)),document.execCommand("copy")}catch(n){}finally{document.body.removeChild(t)}}}),d(B,"flattenShape",(o,e)=>{var t;return[e,...((t=e.children)!=null?t:[]).map(n=>U.getShape(o,n,o.appState.currentPageId)).sort((n,r)=>n.childIndex-r.childIndex).flatMap(n=>U.flattenShape(o,n))]}),d(B,"flattenPage",(o,e)=>Object.values(o.document.pages[e].shapes).sort((t,n)=>t.childIndex-n.childIndex).reduce((t,n)=>[...t,...U.flattenShape(o,n)],[])),d(B,"getTopChildIndex",(o,e)=>{let t=U.getShapes(o,e);return t.length===0?1:t.filter(n=>n.parentId===e).sort((n,r)=>r.childIndex-n.childIndex)[0].childIndex+1}),d(B,"fixNewLines",/\r?\n|\r/g);var Os=require("react/jsx-runtime"),ho=yt.memo(function({font:o,text:e,color:t,background:n,textGradient:r,offsetX:s=0,offsetY:l=0,scale:a=1,isEditing:c=!1,width:p,onBlur:u,onChange:h}){let g=yt.useRef(null),m=yt.useRef(!1),f=yt.useCallback(k=>{h(B.normalizeText(k.currentTarget.value))},[h]),v=yt.useCallback(k=>{if(k.key==="Escape"){k.preventDefault(),k.stopPropagation(),u==null||u();return}if(k.key==="Tab"&&e.length===0){k.preventDefault();return}if(!(k.key==="Meta"||k.metaKey))k.stopPropagation();else if(k.key==="z"&&k.metaKey){k.shiftKey?document.execCommand("redo",!1):document.execCommand("undo",!1),k.stopPropagation(),k.preventDefault();return}(k.metaKey||k.ctrlKey)&&k.key==="="&&k.preventDefault(),k.key==="Tab"&&(k.preventDefault(),k.shiftKey?Ue.unindent(k.currentTarget):Ue.indent(k.currentTarget),h==null||h(B.normalizeText(k.currentTarget.value)))},[h]),b=yt.useCallback(k=>{k.currentTarget.setSelectionRange(0,0),u==null||u()},[u]),T=yt.useCallback(k=>{!c||!m.current||document.activeElement===k.currentTarget&&k.currentTarget.select()},[c]),y=yt.useCallback(k=>{c&&k.stopPropagation()},[c]),x=yt.useRef(c);yt.useEffect(()=>{c?(x.current=!0,requestAnimationFrame(()=>{m.current=!0;let k=g.current;k&&(k.focus(),k.select())})):x.current&&(u==null||u(),x.current=!1)},[c,u]);let P=yt.useRef(null);return yt.useLayoutEffect(()=>{let k=P.current;if(!k)return;let D=lo(e,o,p);k.style.transform=`scale(${a}, ${a}) translate(${s}px, ${l}px)`,k.style.width=p?`${p}px`:D[0]+1+"px",k.style.height=D[1]+1+"px"},[e,o,l,s,a,p]),(0,Os.jsx)(gf,{children:(0,Os.jsxs)(ff,{ref:P,hasText:!!e,isEditing:c,style:S({font:o,color:r&&!c?"transparent":t,backgroundColor:n&&n!=="transparent"?n:void 0,borderRadius:n&&n!=="transparent"?2:void 0,padding:n&&n!=="transparent"?"4px 6px":void 0},r&&!c?{background:Bo(r),WebkitBackgroundClip:"text",backgroundClip:"text"}:{}),children:[c?(0,Os.jsx)(Sf,{ref:g,style:{font:o,color:t},name:"text",tabIndex:-1,autoComplete:"false",autoCapitalize:"false",autoCorrect:"false",autoSave:"false",autoFocus:!0,placeholder:"",spellCheck:"true",wrap:"off",dir:"auto",datatype:"wysiwyg",defaultValue:e,color:t,onFocus:T,onChange:f,onKeyDown:v,onBlur:b,onPointerDown:y,onContextMenu:ht,onCopy:ht,onPaste:ht,onCut:ht}):e,"\u200B"]})})}),gf=R("div",{position:"absolute",top:0,left:0,width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"none",userSelect:"none",variants:{isGhost:{false:{opacity:1},true:{transition:"opacity .2s",opacity:.3}}}}),Bp={whiteSpace:"pre-wrap",overflowWrap:"break-word",letterSpacing:on},ff=R("div",S({position:"absolute",padding:"4px",zIndex:1,minHeight:1,minWidth:1,lineHeight:1,outline:0,fontWeight:"500",textAlign:"center",backfaceVisibility:"hidden",userSelect:"none",WebkitUserSelect:"none",WebkitTouchCallout:"none",variants:{hasText:{false:{pointerEvents:"none"},true:{pointerEvents:"all"}},isEditing:{false:{userSelect:"none"},true:{background:"$boundsBg",userSelect:"text",WebkitUserSelect:"text"}}}},Bp)),Sf=R("textarea",I(S({position:"absolute",top:0,left:0,zIndex:1,width:"100%",height:"100%",border:"none",padding:"4px",resize:"none",textAlign:"inherit",minHeight:"inherit",minWidth:"inherit",lineHeight:"inherit",outline:0,fontWeight:"inherit",overflow:"hidden",backfaceVisibility:"hidden",display:"inline-block",pointerEvents:"all",background:"$boundsBg",userSelect:"text",WebkitUserSelect:"text",fontSmooth:"always",WebkitFontSmoothing:"subpixel-antialiased",MozOsxFontSmoothing:"auto"},Bp),{"&:focus":{outline:"none",border:"none"}}));var kr=H(require("telva-vec"));function Vn(i,o,{initialShape:e,transformOrigin:t,scaleX:n,scaleY:r}){if(i.rotation||e.isAspectRatioLocked){let s=kr.default.toFixed(kr.default.mul(e.size,Math.min(Math.abs(n),Math.abs(r)))),l=kr.default.toFixed([o.minX+(o.width-i.size[0])*(n<0?1-t[0]:t[0]),o.minY+(o.height-i.size[1])*(r<0?1-t[1]:t[1])]),a=n<0&&r>=0||r<0&&n>=0?e.rotation?-e.rotation:0:e.rotation;return{size:s,point:l,rotation:a}}else return{point:kr.default.toFixed([o.minX,o.minY]),size:kr.default.toFixed([o.width,o.height])}}var ll=H(require("telva-vec"));function Hn(i,o){return{size:ll.default.toFixed([o.width,o.height]),point:ll.default.toFixed([o.minX,o.minY])}}var Ke=H(require("react"));var Se=require("react/jsx-runtime");function gi(i,o,e){i=i/360,o=o/100,e=e/100;let t=0,n=0,r=0,s=Math.floor(i*6),l=i*6-s,a=e*(1-o),c=e*(1-l*o),p=e*(1-(1-l)*o);switch(s%6){case 0:t=e,n=p,r=a;break;case 1:t=c,n=e,r=a;break;case 2:t=a,n=e,r=p;break;case 3:t=a,n=c,r=e;break;case 4:t=p,n=a,r=e;break;case 5:t=e,n=a,r=c;break}return[Math.round(t*255),Math.round(n*255),Math.round(r*255)]}function fi(i,o,e){i/=255,o/=255,e/=255;let t=Math.max(i,o,e),n=Math.min(i,o,e),r=t-n,s=0;r!==0&&(t===i?s=(o-e)/r%6:t===o?s=(e-i)/r+2:s=(i-o)/r+4,s=Math.round(s*60),s<0&&(s+=360));let l=t===0?0:Math.round(r/t*100),a=Math.round(t*100);return[s,l,a]}function Cr(i){let o=i.replace("#","").match(/.{2}/g);return o?[parseInt(o[0],16),parseInt(o[1],16),parseInt(o[2],16)]:[0,0,0]}function Si(i,o,e){return"#"+[i,o,e].map(t=>t.toString(16).padStart(2,"0")).join("")}var Hp="telva_color_history";function zp(){try{return JSON.parse(localStorage.getItem(Hp)||"[]").slice(0,16)}catch(i){return[]}}function wr(i){if(i==="transparent")return;let o=zp().filter(e=>e!==i);o.unshift(i),localStorage.setItem(Hp,JSON.stringify(o.slice(0,16)))}var dl='url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAIElEQVQYV2P8////fwYkwMjIyIjCZmBgYEBlMDIiiwEAGiYFA/wQA1AAAAAASUVORK5CYII=")';var $s=Ke.memo(function({color:o,opacity:e=1,onChange:t,showTransparent:n=!0,showOpacity:r=!0}){let s=o==="transparent",l=s?[255,255,255]:Cr(o),[a,c]=Ke.useState(()=>fi(...l));Ke.useEffect(()=>{if(!s){let y=Cr(o),x=fi(...y);c(x)}},[o]);let p=Ke.useRef(null),u=Ke.useRef(null);Ke.useEffect(()=>{let y=p.current;if(!y)return;let x=y.getContext("2d"),P=y.width,k=y.height,[D,C,E]=gi(a[0],100,100);x.fillStyle=`rgb(${D},${C},${E})`,x.fillRect(0,0,P,k);let M=x.createLinearGradient(0,0,P,0);M.addColorStop(0,"rgba(255,255,255,1)"),M.addColorStop(1,"rgba(255,255,255,0)"),x.fillStyle=M,x.fillRect(0,0,P,k);let L=x.createLinearGradient(0,0,0,k);L.addColorStop(0,"rgba(0,0,0,0)"),L.addColorStop(1,"rgba(0,0,0,1)"),x.fillStyle=L,x.fillRect(0,0,P,k)},[a[0]]),Ke.useEffect(()=>{let y=u.current;if(!y)return;let x=y.getContext("2d"),P=y.width,k=x.createLinearGradient(0,0,P,0);for(let D=0;D<=6;D++){let[C,E,M]=gi(D/6*360,100,100);k.addColorStop(D/6,`rgb(${C},${E},${M})`)}x.fillStyle=k,x.fillRect(0,0,P,y.height)},[]);let h=Ke.useCallback((y,x,P,k)=>{let[D,C,E]=gi(y,x,P),M=Si(D,C,E);wr(M),t(M,k)},[t]),g=Ke.useCallback(y=>{y.preventDefault(),y.stopPropagation();let P=p.current.getBoundingClientRect(),k=E=>{let M=Math.max(0,Math.min(100,(E.clientX-P.left)/P.width*100)),L=Math.max(0,Math.min(100,(1-(E.clientY-P.top)/P.height)*100));c([a[0],M,L]),h(a[0],M,L,e)};k(y);let D=E=>k(E),C=()=>{document.removeEventListener("pointermove",D),document.removeEventListener("pointerup",C)};document.addEventListener("pointermove",D),document.addEventListener("pointerup",C)},[a,e,h]),m=Ke.useCallback(y=>{y.preventDefault(),y.stopPropagation();let P=u.current.getBoundingClientRect(),k=E=>{let M=Math.max(0,Math.min(360,(E.clientX-P.left)/P.width*360));c([M,a[1],a[2]]),h(M,a[1],a[2],e)};k(y);let D=E=>k(E),C=()=>{document.removeEventListener("pointermove",D),document.removeEventListener("pointerup",C)};document.addEventListener("pointermove",D),document.addEventListener("pointerup",C)},[a,e,h]),f=Ke.useRef(null),v=Ke.useCallback(y=>{y.preventDefault(),y.stopPropagation();let P=f.current.getBoundingClientRect(),k=E=>{let M=Math.max(0,Math.min(1,(E.clientX-P.left)/P.width));s?t("transparent",M):h(a[0],a[1],a[2],M)};k(y);let D=E=>k(E),C=()=>{document.removeEventListener("pointermove",D),document.removeEventListener("pointerup",C)};document.addEventListener("pointermove",D),document.addEventListener("pointerup",C)},[a,s,h,t]),b=s?"transparent":Si(...gi(a[0],a[1],a[2])),T=s?[255,255,255]:gi(a[0],a[1],a[2]);return(0,Se.jsxs)(yf,{onClick:y=>y.stopPropagation(),onPointerDown:y=>y.stopPropagation(),children:[(0,Se.jsxs)(bf,{children:[(0,Se.jsx)("canvas",{ref:p,width:200,height:130,onPointerDown:g,style:{width:"100%",height:"100%",cursor:"crosshair",borderRadius:4}}),!s&&(0,Se.jsx)(vf,{style:{left:`${a[1]}%`,top:`${100-a[2]}%`,borderColor:a[2]>50?"#000":"#fff"}})]}),(0,Se.jsxs)(Mp,{children:[(0,Se.jsx)("canvas",{ref:u,width:200,height:12,onPointerDown:m,style:{width:"100%",height:"100%",cursor:"pointer",borderRadius:6}}),!s&&(0,Se.jsx)(Lp,{style:{left:`${a[0]/360*100}%`}})]}),r&&(0,Se.jsxs)(Mp,{children:[(0,Se.jsx)(Tf,{ref:f,onPointerDown:v,style:{background:`linear-gradient(to right, transparent, ${b==="transparent"?"#fff":b})`,cursor:"pointer"}}),(0,Se.jsx)(Lp,{style:{left:`${e*100}%`}})]}),(0,Se.jsxs)(xf,{children:[(0,Se.jsx)(Cf,{value:s?"":b.replace("#",""),placeholder:"hex",maxLength:6,onChange:y=>{let x=y.target.value.replace(/[^0-9a-fA-F]/g,"").slice(0,6);if(x.length===6){let P=Cr("#"+x);c(fi(...P)),t("#"+x,e),wr("#"+x)}},onKeyDown:y=>y.stopPropagation()}),[0,1,2].map(y=>(0,Se.jsx)(Ap,{value:T[y],type:"number",min:0,max:255,onChange:x=>{let P=Math.max(0,Math.min(255,Number(x.target.value))),k=[...T];k[y]=P,c(fi(...k));let D=Si(...k);t(D,e),wr(D)},onKeyDown:x=>x.stopPropagation()},y)),r&&(0,Se.jsx)(Ap,{value:Math.round(e*100),type:"number",min:0,max:100,onChange:y=>{let x=Math.max(0,Math.min(100,Number(y.target.value)))/100;s?t("transparent",x):h(a[0],a[1],a[2],x)},onKeyDown:y=>y.stopPropagation(),style:{width:32}})]}),(0,Se.jsxs)(kf,{children:[(0,Se.jsx)("span",{style:{flex:2},children:"Hex"}),(0,Se.jsx)("span",{children:"R"}),(0,Se.jsx)("span",{children:"G"}),(0,Se.jsx)("span",{children:"B"}),r&&(0,Se.jsx)("span",{children:"A"})]}),(0,Se.jsxs)(wf,{children:[n&&(0,Se.jsx)(Vp,{title:"Transparent",$active:s,style:{backgroundImage:dl,backgroundSize:"6px 6px"},onClick:()=>t("transparent",e)}),zp().map(y=>(0,Se.jsx)(Vp,{style:{backgroundColor:y},$active:b===y,onClick:()=>{let x=Cr(y);c(fi(...x)),t(y,e)}},y))]})]})}),Ir=Ke.memo(function({color:o,opacity:e=1,onChange:t,showTransparent:n=!0,showOpacity:r=!0,label:s}){let[l,a]=Ke.useState(!1),c=Ke.useRef(null),p=o==="transparent";return Ke.useEffect(()=>{let h=g=>{c.current&&!c.current.contains(g.target)&&a(!1)};return document.addEventListener("mousedown",h),()=>document.removeEventListener("mousedown",h)},[]),(0,Se.jsxs)(If,{ref:c,children:[(0,Se.jsxs)(Pf,{children:[s&&(0,Se.jsx)(Rf,{children:s}),(0,Se.jsx)(Df,{onClick:()=>a(!l),style:{backgroundColor:p?"transparent":o,backgroundImage:p?dl:"none",backgroundSize:"6px 6px"}}),(0,Se.jsx)(Ef,{value:p?"":(p?"transparent":o).replace("#","").toUpperCase(),placeholder:"\u2014",maxLength:6,onChange:h=>{let g=h.target.value;if(g.toLowerCase()==="transparent"){t("transparent",e);return}let m=g.replace(/[^0-9a-fA-F#]/g,"").slice(0,7);if(/^#[0-9a-fA-F]{6}$/i.test(m)||/^[0-9a-fA-F]{6}$/i.test(m)){let f=m.startsWith("#")?m:"#"+m;t(f,e),wr(f)}},onKeyDown:h=>h.stopPropagation()}),(0,Se.jsxs)(Bf,{children:[Math.round(e*100),"%"]})]}),l&&(0,Se.jsx)(Mf,{children:(0,Se.jsx)($s,{color:o,opacity:e,onChange:(h,g)=>t(h,g),showTransparent:n,showOpacity:r})})]})}),yf=R("div",{background:"$panel",border:"1px solid $separator",borderRadius:"8px",padding:"8px",display:"flex",flexDirection:"column",gap:"6px",boxShadow:"0 8px 32px rgba(0,0,0,0.45)",minWidth:210}),bf=R("div",{position:"relative",width:"100%",height:130,borderRadius:4,overflow:"hidden"}),vf=R("div",{position:"absolute",width:10,height:10,borderRadius:"50%",border:"2px solid white",transform:"translate(-50%, -50%)",pointerEvents:"none",boxShadow:"0 0 2px rgba(0,0,0,0.5)"}),Mp=R("div",{position:"relative",width:"100%",height:12,borderRadius:6,overflow:"visible"}),Lp=R("div",{position:"absolute",top:"50%",width:14,height:14,borderRadius:"50%",background:"#fff",border:"2px solid rgba(0,0,0,0.2)",boxShadow:"0 1px 3px rgba(0,0,0,0.3)",transform:"translate(-50%, -50%)",pointerEvents:"none"}),Tf=R("div",{width:"100%",height:"100%",borderRadius:6,backgroundImage:dl,backgroundSize:"8px 8px",position:"relative"}),xf=R("div",{display:"flex",gap:3,alignItems:"center"}),kf=R("div",{display:"flex",gap:3,fontSize:"7px",color:"rgba(255,255,255,0.35)",padding:"0 1px","& > span":{flex:1,textAlign:"center"}}),Cf=R("input",{flex:2,background:"$inputBg",border:"1px solid $inputBorder",borderRadius:4,color:"$text",fontSize:"9px",padding:"3px 5px",fontFamily:"$mono",outline:"none",textTransform:"uppercase","&:focus":{borderColor:"$accent"},"&::-webkit-inner-spin-button, &::-webkit-outer-spin-button":{display:"none"}}),Ap=R("input",{flex:1,width:28,background:"$inputBg",border:"1px solid $inputBorder",borderRadius:4,color:"$text",fontSize:"9px",padding:"3px 4px",fontFamily:"$mono",outline:"none",textAlign:"center","&:focus":{borderColor:"$accent"},"&::-webkit-inner-spin-button, &::-webkit-outer-spin-button":{display:"none"}}),wf=R("div",{display:"flex",flexWrap:"wrap",gap:3,paddingTop:2}),Vp=R("div",{width:18,height:18,borderRadius:3,cursor:"pointer",border:"1px solid $separator",transition:"transform 0.08s, box-shadow 0.08s","&:hover":{transform:"scale(1.15)"},variants:{$active:{true:{boxShadow:"0 0 0 2px $colors$accent",transform:"scale(1.1)"}}}}),If=R("div",{position:"relative",width:"100%"}),Pf=R("div",{display:"flex",alignItems:"center",gap:4}),Rf=R("label",{fontSize:"9px",color:"$textSecondary",fontWeight:500,width:36,flexShrink:0,textAlign:"right"}),Df=R("div",{width:20,height:20,borderRadius:"$0",border:"1px solid $separator",flexShrink:0,cursor:"pointer",transition:"box-shadow 0.08s","&:hover":{boxShadow:"0 0 0 1px $colors$accent"}}),Ef=R("input",{flex:1,background:"$inputBg",border:"1px solid $inputBorder",borderRadius:"$1",color:"$text",fontSize:"9px",padding:"3px 5px",fontFamily:"$mono",outline:"none",textTransform:"uppercase","&:focus":{borderColor:"$accent"}}),Bf=R("span",{fontSize:"9px",color:"$textSecondary",fontFamily:"$mono",width:32,textAlign:"initial",flexShrink:0}),Mf=R("div",{position:"absolute",top:"100%",left:0,right:0,zIndex:1e3,marginTop:4,boxShadow:"0 8px 32px rgba(0,0,0,0.5)",borderRadius:"$2",overflow:"visible"});var Wt=H(require("react"));var Pr=require("react/jsx-runtime"),Je=Wt.memo(function({value:o,onChange:e,label:t,min:n=-1/0,max:r=1/0,step:s=1,suffix:l,style:a,labelWidth:c=18}){let[p,u]=Wt.useState(!1),[h,g]=Wt.useState(String(o)),m=Wt.useRef(null),f=Wt.useRef({active:!1,startX:0,startVal:0});Wt.useEffect(()=>{p||g(String(Math.round(o*100)/100))},[o,p]);let v=x=>Math.min(r,Math.max(n,x)),b=Wt.useCallback(x=>{x.preventDefault(),x.stopPropagation(),f.current={active:!0,startX:x.clientX,startVal:o};let P=x.currentTarget;P.setPointerCapture(x.pointerId);let k=C=>{if(!f.current.active)return;let E=C.clientX-f.current.startX,M=C.shiftKey?10:C.altKey?.1:1,L=Math.round(E*M*s);e(v(f.current.startVal+L))},D=()=>{f.current.active=!1,P.releasePointerCapture(x.pointerId),document.removeEventListener("pointermove",k),document.removeEventListener("pointerup",D)};document.addEventListener("pointermove",k),document.addEventListener("pointerup",D)},[o,e,n,r,s]),T=Wt.useCallback(x=>{x.preventDefault(),x.stopPropagation();let P=x.clientX,k=o,D=!1;f.current={active:!0,startX:P,startVal:k};let C=M=>{let L=M.clientX-P;if(Math.abs(L)>2&&(D=!0),!D)return;let V=M.shiftKey?10:M.altKey?.1:1,X=Math.round(L*V*s);e(v(k+X))},E=()=>{f.current.active=!1,document.removeEventListener("pointermove",C),document.removeEventListener("pointerup",E),D||(u(!0),setTimeout(()=>{var M;return(M=m.current)==null?void 0:M.select()},0))};document.addEventListener("pointermove",C),document.addEventListener("pointerup",E)},[o,e,n,r,s]),y=Wt.useCallback(()=>{u(!1);let x=parseFloat(h);isNaN(x)||e(v(x))},[h,e,n,r]);return(0,Pr.jsxs)(Lf,{style:a,children:[t&&(0,Pr.jsx)(Af,{style:{width:c,cursor:"ew-resize"},onPointerDown:b,children:t}),p?(0,Pr.jsx)(Vf,{ref:m,value:h,onChange:x=>g(x.target.value),onBlur:y,onKeyDown:x=>{x.key==="Enter"&&y(),x.key==="Escape"&&u(!1),x.stopPropagation()},autoFocus:!0}):(0,Pr.jsxs)(Hf,{onPointerDown:T,children:[Math.round(o*100)/100,l&&(0,Pr.jsx)(zf,{children:l})]})]})}),Lf=R("div",{display:"flex",alignItems:"center",gap:"4px",minWidth:0}),Af=R("label",{fontSize:"9px",color:"$textSecondary",fontWeight:500,flexShrink:0,textAlign:"right",userSelect:"none",cursor:"ew-resize","&:active":{cursor:"ew-resize"}}),Vf=R("input",{width:"100%",background:"$inputBg",border:"1px solid $accent",borderRadius:"$1",color:"$text",fontSize:"10px",padding:"3px 5px",fontFamily:"$mono",outline:"none","&::-webkit-inner-spin-button, &::-webkit-outer-spin-button":{display:"none"}}),Hf=R("div",{flex:1,background:"$inputBg",border:"1px solid $inputBorder",borderRadius:"$1",color:"$text",fontSize:"10px",padding:"3px 5px",fontFamily:"$mono",cursor:"ew-resize",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",userSelect:"none",transition:"border-color 0.1s","&:hover":{borderColor:"$accent"}}),zf=R("span",{fontSize:"8px",color:"$textSecondary",marginLeft:"1px"});var dt=H(require("react"));var O=require("react/jsx-runtime");function _o(i){let e=[...i.stops].sort((t,n)=>t.position-n.position).map(t=>{let n=t.color,r=Math.round(t.opacity*255).toString(16).padStart(2,"0");return`${n}${r} ${t.position}%`}).join(", ");switch(i.type){case"linear":return`linear-gradient(${i.angle}deg, ${e})`;case"radial":return`radial-gradient(circle at ${i.centerX}% ${i.centerY}%, ${e})`;case"conic":return`conic-gradient(from ${i.angle}deg at ${i.centerX}% ${i.centerY}%, ${e})`;case"diamond":return`conic-gradient(from ${i.angle}deg, ${e})`}}var Ff={type:"linear",stops:[{color:"#0D99FF",position:0,opacity:1},{color:"#FF6B00",position:100,opacity:1}],angle:90,centerX:50,centerY:50},pl="telva_gradient_presets";function ul(){try{return JSON.parse(localStorage.getItem(pl)||"[]")}catch(i){return[]}}function Of(i){let o=ul();o.unshift(i),localStorage.setItem(pl,JSON.stringify(o.slice(0,12)))}function $f(i){let o=ul();o.splice(i,1),localStorage.setItem(pl,JSON.stringify(o))}function Gf(){return(0,O.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,O.jsx)("defs",{children:(0,O.jsxs)("linearGradient",{id:"lg",x1:"0",y1:"0",x2:"1",y2:"1",children:[(0,O.jsx)("stop",{offset:"0%",stopColor:"#0D99FF"}),(0,O.jsx)("stop",{offset:"100%",stopColor:"#FF6B00"})]})}),(0,O.jsx)("rect",{x:"1",y:"1",width:"12",height:"12",rx:"2",fill:"url(#lg)"})]})}function jf(){return(0,O.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,O.jsx)("defs",{children:(0,O.jsxs)("radialGradient",{id:"rg",children:[(0,O.jsx)("stop",{offset:"0%",stopColor:"#0D99FF"}),(0,O.jsx)("stop",{offset:"100%",stopColor:"#FF6B00"})]})}),(0,O.jsx)("rect",{x:"1",y:"1",width:"12",height:"12",rx:"2",fill:"url(#rg)"})]})}function Wf(){return(0,O.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,O.jsx)("circle",{cx:"7",cy:"7",r:"6",fill:"none",stroke:"#0D99FF",strokeWidth:"1.5"}),(0,O.jsx)("line",{x1:"7",y1:"7",x2:"7",y2:"1",stroke:"#FF6B00",strokeWidth:"1.5"})]})}function Nf(){return(0,O.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,O.jsx)("polygon",{points:"7,1 13,7 7,13 1,7",fill:"none",stroke:"#0D99FF",strokeWidth:"1.2"}),(0,O.jsx)("circle",{cx:"7",cy:"7",r:"2",fill:"#FF6B00"})]})}var Uf={linear:(0,O.jsx)(Gf,{}),radial:(0,O.jsx)(jf,{}),conic:(0,O.jsx)(Wf,{}),diamond:(0,O.jsx)(Nf,{})},js=dt.memo(function({value:o,onChange:e}){let[t,n]=dt.useState(o||Ff),[r,s]=dt.useState(0),[l,a]=dt.useState(!1),c=dt.useRef(null),p=dt.useRef(null);dt.useEffect(()=>{o&&n(o)},[o]),dt.useEffect(()=>{let y=P=>{(P.key==="Delete"||P.key==="Backspace")&&t.stops.length>2&&(P.preventDefault(),m(r))},x=p.current;if(x)return x.addEventListener("keydown",y),()=>x.removeEventListener("keydown",y)},[t.stops.length,r]);let u=dt.useCallback(y=>{n(x=>{let P=S(S({},x),y);return e(P,_o(P)),P})},[e]),h=dt.useCallback((y,x)=>{n(P=>{let k=P.stops.map((C,E)=>E===y?S(S({},C),x):C),D=I(S({},P),{stops:k});return e(D,_o(D)),D})},[e]),g=dt.useCallback(y=>{if(!c.current||y.target.dataset.thumb)return;let x=c.current.getBoundingClientRect(),P=Math.round((y.clientX-x.left)/x.width*100),k={color:"#888888",position:P,opacity:1};n(D=>{let C=[...D.stops,k],E=I(S({},D),{stops:C});return e(E,_o(E)),s(C.length-1),E})},[e]),m=dt.useCallback(y=>{t.stops.length<=2||n(x=>{let P=x.stops.filter((D,C)=>C!==y),k=I(S({},x),{stops:P});return e(k,_o(k)),s(Math.min(y,P.length-1)),k})},[t.stops.length,e]),f=dt.useCallback((y,x)=>{y.preventDefault(),y.stopPropagation(),s(x);let P=c.current.getBoundingClientRect(),k=C=>{let E=Math.max(0,Math.min(100,Math.round((C.clientX-P.left)/P.width*100)));h(x,{position:E})},D=()=>{document.removeEventListener("pointermove",k),document.removeEventListener("pointerup",D)};document.addEventListener("pointermove",k),document.addEventListener("pointerup",D)},[h]),v=_o(t),b=t.stops[r],T=ul();return(0,O.jsxs)(Kf,{ref:p,tabIndex:-1,onClick:y=>y.stopPropagation(),onPointerDown:y=>y.stopPropagation(),children:[(0,O.jsx)(_f,{children:["linear","radial","conic","diamond"].map(y=>(0,O.jsxs)(Yf,{$active:t.type===y,onClick:()=>u({type:y}),title:y.charAt(0).toUpperCase()+y.slice(1),children:[Uf[y],(0,O.jsx)(Xf,{children:y.charAt(0).toUpperCase()+y.slice(1)})]},y))}),(0,O.jsx)(Zf,{style:{background:v}}),(0,O.jsxs)(qf,{children:[(0,O.jsxs)(Jf,{children:["Stops (",t.stops.length,")"]}),(0,O.jsxs)(Qf,{ref:c,onClick:g,children:[(0,O.jsx)(eS,{style:{background:v}}),t.stops.map((y,x)=>(0,O.jsx)(tS,{"data-thumb":"true",$selected:x===r,style:{left:`${y.position}%`,backgroundColor:y.color},onPointerDown:P=>f(P,x),onDoubleClick:()=>m(x)},x))]}),(0,O.jsx)(Fp,{children:"Click to add \xB7 Double-click to remove \xB7 Drag to move"})]}),b&&(0,O.jsxs)(nS,{children:[(0,O.jsxs)(oS,{children:["Stop ",r+1]}),(0,O.jsx)(Gs,{type:"number",min:0,max:100,value:b.position,onChange:y=>h(r,{position:Math.max(0,Math.min(100,Number(y.target.value)))}),onKeyDown:y=>y.stopPropagation()}),(0,O.jsx)(vo,{children:"%"})]}),b&&(0,O.jsx)($s,{color:b.color,opacity:b.opacity,onChange:(y,x)=>{h(r,{color:y,opacity:x}),y!=="transparent"&&wr(y)},showTransparent:!1}),(0,O.jsxs)(rS,{children:[(0,O.jsx)(iS,{children:"Geometry"}),(t.type==="linear"||t.type==="conic")&&(0,O.jsxs)(Op,{children:[(0,O.jsx)(vo,{children:"Angle"}),(0,O.jsx)(sS,{style:{transform:`rotate(${t.angle}deg)`},onPointerDown:y=>{y.preventDefault(),y.stopPropagation();let x=y.currentTarget.getBoundingClientRect(),P=x.left+x.width/2,k=x.top+x.height/2,D=E=>{let M=Math.round(Math.atan2(E.clientY-k,E.clientX-P)*(180/Math.PI)+90);u({angle:(M%360+360)%360})},C=()=>{document.removeEventListener("pointermove",D),document.removeEventListener("pointerup",C)};document.addEventListener("pointermove",D),document.addEventListener("pointerup",C)},children:(0,O.jsx)(aS,{})}),(0,O.jsx)(Gs,{type:"number",value:t.angle,onChange:y=>u({angle:(Number(y.target.value)%360+360)%360}),onKeyDown:y=>y.stopPropagation()}),(0,O.jsx)(vo,{children:"\xB0"})]}),(t.type==="radial"||t.type==="conic"||t.type==="diamond")&&(0,O.jsxs)(Op,{children:[(0,O.jsx)(vo,{children:"Center"}),(0,O.jsx)(vo,{children:"X"}),(0,O.jsx)(Gs,{type:"number",min:0,max:100,value:t.centerX,onChange:y=>u({centerX:Number(y.target.value)}),onKeyDown:y=>y.stopPropagation()}),(0,O.jsx)(vo,{children:"%"}),(0,O.jsx)(vo,{style:{marginLeft:4},children:"Y"}),(0,O.jsx)(Gs,{type:"number",min:0,max:100,value:t.centerY,onChange:y=>u({centerY:Number(y.target.value)}),onKeyDown:y=>y.stopPropagation()}),(0,O.jsx)(vo,{children:"%"})]})]}),(0,O.jsxs)(lS,{children:[(0,O.jsxs)(cl,{onClick:()=>{let y=[...t.stops].map(x=>I(S({},x),{position:100-x.position}));u({stops:y})},title:"Reverse gradient",children:[(0,O.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",children:(0,O.jsx)("path",{d:"M1 6h10M3 4l-2 2 2 2M9 4l2 2-2 2",stroke:"currentColor",strokeWidth:"1.2",fill:"none"})}),"Reverse"]}),(0,O.jsxs)(cl,{onClick:()=>m(r),disabled:t.stops.length<=2,title:"Remove selected stop",children:[(0,O.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",children:(0,O.jsx)("path",{d:"M3 3l6 6M9 3l-6 6",stroke:"currentColor",strokeWidth:"1.2"})}),"Remove"]}),(0,O.jsxs)(cl,{onClick:()=>{Of(t),a(!0)},title:"Save as preset",children:[(0,O.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",children:[(0,O.jsx)("path",{d:"M2 2h8v8H2z",fill:"none",stroke:"currentColor",strokeWidth:"1"}),(0,O.jsx)("path",{d:"M4 2v3h4V2",fill:"none",stroke:"currentColor",strokeWidth:"0.8"}),(0,O.jsx)("rect",{x:"3",y:"7",width:"6",height:"1",fill:"currentColor",opacity:"0.5"})]}),"Save"]})]}),(l||T.length>0)&&(0,O.jsxs)(dS,{children:[(0,O.jsxs)(cS,{onClick:()=>a(!l),children:["Presets (",T.length,")",(0,O.jsx)(pS,{children:l?"\u2212":"+"})]}),l&&(0,O.jsxs)(uS,{children:[T.map((y,x)=>(0,O.jsx)(hS,{style:{background:_o(y)},onClick:()=>{n(y),e(y,_o(y)),s(0)},onContextMenu:P=>{P.preventDefault(),$f(x),a(!0)},title:"Click to apply \xB7 Right-click to remove"},x)),T.length===0&&(0,O.jsx)(Fp,{children:"No presets saved yet"})]})]})]})}),Kf=R("div",{background:"$panel",border:"1px solid $separator",borderRadius:"8px",padding:"8px",display:"flex",flexDirection:"column",gap:"8px",boxShadow:"0 8px 32px rgba(0,0,0,0.45)",outline:"none"}),_f=R("div",{display:"flex",gap:2,background:"$inputBg",borderRadius:6,padding:2}),Yf=R("button",{all:"unset",flex:1,display:"flex",alignItems:"center",justifyContent:"center",gap:3,fontSize:"8px",fontWeight:600,textAlign:"center",padding:"5px 0",borderRadius:4,color:"$textSecondary",cursor:"pointer",transition:"all 0.12s","&:hover":{color:"$text"},variants:{$active:{true:{background:"$accent",color:"#fff"}}}}),Xf=R("span",{fontSize:"7px",fontWeight:500,letterSpacing:"0.02em"}),Zf=R("div",{width:"100%",height:40,borderRadius:6,border:"1px solid $separator"}),qf=R("div",{display:"flex",flexDirection:"column",gap:4}),Jf=R("span",{fontSize:"8px",color:"$textSecondary",fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em"}),Qf=R("div",{position:"relative",height:24,borderRadius:6,cursor:"crosshair",overflow:"visible"}),eS=R("div",{width:"100%",height:"100%",borderRadius:6,border:"1px solid $separator"}),tS=R("div",{position:"absolute",top:"50%",width:14,height:14,borderRadius:"50%",border:"2px solid #fff",transform:"translate(-50%, -50%)",cursor:"ew-resize",boxShadow:"0 1px 3px rgba(0,0,0,0.4)",transition:"box-shadow 0.08s",zIndex:2,variants:{$selected:{true:{boxShadow:"0 0 0 2px $colors$accent, 0 1px 4px rgba(0,0,0,0.5)",zIndex:3,width:16,height:16}}}}),Fp=R("span",{fontSize:"7px",color:"$textSecondary",fontStyle:"italic",opacity:.6}),nS=R("div",{display:"flex",alignItems:"center",gap:4}),oS=R("span",{fontSize:"8px",color:"$textSecondary",fontWeight:500,flex:1}),rS=R("div",{display:"flex",flexDirection:"column",gap:6,borderTop:"1px solid $separator",paddingTop:8}),iS=R("span",{fontSize:"8px",color:"$textSecondary",fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em"}),Op=R("div",{display:"flex",alignItems:"center",gap:4}),vo=R("span",{fontSize:"8px",color:"$textSecondary",fontWeight:500}),Gs=R("input",{width:40,background:"$inputBg",border:"1px solid $inputBorder",borderRadius:4,color:"$text",fontSize:"9px",padding:"3px 4px",fontFamily:"$mono",textAlign:"center",outline:"none","&:focus":{borderColor:"$accent"},"&::-webkit-inner-spin-button, &::-webkit-outer-spin-button":{display:"none"}}),sS=R("div",{width:28,height:28,borderRadius:"50%",border:"1px solid $inputBorder",background:"$inputBg",cursor:"pointer",position:"relative",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0}),aS=R("div",{width:2,height:"40%",background:"$accent",borderRadius:1,position:"absolute",top:3,left:"50%",transform:"translateX(-50%)"}),lS=R("div",{display:"flex",gap:3,borderTop:"1px solid $separator",paddingTop:8}),cl=R("button",{all:"unset",flex:1,fontSize:"8px",fontWeight:500,textAlign:"center",padding:"5px 0",borderRadius:4,color:"$textSecondary",border:"1px solid $separator",cursor:"pointer",transition:"all 0.1s",display:"flex",alignItems:"center",justifyContent:"center",gap:3,"&:hover":{background:"$hover",color:"$text"},"&:disabled":{opacity:.3,cursor:"default"}}),dS=R("div",{borderTop:"1px solid $separator",paddingTop:6}),cS=R("div",{display:"flex",alignItems:"center",justifyContent:"space-between",fontSize:"8px",color:"$textSecondary",fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em",cursor:"pointer","&:hover":{color:"$text"}}),pS=R("span",{fontSize:"10px",color:"$textSecondary"}),uS=R("div",{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:4,marginTop:6}),hS=R("div",{height:24,borderRadius:4,border:"1px solid $separator",cursor:"pointer",transition:"transform 0.08s, box-shadow 0.08s","&:hover":{transform:"scale(1.05)",boxShadow:"0 0 0 1px $colors$accent"}});var w=require("react/jsx-runtime");function Np(i,o){let[e,t,n]=Cr(i);return`rgba(${e},${t},${n},${o.toFixed(3)})`}function Up(i,o){if(!i||i==="transparent")return{hex:"transparent",opacity:1};let e=i.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*([\d.]+))?\)/);return e?{hex:Si(parseInt(e[1]),parseInt(e[2]),parseInt(e[3])),opacity:e[4]!==void 0?parseFloat(e[4]):1}:i.startsWith("#")?{hex:i.slice(0,7),opacity:1}:{hex:o,opacity:1}}var yS=i=>{let o=i.document.pages[i.appState.currentPageId],t=i.document.pageStates[i.appState.currentPageId].selectedIds.map(n=>o.shapes[n]).filter(Boolean);return{shapes:t,key:JSON.stringify(t)}},bS=i=>i.settings.isDarkMode?"dark":"light",fl=Re.memo(function(){let o=_(),{shapes:e}=o.useStore(yS),t=o.useStore(bS);if(e.length===0)return(0,w.jsx)(_p,{children:(0,w.jsxs)(no,{children:[(0,w.jsx)(Co,{children:"Design"}),(0,w.jsx)(VS,{children:"Select an element to edit"})]})});let n=e[0],r=e.length>1,s=n.type==="text"||n.type==="sticky"||"label"in n,l=n.type==="arrow",a=n.type==="rectangle",c=n.type==="pen";return(0,w.jsxs)(_p,{children:[(0,w.jsx)(vS,{shape:n,multi:r,count:e.length}),(0,w.jsx)(pn,{}),!r&&c&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(LS,{shape:n,app:o}),(0,w.jsx)(pn,{})]}),!r&&(0,w.jsx)(TS,{shape:n,app:o}),r&&(0,w.jsx)(MS,{app:o}),(0,w.jsx)(pn,{}),!r&&(0,w.jsx)(xS,{shape:n,app:o}),!r&&(0,w.jsx)(pn,{}),(0,w.jsx)(kS,{shape:n,app:o,isRect:a}),(0,w.jsx)(pn,{}),(0,w.jsx)(CS,{style:n.style,theme:t,app:o}),(0,w.jsx)(pn,{}),(0,w.jsx)(Yo,{title:"Stroke",children:(0,w.jsx)(wS,{style:n.style,theme:t,app:o})}),(0,w.jsx)(pn,{}),(0,w.jsx)(Yo,{title:"Gradient",children:(0,w.jsx)(IS,{shape:n,app:o})}),(0,w.jsx)(pn,{}),s&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(Yo,{title:"Text Style",defaultOpen:!0,children:(0,w.jsx)(PS,{style:n.style,app:o,theme:t})}),(0,w.jsx)(pn,{})]}),(0,w.jsx)(Yo,{title:"Effects",children:(0,w.jsx)(DS,{shape:n,app:o})}),(0,w.jsx)(pn,{}),l&&!r&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(Yo,{title:"Arrow",defaultOpen:!0,children:(0,w.jsx)(ES,{shape:n,app:o})}),(0,w.jsx)(pn,{})]}),s&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(Yo,{title:"Typography",defaultOpen:!0,children:(0,w.jsx)(BS,{style:n.style,app:o})}),(0,w.jsx)(pn,{})]}),(0,w.jsx)(Yo,{title:"Export",children:(0,w.jsx)(AS,{shape:n,app:o})}),(0,w.jsx)("div",{style:{height:40}})]})});function vS({shape:i,multi:o,count:e}){let t=o?e+" Selected":i.type.charAt(0).toUpperCase()+i.type.slice(1);return(0,w.jsx)(no,{style:{padding:"10px 12px 6px"},children:(0,w.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,w.jsx)(Co,{style:{marginBottom:0,fontSize:"11px"},children:t}),(0,w.jsx)("div",{style:{display:"flex",gap:4},children:["\u229E","\u25D1","\u229F","\u22A0"].map((n,r)=>(0,w.jsx)(Zp,{title:["Clip Mask","Component","Boolean","Flatten"][r],children:n},r))})]})})}function TS({shape:i,app:o}){let e=i.point||[0,0],t=Math.round((i.rotation||0)*(180/Math.PI)),n=Re.useCallback((r,s)=>{let l={id:i.id};switch(r){case"x":l.point=[s,e[1]];break;case"y":l.point=[e[0],s];break;case"r":l.rotation=s*Math.PI/180;break}o.updateShapes(l)},[i.id,e,o]);return(0,w.jsxs)(no,{children:[(0,w.jsx)(Co,{children:"Position"}),(0,w.jsx)(Ns,{children:[{fn:()=>o.align("left"),icon:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"2",y1:"2",x2:"2",y2:"12",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("rect",{x:"4",y:"4",width:"7",height:"2.5",rx:"0.5",fill:"currentColor",opacity:"0.6"}),(0,w.jsx)("rect",{x:"4",y:"8",width:"5",height:"2.5",rx:"0.5",fill:"currentColor",opacity:"0.6"})]}),t:"Left"},{fn:()=>o.align("centerHorizontal"),icon:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"7",y1:"1",x2:"7",y2:"13",stroke:"currentColor",strokeWidth:"1",strokeDasharray:"2 1"}),(0,w.jsx)("rect",{x:"3",y:"4",width:"8",height:"2.5",rx:"0.5",fill:"currentColor",opacity:"0.6"}),(0,w.jsx)("rect",{x:"4",y:"8",width:"6",height:"2.5",rx:"0.5",fill:"currentColor",opacity:"0.6"})]}),t:"Center H"},{fn:()=>o.align("right"),icon:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"12",y1:"2",x2:"12",y2:"12",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("rect",{x:"3",y:"4",width:"7",height:"2.5",rx:"0.5",fill:"currentColor",opacity:"0.6"}),(0,w.jsx)("rect",{x:"5",y:"8",width:"5",height:"2.5",rx:"0.5",fill:"currentColor",opacity:"0.6"})]}),t:"Right"},{fn:()=>o.align("top"),icon:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"2",y1:"2",x2:"12",y2:"2",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("rect",{x:"4",y:"4",width:"2.5",height:"7",rx:"0.5",fill:"currentColor",opacity:"0.6"}),(0,w.jsx)("rect",{x:"8",y:"4",width:"2.5",height:"5",rx:"0.5",fill:"currentColor",opacity:"0.6"})]}),t:"Top"},{fn:()=>o.align("centerVertical"),icon:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"1",y1:"7",x2:"13",y2:"7",stroke:"currentColor",strokeWidth:"1",strokeDasharray:"2 1"}),(0,w.jsx)("rect",{x:"4",y:"2",width:"2.5",height:"10",rx:"0.5",fill:"currentColor",opacity:"0.6"}),(0,w.jsx)("rect",{x:"8",y:"3",width:"2.5",height:"8",rx:"0.5",fill:"currentColor",opacity:"0.6"})]}),t:"Center V"},{fn:()=>o.align("bottom"),icon:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"2",y1:"12",x2:"12",y2:"12",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("rect",{x:"4",y:"3",width:"2.5",height:"7",rx:"0.5",fill:"currentColor",opacity:"0.6"}),(0,w.jsx)("rect",{x:"8",y:"5",width:"2.5",height:"5",rx:"0.5",fill:"currentColor",opacity:"0.6"})]}),t:"Bottom"}].map(({fn:r,icon:s,t:l},a)=>(0,w.jsx)(ct,{onClick:r,title:l,children:s},a))}),(0,w.jsxs)(Xp,{style:{marginTop:8},children:[(0,w.jsx)(Je,{label:"X",value:Math.round(e[0]),onChange:r=>n("x",r)}),(0,w.jsx)(Je,{label:"Y",value:Math.round(e[1]),onChange:r=>n("y",r)})]}),(0,w.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,marginTop:4},children:[(0,w.jsx)(Je,{label:"R",value:t,onChange:r=>n("r",r),suffix:"\xB0",style:{flex:1}}),(0,w.jsxs)("div",{style:{display:"flex",gap:2},children:[(0,w.jsx)(ct,{onClick:()=>o.flipHorizontal(),title:"Flip Horizontal",children:(0,w.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 14 14",children:(0,w.jsx)("path",{d:"M7 2v10M3 5l-1 4h4zM11 5l1 4h-4z",stroke:"currentColor",strokeWidth:"1",fill:"none"})})}),(0,w.jsx)(ct,{onClick:()=>o.flipVertical(),title:"Flip Vertical",children:(0,w.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 14 14",children:(0,w.jsx)("path",{d:"M2 7h10M5 3l4-1v4zM5 11l4 1v-4z",stroke:"currentColor",strokeWidth:"1",fill:"none"})})})]})]})]})}function xS({shape:i,app:o}){let e="size"in i?i.size:"radius"in i?[i.radius[0]*2,i.radius[1]*2]:[0,0],[t,n]=Re.useState(!1),r=Re.useCallback((s,l)=>{let a={id:i.id};if("size"in i)if(s==="w"){let c=t?l/e[0]*e[1]:e[1];a.size=[l,c]}else{let c=t?l/e[1]*e[0]:e[0];a.size=[c,l]}else"radius"in i&&(s==="w"?a.radius=[l/2,t?l/2/e[0]*e[1]/2:i.radius[1]]:a.radius=[t?l/2/e[1]*e[0]/2:i.radius[0],l/2]);o.updateShapes(a)},[i,e,t,o]);return(0,w.jsxs)(no,{children:[(0,w.jsx)(Co,{children:"Layout"}),(0,w.jsxs)(zS,{children:[(0,w.jsx)(Je,{label:"W",value:Math.round(e[0]),onChange:s=>r("w",s),min:1}),(0,w.jsx)(Je,{label:"H",value:Math.round(e[1]),onChange:s=>r("h",s),min:1})]})]})}function kS({shape:i,app:o,isRect:e}){var r,s;let t=Math.round(((r=i.style.opacity)!=null?r:1)*100),n=(s=i.style.borderRadius)!=null?s:0;return(0,w.jsxs)(no,{children:[(0,w.jsx)(Co,{children:"Appearance"}),(0,w.jsx)(Je,{label:"Opacity",value:t,onChange:l=>o.style({opacity:l/100}),min:0,max:100,suffix:"%",labelWidth:36}),e&&(0,w.jsx)("div",{style:{marginTop:4},children:(0,w.jsx)(Je,{label:"Corner",value:n,onChange:l=>o.style({borderRadius:l}),min:0,suffix:"px",labelWidth:36})}),(0,w.jsxs)(xo,{style:{marginTop:4},children:[(0,w.jsx)(ko,{style:{width:36},children:"Dash"}),(0,w.jsx)(Us,{children:[{val:"draw",label:"~"},{val:"solid",label:"\u2014"},{val:"dashed",label:"- -"},{val:"dotted",label:"\xB7\xB7\xB7"}].map(({val:l,label:a})=>(0,w.jsx)(ct,{isActive:i.style.dash===l,onClick:()=>o.style({dash:l}),children:a},l))})]})]})}function CS({style:i,theme:o,app:e}){var r,s;let t=i.isFilled?i.fillHex||((r=Ao[o])==null?void 0:r[i.color])||Ao.light[i.color]:"transparent",n=Re.useCallback((l,a)=>{l==="transparent"?e.style({isFilled:!1}):e.style({fillHex:l,isFilled:!0,opacity:a})},[e]);return(0,w.jsxs)(no,{children:[(0,w.jsx)(Co,{children:"Fill"}),(0,w.jsx)(Ir,{color:t,opacity:(s=i.opacity)!=null?s:1,onChange:n,showTransparent:!0,showOpacity:!0,label:"Color"})]})}function wS({style:i,theme:o,app:e}){var r,s;let t=i.strokeHex||((r=Yn[o])==null?void 0:r[i.color])||Yn.light[i.color],n=(s=i.strokeWidthOverride)!=null?s:{small:2,medium:3.5,large:5}[i.size]||2;return(0,w.jsxs)("div",{children:[(0,w.jsx)(Ir,{color:t,opacity:1,onChange:l=>e.style({strokeHex:l}),showTransparent:!0,showOpacity:!1}),(0,w.jsx)("div",{style:{marginTop:6},children:(0,w.jsx)(Je,{label:"Width",value:n,onChange:l=>e.style({strokeWidthOverride:l}),min:0,step:.01,suffix:"px",max:10,labelWidth:36})})]})}function IS({shape:i,app:o}){let[e,t]=Re.useState(!!i.style.gradient),n=i.style.gradient,r=Re.useCallback(()=>{if(e)o.style({gradient:void 0}),t(!1);else{let s={type:"linear",stops:[{color:"#0D99FF",position:0,opacity:1},{color:"#FF6B00",position:100,opacity:1}],angle:90,centerX:50,centerY:50};o.style({gradient:s,isFilled:!0}),t(!0)}},[e,o]);return(0,w.jsxs)("div",{children:[(0,w.jsxs)(xo,{children:[(0,w.jsx)(ko,{style:{width:36},children:"Enable"}),(0,w.jsx)(Sl,{checked:e,onClick:r,children:(0,w.jsx)(yl,{checked:e})})]}),e&&(0,w.jsx)("div",{style:{marginTop:8},children:(0,w.jsx)(js,{value:n,onChange:(s,l)=>{o.style({gradient:s})}})})]})}function PS({style:i,app:o,theme:e}){var h;let t=((h=Yn[e])==null?void 0:h[i.color])||"#000000",{hex:n,opacity:r}=Up(i.labelColor,t),{hex:s,opacity:l}=Up(i.labelBackground,"transparent"),a=i.textGradient,[c,p]=Re.useState(!!a),u=Re.useCallback(()=>{if(c)o.style({textGradient:void 0}),p(!1);else{let g={type:"linear",stops:[{color:"#0D99FF",position:0,opacity:1},{color:"#FF6B00",position:100,opacity:1}],angle:90,centerX:50,centerY:50};o.style({textGradient:g}),p(!0)}},[c,o]);return(0,w.jsxs)("div",{children:[(0,w.jsx)(Ir,{color:n,opacity:r,onChange:(g,m)=>{let f=g==="transparent"?"transparent":Np(g,m);o.style({labelColor:f})},showTransparent:!0,showOpacity:!0,label:"Text"}),(0,w.jsx)("div",{style:{marginTop:6},children:(0,w.jsx)(Ir,{color:s,opacity:l,onChange:(g,m)=>{let f=g==="transparent"?"transparent":Np(g,m);o.style({labelBackground:f})},showTransparent:!0,showOpacity:!0,label:"Text Bg"})}),(0,w.jsxs)("div",{style:{marginTop:8},children:[(0,w.jsxs)(xo,{children:[(0,w.jsx)(ko,{style:{width:60},children:"Text Grad"}),(0,w.jsx)(Sl,{checked:c,onClick:u,children:(0,w.jsx)(yl,{checked:c})})]}),c&&(0,w.jsx)("div",{style:{marginTop:8},children:(0,w.jsx)(js,{value:a,onChange:g=>o.style({textGradient:g})})})]})]})}function RS(i){if(!i)return[];if(Array.isArray(i))return i;let o=[];i.dropShadow&&o.push({id:Ti.Utils.uniqueId(),type:"dropShadow",enabled:i.dropShadow.enabled,x:i.dropShadow.x,y:i.dropShadow.y,blur:i.dropShadow.blur,spread:i.dropShadow.spread,color:i.dropShadow.color});let e={layerBlur:0,blur:0,brightness:100,contrast:100,saturate:100,hueRotate:0,grayscale:0,sepia:0};for(let t of Object.keys(e))i[t]!==void 0&&i[t]!==e[t]&&o.push({id:Ti.Utils.uniqueId(),type:t,enabled:!0,value:i[t]});return i.invert&&o.push({id:Ti.Utils.uniqueId(),type:"invert",enabled:!0}),o}var Kp={dropShadow:"Drop Shadow",blur:"Blur",layerBlur:"Layer Blur",brightness:"Brightness",contrast:"Contrast",saturate:"Saturation",hueRotate:"Hue Rotate",grayscale:"Grayscale",sepia:"Sepia",invert:"Invert"};function DS({shape:i,app:o}){let e=RS(i.effects),t=Re.useCallback(l=>o.updateShapes({id:i.id,effects:l}),[o,i.id]),n=(l,a)=>{t(e.map(c=>c.id===l?S(S({},c),a):c))},r=l=>{t(e.filter(a=>a.id!==l))},s=l=>{let a={id:Ti.Utils.uniqueId(),type:l,enabled:!0};l==="dropShadow"?Object.assign(a,{x:2,y:4,blur:8,spread:0,color:"#00000080"}):["layerBlur","blur"].includes(l)?a.value=4:["brightness","contrast","saturate"].includes(l)?a.value=100:a.value=0,t([...e,a])};return(0,w.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[e.map(l=>{var a,c,p,u,h,g,m,f,v;return(0,w.jsxs)("div",{style:{borderBottom:"1px solid var(--colors-separator)",paddingBottom:6},children:[(0,w.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:4},children:[(0,w.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,w.jsx)(Sl,{checked:l.enabled,onClick:()=>n(l.id,{enabled:!l.enabled}),children:(0,w.jsx)(yl,{checked:l.enabled})}),(0,w.jsx)("span",{style:{fontSize:10,fontWeight:500,color:"var(--colors-text)"},children:Kp[l.type]})]}),(0,w.jsx)("button",{onClick:()=>r(l.id),style:{all:"unset",cursor:"pointer",opacity:.5,fontSize:12,lineHeight:1},title:"Remove effect",children:"\u2715"})]}),l.enabled&&(0,w.jsxs)("div",{style:{paddingLeft:22},children:[l.type==="dropShadow"&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(Xp,{style:{marginBottom:4},children:[(0,w.jsx)(Je,{label:"X",value:(a=l.x)!=null?a:0,onChange:b=>n(l.id,{x:b})}),(0,w.jsx)(Je,{label:"Y",value:(c=l.y)!=null?c:0,onChange:b=>n(l.id,{y:b})}),(0,w.jsx)(Je,{label:"Blur",value:(p=l.blur)!=null?p:0,onChange:b=>n(l.id,{blur:Math.max(0,b)}),labelWidth:26}),(0,w.jsx)(Je,{label:"Sprd",value:(u=l.spread)!=null?u:0,onChange:b=>n(l.id,{spread:b}),labelWidth:28})]}),(0,w.jsxs)(xo,{children:[(0,w.jsx)(ko,{style:{width:40,textAlign:"left"},children:"Color"}),(0,w.jsx)("input",{type:"color",value:((h=l.color)!=null?h:"#000000").slice(0,7),onChange:b=>n(l.id,{color:b.target.value+"80"}),style:{width:24,height:20,border:"none",padding:0,cursor:"pointer"}})]})]}),["layerBlur","blur"].includes(l.type)&&(0,w.jsx)(Je,{label:"Radius",value:(g=l.value)!=null?g:0,onChange:b=>n(l.id,{value:Math.max(0,b)}),suffix:"px",labelWidth:40}),["brightness","contrast","saturate"].includes(l.type)&&(0,w.jsx)(Je,{label:"Amount",value:(m=l.value)!=null?m:100,onChange:b=>n(l.id,{value:Math.max(0,b)}),suffix:"%",labelWidth:40}),["hueRotate"].includes(l.type)&&(0,w.jsx)(Je,{label:"Angle",value:(f=l.value)!=null?f:0,onChange:b=>n(l.id,{value:b}),suffix:"\xB0",labelWidth:40}),["grayscale","sepia"].includes(l.type)&&(0,w.jsx)(Je,{label:"Amount",value:(v=l.value)!=null?v:0,onChange:b=>n(l.id,{value:Math.max(0,Math.min(100,b))}),suffix:"%",labelWidth:40})]})]},l.id)}),(0,w.jsx)("div",{style:{position:"relative"},children:(0,w.jsxs)("select",{value:"",onChange:l=>s(l.target.value),style:{width:"100%",padding:"4px 6px",fontSize:10,borderRadius:4,background:"var(--colors-inputBg)",color:"var(--colors-textSecondary)",border:"1px dashed var(--colors-separator)",cursor:"pointer"},children:[(0,w.jsx)("option",{value:"",disabled:!0,children:"+ Add Effect"}),Object.entries(Kp).map(([l,a])=>(0,w.jsx)("option",{value:l,children:a},l))]})})]})}function ES({shape:i,app:o}){var r,s;let e=i,t=!!((r=e.decorations)!=null&&r.start),n=((s=e.decorations)==null?void 0:s.end)!==void 0;return(0,w.jsxs)("div",{children:[(0,w.jsxs)(xo,{children:[(0,w.jsx)(ko,{style:{width:36},children:"Start"}),(0,w.jsxs)(Us,{children:[(0,w.jsx)(ct,{isActive:!t,onClick:()=>o.updateShapes({id:i.id,decorations:I(S({},e.decorations),{start:void 0})}),children:"None"}),(0,w.jsx)(ct,{isActive:t,onClick:()=>o.updateShapes({id:i.id,decorations:I(S({},e.decorations),{start:"arrow"})}),children:"\u25C4"})]})]}),(0,w.jsxs)(xo,{children:[(0,w.jsx)(ko,{style:{width:36},children:"End"}),(0,w.jsxs)(Us,{children:[(0,w.jsx)(ct,{isActive:!n,onClick:()=>o.updateShapes({id:i.id,decorations:I(S({},e.decorations),{end:void 0})}),children:"None"}),(0,w.jsx)(ct,{isActive:n,onClick:()=>o.updateShapes({id:i.id,decorations:I(S({},e.decorations),{end:"arrow"})}),children:"\u25BA"})]})]}),(0,w.jsx)("div",{style:{marginTop:4},children:(0,w.jsx)(Je,{label:"Bend",value:Math.round((e.bend||0)*100),onChange:l=>o.updateShapes({id:i.id,bend:l/100}),min:-99,max:99,suffix:"%",labelWidth:36})})]})}function BS({style:i,app:o}){var g;let[e,t]=Re.useState(""),[n,r]=Re.useState(!1),[s,l]=Re.useState([]),a=Re.useRef(null);Re.useEffect(()=>{Promise.resolve().then(()=>(vi(),Ws)).then(m=>{l(m.searchGoogleFonts(e))})},[e]);let c=Re.useCallback(m=>{Promise.resolve().then(()=>(vi(),Ws)).then(f=>{f.loadGoogleFont(m.family,m.variants);let v=m.category==="monospace"?"mono":m.category==="serif"?"serif":m.category==="handwriting"?"script":"sans";o.style({font:v,fontFamily:m.family}),t(""),r(!1)})},[o]);Re.useEffect(()=>{let m=f=>{a.current&&!a.current.contains(f.target)&&(r(!1),t(""))};return document.addEventListener("mousedown",m),()=>document.removeEventListener("mousedown",m)},[]);let p=i.font==="mono"?"Monospace":i.font==="serif"?"Serif":i.font==="script"?"Script":"Sans Serif",u=i.fontFamily||p,h=Math.round(((g=i.scale)!=null?g:1)*100);return(0,w.jsxs)("div",{children:[(0,w.jsxs)(xo,{children:[(0,w.jsx)(ko,{style:{width:36},children:"Font"}),(0,w.jsxs)("div",{ref:a,style:{position:"relative",flex:1},children:[(0,w.jsx)(HS,{value:e||u,onChange:m=>{t(m.target.value),r(!0)},onFocus:()=>{r(!0),Promise.resolve().then(()=>(vi(),Ws)).then(m=>m.fetchGoogleFonts())},placeholder:"Search fonts...",style:{fontSize:9}}),n&&s.length>0&&(0,w.jsx)(FS,{children:s.map(m=>(0,w.jsx)(OS,{onMouseDown:f=>{f.preventDefault(),c(m)},style:{fontFamily:m.family},children:m.family},m.family))})]})]}),(0,w.jsx)("div",{style:{marginTop:4},children:(0,w.jsx)(Je,{label:"Size",value:h,onChange:m=>o.style({scale:m/100}),min:25,max:300,suffix:"%",labelWidth:36})}),(0,w.jsxs)(xo,{style:{marginTop:4},children:[(0,w.jsx)(ko,{style:{width:36},children:"Align"}),(0,w.jsx)(Us,{children:[{val:"start",svg:(0,w.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",children:(0,w.jsx)("path",{d:"M1 2H11M1 5H7M1 8H9M1 11H5",stroke:"currentColor",strokeWidth:"1",strokeLinecap:"round"})})},{val:"middle",svg:(0,w.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",children:(0,w.jsx)("path",{d:"M1 2H11M3 5H9M2 8H10M4 11H8",stroke:"currentColor",strokeWidth:"1",strokeLinecap:"round"})})},{val:"end",svg:(0,w.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",children:(0,w.jsx)("path",{d:"M1 2H11M5 5H11M3 8H11M7 11H11",stroke:"currentColor",strokeWidth:"1",strokeLinecap:"round"})})},{val:"justify",svg:(0,w.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",children:(0,w.jsx)("path",{d:"M1 2H11M1 5H11M1 8H11M1 11H11",stroke:"currentColor",strokeWidth:"1",strokeLinecap:"round"})})}].map(({val:m,svg:f})=>(0,w.jsx)(ct,{isActive:i.textAlign===m,onClick:()=>o.style({textAlign:m}),children:f},m))})]})]})}function MS({app:i}){return(0,w.jsxs)(no,{children:[(0,w.jsx)(Co,{children:"Alignment"}),(0,w.jsx)(Ns,{children:[{fn:()=>i.align("left"),icon:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"2",y1:"2",x2:"2",y2:"12",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("rect",{x:"4",y:"4",width:"7",height:"2.5",rx:"0.5",fill:"currentColor",opacity:"0.6"}),(0,w.jsx)("rect",{x:"4",y:"8",width:"5",height:"2.5",rx:"0.5",fill:"currentColor",opacity:"0.6"})]}),t:"Left"},{fn:()=>i.align("centerHorizontal"),icon:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"7",y1:"1",x2:"7",y2:"13",stroke:"currentColor",strokeWidth:"1",strokeDasharray:"2 1"}),(0,w.jsx)("rect",{x:"3",y:"4",width:"8",height:"2.5",rx:"0.5",fill:"currentColor",opacity:"0.6"}),(0,w.jsx)("rect",{x:"4",y:"8",width:"6",height:"2.5",rx:"0.5",fill:"currentColor",opacity:"0.6"})]}),t:"Center H"},{fn:()=>i.align("right"),icon:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"12",y1:"2",x2:"12",y2:"12",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("rect",{x:"3",y:"4",width:"7",height:"2.5",rx:"0.5",fill:"currentColor",opacity:"0.6"}),(0,w.jsx)("rect",{x:"5",y:"8",width:"5",height:"2.5",rx:"0.5",fill:"currentColor",opacity:"0.6"})]}),t:"Right"},{fn:()=>i.align("top"),icon:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"2",y1:"2",x2:"12",y2:"2",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("rect",{x:"4",y:"4",width:"2.5",height:"7",rx:"0.5",fill:"currentColor",opacity:"0.6"}),(0,w.jsx)("rect",{x:"8",y:"4",width:"2.5",height:"5",rx:"0.5",fill:"currentColor",opacity:"0.6"})]}),t:"Top"},{fn:()=>i.align("centerVertical"),icon:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"1",y1:"7",x2:"13",y2:"7",stroke:"currentColor",strokeWidth:"1",strokeDasharray:"2 1"}),(0,w.jsx)("rect",{x:"4",y:"2",width:"2.5",height:"10",rx:"0.5",fill:"currentColor",opacity:"0.6"}),(0,w.jsx)("rect",{x:"8",y:"3",width:"2.5",height:"8",rx:"0.5",fill:"currentColor",opacity:"0.6"})]}),t:"Center V"},{fn:()=>i.align("bottom"),icon:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"2",y1:"12",x2:"12",y2:"12",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("rect",{x:"4",y:"3",width:"2.5",height:"7",rx:"0.5",fill:"currentColor",opacity:"0.6"}),(0,w.jsx)("rect",{x:"8",y:"5",width:"2.5",height:"5",rx:"0.5",fill:"currentColor",opacity:"0.6"})]}),t:"Bottom"}].map(({fn:o,icon:e,t},n)=>(0,w.jsx)(ct,{onClick:o,title:t,children:e},n))}),(0,w.jsx)(Yp,{style:{display:"block",marginTop:8,marginBottom:4},children:"Distribute"}),(0,w.jsxs)(Ns,{style:{gridTemplateColumns:"repeat(2, 1fr)"},children:[(0,w.jsx)(ct,{onClick:()=>i.distribute("horizontal"),title:"Distribute Horizontal",children:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"1",y1:"2",x2:"1",y2:"12",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("line",{x1:"13",y1:"2",x2:"13",y2:"12",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("rect",{x:"4",y:"4",width:"6",height:"6",rx:"0.5",fill:"currentColor",opacity:"0.5"})]})}),(0,w.jsx)(ct,{onClick:()=>i.distribute("vertical"),title:"Distribute Vertical",children:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"2",y1:"1",x2:"12",y2:"1",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("line",{x1:"2",y1:"13",x2:"12",y2:"13",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("rect",{x:"4",y:"4",width:"6",height:"6",rx:"0.5",fill:"currentColor",opacity:"0.5"})]})})]}),(0,w.jsx)(Yp,{style:{display:"block",marginTop:8,marginBottom:4},children:"Stretch"}),(0,w.jsxs)(Ns,{style:{gridTemplateColumns:"repeat(2, 1fr)"},children:[(0,w.jsx)(ct,{onClick:()=>i.stretch("horizontal"),title:"Stretch Width",children:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"1",y1:"2",x2:"1",y2:"12",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("line",{x1:"13",y1:"2",x2:"13",y2:"12",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("line",{x1:"1",y1:"7",x2:"13",y2:"7",stroke:"currentColor",strokeWidth:"1",strokeDasharray:"2 1"}),(0,w.jsx)("path",{d:"M3 5.5h8",stroke:"currentColor",strokeWidth:"1",opacity:"0.5"}),(0,w.jsx)("path",{d:"M3 8.5h8",stroke:"currentColor",strokeWidth:"1",opacity:"0.5"})]})}),(0,w.jsx)(ct,{onClick:()=>i.stretch("vertical"),title:"Stretch Height",children:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"2",y1:"1",x2:"12",y2:"1",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("line",{x1:"2",y1:"13",x2:"12",y2:"13",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("line",{x1:"7",y1:"1",x2:"7",y2:"13",stroke:"currentColor",strokeWidth:"1",strokeDasharray:"2 1"}),(0,w.jsx)("path",{d:"M5.5 3v8",stroke:"currentColor",strokeWidth:"1",opacity:"0.5"}),(0,w.jsx)("path",{d:"M8.5 3v8",stroke:"currentColor",strokeWidth:"1",opacity:"0.5"})]})})]})]})}function gl(i,o){let e=URL.createObjectURL(i),t=document.createElement("a");t.href=e,t.download=o,t.click(),setTimeout(()=>URL.revokeObjectURL(e),1e3)}function LS({shape:i,app:o}){let e=o.useStore(n=>n.appState.nodeEditingId===i.id),t=Re.useCallback(()=>{e?o.setNodeEditingId(void 0):o.setNodeEditingId(i.id)},[o,i.id,e]);return(0,w.jsx)(no,{children:(0,w.jsx)(ct,{onClick:t,isActive:e,style:{width:"100%"},children:e?"Exit Edit Mode":"Edit Shape"})})}function AS({shape:i,app:o}){let[e,t]=Re.useState(null),n=i.type+"-"+i.id.slice(0,6);return(0,w.jsx)("div",{children:(0,w.jsxs)("div",{style:{display:"flex",gap:4},children:[(0,w.jsx)(ct,{style:{flex:1},onClick:()=>F(this,null,function*(){t("svg");try{let a=yield o.exportImage("svg",{ids:[i.id]});a&&gl(a,n+".svg")}catch(a){console.error("SVG export failed",a)}t(null)}),title:"Export as SVG",children:e==="svg"?"...":"SVG"}),(0,w.jsx)(ct,{style:{flex:1},onClick:()=>F(this,null,function*(){t("png");try{let a=yield o.exportImage("png",{ids:[i.id]});a&&gl(a,n+".png")}catch(a){console.error("PNG export failed",a)}t(null)}),title:"Export as PNG",children:e==="png"?"...":"PNG"}),(0,w.jsx)(ct,{style:{flex:1},onClick:()=>{let a=JSON.stringify(i,null,2);navigator.clipboard.writeText(a).catch(c=>{}),gl(new Blob([a],{type:"application/json"}),n+".json")},title:"Copy JSON & download",children:"JSON"})]})})}function Yo({title:i,children:o,defaultOpen:e=!1}){let[t,n]=Re.useState(e);return(0,w.jsxs)(no,{children:[(0,w.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",cursor:"pointer"},onClick:()=>n(!t),children:[(0,w.jsx)(Co,{style:{marginBottom:0},children:i}),(0,w.jsx)(Zp,{onClick:r=>{r.stopPropagation(),n(!t)},children:t?"\u2212":"+"})]}),t&&(0,w.jsx)("div",{style:{marginTop:8},children:o})]})}var _p=R("div",{display:"flex",flexDirection:"column",width:"100%",height:"100%",overflowY:"auto",overflowX:"hidden","&::-webkit-scrollbar":{width:"3px"},"&::-webkit-scrollbar-thumb":{background:"$separator",borderRadius:"2px"}}),no=R("div",{padding:"8px 12px"}),Co=R("div",{fontSize:"10px",fontWeight:600,color:"$textSecondary",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:"8px"}),pn=R("div",{height:"1px",background:"$separator"}),VS=R("div",{fontSize:"10px",color:"$textSecondary",fontStyle:"italic"}),Xp=R("div",{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"4px"}),xo=R("div",{display:"flex",alignItems:"center",gap:"6px",marginBottom:"4px"}),ko=R("label",{fontSize:"9px",color:"$textSecondary",fontWeight:500,width:"18px",flexShrink:0,textAlign:"right",cursor:"ew-resize",userSelect:"none"}),eP=R("span",{fontSize:"9px",color:"$textSecondary"}),HS=R("input",{width:"100%",background:"$inputBg",border:"1px solid $inputBorder",borderRadius:"$1",color:"$text",fontSize:"10px",padding:"4px 6px",fontFamily:"$ui",outline:"none",transition:"border-color 0.1s","&:focus":{borderColor:"$accent"},"&::-webkit-inner-spin-button, &::-webkit-outer-spin-button":{display:"none"}}),Yp=R("span",{fontSize:"9px",color:"$textSecondary",fontFamily:"$mono"}),Ns=R("div",{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:"3px"}),Us=R("div",{display:"flex",gap:"2px",flex:1}),ct=R("button",{all:"unset",flex:1,height:"24px",border:"1px solid $separator",borderRadius:"$1",color:"$textSecondary",cursor:"pointer",fontSize:"9px",fontFamily:"$ui",display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.08s","&:hover":{background:"$hover",color:"$text"},variants:{isActive:{true:{background:"$accent",borderColor:"$accent",color:"white","&:hover":{background:"$accent",color:"white"}}}}}),Zp=R("button",{all:"unset",display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,borderRadius:"$0",cursor:"pointer",color:"$textSecondary",fontSize:"11px","&:hover":{background:"$hover",color:"$text"}}),Sl=R("button",{all:"unset",width:"28px",height:"16px",borderRadius:"$pill",cursor:"pointer",padding:"2px",transition:"background 0.12s",background:"$inputBg",variants:{checked:{true:{background:"$accent"}}}}),yl=R("div",{width:"12px",height:"12px",borderRadius:"50%",background:"white",transition:"transform 0.12s",variants:{checked:{true:{transform:"translateX(12px)"}}}}),zS=R("div",{display:"grid",gridTemplateColumns:"1fr auto 1fr",gap:"4px",alignItems:"center"}),tP=R("button",{all:"unset",display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,borderRadius:"$1",border:"1px solid $separator",cursor:"pointer",color:"$textSecondary",transition:"all 0.08s",flexShrink:0,"&:hover":{background:"$hover",color:"$text"},variants:{locked:{true:{background:"rgba(13,153,255,0.15)",borderColor:"$accent",color:"$accent"}}}}),FS=R("div",{position:"absolute",top:"100%",left:0,right:0,maxHeight:"140px",overflowY:"auto",background:"$panel",border:"1px solid $separator",borderRadius:"$2",zIndex:1e3,boxShadow:"0 4px 16px rgba(0,0,0,0.3)",marginTop:"2px","&::-webkit-scrollbar":{width:"3px"},"&::-webkit-scrollbar-thumb":{background:"$separator",borderRadius:"2px"}}),OS=R("div",{padding:"4px 8px",fontSize:"10px",color:"$text",cursor:"pointer","&:hover":{background:"$hover"}});var qp=require("react/jsx-runtime"),bl=Jp.memo(function(){return(0,qp.jsx)($S,{children:(0,qp.jsx)(fl,{})})}),$S=R("div",{display:"flex",flexDirection:"column",width:"240px",height:"100%",background:"$panel",borderLeft:"1px solid $separator",zIndex:200,pointerEvents:"all",overflow:"hidden",flexShrink:0});vi();var ku=H(require("react")),Cu=require("react-intl");var du=H(require("@radix-ui/react-dropdown-menu")),cu=require("@radix-ui/react-icons"),De=H(require("react")),_e=require("react-intl");var eu=require("@radix-ui/react-dropdown-menu");var Qp=require("react/jsx-runtime");function ce(t){var n=t,{onSelect:i,id:o}=n,e=Ae(n,["onSelect","id"]);return(0,Qp.jsx)(eu.Item,{dir:"ltr",asChild:!0,onSelect:i,id:o,children:(0,Qp.jsx)(st,S({},e))})}var nu=require("@radix-ui/react-dropdown-menu");var Ce=i=>i.preventDefault();var tu=require("react/jsx-runtime");function un({checked:i,disabled:o=!1,variant:e,onCheckedChange:t,kbd:n,id:r,ariaLabel:s,children:l}){return(0,tu.jsx)(nu.CheckboxItem,{dir:"ltr",onSelect:Ce,onCheckedChange:t,checked:i,disabled:o,asChild:!0,id:r,"aria-label":s,children:(0,tu.jsx)(st,{kbd:n,variant:e,hasIndicator:!0,children:l})})}var Ks=H(require("@radix-ui/react-dropdown-menu"));var vl=require("react/jsx-runtime");function On({sideOffset:i=4,alignOffset:o=0,children:e,align:t,variant:n,id:r,overflow:s=!1,side:l="bottom"}){let a=Sn();return(0,vl.jsx)(Ks.Portal,{container:a.current,dir:"ltr",children:(0,vl.jsx)(Ks.Content,{align:t,alignOffset:o,sideOffset:i,onEscapeKeyDown:ht,asChild:!0,id:r,side:l,children:(0,vl.jsx)(GS,{variant:n,overflow:s,children:e})})})}var GS=R(Kn,{width:"fit-content",height:"fit-content",minWidth:0,maxHeight:"100vh",overflowY:"auto",overflowX:"hidden","&::webkit-scrollbar":{display:"none"},"-ms-overflow-style":"none",scrollbarWidth:"none",variants:{variant:{horizontal:{flexDirection:"row"},menu:{minWidth:128}},overflow:{true:{maxHeight:"60vh"}}}});var ou=require("@radix-ui/react-dropdown-menu");var IP=R(ou.Separator,{backgroundColor:"$hover",height:1,marginTop:"$2",marginRight:"-$2",marginBottom:"$2",marginLeft:"-$2"});var ru=require("@radix-ui/react-dropdown-menu");var xi=R(ru.RadioItem,{height:"32px",width:"32px",backgroundColor:"$panel",borderRadius:"4px",padding:"0",margin:"0",display:"flex",alignItems:"center",justifyContent:"center",outline:"none",border:"none",pointerEvents:"all",cursor:"pointer",variants:{isActive:{true:{backgroundColor:"$selected",color:"white"},false:{}},bp:{mobile:{},small:{}}},compoundVariants:[{isActive:!1,bp:"small",css:{"&:focus":{backgroundColor:"$hover"},"&:hover:not(:disabled)":{backgroundColor:"$hover"}}}]});var wo=require("@radix-ui/react-dropdown-menu");var Xo=require("react/jsx-runtime");function $n({children:i,size:o,overflow:e=!1,disabled:t=!1,label:n,id:r}){return(0,Xo.jsxs)(wo.Sub,{children:[(0,Xo.jsx)(wo.SubTrigger,{dir:"ltr",asChild:!0,children:(0,Xo.jsx)(st,{disabled:t,hasArrow:!0,children:n})}),(0,Xo.jsx)(wo.SubContent,{asChild:!0,sideOffset:4,alignOffset:-4,children:(0,Xo.jsxs)(Kn,{size:o,overflow:e,children:[i,(0,Xo.jsx)(wo.Arrow,{offset:13})]})})]},r)}var su=require("@radix-ui/react-dropdown-menu");var iu=require("react/jsx-runtime");function _s(t){var n=t,{id:i,children:o}=n,e=Ae(n,["id","children"]);return(0,iu.jsx)(su.Trigger,{asChild:!0,id:i,children:(0,iu.jsx)(Rt,I(S({},e),{children:o}))})}var oo=H(require("react")),Cn=require("react-intl");var Ge=require("react/jsx-runtime"),jS=i=>i.settings,WS=["bottom","left","right","top"];function lu(){let i=_(),o=(0,Cn.useIntl)(),e=i.useStore(jS),t=oo.useCallback(()=>{i.setSetting("isDebugMode",u=>!u)},[i]),n=oo.useCallback(()=>{i.setSetting("isDarkMode",u=>!u)},[i]),r=oo.useCallback(()=>{i.setSetting("isFocusMode",u=>!u)},[i]),s=oo.useCallback(()=>{i.setSetting("showGrid",u=>!u)},[i]),l=oo.useCallback(()=>{i.setSetting("keepStyleMenuOpen",u=>!u)},[i]),a=oo.useCallback(()=>{i.setSetting("isCadSelectMode",u=>!u)},[i]),c=oo.useCallback(u=>{i.setSetting("dockPosition",u)},[i]),p=oo.useCallback(u=>{i.setSetting("exportBackground",u)},[i]);return(0,Ge.jsxs)($n,{label:o.formatMessage({id:"menu.preferences"}),id:"TD-MenuItem-Preferences",children:[(0,Ge.jsx)(un,{checked:e.isDarkMode,onCheckedChange:n,kbd:"#\u21E7D",id:"TD-MenuItem-Preferences-Dark_Mode",ariaLabel:o.formatMessage({id:"preferences.dark.mode"}),children:(0,Ge.jsx)(Cn.FormattedMessage,{id:"preferences.dark.mode"})}),(0,Ge.jsx)(un,{checked:e.isFocusMode,onCheckedChange:r,kbd:"#.",id:"TD-MenuItem-Preferences-Focus_Mode",ariaLabel:o.formatMessage({id:"preferences.focus.mode"}),children:(0,Ge.jsx)(Cn.FormattedMessage,{id:"preferences.focus.mode"})}),(0,Ge.jsx)(un,{checked:e.isDebugMode,onCheckedChange:t,id:"TD-MenuItem-Preferences-Debug_Mode",ariaLabel:o.formatMessage({id:"preferences.debug.mode"}),children:(0,Ge.jsx)(Cn.FormattedMessage,{id:"preferences.debug.mode"})}),(0,Ge.jsx)(Te,{}),(0,Ge.jsx)(un,{checked:e.showGrid,onCheckedChange:s,kbd:"#\u21E7G",id:"TD-MenuItem-Preferences-Grid",ariaLabel:o.formatMessage({id:"preferences.show.grid"}),children:(0,Ge.jsx)(Cn.FormattedMessage,{id:"preferences.show.grid"})}),(0,Ge.jsx)(un,{checked:e.isCadSelectMode,onCheckedChange:a,id:"TD-MenuItem-Preferences-Cad_Selection",ariaLabel:o.formatMessage({id:"preferences.use.cad.selection"}),children:(0,Ge.jsx)(Cn.FormattedMessage,{id:"preferences.use.cad.selection"})}),(0,Ge.jsx)(un,{checked:e.keepStyleMenuOpen,onCheckedChange:l,id:"TD-MenuItem-Preferences-Style_menu",ariaLabel:o.formatMessage({id:"preferences.keep.stylemenu.open"}),children:(0,Ge.jsx)(Cn.FormattedMessage,{id:"preferences.keep.stylemenu.open"})}),(0,Ge.jsx)($n,{label:o.formatMessage({id:"dock.position"}),children:WS.map(u=>(0,Ge.jsx)(un,{checked:e.dockPosition===u,onCheckedChange:()=>c(u),id:`TD-MenuItem-DockPosition-${u}`,ariaLabel:`DockPosition-${u}`,children:(0,Ge.jsx)(au,{children:(0,Ge.jsx)(Cn.FormattedMessage,{id:u})})},u))}),(0,Ge.jsx)($n,{label:o.formatMessage({id:"export.background"}),children:Object.values(rr).map(u=>(0,Ge.jsx)(un,{checked:e.exportBackground===u,onCheckedChange:()=>p(u),id:`TD-MenuItem-ExportBackground-${u}`,ariaLabel:`ExportBackground-${u}`,children:(0,Ge.jsx)(au,{children:(0,Ge.jsx)(Cn.FormattedMessage,{id:u})})},u))})]})}var au=R("span",{textTransform:"capitalize"});var $=require("react/jsx-runtime"),NS=i=>i.document.pageStates[i.appState.currentPageId].selectedIds.length,US=i=>i.appState.disableAssets,pu=De.memo(function({readOnly:o}){let e=_(),t=(0,_e.useIntl)(),[n,r]=De.useState(!1),s=e.useStore(NS),l=e.useStore(US),[a,c]=De.useState(0);De.useEffect(()=>c(1),[]);let{onNewProject:p,onOpenProject:u,onSaveProject:h,onSaveProjectAs:g}=Fi(),m=De.useCallback(()=>{r(!0)},[]),f=De.useCallback(()=>{e.delete()},[e]),v=De.useCallback(()=>{e.copyImage("svg",{scale:1,quality:1,transparentBackground:!1})},[e]),b=De.useCallback(()=>{e.copyImage("png",{scale:2,quality:1,transparentBackground:!0})},[e]),T=De.useCallback(()=>F(this,null,function*(){e.exportImage("png",{scale:2,quality:1})}),[e]),y=De.useCallback(()=>F(this,null,function*(){e.exportImage("jpeg",{scale:2,quality:1})}),[e]),x=De.useCallback(()=>F(this,null,function*(){e.exportImage("webp",{scale:2,quality:1})}),[e]),P=De.useCallback(()=>F(this,null,function*(){e.exportImage("svg",{scale:2,quality:1})}),[e]),k=De.useCallback(()=>F(this,null,function*(){e.copyJson()}),[e]),D=De.useCallback(()=>F(this,null,function*(){e.exportJson()}),[e]),C=De.useCallback(()=>{e.cut()},[e]),E=De.useCallback(()=>{e.copy()},[e]),M=De.useCallback(()=>{e.paste()},[e]),L=De.useCallback(()=>{e.selectAll()},[e]),V=De.useCallback(()=>{e.selectNone()},[e]),X=De.useCallback(()=>{e.openAsset()},[e]),se=De.useCallback(()=>{e.zoomTo(1)},[e]),G=e.callbacks.onNewProject||e.callbacks.onOpenProject||e.callbacks.onSaveProject||e.callbacks.onSaveProjectAs||e.callbacks.onExport,ne=s>0;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(du.Root,{dir:"ltr",children:[(0,$.jsx)(_s,{id:"TD-MenuIcon",children:(0,$.jsx)(cu.HamburgerMenuIcon,{})}),(0,$.jsxs)(On,{variant:"menu",id:"TD-Menu",side:"bottom",align:"start",sideOffset:4,alignOffset:4,children:[G&&(0,$.jsxs)($n,{label:`${t.formatMessage({id:"menu.file"})}...`,id:"TD-MenuItem-File",children:[e.callbacks.onNewProject&&(0,$.jsx)(ce,{onClick:p,kbd:"#N",id:"TD-MenuItem-File-New_Project",children:(0,$.jsx)(_e.FormattedMessage,{id:"new.project"})}),e.callbacks.onOpenProject&&(0,$.jsxs)(ce,{onClick:u,kbd:"#O",id:"TD-MenuItem-File-Open",children:[(0,$.jsx)(_e.FormattedMessage,{id:"open"}),"..."]}),e.callbacks.onSaveProject&&(0,$.jsx)(ce,{onClick:h,kbd:"#S",id:"TD-MenuItem-File-Save",children:(0,$.jsx)(_e.FormattedMessage,{id:"save"})}),e.callbacks.onSaveProjectAs&&(0,$.jsxs)(ce,{onClick:m,kbd:"#\u21E7S",id:"TD-MenuItem-File-Save_As",children:[(0,$.jsx)(_e.FormattedMessage,{id:"save.as"}),"..."]}),(0,$.jsxs)($n,{label:`${t.formatMessage({id:"export.as"})}...`,size:"small",id:"TD-MenuItem-Export",children:[(0,$.jsx)(ce,{onClick:P,id:"TD-MenuItem-Export-SVG",children:"SVG"}),(0,$.jsx)(ce,{onClick:T,id:"TD-MenuItem-Export-PNG",children:"PNG"}),(0,$.jsx)(ce,{onClick:y,id:"TD-MenuItem-Export-JPG",children:"JPG"}),(0,$.jsx)(ce,{onClick:x,id:"TD-MenuItem-Export-WEBP",children:"WEBP"}),(0,$.jsx)(ce,{onClick:D,id:"TD-MenuItem-Export-JSON",children:"JSON"})]}),!l&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Te,{}),(0,$.jsx)(ce,{onClick:X,kbd:"#U",id:"TD-MenuItem-File-Upload_Media",children:(0,$.jsx)(_e.FormattedMessage,{id:"upload.media"})})]})]}),(0,$.jsxs)($n,{label:`${t.formatMessage({id:"menu.edit"})}...`,id:"TD-MenuItem-Edit",children:[(0,$.jsx)(ce,{onSelect:Ce,onClick:e.undo,disabled:o,kbd:"#Z",id:"TD-MenuItem-Edit-Undo",children:(0,$.jsx)(_e.FormattedMessage,{id:"undo"})}),(0,$.jsx)(ce,{onSelect:Ce,onClick:e.redo,disabled:o,kbd:"#\u21E7Z",id:"TD-MenuItem-Edit-Redo",children:(0,$.jsx)(_e.FormattedMessage,{id:"redo"})}),(0,$.jsx)(Te,{}),(0,$.jsx)(ce,{onSelect:Ce,disabled:!ne||o,onClick:C,kbd:"#X",id:"TD-MenuItem-Edit-Cut",children:(0,$.jsx)(_e.FormattedMessage,{id:"cut"})}),(0,$.jsx)(ce,{onSelect:Ce,disabled:!ne,onClick:E,kbd:"#C",id:"TD-MenuItem-Edit-Copy",children:(0,$.jsx)(_e.FormattedMessage,{id:"copy"})}),(0,$.jsx)(ce,{onSelect:Ce,onClick:M,kbd:"#V",id:"TD-MenuItem-Edit-Paste",children:(0,$.jsx)(_e.FormattedMessage,{id:"paste"})}),(0,$.jsx)(Te,{}),(0,$.jsxs)($n,{label:`${t.formatMessage({id:"copy.as"})}...`,size:"small",id:"TD-MenuItem-Copy-As",children:[(0,$.jsx)(ce,{onClick:v,id:"TD-MenuItem-Copy-as-SVG",children:"SVG"}),(0,$.jsx)(ce,{onClick:b,id:"TD-MenuItem-Copy-As-PNG",children:"PNG"}),(0,$.jsx)(ce,{onClick:k,id:"TD-MenuItem-Copy_as_JSON",children:"JSON"})]}),(0,$.jsx)(Te,{}),(0,$.jsx)(ce,{onSelect:Ce,onClick:L,kbd:"#A",id:"TD-MenuItem-Select_All",children:(0,$.jsx)(_e.FormattedMessage,{id:"select.all"})}),(0,$.jsx)(ce,{onSelect:Ce,disabled:!ne,onClick:V,id:"TD-MenuItem-Select_None",children:(0,$.jsx)(_e.FormattedMessage,{id:"select.none"})}),(0,$.jsx)(Te,{}),(0,$.jsx)(ce,{onSelect:f,disabled:!ne,kbd:"\u232B",id:"TD-MenuItem-Delete",children:(0,$.jsx)(_e.FormattedMessage,{id:"delete"})})]}),(0,$.jsxs)($n,{label:t.formatMessage({id:"menu.view"}),id:"TD-MenuItem-Edit",children:[(0,$.jsx)(ce,{onSelect:Ce,onClick:e.zoomIn,kbd:"#+",id:"TD-MenuItem-View-ZoomIn",children:(0,$.jsx)(_e.FormattedMessage,{id:"zoom.in"})}),(0,$.jsx)(ce,{onSelect:Ce,onClick:e.zoomOut,kbd:"#-",id:"TD-MenuItem-View-ZoomOut",children:(0,$.jsx)(_e.FormattedMessage,{id:"zoom.out"})}),(0,$.jsxs)(ce,{onSelect:Ce,onClick:se,kbd:"\u21E7+0",id:"TD-MenuItem-View-ZoomTo100",children:[(0,$.jsx)(_e.FormattedMessage,{id:"zoom.to"})," 100%"]}),(0,$.jsx)(ce,{onSelect:Ce,onClick:e.zoomToFit,kbd:"\u21E7+1",id:"TD-MenuItem-View-ZoomToFit",children:(0,$.jsx)(_e.FormattedMessage,{id:"zoom.to.fit"})}),(0,$.jsx)(ce,{onSelect:Ce,onClick:e.zoomToSelection,kbd:"\u21E7+2",id:"TD-MenuItem-View-ZoomToSelection",children:(0,$.jsx)(_e.FormattedMessage,{id:"zoom.to.selection"})})]}),(0,$.jsx)(Te,{}),(0,$.jsx)(lu,{})]})]}),(0,$.jsx)(bc,{isOpen:n,onClose:()=>r(!1)})]})});var mu=H(require("@radix-ui/react-dropdown-menu")),Rr=require("@radix-ui/react-icons"),ro=H(require("react")),ki=require("react-intl"),Ys=require("telva-core");var uu=require("react/jsx-runtime");function hu(){return(0,uu.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 15 15",xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",children:(0,uu.jsx)("path",{d:"M1.36482 4.71089C1.36482 3.21371 2.57853 2 4.07572 2C5.5729 2 6.78661 3.21371 6.78661 4.71089C6.78661 5.76842 6.18106 6.68452 5.29779 7.13136C5.80465 7.24611 6.26407 7.44186 6.66028 7.73182C7.18674 8.11711 7.57215 8.64722 7.81073 9.30983C7.81452 9.30606 7.81832 9.3023 7.82212 9.29855C8.30448 8.82317 8.91325 8.52463 9.60905 8.37275C8.68812 7.922 8.05394 6.97569 8.05394 5.88126C8.05394 4.35017 9.29513 3.10898 10.8262 3.10898C12.3573 3.10898 13.5985 4.35017 13.5985 5.88126C13.5985 6.97561 12.9644 7.92186 12.0436 8.37265C12.7396 8.52449 13.3486 8.82306 13.831 9.29854C14.5795 10.0361 14.9481 11.1249 14.9481 12.5176C14.9481 12.7799 14.7354 12.9926 14.473 12.9926C14.2107 12.9926 13.9981 12.7799 13.9981 12.5175C13.9981 11.2848 13.6738 10.4774 13.1642 9.97518C12.6532 9.4716 11.8802 9.20024 10.8266 9.20024C9.77294 9.20024 8.99993 9.4716 8.48896 9.97518C7.97939 10.4774 7.65513 11.2848 7.65513 12.5176C7.65513 12.7799 7.44247 12.9926 7.18013 12.9926C6.9178 12.9926 6.70513 12.7799 6.70513 12.5176C6.70513 11.6734 6.84053 10.941 7.11384 10.3307C7.0922 10.2895 7.0763 10.2444 7.06737 10.1962C6.91739 9.38749 6.57392 8.84586 6.09923 8.49845C5.61626 8.14499 4.94481 7.95427 4.07574 7.95427C3.05232 7.95427 2.30368 8.21784 1.80952 8.70485C1.31675 9.19047 1.00176 9.97257 1.00176 11.1702C1.00176 11.4326 0.789093 11.6452 0.526758 11.6452C0.264423 11.6452 0.0517578 11.4326 0.0517578 11.1702C0.0517578 9.81263 0.411052 8.74925 1.14268 8.02821C1.60624 7.57137 2.18892 7.28191 2.85378 7.13142C1.97043 6.68461 1.36482 5.76848 1.36482 4.71089ZM4.07572 2.95C3.1032 2.95 2.31482 3.73838 2.31482 4.71089C2.31482 5.68341 3.1032 6.47178 4.07572 6.47178C5.04823 6.47178 5.83661 5.68341 5.83661 4.71089C5.83661 3.73838 5.04823 2.95 4.07572 2.95ZM10.8262 4.05898C9.8198 4.05898 9.00394 4.87484 9.00394 5.88126C9.00394 6.88768 9.8198 7.70355 10.8262 7.70355C11.8326 7.70355 12.6485 6.88768 12.6485 5.88126C12.6485 4.87484 11.8326 4.05898 10.8262 4.05898Z"})})}var Ye=require("react/jsx-runtime"),KS=i=>i.room,gu=function(){let o=_(),e=o.useStore(KS),[t,n]=ro.useState(!1),r=ro.useRef(0),s=ro.useCallback(()=>{n(!0),B.copyStringToClipboard(window.location.href),clearTimeout(r.current),r.current=setTimeout(()=>n(!1),1200)},[]),l=ro.useCallback(()=>{n(!0);let p=window.location.href.split("/");p[p.length-2]="v",p[p.length-1]=Ys.Utils.lns(p[p.length-1]),B.copyStringToClipboard(p.join("/")),clearTimeout(r.current),r.current=setTimeout(()=>n(!1),1200)},[]),a=ro.useCallback(()=>F(this,null,function*(){o.isDirty?o.fileSystemHandle?window.confirm("Do you want to save changes to your current project?")&&(yield o.saveProject()):window.confirm("Do you want to save your current project?")&&(yield o.saveProject()):o.fileSystemHandle||window.confirm("Do you want to save your current project?")&&(yield o.saveProject())}),[]),c=ro.useCallback(()=>F(this,null,function*(){var u,h;let p=Ys.Utils.deepClone(o.document);o.setIsLoading(!0);try{if(o.callbacks.onAssetUpload)for(let f in p.assets){let v=p.assets[f];if(v.src.includes("base64")){let b=_S(v.src,((u=v.fileName)!=null?u:v.type==="video")?"image.png":"image.mp4"),T=yield o.callbacks.onAssetUpload(o,b,f);T?v.src=T:v.src=""}}let g=yield fetch("/api/create",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({roomId:Ys.Utils.uniqueId(),pageId:o.currentPageId,document:p})}),m=yield g.json();g.ok&&(m==null?void 0:m.url)?window.location.href=m.url:B.warn((h=m==null?void 0:m.message)!=null?h:g.statusText)}catch(g){B.warn(g.message)}o.setIsLoading(!1)}),[]);return(0,Ye.jsxs)(mu.Root,{dir:"ltr",children:[(0,Ye.jsx)(_s,{id:"TD-MultiplayerMenuIcon",isActive:!!e,children:(0,Ye.jsx)(hu,{})}),(0,Ye.jsxs)(On,{variant:"menu",id:"TD-MultiplayerMenu",side:"bottom",align:"start",sideOffset:4,children:[(0,Ye.jsxs)(ce,{id:"TD-Multiplayer-CopyInviteLink",onClick:s,disabled:!e,children:[(0,Ye.jsx)(ki.FormattedMessage,{id:"copy.invite.link"}),(0,Ye.jsx)(Ft,{children:t?(0,Ye.jsx)(Rr.CheckIcon,{}):(0,Ye.jsx)(Rr.ClipboardIcon,{})})]}),(0,Ye.jsxs)(ce,{id:"TD-Multiplayer-CopyReadOnlyLink",onClick:l,disabled:!e,children:[(0,Ye.jsx)(ki.FormattedMessage,{id:"copy.readonly.link"}),(0,Ye.jsx)(Ft,{children:t?(0,Ye.jsx)(Rr.CheckIcon,{}):(0,Ye.jsx)(Rr.ClipboardIcon,{})})]}),(0,Ye.jsx)(Te,{}),(0,Ye.jsx)(ce,{id:"TD-Multiplayer-CreateMultiplayerProject",onClick:a,children:(0,Ye.jsx)("a",{href:`${window.location.origin}/r`,children:(0,Ye.jsx)(ki.FormattedMessage,{id:"create.multiplayer.project"})})}),(0,Ye.jsx)(ce,{id:"TD-Multiplayer-CopyToMultiplayerProject",onClick:c,children:(0,Ye.jsx)(ki.FormattedMessage,{id:"copy.multiplayer.project"})})]})]})};function _S(i,o){var l,a;let e=i.split(","),t=(a=(l=e[0])==null?void 0:l.match(/:(.*?);/))==null?void 0:a[1],n=window.atob(e[1]),r=n.length,s=new Uint8Array(r);for(;r--;)s[r]=n.charCodeAt(r);return new File([s],o,{type:t})}var hn=H(require("@radix-ui/react-dropdown-menu")),Zs=require("@radix-ui/react-icons"),It=H(require("react")),Ci=require("react-intl");var Nt=H(require("@radix-ui/react-alert-dialog")),Xs=require("@radix-ui/react-icons"),bt=H(require("react")),Dr=require("react-intl");var fu=R("button",{position:"relative",height:"32px",width:"32px",backgroundColor:"$panel",borderRadius:"4px",padding:"0",margin:"0",outline:"none",border:"none",pointerEvents:"all",fontSize:"$0",color:"$text",cursor:"pointer",display:"grid",alignItems:"center",justifyContent:"center","& > *":{gridRow:1,gridColumn:1},"&:disabled":{opacity:"0.5"},"& > span":{width:"100%",height:"100%",display:"flex",alignItems:"center"},variants:{bp:{mobile:{backgroundColor:"transparent"},small:{"&:hover:not(:disabled)":{backgroundColor:"$hover"}}},size:{small:{height:32,width:32,"& svg:nth-of-type(1)":{height:"16px",width:"16px"}},medium:{height:44,width:44,"& svg:nth-of-type(1)":{height:"18px",width:"18px"}},large:{height:44,width:44,"& svg:nth-of-type(1)":{height:"20px",width:"20px"}}},isActive:{true:{color:"$selected"}}}});var We=require("react/jsx-runtime"),YS=i=>Object.keys(i.document.pages).length>1;function yu({page:i,onOpen:o,onClose:e}){let t=_(),n=(0,Dr.useIntl)(),[r,s]=bt.useState(!1),[l,a]=bt.useState(i.name||"Page"),c=t.useStore(YS),p=bt.useRef(null),u=bt.useCallback(()=>{s(!1)},[]),h=bt.useCallback(()=>{t.duplicatePage(i.id)},[t]),g=bt.useCallback(()=>{window.confirm("Are you sure you want to delete this page?")&&t.deletePage(i.id)},[t]),m=bt.useCallback(k=>{if(s(k),k){o==null||o();return}},[t]);function f(k){k.stopPropagation()}let v=bt.useRef(i.name||"Page"),b=bt.useRef(v.current),T=bt.useCallback(k=>{let D=k.target.value.trimStart();b.current=D,a(D)},[]),y=bt.useCallback(k=>{switch(k.key){case"Enter":{b.current===v.current||(v.current=b.current,t.renamePage(i.id,b.current.trim())),s(!1);break}case"Escape":{if(b.current===v.current){s(!1);return}b.current=v.current,a(v.current),requestAnimationFrame(()=>{let D=p.current;D&&(D.focus(),D.setSelectionRange(0,D.value.length))});break}}},[]),x=bt.useRef(!1);bt.useEffect(()=>(r?(x.current=!0,v.current=i.name||"Page",b.current=v.current,requestAnimationFrame(()=>{let k=p.current;k&&(k.focus(),k.setSelectionRange(0,k.value.length))})):x.current&&(e==null||e()),()=>{b.current!==v.current&&(v.current=b.current,t.renamePage(i.id,b.current))}),[r]);let P=Sn();return(0,We.jsxs)(Nt.Root,{open:r,onOpenChange:m,children:[(0,We.jsx)(Nt.Trigger,{asChild:!0,"data-shy":"true",children:(0,We.jsx)(fu,{bp:fn,children:(0,We.jsx)(Ft,{children:(0,We.jsx)(Xs.MixerVerticalIcon,{})})})}),(0,We.jsxs)(Nt.Portal,{container:P.current,children:[(0,We.jsx)(ZS,{onPointerDown:u}),(0,We.jsxs)(XS,{dir:"ltr",onKeyDown:f,onKeyUp:f,children:[(0,We.jsx)(qi,{ref:p,placeholder:n.formatMessage({id:"page.name"}),value:l,onChange:T,onKeyDown:y,icon:(0,We.jsx)(Xs.Pencil1Icon,{})}),(0,We.jsx)(Te,{}),(0,We.jsx)(Su,{onSelect:h,children:(0,We.jsx)(Dr.FormattedMessage,{id:"duplicate"})}),(0,We.jsx)(Su,{disabled:!c,onSelect:g,children:(0,We.jsx)(Dr.FormattedMessage,{id:"delete"})}),(0,We.jsx)(Te,{}),(0,We.jsx)(Nt.Cancel,{asChild:!0,children:(0,We.jsx)(st,{children:(0,We.jsx)(Dr.FormattedMessage,{id:"cancel"})})})]})]})]})}var XS=R(Nt.Content,{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",minWidth:240,maxWidth:"fit-content",maxHeight:"85vh",marginTop:"-5vh",pointerEvents:"all",backgroundColor:"$panel",padding:"$1",borderRadius:"$2",font:"$ui",zIndex:999999,"&:focus":{outline:"none"}}),ZS=R(Nt.Overlay,{backgroundColor:"rgba(0, 0, 0, .15)",position:"absolute",pointerEvents:"all",inset:0,zIndex:999998});function Su(e){var t=e,{onSelect:i}=t,o=Ae(t,["onSelect"]);return(0,We.jsx)(Nt.Action,{asChild:!0,onClick:i,onSelect:i,children:(0,We.jsx)(st,S({},o))})}var Ee=require("react/jsx-runtime"),qS=i=>Object.values(i.document.pages).sort((o,e)=>(o.childIndex||0)-(e.childIndex||0)),JS=i=>i.document.pages[i.appState.currentPageId].name,QS=i=>i.document.pages[i.appState.currentPageId].id;function bu(){let i=_(),o=(0,Ci.useIntl)(),e=It.useRef(!1),[t,n]=It.useState(!1);It.useEffect(()=>{e.current!==t&&(e.current=t)},[t]);let r=It.useCallback(()=>{n(!1)},[n]),s=It.useCallback(a=>{e.current!==a&&n(a)},[n]),l=i.useStore(JS);return(0,Ee.jsxs)(hn.Root,{dir:"ltr",open:t,onOpenChange:s,children:[(0,Ee.jsx)(hn.Trigger,{dir:"ltr",asChild:!0,id:"TD-Page",children:(0,Ee.jsx)(Rt,{variant:"text",children:l||o.formatMessage({id:"page"})})}),(0,Ee.jsx)(On,{variant:"menu",align:"start",sideOffset:4,children:t&&(0,Ee.jsx)(ey,{onClose:r})})]})}function ey({onClose:i}){let o=_(),e=(0,Ci.useIntl)(),t=o.useStore(qS),n=o.useStore(QS),r=e.formatMessage({id:"page"}),s=It.useCallback(()=>{let f=r+" "+(Object.keys(o.document.pages).length+1);o.createPage(void 0,f)},[o]),l=It.useCallback(f=>{i(),o.changePage(f)},[o]),[a,c]=It.useState(null),[p,u]=It.useState(null),h=It.useCallback(f=>{c(f.currentTarget.id),u(t.findIndex(v=>v.id===f.currentTarget.id)),f.dataTransfer.effectAllowed="move"},[]),g=It.useCallback(f=>{f.preventDefault();let v=t.findIndex(y=>y.id===f.currentTarget.id),b=f.currentTarget.getBoundingClientRect();v=(f.clientY-b.top)/b.height<.5?v:v+1,u(v)},[a,t]),m=It.useCallback(()=>{a!==null&&p!==null&&o.movePage(a,p),c(null),u(null)},[a,p]);return(0,Ee.jsxs)(Ee.Fragment,{children:[(0,Ee.jsx)(hn.RadioGroup,{dir:"ltr",value:n,onValueChange:l,children:t.map((f,v)=>(0,Ee.jsxs)(ty,{isDropAbove:v===p&&v===0,isDropBelow:p!==null&&v===p-1,children:[(0,Ee.jsx)(hn.RadioItem,{title:f.name||r,value:f.id,id:f.id,asChild:!0,onDragOver:g,onDragStart:h,onDrop:m,draggable:!0,children:(0,Ee.jsxs)(ny,{children:[(0,Ee.jsx)("span",{id:f.id,children:f.name||r}),(0,Ee.jsx)(hn.ItemIndicator,{children:(0,Ee.jsx)(Ft,{children:(0,Ee.jsx)(Zs.CheckIcon,{})})})]})},f.id),(0,Ee.jsx)(yu,{page:f,onClose:i})]},f.id))}),(0,Ee.jsx)(Te,{}),(0,Ee.jsx)(hn.Item,{onSelect:s,asChild:!0,children:(0,Ee.jsxs)(st,{children:[(0,Ee.jsx)("span",{children:(0,Ee.jsx)(Ci.FormattedMessage,{id:"create.page"})}),(0,Ee.jsx)(Ft,{children:(0,Ee.jsx)(Zs.PlusIcon,{})})]})})]})}var ty=R("div",{position:"relative",display:"grid",gridTemplateColumns:"1fr auto",gridAutoFlow:"column",margin:0,'& > *[data-shy="true"]':{opacity:0},'&:hover > *[data-shy="true"]':{opacity:1},variants:{isDropAbove:{true:{"&::after":{content:"",display:"block",position:"absolute",top:0,width:"100%",height:"1px",backgroundColor:"$selected",zIndex:999,pointerEvents:"none"}}},isDropBelow:{true:{"&::after":{content:"",display:"block",position:"absolute",width:"100%",height:"1px",top:"100%",backgroundColor:"$selected",zIndex:999,pointerEvents:"none"}}}}}),ny=R(st,{minWidth:128});var Io=H(require("@radix-ui/react-dropdown-menu")),Po=require("@radix-ui/react-icons"),Pt=H(require("react")),wn=require("react-intl");var J=require("react/jsx-runtime"),oy=i=>i.appState.currentStyle,ry=i=>i.document.pageStates[i.appState.currentPageId].selectedIds,iy=Object.keys(hr),vu={["draw"]:(0,J.jsx)(Jl,{}),["solid"]:(0,J.jsx)(ed,{}),["dashed"]:(0,J.jsx)(Yl,{}),["dotted"]:(0,J.jsx)(Zl,{})},sy={["small"]:(0,J.jsx)(od,{}),["medium"]:(0,J.jsx)(id,{}),["large"]:(0,J.jsx)(ad,{})},ay={["start"]:(0,J.jsx)(Po.TextAlignLeftIcon,{}),["middle"]:(0,J.jsx)(Po.TextAlignCenterIcon,{}),["end"]:(0,J.jsx)(Po.TextAlignRightIcon,{}),["justify"]:(0,J.jsx)(Po.TextAlignJustifyIcon,{})},ly=i=>i.settings.isDarkMode?"dark":"light",dy=i=>i.settings.keepStyleMenuOpen,cy=i=>{let{activeTool:o,currentPageId:e}=i.appState;switch(o){case"select":{let t=i.document.pages[e],n=!1,r=!1;for(let s of i.document.pageStates[e].selectedIds)"text"in t.shapes[s]&&(n=!0),"label"in t.shapes[s]&&(r=!0);return n?"text":r?"label":""}case"text":return"text";case"rectangle":return"label";case"ellipse":return"label";case"triangle":return"label";case"arrow":return"label";case"line":return"label"}return!1},Tu=Pt.memo(function(){let o=_(),e=(0,wn.useIntl)(),t=o.useStore(ly),n=o.useStore(dy),r=o.useStore(cy),s=o.useStore(oy),l=o.useStore(ry),[a,c]=Pt.useState(s),p=Pt.useRef(s);Pt.useEffect(()=>{let{appState:{currentStyle:T},page:y,selectedIds:x}=o,P={};if(x.length<=0)P=T;else{let k=new Set([]);o.selectedIds.map(D=>y.shapes[D]).forEach(D=>{iy.forEach(C=>{if(!k.has(C))if(P[C]===void 0)P[C]=D.style[C];else{if(P[C]===D.style[C])return;P[C]=D.style[C],k.add(C)}})})}JSON.stringify(P)!==JSON.stringify(p.current)&&(p.current=P,c(P))},[s,l]);let u=Pt.useCallback(T=>{o.setSetting("keepStyleMenuOpen",T)},[]),h=Pt.useCallback(T=>{o.style({isFilled:T})},[]),g=Pt.useCallback(T=>{o.style({dash:T})},[]),m=Pt.useCallback(T=>{o.style({size:T})},[]),f=Pt.useCallback(T=>{o.style({font:T})},[]),v=Pt.useCallback(T=>{o.style({textAlign:T})},[]),b=Pt.useCallback(T=>{o.setMenuOpen(T)},[o]);return(0,J.jsxs)(Io.Root,{dir:"ltr",onOpenChange:b,open:n?!0:void 0,modal:!1,children:[(0,J.jsx)(Io.Trigger,{asChild:!0,id:"TD-Styles",children:(0,J.jsxs)(Rt,{"aria-label":e.formatMessage({id:"styles"}),variant:"text",children:[(0,J.jsx)(wn.FormattedMessage,{id:"styles"}),(0,J.jsxs)(uy,{style:{color:Yn[t][a.color]},children:[a.isFilled&&(0,J.jsx)(Ca,{size:16,stroke:"none",fill:Ao[t][a.color]}),vu[a.dash]]})]})}),(0,J.jsxs)(On,{id:"TD-StylesMenu",side:"bottom",align:"end",sideOffset:4,alignOffset:4,children:[(0,J.jsxs)(wi,{variant:"tall",id:"TD-Styles-Color-Container",children:[(0,J.jsx)("span",{children:(0,J.jsx)(wn.FormattedMessage,{id:"style.menu.color"})}),(0,J.jsx)(py,{children:Object.keys(Yn.light).map(T=>(0,J.jsx)(Io.Item,{onSelect:Ce,asChild:!0,id:`TD-Styles-Color-Swatch-${T}`,children:(0,J.jsx)(Rt,{variant:"icon",isActive:a.color===T,onClick:()=>o.style({color:T}),"aria-label":e.formatMessage({id:T}),children:(0,J.jsx)(Ca,{size:18,strokeWidth:2.5,fill:a.isFilled?Ao[t][T]:"transparent",stroke:Yn.light[T]})})},T))})]}),(0,J.jsx)(un,{variant:"styleMenu",checked:!!a.isFilled,onCheckedChange:h,id:"TD-Styles-Fill",children:(0,J.jsx)(wn.FormattedMessage,{id:"style.menu.fill"})}),(0,J.jsxs)(wi,{id:"TD-Styles-Dash-Container",children:[(0,J.jsx)(wn.FormattedMessage,{id:"style.menu.dash"}),(0,J.jsx)(qs,{dir:"ltr",value:a.dash,onValueChange:g,children:Object.values(en).map(T=>(0,J.jsx)(xi,{isActive:T===a.dash,value:T,onSelect:Ce,bp:fn,id:`TD-Styles-Dash-${T}`,"aria-label":e.formatMessage({id:T}),children:vu[T]},T))})]}),(0,J.jsxs)(wi,{id:"TD-Styles-Size-Container",children:[(0,J.jsx)(wn.FormattedMessage,{id:"style.menu.size"}),(0,J.jsx)(qs,{dir:"ltr",value:a.size,onValueChange:m,children:Object.values(ni).map(T=>(0,J.jsx)(xi,{isActive:T===a.size,value:T,onSelect:Ce,bp:fn,id:`TD-Styles-Dash-${T}`,"aria-label":e.formatMessage({id:T}),children:sy[T]},T))})]}),(r==="text"||r==="label")&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(Te,{}),(0,J.jsxs)(wi,{id:"TD-Styles-Font-Container",children:[(0,J.jsx)(wn.FormattedMessage,{id:"style.menu.font"}),(0,J.jsx)(qs,{dir:"ltr",value:a.font,onValueChange:f,children:Object.values(Eo).map(T=>(0,J.jsx)(xi,{isActive:T===a.font,value:T,onSelect:Ce,bp:fn,id:`TD-Styles-Font-${T}`,children:(0,J.jsx)(hy,{fontStyle:T,children:"Aa"})},T))})]}),r==="text"&&(0,J.jsxs)(wi,{id:"TD-Styles-Align-Container",children:[(0,J.jsx)(wn.FormattedMessage,{id:"style.menu.align"}),(0,J.jsx)(qs,{dir:"ltr",value:a.textAlign,onValueChange:v,children:Object.values(zt).map(T=>(0,J.jsx)(xi,{isActive:T===a.textAlign,value:T,onSelect:Ce,bp:fn,id:`TD-Styles-Align-${T}`,children:ay[T]},T))})]})]}),(0,J.jsx)(Te,{}),(0,J.jsx)(un,{variant:"styleMenu",checked:n,onCheckedChange:u,id:"TD-Styles-Keep-Open",children:(0,J.jsx)(wn.FormattedMessage,{id:"style.menu.keep.open"})})]})]})}),py=R("div",{display:"grid",gridTemplateColumns:"repeat(4, auto)",gap:0}),wi=R("div",{position:"relative",width:"100%",background:"none",border:"none",cursor:"pointer",minHeight:"32px",outline:"none",color:"$text",fontFamily:"$ui",fontWeight:400,fontSize:"$1",padding:"$2 0 $2 $3",borderRadius:4,userSelect:"none",WebkitUserSelect:"none",margin:0,display:"flex",gap:"$3",flexDirection:"row",alignItems:"center",justifyContent:"space-between",variants:{variant:{tall:{alignItems:"flex-start",padding:"0 0 0 $3","& > span":{paddingTop:"$4"}}}}}),qs=R(Io.DropdownMenuRadioGroup,{display:"flex",flexDirection:"row",gap:"$1"}),uy=R("div",{display:"grid","& > *":{gridColumn:1,gridRow:1}}),hy=R("div",{width:32,height:32,display:"flex",alignItems:"center",justifyContent:"center",fontSize:"$3",variants:{fontStyle:{["script"]:{fontFamily:"Caveat Brush"},["sans"]:{fontFamily:"Recursive"},["serif"]:{fontFamily:"Georgia"},["mono"]:{fontFamily:"Recursive Mono"}}}});var Js=H(require("@radix-ui/react-dropdown-menu")),Er=require("react-intl");var Vt=require("react/jsx-runtime"),my=i=>i.document.pageStates[i.appState.currentPageId].camera.zoom,xu=function(){let o=_(),e=o.useStore(my);return(0,Vt.jsxs)(Js.Root,{dir:"ltr",children:[(0,Vt.jsx)(Js.Trigger,{dir:"ltr",asChild:!0,id:"TD-Zoom",children:(0,Vt.jsxs)(gy,{onDoubleClick:o.resetZoom,variant:"text",children:[Math.round(e*100),"%"]})}),(0,Vt.jsxs)(On,{align:"end",children:[(0,Vt.jsx)(ce,{onSelect:Ce,onClick:o.zoomIn,kbd:"#+",id:"TD-Zoom-Zoom_In",children:(0,Vt.jsx)(Er.FormattedMessage,{id:"zoom.in"})}),(0,Vt.jsx)(ce,{onSelect:Ce,onClick:o.zoomOut,kbd:"#\u2212",id:"TD-Zoom-Zoom_Out",children:(0,Vt.jsx)(Er.FormattedMessage,{id:"zoom.out"})}),(0,Vt.jsxs)(ce,{onSelect:Ce,onClick:o.resetZoom,kbd:"\u21E70",id:"TD-Zoom-Zoom_To_100%",children:[(0,Vt.jsx)(Er.FormattedMessage,{id:"zoom.to"})," 100%"]}),(0,Vt.jsx)(ce,{onSelect:Ce,onClick:o.zoomToFit,kbd:"\u21E71",id:"TD-Zoom-To_Fit",children:(0,Vt.jsx)(Er.FormattedMessage,{id:"zoom.to.fit"})}),(0,Vt.jsx)(ce,{onSelect:Ce,onClick:o.zoomToSelection,kbd:"\u21E72",id:"TD-Zoom-To_Selection",children:(0,Vt.jsx)(Er.FormattedMessage,{id:"zoom.to.selection"})})]})]})},gy=R(Rt,{minWidth:56});var pt=require("react/jsx-runtime");function fy({readOnly:i,showPages:o,showMenu:e,showStyles:t,showZoom:n,showMultiplayerMenu:r}){let s=_(),l=(0,Cu.useIntl)();return(0,pt.jsxs)(Sy,{children:[(e||o)&&(0,pt.jsxs)(qr,{side:"left",id:"TD-MenuPanel",children:[e&&(0,pt.jsx)(pu,{readOnly:i}),r&&(0,pt.jsx)(gu,{}),o&&(0,pt.jsx)(bu,{})]}),(0,pt.jsx)(yy,{}),(t||n)&&(0,pt.jsxs)(qr,{side:"right",children:[s.readOnly?(0,pt.jsx)(by,{children:"Read Only"}):(0,pt.jsxs)(pt.Fragment,{children:[(0,pt.jsx)(Ba,{kbd:"#Z",label:l.formatMessage({id:"undo"}),onClick:s.undo,id:"TD-TopPanel-Undo","aria-label":l.formatMessage({id:"undo"}),children:(0,pt.jsx)(wa,{})}),(0,pt.jsx)(Ba,{kbd:"#\u21E7Z",label:l.formatMessage({id:"redo"}),onClick:s.redo,id:"TD-TopPanel-Redo","aria-label":l.formatMessage({id:"redo"}),children:(0,pt.jsx)(wa,{flipHorizontal:!0})})]}),n&&(0,pt.jsx)(xu,{}),t&&!i&&(0,pt.jsx)(Tu,{})]})]})}var Sy=R("div",{width:"100%",position:"absolute",top:0,left:0,right:0,display:"flex",flexDirection:"row",pointerEvents:"none","& > *":{pointerEvents:"all"}}),yy=R("div",{flexGrow:2,pointerEvents:"none"}),by=R("div",{width:"100%",display:"flex",alignItems:"center",justifyContent:"center",fontFamily:"$ui",fontSize:"$1",paddingLeft:"$4",paddingRight:"$1",userSelect:"none",WebkitUserSelect:"none"}),wu=ku.memo(fy);var Iu=H(require("react"));function Pu(i){Iu.default.useEffect(()=>{let o=!1,e=!1,t=i.current;if(!t)return;let n=a=>{a.key===" "&&!e&&(e=!0,o?t.setAttribute("style","cursor: grabbing !important"):t.setAttribute("style","cursor: grab !important"))},r=a=>{a.key===" "&&(e=!1,t.setAttribute("style","cursor: initial"))},s=a=>{o=!0,a.button===1&&t.setAttribute("style","cursor: grabbing !important"),a.button===0&&e&&t.setAttribute("style","cursor: grabbing !important")},l=()=>{o=!1,e?t.setAttribute("style","cursor: grab !important"):t.setAttribute("style","cursor: initial")};return t.addEventListener("keydown",n),t.addEventListener("keyup",r),t.addEventListener("pointerdown",s),t.addEventListener("pointerup",l),()=>{t.removeEventListener("keydown",n),t.removeEventListener("keyup",r),t.removeEventListener("pointerdown",s),t.removeEventListener("pointerup",l)}},[i.current])}var ut=require("telva-core"),ie=require("telva-vec");var Ii=require("idb-keyval");var Ru="telva_clipboard";function Du(){return F(this,null,function*(){return(0,Ii.get)(Ru)})}function Eu(i){return F(this,null,function*(){return(0,Ii.set)(Ru,i)})}var Zo=H(require("idb-keyval")),Bu=require("telva-core"),Mu=H(require("zustand")),Lu=H(require("zustand/vanilla"));var Qs=class{constructor(o,e,t,n){d(this,"_idbId");d(this,"initialState");d(this,"store");d(this,"pointer",-1);d(this,"_state");d(this,"_status","loading");d(this,"stack",[]);d(this,"_snapshot");d(this,"useStore");d(this,"ready");d(this,"isPaused",!1);d(this,"persist",(o,e)=>{if(this._status==="ready"&&(this.onPersist&&this.onPersist(this._state,o,e),this._idbId))return Zo.set(this._idbId,this._state).catch(t=>console.error(t))});d(this,"applyPatch",(o,e)=>{let t=this._state,n=Bu.Utils.deepMerge(this._state,o),r=this.cleanup(n,t,o,e);return this.onStateWillChange&&this.onStateWillChange(r,e),this._state=r,this.store.setState(this._state,!0),this.onStateDidChange&&this.onStateDidChange(this._state,e),this});d(this,"migrate",o=>o);d(this,"cleanup",(o,e,t,n)=>o);d(this,"onStateWillChange");d(this,"onStateDidChange");d(this,"patchState",(o,e)=>(this.applyPatch(o,e),this.onPatch&&this.onPatch(this._state,o,e),this));d(this,"replaceState",(o,e)=>{let t=this.cleanup(o,this._state,o,e);return this.onStateWillChange&&this.onStateWillChange(t,"replace"),this._state=t,this.store.setState(this._state,!0),this.onStateDidChange&&this.onStateDidChange(this._state,"replace"),this});d(this,"setState",(o,e=o.id)=>(this.pointer<this.stack.length-1&&(this.stack=this.stack.slice(0,this.pointer+1)),this.stack.push(I(S({},o),{id:e})),this.pointer=this.stack.length-1,this.applyPatch(o.after,e),this.onCommand&&this.onCommand(this._state,o,e),this.persist(o.after,e),this));d(this,"onReady");d(this,"onPatch");d(this,"onCommand");d(this,"onPersist");d(this,"onReplace");d(this,"onReset");d(this,"onResetHistory");d(this,"onUndo");d(this,"onRedo");d(this,"reset",()=>(this.onStateWillChange&&this.onStateWillChange(this.initialState,"reset"),this._state=this.initialState,this.store.setState(this._state,!0),this.resetHistory(),this.persist({},"reset"),this.onStateDidChange&&this.onStateDidChange(this._state,"reset"),this.onReset&&this.onReset(this._state),this));d(this,"replaceHistory",(o,e=o.length-1)=>(this.stack=o,this.pointer=e,this.onReplace&&this.onReplace(this._state),this));d(this,"resetHistory",()=>(this.stack=[],this.pointer=-1,this.onResetHistory&&this.onResetHistory(this._state),this));d(this,"undo",()=>{if(!this.isPaused){if(!this.canUndo)return this;let o=this.stack[this.pointer];this.pointer--,this.applyPatch(o.before,"undo"),this.persist(o.before,"undo")}return this.onUndo&&this.onUndo(this._state),this});d(this,"redo",()=>{if(!this.isPaused){if(!this.canRedo)return this;this.pointer++;let o=this.stack[this.pointer];this.applyPatch(o.after,"redo"),this.persist(o.after,"undo")}return this.onRedo&&this.onRedo(this._state),this});d(this,"setSnapshot",()=>(this._snapshot=S({},this._state),this));d(this,"forceUpdate",()=>{this.store.setState(this._state,!0)});this._idbId=e,this._state=mt(o),this._snapshot=mt(o),this.initialState=mt(o),this.store=(0,Lu.default)(()=>this._state),this.useStore=(0,Mu.default)(this.store),this.ready=new Promise(r=>{let s="none";this._idbId?(s="restored",Zo.get(this._idbId).then(l=>F(this,null,function*(){if(l){let a=l;if(t){let p=yield Zo.get(e+"_version");p&&p<t&&(a=n?n(l,o,p):o,s="migrated")}yield Zo.set(e+"_version",t||-1);let c=this._state.appState.isEmptyCanvas;a=this.migrate(a),this._state=mt(a),this._snapshot=mt(a),this._state.appState.isEmptyCanvas=c,this.store.setState(this._state,!0)}else yield Zo.set(e+"_version",t||-1);this._status="ready",r(s)})).catch(l=>console.error(l))):(this._status="ready",r(s))}).then(r=>(this.onReady&&this.onReady(r),r))}pause(){this.isPaused=!0}resume(){this.isPaused=!1}get canUndo(){return this.pointer>-1}get canRedo(){return this.pointer<this.stack.length-1}get state(){return this._state}get status(){return this._status}get snapshot(){return this._snapshot}};var Au=require("telva-core"),Tl=require("telva-vec");function Vu(i,o,e){let{currentPageId:t}=i,n=o.map(h=>i.getShape(h)),r=n.map(h=>({id:h.id,point:[...h.point],bounds:B.getBounds(h)})),s=Au.Utils.getCommonBounds(r.map(({bounds:h})=>h)),l=s.minX+s.width/2,a=s.minY+s.height/2,c=Object.fromEntries(r.map(({id:h,point:g,bounds:m})=>[h,{prev:g,next:{["top"]:[g[0],s.minY],["centerVertical"]:[g[0],a-m.height/2],["bottom"]:[g[0],s.maxY-m.height],["left"]:[s.minX,g[1]],["centerHorizontal"]:[l-m.width/2,g[1]],["right"]:[s.maxX-m.width,g[1]]}[e]}])),{before:p,after:u}=B.mutateShapes(i.state,o,h=>c[h.id]?{point:c[h.id].next}:h,t,!1);return n.forEach(h=>{if(h.type==="group"){let g=Tl.Vec.sub(u[h.id].point,p[h.id].point);h.children.forEach(m=>{let f=i.getShape(m);p[f.id]={point:f.point},u[f.id]={point:Tl.Vec.add(f.point,g)}}),delete p[h.id],delete u[h.id]}}),{id:"align",before:{document:{pages:{[t]:{shapes:p}},pageStates:{[t]:{selectedIds:o}}}},after:{document:{pages:{[t]:{shapes:u}},pageStates:{[t]:{selectedIds:o}}}}}}function Hu(i,o){return{id:"change_page",before:{appState:{currentPageId:i.currentPageId}},after:{appState:{currentPageId:o}}}}var Ou=require("telva-core");function zu(i,o){var n;let e=i,t=new Set(o);for(;t.has(e);)e=(n=/^.*(\d+)$/.exec(e))!=null&&n[1]?e.replace(/(\d+)(?=\D?)$/,r=>(+r+1).toString()):`${e} 1`;return e}function Fu(i,o,e){let t={shapes:{},bindings:{}},n={shapes:{},bindings:{}},r=[],s=new Set,l=new Set;o.filter(c=>!B.getShape(i,c,e).isLocked).forEach(c=>{s.add(c);let p=B.getShape(i,c,e);t.shapes[c]=p,n.shapes[c]=void 0,p.children!==void 0&&p.children.forEach(u=>{s.add(u);let h=B.getShape(i,u,e);t.shapes[u]=h,n.shapes[u]=void 0}),p.parentId!==e&&r.push(B.getShape(i,p.parentId,e)),p.assetId&&l.add(p.assetId)}),r.forEach(c=>{var p;o.includes(c.id)||(s.add(c.id),t.shapes[c.id]={children:c.children},n.shapes[c.id]={children:c.children.filter(u=>!o.includes(u))},((p=n.shapes[c.id])==null?void 0:p.children.length)===0&&(n.shapes[c.id]=void 0,t.shapes[c.id]=B.getShape(i,c.id,e)))});let a=B.getPage(i,e);return Object.values(a.bindings).filter(c=>s.has(c.fromId)||s.has(c.toId)).forEach(c=>{for(let p of[c.toId,c.fromId])if(n.shapes[p]===void 0){t.bindings[c.id]=c,n.bindings[c.id]=void 0;let u=a.shapes[p];u&&u.handles&&Object.values(u.handles).filter(h=>h.bindingId===c.id).forEach(h=>{var g,m,f,v,b,T;t.shapes[p]=I(S({},t.shapes[p]),{handles:I(S({},(g=t.shapes[p])==null?void 0:g.handles),{[h.id]:I(S({},(f=(m=t.shapes[p])==null?void 0:m.handles)==null?void 0:f[h.id]),{bindingId:c.id})})}),s.has(p)||(n.shapes[p]=I(S({},n.shapes[p]),{handles:I(S({},(v=n.shapes[p])==null?void 0:v.handles),{[h.id]:I(S({},(T=(b=n.shapes[p])==null?void 0:b.handles)==null?void 0:T[h.id]),{bindingId:void 0})})}))})}}),Object.values(i.document.pages).flatMap(c=>Object.values(c.shapes)).forEach(c=>{"assetId"in c&&c.assetId&&!s.has(c.id)&&l.delete(c.assetId)}),{before:t,after:n,assetsToRemove:Array.from(l)}}function $u(i,o,e=Ou.Utils.uniqueId(),t="Page"){let{currentPageId:n}=i,r=Object.values(i.state.document.pages).sort((p,u)=>{var h,g;return((h=p.childIndex)!=null?h:0)-((g=u.childIndex)!=null?g:0)}),s=r[r.length-1],l=s!=null&&s.childIndex?(s==null?void 0:s.childIndex)+1:1,a={id:e,name:zu(t,r.map(p=>{var u;return(u=p.name)!=null?u:""})),childIndex:l,shapes:{},bindings:{}},c={id:e,selectedIds:[],camera:{point:o,zoom:1},editingId:void 0,bindingId:void 0,hoveredId:void 0,pointedId:void 0};return{id:"create_page",before:{appState:{currentPageId:n},document:{pages:{[e]:void 0},pageStates:{[e]:void 0}}},after:{appState:{currentPageId:a.id},document:{pages:{[e]:a},pageStates:{[e]:c}}}}}function xl(i,o,e=[]){let{currentPageId:t}=i,n={},r={};o.forEach(a=>{n[a.id]=void 0,r[a.id]=a});let s={},l={};return e.forEach(a=>{s[a.id]=void 0,l[a.id]=a}),{id:"create",before:{document:{pages:{[t]:{shapes:n,bindings:s}},pageStates:{[t]:{selectedIds:[...i.selectedIds]}}}},after:{document:{pages:{[t]:{shapes:r,bindings:l}},pageStates:{[t]:{selectedIds:o.map(a=>a.id)}}}}}}function Gu(i,o){let{currentPageId:e,document:{pages:t,pageStates:n}}=i,r=Object.values(t).sort((a,c)=>(a.childIndex||0)-(c.childIndex||0)),s=r.findIndex(a=>a.id===o),l;return o===e?s===r.length-1?l=r[r.length-2].id:l=r[s+1].id:l=e,{id:"delete_page",before:{appState:{currentPageId:o},document:{pages:{[o]:S({},t[o])},pageStates:{[o]:S({},n[o])}}},after:{appState:{currentPageId:l},document:{pages:{[o]:void 0},pageStates:{[o]:void 0}}}}}var vy=(i,o)=>{let e=S({},i);return o.forEach(t=>e[t]=void 0),e};function kl(i,o,e=i.currentPageId){let{pageState:t,selectedIds:n,document:{assets:r}}=i,{before:s,after:l,assetsToRemove:a}=Fu(i.state,o,e),c=vy(r,a);return{id:"delete",before:{document:{assets:r,pages:{[e]:s},pageStates:{[e]:{selectedIds:[...i.selectedIds]}}}},after:{document:{assets:c,pages:{[e]:l},pageStates:{[e]:{selectedIds:n.filter(p=>!o.includes(p)),hoveredId:t.hoveredId&&o.includes(t.hoveredId)?void 0:t.hoveredId}}}}}}var ju=require("telva-core"),Cl=H(require("telva-vec"));function Wu(i,o,e){let{currentPageId:t}=i,n=o.map(a=>i.getShape(a)),r=Object.fromEntries(Ty(n,e).map(a=>[a.id,a])),{before:s,after:l}=B.mutateShapes(i.state,o.filter(a=>r[a]!==void 0),a=>{var c;return{point:(c=r[a.id])==null?void 0:c.next}},t);return n.forEach(a=>{if(a.type==="group"){let c=Cl.default.sub(l[a.id].point,s[a.id].point);a.children.forEach(p=>{let u=i.getShape(p);s[u.id]={point:u.point},l[u.id]={point:Cl.default.add(u.point,c)}}),delete s[a.id],delete l[a.id]}}),{id:"distribute",before:{document:{pages:{[t]:{shapes:s}},pageStates:{[t]:{selectedIds:o}}}},after:{document:{pages:{[t]:{shapes:l}},pageStates:{[t]:{selectedIds:o}}}}}}function Ty(i,o){let e=i.map(s=>{let l=B.getShapeUtil(s);return{id:s.id,point:[...s.point],bounds:l.getBounds(s),center:l.getCenter(s)}}),t=e.length,n=ju.Utils.getCommonBounds(e.map(({bounds:s})=>s)),r=[];switch(o){case"horizontal":{let s=e.reduce((l,a)=>l+a.bounds.width,0);if(s>n.width){let l=e.sort((h,g)=>h.bounds.minX-g.bounds.minX)[0],a=e.sort((h,g)=>g.bounds.maxX-h.bounds.maxX)[0],c=e.filter(h=>h!==l&&h!==a).sort((h,g)=>h.center[0]-g.center[0]),p=(a.center[0]-l.center[0])/(t-1),u=l.center[0]+p;c.forEach(({id:h,point:g,bounds:m},f)=>{r.push({id:h,prev:g,next:[u+p*f-m.width/2,m.minY]})})}else{let l=e.sort((p,u)=>p.center[0]-u.center[0]),a=n.minX,c=(n.width-s)/(t-1);l.forEach(({id:p,point:u,bounds:h})=>{r.push({id:p,prev:u,next:[a,h.minY]}),a+=h.width+c})}break}case"vertical":{let s=e.reduce((l,a)=>l+a.bounds.height,0);if(s>n.height){let l=e.sort((h,g)=>h.bounds.minY-g.bounds.minY)[0],a=e.sort((h,g)=>g.bounds.maxY-h.bounds.maxY)[0],c=e.filter(h=>h!==l&&h!==a).sort((h,g)=>h.center[1]-g.center[1]),p=(a.center[1]-l.center[1])/(t-1),u=l.center[1]+p;c.forEach(({id:h,point:g,bounds:m},f)=>{r.push({id:h,prev:g,next:[m.minX,u+p*f-m.height/2]})})}else{let l=e.sort((p,u)=>p.center[1]-u.center[1]),a=n.minY,c=(n.height-s)/(t-1);l.forEach(({id:p,point:u,bounds:h})=>{r.push({id:p,prev:u,next:[h.minX,a]}),a+=h.height+c})}break}}return r}var Br=require("telva-core");function Nu(i,o){let{currentPageId:e,pageState:{camera:t}}=i,n=i.document.pages[o],r=Br.Utils.uniqueId(),s=Object.fromEntries([[n.id,r],...Object.keys(n.shapes).map(p=>[p,Br.Utils.uniqueId()]),...Object.keys(n.bindings).map(p=>[p,Br.Utils.uniqueId()])]),l=Object.fromEntries(Object.entries(n.shapes).map(([p,u])=>[s[p],I(S({},Br.Utils.deepClone(u)),{id:s[p],parentId:s[u.parentId]})])),a=Object.fromEntries(Object.entries(n.bindings).map(([p,u])=>[s[p],I(S({},Br.Utils.deepClone(u)),{id:s[u.id],fromId:s[u.fromId],toId:s[u.toId]})]));Object.values(n.bindings).forEach(p=>{let u=s[p.fromId],h=l[u].handles;h&&Object.values(h).forEach(f=>{f.bindingId===p.id&&(f.bindingId=s[p.id])});let g=s[p.toId],m=l[g].handles;m&&Object.values(m).forEach(f=>{f.bindingId===p.id&&(f.bindingId=s[p.id])})});let c=I(S({},n),{id:s[n.id],name:n.name+" Copy",shapes:l,bindings:a});return{id:"duplicate_page",before:{appState:{currentPageId:e},document:{pages:{[r]:void 0},pageStates:{[r]:void 0}}},after:{appState:{currentPageId:r},document:{pages:{[r]:c},pageStates:{[r]:I(S({},n),{id:r,selectedIds:[],camera:S({},t),editingId:void 0,bindingId:void 0,hoveredId:void 0,pointedId:void 0})}}}}}var io=require("telva-core"),ea=require("telva-vec");function Uu(i,o,e){let{selectedIds:t,currentPageId:n,page:r,shapes:s}=i,l={shapes:{},bindings:{}},a={shapes:{},bindings:{}},c={},p=o.map(g=>i.getShape(g)).filter(g=>!o.includes(g.parentId));p.forEach(g=>{let m=io.Utils.uniqueId();if(l.shapes[m]=void 0,a.shapes[m]=I(S({},io.Utils.deepClone(g)),{id:m,childIndex:B.getChildIndexAbove(i.state,g.id,n)}),g.children&&(a.shapes[m].children=[]),g.parentId!==n){let f=i.getShape(g.parentId);l.shapes[f.id]=I(S({},l.shapes[f.id]),{children:f.children}),a.shapes[f.id]=I(S({},a.shapes[f.id]),{children:[...(a.shapes[f.id]||f).children,m]})}c[g.id]=m}),p.forEach(g=>{g.children&&g.children.forEach(m=>{var T,y;let f=i.getShape(m),v=io.Utils.uniqueId(),b=c[g.id];l.shapes[v]=void 0,a.shapes[v]=I(S({},io.Utils.deepClone(f)),{id:v,parentId:b,childIndex:B.getChildIndexAbove(i.state,f.id,n)}),c[m]=v,(y=(T=a.shapes[c[g.id]])==null?void 0:T.children)==null||y.push(v)})});let u=new Set(Object.keys(c));Object.values(r.bindings).filter(g=>u.has(g.fromId)||u.has(g.toId)).forEach(g=>{if(u.has(g.fromId))if(u.has(g.toId)){let m=io.Utils.uniqueId(),f=I(S({},io.Utils.deepClone(g)),{id:m,fromId:c[g.fromId],toId:c[g.toId]});l.bindings[m]=void 0,a.bindings[m]=f;let v=a.shapes[f.fromId];Object.values(v.handles).forEach(b=>{b.bindingId===g.id&&(b.bindingId=m)})}else{let m=a.shapes[c[g.fromId]];Object.values(m.handles).forEach(f=>{f.bindingId===g.id&&(f.bindingId=void 0)})}});let h=Object.values(a.shapes);if(e){let g=io.Utils.getCommonBounds(h.map(f=>B.getBounds(f))),m=io.Utils.getBoundsCenter(g);h.forEach(f=>{!f.point||(f.point=ea.Vec.sub(e,ea.Vec.sub(m,f.point)))})}else{let g=[16,16];h.forEach(m=>{!m.point||(m.point=ea.Vec.add(m.point,g))})}return h.forEach(g=>{g.isLocked&&(g.isLocked=!1)}),{id:"duplicate",before:{document:{pages:{[n]:l},pageStates:{[n]:{selectedIds:t}}}},after:{document:{pages:{[n]:a},pageStates:{[n]:{selectedIds:Array.from(u.values()).map(g=>c[g])}}}}}}var In=require("telva-core");function wl(i,o,e){let{selectedIds:t,currentPageId:n,page:{shapes:r}}=i,s=o.map(u=>B.getBounds(r[u])),l=o.length===1&&r[o[0]].type==="group",a=In.Utils.getCommonBounds(s),{before:c,after:p}=B.mutateShapes(i.state,o,u=>{let h=B.getBounds(u),g=u.parentId!==n;switch(e){case"horizontal":{if(g&&!l){let f=B.getBounds(r[u.parentId]),b=In.Utils.getRelativeTransformedBoundingBox(a,a,f,!0,!1).minX-f.minX;return B.getShapeUtil(u).transform(u,I(S({},h),{minX:h.minX+b,maxX:h.maxX+b}),{type:In.TLBoundsCorner.TopLeft,scaleX:1,scaleY:1,initialShape:u,transformOrigin:[.5,.5]})}let m=In.Utils.getRelativeTransformedBoundingBox(a,a,h,!0,!1);return B.getShapeUtil(u).transform(u,m,{type:In.TLBoundsCorner.TopLeft,scaleX:-1,scaleY:1,initialShape:u,transformOrigin:[.5,.5]})}case"vertical":{if(g&&!l){let f=B.getBounds(r[u.parentId]),b=In.Utils.getRelativeTransformedBoundingBox(a,a,f,!1,!0).minY-f.minY;return B.getShapeUtil(u).transform(u,I(S({},h),{minY:h.minY+b,maxY:h.maxY+b}),{type:In.TLBoundsCorner.TopLeft,scaleX:1,scaleY:1,initialShape:u,transformOrigin:[.5,.5]})}let m=In.Utils.getRelativeTransformedBoundingBox(a,a,h,!1,!0);return B.getShapeUtil(u).transform(u,m,{type:In.TLBoundsCorner.TopLeft,scaleX:1,scaleY:-1,initialShape:u,transformOrigin:[.5,.5]})}}},n,!0);return{id:"flip",before:{document:{pages:{[n]:{shapes:c}},pageStates:{[n]:{selectedIds:t}}}},after:{document:{pages:{[n]:{shapes:p}},pageStates:{[n]:{selectedIds:o}}}}}}var Ku=require("telva-core");function _u(i,o,e,t){var x,P;if(o.length<2)return;let n={},r={},s={},l={},a=[...o],c=[],p=[],u=[];for(let k of o){let D=i.getShape(k);if(!D.isLocked)if(D.children===void 0)c.push(D);else{let C=D.children.filter(E=>!i.getShape(E).isLocked);u.push(D),a.push(...C),c.push(...C.map(E=>i.getShape(E)).filter(Boolean))}}if(c.every(k=>k.parentId===c[0].parentId)&&c[0].parentId!==t&&((x=i.getShape(c[0].parentId).children)==null?void 0:x.length)===a.length)return;let h=B.flattenPage(i.state,t),g=Object.fromEntries(c.map(k=>[k.id,h.indexOf(k)])),m=c.sort((k,D)=>g[k.id]-g[D.id]),f=t,v=(m.filter(k=>k.parentId===t)[0]||m[0]).childIndex,b=Ku.Utils.getCommonBounds(c.map(k=>B.getBounds(k)));for(n[e]=void 0,r[e]=B.getShapeUtil("group").create({id:e,childIndex:v,parentId:f,point:[b.minX,b.minY],size:[b.width,b.height],children:m.map(k=>k.id)}),m.forEach((k,D)=>{if(k.parentId!==t){let C=i.getShape(k.parentId);u.push(C)}n[k.id]=I(S({},n[k.id]),{parentId:k.parentId,childIndex:k.childIndex}),r[k.id]=I(S({},r[k.id]),{parentId:e,childIndex:D+1})});u.length>0;){let k=u.pop();if(!k)break;let D=(((P=n[k.id])==null?void 0:P.children)||k.children).filter(C=>C&&!(a.includes(C)||p.includes(C)));D.length===0?(n[k.id]=k,r[k.id]=void 0,k.parentId!==t&&(p.push(k.id),u.push(i.getShape(k.parentId)))):(n[k.id]=I(S({},n[k.id]),{children:k.children}),r[k.id]=I(S({},r[k.id]),{children:D}))}let{bindings:T}=i,y=new Set(p);return T.forEach(k=>{for(let D of[k.toId,k.fromId])if(y.has(D)){s[k.id]=k,l[k.id]=void 0;let C=i.getShape(D);C.handles&&Object.values(C.handles).filter(E=>E.bindingId===k.id).forEach(E=>{var M,L;n[D]=I(S({},n[D]),{handles:I(S({},(M=n[D])==null?void 0:M.handles),{[E.id]:{bindingId:k.id}})}),p.includes(D)||(r[D]=I(S({},r[D]),{handles:I(S({},(L=r[D])==null?void 0:L.handles),{[E.id]:{bindingId:void 0}})}))})}}),{id:"group",before:{document:{pages:{[t]:{shapes:n,bindings:s}},pageStates:{[t]:{selectedIds:o}}}},after:{document:{pages:{[t]:{shapes:r,bindings:s}},pageStates:{[t]:{selectedIds:[e]}}}}}}var Yu=require("telva-core"),Il=require("telva-vec");function Xu(i,o,e,t,n){let{page:r}=i,s={before:{shapes:{},bindings:{}},after:{shapes:{},bindings:{}}},l={before:{shapes:{},bindings:{}},after:{shapes:{},bindings:{}}},a=new Set,c=new Set;o.map(T=>i.getShape(T,t)).filter(T=>!T.isLocked).forEach(T=>{a.add(T.id),c.add(T),T.children!==void 0&&T.children.forEach(y=>{a.add(y),c.add(i.getShape(y,t))})});let p=B.getTopChildIndex(i.state,n),u=Array.from(c.values());u.forEach((T,y)=>{if(s.before.shapes[T.id]=T,s.after.shapes[T.id]=void 0,l.before.shapes[T.id]=void 0,l.after.shapes[T.id]=T,!a.has(T.parentId)&&(l.after.shapes[T.id]=I(S({},T),{parentId:n,childIndex:p+y}),T.parentId!==t)){let x=i.getShape(T.parentId,t);s.before.shapes[x.id]={children:x.children},s.after.shapes[x.id]={children:x.children.filter(P=>P!==T.id)}}}),Object.values(r.bindings).filter(T=>a.has(T.fromId)||a.has(T.toId)).forEach(T=>{s.before.bindings[T.id]=T,s.after.bindings[T.id]=void 0;let y=i.getShape(T.fromId,t);if(a.has(T.fromId)&&a.has(T.toId))l.before.bindings[T.id]=void 0,l.after.bindings[T.id]=T;else if(a.has(T.fromId)){let P=i.getShape(T.fromId,t),D=Object.values(y.handles).find(E=>E.bindingId===T.id).id,C=l.after.shapes[P.id];C.handles=I(S({},C.handles),{[D]:I(S({},C.handles[D]),{bindingId:void 0})})}else{let P=i.getShape(T.fromId,t),k=Object.values(y.handles).find(D=>D.bindingId===T.id);s.before.shapes[P.id]={handles:{[k.id]:{bindingId:T.id}}},s.after.shapes[P.id]={handles:{[k.id]:{bindingId:void 0}}}}});let h=i.state.document.pageStates[n],g=Yu.Utils.getCommonBounds(u.map(T=>B.getBounds(T))),m=B.getCameraZoom(e.width<e.height?(e.width-128)/g.width:(e.height-128)/g.height),f=(e.width-g.width*m)/2/m,v=(e.height-g.height*m)/2/m,b=Il.Vec.toFixed(Il.Vec.add([-g.minX,-g.minY],[f,v]));return{id:"move_to_page",before:{appState:{currentPageId:t},document:{pages:{[t]:s.before,[n]:l.before},pageStates:{[t]:{selectedIds:o},[n]:{selectedIds:h.selectedIds,camera:h.camera}}}},after:{appState:{currentPageId:n},document:{pages:{[t]:s.after,[n]:l.after},pageStates:{[t]:{selectedIds:[]},[n]:{selectedIds:o,camera:{zoom:m,point:b}}}}}}}function Zu(i,o,e){let{pages:t}=i.document,n=t[o],r=Object.values(t).sort((a,c)=>{var p,u;return((p=a.childIndex)!=null?p:0)-((u=c.childIndex)!=null?u:0)}),s=r.indexOf(n),l=[...r];return l.splice(s,1),l.splice(e>s?e-1:e,0,n),{id:"move_page",before:{document:{pages:Object.fromEntries(r.map(a=>[a.id,{childIndex:a.childIndex}]))}},after:{document:{pages:Object.fromEntries(l.map((a,c)=>[a.id,{childIndex:c}]))}}}}function Pi(i,o,e){let{currentPageId:t,page:n}=i,r=new Set(o.map(p=>i.getShape(p).parentId)),s={before:{},after:{}},l,a,c;return Array.from(r.values()).forEach(p=>{let u=[];if(p===n.id)u=Object.values(n.shapes).sort((m,f)=>m.childIndex-f.childIndex);else{let m=i.getShape(p);if(!m.children)throw Error("No children in parent!");u=m.children.map(f=>i.getShape(f)).sort((f,v)=>f.childIndex-v.childIndex)}let h=u.map(m=>m.id),g=o.filter(m=>h.includes(m)).map(m=>h.indexOf(m)).sort((m,f)=>m-f);if(g.length!==h.length)switch(e){case"toBack":{for(let m=0;m<h.length;m++)if(!g.includes(m)){l=m;break}a=u[l].childIndex,c=a/(g.length+1),s=B.mutateShapes(i.state,g.map(m=>u[m].id).reverse(),(m,f)=>({childIndex:a-(f+1)*c}),t);break}case"toFront":{for(let m=h.length-1;m>=0;m--)if(!g.includes(m)){l=m;break}a=u[l].childIndex,c=1,s=B.mutateShapes(i.state,g.map(m=>u[m].id),(m,f)=>({childIndex:a+(f+1)}),t);break}case"backward":{let m={};for(let f=h.length-1;f>=0;f--)if(g.includes(f)){for(let v=f;v>=0;v--)if(!g.includes(v)){let b=u[v].childIndex,T,y;v===0?(T=b/2,y=b/2/(f-v+1)):(T=u[v-1].childIndex,y=(b-T)/(f-v+1),T+=y);for(let x=0;x<f-v;x++)m[u[v+x+1].id]=T+y*x;break}}Object.values(m).length>0&&(s=B.mutateShapes(i.state,g.map(f=>u[f].id),f=>({childIndex:m[f.id]}),t));break}case"forward":{let m={};for(let f=0;f<h.length;f++)if(g.includes(f)){for(let v=f;v<h.length;v++)if(!g.includes(v)){a=u[v].childIndex;let b=v===h.length-1?1:(u[v+1].childIndex-a)/(v-f+1);for(let T=0;T<v-f;T++)m[u[f+T].id]=a+b*(T+1);break}}Object.values(m).length>0&&(s=B.mutateShapes(i.state,g.map(f=>u[f].id),f=>({childIndex:m[f.id]}),t));break}}}),{id:"move",before:{document:{pages:{[t]:{shapes:s.before}},pageStates:{[t]:{selectedIds:o}}}},after:{document:{pages:{[t]:{shapes:s.after}},pageStates:{[t]:{selectedIds:o}}}}}}function qu(i,o,e){let{page:t}=i;return{id:"rename_page",before:{document:{pages:{[o]:{name:t.name}}}},after:{document:{pages:{[o]:{name:e}}}}}}function Pl(i,o,e){let{currentPageId:t}=i,{before:n,after:r}=B.mutateShapes(i.state,o,s=>{var l,a;return(a=(l=i.getShapeUtil(s)).onDoubleClickBoundsHandle)==null?void 0:a.call(l,s)},e);return{id:"reset_bounds",before:{document:{pages:{[t]:{shapes:n}},pageStates:{[t]:{selectedIds:o}}}},after:{document:{pages:{[t]:{shapes:r}},pageStates:{[t]:{selectedIds:o}}}}}}var Rl=require("telva-core");var xy=Math.PI*2;function Ju(i,o,e=-xy/4){let{currentPageId:t}=i,n={},r={},s=o.flatMap(a=>{let c=i.getShape(a);return c.children?c.children.map(p=>i.getShape(p)):c}).filter(a=>!a.isLocked),l=Rl.Utils.getBoundsCenter(Rl.Utils.getCommonBounds(s.map(a=>B.getBounds(a))));return s.forEach(a=>{let c=B.getRotatedShapeMutation(a,B.getCenter(a),l,e);!c||(n[a.id]=B.getBeforeShape(a,c),r[a.id]=c)}),{id:"rotate",before:{document:{pages:{[t]:{shapes:n}},pageStates:{[t]:{selectedIds:o}}}},after:{document:{pages:{[t]:{shapes:r}},pageStates:{[t]:{selectedIds:o}}}}}}var Ri=require("telva-core");function Qu(i,o,e){let{currentPageId:t,selectedIds:n}=i,r=o.map(u=>i.getShape(u)),s=r.map(u=>B.getBounds(u)),l=Ri.Utils.getCommonBounds(s),a=o.flatMap(u=>{let h=i.getShape(u);return h.children?h.children:h.id}).filter(u=>!i.getShape(u).isLocked),{before:c,after:p}=B.mutateShapes(i.state,a,u=>{let h=B.getBounds(u);switch(e){case"horizontal":{let g=I(S({},h),{minX:l.minX,maxX:l.maxX,width:l.width});return B.getShapeUtil(u).transformSingle(u,g,{type:Ri.TLBoundsCorner.TopLeft,scaleX:g.width/h.width,scaleY:1,initialShape:u,transformOrigin:[.5,.5]})}case"vertical":{let g=I(S({},h),{minY:l.minY,maxY:l.maxY,height:l.height});return B.getShapeUtil(u).transformSingle(u,g,{type:Ri.TLBoundsCorner.TopLeft,scaleX:1,scaleY:g.height/h.height,initialShape:u,transformOrigin:[.5,.5]})}}},t);return r.forEach(u=>{u.type==="group"&&(delete c[u.id],delete p[u.id])}),{id:"stretch",before:{document:{pages:{[t]:{shapes:c}},pageStates:{[t]:{selectedIds:n}}}},after:{document:{pages:{[t]:{shapes:p}},pageStates:{[t]:{selectedIds:o}}}}}}var ta=require("telva-vec");function eh(i,o,e){let{currentPageId:t,selectedIds:n}=i,r=o.flatMap(a=>B.getDocumentBranch(i.state,a,t)).filter(a=>!i.getShape(a).isLocked),s={},l={};return r.map(a=>i.getShape(a)).filter(a=>!a.isLocked).forEach(a=>{s[a.id]={style:S({},Object.fromEntries(Object.keys(e).map(c=>[c,a.style[c]])))},l[a.id]={style:e},a.type==="text"&&(s[a.id].point=a.point,l[a.id].point=ta.Vec.toFixed(ta.Vec.add(a.point,ta.Vec.sub(i.getShapeUtil(a).getCenter(a),i.getShapeUtil(a).getCenter(I(S({},a),{style:S(S({},a.style),e)}))))))}),{id:"style",before:{document:{pages:{[t]:{shapes:s}},pageStates:{[t]:{selectedIds:n}}},appState:{currentStyle:S({},i.appState.currentStyle)}},after:{document:{pages:{[t]:{shapes:l}},pageStates:{[t]:{selectedIds:o}}},appState:{currentStyle:e}}}}function th(i,o,e){let{currentPageId:t,selectedIds:n}=i,r=Object.fromEntries(o.map(l=>{var a;return[l,{decorations:{[e]:(a=i.getShape(l).decorations)==null?void 0:a[e]}}]})),s=Object.fromEntries(o.filter(l=>!i.getShape(l).isLocked).map(l=>{var a;return[l,{decorations:{[e]:(a=i.getShape(l).decorations)!=null&&a[e]?void 0:"arrow"}}]}));return{id:"toggle_decorations",before:{document:{pages:{[t]:{shapes:r}},pageStates:{[t]:{selectedIds:n}}}},after:{document:{pages:{[t]:{shapes:s}},pageStates:{[t]:{selectedIds:o}}}}}}function na(i,o,e){let{currentPageId:t}=i,n=o.map(a=>i.getShape(a)).filter(a=>e==="isLocked"?!0:!a.isLocked),r=n.every(a=>a[e]),s={},l={};return n.forEach(a=>{s[a.id]={[e]:a[e]},l[a.id]={[e]:!r}}),{id:"toggle",before:{document:{pages:{[t]:{shapes:s}},pageStates:{[t]:{selectedIds:o}}}},after:{document:{pages:{[t]:{shapes:l}},pageStates:{[t]:{selectedIds:o}}}}}}var Dl=require("telva-vec");function nh(i,o,e){let{currentPageId:t,selectedIds:n}=i;i.rotationInfo.selectedIds=[...n];let r={shapes:{},bindings:{}},s={shapes:{},bindings:{}},l=o.flatMap(p=>{let u=i.getShape(p);return u.children?u.children:u.id}).filter(p=>!i.getShape(p).isLocked),a=B.mutateShapes(i.state,l,p=>({point:Dl.Vec.toFixed(Dl.Vec.add(p.point,e))}),t);return r.shapes=a.before,s.shapes=a.after,B.getBindings(i.state,t).filter(p=>o.includes(p.fromId)&&!o.includes(p.toId)).forEach(p=>{r.bindings[p.id]=p,s.bindings[p.id]=void 0;for(let u of[p.toId,p.fromId]){let h=i.getShape(u);!h.handles||Object.values(h.handles).filter(g=>g.bindingId===p.id).forEach(g=>{var m,f;r.shapes[u]=I(S({},r.shapes[u]),{handles:I(S({},(m=r.shapes[u])==null?void 0:m.handles),{[g.id]:{bindingId:p.id}})}),s.shapes[u]=I(S({},s.shapes[u]),{handles:I(S({},(f=s.shapes[u])==null?void 0:f.handles),{[g.id]:{bindingId:void 0}})})})}}),{id:"translate",before:{document:{pages:{[t]:r},pageStates:{[t]:{selectedIds:o}}}},after:{document:{pages:{[t]:s},pageStates:{[t]:{selectedIds:o}}}}}}function oh(i,o,e,t){let{bindings:n}=i,r={},s={},l={},a={},c=o,p=o.filter(u=>!e.find(h=>h.id===u));return e.filter(u=>!u.isLocked).forEach(u=>{let h=[],g=[];r[u.id]=u,s[u.id]=void 0,u.children.forEach(T=>{p.push(T);let y=i.getShape(T,t);h.push(y)});let m=u.childIndex,v=(B.getChildIndexAbove(i.state,u.id,t)-m)/h.length;h.sort((T,y)=>T.childIndex-y.childIndex).forEach((T,y)=>{r[T.id]={parentId:T.parentId,childIndex:T.childIndex},s[T.id]={parentId:t,childIndex:m+v*y}}),n.filter(T=>T.toId===u.id||T.fromId===u.id).forEach(T=>{for(let y of[T.toId,T.fromId])if(s[y]===void 0){l[T.id]=T,a[T.id]=void 0;let x=i.getShape(y,t);x.handles&&Object.values(x.handles).filter(P=>P.bindingId===T.id).forEach(P=>{var k,D;r[y]=I(S({},r[y]),{handles:I(S({},(k=r[y])==null?void 0:k.handles),{[P.id]:{bindingId:T.id}})}),g.includes(y)||(s[y]=I(S({},s[y]),{handles:I(S({},(D=s[y])==null?void 0:D.handles),{[P.id]:{bindingId:void 0}})}))})}})}),{id:"ungroup",before:{document:{pages:{[t]:{shapes:r,bindings:l}},pageStates:{[t]:{selectedIds:c}}}},after:{document:{pages:{[t]:{shapes:s,bindings:l}},pageStates:{[t]:{selectedIds:p}}}}}}function El(i,o,e){let t=o.map(r=>r.id),n=B.mutateShapes(i.state,t.filter(r=>!i.getShape(r,e).isLocked),(r,s)=>o[s],e);return{id:"update",before:{document:{pages:{[e]:{shapes:n.before}}}},after:{document:{pages:{[e]:{shapes:n.after}}}}}}function rh(i,o,e){let{currentPageId:t,selectedIds:n}=i,r=o.map(c=>i.getShape(c)).filter(c=>e.isLocked?!0:!c.isLocked),s={},l={},a=Object.keys(e);return r.forEach(c=>{s[c.id]=Object.fromEntries(a.map(p=>[p,c[p]])),l[c.id]=e}),{id:"set_props",before:{document:{pages:{[t]:{shapes:s}},pageStates:{[t]:{selectedIds:n}}}},after:{document:{pages:{[t]:{shapes:l}},pageStates:{[t]:{selectedIds:n}}}}}}var Jt=require("telva-core"),qo=require("telva-vec");function ih(i,o,e={}){let{currentPageId:t}=i,{point:n,select:r,overwrite:s}=e,l=i.document.pages[t],a={shapes:{},bindings:{}},c={},p={shapes:{},bindings:{}};if(s){for(let h of o.shapes)a.shapes[h.id]=l.shapes[h.id],p.shapes[h.id]=h;if(o.bindings)for(let h of o.bindings)a.bindings[h.id]=l.bindings[h.id],p.bindings[h.id]=h;if(o.assets)for(let h of o.assets)c[h.id]=h}else{let h={},g=B.getTopChildIndex(i.state,t),m=o.shapes.sort((b,T)=>b.childIndex-T.childIndex).map(b=>{let T=Jt.Utils.uniqueId();return h[b.id]=T,I(S({},Jt.Utils.deepClone(b)),{id:T})}),f=new Set;for(;m.length>0;){let b=m.shift();if(!b)break;if(f.add(b.id),b.parentId==="currentPageId")b.parentId=t,b.childIndex=g++;else{b.parentId=h[b.parentId];let T=p.shapes[b.parentId];if(!T){f.has(b.id)&&(b.parentId="currentPageId"),m.push(b);continue}T.children.push(b.id)}b.children&&(b.children=[]),a.shapes[b.id]=void 0,p.shapes[b.id]=b}Object.values(p.shapes).forEach(b=>{b.children&&b.children.length===0&&(delete a.shapes[b.id],delete p.shapes[b.id])}),o.bindings&&o.bindings.forEach(b=>{let T=Jt.Utils.uniqueId();h[b.id]=T;let y=h[b.toId],x=h[b.fromId];if(!y||!x){if(x){let C=p.shapes[x].handles;C&&Object.values(C).forEach(E=>{E.bindingId===b.id&&(E.bindingId=void 0)})}if(y){let C=p.shapes[y].handles;C&&Object.values(C).forEach(E=>{E.bindingId===b.id&&(E.bindingId=void 0)})}return}let P=p.shapes[x].handles;P&&Object.values(P).forEach(C=>{C.bindingId===b.id&&(C.bindingId=T)}),p.shapes[y].handles&&Object.values(p.shapes[y].handles).forEach(C=>{C.bindingId===b.id&&(C.bindingId=T)});let D=I(S({},Jt.Utils.deepClone(b)),{id:T,toId:y,fromId:x});a.bindings[D.id]=void 0,p.bindings[D.id]=D});let v=Object.values(p.shapes);if(v.length>0)if(n){let b=Jt.Utils.getCommonBounds(v.map(y=>B.getBounds(y))),T=Jt.Utils.getBoundsCenter(b);v.forEach(y=>{!y.point||(y.point=qo.Vec.sub(n,qo.Vec.sub(T,y.point)))})}else{let b=Jt.Utils.getCommonBounds(v.map(B.getBounds));if(!(Jt.Utils.boundsContain(i.viewport,b)||Jt.Utils.boundsCollide(i.viewport,b))){let T=qo.Vec.toFixed(i.getPagePoint(i.centerPoint)),y=Jt.Utils.centerBounds(b,T),x=qo.Vec.sub(Jt.Utils.getBoundsCenter(y),Jt.Utils.getBoundsCenter(b));v.forEach(P=>{P.point=qo.Vec.toFixed(qo.Vec.add(P.point,x))})}}if(o.assets)for(let b of o.assets)c[b.id]=b}let u=document.createElement("textarea");return Object.values(p.shapes).forEach(h=>{"text"in h&&(u.innerHTML=h.text,h.text=u.value),"label"in h&&(u.innerHTML=h.label,h.label=u.value)}),u.remove(),{id:"insert",before:{document:{pages:{[t]:a},pageStates:{[t]:{selectedIds:[...i.selectedIds]}}}},after:{document:{pages:{[t]:p},assets:c,pageStates:{[t]:{selectedIds:r?Object.keys(p.shapes):[...i.selectedIds]}}}}}}var Mr={};ka(Mr,{fileToBase64:()=>Al,fileToText:()=>Vl,getImageSizeFromSrc:()=>Hl,getVideoSizeFromSrc:()=>zl,loadFileHandle:()=>Bl,migrate:()=>Gn,openAssetsFromFileSystem:()=>Ll,openFromFileSystem:()=>Ml,saveFileHandle:()=>oa,saveToFileSystem:()=>ia,tldrawFileToTVDocument:()=>lh,tvDocumentToTldrawFile:()=>ah});function Gn(i,o){let{document:e,settings:t}=i,{version:n=0}=e;"assets"in e||(e.assets={});let r=new Set;return Object.values(e.pages).forEach(s=>Object.values(s.shapes).forEach(l=>{let{parentId:a,children:c,assetId:p}=l;p&&r.add(p),a!==s.id&&!s.shapes[a]&&(console.warn("Encountered a shape with a missing parent!"),l.parentId=s.id),l.type==="group"&&c&&c.forEach(u=>{s.shapes[u]||(console.warn("Encountered a parent with a missing child!",l.id,u),c==null||c.splice(c.indexOf(u),1))})})),Object.keys(e.assets).forEach(s=>{r.has(s)||delete e.assets[s]}),n!==o&&(n<14&&Object.values(e.pages).forEach(s=>{Object.values(s.shapes).filter(l=>l.type==="text").forEach(l=>l.style.font==="script")}),n<=13&&Object.values(e.pages).forEach(s=>{Object.values(s.bindings).forEach(l=>{Object.assign(l,l.meta)}),Object.values(s.shapes).forEach(l=>{Object.entries(l.style).forEach(([a,c])=>{typeof c=="string"&&(l.style[a]=c.toLowerCase())}),l.type==="arrow"&&l.decorations&&Object.entries(l.decorations).forEach(([a,c])=>{c==="Arrow"&&(l.decorations=I(S({},l.decorations),{[a]:"arrow"}))})})}),n<=13.1&&(e.name="New Document"),n<15&&(e.assets={}),Object.values(e.pages).forEach(s=>{Object.values(s.shapes).forEach(l=>{n<15.2&&(l.type==="image"||l.type==="video")&&(l.style.isFilled=!0),n<15.3&&(l.type==="rectangle"||l.type==="triangle"||l.type==="ellipse"||l.type==="arrow")&&(l.label=l.text||"",l.labelPoint=[.5,.5])})}),n<15.4&&(t.dockPosition="bottom"),n<15.5&&(t.exportBackground="transparent")),Object.values(e.pageStates).forEach(s=>{s.selectedIds=s.selectedIds.filter(l=>e.pages[s.id].shapes[l]!==void 0),s.bindingId=void 0,s.editingId=void 0,s.hoveredId=void 0,s.pointedId=void 0}),Object.values(e.pages).forEach(s=>{Object.values(s.shapes).forEach(l=>{var a,c,p,u,h,g,m,f,v,b,T,y;if(l.type==="arrow"){let x=l;if(!x.handles||!x.handles.start||!x.handles.end||!x.handles.bend){let P=(p=(c=(a=x.handles)==null?void 0:a.start)==null?void 0:c.point)!=null?p:[0,0],k=(g=(h=(u=x.handles)==null?void 0:u.end)==null?void 0:h.point)!=null?g:[100,0],D=(v=(f=(m=x.handles)==null?void 0:m.bend)==null?void 0:f.point)!=null?v:[(P[0]+k[0])/2,(P[1]+k[1])/2];x.handles={start:S({id:"start",index:0,point:P,canBind:!0},(b=x.handles)==null?void 0:b.start),bend:S({id:"bend",index:1,point:D},(T=x.handles)==null?void 0:T.bend),end:S({id:"end",index:2,point:k,canBind:!0},(y=x.handles)==null?void 0:y.end)}}typeof x.bend!="number"&&(x.bend=0)}})}),e.version=o,i}var Jo=require("browser-fs-access"),ra=require("idb-keyval");var sh={mode:"readwrite"},Cy=i=>F(void 0,null,function*(){return(yield i.queryPermission(sh))==="granted"||(yield i.requestPermission(sh))==="granted"});function Bl(){return F(this,null,function*(){if(typeof Window=="undefined"||!("_location"in Window))return;let i=yield(0,ra.get)(`Telva_file_handle_${window.location.origin}`);return i||null})}function oa(i){return F(this,null,function*(){return(0,ra.set)(`Telva_file_handle_${window.location.origin}`,i)})}var wy={schemaVersion:1,storeVersion:4,recordVersions:{asset:{version:1,subTypeKey:"type",subTypeVersions:{image:2,video:2,bookmark:0}},camera:{version:1},document:{version:2},instance:{version:22},instance_page_state:{version:5},page:{version:1},shape:{version:3,subTypeKey:"type",subTypeVersions:{}},instance_presence:{version:5},pointer:{version:1}}};function ah(i){var t,n,s,l,a,c;let o=[];o.push({gridSize:10,name:i.name||"",meta:{},id:"document:document",typeName:"document",telvaDocument:i});let e=0;for(let p of Object.keys(i.pages)){let u=i.pages[p],h=i.pageStates[p],g=`a${e+1}`;o.push({meta:{},id:`page:${p}`,name:u.name||`Page ${e+1}`,index:g,typeName:"page"}),o.push({editingShapeId:null,croppingShapeId:null,selectedShapeIds:(t=h==null?void 0:h.selectedIds)!=null?t:[],hoveredShapeId:null,erasingShapeIds:[],hintingShapeIds:[],focusedGroupId:null,meta:{},id:`instance_page_state:page:${p}`,pageId:`page:${p}`,typeName:"instance_page_state"});let m=(n=u.shapes)!=null?n:{},f=0;for(let v of Object.keys(m)){let b=m[v],r=b,{point:T,rotation:y,style:x,type:P}=r,k=Ae(r,["point","rotation","style","type"]);o.push({x:(s=T==null?void 0:T[0])!=null?s:0,y:(l=T==null?void 0:T[1])!=null?l:0,rotation:y!=null?y:0,isLocked:(a=b.isLocked)!=null?a:!1,opacity:(c=x==null?void 0:x.opacity)!=null?c:1,meta:{},id:`shape:${v}`,parentId:`page:${p}`,type:P,props:S(S({},k),x),index:`a${f+1}`,typeName:"shape"}),f++}e++}return{tldrawFileFormatVersion:1,schema:wy,records:o}}function lh(i){var a,p;let o=(a=i.records)!=null?a:[],e=o.find(u=>u.typeName==="document");if(e!=null&&e.telvaDocument)return e.telvaDocument;let t=o.filter(u=>u.typeName==="page"),n=o.filter(u=>u.typeName==="shape"),r=o.filter(u=>u.typeName==="instance_page_state"),s={},l={};for(let u of t){let h=u.id.startsWith("page:")?u.id.slice(5):u.id,g={};for(let f of n){let v=`page:${h}`;if(f.parentId!==v&&f.parentId!==h)continue;let b=f.id.startsWith("shape:")?f.id.slice(6):f.id,{props:T={},x:y,y:x,rotation:P,type:k}=f,c=T,{opacity:D,start:C,end:E,bend:M,arrowheadStart:L,arrowheadEnd:V}=c,X=Ae(c,["opacity","start","end","bend","arrowheadStart","arrowheadEnd"]),se=S({id:b,type:k,point:[y!=null?y:0,x!=null?x:0],rotation:P!=null?P:0,style:S({opacity:D!=null?D:1},X)},X);if(k==="arrow"){let G=(C==null?void 0:C.x)!==void 0?[C.x,C.y]:[0,0],ne=(E==null?void 0:E.x)!==void 0?[E.x,E.y]:[1,1],pe=typeof M=="number"?M:0,he=[(G[0]+ne[0])/2,(G[1]+ne[1])/2];se.handles={start:{id:"start",index:0,point:G,canBind:!0,bindingId:C!=null&&C.boundShapeId?Object.keys(g).find(()=>!0):void 0},bend:{id:"bend",index:1,point:he},end:{id:"end",index:2,point:ne,canBind:!0,bindingId:E!=null&&E.boundShapeId?E.boundShapeId:void 0}},se.bend=pe,(L||V)&&(se.decorations={start:L&&L!=="none"?L:void 0,end:V&&V!=="none"?V:void 0})}g[b]=se}s[h]={id:h,name:u.name||"Page",shapes:g,bindings:{}};let m=r.find(f=>f.pageId===`page:${h}`||f.pageId===h);l[h]={id:h,selectedIds:(p=m==null?void 0:m.selectedShapeIds)!=null?p:[],camera:{point:[0,0],zoom:1}}}if(Object.keys(s).length===0){let u="page";s[u]={id:u,name:"Page 1",shapes:{},bindings:{}},l[u]={id:u,selectedIds:[],camera:{point:[0,0],zoom:1}}}return{id:"document",name:(e==null?void 0:e.name)||"Imported Document",version:15,pages:s,pageStates:l,assets:{}}}function ia(i,o,e,t){return F(this,null,function*(){let n=t==="tld"?".tld":Wa,r,s;if(t==="tld"){let u=ah(i);r=JSON.stringify(u,null,2),s="application/vnd.tldraw+json"}else{let u={name:i.name||"New Document",fileHandle:o!=null?o:null,document:i};r=JSON.stringify(u,null,2),s="application/vnd.Telva+json"}let l=new Blob([r],{type:s});if(o&&!(yield Cy(o)))return null;let a=i.name||"New Document",c=!Jo.supported&&(e==null?void 0:e.length)?e:a,p=yield(0,Jo.fileSave)(l,{fileName:`${c}${n}`,description:t==="tld"?"TLDraw File":"Telva File",extensions:[n]},o);return yield oa(p),p})}function Ml(){return F(this,null,function*(){var r,s;let i=yield(0,Jo.fileOpen)({description:"Telva / TLDraw File",extensions:[Wa,".tld"],multiple:!1});if(!i)return null;let o=yield new Promise(l=>{let a=new FileReader;a.onloadend=()=>{a.readyState===FileReader.DONE&&l(a.result)},a.readAsText(i,"utf8")}),e=JSON.parse(o);if("tldrawFileFormatVersion"in e){let l=(r=i.handle)!=null?r:null;return yield oa(l),{fileHandle:l,document:lh(e)}}if("telvaFileFormatVersion"in e)return alert("This file was created in a newer version of Telva. Please visit beta.telva.com to open it."),null;let t=e,n=(s=i.handle)!=null?s:null;return yield oa(n),{fileHandle:n,document:t.document}})}function Ll(){return F(this,null,function*(){return(0,Jo.fileOpen)({description:"Image or Video",extensions:[...Qi,...es],multiple:!0})})}function Al(i){return new Promise((o,e)=>{if(i){let t=new FileReader;t.readAsDataURL(i),t.onload=()=>o(t.result),t.onerror=n=>e(n),t.onabort=n=>e(n)}})}function Vl(i){return new Promise((o,e)=>{if(i){let t=new FileReader;t.readAsText(i),t.onload=()=>o(t.result),t.onerror=n=>e(n),t.onabort=n=>e(n)}})}function Hl(i){return new Promise((o,e)=>{let t=new Image;t.onload=()=>o([t.width,t.height]),t.onerror=()=>e(new Error("Could not get image size")),t.src=i})}function zl(i){return new Promise((o,e)=>{let t=document.createElement("video");t.onloadedmetadata=()=>o([t.videoWidth,t.videoHeight]),t.onerror=()=>e(new Error("Could not get video size")),t.src=i})}Ai(Mr,require("browser-fs-access"));var jn=require("telva-core"),Ie=require("telva-vec");var He=class{constructor(o){this.app=o}};var sa=class extends He{constructor(e,t,n,r=!1){var p,u,h;super(e);d(this,"type","arrow");d(this,"performanceMode");d(this,"status","translatingHandle");d(this,"newStartBindingId",jn.Utils.uniqueId());d(this,"draggedBindingId",jn.Utils.uniqueId());d(this,"didBind",!1);d(this,"initialShape");d(this,"handleId");d(this,"bindableShapeIds");d(this,"initialBinding");d(this,"startBindingShapeId");d(this,"isCreate");d(this,"start",()=>{});d(this,"update",()=>{var k,D,C;let{initialShape:e}=this,{currentPoint:t,shiftKey:n,altKey:r,metaKey:s,currentGrid:l,settings:{showGrid:a}}=this.app,c=this.app.getShape(e.id);if(c.isLocked)return;let{handles:p}=e,u=this.handleId;if(!p[u].canBind)return;let h=Ie.Vec.sub(t,Ie.Vec.add(p[u].point,e.point));if(n){let E=r?Ie.Vec.med(p.start.point,p.end.point):p[u==="start"?"end":"start"].point,M=p[u].point,L=Ie.Vec.add(M,h),V=Ie.Vec.angle(E,L),X=Ie.Vec.rotWith(L,E,jn.Utils.snapAngleToSegments(V,24)-V);h=Ie.Vec.add(h,Ie.Vec.sub(X,L))}let g=Ie.Vec.add(p[u].point,h),m={[u]:I(S({},p[u]),{point:a?Ie.Vec.snap(g,l):Ie.Vec.toFixed(g),bindingId:void 0})},f=kn["arrow"],v=(k=f.onHandleChange)==null?void 0:k.call(f,e,m);if(!v)return;let b={shape:jn.Utils.deepMerge(c,v),bindings:{}},T,y=b.shape.handles[this.handleId],x=b.shape.handles[this.handleId==="start"?"end":"start"];if(this.startBindingShapeId){let E,M=this.app.page.shapes[this.startBindingShapeId],L=B.getShapeUtil(M),V=L.getCenter(M),X=b.shape.handles.start,se=b.shape.handles.end,G=Ie.Vec.add(X.point,b.shape.point);Ie.Vec.isEqual(G,V)&&G[1]++;let ne=V,pe=L.hitTestPoint(M,t),he=Ie.Vec.uni(Ie.Vec.sub(G,ne)),Me=this.app.getBinding(this.newStartBindingId)!==void 0;!s&&!L.hitTestPoint(M,Ie.Vec.add(b.shape.point,se.point))&&(E=this.findBindingPoint(c,M,"start",this.newStartBindingId,V,ne,he,pe)),E&&!Me?(this.didBind=!0,b.bindings[this.newStartBindingId]=E,b.shape=jn.Utils.deepMerge(b.shape,{handles:{start:{bindingId:E.id}}})):!E&&Me&&(this.didBind=!1,b.bindings[this.newStartBindingId]=void 0,b.shape=jn.Utils.deepMerge(e,{handles:{start:{bindingId:void 0}}}))}if(!s){let E=Ie.Vec.add(x.point,b.shape.point),M=Ie.Vec.add(y.point,b.shape.point),L=Ie.Vec.uni(Ie.Vec.sub(M,E)),V=Ie.Vec.add(b.shape.point,b.shape.handles.start.point),X=Ie.Vec.add(b.shape.point,b.shape.handles.end.point),se=this.bindableShapeIds.map(G=>this.app.page.shapes[G]).sort((G,ne)=>ne.childIndex-G.childIndex).filter(G=>{if(G.isLocked)return!1;let ne=B.getShapeUtil(G);return![V,X].every(pe=>ne.hitTestPoint(G,pe))});for(let G of se)if(T=this.findBindingPoint(c,G,this.handleId,this.draggedBindingId,M,E,L,r),T)break}if(T)this.didBind=!0,b.bindings[this.draggedBindingId]=T,b.shape=jn.Utils.deepMerge(b.shape,{handles:{[this.handleId]:{bindingId:this.draggedBindingId}}});else{this.didBind=this.didBind||!1;let E=c.handles[this.handleId].bindingId;E!==void 0&&(b.bindings[E]=void 0,b.shape=jn.Utils.deepMerge(b.shape,{handles:{[this.handleId]:{bindingId:void 0}}}))}let P=(C=(D=B.getShapeUtil(b.shape)).onHandleChange)==null?void 0:C.call(D,b.shape,b.shape.handles);return{document:{pages:{[this.app.currentPageId]:{shapes:{[c.id]:S(S({},b.shape),P!=null?P:{})},bindings:b.bindings}},pageStates:{[this.app.currentPageId]:{bindingId:b.shape.handles[u].bindingId}}}}});d(this,"cancel",()=>{let{initialShape:e,initialBinding:t,newStartBindingId:n,draggedBindingId:r}=this,s=B.onSessionComplete(this.app.page.shapes[e.id]),l=this.isCreate||Ie.Vec.dist(s.handles.start.point,s.handles.end.point)<4,a={};return a[r]=void 0,t&&(a[t.id]=l?void 0:t),n&&(a[n]=void 0),{document:{pages:{[this.app.currentPageId]:{shapes:{[e.id]:l?void 0:e},bindings:a}},pageStates:{[this.app.currentPageId]:{selectedIds:l?[]:[e.id],bindingId:void 0,hoveredId:void 0,editingId:void 0}}}}});d(this,"complete",()=>{let{initialShape:e,initialBinding:t,newStartBindingId:n,startBindingShapeId:r,handleId:s}=this,l=B.onSessionComplete(this.app.page.shapes[e.id]),a=l.handles[s].bindingId,c=Ie.Vec.dist(l.handles.start.point,l.handles.end.point);if(!(a||t)&&c<4)return this.cancel();let p={},u={};return t&&(p[t.id]=this.isCreate?void 0:t,u[t.id]=void 0),a&&(p[a]=void 0,u[a]=this.app.page.bindings[a]),r&&(p[n]=void 0,u[n]=this.app.page.bindings[n]),{id:"arrow",before:{document:{pages:{[this.app.currentPageId]:{shapes:{[e.id]:this.isCreate?void 0:e},bindings:p}},pageStates:{[this.app.currentPageId]:{selectedIds:this.isCreate?[]:[e.id],bindingId:void 0,hoveredId:void 0,editingId:void 0}}}},after:{document:{pages:{[this.app.currentPageId]:{shapes:{[e.id]:l},bindings:u}},pageStates:{[this.app.currentPageId]:{selectedIds:[e.id],bindingId:void 0,hoveredId:void 0,editingId:void 0}}}}}});d(this,"findBindingPoint",(e,t,n,r,s,l,a,c)=>{let u=B.getShapeUtil(t.type).getBindingPoint(t,e,s,l,a,c);if(!!u)return{id:r,type:"arrow",fromId:e.id,toId:t.id,handleId:n,point:Ie.Vec.toFixed(u.point),distance:u.distance}});this.isCreate=r;let{currentPageId:s}=e.state.appState,l=e.state.document.pages[s];this.handleId=n,this.initialShape=mt(l.shapes[t]),this.bindableShapeIds=B.getBindableShapeIds(e.state).filter(g=>!(g===this.initialShape.id||g===this.initialShape.parentId));let a=(p=this.initialShape.handles[n==="start"?"end":"start"])==null?void 0:p.bindingId;if(a){let g=(u=l.bindings[a])==null?void 0:u.toId;g&&(this.bindableShapeIds=this.bindableShapeIds.filter(m=>m!==g))}let{originPoint:c}=this.app;if(this.isCreate)this.startBindingShapeId=(h=this.bindableShapeIds.map(g=>l.shapes[g]).filter(g=>!g.isLocked&&jn.Utils.pointInBounds(c,B.getShapeUtil(g).getBounds(g))).sort((g,m)=>m.childIndex-g.childIndex)[0])==null?void 0:h.id,this.startBindingShapeId&&this.bindableShapeIds.splice(this.bindableShapeIds.indexOf(this.startBindingShapeId),1);else{let g=this.initialShape.handles[this.handleId].bindingId;g?this.initialBinding=l.bindings[g]:this.initialShape.handles[this.handleId].bindingId=void 0}}};var Fl=require("telva-core");var aa=class extends He{constructor(e){super(e);d(this,"type","brush");d(this,"performanceMode");d(this,"status","brushing");d(this,"initialSelectedIds");d(this,"shapesToTest");d(this,"start",()=>{});d(this,"update",()=>{let{initialSelectedIds:e,shapesToTest:t,app:{metaKey:n,settings:r,originPoint:s,currentPoint:l}}=this,a=Fl.Utils.getBoundsFromPoints([s,l]),c=r.isCadSelectMode?!n&&s[0]<l[0]:n,p=new Set,u=new Set(e);t.forEach(({id:f,selectId:v})=>{let b=this.app.getShape(f);if(!p.has(v)){let T=this.app.getShapeUtil(b);(c?Fl.Utils.boundsContain(a,T.getBounds(b)):T.hitTestBounds(b,a))?(p.add(v),u.has(v)||u.add(v)):u.has(v)&&u.delete(v)}});let h=this.app.selectedIds,g=u.size!==h.length||h.some(f=>!u.has(f)),m=g?Array.from(u.values()):h;return g?{appState:{selectByContain:c},document:{pageStates:{[this.app.currentPageId]:{brush:a,selectedIds:m}}}}:{appState:{selectByContain:c},document:{pageStates:{[this.app.currentPageId]:{brush:a}}}}});d(this,"cancel",()=>({appState:{selectByContain:!1},document:{pageStates:{[this.app.currentPageId]:{brush:null,selectedIds:Array.from(this.initialSelectedIds.values())}}}}));d(this,"complete",()=>({appState:{selectByContain:!1},document:{pageStates:{[this.app.currentPageId]:{brush:null,selectedIds:[...this.app.selectedIds]}}}}));let{currentPageId:t}=e;this.initialSelectedIds=new Set(this.app.selectedIds),this.shapesToTest=this.app.shapes.filter(n=>!(n.isLocked||n.isHidden||n.parentId!==t||this.initialSelectedIds.has(n.id)||this.initialSelectedIds.has(n.parentId))).map(n=>({id:n.id,bounds:this.app.getShapeUtil(n).getBounds(n),selectId:n.id})),this.update()}};var Ne=require("telva-vec");var la=class extends He{constructor(e,t){var c;super(e);d(this,"type","draw");d(this,"performanceMode");d(this,"status","creating");d(this,"topLeft");d(this,"points");d(this,"initialShape");d(this,"lastAdjustedPoint");d(this,"shiftedPoints",[]);d(this,"shapeId");d(this,"isLocked");d(this,"isExtending");d(this,"lockedDirection");d(this,"start",()=>{var s;let e=this.app.originPoint,t=[0,0,(s=e[2])!=null?s:.5];this.points.push(t);let n=[Math.min(this.topLeft[0],e[0]),Math.min(this.topLeft[1],e[1])],r=Ne.Vec.sub(n,e);return this.topLeft=n,this.shiftedPoints=this.points.map(l=>Ne.Vec.toFixed(Ne.Vec.sub(l,r)).concat(l[2])),{document:{pages:{[this.app.currentPageId]:{shapes:{[this.shapeId]:{point:this.topLeft,points:this.shiftedPoints}}}},pageStates:{[this.app.currentPageId]:{selectedIds:[this.shapeId]}}}}});d(this,"update",()=>{let{shapeId:e}=this,{currentPoint:t,originPoint:n,shiftKey:r,zoom:s}=this.app;if(!this.lockedDirection&&this.points.length>1){let a=Ne.Vec.sub(t,n);Ne.Vec.len(a)>3/s&&(this.lockedDirection=Math.abs(a[0])>Math.abs(a[1])?"horizontal":"vertical")}if(r){if(!this.isLocked&&this.points.length>2){if(!this.lockedDirection){let c=Ne.Vec.sub(t,n);Ne.Vec.len(c)>3/s&&(this.lockedDirection=Math.abs(c[0])>Math.abs(c[1])?"horizontal":"vertical")}this.isLocked=!0;let a=[...this.lastAdjustedPoint];this.lockedDirection==="vertical"?a[0]=0:a[1]=0,this.points.push(a.concat(t[2]))}}else this.isLocked&&(this.isLocked=!1);this.isLocked&&(this.lockedDirection==="vertical"?t[0]=n[0]:t[1]=n[1]);let l=this.addPoint(t);if(!!l)return{document:{pages:{[this.app.currentPageId]:{shapes:{[e]:l}}},pageStates:{[this.app.currentPageId]:{selectedIds:[e]}}}}});d(this,"cancel",()=>{let{shapeId:e}=this,t=this.app.currentPageId;return{document:{pages:{[t]:{shapes:{[e]:this.isExtending?this.initialShape:void 0}}},pageStates:{[t]:{selectedIds:[]}}}}});d(this,"complete",()=>{let{shapeId:e}=this,t=this.app.currentPageId,n=this.app.getShape(e);return{id:"create_draw",before:{document:{pages:{[t]:{shapes:{[e]:this.isExtending?this.initialShape:void 0}}},pageStates:{[t]:{selectedIds:[]}}}},after:{document:{pages:{[t]:{shapes:{[e]:I(S({},n),{point:Ne.Vec.toFixed(n.point),points:n.points.map(r=>Ne.Vec.toFixed(r)),isComplete:!0})}}},pageStates:{[this.app.currentPageId]:{selectedIds:[]}}}}}});d(this,"addPoint",e=>{let{originPoint:t}=this.app,n=Ne.Vec.toFixed(Ne.Vec.sub(e,t)).concat(e[2]);if(Ne.Vec.isEqual(this.lastAdjustedPoint,n))return;this.points.push(n),this.lastAdjustedPoint=n;let r=[...this.topLeft],s=[Math.min(this.topLeft[0],e[0]),Math.min(this.topLeft[1],e[1])],l=Ne.Vec.sub(s,t),a;return r[0]!==s[0]||r[1]!==s[1]?(this.topLeft=s,a=this.points.map(c=>Ne.Vec.toFixed(Ne.Vec.sub(c,l)).concat(c[2]))):a=[...this.shiftedPoints,Ne.Vec.sub(n,l).concat(n[2])],this.shiftedPoints=a,{point:this.topLeft,points:a}});let{originPoint:n}=this.app;this.shapeId=t,this.initialShape=this.app.getShape(t),this.topLeft=[...this.initialShape.point];let r=[0,0,(c=n[2])!=null?c:.5],s=Ne.Vec.sub(n,this.topLeft),l=this.initialShape.points.map(p=>Ne.Vec.sub(p,s).concat(p[2]));this.isExtending=l.length>0;let a=[];if(this.isExtending){let p=l[l.length-1];if(p){a.push(p,p);let u=Math.floor(Ne.Vec.dist(p,r)/16);if(u>1)for(let h=0;h<u;h++){let g=h/(u-1);a.push(Ne.Vec.lrp(p,r,g).concat(p[2]))}else a.push(r,r)}}else a.push(r);this.points=[...l,...a],this.shiftedPoints=this.points.map(p=>Ne.Vec.add(p,s).concat(p[2])),this.lastAdjustedPoint=this.points[this.points.length-1]}};var da=class extends He{constructor(e,t,n){super(e);d(this,"type","edit");d(this,"performanceMode");d(this,"initialShape");d(this,"initialSelectedIds");d(this,"currentPageId");d(this,"isCreating");d(this,"start",()=>{});d(this,"update",()=>{});d(this,"cancel",()=>({document:{pages:{[this.currentPageId]:{shapes:{[this.initialShape.id]:this.isCreating?void 0:this.initialShape}}},pageStates:{[this.currentPageId]:{selectedIds:this.isCreating?[]:this.initialSelectedIds,editingId:void 0}}}}));d(this,"complete",()=>{let e=this.app.getShape(this.initialShape.id);return{id:"edit",before:{document:{pages:{[this.currentPageId]:{shapes:{[this.initialShape.id]:this.isCreating?void 0:this.initialShape}}},pageStates:{[this.currentPageId]:{selectedIds:this.isCreating?[]:this.initialSelectedIds,editingId:void 0}}}},after:{document:{pages:{[this.currentPageId]:{shapes:{[this.initialShape.id]:e}}},pageStates:{[this.currentPageId]:{selectedIds:[e.id],editingId:void 0}}}}}});this.initialShape=e.getShape(t,e.currentPageId),this.currentPageId=e.currentPageId,this.isCreating=n,this.initialSelectedIds=[...e.selectedIds]}};var Qo=require("telva-vec");var ca=class extends He{constructor(e){super(e);d(this,"type","draw");d(this,"performanceMode");d(this,"status","creating");d(this,"isLocked");d(this,"lockedDirection");d(this,"erasedShapes",new Set);d(this,"erasedBindings",new Set);d(this,"initialSelectedShapes");d(this,"erasableShapes");d(this,"prevPoint");d(this,"prevEraseShapesSize",0);d(this,"interval");d(this,"timestamp1",0);d(this,"timestamp2",0);d(this,"prevErasePoint",[]);d(this,"loop",()=>{let e=Date.now(),t=e-this.timestamp1,n=e-this.timestamp2,{eraseLine:r}=this.app.appState,s=[...r],l=!1;t>16&&this.prevErasePoint!==this.prevPoint&&(l=!0,s=[...r,this.prevPoint],this.prevErasePoint=this.prevPoint),n>32&&s.length>1&&(l=!0,s.splice(0,Math.ceil(s.length*.1)),this.timestamp2=e),l&&this.app.patchState({appState:{eraseLine:s}},"eraseline"),this.interval=requestAnimationFrame(this.loop)});d(this,"start",()=>{});d(this,"update",()=>{let{page:e,shiftKey:t,originPoint:n,currentPoint:r,zoom:s}=this.app;if(t){let p=Qo.Vec.sub(r,n);if(!this.isLocked&&Qo.Vec.len(p)>3/s){if(!this.lockedDirection){let u=Qo.Vec.sub(r,n);this.lockedDirection=Math.abs(u[0])>Math.abs(u[1])?"horizontal":"vertical"}this.isLocked=!0}}else this.isLocked&&(this.isLocked=!1);this.isLocked&&(this.lockedDirection==="vertical"?r[0]=n[0]:r[1]=n[1]);let l=Qo.Vec.toFixed(Qo.Vec.add(n,Qo.Vec.sub(r,n))),a=new Set([]);this.erasableShapes.forEach(p=>{if(!this.erasedShapes.has(p)&&this.app.getShapeUtil(p).hitTestLineSegment(p,this.prevPoint,l)&&(this.erasedShapes.add(p),a.add(p.id),p.children!==void 0))for(let u of p.children)this.erasedShapes.add(this.app.getShape(u)),a.add(u)}),Object.values(e.bindings).forEach(p=>{for(let u of[p.toId,p.fromId])a.has(u)&&this.erasedBindings.add(p)}),this.erasedShapes.forEach(p=>{this.app.getShape(p.id)||(this.erasedShapes.delete(p),this.erasableShapes.delete(p),a.delete(p.id))});let c=Array.from(this.erasedShapes.values());if(this.prevPoint=l,c.length!==this.prevEraseShapesSize)return this.prevEraseShapesSize=c.length,{document:{pages:{[e.id]:{shapes:Object.fromEntries(c.map(p=>[p.id,{isGhost:!0}]))}}}}});d(this,"cancel",()=>{let{page:e}=this.app;cancelAnimationFrame(this.interval),this.erasedShapes.forEach(n=>{this.app.getShape(n.id)||(this.erasedShapes.delete(n),this.erasableShapes.delete(n))});let t=Array.from(this.erasedShapes.values());return{document:{pages:{[e.id]:{shapes:Object.fromEntries(t.map(n=>[n.id,{isGhost:!1}]))}},pageStates:{[e.id]:{selectedIds:this.initialSelectedShapes.map(n=>n.id)}}},appState:{eraseLine:[]}}});d(this,"complete",()=>{let{page:e}=this.app;cancelAnimationFrame(this.interval),this.erasedShapes.forEach(c=>{this.app.getShape(c.id)||(this.erasedShapes.delete(c),this.erasableShapes.delete(c))}),this.erasedBindings.forEach(c=>{this.app.getBinding(c.id)||this.erasedBindings.delete(c)});let t=Array.from(this.erasedShapes.values()),n=Array.from(this.erasedBindings.values()),r=t.map(c=>c.id),s=n.map(c=>c.id),l={shapes:Object.fromEntries(t.map(c=>[c.id,c])),bindings:Object.fromEntries(n.map(c=>[c.id,c]))},a={shapes:Object.fromEntries(t.map(c=>[c.id,void 0])),bindings:Object.fromEntries(n.map(c=>[c.id,void 0]))};return this.app.shapes.forEach(c=>{c.handles&&!a.shapes[c.id]&&Object.values(c.handles).forEach(p=>{var u,h;p.bindingId&&s.includes(p.bindingId)&&(l.shapes[c.id]=I(S({},l.shapes[c.id]),{handles:I(S({},(u=l.shapes[c.id])==null?void 0:u.handles),{[p.id]:p})}),r.includes(c.id)||(a.shapes[c.id]=I(S({},a.shapes[c.id]),{handles:I(S({},(h=a.shapes[c.id])==null?void 0:h.handles),{[p.id]:I(S({},p),{bindingId:void 0})})})))})}),{id:"erase",before:{document:{pages:{[e.id]:l},pageStates:{[e.id]:{selectedIds:this.initialSelectedShapes.filter(c=>!!this.app.getShape(c.id)).map(c=>c.id)}}},appState:{eraseLine:[]}},after:{document:{pages:{[e.id]:a},pageStates:{[e.id]:{selectedIds:this.initialSelectedShapes.filter(c=>!!this.app.getShape(c.id)).filter(c=>!r.includes(c.id)).map(c=>c.id)}}},appState:{eraseLine:[]}}}});this.prevPoint=[...e.originPoint],this.initialSelectedShapes=this.app.selectedIds.map(t=>this.app.getShape(t)),this.erasableShapes=new Set(this.app.shapes.filter(t=>!t.isLocked)),this.interval=this.loop()}};var Ol=require("telva-core"),$l=require("telva-vec");var pa=class extends He{constructor(e,t){var n;super(e);d(this,"type","grid");d(this,"performanceMode");d(this,"status","translating");d(this,"shape");d(this,"bounds");d(this,"initialSelectedIds");d(this,"initialSiblings");d(this,"grid",{});d(this,"columns",1);d(this,"rows",1);d(this,"isCopying",!1);d(this,"start",()=>{});d(this,"update",()=>{let{currentPageId:e,altKey:t,shiftKey:n,currentPoint:r}=this.app,s={},l={},a=Ol.Utils.getBoundsCenter(this.bounds),c=$l.Vec.sub(r,a);n&&(Math.abs(c[0])<Math.abs(c[1])?c[0]=0:c[1]=0);let p=this.bounds.width+32,u=this.bounds.height+32,h=Math.ceil(c[0]/p),g=Math.ceil(c[1]/u),m=Math.min(h,0),f=Math.min(g,0),v=Math.max(h,1),b=Math.max(g,1),T=new Set,y=t;y!==this.isCopying&&(Object.values(this.grid).filter(x=>x!==this.shape.id).forEach(x=>s[x]=void 0),this.grid={"0_0":this.shape.id},this.isCopying=y);for(let x=m;x<v;x++)for(let P=f;P<b;P++){let k=`${x}_${P}`;if(T.add(k),this.grid[k]||x===0&&P===0)continue;let D=this.getClone($l.Vec.add(this.shape.point,[x*p,P*u]),y);s[D.id]=D,this.grid[k]=D.id}if(Object.entries(this.grid).forEach(([x,P])=>{T.has(x)||(s[P]=void 0,delete this.grid[x])}),Object.values(s).length!==0)return this.initialSiblings&&(s[this.shape.parentId]={children:[...this.initialSiblings,...Object.values(this.grid)]}),{document:{pages:{[e]:{shapes:s}},pageStates:{[e]:l}}}});d(this,"cancel",()=>{let{currentPageId:e}=this.app,t={};return Object.values(this.grid).forEach(n=>{t[n]=void 0}),t[this.shape.id]=I(S({},t[this.shape.id]),{point:this.shape.point}),this.initialSiblings&&(t[this.shape.parentId]={children:[...this.initialSiblings,this.shape.id]}),{document:{pages:{[e]:{shapes:t}},pageStates:{[e]:{selectedIds:[this.shape.id]}}}}});d(this,"complete",()=>{let{currentPageId:e}=this.app,t={},n={},r=[];if(Object.values(this.grid).forEach(s=>{t[s]=void 0,n[s]=this.app.getShape(s),r.push(s)}),t[this.shape.id]=this.shape,this.initialSiblings&&(t[this.shape.parentId]={children:[...this.initialSiblings,this.shape.id]},n[this.shape.parentId]={children:[...this.initialSiblings,...Object.values(this.grid)]}),r.length!==1)return{id:"grid",before:{document:{pages:{[e]:{shapes:t}},pageStates:{[e]:{selectedIds:[],hoveredId:void 0}}}},after:{document:{pages:{[e]:{shapes:n}},pageStates:{[e]:{selectedIds:r,hoveredId:void 0}}}}}});d(this,"getClone",(e,t)=>{let n=I(S({},this.shape),{id:Ol.Utils.uniqueId(),point:e});return t||n.type==="sticky"&&(n.text=""),n});this.shape=this.app.getShape(t),this.grid["0_0"]=this.shape.id,this.bounds=this.app.getShapeBounds(t),this.initialSelectedIds=[...this.app.selectedIds],this.shape.parentId!==this.app.currentPageId&&(this.initialSiblings=(n=this.app.getShape(this.shape.parentId).children)==null?void 0:n.filter(r=>r!==this.shape.id))}};var ua=require("telva-vec");var ha=class extends He{constructor(e,t,n,r="move_handle"){super(e);d(this,"type","handle");d(this,"performanceMode");d(this,"status","translatingHandle");d(this,"commandId");d(this,"topLeft");d(this,"shiftKey",!1);d(this,"initialShape");d(this,"handleId");d(this,"start",()=>{});d(this,"update",()=>{var u,h;let{initialShape:e,app:{currentPageId:t,currentPoint:n}}=this,r=this.app.getShape(e.id);if(r.isLocked)return;let s=r.handles,l=this.handleId,a=ua.Vec.sub(n,s[l].point),c={[l]:I(S({},s[l]),{point:ua.Vec.sub(ua.Vec.add(s[l].point,a),r.point)})},p=(h=(u=B.getShapeUtil(r)).onHandleChange)==null?void 0:h.call(u,r,c);if(!!p)return{document:{pages:{[t]:{shapes:{[r.id]:p}}}}}});d(this,"cancel",()=>{let{initialShape:e,app:{currentPageId:t}}=this;return{document:{pages:{[t]:{shapes:{[e.id]:e}}}}}});d(this,"complete",()=>{let{initialShape:e,app:{currentPageId:t}}=this;return{id:this.commandId,before:{document:{pages:{[t]:{shapes:{[e.id]:e}}}}},after:{document:{pages:{[t]:{shapes:{[e.id]:B.onSessionComplete(this.app.getShape(this.initialShape.id))}}}}}}});let{originPoint:s}=e;this.topLeft=[...s],this.handleId=n,this.initialShape=this.app.getShape(t),this.commandId=r}};var Di=require("telva-core"),Gl=require("telva-vec");var ma=class extends He{constructor(e){super(e);d(this,"type","rotate");d(this,"status","transforming");d(this,"performanceMode");d(this,"delta",[0,0]);d(this,"commonBoundsCenter");d(this,"initialAngle");d(this,"initialShapes");d(this,"changes",{});d(this,"start",()=>{});d(this,"update",()=>{let{commonBoundsCenter:e,initialShapes:t,app:{currentPageId:n,currentPoint:r,shiftKey:s}}=this,l={},a=Gl.Vec.angle(e,r)-this.initialAngle;return s&&(a=Di.Utils.snapAngleToSegments(a,24)),t.forEach(({center:c,shape:p})=>{let{rotation:u=0}=p,h=0;s&&(h=Di.Utils.snapAngleToSegments(u,24)-u);let g=B.getRotatedShapeMutation(p,c,e,s?a+h:a);g&&(l[p.id]=g)}),this.changes=l,{document:{pages:{[n]:{shapes:l}}}}});d(this,"cancel",()=>{let{initialShapes:e,app:{currentPageId:t}}=this,n={};return e.forEach(({shape:r})=>n[r.id]=r),{document:{pages:{[t]:{shapes:n}}}}});d(this,"complete",()=>{let{initialShapes:e,app:{currentPageId:t}}=this,n={},r=this.changes;return e.forEach(({shape:{id:s,point:l,rotation:a,handles:c}})=>{n[s]={point:l,rotation:a,handles:c}}),{id:"rotate",before:{document:{pages:{[t]:{shapes:n}}}},after:{document:{pages:{[t]:{shapes:r}}}}}});let{app:{currentPageId:t,pageState:n,originPoint:r}}=this,s=B.getSelectedBranchSnapshot(e.state,t).filter(l=>!l.isLocked);if(s.length===0)throw Error("No selected shapes!");if(e.rotationInfo.selectedIds===n.selectedIds){if(e.rotationInfo.center===void 0)throw Error("We should have a center for rotation!");this.commonBoundsCenter=e.rotationInfo.center}else this.commonBoundsCenter=Di.Utils.getBoundsCenter(Di.Utils.getCommonBounds(s.map(B.getBounds))),e.rotationInfo.selectedIds=n.selectedIds,e.rotationInfo.center=this.commonBoundsCenter;this.initialShapes=s.filter(l=>l.children===void 0).map(l=>({shape:l,center:this.app.getShapeUtil(l).getCenter(l)})),this.initialAngle=Gl.Vec.angle(this.commonBoundsCenter,r)}};var ot=require("telva-core"),er=require("telva-vec");var ga=class extends He{constructor(e,t=ot.TLBoundsCorner.BottomRight,n=!1){super(e);this.transformType=t;this.isCreate=n;d(this,"type","transform");d(this,"performanceMode");d(this,"status","transforming");d(this,"scaleX",1);d(this,"scaleY",1);d(this,"initialShapes");d(this,"initialShapeIds");d(this,"initialSelectedIds");d(this,"shapeBounds");d(this,"hasUnlockedShapes");d(this,"isAllAspectRatioLocked");d(this,"initialCommonBounds");d(this,"snapInfo",{state:"empty"});d(this,"prevPoint",[0,0]);d(this,"speed",1);d(this,"start",()=>{this.snapInfo={state:"ready",bounds:this.app.shapes.filter(e=>!this.initialShapeIds.includes(e.id)).map(e=>ot.Utils.getBoundsWithCenter(B.getRotatedBounds(e)))}});d(this,"update",()=>{let{transformType:e,shapeBounds:t,initialCommonBounds:n,isAllAspectRatioLocked:r,app:{currentPageId:s,pageState:{camera:l},viewport:a,currentPoint:c,previousPoint:p,originPoint:u,shiftKey:h,altKey:g,metaKey:m,currentGrid:f,settings:{isSnapping:v,showGrid:b}}}=this,T={},y=g?er.Vec.mul(er.Vec.sub(c,u),2):er.Vec.sub(c,u),x=ot.Utils.getTransformedBoundingBox(n,e,y,0,h||r);g&&(x=S(S({},x),ot.Utils.centerBounds(x,ot.Utils.getBoundsCenter(n)))),b&&(x=S(S({},x),ot.Utils.snapBoundsToGrid(x,f)));let k=er.Vec.dist(c,p)-this.speed;this.speed=this.speed+k*(k>1?.5:.15);let D=[];if((v&&!m||!v&&m)&&this.speed*l.zoom<10&&this.snapInfo.state==="ready"){let C=ot.Utils.getSnapPoints(ot.Utils.getBoundsWithCenter(x),this.snapInfo.bounds.filter(E=>ot.Utils.boundsContain(a,E)||ot.Utils.boundsCollide(a,E)),5/l.zoom);C&&(D=C.snapLines,x=ot.Utils.getTransformedBoundingBox(n,e,er.Vec.sub(y,C.offset),0,h||r))}return this.scaleX=x.scaleX,this.scaleY=x.scaleY,t.forEach(({initialShape:C,initialShapeBounds:E,transformOrigin:M})=>{let L=ot.Utils.getRelativeTransformedBoundingBox(x,n,E,this.scaleX<0,this.scaleY<0);b&&(L=ot.Utils.snapBoundsToGrid(L,f));let V=B.transform(this.app.getShape(C.id),L,{type:this.transformType,initialShape:C,scaleX:this.scaleX,scaleY:this.scaleY,transformOrigin:M});T[C.id]=V}),{appState:{snapLines:D},document:{pages:{[s]:{shapes:T}}}}});d(this,"cancel",()=>{let{shapeBounds:e,app:{currentPageId:t}}=this,n={};return this.isCreate?e.forEach(r=>n[r.initialShape.id]=void 0):e.forEach(r=>n[r.initialShape.id]=r.initialShape),{appState:{snapLines:[]},document:{pages:{[t]:{shapes:n}},pageStates:{[t]:{selectedIds:this.isCreate?[]:e.map(r=>r.initialShape.id)}}}}});d(this,"complete",()=>{let{isCreate:e,shapeBounds:t,hasUnlockedShapes:n,app:{currentPageId:r}}=this;if(!n)return;if(this.isCreate&&er.Vec.dist(this.app.originPoint,this.app.currentPoint)<2)return this.cancel();let s={},l={},a,c;return e?(a=[],c=[],t.forEach(({initialShape:p})=>{s[p.id]=void 0,l[p.id]=this.app.getShape(p.id)})):(a=this.initialSelectedIds,c=this.initialSelectedIds,t.forEach(({initialShape:p})=>{s[p.id]=p,l[p.id]=this.app.getShape(p.id)})),{id:"transform",before:{appState:{snapLines:[]},document:{pages:{[r]:{shapes:s}},pageStates:{[r]:{selectedIds:a,hoveredId:void 0,editingId:void 0}}}},after:{appState:{snapLines:[]},document:{pages:{[r]:{shapes:l}},pageStates:{[r]:{selectedIds:c,hoveredId:void 0,editingId:void 0}}}}}});this.initialSelectedIds=[...this.app.selectedIds],this.app.rotationInfo.selectedIds=[...this.initialSelectedIds],this.initialShapes=B.getSelectedBranchSnapshot(this.app.state,this.app.currentPageId).filter(a=>!a.isLocked),this.initialShapeIds=this.initialShapes.map(a=>a.id),this.hasUnlockedShapes=this.initialShapes.length>0,this.isAllAspectRatioLocked=this.initialShapes.every(a=>a.isAspectRatioLocked||B.getShapeUtil(a).isAspectRatioLocked);let r=Object.fromEntries(this.initialShapes.map(a=>[a.id,B.getBounds(a)])),s=Object.values(r);this.initialCommonBounds=ot.Utils.getCommonBounds(s);let l=ot.Utils.getBoundsFromPoints(s.map(ot.Utils.getBoundsCenter));this.shapeBounds=this.initialShapes.map(a=>{let c=r[a.id],p=ot.Utils.getBoundsCenter(c),u=(p[0]-l.minX)/l.width,h=(p[1]-l.minY)/l.height;return{initialShape:a,initialShapeBounds:c,transformOrigin:[u,h]}})}};var Pn=require("telva-core"),Ro=require("telva-vec");var fa=class extends He{constructor(e,t,n,r=!1){super(e);d(this,"type","transformSingle");d(this,"status","transforming");d(this,"performanceMode");d(this,"transformType");d(this,"scaleX",1);d(this,"scaleY",1);d(this,"isCreate");d(this,"initialShape");d(this,"initialShapeBounds");d(this,"initialCommonBounds");d(this,"snapInfo",{state:"empty"});d(this,"prevPoint",[0,0]);d(this,"speed",1);d(this,"start",()=>{this.snapInfo={state:"ready",bounds:this.app.shapes.filter(e=>e.id!==this.initialShape.id).map(e=>Pn.Utils.getBoundsWithCenter(B.getRotatedBounds(e)))}});d(this,"update",()=>{let{transformType:e,initialShape:t,initialShapeBounds:n,app:{settings:{isSnapping:r,showGrid:s},currentPageId:l,pageState:{camera:a},viewport:c,currentPoint:p,previousPoint:u,originPoint:h,currentGrid:g,shiftKey:m,altKey:f,metaKey:v}}=this;if(t.isLocked)return;let b={},T=f?Ro.Vec.mul(Ro.Vec.sub(p,h),2):Ro.Vec.sub(p,h),y=this.app.getShape(t.id),x=B.getShapeUtil(y),P=Pn.Utils.getTransformedBoundingBox(n,e,T,y.rotation,m||y.isAspectRatioLocked||x.isAspectRatioLocked);f&&(P=S(S({},P),Pn.Utils.centerBounds(P,Pn.Utils.getBoundsCenter(n)))),s&&(P=S(S({},P),Pn.Utils.snapBoundsToGrid(P,g)));let D=Ro.Vec.dist(p,u)-this.speed;this.speed=this.speed+D*(D>1?.5:.15);let C=[];if((r&&!v||!r&&v)&&!t.rotation&&this.speed*a.zoom<10&&this.snapInfo.state==="ready"){let M=Pn.Utils.getSnapPoints(Pn.Utils.getBoundsWithCenter(P),this.snapInfo.bounds.filter(L=>Pn.Utils.boundsContain(c,L)||Pn.Utils.boundsCollide(c,L)),5/a.zoom);M&&(C=M.snapLines,P=Pn.Utils.getTransformedBoundingBox(n,e,Ro.Vec.sub(T,M.offset),y.rotation,m||y.isAspectRatioLocked||x.isAspectRatioLocked))}let E=B.getShapeUtil(y).transformSingle(y,P,{initialShape:t,type:this.transformType,scaleX:P.scaleX,scaleY:P.scaleY,transformOrigin:[.5,.5]});return E&&(b[y.id]=E),s&&E&&E.point&&(E.point=Ro.Vec.snap(E.point,g)),{appState:{snapLines:C},document:{pages:{[l]:{shapes:b}}}}});d(this,"cancel",()=>{let{initialShape:e,app:{currentPageId:t}}=this,n={};return this.isCreate?n[e.id]=void 0:n[e.id]=e,{appState:{snapLines:[]},document:{pages:{[t]:{shapes:n}},pageStates:{[t]:{selectedIds:this.isCreate?[]:[e.id]}}}}});d(this,"complete",()=>{let{initialShape:e,app:{currentPageId:t}}=this;if(e.isLocked)return;if(this.isCreate&&Ro.Vec.dist(this.app.originPoint,this.app.currentPoint)<2)return this.cancel();let n={},r={};return n[e.id]=this.isCreate?void 0:e,r[e.id]=B.onSessionComplete(this.app.getShape(e.id)),{id:"transform_single",before:{appState:{snapLines:[]},document:{pages:{[t]:{shapes:n}},pageStates:{[t]:{selectedIds:this.isCreate?[]:[e.id],editingId:void 0,hoveredId:void 0}}}},after:{appState:{snapLines:[]},document:{pages:{[t]:{shapes:r}},pageStates:{[t]:{selectedIds:[e.id],editingId:void 0,hoveredId:void 0}}}}}});this.isCreate=r,this.transformType=n;let s=this.app.getShape(t);this.initialShape=s,this.initialShapeBounds=B.getBounds(s),this.initialCommonBounds=B.getRotatedBounds(s),this.app.rotationInfo.selectedIds=[s.id]}};var Ut=require("telva-core"),ze=require("telva-vec");var Sa=class extends He{constructor(e,t=!1,n=!1){super(e);d(this,"performanceMode");d(this,"type","translate");d(this,"status","translating");d(this,"delta",[0,0]);d(this,"prev",[0,0]);d(this,"prevPoint",[0,0]);d(this,"speed",1);d(this,"cloneInfo",{state:"empty"});d(this,"snapInfo",{state:"empty"});d(this,"snapLines",[]);d(this,"isCloning",!1);d(this,"isCreate");d(this,"link");d(this,"initialIds");d(this,"hasUnlockedShapes");d(this,"initialSelectedIds");d(this,"initialCommonBounds");d(this,"initialShapes");d(this,"initialParentChildren");d(this,"bindingsToDelete");d(this,"start",()=>{let{bindingsToDelete:e,initialIds:t,app:{currentPageId:n,page:r}}=this,s=[],l=[];if(Object.values(r.shapes).forEach(p=>{let u=Ut.Utils.getBoundsWithCenter(B.getRotatedBounds(p));s.push(u),t.has(p.id)||l.push(u)}),this.snapInfo={state:"ready",bounds:s,others:l},e.length===0)return;let a={},c={};return e.forEach(p=>{a[p.id]=void 0;let u=this.app.getShape(p.fromId);c[p.fromId]={handles:I(S({},u.handles),{[p.handleId]:I(S({},u.handles[p.handleId]),{bindingId:void 0})})}}),{document:{pages:{[n]:{bindings:a,shapes:c}}}}});d(this,"update",()=>{let{initialParentChildren:e,initialShapes:t,initialCommonBounds:n,bindingsToDelete:r,app:{pageState:{camera:s},settings:{isSnapping:l,showGrid:a},currentPageId:c,viewport:p,selectedIds:u,currentPoint:h,previousPoint:g,originPoint:m,altKey:f,shiftKey:v,metaKey:b,currentGrid:T}}=this,y={},x={},P={},k=ze.Vec.sub(h,m),D=!1;this.isCreate||(f&&!this.isCloning?(this.isCloning=!0,D=!0):!f&&this.isCloning&&(this.isCloning=!1,D=!0)),v&&(Math.abs(k[0])<Math.abs(k[1])?k[0]=0:k[1]=0);let E=ze.Vec.dist(h,g)-this.speed;if(this.speed=this.speed+E*(E>1?.5:.15),this.snapLines=[],(l&&!b||!l&&b)&&this.speed*s.zoom<10&&this.snapInfo.state==="ready"){let M=Ut.Utils.getSnapPoints(Ut.Utils.getBoundsWithCenter(a?Ut.Utils.snapBoundsToGrid(Ut.Utils.translateBounds(n,k),T):Ut.Utils.translateBounds(n,k)),(this.isCloning?this.snapInfo.bounds:this.snapInfo.others).filter(L=>Ut.Utils.boundsContain(p,L)||Ut.Utils.boundsCollide(p,L)),5/s.zoom);M&&(this.snapLines=M.snapLines,k=ze.Vec.sub(k,M.offset))}if(this.prev=k,this.isCloning)if(D){if(this.cloneInfo.state==="empty"&&this.createCloneInfo(),this.cloneInfo.state==="empty")throw Error;let{clones:M,clonedBindings:L}=this.cloneInfo;this.isCloning=!0,r.forEach(V=>y[V.id]=V),t.forEach(V=>x[V.id]={point:V.point}),M.forEach(V=>{var X;if(x[V.id]=S({},V),V.parentId!==c&&!u.includes(V.parentId)){let se=((X=x[V.parentId])==null?void 0:X.children)||e[V.parentId];se.includes(V.id)||(x[V.parentId]=I(S({},x[V.parentId]),{children:[...se,V.id]}))}});for(let V of L)y[V.id]=V;P.selectedIds=M.map(V=>V.id),M.forEach(V=>{x[V.id]=I(S({},V),{point:a?ze.Vec.snap(ze.Vec.toFixed(ze.Vec.add(V.point,k)),T):ze.Vec.toFixed(ze.Vec.add(V.point,k))})})}else{if(this.cloneInfo.state==="empty")throw Error;let{clones:M}=this.cloneInfo;M.forEach(L=>{x[L.id]={point:a?ze.Vec.snap(ze.Vec.toFixed(ze.Vec.add(L.point,k)),T):ze.Vec.toFixed(ze.Vec.add(L.point,k))}})}else if(D){if(this.cloneInfo.state==="empty")throw Error;let{clones:M,clonedBindings:L}=this.cloneInfo;this.isCloning=!1,r.forEach(V=>y[V.id]=void 0),M.forEach(V=>{V.parentId!==c&&(x[V.parentId]=I(S({},x[V.parentId]),{children:e[V.parentId]}))}),M.forEach(V=>x[V.id]=void 0),t.forEach(V=>{x[V.id]={point:a?ze.Vec.snap(ze.Vec.toFixed(ze.Vec.add(V.point,k)),T):ze.Vec.toFixed(ze.Vec.add(V.point,k))}});for(let V of L)y[V.id]=void 0;P.selectedIds=t.map(V=>V.id)}else t.forEach(M=>{x[M.id]={point:a?ze.Vec.snap(ze.Vec.toFixed(ze.Vec.add(M.point,k)),T):ze.Vec.toFixed(ze.Vec.add(M.point,k))}});return{appState:{snapLines:this.snapLines},document:{pages:{[c]:{shapes:x,bindings:y}},pageStates:{[c]:P}}}});d(this,"cancel",()=>{let{initialShapes:e,initialSelectedIds:t,bindingsToDelete:n,app:{currentPageId:r}}=this,s={},l={},a={editingId:void 0,hoveredId:void 0};if(this.isCreate?(e.forEach(({id:c})=>l[c]=void 0),a.selectedIds=[]):(e.forEach(({id:c,point:p,handles:u})=>l[c]=u?I(S({},l[c]),{point:p,handles:u}):I(S({},l[c]),{point:p})),a.selectedIds=t,n.forEach(c=>{s[c.id]=c})),this.cloneInfo.state==="ready"){let{clones:c,clonedBindings:p}=this.cloneInfo;c.forEach(u=>l[u.id]=void 0),p.forEach(u=>s[u.id]=void 0)}return{appState:{snapLines:[]},document:{pages:{[r]:{shapes:l,bindings:s}},pageStates:{[r]:a}}}});d(this,"complete",()=>{let{initialShapes:e,initialParentChildren:t,bindingsToDelete:n,app:{currentPageId:r}}=this,s={},l={},a={},c={};if(this.isCloning){if(this.cloneInfo.state==="empty"&&this.createCloneInfo(),this.cloneInfo.state!=="ready")throw Error;let{clones:p,clonedBindings:u}=this.cloneInfo;p.forEach(h=>{l[h.id]=void 0,c[h.id]=this.app.getShape(h.id),h.parentId!==r&&(l[h.parentId]=I(S({},l[h.parentId]),{children:t[h.parentId]}),c[h.parentId]=I(S({},c[h.parentId]),{children:this.app.getShape(h.parentId).children}))}),u.forEach(h=>{s[h.id]=void 0,a[h.id]=this.app.getBinding(h.id)})}else e.forEach(p=>{l[p.id]=this.isCreate?void 0:I(S({},l[p.id]),{point:p.point}),c[p.id]=S(S({},c[p.id]),this.isCreate?this.app.getShape(p.id):{point:this.app.getShape(p.id).point})});return n.forEach(p=>{var u,h,g,m,f;s[p.id]=p,l[p.fromId]=I(S({},l[p.fromId]),{id:p.fromId,handles:I(S({},(u=l[p.fromId])==null?void 0:u.handles),{[p.handleId]:I(S({},(g=(h=l[p.fromId])==null?void 0:h.handles)==null?void 0:g[p.handleId]),{bindingId:p.id})})}),c[p.fromId]=I(S({},c[p.fromId]),{id:p.fromId,handles:I(S({},c[p.fromId].handles),{[p.handleId]:I(S({},(f=(m=c[p.fromId])==null?void 0:m.handles)==null?void 0:f[p.handleId]),{bindingId:void 0})})})}),n.forEach(p=>a[p.id]=void 0),{id:"translate",before:{appState:{snapLines:[]},document:{pages:{[r]:{shapes:l,bindings:s}},pageStates:{[r]:{selectedIds:this.isCreate?[]:[...this.initialSelectedIds]}}}},after:{appState:{snapLines:[]},document:{pages:{[r]:{shapes:c,bindings:a}},pageStates:{[r]:{selectedIds:[...this.app.selectedIds]}}}}}});d(this,"createCloneInfo",()=>{let{initialShapes:e,initialParentChildren:t,app:{selectedIds:n,currentPageId:r,page:s}}=this,l={},a={},c=[],p=[];e.forEach(h=>{let g=Ut.Utils.uniqueId();t[g]=t[h.id],l[h.id]=g;let m=I(S({},Ut.Utils.deepClone(h)),{id:g,parentId:h.parentId,childIndex:B.getChildIndexAbove(this.app.state,h.id,r)});if(m.type==="video"){let f=document.getElementById(h.id+"_video");f&&(m.currentTime=(f.currentTime+16)%f.duration)}p.push(m)}),p.forEach(h=>{h.children!==void 0&&(h.children=h.children.map(g=>l[g]))}),p.forEach(h=>{n.includes(h.parentId)&&(h.parentId=l[h.parentId])});let u=new Set(Object.keys(l));Object.values(s.bindings).filter(h=>u.has(h.fromId)||u.has(h.toId)).forEach(h=>{if(u.has(h.fromId)&&u.has(h.toId)){let g=Ut.Utils.uniqueId(),m=I(S({},Ut.Utils.deepClone(h)),{id:g,fromId:l[h.fromId]||h.fromId,toId:l[h.toId]||h.toId});a[h.id]=g,c.push(m)}}),p.forEach(h=>{if(h.handles&&h.handles)for(let g in h.handles){let m=h.handles[g];m.bindingId=m.bindingId?a[m.bindingId]:void 0}}),p.forEach(h=>{if(s.shapes[h.id])throw Error("uh oh, we didn't clone correctly")}),this.cloneInfo={state:"ready",clones:p,cloneMap:l,clonedBindings:c}});this.isCreate=t,this.link=n;let{currentPageId:r,selectedIds:s,page:l}=this.app;this.initialSelectedIds=[...s];let a=(n?B.getLinkedShapeIds(this.app.state,r,n,!1):s).map(p=>this.app.getShape(p)).filter(p=>!p.isLocked),c=new Set(a.map(p=>p.id));this.hasUnlockedShapes=a.length>0,this.initialShapes=Array.from(new Set(a.filter(p=>!c.has(p.parentId)).flatMap(p=>p.children?[p,...p.children.map(u=>this.app.getShape(u))]:[p])).values()),this.initialIds=new Set(this.initialShapes.map(p=>p.id)),this.bindingsToDelete=[],Object.values(l.bindings).filter(p=>this.initialIds.has(p.fromId)||this.initialIds.has(p.toId)).forEach(p=>{this.initialIds.has(p.fromId)&&(this.initialIds.has(p.toId)||this.bindingsToDelete.push(p))}),this.initialParentChildren={},this.initialShapes.map(p=>p.parentId).filter(p=>p!==l.id).forEach(p=>{this.initialParentChildren[p]=this.app.getShape(p).children}),this.initialCommonBounds=Ut.Utils.getCommonBounds(this.initialShapes.map(B.getRotatedBounds)),this.app.rotationInfo.selectedIds=[...this.app.selectedIds]}};var Iy={["arrow"]:sa,["brush"]:aa,["draw"]:la,["erase"]:ca,["handle"]:ha,["rotate"]:ma,["transform"]:ga,["transformSingle"]:fa,["translate"]:Sa,["grid"]:pa,["edit"]:da},dh=i=>Iy[i];var ph=require("telva-core"),uh=H(require("telva-vec"));var ch=require("telva-core");var Fe=class extends Jr{constructor(e){super();this.app=e;d(this,"type","select");d(this,"previous");d(this,"status","idle");d(this,"setStatus",e=>{this.status=e,this.app.setStatus(this.status)});d(this,"onEnter",()=>{this.setStatus("idle")});d(this,"onExit",()=>{this.setStatus("idle")});d(this,"onCancel",()=>{this.status==="idle"?this.app.selectTool("select"):this.setStatus("idle"),this.app.cancelSession()});d(this,"getNextChildIndex",()=>{let{shapes:e,appState:{currentPageId:t}}=this.app;return e.length===0?1:e.filter(n=>n.parentId===t).sort((n,r)=>r.childIndex-n.childIndex)[0].childIndex+1});d(this,"onPinchStart",()=>{this.app.cancelSession(),this.setStatus("pinching")});d(this,"onPinchEnd",()=>{ch.Utils.isMobileSafari()&&this.app.undoSelect(),this.setStatus("idle")});d(this,"onPinch",(e,t)=>{var n;this.status==="pinching"&&(isNaN(e.delta[0])||isNaN(e.delta[1])||(this.app.pinchZoom(e.point,e.delta,e.delta[2]),(n=this.onPointerMove)==null||n.call(this,e,t)))});d(this,"onKeyDown",e=>{if(e==="Escape"){this.onCancel();return}if(e==="Meta"||e==="Control"||e==="Alt"){this.app.updateSession();return}});d(this,"onKeyUp",e=>{if(e==="Meta"||e==="Control"||e==="Alt"){this.app.updateSession();return}});d(this,"onPointerMove",()=>{this.status==="creating"&&this.app.updateSession()});d(this,"onPointerUp",()=>{if(this.status==="creating"){this.app.completeSession();let{isToolLocked:e}=this.app.appState;e||this.app.selectTool("select")}this.setStatus("idle")})}};var Lr=class extends Fe{constructor(){super(...arguments);d(this,"type","arrow");d(this,"onPointerDown",()=>{if(this.status!=="idle")return;let{currentPoint:e,currentGrid:t,settings:{showGrid:n},appState:{currentPageId:r,currentStyle:s}}=this.app,l=this.getNextChildIndex(),a=ph.Utils.uniqueId(),c=xr.create({id:a,parentId:r,childIndex:l,point:n?uh.default.snap(e,t):e,style:S({},s)});this.app.patchCreate([c]),this.app.startSession("arrow",c.id,"end",!0),this.setStatus("creating")})}};var hh=require("telva-core");var Vr=class extends Fe{constructor(){super(...arguments);d(this,"type","draw");d(this,"lastShapeId");d(this,"onEnter",()=>{this.lastShapeId=void 0});d(this,"onCancel",()=>{switch(this.status){case"idle":{this.app.selectTool("select");break}default:{this.setStatus("idle");break}}this.app.cancelSession()});d(this,"onPointerDown",e=>{if(this.status!=="idle"||this.app.readOnly)return;let{currentPoint:t,appState:{currentPageId:n,currentStyle:r}}=this.app,s=this.lastShapeId&&this.app.getShape(this.lastShapeId);if(e.shiftKey&&s)this.app.startSession("draw",s.id),this.setStatus("extending");else{let l=this.getNextChildIndex(),a=hh.Utils.uniqueId(),c=Fs.create({id:a,parentId:n,childIndex:l,point:t,style:S({},r)});this.lastShapeId=a,this.app.patchCreate([c]),this.app.startSession("draw",a),this.setStatus("creating")}});d(this,"onPointerMove",()=>{if(!this.app.readOnly)switch(this.status){case"extending":case"creating":this.app.updateSession()}});d(this,"onPointerUp",()=>{this.app.completeSession(),this.setStatus("idle")})}};var ya=require("telva-core"),mh=H(require("telva-vec"));var Hr=class extends Fe{constructor(){super(...arguments);d(this,"type","ellipse");d(this,"onPointerDown",()=>{if(this.app.readOnly||this.status!=="idle")return;let{currentPoint:e,currentGrid:t,settings:{showGrid:n},appState:{currentPageId:r,currentStyle:s}}=this.app,l=this.getNextChildIndex(),a=ya.Utils.uniqueId(),c=zs.create({id:a,parentId:r,childIndex:l,point:n?mh.default.snap(e,t):e,style:S({},s)});this.app.patchCreate([c]),this.app.startSession("transformSingle",c.id,ya.TLBoundsCorner.BottomRight,!0),this.setStatus("creating")})}};var gh=H(require("telva-vec"));var zr=class extends Fe{constructor(){super(...arguments);d(this,"type","erase");d(this,"status","idle");d(this,"onPointerDown",()=>{this.app.readOnly||this.status==="idle"&&this.setStatus("pointing")});d(this,"onPointerMove",e=>{if(!this.app.readOnly)switch(this.status){case"pointing":{gh.default.dist(e.origin,e.point)>3&&(this.app.startSession("erase"),this.app.updateSession(),this.setStatus("erasing"));break}case"erasing":this.app.updateSession()}});d(this,"onPointerUp",()=>{if(!this.app.readOnly){switch(this.status){case"pointing":{let e=this.app.shapes.filter(t=>!t.isLocked).filter(t=>this.app.getShapeUtil(t).hitTestPoint(t,this.app.currentPoint)).flatMap(t=>t.children?[t.id,...t.children]:t.id);this.app.delete(e);break}case"erasing":this.app.completeSession()}this.setStatus("idle")}});d(this,"onCancel",()=>{this.status==="idle"?this.previous?this.app.selectTool(this.previous):this.app.selectTool("select"):this.setStatus("idle"),this.app.cancelSession()})}};var fh=require("telva-core"),Sh=H(require("telva-vec"));var Fr=class extends Fe{constructor(){super(...arguments);d(this,"type","line");d(this,"onPointerDown",()=>{if(this.app.readOnly||this.status!=="idle")return;let{currentPoint:e,currentGrid:t,settings:{showGrid:n},appState:{currentPageId:r,currentStyle:s}}=this.app,l=this.getNextChildIndex(),a=fh.Utils.uniqueId(),c=xr.create({id:a,parentId:r,childIndex:l,point:n?Sh.default.snap(e,t):e,decorations:{start:void 0,end:void 0},style:S({},s)});this.app.patchCreate([c]),this.app.startSession("arrow",c.id,"end",!0),this.setStatus("creating")})}};var yh=require("telva-core"),mn=H(require("telva-vec"));var Py=4,Or=class extends Fe{constructor(){super(...arguments);d(this,"type","pen");d(this,"currentShapeId");d(this,"downPoint");d(this,"currentSegmentIdx",0);d(this,"onEnter",()=>{this.currentShapeId=void 0,this.downPoint=void 0,this.currentSegmentIdx=0,this.setStatus("idle")});d(this,"onExit",()=>{this.currentShapeId&&this.finishShape(),this.currentShapeId=void 0,this.downPoint=void 0,this.currentSegmentIdx=0,this.setStatus("idle")});d(this,"onCancel",()=>{this.currentShapeId&&(this.app.delete([this.currentShapeId]),this.currentShapeId=void 0),this.downPoint=void 0,this.currentSegmentIdx=0,this.setStatus("idle")});d(this,"onPointerDown",e=>{if(this.app.readOnly||e.spaceKey)return;let t=this.app.getPagePoint(e.point);if(this.downPoint=t,this.status==="idle"||!this.currentShapeId){this.startNewShape(t),this.setStatus("placing");return}if(this.status==="drawing"){if(this.isNearFirstNode(t)){let r=this.getShape();if(r&&r.segments.length>=2){let{segments:s,offset:l}=tl(r.segments,!0);this.app.updateShapes({id:r.id,point:mn.default.add(r.point,l),segments:s,isClosed:!0,isComplete:!0,isPlacingHandle:!1}),this.app.select(r.id),this.currentShapeId=void 0,this.downPoint=void 0,this.setStatus("idle");return}}let n=this.toLocal(t);this.addSegment(n),this.setPreview(t,!0),this.setStatus("placing")}});d(this,"onPointerMove",e=>{if(this.app.readOnly||e.spaceKey||!this.currentShapeId)return;let t=this.app.getPagePoint(e.point);if(this.status==="drawing"){this.setPreview(t,!1);return}if(this.status==="placing"&&this.downPoint)if(this.setPreview(t,!0),mn.default.dist(t,this.downPoint)>Py){let r=this.getShape();if(!r||r.segments.length===0)return;let s=r.segments[r.segments.length-1].point,l=mn.default.sub(this.downPoint,r.point),a=mn.default.sub(mn.default.sub(t,r.point),l),c=mn.default.add(s,a),p=pi(s,c);this.updateLastSegmentHandles(p,c)}else this.updateLastSegmentHandles(void 0,void 0)});d(this,"onPointerUp",e=>{if(!this.app.readOnly&&this.status==="placing"){let t=this.app.getPagePoint(e.point);this.setPreview(t,!1),this.downPoint=void 0,this.setStatus("drawing")}});d(this,"onDoubleClickCanvas",()=>{if(!this.app.readOnly&&this.currentShapeId){let e=this.getShape();if(e&&e.segments.length>1){let t=e.segments.slice(0,-1);this.patchCurrentShape({segments:t})}this.finishShape(),this.setStatus("idle")}});d(this,"onKeyDown",(e,t,n)=>{switch(e){case"Escape":{this.onCancel();break}case"Enter":{this.currentShapeId&&(this.finishShape(),this.setStatus("idle"));break}}})}getShape(){if(!!this.currentShapeId)return this.app.getShape(this.currentShapeId)}get currentSegments(){var e,t;return(t=(e=this.getShape())==null?void 0:e.segments)!=null?t:[]}patchCurrentShape(e){let t=this.getShape();!t||this.app.patchState({document:{pages:{[this.app.currentPageId]:{shapes:{[t.id]:e}}}}})}setPreview(e,t){let n=this.getShape();if(!n)return;let r=mn.default.sub(e,n.point);this.patchCurrentShape({previewPoint:r,isPlacingHandle:t})}startNewShape(e){let{appState:{currentPageId:t,currentStyle:n}}=this.app,r=yh.Utils.uniqueId(),s=this.getNextChildIndex(),l={point:[0,0]},a={id:r,type:"pen",name:"Pen",parentId:t,childIndex:s,point:e,rotation:0,style:S({},n),segments:[l],isClosed:!1,isComplete:!1,previewPoint:[0,0],isPlacingHandle:!0};this.currentShapeId=r,this.currentSegmentIdx=0,this.app.patchCreate([a])}addSegment(e,t,n){let r=this.getShape();if(!r)return;let s={point:e,cp1:t,cp2:n},l=[...r.segments,s];this.currentSegmentIdx=l.length-1,this.patchCurrentShape({segments:l})}updateLastSegmentHandles(e,t){let n=this.getShape();if(!n||n.segments.length===0)return;let r=[...n.segments],s=r[r.length-1];r[r.length-1]=I(S({},s),{cp1:e,cp2:t}),this.patchCurrentShape({segments:r})}toLocal(e){let t=this.getShape();return t?mn.default.sub(e,t.point):e}isNearFirstNode(e){var r;let t=this.getShape();if(!t||t.segments.length<2)return!1;let n=mn.default.add(t.point,t.segments[0].point);return mn.default.dist(e,n)<=10/((r=this.app.zoom)!=null?r:1)}finishShape(){let e=this.currentShapeId;if(!e)return;let t=this.app.getShape(e);if(!t)return;let{segments:n,offset:r}=tl(t.segments,t.isClosed),s=mn.default.add(t.point,r);this.app.updateShapes({id:e,point:s,segments:n,isComplete:!0,isPlacingHandle:!1}),this.app.select(e),this.currentShapeId=void 0,this.downPoint=void 0,this.currentSegmentIdx=0}};var ba=require("telva-core"),bh=H(require("telva-vec"));var $r=class extends Fe{constructor(){super(...arguments);d(this,"type","rectangle");d(this,"onPointerDown",()=>{if(this.app.readOnly||this.status!=="idle")return;let{currentPoint:e,currentGrid:t,settings:{showGrid:n},appState:{currentPageId:r,currentStyle:s}}=this.app,l=this.getNextChildIndex(),a=ba.Utils.uniqueId(),c=Vs.create({id:a,parentId:r,childIndex:l,point:n?bh.default.snap(e,t):e,style:S({},s)});this.app.patchCreate([c]),this.app.startSession("transformSingle",c.id,ba.TLBoundsCorner.BottomRight,!0),this.setStatus("creating")})}};var Gr=require("telva-core"),Wn=H(require("telva-vec"));var jr=class extends Fe{constructor(){super(...arguments);d(this,"type","select");d(this,"pointedId");d(this,"selectedGroupId");d(this,"pointedHandleId");d(this,"pointedBoundsHandle");d(this,"pointedLinkHandleId");d(this,"onEnter",()=>{this.setStatus("idle")});d(this,"onExit",()=>{this.setStatus("idle")});d(this,"clonePaint",e=>{if(this.app.selectedIds.length===0)return;let t=this.app.selectedIds.map(p=>this.app.getShape(p)),n=Gr.Utils.expandBounds(Gr.Utils.getCommonBounds(t.map(B.getBounds)),16),r=Gr.Utils.getBoundsCenter(n),s=[n.width,n.height],l=[r[0]+s[0]*Math.floor((e[0]+s[0]/2-r[0])/s[0]),r[1]+s[1]*Math.floor((e[1]+s[1]/2-r[1])/s[1])],a=Gr.Utils.centerBounds(n,l);this.app.shapes.some(p=>B.getShapeUtil(p).hitTestBounds(p,a))||this.app.duplicate(this.app.selectedIds,l)});d(this,"getShapeClone",(e,t)=>{let n=this.app.getShape(e),r=B.getShapeUtil(n);if(r.canClone){let s=r.getBounds(n),l=r.getCenter(n),a={top:[s.minX,s.minY-(s.height+32)],right:[s.maxX+32,s.minY],bottom:[s.minX,s.maxY+32],left:[s.minX-(s.width+32),s.minY],topLeft:[s.minX-(s.width+32),s.minY-(s.height+32)],topRight:[s.maxX+32,s.minY-(s.height+32)],bottomLeft:[s.minX-(s.width+32),s.maxY+32],bottomRight:[s.maxX+32,s.maxY+32]}[t];if(n.rotation!==0){let u=Wn.default.add(a,[s.width/2,s.height/2]),h=Wn.default.rotWith(u,l,n.rotation||0);a=Wn.default.sub(h,[s.width/2,s.height/2])}let c=Gr.Utils.uniqueId(),p=I(S({},n),{id:c,point:a});return p.type==="sticky"&&(p.text=""),p}});d(this,"onCancel",()=>{this.app.session?this.app.cancelSession():this.selectNone(),this.setStatus("idle")});d(this,"onKeyDown",(e,t,n)=>{switch(e){case"Escape":{this.onCancel();break}case"Tab":{if(this.app.readOnly)return;if(!this.app.pageState.editingId&&this.status==="idle"&&this.app.selectedIds.length===1){let[r]=this.app.selectedIds,s=this.getShapeClone(r,"right");s&&(this.app.createShapes(s),this.setStatus("idle"),s.type==="sticky"&&(this.app.select(s.id),this.app.setEditingId(s.id)))}break}case"Meta":case"Control":case"Alt":{this.app.updateSession();break}case"Enter":{if(this.app.readOnly)return;let{pageState:r}=this.app;r.selectedIds.length===1&&!r.editingId&&(this.app.setEditingId(r.selectedIds[0]),n.preventDefault())}}});d(this,"onKeyUp",(e,t)=>{if(this.status==="clonePainting"&&!(t.altKey&&t.shiftKey)){this.setStatus("idle");return}if(e==="Meta"||e==="Control"||e==="Alt"){this.app.updateSession();return}});d(this,"onPointerMove",()=>{let{originPoint:e,currentPoint:t}=this.app;if(this.app.readOnly&&this.app.isPointing){this.app.session?this.app.updateSession():Wn.default.dist(e,t)>3&&(this.app.startSession("brush"),this.setStatus("brushing"));return}switch(this.status){case"pointingBoundsHandle":{if(!this.pointedBoundsHandle)throw Error("No pointed bounds handle");if(Wn.default.dist(e,t)>3){if(this.pointedBoundsHandle==="rotate")this.setStatus("rotating"),this.app.startSession("rotate");else if(this.pointedBoundsHandle==="center"||this.pointedBoundsHandle==="left"||this.pointedBoundsHandle==="right")this.setStatus("translating"),this.app.startSession("translate",!1,this.pointedBoundsHandle);else{this.setStatus("transforming");let n=this.app.selectedIds.flatMap(r=>B.getDocumentBranch(this.app.state,r,this.app.currentPageId));n.length===1?this.app.startSession("transformSingle",n[0],this.pointedBoundsHandle):this.app.startSession("transform",this.pointedBoundsHandle)}this.app.updateSession()}break}case"pointingCanvas":{Wn.default.dist(e,t)>3&&(this.app.startSession("brush"),this.setStatus("brushing"));break}case"pointingClone":{Wn.default.dist(e,t)>3&&(this.setStatus("translatingClone"),this.app.startSession("translate"),this.app.updateSession());break}case"pointingBounds":{Wn.default.dist(e,t)>3&&(this.setStatus("translating"),this.app.startSession("translate"),this.app.updateSession());break}case"pointingHandle":{if(!this.pointedHandleId)throw Error("No pointed handle");if(Wn.default.dist(e,t)>3){this.setStatus("translatingHandle");let n=this.app.getShape(this.app.selectedIds[0]);n&&(this.pointedHandleId==="bend"?(this.app.startSession("handle",n.id,this.pointedHandleId),this.app.updateSession()):(this.app.startSession("arrow",n.id,this.pointedHandleId,!1),this.app.updateSession()))}break}case"clonePainting":{this.clonePaint(t);break}default:if(this.app.session){this.app.updateSession();break}}});d(this,"onPointerDown",(e,t)=>{if(e.target==="canvas"&&this.status==="idle"){let{currentPoint:n}=this.app;if(e.spaceKey&&t.buttons===1)return;if(this.status==="idle"&&e.altKey&&e.shiftKey){this.setStatus("clonePainting"),this.clonePaint(n);return}if(!e.shiftKey){if(this.app.onShapeBlur(),e.altKey&&this.app.selectedIds.length>0){this.app.duplicate(this.app.selectedIds,n);return}this.selectNone()}this.setStatus("pointingCanvas")}});d(this,"onPointerUp",e=>{var t;if(this.status==="translatingClone"||this.status==="pointingClone"){this.pointedId&&(this.app.completeSession(),this.app.setEditingId(this.pointedId)),this.setStatus("idle"),this.pointedId=void 0;return}if(this.status==="pointingBounds"){if(e.target==="bounds")this.selectNone();else if(this.app.isSelected(e.target))e.shiftKey?this.pointedId!==e.target&&this.deselect(e.target):this.pointedId!==e.target&&this.app.selectedIds.length>1&&this.select(e.target);else if(this.pointedId===e.target){if(this.app.getShape(e.target).isLocked)return;e.shiftKey?this.pushSelect(e.target):this.select(e.target)}}this.setStatus("idle"),this.pointedBoundsHandle=void 0,this.pointedHandleId=void 0,this.pointedId=void 0,((t=this.app.session)==null?void 0:t.type)!=="edit"&&this.app.completeSession()});d(this,"onDoubleClickCanvas",()=>{this.app.readOnly});d(this,"onPointShape",(e,t)=>{if(e.spaceKey&&t.buttons===1||this.app.getShape(e.target).isLocked)return;let{editingId:n,hoveredId:r}=this.app.pageState;if(n&&e.target!==n&&this.app.onShapeBlur(),(this.status==="idle"||this.status==="pointingBounds")&&e.metaKey&&e.shiftKey&&r){this.pointedId=r,this.app.isSelected(r)?this.deselect(r):(this.pushSelect(r),this.setStatus("pointingBounds"));return}if(this.status==="pointingBounds"){let{parentId:s}=this.app.getShape(e.target);this.pointedId=s===this.app.currentPageId?e.target:s;return}if(this.status==="idle"){if(this.setStatus("pointingBounds"),e.metaKey){e.shiftKey||this.selectNone(),this.app.startSession("brush"),this.setStatus("brushing");return}let s,{parentId:l}=this.app.getShape(e.target);l===this.app.currentPageId?(s=e.target,this.selectedGroupId=void 0):l===this.selectedGroupId?s=e.target:(s=l,this.selectedGroupId=void 0),this.app.isSelected(s)||(this.pointedId=s,e.shiftKey?this.pushSelect(s):this.select(s))}});d(this,"onDoubleClickShape",e=>{if(this.app.readOnly)return;let t=this.app.getShape(e.target);if(t.isLocked){this.app.select(e.target);return}B.getShapeUtil(t.type).canEdit&&(t.parentId===this.app.currentPageId||t.parentId===this.selectedGroupId)&&this.app.setEditingId(e.target),t.parentId!==this.app.currentPageId&&(this.selectedGroupId=t.parentId),this.app.select(e.target)});d(this,"onRightPointShape",e=>{this.app.isSelected(e.target)||this.app.select(e.target)});d(this,"onHoverShape",e=>{this.app.setHoveredId(e.target)});d(this,"onUnhoverShape",e=>{let{currentPageId:t}=this.app;requestAnimationFrame(()=>{t===this.app.currentPageId&&this.app.pageState.hoveredId===e.target&&this.app.setHoveredId(void 0)})});d(this,"onPointBounds",e=>{if(e.metaKey){e.shiftKey||this.selectNone(),this.app.startSession("brush"),this.setStatus("brushing");return}this.setStatus("pointingBounds")});d(this,"onRightPointBounds",(e,t)=>{t.stopPropagation()});d(this,"onReleaseBounds",()=>{(this.status==="translating"||this.status==="brushing")&&this.app.completeSession(),this.setStatus("idle")});d(this,"onPointBoundsHandle",e=>{this.pointedBoundsHandle=e.target,this.setStatus("pointingBoundsHandle")});d(this,"onDoubleClickBoundsHandle",e=>{switch(e.target){case"center":case"left":case"right":{this.app.select(...B.getLinkedShapeIds(this.app.state,this.app.currentPageId,e.target,e.shiftKey));break}default:if(this.app.selectedIds.length===1){this.app.resetBounds(this.app.selectedIds);let t=this.app.getShape(this.app.selectedIds[0]);"label"in t&&this.app.setEditingId(t.id)}}});d(this,"onReleaseBoundsHandle",()=>{this.setStatus("idle")});d(this,"onPointHandle",e=>{this.pointedHandleId=e.target,this.setStatus("pointingHandle")});d(this,"onDoubleClickHandle",e=>{if(e.target==="bend"){let{selectedIds:t}=this.app;if(t.length!==1)return;let n=this.app.getShape(t[0]);B.getShapeUtil(n.type).canEdit&&(n.parentId===this.app.currentPageId||n.parentId===this.selectedGroupId)&&this.app.setEditingId(n.id);return}this.app.toggleDecoration(e.target)});d(this,"onReleaseHandle",()=>{this.setStatus("idle")});d(this,"onShapeClone",e=>{let t=this.app.selectedIds[0],n=this.getShapeClone(t,e.target);e.target==="left"||e.target==="right"||e.target==="top"||e.target==="bottom"?n&&(this.app.createShapes(n),this.pointedId=n.id,this.setStatus("pointingClone")):(this.setStatus("gridCloning"),this.app.startSession("grid",t))})}deselect(e){this.app.select(...this.app.selectedIds.filter(t=>t!==e))}select(e){this.app.select(e)}pushSelect(e){let t=this.app.getShape(e);this.app.select(...this.app.selectedIds.filter(n=>n!==t.parentId),e)}selectNone(){this.app.selectNone()}};var vh=require("telva-core"),jl=H(require("telva-vec"));var Wr=class extends Fe{constructor(){super(...arguments);d(this,"type","sticky");d(this,"shapeId");d(this,"onPointerDown",()=>{if(!this.app.readOnly){if(this.status==="creating"){this.setStatus("idle"),this.app.appState.isToolLocked||this.app.selectTool("select");return}if(this.status==="idle"){let{currentPoint:e,currentGrid:t,settings:{showGrid:n},appState:{currentPageId:r,currentStyle:s}}=this.app,l=this.getNextChildIndex(),a=vh.Utils.uniqueId();this.shapeId=a;let c=mi.create({id:a,parentId:r,childIndex:l,point:n?jl.default.snap(e,t):e,style:S({},s)}),p=mi.getBounds(c);c.point=jl.default.sub(c.point,[p.width/2,p.height/2]),this.app.patchCreate([c]),this.app.startSession("translate"),this.setStatus("creating")}}});d(this,"onPointerUp",()=>{this.app.readOnly||this.status==="creating"&&(this.setStatus("idle"),this.app.completeSession(),this.app.selectTool("select"),this.app.setEditingId(this.shapeId))})}};var Th=H(require("telva-vec"));var Nr=class extends Fe{constructor(){super(...arguments);d(this,"type","text");d(this,"stopEditingShape",()=>{this.setStatus("idle"),this.app.appState.isToolLocked||this.app.selectTool("select")});d(this,"onKeyUp",()=>{});d(this,"onKeyDown",()=>{});d(this,"onPointerDown",()=>{if(this.status==="creating"){this.stopEditingShape();return}if(this.status==="idle"){let{currentPoint:e,currentGrid:t,settings:{showGrid:n}}=this.app;this.app.createTextShapeAtPoint(n?Th.default.snap(e,t):e,void 0,!0),this.setStatus("creating");return}});d(this,"onPointerUp",()=>{});d(this,"onPointShape",e=>{if(this.app.readOnly)return;let t=this.app.getShape(e.target);t.type==="text"&&(this.setStatus("idle"),this.app.setEditingId(t.id))});d(this,"onShapeBlur",()=>{this.app.readOnly||this.stopEditingShape()})}};var va=require("telva-core"),xh=H(require("telva-vec"));var Ur=class extends Fe{constructor(){super(...arguments);d(this,"type","triangle");d(this,"onPointerDown",()=>{if(this.app.readOnly||this.status!=="idle")return;let{currentPoint:e,currentGrid:t,settings:{showGrid:n},appState:{currentPageId:r,currentStyle:s}}=this.app,l=this.getNextChildIndex(),a=va.Utils.uniqueId(),c=Hs.create({id:a,parentId:r,childIndex:l,point:n?xh.default.snap(e,t):e,style:S({},s)});this.app.patchCreate([c]),this.app.startSession("transformSingle",c.id,va.TLBoundsCorner.BottomRight,!0),this.setStatus("creating")})}};var Wl=ut.Utils.uniqueId(),Qe=class extends Qs{constructor(e,t={}){super(Qe.defaultState,e,Qe.version,(n,r,s)=>Gn(I(S({},r),{document:I(S(S({},r.document),n.document),{version:s})}),Qe.version));d(this,"callbacks",{});d(this,"tools",{select:new jr(this),erase:new zr(this),["text"]:new Nr(this),["draw"]:new Vr(this),["ellipse"]:new Hr(this),["rectangle"]:new $r(this),["triangle"]:new Ur(this),["line"]:new Fr(this),["arrow"]:new Lr(this),["sticky"]:new Wr(this),["pen"]:new Or(this)});d(this,"currentTool",this.tools.select);d(this,"session");d(this,"readOnly",!1);d(this,"isDirty",!1);d(this,"isCreating",!1);d(this,"originPoint",[0,0]);d(this,"currentPoint",[0,0]);d(this,"previousPoint",[0,0]);d(this,"shiftKey",!1);d(this,"altKey",!1);d(this,"metaKey",!1);d(this,"ctrlKey",!1);d(this,"spaceKey",!1);d(this,"isPointing",!1);d(this,"isForcePanning",!1);d(this,"isErasingWithPen",!1);d(this,"isPastePrevented",!1);d(this,"editingStartTime",-1);d(this,"fileSystemHandle",null);d(this,"viewport",ut.Utils.getBoundsFromPoints([[0,0],[100,100]]));d(this,"rendererBounds",ut.Utils.getBoundsFromPoints([[0,0],[100,100]]));d(this,"selectHistory",{stack:[[]],pointer:0});d(this,"clipboard");d(this,"rotationInfo",{selectedIds:[],center:[0,0]});d(this,"migrate",e=>Gn(e,Qe.version));d(this,"onReady",()=>{var e,t;this.loadDocument(this.document),Bl().then(n=>{this.fileSystemHandle=n});try{this.patchState(I(S({},Gn(this.state,Qe.version)),{appState:{status:"idle"}}))}catch(n){console.error("The data appears to be corrupted. Resetting!",n),localStorage.setItem(this.document.id+"_corrupted",JSON.stringify(this.document)),this.patchState(I(S({},Qe.defaultState),{appState:I(S({},Qe.defaultState.appState),{status:"idle"})}))}(t=(e=this.callbacks).onMount)==null||t.call(e,this)});d(this,"cleanup",(e,t)=>{var l,a,c,p,u;let n=S({},e);n.document!==t.document&&Object.entries(n.document.pages).forEach(([h,g])=>{if(g===void 0){delete n.document.pages[h],delete n.document.pageStates[h];return}let m=t.document.pages[h],f={};if(!m||g.shapes!==m.shapes||g.bindings!==m.bindings){g.shapes=S({},g.shapes),g.bindings=S({},g.bindings);let b=new Set;Object.entries(g.shapes).forEach(([x,P])=>{var D;let k;P?k=P.parentId:(k=(D=m==null?void 0:m.shapes[x])==null?void 0:D.parentId,delete g.shapes[x]),g.id===n.appState.currentPageId&&(m==null?void 0:m.shapes[x])!==P&&(f[x]=P),k&&k!==h&&g.shapes[k]!==void 0&&b.add(g.shapes[k])}),Object.keys(g.bindings).forEach(x=>{g.bindings[x]||delete g.bindings[x]}),n.document.pages[h]=g;let T=B.getRelatedBindings(n,Object.keys(f),h),y=new Set;T.forEach(x=>{if(!g.bindings[x.id])return;let P=g.shapes[x.toId],k=g.shapes[x.fromId];if(!(P&&k)){delete n.document.pages[h].bindings[x.id];return}if(y.has(k))return;let D=B.updateArrowBindings(g,k);if(y.add(k),D){let C=S(S({},k),D);g.shapes[k.id]=C}}),b.forEach(x=>{if(!x)throw Error("no group!");let P=x.children.filter(D=>g.shapes[D]!==void 0),k=ut.Utils.getCommonBounds(P.map(D=>g.shapes[D]).filter(Boolean).map(D=>B.getRotatedBounds(D)));g.shapes[x.id]=I(S({},x),{point:[k.minX,k.minY],size:[k.width,k.height],children:P})})}let v=S({},n.document.pageStates[h]);v.brush||delete v.brush,v.hoveredId&&!g.shapes[v.hoveredId]&&delete v.hoveredId,v.bindingId&&!g.bindings[v.bindingId]&&(B.warn(`Could not find the binding of ${h}`),delete v.bindingId),v.editingId&&!g.shapes[v.editingId]&&(B.warn("Could not find the editing shape!"),delete v.editingId),n.document.pageStates[h]=v}),Object.keys((l=n.document.assets)!=null?l:{}).forEach(h=>{var g,m;(g=n.document.assets)!=null&&g[h]||(m=n.document.assets)==null||delete m[h]});let r=n.appState.currentPageId,s=n.document.pageStates[r];if(n.room&&n.room!==t.room){let h=I(S({},n.room),{users:S({},n.room.users)});t.room&&Object.values(t.room.users).filter(Boolean).forEach(g=>{h.users[g.id]===void 0&&delete h.users[g.id]}),n.room=h}if(n.room){let h=n.room.users[n.room.userId];n.room.users[n.room.userId]=I(S({},h),{id:(a=h==null?void 0:h.id)!=null?a:n.room.userId,color:(c=h==null?void 0:h.color)!=null?c:Ji[0],activeShapes:(p=h==null?void 0:h.activeShapes)!=null?p:[],status:(u=h==null?void 0:h.status)!=null?u:"connected",point:this.currentPoint,selectedIds:s.selectedIds})}return this.readOnly&&(n.document.pages=t.document.pages),n});d(this,"broadcastPatch",(e,t)=>{var p,u,h,g,m,f,v,b,T;let n={},r={},s={},l=(h=(u=(p=e==null?void 0:e.document)==null?void 0:p.pages)==null?void 0:u[this.currentPageId])==null?void 0:h.shapes,a=(f=(m=(g=e==null?void 0:e.document)==null?void 0:g.pages)==null?void 0:m[this.currentPageId])==null?void 0:f.bindings,c=(v=e==null?void 0:e.document)==null?void 0:v.assets;l&&Object.keys(l).forEach(y=>{n[y]=this.getShape(y,this.currentPageId)}),a&&Object.keys(a).forEach(y=>{r[y]=this.getBinding(y,this.currentPageId)}),c&&Object.keys(c).forEach(y=>{s[y]=this.document.assets[y]}),(T=(b=this.callbacks).onChangePage)==null||T.call(b,this,n,r,s,t)});d(this,"onPatch",(e,t,n)=>{var r,s,l,a,c,p;(this.callbacks.onChangePage&&((s=(r=t==null?void 0:t.document)==null?void 0:r.pages)==null?void 0:s[this.currentPageId])||((l=t==null?void 0:t.document)==null?void 0:l.assets))&&(((a=t==null?void 0:t.document)==null?void 0:a.assets)||this.session&&this.session.type!=="brush"&&this.session.type!=="erase"&&this.session.type!=="draw")&&this.broadcastPatch(t,!1),(p=(c=this.callbacks).onPatch)==null||p.call(c,this,t,n)});d(this,"onCommand",(e,t,n)=>{var r,s;this.clearSelectHistory(),this.isDirty=!0,(s=(r=this.callbacks).onCommand)==null||s.call(r,this,t,n)});d(this,"onReplace",()=>{this.clearSelectHistory(),this.isDirty=!1});d(this,"onUndo",()=>{var e,t;this.rotationInfo.selectedIds=[...this.selectedIds],(t=(e=this.callbacks).onUndo)==null||t.call(e,this)});d(this,"onRedo",()=>{var e,t;this.rotationInfo.selectedIds=[...this.selectedIds],(t=(e=this.callbacks).onRedo)==null||t.call(e,this)});d(this,"onPersist",(e,t)=>{var n,r;(r=(n=this.callbacks).onPersist)==null||r.call(n,this),this.broadcastPatch(t,!0)});d(this,"prevSelectedIds",this.selectedIds);d(this,"onStateDidChange",(e,t)=>{var n,r,s,l;(r=(n=this.callbacks).onChange)==null||r.call(n,this,t),this.room&&this.selectedIds!==this.prevSelectedIds&&((l=(s=this.callbacks).onChangePresence)==null||l.call(s,this,I(S({},this.room.users[this.room.userId]),{selectedIds:this.selectedIds,session:!!this.session})),this.prevSelectedIds=this.selectedIds)});d(this,"preventPaste",()=>{if(this.isPastePrevented)return;let e=n=>n.stopImmediatePropagation(),t=()=>{setTimeout(()=>{document.removeEventListener("paste",e,{capture:!0}),this.isPastePrevented=!1},50)};document.addEventListener("paste",e,{capture:!0}),window.addEventListener("pointerup",t,{once:!0}),this.isPastePrevented=!0});d(this,"justSent",!1);d(this,"getReservedContent",(e,t=this.currentPageId)=>{let{bindings:n}=this.document.pages[t],r={},s={},l=Object.values(n),a=new Map(l.map(m=>[m.toId,m])),c=new Map(l.map(m=>[m.fromId,m])),p=[a,c],u=[];this.session&&e.forEach(m=>u.push(m)),this.pageState.editingId&&u.push(this.pageState.editingId);let h=new Set(u),g=new Set;for(;u.length>0;){let m=u.pop();if(!m)break;if(g.has(m))continue;g.add(m);let f=this.getShape(m);r[m]=f,f.parentId!==t&&u.push(f.parentId),f.children&&u.push(...f.children),p.map(v=>v.get(f.id)).filter(Boolean).forEach(v=>{s[v.id]=v,u.push(v.toId,v.fromId)})}return{reservedShapes:r,reservedBindings:s,strongReservedShapeIds:h}});d(this,"replacePageContent",(e,t,n,r=this.currentPageId)=>{if(this.justSent)return this.justSent=!1,this;let s=this.document.pages[this.currentPageId];return Object.values(e).forEach(l=>{l.parentId!==r&&!(s.shapes[l.parentId]||e[l.parentId])&&(console.warn("Added a shape without a parent on the page"),l.parentId=r)}),this.useStore.setState(l=>{let{hoveredId:a,editingId:c,bindingId:p,selectedIds:u}=l.document.pageStates[r],h=[...u],g=c&&l.document.pages[this.currentPageId].shapes[c];g&&h.push(g.id);let{reservedShapes:m,reservedBindings:f,strongReservedShapeIds:v}=this.getReservedContent(h,this.currentPageId);Object.values(m).filter(C=>!("text"in C)).forEach(C=>{let E=e[C.id];if(!!E){if(!(C.type==="arrow"||v.has(C.id))){e[C.id]=E;return}"decorations"in E&&"decorations"in C&&(e[C.id]=I(S({},C),{decorations:E.decorations})),C.style=E.style}});let b=S(S({},e),m);g&&(b[g.id]=g);let T=S(S({},t),f),y=S({},n),x=I(S({},l),{document:I(S({},l.document),{pages:{[r]:I(S({},l.document.pages[r]),{shapes:b,bindings:T})},assets:y,pageStates:I(S({},l.document.pageStates),{[r]:I(S({},l.document.pageStates[r]),{selectedIds:u.filter(C=>b[C]!==void 0),hoveredId:a?b[a]===void 0?void 0:a:void 0,editingId:c,bindingId:p?T[p]===void 0?void 0:p:void 0})})})}),P=x.document.pages[r],k=B.getRelatedBindings(x,Object.keys(b),r),D=new Set;return k.forEach(C=>{if(!P.bindings[C.id])return;let E=P.shapes[C.fromId];if(D.has(E))return;let M=B.updateArrowBindings(P,E);if(D.add(E),M){let L=S(S({},E),M);P.shapes[E.id]=L}}),Object.values(b).forEach(C=>{if(C.type!=="group")return;let E=C.children.filter(L=>P.shapes[L]!==void 0),M=ut.Utils.getCommonBounds(E.map(L=>P.shapes[L]).filter(Boolean).map(L=>B.getRotatedBounds(L)));P.shapes[C.id]=I(S({},C),{point:[M.minX,M.minY],size:[M.width,M.height],children:E})}),this.state.document=x.document,x},!0),this});d(this,"updateBounds",e=>{this.rendererBounds=e;let{point:t,zoom:n}=this.camera;this.updateViewport(t,n),!this.readOnly&&this.session&&this.session.update()});d(this,"updateViewport",(e,t)=>{let{width:n,height:r}=this.rendererBounds,[s,l]=ie.Vec.sub(ie.Vec.div([0,0],t),e),[a,c]=ie.Vec.sub(ie.Vec.div([n,r],t),e);this.viewport={minX:s,minY:l,maxX:a,maxY:c,width:a-s,height:c-l}});d(this,"setEditingId",(e,t=!1)=>{if(!this.readOnly){if(e)this.startSession("edit",e,t);else{if(!this.pageState.editingId)return;this.completeSession()}this.editingStartTime=performance.now(),this.patchState({document:{pageStates:{[this.currentPageId]:{editingId:e}}}},"set_editing_id")}});d(this,"setHoveredId",e=>{this.patchState({document:{pageStates:{[this.currentPageId]:{hoveredId:e}}}},"set_hovered_id")});d(this,"setNodeEditingId",e=>{this.patchState({appState:{nodeEditingId:e}},"set_node_editing_id")});d(this,"setSetting",(e,t)=>{if(this.session)return this;let n={settings:{[e]:typeof t=="function"?t(this.settings[e]):t}};return this.patchState(n,`settings:${e}`),this.persist(n),this});d(this,"toggleFocusMode",()=>{if(this.session)return this;let e={settings:{isFocusMode:!this.settings.isFocusMode}};return this.patchState(e,"settings:toggled_focus_mode"),this.persist(e),this});d(this,"togglePenMode",()=>{if(this.session)return this;let e={settings:{isPenMode:!this.settings.isPenMode}};return this.patchState(e,"settings:toggled_pen_mode"),this.persist(e),this});d(this,"toggleDarkMode",()=>{if(this.session)return this;let e={settings:{isDarkMode:!this.settings.isDarkMode}};return this.patchState(e,"settings:toggled_dark_mode"),this.persist(e),this});d(this,"toggleZoomSnap",()=>{if(this.session)return this;let e={settings:{isZoomSnap:!this.settings.isZoomSnap}};return this.patchState(e,"settings:toggled_zoom_snap"),this.persist(e),this});d(this,"toggleDebugMode",()=>{if(this.session)return this;let e={settings:{isDebugMode:!this.settings.isDebugMode}};return this.patchState(e,"settings:toggled_debug"),this.persist(e),this});d(this,"setMenuOpen",e=>{let t={appState:{isMenuOpen:e}};return this.patchState(t,"ui:toggled_menu_opened"),this.persist(t),this});d(this,"setIsLoading",e=>{let t={appState:{isLoading:e}};return this.patchState(t,"ui:toggled_is_loading"),this.persist(t),this});d(this,"setDisableAssets",e=>(this.patchState({appState:{disableAssets:e}},"ui:toggled_disable_images"),this));d(this,"toggleGrid",()=>{if(this.session)return this;let e={settings:{showGrid:!this.settings.showGrid}};return this.patchState(e,"settings:toggled_grid"),this.persist(e),this});d(this,"toggleCanvasMode",()=>{if(this.session)return this;let t={settings:{canvasMode:this.settings.canvasMode==="freehand"?"straight":"freehand"}};return this.patchState(t,"settings:toggled_canvas_mode"),this.persist(t),this});d(this,"selectTool",e=>{if(this.readOnly||this.session)return this;this.isPointing=!1;let t=this.tools[e];return t===this.currentTool?(this.patchState({appState:{isToolLocked:!1}}),this):(this.currentTool.onExit(),t.previous=this.currentTool.type,this.currentTool=t,this.currentTool.onEnter(),this.patchState({appState:{activeTool:e,isToolLocked:!1}},`selected_tool:${e}`))});d(this,"toggleToolLock",()=>this.session?this:this.patchState({appState:{isToolLocked:!this.appState.isToolLocked}},"toggled_tool_lock"));d(this,"resetDocument",()=>{if(this.session)return this;this.session=void 0,this.currentTool=this.tools.select;let e=Qe.defaultDocument;return e.pages.page.name="Page 1",this.resetHistory().clearSelectHistory().loadDocument(Qe.defaultDocument).persist({}),this});d(this,"updateUsers",(e,t=!1)=>{this.patchState({room:{users:Object.fromEntries(e.map(n=>[n.id,n]))}},t?"room:self:update":"room:user:update")});d(this,"removeUser",e=>{this.patchState({room:{users:{[e]:void 0}}})});d(this,"mergeDocument",e=>{if(this.document.id!==e.id)return this.replaceState(I(S({},Gn(I(S({},this.state),{document:e}),Qe.version)),{appState:I(S({},this.appState),{currentPageId:Object.keys(e.pages)[0]})})),this;let t=S({},this.document.pageStates),n=I(S({},this.appState),{currentPageId:e.pages[this.currentPageId]?this.currentPageId:Object.keys(e.pages)[0],pages:Object.values(e.pages).map((s,l)=>({id:s.id,name:s.name,childIndex:s.childIndex||l}))});this.resetHistory(),Object.keys(this.document.pages).forEach(s=>{e.pages[s]||(s===this.appState.currentPageId&&(this.cancelSession(),this.selectNone()),t[s]=void 0)}),this.session&&this.selectedIds.filter(s=>!e.pages[this.currentPageId].shapes[s]).forEach(s=>e.pages[this.currentPageId].shapes[s]=this.page.shapes[s]),Object.entries(t).forEach(([s,l])=>{l.selectedIds=l.selectedIds.filter(a=>!!e.pages[s].shapes[a])});let{editingId:r}=this.pageState;return r&&(e.pages[this.currentPageId].shapes[r]=this.page.shapes[r],t[this.currentPageId].selectedIds=[r]),this.replaceState(I(S({},Gn(I(S({},this.state),{document:I(S({},e),{pageStates:t})}),Qe.version)),{appState:n}),"merge")});d(this,"updateDocument",(e,t="updated_document")=>{let n=this.state,r=I(S({},n),{document:I(S({},n.document),{assets:e.assets})});e.pages[this.currentPageId]||(r.appState=I(S({},n.appState),{currentPageId:Object.keys(e.pages)[0]}));let s=1;for(let l of Object.values(e.pages))l!==n.document.pages[l.id]&&(r.document.pages[l.id]=l,l.name||(r.document.pages[l.id].name=`Page ${s+1}`,s++));for(let l of Object.values(e.pageStates))if(l!==n.document.pageStates[l.id]){r.document.pageStates[l.id]=l;let a=e.pages[l.id],c=["bindingId","editingId","hoveredId","pointedId"];for(let p of c)a.shapes[p]||(l[p]=void 0);l.selectedIds=l.selectedIds.filter(p=>!!e.pages[a.id].shapes[p])}return this.replaceState(Gn(r,r.document.version||0),`${t}:${e.id}`)});d(this,"loadRoom",e=>(this.patchState({room:{id:e,userId:Wl,users:{[Wl]:{id:Wl,color:Ji[Math.floor(Math.random()*Ji.length)],point:[100,100],selectedIds:[],activeShapes:[],status:"connected"}}}}),this));d(this,"loadDocument",e=>{this.setIsLoading(!0),this.selectNone(),this.resetHistory(),this.clearSelectHistory(),this.session=void 0;let t=I(S({},Qe.defaultState),{settings:S({},this.state.settings),document:e,appState:I(S(S({},Qe.defaultState.appState),this.state.appState),{currentPageId:Object.keys(e.pages)[0],disableAssets:this.disableAssets})});this.replaceState(Gn(t,Qe.version),"loaded_document");let{point:n,zoom:r}=this.camera;return this.updateViewport(n,r),this.setIsLoading(!1),this});d(this,"loadPageFromURL",(e,t)=>{let n=e.id,r=I(S({},this.state.document),{pageStates:I(S({},this.state.document.pageStates),{[n]:t}),pages:I(S({},this.document.pages),{[n]:e})});this.loadDocument(r),this.persist({})});d(this,"newProject",()=>{!this.isLocal||(this.fileSystemHandle=null,this.resetDocument())});d(this,"saveProject",()=>F(this,null,function*(){if(this.readOnly)return;let e=yield ia(Gn(this.state,Qe.version).document,this.fileSystemHandle);return this.fileSystemHandle=e,this.persist({}),this.isDirty=!1,this}));d(this,"saveProjectAs",(e,t)=>F(this,null,function*(){try{let n=yield ia(this.document,null,e,t);this.fileSystemHandle=n,this.persist({}),this.isDirty=!1}catch(n){console.error(n.message)}return this}));d(this,"openProject",()=>F(this,null,function*(){if(!!this.isLocal)try{let e=yield Ml();if(!e)throw Error();let{fileHandle:t,document:n}=e;this.loadDocument(n),this.fileSystemHandle=t,this.zoomToFit(),this.persist({})}catch(e){console.error(e)}finally{this.persist({})}}));d(this,"openAsset",()=>F(this,null,function*(){if(!this.disableAssets)try{let e=yield Ll();if(Array.isArray(e))this.addMediaFromFiles(e,this.centerPoint);else{if(!e)return;this.addMediaFromFiles([e])}}catch(e){console.error(e)}finally{this.persist({})}}));d(this,"signOut",()=>{});d(this,"getAppState",()=>this.appState);d(this,"getPage",(e=this.currentPageId)=>B.getPage(this.state,e||this.currentPageId));d(this,"getShapes",(e=this.currentPageId)=>B.getShapes(this.state,e||this.currentPageId));d(this,"getBindings",(e=this.currentPageId)=>B.getBindings(this.state,e||this.currentPageId));d(this,"getShape",(e,t=this.currentPageId)=>B.getShape(this.state,e,t));d(this,"getShapeBounds",(e,t=this.currentPageId)=>B.getBounds(this.getShape(e,t)));d(this,"getBinding",(e,t=this.currentPageId)=>B.getBinding(this.state,e,t));d(this,"getPageState",(e=this.currentPageId)=>B.getPageState(this.state,e||this.currentPageId));d(this,"getPagePoint",(e,t=this.currentPageId)=>{let{camera:n}=this.getPageState(t);return ie.Vec.sub(ie.Vec.div(e,n.zoom),n.point)});d(this,"createPage",(e,t)=>{if(this.readOnly)return this;let{width:n,height:r}=this.rendererBounds;return this.setState($u(this,[-n/2,-r/2],e,t))});d(this,"changePage",e=>this.setState(Hu(this,e)));d(this,"movePage",(e,t)=>this.readOnly?this:this.setState(Zu(this,e,t)));d(this,"renamePage",(e,t)=>this.readOnly?this:this.setState(qu(this,e,t)));d(this,"duplicatePage",e=>this.readOnly?this:this.setState(Nu(this,e)));d(this,"deletePage",e=>this.readOnly?this:Object.values(this.document.pages).length<=1?this:this.setState(Gu(this,e||this.currentPageId)));d(this,"cut",(e=this.selectedIds,t)=>(t==null||t.preventDefault(),this.copy(e,t),this.readOnly||this.delete(e),this));d(this,"copy",(e=this.selectedIds,t)=>{var s;t==null||t.preventDefault(),this.clipboard=this.getContent(e);let r=`<telva>${JSON.stringify(S({type:"telva/clipboard",shapes:[],assets:[],bindings:[]},this.clipboard))}</telva>`;return Eu(r),t&&((s=t.clipboardData)==null||s.setData("text/html",r)),navigator.clipboard&&window.ClipboardItem&&navigator.clipboard.write([new ClipboardItem({"text/html":new Blob([r],{type:"text/html"})})]),this});d(this,"paste",(e,t)=>F(this,null,function*(){var p,u;if(this.readOnly)return;let n=[],r=[],s,l=h=>F(this,null,function*(){let g=document.createElement("div");g.innerHTML=h;let m=g.firstChild;m.style.setProperty("background-color","transparent");let f=yield B.getImageForSvg(m,"svg",{scale:1,quality:1});if(f){let v=new File([f],"image.svg");n.push(v)}else a(h)}),a=h=>{let g=this.getPagePoint(e!=null?e:this.centerPoint,this.currentPageId),m=h.includes(`
13
- `);r.push(B.getShapeUtil("text").getShape({id:ut.Utils.uniqueId(),type:"text",parentId:this.appState.currentPageId,text:B.normalizeText(h.trim()),point:g,style:I(S({},this.appState.currentStyle),{textAlign:m?"start":this.appState.currentStyle.textAlign})}))},c=h=>{var g;try{let m=(g=h.match(/<telva>(.*)<\/telva>/))==null?void 0:g[1];if(!m)return;let f=JSON.parse(m);if(f.type==="telva/clipboard"){s=f;return}else throw Error("Not telva data!")}catch(m){a(h)}};if(t!==void 0){let h=Array.from((u=(p=t.clipboardData)==null?void 0:p.items)!=null?u:[]);yield Promise.all(h.map(g=>F(this,null,function*(){var v;let{type:m,kind:f}=g;switch(f){case"string":{let b=yield new Promise(T=>g.getAsString(T));switch(m){case"text/html":{if((v=b.match(/<telva>(.*)<\/telva>/))!=null&&v[1]){c(b);return}break}case"text/plain":{b.startsWith("<svg")?yield l(b):a(b);break}}break}case"file":{let b=g.getAsFile();b&&n.push(b);break}}})))}if(s)return this.insertContent(s,{point:e,select:!0}),this;if(n.length)return this.addMediaFromFiles(n,e),this;if(r.length){let h=this.getPagePoint(e!=null?e:this.centerPoint,this.currentPageId),g=ie.Vec.add(h,[0,0]);return r.forEach((m,f)=>{let v=B.getBounds(m);f===0&&(g[0]-=v.width/2,g[1]-=v.height/2),m.point=[...g],g[0]+=v.width}),this.createShapes(...r),this}return this.clipboard?this.insertContent(this.clipboard):Du().then(h=>{h&&c(h)}),this}));d(this,"getSvg",(...n)=>F(this,[...n],function*(e=this.selectedIds.length?this.selectedIds:Object.keys(this.page.shapes),t={}){var m;if(e.length===0)return;let r=document.createElementNS("http://www.w3.org/2000/svg","svg"),s=document.createElementNS("http://www.w3.org/2000/svg","defs"),l=document.createElementNS("http://www.w3.org/2000/svg","style");if(typeof window!="undefined"&&window.focus(),t.includeFonts)try{let{fonts:f}=yield fetch(Qe.assetSrc,{mode:"no-cors"}).then(v=>v.json());l.textContent=`
12
+ `)}static assertShapeHasProperty(o,e){if(o[e]===void 0)throw new Error}static warn(o){Ep&&console.warn(o)}static error(o){Ep&&console.error(o)}static getSvgString(o,e=1){let t=o.cloneNode(!0);return o.setAttribute("width",+o.getAttribute("width")*e+""),o.setAttribute("height",+o.getAttribute("height")*e+""),new XMLSerializer().serializeToString(t).replaceAll("&#10; ","").replaceAll(/((\s|")[0-9]*\.[0-9]{2})([0-9]*)(\b|"|\))/g,"$1")}static getSvgAsDataUrl(o,e=1){let t=U.getSvgString(o,e);return`data:image/svg+xml;base64,${window.btoa(unescape(t))}`}static getImageForSvg(n){return F(this,arguments,function*(o,e="png",t={}){let{scale:r=2,quality:s=1}=t,l=U.getSvgString(o,r);if(!l)return;let a=yield new Promise(p=>{let u=new Image;u.crossOrigin="anonymous";let g=`data:image/svg+xml;base64,${window.btoa(unescape(encodeURIComponent(l)))}`;u.onload=()=>{let m=document.createElement("canvas"),f=m.getContext("2d"),v=u.width,b=u.height;m.width=v,m.height=b,f.drawImage(u,0,0,v,b),URL.revokeObjectURL(g),p(m)},u.onerror=()=>{console.warn("Could not convert that SVG to an image.")},u.src=g});return yield new Promise(p=>a.toBlob(u=>p(u),"image/"+e,s))})}},B=U;d(B,"copyStringToClipboard",o=>{try{navigator.clipboard&&navigator.clipboard.write([new ClipboardItem({"text/plain":new Blob([o],{type:"text/plain"})})])}catch(e){let t=document.createElement("textarea");t.setAttribute("position","fixed"),t.setAttribute("top","0"),t.setAttribute("readonly","true"),t.setAttribute("contenteditable","true"),t.style.position="fixed",t.value=o,document.body.appendChild(t),t.focus(),t.select();try{let n=document.createRange();n.selectNodeContents(t);let r=window.getSelection();r&&(r.removeAllRanges(),r.addRange(n),t.setSelectionRange(0,t.value.length)),document.execCommand("copy")}catch(n){}finally{document.body.removeChild(t)}}}),d(B,"flattenShape",(o,e)=>{var t;return[e,...((t=e.children)!=null?t:[]).map(n=>U.getShape(o,n,o.appState.currentPageId)).sort((n,r)=>n.childIndex-r.childIndex).flatMap(n=>U.flattenShape(o,n))]}),d(B,"flattenPage",(o,e)=>Object.values(o.document.pages[e].shapes).sort((t,n)=>t.childIndex-n.childIndex).reduce((t,n)=>[...t,...U.flattenShape(o,n)],[])),d(B,"getTopChildIndex",(o,e)=>{let t=U.getShapes(o,e);return t.length===0?1:t.filter(n=>n.parentId===e).sort((n,r)=>r.childIndex-n.childIndex)[0].childIndex+1}),d(B,"fixNewLines",/\r?\n|\r/g);var Os=require("react/jsx-runtime"),ho=bt.memo(function({font:o,text:e,color:t,background:n,textGradient:r,offsetX:s=0,offsetY:l=0,scale:a=1,isEditing:c=!1,width:p,onBlur:u,onChange:h}){let g=bt.useRef(null),m=bt.useRef(!1),f=bt.useCallback(k=>{h(B.normalizeText(k.currentTarget.value))},[h]),v=bt.useCallback(k=>{if(k.key==="Escape"){k.preventDefault(),k.stopPropagation(),u==null||u();return}if(k.key==="Tab"&&e.length===0){k.preventDefault();return}if(!(k.key==="Meta"||k.metaKey))k.stopPropagation();else if(k.key==="z"&&k.metaKey){k.shiftKey?document.execCommand("redo",!1):document.execCommand("undo",!1),k.stopPropagation(),k.preventDefault();return}(k.metaKey||k.ctrlKey)&&k.key==="="&&k.preventDefault(),k.key==="Tab"&&(k.preventDefault(),k.shiftKey?Ue.unindent(k.currentTarget):Ue.indent(k.currentTarget),h==null||h(B.normalizeText(k.currentTarget.value)))},[h]),b=bt.useCallback(k=>{k.currentTarget.setSelectionRange(0,0),u==null||u()},[u]),T=bt.useCallback(k=>{!c||!m.current||document.activeElement===k.currentTarget&&k.currentTarget.select()},[c]),y=bt.useCallback(k=>{c&&k.stopPropagation()},[c]),x=bt.useRef(c);bt.useEffect(()=>{c?(x.current=!0,requestAnimationFrame(()=>{m.current=!0;let k=g.current;k&&(k.focus(),k.select())})):x.current&&(u==null||u(),x.current=!1)},[c,u]);let P=bt.useRef(null);return bt.useLayoutEffect(()=>{let k=P.current;if(!k)return;let D=lo(e,o,p);k.style.transform=`scale(${a}, ${a}) translate(${s}px, ${l}px)`,k.style.width=p?`${p}px`:D[0]+1+"px",k.style.height=D[1]+1+"px"},[e,o,l,s,a,p]),(0,Os.jsx)(gf,{children:(0,Os.jsxs)(ff,{ref:P,hasText:!!e,isEditing:c,style:S({font:o,color:r&&!c?"transparent":t,backgroundColor:n&&n!=="transparent"?n:void 0,borderRadius:n&&n!=="transparent"?2:void 0,padding:n&&n!=="transparent"?"4px 6px":void 0},r&&!c?{background:Bo(r),WebkitBackgroundClip:"text",backgroundClip:"text"}:{}),children:[c?(0,Os.jsx)(Sf,{ref:g,style:{font:o,color:t},name:"text",tabIndex:-1,autoComplete:"false",autoCapitalize:"false",autoCorrect:"false",autoSave:"false",autoFocus:!0,placeholder:"",spellCheck:"true",wrap:"off",dir:"auto",datatype:"wysiwyg",defaultValue:e,color:t,onFocus:T,onChange:f,onKeyDown:v,onBlur:b,onPointerDown:y,onContextMenu:mt,onCopy:mt,onPaste:mt,onCut:mt}):e,"\u200B"]})})}),gf=R("div",{position:"absolute",top:0,left:0,width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"none",userSelect:"none",variants:{isGhost:{false:{opacity:1},true:{transition:"opacity .2s",opacity:.3}}}}),Bp={whiteSpace:"pre-wrap",overflowWrap:"break-word",letterSpacing:on},ff=R("div",S({position:"absolute",padding:"4px",zIndex:1,minHeight:1,minWidth:1,lineHeight:1,outline:0,fontWeight:"500",textAlign:"center",backfaceVisibility:"hidden",userSelect:"none",WebkitUserSelect:"none",WebkitTouchCallout:"none",variants:{hasText:{false:{pointerEvents:"none"},true:{pointerEvents:"all"}},isEditing:{false:{userSelect:"none"},true:{background:"$boundsBg",userSelect:"text",WebkitUserSelect:"text"}}}},Bp)),Sf=R("textarea",I(S({position:"absolute",top:0,left:0,zIndex:1,width:"100%",height:"100%",border:"none",padding:"4px",resize:"none",textAlign:"inherit",minHeight:"inherit",minWidth:"inherit",lineHeight:"inherit",outline:0,fontWeight:"inherit",overflow:"hidden",backfaceVisibility:"hidden",display:"inline-block",pointerEvents:"all",background:"$boundsBg",userSelect:"text",WebkitUserSelect:"text",fontSmooth:"always",WebkitFontSmoothing:"subpixel-antialiased",MozOsxFontSmoothing:"auto"},Bp),{"&:focus":{outline:"none",border:"none"}}));var kr=H(require("telva-vec"));function Vn(i,o,{initialShape:e,transformOrigin:t,scaleX:n,scaleY:r}){if(i.rotation||e.isAspectRatioLocked){let s=kr.default.toFixed(kr.default.mul(e.size,Math.min(Math.abs(n),Math.abs(r)))),l=kr.default.toFixed([o.minX+(o.width-i.size[0])*(n<0?1-t[0]:t[0]),o.minY+(o.height-i.size[1])*(r<0?1-t[1]:t[1])]),a=n<0&&r>=0||r<0&&n>=0?e.rotation?-e.rotation:0:e.rotation;return{size:s,point:l,rotation:a}}else return{point:kr.default.toFixed([o.minX,o.minY]),size:kr.default.toFixed([o.width,o.height])}}var ll=H(require("telva-vec"));function Hn(i,o){return{size:ll.default.toFixed([o.width,o.height]),point:ll.default.toFixed([o.minX,o.minY])}}var Ke=H(require("react"));var Se=require("react/jsx-runtime");function gi(i,o,e){i=i/360,o=o/100,e=e/100;let t=0,n=0,r=0,s=Math.floor(i*6),l=i*6-s,a=e*(1-o),c=e*(1-l*o),p=e*(1-(1-l)*o);switch(s%6){case 0:t=e,n=p,r=a;break;case 1:t=c,n=e,r=a;break;case 2:t=a,n=e,r=p;break;case 3:t=a,n=c,r=e;break;case 4:t=p,n=a,r=e;break;case 5:t=e,n=a,r=c;break}return[Math.round(t*255),Math.round(n*255),Math.round(r*255)]}function fi(i,o,e){i/=255,o/=255,e/=255;let t=Math.max(i,o,e),n=Math.min(i,o,e),r=t-n,s=0;r!==0&&(t===i?s=(o-e)/r%6:t===o?s=(e-i)/r+2:s=(i-o)/r+4,s=Math.round(s*60),s<0&&(s+=360));let l=t===0?0:Math.round(r/t*100),a=Math.round(t*100);return[s,l,a]}function Cr(i){let o=i.replace("#","").match(/.{2}/g);return o?[parseInt(o[0],16),parseInt(o[1],16),parseInt(o[2],16)]:[0,0,0]}function Si(i,o,e){return"#"+[i,o,e].map(t=>t.toString(16).padStart(2,"0")).join("")}var Hp="telva_color_history";function zp(){try{return JSON.parse(localStorage.getItem(Hp)||"[]").slice(0,16)}catch(i){return[]}}function wr(i){if(i==="transparent")return;let o=zp().filter(e=>e!==i);o.unshift(i),localStorage.setItem(Hp,JSON.stringify(o.slice(0,16)))}var dl='url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAIElEQVQYV2P8////fwYkwMjIyIjCZmBgYEBlMDIiiwEAGiYFA/wQA1AAAAAASUVORK5CYII=")';var $s=Ke.memo(function({color:o,opacity:e=1,onChange:t,showTransparent:n=!0,showOpacity:r=!0}){let s=o==="transparent",l=s?[255,255,255]:Cr(o),[a,c]=Ke.useState(()=>fi(...l));Ke.useEffect(()=>{if(!s){let y=Cr(o),x=fi(...y);c(x)}},[o]);let p=Ke.useRef(null),u=Ke.useRef(null);Ke.useEffect(()=>{let y=p.current;if(!y)return;let x=y.getContext("2d"),P=y.width,k=y.height,[D,C,E]=gi(a[0],100,100);x.fillStyle=`rgb(${D},${C},${E})`,x.fillRect(0,0,P,k);let M=x.createLinearGradient(0,0,P,0);M.addColorStop(0,"rgba(255,255,255,1)"),M.addColorStop(1,"rgba(255,255,255,0)"),x.fillStyle=M,x.fillRect(0,0,P,k);let L=x.createLinearGradient(0,0,0,k);L.addColorStop(0,"rgba(0,0,0,0)"),L.addColorStop(1,"rgba(0,0,0,1)"),x.fillStyle=L,x.fillRect(0,0,P,k)},[a[0]]),Ke.useEffect(()=>{let y=u.current;if(!y)return;let x=y.getContext("2d"),P=y.width,k=x.createLinearGradient(0,0,P,0);for(let D=0;D<=6;D++){let[C,E,M]=gi(D/6*360,100,100);k.addColorStop(D/6,`rgb(${C},${E},${M})`)}x.fillStyle=k,x.fillRect(0,0,P,y.height)},[]);let h=Ke.useCallback((y,x,P,k)=>{let[D,C,E]=gi(y,x,P),M=Si(D,C,E);wr(M),t(M,k)},[t]),g=Ke.useCallback(y=>{y.preventDefault(),y.stopPropagation();let P=p.current.getBoundingClientRect(),k=E=>{let M=Math.max(0,Math.min(100,(E.clientX-P.left)/P.width*100)),L=Math.max(0,Math.min(100,(1-(E.clientY-P.top)/P.height)*100));c([a[0],M,L]),h(a[0],M,L,e)};k(y);let D=E=>k(E),C=()=>{document.removeEventListener("pointermove",D),document.removeEventListener("pointerup",C)};document.addEventListener("pointermove",D),document.addEventListener("pointerup",C)},[a,e,h]),m=Ke.useCallback(y=>{y.preventDefault(),y.stopPropagation();let P=u.current.getBoundingClientRect(),k=E=>{let M=Math.max(0,Math.min(360,(E.clientX-P.left)/P.width*360));c([M,a[1],a[2]]),h(M,a[1],a[2],e)};k(y);let D=E=>k(E),C=()=>{document.removeEventListener("pointermove",D),document.removeEventListener("pointerup",C)};document.addEventListener("pointermove",D),document.addEventListener("pointerup",C)},[a,e,h]),f=Ke.useRef(null),v=Ke.useCallback(y=>{y.preventDefault(),y.stopPropagation();let P=f.current.getBoundingClientRect(),k=E=>{let M=Math.max(0,Math.min(1,(E.clientX-P.left)/P.width));s?t("transparent",M):h(a[0],a[1],a[2],M)};k(y);let D=E=>k(E),C=()=>{document.removeEventListener("pointermove",D),document.removeEventListener("pointerup",C)};document.addEventListener("pointermove",D),document.addEventListener("pointerup",C)},[a,s,h,t]),b=s?"transparent":Si(...gi(a[0],a[1],a[2])),T=s?[255,255,255]:gi(a[0],a[1],a[2]);return(0,Se.jsxs)(yf,{onClick:y=>y.stopPropagation(),onPointerDown:y=>y.stopPropagation(),children:[(0,Se.jsxs)(bf,{children:[(0,Se.jsx)("canvas",{ref:p,width:200,height:130,onPointerDown:g,style:{width:"100%",height:"100%",cursor:"crosshair",borderRadius:4}}),!s&&(0,Se.jsx)(vf,{style:{left:`${a[1]}%`,top:`${100-a[2]}%`,borderColor:a[2]>50?"#000":"#fff"}})]}),(0,Se.jsxs)(Mp,{children:[(0,Se.jsx)("canvas",{ref:u,width:200,height:12,onPointerDown:m,style:{width:"100%",height:"100%",cursor:"pointer",borderRadius:6}}),!s&&(0,Se.jsx)(Lp,{style:{left:`${a[0]/360*100}%`}})]}),r&&(0,Se.jsxs)(Mp,{children:[(0,Se.jsx)(Tf,{ref:f,onPointerDown:v,style:{background:`linear-gradient(to right, transparent, ${b==="transparent"?"#fff":b})`,cursor:"pointer"}}),(0,Se.jsx)(Lp,{style:{left:`${e*100}%`}})]}),(0,Se.jsxs)(xf,{children:[(0,Se.jsx)(Cf,{value:s?"":b.replace("#",""),placeholder:"hex",maxLength:6,onChange:y=>{let x=y.target.value.replace(/[^0-9a-fA-F]/g,"").slice(0,6);if(x.length===6){let P=Cr("#"+x);c(fi(...P)),t("#"+x,e),wr("#"+x)}},onKeyDown:y=>y.stopPropagation()}),[0,1,2].map(y=>(0,Se.jsx)(Ap,{value:T[y],type:"number",min:0,max:255,onChange:x=>{let P=Math.max(0,Math.min(255,Number(x.target.value))),k=[...T];k[y]=P,c(fi(...k));let D=Si(...k);t(D,e),wr(D)},onKeyDown:x=>x.stopPropagation()},y)),r&&(0,Se.jsx)(Ap,{value:Math.round(e*100),type:"number",min:0,max:100,onChange:y=>{let x=Math.max(0,Math.min(100,Number(y.target.value)))/100;s?t("transparent",x):h(a[0],a[1],a[2],x)},onKeyDown:y=>y.stopPropagation(),style:{width:32}})]}),(0,Se.jsxs)(kf,{children:[(0,Se.jsx)("span",{style:{flex:2},children:"Hex"}),(0,Se.jsx)("span",{children:"R"}),(0,Se.jsx)("span",{children:"G"}),(0,Se.jsx)("span",{children:"B"}),r&&(0,Se.jsx)("span",{children:"A"})]}),(0,Se.jsxs)(wf,{children:[n&&(0,Se.jsx)(Vp,{title:"Transparent",$active:s,style:{backgroundImage:dl,backgroundSize:"6px 6px"},onClick:()=>t("transparent",e)}),zp().map(y=>(0,Se.jsx)(Vp,{style:{backgroundColor:y},$active:b===y,onClick:()=>{let x=Cr(y);c(fi(...x)),t(y,e)}},y))]})]})}),Ir=Ke.memo(function({color:o,opacity:e=1,onChange:t,showTransparent:n=!0,showOpacity:r=!0,label:s}){let[l,a]=Ke.useState(!1),c=Ke.useRef(null),p=o==="transparent";return Ke.useEffect(()=>{let h=g=>{c.current&&!c.current.contains(g.target)&&a(!1)};return document.addEventListener("mousedown",h),()=>document.removeEventListener("mousedown",h)},[]),(0,Se.jsxs)(If,{ref:c,children:[(0,Se.jsxs)(Pf,{children:[s&&(0,Se.jsx)(Rf,{children:s}),(0,Se.jsx)(Df,{onClick:()=>a(!l),style:{backgroundColor:p?"transparent":o,backgroundImage:p?dl:"none",backgroundSize:"6px 6px"}}),(0,Se.jsx)(Ef,{value:p?"":(p?"transparent":o).replace("#","").toUpperCase(),placeholder:"\u2014",maxLength:6,onChange:h=>{let g=h.target.value;if(g.toLowerCase()==="transparent"){t("transparent",e);return}let m=g.replace(/[^0-9a-fA-F#]/g,"").slice(0,7);if(/^#[0-9a-fA-F]{6}$/i.test(m)||/^[0-9a-fA-F]{6}$/i.test(m)){let f=m.startsWith("#")?m:"#"+m;t(f,e),wr(f)}},onKeyDown:h=>h.stopPropagation()}),(0,Se.jsxs)(Bf,{children:[Math.round(e*100),"%"]})]}),l&&(0,Se.jsx)(Mf,{children:(0,Se.jsx)($s,{color:o,opacity:e,onChange:(h,g)=>t(h,g),showTransparent:n,showOpacity:r})})]})}),yf=R("div",{background:"$panel",border:"1px solid $separator",borderRadius:"8px",padding:"8px",display:"flex",flexDirection:"column",gap:"6px",boxShadow:"0 8px 32px rgba(0,0,0,0.45)",minWidth:210}),bf=R("div",{position:"relative",width:"100%",height:130,borderRadius:4,overflow:"hidden"}),vf=R("div",{position:"absolute",width:10,height:10,borderRadius:"50%",border:"2px solid white",transform:"translate(-50%, -50%)",pointerEvents:"none",boxShadow:"0 0 2px rgba(0,0,0,0.5)"}),Mp=R("div",{position:"relative",width:"100%",height:12,borderRadius:6,overflow:"visible"}),Lp=R("div",{position:"absolute",top:"50%",width:14,height:14,borderRadius:"50%",background:"#fff",border:"2px solid rgba(0,0,0,0.2)",boxShadow:"0 1px 3px rgba(0,0,0,0.3)",transform:"translate(-50%, -50%)",pointerEvents:"none"}),Tf=R("div",{width:"100%",height:"100%",borderRadius:6,backgroundImage:dl,backgroundSize:"8px 8px",position:"relative"}),xf=R("div",{display:"flex",gap:3,alignItems:"center"}),kf=R("div",{display:"flex",gap:3,fontSize:"7px",color:"rgba(255,255,255,0.35)",padding:"0 1px","& > span":{flex:1,textAlign:"center"}}),Cf=R("input",{flex:2,background:"$inputBg",border:"1px solid $inputBorder",borderRadius:4,color:"$text",fontSize:"9px",padding:"3px 5px",fontFamily:"$mono",outline:"none",textTransform:"uppercase","&:focus":{borderColor:"$accent"},"&::-webkit-inner-spin-button, &::-webkit-outer-spin-button":{display:"none"}}),Ap=R("input",{flex:1,width:28,background:"$inputBg",border:"1px solid $inputBorder",borderRadius:4,color:"$text",fontSize:"9px",padding:"3px 4px",fontFamily:"$mono",outline:"none",textAlign:"center","&:focus":{borderColor:"$accent"},"&::-webkit-inner-spin-button, &::-webkit-outer-spin-button":{display:"none"}}),wf=R("div",{display:"flex",flexWrap:"wrap",gap:3,paddingTop:2}),Vp=R("div",{width:18,height:18,borderRadius:3,cursor:"pointer",border:"1px solid $separator",transition:"transform 0.08s, box-shadow 0.08s","&:hover":{transform:"scale(1.15)"},variants:{$active:{true:{boxShadow:"0 0 0 2px $colors$accent",transform:"scale(1.1)"}}}}),If=R("div",{position:"relative",width:"100%"}),Pf=R("div",{display:"flex",alignItems:"center",gap:4}),Rf=R("label",{fontSize:"9px",color:"$textSecondary",fontWeight:500,width:36,flexShrink:0,textAlign:"right"}),Df=R("div",{width:20,height:20,borderRadius:"$0",border:"1px solid $separator",flexShrink:0,cursor:"pointer",transition:"box-shadow 0.08s","&:hover":{boxShadow:"0 0 0 1px $colors$accent"}}),Ef=R("input",{flex:1,background:"$inputBg",border:"1px solid $inputBorder",borderRadius:"$1",color:"$text",fontSize:"9px",padding:"3px 5px",fontFamily:"$mono",outline:"none",textTransform:"uppercase","&:focus":{borderColor:"$accent"}}),Bf=R("span",{fontSize:"9px",color:"$textSecondary",fontFamily:"$mono",width:32,textAlign:"initial",flexShrink:0}),Mf=R("div",{position:"absolute",top:"100%",left:0,right:0,zIndex:1e3,marginTop:4,boxShadow:"0 8px 32px rgba(0,0,0,0.5)",borderRadius:"$2",overflow:"visible"});var Wt=H(require("react"));var Pr=require("react/jsx-runtime"),Qe=Wt.memo(function({value:o,onChange:e,label:t,min:n=-1/0,max:r=1/0,step:s=1,suffix:l,style:a,labelWidth:c=18}){let[p,u]=Wt.useState(!1),[h,g]=Wt.useState(String(o)),m=Wt.useRef(null),f=Wt.useRef({active:!1,startX:0,startVal:0});Wt.useEffect(()=>{p||g(String(Math.round(o*100)/100))},[o,p]);let v=x=>Math.min(r,Math.max(n,x)),b=Wt.useCallback(x=>{x.preventDefault(),x.stopPropagation(),f.current={active:!0,startX:x.clientX,startVal:o};let P=x.currentTarget;P.setPointerCapture(x.pointerId);let k=C=>{if(!f.current.active)return;let E=C.clientX-f.current.startX,M=C.shiftKey?10:C.altKey?.1:1,L=Math.round(E*M*s);e(v(f.current.startVal+L))},D=()=>{f.current.active=!1,P.releasePointerCapture(x.pointerId),document.removeEventListener("pointermove",k),document.removeEventListener("pointerup",D)};document.addEventListener("pointermove",k),document.addEventListener("pointerup",D)},[o,e,n,r,s]),T=Wt.useCallback(x=>{x.preventDefault(),x.stopPropagation();let P=x.clientX,k=o,D=!1;f.current={active:!0,startX:P,startVal:k};let C=M=>{let L=M.clientX-P;if(Math.abs(L)>2&&(D=!0),!D)return;let V=M.shiftKey?10:M.altKey?.1:1,X=Math.round(L*V*s);e(v(k+X))},E=()=>{f.current.active=!1,document.removeEventListener("pointermove",C),document.removeEventListener("pointerup",E),D||(u(!0),setTimeout(()=>{var M;return(M=m.current)==null?void 0:M.select()},0))};document.addEventListener("pointermove",C),document.addEventListener("pointerup",E)},[o,e,n,r,s]),y=Wt.useCallback(()=>{u(!1);let x=parseFloat(h);isNaN(x)||e(v(x))},[h,e,n,r]);return(0,Pr.jsxs)(Lf,{style:a,children:[t&&(0,Pr.jsx)(Af,{style:{width:c,cursor:"ew-resize"},onPointerDown:b,children:t}),p?(0,Pr.jsx)(Vf,{ref:m,value:h,onChange:x=>g(x.target.value),onBlur:y,onKeyDown:x=>{x.key==="Enter"&&y(),x.key==="Escape"&&u(!1),x.stopPropagation()},autoFocus:!0}):(0,Pr.jsxs)(Hf,{onPointerDown:T,children:[Math.round(o*100)/100,l&&(0,Pr.jsx)(zf,{children:l})]})]})}),Lf=R("div",{display:"flex",alignItems:"center",gap:"4px",minWidth:0}),Af=R("label",{fontSize:"9px",color:"$textSecondary",fontWeight:500,flexShrink:0,textAlign:"right",userSelect:"none",cursor:"ew-resize","&:active":{cursor:"ew-resize"}}),Vf=R("input",{width:"100%",background:"$inputBg",border:"1px solid $accent",borderRadius:"$1",color:"$text",fontSize:"10px",padding:"3px 5px",fontFamily:"$mono",outline:"none","&::-webkit-inner-spin-button, &::-webkit-outer-spin-button":{display:"none"}}),Hf=R("div",{flex:1,background:"$inputBg",border:"1px solid $inputBorder",borderRadius:"$1",color:"$text",fontSize:"10px",padding:"3px 5px",fontFamily:"$mono",cursor:"ew-resize",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",userSelect:"none",transition:"border-color 0.1s","&:hover":{borderColor:"$accent"}}),zf=R("span",{fontSize:"8px",color:"$textSecondary",marginLeft:"1px"});var dt=H(require("react"));var O=require("react/jsx-runtime");function Yo(i){let e=[...i.stops].sort((t,n)=>t.position-n.position).map(t=>{let n=t.color,r=Math.round(t.opacity*255).toString(16).padStart(2,"0");return`${n}${r} ${t.position}%`}).join(", ");switch(i.type){case"linear":return`linear-gradient(${i.angle}deg, ${e})`;case"radial":return`radial-gradient(circle at ${i.centerX}% ${i.centerY}%, ${e})`;case"conic":return`conic-gradient(from ${i.angle}deg at ${i.centerX}% ${i.centerY}%, ${e})`;case"diamond":return`conic-gradient(from ${i.angle}deg, ${e})`}}var Ff={type:"linear",stops:[{color:"#0D99FF",position:0,opacity:1},{color:"#FF6B00",position:100,opacity:1}],angle:90,centerX:50,centerY:50},pl="telva_gradient_presets";function ul(){try{return JSON.parse(localStorage.getItem(pl)||"[]")}catch(i){return[]}}function Of(i){let o=ul();o.unshift(i),localStorage.setItem(pl,JSON.stringify(o.slice(0,12)))}function $f(i){let o=ul();o.splice(i,1),localStorage.setItem(pl,JSON.stringify(o))}function Gf(){return(0,O.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,O.jsx)("defs",{children:(0,O.jsxs)("linearGradient",{id:"lg",x1:"0",y1:"0",x2:"1",y2:"1",children:[(0,O.jsx)("stop",{offset:"0%",stopColor:"#0D99FF"}),(0,O.jsx)("stop",{offset:"100%",stopColor:"#FF6B00"})]})}),(0,O.jsx)("rect",{x:"1",y:"1",width:"12",height:"12",rx:"2",fill:"url(#lg)"})]})}function jf(){return(0,O.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,O.jsx)("defs",{children:(0,O.jsxs)("radialGradient",{id:"rg",children:[(0,O.jsx)("stop",{offset:"0%",stopColor:"#0D99FF"}),(0,O.jsx)("stop",{offset:"100%",stopColor:"#FF6B00"})]})}),(0,O.jsx)("rect",{x:"1",y:"1",width:"12",height:"12",rx:"2",fill:"url(#rg)"})]})}function Wf(){return(0,O.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,O.jsx)("circle",{cx:"7",cy:"7",r:"6",fill:"none",stroke:"#0D99FF",strokeWidth:"1.5"}),(0,O.jsx)("line",{x1:"7",y1:"7",x2:"7",y2:"1",stroke:"#FF6B00",strokeWidth:"1.5"})]})}function Nf(){return(0,O.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,O.jsx)("polygon",{points:"7,1 13,7 7,13 1,7",fill:"none",stroke:"#0D99FF",strokeWidth:"1.2"}),(0,O.jsx)("circle",{cx:"7",cy:"7",r:"2",fill:"#FF6B00"})]})}var Uf={linear:(0,O.jsx)(Gf,{}),radial:(0,O.jsx)(jf,{}),conic:(0,O.jsx)(Wf,{}),diamond:(0,O.jsx)(Nf,{})},js=dt.memo(function({value:o,onChange:e}){let[t,n]=dt.useState(o||Ff),[r,s]=dt.useState(0),[l,a]=dt.useState(!1),c=dt.useRef(null),p=dt.useRef(null);dt.useEffect(()=>{o&&n(o)},[o]),dt.useEffect(()=>{let y=P=>{(P.key==="Delete"||P.key==="Backspace")&&t.stops.length>2&&(P.preventDefault(),m(r))},x=p.current;if(x)return x.addEventListener("keydown",y),()=>x.removeEventListener("keydown",y)},[t.stops.length,r]);let u=dt.useCallback(y=>{n(x=>{let P=S(S({},x),y);return e(P,Yo(P)),P})},[e]),h=dt.useCallback((y,x)=>{n(P=>{let k=P.stops.map((C,E)=>E===y?S(S({},C),x):C),D=I(S({},P),{stops:k});return e(D,Yo(D)),D})},[e]),g=dt.useCallback(y=>{if(!c.current||y.target.dataset.thumb)return;let x=c.current.getBoundingClientRect(),P=Math.round((y.clientX-x.left)/x.width*100),k={color:"#888888",position:P,opacity:1};n(D=>{let C=[...D.stops,k],E=I(S({},D),{stops:C});return e(E,Yo(E)),s(C.length-1),E})},[e]),m=dt.useCallback(y=>{t.stops.length<=2||n(x=>{let P=x.stops.filter((D,C)=>C!==y),k=I(S({},x),{stops:P});return e(k,Yo(k)),s(Math.min(y,P.length-1)),k})},[t.stops.length,e]),f=dt.useCallback((y,x)=>{y.preventDefault(),y.stopPropagation(),s(x);let P=c.current.getBoundingClientRect(),k=C=>{let E=Math.max(0,Math.min(100,Math.round((C.clientX-P.left)/P.width*100)));h(x,{position:E})},D=()=>{document.removeEventListener("pointermove",k),document.removeEventListener("pointerup",D)};document.addEventListener("pointermove",k),document.addEventListener("pointerup",D)},[h]),v=Yo(t),b=t.stops[r],T=ul();return(0,O.jsxs)(Kf,{ref:p,tabIndex:-1,onClick:y=>y.stopPropagation(),onPointerDown:y=>y.stopPropagation(),children:[(0,O.jsx)(_f,{children:["linear","radial","conic","diamond"].map(y=>(0,O.jsxs)(Yf,{$active:t.type===y,onClick:()=>u({type:y}),title:y.charAt(0).toUpperCase()+y.slice(1),children:[Uf[y],(0,O.jsx)(Xf,{children:y.charAt(0).toUpperCase()+y.slice(1)})]},y))}),(0,O.jsx)(Zf,{style:{background:v}}),(0,O.jsxs)(qf,{children:[(0,O.jsxs)(Jf,{children:["Stops (",t.stops.length,")"]}),(0,O.jsxs)(Qf,{ref:c,onClick:g,children:[(0,O.jsx)(eS,{style:{background:v}}),t.stops.map((y,x)=>(0,O.jsx)(tS,{"data-thumb":"true",$selected:x===r,style:{left:`${y.position}%`,backgroundColor:y.color},onPointerDown:P=>f(P,x),onDoubleClick:()=>m(x)},x))]}),(0,O.jsx)(Fp,{children:"Click to add \xB7 Double-click to remove \xB7 Drag to move"})]}),b&&(0,O.jsxs)(nS,{children:[(0,O.jsxs)(oS,{children:["Stop ",r+1]}),(0,O.jsx)(Gs,{type:"number",min:0,max:100,value:b.position,onChange:y=>h(r,{position:Math.max(0,Math.min(100,Number(y.target.value)))}),onKeyDown:y=>y.stopPropagation()}),(0,O.jsx)(vo,{children:"%"})]}),b&&(0,O.jsx)($s,{color:b.color,opacity:b.opacity,onChange:(y,x)=>{h(r,{color:y,opacity:x}),y!=="transparent"&&wr(y)},showTransparent:!1}),(0,O.jsxs)(rS,{children:[(0,O.jsx)(iS,{children:"Geometry"}),(t.type==="linear"||t.type==="conic")&&(0,O.jsxs)(Op,{children:[(0,O.jsx)(vo,{children:"Angle"}),(0,O.jsx)(sS,{style:{transform:`rotate(${t.angle}deg)`},onPointerDown:y=>{y.preventDefault(),y.stopPropagation();let x=y.currentTarget.getBoundingClientRect(),P=x.left+x.width/2,k=x.top+x.height/2,D=E=>{let M=Math.round(Math.atan2(E.clientY-k,E.clientX-P)*(180/Math.PI)+90);u({angle:(M%360+360)%360})},C=()=>{document.removeEventListener("pointermove",D),document.removeEventListener("pointerup",C)};document.addEventListener("pointermove",D),document.addEventListener("pointerup",C)},children:(0,O.jsx)(aS,{})}),(0,O.jsx)(Gs,{type:"number",value:t.angle,onChange:y=>u({angle:(Number(y.target.value)%360+360)%360}),onKeyDown:y=>y.stopPropagation()}),(0,O.jsx)(vo,{children:"\xB0"})]}),(t.type==="radial"||t.type==="conic"||t.type==="diamond")&&(0,O.jsxs)(Op,{children:[(0,O.jsx)(vo,{children:"Center"}),(0,O.jsx)(vo,{children:"X"}),(0,O.jsx)(Gs,{type:"number",min:0,max:100,value:t.centerX,onChange:y=>u({centerX:Number(y.target.value)}),onKeyDown:y=>y.stopPropagation()}),(0,O.jsx)(vo,{children:"%"}),(0,O.jsx)(vo,{style:{marginLeft:4},children:"Y"}),(0,O.jsx)(Gs,{type:"number",min:0,max:100,value:t.centerY,onChange:y=>u({centerY:Number(y.target.value)}),onKeyDown:y=>y.stopPropagation()}),(0,O.jsx)(vo,{children:"%"})]})]}),(0,O.jsxs)(lS,{children:[(0,O.jsxs)(cl,{onClick:()=>{let y=[...t.stops].map(x=>I(S({},x),{position:100-x.position}));u({stops:y})},title:"Reverse gradient",children:[(0,O.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",children:(0,O.jsx)("path",{d:"M1 6h10M3 4l-2 2 2 2M9 4l2 2-2 2",stroke:"currentColor",strokeWidth:"1.2",fill:"none"})}),"Reverse"]}),(0,O.jsxs)(cl,{onClick:()=>m(r),disabled:t.stops.length<=2,title:"Remove selected stop",children:[(0,O.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",children:(0,O.jsx)("path",{d:"M3 3l6 6M9 3l-6 6",stroke:"currentColor",strokeWidth:"1.2"})}),"Remove"]}),(0,O.jsxs)(cl,{onClick:()=>{Of(t),a(!0)},title:"Save as preset",children:[(0,O.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",children:[(0,O.jsx)("path",{d:"M2 2h8v8H2z",fill:"none",stroke:"currentColor",strokeWidth:"1"}),(0,O.jsx)("path",{d:"M4 2v3h4V2",fill:"none",stroke:"currentColor",strokeWidth:"0.8"}),(0,O.jsx)("rect",{x:"3",y:"7",width:"6",height:"1",fill:"currentColor",opacity:"0.5"})]}),"Save"]})]}),(l||T.length>0)&&(0,O.jsxs)(dS,{children:[(0,O.jsxs)(cS,{onClick:()=>a(!l),children:["Presets (",T.length,")",(0,O.jsx)(pS,{children:l?"\u2212":"+"})]}),l&&(0,O.jsxs)(uS,{children:[T.map((y,x)=>(0,O.jsx)(hS,{style:{background:Yo(y)},onClick:()=>{n(y),e(y,Yo(y)),s(0)},onContextMenu:P=>{P.preventDefault(),$f(x),a(!0)},title:"Click to apply \xB7 Right-click to remove"},x)),T.length===0&&(0,O.jsx)(Fp,{children:"No presets saved yet"})]})]})]})}),Kf=R("div",{background:"$panel",border:"1px solid $separator",borderRadius:"8px",padding:"8px",display:"flex",flexDirection:"column",gap:"8px",boxShadow:"0 8px 32px rgba(0,0,0,0.45)",outline:"none"}),_f=R("div",{display:"flex",gap:2,background:"$inputBg",borderRadius:6,padding:2}),Yf=R("button",{all:"unset",flex:1,display:"flex",alignItems:"center",justifyContent:"center",gap:3,fontSize:"8px",fontWeight:600,textAlign:"center",padding:"5px 0",borderRadius:4,color:"$textSecondary",cursor:"pointer",transition:"all 0.12s","&:hover":{color:"$text"},variants:{$active:{true:{background:"$accent",color:"#fff"}}}}),Xf=R("span",{fontSize:"7px",fontWeight:500,letterSpacing:"0.02em"}),Zf=R("div",{width:"100%",height:40,borderRadius:6,border:"1px solid $separator"}),qf=R("div",{display:"flex",flexDirection:"column",gap:4}),Jf=R("span",{fontSize:"8px",color:"$textSecondary",fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em"}),Qf=R("div",{position:"relative",height:24,borderRadius:6,cursor:"crosshair",overflow:"visible"}),eS=R("div",{width:"100%",height:"100%",borderRadius:6,border:"1px solid $separator"}),tS=R("div",{position:"absolute",top:"50%",width:14,height:14,borderRadius:"50%",border:"2px solid #fff",transform:"translate(-50%, -50%)",cursor:"ew-resize",boxShadow:"0 1px 3px rgba(0,0,0,0.4)",transition:"box-shadow 0.08s",zIndex:2,variants:{$selected:{true:{boxShadow:"0 0 0 2px $colors$accent, 0 1px 4px rgba(0,0,0,0.5)",zIndex:3,width:16,height:16}}}}),Fp=R("span",{fontSize:"7px",color:"$textSecondary",fontStyle:"italic",opacity:.6}),nS=R("div",{display:"flex",alignItems:"center",gap:4}),oS=R("span",{fontSize:"8px",color:"$textSecondary",fontWeight:500,flex:1}),rS=R("div",{display:"flex",flexDirection:"column",gap:6,borderTop:"1px solid $separator",paddingTop:8}),iS=R("span",{fontSize:"8px",color:"$textSecondary",fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em"}),Op=R("div",{display:"flex",alignItems:"center",gap:4}),vo=R("span",{fontSize:"8px",color:"$textSecondary",fontWeight:500}),Gs=R("input",{width:40,background:"$inputBg",border:"1px solid $inputBorder",borderRadius:4,color:"$text",fontSize:"9px",padding:"3px 4px",fontFamily:"$mono",textAlign:"center",outline:"none","&:focus":{borderColor:"$accent"},"&::-webkit-inner-spin-button, &::-webkit-outer-spin-button":{display:"none"}}),sS=R("div",{width:28,height:28,borderRadius:"50%",border:"1px solid $inputBorder",background:"$inputBg",cursor:"pointer",position:"relative",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0}),aS=R("div",{width:2,height:"40%",background:"$accent",borderRadius:1,position:"absolute",top:3,left:"50%",transform:"translateX(-50%)"}),lS=R("div",{display:"flex",gap:3,borderTop:"1px solid $separator",paddingTop:8}),cl=R("button",{all:"unset",flex:1,fontSize:"8px",fontWeight:500,textAlign:"center",padding:"5px 0",borderRadius:4,color:"$textSecondary",border:"1px solid $separator",cursor:"pointer",transition:"all 0.1s",display:"flex",alignItems:"center",justifyContent:"center",gap:3,"&:hover":{background:"$hover",color:"$text"},"&:disabled":{opacity:.3,cursor:"default"}}),dS=R("div",{borderTop:"1px solid $separator",paddingTop:6}),cS=R("div",{display:"flex",alignItems:"center",justifyContent:"space-between",fontSize:"8px",color:"$textSecondary",fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em",cursor:"pointer","&:hover":{color:"$text"}}),pS=R("span",{fontSize:"10px",color:"$textSecondary"}),uS=R("div",{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:4,marginTop:6}),hS=R("div",{height:24,borderRadius:4,border:"1px solid $separator",cursor:"pointer",transition:"transform 0.08s, box-shadow 0.08s","&:hover":{transform:"scale(1.05)",boxShadow:"0 0 0 1px $colors$accent"}});var w=require("react/jsx-runtime");function Np(i,o){let[e,t,n]=Cr(i);return`rgba(${e},${t},${n},${o.toFixed(3)})`}function Up(i,o){if(!i||i==="transparent")return{hex:"transparent",opacity:1};let e=i.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*([\d.]+))?\)/);return e?{hex:Si(parseInt(e[1]),parseInt(e[2]),parseInt(e[3])),opacity:e[4]!==void 0?parseFloat(e[4]):1}:i.startsWith("#")?{hex:i.slice(0,7),opacity:1}:{hex:o,opacity:1}}var yS=i=>{let o=i.document.pages[i.appState.currentPageId],t=i.document.pageStates[i.appState.currentPageId].selectedIds.map(n=>o.shapes[n]).filter(Boolean);return{shapes:t,key:JSON.stringify(t)}},bS=i=>i.settings.isDarkMode?"dark":"light",fl=Re.memo(function(){let o=_(),{shapes:e}=o.useStore(yS),t=o.useStore(bS);if(e.length===0)return(0,w.jsx)(_p,{children:(0,w.jsxs)(no,{children:[(0,w.jsx)(Co,{children:"Design"}),(0,w.jsx)(VS,{children:"Select an element to edit"})]})});let n=e[0],r=e.length>1,s=n.type==="text"||n.type==="sticky"||"label"in n,l=n.type==="arrow",a=n.type==="rectangle",c=n.type==="pen";return(0,w.jsxs)(_p,{children:[(0,w.jsx)(vS,{shape:n,multi:r,count:e.length}),(0,w.jsx)(pn,{}),!r&&c&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(LS,{shape:n,app:o}),(0,w.jsx)(pn,{})]}),!r&&(0,w.jsx)(TS,{shape:n,app:o}),r&&(0,w.jsx)(MS,{app:o}),(0,w.jsx)(pn,{}),!r&&(0,w.jsx)(xS,{shape:n,app:o}),!r&&(0,w.jsx)(pn,{}),(0,w.jsx)(kS,{shape:n,app:o,isRect:a}),(0,w.jsx)(pn,{}),(0,w.jsx)(CS,{style:n.style,theme:t,app:o}),(0,w.jsx)(pn,{}),(0,w.jsx)(Xo,{title:"Stroke",children:(0,w.jsx)(wS,{style:n.style,theme:t,app:o})}),(0,w.jsx)(pn,{}),(0,w.jsx)(Xo,{title:"Gradient",children:(0,w.jsx)(IS,{shape:n,app:o})}),(0,w.jsx)(pn,{}),s&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(Xo,{title:"Text Style",defaultOpen:!0,children:(0,w.jsx)(PS,{style:n.style,app:o,theme:t})}),(0,w.jsx)(pn,{})]}),(0,w.jsx)(Xo,{title:"Effects",children:(0,w.jsx)(DS,{shape:n,app:o})}),(0,w.jsx)(pn,{}),l&&!r&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(Xo,{title:"Arrow",defaultOpen:!0,children:(0,w.jsx)(ES,{shape:n,app:o})}),(0,w.jsx)(pn,{})]}),s&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(Xo,{title:"Typography",defaultOpen:!0,children:(0,w.jsx)(BS,{style:n.style,app:o})}),(0,w.jsx)(pn,{})]}),(0,w.jsx)(Xo,{title:"Export",children:(0,w.jsx)(AS,{shape:n,app:o})}),(0,w.jsx)("div",{style:{height:40}})]})});function vS({shape:i,multi:o,count:e}){let t=o?e+" Selected":i.type.charAt(0).toUpperCase()+i.type.slice(1);return(0,w.jsx)(no,{style:{padding:"10px 12px 6px"},children:(0,w.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,w.jsx)(Co,{style:{marginBottom:0,fontSize:"11px"},children:t}),(0,w.jsx)("div",{style:{display:"flex",gap:4},children:["\u229E","\u25D1","\u229F","\u22A0"].map((n,r)=>(0,w.jsx)(Zp,{title:["Clip Mask","Component","Boolean","Flatten"][r],children:n},r))})]})})}function TS({shape:i,app:o}){let e=i.point||[0,0],t=Math.round((i.rotation||0)*(180/Math.PI)),n=Re.useCallback((r,s)=>{let l={id:i.id};switch(r){case"x":l.point=[s,e[1]];break;case"y":l.point=[e[0],s];break;case"r":l.rotation=s*Math.PI/180;break}o.updateShapes(l)},[i.id,e,o]);return(0,w.jsxs)(no,{children:[(0,w.jsx)(Co,{children:"Position"}),(0,w.jsx)(Ns,{children:[{fn:()=>o.align("left"),icon:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"2",y1:"2",x2:"2",y2:"12",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("rect",{x:"4",y:"4",width:"7",height:"2.5",rx:"0.5",fill:"currentColor",opacity:"0.6"}),(0,w.jsx)("rect",{x:"4",y:"8",width:"5",height:"2.5",rx:"0.5",fill:"currentColor",opacity:"0.6"})]}),t:"Left"},{fn:()=>o.align("centerHorizontal"),icon:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"7",y1:"1",x2:"7",y2:"13",stroke:"currentColor",strokeWidth:"1",strokeDasharray:"2 1"}),(0,w.jsx)("rect",{x:"3",y:"4",width:"8",height:"2.5",rx:"0.5",fill:"currentColor",opacity:"0.6"}),(0,w.jsx)("rect",{x:"4",y:"8",width:"6",height:"2.5",rx:"0.5",fill:"currentColor",opacity:"0.6"})]}),t:"Center H"},{fn:()=>o.align("right"),icon:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"12",y1:"2",x2:"12",y2:"12",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("rect",{x:"3",y:"4",width:"7",height:"2.5",rx:"0.5",fill:"currentColor",opacity:"0.6"}),(0,w.jsx)("rect",{x:"5",y:"8",width:"5",height:"2.5",rx:"0.5",fill:"currentColor",opacity:"0.6"})]}),t:"Right"},{fn:()=>o.align("top"),icon:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"2",y1:"2",x2:"12",y2:"2",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("rect",{x:"4",y:"4",width:"2.5",height:"7",rx:"0.5",fill:"currentColor",opacity:"0.6"}),(0,w.jsx)("rect",{x:"8",y:"4",width:"2.5",height:"5",rx:"0.5",fill:"currentColor",opacity:"0.6"})]}),t:"Top"},{fn:()=>o.align("centerVertical"),icon:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"1",y1:"7",x2:"13",y2:"7",stroke:"currentColor",strokeWidth:"1",strokeDasharray:"2 1"}),(0,w.jsx)("rect",{x:"4",y:"2",width:"2.5",height:"10",rx:"0.5",fill:"currentColor",opacity:"0.6"}),(0,w.jsx)("rect",{x:"8",y:"3",width:"2.5",height:"8",rx:"0.5",fill:"currentColor",opacity:"0.6"})]}),t:"Center V"},{fn:()=>o.align("bottom"),icon:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"2",y1:"12",x2:"12",y2:"12",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("rect",{x:"4",y:"3",width:"2.5",height:"7",rx:"0.5",fill:"currentColor",opacity:"0.6"}),(0,w.jsx)("rect",{x:"8",y:"5",width:"2.5",height:"5",rx:"0.5",fill:"currentColor",opacity:"0.6"})]}),t:"Bottom"}].map(({fn:r,icon:s,t:l},a)=>(0,w.jsx)(ct,{onClick:r,title:l,children:s},a))}),(0,w.jsxs)(Xp,{style:{marginTop:8},children:[(0,w.jsx)(Qe,{label:"X",value:Math.round(e[0]),onChange:r=>n("x",r)}),(0,w.jsx)(Qe,{label:"Y",value:Math.round(e[1]),onChange:r=>n("y",r)})]}),(0,w.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,marginTop:4},children:[(0,w.jsx)(Qe,{label:"R",value:t,onChange:r=>n("r",r),suffix:"\xB0",style:{flex:1}}),(0,w.jsxs)("div",{style:{display:"flex",gap:2},children:[(0,w.jsx)(ct,{onClick:()=>o.flipHorizontal(),title:"Flip Horizontal",children:(0,w.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 14 14",children:(0,w.jsx)("path",{d:"M7 2v10M3 5l-1 4h4zM11 5l1 4h-4z",stroke:"currentColor",strokeWidth:"1",fill:"none"})})}),(0,w.jsx)(ct,{onClick:()=>o.flipVertical(),title:"Flip Vertical",children:(0,w.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 14 14",children:(0,w.jsx)("path",{d:"M2 7h10M5 3l4-1v4zM5 11l4 1v-4z",stroke:"currentColor",strokeWidth:"1",fill:"none"})})})]})]})]})}function xS({shape:i,app:o}){let e="size"in i?i.size:"radius"in i?[i.radius[0]*2,i.radius[1]*2]:[0,0],[t,n]=Re.useState(!1),r=Re.useCallback((s,l)=>{let a={id:i.id};if("size"in i)if(s==="w"){let c=t?l/e[0]*e[1]:e[1];a.size=[l,c]}else{let c=t?l/e[1]*e[0]:e[0];a.size=[c,l]}else"radius"in i&&(s==="w"?a.radius=[l/2,t?l/2/e[0]*e[1]/2:i.radius[1]]:a.radius=[t?l/2/e[1]*e[0]/2:i.radius[0],l/2]);o.updateShapes(a)},[i,e,t,o]);return(0,w.jsxs)(no,{children:[(0,w.jsx)(Co,{children:"Layout"}),(0,w.jsxs)(zS,{children:[(0,w.jsx)(Qe,{label:"W",value:Math.round(e[0]),onChange:s=>r("w",s),min:1}),(0,w.jsx)(Qe,{label:"H",value:Math.round(e[1]),onChange:s=>r("h",s),min:1})]})]})}function kS({shape:i,app:o,isRect:e}){var r,s;let t=Math.round(((r=i.style.opacity)!=null?r:1)*100),n=(s=i.style.borderRadius)!=null?s:0;return(0,w.jsxs)(no,{children:[(0,w.jsx)(Co,{children:"Appearance"}),(0,w.jsx)(Qe,{label:"Opacity",value:t,onChange:l=>o.style({opacity:l/100}),min:0,max:100,suffix:"%",labelWidth:36}),e&&(0,w.jsx)("div",{style:{marginTop:4},children:(0,w.jsx)(Qe,{label:"Corner",value:n,onChange:l=>o.style({borderRadius:l}),min:0,suffix:"px",labelWidth:36})}),(0,w.jsxs)(xo,{style:{marginTop:4},children:[(0,w.jsx)(ko,{style:{width:36},children:"Dash"}),(0,w.jsx)(Us,{children:[{val:"draw",label:"~"},{val:"solid",label:"\u2014"},{val:"dashed",label:"- -"},{val:"dotted",label:"\xB7\xB7\xB7"}].map(({val:l,label:a})=>(0,w.jsx)(ct,{isActive:i.style.dash===l,onClick:()=>o.style({dash:l}),children:a},l))})]})]})}function CS({style:i,theme:o,app:e}){var r,s;let t=i.isFilled?i.fillHex||((r=Vo[o])==null?void 0:r[i.color])||Vo.light[i.color]:"transparent",n=Re.useCallback((l,a)=>{l==="transparent"?e.style({isFilled:!1}):e.style({fillHex:l,isFilled:!0,opacity:a})},[e]);return(0,w.jsxs)(no,{children:[(0,w.jsx)(Co,{children:"Fill"}),(0,w.jsx)(Ir,{color:t,opacity:(s=i.opacity)!=null?s:1,onChange:n,showTransparent:!0,showOpacity:!0,label:"Color"})]})}function wS({style:i,theme:o,app:e}){var r,s;let t=i.strokeHex||((r=Yn[o])==null?void 0:r[i.color])||Yn.light[i.color],n=(s=i.strokeWidthOverride)!=null?s:{small:2,medium:3.5,large:5}[i.size]||2;return(0,w.jsxs)("div",{children:[(0,w.jsx)(Ir,{color:t,opacity:1,onChange:l=>e.style({strokeHex:l}),showTransparent:!0,showOpacity:!1}),(0,w.jsx)("div",{style:{marginTop:6},children:(0,w.jsx)(Qe,{label:"Width",value:n,onChange:l=>e.style({strokeWidthOverride:l}),min:0,step:.01,suffix:"px",max:10,labelWidth:36})})]})}function IS({shape:i,app:o}){let[e,t]=Re.useState(!!i.style.gradient),n=i.style.gradient,r=Re.useCallback(()=>{if(e)o.style({gradient:void 0}),t(!1);else{let s={type:"linear",stops:[{color:"#0D99FF",position:0,opacity:1},{color:"#FF6B00",position:100,opacity:1}],angle:90,centerX:50,centerY:50};o.style({gradient:s,isFilled:!0}),t(!0)}},[e,o]);return(0,w.jsxs)("div",{children:[(0,w.jsxs)(xo,{children:[(0,w.jsx)(ko,{style:{width:36},children:"Enable"}),(0,w.jsx)(Sl,{checked:e,onClick:r,children:(0,w.jsx)(yl,{checked:e})})]}),e&&(0,w.jsx)("div",{style:{marginTop:8},children:(0,w.jsx)(js,{value:n,onChange:(s,l)=>{o.style({gradient:s})}})})]})}function PS({style:i,app:o,theme:e}){var h;let t=((h=Yn[e])==null?void 0:h[i.color])||"#000000",{hex:n,opacity:r}=Up(i.labelColor,t),{hex:s,opacity:l}=Up(i.labelBackground,"transparent"),a=i.textGradient,[c,p]=Re.useState(!!a),u=Re.useCallback(()=>{if(c)o.style({textGradient:void 0}),p(!1);else{let g={type:"linear",stops:[{color:"#0D99FF",position:0,opacity:1},{color:"#FF6B00",position:100,opacity:1}],angle:90,centerX:50,centerY:50};o.style({textGradient:g}),p(!0)}},[c,o]);return(0,w.jsxs)("div",{children:[(0,w.jsx)(Ir,{color:n,opacity:r,onChange:(g,m)=>{let f=g==="transparent"?"transparent":Np(g,m);o.style({labelColor:f})},showTransparent:!0,showOpacity:!0,label:"Text"}),(0,w.jsx)("div",{style:{marginTop:6},children:(0,w.jsx)(Ir,{color:s,opacity:l,onChange:(g,m)=>{let f=g==="transparent"?"transparent":Np(g,m);o.style({labelBackground:f})},showTransparent:!0,showOpacity:!0,label:"Text Bg"})}),(0,w.jsxs)("div",{style:{marginTop:8},children:[(0,w.jsxs)(xo,{children:[(0,w.jsx)(ko,{style:{width:60},children:"Text Grad"}),(0,w.jsx)(Sl,{checked:c,onClick:u,children:(0,w.jsx)(yl,{checked:c})})]}),c&&(0,w.jsx)("div",{style:{marginTop:8},children:(0,w.jsx)(js,{value:a,onChange:g=>o.style({textGradient:g})})})]})]})}function RS(i){if(!i)return[];if(Array.isArray(i))return i;let o=[];i.dropShadow&&o.push({id:Ti.Utils.uniqueId(),type:"dropShadow",enabled:i.dropShadow.enabled,x:i.dropShadow.x,y:i.dropShadow.y,blur:i.dropShadow.blur,spread:i.dropShadow.spread,color:i.dropShadow.color});let e={layerBlur:0,blur:0,brightness:100,contrast:100,saturate:100,hueRotate:0,grayscale:0,sepia:0};for(let t of Object.keys(e))i[t]!==void 0&&i[t]!==e[t]&&o.push({id:Ti.Utils.uniqueId(),type:t,enabled:!0,value:i[t]});return i.invert&&o.push({id:Ti.Utils.uniqueId(),type:"invert",enabled:!0}),o}var Kp={dropShadow:"Drop Shadow",blur:"Blur",layerBlur:"Layer Blur",brightness:"Brightness",contrast:"Contrast",saturate:"Saturation",hueRotate:"Hue Rotate",grayscale:"Grayscale",sepia:"Sepia",invert:"Invert"};function DS({shape:i,app:o}){let e=RS(i.effects),t=Re.useCallback(l=>o.updateShapes({id:i.id,effects:l}),[o,i.id]),n=(l,a)=>{t(e.map(c=>c.id===l?S(S({},c),a):c))},r=l=>{t(e.filter(a=>a.id!==l))},s=l=>{let a={id:Ti.Utils.uniqueId(),type:l,enabled:!0};l==="dropShadow"?Object.assign(a,{x:2,y:4,blur:8,spread:0,color:"#00000080"}):["layerBlur","blur"].includes(l)?a.value=4:["brightness","contrast","saturate"].includes(l)?a.value=100:a.value=0,t([...e,a])};return(0,w.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[e.map(l=>{var a,c,p,u,h,g,m,f,v;return(0,w.jsxs)("div",{style:{borderBottom:"1px solid var(--colors-separator)",paddingBottom:6},children:[(0,w.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:4},children:[(0,w.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,w.jsx)(Sl,{checked:l.enabled,onClick:()=>n(l.id,{enabled:!l.enabled}),children:(0,w.jsx)(yl,{checked:l.enabled})}),(0,w.jsx)("span",{style:{fontSize:10,fontWeight:500,color:"var(--colors-text)"},children:Kp[l.type]})]}),(0,w.jsx)("button",{onClick:()=>r(l.id),style:{all:"unset",cursor:"pointer",opacity:.5,fontSize:12,lineHeight:1},title:"Remove effect",children:"\u2715"})]}),l.enabled&&(0,w.jsxs)("div",{style:{paddingLeft:22},children:[l.type==="dropShadow"&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(Xp,{style:{marginBottom:4},children:[(0,w.jsx)(Qe,{label:"X",value:(a=l.x)!=null?a:0,onChange:b=>n(l.id,{x:b})}),(0,w.jsx)(Qe,{label:"Y",value:(c=l.y)!=null?c:0,onChange:b=>n(l.id,{y:b})}),(0,w.jsx)(Qe,{label:"Blur",value:(p=l.blur)!=null?p:0,onChange:b=>n(l.id,{blur:Math.max(0,b)}),labelWidth:26}),(0,w.jsx)(Qe,{label:"Sprd",value:(u=l.spread)!=null?u:0,onChange:b=>n(l.id,{spread:b}),labelWidth:28})]}),(0,w.jsxs)(xo,{children:[(0,w.jsx)(ko,{style:{width:40,textAlign:"left"},children:"Color"}),(0,w.jsx)("input",{type:"color",value:((h=l.color)!=null?h:"#000000").slice(0,7),onChange:b=>n(l.id,{color:b.target.value+"80"}),style:{width:24,height:20,border:"none",padding:0,cursor:"pointer"}})]})]}),["layerBlur","blur"].includes(l.type)&&(0,w.jsx)(Qe,{label:"Radius",value:(g=l.value)!=null?g:0,onChange:b=>n(l.id,{value:Math.max(0,b)}),suffix:"px",labelWidth:40}),["brightness","contrast","saturate"].includes(l.type)&&(0,w.jsx)(Qe,{label:"Amount",value:(m=l.value)!=null?m:100,onChange:b=>n(l.id,{value:Math.max(0,b)}),suffix:"%",labelWidth:40}),["hueRotate"].includes(l.type)&&(0,w.jsx)(Qe,{label:"Angle",value:(f=l.value)!=null?f:0,onChange:b=>n(l.id,{value:b}),suffix:"\xB0",labelWidth:40}),["grayscale","sepia"].includes(l.type)&&(0,w.jsx)(Qe,{label:"Amount",value:(v=l.value)!=null?v:0,onChange:b=>n(l.id,{value:Math.max(0,Math.min(100,b))}),suffix:"%",labelWidth:40})]})]},l.id)}),(0,w.jsx)("div",{style:{position:"relative"},children:(0,w.jsxs)("select",{value:"",onChange:l=>s(l.target.value),style:{width:"100%",padding:"4px 6px",fontSize:10,borderRadius:4,background:"var(--colors-inputBg)",color:"var(--colors-textSecondary)",border:"1px dashed var(--colors-separator)",cursor:"pointer"},children:[(0,w.jsx)("option",{value:"",disabled:!0,children:"+ Add Effect"}),Object.entries(Kp).map(([l,a])=>(0,w.jsx)("option",{value:l,children:a},l))]})})]})}function ES({shape:i,app:o}){var r,s;let e=i,t=!!((r=e.decorations)!=null&&r.start),n=((s=e.decorations)==null?void 0:s.end)!==void 0;return(0,w.jsxs)("div",{children:[(0,w.jsxs)(xo,{children:[(0,w.jsx)(ko,{style:{width:36},children:"Start"}),(0,w.jsxs)(Us,{children:[(0,w.jsx)(ct,{isActive:!t,onClick:()=>o.updateShapes({id:i.id,decorations:I(S({},e.decorations),{start:void 0})}),children:"None"}),(0,w.jsx)(ct,{isActive:t,onClick:()=>o.updateShapes({id:i.id,decorations:I(S({},e.decorations),{start:"arrow"})}),children:"\u25C4"})]})]}),(0,w.jsxs)(xo,{children:[(0,w.jsx)(ko,{style:{width:36},children:"End"}),(0,w.jsxs)(Us,{children:[(0,w.jsx)(ct,{isActive:!n,onClick:()=>o.updateShapes({id:i.id,decorations:I(S({},e.decorations),{end:void 0})}),children:"None"}),(0,w.jsx)(ct,{isActive:n,onClick:()=>o.updateShapes({id:i.id,decorations:I(S({},e.decorations),{end:"arrow"})}),children:"\u25BA"})]})]}),(0,w.jsx)("div",{style:{marginTop:4},children:(0,w.jsx)(Qe,{label:"Bend",value:Math.round((e.bend||0)*100),onChange:l=>o.updateShapes({id:i.id,bend:l/100}),min:-99,max:99,suffix:"%",labelWidth:36})})]})}function BS({style:i,app:o}){var g;let[e,t]=Re.useState(""),[n,r]=Re.useState(!1),[s,l]=Re.useState([]),a=Re.useRef(null);Re.useEffect(()=>{Promise.resolve().then(()=>(vi(),Ws)).then(m=>{l(m.searchGoogleFonts(e))})},[e]);let c=Re.useCallback(m=>{Promise.resolve().then(()=>(vi(),Ws)).then(f=>{f.loadGoogleFont(m.family,m.variants);let v=m.category==="monospace"?"mono":m.category==="serif"?"serif":m.category==="handwriting"?"script":"sans";o.style({font:v,fontFamily:m.family}),t(""),r(!1)})},[o]);Re.useEffect(()=>{let m=f=>{a.current&&!a.current.contains(f.target)&&(r(!1),t(""))};return document.addEventListener("mousedown",m),()=>document.removeEventListener("mousedown",m)},[]);let p=i.font==="mono"?"Monospace":i.font==="serif"?"Serif":i.font==="script"?"Script":"Sans Serif",u=i.fontFamily||p,h=Math.round(((g=i.scale)!=null?g:1)*100);return(0,w.jsxs)("div",{children:[(0,w.jsxs)(xo,{children:[(0,w.jsx)(ko,{style:{width:36},children:"Font"}),(0,w.jsxs)("div",{ref:a,style:{position:"relative",flex:1},children:[(0,w.jsx)(HS,{value:e||u,onChange:m=>{t(m.target.value),r(!0)},onFocus:()=>{r(!0),Promise.resolve().then(()=>(vi(),Ws)).then(m=>m.fetchGoogleFonts())},placeholder:"Search fonts...",style:{fontSize:9}}),n&&s.length>0&&(0,w.jsx)(FS,{children:s.map(m=>(0,w.jsx)(OS,{onMouseDown:f=>{f.preventDefault(),c(m)},style:{fontFamily:m.family},children:m.family},m.family))})]})]}),(0,w.jsx)("div",{style:{marginTop:4},children:(0,w.jsx)(Qe,{label:"Size",value:h,onChange:m=>o.style({scale:m/100}),min:25,max:300,suffix:"%",labelWidth:36})}),(0,w.jsxs)(xo,{style:{marginTop:4},children:[(0,w.jsx)(ko,{style:{width:36},children:"Align"}),(0,w.jsx)(Us,{children:[{val:"start",svg:(0,w.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",children:(0,w.jsx)("path",{d:"M1 2H11M1 5H7M1 8H9M1 11H5",stroke:"currentColor",strokeWidth:"1",strokeLinecap:"round"})})},{val:"middle",svg:(0,w.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",children:(0,w.jsx)("path",{d:"M1 2H11M3 5H9M2 8H10M4 11H8",stroke:"currentColor",strokeWidth:"1",strokeLinecap:"round"})})},{val:"end",svg:(0,w.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",children:(0,w.jsx)("path",{d:"M1 2H11M5 5H11M3 8H11M7 11H11",stroke:"currentColor",strokeWidth:"1",strokeLinecap:"round"})})},{val:"justify",svg:(0,w.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",children:(0,w.jsx)("path",{d:"M1 2H11M1 5H11M1 8H11M1 11H11",stroke:"currentColor",strokeWidth:"1",strokeLinecap:"round"})})}].map(({val:m,svg:f})=>(0,w.jsx)(ct,{isActive:i.textAlign===m,onClick:()=>o.style({textAlign:m}),children:f},m))})]})]})}function MS({app:i}){return(0,w.jsxs)(no,{children:[(0,w.jsx)(Co,{children:"Alignment"}),(0,w.jsx)(Ns,{children:[{fn:()=>i.align("left"),icon:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"2",y1:"2",x2:"2",y2:"12",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("rect",{x:"4",y:"4",width:"7",height:"2.5",rx:"0.5",fill:"currentColor",opacity:"0.6"}),(0,w.jsx)("rect",{x:"4",y:"8",width:"5",height:"2.5",rx:"0.5",fill:"currentColor",opacity:"0.6"})]}),t:"Left"},{fn:()=>i.align("centerHorizontal"),icon:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"7",y1:"1",x2:"7",y2:"13",stroke:"currentColor",strokeWidth:"1",strokeDasharray:"2 1"}),(0,w.jsx)("rect",{x:"3",y:"4",width:"8",height:"2.5",rx:"0.5",fill:"currentColor",opacity:"0.6"}),(0,w.jsx)("rect",{x:"4",y:"8",width:"6",height:"2.5",rx:"0.5",fill:"currentColor",opacity:"0.6"})]}),t:"Center H"},{fn:()=>i.align("right"),icon:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"12",y1:"2",x2:"12",y2:"12",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("rect",{x:"3",y:"4",width:"7",height:"2.5",rx:"0.5",fill:"currentColor",opacity:"0.6"}),(0,w.jsx)("rect",{x:"5",y:"8",width:"5",height:"2.5",rx:"0.5",fill:"currentColor",opacity:"0.6"})]}),t:"Right"},{fn:()=>i.align("top"),icon:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"2",y1:"2",x2:"12",y2:"2",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("rect",{x:"4",y:"4",width:"2.5",height:"7",rx:"0.5",fill:"currentColor",opacity:"0.6"}),(0,w.jsx)("rect",{x:"8",y:"4",width:"2.5",height:"5",rx:"0.5",fill:"currentColor",opacity:"0.6"})]}),t:"Top"},{fn:()=>i.align("centerVertical"),icon:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"1",y1:"7",x2:"13",y2:"7",stroke:"currentColor",strokeWidth:"1",strokeDasharray:"2 1"}),(0,w.jsx)("rect",{x:"4",y:"2",width:"2.5",height:"10",rx:"0.5",fill:"currentColor",opacity:"0.6"}),(0,w.jsx)("rect",{x:"8",y:"3",width:"2.5",height:"8",rx:"0.5",fill:"currentColor",opacity:"0.6"})]}),t:"Center V"},{fn:()=>i.align("bottom"),icon:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"2",y1:"12",x2:"12",y2:"12",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("rect",{x:"4",y:"3",width:"2.5",height:"7",rx:"0.5",fill:"currentColor",opacity:"0.6"}),(0,w.jsx)("rect",{x:"8",y:"5",width:"2.5",height:"5",rx:"0.5",fill:"currentColor",opacity:"0.6"})]}),t:"Bottom"}].map(({fn:o,icon:e,t},n)=>(0,w.jsx)(ct,{onClick:o,title:t,children:e},n))}),(0,w.jsx)(Yp,{style:{display:"block",marginTop:8,marginBottom:4},children:"Distribute"}),(0,w.jsxs)(Ns,{style:{gridTemplateColumns:"repeat(2, 1fr)"},children:[(0,w.jsx)(ct,{onClick:()=>i.distribute("horizontal"),title:"Distribute Horizontal",children:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"1",y1:"2",x2:"1",y2:"12",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("line",{x1:"13",y1:"2",x2:"13",y2:"12",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("rect",{x:"4",y:"4",width:"6",height:"6",rx:"0.5",fill:"currentColor",opacity:"0.5"})]})}),(0,w.jsx)(ct,{onClick:()=>i.distribute("vertical"),title:"Distribute Vertical",children:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"2",y1:"1",x2:"12",y2:"1",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("line",{x1:"2",y1:"13",x2:"12",y2:"13",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("rect",{x:"4",y:"4",width:"6",height:"6",rx:"0.5",fill:"currentColor",opacity:"0.5"})]})})]}),(0,w.jsx)(Yp,{style:{display:"block",marginTop:8,marginBottom:4},children:"Stretch"}),(0,w.jsxs)(Ns,{style:{gridTemplateColumns:"repeat(2, 1fr)"},children:[(0,w.jsx)(ct,{onClick:()=>i.stretch("horizontal"),title:"Stretch Width",children:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"1",y1:"2",x2:"1",y2:"12",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("line",{x1:"13",y1:"2",x2:"13",y2:"12",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("line",{x1:"1",y1:"7",x2:"13",y2:"7",stroke:"currentColor",strokeWidth:"1",strokeDasharray:"2 1"}),(0,w.jsx)("path",{d:"M3 5.5h8",stroke:"currentColor",strokeWidth:"1",opacity:"0.5"}),(0,w.jsx)("path",{d:"M3 8.5h8",stroke:"currentColor",strokeWidth:"1",opacity:"0.5"})]})}),(0,w.jsx)(ct,{onClick:()=>i.stretch("vertical"),title:"Stretch Height",children:(0,w.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",children:[(0,w.jsx)("line",{x1:"2",y1:"1",x2:"12",y2:"1",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("line",{x1:"2",y1:"13",x2:"12",y2:"13",stroke:"currentColor",strokeWidth:"1.5"}),(0,w.jsx)("line",{x1:"7",y1:"1",x2:"7",y2:"13",stroke:"currentColor",strokeWidth:"1",strokeDasharray:"2 1"}),(0,w.jsx)("path",{d:"M5.5 3v8",stroke:"currentColor",strokeWidth:"1",opacity:"0.5"}),(0,w.jsx)("path",{d:"M8.5 3v8",stroke:"currentColor",strokeWidth:"1",opacity:"0.5"})]})})]})]})}function gl(i,o){let e=URL.createObjectURL(i),t=document.createElement("a");t.href=e,t.download=o,t.click(),setTimeout(()=>URL.revokeObjectURL(e),1e3)}function LS({shape:i,app:o}){let e=o.useStore(n=>n.appState.nodeEditingId===i.id),t=Re.useCallback(()=>{e?o.setNodeEditingId(void 0):o.setNodeEditingId(i.id)},[o,i.id,e]);return(0,w.jsx)(no,{children:(0,w.jsx)(ct,{onClick:t,isActive:e,style:{width:"100%"},children:e?"Exit Edit Mode":"Edit Shape"})})}function AS({shape:i,app:o}){let[e,t]=Re.useState(null),n=i.type+"-"+i.id.slice(0,6);return(0,w.jsx)("div",{children:(0,w.jsxs)("div",{style:{display:"flex",gap:4},children:[(0,w.jsx)(ct,{style:{flex:1},onClick:()=>F(this,null,function*(){t("svg");try{let a=yield o.exportImage("svg",{ids:[i.id]});a&&gl(a,n+".svg")}catch(a){console.error("SVG export failed",a)}t(null)}),title:"Export as SVG",children:e==="svg"?"...":"SVG"}),(0,w.jsx)(ct,{style:{flex:1},onClick:()=>F(this,null,function*(){t("png");try{let a=yield o.exportImage("png",{ids:[i.id]});a&&gl(a,n+".png")}catch(a){console.error("PNG export failed",a)}t(null)}),title:"Export as PNG",children:e==="png"?"...":"PNG"}),(0,w.jsx)(ct,{style:{flex:1},onClick:()=>{let a=JSON.stringify(i,null,2);navigator.clipboard.writeText(a).catch(c=>{}),gl(new Blob([a],{type:"application/json"}),n+".json")},title:"Copy JSON & download",children:"JSON"})]})})}function Xo({title:i,children:o,defaultOpen:e=!1}){let[t,n]=Re.useState(e);return(0,w.jsxs)(no,{children:[(0,w.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",cursor:"pointer"},onClick:()=>n(!t),children:[(0,w.jsx)(Co,{style:{marginBottom:0},children:i}),(0,w.jsx)(Zp,{onClick:r=>{r.stopPropagation(),n(!t)},children:t?"\u2212":"+"})]}),t&&(0,w.jsx)("div",{style:{marginTop:8},children:o})]})}var _p=R("div",{display:"flex",flexDirection:"column",width:"100%",height:"100%",overflowY:"auto",overflowX:"hidden","&::-webkit-scrollbar":{width:"3px"},"&::-webkit-scrollbar-thumb":{background:"$separator",borderRadius:"2px"}}),no=R("div",{padding:"8px 12px"}),Co=R("div",{fontSize:"10px",fontWeight:600,color:"$textSecondary",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:"8px"}),pn=R("div",{height:"1px",background:"$separator"}),VS=R("div",{fontSize:"10px",color:"$textSecondary",fontStyle:"italic"}),Xp=R("div",{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"4px"}),xo=R("div",{display:"flex",alignItems:"center",gap:"6px",marginBottom:"4px"}),ko=R("label",{fontSize:"9px",color:"$textSecondary",fontWeight:500,width:"18px",flexShrink:0,textAlign:"right",cursor:"ew-resize",userSelect:"none"}),eP=R("span",{fontSize:"9px",color:"$textSecondary"}),HS=R("input",{width:"100%",background:"$inputBg",border:"1px solid $inputBorder",borderRadius:"$1",color:"$text",fontSize:"10px",padding:"4px 6px",fontFamily:"$ui",outline:"none",transition:"border-color 0.1s","&:focus":{borderColor:"$accent"},"&::-webkit-inner-spin-button, &::-webkit-outer-spin-button":{display:"none"}}),Yp=R("span",{fontSize:"9px",color:"$textSecondary",fontFamily:"$mono"}),Ns=R("div",{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:"3px"}),Us=R("div",{display:"flex",gap:"2px",flex:1}),ct=R("button",{all:"unset",flex:1,height:"24px",border:"1px solid $separator",borderRadius:"$1",color:"$textSecondary",cursor:"pointer",fontSize:"9px",fontFamily:"$ui",display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.08s","&:hover":{background:"$hover",color:"$text"},variants:{isActive:{true:{background:"$accent",borderColor:"$accent",color:"white","&:hover":{background:"$accent",color:"white"}}}}}),Zp=R("button",{all:"unset",display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,borderRadius:"$0",cursor:"pointer",color:"$textSecondary",fontSize:"11px","&:hover":{background:"$hover",color:"$text"}}),Sl=R("button",{all:"unset",width:"28px",height:"16px",borderRadius:"$pill",cursor:"pointer",padding:"2px",transition:"background 0.12s",background:"$inputBg",variants:{checked:{true:{background:"$accent"}}}}),yl=R("div",{width:"12px",height:"12px",borderRadius:"50%",background:"white",transition:"transform 0.12s",variants:{checked:{true:{transform:"translateX(12px)"}}}}),zS=R("div",{display:"grid",gridTemplateColumns:"1fr auto 1fr",gap:"4px",alignItems:"center"}),tP=R("button",{all:"unset",display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,borderRadius:"$1",border:"1px solid $separator",cursor:"pointer",color:"$textSecondary",transition:"all 0.08s",flexShrink:0,"&:hover":{background:"$hover",color:"$text"},variants:{locked:{true:{background:"rgba(13,153,255,0.15)",borderColor:"$accent",color:"$accent"}}}}),FS=R("div",{position:"absolute",top:"100%",left:0,right:0,maxHeight:"140px",overflowY:"auto",background:"$panel",border:"1px solid $separator",borderRadius:"$2",zIndex:1e3,boxShadow:"0 4px 16px rgba(0,0,0,0.3)",marginTop:"2px","&::-webkit-scrollbar":{width:"3px"},"&::-webkit-scrollbar-thumb":{background:"$separator",borderRadius:"2px"}}),OS=R("div",{padding:"4px 8px",fontSize:"10px",color:"$text",cursor:"pointer","&:hover":{background:"$hover"}});var qp=require("react/jsx-runtime"),bl=Jp.memo(function(){return(0,qp.jsx)($S,{children:(0,qp.jsx)(fl,{})})}),$S=R("div",{display:"flex",flexDirection:"column",width:"240px",height:"100%",background:"$panel",borderLeft:"1px solid $separator",zIndex:200,pointerEvents:"all",overflow:"hidden",flexShrink:0});vi();var ku=H(require("react")),Cu=require("react-intl");var du=H(require("@radix-ui/react-dropdown-menu")),cu=require("@radix-ui/react-icons"),De=H(require("react")),_e=require("react-intl");var eu=require("@radix-ui/react-dropdown-menu");var Qp=require("react/jsx-runtime");function ce(t){var n=t,{onSelect:i,id:o}=n,e=Ae(n,["onSelect","id"]);return(0,Qp.jsx)(eu.Item,{dir:"ltr",asChild:!0,onSelect:i,id:o,children:(0,Qp.jsx)(at,S({},e))})}var nu=require("@radix-ui/react-dropdown-menu");var Ce=i=>i.preventDefault();var tu=require("react/jsx-runtime");function un({checked:i,disabled:o=!1,variant:e,onCheckedChange:t,kbd:n,id:r,ariaLabel:s,children:l}){return(0,tu.jsx)(nu.CheckboxItem,{dir:"ltr",onSelect:Ce,onCheckedChange:t,checked:i,disabled:o,asChild:!0,id:r,"aria-label":s,children:(0,tu.jsx)(at,{kbd:n,variant:e,hasIndicator:!0,children:l})})}var Ks=H(require("@radix-ui/react-dropdown-menu"));var vl=require("react/jsx-runtime");function On({sideOffset:i=4,alignOffset:o=0,children:e,align:t,variant:n,id:r,overflow:s=!1,side:l="bottom"}){let a=Sn();return(0,vl.jsx)(Ks.Portal,{container:a.current,dir:"ltr",children:(0,vl.jsx)(Ks.Content,{align:t,alignOffset:o,sideOffset:i,onEscapeKeyDown:mt,asChild:!0,id:r,side:l,children:(0,vl.jsx)(GS,{variant:n,overflow:s,children:e})})})}var GS=R(Kn,{width:"fit-content",height:"fit-content",minWidth:0,maxHeight:"100vh",overflowY:"auto",overflowX:"hidden","&::webkit-scrollbar":{display:"none"},"-ms-overflow-style":"none",scrollbarWidth:"none",variants:{variant:{horizontal:{flexDirection:"row"},menu:{minWidth:128}},overflow:{true:{maxHeight:"60vh"}}}});var ou=require("@radix-ui/react-dropdown-menu");var IP=R(ou.Separator,{backgroundColor:"$hover",height:1,marginTop:"$2",marginRight:"-$2",marginBottom:"$2",marginLeft:"-$2"});var ru=require("@radix-ui/react-dropdown-menu");var xi=R(ru.RadioItem,{height:"32px",width:"32px",backgroundColor:"$panel",borderRadius:"4px",padding:"0",margin:"0",display:"flex",alignItems:"center",justifyContent:"center",outline:"none",border:"none",pointerEvents:"all",cursor:"pointer",variants:{isActive:{true:{backgroundColor:"$selected",color:"white"},false:{}},bp:{mobile:{},small:{}}},compoundVariants:[{isActive:!1,bp:"small",css:{"&:focus":{backgroundColor:"$hover"},"&:hover:not(:disabled)":{backgroundColor:"$hover"}}}]});var wo=require("@radix-ui/react-dropdown-menu");var Zo=require("react/jsx-runtime");function $n({children:i,size:o,overflow:e=!1,disabled:t=!1,label:n,id:r}){return(0,Zo.jsxs)(wo.Sub,{children:[(0,Zo.jsx)(wo.SubTrigger,{dir:"ltr",asChild:!0,children:(0,Zo.jsx)(at,{disabled:t,hasArrow:!0,children:n})}),(0,Zo.jsx)(wo.SubContent,{asChild:!0,sideOffset:4,alignOffset:-4,children:(0,Zo.jsxs)(Kn,{size:o,overflow:e,children:[i,(0,Zo.jsx)(wo.Arrow,{offset:13})]})})]},r)}var su=require("@radix-ui/react-dropdown-menu");var iu=require("react/jsx-runtime");function _s(t){var n=t,{id:i,children:o}=n,e=Ae(n,["id","children"]);return(0,iu.jsx)(su.Trigger,{asChild:!0,id:i,children:(0,iu.jsx)(Dt,I(S({},e),{children:o}))})}var oo=H(require("react")),Cn=require("react-intl");var Ge=require("react/jsx-runtime"),jS=i=>i.settings,WS=["bottom","left","right","top"];function lu(){let i=_(),o=(0,Cn.useIntl)(),e=i.useStore(jS),t=oo.useCallback(()=>{i.setSetting("isDebugMode",u=>!u)},[i]),n=oo.useCallback(()=>{i.setSetting("isDarkMode",u=>!u)},[i]),r=oo.useCallback(()=>{i.setSetting("isFocusMode",u=>!u)},[i]),s=oo.useCallback(()=>{i.setSetting("showGrid",u=>!u)},[i]),l=oo.useCallback(()=>{i.setSetting("keepStyleMenuOpen",u=>!u)},[i]),a=oo.useCallback(()=>{i.setSetting("isCadSelectMode",u=>!u)},[i]),c=oo.useCallback(u=>{i.setSetting("dockPosition",u)},[i]),p=oo.useCallback(u=>{i.setSetting("exportBackground",u)},[i]);return(0,Ge.jsxs)($n,{label:o.formatMessage({id:"menu.preferences"}),id:"TD-MenuItem-Preferences",children:[(0,Ge.jsx)(un,{checked:e.isDarkMode,onCheckedChange:n,kbd:"#\u21E7D",id:"TD-MenuItem-Preferences-Dark_Mode",ariaLabel:o.formatMessage({id:"preferences.dark.mode"}),children:(0,Ge.jsx)(Cn.FormattedMessage,{id:"preferences.dark.mode"})}),(0,Ge.jsx)(un,{checked:e.isFocusMode,onCheckedChange:r,kbd:"#.",id:"TD-MenuItem-Preferences-Focus_Mode",ariaLabel:o.formatMessage({id:"preferences.focus.mode"}),children:(0,Ge.jsx)(Cn.FormattedMessage,{id:"preferences.focus.mode"})}),(0,Ge.jsx)(un,{checked:e.isDebugMode,onCheckedChange:t,id:"TD-MenuItem-Preferences-Debug_Mode",ariaLabel:o.formatMessage({id:"preferences.debug.mode"}),children:(0,Ge.jsx)(Cn.FormattedMessage,{id:"preferences.debug.mode"})}),(0,Ge.jsx)(Te,{}),(0,Ge.jsx)(un,{checked:e.showGrid,onCheckedChange:s,kbd:"#\u21E7G",id:"TD-MenuItem-Preferences-Grid",ariaLabel:o.formatMessage({id:"preferences.show.grid"}),children:(0,Ge.jsx)(Cn.FormattedMessage,{id:"preferences.show.grid"})}),(0,Ge.jsx)(un,{checked:e.isCadSelectMode,onCheckedChange:a,id:"TD-MenuItem-Preferences-Cad_Selection",ariaLabel:o.formatMessage({id:"preferences.use.cad.selection"}),children:(0,Ge.jsx)(Cn.FormattedMessage,{id:"preferences.use.cad.selection"})}),(0,Ge.jsx)(un,{checked:e.keepStyleMenuOpen,onCheckedChange:l,id:"TD-MenuItem-Preferences-Style_menu",ariaLabel:o.formatMessage({id:"preferences.keep.stylemenu.open"}),children:(0,Ge.jsx)(Cn.FormattedMessage,{id:"preferences.keep.stylemenu.open"})}),(0,Ge.jsx)($n,{label:o.formatMessage({id:"dock.position"}),children:WS.map(u=>(0,Ge.jsx)(un,{checked:e.dockPosition===u,onCheckedChange:()=>c(u),id:`TD-MenuItem-DockPosition-${u}`,ariaLabel:`DockPosition-${u}`,children:(0,Ge.jsx)(au,{children:(0,Ge.jsx)(Cn.FormattedMessage,{id:u})})},u))}),(0,Ge.jsx)($n,{label:o.formatMessage({id:"export.background"}),children:Object.values(ir).map(u=>(0,Ge.jsx)(un,{checked:e.exportBackground===u,onCheckedChange:()=>p(u),id:`TD-MenuItem-ExportBackground-${u}`,ariaLabel:`ExportBackground-${u}`,children:(0,Ge.jsx)(au,{children:(0,Ge.jsx)(Cn.FormattedMessage,{id:u})})},u))})]})}var au=R("span",{textTransform:"capitalize"});var $=require("react/jsx-runtime"),NS=i=>i.document.pageStates[i.appState.currentPageId].selectedIds.length,US=i=>i.appState.disableAssets,pu=De.memo(function({readOnly:o}){let e=_(),t=(0,_e.useIntl)(),[n,r]=De.useState(!1),s=e.useStore(NS),l=e.useStore(US),[a,c]=De.useState(0);De.useEffect(()=>c(1),[]);let{onNewProject:p,onOpenProject:u,onSaveProject:h,onSaveProjectAs:g}=Fi(),m=De.useCallback(()=>{r(!0)},[]),f=De.useCallback(()=>{e.delete()},[e]),v=De.useCallback(()=>{e.copyImage("svg",{scale:1,quality:1,transparentBackground:!1})},[e]),b=De.useCallback(()=>{e.copyImage("png",{scale:2,quality:1,transparentBackground:!0})},[e]),T=De.useCallback(()=>F(this,null,function*(){e.exportImage("png",{scale:2,quality:1})}),[e]),y=De.useCallback(()=>F(this,null,function*(){e.exportImage("jpeg",{scale:2,quality:1})}),[e]),x=De.useCallback(()=>F(this,null,function*(){e.exportImage("webp",{scale:2,quality:1})}),[e]),P=De.useCallback(()=>F(this,null,function*(){e.exportImage("svg",{scale:2,quality:1})}),[e]),k=De.useCallback(()=>F(this,null,function*(){e.copyJson()}),[e]),D=De.useCallback(()=>F(this,null,function*(){e.exportJson()}),[e]),C=De.useCallback(()=>{e.cut()},[e]),E=De.useCallback(()=>{e.copy()},[e]),M=De.useCallback(()=>{e.paste()},[e]),L=De.useCallback(()=>{e.selectAll()},[e]),V=De.useCallback(()=>{e.selectNone()},[e]),X=De.useCallback(()=>{e.openAsset()},[e]),se=De.useCallback(()=>{e.zoomTo(1)},[e]),G=e.callbacks.onNewProject||e.callbacks.onOpenProject||e.callbacks.onSaveProject||e.callbacks.onSaveProjectAs||e.callbacks.onExport,ne=s>0;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(du.Root,{dir:"ltr",children:[(0,$.jsx)(_s,{id:"TD-MenuIcon",children:(0,$.jsx)(cu.HamburgerMenuIcon,{})}),(0,$.jsxs)(On,{variant:"menu",id:"TD-Menu",side:"bottom",align:"start",sideOffset:4,alignOffset:4,children:[G&&(0,$.jsxs)($n,{label:`${t.formatMessage({id:"menu.file"})}...`,id:"TD-MenuItem-File",children:[e.callbacks.onNewProject&&(0,$.jsx)(ce,{onClick:p,kbd:"#N",id:"TD-MenuItem-File-New_Project",children:(0,$.jsx)(_e.FormattedMessage,{id:"new.project"})}),e.callbacks.onOpenProject&&(0,$.jsxs)(ce,{onClick:u,kbd:"#O",id:"TD-MenuItem-File-Open",children:[(0,$.jsx)(_e.FormattedMessage,{id:"open"}),"..."]}),e.callbacks.onSaveProject&&(0,$.jsx)(ce,{onClick:h,kbd:"#S",id:"TD-MenuItem-File-Save",children:(0,$.jsx)(_e.FormattedMessage,{id:"save"})}),e.callbacks.onSaveProjectAs&&(0,$.jsxs)(ce,{onClick:m,kbd:"#\u21E7S",id:"TD-MenuItem-File-Save_As",children:[(0,$.jsx)(_e.FormattedMessage,{id:"save.as"}),"..."]}),(0,$.jsxs)($n,{label:`${t.formatMessage({id:"export.as"})}...`,size:"small",id:"TD-MenuItem-Export",children:[(0,$.jsx)(ce,{onClick:P,id:"TD-MenuItem-Export-SVG",children:"SVG"}),(0,$.jsx)(ce,{onClick:T,id:"TD-MenuItem-Export-PNG",children:"PNG"}),(0,$.jsx)(ce,{onClick:y,id:"TD-MenuItem-Export-JPG",children:"JPG"}),(0,$.jsx)(ce,{onClick:x,id:"TD-MenuItem-Export-WEBP",children:"WEBP"}),(0,$.jsx)(ce,{onClick:D,id:"TD-MenuItem-Export-JSON",children:"JSON"})]}),!l&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Te,{}),(0,$.jsx)(ce,{onClick:X,kbd:"#U",id:"TD-MenuItem-File-Upload_Media",children:(0,$.jsx)(_e.FormattedMessage,{id:"upload.media"})})]})]}),(0,$.jsxs)($n,{label:`${t.formatMessage({id:"menu.edit"})}...`,id:"TD-MenuItem-Edit",children:[(0,$.jsx)(ce,{onSelect:Ce,onClick:e.undo,disabled:o,kbd:"#Z",id:"TD-MenuItem-Edit-Undo",children:(0,$.jsx)(_e.FormattedMessage,{id:"undo"})}),(0,$.jsx)(ce,{onSelect:Ce,onClick:e.redo,disabled:o,kbd:"#\u21E7Z",id:"TD-MenuItem-Edit-Redo",children:(0,$.jsx)(_e.FormattedMessage,{id:"redo"})}),(0,$.jsx)(Te,{}),(0,$.jsx)(ce,{onSelect:Ce,disabled:!ne||o,onClick:C,kbd:"#X",id:"TD-MenuItem-Edit-Cut",children:(0,$.jsx)(_e.FormattedMessage,{id:"cut"})}),(0,$.jsx)(ce,{onSelect:Ce,disabled:!ne,onClick:E,kbd:"#C",id:"TD-MenuItem-Edit-Copy",children:(0,$.jsx)(_e.FormattedMessage,{id:"copy"})}),(0,$.jsx)(ce,{onSelect:Ce,onClick:M,kbd:"#V",id:"TD-MenuItem-Edit-Paste",children:(0,$.jsx)(_e.FormattedMessage,{id:"paste"})}),(0,$.jsx)(Te,{}),(0,$.jsxs)($n,{label:`${t.formatMessage({id:"copy.as"})}...`,size:"small",id:"TD-MenuItem-Copy-As",children:[(0,$.jsx)(ce,{onClick:v,id:"TD-MenuItem-Copy-as-SVG",children:"SVG"}),(0,$.jsx)(ce,{onClick:b,id:"TD-MenuItem-Copy-As-PNG",children:"PNG"}),(0,$.jsx)(ce,{onClick:k,id:"TD-MenuItem-Copy_as_JSON",children:"JSON"})]}),(0,$.jsx)(Te,{}),(0,$.jsx)(ce,{onSelect:Ce,onClick:L,kbd:"#A",id:"TD-MenuItem-Select_All",children:(0,$.jsx)(_e.FormattedMessage,{id:"select.all"})}),(0,$.jsx)(ce,{onSelect:Ce,disabled:!ne,onClick:V,id:"TD-MenuItem-Select_None",children:(0,$.jsx)(_e.FormattedMessage,{id:"select.none"})}),(0,$.jsx)(Te,{}),(0,$.jsx)(ce,{onSelect:f,disabled:!ne,kbd:"\u232B",id:"TD-MenuItem-Delete",children:(0,$.jsx)(_e.FormattedMessage,{id:"delete"})})]}),(0,$.jsxs)($n,{label:t.formatMessage({id:"menu.view"}),id:"TD-MenuItem-Edit",children:[(0,$.jsx)(ce,{onSelect:Ce,onClick:e.zoomIn,kbd:"#+",id:"TD-MenuItem-View-ZoomIn",children:(0,$.jsx)(_e.FormattedMessage,{id:"zoom.in"})}),(0,$.jsx)(ce,{onSelect:Ce,onClick:e.zoomOut,kbd:"#-",id:"TD-MenuItem-View-ZoomOut",children:(0,$.jsx)(_e.FormattedMessage,{id:"zoom.out"})}),(0,$.jsxs)(ce,{onSelect:Ce,onClick:se,kbd:"\u21E7+0",id:"TD-MenuItem-View-ZoomTo100",children:[(0,$.jsx)(_e.FormattedMessage,{id:"zoom.to"})," 100%"]}),(0,$.jsx)(ce,{onSelect:Ce,onClick:e.zoomToFit,kbd:"\u21E7+1",id:"TD-MenuItem-View-ZoomToFit",children:(0,$.jsx)(_e.FormattedMessage,{id:"zoom.to.fit"})}),(0,$.jsx)(ce,{onSelect:Ce,onClick:e.zoomToSelection,kbd:"\u21E7+2",id:"TD-MenuItem-View-ZoomToSelection",children:(0,$.jsx)(_e.FormattedMessage,{id:"zoom.to.selection"})})]}),(0,$.jsx)(Te,{}),(0,$.jsx)(lu,{})]})]}),(0,$.jsx)(bc,{isOpen:n,onClose:()=>r(!1)})]})});var mu=H(require("@radix-ui/react-dropdown-menu")),Rr=require("@radix-ui/react-icons"),ro=H(require("react")),ki=require("react-intl"),Ys=require("telva-core");var uu=require("react/jsx-runtime");function hu(){return(0,uu.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 15 15",xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",children:(0,uu.jsx)("path",{d:"M1.36482 4.71089C1.36482 3.21371 2.57853 2 4.07572 2C5.5729 2 6.78661 3.21371 6.78661 4.71089C6.78661 5.76842 6.18106 6.68452 5.29779 7.13136C5.80465 7.24611 6.26407 7.44186 6.66028 7.73182C7.18674 8.11711 7.57215 8.64722 7.81073 9.30983C7.81452 9.30606 7.81832 9.3023 7.82212 9.29855C8.30448 8.82317 8.91325 8.52463 9.60905 8.37275C8.68812 7.922 8.05394 6.97569 8.05394 5.88126C8.05394 4.35017 9.29513 3.10898 10.8262 3.10898C12.3573 3.10898 13.5985 4.35017 13.5985 5.88126C13.5985 6.97561 12.9644 7.92186 12.0436 8.37265C12.7396 8.52449 13.3486 8.82306 13.831 9.29854C14.5795 10.0361 14.9481 11.1249 14.9481 12.5176C14.9481 12.7799 14.7354 12.9926 14.473 12.9926C14.2107 12.9926 13.9981 12.7799 13.9981 12.5175C13.9981 11.2848 13.6738 10.4774 13.1642 9.97518C12.6532 9.4716 11.8802 9.20024 10.8266 9.20024C9.77294 9.20024 8.99993 9.4716 8.48896 9.97518C7.97939 10.4774 7.65513 11.2848 7.65513 12.5176C7.65513 12.7799 7.44247 12.9926 7.18013 12.9926C6.9178 12.9926 6.70513 12.7799 6.70513 12.5176C6.70513 11.6734 6.84053 10.941 7.11384 10.3307C7.0922 10.2895 7.0763 10.2444 7.06737 10.1962C6.91739 9.38749 6.57392 8.84586 6.09923 8.49845C5.61626 8.14499 4.94481 7.95427 4.07574 7.95427C3.05232 7.95427 2.30368 8.21784 1.80952 8.70485C1.31675 9.19047 1.00176 9.97257 1.00176 11.1702C1.00176 11.4326 0.789093 11.6452 0.526758 11.6452C0.264423 11.6452 0.0517578 11.4326 0.0517578 11.1702C0.0517578 9.81263 0.411052 8.74925 1.14268 8.02821C1.60624 7.57137 2.18892 7.28191 2.85378 7.13142C1.97043 6.68461 1.36482 5.76848 1.36482 4.71089ZM4.07572 2.95C3.1032 2.95 2.31482 3.73838 2.31482 4.71089C2.31482 5.68341 3.1032 6.47178 4.07572 6.47178C5.04823 6.47178 5.83661 5.68341 5.83661 4.71089C5.83661 3.73838 5.04823 2.95 4.07572 2.95ZM10.8262 4.05898C9.8198 4.05898 9.00394 4.87484 9.00394 5.88126C9.00394 6.88768 9.8198 7.70355 10.8262 7.70355C11.8326 7.70355 12.6485 6.88768 12.6485 5.88126C12.6485 4.87484 11.8326 4.05898 10.8262 4.05898Z"})})}var Ye=require("react/jsx-runtime"),KS=i=>i.room,gu=function(){let o=_(),e=o.useStore(KS),[t,n]=ro.useState(!1),r=ro.useRef(0),s=ro.useCallback(()=>{n(!0),B.copyStringToClipboard(window.location.href),clearTimeout(r.current),r.current=setTimeout(()=>n(!1),1200)},[]),l=ro.useCallback(()=>{n(!0);let p=window.location.href.split("/");p[p.length-2]="v",p[p.length-1]=Ys.Utils.lns(p[p.length-1]),B.copyStringToClipboard(p.join("/")),clearTimeout(r.current),r.current=setTimeout(()=>n(!1),1200)},[]),a=ro.useCallback(()=>F(this,null,function*(){o.isDirty?o.fileSystemHandle?window.confirm("Do you want to save changes to your current project?")&&(yield o.saveProject()):window.confirm("Do you want to save your current project?")&&(yield o.saveProject()):o.fileSystemHandle||window.confirm("Do you want to save your current project?")&&(yield o.saveProject())}),[]),c=ro.useCallback(()=>F(this,null,function*(){var u,h;let p=Ys.Utils.deepClone(o.document);o.setIsLoading(!0);try{if(o.callbacks.onAssetUpload)for(let f in p.assets){let v=p.assets[f];if(v.src.includes("base64")){let b=_S(v.src,((u=v.fileName)!=null?u:v.type==="video")?"image.png":"image.mp4"),T=yield o.callbacks.onAssetUpload(o,b,f);T?v.src=T:v.src=""}}let g=yield fetch("/api/create",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({roomId:Ys.Utils.uniqueId(),pageId:o.currentPageId,document:p})}),m=yield g.json();g.ok&&(m==null?void 0:m.url)?window.location.href=m.url:B.warn((h=m==null?void 0:m.message)!=null?h:g.statusText)}catch(g){B.warn(g.message)}o.setIsLoading(!1)}),[]);return(0,Ye.jsxs)(mu.Root,{dir:"ltr",children:[(0,Ye.jsx)(_s,{id:"TD-MultiplayerMenuIcon",isActive:!!e,children:(0,Ye.jsx)(hu,{})}),(0,Ye.jsxs)(On,{variant:"menu",id:"TD-MultiplayerMenu",side:"bottom",align:"start",sideOffset:4,children:[(0,Ye.jsxs)(ce,{id:"TD-Multiplayer-CopyInviteLink",onClick:s,disabled:!e,children:[(0,Ye.jsx)(ki.FormattedMessage,{id:"copy.invite.link"}),(0,Ye.jsx)(Ft,{children:t?(0,Ye.jsx)(Rr.CheckIcon,{}):(0,Ye.jsx)(Rr.ClipboardIcon,{})})]}),(0,Ye.jsxs)(ce,{id:"TD-Multiplayer-CopyReadOnlyLink",onClick:l,disabled:!e,children:[(0,Ye.jsx)(ki.FormattedMessage,{id:"copy.readonly.link"}),(0,Ye.jsx)(Ft,{children:t?(0,Ye.jsx)(Rr.CheckIcon,{}):(0,Ye.jsx)(Rr.ClipboardIcon,{})})]}),(0,Ye.jsx)(Te,{}),(0,Ye.jsx)(ce,{id:"TD-Multiplayer-CreateMultiplayerProject",onClick:a,children:(0,Ye.jsx)("a",{href:`${window.location.origin}/r`,children:(0,Ye.jsx)(ki.FormattedMessage,{id:"create.multiplayer.project"})})}),(0,Ye.jsx)(ce,{id:"TD-Multiplayer-CopyToMultiplayerProject",onClick:c,children:(0,Ye.jsx)(ki.FormattedMessage,{id:"copy.multiplayer.project"})})]})]})};function _S(i,o){var l,a;let e=i.split(","),t=(a=(l=e[0])==null?void 0:l.match(/:(.*?);/))==null?void 0:a[1],n=window.atob(e[1]),r=n.length,s=new Uint8Array(r);for(;r--;)s[r]=n.charCodeAt(r);return new File([s],o,{type:t})}var hn=H(require("@radix-ui/react-dropdown-menu")),Zs=require("@radix-ui/react-icons"),Pt=H(require("react")),Ci=require("react-intl");var Nt=H(require("@radix-ui/react-alert-dialog")),Xs=require("@radix-ui/react-icons"),vt=H(require("react")),Dr=require("react-intl");var fu=R("button",{position:"relative",height:"32px",width:"32px",backgroundColor:"$panel",borderRadius:"4px",padding:"0",margin:"0",outline:"none",border:"none",pointerEvents:"all",fontSize:"$0",color:"$text",cursor:"pointer",display:"grid",alignItems:"center",justifyContent:"center","& > *":{gridRow:1,gridColumn:1},"&:disabled":{opacity:"0.5"},"& > span":{width:"100%",height:"100%",display:"flex",alignItems:"center"},variants:{bp:{mobile:{backgroundColor:"transparent"},small:{"&:hover:not(:disabled)":{backgroundColor:"$hover"}}},size:{small:{height:32,width:32,"& svg:nth-of-type(1)":{height:"16px",width:"16px"}},medium:{height:44,width:44,"& svg:nth-of-type(1)":{height:"18px",width:"18px"}},large:{height:44,width:44,"& svg:nth-of-type(1)":{height:"20px",width:"20px"}}},isActive:{true:{color:"$selected"}}}});var We=require("react/jsx-runtime"),YS=i=>Object.keys(i.document.pages).length>1;function yu({page:i,onOpen:o,onClose:e}){let t=_(),n=(0,Dr.useIntl)(),[r,s]=vt.useState(!1),[l,a]=vt.useState(i.name||"Page"),c=t.useStore(YS),p=vt.useRef(null),u=vt.useCallback(()=>{s(!1)},[]),h=vt.useCallback(()=>{t.duplicatePage(i.id)},[t]),g=vt.useCallback(()=>{window.confirm("Are you sure you want to delete this page?")&&t.deletePage(i.id)},[t]),m=vt.useCallback(k=>{if(s(k),k){o==null||o();return}},[t]);function f(k){k.stopPropagation()}let v=vt.useRef(i.name||"Page"),b=vt.useRef(v.current),T=vt.useCallback(k=>{let D=k.target.value.trimStart();b.current=D,a(D)},[]),y=vt.useCallback(k=>{switch(k.key){case"Enter":{b.current===v.current||(v.current=b.current,t.renamePage(i.id,b.current.trim())),s(!1);break}case"Escape":{if(b.current===v.current){s(!1);return}b.current=v.current,a(v.current),requestAnimationFrame(()=>{let D=p.current;D&&(D.focus(),D.setSelectionRange(0,D.value.length))});break}}},[]),x=vt.useRef(!1);vt.useEffect(()=>(r?(x.current=!0,v.current=i.name||"Page",b.current=v.current,requestAnimationFrame(()=>{let k=p.current;k&&(k.focus(),k.setSelectionRange(0,k.value.length))})):x.current&&(e==null||e()),()=>{b.current!==v.current&&(v.current=b.current,t.renamePage(i.id,b.current))}),[r]);let P=Sn();return(0,We.jsxs)(Nt.Root,{open:r,onOpenChange:m,children:[(0,We.jsx)(Nt.Trigger,{asChild:!0,"data-shy":"true",children:(0,We.jsx)(fu,{bp:fn,children:(0,We.jsx)(Ft,{children:(0,We.jsx)(Xs.MixerVerticalIcon,{})})})}),(0,We.jsxs)(Nt.Portal,{container:P.current,children:[(0,We.jsx)(ZS,{onPointerDown:u}),(0,We.jsxs)(XS,{dir:"ltr",onKeyDown:f,onKeyUp:f,children:[(0,We.jsx)(qi,{ref:p,placeholder:n.formatMessage({id:"page.name"}),value:l,onChange:T,onKeyDown:y,icon:(0,We.jsx)(Xs.Pencil1Icon,{})}),(0,We.jsx)(Te,{}),(0,We.jsx)(Su,{onSelect:h,children:(0,We.jsx)(Dr.FormattedMessage,{id:"duplicate"})}),(0,We.jsx)(Su,{disabled:!c,onSelect:g,children:(0,We.jsx)(Dr.FormattedMessage,{id:"delete"})}),(0,We.jsx)(Te,{}),(0,We.jsx)(Nt.Cancel,{asChild:!0,children:(0,We.jsx)(at,{children:(0,We.jsx)(Dr.FormattedMessage,{id:"cancel"})})})]})]})]})}var XS=R(Nt.Content,{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",minWidth:240,maxWidth:"fit-content",maxHeight:"85vh",marginTop:"-5vh",pointerEvents:"all",backgroundColor:"$panel",padding:"$1",borderRadius:"$2",font:"$ui",zIndex:999999,"&:focus":{outline:"none"}}),ZS=R(Nt.Overlay,{backgroundColor:"rgba(0, 0, 0, .15)",position:"absolute",pointerEvents:"all",inset:0,zIndex:999998});function Su(e){var t=e,{onSelect:i}=t,o=Ae(t,["onSelect"]);return(0,We.jsx)(Nt.Action,{asChild:!0,onClick:i,onSelect:i,children:(0,We.jsx)(at,S({},o))})}var Ee=require("react/jsx-runtime"),qS=i=>Object.values(i.document.pages).sort((o,e)=>(o.childIndex||0)-(e.childIndex||0)),JS=i=>i.document.pages[i.appState.currentPageId].name,QS=i=>i.document.pages[i.appState.currentPageId].id;function bu(){let i=_(),o=(0,Ci.useIntl)(),e=Pt.useRef(!1),[t,n]=Pt.useState(!1);Pt.useEffect(()=>{e.current!==t&&(e.current=t)},[t]);let r=Pt.useCallback(()=>{n(!1)},[n]),s=Pt.useCallback(a=>{e.current!==a&&n(a)},[n]),l=i.useStore(JS);return(0,Ee.jsxs)(hn.Root,{dir:"ltr",open:t,onOpenChange:s,children:[(0,Ee.jsx)(hn.Trigger,{dir:"ltr",asChild:!0,id:"TD-Page",children:(0,Ee.jsx)(Dt,{variant:"text",children:l||o.formatMessage({id:"page"})})}),(0,Ee.jsx)(On,{variant:"menu",align:"start",sideOffset:4,children:t&&(0,Ee.jsx)(ey,{onClose:r})})]})}function ey({onClose:i}){let o=_(),e=(0,Ci.useIntl)(),t=o.useStore(qS),n=o.useStore(QS),r=e.formatMessage({id:"page"}),s=Pt.useCallback(()=>{let f=r+" "+(Object.keys(o.document.pages).length+1);o.createPage(void 0,f)},[o]),l=Pt.useCallback(f=>{i(),o.changePage(f)},[o]),[a,c]=Pt.useState(null),[p,u]=Pt.useState(null),h=Pt.useCallback(f=>{c(f.currentTarget.id),u(t.findIndex(v=>v.id===f.currentTarget.id)),f.dataTransfer.effectAllowed="move"},[]),g=Pt.useCallback(f=>{f.preventDefault();let v=t.findIndex(y=>y.id===f.currentTarget.id),b=f.currentTarget.getBoundingClientRect();v=(f.clientY-b.top)/b.height<.5?v:v+1,u(v)},[a,t]),m=Pt.useCallback(()=>{a!==null&&p!==null&&o.movePage(a,p),c(null),u(null)},[a,p]);return(0,Ee.jsxs)(Ee.Fragment,{children:[(0,Ee.jsx)(hn.RadioGroup,{dir:"ltr",value:n,onValueChange:l,children:t.map((f,v)=>(0,Ee.jsxs)(ty,{isDropAbove:v===p&&v===0,isDropBelow:p!==null&&v===p-1,children:[(0,Ee.jsx)(hn.RadioItem,{title:f.name||r,value:f.id,id:f.id,asChild:!0,onDragOver:g,onDragStart:h,onDrop:m,draggable:!0,children:(0,Ee.jsxs)(ny,{children:[(0,Ee.jsx)("span",{id:f.id,children:f.name||r}),(0,Ee.jsx)(hn.ItemIndicator,{children:(0,Ee.jsx)(Ft,{children:(0,Ee.jsx)(Zs.CheckIcon,{})})})]})},f.id),(0,Ee.jsx)(yu,{page:f,onClose:i})]},f.id))}),(0,Ee.jsx)(Te,{}),(0,Ee.jsx)(hn.Item,{onSelect:s,asChild:!0,children:(0,Ee.jsxs)(at,{children:[(0,Ee.jsx)("span",{children:(0,Ee.jsx)(Ci.FormattedMessage,{id:"create.page"})}),(0,Ee.jsx)(Ft,{children:(0,Ee.jsx)(Zs.PlusIcon,{})})]})})]})}var ty=R("div",{position:"relative",display:"grid",gridTemplateColumns:"1fr auto",gridAutoFlow:"column",margin:0,'& > *[data-shy="true"]':{opacity:0},'&:hover > *[data-shy="true"]':{opacity:1},variants:{isDropAbove:{true:{"&::after":{content:"",display:"block",position:"absolute",top:0,width:"100%",height:"1px",backgroundColor:"$selected",zIndex:999,pointerEvents:"none"}}},isDropBelow:{true:{"&::after":{content:"",display:"block",position:"absolute",width:"100%",height:"1px",top:"100%",backgroundColor:"$selected",zIndex:999,pointerEvents:"none"}}}}}),ny=R(at,{minWidth:128});var Io=H(require("@radix-ui/react-dropdown-menu")),Po=require("@radix-ui/react-icons"),Rt=H(require("react")),wn=require("react-intl");var J=require("react/jsx-runtime"),oy=i=>i.appState.currentStyle,ry=i=>i.document.pageStates[i.appState.currentPageId].selectedIds,iy=Object.keys(hr),vu={["draw"]:(0,J.jsx)(Jl,{}),["solid"]:(0,J.jsx)(ed,{}),["dashed"]:(0,J.jsx)(Yl,{}),["dotted"]:(0,J.jsx)(Zl,{})},sy={["small"]:(0,J.jsx)(od,{}),["medium"]:(0,J.jsx)(id,{}),["large"]:(0,J.jsx)(ad,{})},ay={["start"]:(0,J.jsx)(Po.TextAlignLeftIcon,{}),["middle"]:(0,J.jsx)(Po.TextAlignCenterIcon,{}),["end"]:(0,J.jsx)(Po.TextAlignRightIcon,{}),["justify"]:(0,J.jsx)(Po.TextAlignJustifyIcon,{})},ly=i=>i.settings.isDarkMode?"dark":"light",dy=i=>i.settings.keepStyleMenuOpen,cy=i=>{let{activeTool:o,currentPageId:e}=i.appState;switch(o){case"select":{let t=i.document.pages[e],n=!1,r=!1;for(let s of i.document.pageStates[e].selectedIds)"text"in t.shapes[s]&&(n=!0),"label"in t.shapes[s]&&(r=!0);return n?"text":r?"label":""}case"text":return"text";case"rectangle":return"label";case"ellipse":return"label";case"triangle":return"label";case"arrow":return"label";case"line":return"label"}return!1},Tu=Rt.memo(function(){let o=_(),e=(0,wn.useIntl)(),t=o.useStore(ly),n=o.useStore(dy),r=o.useStore(cy),s=o.useStore(oy),l=o.useStore(ry),[a,c]=Rt.useState(s),p=Rt.useRef(s);Rt.useEffect(()=>{let{appState:{currentStyle:T},page:y,selectedIds:x}=o,P={};if(x.length<=0)P=T;else{let k=new Set([]);o.selectedIds.map(D=>y.shapes[D]).forEach(D=>{iy.forEach(C=>{if(!k.has(C))if(P[C]===void 0)P[C]=D.style[C];else{if(P[C]===D.style[C])return;P[C]=D.style[C],k.add(C)}})})}JSON.stringify(P)!==JSON.stringify(p.current)&&(p.current=P,c(P))},[s,l]);let u=Rt.useCallback(T=>{o.setSetting("keepStyleMenuOpen",T)},[]),h=Rt.useCallback(T=>{o.style({isFilled:T})},[]),g=Rt.useCallback(T=>{o.style({dash:T})},[]),m=Rt.useCallback(T=>{o.style({size:T})},[]),f=Rt.useCallback(T=>{o.style({font:T})},[]),v=Rt.useCallback(T=>{o.style({textAlign:T})},[]),b=Rt.useCallback(T=>{o.setMenuOpen(T)},[o]);return(0,J.jsxs)(Io.Root,{dir:"ltr",onOpenChange:b,open:n?!0:void 0,modal:!1,children:[(0,J.jsx)(Io.Trigger,{asChild:!0,id:"TD-Styles",children:(0,J.jsxs)(Dt,{"aria-label":e.formatMessage({id:"styles"}),variant:"text",children:[(0,J.jsx)(wn.FormattedMessage,{id:"styles"}),(0,J.jsxs)(uy,{style:{color:Yn[t][a.color]},children:[a.isFilled&&(0,J.jsx)(Ca,{size:16,stroke:"none",fill:Vo[t][a.color]}),vu[a.dash]]})]})}),(0,J.jsxs)(On,{id:"TD-StylesMenu",side:"bottom",align:"end",sideOffset:4,alignOffset:4,children:[(0,J.jsxs)(wi,{variant:"tall",id:"TD-Styles-Color-Container",children:[(0,J.jsx)("span",{children:(0,J.jsx)(wn.FormattedMessage,{id:"style.menu.color"})}),(0,J.jsx)(py,{children:Object.keys(Yn.light).map(T=>(0,J.jsx)(Io.Item,{onSelect:Ce,asChild:!0,id:`TD-Styles-Color-Swatch-${T}`,children:(0,J.jsx)(Dt,{variant:"icon",isActive:a.color===T,onClick:()=>o.style({color:T}),"aria-label":e.formatMessage({id:T}),children:(0,J.jsx)(Ca,{size:18,strokeWidth:2.5,fill:a.isFilled?Vo[t][T]:"transparent",stroke:Yn.light[T]})})},T))})]}),(0,J.jsx)(un,{variant:"styleMenu",checked:!!a.isFilled,onCheckedChange:h,id:"TD-Styles-Fill",children:(0,J.jsx)(wn.FormattedMessage,{id:"style.menu.fill"})}),(0,J.jsxs)(wi,{id:"TD-Styles-Dash-Container",children:[(0,J.jsx)(wn.FormattedMessage,{id:"style.menu.dash"}),(0,J.jsx)(qs,{dir:"ltr",value:a.dash,onValueChange:g,children:Object.values(en).map(T=>(0,J.jsx)(xi,{isActive:T===a.dash,value:T,onSelect:Ce,bp:fn,id:`TD-Styles-Dash-${T}`,"aria-label":e.formatMessage({id:T}),children:vu[T]},T))})]}),(0,J.jsxs)(wi,{id:"TD-Styles-Size-Container",children:[(0,J.jsx)(wn.FormattedMessage,{id:"style.menu.size"}),(0,J.jsx)(qs,{dir:"ltr",value:a.size,onValueChange:m,children:Object.values(ni).map(T=>(0,J.jsx)(xi,{isActive:T===a.size,value:T,onSelect:Ce,bp:fn,id:`TD-Styles-Dash-${T}`,"aria-label":e.formatMessage({id:T}),children:sy[T]},T))})]}),(r==="text"||r==="label")&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(Te,{}),(0,J.jsxs)(wi,{id:"TD-Styles-Font-Container",children:[(0,J.jsx)(wn.FormattedMessage,{id:"style.menu.font"}),(0,J.jsx)(qs,{dir:"ltr",value:a.font,onValueChange:f,children:Object.values(Eo).map(T=>(0,J.jsx)(xi,{isActive:T===a.font,value:T,onSelect:Ce,bp:fn,id:`TD-Styles-Font-${T}`,children:(0,J.jsx)(hy,{fontStyle:T,children:"Aa"})},T))})]}),r==="text"&&(0,J.jsxs)(wi,{id:"TD-Styles-Align-Container",children:[(0,J.jsx)(wn.FormattedMessage,{id:"style.menu.align"}),(0,J.jsx)(qs,{dir:"ltr",value:a.textAlign,onValueChange:v,children:Object.values(zt).map(T=>(0,J.jsx)(xi,{isActive:T===a.textAlign,value:T,onSelect:Ce,bp:fn,id:`TD-Styles-Align-${T}`,children:ay[T]},T))})]})]}),(0,J.jsx)(Te,{}),(0,J.jsx)(un,{variant:"styleMenu",checked:n,onCheckedChange:u,id:"TD-Styles-Keep-Open",children:(0,J.jsx)(wn.FormattedMessage,{id:"style.menu.keep.open"})})]})]})}),py=R("div",{display:"grid",gridTemplateColumns:"repeat(4, auto)",gap:0}),wi=R("div",{position:"relative",width:"100%",background:"none",border:"none",cursor:"pointer",minHeight:"32px",outline:"none",color:"$text",fontFamily:"$ui",fontWeight:400,fontSize:"$1",padding:"$2 0 $2 $3",borderRadius:4,userSelect:"none",WebkitUserSelect:"none",margin:0,display:"flex",gap:"$3",flexDirection:"row",alignItems:"center",justifyContent:"space-between",variants:{variant:{tall:{alignItems:"flex-start",padding:"0 0 0 $3","& > span":{paddingTop:"$4"}}}}}),qs=R(Io.DropdownMenuRadioGroup,{display:"flex",flexDirection:"row",gap:"$1"}),uy=R("div",{display:"grid","& > *":{gridColumn:1,gridRow:1}}),hy=R("div",{width:32,height:32,display:"flex",alignItems:"center",justifyContent:"center",fontSize:"$3",variants:{fontStyle:{["script"]:{fontFamily:"Caveat Brush"},["sans"]:{fontFamily:"Recursive"},["serif"]:{fontFamily:"Georgia"},["mono"]:{fontFamily:"Recursive Mono"}}}});var Js=H(require("@radix-ui/react-dropdown-menu")),Er=require("react-intl");var Vt=require("react/jsx-runtime"),my=i=>i.document.pageStates[i.appState.currentPageId].camera.zoom,xu=function(){let o=_(),e=o.useStore(my);return(0,Vt.jsxs)(Js.Root,{dir:"ltr",children:[(0,Vt.jsx)(Js.Trigger,{dir:"ltr",asChild:!0,id:"TD-Zoom",children:(0,Vt.jsxs)(gy,{onDoubleClick:o.resetZoom,variant:"text",children:[Math.round(e*100),"%"]})}),(0,Vt.jsxs)(On,{align:"end",children:[(0,Vt.jsx)(ce,{onSelect:Ce,onClick:o.zoomIn,kbd:"#+",id:"TD-Zoom-Zoom_In",children:(0,Vt.jsx)(Er.FormattedMessage,{id:"zoom.in"})}),(0,Vt.jsx)(ce,{onSelect:Ce,onClick:o.zoomOut,kbd:"#\u2212",id:"TD-Zoom-Zoom_Out",children:(0,Vt.jsx)(Er.FormattedMessage,{id:"zoom.out"})}),(0,Vt.jsxs)(ce,{onSelect:Ce,onClick:o.resetZoom,kbd:"\u21E70",id:"TD-Zoom-Zoom_To_100%",children:[(0,Vt.jsx)(Er.FormattedMessage,{id:"zoom.to"})," 100%"]}),(0,Vt.jsx)(ce,{onSelect:Ce,onClick:o.zoomToFit,kbd:"\u21E71",id:"TD-Zoom-To_Fit",children:(0,Vt.jsx)(Er.FormattedMessage,{id:"zoom.to.fit"})}),(0,Vt.jsx)(ce,{onSelect:Ce,onClick:o.zoomToSelection,kbd:"\u21E72",id:"TD-Zoom-To_Selection",children:(0,Vt.jsx)(Er.FormattedMessage,{id:"zoom.to.selection"})})]})]})},gy=R(Dt,{minWidth:56});var pt=require("react/jsx-runtime");function fy({readOnly:i,showPages:o,showMenu:e,showStyles:t,showZoom:n,showMultiplayerMenu:r}){let s=_(),l=(0,Cu.useIntl)();return(0,pt.jsxs)(Sy,{children:[(e||o)&&(0,pt.jsxs)(qr,{side:"left",id:"TD-MenuPanel",children:[e&&(0,pt.jsx)(pu,{readOnly:i}),r&&(0,pt.jsx)(gu,{}),o&&(0,pt.jsx)(bu,{})]}),(0,pt.jsx)(yy,{}),(t||n)&&(0,pt.jsxs)(qr,{side:"right",children:[s.readOnly?(0,pt.jsx)(by,{children:"Read Only"}):(0,pt.jsxs)(pt.Fragment,{children:[(0,pt.jsx)(Ba,{kbd:"#Z",label:l.formatMessage({id:"undo"}),onClick:s.undo,id:"TD-TopPanel-Undo","aria-label":l.formatMessage({id:"undo"}),children:(0,pt.jsx)(wa,{})}),(0,pt.jsx)(Ba,{kbd:"#\u21E7Z",label:l.formatMessage({id:"redo"}),onClick:s.redo,id:"TD-TopPanel-Redo","aria-label":l.formatMessage({id:"redo"}),children:(0,pt.jsx)(wa,{flipHorizontal:!0})})]}),n&&(0,pt.jsx)(xu,{}),t&&!i&&(0,pt.jsx)(Tu,{})]})]})}var Sy=R("div",{width:"100%",position:"absolute",top:0,left:0,right:0,display:"flex",flexDirection:"row",pointerEvents:"none","& > *":{pointerEvents:"all"}}),yy=R("div",{flexGrow:2,pointerEvents:"none"}),by=R("div",{width:"100%",display:"flex",alignItems:"center",justifyContent:"center",fontFamily:"$ui",fontSize:"$1",paddingLeft:"$4",paddingRight:"$1",userSelect:"none",WebkitUserSelect:"none"}),wu=ku.memo(fy);var Iu=H(require("react"));function Pu(i){Iu.default.useEffect(()=>{let o=!1,e=!1,t=i.current;if(!t)return;let n=a=>{a.key===" "&&!e&&(e=!0,o?t.setAttribute("style","cursor: grabbing !important"):t.setAttribute("style","cursor: grab !important"))},r=a=>{a.key===" "&&(e=!1,t.setAttribute("style","cursor: initial"))},s=a=>{o=!0,a.button===1&&t.setAttribute("style","cursor: grabbing !important"),a.button===0&&e&&t.setAttribute("style","cursor: grabbing !important")},l=()=>{o=!1,e?t.setAttribute("style","cursor: grab !important"):t.setAttribute("style","cursor: initial")};return t.addEventListener("keydown",n),t.addEventListener("keyup",r),t.addEventListener("pointerdown",s),t.addEventListener("pointerup",l),()=>{t.removeEventListener("keydown",n),t.removeEventListener("keyup",r),t.removeEventListener("pointerdown",s),t.removeEventListener("pointerup",l)}},[i.current])}var ut=require("telva-core"),ie=require("telva-vec");var Ii=require("idb-keyval");var Ru="telva_clipboard";function Du(){return F(this,null,function*(){return(0,Ii.get)(Ru)})}function Eu(i){return F(this,null,function*(){return(0,Ii.set)(Ru,i)})}var qo=H(require("idb-keyval")),Bu=require("telva-core"),Mu=H(require("zustand")),Lu=H(require("zustand/vanilla"));var Qs=class{constructor(o,e,t,n){d(this,"_idbId");d(this,"initialState");d(this,"store");d(this,"pointer",-1);d(this,"_state");d(this,"_status","loading");d(this,"stack",[]);d(this,"_snapshot");d(this,"useStore");d(this,"ready");d(this,"isPaused",!1);d(this,"persist",(o,e)=>{if(this._status==="ready"&&(this.onPersist&&this.onPersist(this._state,o,e),this._idbId))return qo.set(this._idbId,this._state).catch(t=>console.error(t))});d(this,"applyPatch",(o,e)=>{let t=this._state,n=Bu.Utils.deepMerge(this._state,o),r=this.cleanup(n,t,o,e);return this.onStateWillChange&&this.onStateWillChange(r,e),this._state=r,this.store.setState(this._state,!0),this.onStateDidChange&&this.onStateDidChange(this._state,e),this});d(this,"migrate",o=>o);d(this,"cleanup",(o,e,t,n)=>o);d(this,"onStateWillChange");d(this,"onStateDidChange");d(this,"patchState",(o,e)=>(this.applyPatch(o,e),this.onPatch&&this.onPatch(this._state,o,e),this));d(this,"replaceState",(o,e)=>{let t=this.cleanup(o,this._state,o,e);return this.onStateWillChange&&this.onStateWillChange(t,"replace"),this._state=t,this.store.setState(this._state,!0),this.onStateDidChange&&this.onStateDidChange(this._state,"replace"),this});d(this,"setState",(o,e=o.id)=>(this.pointer<this.stack.length-1&&(this.stack=this.stack.slice(0,this.pointer+1)),this.stack.push(I(S({},o),{id:e})),this.pointer=this.stack.length-1,this.applyPatch(o.after,e),this.onCommand&&this.onCommand(this._state,o,e),this.persist(o.after,e),this));d(this,"onReady");d(this,"onPatch");d(this,"onCommand");d(this,"onPersist");d(this,"onReplace");d(this,"onReset");d(this,"onResetHistory");d(this,"onUndo");d(this,"onRedo");d(this,"reset",()=>(this.onStateWillChange&&this.onStateWillChange(this.initialState,"reset"),this._state=this.initialState,this.store.setState(this._state,!0),this.resetHistory(),this.persist({},"reset"),this.onStateDidChange&&this.onStateDidChange(this._state,"reset"),this.onReset&&this.onReset(this._state),this));d(this,"replaceHistory",(o,e=o.length-1)=>(this.stack=o,this.pointer=e,this.onReplace&&this.onReplace(this._state),this));d(this,"resetHistory",()=>(this.stack=[],this.pointer=-1,this.onResetHistory&&this.onResetHistory(this._state),this));d(this,"undo",()=>{if(!this.isPaused){if(!this.canUndo)return this;let o=this.stack[this.pointer];this.pointer--,this.applyPatch(o.before,"undo"),this.persist(o.before,"undo")}return this.onUndo&&this.onUndo(this._state),this});d(this,"redo",()=>{if(!this.isPaused){if(!this.canRedo)return this;this.pointer++;let o=this.stack[this.pointer];this.applyPatch(o.after,"redo"),this.persist(o.after,"undo")}return this.onRedo&&this.onRedo(this._state),this});d(this,"setSnapshot",()=>(this._snapshot=S({},this._state),this));d(this,"forceUpdate",()=>{this.store.setState(this._state,!0)});this._idbId=e,this._state=gt(o),this._snapshot=gt(o),this.initialState=gt(o),this.store=(0,Lu.default)(()=>this._state),this.useStore=(0,Mu.default)(this.store),this.ready=new Promise(r=>{let s="none";this._idbId?(s="restored",qo.get(this._idbId).then(l=>F(this,null,function*(){if(l){let a=l;if(t){let p=yield qo.get(e+"_version");p&&p<t&&(a=n?n(l,o,p):o,s="migrated")}yield qo.set(e+"_version",t||-1);let c=this._state.appState.isEmptyCanvas;a=this.migrate(a),this._state=gt(a),this._snapshot=gt(a),this._state.appState.isEmptyCanvas=c,this.store.setState(this._state,!0)}else yield qo.set(e+"_version",t||-1);this._status="ready",r(s)})).catch(l=>console.error(l))):(this._status="ready",r(s))}).then(r=>(this.onReady&&this.onReady(r),r))}pause(){this.isPaused=!0}resume(){this.isPaused=!1}get canUndo(){return this.pointer>-1}get canRedo(){return this.pointer<this.stack.length-1}get state(){return this._state}get status(){return this._status}get snapshot(){return this._snapshot}};var Au=require("telva-core"),Tl=require("telva-vec");function Vu(i,o,e){let{currentPageId:t}=i,n=o.map(h=>i.getShape(h)),r=n.map(h=>({id:h.id,point:[...h.point],bounds:B.getBounds(h)})),s=Au.Utils.getCommonBounds(r.map(({bounds:h})=>h)),l=s.minX+s.width/2,a=s.minY+s.height/2,c=Object.fromEntries(r.map(({id:h,point:g,bounds:m})=>[h,{prev:g,next:{["top"]:[g[0],s.minY],["centerVertical"]:[g[0],a-m.height/2],["bottom"]:[g[0],s.maxY-m.height],["left"]:[s.minX,g[1]],["centerHorizontal"]:[l-m.width/2,g[1]],["right"]:[s.maxX-m.width,g[1]]}[e]}])),{before:p,after:u}=B.mutateShapes(i.state,o,h=>c[h.id]?{point:c[h.id].next}:h,t,!1);return n.forEach(h=>{if(h.type==="group"){let g=Tl.Vec.sub(u[h.id].point,p[h.id].point);h.children.forEach(m=>{let f=i.getShape(m);p[f.id]={point:f.point},u[f.id]={point:Tl.Vec.add(f.point,g)}}),delete p[h.id],delete u[h.id]}}),{id:"align",before:{document:{pages:{[t]:{shapes:p}},pageStates:{[t]:{selectedIds:o}}}},after:{document:{pages:{[t]:{shapes:u}},pageStates:{[t]:{selectedIds:o}}}}}}function Hu(i,o){return{id:"change_page",before:{appState:{currentPageId:i.currentPageId}},after:{appState:{currentPageId:o}}}}var Ou=require("telva-core");function zu(i,o){var n;let e=i,t=new Set(o);for(;t.has(e);)e=(n=/^.*(\d+)$/.exec(e))!=null&&n[1]?e.replace(/(\d+)(?=\D?)$/,r=>(+r+1).toString()):`${e} 1`;return e}function Fu(i,o,e){let t={shapes:{},bindings:{}},n={shapes:{},bindings:{}},r=[],s=new Set,l=new Set;o.filter(c=>!B.getShape(i,c,e).isLocked).forEach(c=>{s.add(c);let p=B.getShape(i,c,e);t.shapes[c]=p,n.shapes[c]=void 0,p.children!==void 0&&p.children.forEach(u=>{s.add(u);let h=B.getShape(i,u,e);t.shapes[u]=h,n.shapes[u]=void 0}),p.parentId!==e&&r.push(B.getShape(i,p.parentId,e)),p.assetId&&l.add(p.assetId)}),r.forEach(c=>{var p;o.includes(c.id)||(s.add(c.id),t.shapes[c.id]={children:c.children},n.shapes[c.id]={children:c.children.filter(u=>!o.includes(u))},((p=n.shapes[c.id])==null?void 0:p.children.length)===0&&(n.shapes[c.id]=void 0,t.shapes[c.id]=B.getShape(i,c.id,e)))});let a=B.getPage(i,e);return Object.values(a.bindings).filter(c=>s.has(c.fromId)||s.has(c.toId)).forEach(c=>{for(let p of[c.toId,c.fromId])if(n.shapes[p]===void 0){t.bindings[c.id]=c,n.bindings[c.id]=void 0;let u=a.shapes[p];u&&u.handles&&Object.values(u.handles).filter(h=>h.bindingId===c.id).forEach(h=>{var g,m,f,v,b,T;t.shapes[p]=I(S({},t.shapes[p]),{handles:I(S({},(g=t.shapes[p])==null?void 0:g.handles),{[h.id]:I(S({},(f=(m=t.shapes[p])==null?void 0:m.handles)==null?void 0:f[h.id]),{bindingId:c.id})})}),s.has(p)||(n.shapes[p]=I(S({},n.shapes[p]),{handles:I(S({},(v=n.shapes[p])==null?void 0:v.handles),{[h.id]:I(S({},(T=(b=n.shapes[p])==null?void 0:b.handles)==null?void 0:T[h.id]),{bindingId:void 0})})}))})}}),Object.values(i.document.pages).flatMap(c=>Object.values(c.shapes)).forEach(c=>{"assetId"in c&&c.assetId&&!s.has(c.id)&&l.delete(c.assetId)}),{before:t,after:n,assetsToRemove:Array.from(l)}}function $u(i,o,e=Ou.Utils.uniqueId(),t="Page"){let{currentPageId:n}=i,r=Object.values(i.state.document.pages).sort((p,u)=>{var h,g;return((h=p.childIndex)!=null?h:0)-((g=u.childIndex)!=null?g:0)}),s=r[r.length-1],l=s!=null&&s.childIndex?(s==null?void 0:s.childIndex)+1:1,a={id:e,name:zu(t,r.map(p=>{var u;return(u=p.name)!=null?u:""})),childIndex:l,shapes:{},bindings:{}},c={id:e,selectedIds:[],camera:{point:o,zoom:1},editingId:void 0,bindingId:void 0,hoveredId:void 0,pointedId:void 0};return{id:"create_page",before:{appState:{currentPageId:n},document:{pages:{[e]:void 0},pageStates:{[e]:void 0}}},after:{appState:{currentPageId:a.id},document:{pages:{[e]:a},pageStates:{[e]:c}}}}}function xl(i,o,e=[]){let{currentPageId:t}=i,n={},r={};o.forEach(a=>{n[a.id]=void 0,r[a.id]=a});let s={},l={};return e.forEach(a=>{s[a.id]=void 0,l[a.id]=a}),{id:"create",before:{document:{pages:{[t]:{shapes:n,bindings:s}},pageStates:{[t]:{selectedIds:[...i.selectedIds]}}}},after:{document:{pages:{[t]:{shapes:r,bindings:l}},pageStates:{[t]:{selectedIds:o.map(a=>a.id)}}}}}}function Gu(i,o){let{currentPageId:e,document:{pages:t,pageStates:n}}=i,r=Object.values(t).sort((a,c)=>(a.childIndex||0)-(c.childIndex||0)),s=r.findIndex(a=>a.id===o),l;return o===e?s===r.length-1?l=r[r.length-2].id:l=r[s+1].id:l=e,{id:"delete_page",before:{appState:{currentPageId:o},document:{pages:{[o]:S({},t[o])},pageStates:{[o]:S({},n[o])}}},after:{appState:{currentPageId:l},document:{pages:{[o]:void 0},pageStates:{[o]:void 0}}}}}var vy=(i,o)=>{let e=S({},i);return o.forEach(t=>e[t]=void 0),e};function kl(i,o,e=i.currentPageId){let{pageState:t,selectedIds:n,document:{assets:r}}=i,{before:s,after:l,assetsToRemove:a}=Fu(i.state,o,e),c=vy(r,a);return{id:"delete",before:{document:{assets:r,pages:{[e]:s},pageStates:{[e]:{selectedIds:[...i.selectedIds]}}}},after:{document:{assets:c,pages:{[e]:l},pageStates:{[e]:{selectedIds:n.filter(p=>!o.includes(p)),hoveredId:t.hoveredId&&o.includes(t.hoveredId)?void 0:t.hoveredId}}}}}}var ju=require("telva-core"),Cl=H(require("telva-vec"));function Wu(i,o,e){let{currentPageId:t}=i,n=o.map(a=>i.getShape(a)),r=Object.fromEntries(Ty(n,e).map(a=>[a.id,a])),{before:s,after:l}=B.mutateShapes(i.state,o.filter(a=>r[a]!==void 0),a=>{var c;return{point:(c=r[a.id])==null?void 0:c.next}},t);return n.forEach(a=>{if(a.type==="group"){let c=Cl.default.sub(l[a.id].point,s[a.id].point);a.children.forEach(p=>{let u=i.getShape(p);s[u.id]={point:u.point},l[u.id]={point:Cl.default.add(u.point,c)}}),delete s[a.id],delete l[a.id]}}),{id:"distribute",before:{document:{pages:{[t]:{shapes:s}},pageStates:{[t]:{selectedIds:o}}}},after:{document:{pages:{[t]:{shapes:l}},pageStates:{[t]:{selectedIds:o}}}}}}function Ty(i,o){let e=i.map(s=>{let l=B.getShapeUtil(s);return{id:s.id,point:[...s.point],bounds:l.getBounds(s),center:l.getCenter(s)}}),t=e.length,n=ju.Utils.getCommonBounds(e.map(({bounds:s})=>s)),r=[];switch(o){case"horizontal":{let s=e.reduce((l,a)=>l+a.bounds.width,0);if(s>n.width){let l=e.sort((h,g)=>h.bounds.minX-g.bounds.minX)[0],a=e.sort((h,g)=>g.bounds.maxX-h.bounds.maxX)[0],c=e.filter(h=>h!==l&&h!==a).sort((h,g)=>h.center[0]-g.center[0]),p=(a.center[0]-l.center[0])/(t-1),u=l.center[0]+p;c.forEach(({id:h,point:g,bounds:m},f)=>{r.push({id:h,prev:g,next:[u+p*f-m.width/2,m.minY]})})}else{let l=e.sort((p,u)=>p.center[0]-u.center[0]),a=n.minX,c=(n.width-s)/(t-1);l.forEach(({id:p,point:u,bounds:h})=>{r.push({id:p,prev:u,next:[a,h.minY]}),a+=h.width+c})}break}case"vertical":{let s=e.reduce((l,a)=>l+a.bounds.height,0);if(s>n.height){let l=e.sort((h,g)=>h.bounds.minY-g.bounds.minY)[0],a=e.sort((h,g)=>g.bounds.maxY-h.bounds.maxY)[0],c=e.filter(h=>h!==l&&h!==a).sort((h,g)=>h.center[1]-g.center[1]),p=(a.center[1]-l.center[1])/(t-1),u=l.center[1]+p;c.forEach(({id:h,point:g,bounds:m},f)=>{r.push({id:h,prev:g,next:[m.minX,u+p*f-m.height/2]})})}else{let l=e.sort((p,u)=>p.center[1]-u.center[1]),a=n.minY,c=(n.height-s)/(t-1);l.forEach(({id:p,point:u,bounds:h})=>{r.push({id:p,prev:u,next:[h.minX,a]}),a+=h.height+c})}break}}return r}var Br=require("telva-core");function Nu(i,o){let{currentPageId:e,pageState:{camera:t}}=i,n=i.document.pages[o],r=Br.Utils.uniqueId(),s=Object.fromEntries([[n.id,r],...Object.keys(n.shapes).map(p=>[p,Br.Utils.uniqueId()]),...Object.keys(n.bindings).map(p=>[p,Br.Utils.uniqueId()])]),l=Object.fromEntries(Object.entries(n.shapes).map(([p,u])=>[s[p],I(S({},Br.Utils.deepClone(u)),{id:s[p],parentId:s[u.parentId]})])),a=Object.fromEntries(Object.entries(n.bindings).map(([p,u])=>[s[p],I(S({},Br.Utils.deepClone(u)),{id:s[u.id],fromId:s[u.fromId],toId:s[u.toId]})]));Object.values(n.bindings).forEach(p=>{let u=s[p.fromId],h=l[u].handles;h&&Object.values(h).forEach(f=>{f.bindingId===p.id&&(f.bindingId=s[p.id])});let g=s[p.toId],m=l[g].handles;m&&Object.values(m).forEach(f=>{f.bindingId===p.id&&(f.bindingId=s[p.id])})});let c=I(S({},n),{id:s[n.id],name:n.name+" Copy",shapes:l,bindings:a});return{id:"duplicate_page",before:{appState:{currentPageId:e},document:{pages:{[r]:void 0},pageStates:{[r]:void 0}}},after:{appState:{currentPageId:r},document:{pages:{[r]:c},pageStates:{[r]:I(S({},n),{id:r,selectedIds:[],camera:S({},t),editingId:void 0,bindingId:void 0,hoveredId:void 0,pointedId:void 0})}}}}}var io=require("telva-core"),ea=require("telva-vec");function Uu(i,o,e){let{selectedIds:t,currentPageId:n,page:r,shapes:s}=i,l={shapes:{},bindings:{}},a={shapes:{},bindings:{}},c={},p=o.map(g=>i.getShape(g)).filter(g=>!o.includes(g.parentId));p.forEach(g=>{let m=io.Utils.uniqueId();if(l.shapes[m]=void 0,a.shapes[m]=I(S({},io.Utils.deepClone(g)),{id:m,childIndex:B.getChildIndexAbove(i.state,g.id,n)}),g.children&&(a.shapes[m].children=[]),g.parentId!==n){let f=i.getShape(g.parentId);l.shapes[f.id]=I(S({},l.shapes[f.id]),{children:f.children}),a.shapes[f.id]=I(S({},a.shapes[f.id]),{children:[...(a.shapes[f.id]||f).children,m]})}c[g.id]=m}),p.forEach(g=>{g.children&&g.children.forEach(m=>{var T,y;let f=i.getShape(m),v=io.Utils.uniqueId(),b=c[g.id];l.shapes[v]=void 0,a.shapes[v]=I(S({},io.Utils.deepClone(f)),{id:v,parentId:b,childIndex:B.getChildIndexAbove(i.state,f.id,n)}),c[m]=v,(y=(T=a.shapes[c[g.id]])==null?void 0:T.children)==null||y.push(v)})});let u=new Set(Object.keys(c));Object.values(r.bindings).filter(g=>u.has(g.fromId)||u.has(g.toId)).forEach(g=>{if(u.has(g.fromId))if(u.has(g.toId)){let m=io.Utils.uniqueId(),f=I(S({},io.Utils.deepClone(g)),{id:m,fromId:c[g.fromId],toId:c[g.toId]});l.bindings[m]=void 0,a.bindings[m]=f;let v=a.shapes[f.fromId];Object.values(v.handles).forEach(b=>{b.bindingId===g.id&&(b.bindingId=m)})}else{let m=a.shapes[c[g.fromId]];Object.values(m.handles).forEach(f=>{f.bindingId===g.id&&(f.bindingId=void 0)})}});let h=Object.values(a.shapes);if(e){let g=io.Utils.getCommonBounds(h.map(f=>B.getBounds(f))),m=io.Utils.getBoundsCenter(g);h.forEach(f=>{!f.point||(f.point=ea.Vec.sub(e,ea.Vec.sub(m,f.point)))})}else{let g=[16,16];h.forEach(m=>{!m.point||(m.point=ea.Vec.add(m.point,g))})}return h.forEach(g=>{g.isLocked&&(g.isLocked=!1)}),{id:"duplicate",before:{document:{pages:{[n]:l},pageStates:{[n]:{selectedIds:t}}}},after:{document:{pages:{[n]:a},pageStates:{[n]:{selectedIds:Array.from(u.values()).map(g=>c[g])}}}}}}var In=require("telva-core");function wl(i,o,e){let{selectedIds:t,currentPageId:n,page:{shapes:r}}=i,s=o.map(u=>B.getBounds(r[u])),l=o.length===1&&r[o[0]].type==="group",a=In.Utils.getCommonBounds(s),{before:c,after:p}=B.mutateShapes(i.state,o,u=>{let h=B.getBounds(u),g=u.parentId!==n;switch(e){case"horizontal":{if(g&&!l){let f=B.getBounds(r[u.parentId]),b=In.Utils.getRelativeTransformedBoundingBox(a,a,f,!0,!1).minX-f.minX;return B.getShapeUtil(u).transform(u,I(S({},h),{minX:h.minX+b,maxX:h.maxX+b}),{type:In.TLBoundsCorner.TopLeft,scaleX:1,scaleY:1,initialShape:u,transformOrigin:[.5,.5]})}let m=In.Utils.getRelativeTransformedBoundingBox(a,a,h,!0,!1);return B.getShapeUtil(u).transform(u,m,{type:In.TLBoundsCorner.TopLeft,scaleX:-1,scaleY:1,initialShape:u,transformOrigin:[.5,.5]})}case"vertical":{if(g&&!l){let f=B.getBounds(r[u.parentId]),b=In.Utils.getRelativeTransformedBoundingBox(a,a,f,!1,!0).minY-f.minY;return B.getShapeUtil(u).transform(u,I(S({},h),{minY:h.minY+b,maxY:h.maxY+b}),{type:In.TLBoundsCorner.TopLeft,scaleX:1,scaleY:1,initialShape:u,transformOrigin:[.5,.5]})}let m=In.Utils.getRelativeTransformedBoundingBox(a,a,h,!1,!0);return B.getShapeUtil(u).transform(u,m,{type:In.TLBoundsCorner.TopLeft,scaleX:1,scaleY:-1,initialShape:u,transformOrigin:[.5,.5]})}}},n,!0);return{id:"flip",before:{document:{pages:{[n]:{shapes:c}},pageStates:{[n]:{selectedIds:t}}}},after:{document:{pages:{[n]:{shapes:p}},pageStates:{[n]:{selectedIds:o}}}}}}var Ku=require("telva-core");function _u(i,o,e,t){var x,P;if(o.length<2)return;let n={},r={},s={},l={},a=[...o],c=[],p=[],u=[];for(let k of o){let D=i.getShape(k);if(!D.isLocked)if(D.children===void 0)c.push(D);else{let C=D.children.filter(E=>!i.getShape(E).isLocked);u.push(D),a.push(...C),c.push(...C.map(E=>i.getShape(E)).filter(Boolean))}}if(c.every(k=>k.parentId===c[0].parentId)&&c[0].parentId!==t&&((x=i.getShape(c[0].parentId).children)==null?void 0:x.length)===a.length)return;let h=B.flattenPage(i.state,t),g=Object.fromEntries(c.map(k=>[k.id,h.indexOf(k)])),m=c.sort((k,D)=>g[k.id]-g[D.id]),f=t,v=(m.filter(k=>k.parentId===t)[0]||m[0]).childIndex,b=Ku.Utils.getCommonBounds(c.map(k=>B.getBounds(k)));for(n[e]=void 0,r[e]=B.getShapeUtil("group").create({id:e,childIndex:v,parentId:f,point:[b.minX,b.minY],size:[b.width,b.height],children:m.map(k=>k.id)}),m.forEach((k,D)=>{if(k.parentId!==t){let C=i.getShape(k.parentId);u.push(C)}n[k.id]=I(S({},n[k.id]),{parentId:k.parentId,childIndex:k.childIndex}),r[k.id]=I(S({},r[k.id]),{parentId:e,childIndex:D+1})});u.length>0;){let k=u.pop();if(!k)break;let D=(((P=n[k.id])==null?void 0:P.children)||k.children).filter(C=>C&&!(a.includes(C)||p.includes(C)));D.length===0?(n[k.id]=k,r[k.id]=void 0,k.parentId!==t&&(p.push(k.id),u.push(i.getShape(k.parentId)))):(n[k.id]=I(S({},n[k.id]),{children:k.children}),r[k.id]=I(S({},r[k.id]),{children:D}))}let{bindings:T}=i,y=new Set(p);return T.forEach(k=>{for(let D of[k.toId,k.fromId])if(y.has(D)){s[k.id]=k,l[k.id]=void 0;let C=i.getShape(D);C.handles&&Object.values(C.handles).filter(E=>E.bindingId===k.id).forEach(E=>{var M,L;n[D]=I(S({},n[D]),{handles:I(S({},(M=n[D])==null?void 0:M.handles),{[E.id]:{bindingId:k.id}})}),p.includes(D)||(r[D]=I(S({},r[D]),{handles:I(S({},(L=r[D])==null?void 0:L.handles),{[E.id]:{bindingId:void 0}})}))})}}),{id:"group",before:{document:{pages:{[t]:{shapes:n,bindings:s}},pageStates:{[t]:{selectedIds:o}}}},after:{document:{pages:{[t]:{shapes:r,bindings:s}},pageStates:{[t]:{selectedIds:[e]}}}}}}var Yu=require("telva-core"),Il=require("telva-vec");function Xu(i,o,e,t,n){let{page:r}=i,s={before:{shapes:{},bindings:{}},after:{shapes:{},bindings:{}}},l={before:{shapes:{},bindings:{}},after:{shapes:{},bindings:{}}},a=new Set,c=new Set;o.map(T=>i.getShape(T,t)).filter(T=>!T.isLocked).forEach(T=>{a.add(T.id),c.add(T),T.children!==void 0&&T.children.forEach(y=>{a.add(y),c.add(i.getShape(y,t))})});let p=B.getTopChildIndex(i.state,n),u=Array.from(c.values());u.forEach((T,y)=>{if(s.before.shapes[T.id]=T,s.after.shapes[T.id]=void 0,l.before.shapes[T.id]=void 0,l.after.shapes[T.id]=T,!a.has(T.parentId)&&(l.after.shapes[T.id]=I(S({},T),{parentId:n,childIndex:p+y}),T.parentId!==t)){let x=i.getShape(T.parentId,t);s.before.shapes[x.id]={children:x.children},s.after.shapes[x.id]={children:x.children.filter(P=>P!==T.id)}}}),Object.values(r.bindings).filter(T=>a.has(T.fromId)||a.has(T.toId)).forEach(T=>{s.before.bindings[T.id]=T,s.after.bindings[T.id]=void 0;let y=i.getShape(T.fromId,t);if(a.has(T.fromId)&&a.has(T.toId))l.before.bindings[T.id]=void 0,l.after.bindings[T.id]=T;else if(a.has(T.fromId)){let P=i.getShape(T.fromId,t),D=Object.values(y.handles).find(E=>E.bindingId===T.id).id,C=l.after.shapes[P.id];C.handles=I(S({},C.handles),{[D]:I(S({},C.handles[D]),{bindingId:void 0})})}else{let P=i.getShape(T.fromId,t),k=Object.values(y.handles).find(D=>D.bindingId===T.id);s.before.shapes[P.id]={handles:{[k.id]:{bindingId:T.id}}},s.after.shapes[P.id]={handles:{[k.id]:{bindingId:void 0}}}}});let h=i.state.document.pageStates[n],g=Yu.Utils.getCommonBounds(u.map(T=>B.getBounds(T))),m=B.getCameraZoom(e.width<e.height?(e.width-128)/g.width:(e.height-128)/g.height),f=(e.width-g.width*m)/2/m,v=(e.height-g.height*m)/2/m,b=Il.Vec.toFixed(Il.Vec.add([-g.minX,-g.minY],[f,v]));return{id:"move_to_page",before:{appState:{currentPageId:t},document:{pages:{[t]:s.before,[n]:l.before},pageStates:{[t]:{selectedIds:o},[n]:{selectedIds:h.selectedIds,camera:h.camera}}}},after:{appState:{currentPageId:n},document:{pages:{[t]:s.after,[n]:l.after},pageStates:{[t]:{selectedIds:[]},[n]:{selectedIds:o,camera:{zoom:m,point:b}}}}}}}function Zu(i,o,e){let{pages:t}=i.document,n=t[o],r=Object.values(t).sort((a,c)=>{var p,u;return((p=a.childIndex)!=null?p:0)-((u=c.childIndex)!=null?u:0)}),s=r.indexOf(n),l=[...r];return l.splice(s,1),l.splice(e>s?e-1:e,0,n),{id:"move_page",before:{document:{pages:Object.fromEntries(r.map(a=>[a.id,{childIndex:a.childIndex}]))}},after:{document:{pages:Object.fromEntries(l.map((a,c)=>[a.id,{childIndex:c}]))}}}}function Pi(i,o,e){let{currentPageId:t,page:n}=i,r=new Set(o.map(p=>i.getShape(p).parentId)),s={before:{},after:{}},l,a,c;return Array.from(r.values()).forEach(p=>{let u=[];if(p===n.id)u=Object.values(n.shapes).sort((m,f)=>m.childIndex-f.childIndex);else{let m=i.getShape(p);if(!m.children)throw Error("No children in parent!");u=m.children.map(f=>i.getShape(f)).sort((f,v)=>f.childIndex-v.childIndex)}let h=u.map(m=>m.id),g=o.filter(m=>h.includes(m)).map(m=>h.indexOf(m)).sort((m,f)=>m-f);if(g.length!==h.length)switch(e){case"toBack":{for(let m=0;m<h.length;m++)if(!g.includes(m)){l=m;break}a=u[l].childIndex,c=a/(g.length+1),s=B.mutateShapes(i.state,g.map(m=>u[m].id).reverse(),(m,f)=>({childIndex:a-(f+1)*c}),t);break}case"toFront":{for(let m=h.length-1;m>=0;m--)if(!g.includes(m)){l=m;break}a=u[l].childIndex,c=1,s=B.mutateShapes(i.state,g.map(m=>u[m].id),(m,f)=>({childIndex:a+(f+1)}),t);break}case"backward":{let m={};for(let f=h.length-1;f>=0;f--)if(g.includes(f)){for(let v=f;v>=0;v--)if(!g.includes(v)){let b=u[v].childIndex,T,y;v===0?(T=b/2,y=b/2/(f-v+1)):(T=u[v-1].childIndex,y=(b-T)/(f-v+1),T+=y);for(let x=0;x<f-v;x++)m[u[v+x+1].id]=T+y*x;break}}Object.values(m).length>0&&(s=B.mutateShapes(i.state,g.map(f=>u[f].id),f=>({childIndex:m[f.id]}),t));break}case"forward":{let m={};for(let f=0;f<h.length;f++)if(g.includes(f)){for(let v=f;v<h.length;v++)if(!g.includes(v)){a=u[v].childIndex;let b=v===h.length-1?1:(u[v+1].childIndex-a)/(v-f+1);for(let T=0;T<v-f;T++)m[u[f+T].id]=a+b*(T+1);break}}Object.values(m).length>0&&(s=B.mutateShapes(i.state,g.map(f=>u[f].id),f=>({childIndex:m[f.id]}),t));break}}}),{id:"move",before:{document:{pages:{[t]:{shapes:s.before}},pageStates:{[t]:{selectedIds:o}}}},after:{document:{pages:{[t]:{shapes:s.after}},pageStates:{[t]:{selectedIds:o}}}}}}function qu(i,o,e){let{page:t}=i;return{id:"rename_page",before:{document:{pages:{[o]:{name:t.name}}}},after:{document:{pages:{[o]:{name:e}}}}}}function Pl(i,o,e){let{currentPageId:t}=i,{before:n,after:r}=B.mutateShapes(i.state,o,s=>{var l,a;return(a=(l=i.getShapeUtil(s)).onDoubleClickBoundsHandle)==null?void 0:a.call(l,s)},e);return{id:"reset_bounds",before:{document:{pages:{[t]:{shapes:n}},pageStates:{[t]:{selectedIds:o}}}},after:{document:{pages:{[t]:{shapes:r}},pageStates:{[t]:{selectedIds:o}}}}}}var Rl=require("telva-core");var xy=Math.PI*2;function Ju(i,o,e=-xy/4){let{currentPageId:t}=i,n={},r={},s=o.flatMap(a=>{let c=i.getShape(a);return c.children?c.children.map(p=>i.getShape(p)):c}).filter(a=>!a.isLocked),l=Rl.Utils.getBoundsCenter(Rl.Utils.getCommonBounds(s.map(a=>B.getBounds(a))));return s.forEach(a=>{let c=B.getRotatedShapeMutation(a,B.getCenter(a),l,e);!c||(n[a.id]=B.getBeforeShape(a,c),r[a.id]=c)}),{id:"rotate",before:{document:{pages:{[t]:{shapes:n}},pageStates:{[t]:{selectedIds:o}}}},after:{document:{pages:{[t]:{shapes:r}},pageStates:{[t]:{selectedIds:o}}}}}}var Ri=require("telva-core");function Qu(i,o,e){let{currentPageId:t,selectedIds:n}=i,r=o.map(u=>i.getShape(u)),s=r.map(u=>B.getBounds(u)),l=Ri.Utils.getCommonBounds(s),a=o.flatMap(u=>{let h=i.getShape(u);return h.children?h.children:h.id}).filter(u=>!i.getShape(u).isLocked),{before:c,after:p}=B.mutateShapes(i.state,a,u=>{let h=B.getBounds(u);switch(e){case"horizontal":{let g=I(S({},h),{minX:l.minX,maxX:l.maxX,width:l.width});return B.getShapeUtil(u).transformSingle(u,g,{type:Ri.TLBoundsCorner.TopLeft,scaleX:g.width/h.width,scaleY:1,initialShape:u,transformOrigin:[.5,.5]})}case"vertical":{let g=I(S({},h),{minY:l.minY,maxY:l.maxY,height:l.height});return B.getShapeUtil(u).transformSingle(u,g,{type:Ri.TLBoundsCorner.TopLeft,scaleX:1,scaleY:g.height/h.height,initialShape:u,transformOrigin:[.5,.5]})}}},t);return r.forEach(u=>{u.type==="group"&&(delete c[u.id],delete p[u.id])}),{id:"stretch",before:{document:{pages:{[t]:{shapes:c}},pageStates:{[t]:{selectedIds:n}}}},after:{document:{pages:{[t]:{shapes:p}},pageStates:{[t]:{selectedIds:o}}}}}}var ta=require("telva-vec");function eh(i,o,e){let{currentPageId:t,selectedIds:n}=i,r=o.flatMap(a=>B.getDocumentBranch(i.state,a,t)).filter(a=>!i.getShape(a).isLocked),s={},l={};return r.map(a=>i.getShape(a)).filter(a=>!a.isLocked).forEach(a=>{s[a.id]={style:S({},Object.fromEntries(Object.keys(e).map(c=>[c,a.style[c]])))},l[a.id]={style:e},a.type==="text"&&(s[a.id].point=a.point,l[a.id].point=ta.Vec.toFixed(ta.Vec.add(a.point,ta.Vec.sub(i.getShapeUtil(a).getCenter(a),i.getShapeUtil(a).getCenter(I(S({},a),{style:S(S({},a.style),e)}))))))}),{id:"style",before:{document:{pages:{[t]:{shapes:s}},pageStates:{[t]:{selectedIds:n}}},appState:{currentStyle:S({},i.appState.currentStyle)}},after:{document:{pages:{[t]:{shapes:l}},pageStates:{[t]:{selectedIds:o}}},appState:{currentStyle:e}}}}function th(i,o,e){let{currentPageId:t,selectedIds:n}=i,r=Object.fromEntries(o.map(l=>{var a;return[l,{decorations:{[e]:(a=i.getShape(l).decorations)==null?void 0:a[e]}}]})),s=Object.fromEntries(o.filter(l=>!i.getShape(l).isLocked).map(l=>{var a;return[l,{decorations:{[e]:(a=i.getShape(l).decorations)!=null&&a[e]?void 0:"arrow"}}]}));return{id:"toggle_decorations",before:{document:{pages:{[t]:{shapes:r}},pageStates:{[t]:{selectedIds:n}}}},after:{document:{pages:{[t]:{shapes:s}},pageStates:{[t]:{selectedIds:o}}}}}}function na(i,o,e){let{currentPageId:t}=i,n=o.map(a=>i.getShape(a)).filter(a=>e==="isLocked"?!0:!a.isLocked),r=n.every(a=>a[e]),s={},l={};return n.forEach(a=>{s[a.id]={[e]:a[e]},l[a.id]={[e]:!r}}),{id:"toggle",before:{document:{pages:{[t]:{shapes:s}},pageStates:{[t]:{selectedIds:o}}}},after:{document:{pages:{[t]:{shapes:l}},pageStates:{[t]:{selectedIds:o}}}}}}var Dl=require("telva-vec");function nh(i,o,e){let{currentPageId:t,selectedIds:n}=i;i.rotationInfo.selectedIds=[...n];let r={shapes:{},bindings:{}},s={shapes:{},bindings:{}},l=o.flatMap(p=>{let u=i.getShape(p);return u.children?u.children:u.id}).filter(p=>!i.getShape(p).isLocked),a=B.mutateShapes(i.state,l,p=>({point:Dl.Vec.toFixed(Dl.Vec.add(p.point,e))}),t);return r.shapes=a.before,s.shapes=a.after,B.getBindings(i.state,t).filter(p=>o.includes(p.fromId)&&!o.includes(p.toId)).forEach(p=>{r.bindings[p.id]=p,s.bindings[p.id]=void 0;for(let u of[p.toId,p.fromId]){let h=i.getShape(u);!h.handles||Object.values(h.handles).filter(g=>g.bindingId===p.id).forEach(g=>{var m,f;r.shapes[u]=I(S({},r.shapes[u]),{handles:I(S({},(m=r.shapes[u])==null?void 0:m.handles),{[g.id]:{bindingId:p.id}})}),s.shapes[u]=I(S({},s.shapes[u]),{handles:I(S({},(f=s.shapes[u])==null?void 0:f.handles),{[g.id]:{bindingId:void 0}})})})}}),{id:"translate",before:{document:{pages:{[t]:r},pageStates:{[t]:{selectedIds:o}}}},after:{document:{pages:{[t]:s},pageStates:{[t]:{selectedIds:o}}}}}}function oh(i,o,e,t){let{bindings:n}=i,r={},s={},l={},a={},c=o,p=o.filter(u=>!e.find(h=>h.id===u));return e.filter(u=>!u.isLocked).forEach(u=>{let h=[],g=[];r[u.id]=u,s[u.id]=void 0,u.children.forEach(T=>{p.push(T);let y=i.getShape(T,t);h.push(y)});let m=u.childIndex,v=(B.getChildIndexAbove(i.state,u.id,t)-m)/h.length;h.sort((T,y)=>T.childIndex-y.childIndex).forEach((T,y)=>{r[T.id]={parentId:T.parentId,childIndex:T.childIndex},s[T.id]={parentId:t,childIndex:m+v*y}}),n.filter(T=>T.toId===u.id||T.fromId===u.id).forEach(T=>{for(let y of[T.toId,T.fromId])if(s[y]===void 0){l[T.id]=T,a[T.id]=void 0;let x=i.getShape(y,t);x.handles&&Object.values(x.handles).filter(P=>P.bindingId===T.id).forEach(P=>{var k,D;r[y]=I(S({},r[y]),{handles:I(S({},(k=r[y])==null?void 0:k.handles),{[P.id]:{bindingId:T.id}})}),g.includes(y)||(s[y]=I(S({},s[y]),{handles:I(S({},(D=s[y])==null?void 0:D.handles),{[P.id]:{bindingId:void 0}})}))})}})}),{id:"ungroup",before:{document:{pages:{[t]:{shapes:r,bindings:l}},pageStates:{[t]:{selectedIds:c}}}},after:{document:{pages:{[t]:{shapes:s,bindings:l}},pageStates:{[t]:{selectedIds:p}}}}}}function El(i,o,e){let t=o.map(r=>r.id),n=B.mutateShapes(i.state,t.filter(r=>!i.getShape(r,e).isLocked),(r,s)=>o[s],e);return{id:"update",before:{document:{pages:{[e]:{shapes:n.before}}}},after:{document:{pages:{[e]:{shapes:n.after}}}}}}function rh(i,o,e){let{currentPageId:t,selectedIds:n}=i,r=o.map(c=>i.getShape(c)).filter(c=>e.isLocked?!0:!c.isLocked),s={},l={},a=Object.keys(e);return r.forEach(c=>{s[c.id]=Object.fromEntries(a.map(p=>[p,c[p]])),l[c.id]=e}),{id:"set_props",before:{document:{pages:{[t]:{shapes:s}},pageStates:{[t]:{selectedIds:n}}}},after:{document:{pages:{[t]:{shapes:l}},pageStates:{[t]:{selectedIds:n}}}}}}var Jt=require("telva-core"),Jo=require("telva-vec");function ih(i,o,e={}){let{currentPageId:t}=i,{point:n,select:r,overwrite:s}=e,l=i.document.pages[t],a={shapes:{},bindings:{}},c={},p={shapes:{},bindings:{}};if(s){for(let h of o.shapes)a.shapes[h.id]=l.shapes[h.id],p.shapes[h.id]=h;if(o.bindings)for(let h of o.bindings)a.bindings[h.id]=l.bindings[h.id],p.bindings[h.id]=h;if(o.assets)for(let h of o.assets)c[h.id]=h}else{let h={},g=B.getTopChildIndex(i.state,t),m=o.shapes.sort((b,T)=>b.childIndex-T.childIndex).map(b=>{let T=Jt.Utils.uniqueId();return h[b.id]=T,I(S({},Jt.Utils.deepClone(b)),{id:T})}),f=new Set;for(;m.length>0;){let b=m.shift();if(!b)break;if(f.add(b.id),b.parentId==="currentPageId")b.parentId=t,b.childIndex=g++;else{b.parentId=h[b.parentId];let T=p.shapes[b.parentId];if(!T){f.has(b.id)&&(b.parentId="currentPageId"),m.push(b);continue}T.children.push(b.id)}b.children&&(b.children=[]),a.shapes[b.id]=void 0,p.shapes[b.id]=b}Object.values(p.shapes).forEach(b=>{b.children&&b.children.length===0&&(delete a.shapes[b.id],delete p.shapes[b.id])}),o.bindings&&o.bindings.forEach(b=>{let T=Jt.Utils.uniqueId();h[b.id]=T;let y=h[b.toId],x=h[b.fromId];if(!y||!x){if(x){let C=p.shapes[x].handles;C&&Object.values(C).forEach(E=>{E.bindingId===b.id&&(E.bindingId=void 0)})}if(y){let C=p.shapes[y].handles;C&&Object.values(C).forEach(E=>{E.bindingId===b.id&&(E.bindingId=void 0)})}return}let P=p.shapes[x].handles;P&&Object.values(P).forEach(C=>{C.bindingId===b.id&&(C.bindingId=T)}),p.shapes[y].handles&&Object.values(p.shapes[y].handles).forEach(C=>{C.bindingId===b.id&&(C.bindingId=T)});let D=I(S({},Jt.Utils.deepClone(b)),{id:T,toId:y,fromId:x});a.bindings[D.id]=void 0,p.bindings[D.id]=D});let v=Object.values(p.shapes);if(v.length>0)if(n){let b=Jt.Utils.getCommonBounds(v.map(y=>B.getBounds(y))),T=Jt.Utils.getBoundsCenter(b);v.forEach(y=>{!y.point||(y.point=Jo.Vec.sub(n,Jo.Vec.sub(T,y.point)))})}else{let b=Jt.Utils.getCommonBounds(v.map(B.getBounds));if(!(Jt.Utils.boundsContain(i.viewport,b)||Jt.Utils.boundsCollide(i.viewport,b))){let T=Jo.Vec.toFixed(i.getPagePoint(i.centerPoint)),y=Jt.Utils.centerBounds(b,T),x=Jo.Vec.sub(Jt.Utils.getBoundsCenter(y),Jt.Utils.getBoundsCenter(b));v.forEach(P=>{P.point=Jo.Vec.toFixed(Jo.Vec.add(P.point,x))})}}if(o.assets)for(let b of o.assets)c[b.id]=b}let u=document.createElement("textarea");return Object.values(p.shapes).forEach(h=>{"text"in h&&(u.innerHTML=h.text,h.text=u.value),"label"in h&&(u.innerHTML=h.label,h.label=u.value)}),u.remove(),{id:"insert",before:{document:{pages:{[t]:a},pageStates:{[t]:{selectedIds:[...i.selectedIds]}}}},after:{document:{pages:{[t]:p},assets:c,pageStates:{[t]:{selectedIds:r?Object.keys(p.shapes):[...i.selectedIds]}}}}}}var Mr={};ka(Mr,{fileToBase64:()=>Al,fileToText:()=>Vl,getImageSizeFromSrc:()=>Hl,getVideoSizeFromSrc:()=>zl,loadFileHandle:()=>Bl,migrate:()=>Gn,openAssetsFromFileSystem:()=>Ll,openFromFileSystem:()=>Ml,saveFileHandle:()=>oa,saveToFileSystem:()=>ia,tldrawFileToTVDocument:()=>lh,tvDocumentToTldrawFile:()=>ah});function Gn(i,o){let{document:e,settings:t}=i,{version:n=0}=e;"assets"in e||(e.assets={});let r=new Set;return Object.values(e.pages).forEach(s=>Object.values(s.shapes).forEach(l=>{let{parentId:a,children:c,assetId:p}=l;p&&r.add(p),a!==s.id&&!s.shapes[a]&&(console.warn("Encountered a shape with a missing parent!"),l.parentId=s.id),l.type==="group"&&c&&c.forEach(u=>{s.shapes[u]||(console.warn("Encountered a parent with a missing child!",l.id,u),c==null||c.splice(c.indexOf(u),1))})})),Object.keys(e.assets).forEach(s=>{r.has(s)||delete e.assets[s]}),n!==o&&(n<14&&Object.values(e.pages).forEach(s=>{Object.values(s.shapes).filter(l=>l.type==="text").forEach(l=>l.style.font==="script")}),n<=13&&Object.values(e.pages).forEach(s=>{Object.values(s.bindings).forEach(l=>{Object.assign(l,l.meta)}),Object.values(s.shapes).forEach(l=>{Object.entries(l.style).forEach(([a,c])=>{typeof c=="string"&&(l.style[a]=c.toLowerCase())}),l.type==="arrow"&&l.decorations&&Object.entries(l.decorations).forEach(([a,c])=>{c==="Arrow"&&(l.decorations=I(S({},l.decorations),{[a]:"arrow"}))})})}),n<=13.1&&(e.name="New Document"),n<15&&(e.assets={}),Object.values(e.pages).forEach(s=>{Object.values(s.shapes).forEach(l=>{n<15.2&&(l.type==="image"||l.type==="video")&&(l.style.isFilled=!0),n<15.3&&(l.type==="rectangle"||l.type==="triangle"||l.type==="ellipse"||l.type==="arrow")&&(l.label=l.text||"",l.labelPoint=[.5,.5])})}),n<15.4&&(t.dockPosition="bottom"),n<15.5&&(t.exportBackground="transparent")),Object.values(e.pageStates).forEach(s=>{s.selectedIds=s.selectedIds.filter(l=>e.pages[s.id].shapes[l]!==void 0),s.bindingId=void 0,s.editingId=void 0,s.hoveredId=void 0,s.pointedId=void 0}),Object.values(e.pages).forEach(s=>{Object.values(s.shapes).forEach(l=>{var a,c,p,u,h,g,m,f,v,b,T,y;if(l.type==="arrow"){let x=l;if(!x.handles||!x.handles.start||!x.handles.end||!x.handles.bend){let P=(p=(c=(a=x.handles)==null?void 0:a.start)==null?void 0:c.point)!=null?p:[0,0],k=(g=(h=(u=x.handles)==null?void 0:u.end)==null?void 0:h.point)!=null?g:[100,0],D=(v=(f=(m=x.handles)==null?void 0:m.bend)==null?void 0:f.point)!=null?v:[(P[0]+k[0])/2,(P[1]+k[1])/2];x.handles={start:S({id:"start",index:0,point:P,canBind:!0},(b=x.handles)==null?void 0:b.start),bend:S({id:"bend",index:1,point:D},(T=x.handles)==null?void 0:T.bend),end:S({id:"end",index:2,point:k,canBind:!0},(y=x.handles)==null?void 0:y.end)}}typeof x.bend!="number"&&(x.bend=0)}})}),e.version=o,i}var Qo=require("browser-fs-access"),ra=require("idb-keyval");var sh={mode:"readwrite"},Cy=i=>F(void 0,null,function*(){return(yield i.queryPermission(sh))==="granted"||(yield i.requestPermission(sh))==="granted"});function Bl(){return F(this,null,function*(){if(typeof Window=="undefined"||!("_location"in Window))return;let i=yield(0,ra.get)(`Telva_file_handle_${window.location.origin}`);return i||null})}function oa(i){return F(this,null,function*(){return(0,ra.set)(`Telva_file_handle_${window.location.origin}`,i)})}var wy={schemaVersion:1,storeVersion:4,recordVersions:{asset:{version:1,subTypeKey:"type",subTypeVersions:{image:2,video:2,bookmark:0}},camera:{version:1},document:{version:2},instance:{version:22},instance_page_state:{version:5},page:{version:1},shape:{version:3,subTypeKey:"type",subTypeVersions:{}},instance_presence:{version:5},pointer:{version:1}}};function ah(i){var t,n,s,l,a,c;let o=[];o.push({gridSize:10,name:i.name||"",meta:{},id:"document:document",typeName:"document",telvaDocument:i});let e=0;for(let p of Object.keys(i.pages)){let u=i.pages[p],h=i.pageStates[p],g=`a${e+1}`;o.push({meta:{},id:`page:${p}`,name:u.name||`Page ${e+1}`,index:g,typeName:"page"}),o.push({editingShapeId:null,croppingShapeId:null,selectedShapeIds:(t=h==null?void 0:h.selectedIds)!=null?t:[],hoveredShapeId:null,erasingShapeIds:[],hintingShapeIds:[],focusedGroupId:null,meta:{},id:`instance_page_state:page:${p}`,pageId:`page:${p}`,typeName:"instance_page_state"});let m=(n=u.shapes)!=null?n:{},f=0;for(let v of Object.keys(m)){let b=m[v],r=b,{point:T,rotation:y,style:x,type:P}=r,k=Ae(r,["point","rotation","style","type"]);o.push({x:(s=T==null?void 0:T[0])!=null?s:0,y:(l=T==null?void 0:T[1])!=null?l:0,rotation:y!=null?y:0,isLocked:(a=b.isLocked)!=null?a:!1,opacity:(c=x==null?void 0:x.opacity)!=null?c:1,meta:{},id:`shape:${v}`,parentId:`page:${p}`,type:P,props:S(S({},k),x),index:`a${f+1}`,typeName:"shape"}),f++}e++}return{tldrawFileFormatVersion:1,schema:wy,records:o}}function lh(i){var a,p;let o=(a=i.records)!=null?a:[],e=o.find(u=>u.typeName==="document");if(e!=null&&e.telvaDocument)return e.telvaDocument;let t=o.filter(u=>u.typeName==="page"),n=o.filter(u=>u.typeName==="shape"),r=o.filter(u=>u.typeName==="instance_page_state"),s={},l={};for(let u of t){let h=u.id.startsWith("page:")?u.id.slice(5):u.id,g={};for(let f of n){let v=`page:${h}`;if(f.parentId!==v&&f.parentId!==h)continue;let b=f.id.startsWith("shape:")?f.id.slice(6):f.id,{props:T={},x:y,y:x,rotation:P,type:k}=f,c=T,{opacity:D,start:C,end:E,bend:M,arrowheadStart:L,arrowheadEnd:V}=c,X=Ae(c,["opacity","start","end","bend","arrowheadStart","arrowheadEnd"]),se=S({id:b,type:k,point:[y!=null?y:0,x!=null?x:0],rotation:P!=null?P:0,style:S({opacity:D!=null?D:1},X)},X);if(k==="arrow"){let G=(C==null?void 0:C.x)!==void 0?[C.x,C.y]:[0,0],ne=(E==null?void 0:E.x)!==void 0?[E.x,E.y]:[1,1],pe=typeof M=="number"?M:0,he=[(G[0]+ne[0])/2,(G[1]+ne[1])/2];se.handles={start:{id:"start",index:0,point:G,canBind:!0,bindingId:C!=null&&C.boundShapeId?Object.keys(g).find(()=>!0):void 0},bend:{id:"bend",index:1,point:he},end:{id:"end",index:2,point:ne,canBind:!0,bindingId:E!=null&&E.boundShapeId?E.boundShapeId:void 0}},se.bend=pe,(L||V)&&(se.decorations={start:L&&L!=="none"?L:void 0,end:V&&V!=="none"?V:void 0})}g[b]=se}s[h]={id:h,name:u.name||"Page",shapes:g,bindings:{}};let m=r.find(f=>f.pageId===`page:${h}`||f.pageId===h);l[h]={id:h,selectedIds:(p=m==null?void 0:m.selectedShapeIds)!=null?p:[],camera:{point:[0,0],zoom:1}}}if(Object.keys(s).length===0){let u="page";s[u]={id:u,name:"Page 1",shapes:{},bindings:{}},l[u]={id:u,selectedIds:[],camera:{point:[0,0],zoom:1}}}return{id:"document",name:(e==null?void 0:e.name)||"Imported Document",version:15,pages:s,pageStates:l,assets:{}}}function ia(i,o,e,t){return F(this,null,function*(){let n=t==="tld"?".tld":Wa,r,s;if(t==="tld"){let u=ah(i);r=JSON.stringify(u),s="application/vnd.tldraw+json"}else{let u={name:i.name||"New Document",fileHandle:o!=null?o:null,document:i};r=JSON.stringify(u),s="application/vnd.Telva+json"}let l=new Blob([r],{type:s});if(o&&!(yield Cy(o)))return null;let a=i.name||"New Document",c=!Qo.supported&&(e==null?void 0:e.length)?e:a,p=yield(0,Qo.fileSave)(l,{fileName:`${c}${n}`,description:t==="tld"?"TLDraw File":"Telva File",extensions:[n]},o);return yield oa(p),p})}function Ml(){return F(this,null,function*(){var r,s;let i=yield(0,Qo.fileOpen)({description:"Telva / TLDraw File",extensions:[Wa,".tld"],multiple:!1});if(!i)return null;let o=yield new Promise(l=>{let a=new FileReader;a.onloadend=()=>{a.readyState===FileReader.DONE&&l(a.result)},a.readAsText(i,"utf8")}),e=JSON.parse(o);if("tldrawFileFormatVersion"in e){let l=(r=i.handle)!=null?r:null;return yield oa(l),{fileHandle:l,document:lh(e)}}if("telvaFileFormatVersion"in e)return alert("This file was created in a newer version of Telva. Please visit beta.telva.com to open it."),null;let t=e,n=(s=i.handle)!=null?s:null;return yield oa(n),{fileHandle:n,document:t.document}})}function Ll(){return F(this,null,function*(){return(0,Qo.fileOpen)({description:"Image or Video",extensions:[...Qi,...es],multiple:!0})})}function Al(i){return new Promise((o,e)=>{if(i){let t=new FileReader;t.readAsDataURL(i),t.onload=()=>o(t.result),t.onerror=n=>e(n),t.onabort=n=>e(n)}})}function Vl(i){return new Promise((o,e)=>{if(i){let t=new FileReader;t.readAsText(i),t.onload=()=>o(t.result),t.onerror=n=>e(n),t.onabort=n=>e(n)}})}function Hl(i){return new Promise((o,e)=>{let t=new Image;t.onload=()=>o([t.width,t.height]),t.onerror=()=>e(new Error("Could not get image size")),t.src=i})}function zl(i){return new Promise((o,e)=>{let t=document.createElement("video");t.onloadedmetadata=()=>o([t.videoWidth,t.videoHeight]),t.onerror=()=>e(new Error("Could not get video size")),t.src=i})}Ai(Mr,require("browser-fs-access"));var jn=require("telva-core"),Ie=require("telva-vec");var He=class{constructor(o){this.app=o}};var sa=class extends He{constructor(e,t,n,r=!1){var p,u,h;super(e);d(this,"type","arrow");d(this,"performanceMode");d(this,"status","translatingHandle");d(this,"newStartBindingId",jn.Utils.uniqueId());d(this,"draggedBindingId",jn.Utils.uniqueId());d(this,"didBind",!1);d(this,"initialShape");d(this,"handleId");d(this,"bindableShapeIds");d(this,"initialBinding");d(this,"startBindingShapeId");d(this,"isCreate");d(this,"start",()=>{});d(this,"update",()=>{var k,D,C;let{initialShape:e}=this,{currentPoint:t,shiftKey:n,altKey:r,metaKey:s,currentGrid:l,settings:{showGrid:a}}=this.app,c=this.app.getShape(e.id);if(c.isLocked)return;let{handles:p}=e,u=this.handleId;if(!p[u].canBind)return;let h=Ie.Vec.sub(t,Ie.Vec.add(p[u].point,e.point));if(n){let E=r?Ie.Vec.med(p.start.point,p.end.point):p[u==="start"?"end":"start"].point,M=p[u].point,L=Ie.Vec.add(M,h),V=Ie.Vec.angle(E,L),X=Ie.Vec.rotWith(L,E,jn.Utils.snapAngleToSegments(V,24)-V);h=Ie.Vec.add(h,Ie.Vec.sub(X,L))}let g=Ie.Vec.add(p[u].point,h),m={[u]:I(S({},p[u]),{point:a?Ie.Vec.snap(g,l):Ie.Vec.toFixed(g),bindingId:void 0})},f=kn["arrow"],v=(k=f.onHandleChange)==null?void 0:k.call(f,e,m);if(!v)return;let b={shape:jn.Utils.deepMerge(c,v),bindings:{}},T,y=b.shape.handles[this.handleId],x=b.shape.handles[this.handleId==="start"?"end":"start"];if(this.startBindingShapeId){let E,M=this.app.page.shapes[this.startBindingShapeId],L=B.getShapeUtil(M),V=L.getCenter(M),X=b.shape.handles.start,se=b.shape.handles.end,G=Ie.Vec.add(X.point,b.shape.point);Ie.Vec.isEqual(G,V)&&G[1]++;let ne=V,pe=L.hitTestPoint(M,t),he=Ie.Vec.uni(Ie.Vec.sub(G,ne)),Me=this.app.getBinding(this.newStartBindingId)!==void 0;!s&&!L.hitTestPoint(M,Ie.Vec.add(b.shape.point,se.point))&&(E=this.findBindingPoint(c,M,"start",this.newStartBindingId,V,ne,he,pe)),E&&!Me?(this.didBind=!0,b.bindings[this.newStartBindingId]=E,b.shape=jn.Utils.deepMerge(b.shape,{handles:{start:{bindingId:E.id}}})):!E&&Me&&(this.didBind=!1,b.bindings[this.newStartBindingId]=void 0,b.shape=jn.Utils.deepMerge(e,{handles:{start:{bindingId:void 0}}}))}if(!s){let E=Ie.Vec.add(x.point,b.shape.point),M=Ie.Vec.add(y.point,b.shape.point),L=Ie.Vec.uni(Ie.Vec.sub(M,E)),V=Ie.Vec.add(b.shape.point,b.shape.handles.start.point),X=Ie.Vec.add(b.shape.point,b.shape.handles.end.point),se=this.bindableShapeIds.map(G=>this.app.page.shapes[G]).sort((G,ne)=>ne.childIndex-G.childIndex).filter(G=>{if(G.isLocked)return!1;let ne=B.getShapeUtil(G);return![V,X].every(pe=>ne.hitTestPoint(G,pe))});for(let G of se)if(T=this.findBindingPoint(c,G,this.handleId,this.draggedBindingId,M,E,L,r),T)break}if(T)this.didBind=!0,b.bindings[this.draggedBindingId]=T,b.shape=jn.Utils.deepMerge(b.shape,{handles:{[this.handleId]:{bindingId:this.draggedBindingId}}});else{this.didBind=this.didBind||!1;let E=c.handles[this.handleId].bindingId;E!==void 0&&(b.bindings[E]=void 0,b.shape=jn.Utils.deepMerge(b.shape,{handles:{[this.handleId]:{bindingId:void 0}}}))}let P=(C=(D=B.getShapeUtil(b.shape)).onHandleChange)==null?void 0:C.call(D,b.shape,b.shape.handles);return{document:{pages:{[this.app.currentPageId]:{shapes:{[c.id]:S(S({},b.shape),P!=null?P:{})},bindings:b.bindings}},pageStates:{[this.app.currentPageId]:{bindingId:b.shape.handles[u].bindingId}}}}});d(this,"cancel",()=>{let{initialShape:e,initialBinding:t,newStartBindingId:n,draggedBindingId:r}=this,s=B.onSessionComplete(this.app.page.shapes[e.id]),l=this.isCreate||Ie.Vec.dist(s.handles.start.point,s.handles.end.point)<4,a={};return a[r]=void 0,t&&(a[t.id]=l?void 0:t),n&&(a[n]=void 0),{document:{pages:{[this.app.currentPageId]:{shapes:{[e.id]:l?void 0:e},bindings:a}},pageStates:{[this.app.currentPageId]:{selectedIds:l?[]:[e.id],bindingId:void 0,hoveredId:void 0,editingId:void 0}}}}});d(this,"complete",()=>{let{initialShape:e,initialBinding:t,newStartBindingId:n,startBindingShapeId:r,handleId:s}=this,l=B.onSessionComplete(this.app.page.shapes[e.id]),a=l.handles[s].bindingId,c=Ie.Vec.dist(l.handles.start.point,l.handles.end.point);if(!(a||t)&&c<4)return this.cancel();let p={},u={};return t&&(p[t.id]=this.isCreate?void 0:t,u[t.id]=void 0),a&&(p[a]=void 0,u[a]=this.app.page.bindings[a]),r&&(p[n]=void 0,u[n]=this.app.page.bindings[n]),{id:"arrow",before:{document:{pages:{[this.app.currentPageId]:{shapes:{[e.id]:this.isCreate?void 0:e},bindings:p}},pageStates:{[this.app.currentPageId]:{selectedIds:this.isCreate?[]:[e.id],bindingId:void 0,hoveredId:void 0,editingId:void 0}}}},after:{document:{pages:{[this.app.currentPageId]:{shapes:{[e.id]:l},bindings:u}},pageStates:{[this.app.currentPageId]:{selectedIds:[e.id],bindingId:void 0,hoveredId:void 0,editingId:void 0}}}}}});d(this,"findBindingPoint",(e,t,n,r,s,l,a,c)=>{let u=B.getShapeUtil(t.type).getBindingPoint(t,e,s,l,a,c);if(!!u)return{id:r,type:"arrow",fromId:e.id,toId:t.id,handleId:n,point:Ie.Vec.toFixed(u.point),distance:u.distance}});this.isCreate=r;let{currentPageId:s}=e.state.appState,l=e.state.document.pages[s];this.handleId=n,this.initialShape=gt(l.shapes[t]),this.bindableShapeIds=B.getBindableShapeIds(e.state).filter(g=>!(g===this.initialShape.id||g===this.initialShape.parentId));let a=(p=this.initialShape.handles[n==="start"?"end":"start"])==null?void 0:p.bindingId;if(a){let g=(u=l.bindings[a])==null?void 0:u.toId;g&&(this.bindableShapeIds=this.bindableShapeIds.filter(m=>m!==g))}let{originPoint:c}=this.app;if(this.isCreate)this.startBindingShapeId=(h=this.bindableShapeIds.map(g=>l.shapes[g]).filter(g=>!g.isLocked&&jn.Utils.pointInBounds(c,B.getShapeUtil(g).getBounds(g))).sort((g,m)=>m.childIndex-g.childIndex)[0])==null?void 0:h.id,this.startBindingShapeId&&this.bindableShapeIds.splice(this.bindableShapeIds.indexOf(this.startBindingShapeId),1);else{let g=this.initialShape.handles[this.handleId].bindingId;g?this.initialBinding=l.bindings[g]:this.initialShape.handles[this.handleId].bindingId=void 0}}};var Fl=require("telva-core");var aa=class extends He{constructor(e){super(e);d(this,"type","brush");d(this,"performanceMode");d(this,"status","brushing");d(this,"initialSelectedIds");d(this,"shapesToTest");d(this,"start",()=>{});d(this,"update",()=>{let{initialSelectedIds:e,shapesToTest:t,app:{metaKey:n,settings:r,originPoint:s,currentPoint:l}}=this,a=Fl.Utils.getBoundsFromPoints([s,l]),c=r.isCadSelectMode?!n&&s[0]<l[0]:n,p=new Set,u=new Set(e);t.forEach(({id:f,selectId:v})=>{let b=this.app.getShape(f);if(!p.has(v)){let T=this.app.getShapeUtil(b);(c?Fl.Utils.boundsContain(a,T.getBounds(b)):T.hitTestBounds(b,a))?(p.add(v),u.has(v)||u.add(v)):u.has(v)&&u.delete(v)}});let h=this.app.selectedIds,g=u.size!==h.length||h.some(f=>!u.has(f)),m=g?Array.from(u.values()):h;return g?{appState:{selectByContain:c},document:{pageStates:{[this.app.currentPageId]:{brush:a,selectedIds:m}}}}:{appState:{selectByContain:c},document:{pageStates:{[this.app.currentPageId]:{brush:a}}}}});d(this,"cancel",()=>({appState:{selectByContain:!1},document:{pageStates:{[this.app.currentPageId]:{brush:null,selectedIds:Array.from(this.initialSelectedIds.values())}}}}));d(this,"complete",()=>({appState:{selectByContain:!1},document:{pageStates:{[this.app.currentPageId]:{brush:null,selectedIds:[...this.app.selectedIds]}}}}));let{currentPageId:t}=e;this.initialSelectedIds=new Set(this.app.selectedIds),this.shapesToTest=this.app.shapes.filter(n=>!(n.isLocked||n.isHidden||n.parentId!==t||this.initialSelectedIds.has(n.id)||this.initialSelectedIds.has(n.parentId))).map(n=>({id:n.id,bounds:this.app.getShapeUtil(n).getBounds(n),selectId:n.id})),this.update()}};var Ne=require("telva-vec");var la=class extends He{constructor(e,t){var c;super(e);d(this,"type","draw");d(this,"performanceMode");d(this,"status","creating");d(this,"topLeft");d(this,"points");d(this,"initialShape");d(this,"lastAdjustedPoint");d(this,"shiftedPoints",[]);d(this,"shapeId");d(this,"isLocked");d(this,"isExtending");d(this,"lockedDirection");d(this,"start",()=>{var s;let e=this.app.originPoint,t=[0,0,(s=e[2])!=null?s:.5];this.points.push(t);let n=[Math.min(this.topLeft[0],e[0]),Math.min(this.topLeft[1],e[1])],r=Ne.Vec.sub(n,e);return this.topLeft=n,this.shiftedPoints=this.points.map(l=>Ne.Vec.toFixed(Ne.Vec.sub(l,r)).concat(l[2])),{document:{pages:{[this.app.currentPageId]:{shapes:{[this.shapeId]:{point:this.topLeft,points:this.shiftedPoints}}}},pageStates:{[this.app.currentPageId]:{selectedIds:[this.shapeId]}}}}});d(this,"update",()=>{let{shapeId:e}=this,{currentPoint:t,originPoint:n,shiftKey:r,zoom:s}=this.app;if(!this.lockedDirection&&this.points.length>1){let a=Ne.Vec.sub(t,n);Ne.Vec.len(a)>3/s&&(this.lockedDirection=Math.abs(a[0])>Math.abs(a[1])?"horizontal":"vertical")}if(r){if(!this.isLocked&&this.points.length>2){if(!this.lockedDirection){let c=Ne.Vec.sub(t,n);Ne.Vec.len(c)>3/s&&(this.lockedDirection=Math.abs(c[0])>Math.abs(c[1])?"horizontal":"vertical")}this.isLocked=!0;let a=[...this.lastAdjustedPoint];this.lockedDirection==="vertical"?a[0]=0:a[1]=0,this.points.push(a.concat(t[2]))}}else this.isLocked&&(this.isLocked=!1);this.isLocked&&(this.lockedDirection==="vertical"?t[0]=n[0]:t[1]=n[1]);let l=this.addPoint(t);if(!!l)return{document:{pages:{[this.app.currentPageId]:{shapes:{[e]:l}}},pageStates:{[this.app.currentPageId]:{selectedIds:[e]}}}}});d(this,"cancel",()=>{let{shapeId:e}=this,t=this.app.currentPageId;return{document:{pages:{[t]:{shapes:{[e]:this.isExtending?this.initialShape:void 0}}},pageStates:{[t]:{selectedIds:[]}}}}});d(this,"complete",()=>{let{shapeId:e}=this,t=this.app.currentPageId,n=this.app.getShape(e);return{id:"create_draw",before:{document:{pages:{[t]:{shapes:{[e]:this.isExtending?this.initialShape:void 0}}},pageStates:{[t]:{selectedIds:[]}}}},after:{document:{pages:{[t]:{shapes:{[e]:I(S({},n),{point:Ne.Vec.toFixed(n.point),points:n.points.map(r=>Ne.Vec.toFixed(r)),isComplete:!0})}}},pageStates:{[this.app.currentPageId]:{selectedIds:[]}}}}}});d(this,"addPoint",e=>{let{originPoint:t}=this.app,n=Ne.Vec.toFixed(Ne.Vec.sub(e,t)).concat(e[2]);if(Ne.Vec.isEqual(this.lastAdjustedPoint,n))return;this.points.push(n),this.lastAdjustedPoint=n;let r=[...this.topLeft],s=[Math.min(this.topLeft[0],e[0]),Math.min(this.topLeft[1],e[1])],l=Ne.Vec.sub(s,t),a;return r[0]!==s[0]||r[1]!==s[1]?(this.topLeft=s,a=this.points.map(c=>Ne.Vec.toFixed(Ne.Vec.sub(c,l)).concat(c[2]))):a=[...this.shiftedPoints,Ne.Vec.sub(n,l).concat(n[2])],this.shiftedPoints=a,{point:this.topLeft,points:a}});let{originPoint:n}=this.app;this.shapeId=t,this.initialShape=this.app.getShape(t),this.topLeft=[...this.initialShape.point];let r=[0,0,(c=n[2])!=null?c:.5],s=Ne.Vec.sub(n,this.topLeft),l=this.initialShape.points.map(p=>Ne.Vec.sub(p,s).concat(p[2]));this.isExtending=l.length>0;let a=[];if(this.isExtending){let p=l[l.length-1];if(p){a.push(p,p);let u=Math.floor(Ne.Vec.dist(p,r)/16);if(u>1)for(let h=0;h<u;h++){let g=h/(u-1);a.push(Ne.Vec.lrp(p,r,g).concat(p[2]))}else a.push(r,r)}}else a.push(r);this.points=[...l,...a],this.shiftedPoints=this.points.map(p=>Ne.Vec.add(p,s).concat(p[2])),this.lastAdjustedPoint=this.points[this.points.length-1]}};var da=class extends He{constructor(e,t,n){super(e);d(this,"type","edit");d(this,"performanceMode");d(this,"initialShape");d(this,"initialSelectedIds");d(this,"currentPageId");d(this,"isCreating");d(this,"start",()=>{});d(this,"update",()=>{});d(this,"cancel",()=>({document:{pages:{[this.currentPageId]:{shapes:{[this.initialShape.id]:this.isCreating?void 0:this.initialShape}}},pageStates:{[this.currentPageId]:{selectedIds:this.isCreating?[]:this.initialSelectedIds,editingId:void 0}}}}));d(this,"complete",()=>{let e=this.app.getShape(this.initialShape.id);return{id:"edit",before:{document:{pages:{[this.currentPageId]:{shapes:{[this.initialShape.id]:this.isCreating?void 0:this.initialShape}}},pageStates:{[this.currentPageId]:{selectedIds:this.isCreating?[]:this.initialSelectedIds,editingId:void 0}}}},after:{document:{pages:{[this.currentPageId]:{shapes:{[this.initialShape.id]:e}}},pageStates:{[this.currentPageId]:{selectedIds:[e.id],editingId:void 0}}}}}});this.initialShape=e.getShape(t,e.currentPageId),this.currentPageId=e.currentPageId,this.isCreating=n,this.initialSelectedIds=[...e.selectedIds]}};var er=require("telva-vec");var ca=class extends He{constructor(e){super(e);d(this,"type","draw");d(this,"performanceMode");d(this,"status","creating");d(this,"isLocked");d(this,"lockedDirection");d(this,"erasedShapes",new Set);d(this,"erasedBindings",new Set);d(this,"initialSelectedShapes");d(this,"erasableShapes");d(this,"prevPoint");d(this,"prevEraseShapesSize",0);d(this,"interval");d(this,"timestamp1",0);d(this,"timestamp2",0);d(this,"prevErasePoint",[]);d(this,"loop",()=>{let e=Date.now(),t=e-this.timestamp1,n=e-this.timestamp2,{eraseLine:r}=this.app.appState,s=[...r],l=!1;t>16&&this.prevErasePoint!==this.prevPoint&&(l=!0,s=[...r,this.prevPoint],this.prevErasePoint=this.prevPoint),n>32&&s.length>1&&(l=!0,s.splice(0,Math.ceil(s.length*.1)),this.timestamp2=e),l&&this.app.patchState({appState:{eraseLine:s}},"eraseline"),this.interval=requestAnimationFrame(this.loop)});d(this,"start",()=>{});d(this,"update",()=>{let{page:e,shiftKey:t,originPoint:n,currentPoint:r,zoom:s}=this.app;if(t){let p=er.Vec.sub(r,n);if(!this.isLocked&&er.Vec.len(p)>3/s){if(!this.lockedDirection){let u=er.Vec.sub(r,n);this.lockedDirection=Math.abs(u[0])>Math.abs(u[1])?"horizontal":"vertical"}this.isLocked=!0}}else this.isLocked&&(this.isLocked=!1);this.isLocked&&(this.lockedDirection==="vertical"?r[0]=n[0]:r[1]=n[1]);let l=er.Vec.toFixed(er.Vec.add(n,er.Vec.sub(r,n))),a=new Set([]);this.erasableShapes.forEach(p=>{if(!this.erasedShapes.has(p)&&this.app.getShapeUtil(p).hitTestLineSegment(p,this.prevPoint,l)&&(this.erasedShapes.add(p),a.add(p.id),p.children!==void 0))for(let u of p.children)this.erasedShapes.add(this.app.getShape(u)),a.add(u)}),Object.values(e.bindings).forEach(p=>{for(let u of[p.toId,p.fromId])a.has(u)&&this.erasedBindings.add(p)}),this.erasedShapes.forEach(p=>{this.app.getShape(p.id)||(this.erasedShapes.delete(p),this.erasableShapes.delete(p),a.delete(p.id))});let c=Array.from(this.erasedShapes.values());if(this.prevPoint=l,c.length!==this.prevEraseShapesSize)return this.prevEraseShapesSize=c.length,{document:{pages:{[e.id]:{shapes:Object.fromEntries(c.map(p=>[p.id,{isGhost:!0}]))}}}}});d(this,"cancel",()=>{let{page:e}=this.app;cancelAnimationFrame(this.interval),this.erasedShapes.forEach(n=>{this.app.getShape(n.id)||(this.erasedShapes.delete(n),this.erasableShapes.delete(n))});let t=Array.from(this.erasedShapes.values());return{document:{pages:{[e.id]:{shapes:Object.fromEntries(t.map(n=>[n.id,{isGhost:!1}]))}},pageStates:{[e.id]:{selectedIds:this.initialSelectedShapes.map(n=>n.id)}}},appState:{eraseLine:[]}}});d(this,"complete",()=>{let{page:e}=this.app;cancelAnimationFrame(this.interval),this.erasedShapes.forEach(c=>{this.app.getShape(c.id)||(this.erasedShapes.delete(c),this.erasableShapes.delete(c))}),this.erasedBindings.forEach(c=>{this.app.getBinding(c.id)||this.erasedBindings.delete(c)});let t=Array.from(this.erasedShapes.values()),n=Array.from(this.erasedBindings.values()),r=t.map(c=>c.id),s=n.map(c=>c.id),l={shapes:Object.fromEntries(t.map(c=>[c.id,c])),bindings:Object.fromEntries(n.map(c=>[c.id,c]))},a={shapes:Object.fromEntries(t.map(c=>[c.id,void 0])),bindings:Object.fromEntries(n.map(c=>[c.id,void 0]))};return this.app.shapes.forEach(c=>{c.handles&&!a.shapes[c.id]&&Object.values(c.handles).forEach(p=>{var u,h;p.bindingId&&s.includes(p.bindingId)&&(l.shapes[c.id]=I(S({},l.shapes[c.id]),{handles:I(S({},(u=l.shapes[c.id])==null?void 0:u.handles),{[p.id]:p})}),r.includes(c.id)||(a.shapes[c.id]=I(S({},a.shapes[c.id]),{handles:I(S({},(h=a.shapes[c.id])==null?void 0:h.handles),{[p.id]:I(S({},p),{bindingId:void 0})})})))})}),{id:"erase",before:{document:{pages:{[e.id]:l},pageStates:{[e.id]:{selectedIds:this.initialSelectedShapes.filter(c=>!!this.app.getShape(c.id)).map(c=>c.id)}}},appState:{eraseLine:[]}},after:{document:{pages:{[e.id]:a},pageStates:{[e.id]:{selectedIds:this.initialSelectedShapes.filter(c=>!!this.app.getShape(c.id)).filter(c=>!r.includes(c.id)).map(c=>c.id)}}},appState:{eraseLine:[]}}}});this.prevPoint=[...e.originPoint],this.initialSelectedShapes=this.app.selectedIds.map(t=>this.app.getShape(t)),this.erasableShapes=new Set(this.app.shapes.filter(t=>!t.isLocked)),this.interval=this.loop()}};var Ol=require("telva-core"),$l=require("telva-vec");var pa=class extends He{constructor(e,t){var n;super(e);d(this,"type","grid");d(this,"performanceMode");d(this,"status","translating");d(this,"shape");d(this,"bounds");d(this,"initialSelectedIds");d(this,"initialSiblings");d(this,"grid",{});d(this,"columns",1);d(this,"rows",1);d(this,"isCopying",!1);d(this,"start",()=>{});d(this,"update",()=>{let{currentPageId:e,altKey:t,shiftKey:n,currentPoint:r}=this.app,s={},l={},a=Ol.Utils.getBoundsCenter(this.bounds),c=$l.Vec.sub(r,a);n&&(Math.abs(c[0])<Math.abs(c[1])?c[0]=0:c[1]=0);let p=this.bounds.width+32,u=this.bounds.height+32,h=Math.ceil(c[0]/p),g=Math.ceil(c[1]/u),m=Math.min(h,0),f=Math.min(g,0),v=Math.max(h,1),b=Math.max(g,1),T=new Set,y=t;y!==this.isCopying&&(Object.values(this.grid).filter(x=>x!==this.shape.id).forEach(x=>s[x]=void 0),this.grid={"0_0":this.shape.id},this.isCopying=y);for(let x=m;x<v;x++)for(let P=f;P<b;P++){let k=`${x}_${P}`;if(T.add(k),this.grid[k]||x===0&&P===0)continue;let D=this.getClone($l.Vec.add(this.shape.point,[x*p,P*u]),y);s[D.id]=D,this.grid[k]=D.id}if(Object.entries(this.grid).forEach(([x,P])=>{T.has(x)||(s[P]=void 0,delete this.grid[x])}),Object.values(s).length!==0)return this.initialSiblings&&(s[this.shape.parentId]={children:[...this.initialSiblings,...Object.values(this.grid)]}),{document:{pages:{[e]:{shapes:s}},pageStates:{[e]:l}}}});d(this,"cancel",()=>{let{currentPageId:e}=this.app,t={};return Object.values(this.grid).forEach(n=>{t[n]=void 0}),t[this.shape.id]=I(S({},t[this.shape.id]),{point:this.shape.point}),this.initialSiblings&&(t[this.shape.parentId]={children:[...this.initialSiblings,this.shape.id]}),{document:{pages:{[e]:{shapes:t}},pageStates:{[e]:{selectedIds:[this.shape.id]}}}}});d(this,"complete",()=>{let{currentPageId:e}=this.app,t={},n={},r=[];if(Object.values(this.grid).forEach(s=>{t[s]=void 0,n[s]=this.app.getShape(s),r.push(s)}),t[this.shape.id]=this.shape,this.initialSiblings&&(t[this.shape.parentId]={children:[...this.initialSiblings,this.shape.id]},n[this.shape.parentId]={children:[...this.initialSiblings,...Object.values(this.grid)]}),r.length!==1)return{id:"grid",before:{document:{pages:{[e]:{shapes:t}},pageStates:{[e]:{selectedIds:[],hoveredId:void 0}}}},after:{document:{pages:{[e]:{shapes:n}},pageStates:{[e]:{selectedIds:r,hoveredId:void 0}}}}}});d(this,"getClone",(e,t)=>{let n=I(S({},this.shape),{id:Ol.Utils.uniqueId(),point:e});return t||n.type==="sticky"&&(n.text=""),n});this.shape=this.app.getShape(t),this.grid["0_0"]=this.shape.id,this.bounds=this.app.getShapeBounds(t),this.initialSelectedIds=[...this.app.selectedIds],this.shape.parentId!==this.app.currentPageId&&(this.initialSiblings=(n=this.app.getShape(this.shape.parentId).children)==null?void 0:n.filter(r=>r!==this.shape.id))}};var ua=require("telva-vec");var ha=class extends He{constructor(e,t,n,r="move_handle"){super(e);d(this,"type","handle");d(this,"performanceMode");d(this,"status","translatingHandle");d(this,"commandId");d(this,"topLeft");d(this,"shiftKey",!1);d(this,"initialShape");d(this,"handleId");d(this,"start",()=>{});d(this,"update",()=>{var u,h;let{initialShape:e,app:{currentPageId:t,currentPoint:n}}=this,r=this.app.getShape(e.id);if(r.isLocked)return;let s=r.handles,l=this.handleId,a=ua.Vec.sub(n,s[l].point),c={[l]:I(S({},s[l]),{point:ua.Vec.sub(ua.Vec.add(s[l].point,a),r.point)})},p=(h=(u=B.getShapeUtil(r)).onHandleChange)==null?void 0:h.call(u,r,c);if(!!p)return{document:{pages:{[t]:{shapes:{[r.id]:p}}}}}});d(this,"cancel",()=>{let{initialShape:e,app:{currentPageId:t}}=this;return{document:{pages:{[t]:{shapes:{[e.id]:e}}}}}});d(this,"complete",()=>{let{initialShape:e,app:{currentPageId:t}}=this;return{id:this.commandId,before:{document:{pages:{[t]:{shapes:{[e.id]:e}}}}},after:{document:{pages:{[t]:{shapes:{[e.id]:B.onSessionComplete(this.app.getShape(this.initialShape.id))}}}}}}});let{originPoint:s}=e;this.topLeft=[...s],this.handleId=n,this.initialShape=this.app.getShape(t),this.commandId=r}};var Di=require("telva-core"),Gl=require("telva-vec");var ma=class extends He{constructor(e){super(e);d(this,"type","rotate");d(this,"status","transforming");d(this,"performanceMode");d(this,"delta",[0,0]);d(this,"commonBoundsCenter");d(this,"initialAngle");d(this,"initialShapes");d(this,"changes",{});d(this,"start",()=>{});d(this,"update",()=>{let{commonBoundsCenter:e,initialShapes:t,app:{currentPageId:n,currentPoint:r,shiftKey:s}}=this,l={},a=Gl.Vec.angle(e,r)-this.initialAngle;return s&&(a=Di.Utils.snapAngleToSegments(a,24)),t.forEach(({center:c,shape:p})=>{let{rotation:u=0}=p,h=0;s&&(h=Di.Utils.snapAngleToSegments(u,24)-u);let g=B.getRotatedShapeMutation(p,c,e,s?a+h:a);g&&(l[p.id]=g)}),this.changes=l,{document:{pages:{[n]:{shapes:l}}}}});d(this,"cancel",()=>{let{initialShapes:e,app:{currentPageId:t}}=this,n={};return e.forEach(({shape:r})=>n[r.id]=r),{document:{pages:{[t]:{shapes:n}}}}});d(this,"complete",()=>{let{initialShapes:e,app:{currentPageId:t}}=this,n={},r=this.changes;return e.forEach(({shape:{id:s,point:l,rotation:a,handles:c}})=>{n[s]={point:l,rotation:a,handles:c}}),{id:"rotate",before:{document:{pages:{[t]:{shapes:n}}}},after:{document:{pages:{[t]:{shapes:r}}}}}});let{app:{currentPageId:t,pageState:n,originPoint:r}}=this,s=B.getSelectedBranchSnapshot(e.state,t).filter(l=>!l.isLocked);if(s.length===0)throw Error("No selected shapes!");if(e.rotationInfo.selectedIds===n.selectedIds){if(e.rotationInfo.center===void 0)throw Error("We should have a center for rotation!");this.commonBoundsCenter=e.rotationInfo.center}else this.commonBoundsCenter=Di.Utils.getBoundsCenter(Di.Utils.getCommonBounds(s.map(B.getBounds))),e.rotationInfo.selectedIds=n.selectedIds,e.rotationInfo.center=this.commonBoundsCenter;this.initialShapes=s.filter(l=>l.children===void 0).map(l=>({shape:l,center:this.app.getShapeUtil(l).getCenter(l)})),this.initialAngle=Gl.Vec.angle(this.commonBoundsCenter,r)}};var rt=require("telva-core"),tr=require("telva-vec");var ga=class extends He{constructor(e,t=rt.TLBoundsCorner.BottomRight,n=!1){super(e);this.transformType=t;this.isCreate=n;d(this,"type","transform");d(this,"performanceMode");d(this,"status","transforming");d(this,"scaleX",1);d(this,"scaleY",1);d(this,"initialShapes");d(this,"initialShapeIds");d(this,"initialSelectedIds");d(this,"shapeBounds");d(this,"hasUnlockedShapes");d(this,"isAllAspectRatioLocked");d(this,"initialCommonBounds");d(this,"snapInfo",{state:"empty"});d(this,"prevPoint",[0,0]);d(this,"speed",1);d(this,"start",()=>{this.snapInfo={state:"ready",bounds:this.app.shapes.filter(e=>!this.initialShapeIds.includes(e.id)).map(e=>rt.Utils.getBoundsWithCenter(B.getRotatedBounds(e)))}});d(this,"update",()=>{let{transformType:e,shapeBounds:t,initialCommonBounds:n,isAllAspectRatioLocked:r,app:{currentPageId:s,pageState:{camera:l},viewport:a,currentPoint:c,previousPoint:p,originPoint:u,shiftKey:h,altKey:g,metaKey:m,currentGrid:f,settings:{isSnapping:v,showGrid:b}}}=this,T={},y=g?tr.Vec.mul(tr.Vec.sub(c,u),2):tr.Vec.sub(c,u),x=rt.Utils.getTransformedBoundingBox(n,e,y,0,h||r);g&&(x=S(S({},x),rt.Utils.centerBounds(x,rt.Utils.getBoundsCenter(n)))),b&&(x=S(S({},x),rt.Utils.snapBoundsToGrid(x,f)));let k=tr.Vec.dist(c,p)-this.speed;this.speed=this.speed+k*(k>1?.5:.15);let D=[];if((v&&!m||!v&&m)&&this.speed*l.zoom<10&&this.snapInfo.state==="ready"){let C=rt.Utils.getSnapPoints(rt.Utils.getBoundsWithCenter(x),this.snapInfo.bounds.filter(E=>rt.Utils.boundsContain(a,E)||rt.Utils.boundsCollide(a,E)),5/l.zoom);C&&(D=C.snapLines,x=rt.Utils.getTransformedBoundingBox(n,e,tr.Vec.sub(y,C.offset),0,h||r))}return this.scaleX=x.scaleX,this.scaleY=x.scaleY,t.forEach(({initialShape:C,initialShapeBounds:E,transformOrigin:M})=>{let L=rt.Utils.getRelativeTransformedBoundingBox(x,n,E,this.scaleX<0,this.scaleY<0);b&&(L=rt.Utils.snapBoundsToGrid(L,f));let V=B.transform(this.app.getShape(C.id),L,{type:this.transformType,initialShape:C,scaleX:this.scaleX,scaleY:this.scaleY,transformOrigin:M});T[C.id]=V}),{appState:{snapLines:D},document:{pages:{[s]:{shapes:T}}}}});d(this,"cancel",()=>{let{shapeBounds:e,app:{currentPageId:t}}=this,n={};return this.isCreate?e.forEach(r=>n[r.initialShape.id]=void 0):e.forEach(r=>n[r.initialShape.id]=r.initialShape),{appState:{snapLines:[]},document:{pages:{[t]:{shapes:n}},pageStates:{[t]:{selectedIds:this.isCreate?[]:e.map(r=>r.initialShape.id)}}}}});d(this,"complete",()=>{let{isCreate:e,shapeBounds:t,hasUnlockedShapes:n,app:{currentPageId:r}}=this;if(!n)return;if(this.isCreate&&tr.Vec.dist(this.app.originPoint,this.app.currentPoint)<2)return this.cancel();let s={},l={},a,c;return e?(a=[],c=[],t.forEach(({initialShape:p})=>{s[p.id]=void 0,l[p.id]=this.app.getShape(p.id)})):(a=this.initialSelectedIds,c=this.initialSelectedIds,t.forEach(({initialShape:p})=>{s[p.id]=p,l[p.id]=this.app.getShape(p.id)})),{id:"transform",before:{appState:{snapLines:[]},document:{pages:{[r]:{shapes:s}},pageStates:{[r]:{selectedIds:a,hoveredId:void 0,editingId:void 0}}}},after:{appState:{snapLines:[]},document:{pages:{[r]:{shapes:l}},pageStates:{[r]:{selectedIds:c,hoveredId:void 0,editingId:void 0}}}}}});this.initialSelectedIds=[...this.app.selectedIds],this.app.rotationInfo.selectedIds=[...this.initialSelectedIds],this.initialShapes=B.getSelectedBranchSnapshot(this.app.state,this.app.currentPageId).filter(a=>!a.isLocked),this.initialShapeIds=this.initialShapes.map(a=>a.id),this.hasUnlockedShapes=this.initialShapes.length>0,this.isAllAspectRatioLocked=this.initialShapes.every(a=>a.isAspectRatioLocked||B.getShapeUtil(a).isAspectRatioLocked);let r=Object.fromEntries(this.initialShapes.map(a=>[a.id,B.getBounds(a)])),s=Object.values(r);this.initialCommonBounds=rt.Utils.getCommonBounds(s);let l=rt.Utils.getBoundsFromPoints(s.map(rt.Utils.getBoundsCenter));this.shapeBounds=this.initialShapes.map(a=>{let c=r[a.id],p=rt.Utils.getBoundsCenter(c),u=(p[0]-l.minX)/l.width,h=(p[1]-l.minY)/l.height;return{initialShape:a,initialShapeBounds:c,transformOrigin:[u,h]}})}};var Pn=require("telva-core"),Ro=require("telva-vec");var fa=class extends He{constructor(e,t,n,r=!1){super(e);d(this,"type","transformSingle");d(this,"status","transforming");d(this,"performanceMode");d(this,"transformType");d(this,"scaleX",1);d(this,"scaleY",1);d(this,"isCreate");d(this,"initialShape");d(this,"initialShapeBounds");d(this,"initialCommonBounds");d(this,"snapInfo",{state:"empty"});d(this,"prevPoint",[0,0]);d(this,"speed",1);d(this,"start",()=>{this.snapInfo={state:"ready",bounds:this.app.shapes.filter(e=>e.id!==this.initialShape.id).map(e=>Pn.Utils.getBoundsWithCenter(B.getRotatedBounds(e)))}});d(this,"update",()=>{let{transformType:e,initialShape:t,initialShapeBounds:n,app:{settings:{isSnapping:r,showGrid:s},currentPageId:l,pageState:{camera:a},viewport:c,currentPoint:p,previousPoint:u,originPoint:h,currentGrid:g,shiftKey:m,altKey:f,metaKey:v}}=this;if(t.isLocked)return;let b={},T=f?Ro.Vec.mul(Ro.Vec.sub(p,h),2):Ro.Vec.sub(p,h),y=this.app.getShape(t.id),x=B.getShapeUtil(y),P=Pn.Utils.getTransformedBoundingBox(n,e,T,y.rotation,m||y.isAspectRatioLocked||x.isAspectRatioLocked);f&&(P=S(S({},P),Pn.Utils.centerBounds(P,Pn.Utils.getBoundsCenter(n)))),s&&(P=S(S({},P),Pn.Utils.snapBoundsToGrid(P,g)));let D=Ro.Vec.dist(p,u)-this.speed;this.speed=this.speed+D*(D>1?.5:.15);let C=[];if((r&&!v||!r&&v)&&!t.rotation&&this.speed*a.zoom<10&&this.snapInfo.state==="ready"){let M=Pn.Utils.getSnapPoints(Pn.Utils.getBoundsWithCenter(P),this.snapInfo.bounds.filter(L=>Pn.Utils.boundsContain(c,L)||Pn.Utils.boundsCollide(c,L)),5/a.zoom);M&&(C=M.snapLines,P=Pn.Utils.getTransformedBoundingBox(n,e,Ro.Vec.sub(T,M.offset),y.rotation,m||y.isAspectRatioLocked||x.isAspectRatioLocked))}let E=B.getShapeUtil(y).transformSingle(y,P,{initialShape:t,type:this.transformType,scaleX:P.scaleX,scaleY:P.scaleY,transformOrigin:[.5,.5]});return E&&(b[y.id]=E),s&&E&&E.point&&(E.point=Ro.Vec.snap(E.point,g)),{appState:{snapLines:C},document:{pages:{[l]:{shapes:b}}}}});d(this,"cancel",()=>{let{initialShape:e,app:{currentPageId:t}}=this,n={};return this.isCreate?n[e.id]=void 0:n[e.id]=e,{appState:{snapLines:[]},document:{pages:{[t]:{shapes:n}},pageStates:{[t]:{selectedIds:this.isCreate?[]:[e.id]}}}}});d(this,"complete",()=>{let{initialShape:e,app:{currentPageId:t}}=this;if(e.isLocked)return;if(this.isCreate&&Ro.Vec.dist(this.app.originPoint,this.app.currentPoint)<2)return this.cancel();let n={},r={};return n[e.id]=this.isCreate?void 0:e,r[e.id]=B.onSessionComplete(this.app.getShape(e.id)),{id:"transform_single",before:{appState:{snapLines:[]},document:{pages:{[t]:{shapes:n}},pageStates:{[t]:{selectedIds:this.isCreate?[]:[e.id],editingId:void 0,hoveredId:void 0}}}},after:{appState:{snapLines:[]},document:{pages:{[t]:{shapes:r}},pageStates:{[t]:{selectedIds:[e.id],editingId:void 0,hoveredId:void 0}}}}}});this.isCreate=r,this.transformType=n;let s=this.app.getShape(t);this.initialShape=s,this.initialShapeBounds=B.getBounds(s),this.initialCommonBounds=B.getRotatedBounds(s),this.app.rotationInfo.selectedIds=[s.id]}};var Ut=require("telva-core"),ze=require("telva-vec");var Sa=class extends He{constructor(e,t=!1,n=!1){super(e);d(this,"performanceMode");d(this,"type","translate");d(this,"status","translating");d(this,"delta",[0,0]);d(this,"prev",[0,0]);d(this,"prevPoint",[0,0]);d(this,"speed",1);d(this,"cloneInfo",{state:"empty"});d(this,"snapInfo",{state:"empty"});d(this,"snapLines",[]);d(this,"isCloning",!1);d(this,"isCreate");d(this,"link");d(this,"initialIds");d(this,"hasUnlockedShapes");d(this,"initialSelectedIds");d(this,"initialCommonBounds");d(this,"initialShapes");d(this,"initialParentChildren");d(this,"bindingsToDelete");d(this,"start",()=>{let{bindingsToDelete:e,initialIds:t,app:{currentPageId:n,page:r}}=this,s=[],l=[];if(Object.values(r.shapes).forEach(p=>{let u=Ut.Utils.getBoundsWithCenter(B.getRotatedBounds(p));s.push(u),t.has(p.id)||l.push(u)}),this.snapInfo={state:"ready",bounds:s,others:l},e.length===0)return;let a={},c={};return e.forEach(p=>{a[p.id]=void 0;let u=this.app.getShape(p.fromId);c[p.fromId]={handles:I(S({},u.handles),{[p.handleId]:I(S({},u.handles[p.handleId]),{bindingId:void 0})})}}),{document:{pages:{[n]:{bindings:a,shapes:c}}}}});d(this,"update",()=>{let{initialParentChildren:e,initialShapes:t,initialCommonBounds:n,bindingsToDelete:r,app:{pageState:{camera:s},settings:{isSnapping:l,showGrid:a},currentPageId:c,viewport:p,selectedIds:u,currentPoint:h,previousPoint:g,originPoint:m,altKey:f,shiftKey:v,metaKey:b,currentGrid:T}}=this,y={},x={},P={},k=ze.Vec.sub(h,m),D=!1;this.isCreate||(f&&!this.isCloning?(this.isCloning=!0,D=!0):!f&&this.isCloning&&(this.isCloning=!1,D=!0)),v&&(Math.abs(k[0])<Math.abs(k[1])?k[0]=0:k[1]=0);let E=ze.Vec.dist(h,g)-this.speed;if(this.speed=this.speed+E*(E>1?.5:.15),this.snapLines=[],(l&&!b||!l&&b)&&this.speed*s.zoom<10&&this.snapInfo.state==="ready"){let M=Ut.Utils.getSnapPoints(Ut.Utils.getBoundsWithCenter(a?Ut.Utils.snapBoundsToGrid(Ut.Utils.translateBounds(n,k),T):Ut.Utils.translateBounds(n,k)),(this.isCloning?this.snapInfo.bounds:this.snapInfo.others).filter(L=>Ut.Utils.boundsContain(p,L)||Ut.Utils.boundsCollide(p,L)),5/s.zoom);M&&(this.snapLines=M.snapLines,k=ze.Vec.sub(k,M.offset))}if(this.prev=k,this.isCloning)if(D){if(this.cloneInfo.state==="empty"&&this.createCloneInfo(),this.cloneInfo.state==="empty")throw Error;let{clones:M,clonedBindings:L}=this.cloneInfo;this.isCloning=!0,r.forEach(V=>y[V.id]=V),t.forEach(V=>x[V.id]={point:V.point}),M.forEach(V=>{var X;if(x[V.id]=S({},V),V.parentId!==c&&!u.includes(V.parentId)){let se=((X=x[V.parentId])==null?void 0:X.children)||e[V.parentId];se.includes(V.id)||(x[V.parentId]=I(S({},x[V.parentId]),{children:[...se,V.id]}))}});for(let V of L)y[V.id]=V;P.selectedIds=M.map(V=>V.id),M.forEach(V=>{x[V.id]=I(S({},V),{point:a?ze.Vec.snap(ze.Vec.toFixed(ze.Vec.add(V.point,k)),T):ze.Vec.toFixed(ze.Vec.add(V.point,k))})})}else{if(this.cloneInfo.state==="empty")throw Error;let{clones:M}=this.cloneInfo;M.forEach(L=>{x[L.id]={point:a?ze.Vec.snap(ze.Vec.toFixed(ze.Vec.add(L.point,k)),T):ze.Vec.toFixed(ze.Vec.add(L.point,k))}})}else if(D){if(this.cloneInfo.state==="empty")throw Error;let{clones:M,clonedBindings:L}=this.cloneInfo;this.isCloning=!1,r.forEach(V=>y[V.id]=void 0),M.forEach(V=>{V.parentId!==c&&(x[V.parentId]=I(S({},x[V.parentId]),{children:e[V.parentId]}))}),M.forEach(V=>x[V.id]=void 0),t.forEach(V=>{x[V.id]={point:a?ze.Vec.snap(ze.Vec.toFixed(ze.Vec.add(V.point,k)),T):ze.Vec.toFixed(ze.Vec.add(V.point,k))}});for(let V of L)y[V.id]=void 0;P.selectedIds=t.map(V=>V.id)}else t.forEach(M=>{x[M.id]={point:a?ze.Vec.snap(ze.Vec.toFixed(ze.Vec.add(M.point,k)),T):ze.Vec.toFixed(ze.Vec.add(M.point,k))}});return{appState:{snapLines:this.snapLines},document:{pages:{[c]:{shapes:x,bindings:y}},pageStates:{[c]:P}}}});d(this,"cancel",()=>{let{initialShapes:e,initialSelectedIds:t,bindingsToDelete:n,app:{currentPageId:r}}=this,s={},l={},a={editingId:void 0,hoveredId:void 0};if(this.isCreate?(e.forEach(({id:c})=>l[c]=void 0),a.selectedIds=[]):(e.forEach(({id:c,point:p,handles:u})=>l[c]=u?I(S({},l[c]),{point:p,handles:u}):I(S({},l[c]),{point:p})),a.selectedIds=t,n.forEach(c=>{s[c.id]=c})),this.cloneInfo.state==="ready"){let{clones:c,clonedBindings:p}=this.cloneInfo;c.forEach(u=>l[u.id]=void 0),p.forEach(u=>s[u.id]=void 0)}return{appState:{snapLines:[]},document:{pages:{[r]:{shapes:l,bindings:s}},pageStates:{[r]:a}}}});d(this,"complete",()=>{let{initialShapes:e,initialParentChildren:t,bindingsToDelete:n,app:{currentPageId:r}}=this,s={},l={},a={},c={};if(this.isCloning){if(this.cloneInfo.state==="empty"&&this.createCloneInfo(),this.cloneInfo.state!=="ready")throw Error;let{clones:p,clonedBindings:u}=this.cloneInfo;p.forEach(h=>{l[h.id]=void 0,c[h.id]=this.app.getShape(h.id),h.parentId!==r&&(l[h.parentId]=I(S({},l[h.parentId]),{children:t[h.parentId]}),c[h.parentId]=I(S({},c[h.parentId]),{children:this.app.getShape(h.parentId).children}))}),u.forEach(h=>{s[h.id]=void 0,a[h.id]=this.app.getBinding(h.id)})}else e.forEach(p=>{l[p.id]=this.isCreate?void 0:I(S({},l[p.id]),{point:p.point}),c[p.id]=S(S({},c[p.id]),this.isCreate?this.app.getShape(p.id):{point:this.app.getShape(p.id).point})});return n.forEach(p=>{var u,h,g,m,f;s[p.id]=p,l[p.fromId]=I(S({},l[p.fromId]),{id:p.fromId,handles:I(S({},(u=l[p.fromId])==null?void 0:u.handles),{[p.handleId]:I(S({},(g=(h=l[p.fromId])==null?void 0:h.handles)==null?void 0:g[p.handleId]),{bindingId:p.id})})}),c[p.fromId]=I(S({},c[p.fromId]),{id:p.fromId,handles:I(S({},c[p.fromId].handles),{[p.handleId]:I(S({},(f=(m=c[p.fromId])==null?void 0:m.handles)==null?void 0:f[p.handleId]),{bindingId:void 0})})})}),n.forEach(p=>a[p.id]=void 0),{id:"translate",before:{appState:{snapLines:[]},document:{pages:{[r]:{shapes:l,bindings:s}},pageStates:{[r]:{selectedIds:this.isCreate?[]:[...this.initialSelectedIds]}}}},after:{appState:{snapLines:[]},document:{pages:{[r]:{shapes:c,bindings:a}},pageStates:{[r]:{selectedIds:[...this.app.selectedIds]}}}}}});d(this,"createCloneInfo",()=>{let{initialShapes:e,initialParentChildren:t,app:{selectedIds:n,currentPageId:r,page:s}}=this,l={},a={},c=[],p=[];e.forEach(h=>{let g=Ut.Utils.uniqueId();t[g]=t[h.id],l[h.id]=g;let m=I(S({},Ut.Utils.deepClone(h)),{id:g,parentId:h.parentId,childIndex:B.getChildIndexAbove(this.app.state,h.id,r)});if(m.type==="video"){let f=document.getElementById(h.id+"_video");f&&(m.currentTime=(f.currentTime+16)%f.duration)}p.push(m)}),p.forEach(h=>{h.children!==void 0&&(h.children=h.children.map(g=>l[g]))}),p.forEach(h=>{n.includes(h.parentId)&&(h.parentId=l[h.parentId])});let u=new Set(Object.keys(l));Object.values(s.bindings).filter(h=>u.has(h.fromId)||u.has(h.toId)).forEach(h=>{if(u.has(h.fromId)&&u.has(h.toId)){let g=Ut.Utils.uniqueId(),m=I(S({},Ut.Utils.deepClone(h)),{id:g,fromId:l[h.fromId]||h.fromId,toId:l[h.toId]||h.toId});a[h.id]=g,c.push(m)}}),p.forEach(h=>{if(h.handles&&h.handles)for(let g in h.handles){let m=h.handles[g];m.bindingId=m.bindingId?a[m.bindingId]:void 0}}),p.forEach(h=>{if(s.shapes[h.id])throw Error("uh oh, we didn't clone correctly")}),this.cloneInfo={state:"ready",clones:p,cloneMap:l,clonedBindings:c}});this.isCreate=t,this.link=n;let{currentPageId:r,selectedIds:s,page:l}=this.app;this.initialSelectedIds=[...s];let a=(n?B.getLinkedShapeIds(this.app.state,r,n,!1):s).map(p=>this.app.getShape(p)).filter(p=>!p.isLocked),c=new Set(a.map(p=>p.id));this.hasUnlockedShapes=a.length>0,this.initialShapes=Array.from(new Set(a.filter(p=>!c.has(p.parentId)).flatMap(p=>p.children?[p,...p.children.map(u=>this.app.getShape(u))]:[p])).values()),this.initialIds=new Set(this.initialShapes.map(p=>p.id)),this.bindingsToDelete=[],Object.values(l.bindings).filter(p=>this.initialIds.has(p.fromId)||this.initialIds.has(p.toId)).forEach(p=>{this.initialIds.has(p.fromId)&&(this.initialIds.has(p.toId)||this.bindingsToDelete.push(p))}),this.initialParentChildren={},this.initialShapes.map(p=>p.parentId).filter(p=>p!==l.id).forEach(p=>{this.initialParentChildren[p]=this.app.getShape(p).children}),this.initialCommonBounds=Ut.Utils.getCommonBounds(this.initialShapes.map(B.getRotatedBounds)),this.app.rotationInfo.selectedIds=[...this.app.selectedIds]}};var Iy={["arrow"]:sa,["brush"]:aa,["draw"]:la,["erase"]:ca,["handle"]:ha,["rotate"]:ma,["transform"]:ga,["transformSingle"]:fa,["translate"]:Sa,["grid"]:pa,["edit"]:da},dh=i=>Iy[i];var ph=require("telva-core"),uh=H(require("telva-vec"));var ch=require("telva-core");var Fe=class extends Jr{constructor(e){super();this.app=e;d(this,"type","select");d(this,"previous");d(this,"status","idle");d(this,"setStatus",e=>{this.status=e,this.app.setStatus(this.status)});d(this,"onEnter",()=>{this.setStatus("idle")});d(this,"onExit",()=>{this.setStatus("idle")});d(this,"onCancel",()=>{this.status==="idle"?this.app.selectTool("select"):this.setStatus("idle"),this.app.cancelSession()});d(this,"getNextChildIndex",()=>{let{shapes:e,appState:{currentPageId:t}}=this.app;return e.length===0?1:e.filter(n=>n.parentId===t).sort((n,r)=>r.childIndex-n.childIndex)[0].childIndex+1});d(this,"onPinchStart",()=>{this.app.cancelSession(),this.setStatus("pinching")});d(this,"onPinchEnd",()=>{ch.Utils.isMobileSafari()&&this.app.undoSelect(),this.setStatus("idle")});d(this,"onPinch",(e,t)=>{var n;this.status==="pinching"&&(isNaN(e.delta[0])||isNaN(e.delta[1])||(this.app.pinchZoom(e.point,e.delta,e.delta[2]),(n=this.onPointerMove)==null||n.call(this,e,t)))});d(this,"onKeyDown",e=>{if(e==="Escape"){this.onCancel();return}if(e==="Meta"||e==="Control"||e==="Alt"){this.app.updateSession();return}});d(this,"onKeyUp",e=>{if(e==="Meta"||e==="Control"||e==="Alt"){this.app.updateSession();return}});d(this,"onPointerMove",()=>{this.status==="creating"&&this.app.updateSession()});d(this,"onPointerUp",()=>{if(this.status==="creating"){this.app.completeSession();let{isToolLocked:e}=this.app.appState;e||this.app.selectTool("select")}this.setStatus("idle")})}};var Lr=class extends Fe{constructor(){super(...arguments);d(this,"type","arrow");d(this,"onPointerDown",()=>{if(this.status!=="idle")return;let{currentPoint:e,currentGrid:t,settings:{showGrid:n},appState:{currentPageId:r,currentStyle:s}}=this.app,l=this.getNextChildIndex(),a=ph.Utils.uniqueId(),c=xr.create({id:a,parentId:r,childIndex:l,point:n?uh.default.snap(e,t):e,style:S({},s)});this.app.patchCreate([c]),this.app.startSession("arrow",c.id,"end",!0),this.setStatus("creating")})}};var hh=require("telva-core");var Vr=class extends Fe{constructor(){super(...arguments);d(this,"type","draw");d(this,"lastShapeId");d(this,"onEnter",()=>{this.lastShapeId=void 0});d(this,"onCancel",()=>{switch(this.status){case"idle":{this.app.selectTool("select");break}default:{this.setStatus("idle");break}}this.app.cancelSession()});d(this,"onPointerDown",e=>{if(this.status!=="idle"||this.app.readOnly)return;let{currentPoint:t,appState:{currentPageId:n,currentStyle:r}}=this.app,s=this.lastShapeId&&this.app.getShape(this.lastShapeId);if(e.shiftKey&&s)this.app.startSession("draw",s.id),this.setStatus("extending");else{let l=this.getNextChildIndex(),a=hh.Utils.uniqueId(),c=Fs.create({id:a,parentId:n,childIndex:l,point:t,style:S({},r)});this.lastShapeId=a,this.app.patchCreate([c]),this.app.startSession("draw",a),this.setStatus("creating")}});d(this,"onPointerMove",()=>{if(!this.app.readOnly)switch(this.status){case"extending":case"creating":this.app.updateSession()}});d(this,"onPointerUp",()=>{this.app.completeSession(),this.setStatus("idle")})}};var ya=require("telva-core"),mh=H(require("telva-vec"));var Hr=class extends Fe{constructor(){super(...arguments);d(this,"type","ellipse");d(this,"onPointerDown",()=>{if(this.app.readOnly||this.status!=="idle")return;let{currentPoint:e,currentGrid:t,settings:{showGrid:n},appState:{currentPageId:r,currentStyle:s}}=this.app,l=this.getNextChildIndex(),a=ya.Utils.uniqueId(),c=zs.create({id:a,parentId:r,childIndex:l,point:n?mh.default.snap(e,t):e,style:S({},s)});this.app.patchCreate([c]),this.app.startSession("transformSingle",c.id,ya.TLBoundsCorner.BottomRight,!0),this.setStatus("creating")})}};var gh=H(require("telva-vec"));var zr=class extends Fe{constructor(){super(...arguments);d(this,"type","erase");d(this,"status","idle");d(this,"onPointerDown",()=>{this.app.readOnly||this.status==="idle"&&this.setStatus("pointing")});d(this,"onPointerMove",e=>{if(!this.app.readOnly)switch(this.status){case"pointing":{gh.default.dist(e.origin,e.point)>3&&(this.app.startSession("erase"),this.app.updateSession(),this.setStatus("erasing"));break}case"erasing":this.app.updateSession()}});d(this,"onPointerUp",()=>{if(!this.app.readOnly){switch(this.status){case"pointing":{let e=this.app.shapes.filter(t=>!t.isLocked).filter(t=>this.app.getShapeUtil(t).hitTestPoint(t,this.app.currentPoint)).flatMap(t=>t.children?[t.id,...t.children]:t.id);this.app.delete(e);break}case"erasing":this.app.completeSession()}this.setStatus("idle")}});d(this,"onCancel",()=>{this.status==="idle"?this.previous?this.app.selectTool(this.previous):this.app.selectTool("select"):this.setStatus("idle"),this.app.cancelSession()})}};var fh=require("telva-core"),Sh=H(require("telva-vec"));var Fr=class extends Fe{constructor(){super(...arguments);d(this,"type","line");d(this,"onPointerDown",()=>{if(this.app.readOnly||this.status!=="idle")return;let{currentPoint:e,currentGrid:t,settings:{showGrid:n},appState:{currentPageId:r,currentStyle:s}}=this.app,l=this.getNextChildIndex(),a=fh.Utils.uniqueId(),c=xr.create({id:a,parentId:r,childIndex:l,point:n?Sh.default.snap(e,t):e,decorations:{start:void 0,end:void 0},style:S({},s)});this.app.patchCreate([c]),this.app.startSession("arrow",c.id,"end",!0),this.setStatus("creating")})}};var yh=require("telva-core"),mn=H(require("telva-vec"));var Py=4,Or=class extends Fe{constructor(){super(...arguments);d(this,"type","pen");d(this,"currentShapeId");d(this,"downPoint");d(this,"currentSegmentIdx",0);d(this,"onEnter",()=>{this.currentShapeId=void 0,this.downPoint=void 0,this.currentSegmentIdx=0,this.setStatus("idle")});d(this,"onExit",()=>{this.currentShapeId&&this.finishShape(),this.currentShapeId=void 0,this.downPoint=void 0,this.currentSegmentIdx=0,this.setStatus("idle")});d(this,"onCancel",()=>{this.currentShapeId&&(this.app.delete([this.currentShapeId]),this.currentShapeId=void 0),this.downPoint=void 0,this.currentSegmentIdx=0,this.setStatus("idle")});d(this,"onPointerDown",e=>{if(this.app.readOnly||e.spaceKey)return;let t=this.app.getPagePoint(e.point);if(this.downPoint=t,this.status==="idle"||!this.currentShapeId){this.startNewShape(t),this.setStatus("placing");return}if(this.status==="drawing"){if(this.isNearFirstNode(t)){let r=this.getShape();if(r&&r.segments.length>=2){let{segments:s,offset:l}=tl(r.segments,!0);this.app.updateShapes({id:r.id,point:mn.default.add(r.point,l),segments:s,isClosed:!0,isComplete:!0,isPlacingHandle:!1}),this.app.select(r.id),this.currentShapeId=void 0,this.downPoint=void 0,this.setStatus("idle");return}}let n=this.toLocal(t);this.addSegment(n),this.setPreview(t,!0),this.setStatus("placing")}});d(this,"onPointerMove",e=>{if(this.app.readOnly||e.spaceKey||!this.currentShapeId)return;let t=this.app.getPagePoint(e.point);if(this.status==="drawing"){this.setPreview(t,!1);return}if(this.status==="placing"&&this.downPoint)if(this.setPreview(t,!0),mn.default.dist(t,this.downPoint)>Py){let r=this.getShape();if(!r||r.segments.length===0)return;let s=r.segments[r.segments.length-1].point,l=mn.default.sub(this.downPoint,r.point),a=mn.default.sub(mn.default.sub(t,r.point),l),c=mn.default.add(s,a),p=pi(s,c);this.updateLastSegmentHandles(p,c)}else this.updateLastSegmentHandles(void 0,void 0)});d(this,"onPointerUp",e=>{if(!this.app.readOnly&&this.status==="placing"){let t=this.app.getPagePoint(e.point);this.setPreview(t,!1),this.downPoint=void 0,this.setStatus("drawing")}});d(this,"onDoubleClickCanvas",()=>{if(!this.app.readOnly&&this.currentShapeId){let e=this.getShape();if(e&&e.segments.length>1){let t=e.segments.slice(0,-1);this.patchCurrentShape({segments:t})}this.finishShape(),this.setStatus("idle")}});d(this,"onKeyDown",(e,t,n)=>{switch(e){case"Escape":{this.onCancel();break}case"Enter":{this.currentShapeId&&(this.finishShape(),this.setStatus("idle"));break}}})}getShape(){if(!!this.currentShapeId)return this.app.getShape(this.currentShapeId)}get currentSegments(){var e,t;return(t=(e=this.getShape())==null?void 0:e.segments)!=null?t:[]}patchCurrentShape(e){let t=this.getShape();!t||this.app.patchState({document:{pages:{[this.app.currentPageId]:{shapes:{[t.id]:e}}}}})}setPreview(e,t){let n=this.getShape();if(!n)return;let r=mn.default.sub(e,n.point);this.patchCurrentShape({previewPoint:r,isPlacingHandle:t})}startNewShape(e){let{appState:{currentPageId:t,currentStyle:n}}=this.app,r=yh.Utils.uniqueId(),s=this.getNextChildIndex(),l={point:[0,0]},a={id:r,type:"pen",name:"Pen",parentId:t,childIndex:s,point:e,rotation:0,style:S({},n),segments:[l],isClosed:!1,isComplete:!1,previewPoint:[0,0],isPlacingHandle:!0};this.currentShapeId=r,this.currentSegmentIdx=0,this.app.patchCreate([a])}addSegment(e,t,n){let r=this.getShape();if(!r)return;let s={point:e,cp1:t,cp2:n},l=[...r.segments,s];this.currentSegmentIdx=l.length-1,this.patchCurrentShape({segments:l})}updateLastSegmentHandles(e,t){let n=this.getShape();if(!n||n.segments.length===0)return;let r=[...n.segments],s=r[r.length-1];r[r.length-1]=I(S({},s),{cp1:e,cp2:t}),this.patchCurrentShape({segments:r})}toLocal(e){let t=this.getShape();return t?mn.default.sub(e,t.point):e}isNearFirstNode(e){var r;let t=this.getShape();if(!t||t.segments.length<2)return!1;let n=mn.default.add(t.point,t.segments[0].point);return mn.default.dist(e,n)<=10/((r=this.app.zoom)!=null?r:1)}finishShape(){let e=this.currentShapeId;if(!e)return;let t=this.app.getShape(e);if(!t)return;let{segments:n,offset:r}=tl(t.segments,t.isClosed),s=mn.default.add(t.point,r);this.app.updateShapes({id:e,point:s,segments:n,isComplete:!0,isPlacingHandle:!1}),this.app.select(e),this.currentShapeId=void 0,this.downPoint=void 0,this.currentSegmentIdx=0}};var ba=require("telva-core"),bh=H(require("telva-vec"));var $r=class extends Fe{constructor(){super(...arguments);d(this,"type","rectangle");d(this,"onPointerDown",()=>{if(this.app.readOnly||this.status!=="idle")return;let{currentPoint:e,currentGrid:t,settings:{showGrid:n},appState:{currentPageId:r,currentStyle:s}}=this.app,l=this.getNextChildIndex(),a=ba.Utils.uniqueId(),c=Vs.create({id:a,parentId:r,childIndex:l,point:n?bh.default.snap(e,t):e,style:S({},s)});this.app.patchCreate([c]),this.app.startSession("transformSingle",c.id,ba.TLBoundsCorner.BottomRight,!0),this.setStatus("creating")})}};var Gr=require("telva-core"),Wn=H(require("telva-vec"));var jr=class extends Fe{constructor(){super(...arguments);d(this,"type","select");d(this,"pointedId");d(this,"selectedGroupId");d(this,"pointedHandleId");d(this,"pointedBoundsHandle");d(this,"pointedLinkHandleId");d(this,"onEnter",()=>{this.setStatus("idle")});d(this,"onExit",()=>{this.setStatus("idle")});d(this,"clonePaint",e=>{if(this.app.selectedIds.length===0)return;let t=this.app.selectedIds.map(p=>this.app.getShape(p)),n=Gr.Utils.expandBounds(Gr.Utils.getCommonBounds(t.map(B.getBounds)),16),r=Gr.Utils.getBoundsCenter(n),s=[n.width,n.height],l=[r[0]+s[0]*Math.floor((e[0]+s[0]/2-r[0])/s[0]),r[1]+s[1]*Math.floor((e[1]+s[1]/2-r[1])/s[1])],a=Gr.Utils.centerBounds(n,l);this.app.shapes.some(p=>B.getShapeUtil(p).hitTestBounds(p,a))||this.app.duplicate(this.app.selectedIds,l)});d(this,"getShapeClone",(e,t)=>{let n=this.app.getShape(e),r=B.getShapeUtil(n);if(r.canClone){let s=r.getBounds(n),l=r.getCenter(n),a={top:[s.minX,s.minY-(s.height+32)],right:[s.maxX+32,s.minY],bottom:[s.minX,s.maxY+32],left:[s.minX-(s.width+32),s.minY],topLeft:[s.minX-(s.width+32),s.minY-(s.height+32)],topRight:[s.maxX+32,s.minY-(s.height+32)],bottomLeft:[s.minX-(s.width+32),s.maxY+32],bottomRight:[s.maxX+32,s.maxY+32]}[t];if(n.rotation!==0){let u=Wn.default.add(a,[s.width/2,s.height/2]),h=Wn.default.rotWith(u,l,n.rotation||0);a=Wn.default.sub(h,[s.width/2,s.height/2])}let c=Gr.Utils.uniqueId(),p=I(S({},n),{id:c,point:a});return p.type==="sticky"&&(p.text=""),p}});d(this,"onCancel",()=>{this.app.session?this.app.cancelSession():this.selectNone(),this.setStatus("idle")});d(this,"onKeyDown",(e,t,n)=>{switch(e){case"Escape":{this.onCancel();break}case"Tab":{if(this.app.readOnly)return;if(!this.app.pageState.editingId&&this.status==="idle"&&this.app.selectedIds.length===1){let[r]=this.app.selectedIds,s=this.getShapeClone(r,"right");s&&(this.app.createShapes(s),this.setStatus("idle"),s.type==="sticky"&&(this.app.select(s.id),this.app.setEditingId(s.id)))}break}case"Meta":case"Control":case"Alt":{this.app.updateSession();break}case"Enter":{if(this.app.readOnly)return;let{pageState:r}=this.app;r.selectedIds.length===1&&!r.editingId&&(this.app.setEditingId(r.selectedIds[0]),n.preventDefault())}}});d(this,"onKeyUp",(e,t)=>{if(this.status==="clonePainting"&&!(t.altKey&&t.shiftKey)){this.setStatus("idle");return}if(e==="Meta"||e==="Control"||e==="Alt"){this.app.updateSession();return}});d(this,"onPointerMove",()=>{let{originPoint:e,currentPoint:t}=this.app;if(this.app.readOnly&&this.app.isPointing){this.app.session?this.app.updateSession():Wn.default.dist(e,t)>3&&(this.app.startSession("brush"),this.setStatus("brushing"));return}switch(this.status){case"pointingBoundsHandle":{if(!this.pointedBoundsHandle)throw Error("No pointed bounds handle");if(Wn.default.dist(e,t)>3){if(this.pointedBoundsHandle==="rotate")this.setStatus("rotating"),this.app.startSession("rotate");else if(this.pointedBoundsHandle==="center"||this.pointedBoundsHandle==="left"||this.pointedBoundsHandle==="right")this.setStatus("translating"),this.app.startSession("translate",!1,this.pointedBoundsHandle);else{this.setStatus("transforming");let n=this.app.selectedIds.flatMap(r=>B.getDocumentBranch(this.app.state,r,this.app.currentPageId));n.length===1?this.app.startSession("transformSingle",n[0],this.pointedBoundsHandle):this.app.startSession("transform",this.pointedBoundsHandle)}this.app.updateSession()}break}case"pointingCanvas":{Wn.default.dist(e,t)>3&&(this.app.startSession("brush"),this.setStatus("brushing"));break}case"pointingClone":{Wn.default.dist(e,t)>3&&(this.setStatus("translatingClone"),this.app.startSession("translate"),this.app.updateSession());break}case"pointingBounds":{Wn.default.dist(e,t)>3&&(this.setStatus("translating"),this.app.startSession("translate"),this.app.updateSession());break}case"pointingHandle":{if(!this.pointedHandleId)throw Error("No pointed handle");if(Wn.default.dist(e,t)>3){this.setStatus("translatingHandle");let n=this.app.getShape(this.app.selectedIds[0]);n&&(this.pointedHandleId==="bend"?(this.app.startSession("handle",n.id,this.pointedHandleId),this.app.updateSession()):(this.app.startSession("arrow",n.id,this.pointedHandleId,!1),this.app.updateSession()))}break}case"clonePainting":{this.clonePaint(t);break}default:if(this.app.session){this.app.updateSession();break}}});d(this,"onPointerDown",(e,t)=>{if(e.target==="canvas"&&this.status==="idle"){let{currentPoint:n}=this.app;if(e.spaceKey&&t.buttons===1)return;if(this.status==="idle"&&e.altKey&&e.shiftKey){this.setStatus("clonePainting"),this.clonePaint(n);return}if(!e.shiftKey){if(this.app.onShapeBlur(),e.altKey&&this.app.selectedIds.length>0){this.app.duplicate(this.app.selectedIds,n);return}this.selectNone()}this.setStatus("pointingCanvas")}});d(this,"onPointerUp",e=>{var t;if(this.status==="translatingClone"||this.status==="pointingClone"){this.pointedId&&(this.app.completeSession(),this.app.setEditingId(this.pointedId)),this.setStatus("idle"),this.pointedId=void 0;return}if(this.status==="pointingBounds"){if(e.target==="bounds")this.selectNone();else if(this.app.isSelected(e.target))e.shiftKey?this.pointedId!==e.target&&this.deselect(e.target):this.pointedId!==e.target&&this.app.selectedIds.length>1&&this.select(e.target);else if(this.pointedId===e.target){if(this.app.getShape(e.target).isLocked)return;e.shiftKey?this.pushSelect(e.target):this.select(e.target)}}this.setStatus("idle"),this.pointedBoundsHandle=void 0,this.pointedHandleId=void 0,this.pointedId=void 0,((t=this.app.session)==null?void 0:t.type)!=="edit"&&this.app.completeSession()});d(this,"onDoubleClickCanvas",()=>{this.app.readOnly});d(this,"onPointShape",(e,t)=>{if(e.spaceKey&&t.buttons===1||this.app.getShape(e.target).isLocked)return;let{editingId:n,hoveredId:r}=this.app.pageState;if(n&&e.target!==n&&this.app.onShapeBlur(),(this.status==="idle"||this.status==="pointingBounds")&&e.metaKey&&e.shiftKey&&r){this.pointedId=r,this.app.isSelected(r)?this.deselect(r):(this.pushSelect(r),this.setStatus("pointingBounds"));return}if(this.status==="pointingBounds"){let{parentId:s}=this.app.getShape(e.target);this.pointedId=s===this.app.currentPageId?e.target:s;return}if(this.status==="idle"){if(this.setStatus("pointingBounds"),e.metaKey){e.shiftKey||this.selectNone(),this.app.startSession("brush"),this.setStatus("brushing");return}let s,{parentId:l}=this.app.getShape(e.target);l===this.app.currentPageId?(s=e.target,this.selectedGroupId=void 0):l===this.selectedGroupId?s=e.target:(s=l,this.selectedGroupId=void 0),this.app.isSelected(s)||(this.pointedId=s,e.shiftKey?this.pushSelect(s):this.select(s))}});d(this,"onDoubleClickShape",e=>{if(this.app.readOnly)return;let t=this.app.getShape(e.target);if(t.isLocked){this.app.select(e.target);return}B.getShapeUtil(t.type).canEdit&&(t.parentId===this.app.currentPageId||t.parentId===this.selectedGroupId)&&this.app.setEditingId(e.target),t.parentId!==this.app.currentPageId&&(this.selectedGroupId=t.parentId),this.app.select(e.target)});d(this,"onRightPointShape",e=>{this.app.isSelected(e.target)||this.app.select(e.target)});d(this,"onHoverShape",e=>{this.app.setHoveredId(e.target)});d(this,"onUnhoverShape",e=>{let{currentPageId:t}=this.app;requestAnimationFrame(()=>{t===this.app.currentPageId&&this.app.pageState.hoveredId===e.target&&this.app.setHoveredId(void 0)})});d(this,"onPointBounds",e=>{if(e.metaKey){e.shiftKey||this.selectNone(),this.app.startSession("brush"),this.setStatus("brushing");return}this.setStatus("pointingBounds")});d(this,"onRightPointBounds",(e,t)=>{t.stopPropagation()});d(this,"onReleaseBounds",()=>{(this.status==="translating"||this.status==="brushing")&&this.app.completeSession(),this.setStatus("idle")});d(this,"onPointBoundsHandle",e=>{this.pointedBoundsHandle=e.target,this.setStatus("pointingBoundsHandle")});d(this,"onDoubleClickBoundsHandle",e=>{switch(e.target){case"center":case"left":case"right":{this.app.select(...B.getLinkedShapeIds(this.app.state,this.app.currentPageId,e.target,e.shiftKey));break}default:if(this.app.selectedIds.length===1){this.app.resetBounds(this.app.selectedIds);let t=this.app.getShape(this.app.selectedIds[0]);"label"in t&&this.app.setEditingId(t.id)}}});d(this,"onReleaseBoundsHandle",()=>{this.setStatus("idle")});d(this,"onPointHandle",e=>{this.pointedHandleId=e.target,this.setStatus("pointingHandle")});d(this,"onDoubleClickHandle",e=>{if(e.target==="bend"){let{selectedIds:t}=this.app;if(t.length!==1)return;let n=this.app.getShape(t[0]);B.getShapeUtil(n.type).canEdit&&(n.parentId===this.app.currentPageId||n.parentId===this.selectedGroupId)&&this.app.setEditingId(n.id);return}this.app.toggleDecoration(e.target)});d(this,"onReleaseHandle",()=>{this.setStatus("idle")});d(this,"onShapeClone",e=>{let t=this.app.selectedIds[0],n=this.getShapeClone(t,e.target);e.target==="left"||e.target==="right"||e.target==="top"||e.target==="bottom"?n&&(this.app.createShapes(n),this.pointedId=n.id,this.setStatus("pointingClone")):(this.setStatus("gridCloning"),this.app.startSession("grid",t))})}deselect(e){this.app.select(...this.app.selectedIds.filter(t=>t!==e))}select(e){this.app.select(e)}pushSelect(e){let t=this.app.getShape(e);this.app.select(...this.app.selectedIds.filter(n=>n!==t.parentId),e)}selectNone(){this.app.selectNone()}};var vh=require("telva-core"),jl=H(require("telva-vec"));var Wr=class extends Fe{constructor(){super(...arguments);d(this,"type","sticky");d(this,"shapeId");d(this,"onPointerDown",()=>{if(!this.app.readOnly){if(this.status==="creating"){this.setStatus("idle"),this.app.appState.isToolLocked||this.app.selectTool("select");return}if(this.status==="idle"){let{currentPoint:e,currentGrid:t,settings:{showGrid:n},appState:{currentPageId:r,currentStyle:s}}=this.app,l=this.getNextChildIndex(),a=vh.Utils.uniqueId();this.shapeId=a;let c=mi.create({id:a,parentId:r,childIndex:l,point:n?jl.default.snap(e,t):e,style:S({},s)}),p=mi.getBounds(c);c.point=jl.default.sub(c.point,[p.width/2,p.height/2]),this.app.patchCreate([c]),this.app.startSession("translate"),this.setStatus("creating")}}});d(this,"onPointerUp",()=>{this.app.readOnly||this.status==="creating"&&(this.setStatus("idle"),this.app.completeSession(),this.app.selectTool("select"),this.app.setEditingId(this.shapeId))})}};var Th=H(require("telva-vec"));var Nr=class extends Fe{constructor(){super(...arguments);d(this,"type","text");d(this,"stopEditingShape",()=>{this.setStatus("idle"),this.app.appState.isToolLocked||this.app.selectTool("select")});d(this,"onKeyUp",()=>{});d(this,"onKeyDown",()=>{});d(this,"onPointerDown",()=>{if(this.status==="creating"){this.stopEditingShape();return}if(this.status==="idle"){let{currentPoint:e,currentGrid:t,settings:{showGrid:n}}=this.app;this.app.createTextShapeAtPoint(n?Th.default.snap(e,t):e,void 0,!0),this.setStatus("creating");return}});d(this,"onPointerUp",()=>{});d(this,"onPointShape",e=>{if(this.app.readOnly)return;let t=this.app.getShape(e.target);t.type==="text"&&(this.setStatus("idle"),this.app.setEditingId(t.id))});d(this,"onShapeBlur",()=>{this.app.readOnly||this.stopEditingShape()})}};var va=require("telva-core"),xh=H(require("telva-vec"));var Ur=class extends Fe{constructor(){super(...arguments);d(this,"type","triangle");d(this,"onPointerDown",()=>{if(this.app.readOnly||this.status!=="idle")return;let{currentPoint:e,currentGrid:t,settings:{showGrid:n},appState:{currentPageId:r,currentStyle:s}}=this.app,l=this.getNextChildIndex(),a=va.Utils.uniqueId(),c=Hs.create({id:a,parentId:r,childIndex:l,point:n?xh.default.snap(e,t):e,style:S({},s)});this.app.patchCreate([c]),this.app.startSession("transformSingle",c.id,va.TLBoundsCorner.BottomRight,!0),this.setStatus("creating")})}};var Wl=ut.Utils.uniqueId(),et=class extends Qs{constructor(e,t={}){super(et.defaultState,e,et.version,(n,r,s)=>Gn(I(S({},r),{document:I(S(S({},r.document),n.document),{version:s})}),et.version));d(this,"callbacks",{});d(this,"tools",{select:new jr(this),erase:new zr(this),["text"]:new Nr(this),["draw"]:new Vr(this),["ellipse"]:new Hr(this),["rectangle"]:new $r(this),["triangle"]:new Ur(this),["line"]:new Fr(this),["arrow"]:new Lr(this),["sticky"]:new Wr(this),["pen"]:new Or(this)});d(this,"currentTool",this.tools.select);d(this,"session");d(this,"readOnly",!1);d(this,"isDirty",!1);d(this,"isCreating",!1);d(this,"originPoint",[0,0]);d(this,"currentPoint",[0,0]);d(this,"previousPoint",[0,0]);d(this,"shiftKey",!1);d(this,"altKey",!1);d(this,"metaKey",!1);d(this,"ctrlKey",!1);d(this,"spaceKey",!1);d(this,"isPointing",!1);d(this,"isForcePanning",!1);d(this,"isErasingWithPen",!1);d(this,"isPastePrevented",!1);d(this,"editingStartTime",-1);d(this,"fileSystemHandle",null);d(this,"viewport",ut.Utils.getBoundsFromPoints([[0,0],[100,100]]));d(this,"rendererBounds",ut.Utils.getBoundsFromPoints([[0,0],[100,100]]));d(this,"selectHistory",{stack:[[]],pointer:0});d(this,"clipboard");d(this,"rotationInfo",{selectedIds:[],center:[0,0]});d(this,"migrate",e=>Gn(e,et.version));d(this,"onReady",()=>{var e,t;this.loadDocument(this.document),Bl().then(n=>{this.fileSystemHandle=n});try{this.patchState(I(S({},Gn(this.state,et.version)),{appState:{status:"idle"}}))}catch(n){console.error("The data appears to be corrupted. Resetting!",n),localStorage.setItem(this.document.id+"_corrupted",JSON.stringify(this.document)),this.patchState(I(S({},et.defaultState),{appState:I(S({},et.defaultState.appState),{status:"idle"})}))}(t=(e=this.callbacks).onMount)==null||t.call(e,this)});d(this,"cleanup",(e,t)=>{var l,a,c,p,u;let n=S({},e);n.document!==t.document&&Object.entries(n.document.pages).forEach(([h,g])=>{if(g===void 0){delete n.document.pages[h],delete n.document.pageStates[h];return}let m=t.document.pages[h],f={};if(!m||g.shapes!==m.shapes||g.bindings!==m.bindings){g.shapes=S({},g.shapes),g.bindings=S({},g.bindings);let b=new Set;Object.entries(g.shapes).forEach(([x,P])=>{var D;let k;P?k=P.parentId:(k=(D=m==null?void 0:m.shapes[x])==null?void 0:D.parentId,delete g.shapes[x]),g.id===n.appState.currentPageId&&(m==null?void 0:m.shapes[x])!==P&&(f[x]=P),k&&k!==h&&g.shapes[k]!==void 0&&b.add(g.shapes[k])}),Object.keys(g.bindings).forEach(x=>{g.bindings[x]||delete g.bindings[x]}),n.document.pages[h]=g;let T=B.getRelatedBindings(n,Object.keys(f),h),y=new Set;T.forEach(x=>{if(!g.bindings[x.id])return;let P=g.shapes[x.toId],k=g.shapes[x.fromId];if(!(P&&k)){delete n.document.pages[h].bindings[x.id];return}if(y.has(k))return;let D=B.updateArrowBindings(g,k);if(y.add(k),D){let C=S(S({},k),D);g.shapes[k.id]=C}}),b.forEach(x=>{if(!x)throw Error("no group!");let P=x.children.filter(D=>g.shapes[D]!==void 0),k=ut.Utils.getCommonBounds(P.map(D=>g.shapes[D]).filter(Boolean).map(D=>B.getRotatedBounds(D)));g.shapes[x.id]=I(S({},x),{point:[k.minX,k.minY],size:[k.width,k.height],children:P})})}let v=S({},n.document.pageStates[h]);v.brush||delete v.brush,v.hoveredId&&!g.shapes[v.hoveredId]&&delete v.hoveredId,v.bindingId&&!g.bindings[v.bindingId]&&(B.warn(`Could not find the binding of ${h}`),delete v.bindingId),v.editingId&&!g.shapes[v.editingId]&&(B.warn("Could not find the editing shape!"),delete v.editingId),n.document.pageStates[h]=v}),Object.keys((l=n.document.assets)!=null?l:{}).forEach(h=>{var g,m;(g=n.document.assets)!=null&&g[h]||(m=n.document.assets)==null||delete m[h]});let r=n.appState.currentPageId,s=n.document.pageStates[r];if(n.room&&n.room!==t.room){let h=I(S({},n.room),{users:S({},n.room.users)});t.room&&Object.values(t.room.users).filter(Boolean).forEach(g=>{h.users[g.id]===void 0&&delete h.users[g.id]}),n.room=h}if(n.room){let h=n.room.users[n.room.userId];n.room.users[n.room.userId]=I(S({},h),{id:(a=h==null?void 0:h.id)!=null?a:n.room.userId,color:(c=h==null?void 0:h.color)!=null?c:Ji[0],activeShapes:(p=h==null?void 0:h.activeShapes)!=null?p:[],status:(u=h==null?void 0:h.status)!=null?u:"connected",point:this.currentPoint,selectedIds:s.selectedIds})}return this.readOnly&&(n.document.pages=t.document.pages),n});d(this,"broadcastPatch",(e,t)=>{var p,u,h,g,m,f,v,b,T;let n={},r={},s={},l=(h=(u=(p=e==null?void 0:e.document)==null?void 0:p.pages)==null?void 0:u[this.currentPageId])==null?void 0:h.shapes,a=(f=(m=(g=e==null?void 0:e.document)==null?void 0:g.pages)==null?void 0:m[this.currentPageId])==null?void 0:f.bindings,c=(v=e==null?void 0:e.document)==null?void 0:v.assets;l&&Object.keys(l).forEach(y=>{n[y]=this.getShape(y,this.currentPageId)}),a&&Object.keys(a).forEach(y=>{r[y]=this.getBinding(y,this.currentPageId)}),c&&Object.keys(c).forEach(y=>{s[y]=this.document.assets[y]}),(T=(b=this.callbacks).onChangePage)==null||T.call(b,this,n,r,s,t)});d(this,"onPatch",(e,t,n)=>{var r,s,l,a,c,p;(this.callbacks.onChangePage&&((s=(r=t==null?void 0:t.document)==null?void 0:r.pages)==null?void 0:s[this.currentPageId])||((l=t==null?void 0:t.document)==null?void 0:l.assets))&&(((a=t==null?void 0:t.document)==null?void 0:a.assets)||this.session&&this.session.type!=="brush"&&this.session.type!=="erase"&&this.session.type!=="draw")&&this.broadcastPatch(t,!1),(p=(c=this.callbacks).onPatch)==null||p.call(c,this,t,n)});d(this,"onCommand",(e,t,n)=>{var r,s;this.clearSelectHistory(),this.isDirty=!0,(s=(r=this.callbacks).onCommand)==null||s.call(r,this,t,n)});d(this,"onReplace",()=>{this.clearSelectHistory(),this.isDirty=!1});d(this,"onUndo",()=>{var e,t;this.rotationInfo.selectedIds=[...this.selectedIds],(t=(e=this.callbacks).onUndo)==null||t.call(e,this)});d(this,"onRedo",()=>{var e,t;this.rotationInfo.selectedIds=[...this.selectedIds],(t=(e=this.callbacks).onRedo)==null||t.call(e,this)});d(this,"onPersist",(e,t)=>{var n,r;(r=(n=this.callbacks).onPersist)==null||r.call(n,this),this.broadcastPatch(t,!0)});d(this,"prevSelectedIds",this.selectedIds);d(this,"onStateDidChange",(e,t)=>{var n,r,s,l;(r=(n=this.callbacks).onChange)==null||r.call(n,this,t),this.room&&this.selectedIds!==this.prevSelectedIds&&((l=(s=this.callbacks).onChangePresence)==null||l.call(s,this,I(S({},this.room.users[this.room.userId]),{selectedIds:this.selectedIds,session:!!this.session})),this.prevSelectedIds=this.selectedIds)});d(this,"preventPaste",()=>{if(this.isPastePrevented)return;let e=n=>n.stopImmediatePropagation(),t=()=>{setTimeout(()=>{document.removeEventListener("paste",e,{capture:!0}),this.isPastePrevented=!1},50)};document.addEventListener("paste",e,{capture:!0}),window.addEventListener("pointerup",t,{once:!0}),this.isPastePrevented=!0});d(this,"justSent",!1);d(this,"getReservedContent",(e,t=this.currentPageId)=>{let{bindings:n}=this.document.pages[t],r={},s={},l=Object.values(n),a=new Map(l.map(m=>[m.toId,m])),c=new Map(l.map(m=>[m.fromId,m])),p=[a,c],u=[];this.session&&e.forEach(m=>u.push(m)),this.pageState.editingId&&u.push(this.pageState.editingId);let h=new Set(u),g=new Set;for(;u.length>0;){let m=u.pop();if(!m)break;if(g.has(m))continue;g.add(m);let f=this.getShape(m);r[m]=f,f.parentId!==t&&u.push(f.parentId),f.children&&u.push(...f.children),p.map(v=>v.get(f.id)).filter(Boolean).forEach(v=>{s[v.id]=v,u.push(v.toId,v.fromId)})}return{reservedShapes:r,reservedBindings:s,strongReservedShapeIds:h}});d(this,"replacePageContent",(e,t,n,r=this.currentPageId)=>{if(this.justSent)return this.justSent=!1,this;let s=this.document.pages[this.currentPageId];return Object.values(e).forEach(l=>{l.parentId!==r&&!(s.shapes[l.parentId]||e[l.parentId])&&(console.warn("Added a shape without a parent on the page"),l.parentId=r)}),this.useStore.setState(l=>{let{hoveredId:a,editingId:c,bindingId:p,selectedIds:u}=l.document.pageStates[r],h=[...u],g=c&&l.document.pages[this.currentPageId].shapes[c];g&&h.push(g.id);let{reservedShapes:m,reservedBindings:f,strongReservedShapeIds:v}=this.getReservedContent(h,this.currentPageId);Object.values(m).filter(C=>!("text"in C)).forEach(C=>{let E=e[C.id];if(!!E){if(!(C.type==="arrow"||v.has(C.id))){e[C.id]=E;return}"decorations"in E&&"decorations"in C&&(e[C.id]=I(S({},C),{decorations:E.decorations})),C.style=E.style}});let b=S(S({},e),m);g&&(b[g.id]=g);let T=S(S({},t),f),y=S({},n),x=I(S({},l),{document:I(S({},l.document),{pages:{[r]:I(S({},l.document.pages[r]),{shapes:b,bindings:T})},assets:y,pageStates:I(S({},l.document.pageStates),{[r]:I(S({},l.document.pageStates[r]),{selectedIds:u.filter(C=>b[C]!==void 0),hoveredId:a?b[a]===void 0?void 0:a:void 0,editingId:c,bindingId:p?T[p]===void 0?void 0:p:void 0})})})}),P=x.document.pages[r],k=B.getRelatedBindings(x,Object.keys(b),r),D=new Set;return k.forEach(C=>{if(!P.bindings[C.id])return;let E=P.shapes[C.fromId];if(D.has(E))return;let M=B.updateArrowBindings(P,E);if(D.add(E),M){let L=S(S({},E),M);P.shapes[E.id]=L}}),Object.values(b).forEach(C=>{if(C.type!=="group")return;let E=C.children.filter(L=>P.shapes[L]!==void 0),M=ut.Utils.getCommonBounds(E.map(L=>P.shapes[L]).filter(Boolean).map(L=>B.getRotatedBounds(L)));P.shapes[C.id]=I(S({},C),{point:[M.minX,M.minY],size:[M.width,M.height],children:E})}),this.state.document=x.document,x},!0),this});d(this,"updateBounds",e=>{this.rendererBounds=e;let{point:t,zoom:n}=this.camera;this.updateViewport(t,n),!this.readOnly&&this.session&&this.session.update()});d(this,"updateViewport",(e,t)=>{let{width:n,height:r}=this.rendererBounds,[s,l]=ie.Vec.sub(ie.Vec.div([0,0],t),e),[a,c]=ie.Vec.sub(ie.Vec.div([n,r],t),e);this.viewport={minX:s,minY:l,maxX:a,maxY:c,width:a-s,height:c-l}});d(this,"setEditingId",(e,t=!1)=>{if(!this.readOnly){if(e)this.startSession("edit",e,t);else{if(!this.pageState.editingId)return;this.completeSession()}this.editingStartTime=performance.now(),this.patchState({document:{pageStates:{[this.currentPageId]:{editingId:e}}}},"set_editing_id")}});d(this,"setHoveredId",e=>{this.patchState({document:{pageStates:{[this.currentPageId]:{hoveredId:e}}}},"set_hovered_id")});d(this,"setNodeEditingId",e=>{this.patchState({appState:{nodeEditingId:e}},"set_node_editing_id")});d(this,"setSetting",(e,t)=>{if(this.session)return this;let n={settings:{[e]:typeof t=="function"?t(this.settings[e]):t}};return this.patchState(n,`settings:${e}`),this.persist(n),this});d(this,"toggleFocusMode",()=>{if(this.session)return this;let e={settings:{isFocusMode:!this.settings.isFocusMode}};return this.patchState(e,"settings:toggled_focus_mode"),this.persist(e),this});d(this,"togglePenMode",()=>{if(this.session)return this;let e={settings:{isPenMode:!this.settings.isPenMode}};return this.patchState(e,"settings:toggled_pen_mode"),this.persist(e),this});d(this,"toggleDarkMode",()=>{if(this.session)return this;let e={settings:{isDarkMode:!this.settings.isDarkMode}};return this.patchState(e,"settings:toggled_dark_mode"),this.persist(e),this});d(this,"toggleZoomSnap",()=>{if(this.session)return this;let e={settings:{isZoomSnap:!this.settings.isZoomSnap}};return this.patchState(e,"settings:toggled_zoom_snap"),this.persist(e),this});d(this,"toggleDebugMode",()=>{if(this.session)return this;let e={settings:{isDebugMode:!this.settings.isDebugMode}};return this.patchState(e,"settings:toggled_debug"),this.persist(e),this});d(this,"setMenuOpen",e=>{let t={appState:{isMenuOpen:e}};return this.patchState(t,"ui:toggled_menu_opened"),this.persist(t),this});d(this,"setIsLoading",e=>{let t={appState:{isLoading:e}};return this.patchState(t,"ui:toggled_is_loading"),this.persist(t),this});d(this,"setDisableAssets",e=>(this.patchState({appState:{disableAssets:e}},"ui:toggled_disable_images"),this));d(this,"toggleGrid",()=>{if(this.session)return this;let e={settings:{showGrid:!this.settings.showGrid}};return this.patchState(e,"settings:toggled_grid"),this.persist(e),this});d(this,"toggleCanvasMode",()=>{if(this.session)return this;let t={settings:{canvasMode:this.settings.canvasMode==="freehand"?"straight":"freehand"}};return this.patchState(t,"settings:toggled_canvas_mode"),this.persist(t),this});d(this,"selectTool",e=>{if(this.readOnly||this.session)return this;this.isPointing=!1;let t=this.tools[e];return t===this.currentTool?(this.patchState({appState:{isToolLocked:!1}}),this):(this.currentTool.onExit(),t.previous=this.currentTool.type,this.currentTool=t,this.currentTool.onEnter(),this.patchState({appState:{activeTool:e,isToolLocked:!1}},`selected_tool:${e}`))});d(this,"toggleToolLock",()=>this.session?this:this.patchState({appState:{isToolLocked:!this.appState.isToolLocked}},"toggled_tool_lock"));d(this,"resetDocument",()=>{if(this.session)return this;this.session=void 0,this.currentTool=this.tools.select;let e=et.defaultDocument;return e.pages.page.name="Page 1",this.resetHistory().clearSelectHistory().loadDocument(et.defaultDocument).persist({}),this});d(this,"updateUsers",(e,t=!1)=>{this.patchState({room:{users:Object.fromEntries(e.map(n=>[n.id,n]))}},t?"room:self:update":"room:user:update")});d(this,"removeUser",e=>{this.patchState({room:{users:{[e]:void 0}}})});d(this,"mergeDocument",e=>{if(this.document.id!==e.id)return this.replaceState(I(S({},Gn(I(S({},this.state),{document:e}),et.version)),{appState:I(S({},this.appState),{currentPageId:Object.keys(e.pages)[0]})})),this;let t=S({},this.document.pageStates),n=I(S({},this.appState),{currentPageId:e.pages[this.currentPageId]?this.currentPageId:Object.keys(e.pages)[0],pages:Object.values(e.pages).map((s,l)=>({id:s.id,name:s.name,childIndex:s.childIndex||l}))});this.resetHistory(),Object.keys(this.document.pages).forEach(s=>{e.pages[s]||(s===this.appState.currentPageId&&(this.cancelSession(),this.selectNone()),t[s]=void 0)}),this.session&&this.selectedIds.filter(s=>!e.pages[this.currentPageId].shapes[s]).forEach(s=>e.pages[this.currentPageId].shapes[s]=this.page.shapes[s]),Object.entries(t).forEach(([s,l])=>{l.selectedIds=l.selectedIds.filter(a=>!!e.pages[s].shapes[a])});let{editingId:r}=this.pageState;return r&&(e.pages[this.currentPageId].shapes[r]=this.page.shapes[r],t[this.currentPageId].selectedIds=[r]),this.replaceState(I(S({},Gn(I(S({},this.state),{document:I(S({},e),{pageStates:t})}),et.version)),{appState:n}),"merge")});d(this,"updateDocument",(e,t="updated_document")=>{let n=this.state,r=I(S({},n),{document:I(S({},n.document),{assets:e.assets})});e.pages[this.currentPageId]||(r.appState=I(S({},n.appState),{currentPageId:Object.keys(e.pages)[0]}));let s=1;for(let l of Object.values(e.pages))l!==n.document.pages[l.id]&&(r.document.pages[l.id]=l,l.name||(r.document.pages[l.id].name=`Page ${s+1}`,s++));for(let l of Object.values(e.pageStates))if(l!==n.document.pageStates[l.id]){r.document.pageStates[l.id]=l;let a=e.pages[l.id],c=["bindingId","editingId","hoveredId","pointedId"];for(let p of c)a.shapes[p]||(l[p]=void 0);l.selectedIds=l.selectedIds.filter(p=>!!e.pages[a.id].shapes[p])}return this.replaceState(Gn(r,r.document.version||0),`${t}:${e.id}`)});d(this,"loadRoom",e=>(this.patchState({room:{id:e,userId:Wl,users:{[Wl]:{id:Wl,color:Ji[Math.floor(Math.random()*Ji.length)],point:[100,100],selectedIds:[],activeShapes:[],status:"connected"}}}}),this));d(this,"loadDocument",e=>{this.setIsLoading(!0),this.selectNone(),this.resetHistory(),this.clearSelectHistory(),this.session=void 0;let t=I(S({},et.defaultState),{settings:S({},this.state.settings),document:e,appState:I(S(S({},et.defaultState.appState),this.state.appState),{currentPageId:Object.keys(e.pages)[0],disableAssets:this.disableAssets})});this.replaceState(Gn(t,et.version),"loaded_document");let{point:n,zoom:r}=this.camera;return this.updateViewport(n,r),this.setIsLoading(!1),this});d(this,"loadPageFromURL",(e,t)=>{let n=e.id,r=I(S({},this.state.document),{pageStates:I(S({},this.state.document.pageStates),{[n]:t}),pages:I(S({},this.document.pages),{[n]:e})});this.loadDocument(r),this.persist({})});d(this,"newProject",()=>{!this.isLocal||(this.fileSystemHandle=null,this.resetDocument())});d(this,"saveProject",()=>F(this,null,function*(){if(this.readOnly)return;let e=yield ia(Gn(this.state,et.version).document,this.fileSystemHandle);return this.fileSystemHandle=e,this.persist({}),this.isDirty=!1,this}));d(this,"saveProjectAs",(e,t)=>F(this,null,function*(){try{let n=yield ia(this.document,null,e,t);this.fileSystemHandle=n,this.persist({}),this.isDirty=!1}catch(n){console.error(n.message)}return this}));d(this,"openProject",()=>F(this,null,function*(){if(!!this.isLocal)try{let e=yield Ml();if(!e)throw Error();let{fileHandle:t,document:n}=e;this.loadDocument(n),this.fileSystemHandle=t,this.zoomToFit(),this.persist({})}catch(e){console.error(e)}finally{this.persist({})}}));d(this,"openAsset",()=>F(this,null,function*(){if(!this.disableAssets)try{let e=yield Ll();if(Array.isArray(e))this.addMediaFromFiles(e,this.centerPoint);else{if(!e)return;this.addMediaFromFiles([e])}}catch(e){console.error(e)}finally{this.persist({})}}));d(this,"signOut",()=>{});d(this,"getAppState",()=>this.appState);d(this,"getPage",(e=this.currentPageId)=>B.getPage(this.state,e||this.currentPageId));d(this,"getShapes",(e=this.currentPageId)=>B.getShapes(this.state,e||this.currentPageId));d(this,"getBindings",(e=this.currentPageId)=>B.getBindings(this.state,e||this.currentPageId));d(this,"getShape",(e,t=this.currentPageId)=>B.getShape(this.state,e,t));d(this,"getShapeBounds",(e,t=this.currentPageId)=>B.getBounds(this.getShape(e,t)));d(this,"getBinding",(e,t=this.currentPageId)=>B.getBinding(this.state,e,t));d(this,"getPageState",(e=this.currentPageId)=>B.getPageState(this.state,e||this.currentPageId));d(this,"getPagePoint",(e,t=this.currentPageId)=>{let{camera:n}=this.getPageState(t);return ie.Vec.sub(ie.Vec.div(e,n.zoom),n.point)});d(this,"createPage",(e,t)=>{if(this.readOnly)return this;let{width:n,height:r}=this.rendererBounds;return this.setState($u(this,[-n/2,-r/2],e,t))});d(this,"changePage",e=>this.setState(Hu(this,e)));d(this,"movePage",(e,t)=>this.readOnly?this:this.setState(Zu(this,e,t)));d(this,"renamePage",(e,t)=>this.readOnly?this:this.setState(qu(this,e,t)));d(this,"duplicatePage",e=>this.readOnly?this:this.setState(Nu(this,e)));d(this,"deletePage",e=>this.readOnly?this:Object.values(this.document.pages).length<=1?this:this.setState(Gu(this,e||this.currentPageId)));d(this,"cut",(e=this.selectedIds,t)=>(t==null||t.preventDefault(),this.copy(e,t),this.readOnly||this.delete(e),this));d(this,"copy",(e=this.selectedIds,t)=>{var s;t==null||t.preventDefault(),this.clipboard=this.getContent(e);let r=`<telva>${JSON.stringify(S({type:"telva/clipboard",shapes:[],assets:[],bindings:[]},this.clipboard))}</telva>`;return Eu(r),t&&((s=t.clipboardData)==null||s.setData("text/html",r)),navigator.clipboard&&window.ClipboardItem&&navigator.clipboard.write([new ClipboardItem({"text/html":new Blob([r],{type:"text/html"})})]),this});d(this,"paste",(e,t)=>F(this,null,function*(){var p,u;if(this.readOnly)return;let n=[],r=[],s,l=h=>F(this,null,function*(){let g=document.createElement("div");g.innerHTML=h;let m=g.firstChild;m.style.setProperty("background-color","transparent");let f=yield B.getImageForSvg(m,"svg",{scale:1,quality:1});if(f){let v=new File([f],"image.svg");n.push(v)}else a(h)}),a=h=>{let g=this.getPagePoint(e!=null?e:this.centerPoint,this.currentPageId),m=h.includes(`
13
+ `);r.push(B.getShapeUtil("text").getShape({id:ut.Utils.uniqueId(),type:"text",parentId:this.appState.currentPageId,text:B.normalizeText(h.trim()),point:g,style:I(S({},this.appState.currentStyle),{textAlign:m?"start":this.appState.currentStyle.textAlign})}))},c=h=>{var g;try{let m=(g=h.match(/<telva>(.*)<\/telva>/))==null?void 0:g[1];if(!m)return;let f=JSON.parse(m);if(f.type==="telva/clipboard"){s=f;return}else throw Error("Not telva data!")}catch(m){a(h)}};if(t!==void 0){let h=Array.from((u=(p=t.clipboardData)==null?void 0:p.items)!=null?u:[]);yield Promise.all(h.map(g=>F(this,null,function*(){var v;let{type:m,kind:f}=g;switch(f){case"string":{let b=yield new Promise(T=>g.getAsString(T));switch(m){case"text/html":{if((v=b.match(/<telva>(.*)<\/telva>/))!=null&&v[1]){c(b);return}break}case"text/plain":{b.startsWith("<svg")?yield l(b):a(b);break}}break}case"file":{let b=g.getAsFile();b&&n.push(b);break}}})))}if(s)return this.insertContent(s,{point:e,select:!0}),this;if(n.length)return this.addMediaFromFiles(n,e),this;if(r.length){let h=this.getPagePoint(e!=null?e:this.centerPoint,this.currentPageId),g=ie.Vec.add(h,[0,0]);return r.forEach((m,f)=>{let v=B.getBounds(m);f===0&&(g[0]-=v.width/2,g[1]-=v.height/2),m.point=[...g],g[0]+=v.width}),this.createShapes(...r),this}return this.clipboard?this.insertContent(this.clipboard):Du().then(h=>{h&&c(h)}),this}));d(this,"getSvg",(...n)=>F(this,[...n],function*(e=this.selectedIds.length?this.selectedIds:Object.keys(this.page.shapes),t={}){var m;if(e.length===0)return;let r=document.createElementNS("http://www.w3.org/2000/svg","svg"),s=document.createElementNS("http://www.w3.org/2000/svg","defs"),l=document.createElementNS("http://www.w3.org/2000/svg","style");if(typeof window!="undefined"&&window.focus(),t.includeFonts)try{let{fonts:f}=yield fetch(et.assetSrc,{mode:"no-cors"}).then(v=>v.json());l.textContent=`
14
14
  @font-face {
15
15
  font-family: 'Caveat Brush';
16
16
  src: url(data:application/x-font-woff;charset=utf-8;base64,${f.caveat}) format('woff');
@@ -35,5 +35,5 @@
35
35
  font-weight: 500;
36
36
  font-style: normal;
37
37
  }
38
- `}catch(f){B.warn("Could not find telva-assets.json file.")}else l.textContent="@import url('https://fonts.googleapis.com/css2?family=Caveat+Brush&family=Source+Code+Pro&family=Source+Sans+Pro&family=Crimson+Pro&display=block');";s.append(l),r.append(s);let a=e.map(f=>this.getShape(f,this.currentPageId)).sort((f,v)=>f.childIndex-v.childIndex),c=ut.Utils.getCommonBounds(a.map(B.getRotatedBounds)),p=f=>F(this,null,function*(){let v=B.getShapeUtil(f),b=v.getBounds(f),T=yield v.getSvgElement(f,this.settings.isDarkMode);if(!!T)return f.type==="image"?T.setAttribute("href",this.document.assets[f.assetId].src):f.type==="video"&&T.setAttribute("href",this.serializeVideo(f.id)),T.setAttribute("transform",`translate(${(16+f.point[0]-c.minX).toFixed(2)}, ${(16+f.point[1]-c.minY).toFixed(2)}) rotate(${((f.rotation||0)*180/Math.PI).toFixed(2)}, ${(b.width/2).toFixed(2)}, ${(b.height/2).toFixed(2)})`),T});for(let f of a){if((m=f.children)!=null&&m.length){let b=document.createElementNS("http://www.w3.org/2000/svg","g");for(let T of f.children){let y=this.getShape(T,this.currentPageId),x=yield p(y);x&&b.append(x)}r.append(b);continue}let v=yield p(f);v&&r.append(v)}r.setAttribute("viewBox",[0,0,c.width+16*2,c.height+16*2].join(" ")),r.setAttribute("width",(c.width+16*2).toString()),r.setAttribute("height",(c.height+16*2).toString());let u=this.settings.exportBackground,h="#212529",g="rgb(248, 249, 250)";switch(u){case"auto":{r.style.setProperty("background-color",this.settings.isDarkMode?h:g);break}case"dark":{r.style.setProperty("background-color",h);break}case"light":{r.style.setProperty("background-color",g);break}case"transparent":default:{r.style.setProperty("background-color","transparent");break}}return r.querySelectorAll(".tv-fill-hitarea, .tv-stroke-hitarea, .tv-binding-indicator").forEach(f=>f.remove()),r}));d(this,"copySvg",(...t)=>F(this,[...t],function*(e=this.selectedIds.length?this.selectedIds:Object.keys(this.page.shapes)){if(e.length===0)return;let n=yield this.getSvg(e);if(!n)return;let r=B.getSvgString(n,1);this.clipboard=this.getContent(e);let s=JSON.stringify(S({type:"telva/clipboard",shapes:[],assets:[],bindings:[]},this.clipboard));return navigator.clipboard&&window.ClipboardItem&&navigator.clipboard.write([new ClipboardItem({"text/html":new Blob([s],{type:"text/html"}),"text/plain":new Blob([r],{type:"text/plain"})})]),r}));d(this,"getContent",e=>{let t=this.getPage(this.currentPageId);if(e&&e.length===0||(e||(e=this.selectedIds),e.length===0&&(e=Object.keys(t.shapes)),e.length===0))return;let n=e.map(a=>t.shapes[a]).flatMap(a=>{var c;return[a,...((c=a.children)!=null?c:[]).map(p=>t.shapes[p])]}).map(mt),r=new Set(n.map(a=>a.id));n.forEach(a=>{a.parentId===this.currentPageId&&(a.parentId="currentPageId")});let s=Object.values(t.bindings).filter(a=>{if(r.has(a.fromId)||r.has(a.toId))return!0;if(r.has(a.fromId)){let p=n.find(u=>u.id===a.fromId).handles;p&&Object.values(p).forEach(u=>{u.bindingId===a.id&&(u.bindingId=void 0)})}if(r.has(a.toId)){let p=n.find(u=>u.id===a.toId).handles;p&&Object.values(p).forEach(u=>{u.bindingId===a.id&&(u.bindingId=void 0)})}return!1}).map(mt),l=[...new Set(n.map(a=>{if(!!a.assetId)return this.document.assets[a.assetId]}).filter(Boolean).map(mt))];return{shapes:n,bindings:s,assets:l}});d(this,"copyJson",(e=this.selectedIds)=>{let t=this.getContent(e);return t&&B.copyStringToClipboard(JSON.stringify(t)),this});d(this,"exportJson",(e=this.selectedIds)=>{let t=this.getContent(e);if(t){let n=new Blob([JSON.stringify(t)],{type:"application/json"}),r=URL.createObjectURL(n),s=document.createElement("a");s.href=r,s.download="export.json",s.click()}return this});d(this,"insertContent",(e,t={})=>this.setState(ih(this,e,t),"insert_content"));d(this,"getImage",(...n)=>F(this,[...n],function*(e="png",t={}){let{ids:r=this.selectedIds.length?this.selectedIds:Object.keys(this.page.shapes)}=t,s=yield this.getSvg(r,{includeFonts:e!=="svg"});if(!s)return;if(e==="svg"){let a=B.getSvgString(s,1);return new Blob([a],{type:"image/svg+xml"})}let l=yield B.getImageForSvg(s,e,t);if(!!l)return l}));d(this,"copyImage",(...n)=>F(this,[...n],function*(e="png",t={}){if(e==="svg"){this.copySvg(t.ids);return}if(!(navigator.clipboard&&window.ClipboardItem)){console.warn("Sorry, your browser does not support copying images.");return}let r=yield this.getImage(e,t);!r||navigator.clipboard.write([new ClipboardItem({[r.type]:r})])}));d(this,"exportImage",(...n)=>F(this,[...n],function*(e="png",t={}){var a;let{pageId:r=this.currentPageId}=t,s=yield this.getImage(e,t);if(!s)return;let l=(a=this.document.pages[r].name)!=null?a:"export";if(this.callbacks.onExport)this.callbacks.onExport(this,{name:l,type:e,blob:s});else{let c=URL.createObjectURL(s),p=document.createElement("a");p.href=c,p.download=`${l}.${e}`,p.click()}}));d(this,"convertToImage",()=>F(this,null,function*(){let e=this.selectedIds;if(!e.length)return;let t=[],n=[];for(let r of e){let s=this.getShape(r);if(s.type!=="reactComponent")continue;let l=B.getShapeUtil(s);if(!l.getSvgElement)continue;let a=yield l.getSvgElement(s,this.settings.isDarkMode);if(!a)continue;let c=a.getAttribute("href");if(!c)continue;let p=B.getShapeUtil("image").create({id:ut.Utils.uniqueId(),parentId:s.parentId,childIndex:s.childIndex,point:[...s.point],size:[...s.size],style:S({},s.style),assetId:"asset-"+ut.Utils.uniqueId()});this.patchState({document:{assets:{[`${p.assetId}`]:{id:p.assetId,type:"image",src:c,size:s.size,fileName:"component-snapshot.png"}}}},"add_asset"),t.push(p),n.push(s.id)}t.length>0&&(this.createShapes(...t),this.delete(n),this.select(...t.map(r=>r.id)))}));d(this,"setCamera",(e,t,n)=>(this.updateViewport(e,t),this.patchState({document:{pageStates:{[this.currentPageId]:{camera:{point:e,zoom:t}}}}},n),this));d(this,"resetCamera",()=>this.setCamera(this.centerPoint,1,"reset_camera"));d(this,"pan",e=>{let{camera:t}=this.pageState;return this.setCamera(ie.Vec.toFixed(ie.Vec.sub(t.point,e)),t.zoom,"panned")});d(this,"pinchZoom",(e,t,n)=>{let{camera:r}=this.pageState,s=ie.Vec.sub(r.point,ie.Vec.div(t,r.zoom)),l=n,a=ie.Vec.sub(ie.Vec.div(e,r.zoom),s),c=ie.Vec.sub(ie.Vec.div(e,l),s);return this.setCamera(ie.Vec.toFixed(ie.Vec.add(s,ie.Vec.sub(c,a))),l,"pinch_zoomed")});d(this,"zoomTo",(e,t=this.centerPoint)=>{let{zoom:n,point:r}=this.camera,s=ie.Vec.sub(ie.Vec.div(t,n),r),l=ie.Vec.sub(ie.Vec.div(t,e),r);return this.setCamera(ie.Vec.toFixed(ie.Vec.add(r,ie.Vec.sub(l,s))),e,"zoomed_camera")});d(this,"zoomIn",()=>{let e=Math.round(this.camera.zoom*100/25),t=B.getCameraZoom((e+1)*.25);return this.zoomTo(t)});d(this,"zoomOut",()=>{let e=Math.round(this.camera.zoom*100/25),t=B.getCameraZoom((e-1)*.25);return this.zoomTo(t)});d(this,"zoomToFit",()=>{let{shapes:e,pageState:{camera:t}}=this;if(e.length===0)return this;let{rendererBounds:n}=this,r=ut.Utils.getCommonBounds(e.map(B.getBounds)),s=B.getCameraZoom(Math.min((n.width-128)/r.width,(n.height-128)/r.height));s=t.zoom===s||t.zoom<1?Math.min(1,s):s;let l=(n.width-r.width*s)/2/s,a=(n.height-r.height*s)/2/s;return this.setCamera(ie.Vec.toFixed(ie.Vec.sub([l,a],[r.minX,r.minY])),s,"zoomed_to_fit")});d(this,"zoomToSelection",()=>{if(this.selectedIds.length===0)return this;let{rendererBounds:e}=this,t=B.getSelectedBounds(this.state),n=B.getCameraZoom(Math.min((e.width-128)/t.width,(e.height-128)/t.height));n=this.camera.zoom===n||this.camera.zoom<1?Math.min(1,n):n;let r=(e.width-t.width*n)/2/n,s=(e.height-t.height*n)/2/n;return this.setCamera(ie.Vec.toFixed(ie.Vec.sub([r,s],[t.minX,t.minY])),n,"zoomed_to_selection")});d(this,"zoomToContent",()=>{let e=this.shapes,t=this.pageState;if(e.length===0)return this;let{rendererBounds:n}=this,{zoom:r}=t.camera,s=ut.Utils.getCommonBounds(e.map(B.getBounds)),l=(n.width-s.width*r)/2/r,a=(n.height-s.height*r)/2/r;return this.setCamera(ie.Vec.toFixed(ie.Vec.sub([l,a],[s.minX,s.minY])),this.camera.zoom,"zoomed_to_content")});d(this,"resetZoom",()=>this.zoomTo(1));d(this,"zoomBy",ut.Utils.throttle((e,t)=>{let{zoom:n}=this.camera,r=B.getCameraZoom(n-e*n);return this.zoomTo(r,t)},16));d(this,"clearSelectHistory",()=>(this.selectHistory.pointer=0,this.selectHistory.stack=[this.selectedIds],this));d(this,"addToSelectHistory",e=>(this.selectHistory.pointer<this.selectHistory.stack.length&&(this.selectHistory.stack=this.selectHistory.stack.slice(0,this.selectHistory.pointer+1)),this.selectHistory.pointer++,this.selectHistory.stack.push(e),this));d(this,"setSelectedIds",(e,t=!1)=>{let n=t?[...this.pageState.selectedIds,...e]:[...e];return this.patchState({appState:{activeTool:"select"},document:{pageStates:{[this.currentPageId]:{selectedIds:n}}}},"selected")});d(this,"undoSelect",()=>(this.selectHistory.pointer>0&&(this.selectHistory.pointer--,this.setSelectedIds(this.selectHistory.stack[this.selectHistory.pointer])),this));d(this,"redoSelect",()=>(this.selectHistory.pointer<this.selectHistory.stack.length-1&&(this.selectHistory.pointer++,this.setSelectedIds(this.selectHistory.stack[this.selectHistory.pointer])),this));d(this,"select",(...e)=>(e.forEach(t=>{if(!this.page.shapes[t])throw Error(`That shape does not exist on page ${this.currentPageId}`)}),this.setSelectedIds(e),this.addToSelectHistory(e),this));d(this,"selectAll",(e=this.currentPageId)=>this.session?this:(this.setSelectedIds(Object.values(this.document.pages[e].shapes).filter(t=>t.parentId===e).map(t=>t.id)),this.addToSelectHistory(this.selectedIds),this.selectTool("select"),this));d(this,"selectNone",()=>(this.setSelectedIds([]),this.addToSelectHistory(this.selectedIds),this));d(this,"startSession",(e,...t)=>{var s,l;if(this.readOnly&&e!=="brush")return this;this.session&&(B.warn(`Already in a session! (${this.session.constructor.name})`),this.cancelSession());let n=dh(e);this.session=new n(this,...t);let r=this.session.start();return r&&this.patchState(r,`session:start_${this.session.constructor.name}`),(l=(s=this.callbacks).onSessionStart)==null||l.call(s,this,this.session.constructor.name),this});d(this,"updateSession",()=>{let{session:e}=this;if(!e)return this;let t=e.update();return t?this.patchState(t,`session:${e==null?void 0:e.constructor.name}`):this});d(this,"cancelSession",()=>{var n,r;let{session:e}=this;if(!e)return this;this.session=void 0;let t=e.cancel();return t&&this.patchState(t,`session:cancel:${e.constructor.name}`),this.setEditingId(),(r=(n=this.callbacks).onSessionEnd)==null||r.call(n,this,e.constructor.name),this});d(this,"completeSession",()=>{var n,r,s,l,a,c,p,u,h;let{session:e}=this;if(!e)return this;this.session=void 0;let t=e.complete();if(t===void 0)this.isCreating=!1,this.patchState({appState:{status:"idle"},document:{pageStates:{[this.currentPageId]:{editingId:void 0,bindingId:void 0,hoveredId:void 0}}}},`session:complete:${e.constructor.name}`);else if("after"in t){if(this.isCreating){if(t.before={appState:I(S({},t.before.appState),{status:"idle"}),document:{pages:{[this.currentPageId]:{shapes:Object.fromEntries(this.selectedIds.map(g=>[g,void 0]))}},pageStates:{[this.currentPageId]:{selectedIds:[],editingId:null,bindingId:null,hoveredId:null}}}},this.appState.isToolLocked){let g=((s=(r=(n=t.after)==null?void 0:n.document)==null?void 0:r.pageStates)==null?void 0:s[this.currentPageId])||{};g.selectedIds=[]}this.isCreating=!1}t.after.appState=I(S({},t.after.appState),{status:"idle"}),t.after.document=I(S({},t.after.document),{pageStates:I(S({},(l=t.after.document)==null?void 0:l.pageStates),{[this.currentPageId]:I(S({},(((a=t.after.document)==null?void 0:a.pageStates)||{})[this.currentPageId]),{editingId:null})})}),this.setState(t,`session:complete:${e.constructor.name}`)}else this.patchState(I(S({},t),{appState:I(S({},t.appState),{status:"idle"}),document:I(S({},t.document),{pageStates:{[this.currentPageId]:I(S({},(p=(c=t.document)==null?void 0:c.pageStates)==null?void 0:p[this.currentPageId]),{editingId:null})}})}),`session:complete:${e.constructor.name}`);return(h=(u=this.callbacks).onSessionEnd)==null||h.call(u,this,e.constructor.name),this});d(this,"createShapes",(...e)=>e.length===0?this:this.create(e.map(t=>B.getShapeUtil(t.type).create(S({parentId:this.currentPageId},t)))));d(this,"updateShapes",(...e)=>{let t=this.document.pages[this.currentPageId].shapes,n=e.filter(r=>t[r.id]);return n.length===0?this:this.setState(El(this,n,this.currentPageId),"updated_shapes")});d(this,"create",(e=[],t=[])=>e.length===0?this:this.setState(xl(this,e,t)));d(this,"patchCreate",(e=[],t=[])=>e.length===0?this:this.patchState(xl(this,e,t).after));d(this,"delete",(e=this.selectedIds)=>{var n,r;if(e.length===0)return this;if(this.session)return this;let t=kl(this,e);if(this.callbacks.onAssetDelete&&((n=t.before.document)==null?void 0:n.assets)&&((r=t.after.document)==null?void 0:r.assets)){let s=Object.keys(t.before.document.assets).filter(c=>!!t.before.document.assets[c]),l=Object.keys(t.after.document.assets).filter(c=>!!t.after.document.assets[c]);s.filter(c=>!l.includes(c)).forEach(c=>this.callbacks.onAssetDelete(this,c))}return this.setState(t)});d(this,"deleteAll",()=>(this.selectAll(),this.delete(),this));d(this,"style",(e,t=this.selectedIds)=>this.setState(eh(this,t,e)));d(this,"align",(e,t=this.selectedIds)=>t.length<2?this:this.setState(Vu(this,t,e)));d(this,"distribute",(e,t=this.selectedIds)=>t.length<3?this:this.setState(Wu(this,t,e)));d(this,"stretch",(e,t=this.selectedIds)=>t.length<2?this:this.setState(Qu(this,t,e)));d(this,"flipHorizontal",(e=this.selectedIds)=>e.length===0?this:this.setState(wl(this,e,"horizontal")));d(this,"flipVertical",(e=this.selectedIds)=>e.length===0?this:this.setState(wl(this,e,"vertical")));d(this,"moveToPage",(e,t=this.currentPageId,n=this.selectedIds)=>{if(n.length===0)return this;let{rendererBounds:r}=this;return this.setState(Xu(this,n,r,t,e)),this});d(this,"moveToBack",(e=this.selectedIds)=>e.length===0?this:this.setState(Pi(this,e,"toBack")));d(this,"moveBackward",(e=this.selectedIds)=>e.length===0?this:this.setState(Pi(this,e,"backward")));d(this,"moveForward",(e=this.selectedIds)=>e.length===0?this:this.setState(Pi(this,e,"forward")));d(this,"moveToFront",(e=this.selectedIds)=>e.length===0?this:this.setState(Pi(this,e,"toFront")));d(this,"nudge",(e,t=!1,n=this.selectedIds)=>{if(n.length===0)return this;let r=t?this.settings.showGrid?this.currentGrid*4:10:this.settings.showGrid?this.currentGrid:1;return this.setState(nh(this,n,ie.Vec.mul(e,r)))});d(this,"duplicate",(e=this.selectedIds,t)=>this.readOnly?this:e.length===0?this:this.setState(Uu(this,e,t)));d(this,"resetBounds",(e=this.selectedIds)=>{let t=Pl(this,e,this.currentPageId);return this.setState(Pl(this,e,this.currentPageId),t.id)});d(this,"toggleHidden",(e=this.selectedIds)=>e.length===0?this:this.setState(na(this,e,"isHidden")));d(this,"toggleLocked",(e=this.selectedIds)=>e.length===0?this:this.setState(na(this,e,"isLocked")));d(this,"toggleAspectRatioLocked",(e=this.selectedIds)=>e.length===0?this:this.setState(na(this,e,"isAspectRatioLocked")));d(this,"toggleDecoration",(e,t=this.selectedIds)=>t.length===0||!(e==="start"||e==="end")?this:this.setState(th(this,t,e)));d(this,"setShapeProps",(e,t=this.selectedIds)=>this.setState(rh(this,t,e)));d(this,"rotate",(e=Math.PI*-.5,t=this.selectedIds)=>{if(t.length===0)return this;let n=Ju(this,t,e);return n?this.setState(n):this});d(this,"group",(e=this.selectedIds,t=ut.Utils.uniqueId(),n=this.currentPageId)=>{if(this.readOnly)return this;if(e.length===1&&this.getShape(e[0],n).type==="group")return this.ungroup(e,n);if(e.length<2)return this;let r=_u(this,e,t,n);return r?this.setState(r):this});d(this,"ungroup",(e=this.selectedIds,t=this.currentPageId)=>{if(this.readOnly)return this;let n=e.map(s=>this.getShape(s,t)).filter(s=>s.type==="group");if(n.length===0)return this;let r=oh(this,e,n,t);return r?this.setState(r):this});d(this,"cancel",()=>{var e,t;return(t=(e=this.currentTool).onCancel)==null||t.call(e),this});d(this,"addMediaFromFiles",(n,...r)=>F(this,[n,...r],function*(e,t=this.centerPoint){this.setIsLoading(!0);let s=[],l=this.getPagePoint(t);for(let a of e){let c=ut.Utils.uniqueId(),p=a.name.match(/\.[0-9a-z]+$/i);if(!p)throw Error("No extension");let u=Qi.includes(p[0].toLowerCase()),h=es.includes(p[0].toLowerCase());if(!(u||h))throw Error("Wrong extension");let g=u?"image":"video",m=u?"image":"video",f;try{if(this.callbacks.onAssetCreate){let v=yield this.callbacks.onAssetCreate(this,a,c);if(!v)throw Error("Asset creation callback returned false");f=v}else f=yield Al(a);if(typeof f=="string"){let v=[0,0];if(u){if(p[0]==".svg"){let y,x=yield Vl(a),P=this.getViewboxFromSVG(x);P&&(y=P.split(" "),v[0]=parseFloat(y[2]),v[1]=parseFloat(y[3]))}ie.Vec.isEqual(v,[0,0])&&(v=yield Hl(f))}else v=yield zl(f);let b=Object.values(this.document.assets).find(y=>y.type===m&&y.src===f),T;if(b)T=b.id;else{T=c;let y={id:T,type:m,name:a.name,src:f,size:v};this.patchState({document:{assets:{[T]:y}}})}s.push(this.getImageOrVideoShapeAtPoint(c,g,t,v,T))}}catch(v){console.warn(v)}}if(s.length){let a=ie.Vec.add(l,[0,0]);s.forEach((p,u)=>{let h=B.getBounds(p);u===0&&(a[0]-=h.width/2,a[1]-=h.height/2),p.point=[...a],a[0]+=h.width});let c=ut.Utils.getCommonBounds(s.map(B.getBounds));this.createShapes(...s),ut.Utils.boundsContain(this.viewport,c)||(this.zoomToSelection(),this.zoom>1&&this.resetZoom())}return this.setIsLoading(!1),this}));d(this,"getViewboxFromSVG",e=>{let t=/.*?viewBox=["'](-?[\d.]+[, ]+-?[\d.]+[, ][\d.]+[, ][\d.]+)["']/;if(typeof e=="string"){let n=e.match(t);return n&&n.length>=2?n[1]:null}return this.setIsLoading(!1),null});d(this,"onKeyDown",(e,t,n)=>{var r,s;switch(n.key){case"/":{if(this.status==="idle"&&!this.pageState.editingId){let{shiftKey:l,metaKey:a,altKey:c,ctrlKey:p,spaceKey:u}=this;this.onPointerDown({target:"canvas",pointerId:0,origin:t.point,point:t.point,delta:[0,0],pressure:.5,shiftKey:l,ctrlKey:p,metaKey:a,altKey:c,spaceKey:u},{shiftKey:l,altKey:c,ctrlKey:p,pointerId:0,clientX:t.point[0],clientY:t.point[1]})}break}case"Escape":{this.cancel();break}case"Meta":{this.metaKey=!0;break}case"Alt":{this.altKey=!0;break}case"Control":{this.ctrlKey=!0;break}case" ":{this.isForcePanning=!0,this.spaceKey=!0;break}}return(s=(r=this.currentTool).onKeyDown)==null||s.call(r,e,t,n),this});d(this,"onKeyUp",(e,t,n)=>{var r,s;if(!!t){switch(n.key){case"/":{let{currentPoint:l,shiftKey:a,metaKey:c,altKey:p,ctrlKey:u,spaceKey:h}=this;this.onPointerUp({target:"canvas",pointerId:0,origin:l,point:l,delta:[0,0],pressure:.5,shiftKey:a,ctrlKey:u,metaKey:c,altKey:p,spaceKey:h},{shiftKey:a,altKey:p,ctrlKey:u,pointerId:0,clientX:l[0],clientY:l[1]});break}case"Meta":{this.metaKey=!1;break}case"Alt":{this.altKey=!1;break}case"Control":{this.ctrlKey=!1;break}case" ":{this.isForcePanning=!1,this.spaceKey=!1;break}}(s=(r=this.currentTool).onKeyUp)==null||s.call(r,e,t,n)}});d(this,"refreshBoundingBoxes",()=>{let e=this.shapes.map(n=>[n.id,S({point:[...n.point]},"label"in n&&{label:""})]),t=this.shapes.map(n=>[n.id,S({point:[...n.point]},"label"in n&&{label:n.label})]);xc(),this.patchState({document:{pages:{[this.currentPageId]:{shapes:Object.fromEntries(e)}}}}),this.patchState({document:{pages:{[this.currentPageId]:{shapes:Object.fromEntries(t)}}}})});d(this,"onDragOver",e=>{e.preventDefault()});d(this,"onDrop",e=>F(this,null,function*(){var t;return e.preventDefault(),this.disableAssets?this:((t=e.dataTransfer.files)!=null&&t.length&&this.addMediaFromFiles(Object.values(e.dataTransfer.files),[e.clientX,e.clientY]),this)}));d(this,"onPinchStart",(e,t)=>{var n,r;(r=(n=this.currentTool).onPinchStart)==null||r.call(n,e,t)});d(this,"onPinchEnd",(e,t)=>{var n,r;return(r=(n=this.currentTool).onPinchEnd)==null?void 0:r.call(n,e,t)});d(this,"onPinch",(e,t)=>{var n,r;return(r=(n=this.currentTool).onPinch)==null?void 0:r.call(n,e,t)});d(this,"onPan",(e,t)=>{if(this.appState.status==="pinching")return;let n=ie.Vec.div(e.delta,this.camera.zoom),r=this.camera.point,s=ie.Vec.sub(r,n);ie.Vec.isEqual(s,r)||(this.pan(n),this.isForcePanning||this.onPointerMove(e,t),Tc&&this.isForcePanning&&this.preventPaste())});d(this,"onZoom",(e,t)=>{if(this.state.appState.status!=="idle")return;let n=e.delta[2]/50;this.zoomBy(n,e.point),this.onPointerMove(e,t)});d(this,"updateInputs",e=>{this.currentPoint=this.getPagePoint(e.point).concat(e.pressure),this.shiftKey=e.shiftKey,this.altKey=e.altKey,this.ctrlKey=e.ctrlKey,this.metaKey=e.metaKey});d(this,"onPointerMove",(e,t)=>{var n,r,s,l,a;if(this.previousPoint=this.currentPoint,this.updateInputs(e,t),this.isForcePanning&&this.isPointing){(n=this.onPan)==null||n.call(this,I(S({},e),{delta:ie.Vec.neg(e.delta)}),t);return}if((s=(r=this.currentTool).onPointerMove)==null||s.call(r,e,t),this.state.room){let{users:c,userId:p}=this.state.room;(a=(l=this.callbacks).onChangePresence)==null||a.call(l,this,I(S({},c[p]),{point:this.getPagePoint(e.point),session:!!this.session}))}});d(this,"onPointerDown",(e,t)=>{var n,r;if(t.buttons===4)this.isForcePanning=!0;else if(this.isPointing)return;this.isPointing=!0,this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),!this.isForcePanning&&(this.currentTool.type==="draw"&&t.pointerType==="pen"&&t.button===5&&(this.selectTool("erase"),this.isErasingWithPen=!0),(r=(n=this.currentTool).onPointerDown)==null||r.call(n,e,t))});d(this,"onPointerUp",(e,t)=>{var n,r;this.isPointing=!1,this.shiftKey||(this.isForcePanning=!1),this.updateInputs(e,t),(r=(n=this.currentTool).onPointerUp)==null||r.call(n,e,t),this.isErasingWithPen&&t.pointerType==="pen"&&t.button===5&&(this.selectTool("draw"),this.isErasingWithPen=!1)});d(this,"onPointCanvas",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onPointCanvas)==null||r.call(n,e,t)});d(this,"onDoubleClickCanvas",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onDoubleClickCanvas)==null||r.call(n,e,t)});d(this,"onRightPointCanvas",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onRightPointCanvas)==null||r.call(n,e,t)});d(this,"onDragCanvas",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onDragCanvas)==null||r.call(n,e,t)});d(this,"onReleaseCanvas",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onReleaseCanvas)==null||r.call(n,e,t)});d(this,"onPointShape",(e,t)=>{var n,r;this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),(r=(n=this.currentTool).onPointShape)==null||r.call(n,e,t)});d(this,"onReleaseShape",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onReleaseShape)==null||r.call(n,e,t)});d(this,"onDoubleClickShape",(e,t)=>{var n,r;this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),(r=(n=this.currentTool).onDoubleClickShape)==null||r.call(n,e,t)});d(this,"onRightPointShape",(e,t)=>{var n,r;this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),(r=(n=this.currentTool).onRightPointShape)==null||r.call(n,e,t)});d(this,"onDragShape",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onDragShape)==null||r.call(n,e,t)});d(this,"onHoverShape",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onHoverShape)==null||r.call(n,e,t)});d(this,"onUnhoverShape",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onUnhoverShape)==null||r.call(n,e,t)});d(this,"onPointBounds",(e,t)=>{var n,r;this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),(r=(n=this.currentTool).onPointBounds)==null||r.call(n,e,t)});d(this,"onDoubleClickBounds",(e,t)=>{var n,r;this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),(r=(n=this.currentTool).onDoubleClickBounds)==null||r.call(n,e,t)});d(this,"onRightPointBounds",(e,t)=>{var n,r;this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),(r=(n=this.currentTool).onRightPointBounds)==null||r.call(n,e,t)});d(this,"onDragBounds",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onDragBounds)==null||r.call(n,e,t)});d(this,"onHoverBounds",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onHoverBounds)==null||r.call(n,e,t)});d(this,"onUnhoverBounds",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onUnhoverBounds)==null||r.call(n,e,t)});d(this,"onReleaseBounds",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onReleaseBounds)==null||r.call(n,e,t)});d(this,"onPointBoundsHandle",(e,t)=>{var n,r;this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),(r=(n=this.currentTool).onPointBoundsHandle)==null||r.call(n,e,t)});d(this,"onDoubleClickBoundsHandle",(e,t)=>{var r,s;if(this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),(s=(r=this.currentTool).onDoubleClickBoundsHandle)==null||s.call(r,e,t),this.selectedIds.length!==1)return;let n=this.getShape(this.selectedIds[0]);if(n.type==="image"||n.type==="video"){let l=this.document.assets[n.assetId],a=B.getShapeUtil(n),c=a.getCenter(n),p=a.getCenter(I(S({},n),{size:l.size})),u=ie.Vec.sub(p,c);this.updateShapes({id:n.id,point:ie.Vec.sub(n.point,u),size:l.size})}});d(this,"onRightPointBoundsHandle",(e,t)=>{var n,r;this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),(r=(n=this.currentTool).onRightPointBoundsHandle)==null||r.call(n,e,t)});d(this,"onDragBoundsHandle",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onDragBoundsHandle)==null||r.call(n,e,t)});d(this,"onHoverBoundsHandle",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onHoverBoundsHandle)==null||r.call(n,e,t)});d(this,"onUnhoverBoundsHandle",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onUnhoverBoundsHandle)==null||r.call(n,e,t)});d(this,"onReleaseBoundsHandle",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onReleaseBoundsHandle)==null||r.call(n,e,t)});d(this,"onPointHandle",(e,t)=>{var n,r;this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),(r=(n=this.currentTool).onPointHandle)==null||r.call(n,e,t)});d(this,"onDoubleClickHandle",(e,t)=>{var n,r;this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),(r=(n=this.currentTool).onDoubleClickHandle)==null||r.call(n,e,t)});d(this,"onRightPointHandle",(e,t)=>{var n,r;this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),(r=(n=this.currentTool).onRightPointHandle)==null||r.call(n,e,t)});d(this,"onDragHandle",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onDragHandle)==null||r.call(n,e,t)});d(this,"onHoverHandle",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onHoverHandle)==null||r.call(n,e,t)});d(this,"onUnhoverHandle",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onUnhoverHandle)==null||r.call(n,e,t)});d(this,"onReleaseHandle",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onReleaseHandle)==null||r.call(n,e,t)});d(this,"onShapeChange",e=>{let t=this.document.pages[this.currentPageId].shapes,n=S(S({},t[e.id]),e),r=El(this,[n],this.currentPageId).after;return this.patchState(r,"patched_shapes")});d(this,"onShapeBlur",()=>{var n,r;if(performance.now()-this.editingStartTime<50)return;let{editingId:e}=this.pageState,{isToolLocked:t}=this.getAppState();if(e){let s=this.getShape(e);this.setEditingId(),s.type==="text"&&(s.text.trim().length<=0?this.patchState(kl(this,[e]).after,"delete_empty_text"):t||this.select(e))}(r=(n=this.currentTool).onShapeBlur)==null||r.call(n)});d(this,"onShapeClone",(e,t)=>{var n,r;this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),(r=(n=this.currentTool).onShapeClone)==null||r.call(n,e,t)});d(this,"onRenderCountChange",e=>{let t=this.getAppState();t.isEmptyCanvas&&e.length>0?this.patchState({appState:{isEmptyCanvas:!1}},"empty_canvas:false"):!t.isEmptyCanvas&&e.length<=0&&this.patchState({appState:{isEmptyCanvas:!0}},"empty_canvas:true")});d(this,"onError",()=>{});d(this,"getShapeUtil",B.getShapeUtil);this.callbacks=t}setStatus(e){return this.patchState({appState:{status:e}},`set_status:${e}`)}get isMenuOpen(){return this.appState.isMenuOpen}get isLoading(){return this.appState.isLoading}get disableAssets(){return this.appState.disableAssets}get canvasMode(){var e;return(e=this.settings.canvasMode)!=null?e:"freehand"}get history(){return this.stack.slice(0,this.pointer+1)}set history(e){this.replaceHistory(e)}get document(){return this.state.document}get settings(){return this.state.settings}get appState(){return this.state.appState}get currentPageId(){return this.state.appState.currentPageId}get page(){return this.state.document.pages[this.currentPageId]}get shapes(){return Object.values(this.page.shapes)}get bindings(){return Object.values(this.page.bindings)}get assets(){return Object.values(this.document.assets)}get pageState(){return this.state.document.pageStates[this.currentPageId]}get camera(){return this.pageState.camera}get zoom(){return this.pageState.camera.zoom}get selectedIds(){return this.pageState.selectedIds}createTextShapeAtPoint(e,t,n){let{shapes:r,appState:{currentPageId:s,currentStyle:l}}=this,a=r.length===0?1:r.filter(h=>h.parentId===s).sort((h,g)=>g.childIndex-h.childIndex)[0].childIndex+1,c=kn["text"],p=c.create({id:t||ut.Utils.uniqueId(),parentId:s,childIndex:a,point:e,style:S({},l)}),u=c.getBounds(p);return p.point=ie.Vec.sub(p.point,[u.width/2,u.height/2]),n?this.patchCreate([B.getShapeUtil(p.type).create(p)]):this.createShapes(p),this.setEditingId(p.id,!0),this}getImageOrVideoShapeAtPoint(e,t,n,r,s){let{shapes:l,appState:{currentPageId:a,currentStyle:c}}=this,p=l.length===0?1:l.filter(g=>g.parentId===a).sort((g,m)=>m.childIndex-g.childIndex)[0].childIndex+1,u=kn[t];if(r[0]>this.viewport.width){let g=r[1]/r[0];r[0]=this.viewport.width-128/this.camera.zoom*2,r[1]=r[0]*g,(r[1]<32||r[1]<32)&&(r[1]=32,r[0]=r[1]/g)}else if(r[1]>this.viewport.height){let g=r[0]/r[1];r[1]=this.viewport.height-128/this.camera.zoom*2,r[0]=r[1]*g,(r[1]<32||r[1]<32)&&(r[0]=32,r[1]=r[0]/g)}return u.create({id:e,parentId:a,childIndex:p,point:n,size:r,style:S({},c),assetId:s})}isSelected(e){return this.selectedIds.includes(e)}serializeVideo(e){let t=document.getElementById(e+"_video");if(t){let n=document.createElement("canvas");return n.width=t.videoWidth,n.height=t.videoHeight,n.getContext("2d").drawImage(t,0,0),n.toDataURL("image/png")}else throw new Error("Video with id "+e+" not found")}serializeImage(e){let t=document.getElementById(e+"_image");if(t){let n=document.createElement("canvas");return n.width=t.width,n.height=t.height,n.getContext("2d").drawImage(t,0,0),n.toDataURL("image/png")}else throw new Error("Image with id "+e+" not found")}patchAssets(e){this.document.assets=S(S({},this.document.assets),e)}get room(){return this.state.room}get isLocal(){return this.state.room===void 0||this.state.room.id==="local"}get status(){return this.appState.status}get currentUser(){if(!!this.state.room)return this.state.room.users[this.state.room.userId]}get centerPoint(){let{width:e,height:t}=this.rendererBounds;return ie.Vec.toFixed([e/2,t/2])}get currentGrid(){let{zoom:e}=this.camera;return e<.15?8*16:e<1?8*4:8*1}},Rn=Qe;d(Rn,"version",15.5),d(Rn,"defaultDocument",{id:"doc",name:"New Document",version:Qe.version,pages:{page:{id:"page",name:"Page 1",childIndex:1,shapes:{},bindings:{}}},pageStates:{page:{id:"page",selectedIds:[],camera:{point:[0,0],zoom:1}}},assets:{}}),d(Rn,"defaultState",{settings:{isCadSelectMode:!1,isPenMode:!1,isDarkMode:!1,isZoomSnap:!1,isFocusMode:!1,isSnapping:!0,isDebugMode:!1,isReadonlyMode:!1,keepStyleMenuOpen:!1,nudgeDistanceLarge:16,nudgeDistanceSmall:1,showRotateHandles:!0,showBindingHandles:!0,showCloneHandles:!1,showGrid:!1,language:"en",dockPosition:"bottom",exportBackground:"transparent",canvasMode:"freehand"},appState:{status:"idle",activeTool:"select",hoveredId:void 0,currentPageId:"page",currentStyle:$e,isToolLocked:!1,isMenuOpen:!1,isEmptyCanvas:!1,eraseLine:[],snapLines:[],isLoading:!1,disableAssets:!1},document:Qe.defaultDocument}),d(Rn,"assetSrc","telva-assets.json");var l3={select:jr,erase:zr,["text"]:Nr,["draw"]:Vr,["ellipse"]:Hr,["rectangle"]:$r,["triangle"]:Ur,["line"]:Fr,["arrow"]:Lr,["sticky"]:Wr,["pen"]:Or};var Be=require("react/jsx-runtime"),kh=Ch.ErrorBoundary,Ry=()=>typeof window!="undefined"&&window.matchMedia?window.matchMedia("(prefers-color-scheme: dark)").matches:!1;function Dy({id:i,document:o,currentPageId:e,autofocus:t=!0,showMenu:n=!0,showMultiplayerMenu:r=!0,showPages:s=!0,showTools:l=!0,showZoom:a=!0,showStyles:c=!0,showUI:p=!0,readOnly:u=!1,disableAssets:h=!1,darkMode:g=Ry(),components:m,onMount:f,onChange:v,onChangePresence:b,onNewProject:T,onSaveProject:y,onSaveProjectAs:x,onOpenProject:P,onOpenMedia:k,onUndo:D,onRedo:C,onPersist:E,onPatch:M,onCommand:L,onChangePage:V,onAssetCreate:X,onAssetDelete:se,onAssetUpload:G,onSessionStart:ne,onSessionEnd:pe,onExport:he,hideCursors:Me,reactComponents:vt,googleFontsApiKey:rt}){let[et,be]=ye.useState(i);ye.useEffect(()=>{rt&&(hl(rt),ml())},[rt]);let[j,ae]=ye.useState(()=>new Rn(i,{onMount:f,onChange:v,onChangePresence:b,onNewProject:T,onSaveProject:y,onSaveProjectAs:x,onOpenProject:P,onOpenMedia:k,onUndo:D,onRedo:C,onPersist:E,onPatch:M,onCommand:L,onChangePage:V,onAssetDelete:se,onAssetCreate:X,onAssetUpload:G,onSessionStart:ne,onSessionEnd:pe})),[le,Z]=ye.useState(null),[N,Q]=ye.useState(null),[re,z]=ye.useState(null),[Le,Kt]=ye.useState(null),Qt=ye.useCallback((ve,tt,it,ue)=>{Kt(()=>ve),Z(()=>ue),Q(()=>tt),z(()=>it)},[]);return ye.useLayoutEffect(()=>{if(i===et)return;let ve=new Rn(i,{onMount:f,onChange:v,onChangePresence:b,onNewProject:T,onSaveProject:y,onSaveProjectAs:x,onOpenProject:P,onOpenMedia:k,onUndo:D,onRedo:C,onPersist:E,onPatch:M,onCommand:L,onChangePage:V,onAssetDelete:se,onAssetCreate:X,onAssetUpload:G,onExport:he,onSessionStart:ne,onSessionEnd:pe});be(i),ae(ve)},[et,i]),ye.useEffect(()=>{!o||(o.id===j.document.id?j.updateDocument(o):j.loadDocument(o))},[o,j]),ye.useEffect(()=>{j.setDisableAssets(h)},[j,h]),ye.useEffect(()=>{!e||j.changePage(e)},[e,j]),ye.useEffect(()=>{j.readOnly=u,u||(j.selectNone(),j.cancelSession(),j.setEditingId())},[j,u]),ye.useEffect(()=>{g!==j.settings.isDarkMode&&j.toggleDarkMode()},[j,g]),ye.useEffect(()=>{j.callbacks={onMount:f,onChange:v,onChangePresence:b,onNewProject:T,onSaveProject:y,onSaveProjectAs:x,onOpenProject:P,onOpenMedia:k,onUndo:D,onRedo:C,onPersist:E,onPatch:M,onCommand:L,onChangePage:V,onAssetDelete:se,onAssetCreate:X,onAssetUpload:G,onExport:he,onSessionStart:ne,onSessionEnd:pe}},[f,v,b,T,y,x,P,k,D,C,E,M,L,V,se,X,G,he,ne,pe]),ye.useLayoutEffect(()=>{var tt;if(typeof window=="undefined"||!((tt=window.document)!=null&&tt.fonts))return;function ve(){j.refreshBoundingBoxes()}return window.document.fonts.addEventListener("loadingdone",ve),()=>{window.document.fonts.removeEventListener("loadingdone",ve)}},[j]),(0,Be.jsx)(Ra.Provider,{value:j,children:(0,Be.jsx)(Ea.Provider,{value:{onYes:N,onCancel:le,onNo:re,dialogState:Le,setDialogState:Kt,openDialog:Qt},children:(0,Be.jsx)(Fa.Provider,{value:vt||[],children:(0,Be.jsx)(Ey,{id:et,autofocus:t,showPages:s,showMenu:n,showMultiplayerMenu:r,showStyles:c,showZoom:a,showTools:l,showUI:p,readOnly:u,components:m,hideCursors:Me,reactComponents:vt},et||"Telva")})})})}var Ey=ye.memo(function({id:o,autofocus:e,showPages:t,showMenu:n,showMultiplayerMenu:r,showZoom:s,showStyles:l,showTools:a,readOnly:c,showUI:p,components:u,hideCursors:h,reactComponents:g}){var j,ae,le;let m=_(),[f,v]=ye.useState(null),b=ye.useRef(null),T=ye.useRef(null),y=m.useStore(),{document:x,settings:P,appState:k,room:D}=y,C=y.appState.activeTool==="select",E=x.pages[k.currentPageId],M=x.pageStates[E.id],L=x.assets,{selectedIds:V}=M,X=V.length===1&&E.shapes[V[0]]&&B.getShapeUtil(E.shapes[V[0]].type).hideBounds,se=V.length===1&&E.shapes[V[0]]&&B.getShapeUtil(E.shapes[V[0]].type).hideResizeHandles,G=ye.useMemo(()=>({isDarkMode:P.isDarkMode,canvasMode:P.canvasMode||"freehand",nodeEditingId:k.nodeEditingId}),[P.isDarkMode,P.canvasMode,k.nodeEditingId]),ne=P.isCadSelectMode?!k.selectByContain:k.selectByContain,pe=ye.useMemo(()=>{let{selectByContain:Z}=k,{isDarkMode:N,isCadSelectMode:Q}=P;if(N){let z=Q?Z?"69, 155, 255":"105, 209, 73":"180, 180, 180";return{brushFill:`rgba(${z}, ${Q?.08:.05})`,brushStroke:`rgba(${z}, ${Q?.5:.25})`,brushDashStroke:`rgba(${z}, .6)`,selected:"rgba(13, 153, 255, 1)",selectFill:"rgba(13, 153, 255, 0.05)",background:"#ffffffff",foreground:"#383838"}}let re=Q?Z?"0, 89, 242":"51, 163, 23":"0,0,0";return{brushFill:`rgba(${re}, ${Q?.08:.05})`,brushStroke:`rgba(${re}, ${Q?.4:.25})`,brushDashStroke:`rgba(${re}, .6)`,selected:"rgba(13, 153, 255, 1)",selectFill:"rgba(13, 153, 255, 0.05)",background:"#ffffffff",foreground:"#ffffffff"}},[P.isDarkMode,P.isCadSelectMode,k.selectByContain]),he=m.session!==void 0,Me=he&&((j=m.session)==null?void 0:j.constructor.name)!=="BrushSession"||!C||X||!!M.editingId||!!k.nodeEditingId,vt=he||!C||!!k.nodeEditingId,rt=he&&y.appState.status!=="brushing"||!C||!!k.nodeEditingId,et=he||!C||M.camera.zoom<.2,be=Yd(P.language);return ye.useLayoutEffect(()=>{let Z=b.current;!Z||(P.isDarkMode?Z.classList.add(Ia):Z.classList.remove(Ia))},[P.isDarkMode]),Pu(b),(0,Be.jsx)(Da.Provider,{value:b,children:(0,Be.jsxs)(wh.IntlProvider,{locale:be.locale,messages:be.messages,children:[(0,Be.jsx)(gc,{container:f}),(0,Be.jsxs)(My,{ref:b,tabIndex:-0,children:[(0,Be.jsx)(Ga,{}),(0,Be.jsx)(By,{focusableRef:b,autofocus:e}),p&&(0,Be.jsxs)(Ly,{ref:v,children:[(0,Be.jsx)(Ay,{children:(0,Be.jsx)(wu,{readOnly:c,showPages:t,showMenu:n,showMultiplayerMenu:r,showStyles:!1,showZoom:s})}),(0,Be.jsxs)(Vy,{children:[a&&!c&&(0,Be.jsx)($a,{}),(0,Be.jsxs)(Hy,{ref:T,children:[(0,Be.jsx)(Ha,{children:(0,Be.jsx)(kh,{FallbackComponent:za,children:(0,Be.jsx)(Nl.Renderer,{id:o,containerRef:T,shapeUtils:kn,page:E,pageState:M,assets:L,snapLines:k.snapLines,eraseLine:k.eraseLine,grid:8,users:D==null?void 0:D.users,userId:D==null?void 0:D.userId,theme:pe,meta:G,components:u,hideCursors:h,hideBounds:Me,hideHandles:vt,hideResizeHandles:se,hideIndicators:rt,hideBindingHandles:!P.showBindingHandles,hideCloneHandles:et,hideRotateHandles:!P.showRotateHandles,hideGrid:!P.showGrid,showDashedBrush:ne,performanceMode:(ae=m.session)==null?void 0:ae.performanceMode,onPinchStart:m.onPinchStart,onPinchEnd:m.onPinchEnd,onPinch:m.onPinch,onPan:m.onPan,onZoom:m.onZoom,onPointerDown:m.onPointerDown,onPointerMove:m.onPointerMove,onPointerUp:m.onPointerUp,onPointCanvas:m.onPointCanvas,onDoubleClickCanvas:m.onDoubleClickCanvas,onRightPointCanvas:m.onRightPointCanvas,onDragCanvas:m.onDragCanvas,onReleaseCanvas:m.onReleaseCanvas,onPointShape:m.onPointShape,onDoubleClickShape:m.onDoubleClickShape,onRightPointShape:m.onRightPointShape,onDragShape:m.onDragShape,onHoverShape:m.onHoverShape,onUnhoverShape:m.onUnhoverShape,onReleaseShape:m.onReleaseShape,onPointBounds:m.onPointBounds,onDoubleClickBounds:m.onDoubleClickBounds,onRightPointBounds:m.onRightPointBounds,onDragBounds:m.onDragBounds,onHoverBounds:m.onHoverBounds,onUnhoverBounds:m.onUnhoverBounds,onReleaseBounds:m.onReleaseBounds,onPointBoundsHandle:m.onPointBoundsHandle,onDoubleClickBoundsHandle:m.onDoubleClickBoundsHandle,onRightPointBoundsHandle:m.onRightPointBoundsHandle,onDragBoundsHandle:m.onDragBoundsHandle,onHoverBoundsHandle:m.onHoverBoundsHandle,onUnhoverBoundsHandle:m.onUnhoverBoundsHandle,onReleaseBoundsHandle:m.onReleaseBoundsHandle,onPointHandle:m.onPointHandle,onDoubleClickHandle:m.onDoubleClickHandle,onRightPointHandle:m.onRightPointHandle,onDragHandle:m.onDragHandle,onHoverHandle:m.onHoverHandle,onUnhoverHandle:m.onUnhoverHandle,onReleaseHandle:m.onReleaseHandle,onError:m.onError,onRenderCountChange:m.onRenderCountChange,onShapeChange:m.onShapeChange,onShapeBlur:m.onShapeBlur,onShapeClone:m.onShapeClone,onBoundsChange:m.updateBounds,onKeyDown:m.onKeyDown,onKeyUp:m.onKeyUp,onDragOver:m.onDragOver,onDrop:m.onDrop})})}),a&&!c&&(0,Be.jsx)(Qd,{})]}),(0,Be.jsx)(bl,{})]})]}),!p&&(0,Be.jsx)(Ha,{children:(0,Be.jsx)(kh,{FallbackComponent:za,children:(0,Be.jsx)(Nl.Renderer,{id:o,containerRef:b,shapeUtils:kn,page:E,pageState:M,assets:L,snapLines:k.snapLines,eraseLine:k.eraseLine,grid:8,users:D==null?void 0:D.users,userId:D==null?void 0:D.userId,theme:pe,meta:G,components:u,hideCursors:h,hideBounds:Me,hideHandles:vt,hideResizeHandles:se,hideIndicators:rt,hideBindingHandles:!P.showBindingHandles,hideCloneHandles:et,hideRotateHandles:!P.showRotateHandles,hideGrid:!P.showGrid,showDashedBrush:ne,performanceMode:(le=m.session)==null?void 0:le.performanceMode,onPinchStart:m.onPinchStart,onPinchEnd:m.onPinchEnd,onPinch:m.onPinch,onPan:m.onPan,onZoom:m.onZoom,onPointerDown:m.onPointerDown,onPointerMove:m.onPointerMove,onPointerUp:m.onPointerUp,onPointCanvas:m.onPointCanvas,onDoubleClickCanvas:m.onDoubleClickCanvas,onRightPointCanvas:m.onRightPointCanvas,onDragCanvas:m.onDragCanvas,onReleaseCanvas:m.onReleaseCanvas,onPointShape:m.onPointShape,onDoubleClickShape:m.onDoubleClickShape,onRightPointShape:m.onRightPointShape,onDragShape:m.onDragShape,onHoverShape:m.onHoverShape,onUnhoverShape:m.onUnhoverShape,onReleaseShape:m.onReleaseShape,onPointBounds:m.onPointBounds,onDoubleClickBounds:m.onDoubleClickBounds,onRightPointBounds:m.onRightPointBounds,onDragBounds:m.onDragBounds,onHoverBounds:m.onHoverBounds,onUnhoverBounds:m.onUnhoverBounds,onReleaseBounds:m.onReleaseBounds,onPointBoundsHandle:m.onPointBoundsHandle,onDoubleClickBoundsHandle:m.onDoubleClickBoundsHandle,onRightPointBoundsHandle:m.onRightPointBoundsHandle,onDragBoundsHandle:m.onDragBoundsHandle,onHoverBoundsHandle:m.onHoverBoundsHandle,onUnhoverBoundsHandle:m.onUnhoverBoundsHandle,onReleaseBoundsHandle:m.onReleaseBoundsHandle,onPointHandle:m.onPointHandle,onDoubleClickHandle:m.onDoubleClickHandle,onRightPointHandle:m.onRightPointHandle,onDragHandle:m.onDragHandle,onHoverHandle:m.onHoverHandle,onUnhoverHandle:m.onUnhoverHandle,onReleaseHandle:m.onReleaseHandle,onError:m.onError,onRenderCountChange:m.onRenderCountChange,onShapeChange:m.onShapeChange,onShapeBlur:m.onShapeBlur,onShapeClone:m.onShapeClone,onBoundsChange:m.updateBounds,onKeyDown:m.onKeyDown,onKeyUp:m.onKeyUp,onDragOver:m.onDragOver,onDrop:m.onDrop})})})]})]})})}),By=ye.memo(function({focusableRef:o,autofocus:e}){return gd(o),ye.useEffect(()=>{var t;e&&((t=o.current)==null||t.focus())},[e]),null}),My=R("div",{position:"absolute",height:"100%",width:"100%",minHeight:0,minWidth:0,maxHeight:"100%",maxWidth:"100%",overflow:"hidden",boxSizing:"border-box",outline:"none",userSelect:"none",WebkitUserSelect:"none",background:"$canvas","& input, textarea, button, select, label, button":{webkitTouchCallout:"none",webkitUserSelect:"none","-webkit-tap-highlight-color":"transparent","tap-highlight-color":"transparent"}}),Ly=R("div",{position:"absolute",top:0,left:0,height:"100%",width:"100%",display:"flex",flexDirection:"column",zIndex:2,pointerEvents:"none"}),Ay=R("div",{width:"100%",height:"40px",background:"$panel",borderBottom:"1px solid $separator",display:"flex",alignItems:"center",pointerEvents:"all",flexShrink:0,zIndex:300}),Vy=R("div",{display:"flex",flex:1,minHeight:0,position:"relative"}),Hy=R("div",{flex:1,position:"relative",overflow:"hidden",pointerEvents:"all",minWidth:0,"& .tv-container":{position:"absolute",top:0,left:0,width:"100%",height:"100%",zIndex:1}});
38
+ `}catch(f){B.warn("Could not find telva-assets.json file.")}else l.textContent="@import url('https://fonts.googleapis.com/css2?family=Caveat+Brush&family=Source+Code+Pro&family=Source+Sans+Pro&family=Crimson+Pro&display=block');";s.append(l),r.append(s);let a=e.map(f=>this.getShape(f,this.currentPageId)).sort((f,v)=>f.childIndex-v.childIndex),c=ut.Utils.getCommonBounds(a.map(B.getRotatedBounds)),p=f=>F(this,null,function*(){let v=B.getShapeUtil(f),b=v.getBounds(f),T=yield v.getSvgElement(f,this.settings.isDarkMode);if(!!T)return f.type==="image"?T.setAttribute("href",this.document.assets[f.assetId].src):f.type==="video"&&T.setAttribute("href",this.serializeVideo(f.id)),T.setAttribute("transform",`translate(${(16+f.point[0]-c.minX).toFixed(2)}, ${(16+f.point[1]-c.minY).toFixed(2)}) rotate(${((f.rotation||0)*180/Math.PI).toFixed(2)}, ${(b.width/2).toFixed(2)}, ${(b.height/2).toFixed(2)})`),T});for(let f of a){if((m=f.children)!=null&&m.length){let b=document.createElementNS("http://www.w3.org/2000/svg","g");for(let T of f.children){let y=this.getShape(T,this.currentPageId),x=yield p(y);x&&b.append(x)}r.append(b);continue}let v=yield p(f);v&&r.append(v)}r.setAttribute("viewBox",[0,0,c.width+16*2,c.height+16*2].join(" ")),r.setAttribute("width",(c.width+16*2).toString()),r.setAttribute("height",(c.height+16*2).toString());let u=this.settings.exportBackground,h="#212529",g="rgb(248, 249, 250)";switch(u){case"auto":{r.style.setProperty("background-color",this.settings.isDarkMode?h:g);break}case"dark":{r.style.setProperty("background-color",h);break}case"light":{r.style.setProperty("background-color",g);break}case"transparent":default:{r.style.setProperty("background-color","transparent");break}}return r.querySelectorAll(".tv-fill-hitarea, .tv-stroke-hitarea, .tv-binding-indicator").forEach(f=>f.remove()),r}));d(this,"copySvg",(...t)=>F(this,[...t],function*(e=this.selectedIds.length?this.selectedIds:Object.keys(this.page.shapes)){if(e.length===0)return;let n=yield this.getSvg(e);if(!n)return;let r=B.getSvgString(n,1);this.clipboard=this.getContent(e);let s=JSON.stringify(S({type:"telva/clipboard",shapes:[],assets:[],bindings:[]},this.clipboard));return navigator.clipboard&&window.ClipboardItem&&navigator.clipboard.write([new ClipboardItem({"text/html":new Blob([s],{type:"text/html"}),"text/plain":new Blob([r],{type:"text/plain"})})]),r}));d(this,"getContent",e=>{let t=this.getPage(this.currentPageId);if(e&&e.length===0||(e||(e=this.selectedIds),e.length===0&&(e=Object.keys(t.shapes)),e.length===0))return;let n=e.map(a=>t.shapes[a]).flatMap(a=>{var c;return[a,...((c=a.children)!=null?c:[]).map(p=>t.shapes[p])]}).map(gt),r=new Set(n.map(a=>a.id));n.forEach(a=>{a.parentId===this.currentPageId&&(a.parentId="currentPageId")});let s=Object.values(t.bindings).filter(a=>{if(r.has(a.fromId)||r.has(a.toId))return!0;if(r.has(a.fromId)){let p=n.find(u=>u.id===a.fromId).handles;p&&Object.values(p).forEach(u=>{u.bindingId===a.id&&(u.bindingId=void 0)})}if(r.has(a.toId)){let p=n.find(u=>u.id===a.toId).handles;p&&Object.values(p).forEach(u=>{u.bindingId===a.id&&(u.bindingId=void 0)})}return!1}).map(gt),l=[...new Set(n.map(a=>{if(!!a.assetId)return this.document.assets[a.assetId]}).filter(Boolean).map(gt))];return{shapes:n,bindings:s,assets:l}});d(this,"copyJson",(e=this.selectedIds)=>{let t=this.getContent(e);return t&&B.copyStringToClipboard(JSON.stringify(t)),this});d(this,"exportJson",(e=this.selectedIds)=>{let t=this.getContent(e);if(t){let n=new Blob([JSON.stringify(t)],{type:"application/json"}),r=URL.createObjectURL(n),s=document.createElement("a");s.href=r,s.download="export.json",s.click()}return this});d(this,"insertContent",(e,t={})=>this.setState(ih(this,e,t),"insert_content"));d(this,"getImage",(...n)=>F(this,[...n],function*(e="png",t={}){let{ids:r=this.selectedIds.length?this.selectedIds:Object.keys(this.page.shapes)}=t,s=yield this.getSvg(r,{includeFonts:e!=="svg"});if(!s)return;if(e==="svg"){let a=B.getSvgString(s,1);return new Blob([a],{type:"image/svg+xml"})}let l=yield B.getImageForSvg(s,e,t);if(!!l)return l}));d(this,"copyImage",(...n)=>F(this,[...n],function*(e="png",t={}){if(e==="svg"){this.copySvg(t.ids);return}if(!(navigator.clipboard&&window.ClipboardItem)){console.warn("Sorry, your browser does not support copying images.");return}let r=yield this.getImage(e,t);!r||navigator.clipboard.write([new ClipboardItem({[r.type]:r})])}));d(this,"exportImage",(...n)=>F(this,[...n],function*(e="png",t={}){var a;let{pageId:r=this.currentPageId}=t,s=yield this.getImage(e,t);if(!s)return;let l=(a=this.document.pages[r].name)!=null?a:"export";if(this.callbacks.onExport)this.callbacks.onExport(this,{name:l,type:e,blob:s});else{let c=URL.createObjectURL(s),p=document.createElement("a");p.href=c,p.download=`${l}.${e}`,p.click()}}));d(this,"convertToImage",()=>F(this,null,function*(){let e=this.selectedIds;if(!e.length)return;let t=[],n=[];for(let r of e){let s=this.getShape(r);if(s.type!=="reactComponent")continue;let l=B.getShapeUtil(s);if(!l.getSvgElement)continue;let a=yield l.getSvgElement(s,this.settings.isDarkMode);if(!a)continue;let c=a.getAttribute("href");if(!c)continue;let p=B.getShapeUtil("image").create({id:ut.Utils.uniqueId(),parentId:s.parentId,childIndex:s.childIndex,point:[...s.point],size:[...s.size],style:S({},s.style),assetId:"asset-"+ut.Utils.uniqueId()});this.patchState({document:{assets:{[`${p.assetId}`]:{id:p.assetId,type:"image",src:c,size:s.size,fileName:"component-snapshot.png"}}}},"add_asset"),t.push(p),n.push(s.id)}t.length>0&&(this.createShapes(...t),this.delete(n),this.select(...t.map(r=>r.id)))}));d(this,"setCamera",(e,t,n)=>(this.updateViewport(e,t),this.patchState({document:{pageStates:{[this.currentPageId]:{camera:{point:e,zoom:t}}}}},n),this));d(this,"resetCamera",()=>this.setCamera(this.centerPoint,1,"reset_camera"));d(this,"pan",e=>{let{camera:t}=this.pageState;return this.setCamera(ie.Vec.toFixed(ie.Vec.sub(t.point,e)),t.zoom,"panned")});d(this,"pinchZoom",(e,t,n)=>{let{camera:r}=this.pageState,s=ie.Vec.sub(r.point,ie.Vec.div(t,r.zoom)),l=n,a=ie.Vec.sub(ie.Vec.div(e,r.zoom),s),c=ie.Vec.sub(ie.Vec.div(e,l),s);return this.setCamera(ie.Vec.toFixed(ie.Vec.add(s,ie.Vec.sub(c,a))),l,"pinch_zoomed")});d(this,"zoomTo",(e,t=this.centerPoint)=>{let{zoom:n,point:r}=this.camera,s=ie.Vec.sub(ie.Vec.div(t,n),r),l=ie.Vec.sub(ie.Vec.div(t,e),r);return this.setCamera(ie.Vec.toFixed(ie.Vec.add(r,ie.Vec.sub(l,s))),e,"zoomed_camera")});d(this,"zoomIn",()=>{let e=Math.round(this.camera.zoom*100/25),t=B.getCameraZoom((e+1)*.25);return this.zoomTo(t)});d(this,"zoomOut",()=>{let e=Math.round(this.camera.zoom*100/25),t=B.getCameraZoom((e-1)*.25);return this.zoomTo(t)});d(this,"zoomToFit",()=>{let{shapes:e,pageState:{camera:t}}=this;if(e.length===0)return this;let{rendererBounds:n}=this,r=ut.Utils.getCommonBounds(e.map(B.getBounds)),s=B.getCameraZoom(Math.min((n.width-128)/r.width,(n.height-128)/r.height));s=t.zoom===s||t.zoom<1?Math.min(1,s):s;let l=(n.width-r.width*s)/2/s,a=(n.height-r.height*s)/2/s;return this.setCamera(ie.Vec.toFixed(ie.Vec.sub([l,a],[r.minX,r.minY])),s,"zoomed_to_fit")});d(this,"zoomToSelection",()=>{if(this.selectedIds.length===0)return this;let{rendererBounds:e}=this,t=B.getSelectedBounds(this.state),n=B.getCameraZoom(Math.min((e.width-128)/t.width,(e.height-128)/t.height));n=this.camera.zoom===n||this.camera.zoom<1?Math.min(1,n):n;let r=(e.width-t.width*n)/2/n,s=(e.height-t.height*n)/2/n;return this.setCamera(ie.Vec.toFixed(ie.Vec.sub([r,s],[t.minX,t.minY])),n,"zoomed_to_selection")});d(this,"zoomToContent",()=>{let e=this.shapes,t=this.pageState;if(e.length===0)return this;let{rendererBounds:n}=this,{zoom:r}=t.camera,s=ut.Utils.getCommonBounds(e.map(B.getBounds)),l=(n.width-s.width*r)/2/r,a=(n.height-s.height*r)/2/r;return this.setCamera(ie.Vec.toFixed(ie.Vec.sub([l,a],[s.minX,s.minY])),this.camera.zoom,"zoomed_to_content")});d(this,"resetZoom",()=>this.zoomTo(1));d(this,"zoomBy",ut.Utils.throttle((e,t)=>{let{zoom:n}=this.camera,r=B.getCameraZoom(n-e*n);return this.zoomTo(r,t)},16));d(this,"clearSelectHistory",()=>(this.selectHistory.pointer=0,this.selectHistory.stack=[this.selectedIds],this));d(this,"addToSelectHistory",e=>(this.selectHistory.pointer<this.selectHistory.stack.length&&(this.selectHistory.stack=this.selectHistory.stack.slice(0,this.selectHistory.pointer+1)),this.selectHistory.pointer++,this.selectHistory.stack.push(e),this));d(this,"setSelectedIds",(e,t=!1)=>{let n=t?[...this.pageState.selectedIds,...e]:[...e];return this.patchState({appState:{activeTool:"select"},document:{pageStates:{[this.currentPageId]:{selectedIds:n}}}},"selected")});d(this,"undoSelect",()=>(this.selectHistory.pointer>0&&(this.selectHistory.pointer--,this.setSelectedIds(this.selectHistory.stack[this.selectHistory.pointer])),this));d(this,"redoSelect",()=>(this.selectHistory.pointer<this.selectHistory.stack.length-1&&(this.selectHistory.pointer++,this.setSelectedIds(this.selectHistory.stack[this.selectHistory.pointer])),this));d(this,"select",(...e)=>(e.forEach(t=>{if(!this.page.shapes[t])throw Error(`That shape does not exist on page ${this.currentPageId}`)}),this.setSelectedIds(e),this.addToSelectHistory(e),this));d(this,"selectAll",(e=this.currentPageId)=>this.session?this:(this.setSelectedIds(Object.values(this.document.pages[e].shapes).filter(t=>t.parentId===e).map(t=>t.id)),this.addToSelectHistory(this.selectedIds),this.selectTool("select"),this));d(this,"selectNone",()=>(this.setSelectedIds([]),this.addToSelectHistory(this.selectedIds),this));d(this,"startSession",(e,...t)=>{var s,l;if(this.readOnly&&e!=="brush")return this;this.session&&(B.warn(`Already in a session! (${this.session.constructor.name})`),this.cancelSession());let n=dh(e);this.session=new n(this,...t);let r=this.session.start();return r&&this.patchState(r,`session:start_${this.session.constructor.name}`),(l=(s=this.callbacks).onSessionStart)==null||l.call(s,this,this.session.constructor.name),this});d(this,"updateSession",()=>{let{session:e}=this;if(!e)return this;let t=e.update();return t?this.patchState(t,`session:${e==null?void 0:e.constructor.name}`):this});d(this,"cancelSession",()=>{var n,r;let{session:e}=this;if(!e)return this;this.session=void 0;let t=e.cancel();return t&&this.patchState(t,`session:cancel:${e.constructor.name}`),this.setEditingId(),(r=(n=this.callbacks).onSessionEnd)==null||r.call(n,this,e.constructor.name),this});d(this,"completeSession",()=>{var n,r,s,l,a,c,p,u,h;let{session:e}=this;if(!e)return this;this.session=void 0;let t=e.complete();if(t===void 0)this.isCreating=!1,this.patchState({appState:{status:"idle"},document:{pageStates:{[this.currentPageId]:{editingId:void 0,bindingId:void 0,hoveredId:void 0}}}},`session:complete:${e.constructor.name}`);else if("after"in t){if(this.isCreating){if(t.before={appState:I(S({},t.before.appState),{status:"idle"}),document:{pages:{[this.currentPageId]:{shapes:Object.fromEntries(this.selectedIds.map(g=>[g,void 0]))}},pageStates:{[this.currentPageId]:{selectedIds:[],editingId:null,bindingId:null,hoveredId:null}}}},this.appState.isToolLocked){let g=((s=(r=(n=t.after)==null?void 0:n.document)==null?void 0:r.pageStates)==null?void 0:s[this.currentPageId])||{};g.selectedIds=[]}this.isCreating=!1}t.after.appState=I(S({},t.after.appState),{status:"idle"}),t.after.document=I(S({},t.after.document),{pageStates:I(S({},(l=t.after.document)==null?void 0:l.pageStates),{[this.currentPageId]:I(S({},(((a=t.after.document)==null?void 0:a.pageStates)||{})[this.currentPageId]),{editingId:null})})}),this.setState(t,`session:complete:${e.constructor.name}`)}else this.patchState(I(S({},t),{appState:I(S({},t.appState),{status:"idle"}),document:I(S({},t.document),{pageStates:{[this.currentPageId]:I(S({},(p=(c=t.document)==null?void 0:c.pageStates)==null?void 0:p[this.currentPageId]),{editingId:null})}})}),`session:complete:${e.constructor.name}`);return(h=(u=this.callbacks).onSessionEnd)==null||h.call(u,this,e.constructor.name),this});d(this,"createShapes",(...e)=>e.length===0?this:this.create(e.map(t=>B.getShapeUtil(t.type).create(S({parentId:this.currentPageId},t)))));d(this,"updateShapes",(...e)=>{let t=this.document.pages[this.currentPageId].shapes,n=e.filter(r=>t[r.id]);return n.length===0?this:this.setState(El(this,n,this.currentPageId),"updated_shapes")});d(this,"create",(e=[],t=[])=>e.length===0?this:this.setState(xl(this,e,t)));d(this,"patchCreate",(e=[],t=[])=>e.length===0?this:this.patchState(xl(this,e,t).after));d(this,"delete",(e=this.selectedIds)=>{var n,r;if(e.length===0)return this;if(this.session)return this;let t=kl(this,e);if(this.callbacks.onAssetDelete&&((n=t.before.document)==null?void 0:n.assets)&&((r=t.after.document)==null?void 0:r.assets)){let s=Object.keys(t.before.document.assets).filter(c=>!!t.before.document.assets[c]),l=Object.keys(t.after.document.assets).filter(c=>!!t.after.document.assets[c]);s.filter(c=>!l.includes(c)).forEach(c=>this.callbacks.onAssetDelete(this,c))}return this.setState(t)});d(this,"deleteAll",()=>(this.selectAll(),this.delete(),this));d(this,"style",(e,t=this.selectedIds)=>this.setState(eh(this,t,e)));d(this,"align",(e,t=this.selectedIds)=>t.length<2?this:this.setState(Vu(this,t,e)));d(this,"distribute",(e,t=this.selectedIds)=>t.length<3?this:this.setState(Wu(this,t,e)));d(this,"stretch",(e,t=this.selectedIds)=>t.length<2?this:this.setState(Qu(this,t,e)));d(this,"flipHorizontal",(e=this.selectedIds)=>e.length===0?this:this.setState(wl(this,e,"horizontal")));d(this,"flipVertical",(e=this.selectedIds)=>e.length===0?this:this.setState(wl(this,e,"vertical")));d(this,"moveToPage",(e,t=this.currentPageId,n=this.selectedIds)=>{if(n.length===0)return this;let{rendererBounds:r}=this;return this.setState(Xu(this,n,r,t,e)),this});d(this,"moveToBack",(e=this.selectedIds)=>e.length===0?this:this.setState(Pi(this,e,"toBack")));d(this,"moveBackward",(e=this.selectedIds)=>e.length===0?this:this.setState(Pi(this,e,"backward")));d(this,"moveForward",(e=this.selectedIds)=>e.length===0?this:this.setState(Pi(this,e,"forward")));d(this,"moveToFront",(e=this.selectedIds)=>e.length===0?this:this.setState(Pi(this,e,"toFront")));d(this,"nudge",(e,t=!1,n=this.selectedIds)=>{if(n.length===0)return this;let r=t?this.settings.showGrid?this.currentGrid*4:10:this.settings.showGrid?this.currentGrid:1;return this.setState(nh(this,n,ie.Vec.mul(e,r)))});d(this,"duplicate",(e=this.selectedIds,t)=>this.readOnly?this:e.length===0?this:this.setState(Uu(this,e,t)));d(this,"resetBounds",(e=this.selectedIds)=>{let t=Pl(this,e,this.currentPageId);return this.setState(Pl(this,e,this.currentPageId),t.id)});d(this,"toggleHidden",(e=this.selectedIds)=>e.length===0?this:this.setState(na(this,e,"isHidden")));d(this,"toggleLocked",(e=this.selectedIds)=>e.length===0?this:this.setState(na(this,e,"isLocked")));d(this,"toggleAspectRatioLocked",(e=this.selectedIds)=>e.length===0?this:this.setState(na(this,e,"isAspectRatioLocked")));d(this,"toggleDecoration",(e,t=this.selectedIds)=>t.length===0||!(e==="start"||e==="end")?this:this.setState(th(this,t,e)));d(this,"setShapeProps",(e,t=this.selectedIds)=>this.setState(rh(this,t,e)));d(this,"rotate",(e=Math.PI*-.5,t=this.selectedIds)=>{if(t.length===0)return this;let n=Ju(this,t,e);return n?this.setState(n):this});d(this,"group",(e=this.selectedIds,t=ut.Utils.uniqueId(),n=this.currentPageId)=>{if(this.readOnly)return this;if(e.length===1&&this.getShape(e[0],n).type==="group")return this.ungroup(e,n);if(e.length<2)return this;let r=_u(this,e,t,n);return r?this.setState(r):this});d(this,"ungroup",(e=this.selectedIds,t=this.currentPageId)=>{if(this.readOnly)return this;let n=e.map(s=>this.getShape(s,t)).filter(s=>s.type==="group");if(n.length===0)return this;let r=oh(this,e,n,t);return r?this.setState(r):this});d(this,"cancel",()=>{var e,t;return(t=(e=this.currentTool).onCancel)==null||t.call(e),this});d(this,"addMediaFromFiles",(n,...r)=>F(this,[n,...r],function*(e,t=this.centerPoint){this.setIsLoading(!0);let s=[],l=this.getPagePoint(t);for(let a of e){let c=ut.Utils.uniqueId(),p=a.name.match(/\.[0-9a-z]+$/i);if(!p)throw Error("No extension");let u=Qi.includes(p[0].toLowerCase()),h=es.includes(p[0].toLowerCase());if(!(u||h))throw Error("Wrong extension");let g=u?"image":"video",m=u?"image":"video",f;try{if(this.callbacks.onAssetCreate){let v=yield this.callbacks.onAssetCreate(this,a,c);if(!v)throw Error("Asset creation callback returned false");f=v}else f=yield Al(a);if(typeof f=="string"){let v=[0,0];if(u){if(p[0]==".svg"){let y,x=yield Vl(a),P=this.getViewboxFromSVG(x);P&&(y=P.split(" "),v[0]=parseFloat(y[2]),v[1]=parseFloat(y[3]))}ie.Vec.isEqual(v,[0,0])&&(v=yield Hl(f))}else v=yield zl(f);let b=Object.values(this.document.assets).find(y=>y.type===m&&y.src===f),T;if(b)T=b.id;else{T=c;let y={id:T,type:m,name:a.name,src:f,size:v};this.patchState({document:{assets:{[T]:y}}})}s.push(this.getImageOrVideoShapeAtPoint(c,g,t,v,T))}}catch(v){console.warn(v)}}if(s.length){let a=ie.Vec.add(l,[0,0]);s.forEach((p,u)=>{let h=B.getBounds(p);u===0&&(a[0]-=h.width/2,a[1]-=h.height/2),p.point=[...a],a[0]+=h.width});let c=ut.Utils.getCommonBounds(s.map(B.getBounds));this.createShapes(...s),ut.Utils.boundsContain(this.viewport,c)||(this.zoomToSelection(),this.zoom>1&&this.resetZoom())}return this.setIsLoading(!1),this}));d(this,"getViewboxFromSVG",e=>{let t=/.*?viewBox=["'](-?[\d.]+[, ]+-?[\d.]+[, ][\d.]+[, ][\d.]+)["']/;if(typeof e=="string"){let n=e.match(t);return n&&n.length>=2?n[1]:null}return this.setIsLoading(!1),null});d(this,"onKeyDown",(e,t,n)=>{var r,s;switch(n.key){case"/":{if(this.status==="idle"&&!this.pageState.editingId){let{shiftKey:l,metaKey:a,altKey:c,ctrlKey:p,spaceKey:u}=this;this.onPointerDown({target:"canvas",pointerId:0,origin:t.point,point:t.point,delta:[0,0],pressure:.5,shiftKey:l,ctrlKey:p,metaKey:a,altKey:c,spaceKey:u},{shiftKey:l,altKey:c,ctrlKey:p,pointerId:0,clientX:t.point[0],clientY:t.point[1]})}break}case"Escape":{this.cancel();break}case"Meta":{this.metaKey=!0;break}case"Alt":{this.altKey=!0;break}case"Control":{this.ctrlKey=!0;break}case" ":{this.isForcePanning=!0,this.spaceKey=!0;break}}return(s=(r=this.currentTool).onKeyDown)==null||s.call(r,e,t,n),this});d(this,"onKeyUp",(e,t,n)=>{var r,s;if(!!t){switch(n.key){case"/":{let{currentPoint:l,shiftKey:a,metaKey:c,altKey:p,ctrlKey:u,spaceKey:h}=this;this.onPointerUp({target:"canvas",pointerId:0,origin:l,point:l,delta:[0,0],pressure:.5,shiftKey:a,ctrlKey:u,metaKey:c,altKey:p,spaceKey:h},{shiftKey:a,altKey:p,ctrlKey:u,pointerId:0,clientX:l[0],clientY:l[1]});break}case"Meta":{this.metaKey=!1;break}case"Alt":{this.altKey=!1;break}case"Control":{this.ctrlKey=!1;break}case" ":{this.isForcePanning=!1,this.spaceKey=!1;break}}(s=(r=this.currentTool).onKeyUp)==null||s.call(r,e,t,n)}});d(this,"refreshBoundingBoxes",()=>{let e=this.shapes.map(n=>[n.id,S({point:[...n.point]},"label"in n&&{label:""})]),t=this.shapes.map(n=>[n.id,S({point:[...n.point]},"label"in n&&{label:n.label})]);xc(),this.patchState({document:{pages:{[this.currentPageId]:{shapes:Object.fromEntries(e)}}}}),this.patchState({document:{pages:{[this.currentPageId]:{shapes:Object.fromEntries(t)}}}})});d(this,"onDragOver",e=>{e.preventDefault()});d(this,"onDrop",e=>F(this,null,function*(){var t;return e.preventDefault(),this.disableAssets?this:((t=e.dataTransfer.files)!=null&&t.length&&this.addMediaFromFiles(Object.values(e.dataTransfer.files),[e.clientX,e.clientY]),this)}));d(this,"onPinchStart",(e,t)=>{var n,r;(r=(n=this.currentTool).onPinchStart)==null||r.call(n,e,t)});d(this,"onPinchEnd",(e,t)=>{var n,r;return(r=(n=this.currentTool).onPinchEnd)==null?void 0:r.call(n,e,t)});d(this,"onPinch",(e,t)=>{var n,r;return(r=(n=this.currentTool).onPinch)==null?void 0:r.call(n,e,t)});d(this,"onPan",(e,t)=>{if(this.appState.status==="pinching")return;let n=ie.Vec.div(e.delta,this.camera.zoom),r=this.camera.point,s=ie.Vec.sub(r,n);ie.Vec.isEqual(s,r)||(this.pan(n),this.isForcePanning||this.onPointerMove(e,t),Tc&&this.isForcePanning&&this.preventPaste())});d(this,"onZoom",(e,t)=>{if(this.state.appState.status!=="idle")return;let n=e.delta[2]/50;this.zoomBy(n,e.point),this.onPointerMove(e,t)});d(this,"updateInputs",e=>{this.currentPoint=this.getPagePoint(e.point).concat(e.pressure),this.shiftKey=e.shiftKey,this.altKey=e.altKey,this.ctrlKey=e.ctrlKey,this.metaKey=e.metaKey});d(this,"onPointerMove",(e,t)=>{var n,r,s,l,a;if(this.previousPoint=this.currentPoint,this.updateInputs(e,t),this.isForcePanning&&this.isPointing){(n=this.onPan)==null||n.call(this,I(S({},e),{delta:ie.Vec.neg(e.delta)}),t);return}if((s=(r=this.currentTool).onPointerMove)==null||s.call(r,e,t),this.state.room){let{users:c,userId:p}=this.state.room;(a=(l=this.callbacks).onChangePresence)==null||a.call(l,this,I(S({},c[p]),{point:this.getPagePoint(e.point),session:!!this.session}))}});d(this,"onPointerDown",(e,t)=>{var n,r;if(t.buttons===4)this.isForcePanning=!0;else if(this.isPointing)return;this.isPointing=!0,this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),!this.isForcePanning&&(this.currentTool.type==="draw"&&t.pointerType==="pen"&&t.button===5&&(this.selectTool("erase"),this.isErasingWithPen=!0),(r=(n=this.currentTool).onPointerDown)==null||r.call(n,e,t))});d(this,"onPointerUp",(e,t)=>{var n,r;this.isPointing=!1,this.shiftKey||(this.isForcePanning=!1),this.updateInputs(e,t),(r=(n=this.currentTool).onPointerUp)==null||r.call(n,e,t),this.isErasingWithPen&&t.pointerType==="pen"&&t.button===5&&(this.selectTool("draw"),this.isErasingWithPen=!1)});d(this,"onPointCanvas",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onPointCanvas)==null||r.call(n,e,t)});d(this,"onDoubleClickCanvas",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onDoubleClickCanvas)==null||r.call(n,e,t)});d(this,"onRightPointCanvas",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onRightPointCanvas)==null||r.call(n,e,t)});d(this,"onDragCanvas",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onDragCanvas)==null||r.call(n,e,t)});d(this,"onReleaseCanvas",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onReleaseCanvas)==null||r.call(n,e,t)});d(this,"onPointShape",(e,t)=>{var n,r;this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),(r=(n=this.currentTool).onPointShape)==null||r.call(n,e,t)});d(this,"onReleaseShape",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onReleaseShape)==null||r.call(n,e,t)});d(this,"onDoubleClickShape",(e,t)=>{var n,r;this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),(r=(n=this.currentTool).onDoubleClickShape)==null||r.call(n,e,t)});d(this,"onRightPointShape",(e,t)=>{var n,r;this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),(r=(n=this.currentTool).onRightPointShape)==null||r.call(n,e,t)});d(this,"onDragShape",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onDragShape)==null||r.call(n,e,t)});d(this,"onHoverShape",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onHoverShape)==null||r.call(n,e,t)});d(this,"onUnhoverShape",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onUnhoverShape)==null||r.call(n,e,t)});d(this,"onPointBounds",(e,t)=>{var n,r;this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),(r=(n=this.currentTool).onPointBounds)==null||r.call(n,e,t)});d(this,"onDoubleClickBounds",(e,t)=>{var n,r;this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),(r=(n=this.currentTool).onDoubleClickBounds)==null||r.call(n,e,t)});d(this,"onRightPointBounds",(e,t)=>{var n,r;this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),(r=(n=this.currentTool).onRightPointBounds)==null||r.call(n,e,t)});d(this,"onDragBounds",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onDragBounds)==null||r.call(n,e,t)});d(this,"onHoverBounds",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onHoverBounds)==null||r.call(n,e,t)});d(this,"onUnhoverBounds",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onUnhoverBounds)==null||r.call(n,e,t)});d(this,"onReleaseBounds",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onReleaseBounds)==null||r.call(n,e,t)});d(this,"onPointBoundsHandle",(e,t)=>{var n,r;this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),(r=(n=this.currentTool).onPointBoundsHandle)==null||r.call(n,e,t)});d(this,"onDoubleClickBoundsHandle",(e,t)=>{var r,s;if(this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),(s=(r=this.currentTool).onDoubleClickBoundsHandle)==null||s.call(r,e,t),this.selectedIds.length!==1)return;let n=this.getShape(this.selectedIds[0]);if(n.type==="image"||n.type==="video"){let l=this.document.assets[n.assetId],a=B.getShapeUtil(n),c=a.getCenter(n),p=a.getCenter(I(S({},n),{size:l.size})),u=ie.Vec.sub(p,c);this.updateShapes({id:n.id,point:ie.Vec.sub(n.point,u),size:l.size})}});d(this,"onRightPointBoundsHandle",(e,t)=>{var n,r;this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),(r=(n=this.currentTool).onRightPointBoundsHandle)==null||r.call(n,e,t)});d(this,"onDragBoundsHandle",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onDragBoundsHandle)==null||r.call(n,e,t)});d(this,"onHoverBoundsHandle",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onHoverBoundsHandle)==null||r.call(n,e,t)});d(this,"onUnhoverBoundsHandle",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onUnhoverBoundsHandle)==null||r.call(n,e,t)});d(this,"onReleaseBoundsHandle",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onReleaseBoundsHandle)==null||r.call(n,e,t)});d(this,"onPointHandle",(e,t)=>{var n,r;this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),(r=(n=this.currentTool).onPointHandle)==null||r.call(n,e,t)});d(this,"onDoubleClickHandle",(e,t)=>{var n,r;this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),(r=(n=this.currentTool).onDoubleClickHandle)==null||r.call(n,e,t)});d(this,"onRightPointHandle",(e,t)=>{var n,r;this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),(r=(n=this.currentTool).onRightPointHandle)==null||r.call(n,e,t)});d(this,"onDragHandle",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onDragHandle)==null||r.call(n,e,t)});d(this,"onHoverHandle",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onHoverHandle)==null||r.call(n,e,t)});d(this,"onUnhoverHandle",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onUnhoverHandle)==null||r.call(n,e,t)});d(this,"onReleaseHandle",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onReleaseHandle)==null||r.call(n,e,t)});d(this,"onShapeChange",e=>{let t=this.document.pages[this.currentPageId].shapes,n=S(S({},t[e.id]),e),r=El(this,[n],this.currentPageId).after;return this.patchState(r,"patched_shapes")});d(this,"onShapeBlur",()=>{var n,r;if(performance.now()-this.editingStartTime<50)return;let{editingId:e}=this.pageState,{isToolLocked:t}=this.getAppState();if(e){let s=this.getShape(e);this.setEditingId(),s.type==="text"&&(s.text.trim().length<=0?this.patchState(kl(this,[e]).after,"delete_empty_text"):t||this.select(e))}(r=(n=this.currentTool).onShapeBlur)==null||r.call(n)});d(this,"onShapeClone",(e,t)=>{var n,r;this.originPoint=this.getPagePoint(e.point).concat(e.pressure),this.updateInputs(e,t),(r=(n=this.currentTool).onShapeClone)==null||r.call(n,e,t)});d(this,"onRenderCountChange",e=>{let t=this.getAppState();t.isEmptyCanvas&&e.length>0?this.patchState({appState:{isEmptyCanvas:!1}},"empty_canvas:false"):!t.isEmptyCanvas&&e.length<=0&&this.patchState({appState:{isEmptyCanvas:!0}},"empty_canvas:true")});d(this,"onError",()=>{});d(this,"getShapeUtil",B.getShapeUtil);this.callbacks=t}setStatus(e){return this.patchState({appState:{status:e}},`set_status:${e}`)}get isMenuOpen(){return this.appState.isMenuOpen}get isLoading(){return this.appState.isLoading}get disableAssets(){return this.appState.disableAssets}get canvasMode(){var e;return(e=this.settings.canvasMode)!=null?e:"freehand"}get history(){return this.stack.slice(0,this.pointer+1)}set history(e){this.replaceHistory(e)}get document(){return this.state.document}get settings(){return this.state.settings}get appState(){return this.state.appState}get currentPageId(){return this.state.appState.currentPageId}get page(){return this.state.document.pages[this.currentPageId]}get shapes(){return Object.values(this.page.shapes)}get bindings(){return Object.values(this.page.bindings)}get assets(){return Object.values(this.document.assets)}get pageState(){return this.state.document.pageStates[this.currentPageId]}get camera(){return this.pageState.camera}get zoom(){return this.pageState.camera.zoom}get selectedIds(){return this.pageState.selectedIds}createTextShapeAtPoint(e,t,n){let{shapes:r,appState:{currentPageId:s,currentStyle:l}}=this,a=r.length===0?1:r.filter(h=>h.parentId===s).sort((h,g)=>g.childIndex-h.childIndex)[0].childIndex+1,c=kn["text"],p=c.create({id:t||ut.Utils.uniqueId(),parentId:s,childIndex:a,point:e,style:S({},l)}),u=c.getBounds(p);return p.point=ie.Vec.sub(p.point,[u.width/2,u.height/2]),n?this.patchCreate([B.getShapeUtil(p.type).create(p)]):this.createShapes(p),this.setEditingId(p.id,!0),this}getImageOrVideoShapeAtPoint(e,t,n,r,s){let{shapes:l,appState:{currentPageId:a,currentStyle:c}}=this,p=l.length===0?1:l.filter(g=>g.parentId===a).sort((g,m)=>m.childIndex-g.childIndex)[0].childIndex+1,u=kn[t];if(r[0]>this.viewport.width){let g=r[1]/r[0];r[0]=this.viewport.width-128/this.camera.zoom*2,r[1]=r[0]*g,(r[1]<32||r[1]<32)&&(r[1]=32,r[0]=r[1]/g)}else if(r[1]>this.viewport.height){let g=r[0]/r[1];r[1]=this.viewport.height-128/this.camera.zoom*2,r[0]=r[1]*g,(r[1]<32||r[1]<32)&&(r[0]=32,r[1]=r[0]/g)}return u.create({id:e,parentId:a,childIndex:p,point:n,size:r,style:S({},c),assetId:s})}isSelected(e){return this.selectedIds.includes(e)}serializeVideo(e){let t=document.getElementById(e+"_video");if(t){let n=document.createElement("canvas");return n.width=t.videoWidth,n.height=t.videoHeight,n.getContext("2d").drawImage(t,0,0),n.toDataURL("image/png")}else throw new Error("Video with id "+e+" not found")}serializeImage(e){let t=document.getElementById(e+"_image");if(t){let n=document.createElement("canvas");return n.width=t.width,n.height=t.height,n.getContext("2d").drawImage(t,0,0),n.toDataURL("image/png")}else throw new Error("Image with id "+e+" not found")}patchAssets(e){this.document.assets=S(S({},this.document.assets),e)}get room(){return this.state.room}get isLocal(){return this.state.room===void 0||this.state.room.id==="local"}get status(){return this.appState.status}get currentUser(){if(!!this.state.room)return this.state.room.users[this.state.room.userId]}get centerPoint(){let{width:e,height:t}=this.rendererBounds;return ie.Vec.toFixed([e/2,t/2])}get currentGrid(){let{zoom:e}=this.camera;return e<.15?8*16:e<1?8*4:8*1}},Rn=et;d(Rn,"version",15.5),d(Rn,"defaultDocument",{id:"doc",name:"New Document",version:et.version,pages:{page:{id:"page",name:"Page 1",childIndex:1,shapes:{},bindings:{}}},pageStates:{page:{id:"page",selectedIds:[],camera:{point:[0,0],zoom:1}}},assets:{}}),d(Rn,"defaultState",{settings:{isCadSelectMode:!1,isPenMode:!1,isDarkMode:!1,isZoomSnap:!1,isFocusMode:!1,isSnapping:!0,isDebugMode:!1,isReadonlyMode:!1,keepStyleMenuOpen:!1,nudgeDistanceLarge:16,nudgeDistanceSmall:1,showRotateHandles:!0,showBindingHandles:!0,showCloneHandles:!1,showGrid:!1,language:"en",dockPosition:"bottom",exportBackground:"transparent",canvasMode:"freehand"},appState:{status:"idle",activeTool:"select",hoveredId:void 0,currentPageId:"page",currentStyle:$e,isToolLocked:!1,isMenuOpen:!1,isEmptyCanvas:!1,eraseLine:[],snapLines:[],isLoading:!1,disableAssets:!1},document:et.defaultDocument}),d(Rn,"assetSrc","telva-assets.json");var l3={select:jr,erase:zr,["text"]:Nr,["draw"]:Vr,["ellipse"]:Hr,["rectangle"]:$r,["triangle"]:Ur,["line"]:Fr,["arrow"]:Lr,["sticky"]:Wr,["pen"]:Or};var Be=require("react/jsx-runtime"),kh=Ch.ErrorBoundary,Ry=()=>typeof window!="undefined"&&window.matchMedia?window.matchMedia("(prefers-color-scheme: dark)").matches:!1;function Dy({id:i,document:o,currentPageId:e,autofocus:t=!0,showMenu:n=!0,showMultiplayerMenu:r=!0,showPages:s=!0,showTools:l=!0,showZoom:a=!0,showStyles:c=!0,showUI:p=!0,readOnly:u=!1,disableAssets:h=!1,darkMode:g=Ry(),components:m,onMount:f,onChange:v,onChangePresence:b,onNewProject:T,onSaveProject:y,onSaveProjectAs:x,onOpenProject:P,onOpenMedia:k,onUndo:D,onRedo:C,onPersist:E,onPatch:M,onCommand:L,onChangePage:V,onAssetCreate:X,onAssetDelete:se,onAssetUpload:G,onSessionStart:ne,onSessionEnd:pe,onExport:he,hideCursors:Me,reactComponents:Tt,googleFontsApiKey:it}){let[tt,be]=ye.useState(i);ye.useEffect(()=>{it&&(hl(it),ml())},[it]);let[j,ae]=ye.useState(()=>new Rn(i,{onMount:f,onChange:v,onChangePresence:b,onNewProject:T,onSaveProject:y,onSaveProjectAs:x,onOpenProject:P,onOpenMedia:k,onUndo:D,onRedo:C,onPersist:E,onPatch:M,onCommand:L,onChangePage:V,onAssetDelete:se,onAssetCreate:X,onAssetUpload:G,onSessionStart:ne,onSessionEnd:pe})),[le,Z]=ye.useState(null),[N,Q]=ye.useState(null),[re,z]=ye.useState(null),[Le,Kt]=ye.useState(null),Qt=ye.useCallback((ve,nt,st,ue)=>{Kt(()=>ve),Z(()=>ue),Q(()=>nt),z(()=>st)},[]);return ye.useLayoutEffect(()=>{if(i===tt)return;let ve=new Rn(i,{onMount:f,onChange:v,onChangePresence:b,onNewProject:T,onSaveProject:y,onSaveProjectAs:x,onOpenProject:P,onOpenMedia:k,onUndo:D,onRedo:C,onPersist:E,onPatch:M,onCommand:L,onChangePage:V,onAssetDelete:se,onAssetCreate:X,onAssetUpload:G,onExport:he,onSessionStart:ne,onSessionEnd:pe});be(i),ae(ve)},[tt,i]),ye.useEffect(()=>{!o||(o.id===j.document.id?j.updateDocument(o):j.loadDocument(o))},[o,j]),ye.useEffect(()=>{j.setDisableAssets(h)},[j,h]),ye.useEffect(()=>{!e||j.changePage(e)},[e,j]),ye.useEffect(()=>{j.readOnly=u,u||(j.selectNone(),j.cancelSession(),j.setEditingId())},[j,u]),ye.useEffect(()=>{g!==j.settings.isDarkMode&&j.toggleDarkMode()},[j,g]),ye.useEffect(()=>{j.callbacks={onMount:f,onChange:v,onChangePresence:b,onNewProject:T,onSaveProject:y,onSaveProjectAs:x,onOpenProject:P,onOpenMedia:k,onUndo:D,onRedo:C,onPersist:E,onPatch:M,onCommand:L,onChangePage:V,onAssetDelete:se,onAssetCreate:X,onAssetUpload:G,onExport:he,onSessionStart:ne,onSessionEnd:pe}},[f,v,b,T,y,x,P,k,D,C,E,M,L,V,se,X,G,he,ne,pe]),ye.useLayoutEffect(()=>{var nt;if(typeof window=="undefined"||!((nt=window.document)!=null&&nt.fonts))return;function ve(){j.refreshBoundingBoxes()}return window.document.fonts.addEventListener("loadingdone",ve),()=>{window.document.fonts.removeEventListener("loadingdone",ve)}},[j]),(0,Be.jsx)(Ra.Provider,{value:j,children:(0,Be.jsx)(Ea.Provider,{value:{onYes:N,onCancel:le,onNo:re,dialogState:Le,setDialogState:Kt,openDialog:Qt},children:(0,Be.jsx)(Fa.Provider,{value:Tt||[],children:(0,Be.jsx)(Ey,{id:tt,autofocus:t,showPages:s,showMenu:n,showMultiplayerMenu:r,showStyles:c,showZoom:a,showTools:l,showUI:p,readOnly:u,components:m,hideCursors:Me,reactComponents:Tt},tt||"Telva")})})})}var Ey=ye.memo(function({id:o,autofocus:e,showPages:t,showMenu:n,showMultiplayerMenu:r,showZoom:s,showStyles:l,showTools:a,readOnly:c,showUI:p,components:u,hideCursors:h,reactComponents:g}){var j,ae,le;let m=_(),[f,v]=ye.useState(null),b=ye.useRef(null),T=ye.useRef(null),y=m.useStore(),{document:x,settings:P,appState:k,room:D}=y,C=y.appState.activeTool==="select",E=x.pages[k.currentPageId],M=x.pageStates[E.id],L=x.assets,{selectedIds:V}=M,X=V.length===1&&E.shapes[V[0]]&&B.getShapeUtil(E.shapes[V[0]].type).hideBounds,se=V.length===1&&E.shapes[V[0]]&&B.getShapeUtil(E.shapes[V[0]].type).hideResizeHandles,G=ye.useMemo(()=>({isDarkMode:P.isDarkMode,canvasMode:P.canvasMode||"freehand",nodeEditingId:k.nodeEditingId}),[P.isDarkMode,P.canvasMode,k.nodeEditingId]),ne=P.isCadSelectMode?!k.selectByContain:k.selectByContain,pe=ye.useMemo(()=>{let{selectByContain:Z}=k,{isDarkMode:N,isCadSelectMode:Q}=P;if(N){let z=Q?Z?"69, 155, 255":"105, 209, 73":"180, 180, 180";return{brushFill:`rgba(${z}, ${Q?.08:.05})`,brushStroke:`rgba(${z}, ${Q?.5:.25})`,brushDashStroke:`rgba(${z}, .6)`,selected:"rgba(13, 153, 255, 1)",selectFill:"rgba(13, 153, 255, 0.05)",background:"#ffffffff",foreground:"#383838"}}let re=Q?Z?"0, 89, 242":"51, 163, 23":"0,0,0";return{brushFill:`rgba(${re}, ${Q?.08:.05})`,brushStroke:`rgba(${re}, ${Q?.4:.25})`,brushDashStroke:`rgba(${re}, .6)`,selected:"rgba(13, 153, 255, 1)",selectFill:"rgba(13, 153, 255, 0.05)",background:"#ffffffff",foreground:"#ffffffff"}},[P.isDarkMode,P.isCadSelectMode,k.selectByContain]),he=m.session!==void 0,Me=he&&((j=m.session)==null?void 0:j.constructor.name)!=="BrushSession"||!C||X||!!M.editingId||!!k.nodeEditingId,Tt=he||!C||!!k.nodeEditingId,it=he&&y.appState.status!=="brushing"||!C||!!k.nodeEditingId,tt=he||!C||M.camera.zoom<.2,be=Yd(P.language);return ye.useLayoutEffect(()=>{let Z=b.current;!Z||(P.isDarkMode?Z.classList.add(Ia):Z.classList.remove(Ia))},[P.isDarkMode]),Pu(b),(0,Be.jsx)(Da.Provider,{value:b,children:(0,Be.jsxs)(wh.IntlProvider,{locale:be.locale,messages:be.messages,children:[(0,Be.jsx)(gc,{container:f}),(0,Be.jsxs)(My,{ref:b,tabIndex:-0,children:[(0,Be.jsx)(Ga,{}),(0,Be.jsx)(By,{focusableRef:b,autofocus:e}),p&&(0,Be.jsxs)(Ly,{ref:v,children:[(0,Be.jsx)(Ay,{children:(0,Be.jsx)(wu,{readOnly:c,showPages:t,showMenu:n,showMultiplayerMenu:r,showStyles:!1,showZoom:s})}),(0,Be.jsxs)(Vy,{children:[a&&!c&&(0,Be.jsx)($a,{}),(0,Be.jsxs)(Hy,{ref:T,children:[(0,Be.jsx)(Ha,{children:(0,Be.jsx)(kh,{FallbackComponent:za,children:(0,Be.jsx)(Nl.Renderer,{id:o,containerRef:T,shapeUtils:kn,page:E,pageState:M,assets:L,snapLines:k.snapLines,eraseLine:k.eraseLine,grid:8,users:D==null?void 0:D.users,userId:D==null?void 0:D.userId,theme:pe,meta:G,components:u,hideCursors:h,hideBounds:Me,hideHandles:Tt,hideResizeHandles:se,hideIndicators:it,hideBindingHandles:!P.showBindingHandles,hideCloneHandles:tt,hideRotateHandles:!P.showRotateHandles,hideGrid:!P.showGrid,showDashedBrush:ne,performanceMode:(ae=m.session)==null?void 0:ae.performanceMode,onPinchStart:m.onPinchStart,onPinchEnd:m.onPinchEnd,onPinch:m.onPinch,onPan:m.onPan,onZoom:m.onZoom,onPointerDown:m.onPointerDown,onPointerMove:m.onPointerMove,onPointerUp:m.onPointerUp,onPointCanvas:m.onPointCanvas,onDoubleClickCanvas:m.onDoubleClickCanvas,onRightPointCanvas:m.onRightPointCanvas,onDragCanvas:m.onDragCanvas,onReleaseCanvas:m.onReleaseCanvas,onPointShape:m.onPointShape,onDoubleClickShape:m.onDoubleClickShape,onRightPointShape:m.onRightPointShape,onDragShape:m.onDragShape,onHoverShape:m.onHoverShape,onUnhoverShape:m.onUnhoverShape,onReleaseShape:m.onReleaseShape,onPointBounds:m.onPointBounds,onDoubleClickBounds:m.onDoubleClickBounds,onRightPointBounds:m.onRightPointBounds,onDragBounds:m.onDragBounds,onHoverBounds:m.onHoverBounds,onUnhoverBounds:m.onUnhoverBounds,onReleaseBounds:m.onReleaseBounds,onPointBoundsHandle:m.onPointBoundsHandle,onDoubleClickBoundsHandle:m.onDoubleClickBoundsHandle,onRightPointBoundsHandle:m.onRightPointBoundsHandle,onDragBoundsHandle:m.onDragBoundsHandle,onHoverBoundsHandle:m.onHoverBoundsHandle,onUnhoverBoundsHandle:m.onUnhoverBoundsHandle,onReleaseBoundsHandle:m.onReleaseBoundsHandle,onPointHandle:m.onPointHandle,onDoubleClickHandle:m.onDoubleClickHandle,onRightPointHandle:m.onRightPointHandle,onDragHandle:m.onDragHandle,onHoverHandle:m.onHoverHandle,onUnhoverHandle:m.onUnhoverHandle,onReleaseHandle:m.onReleaseHandle,onError:m.onError,onRenderCountChange:m.onRenderCountChange,onShapeChange:m.onShapeChange,onShapeBlur:m.onShapeBlur,onShapeClone:m.onShapeClone,onBoundsChange:m.updateBounds,onKeyDown:m.onKeyDown,onKeyUp:m.onKeyUp,onDragOver:m.onDragOver,onDrop:m.onDrop})})}),a&&!c&&(0,Be.jsx)(Qd,{})]}),(0,Be.jsx)(bl,{})]})]}),!p&&(0,Be.jsx)(Ha,{children:(0,Be.jsx)(kh,{FallbackComponent:za,children:(0,Be.jsx)(Nl.Renderer,{id:o,containerRef:b,shapeUtils:kn,page:E,pageState:M,assets:L,snapLines:k.snapLines,eraseLine:k.eraseLine,grid:8,users:D==null?void 0:D.users,userId:D==null?void 0:D.userId,theme:pe,meta:G,components:u,hideCursors:h,hideBounds:Me,hideHandles:Tt,hideResizeHandles:se,hideIndicators:it,hideBindingHandles:!P.showBindingHandles,hideCloneHandles:tt,hideRotateHandles:!P.showRotateHandles,hideGrid:!P.showGrid,showDashedBrush:ne,performanceMode:(le=m.session)==null?void 0:le.performanceMode,onPinchStart:m.onPinchStart,onPinchEnd:m.onPinchEnd,onPinch:m.onPinch,onPan:m.onPan,onZoom:m.onZoom,onPointerDown:m.onPointerDown,onPointerMove:m.onPointerMove,onPointerUp:m.onPointerUp,onPointCanvas:m.onPointCanvas,onDoubleClickCanvas:m.onDoubleClickCanvas,onRightPointCanvas:m.onRightPointCanvas,onDragCanvas:m.onDragCanvas,onReleaseCanvas:m.onReleaseCanvas,onPointShape:m.onPointShape,onDoubleClickShape:m.onDoubleClickShape,onRightPointShape:m.onRightPointShape,onDragShape:m.onDragShape,onHoverShape:m.onHoverShape,onUnhoverShape:m.onUnhoverShape,onReleaseShape:m.onReleaseShape,onPointBounds:m.onPointBounds,onDoubleClickBounds:m.onDoubleClickBounds,onRightPointBounds:m.onRightPointBounds,onDragBounds:m.onDragBounds,onHoverBounds:m.onHoverBounds,onUnhoverBounds:m.onUnhoverBounds,onReleaseBounds:m.onReleaseBounds,onPointBoundsHandle:m.onPointBoundsHandle,onDoubleClickBoundsHandle:m.onDoubleClickBoundsHandle,onRightPointBoundsHandle:m.onRightPointBoundsHandle,onDragBoundsHandle:m.onDragBoundsHandle,onHoverBoundsHandle:m.onHoverBoundsHandle,onUnhoverBoundsHandle:m.onUnhoverBoundsHandle,onReleaseBoundsHandle:m.onReleaseBoundsHandle,onPointHandle:m.onPointHandle,onDoubleClickHandle:m.onDoubleClickHandle,onRightPointHandle:m.onRightPointHandle,onDragHandle:m.onDragHandle,onHoverHandle:m.onHoverHandle,onUnhoverHandle:m.onUnhoverHandle,onReleaseHandle:m.onReleaseHandle,onError:m.onError,onRenderCountChange:m.onRenderCountChange,onShapeChange:m.onShapeChange,onShapeBlur:m.onShapeBlur,onShapeClone:m.onShapeClone,onBoundsChange:m.updateBounds,onKeyDown:m.onKeyDown,onKeyUp:m.onKeyUp,onDragOver:m.onDragOver,onDrop:m.onDrop})})})]})]})})}),By=ye.memo(function({focusableRef:o,autofocus:e}){return gd(o),ye.useEffect(()=>{var t;e&&((t=o.current)==null||t.focus())},[e]),null}),My=R("div",{position:"absolute",height:"100%",width:"100%",minHeight:0,minWidth:0,maxHeight:"100%",maxWidth:"100%",overflow:"hidden",boxSizing:"border-box",outline:"none",userSelect:"none",WebkitUserSelect:"none",background:"$canvas","& input, textarea, button, select, label, button":{webkitTouchCallout:"none",webkitUserSelect:"none","-webkit-tap-highlight-color":"transparent","tap-highlight-color":"transparent"}}),Ly=R("div",{position:"absolute",top:0,left:0,height:"100%",width:"100%",display:"flex",flexDirection:"column",zIndex:2,pointerEvents:"none"}),Ay=R("div",{width:"100%",height:"40px",background:"$panel",borderBottom:"1px solid $separator",display:"flex",alignItems:"center",pointerEvents:"all",flexShrink:0,zIndex:300}),Vy=R("div",{display:"flex",flex:1,minHeight:0,position:"relative"}),Hy=R("div",{flex:1,position:"relative",overflow:"hidden",pointerEvents:"all",minWidth:0,"& .tv-container":{position:"absolute",top:0,left:0,width:"100%",height:"100%",zIndex:1}});
39
39
  //# sourceMappingURL=index.js.map