telva 1.0.1

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 (587) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +298 -0
  3. package/dist/Telva.d.ts +98 -0
  4. package/dist/Telva.d.ts.map +1 -0
  5. package/dist/components/CenterToolbar/CenterToolbar.d.ts +3 -0
  6. package/dist/components/CenterToolbar/CenterToolbar.d.ts.map +1 -0
  7. package/dist/components/CenterToolbar/index.d.ts +2 -0
  8. package/dist/components/CenterToolbar/index.d.ts.map +1 -0
  9. package/dist/components/ContextMenu/ContextMenu.d.ts +18 -0
  10. package/dist/components/ContextMenu/ContextMenu.d.ts.map +1 -0
  11. package/dist/components/ContextMenu/index.d.ts +2 -0
  12. package/dist/components/ContextMenu/index.d.ts.map +1 -0
  13. package/dist/components/ErrorFallback/ErrorFallback.d.ts +3 -0
  14. package/dist/components/ErrorFallback/ErrorFallback.d.ts.map +1 -0
  15. package/dist/components/ErrorFallback/index.d.ts +2 -0
  16. package/dist/components/ErrorFallback/index.d.ts.map +1 -0
  17. package/dist/components/FocusButton/FocusButton.d.ts +6 -0
  18. package/dist/components/FocusButton/FocusButton.d.ts.map +1 -0
  19. package/dist/components/FocusButton/index.d.ts +2 -0
  20. package/dist/components/FocusButton/index.d.ts.map +1 -0
  21. package/dist/components/LeftPanel/ComponentsTab.d.ts +7 -0
  22. package/dist/components/LeftPanel/ComponentsTab.d.ts.map +1 -0
  23. package/dist/components/LeftPanel/LayersPanel.d.ts +3 -0
  24. package/dist/components/LeftPanel/LayersPanel.d.ts.map +1 -0
  25. package/dist/components/LeftPanel/LeftPanel.d.ts +3 -0
  26. package/dist/components/LeftPanel/LeftPanel.d.ts.map +1 -0
  27. package/dist/components/LeftPanel/index.d.ts +3 -0
  28. package/dist/components/LeftPanel/index.d.ts.map +1 -0
  29. package/dist/components/Loading/Loading.d.ts +2 -0
  30. package/dist/components/Loading/Loading.d.ts.map +1 -0
  31. package/dist/components/Loading/index.d.ts +2 -0
  32. package/dist/components/Loading/index.d.ts.map +1 -0
  33. package/dist/components/Primitives/AlertDialog/AlertDialog.d.ts +665 -0
  34. package/dist/components/Primitives/AlertDialog/AlertDialog.d.ts.map +1 -0
  35. package/dist/components/Primitives/AlertDialog/FilenameDialog.d.ts +7 -0
  36. package/dist/components/Primitives/AlertDialog/FilenameDialog.d.ts.map +1 -0
  37. package/dist/components/Primitives/AlertDialog/index.d.ts +3 -0
  38. package/dist/components/Primitives/AlertDialog/index.d.ts.map +1 -0
  39. package/dist/components/Primitives/Divider/Divider.d.ts +217 -0
  40. package/dist/components/Primitives/Divider/Divider.d.ts.map +1 -0
  41. package/dist/components/Primitives/Divider/index.d.ts +2 -0
  42. package/dist/components/Primitives/Divider/index.d.ts.map +1 -0
  43. package/dist/components/Primitives/DropdownMenu/DMCheckboxItem.d.ts +15 -0
  44. package/dist/components/Primitives/DropdownMenu/DMCheckboxItem.d.ts.map +1 -0
  45. package/dist/components/Primitives/DropdownMenu/DMContent.d.ts +450 -0
  46. package/dist/components/Primitives/DropdownMenu/DMContent.d.ts.map +1 -0
  47. package/dist/components/Primitives/DropdownMenu/DMDivider.d.ts +217 -0
  48. package/dist/components/Primitives/DropdownMenu/DMDivider.d.ts.map +1 -0
  49. package/dist/components/Primitives/DropdownMenu/DMItem.d.ts +6 -0
  50. package/dist/components/Primitives/DropdownMenu/DMItem.d.ts.map +1 -0
  51. package/dist/components/Primitives/DropdownMenu/DMRadioItem.d.ts +220 -0
  52. package/dist/components/Primitives/DropdownMenu/DMRadioItem.d.ts.map +1 -0
  53. package/dist/components/Primitives/DropdownMenu/DMSubMenu.d.ts +11 -0
  54. package/dist/components/Primitives/DropdownMenu/DMSubMenu.d.ts.map +1 -0
  55. package/dist/components/Primitives/DropdownMenu/DMTriggerIcon.d.ts +9 -0
  56. package/dist/components/Primitives/DropdownMenu/DMTriggerIcon.d.ts.map +1 -0
  57. package/dist/components/Primitives/DropdownMenu/index.d.ts +8 -0
  58. package/dist/components/Primitives/DropdownMenu/index.d.ts.map +1 -0
  59. package/dist/components/Primitives/IconButton/IconButton.d.ts +221 -0
  60. package/dist/components/Primitives/IconButton/IconButton.d.ts.map +1 -0
  61. package/dist/components/Primitives/IconButton/index.d.ts +2 -0
  62. package/dist/components/Primitives/IconButton/index.d.ts.map +1 -0
  63. package/dist/components/Primitives/Kbd/Kbd.d.ts +223 -0
  64. package/dist/components/Primitives/Kbd/Kbd.d.ts.map +1 -0
  65. package/dist/components/Primitives/Kbd/index.d.ts +2 -0
  66. package/dist/components/Primitives/Kbd/index.d.ts.map +1 -0
  67. package/dist/components/Primitives/MenuContent/MenuContent.d.ts +220 -0
  68. package/dist/components/Primitives/MenuContent/MenuContent.d.ts.map +1 -0
  69. package/dist/components/Primitives/MenuContent/index.d.ts +2 -0
  70. package/dist/components/Primitives/MenuContent/index.d.ts.map +1 -0
  71. package/dist/components/Primitives/Panel/Panel.d.ts +219 -0
  72. package/dist/components/Primitives/Panel/Panel.d.ts.map +1 -0
  73. package/dist/components/Primitives/Panel/index.d.ts +2 -0
  74. package/dist/components/Primitives/Panel/index.d.ts.map +1 -0
  75. package/dist/components/Primitives/RowButton/RowButton.d.ts +237 -0
  76. package/dist/components/Primitives/RowButton/RowButton.d.ts.map +1 -0
  77. package/dist/components/Primitives/RowButton/index.d.ts +2 -0
  78. package/dist/components/Primitives/RowButton/index.d.ts.map +1 -0
  79. package/dist/components/Primitives/SmallIcon/SmallIcon.d.ts +217 -0
  80. package/dist/components/Primitives/SmallIcon/SmallIcon.d.ts.map +1 -0
  81. package/dist/components/Primitives/SmallIcon/index.d.ts +2 -0
  82. package/dist/components/Primitives/SmallIcon/index.d.ts.map +1 -0
  83. package/dist/components/Primitives/TextField/TextField.d.ts +6 -0
  84. package/dist/components/Primitives/TextField/TextField.d.ts.map +1 -0
  85. package/dist/components/Primitives/TextField/index.d.ts +2 -0
  86. package/dist/components/Primitives/TextField/index.d.ts.map +1 -0
  87. package/dist/components/Primitives/ToolButton/ToolButton.d.ts +459 -0
  88. package/dist/components/Primitives/ToolButton/ToolButton.d.ts.map +1 -0
  89. package/dist/components/Primitives/ToolButton/index.d.ts +2 -0
  90. package/dist/components/Primitives/ToolButton/index.d.ts.map +1 -0
  91. package/dist/components/Primitives/Tooltip/Tooltip.d.ts +11 -0
  92. package/dist/components/Primitives/Tooltip/Tooltip.d.ts.map +1 -0
  93. package/dist/components/Primitives/Tooltip/index.d.ts +2 -0
  94. package/dist/components/Primitives/Tooltip/index.d.ts.map +1 -0
  95. package/dist/components/Primitives/icons/BoxIcon.d.ts +6 -0
  96. package/dist/components/Primitives/icons/BoxIcon.d.ts.map +1 -0
  97. package/dist/components/Primitives/icons/CircleIcon.d.ts +5 -0
  98. package/dist/components/Primitives/icons/CircleIcon.d.ts.map +1 -0
  99. package/dist/components/Primitives/icons/DashDashedIcon.d.ts +2 -0
  100. package/dist/components/Primitives/icons/DashDashedIcon.d.ts.map +1 -0
  101. package/dist/components/Primitives/icons/DashDottedIcon.d.ts +2 -0
  102. package/dist/components/Primitives/icons/DashDottedIcon.d.ts.map +1 -0
  103. package/dist/components/Primitives/icons/DashDrawIcon.d.ts +2 -0
  104. package/dist/components/Primitives/icons/DashDrawIcon.d.ts.map +1 -0
  105. package/dist/components/Primitives/icons/DashSolidIcon.d.ts +2 -0
  106. package/dist/components/Primitives/icons/DashSolidIcon.d.ts.map +1 -0
  107. package/dist/components/Primitives/icons/DiscordIcon.d.ts +2 -0
  108. package/dist/components/Primitives/icons/DiscordIcon.d.ts.map +1 -0
  109. package/dist/components/Primitives/icons/EraserIcon.d.ts +2 -0
  110. package/dist/components/Primitives/icons/EraserIcon.d.ts.map +1 -0
  111. package/dist/components/Primitives/icons/LineIcon.d.ts +2 -0
  112. package/dist/components/Primitives/icons/LineIcon.d.ts.map +1 -0
  113. package/dist/components/Primitives/icons/MultiplayerIcon2.d.ts +2 -0
  114. package/dist/components/Primitives/icons/MultiplayerIcon2.d.ts.map +1 -0
  115. package/dist/components/Primitives/icons/SizeLargeIcon.d.ts +3 -0
  116. package/dist/components/Primitives/icons/SizeLargeIcon.d.ts.map +1 -0
  117. package/dist/components/Primitives/icons/SizeMediumIcon.d.ts +3 -0
  118. package/dist/components/Primitives/icons/SizeMediumIcon.d.ts.map +1 -0
  119. package/dist/components/Primitives/icons/SizeSmallIcon.d.ts +3 -0
  120. package/dist/components/Primitives/icons/SizeSmallIcon.d.ts.map +1 -0
  121. package/dist/components/Primitives/icons/TrashIcon.d.ts +3 -0
  122. package/dist/components/Primitives/icons/TrashIcon.d.ts.map +1 -0
  123. package/dist/components/Primitives/icons/UndoIcon.d.ts +5 -0
  124. package/dist/components/Primitives/icons/UndoIcon.d.ts.map +1 -0
  125. package/dist/components/Primitives/icons/index.d.ts +15 -0
  126. package/dist/components/Primitives/icons/index.d.ts.map +1 -0
  127. package/dist/components/RightPanel/ColorPicker.d.ts +27 -0
  128. package/dist/components/RightPanel/ColorPicker.d.ts.map +1 -0
  129. package/dist/components/RightPanel/DraggableInput.d.ts +15 -0
  130. package/dist/components/RightPanel/DraggableInput.d.ts.map +1 -0
  131. package/dist/components/RightPanel/GradientPicker.d.ts +22 -0
  132. package/dist/components/RightPanel/GradientPicker.d.ts.map +1 -0
  133. package/dist/components/RightPanel/PropertiesPanel.d.ts +3 -0
  134. package/dist/components/RightPanel/PropertiesPanel.d.ts.map +1 -0
  135. package/dist/components/RightPanel/RightPanel.d.ts +3 -0
  136. package/dist/components/RightPanel/RightPanel.d.ts.map +1 -0
  137. package/dist/components/RightPanel/googleFonts.d.ts +39 -0
  138. package/dist/components/RightPanel/googleFonts.d.ts.map +1 -0
  139. package/dist/components/RightPanel/index.d.ts +6 -0
  140. package/dist/components/RightPanel/index.d.ts.map +1 -0
  141. package/dist/components/ToolsPanel/ActionButton.d.ts +218 -0
  142. package/dist/components/ToolsPanel/ActionButton.d.ts.map +1 -0
  143. package/dist/components/ToolsPanel/BackToContent.d.ts +3 -0
  144. package/dist/components/ToolsPanel/BackToContent.d.ts.map +1 -0
  145. package/dist/components/ToolsPanel/DeleteButton.d.ts +2 -0
  146. package/dist/components/ToolsPanel/DeleteButton.d.ts.map +1 -0
  147. package/dist/components/ToolsPanel/HelpPanel.d.ts +438 -0
  148. package/dist/components/ToolsPanel/HelpPanel.d.ts.map +1 -0
  149. package/dist/components/ToolsPanel/KeyboardShortcutDialog.d.ts +4 -0
  150. package/dist/components/ToolsPanel/KeyboardShortcutDialog.d.ts.map +1 -0
  151. package/dist/components/ToolsPanel/LockButton.d.ts +2 -0
  152. package/dist/components/ToolsPanel/LockButton.d.ts.map +1 -0
  153. package/dist/components/ToolsPanel/PrimaryTools.d.ts +3 -0
  154. package/dist/components/ToolsPanel/PrimaryTools.d.ts.map +1 -0
  155. package/dist/components/ToolsPanel/ShapesMenu.d.ts +9 -0
  156. package/dist/components/ToolsPanel/ShapesMenu.d.ts.map +1 -0
  157. package/dist/components/ToolsPanel/StatusBar.d.ts +2 -0
  158. package/dist/components/ToolsPanel/StatusBar.d.ts.map +1 -0
  159. package/dist/components/ToolsPanel/ToolsPanel.d.ts +7 -0
  160. package/dist/components/ToolsPanel/ToolsPanel.d.ts.map +1 -0
  161. package/dist/components/ToolsPanel/index.d.ts +2 -0
  162. package/dist/components/ToolsPanel/index.d.ts.map +1 -0
  163. package/dist/components/TopPanel/LanguageMenu/LanguageMenu.d.ts +2 -0
  164. package/dist/components/TopPanel/LanguageMenu/LanguageMenu.d.ts.map +1 -0
  165. package/dist/components/TopPanel/Menu/Menu.d.ts +7 -0
  166. package/dist/components/TopPanel/Menu/Menu.d.ts.map +1 -0
  167. package/dist/components/TopPanel/Menu/index.d.ts +1 -0
  168. package/dist/components/TopPanel/Menu/index.d.ts.map +1 -0
  169. package/dist/components/TopPanel/MultiplayerMenu/MultiplayerMenu.d.ts +2 -0
  170. package/dist/components/TopPanel/MultiplayerMenu/MultiplayerMenu.d.ts.map +1 -0
  171. package/dist/components/TopPanel/MultiplayerMenu/index.d.ts +2 -0
  172. package/dist/components/TopPanel/MultiplayerMenu/index.d.ts.map +1 -0
  173. package/dist/components/TopPanel/PageMenu/PageMenu.d.ts +219 -0
  174. package/dist/components/TopPanel/PageMenu/PageMenu.d.ts.map +1 -0
  175. package/dist/components/TopPanel/PageMenu/index.d.ts +2 -0
  176. package/dist/components/TopPanel/PageMenu/index.d.ts.map +1 -0
  177. package/dist/components/TopPanel/PageOptionsDialog/PageOptionsDialog.d.ts +443 -0
  178. package/dist/components/TopPanel/PageOptionsDialog/PageOptionsDialog.d.ts.map +1 -0
  179. package/dist/components/TopPanel/PageOptionsDialog/index.d.ts +2 -0
  180. package/dist/components/TopPanel/PageOptionsDialog/index.d.ts.map +1 -0
  181. package/dist/components/TopPanel/PreferencesMenu/PreferencesMenu.d.ts +2 -0
  182. package/dist/components/TopPanel/PreferencesMenu/PreferencesMenu.d.ts.map +1 -0
  183. package/dist/components/TopPanel/PreferencesMenu/index.d.ts +2 -0
  184. package/dist/components/TopPanel/PreferencesMenu/index.d.ts.map +1 -0
  185. package/dist/components/TopPanel/StyleMenu/StyleMenu.d.ts +221 -0
  186. package/dist/components/TopPanel/StyleMenu/StyleMenu.d.ts.map +1 -0
  187. package/dist/components/TopPanel/StyleMenu/index.d.ts +2 -0
  188. package/dist/components/TopPanel/StyleMenu/index.d.ts.map +1 -0
  189. package/dist/components/TopPanel/TopPanel.d.ts +13 -0
  190. package/dist/components/TopPanel/TopPanel.d.ts.map +1 -0
  191. package/dist/components/TopPanel/ZoomMenu/ZoomMenu.d.ts +2 -0
  192. package/dist/components/TopPanel/ZoomMenu/ZoomMenu.d.ts.map +1 -0
  193. package/dist/components/TopPanel/ZoomMenu/index.d.ts +2 -0
  194. package/dist/components/TopPanel/ZoomMenu/index.d.ts.map +1 -0
  195. package/dist/components/TopPanel/index.d.ts +2 -0
  196. package/dist/components/TopPanel/index.d.ts.map +1 -0
  197. package/dist/components/breakpoints.d.ts +2 -0
  198. package/dist/components/breakpoints.d.ts.map +1 -0
  199. package/dist/components/preventEvent.d.ts +2 -0
  200. package/dist/components/preventEvent.d.ts.map +1 -0
  201. package/dist/components/stopPropagation.d.ts +3 -0
  202. package/dist/components/stopPropagation.d.ts.map +1 -0
  203. package/dist/constants.d.ts +25 -0
  204. package/dist/constants.d.ts.map +1 -0
  205. package/dist/hooks/index.d.ts +8 -0
  206. package/dist/hooks/index.d.ts.map +1 -0
  207. package/dist/hooks/useCursor.d.ts +3 -0
  208. package/dist/hooks/useCursor.d.ts.map +1 -0
  209. package/dist/hooks/useDialog.d.ts +14 -0
  210. package/dist/hooks/useDialog.d.ts.map +1 -0
  211. package/dist/hooks/useFileSystem.d.ts +10 -0
  212. package/dist/hooks/useFileSystem.d.ts.map +1 -0
  213. package/dist/hooks/useFileSystemHandlers.d.ts +9 -0
  214. package/dist/hooks/useFileSystemHandlers.d.ts.map +1 -0
  215. package/dist/hooks/useKeyboardShortcuts.d.ts +3 -0
  216. package/dist/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  217. package/dist/hooks/useTelvaApp.d.ts +7 -0
  218. package/dist/hooks/useTelvaApp.d.ts.map +1 -0
  219. package/dist/hooks/useTheme.d.ts +6 -0
  220. package/dist/hooks/useTheme.d.ts.map +1 -0
  221. package/dist/hooks/useTranslation.d.ts +3 -0
  222. package/dist/hooks/useTranslation.d.ts.map +1 -0
  223. package/dist/index.d.ts +8 -0
  224. package/dist/index.d.ts.map +1 -0
  225. package/dist/index.js +39 -0
  226. package/dist/index.js.map +7 -0
  227. package/dist/index.mjs +30157 -0
  228. package/dist/index.mjs.map +7 -0
  229. package/dist/state/IdbClipboard.d.ts +4 -0
  230. package/dist/state/IdbClipboard.d.ts.map +1 -0
  231. package/dist/state/StateManager/StateManager.d.ts +197 -0
  232. package/dist/state/StateManager/StateManager.d.ts.map +1 -0
  233. package/dist/state/StateManager/copy.d.ts +9 -0
  234. package/dist/state/StateManager/copy.d.ts.map +1 -0
  235. package/dist/state/StateManager/index.d.ts +2 -0
  236. package/dist/state/StateManager/index.d.ts.map +1 -0
  237. package/dist/state/TVDR.d.ts +79 -0
  238. package/dist/state/TVDR.d.ts.map +1 -0
  239. package/dist/state/TelvaApp.d.ts +968 -0
  240. package/dist/state/TelvaApp.d.ts.map +1 -0
  241. package/dist/state/commands/alignShapes/alignShapes.d.ts +4 -0
  242. package/dist/state/commands/alignShapes/alignShapes.d.ts.map +1 -0
  243. package/dist/state/commands/alignShapes/index.d.ts +2 -0
  244. package/dist/state/commands/alignShapes/index.d.ts.map +1 -0
  245. package/dist/state/commands/changePage/changePage.d.ts +4 -0
  246. package/dist/state/commands/changePage/changePage.d.ts.map +1 -0
  247. package/dist/state/commands/changePage/index.d.ts +2 -0
  248. package/dist/state/commands/changePage/index.d.ts.map +1 -0
  249. package/dist/state/commands/createPage/createPage.d.ts +4 -0
  250. package/dist/state/commands/createPage/createPage.d.ts.map +1 -0
  251. package/dist/state/commands/createPage/index.d.ts +2 -0
  252. package/dist/state/commands/createPage/index.d.ts.map +1 -0
  253. package/dist/state/commands/createShapes/createShapes.d.ts +4 -0
  254. package/dist/state/commands/createShapes/createShapes.d.ts.map +1 -0
  255. package/dist/state/commands/createShapes/index.d.ts +2 -0
  256. package/dist/state/commands/createShapes/index.d.ts.map +1 -0
  257. package/dist/state/commands/deletePage/deletePage.d.ts +4 -0
  258. package/dist/state/commands/deletePage/deletePage.d.ts.map +1 -0
  259. package/dist/state/commands/deletePage/index.d.ts +2 -0
  260. package/dist/state/commands/deletePage/index.d.ts.map +1 -0
  261. package/dist/state/commands/deleteShapes/deleteShapes.d.ts +4 -0
  262. package/dist/state/commands/deleteShapes/deleteShapes.d.ts.map +1 -0
  263. package/dist/state/commands/deleteShapes/index.d.ts +2 -0
  264. package/dist/state/commands/deleteShapes/index.d.ts.map +1 -0
  265. package/dist/state/commands/distributeShapes/distributeShapes.d.ts +4 -0
  266. package/dist/state/commands/distributeShapes/distributeShapes.d.ts.map +1 -0
  267. package/dist/state/commands/distributeShapes/index.d.ts +2 -0
  268. package/dist/state/commands/distributeShapes/index.d.ts.map +1 -0
  269. package/dist/state/commands/duplicatePage/duplicatePage.d.ts +4 -0
  270. package/dist/state/commands/duplicatePage/duplicatePage.d.ts.map +1 -0
  271. package/dist/state/commands/duplicatePage/index.d.ts +2 -0
  272. package/dist/state/commands/duplicatePage/index.d.ts.map +1 -0
  273. package/dist/state/commands/duplicateShapes/duplicateShapes.d.ts +4 -0
  274. package/dist/state/commands/duplicateShapes/duplicateShapes.d.ts.map +1 -0
  275. package/dist/state/commands/duplicateShapes/index.d.ts +2 -0
  276. package/dist/state/commands/duplicateShapes/index.d.ts.map +1 -0
  277. package/dist/state/commands/flipShapes/flipShapes.d.ts +5 -0
  278. package/dist/state/commands/flipShapes/flipShapes.d.ts.map +1 -0
  279. package/dist/state/commands/flipShapes/index.d.ts +2 -0
  280. package/dist/state/commands/flipShapes/index.d.ts.map +1 -0
  281. package/dist/state/commands/groupShapes/groupShapes.d.ts +4 -0
  282. package/dist/state/commands/groupShapes/groupShapes.d.ts.map +1 -0
  283. package/dist/state/commands/groupShapes/index.d.ts +2 -0
  284. package/dist/state/commands/groupShapes/index.d.ts.map +1 -0
  285. package/dist/state/commands/index.d.ts +27 -0
  286. package/dist/state/commands/index.d.ts.map +1 -0
  287. package/dist/state/commands/insertContent/index.d.ts +2 -0
  288. package/dist/state/commands/insertContent/index.d.ts.map +1 -0
  289. package/dist/state/commands/insertContent/insertContent.d.ts +12 -0
  290. package/dist/state/commands/insertContent/insertContent.d.ts.map +1 -0
  291. package/dist/state/commands/movePage/index.d.ts +2 -0
  292. package/dist/state/commands/movePage/index.d.ts.map +1 -0
  293. package/dist/state/commands/movePage/movePage.d.ts +4 -0
  294. package/dist/state/commands/movePage/movePage.d.ts.map +1 -0
  295. package/dist/state/commands/moveShapesToPage/index.d.ts +2 -0
  296. package/dist/state/commands/moveShapesToPage/index.d.ts.map +1 -0
  297. package/dist/state/commands/moveShapesToPage/moveShapesToPage.d.ts +5 -0
  298. package/dist/state/commands/moveShapesToPage/moveShapesToPage.d.ts.map +1 -0
  299. package/dist/state/commands/renamePage/index.d.ts +2 -0
  300. package/dist/state/commands/renamePage/index.d.ts.map +1 -0
  301. package/dist/state/commands/renamePage/renamePage.d.ts +4 -0
  302. package/dist/state/commands/renamePage/renamePage.d.ts.map +1 -0
  303. package/dist/state/commands/reorderShapes/index.d.ts +2 -0
  304. package/dist/state/commands/reorderShapes/index.d.ts.map +1 -0
  305. package/dist/state/commands/reorderShapes/reorderShapes.d.ts +4 -0
  306. package/dist/state/commands/reorderShapes/reorderShapes.d.ts.map +1 -0
  307. package/dist/state/commands/resetBounds/index.d.ts +2 -0
  308. package/dist/state/commands/resetBounds/index.d.ts.map +1 -0
  309. package/dist/state/commands/resetBounds/resetBounds.d.ts +4 -0
  310. package/dist/state/commands/resetBounds/resetBounds.d.ts.map +1 -0
  311. package/dist/state/commands/rotateShapes/index.d.ts +2 -0
  312. package/dist/state/commands/rotateShapes/index.d.ts.map +1 -0
  313. package/dist/state/commands/rotateShapes/rotateShapes.d.ts +4 -0
  314. package/dist/state/commands/rotateShapes/rotateShapes.d.ts.map +1 -0
  315. package/dist/state/commands/setShapesProps/index.d.ts +2 -0
  316. package/dist/state/commands/setShapesProps/index.d.ts.map +1 -0
  317. package/dist/state/commands/setShapesProps/setShapesProps.d.ts +4 -0
  318. package/dist/state/commands/setShapesProps/setShapesProps.d.ts.map +1 -0
  319. package/dist/state/commands/shared/getIncrementedName.d.ts +8 -0
  320. package/dist/state/commands/shared/getIncrementedName.d.ts.map +1 -0
  321. package/dist/state/commands/shared/index.d.ts +3 -0
  322. package/dist/state/commands/shared/index.d.ts.map +1 -0
  323. package/dist/state/commands/shared/removeShapesFromPage.d.ts +7 -0
  324. package/dist/state/commands/shared/removeShapesFromPage.d.ts.map +1 -0
  325. package/dist/state/commands/stretchShapes/index.d.ts +2 -0
  326. package/dist/state/commands/stretchShapes/index.d.ts.map +1 -0
  327. package/dist/state/commands/stretchShapes/stretchShapes.d.ts +5 -0
  328. package/dist/state/commands/stretchShapes/stretchShapes.d.ts.map +1 -0
  329. package/dist/state/commands/styleShapes/index.d.ts +2 -0
  330. package/dist/state/commands/styleShapes/index.d.ts.map +1 -0
  331. package/dist/state/commands/styleShapes/styleShapes.d.ts +4 -0
  332. package/dist/state/commands/styleShapes/styleShapes.d.ts.map +1 -0
  333. package/dist/state/commands/toggleShapesDecoration/index.d.ts +2 -0
  334. package/dist/state/commands/toggleShapesDecoration/index.d.ts.map +1 -0
  335. package/dist/state/commands/toggleShapesDecoration/toggleShapesDecoration.d.ts +4 -0
  336. package/dist/state/commands/toggleShapesDecoration/toggleShapesDecoration.d.ts.map +1 -0
  337. package/dist/state/commands/toggleShapesProp/index.d.ts +2 -0
  338. package/dist/state/commands/toggleShapesProp/index.d.ts.map +1 -0
  339. package/dist/state/commands/toggleShapesProp/toggleShapesProp.d.ts +4 -0
  340. package/dist/state/commands/toggleShapesProp/toggleShapesProp.d.ts.map +1 -0
  341. package/dist/state/commands/translateShapes/index.d.ts +2 -0
  342. package/dist/state/commands/translateShapes/index.d.ts.map +1 -0
  343. package/dist/state/commands/translateShapes/translateShapes.d.ts +4 -0
  344. package/dist/state/commands/translateShapes/translateShapes.d.ts.map +1 -0
  345. package/dist/state/commands/ungroupShapes/index.d.ts +2 -0
  346. package/dist/state/commands/ungroupShapes/index.d.ts.map +1 -0
  347. package/dist/state/commands/ungroupShapes/ungroupShapes.d.ts +5 -0
  348. package/dist/state/commands/ungroupShapes/ungroupShapes.d.ts.map +1 -0
  349. package/dist/state/commands/updateShapes/index.d.ts +2 -0
  350. package/dist/state/commands/updateShapes/index.d.ts.map +1 -0
  351. package/dist/state/commands/updateShapes/updateShapes.d.ts +6 -0
  352. package/dist/state/commands/updateShapes/updateShapes.d.ts.map +1 -0
  353. package/dist/state/data/filesystem.d.ts +26 -0
  354. package/dist/state/data/filesystem.d.ts.map +1 -0
  355. package/dist/state/data/index.d.ts +4 -0
  356. package/dist/state/data/index.d.ts.map +1 -0
  357. package/dist/state/data/migrate.d.ts +3 -0
  358. package/dist/state/data/migrate.d.ts.map +1 -0
  359. package/dist/state/index.d.ts +3 -0
  360. package/dist/state/index.d.ts.map +1 -0
  361. package/dist/state/internal.d.ts +5 -0
  362. package/dist/state/internal.d.ts.map +1 -0
  363. package/dist/state/reactRegistry.d.ts +27 -0
  364. package/dist/state/reactRegistry.d.ts.map +1 -0
  365. package/dist/state/sessions/ArrowSession/ArrowSession.d.ts +24 -0
  366. package/dist/state/sessions/ArrowSession/ArrowSession.d.ts.map +1 -0
  367. package/dist/state/sessions/ArrowSession/index.d.ts +2 -0
  368. package/dist/state/sessions/ArrowSession/index.d.ts.map +1 -0
  369. package/dist/state/sessions/BaseSession.d.ts +14 -0
  370. package/dist/state/sessions/BaseSession.d.ts.map +1 -0
  371. package/dist/state/sessions/BrushSession/BrushSession.d.ts +21 -0
  372. package/dist/state/sessions/BrushSession/BrushSession.d.ts.map +1 -0
  373. package/dist/state/sessions/BrushSession/index.d.ts +2 -0
  374. package/dist/state/sessions/BrushSession/index.d.ts.map +1 -0
  375. package/dist/state/sessions/DrawSession/DrawSession.d.ts +45 -0
  376. package/dist/state/sessions/DrawSession/DrawSession.d.ts.map +1 -0
  377. package/dist/state/sessions/DrawSession/index.d.ts +2 -0
  378. package/dist/state/sessions/DrawSession/index.d.ts.map +1 -0
  379. package/dist/state/sessions/EditSession/EditSession.d.ts +17 -0
  380. package/dist/state/sessions/EditSession/EditSession.d.ts.map +1 -0
  381. package/dist/state/sessions/EditSession/index.d.ts +2 -0
  382. package/dist/state/sessions/EditSession/index.d.ts.map +1 -0
  383. package/dist/state/sessions/EraseSession/EraseSession.d.ts +27 -0
  384. package/dist/state/sessions/EraseSession/EraseSession.d.ts.map +1 -0
  385. package/dist/state/sessions/EraseSession/index.d.ts +2 -0
  386. package/dist/state/sessions/EraseSession/index.d.ts.map +1 -0
  387. package/dist/state/sessions/GridSession/GridSession.d.ts +24 -0
  388. package/dist/state/sessions/GridSession/GridSession.d.ts.map +1 -0
  389. package/dist/state/sessions/GridSession/index.d.ts +2 -0
  390. package/dist/state/sessions/GridSession/index.d.ts.map +1 -0
  391. package/dist/state/sessions/HandleSession/HandleSession.d.ts +19 -0
  392. package/dist/state/sessions/HandleSession/HandleSession.d.ts.map +1 -0
  393. package/dist/state/sessions/HandleSession/index.d.ts +2 -0
  394. package/dist/state/sessions/HandleSession/index.d.ts.map +1 -0
  395. package/dist/state/sessions/RotateSession/RotateSession.d.ts +22 -0
  396. package/dist/state/sessions/RotateSession/RotateSession.d.ts.map +1 -0
  397. package/dist/state/sessions/RotateSession/index.d.ts +2 -0
  398. package/dist/state/sessions/RotateSession/index.d.ts.map +1 -0
  399. package/dist/state/sessions/TransformSession/TransformSession.d.ts +41 -0
  400. package/dist/state/sessions/TransformSession/TransformSession.d.ts.map +1 -0
  401. package/dist/state/sessions/TransformSession/index.d.ts +2 -0
  402. package/dist/state/sessions/TransformSession/index.d.ts.map +1 -0
  403. package/dist/state/sessions/TransformSingleSession/TransformSingleSession.d.ts +32 -0
  404. package/dist/state/sessions/TransformSingleSession/TransformSingleSession.d.ts.map +1 -0
  405. package/dist/state/sessions/TransformSingleSession/index.d.ts +2 -0
  406. package/dist/state/sessions/TransformSingleSession/index.d.ts.map +1 -0
  407. package/dist/state/sessions/TranslateLabelSession/TranslateLabelSession.d.ts +17 -0
  408. package/dist/state/sessions/TranslateLabelSession/TranslateLabelSession.d.ts.map +1 -0
  409. package/dist/state/sessions/TranslateLabelSession/index.d.ts +2 -0
  410. package/dist/state/sessions/TranslateLabelSession/index.d.ts.map +1 -0
  411. package/dist/state/sessions/TranslateSession/TranslateSession.d.ts +49 -0
  412. package/dist/state/sessions/TranslateSession/TranslateSession.d.ts.map +1 -0
  413. package/dist/state/sessions/TranslateSession/index.d.ts +2 -0
  414. package/dist/state/sessions/TranslateSession/index.d.ts.map +1 -0
  415. package/dist/state/sessions/index.d.ts +33 -0
  416. package/dist/state/sessions/index.d.ts.map +1 -0
  417. package/dist/state/shapes/ArrowUtil/ArrowUtil.d.ts +34 -0
  418. package/dist/state/shapes/ArrowUtil/ArrowUtil.d.ts.map +1 -0
  419. package/dist/state/shapes/ArrowUtil/arrowHelpers.d.ts +21 -0
  420. package/dist/state/shapes/ArrowUtil/arrowHelpers.d.ts.map +1 -0
  421. package/dist/state/shapes/ArrowUtil/components/ArrowHead.d.ts +9 -0
  422. package/dist/state/shapes/ArrowUtil/components/ArrowHead.d.ts.map +1 -0
  423. package/dist/state/shapes/ArrowUtil/components/CurvedArrow.tsx.d.ts +17 -0
  424. package/dist/state/shapes/ArrowUtil/components/CurvedArrow.tsx.d.ts.map +1 -0
  425. package/dist/state/shapes/ArrowUtil/components/StraightArrow.d.ts +17 -0
  426. package/dist/state/shapes/ArrowUtil/components/StraightArrow.d.ts.map +1 -0
  427. package/dist/state/shapes/ArrowUtil/index.d.ts +2 -0
  428. package/dist/state/shapes/ArrowUtil/index.d.ts.map +1 -0
  429. package/dist/state/shapes/DrawUtil/DrawUtil.d.ts +31 -0
  430. package/dist/state/shapes/DrawUtil/DrawUtil.d.ts.map +1 -0
  431. package/dist/state/shapes/DrawUtil/drawHelpers.d.ts +27 -0
  432. package/dist/state/shapes/DrawUtil/drawHelpers.d.ts.map +1 -0
  433. package/dist/state/shapes/DrawUtil/index.d.ts +2 -0
  434. package/dist/state/shapes/DrawUtil/index.d.ts.map +1 -0
  435. package/dist/state/shapes/EllipseUtil/EllipseUtil.d.ts +36 -0
  436. package/dist/state/shapes/EllipseUtil/EllipseUtil.d.ts.map +1 -0
  437. package/dist/state/shapes/EllipseUtil/components/DashedEllipse.d.ts +12 -0
  438. package/dist/state/shapes/EllipseUtil/components/DashedEllipse.d.ts.map +1 -0
  439. package/dist/state/shapes/EllipseUtil/components/DrawEllipse.d.ts +12 -0
  440. package/dist/state/shapes/EllipseUtil/components/DrawEllipse.d.ts.map +1 -0
  441. package/dist/state/shapes/EllipseUtil/ellipseHelpers.d.ts +5 -0
  442. package/dist/state/shapes/EllipseUtil/ellipseHelpers.d.ts.map +1 -0
  443. package/dist/state/shapes/EllipseUtil/index.d.ts +2 -0
  444. package/dist/state/shapes/EllipseUtil/index.d.ts.map +1 -0
  445. package/dist/state/shapes/GroupUtil/GroupUtil.d.ts +22 -0
  446. package/dist/state/shapes/GroupUtil/GroupUtil.d.ts.map +1 -0
  447. package/dist/state/shapes/GroupUtil/index.d.ts +2 -0
  448. package/dist/state/shapes/GroupUtil/index.d.ts.map +1 -0
  449. package/dist/state/shapes/ImageUtil/ImageUtil.d.ts +29 -0
  450. package/dist/state/shapes/ImageUtil/ImageUtil.d.ts.map +1 -0
  451. package/dist/state/shapes/ImageUtil/index.d.ts +2 -0
  452. package/dist/state/shapes/ImageUtil/index.d.ts.map +1 -0
  453. package/dist/state/shapes/PenUtil/PenUtil.d.ts +34 -0
  454. package/dist/state/shapes/PenUtil/PenUtil.d.ts.map +1 -0
  455. package/dist/state/shapes/PenUtil/index.d.ts +3 -0
  456. package/dist/state/shapes/PenUtil/index.d.ts.map +1 -0
  457. package/dist/state/shapes/PenUtil/penHelpers.d.ts +25 -0
  458. package/dist/state/shapes/PenUtil/penHelpers.d.ts.map +1 -0
  459. package/dist/state/shapes/ReactComponentUtil/ReactComponentUtil.d.ts +29 -0
  460. package/dist/state/shapes/ReactComponentUtil/ReactComponentUtil.d.ts.map +1 -0
  461. package/dist/state/shapes/RectangleUtil/RectangleUtil.d.ts +27 -0
  462. package/dist/state/shapes/RectangleUtil/RectangleUtil.d.ts.map +1 -0
  463. package/dist/state/shapes/RectangleUtil/components/BindingIndicator.d.ts +7 -0
  464. package/dist/state/shapes/RectangleUtil/components/BindingIndicator.d.ts.map +1 -0
  465. package/dist/state/shapes/RectangleUtil/components/DashedRectangle.d.ts +12 -0
  466. package/dist/state/shapes/RectangleUtil/components/DashedRectangle.d.ts.map +1 -0
  467. package/dist/state/shapes/RectangleUtil/components/DrawRectangle.d.ts +12 -0
  468. package/dist/state/shapes/RectangleUtil/components/DrawRectangle.d.ts.map +1 -0
  469. package/dist/state/shapes/RectangleUtil/index.d.ts +2 -0
  470. package/dist/state/shapes/RectangleUtil/index.d.ts.map +1 -0
  471. package/dist/state/shapes/RectangleUtil/rectangleHelpers.d.ts +4 -0
  472. package/dist/state/shapes/RectangleUtil/rectangleHelpers.d.ts.map +1 -0
  473. package/dist/state/shapes/StickyUtil/StickyUtil.d.ts +30 -0
  474. package/dist/state/shapes/StickyUtil/StickyUtil.d.ts.map +1 -0
  475. package/dist/state/shapes/StickyUtil/index.d.ts +2 -0
  476. package/dist/state/shapes/StickyUtil/index.d.ts.map +1 -0
  477. package/dist/state/shapes/TVShapeUtil.d.ts +36 -0
  478. package/dist/state/shapes/TVShapeUtil.d.ts.map +1 -0
  479. package/dist/state/shapes/TextUtil/TextUtil.d.ts +53 -0
  480. package/dist/state/shapes/TextUtil/TextUtil.d.ts.map +1 -0
  481. package/dist/state/shapes/TextUtil/index.d.ts +2 -0
  482. package/dist/state/shapes/TextUtil/index.d.ts.map +1 -0
  483. package/dist/state/shapes/TriangleUtil/TriangleUtil.d.ts +36 -0
  484. package/dist/state/shapes/TriangleUtil/TriangleUtil.d.ts.map +1 -0
  485. package/dist/state/shapes/TriangleUtil/components/DashedTriangle.d.ts +12 -0
  486. package/dist/state/shapes/TriangleUtil/components/DashedTriangle.d.ts.map +1 -0
  487. package/dist/state/shapes/TriangleUtil/components/DrawTriangle.d.ts +12 -0
  488. package/dist/state/shapes/TriangleUtil/components/DrawTriangle.d.ts.map +1 -0
  489. package/dist/state/shapes/TriangleUtil/components/TriangleBindingIndicator.d.ts +6 -0
  490. package/dist/state/shapes/TriangleUtil/components/TriangleBindingIndicator.d.ts.map +1 -0
  491. package/dist/state/shapes/TriangleUtil/index.d.ts +2 -0
  492. package/dist/state/shapes/TriangleUtil/index.d.ts.map +1 -0
  493. package/dist/state/shapes/TriangleUtil/triangleHelpers.d.ts +6 -0
  494. package/dist/state/shapes/TriangleUtil/triangleHelpers.d.ts.map +1 -0
  495. package/dist/state/shapes/VideoUtil/VideoUtil.d.ts +31 -0
  496. package/dist/state/shapes/VideoUtil/VideoUtil.d.ts.map +1 -0
  497. package/dist/state/shapes/VideoUtil/index.d.ts +2 -0
  498. package/dist/state/shapes/VideoUtil/index.d.ts.map +1 -0
  499. package/dist/state/shapes/index.d.ts +42 -0
  500. package/dist/state/shapes/index.d.ts.map +1 -0
  501. package/dist/state/shapes/shared/LabelMask.d.ts +11 -0
  502. package/dist/state/shapes/shared/LabelMask.d.ts.map +1 -0
  503. package/dist/state/shapes/shared/PolygonUtils.d.ts +18 -0
  504. package/dist/state/shapes/shared/PolygonUtils.d.ts.map +1 -0
  505. package/dist/state/shapes/shared/TextAreaUtils.d.ts +19 -0
  506. package/dist/state/shapes/shared/TextAreaUtils.d.ts.map +1 -0
  507. package/dist/state/shapes/shared/TextLabel.d.ts +18 -0
  508. package/dist/state/shapes/shared/TextLabel.d.ts.map +1 -0
  509. package/dist/state/shapes/shared/getBoundsRectangle.d.ts +10 -0
  510. package/dist/state/shapes/shared/getBoundsRectangle.d.ts.map +1 -0
  511. package/dist/state/shapes/shared/getTextAlign.d.ts +3 -0
  512. package/dist/state/shapes/shared/getTextAlign.d.ts.map +1 -0
  513. package/dist/state/shapes/shared/getTextSize.d.ts +3 -0
  514. package/dist/state/shapes/shared/getTextSize.d.ts.map +1 -0
  515. package/dist/state/shapes/shared/getTextSvgElement.d.ts +3 -0
  516. package/dist/state/shapes/shared/getTextSvgElement.d.ts.map +1 -0
  517. package/dist/state/shapes/shared/gradient-fill.d.ts +11 -0
  518. package/dist/state/shapes/shared/gradient-fill.d.ts.map +1 -0
  519. package/dist/state/shapes/shared/index.d.ts +13 -0
  520. package/dist/state/shapes/shared/index.d.ts.map +1 -0
  521. package/dist/state/shapes/shared/shape-styles.d.ts +24 -0
  522. package/dist/state/shapes/shared/shape-styles.d.ts.map +1 -0
  523. package/dist/state/shapes/shared/transformRectangle.d.ts +19 -0
  524. package/dist/state/shapes/shared/transformRectangle.d.ts.map +1 -0
  525. package/dist/state/shapes/shared/transformSingleRectangle.d.ts +13 -0
  526. package/dist/state/shapes/shared/transformSingleRectangle.d.ts.map +1 -0
  527. package/dist/state/tools/ArrowTool/ArrowTool.d.ts +8 -0
  528. package/dist/state/tools/ArrowTool/ArrowTool.d.ts.map +1 -0
  529. package/dist/state/tools/ArrowTool/index.d.ts +2 -0
  530. package/dist/state/tools/ArrowTool/index.d.ts.map +1 -0
  531. package/dist/state/tools/BaseTool.d.ts +28 -0
  532. package/dist/state/tools/BaseTool.d.ts.map +1 -0
  533. package/dist/state/tools/DrawTool/DrawTool.d.ts +13 -0
  534. package/dist/state/tools/DrawTool/DrawTool.d.ts.map +1 -0
  535. package/dist/state/tools/DrawTool/index.d.ts +2 -0
  536. package/dist/state/tools/DrawTool/index.d.ts.map +1 -0
  537. package/dist/state/tools/EllipseTool/EllipseTool.d.ts +8 -0
  538. package/dist/state/tools/EllipseTool/EllipseTool.d.ts.map +1 -0
  539. package/dist/state/tools/EllipseTool/index.d.ts +2 -0
  540. package/dist/state/tools/EllipseTool/index.d.ts.map +1 -0
  541. package/dist/state/tools/EraseTool/EraseTool.d.ts +17 -0
  542. package/dist/state/tools/EraseTool/EraseTool.d.ts.map +1 -0
  543. package/dist/state/tools/EraseTool/index.d.ts +2 -0
  544. package/dist/state/tools/EraseTool/index.d.ts.map +1 -0
  545. package/dist/state/tools/LineTool/LineTool.d.ts +8 -0
  546. package/dist/state/tools/LineTool/LineTool.d.ts.map +1 -0
  547. package/dist/state/tools/LineTool/index.d.ts +2 -0
  548. package/dist/state/tools/LineTool/index.d.ts.map +1 -0
  549. package/dist/state/tools/PenEditTool.d.ts +37 -0
  550. package/dist/state/tools/PenEditTool.d.ts.map +1 -0
  551. package/dist/state/tools/PenTool/PenTool.d.ts +35 -0
  552. package/dist/state/tools/PenTool/PenTool.d.ts.map +1 -0
  553. package/dist/state/tools/PenTool/index.d.ts +2 -0
  554. package/dist/state/tools/PenTool/index.d.ts.map +1 -0
  555. package/dist/state/tools/RectangleTool/RectangleTool.d.ts +8 -0
  556. package/dist/state/tools/RectangleTool/RectangleTool.d.ts.map +1 -0
  557. package/dist/state/tools/RectangleTool/index.d.ts +2 -0
  558. package/dist/state/tools/RectangleTool/index.d.ts.map +1 -0
  559. package/dist/state/tools/SelectTool/SelectTool.d.ts +324 -0
  560. package/dist/state/tools/SelectTool/SelectTool.d.ts.map +1 -0
  561. package/dist/state/tools/SelectTool/index.d.ts +2 -0
  562. package/dist/state/tools/SelectTool/index.d.ts.map +1 -0
  563. package/dist/state/tools/StickyTool/StickyTool.d.ts +10 -0
  564. package/dist/state/tools/StickyTool/StickyTool.d.ts.map +1 -0
  565. package/dist/state/tools/StickyTool/index.d.ts +2 -0
  566. package/dist/state/tools/StickyTool/index.d.ts.map +1 -0
  567. package/dist/state/tools/TextTool/TextTool.d.ts +14 -0
  568. package/dist/state/tools/TextTool/TextTool.d.ts.map +1 -0
  569. package/dist/state/tools/TextTool/index.d.ts +2 -0
  570. package/dist/state/tools/TextTool/index.d.ts.map +1 -0
  571. package/dist/state/tools/TriangleTool/TriangleTool.d.ts +8 -0
  572. package/dist/state/tools/TriangleTool/TriangleTool.d.ts.map +1 -0
  573. package/dist/state/tools/TriangleTool/index.d.ts +2 -0
  574. package/dist/state/tools/TriangleTool/index.d.ts.map +1 -0
  575. package/dist/state/tools/index.d.ts +31 -0
  576. package/dist/state/tools/index.d.ts.map +1 -0
  577. package/dist/styles/index.d.ts +2 -0
  578. package/dist/styles/index.d.ts.map +1 -0
  579. package/dist/styles/stitches.config.d.ts +475 -0
  580. package/dist/styles/stitches.config.d.ts.map +1 -0
  581. package/dist/translations/index.d.ts +2 -0
  582. package/dist/translations/index.d.ts.map +1 -0
  583. package/dist/translations/translations.d.ts +11 -0
  584. package/dist/translations/translations.d.ts.map +1 -0
  585. package/dist/types.d.ts +493 -0
  586. package/dist/types.d.ts.map +1 -0
  587. package/package.json +108 -0
package/dist/index.js ADDED
@@ -0,0 +1,39 @@
1
+ "use strict";var kh=Object.create;var Xr=Object.defineProperty,Ch=Object.defineProperties,wh=Object.getOwnPropertyDescriptor,Ih=Object.getOwnPropertyDescriptors,Ph=Object.getOwnPropertyNames,Bi=Object.getOwnPropertySymbols,Rh=Object.getPrototypeOf,ba=Object.prototype.hasOwnProperty,jl=Object.prototype.propertyIsEnumerable;var ya=(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={}))ba.call(o,e)&&ya(i,e,o[e]);if(Bi)for(var e of Bi(o))jl.call(o,e)&&ya(i,e,o[e]);return i},I=(i,o)=>Ch(i,Ih(o));var Le=(i,o)=>{var e={};for(var t in i)ba.call(i,t)&&o.indexOf(t)<0&&(e[t]=i[t]);if(i!=null&&Bi)for(var t of Bi(i))o.indexOf(t)<0&&jl.call(i,t)&&(e[t]=i[t]);return e};var Dh=(i,o)=>()=>(i&&(o=i(i=0)),o);var va=(i,o)=>{for(var e in o)Xr(i,e,{get:o[e],enumerable:!0})},Mi=(i,o,e,t)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of Ph(o))!ba.call(i,n)&&n!==e&&Xr(i,n,{get:()=>o[n],enumerable:!(t=wh(o,n))||t.enumerable});return i},Li=(i,o,e)=>(Mi(i,o,"default"),e&&Mi(e,o,"default")),H=(i,o,e)=>(e=i!=null?kh(Rh(i)):{},Mi(o||!i||!i.__esModule?Xr(e,"default",{value:i,enumerable:!0}):e,i)),Eh=i=>Mi(Xr({},"__esModule",{value:!0}),i);var c=(i,o,e)=>(ya(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(d){n(d)}},s=a=>{try{l(e.throw(a))}catch(d){n(d)}},l=a=>a.done?t(a.value):Promise.resolve(a.value).then(r,s);l((e=e.apply(i,o)).next())});var $s={};va($s,{fetchGoogleFonts:()=>zp,getGoogleFontCategories:()=>cS,initGoogleFonts:()=>pl,loadGoogleFont:()=>$p,searchGoogleFonts:()=>dS,setGoogleFontsApiKey:()=>cl});function cl(i){let o=i.replace(/["']/g,"").trim();o!==yi&&(yi=o,vo=[],Si=null)}function zp(){return F(this,null,function*(){return vo.length>0?vo:Si||(Si=(()=>F(this,null,function*(){var i;try{if(!yi)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=${yi}&sort=popularity`,e=yield fetch(o);if(!e.ok)throw new Error(`HTTP ${e.status}: ${e.statusText}`);vo=(i=(yield e.json()).items)!=null?i:[]}catch(o){console.error("[Google Fonts] Failed to fetch font list",o),vo=[]}return vo}))(),Si)})}function dS(i,o){let e=vo;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 cS(){return Array.from(new Set(vo.map(i=>i.category))).filter(Boolean)}function Op(){var i;try{return JSON.parse((i=localStorage.getItem(Fp))!=null?i:"[]")}catch(o){return[]}}function pS(i){try{let o=Op();o.includes(i)||(o.push(i),localStorage.setItem(Fp,JSON.stringify(o)))}catch(o){}}function $p(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),pS(i)}function uS(){typeof window!="undefined"&&Op().forEach(i=>$p(i))}function pl(){uS(),typeof window!="undefined"&&yi&&zp()}var yi,vo,Si,Fp,bi=Dh(()=>{"use strict";yi="",vo=[],Si=null;Fp="telva-loaded-google-fonts"});var By={};va(By,{AlignStyle:()=>Vt,AlignType:()=>Qr,Arrow:()=>xr,ColorStyle:()=>Gi,DashStyle:()=>Jt,Decoration:()=>or,DistributeType:()=>ti,Draw:()=>Vs,Ellipse:()=>As,FlipType:()=>$i,FontSize:()=>ud,FontStyle:()=>Eo,Group:()=>xp,Image:()=>kp,MoveType:()=>Oi,Pen:()=>Ip,ReactComponent:()=>wp,Rectangle:()=>Ms,SessionType:()=>Ae,SizeStyle:()=>ni,Sticky:()=>hi,StretchType:()=>ei,TVAssetType:()=>ji,TVDR:()=>B,TVEventHandler:()=>Jr,TVExportBackground:()=>rr,TVExportType:()=>ro,TVShapeType:()=>oe,TVStatus:()=>At,TVUserStatus:()=>pd,Telva:()=>ky,TelvaApp:()=>In,Text:()=>Tp,Triangle:()=>Ls,Video:()=>Cp,buildCssGradient:()=>Bo,getShapeUtil:()=>rl,shapeUtils:()=>bn,useFileSystem:()=>cd});module.exports=Eh(By);var u3=require("@fontsource/caveat-brush"),h3=require("@fontsource/crimson-pro"),m3=require("@fontsource/dm-sans"),g3=require("@fontsource/recursive"),f3=require("@fontsource/source-code-pro"),S3=require("@fontsource/source-sans-pro"),Se=H(require("react")),Th=require("react-error-boundary"),xh=require("react-intl"),Gl=require("telva-core");var En=require("@radix-ui/react-icons"),Kt=H(require("react")),Zd=require("react-intl");var Ay=require("react/jsx-runtime");var Wl=require("react/jsx-runtime");function Ta(i){let t=i,{size:o=16}=t,e=Le(t,["size"]);return(0,Wl.jsx)("svg",I(S({width:24,height:24},e),{children:(0,Wl.jsx)("circle",{cx:12,cy:12,r:o/2})}))}var Nl=require("react/jsx-runtime");function Ul(){return(0,Nl.jsx)("svg",{width:"24",height:"24",stroke:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,Nl.jsx)("circle",{cx:12,cy:12,r:8,fill:"none",strokeWidth:2.5,strokeLinecap:"round",strokeDasharray:50.26548*.1})})}var Kl=require("react/jsx-runtime"),Bh=`${50.26548*.025} ${50.26548*.1}`;function _l(){return(0,Kl.jsx)("svg",{width:"24",height:"24",stroke:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,Kl.jsx)("circle",{cx:12,cy:12,r:8,fill:"none",strokeWidth:2.5,strokeLinecap:"round",strokeDasharray:Bh})})}var Yl=require("react/jsx-runtime");function Xl(){return(0,Yl.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,Yl.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 Zl=require("react/jsx-runtime");function ql(){return(0,Zl.jsx)("svg",{width:"24",height:"24",stroke:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,Zl.jsx)("circle",{cx:12,cy:12,r:8,fill:"none",strokeWidth:2,strokeLinecap:"round"})})}var Mh=require("react/jsx-runtime");var Jl=require("react/jsx-runtime");function xa(e){var t=e,{flipHorizontal:i}=t,o=Le(t,["flipHorizontal"]);return(0,Jl.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,Jl.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 Ql=require("react/jsx-runtime");function ed(i){return(0,Ql.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,Ql.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 td=require("react/jsx-runtime");function nd(i){return(0,td.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,td.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 od=require("react/jsx-runtime");function rd(i){return(0,od.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,od.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 id(){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 _y=require("react/jsx-runtime");var sd=require("react/jsx-runtime");function ad(){return(0,sd.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,sd.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 io=H(require("@radix-ui/react-dropdown-menu")),sr=require("@radix-ui/react-icons"),Dn=H(require("react")),Yd=require("react-intl");var Ai=require("@stitches/react");var{styled:R,createTheme:Lh}=(0,Ai.createStitches)({themeMap:S({},Ai.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
+ 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))`}}}),ka=Lh({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 Pn=H(require("@radix-ui/react-tooltip"));var dd=require("telva-core");var ld=require("react/jsx-runtime"),Ah=()=>dd.Utils.isDarwin()?"\u2318":"Ctrl";function Vi({variant:i,children:o}){return(0,ld.jsx)(Vh,{variant:i,children:o.split("").map((e,t)=>(0,ld.jsx)("span",{children:e.replace("#",Ah())},t))})}var Vh=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 Hi({children:i,label:o,kbd:e,id:t,side:n="top"}){return(0,Nn.jsx)("span",{id:t,children:(0,Nn.jsx)(Pn.Provider,{children:(0,Nn.jsxs)(Pn.Root,{children:[(0,Nn.jsx)(Pn.Trigger,{dir:"ltr",asChild:!0,children:(0,Nn.jsx)("span",{children:i})}),(0,Nn.jsxs)(Hh,{dir:"ltr",side:n,sideOffset:8,children:[o,e?(0,Nn.jsx)(Vi,{variant:"tooltip",children:e}):null,(0,Nn.jsx)(zh,{})]})]})})})}var Hh=R(Pn.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"}),zh=R(Pn.Arrow,{fill:"$tooltip",margin:"0 8px"});var pn={"@initial":"mobile","@micro":"micro","@sm":"small","@md":"medium","@lg":"large"};var tr=H(require("react"));function cd(){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 zi(){let i=_(),{openDialog:o}=Fi(),e=nr.useCallback(l=>F(this,null,function*(){var a,d;l&&i.callbacks.onOpenProject&&l.preventDefault(),(d=(a=i.callbacks).onNewProject)==null||d.call(a,i,o)}),[i,o]),t=nr.useCallback(l=>{var a,d;l&&i.callbacks.onOpenProject&&l.preventDefault(),(d=(a=i.callbacks).onSaveProject)==null||d.call(a,i)},[i]),n=nr.useCallback(l=>{var a,d;l&&i.callbacks.onOpenProject&&l.preventDefault(),(d=(a=i.callbacks).onSaveProjectAs)==null||d.call(a,i)},[i]),r=nr.useCallback(l=>F(this,null,function*(){var a,d;l&&i.callbacks.onOpenProject&&l.preventDefault(),(d=(a=i.callbacks).onOpenProject)==null||d.call(a,i,o)}),[i,o]),s=nr.useCallback(l=>F(this,null,function*(){var a,d;l&&i.callbacks.onOpenMedia&&l.preventDefault(),(d=(a=i.callbacks).onOpenMedia)==null||d.call(a,i)}),[i]);return{onNewProject:e,onSaveProject:t,onSaveProjectAs:n,onOpenProject:r,onOpenMedia:s}}var Wi=H(require("react")),N=require("react-hotkeys-hook");var Jr=class{constructor(){c(this,"onPinchStart");c(this,"onPinchEnd");c(this,"onPinch");c(this,"onKeyDown");c(this,"onKeyUp");c(this,"onPointerMove");c(this,"onPointerUp");c(this,"onPan");c(this,"onZoom");c(this,"onPointerDown");c(this,"onPointCanvas");c(this,"onDoubleClickCanvas");c(this,"onRightPointCanvas");c(this,"onDragCanvas");c(this,"onReleaseCanvas");c(this,"onPointShape");c(this,"onDoubleClickShape");c(this,"onRightPointShape");c(this,"onDragShape");c(this,"onHoverShape");c(this,"onUnhoverShape");c(this,"onReleaseShape");c(this,"onPointBounds");c(this,"onDoubleClickBounds");c(this,"onRightPointBounds");c(this,"onDragBounds");c(this,"onHoverBounds");c(this,"onUnhoverBounds");c(this,"onReleaseBounds");c(this,"onPointBoundsHandle");c(this,"onDoubleClickBoundsHandle");c(this,"onRightPointBoundsHandle");c(this,"onDragBoundsHandle");c(this,"onHoverBoundsHandle");c(this,"onUnhoverBoundsHandle");c(this,"onReleaseBoundsHandle");c(this,"onPointHandle");c(this,"onDoubleClickHandle");c(this,"onRightPointHandle");c(this,"onDragHandle");c(this,"onHoverHandle");c(this,"onUnhoverHandle");c(this,"onReleaseHandle");c(this,"onShapeBlur");c(this,"onShapeClone")}},pd=(n=>(n.Idle="idle",n.Connecting="connecting",n.Connected="connected",n.Disconnected="disconnected",n))(pd||{}),Ae=(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))(Ae||{}),At=(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))(At||{}),Oi=(n=>(n.Backward="backward",n.Forward="forward",n.ToFront="toFront",n.ToBack="toBack",n))(Oi||{}),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||{}),$i=(e=>(e.Horizontal="horizontal",e.Vertical="vertical",e))($i||{}),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||{}),Gi=(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))(Gi||{}),ni=(t=>(t.Small="small",t.Medium="medium",t.Large="large",t))(ni||{}),Jt=(n=>(n.Draw="draw",n.Solid="solid",n.Dashed="dashed",n.Dotted="dotted",n))(Jt||{}),ud=(n=>(n.Small="small",n.Medium="medium",n.Large="large",n.ExtraLarge="extraLarge",n))(ud||{}),Vt=(n=>(n.Start="start",n.Middle="middle",n.End="end",n.Justify="justify",n))(Vt||{}),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 ji=(e=>(e.Image="image",e.Video="video",e))(ji||{}),ro=(r=>(r.PNG="png",r.JPG="jpeg",r.WEBP="webp",r.SVG="svg",r.JSON="json",r))(ro||{}),rr=(n=>(n.Transparent="transparent",n.Auto="auto",n.Light="light",n.Dark="dark",n))(rr||{});function hd(i){let o=_(),e=Wi.useCallback((a=!1)=>{let d=i.current;return a&&(o.isMenuOpen||o.settings.keepStyleMenuOpen)?!0:d&&(document.activeElement===d||d.contains(document.activeElement))},[i]);Wi.useEffect(()=>{if(!o)return;let a=u=>{if(!!e(!0)){if(o.readOnly){o.copy(void 0,u);return}o.cut(void 0,u)}},d=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",d),document.addEventListener("paste",p),()=>{document.removeEventListener("cut",a),document.removeEventListener("copy",d),document.removeEventListener("paste",p)}},[o]),(0,N.useHotkeys)("v,1",()=>{!e(!0)||o.selectTool("select")},[o,i.current]),(0,N.useHotkeys)("d,p,2",()=>{!e(!0)||o.selectTool("draw")},void 0,[o]),(0,N.useHotkeys)("e,3",()=>{!e(!0)||o.selectTool("erase")},void 0,[o]),(0,N.useHotkeys)("r,4",()=>{!e(!0)||o.selectTool("rectangle")},void 0,[o]),(0,N.useHotkeys)("o,5",()=>{!e(!0)||o.selectTool("ellipse")},void 0,[o]),(0,N.useHotkeys)("g,6",()=>{!e()||o.selectTool("triangle")},void 0,[o]),(0,N.useHotkeys)("l,7",()=>{!e(!0)||o.selectTool("line")},void 0,[o]),(0,N.useHotkeys)("a,8",()=>{!e(!0)||o.selectTool("arrow")},void 0,[o]),(0,N.useHotkeys)("t,9",()=>{!e(!0)||o.selectTool("text")},void 0,[o]),(0,N.useHotkeys)("s,0",()=>{!e(!0)||o.selectTool("sticky")},void 0,[o]),(0,N.useHotkeys)("ctrl+shift+d,\u2318+shift+d",a=>{!e(!0)||(o.toggleDarkMode(),a.preventDefault())},void 0,[o]),(0,N.useHotkeys)("ctrl+.,\u2318+.",()=>{!e(!0)||o.toggleFocusMode()},void 0,[o]),(0,N.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}=zi();(0,N.useHotkeys)("ctrl+n,\u2318+n",a=>{a.preventDefault(),e()&&t(a)},void 0,[o]),(0,N.useHotkeys)("ctrl+s,\u2318+s",a=>{!e()||r(a)},void 0,[o]),(0,N.useHotkeys)("ctrl+shift+s,\u2318+shift+s",a=>{!e()||s(a)},void 0,[o]),(0,N.useHotkeys)("ctrl+alt+1,\u2318+alt+1",a=>{!e()||o.exportImage("svg",{scale:2,quality:1})},void 0,[o]),(0,N.useHotkeys)("ctrl+alt+2,\u2318+alt+2",a=>{!e()||o.exportImage("png",{scale:2,quality:1})},void 0,[o]),(0,N.useHotkeys)("ctrl+alt+3,\u2318+alt+3",a=>{!e()||o.exportImage("jpeg",{scale:2,quality:1})},void 0,[o]),(0,N.useHotkeys)("ctrl+alt+4,\u2318+alt+4",a=>{!e()||o.exportImage("webp",{scale:2,quality:1})},void 0,[o]),(0,N.useHotkeys)("ctrl+alt+5,\u2318+alt+5",a=>{!e()||o.exportJson()},void 0,[o]),(0,N.useHotkeys)("ctrl+o,\u2318+o",a=>{!e()||n(a)},void 0,[o]),(0,N.useHotkeys)("ctrl+u,\u2318+u",a=>{!e()||l(a)},void 0,[o]),(0,N.useHotkeys)("\u2318+z,ctrl+z",a=>{a.preventDefault(),e(!0)&&(o.session?o.cancelSession():o.undo())},void 0,[o]),(0,N.useHotkeys)("ctrl+shift+z,\u2318+shift+z",()=>{!e(!0)||(o.session?o.cancelSession():o.redo())},void 0,[o]),(0,N.useHotkeys)("\u2318+u,ctrl+u",()=>{!e()||o.undoSelect()},void 0,[o]),(0,N.useHotkeys)("ctrl+shift-u,\u2318+shift+u",()=>{!e()||o.redoSelect()},void 0,[o]),(0,N.useHotkeys)("ctrl+=,\u2318+=,ctrl+num_add,\u2318+num_add",a=>{!e(!0)||(o.zoomIn(),a.preventDefault())},void 0,[o]),(0,N.useHotkeys)("ctrl+-,\u2318+-,ctrl+num_subtract,\u2318+num_subtract",a=>{!e(!0)||(o.zoomOut(),a.preventDefault())},void 0,[o]),(0,N.useHotkeys)("shift+0,ctrl+numpad_0,\u2318+numpad_0",()=>{!e(!0)||o.resetZoom()},void 0,[o]),(0,N.useHotkeys)("shift+1",()=>{!e(!0)||o.zoomToFit()},void 0,[o]),(0,N.useHotkeys)("shift+2",()=>{!e(!0)||o.zoomToSelection()},void 0,[o]),(0,N.useHotkeys)("ctrl+d,\u2318+d",a=>{!e()||(o.duplicate(),a.preventDefault())},void 0,[o]),(0,N.useHotkeys)("shift+h",()=>{!e(!0)||o.flipHorizontal()},void 0,[o]),(0,N.useHotkeys)("shift+v",()=>{!e(!0)||o.flipVertical()},void 0,[o]),(0,N.useHotkeys)("escape",()=>{!e(!0)||o.cancel()},void 0,[o]),(0,N.useHotkeys)("backspace,del",()=>{!e()||o.delete()},void 0,[o]),(0,N.useHotkeys)("\u2318+a,ctrl+a",()=>{!e(!0)||o.selectAll()},void 0,[o]),(0,N.useHotkeys)("up",()=>{!e()||o.nudge([0,-1],!1)},void 0,[o]),(0,N.useHotkeys)("right",()=>{!e()||o.nudge([1,0],!1)},void 0,[o]),(0,N.useHotkeys)("down",()=>{!e()||o.nudge([0,1],!1)},void 0,[o]),(0,N.useHotkeys)("left",()=>{!e()||o.nudge([-1,0],!1)},void 0,[o]),(0,N.useHotkeys)("shift+up",()=>{!e()||o.nudge([0,-1],!0)},void 0,[o]),(0,N.useHotkeys)("shift+right",()=>{!e()||o.nudge([1,0],!0)},void 0,[o]),(0,N.useHotkeys)("shift+down",()=>{!e()||o.nudge([0,1],!0)},void 0,[o]),(0,N.useHotkeys)("shift+left",()=>{!e()||o.nudge([-1,0],!0)},void 0,[o]),(0,N.useHotkeys)("\u2318+shift+l,ctrl+shift+l",()=>{!e()||o.toggleLocked()},void 0,[o]),(0,N.useHotkeys)("\u2318+shift+c,ctrl+shift+c",a=>{!e()||(o.copySvg(),a.preventDefault())},void 0,[o]),(0,N.useHotkeys)("\u2318+g,ctrl+g",a=>{!e()||(o.group(),a.preventDefault())},void 0,[o]),(0,N.useHotkeys)("\u2318+shift+g,ctrl+shift+g",a=>{!e()||(o.ungroup(),a.preventDefault())},void 0,[o]),(0,N.useHotkeys)("[",()=>{!e(!0)||o.moveBackward()},void 0,[o]),(0,N.useHotkeys)("]",()=>{!e(!0)||o.moveForward()},void 0,[o]),(0,N.useHotkeys)("shift+[",()=>{!e(!0)||o.moveToBack()},void 0,[o]),(0,N.useHotkeys)("shift+]",()=>{!e(!0)||o.moveToFront()},void 0,[o]),(0,N.useHotkeys)("ctrl+shift+backspace,\u2318+shift+backspace",a=>{!e()||(o.settings.isDebugMode&&o.resetDocument(),a.preventDefault())},void 0,[o]),(0,N.useHotkeys)("alt+command+l,alt+ctrl+l",a=>{!e(!0)||(o.style({textAlign:"start"}),a.preventDefault())},void 0,[o]),(0,N.useHotkeys)("alt+command+t,alt+ctrl+t",a=>{!e(!0)||(o.style({textAlign:"middle"}),a.preventDefault())},void 0,[o]),(0,N.useHotkeys)("alt+command+r,alt+ctrl+r",a=>{!e(!0)||(o.style({textAlign:"end"}),a.preventDefault())},void 0,[o])}var Rn=H(require("react")),Ca=Rn.createContext({}),Fh=()=>{let[i,o]=Rn.useState(0);Rn.useEffect(()=>o(1))};function _(){return Rn.useContext(Ca)}var wa=Rn.createContext({});function un(){let i=Rn.useContext(wa);return Fh(),i}var Ud=H(require("react"));var md={"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 gd={"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 fd={"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 Sd={};var yd={"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 bd={"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 vd={"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 Td={"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 xd={"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 kd={"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 Cd={"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 wd={"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 Id={"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 Pd={"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 Rd={"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 Dd={"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 Ed={"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 Bd={"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 Md={"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 Ld={"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 Ad={"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 Vd={"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 Hd={"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 zd={"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 Fd={"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 Od={"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 $d={"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 Gd={"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 jd={"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 Wd=[{locale:"ar",label:"\u0639\u0631\u0628\u064A",messages:md},{locale:"da",label:"Danish",messages:gd},{locale:"de",label:"Deutsch",messages:fd},{locale:"en",label:"English",messages:Sd},{locale:"es",label:"Espa\xF1ol",messages:yd},{locale:"fa",label:"\u0641\u0627\u0631\u0633\u06CC",messages:bd},{locale:"fr",label:"Fran\xE7ais",messages:vd},{locale:"gl",label:"Galego",messages:Td},{locale:"he",label:"\u05E2\u05D1\u05E8\u05D9\u05EA",messages:xd},{locale:"it",label:"Italiano",messages:kd},{locale:"ja",label:"\u65E5\u672C\u8A9E",messages:Cd},{locale:"ko-kr",label:"\uD55C\uAD6D\uC5B4",messages:wd},{locale:"my",label:"\u1019\u103C\u1014\u103A\u1019\u102C\u1005\u102C",messages:Rd},{locale:"nb-no",label:"Norwegian Bokm\xE5l",messages:Dd},{locale:"ne",label:"\u0928\u0947\u092A\u093E\u0932\u0940",messages:Ed},{locale:"nn-no",label:"Norwegian Nynorsk",messages:Bd},{locale:"pl",label:"Polski",messages:Md},{locale:"pt",label:"Portugu\xEAs - Europeu",messages:Ad},{locale:"pt-br",label:"Portugu\xEAs - Brasil",messages:Ld},{locale:"ru",label:"Russian",messages:Vd},{locale:"sv",label:"Svenska",messages:Hd},{locale:"te",label:"\u0C24\u0C46\u0C32\u0C41\u0C17\u0C41",messages:zd},{locale:"tr",label:"T\xFCrk\xE7e",messages:Od},{locale:"uk",label:"Ukrainian",messages:$d},{locale:"zh-ch",label:"\u7B80\u4F53\u4E2D\u6587",messages:Gd},{locale:"zh-tw",label:"\u7E41\u9AD4\u4E2D\u6587 (\u53F0\u7063)",messages:jd},{locale:"th",label:"\u0E20\u0E32\u0E29\u0E32\u0E44\u0E17\u0E22",messages:Fd},{locale:"ku",label:"\u06A9\u0648\u0631\u062F\u06CC",messages:Id}];Wd.sort((i,o)=>i.locale<o.locale?-1:1);function Nd(i){var e;let o=Wd.find(t=>t.locale===i);return{locale:i,label:(e=o==null?void 0:o.label)!=null?e:i,messages:S(S({},Pd),o==null?void 0:o.messages)}}function Kd(i){return Ud.useMemo(()=>Nd(i!=null?i:navigator.language.split(/[-_]/)[0]),[i])}var Ni=H(require("react")),Ia=Ni.createContext({}),Fi=()=>{let i=Ni.useContext(Ia);if(!i)throw new Error("useCtx must be inside a Provider with a value");return i};var ir=require("react/jsx-runtime"),Pt=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:d}=g,p=Le(g,["onSelect","onClick","onDoubleClick","variant","children","isToolLocked","disabled","isActive","onKeyDown","id"]);return(0,ir.jsxs)(mm,I(S({ref:u,isActive:l,variant:t,onClick:o,disabled:s,onPointerDown:i,onDoubleClick:e,onKeyDown:a,bp:pn,id:d},p),{children:[(0,ir.jsx)(hn,{children:n}),r&&(0,ir.jsx)(gm,{})]}))});function Pa(r){var s=r,{label:i,kbd:o,variant:e,isLocked:t}=s,n=Le(s,["label","kbd","variant","isLocked"]);let l=_(),a=oi.useCallback(()=>{l.toggleToolLock()},[]),d=oi.useCallback(p=>{p.key===" "&&l.isForcePanning&&p.preventDefault()},[]);return(0,ir.jsx)(Hi,{label:i[0].toUpperCase()+i.slice(1),kbd:o,children:(0,ir.jsx)(Pt,I(S({},n),{variant:e,isToolLocked:t&&n.isActive,onDoubleClick:a,onKeyDown:d,"aria-label":i[0].toUpperCase()+i.slice(1)}))})}var hn=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"}),mm=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 ${hn}`]:{opacity:.618},variants:{variant:{primary:{marginTop:"0"},icon:{[`& ${hn}`]:{display:"grid","& > *":{gridRow:1,gridColumn:1}}},text:{width:"auto",[`& ${hn}`]:{fontSize:"$1",padding:"0 $3",gap:"$3"}},circle:{padding:0,height:32,width:32,border:"none",[`& ${hn}`]:{border:"1px solid $panelContrast",borderRadius:"100%",boxShadow:"$panel"},[`& ${hn} > svg`]:{width:14,height:14}}},isActive:{true:{},false:{}},bp:{mobile:{padding:0},small:{}}},compoundVariants:[{variant:"primary",bp:"mobile",css:{height:40,width:36,[`& ${hn} > svg`]:{width:16,height:16}}},{variant:"primary",bp:"small",css:{height:"40px",width:"40px",[`& ${hn} > svg`]:{width:20,height:20}}},{isActive:!0,css:{[`${hn}`]:{backgroundColor:"$selected",color:"$selectedContrast"}}},{isActive:!1,bp:"small",css:{[`&:hover:not(:disabled) ${hn}`]:{backgroundColor:"$hover"},[`&:focus:not(:disabled) ${hn}`]:{backgroundColor:"$hover"}}}]}),gm=R("div",{position:"absolute",width:10,height:10,backgroundColor:"$selected",borderRadius:"100%",bottom:-2,border:"2px solid $panel",zIndex:100});var Ut=require("react/jsx-runtime"),Ra=["rectangle","ellipse","triangle","line"],_d={["rectangle"]:(0,Ut.jsx)(sr.SquareIcon,{}),["ellipse"]:(0,Ut.jsx)(sr.CircleIcon,{}),["triangle"]:(0,Ut.jsx)(sr.VercelLogoIcon,{}),["line"]:(0,Ut.jsx)(ad,{})},fm=i=>i.settings.dockPosition,Xd=Dn.memo(function({activeTool:o,isToolLocked:e}){let t=_(),n=(0,Yd.useIntl)(),r=t.useStore(fm),[s,l]=Dn.useState("rectangle");Dn.useEffect(()=>{Ra.includes(o)&&s!==o&&l(o)},[o]);let a=Dn.useCallback(()=>{t.selectTool(s)},[o,t]),d=Dn.useCallback(()=>{t.toggleToolLock()},[t]),p=Dn.useCallback(m=>{m.key===" "&&t.shiftKey&&m.preventDefault()},[]),u=Ra.includes(o),h=r==="bottom"||r==="top"?"top":r,g=r==="bottom"||r==="top"?"row":"column";return(0,Ut.jsxs)(io.Root,{dir:"ltr",onOpenChange:a,children:[(0,Ut.jsx)(io.Trigger,{dir:"ltr",asChild:!0,id:"TD-PrimaryTools-Shapes",children:(0,Ut.jsx)(Pt,{disabled:u&&t.shiftKey,variant:"primary",onDoubleClick:d,isToolLocked:u&&e,isActive:u,onKeyDown:p,"aria-label":n.formatMessage({id:"shapes"}),children:_d[s]})}),(0,Ut.jsx)(io.Content,{asChild:!0,side:h,sideOffset:12,children:(0,Ut.jsx)(qr,{side:"center",style:{flexDirection:g},children:Ra.map((m,f)=>(0,Ut.jsx)(Hi,{label:n.formatMessage({id:m}),kbd:(4+f).toString(),id:`TD-PrimaryTools-Shapes-${m}`,children:(0,Ut.jsx)(io.Item,{asChild:!0,children:(0,Ut.jsx)(Pt,{"aria-label":n.formatMessage({id:m}),variant:"primary",onClick:()=>{t.selectTool(m),l(m)},children:_d[m]})})},m))})})]})});var ye=require("react/jsx-runtime"),Sm=i=>i.appState.activeTool,ym=i=>i.appState.isToolLocked,bm=i=>i.settings.canvasMode,qd=Kt.memo(function(){let o=_(),e=(0,Zd.useIntl)(),t=o.useStore(Sm),n=o.useStore(ym),r=o.useStore(bm),s=Kt.useCallback(()=>o.selectTool("select"),[o]),l=Kt.useCallback(()=>o.selectTool("erase"),[o]),a=Kt.useCallback(()=>o.selectTool("draw"),[o]),d=Kt.useCallback(()=>o.selectTool("pen"),[o]),p=Kt.useCallback(()=>o.selectTool("arrow"),[o]),u=Kt.useCallback(()=>o.selectTool("text"),[o]),h=Kt.useCallback(()=>o.selectTool("sticky"),[o]),g=Kt.useCallback(()=>F(this,null,function*(){return o.openAsset()}),[o]),m=Kt.useCallback(()=>o.toggleCanvasMode(),[o]),f=Kt.useCallback(T=>{T.stopPropagation()},[]);return(0,ye.jsx)(vm,{onPointerDown:f,children:(0,ye.jsxs)(Tm,{children:[(0,ye.jsx)(so,{onClick:s,isActive:t==="select",title:e.formatMessage({id:"select"}),children:(0,ye.jsx)(En.CursorArrowIcon,{})}),(0,ye.jsx)(Da,{}),(0,ye.jsx)(so,{onClick:a,isActive:t==="draw",title:e.formatMessage({id:"draw"}),children:(0,ye.jsx)(En.Pencil1Icon,{})}),(0,ye.jsx)(so,{onClick:l,isActive:t==="erase",title:e.formatMessage({id:"eraser"}),children:(0,ye.jsx)(id,{})}),(0,ye.jsx)(Da,{}),(0,ye.jsx)(xm,{children:(0,ye.jsx)(Xd,{activeTool:t,isToolLocked:n})}),(0,ye.jsx)(so,{onClick:p,isActive:t==="arrow",title:e.formatMessage({id:"arrow"}),children:(0,ye.jsx)(En.ArrowTopRightIcon,{})}),(0,ye.jsx)(so,{onClick:u,isActive:t==="text",title:e.formatMessage({id:"text"}),children:(0,ye.jsx)(En.TextIcon,{})}),(0,ye.jsx)(so,{onClick:h,isActive:t==="sticky",title:"Sticky Note",children:(0,ye.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",children:[(0,ye.jsx)("rect",{x:"2",y:"2",width:"11",height:"11",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,ye.jsx)("line",{x1:"5",y1:"6",x2:"10",y2:"6",stroke:"currentColor",strokeWidth:"1"}),(0,ye.jsx)("line",{x1:"5",y1:"9",x2:"8",y2:"9",stroke:"currentColor",strokeWidth:"1"})]})}),(0,ye.jsx)(so,{onClick:g,title:e.formatMessage({id:"image"}),children:(0,ye.jsx)(En.ImageIcon,{})}),(0,ye.jsx)(Da,{}),(0,ye.jsx)(so,{onClick:m,isActive:r==="straight",title:r==="freehand"?"Straight mode":"Freehand mode",children:r==="freehand"?(0,ye.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",children:(0,ye.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,ye.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",children:(0,ye.jsx)("path",{d:"M2 12L7.5 3L13 12",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})})})]})})}),vm=R("div",{position:"absolute",bottom:"16px",left:"50%",transform:"translateX(-50%)",zIndex:300,pointerEvents:"all"}),Tm=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)"}),so=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"}}}}}),Da=R("div",{width:"1px",height:"20px",background:"$separator",margin:"0 4px",flexShrink:0,opacity:.5}),xm=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 Un=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 Jd=require("@radix-ui/react-dropdown-menu"),Ui=require("@radix-ui/react-icons"),Qd=H(require("react"));var Ht=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 Kn=require("react/jsx-runtime"),st=Qd.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,d=Le(h,["onClick","isActive","isWarning","hasIndicator","hasArrow","disabled","variant","kbd","children"]);return(0,Kn.jsx)(km,I(S({ref:p,bp:pn,isWarning:e,isActive:o,disabled:r,onClick:i,variant:s},d),{children:(0,Kn.jsxs)(ec,{children:[a,l?(0,Kn.jsx)(Vi,{variant:"menu",children:l}):void 0,t&&(0,Kn.jsx)(Jd.ItemIndicator,{dir:"ltr",children:(0,Kn.jsx)(Ht,{children:(0,Kn.jsx)(Ui.CheckIcon,{})})}),n&&(0,Kn.jsx)(Ht,{children:(0,Kn.jsx)(Ui.ChevronRightIcon,{})})]})}))}),ec=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},[`& > ${Ht}`]:{paddingLeft:"$3"}}),km=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) ${ec}`]:{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"),Cm=i=>i.document.pageStates[i.appState.currentPageId].selectedIds.length,wm=i=>i.settings.isDebugMode,Im=i=>i.document.pageStates[i.appState.currentPageId].selectedIds.some(o=>i.document.pages[i.appState.currentPageId].shapes[o].children!==void 0),Pm=i=>i.stopPropagation(),Rm=({onBlur:i,children:o})=>{let e=un();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:Pm,tabIndex:-1,onBlur:i,asChild:!0,children:(0,A.jsx)(Un,{id:"TD-ContextMenu",children:(0,A.jsx)(Dm,{})})})})]})},Dm=de.memo(function(){let o=_(),e=(0,Oe.useIntl)(),t=o.useStore(Cm),n=o.useStore(wm),r=o.useStore(Im),s=de.useCallback(()=>{o.flipHorizontal()},[o]),l=de.useCallback(()=>{o.flipVertical()},[o]),a=de.useCallback(()=>{o.duplicate()},[o]),d=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]),T=de.useCallback(()=>{o.cut()},[o]),b=de.useCallback(()=>{o.copy()},[o]),v=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]),C=de.useCallback(()=>{o.redo()},[o]),E=de.useCallback(()=>F(this,null,function*(){o.exportImage("png",{scale:2,quality:1})}),[o]),k=de.useCallback(()=>F(this,null,function*(){o.exportImage("jpeg",{scale:2,quality:1})}),[o]),D=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)(me,{onClick:a,kbd:"#D",id:"TD-ContextMenu-Duplicate",children:(0,A.jsx)(Oe.FormattedMessage,{id:"duplicate"})}),(0,A.jsx)(me,{onClick:s,kbd:"\u21E7H",id:"TD-ContextMenu-Flip_Horizontal",children:(0,A.jsx)(Oe.FormattedMessage,{id:"flip.horizontal"})}),(0,A.jsx)(me,{onClick:l,kbd:"\u21E7V",id:"TD-ContextMenu-Flip_Vertical",children:(0,A.jsx)(Oe.FormattedMessage,{id:"flip.vertical"})}),(0,A.jsxs)(me,{onClick:d,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)(me,{onClick:p,kbd:"#G",id:"TD-ContextMenu-Group",children:(0,A.jsx)(Oe.FormattedMessage,{id:"group"})}),r&&(0,A.jsx)(me,{onClick:p,kbd:"#G",id:"TD-ContextMenu-Ungroup",children:(0,A.jsx)(Oe.FormattedMessage,{id:"ungroup"})}),(0,A.jsx)(Te,{}),(0,A.jsxs)(Ki,{label:e.formatMessage({id:"move"}),id:"TD-ContextMenu-Move",children:[(0,A.jsx)(me,{onClick:m,kbd:"\u21E7]",id:"TD-ContextMenu-Move-To_Front",children:(0,A.jsx)(Oe.FormattedMessage,{id:"to.front"})}),(0,A.jsx)(me,{onClick:g,kbd:"]",id:"TD-ContextMenu-Move-Forward",children:(0,A.jsx)(Oe.FormattedMessage,{id:"forward"})}),(0,A.jsx)(me,{onClick:h,kbd:"[",id:"TD-ContextMenu-Move-Backward",children:(0,A.jsx)(Oe.FormattedMessage,{id:"backward"})}),(0,A.jsx)(me,{onClick:u,kbd:"\u21E7[",id:"TD-ContextMenu-Move-To_Back",children:(0,A.jsx)(Oe.FormattedMessage,{id:"back"})})]}),(0,A.jsx)(Am,{}),G&&(0,A.jsx)(Em,{hasTwoOrMore:G,hasThreeOrMore:ne}),(0,A.jsx)(Te,{}),(0,A.jsx)(me,{onClick:T,kbd:"#X",id:"TD-ContextMenu-Cut",children:(0,A.jsx)(Oe.FormattedMessage,{id:"cut"})}),(0,A.jsx)(me,{onClick:b,kbd:"#C",id:"TD-ContextMenu-Copy",children:(0,A.jsx)(Oe.FormattedMessage,{id:"copy"})}),(0,A.jsx)(me,{onClick:v,kbd:"#V",id:"TD-ContextMenu-Paste",children:(0,A.jsx)(Oe.FormattedMessage,{id:"paste"})}),(0,A.jsx)(Te,{}),(0,A.jsxs)(Ki,{label:`${e.formatMessage({id:"copy.as"})}...`,size:"small",id:"TD-ContextMenu-Copy-As",children:[(0,A.jsx)(me,{onClick:y,id:"TD-ContextMenu-Copy-as-SVG",children:"SVG"}),(0,A.jsx)(me,{onClick:x,id:"TD-ContextMenu-Copy-As-PNG",children:"PNG"}),n&&(0,A.jsx)(me,{onClick:L,id:"TD-ContextMenu-Copy_as_JSON",children:"JSON"})]}),(0,A.jsxs)(Ki,{label:`${e.formatMessage({id:"export.as"})}...`,size:"small",id:"TD-ContextMenu-Export",children:[(0,A.jsx)(me,{onClick:M,id:"TD-ContextMenu-Export-SVG",children:"SVG"}),(0,A.jsx)(me,{onClick:E,id:"TD-ContextMenu-Export-PNG",children:"PNG"}),(0,A.jsx)(me,{onClick:k,id:"TD-ContextMenu-Export-JPG",children:"JPG"}),(0,A.jsx)(me,{onClick:D,id:"TD-ContextMenu-Export-WEBP",children:"WEBP"}),n&&(0,A.jsx)(me,{onClick:V,id:"TD-ContextMenu-Export-JSON",children:"JSON"})]}),(0,A.jsx)(Te,{}),he&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(me,{onClick:X,id:"TD-ContextMenu-Convert-To-Image",children:"Convert to Image"}),(0,A.jsx)(Te,{})]}),(0,A.jsx)(me,{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)(me,{onClick:v,kbd:"#V",id:"TD-ContextMenu-Paste",children:(0,A.jsx)(Oe.FormattedMessage,{id:"paste"})}),(0,A.jsx)(me,{onClick:P,kbd:"#Z",id:"TD-ContextMenu-Undo",children:(0,A.jsx)(Oe.FormattedMessage,{id:"undo"})}),(0,A.jsx)(me,{onClick:C,kbd:"#\u21E7Z",id:"TD-ContextMenu-Redo",children:(0,A.jsx)(Oe.FormattedMessage,{id:"redo"})}),(0,A.jsxs)(Ki,{label:`${e.formatMessage({id:"export.as"})}...`,size:"small",id:"TD-ContextMenu-Export",children:[(0,A.jsx)(me,{onClick:M,id:"TD-ContextMenu-Export-SVG",children:"SVG"}),(0,A.jsx)(me,{onClick:E,id:"TD-ContextMenu-Export-PNG",children:"PNG"}),(0,A.jsx)(me,{onClick:k,id:"TD-ContextMenu-Export-JPG",children:"JPG"}),(0,A.jsx)(me,{onClick:D,id:"TD-ContextMenu-Export-WEBP",children:"WEBP"}),n&&(0,A.jsx)(me,{onClick:V,id:"TD-ContextMenu-Export-JSON",children:"JSON"})]})]})})});function Em({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]),d=de.useCallback(()=>{o.align("right")},[o]),p=de.useCallback(()=>{o.stretch("horizontal")},[o]),u=de.useCallback(()=>{o.distribute("horizontal")},[o]),h=un();return(0,A.jsxs)(we.Sub,{children:[(0,A.jsx)(Ba,{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)(Bm,{numberOfSelected:i?"threeOrMore":"twoOrMore",children:[(0,A.jsx)(Bn,{onClick:l,id:"TD-ContextMenu-Align_Distribute-AlignLeft",children:(0,A.jsx)(Xe.AlignLeftIcon,{})}),(0,A.jsx)(Bn,{onClick:a,id:"TD-ContextMenu-Align_Distribute-AlignCenterHorizontal",children:(0,A.jsx)(Xe.AlignCenterHorizontallyIcon,{})}),(0,A.jsx)(Bn,{onClick:d,id:"TD-ContextMenu-Align_Distribute-AlignRight",children:(0,A.jsx)(Xe.AlignRightIcon,{})}),(0,A.jsx)(Bn,{onClick:p,id:"TD-ContextMenu-Align_Distribute-StretchHorizontal",children:(0,A.jsx)(Xe.StretchHorizontallyIcon,{})}),i&&(0,A.jsx)(Bn,{onClick:u,id:"TD-ContextMenu-Align_Distribute-SpaceEvenlyHorizontal",children:(0,A.jsx)(Xe.SpaceEvenlyHorizontallyIcon,{})}),(0,A.jsx)(Bn,{onClick:e,id:"TD-ContextMenu-Align_Distribute-AlignTop",children:(0,A.jsx)(Xe.AlignTopIcon,{})}),(0,A.jsx)(Bn,{onClick:t,id:"TD-ContextMenu-Align_Distribute-AlignCenterVertical",children:(0,A.jsx)(Xe.AlignCenterVerticallyIcon,{})}),(0,A.jsx)(Bn,{onClick:n,id:"TD-ContextMenu-Align_Distribute-AlignBottom",children:(0,A.jsx)(Xe.AlignBottomIcon,{})}),(0,A.jsx)(Bn,{onClick:r,id:"TD-ContextMenu-Align_Distribute-StretchVertical",children:(0,A.jsx)(Xe.StretchVerticallyIcon,{})}),i&&(0,A.jsx)(Bn,{onClick:s,id:"TD-ContextMenu-Align_Distribute-SpaceEvenlyVertical",children:(0,A.jsx)(Xe.SpaceEvenlyVerticallyIcon,{})}),(0,A.jsx)(Ea,{offset:13})]})})})]})}var Bm=R(Un,{display:"grid",variants:{numberOfSelected:{threeOrMore:{gridTemplateColumns:"repeat(5, auto)"},twoOrMore:{gridTemplateColumns:"repeat(4, auto)"}}}}),Mm=i=>i.appState.currentPageId,Lm=i=>i.document.pages;function Am(){let i=_(),o=i.useStore(Mm),e=i.useStore(Lm),t=Object.values(e).sort((r,s)=>(r.childIndex||0)-(s.childIndex||0)).filter(r=>r.id!==o),n=un();return t.length===0?null:(0,A.jsxs)(we.Sub,{children:[(0,A.jsx)(Ba,{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)(Un,{children:[t.map(({id:r,name:s},l)=>(0,A.jsx)(me,{disabled:r===o,onClick:()=>i.moveToPage(r),children:s||`Page ${l}`},r)),(0,A.jsx)(Ea,{offset:13})]})})})]})}function Ki({children:i,label:o,size:e,id:t}){let n=un();return(0,A.jsxs)(we.Sub,{children:[(0,A.jsx)(Ba,{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)(Un,{size:e,children:[i,(0,A.jsx)(Ea,{offset:13})]})})})]})}var Ea=R(we.ContextMenuArrow,{fill:"$panel"});function Bn(e){var t=e,{onSelect:i}=t,o=Le(t,["onSelect"]);return(0,A.jsx)(we.ContextMenuItem,{dir:"ltr",onSelect:i,asChild:!0,children:(0,A.jsx)(Pt,S({},o))})}var me=e=>{var t=e,{id:i}=t,o=Le(t,["id"]);return(0,A.jsx)(we.ContextMenuItem,{asChild:!0,id:i,children:(0,A.jsx)(st,S({},o))})},Ba=e=>{var t=e,{id:i}=t,o=Le(t,["id"]);return(0,A.jsx)(we.SubTrigger,{asChild:!0,id:i,children:(0,A.jsx)(st,S({hasArrow:!0},o))})},Ma=de.memo(Rm);var _t=require("react/jsx-runtime");function La({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,_t.jsx)(Vm,{children:(0,_t.jsxs)(Hm,{children:[(0,_t.jsx)("div",{children:"We've encountered an error!"}),(0,_t.jsx)("pre",{children:(0,_t.jsx)("code",{children:i.message})}),(0,_t.jsxs)(zm,{children:[(0,_t.jsx)(st,{onClick:n,children:"Copy Error"}),(0,_t.jsx)(st,{onClick:t,children:"Refresh Page"})]}),(0,_t.jsx)(Te,{}),(0,_t.jsxs)("p",{children:["Keep getting this error?"," ",(0,_t.jsx)("a",{onClick:r,title:"Download your project",children:"Download your project"})," ","as a backup and then"," ",(0,_t.jsx)("a",{onClick:s,title:"Reset the document",children:"reset the document"}),"."]})]})})}var Vm=R("div",{position:"absolute",top:0,left:0,width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"$canvas"}),Hm=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"}}),zm=R("div",{display:"flex","& > button > div":{justifyContent:"center",textAlign:"center"}});var Qt=require("@radix-ui/react-icons"),vt=H(require("react"));var ar=H(require("react")),tc=require("telva-core");var _i=H(require("react")),Aa=_i.createContext([]);function Yi(){return _i.useContext(Aa)}var Rt=require("react/jsx-runtime"),nc=ar.memo(function(){let o=_(),e=Yi(),[t,n]=ar.useState(null),r=ar.useCallback(s=>{n(s.id);try{let[l,a]=s.defaultSize,d=o.getPagePoint([window.innerWidth/2-l/2,window.innerHeight/2-a/2]),p=tc.Utils.uniqueId();o.createShapes({id:p,type:"reactComponent",name:s.name,point:d,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,Rt.jsxs)(Fm,{children:[e.length===0?(0,Rt.jsxs)(Om,{children:["No components registered.",(0,Rt.jsx)("br",{}),"Add components in ",(0,Rt.jsx)("code",{children:"apps/www/react/registry.tsx"})]}):e.map(s=>(0,Rt.jsxs)($m,{children:[(0,Rt.jsx)(Gm,{style:{background:s.previewColor||"#6366f1"},children:(0,Rt.jsx)("span",{children:"<"+s.name+" />"})}),(0,Rt.jsxs)(jm,{children:[(0,Rt.jsx)(Wm,{children:s.name}),(0,Rt.jsx)(Nm,{children:s.description}),(0,Rt.jsx)(Um,{children:s.sourcePath})]}),(0,Rt.jsx)(Km,{onClick:()=>r(s),disabled:t===s.id,children:t===s.id?"...":"Import"})]},s.id)),(0,Rt.jsxs)(_m,{children:["Components render LIVE on your canvas.",(0,Rt.jsx)("br",{})]})]})}),Fm=R("div",{flex:1,padding:"6px",overflowY:"auto","&::-webkit-scrollbar":{width:"3px"},"&::-webkit-scrollbar-thumb":{background:"$separator",borderRadius:"2px"}}),Om=R("div",{padding:"16px 8px",fontSize:"10px",color:"$textSecondary",textAlign:"center",lineHeight:1.5,"& code":{fontSize:"9px",background:"$inputBg",padding:"1px 4px",borderRadius:"$0"}}),$m=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"}}),Gm=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"}}),jm=R("div",{flex:1,minWidth:0}),Wm=R("div",{fontSize:"10px",fontWeight:600,color:"$text",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}),Nm=R("div",{fontSize:"9px",color:"$textSecondary",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}),Um=R("div",{fontSize:"8px",color:"$textSecondary",opacity:.6,fontFamily:"$mono",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}),Km=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"}}),_m=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"),Ym=i=>{let o=i.document.pages[i.appState.currentPageId];return Object.values(o.shapes).sort((e,t)=>t.childIndex-e.childIndex)},Xm=i=>i.document.pageStates[i.appState.currentPageId].selectedIds,oc={["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"})]})},Va=vt.memo(function(){let[o,e]=vt.useState("layers");return(0,K.jsxs)(qm,{onPointerDown:t=>t.stopPropagation(),onPointerUp:t=>t.stopPropagation(),onClick:t=>t.stopPropagation(),children:[(0,K.jsxs)(Jm,{children:[(0,K.jsx)(rc,{isActive:o==="layers",onClick:()=>e("layers"),children:"Layers"}),(0,K.jsx)(rc,{isActive:o==="components",onClick:()=>e("components"),children:"Components"})]}),o==="layers"?(0,K.jsx)(Zm,{}):(0,K.jsx)(nc,{})]})});function Zm(){let i=_(),o=i.useStore(Ym),e=i.useStore(Xm),[t,n]=vt.useState(null),r=vt.useRef(null),s=vt.useMemo(()=>o.filter(a=>a.parentId===i.currentPageId),[o,i.currentPageId]),l=vt.useCallback((a,d,p)=>{if(a===d)return;let u=[...s],h=u.findIndex(v=>v.id===a);if(h===-1)return;let g=u.filter(v=>v.id!==a),m=g.findIndex(v=>v.id===d);if(m===-1)return;let f=p==="before"?m:m+1;g.splice(f,0,u[h]);let T=g.length,b={};g.forEach((v,y)=>{b[v.id]={childIndex:T-y}}),i.patchState({document:{pages:{[i.currentPageId]:{shapes:b}}}},"reorder_layers")},[s,i]);return(0,K.jsx)(Qm,{onDragOver:a=>a.preventDefault(),onDrop:()=>{r.current=null,n(null)},children:s.length===0?(0,K.jsx)(eg,{children:"No elements on canvas"}):s.map(a=>(0,K.jsx)(sc,{shape:a,allShapes:o,selectedIds:e,app:i,depth:0,dragOverInfo:t,onLayerDragStart:d=>{r.current=d},onLayerDragOver:(d,p)=>n({id:d,position:p}),onLayerDrop:(d,p)=>{r.current&&l(r.current,d,p),r.current=null,n(null)},onLayerDragEnd:()=>{r.current=null,n(null)}},a.id))})}function sc({shape:i,allShapes:o,selectedIds:e,app:t,depth:n,dragOverInfo:r,onLayerDragStart:s,onLayerDragOver:l,onLayerDrop:a,onLayerDragEnd:d}){let p=e.includes(i.id),h=i.type==="group"?i.children||[]:[],g=h.length>0,[m,f]=vt.useState(!0),T=vt.useCallback(k=>{k.stopPropagation(),k.shiftKey?p?t.deselect(i.id):t.select(...e,i.id):t.select(i.id)},[t,i.id,e,p]),b=vt.useCallback(k=>{k.stopPropagation(),t.toggleHidden([i.id])},[t,i.id]),v=vt.useCallback(k=>{k.stopPropagation(),t.toggleLocked([i.id])},[t,i.id]),y=oc[i.type]||oc["rectangle"],x=i.name||i.type,P=vt.useMemo(()=>g?h.map(k=>o.find(D=>D.id===k)).filter(Boolean):[],[g,h,o]),E=(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)(ac,{draggable:!!s,onClick:T,isSelected:p,style:S({paddingLeft:`${8+n*14}px`,cursor:s?"grab":"pointer"},E),onDragStart:k=>{k.stopPropagation(),k.dataTransfer.effectAllowed="move",s==null||s(i.id)},onDragOver:k=>{k.preventDefault(),k.stopPropagation();let D=k.currentTarget.getBoundingClientRect(),M=k.clientY<D.top+D.height/2?"before":"after";l==null||l(i.id,M)},onDrop:k=>{k.preventDefault(),k.stopPropagation();let D=k.currentTarget.getBoundingClientRect(),M=k.clientY<D.top+D.height/2?"before":"after";a==null||a(i.id,M)},onDragEnd:k=>{k.stopPropagation(),d==null||d()},children:[g?(0,K.jsx)(tg,{onClick:k=>{k.stopPropagation(),f(!m)},children:m?(0,K.jsx)(Qt.ChevronDownIcon,{}):(0,K.jsx)(Qt.ChevronRightIcon,{})}):(0,K.jsx)(ng,{}),(0,K.jsx)(og,{children:y}),(0,K.jsx)(rg,{children:x}),(0,K.jsxs)(ig,{children:[(0,K.jsx)(ic,{onClick:b,children:i.isHidden?(0,K.jsx)(Qt.EyeClosedIcon,{}):(0,K.jsx)(Qt.EyeOpenIcon,{})}),(0,K.jsx)(ic,{onClick:v,children:i.isLocked?(0,K.jsx)(Qt.LockClosedIcon,{}):(0,K.jsx)(Qt.LockOpen1Icon,{})})]})]}),g&&m&&(0,K.jsx)(sg,{children:P.map(k=>(0,K.jsx)(sc,{shape:k,allShapes:o,selectedIds:e,app:t,depth:n+1},k.id))})]})}var qm=R("div",{display:"flex",flexDirection:"column",flex:1,minHeight:0,overflow:"hidden"}),Jm=R("div",{display:"flex",borderBottom:"1px solid $separator",flexShrink:0}),rc=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"}}}}),Qm=R("div",{flex:1,overflowY:"auto",overflowX:"hidden","&::-webkit-scrollbar":{width:"3px"},"&::-webkit-scrollbar-thumb":{background:"$separator",borderRadius:"2px"}}),eg=R("div",{padding:"16px 12px",fontSize:"10px",color:"$textSecondary",fontStyle:"italic",textAlign:"center"}),ac=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)"}}}}}),tg=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"}}),ng=R("div",{width:"14px",flexShrink:0}),og=R("div",{display:"flex",alignItems:"center",justifyContent:"center",width:"14px",height:"14px",color:"$textSecondary",flexShrink:0}),rg=R("span",{fontSize:"10px",color:"$text",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",flex:1,fontWeight:500}),ig=R("div",{display:"flex",gap:"1px",opacity:0,transition:"opacity 0.1s",[`${ac}:hover &`]:{opacity:1}}),ic=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"}}),sg=R("div",{borderLeft:"1px solid $separator",marginLeft:"18px"});var dc=H(require("react"));var lc=require("react/jsx-runtime"),Ha=dc.memo(function(){return(0,lc.jsx)(ag,{children:(0,lc.jsx)(Va,{})})}),ag=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 pc=require("react-intl");var cc=require("react/jsx-runtime"),lg=i=>i.appState.isLoading;function za(){let o=_().useStore(lg);return(0,cc.jsx)(dg,{hidden:!o,children:(0,cc.jsx)(pc.FormattedMessage,{id:"loading",values:{dots:"..."}})})}var dg=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 Dt=H(require("@radix-ui/react-alert-dialog")),lr=require("react-intl");var at=require("react/jsx-runtime");function cg({children:i,onClose:o,container:e}){return(0,at.jsxs)(Dt.Portal,{container:e,children:[(0,at.jsx)(fg,{}),(0,at.jsx)(Sg,{onKeyDown:n=>{switch(n.key){case"Escape":o==null||o();break}},children:i})]})}var pg=R(Dt.Description,{marginBottom:20,color:"$text",fontSize:"$2",lineHeight:1.5,textAlign:"center",maxWidth:"62%",minWidth:0,alignSelf:"center"}),ug=Dt.Root,hg=cg,mg=pg,uc=Dt.Action,gg=Dt.Cancel,hc=({container:i})=>{let{setDialogState:o,dialogState:e,onCancel:t,onNo:n,onYes:r}=Fi(),s=(0,lr.useIntl)(),l={saveFirstTime:s.formatMessage({id:"dialog.save.firsttime"}),saveAgain:s.formatMessage({id:"dialog.save.again"})};return(0,at.jsx)(ug,{open:e!==null,children:(0,at.jsxs)(hg,{onClose:()=>o(null),container:i,children:[e&&(0,at.jsx)(mg,{children:l[e]}),(0,at.jsxs)("div",{style:{width:"100%",gap:"$6",display:"flex",justifyContent:"space-between"},children:[t&&(0,at.jsx)(gg,{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)(uc,{asChild:!0,children:(0,at.jsx)(dr,{onClick:()=>{n(),o(null)},children:(0,at.jsx)(lr.FormattedMessage,{id:"dialog.no"})})}),r&&(0,at.jsx)(uc,{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"})})})]})]})]})})},fg=R(Dt.Overlay,{position:"fixed",inset:0,backgroundColor:"rgba(0, 0, 0, .15)",pointerEvents:"all"}),G0=R(Dt.Overlay,{backgroundColor:"rgba(0, 0, 0, .15)",position:"absolute",pointerEvents:"all",inset:0}),Sg=R(Dt.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 mn=H(require("@radix-ui/react-alert-dialog")),fc=require("@radix-ui/react-icons"),cr=H(require("react")),ri=require("react-intl");var mc=H(require("react"));var Xi=require("react/jsx-runtime"),Zi=mc.forwardRef((t,e)=>{var n=t,{icon:i}=n,o=Le(n,["icon"]);return(0,Xi.jsxs)(yg,{children:[(0,Xi.jsx)(bg,I(S({},o),{ref:e})),i?(0,Xi.jsx)(vg,{children:i}):null]})}),yg=R("div",{position:"relative",width:"100%",height:"min-content"}),bg=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"}),vg=R(Ht,{top:0,right:0,position:"absolute",paddingLeft:"$3",paddingRight:"$3",pointerEvents:"none",color:"$text"});var lt=require("react/jsx-runtime"),Sc=({isOpen:i,onClose:o})=>{let e=_(),t=un(),n=(0,ri.useIntl)(),[r,s]=cr.useState(e.document.name),[l,a]=cr.useState("tldr"),d=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)(mn.Root,{open:i,children:(0,lt.jsxs)(mn.Portal,{container:t.current,children:[(0,lt.jsx)(xg,{onPointerDown:o}),(0,lt.jsxs)(Tg,{dir:"ltr",onKeyDown:p,onKeyUp:p,children:[(0,lt.jsx)(Cg,{placeholder:n.formatMessage({id:"enter.file.name"}),value:r,onChange:d,onKeyDown:u,icon:(0,lt.jsx)(fc.Pencil1Icon,{})}),(0,lt.jsxs)(wg,{children:[(0,lt.jsx)(Ig,{children:"Format:"}),(0,lt.jsx)(gc,{active:l==="tldr",onClick:()=>a("tldr"),children:".tldr"}),(0,lt.jsx)(gc,{active:l==="tld",onClick:()=>a("tld"),children:".tld"})]}),(0,lt.jsxs)(kg,{children:[(0,lt.jsx)(mn.Action,{asChild:!0,children:(0,lt.jsx)(dr,{onClick:o,children:(0,lt.jsx)(ri.FormattedMessage,{id:"cancel"})})}),(0,lt.jsx)(mn.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"})})})]})]})]})})},Tg=R(mn.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"}}),xg=R(mn.Overlay,{backgroundColor:"rgba(0, 0, 0, .15)",position:"absolute",pointerEvents:"all",inset:0,zIndex:999998}),kg=R("div",{width:"100%",display:"flex",alignItems:"center",gap:8,justifyContent:"flex-end",marginTop:10}),Cg=R(Zi,{background:"$hover"}),wg=R("div",{display:"flex",alignItems:"center",gap:6,marginTop:8}),Ig=R("span",{fontSize:11,color:"$textSecondary",flexShrink:0}),gc=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 Xp=H(require("react"));var Ve=H(require("react")),vi=require("telva-core");var Fa=require("telva-core");function zt(i,o){let e=Fa.Utils.getFromCache(o,i,()=>{let[t,n]=i.size;return{minX:0,maxX:t,minY:0,maxY:n,width:t,height:n}});return Fa.Utils.translateBounds(e,i.point)}var Pg={["start"]:"left",["middle"]:"center",["end"]:"right",["justify"]:"justify"};function yc(i="start"){return Pg[i]}var en="-0.03em";var pr=[.5,.5],a1=Math.PI*2,Oa=".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 $a=["#EC5E41","#F2555A","#F04F88","#E34BA9","#BD54C6","#9D5BD2","#7B66DC","#02B1CC","#11B3A3","#39B178","#55B467","#FF802B"],Rg=typeof Window=="undefined"?!1:/^((?!chrome|android).)*safari/i.test(navigator.userAgent),bc=typeof Window=="undefined"?!1:/linux/i.test(navigator.userAgent),qi=[".png",".svg",".jpg",".jpeg",".gif"],Ji=Rg?[]:[".mp4",".webm"];var Ft;function Dg(){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:en,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"&&(Ft=Dg());var Eg="";function vc(){Eg=""}function ao(i,o,e){if(!i)return[16,32];if(!Ft)return[10,10];Ft.parent||document.body.appendChild(Ft),Ft.textContent=i,Ft.style.font=o,e?(Ft.style.whiteSpace="pre-wrap",Ft.style.wordBreak="break-word",Ft.style.width=`${e}px`):(Ft.style.whiteSpace="pre",Ft.style.wordBreak="normal",Ft.style.width="auto");let t=Ft.offsetWidth||1,n=Ft.offsetHeight||1;return[t,n]}var Bg=new RegExp(`${[32,160,4961,65792,65793,4153,4241].map(i=>String.fromCodePoint(i)).join("|")}`);function lo(i,o,e,t,n,r=!1){let s="normal",a=en,d=Mg({text:i,wrap:r,width:n,fontSize:o,fontWeight:s,fontFamily:e,fontStyle:"normal",textAlign:"left",letterSpacing:en,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=d.map((h,g)=>{let m=document.createElementNS("http://www.w3.org/2000/svg","tspan");return m.textContent=h+`
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 Mg(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(Bg).flatMap(s=>s.replace(`
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 Tc({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 xc=require("telva-intersect"),Xt=require("telva-vec");var Qi=Math.PI*2,Yt=class{static inwardEdgeNormal(o){let e=Xt.Vec.sub(o[1],o[0]),t=Xt.Vec.len2(e);return[-e[0]/t,e[1]/t]}static outwardEdgeNormal(o){return Xt.Vec.neg(Yt.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 Yt.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]),d=Math.atan2(r[1]-e[1],r[0]-e[0]);a<0&&(a+=Qi),d<0&&(d+=Qi);let p=5,u=a>d?a-d:a+Qi-d,h=(s?-u:Qi-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=>Xt.Vec.add(t,e))}static getOffsetPolygon(o,e=0){let t=Yt.getEdges(o),n=t.map(s=>Yt.createOffsetEdge(s,Xt.Vec.mul(Yt.outwardEdgeNormal(s),e))),r=[];for(let s=0;s<n.length;s++){let l=n[s],a=n[(s+n.length-1)%n.length],d=Yt.edgesIntersection(a,l);d?r.push(d):Yt.appendArc(r,t[s][0],e,a[1],l[0],!1)}return r}static createPaddingPolygon(o,e=0){let t=o.map(r=>Yt.createOffsetEdge(r,Yt.inwardEdgeNormal(r))),n=[];for(let r=0;r<t.length;r++){let s=t[r],l=t[(r+t.length-1)%t.length],a=Yt.edgesIntersection(l,s);a?n.push(a):Yt.appendArc(n,o[r][0],e,l[1],s[0],!0)}return n}},Ga=Yt;c(Ga,"leftSide",Xt.Vec.isLeft);function kc(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=Xt.Vec.mul(Xt.Vec.per(Xt.Vec.uni(Xt.Vec.sub(n,t))),o);return[Xt.Vec.add(t,r),Xt.Vec.add(n,r)]}).map((t,n,r)=>{let s=(0,xc.intersectLineLine)(t,r[(n+1)%r.length]);if(s===void 0)throw Error("Expected an intersection");return s})}var Lo=require("telva-core");var Cc="#fafafa",ja="#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"},Lg={light:I(S({},Object.fromEntries(Object.entries(ur).map(([i,o])=>[i,Lo.Utils.lerpColor(o,Cc,.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),ja,.4)]))),{["white"]:"#1d1d1d",["black"]:"#bbbbbb"})},_n={light:I(S({},ur),{["white"]:"#1d1d1d"}),dark:I(S({},Object.fromEntries(Object.entries(ur).map(([i,o])=>[i,Lo.Utils.lerpColor(o,ja,.1)]))),{["white"]:"#cecece",["black"]:"#cecece"})},Ao={light:I(S({},Object.fromEntries(Object.entries(ur).map(([i,o])=>[i,Lo.Utils.lerpColor(o,Cc,.82)]))),{["white"]:"#fefefe"}),dark:I(S({},Object.fromEntries(Object.entries(ur).map(([i,o])=>[i,Lo.Utils.lerpColor(o,ja,.82)]))),{["white"]:"rgb(30,33,37)",["black"]:"#1e1e1f"})},Ag={["small"]:2,["medium"]:3.5,["large"]:5},Vg={["small"]:28,["medium"]:48,["large"]:96,auto:"auto"},Hg={["script"]:'"Caveat Brush"',["sans"]:'"Source Sans Pro"',["serif"]:'"Crimson Pro"',["mono"]:'"Source Code Pro"'},zg={["script"]:1,["sans"]:1,["serif"]:1,["mono"]:1},Fg={["small"]:24,["medium"]:36,["large"]:48,auto:"auto"};function Og(i){return Ag[i]}function Vo(i,o="script"){return Vg[i]*zg[o]}function Mn(i="script",o){return o?`"${o}"`:Hg[i]}function Wa(i){return Fg[i]}function Et(i){let o=Vo(i.size,i.font),e=Mn(i.font,i.fontFamily),{scale:t=1}=i;return`${o*t}px/1 ${e}`}function wc(i){let o=Wa(i.size),e=Mn(i.font,i.fontFamily),{scale:t=1}=i;return`${o*t}px/1 ${e}`}function Na(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:Lg[t][n],stroke:(s=i.strokeHex)!=null?s:null,color:o?"#1d1d1d":"#0d0d0d"}}function te(i,o){var l,a,d,p;let{color:e,size:t,isFilled:n}=i,r=(l=i.strokeWidthOverride)!=null?l:Og(t),s=o?"dark":"light";return{stroke:(a=i.strokeHex)!=null?a:_n[s][e],fill:n?(d=i.fillHex)!=null?d: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 Ic=" ",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
+ `,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
+ `,e-1)+1,d=o.value.slice(a,t-1),p=d.replace(/^|\n/g,`$&${Ic}`),u=p.length-d.length;o.setSelectionRange(a,t-1),Ue.insert(o,p),o.setSelectionRange(e+1,t+u)}else Ue.insert(o,Ic)}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"),d=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-d))}};var ft=H(require("react"));var ut=i=>i.stopPropagation();var $t=require("telva-core"),yo=require("telva-intersect"),q=require("telva-vec");function ht(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(ht(e));return o}else{let o=Object.keys(i),e={};if(o.length>0)for(let t of o)e[t]=ht(i[t]);return e}return i}var zo=H(require("react")),Ot=require("telva-core"),fr=require("telva-intersect"),Y=require("telva-vec");var Pc=H(require("react")),tn=require("telva-core"),mr=require("telva-intersect"),Ln=require("telva-vec");var ee=class extends tn.TLShapeUtil{constructor(){super(...arguments);c(this,"canBind",!1);c(this,"canEdit",!1);c(this,"canClone",!1);c(this,"isAspectRatioLocked",!1);c(this,"hideResizeHandles",!1);c(this,"bindingDistance",16);c(this,"hitTestPoint",(e,t)=>tn.Utils.pointInBounds(t,this.getRotatedBounds(e)));c(this,"hitTestLineSegment",(e,t,n)=>{let r=tn.Utils.getBoundsFromPoints([t,n]),s=this.getBounds(e);return tn.Utils.boundsContain(s,r)||e.rotation?(0,mr.intersectLineSegmentPolyline)(t,n,tn.Utils.getRotatedCorners(this.getBounds(e))).didIntersect:(0,mr.intersectLineSegmentBounds)(t,n,this.getBounds(e)).length>0});c(this,"create",e=>(this.refMap.set(e.id,Pc.createRef()),this.getShape(e)));c(this,"getCenter",e=>tn.Utils.getBoundsCenter(this.getBounds(e)));c(this,"getExpandedBounds",e=>tn.Utils.expandBounds(this.getBounds(e),this.bindingDistance));c(this,"getBindingPoint",(e,t,n,r,s,l)=>{let a=this.getBounds(e),d=this.getExpandedBounds(e);if(!tn.Utils.pointInBounds(n,d))return;let p=(0,mr.intersectRayBounds)(r,s,d).filter(b=>b.didIntersect).map(b=>b.points[0]);if(!p.length)return;let u=this.getCenter(e),h=p.sort((b,v)=>Ln.Vec.dist(v,r)-Ln.Vec.dist(b,r))[0],g=Ln.Vec.med(n,h),m,f;l?(m=Ln.Vec.dist(n,u)<16/2?u:n,f=0):(Ln.Vec.distanceToLineSegment(n,g,u)<16/2?m=u:m=g,tn.Utils.pointInBounds(n,a)?f=this.bindingDistance:f=Math.max(this.bindingDistance,tn.Utils.getBoundsSides(a).map(b=>Ln.Vec.distanceToLineSegment(b[1][0],b[1][1],n)).sort((b,v)=>b-v)[0]));let T=Ln.Vec.divV(Ln.Vec.sub(m,[d.minX,d.minY]),[d.width,d.height]);return{point:Ln.Vec.clampV(T,0,1),distance:f}});c(this,"mutate",(e,t)=>t);c(this,"transform",(e,t,n)=>I(S({},e),{point:[t.minX,t.minY]}));c(this,"transformSingle",(e,t,n)=>this.transform(e,t,n));c(this,"updateChildren");c(this,"onChildrenChange");c(this,"onHandleChange");c(this,"onRightPointHandle");c(this,"onDoubleClickHandle");c(this,"onDoubleClickBoundsHandle");c(this,"onSessionComplete");c(this,"getSvgElement",(e,t)=>{var s,l,a,d,p;let n=(s=document.getElementById(e.id+"_svg"))==null?void 0:s.cloneNode(!0);if(!n)return;if((d=(a=(l=e.label)==null?void 0:l.trim())==null?void 0:a.length)!=null?d:0>0){let u=e,h=document.createElementNS("http://www.w3.org/2000/svg","g"),g=Et(e.style),m=Vo(e.style.size,e.style.font)*((p=e.style.scale)!=null?p:1),f=Mn(e.style.font).slice(1,-1),T=this.getBounds(e),b=Math.max(0,T.width-16),v=ao(e.label,g,b),y=lo(u.label,m,f,"middle",b,!0);return y.setAttribute("transform",`translate(${T.width/2-b/2}, ${T.height/2-v[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 Ua=H(require("perfect-freehand")),Yn=require("telva-core"),es=require("telva-intersect"),ge=H(require("telva-vec"));function Ec(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=ge.default.dist(e.point,t.point),r=ge.default.med(e.point,t.point),s=n/2*o,l=ge.default.uni(ge.default.vec(e.point,t.point));return ge.default.toFixed(Math.abs(s)<10?r:ge.default.add(r,ge.default.mul(ge.default.per(l),s)))}function Bc(i,o,e,t,n,r){let s=Yn.Utils.rng(i),l=te(o).strokeWidth,a=n?ge.default.nudge(e,t,l):e,d=r?ge.default.nudge(t,e,l):t,p=(0,Ua.default)([a,d],{size:l,thinning:.618+s()*.2,easing:Mo.easeOutQuad,simulatePressure:!0,streamline:0,last:!0});return Yn.Utils.getSvgPathFromStroke(p)}function Mc(i,o,e,t,n,r,s,l,a,d){let p=Yn.Utils.rng(i),u=te(o).strokeWidth,h=n?ge.default.rotWith(e,s,u/a):e,g=r?ge.default.rotWith(t,s,-(u/a)):t,m=ge.default.angle(s,h),f=ge.default.angle(s,g),T=[],b=8+Math.floor(Math.abs(a)/20*1+p()/2);for(let y=0;y<b;y++){let x=d(y/b),P=Yn.Utils.lerpAngles(m,f,x);T.push(ge.default.toFixed(ge.default.nudgeAtAngle(s,P,l)))}let v=(0,Ua.default)([h,...T,g],{size:1+u,thinning:.618+p()*.2,easing:Mo.easeOutQuad,simulatePressure:!1,streamline:0,last:!0});return Yn.Utils.getSvgPathFromStroke(v)}function Xn(i,o,e){return Yn.Utils.circleFromThreePoints(i,e,o)}function ts(i,o,e,t,n){let r=(0,es.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?ge.default.nudge(ge.default.rotWith(s,i,Math.PI/6),i,o*-.382):i,a=s?ge.default.nudge(ge.default.rotWith(s,i,-Math.PI/6),i,o*-.382):i;return{left:l,right:a}}function ns(i,o,e){let t=(0,es.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?ge.default.rotWith(n,i,Math.PI/6):i,s=n?ge.default.rotWith(n,i,-Math.PI/6):i;return{left:r,right:s}}function Rc(i,o,e,t,n){let{left:r,right:s}=ts(i,o,e,t,n);return`M ${r} L ${i} ${s}`}function Dc(i,o,e){let{left:t,right:n}=ns(i,o,e);return`M ${t} L ${i} ${n}`}function Lc(i,o,e,t,n,r){let{strokeWidth:s}=te(i,!1),l=ge.default.dist(o,t),a=Math.min(l/3,s*8),d=[];if(ge.default.dist(e,ge.default.toFixed(ge.default.med(o,t)))<1)d.push(`M ${o} L ${t}`),n&&d.push(Dc(o,t,a)),r&&d.push(Dc(t,o,a));else{let u=Xn(o,e,t),h=[u[0],u[1]],g=u[2],m=Ho(h,g,o,t);d.push(`M ${o} A ${g} ${g} 0 0 ${m>0?"1":"0"} ${t}`),n&&d.push(Rc(o,a,h,g,m<0)),r&&d.push(Rc(t,a,h,g,m>=0))}return d.join(" ")}function ai(i,o,e){if(ge.default.dist2(o,ge.default.med(i,e))<=4)return[i,e];let t=[],n=Xn(i,o,e),r=[n[0],n[1]],s=n[2],l=ge.default.angle(r,i),a=ge.default.angle(r,e);for(let d=0;d<20;d++){let p=d/19,u=Yn.Utils.lerpAngles(l,a,p);t.push(ge.default.nudgeAtAngle(r,u,s))}return t}function Ac(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=Yn.Utils.getSweep(i,e,t);return o*(2*Math.PI)*(n/(2*Math.PI))}var Vc=H(require("react")),Ka=require("telva-core"),Hc=H(require("telva-vec"));var os=require("react/jsx-runtime");function gr({left:i,middle:o,right:e,stroke:t,strokeWidth:n}){return(0,os.jsxs)("g",{children:[(0,os.jsx)("path",{className:"tv-stroke-hitarea",d:`M ${i} L ${o} ${e}`}),(0,os.jsx)("path",{d:`M ${i} L ${o} ${e}`,fill:"none",stroke:t,strokeWidth:n,strokeLinecap:"round",strokeLinejoin:"round",pointerEvents:"none"})]})}var co=require("react/jsx-runtime"),zc=Vc.memo(function({id:o,style:e,start:t,bend:n,end:r,arrowBend:s,decorationStart:l,decorationEnd:a,isDraw:d,isDarkMode:p}){let u=Hc.default.dist(t,r);if(u<2)return null;let h=te(e,p),{strokeWidth:g}=h,m=1+g*1.618,f=Xn(t,n,r),T=[f[0],f[1]],b=f[2],v=Ho(T,b,t,r),y=Ka.Utils.rng(o),x=Mo[y()>0?"easeInOutSine":"easeInOutCubic"],P=d?Mc(o,e,t,r,l,a,T,b,v,x):Ec(t,r,f,s),{strokeDasharray:C,strokeDashoffset:E}=Ka.Utils.getPerfectDashProps(Math.abs(v),m,e.dash,2,!1),k=Math.min(u/3,g*8),D=l?ts(t,k,T,b,v<0):null,M=a?ts(r,k,T,b,v>=0):null;return(0,co.jsxs)(co.Fragment,{children:[(0,co.jsx)("path",{className:"tv-stroke-hitarea",d:P}),(0,co.jsx)("path",{d:P,fill:d?h.stroke:"none",stroke:h.stroke,strokeWidth:d?0:m,strokeDasharray:C,strokeDashoffset:E,strokeLinecap:"round",strokeLinejoin:"round",pointerEvents:"none"}),D&&(0,co.jsx)(gr,{left:D.left,middle:t,right:D.right,stroke:h.stroke,strokeWidth:m}),M&&(0,co.jsx)(gr,{left:M.left,middle:r,right:M.right,stroke:h.stroke,strokeWidth:m})]})});var Fc=H(require("react")),Oc=require("telva-core"),rs=H(require("telva-vec"));var po=require("react/jsx-runtime"),$c=Fc.memo(function({id:o,style:e,start:t,end:n,decorationStart:r,decorationEnd:s,isDraw:l,isDarkMode:a}){let d=rs.default.dist(t,n);if(d<2)return null;let p=te(e,a),{strokeWidth:u}=p,h=1+u*1.618,g=l?Bc(o,e,t,n,r,s):"M"+rs.default.toFixed(t)+"L"+rs.default.toFixed(n),{strokeDasharray:m,strokeDashoffset:f}=Oc.Utils.getPerfectDashProps(d,u*1.618,e.dash,2,!1),T=Math.min(d/3,u*8),b=r?ns(t,n,T):null,v=s?ns(n,t,T):null;return(0,po.jsxs)(po.Fragment,{children:[(0,po.jsx)("path",{className:"tv-stroke-hitarea",d:g}),(0,po.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,po.jsx)(gr,{left:b.left,middle:t,right:b.right,stroke:p.stroke,strokeWidth:h}),v&&(0,po.jsx)(gr,{left:v.left,middle:n,right:v.right,stroke:p.stroke,strokeWidth:h})]})});var Tt=require("react/jsx-runtime"),is=class extends ee{constructor(){super(...arguments);c(this,"type","arrow");c(this,"hideBounds",!0);c(this,"canEdit",!0);c(this,"pathCache",new WeakMap);c(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)});c(this,"Component",ee.Component(({shape:e,isEditing:t,isGhost:n,meta:r,events:s,onShapeChange:l,onShapeBlur:a},d)=>{var V,X,se;let{id:p,label:u="",handles:{start:h,bend:g,end:m},decorations:f={},style:T}=e,b=(X=(V=u==null?void 0:u.trim())==null?void 0:V.length)!=null?X:0>0,v=Y.Vec.dist(g.point,Y.Vec.toFixed(Y.Vec.med(h.point,m.point)))<1,y=Et(T),x=te(T,r.isDarkMode),P=b||t?ao(u,y):[0,0],C=this.getBounds(e),E=zo.useMemo(()=>{let{start:G,bend:ne,end:pe}=e.handles;if(v)return Y.Vec.dist(G.point,pe.point);let he=Xn(G.point,ne.point,pe.point),Be=he.slice(0,2),bt=he[2],rt=Ho(Be,bt,G.point,pe.point);return Math.abs(rt)},[e.handles]),k=Math.max(.5,Math.min(1,Math.max(E/(P[1]+128),E/(P[0]+128)))),D=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,k]),M=zo.useCallback(G=>{l==null||l({id:p,label:G})},[l]),L=v?$c:zc;return(0,Tt.jsxs)($g,I(S({ref:d},s),{children:[(0,Tt.jsx)(uo,{font:y,text:u,color:(se=T.labelColor)!=null?se:x.stroke,background:T.labelBackground,textGradient:T.textGradient,offsetX:D[0],offsetY:D[1],scale:k,isEditing:t,onChange:M,onBlur:a}),(0,Tt.jsxs)(Ot.SVGContainer,{id:e.id+"_svg",children:[(0,Tt.jsx)("defs",{children:(0,Tt.jsxs)("mask",{id:e.id+"_clip",children:[(0,Tt.jsx)("rect",{x:-100,y:-100,width:C.width+200,height:C.height+200,fill:"white"}),(0,Tt.jsx)("rect",{x:C.width/2-P[0]/2*k+D[0],y:C.height/2-P[1]/2*k+D[1],width:P[0]*k,height:P[1]*k,rx:4*k,ry:4*k,fill:"black",opacity:1})]})}),(0,Tt.jsx)("g",{pointerEvents:"none",opacity:n?.3:x.opacity,mask:b||t?`url(#${e.id}_clip)`:"",children:(0,Tt.jsx)(L,{id:p,style:T,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:T.dash==="draw",isDarkMode:r.isDarkMode})})]})]}))}));c(this,"Indicator",ee.Indicator(({shape:e,bounds:t})=>{var b,v;let{style:n,decorations:r,label:s,handles:{start:l,bend:a,end:d}}=e,p=(v=(b=s==null?void 0:s.trim())==null?void 0:b.length)!=null?v:0>0,u=Et(n),h=p?ao(s,u):[0,0],g=Y.Vec.dist(a.point,Y.Vec.toFixed(Y.Vec.med(l.point,d.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 C=Xn(y.point,x.point,P.point),E=C.slice(0,2),k=C[2],D=Ho(E,k,y.point,P.point);return Math.abs(D)},[e.handles]),f=Math.max(.5,Math.min(1,Math.max(m/(h[1]+128),m/(h[0]+128)))),T=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,Tt.jsxs)(Tt.Fragment,{children:[p&&(0,Tt.jsx)(Tc,{id:e.id,scale:f,offset:T,bounds:t,labelSize:h}),(0,Tt.jsx)("path",{d:Lc(n,l.point,a.point,d.point,r==null?void 0:r.start,r==null?void 0:r.end),mask:p?`url(#${e.id}_clip)`:""}),p&&(0,Tt.jsx)("rect",{x:t.width/2-h[0]/2*f+T[0],y:t.height/2-h[1]/2*f+T[1],width:h[0]*f,height:h[1]*f,rx:4*f,ry:4*f,fill:"transparent"})]})}));c(this,"getBounds",e=>{let t=Ot.Utils.getFromCache(this.boundsCache,e,()=>{let{handles:{start:n,bend:r,end:s}}=e;return Ot.Utils.getBoundsFromPoints(ai(n.point,r.point,s.point))});return Ot.Utils.translateBounds(t,e.point)});c(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:d,maxY:p}=Ot.Utils.getBoundsFromPoints(s);return e.rotation!==0&&(s=s.map(u=>Y.Vec.rotWith(u,[(l+d)/2,(a+p)/2],e.rotation||0))),Ot.Utils.translateBounds(Ot.Utils.getBoundsFromPoints(s),e.point)});c(this,"getCenter",e=>{let{start:t,end:n}=e.handles;return Y.Vec.add(e.point,Y.Vec.med(t.point,n.point))});c(this,"shouldRender",(e,t)=>t.decorations!==e.decorations||t.handles!==e.handles||t.style!==e.style||t.label!==e.label);c(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 d=1;d<a.length;d++)if(Y.Vec.distanceToLineSegment(a[d-1],a[d],l)<1)return!0;return!1});c(this,"hitTestLineSegment",(e,t,n)=>{let{handles:{start:r,bend:s,end:l}}=e,a=Y.Vec.sub(t,e.point),d=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,d).didIntersect)return!0;return!1});c(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(Ot.Utils.pointInBounds(l,t)||Ot.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[d,p,u]=Xn(n.point,s.point,r.point),h=Y.Vec.add(e.point,[d,p]);return(0,fr.intersectArcBounds)(h,u,l,a,t).length>0}});c(this,"transform",(e,t,{initialShape:n,scaleX:r,scaleY:s})=>{let l=this.getBounds(n),a=["start","end"],d=S({},n.handles);a.forEach(h=>{if(h==="bend")return;let[g,m]=d[h].point,f=g/l.width,T=m/l.height;d[h]=I(S({},d[h]),{point:[t.width*(r<0?1-f:f),t.height*(s<0?1-T:T)]})});let p=r>0&&s<0||r<0&&s>0?-n.bend:n.bend,u=si(d,p);return d.bend.point=u,{point:Y.Vec.toFixed([t.minX,t.minY]),handles:d,bend:p}});c(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});c(this,"onHandleChange",(e,t)=>{let n=Ot.Utils.deepMerge(e.handles,t),r=e.bend;if(n=Ot.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),T=Y.Vec.uni(Y.Vec.vec(p.point,u.point)),b=Y.Vec.add(m,Y.Vec.mul(Y.Vec.per(T),g)),v=Y.Vec.sub(m,Y.Vec.mul(Y.Vec.per(T),g)),y=Y.Vec.nearestPointOnLineSegment(b,v,h.point,!0),P=Y.Vec.dist(m,y)/(g/2);r=Ot.Utils.clamp(P,-.99,.99);let C=Y.Vec.angle(p.point,y);Y.Vec.isEqual(m,si(n,r))?r=0:Ac(f,f+Math.PI,C)&&(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)),d=Y.Vec.sub([a.minX,a.minY],l);return Y.Vec.isEqual(d,[0,0])||(Object.values(s.handles).forEach(p=>{p.point=Y.Vec.toFixed(Y.Vec.sub(p.point,d))}),s.point=Y.Vec.toFixed(Y.Vec.add(s.point,d))),s});c(this,"getSvgElement",(e,t)=>{var s,l,a,d,p;let n=(s=document.getElementById(e.id+"_svg"))==null?void 0:s.cloneNode(!0);if(!n)return;if((d=(a=(l=e.label)==null?void 0:l.trim())==null?void 0:a.length)!=null?d:0>0){let u=e,h=document.createElementNS("http://www.w3.org/2000/svg","g"),g=Et(e.style),m=ao(e.label,g),f=Vo(e.style.size,e.style.font)*((p=e.style.scale)!=null?p:1),T=Mn(e.style.font).slice(1,-1),b=lo(u.label,f,T,"start",m[0],!1),v,{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)v=Y.Vec.dist(y.point,P.point);else{let V=Xn(y.point,x.point,P.point),X=V.slice(0,2),se=V[2],G=Ho(X,se,y.point,P.point);v=Math.abs(G)}let E=Math.max(.5,Math.min(1,Math.max(v/(m[1]+128),v/(m[0]+128)))),k=this.getBounds(e),D=Y.Vec.sub(e.handles.bend.point,[k.width/2,k.height/2]),M=k.width/2-m[0]/2*E+D[0],L=k.height/2-m[1]/2*E+D[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})}},$g=R("div",{width:"100%",height:"100%"});var on=H(require("react")),je=require("telva-core"),Zn=require("telva-intersect"),nn=require("telva-vec");var Fo=require("react/jsx-runtime");function xt(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((d,p)=>(0,Fo.jsx)("stop",{offset:`${d.position}%`,stopColor:d.color,stopOpacity:d.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,T=50+h*50;return{defs:(0,Fo.jsx)("defs",{children:(0,Fo.jsx)("linearGradient",{id:t,x1:`${g}%`,y1:`${m}%`,x2:`${f}%`,y2:`${T}%`,gradientUnits:"objectBoundingBox",children:n})}),gradFill:`url(#${t})`}}if(e.type==="radial"){let d=((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:d,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"),ls=require("telva-core"),ss=H(require("telva-vec"));var Gg={easing:i=>Math.sin(i*Math.PI/2),simulatePressure:!0},jg={easing:i=>i*i,simulatePressure:!1};function _a(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?Gg:jg),{last:i.isComplete})}function Gc(i){return i.points.length<2?"":ls.Utils.getSvgPathFromStroke((0,li.getStrokePoints)(i.points,_a(i)).map(o=>o.point))}function jc(i,o){return(0,li.getStrokePoints)(i.points,o)}function Wc(i){if(i.points.length<2)return"";let o=_a(i),e=jc(i,o);return ls.Utils.getSvgPathFromStroke((0,li.getStrokeOutlinePoints)(e,o))}function Ya(i){let{points:o}=i;if(o.length<2)return"M 0 0 L 0 0";let e=_a(i),t=jc(i,e),n=o[o.length-1];return ss.default.isEqual(t[0].point,n)||t.push({point:n}),ls.Utils.getSvgPathFromStrokePoints(t)}function Nc(i){let{points:o}=i;if(o.length<2)return"M 0 0 L 0 0";let e=as(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 Uc(i){let{points:o}=i;if(o.length<3)return"";let e=as(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 as(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=Wg(i[s],n,r);l>e&&(e=l,t=s)}if(e>o){let s=as(i.slice(0,t+1),o),l=as(i.slice(t),o);return[...s.slice(0,-1),...l]}return[n,r]}function Wg(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 ss.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 ss.default.dist(i,l)}var nt=require("react/jsx-runtime"),ds=class extends ee{constructor(){super(...arguments);c(this,"type","draw");c(this,"pointsBoundsCache",new WeakMap([]));c(this,"shapeBoundsCache",new Map);c(this,"rotatedCache",new WeakMap([]));c(this,"pointCache",{});c(this,"canClone",!0);c(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));c(this,"Component",ee.Component(({shape:e,meta:t,isSelected:n,isGhost:r,events:s},l)=>{var et;let{points:a,style:d,isComplete:p}=e,u=t.canvasMode==="straight",h=t.nodeEditingId===e.id,g=_(),m=on.useRef(null),[f,T]=on.useState(null),b=on.useCallback((be,j)=>nn.Vec.sub(g.getPagePoint([be,j]),e.point),[g,e.point]),v=on.useCallback(be=>{if(be.length===0)return;let j=Math.min(...be.map(W=>W[0])),ae=Math.min(...be.map(W=>W[1])),le=be.map(([W,Q,re])=>[+(W-j).toFixed(2),+(Q-ae).toFixed(2),re!=null?re:.5]),Z=nn.Vec.add(e.point,[j,ae]);g.updateShapes({id:e.id,point:Z,points:le})},[g,e.id,e.point]),y=on.useMemo(()=>u?Uc(e):Gc(e),[a,d.size,u,d.strokeWidthOverride]),x=on.useMemo(()=>u?Nc(e):d.dash==="draw"?Wc(e):Ya(e),[a,d.size,d.dash,p,u,d.strokeWidthOverride]),P=te(d,t.isDarkMode),{stroke:C,fill:E,strokeWidth:k,opacity:D}=P,{defs:M,gradFill:L}=xt(e.id,d),V=L!=null?L:E,X=(et=g.zoom)!=null?et:1,se=on.useMemo(()=>{if(!h||a.length<1)return null;let be=5/X,j=3.5/X,ae=a.map((Z,W)=>(0,nt.jsx)("circle",{cx:Z[0],cy:Z[1],r:f===W?be*1.4:be,fill:f===W?"#0D99FF":"white",stroke:"#0D99FF",strokeWidth:1.5/X,style:{cursor:"move",pointerEvents:"all"},onPointerEnter:()=>T(W),onPointerLeave:()=>T(null),onPointerDown:Q=>{Q.stopPropagation(),Q.currentTarget.setPointerCapture(Q.pointerId),m.current={nodeIdx:W}},onPointerMove:Q=>{var Me;if(!m.current||m.current.nodeIdx!==W)return;Q.stopPropagation();let re=b(Q.clientX,Q.clientY),z=[...a];z[W]=[re[0],re[1],(Me=a[W][2])!=null?Me:.5],g.patchState({document:{pages:{[g.currentPageId]:{shapes:{[e.id]:{points:z}}}}}})},onPointerUp:Q=>{var Me;if(!m.current)return;Q.stopPropagation();let re=b(Q.clientX,Q.clientY),z=[...a];z[W]=[re[0],re[1],(Me=a[W][2])!=null?Me:.5],m.current=null,v(z)}},`n-${W}`)),le=a.slice(0,-1).map((Z,W)=>{let Q=a[W+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:Me=>{Me.stopPropagation();let Nt=[re,z,.5],qt=[...a.slice(0,W+1),Nt,...a.slice(W+1)];g.updateShapes({id:e.id,points:qt})}},`m-${W}`)});return(0,nt.jsxs)("g",{style:{pointerEvents:"none"},children:[a.slice(0,-1).map((Z,W)=>(0,nt.jsx)("line",{x1:Z[0],y1:Z[1],x2:a[W+1][0],y2:a[W+1][1],stroke:"#0D99FF",strokeWidth:1/X,strokeOpacity:.4,pointerEvents:"none"},`l-${W}`)),le,ae]})},[h,a,X,f,e.id,g.currentPageId]),G=this.getBounds(e);if(G.width<=k/2&&G.height<=k/2){let be=1+k;return(0,nt.jsxs)(je.SVGContainer,I(S({ref:l,id:e.id+"_svg"},s),{children:[M,(0,nt.jsx)("circle",{r:be,fill:C,stroke:C,pointerEvents:"all",opacity:r?.3:D})]}))}let pe=d.isFilled&&a.length>3&&nn.Vec.dist(a[0],a[a.length-1])<k*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:D,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:C,stroke:C,strokeWidth:k/2,strokeLinejoin:"round",strokeLinecap:"round",pointerEvents:"none"})]}),se]}));let Be=u?"none":{["draw"]:"none",["solid"]:"none",["dotted"]:`0.1 ${k*4}`,["dashed"]:`${k*4} ${k*4}`}[d.dash],bt=u?"none":{["draw"]:"none",["solid"]:"none",["dotted"]:"0",["dashed"]:"0"}[d.dash],rt=1+k*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:D,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,k*2),strokeLinejoin:u?"miter":"round",strokeLinecap:u?"square":"round",pointerEvents:"none"}),(0,nt.jsx)("path",{d:x,fill:"none",stroke:C,strokeWidth:rt,strokeDasharray:Be,strokeDashoffset:bt,strokeLinejoin:u?"miter":"round",strokeLinecap:u?"square":"round",pointerEvents:"none"})]}),se]}))}));c(this,"Indicator",ee.Indicator(({shape:e})=>{let{points:t}=e,n=on.useMemo(()=>Ya(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})}));c(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]),d=je.Utils.getBoundsFromPoints(e.points),p=nn.Vec.sub([t.minX,t.minY],[d.minX,d.minY]);return{points:a,point:p}});c(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)});c(this,"shouldRender",(e,t)=>t.points!==e.points||t.style!==e.style||t.isComplete!==e.isComplete);c(this,"hitTestPoint",(e,t)=>{let n=nn.Vec.sub(t,e.point);return je.Utils.pointInPolyline(n,e.points)});c(this,"hitTestLineSegment",(e,t,n)=>{let{points:r,point:s}=e,l=nn.Vec.sub(t,s),a=nn.Vec.sub(n,s),d=this.getBounds(e);if(d.width<8&&d.height<8)return nn.Vec.distanceToLineSegment(t,n,je.Utils.getBoundsCenter(d))<5;if((0,Zn.intersectLineSegmentBounds)(l,a,d)){for(let p=1;p<r.length;p++)if((0,Zn.intersectLineSegmentLineSegment)(r[p-1],r[p],l,a).didIntersect)return!0}return!1});c(this,"hitTestBounds",(e,t)=>{if(!e.rotation){let s=this.getBounds(e);return je.Utils.boundsContain(t,s)||(je.Utils.boundsContain(s,t)||(0,Zn.intersectBoundsBounds)(s,t).length>0)&&(0,Zn.intersectBoundsPolyline)(je.Utils.translateBounds(t,nn.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=>nn.Vec.rotWith(l,s,e.rotation||0))});return je.Utils.boundsContain(t,n)||(0,Zn.intersectBoundsPolyline)(je.Utils.translateBounds(t,nn.Vec.neg(e.point)),r).length>0})}};var Jc=H(require("react")),rn=require("telva-core"),mo=require("telva-intersect"),kt=require("telva-vec");var Kc=H(require("react")),Xa=require("telva-core");var Sr=require("react/jsx-runtime"),_c=Kc.memo(function({id:o,radius:e,style:t,isSelected:n,isDarkMode:r}){let{stroke:s,strokeWidth:l,fill:a}=te(t,r),{defs:d,gradFill:p}=xt(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=Xa.Utils.perimeterOfEllipse(g,m),{strokeDasharray:T,strokeDashoffset:b}=Xa.Utils.getPerfectDashProps(f<64?f*2:f,l*1.618,t.dash,4);return(0,Sr.jsxs)(Sr.Fragment,{children:[d,(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:T,strokeDashoffset:b,pointerEvents:"none",strokeLinecap:"round",strokeLinejoin:"round"})]})});var Zc=H(require("react"));var cs=require("perfect-freehand"),Oo=require("telva-core");function Yc(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=[],d=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=d*2+Math.PI*(2+p)*g,f=Math.cos(m),T=Math.sin(m);a.push([r*f+o[0],s*T+o[1],g+.5+n()/2])}return(0,cs.getStrokePoints)(a,{size:1+t*2,thinning:.618,end:{taper:l/8},start:{taper:l/12},streamline:0,simulatePressure:!0})}function Xc(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,cs.getStrokeOutlinePoints)(Yc(i,o,e),{size:2+t*2,thinning:.618,end:{taper:l/8},start:{taper:l/12},streamline:0,simulatePressure:!0}))}function ps(i,o,e){return Oo.Utils.getSvgPathFromStrokePoints(Yc(i,o,e))}var $o=require("react/jsx-runtime"),qc=Zc.memo(function({id:o,radius:e,style:t,isSelected:n,isDarkMode:r}){let{stroke:s,strokeWidth:l,fill:a}=te(t,r),{defs:d,gradFill:p}=xt(o,t),u=p!=null?p:a,h=Xc(o,e,t);return(0,$o.jsxs)($o.Fragment,{children:[d,(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:ps(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 ho=require("react/jsx-runtime"),us=class extends ee{constructor(){super(...arguments);c(this,"type","ellipse");c(this,"canBind",!0);c(this,"canClone",!0);c(this,"canEdit",!0);c(this,"getShape",e=>rn.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));c(this,"Component",ee.Component(({shape:e,isGhost:t,isSelected:n,isBinding:r,isEditing:s,meta:l,bounds:a,events:d,onShapeChange:p,onShapeBlur:u},h)=>{var L;let{id:g,radius:m,style:f,label:T="",labelPoint:b=pr}=e,v=Et(e.style),y=te(f,l.isDarkMode),x=y.strokeWidth,P=1+x*1.618,C=Math.max(0,m[0]-P/2),E=Math.max(0,m[1]-P/2),D=!(l.canvasMode==="straight")&&f.dash==="draw"?qc:_c,M=Jc.useCallback(V=>p==null?void 0:p({id:g,label:V}),[p]);return(0,ho.jsxs)(Ng,I(S({ref:h},d),{children:[(0,ho.jsx)(uo,{isEditing:s,onChange:M,onBlur:u,font:v,text:T,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,ho.jsxs)(rn.SVGContainer,{id:e.id+"_svg",opacity:t?.3:y.opacity,children:[r&&(0,ho.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,ho.jsx)(D,{id:g,style:f,radius:m,isSelected:n,isDarkMode:l.isDarkMode})]})]}))}));c(this,"Indicator",ee.Indicator(({shape:e,meta:t})=>{let{id:n,radius:r,style:s}=e,a=te(s).strokeWidth,d=1+a*1.618,p=Math.max(0,r[0]-d/2),u=Math.max(0,r[1]-d/2);return!((t==null?void 0:t.canvasMode)==="straight")&&s.dash==="draw"?(0,ho.jsx)("path",{d:ps(n,r,s)}):(0,ho.jsx)("ellipse",{cx:r[0],cy:r[1],rx:p,ry:u})}));c(this,"hitTestPoint",(e,t)=>rn.Utils.pointInBounds(t,this.getRotatedBounds(e))&&rn.Utils.pointInEllipse(t,this.getCenter(e),e.radius[0],e.radius[1],e.rotation||0));c(this,"hitTestLineSegment",(e,t,n)=>(0,mo.intersectLineSegmentEllipse)(t,n,this.getCenter(e),e.radius[0],e.radius[1],e.rotation||0).didIntersect);c(this,"getBounds",e=>rn.Utils.getFromCache(this.boundsCache,e,()=>rn.Utils.getRotatedEllipseBounds(e.point[0],e.point[1],e.radius[0],e.radius[1],0)));c(this,"getRotatedBounds",e=>rn.Utils.getRotatedEllipseBounds(e.point[0],e.point[1],e.radius[0],e.radius[1],e.rotation));c(this,"hitTestBounds",(e,t)=>{let n=this.getBounds(e);return rn.Utils.boundsContained(n,t)||(0,mo.intersectEllipseBounds)(this.getCenter(e),e.radius[0],e.radius[1],e.rotation||0,t).length>0});c(this,"shouldRender",(e,t)=>t.radius!==e.radius||t.style!==e.style||t.label!==e.label);c(this,"getCenter",e=>kt.Vec.add(e.point,e.radius));c(this,"getBindingPoint",(e,t,n,r,s,l)=>{{let a=this.getExpandedBounds(e),d=this.getCenter(e),p,u;if(!rn.Utils.pointInEllipse(n,d,e.radius[0]+this.bindingDistance,e.radius[1]+this.bindingDistance))return;if(l)kt.Vec.dist(n,this.getCenter(e))<12?p=[.5,.5]:p=kt.Vec.divV(kt.Vec.sub(n,[a.minX,a.minY]),[a.width,a.height]),u=0;else{let h=(0,mo.intersectRayEllipse)(r,s,d,e.radius[0],e.radius[1],e.rotation||0).points.sort((m,f)=>kt.Vec.dist(m,r)-kt.Vec.dist(f,r))[0];if(h||(h=(0,mo.intersectLineSegmentEllipse)(n,d,d,e.radius[0],e.radius[1],e.rotation||0).points.sort((m,f)=>kt.Vec.dist(m,n)-kt.Vec.dist(f,n))[0]),!h)return;let g=kt.Vec.med(n,h);if(kt.Vec.distanceToLineSegment(n,g,this.getCenter(e))<12?p=[.5,.5]:p=kt.Vec.divV(kt.Vec.sub(g,[a.minX,a.minY]),[a.width,a.height]),rn.Utils.pointInEllipse(n,d,e.radius[0],e.radius[1],e.rotation||0))u=this.bindingDistance/2;else{let m=(0,mo.intersectLineSegmentEllipse)(n,d,d,e.radius[0],e.radius[1],e.rotation||0).points[0];if(!m)return;u=Math.max(this.bindingDistance/2,kt.Vec.dist(n,m))}}return{point:p,distance:u}}});c(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}});c(this,"transformSingle",(e,t)=>({point:kt.Vec.toFixed([t.minX,t.minY]),radius:kt.Vec.div([t.width,t.height],2)}))}},Ng=R("div",{width:"100%",height:"100%"});var ms=require("telva-core");var qn=require("react/jsx-runtime"),hs=class extends ee{constructor(){super(...arguments);c(this,"type","group");c(this,"canBind",!0);c(this,"getShape",e=>ms.Utils.deepMerge({id:"id",type:"group",name:"Group",parentId:"page",childIndex:1,point:[0,0],size:[100,100],rotation:0,children:[],style:$e},e));c(this,"Component",ee.Component(({shape:e,isBinding:t,isGhost:n,isHovered:r,isSelected:s,events:l},a)=>{let{id:d,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(([T,b],v)=>(0,qn.jsx)("line",{x1:T[0],y1:T[1],x2:b[0],y2:b[1]},d+"_"+v));return(0,qn.jsxs)(ms.SVGContainer,I(S({ref:a},l),{children:[t&&(0,qn.jsx)("rect",{className:"tv-binding-indicator",strokeWidth:this.bindingDistance}),(0,qn.jsxs)("g",{opacity:n?.3:1,children:[(0,qn.jsx)("rect",{x:0,y:0,width:p[0],height:p[1],fill:"transparent",pointerEvents:"all"}),(0,qn.jsx)(Qc,{stroke:"black",opacity:r||s?1:0,strokeLinecap:"round",pointerEvents:"stroke",children:f})]})]}))}));c(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),d=[[[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,qn.jsx)("line",{x1:p[0],y1:p[1],x2:u[0],y2:u[1]},t+"_"+h));return(0,qn.jsx)(Qc,{strokeLinecap:"round",pointerEvents:"stroke",children:d})}));c(this,"getBounds",e=>zt(e,this.boundsCache));c(this,"shouldRender",(e,t)=>t.size!==e.size||t.style!==e.style)}},Qc=R("g",{strokeWidth:"calc(1.5px * var(--tv-scale))",strokeDasharray:"calc(1px * var(--tv-scale)), calc(3px * var(--tv-scale))"});var Za=require("@stitches/react"),di=H(require("react")),fs=require("telva-core");var yr=require("react/jsx-runtime"),gs=class extends ee{constructor(){super(...arguments);c(this,"type","image");c(this,"canBind",!0);c(this,"canClone",!0);c(this,"isAspectRatioLocked",!0);c(this,"showCloneHandles",!1);c(this,"getShape",e=>fs.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));c(this,"Component",ee.Component(({shape:e,asset:t={src:""},isBinding:n,isGhost:r,meta:s,events:l,onShapeChange:a},d)=>{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[T,b]=p;f.style.width=`${T}px`,f.style.height=`${b}px`},[p]),(0,yr.jsxs)(fs.HTMLContainer,I(S({ref:d},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)(Ug,{ref:m,isDarkMode:s.isDarkMode,isFilled:u.isFilled,isGhost:r,children:(0,yr.jsx)(Kg,{id:e.id+"_image",ref:g,src:t.src,alt:"tl_image_asset",draggable:!1})})]}))}));c(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)})}));c(this,"getBounds",e=>zt(e,this.boundsCache));c(this,"shouldRender",(e,t)=>t.size!==e.size||t.style!==e.style);c(this,"transform",An);c(this,"transformSingle",Vn);c(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})}},Ug=(0,Za.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)"}}]}),Kg=(0,Za.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 fn=H(require("react")),Hn=require("telva-core"),gn=require("telva-vec");var ep=require("telva-core");function qa(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],d=i[l],p=(t=a.cp2)!=null?t:a.point,u=(n=d.cp1)!=null?n:d.point;a.cp2!=null||d.cp1!=null?e+=` C ${p[0].toFixed(2)} ${p[1].toFixed(2)} ${u[0].toFixed(2)} ${u[1].toFixed(2)} ${d.point[0].toFixed(2)} ${d.point[1].toFixed(2)}`:e+=` L ${d.point[0].toFixed(2)} ${d.point[1].toFixed(2)}`}if(o&&i.length>2){let l=i[i.length-1],a=i[0],d=(r=l.cp2)!=null?r:l.point,p=(s=a.cp1)!=null?s:a.point;(l.cp2!=null||a.cp1!=null)&&(e+=` C ${d[0].toFixed(2)} ${d[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 Ss(i){if(i.length===0)return{minX:0,minY:0,maxX:1,maxY:1,width:1,height:1};let o=i.map(e=>e.point);return ep.Utils.getBoundsFromPoints(o)}function Ja(i){if(i.length===0)return{segments:i,offset:[0,0]};let o=Ss(i),e=[o.minX,o.minY];return{segments:i.map(n=>({point:[n.point[0]-e[0],n.point[1]-e[1]],cp1:n.cp1?[n.cp1[0]-e[0],n.cp1[1]-e[1]]:void 0,cp2:n.cp2?[n.cp2[0]-e[0],n.cp2[1]-e[1]]:void 0})),offset:e}}function ci(i,o){return[2*i[0]-o[0],2*i[1]-o[1]]}var qe=require("react/jsx-runtime"),ys=class extends ee{constructor(){super(...arguments);c(this,"type","pen");c(this,"canClone",!0);c(this,"pointsBoundsCache",new WeakMap);c(this,"shapeBoundsCache",new Map);c(this,"pointCache",{});c(this,"getShape",e=>Hn.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));c(this,"Component",ee.Component(({shape:e,meta:t,isSelected:n,isGhost:r,events:s},l)=>{var rt,et,be;let{segments:a,style:d,isClosed:p,isComplete:u,previewPoint:h,isPlacingHandle:g}=e,m=t.nodeEditingId===e.id,f=_(),T=fn.useRef(null),[b,v]=fn.useState(null),y=fn.useCallback((j,ae)=>gn.Vec.sub(f.getPagePoint([j,ae]),e.point),[f,e.point]),x=fn.useCallback(j=>{f.patchState({document:{pages:{[f.currentPageId]:{shapes:{[e.id]:{segments:j}}}}}})},[f,e.id]),P=fn.useCallback(j=>{f.updateShapes({id:e.id,segments:j})},[f,e.id]),C=te(d,t.isDarkMode),{stroke:E,fill:k,strokeWidth:D,opacity:M}=C,{defs:L,gradFill:V}=xt(e.id,d),X=V!=null?V:k,se=fn.useMemo(()=>qa(a,p),[a,p]),G=(rt=f.zoom)!=null?rt:1,ne=1+D*1.5,pe=(et={["draw"]:"none",["solid"]:"none",["dotted"]:`0.1 ${D*4}`,["dashed"]:`${D*4} ${D*4}`}[d.dash])!=null?et:"none",he=(be={["draw"]:"0",["solid"]:"0",["dotted"]:"0",["dashed"]:"0"}[d.dash])!=null?be:"0",Be=fn.useMemo(()=>{if(!m||a.length===0)return null;let j=5/G,ae=3.5/G,le=1/G,Z=[],W=[],Q=[];return a.forEach((re,z)=>{let[Me,Nt]=re.point;if(re.cp1){let[ve,tt]=re.cp1,it=`cp1-${z}`;Q.push((0,qe.jsx)("line",{x1:Me,y1:Nt,x2:ve,y2:tt,stroke:"#0D99FF",strokeWidth:le,strokeOpacity:.6,pointerEvents:"none"},`lcp1-${z}`)),W.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:()=>v(it),onPointerLeave:()=>v(null),onPointerDown:ue=>{ue.stopPropagation(),ue.currentTarget.setPointerCapture(ue.pointerId),T.current={kind:"cp1",idx:z}},onPointerMove:ue=>{if(!T.current||T.current.kind!=="cp1"||T.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(!T.current)return;ue.stopPropagation();let xe=y(ue.clientX,ue.clientY),Pe=[...a];Pe[z]=I(S({},Pe[z]),{cp1:xe}),T.current=null,P(Pe)}},it))}if(re.cp2){let[ve,tt]=re.cp2,it=`cp2-${z}`;Q.push((0,qe.jsx)("line",{x1:Me,y1:Nt,x2:ve,y2:tt,stroke:"#0D99FF",strokeWidth:le,strokeOpacity:.6,pointerEvents:"none"},`lcp2-${z}`)),W.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:()=>v(it),onPointerLeave:()=>v(null),onPointerDown:ue=>{ue.stopPropagation(),ue.currentTarget.setPointerCapture(ue.pointerId),T.current={kind:"cp2",idx:z}},onPointerMove:ue=>{if(!T.current||T.current.kind!=="cp2"||T.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:ci(Pe[z].point,xe)})),x(Pe)},onPointerUp:ue=>{if(!T.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:ci(Pe[z].point,xe)})),T.current=null,P(Pe)}},it))}let qt=`node-${z}`;if(Z.push((0,qe.jsx)("circle",{cx:Me,cy:Nt,r:b===qt?j*1.4:j,fill:b===qt?"#0D99FF":"white",stroke:"#0D99FF",strokeWidth:1.5/G,style:{cursor:"move"},onPointerEnter:()=>v(qt),onPointerLeave:()=>v(null),onPointerDown:ve=>{ve.stopPropagation(),ve.currentTarget.setPointerCapture(ve.pointerId),T.current={kind:"node",idx:z}},onPointerMove:ve=>{if(!T.current||T.current.kind!=="node"||T.current.idx!==z)return;ve.stopPropagation();let tt=y(ve.clientX,ve.clientY),it=a[z].point,ue=gn.Vec.sub(tt,it),xe=[...a];xe[z]=I(S({},xe[z]),{point:tt,cp1:xe[z].cp1?gn.Vec.add(xe[z].cp1,ue):void 0,cp2:xe[z].cp2?gn.Vec.add(xe[z].cp2,ue):void 0}),x(xe)},onPointerUp:ve=>{if(!T.current)return;ve.stopPropagation();let tt=y(ve.clientX,ve.clientY),it=a[z].point,ue=gn.Vec.sub(tt,it),xe=[...a];xe[z]=I(S({},xe[z]),{point:tt,cp1:xe[z].cp1?gn.Vec.add(xe[z].cp1,ue):void 0,cp2:xe[z].cp2?gn.Vec.add(xe[z].cp2,ue):void 0}),T.current=null,P(xe)}},qt)),z<a.length-1){let ve=a[z+1],tt=(Me+ve.point[0])/2,it=(Nt+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,W,Z]})},[m,a,G,b,e.id,y,x,P,f]);if(a.length===0)return(0,qe.jsx)(Hn.SVGContainer,I(S({ref:l,id:e.id+"_svg"},s),{children:(0,qe.jsx)("circle",{r:4,fill:E,stroke:E,pointerEvents:"all"})}));let bt=m||!u?{overflow:"visible"}:void 0;return(0,qe.jsxs)(Hn.SVGContainer,I(S({ref:l,id:e.id+"_svg"},s),{style:bt,children:[L,(0,qe.jsxs)("g",{opacity:r?.3:M,children:[(0,qe.jsx)("path",{className:d.isFilled&&n?"tv-fill-hitarea":"tv-stroke-hitarea",d:se}),d.isFilled&&p&&(0,qe.jsx)("path",{d:se,fill:X,stroke:"none",pointerEvents:"none"}),(0,qe.jsx)("path",{d:se,fill:"none",stroke:E,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,[W,Q]=j.cp2,[re,z]=h;ae=`M ${le} ${Z} C ${W} ${Q} ${re} ${z} ${re} ${z}`}else{let[le,Z]=j.point,[W,Q]=h;ae=`M ${le} ${Z} L ${W} ${Q}`}return(0,qe.jsx)("path",{d:ae,fill:"none",stroke:E,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:E,stroke:"none",pointerEvents:"none"})]}),Be]}))}));c(this,"Indicator",ee.Indicator(({shape:e})=>{let{segments:t,isClosed:n}=e,r=qa(t,n);return r?(0,qe.jsx)("path",{d:r}):(0,qe.jsx)("circle",{r:1})}));c(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?Ss(e.segments):{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,Hn.Utils.translateBounds(s,e.point)),this.pointCache[e.id]=e.point}else n&&(this.pointCache[e.id]=e.point,this.shapeBoundsCache.set(e.id,Hn.Utils.translateBounds(this.pointsBoundsCache.get(e.segments),e.point)));return this.shapeBoundsCache.get(e.id)});c(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);c(this,"transform",(e,t,{initialShape:n,scaleX:r,scaleY:s})=>{let l=this.getBounds(n),a=Math.max(l.width,1),d=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)/d:(m.point[1]-l.minY)/d)],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)/d:(m.cp1[1]-l.minY)/d)]: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)/d:(m.cp2[1]-l.minY)/d)]:void 0}),u=n.segments.map(p),h=Ss(u),g=gn.Vec.sub([t.minX,t.minY],[h.minX,h.minY]);return{segments:u,point:g}});c(this,"hitTestPoint",(e,t)=>{let n=gn.Vec.sub(t,e.point);for(let r of e.segments)if(gn.Vec.dist(n,r.point)<8)return!0;return!1});c(this,"hitTestLineSegment",(e,t,n)=>{let r=this.getBounds(e);return Hn.Utils.boundsContain(r,{minX:Math.min(t[0],n[0]),minY:Math.min(t[1],n[1]),maxX:Math.max(t[0],n[0]),maxY:Math.max(t[1],n[1]),width:Math.abs(n[0]-t[0]),height:Math.abs(n[1]-t[1])})});c(this,"hitTestBounds",(e,t)=>{let n=this.getBounds(e);return Hn.Utils.boundsContain(t,n)||Hn.Utils.boundsContain(n,t)})}};var br=H(require("react")),vs=require("telva-core");var Go=require("react/jsx-runtime"),bs=class extends ee{constructor(){super(...arguments);c(this,"type","reactComponent");c(this,"canBind",!1);c(this,"canClone",!0);c(this,"isAspectRatioLocked",!1);c(this,"showCloneHandles",!1);c(this,"getShape",e=>vs.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));c(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 d=a.current;!d||(d.style.width=`${s[0]}px`,d.style.height=`${s[1]}px`)},[s]),(0,Go.jsx)(vs.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)(_g,{componentId:l,width:s[0],height:s[1]})})}))}));c(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)"})}));c(this,"getBounds",e=>zt(e,this.boundsCache));c(this,"shouldRender",(e,t)=>t.size!==e.size||t.style!==e.style||t.componentId!==e.componentId);c(this,"transform",An);c(this,"transformSingle",Vn);c(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 d=document.createElementNS("http://www.w3.org/2000/svg","image");return d.setAttribute("width",`${r}`),d.setAttribute("height",`${s}`),d.setAttribute("href",a),d}catch(l){console.warn("Failed to snapshot React Component for SVG export",l)}}))}};function _g({componentId:i,width:o,height:e}){let t=Yi(),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 go=H(require("react")),Cs=require("telva-core"),lp=H(require("telva-vec"));var Yg=require("react/jsx-runtime");function tp({strokeWidth:i,size:o}){return(0,Yg.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 np=H(require("react")),Qa=require("telva-core");var Jn=require("react/jsx-runtime"),op=np.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:d,gradFill:p}=xt(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,T=f>0||e.dash==="solid",{strokeDasharray:b,strokeDashoffset:v}=Qa.Utils.getPerfectDashProps(2*(g+m),l*1.618,e.dash);return(0,Jn.jsxs)(Jn.Fragment,{children:[d,(0,Jn.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,Jn.jsx)("rect",{x:h/2,y:h/2,width:g,height:m,rx:f,ry:f,fill:u,pointerEvents:"none"}),T?(0,Jn.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:v,pointerEvents:"none",strokeLinecap:"round"}):(0,Jn.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,C],E)=>{let k=Qa.Utils.getPerfectDashProps(C,l*1.618,e.dash);return(0,Jn.jsx)("line",{x1:x[0],y1:x[1],x2:P[0],y2:P[1],strokeDasharray:k.strokeDasharray,strokeDashoffset:k.strokeDashoffset},o+"_"+E)})})]})});var sp=H(require("react"));var Ts=H(require("perfect-freehand")),pi=require("telva-core"),mt=H(require("telva-vec"));function Xg(i,o,e){let t=te(o),n=pi.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]),d=mt.default.add([r/2,r/2],a[0]),p=mt.default.add([s-r/2,r/2],a[1]),u=mt.default.add([s-r/2,l-r/2],a[2]),h=mt.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),T=Math.max(8,Math.floor(s/16)),b=Math.max(8,Math.floor(l/16)),v=pi.Utils.rotateArray([mt.default.pointsBetween(mt.default.add(d,[m,0]),mt.default.sub(p,[m,0]),T),mt.default.pointsBetween(mt.default.add(p,[0,f]),mt.default.sub(u,[0,f]),b),mt.default.pointsBetween(mt.default.sub(u,[m,0]),mt.default.add(h,[m,0]),T),mt.default.pointsBetween(mt.default.sub(h,[0,f]),mt.default.add(d,[0,f]),b)],g);return{points:[...v.flat(),...v[0]].slice(5,Math.floor((g%2===0?T:b)/-2)+3)}}function rp(i,o,e){let{points:t}=Xg(i,o,e),{strokeWidth:n}=te(o);return{points:t,options:{size:n,thinning:.65,streamline:.3,smoothing:1,simulatePressure:!1,last:!0}}}function ip(i,o,e){let{points:t,options:n}=rp(i,o,e),r=(0,Ts.default)(t,n);return pi.Utils.getSvgPathFromStroke(r)}function xs(i,o,e){let{points:t,options:n}=rp(i,o,e);return pi.Utils.getSvgPathFromStrokePoints((0,Ts.getStrokePoints)(t,n))}var jo=require("react/jsx-runtime"),ap=sp.memo(function({id:o,style:e,size:t,isSelected:n,isDarkMode:r}){let{isFilled:s}=e,{stroke:l,strokeWidth:a,fill:d}=te(e,r),{defs:p,gradFill:u}=xt(o,e),h=u!=null?u:d,g=ip(o,e,t),m=xs(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 sn=require("react/jsx-runtime"),ks=class extends ee{constructor(){super(...arguments);c(this,"type","rectangle");c(this,"canBind",!0);c(this,"canClone",!0);c(this,"canEdit",!0);c(this,"getShape",e=>Cs.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));c(this,"Component",ee.Component(({shape:e,isEditing:t,isBinding:n,isSelected:r,isGhost:s,meta:l,bounds:a,events:d,onShapeBlur:p,onShapeChange:u},h)=>{var G,ne;let{id:g,size:m,style:f,label:T="",labelPoint:b=pr}=e,v=Et(f),y=te(f,l.isDarkMode),P=!(l.canvasMode==="straight")&&f.dash==="draw"?ap:op,C=go.useCallback(pe=>u==null?void 0:u({id:g,label:pe}),[u]),E=l.nodeEditingId===e.id,k=_(),D=go.useRef(null),[M,L]=go.useState(null),V=(G=k.zoom)!=null?G:1,X=go.useMemo(()=>{if(!E)return null;let[pe,he]=m,Be=[[0,0],[pe,0],[pe,he],[0,he]],bt=[2,3,0,1],rt=5/V,et=1/V;return(0,sn.jsxs)("g",{children:[Be.map((be,j)=>{let ae=Be[(j+1)%4];return(0,sn.jsx)("line",{x1:be[0],y1:be[1],x2:ae[0],y2:ae[1],stroke:"#0D99FF",strokeWidth:et,strokeOpacity:.4,pointerEvents:"none"},`el-${j}`)}),Be.map(([be,j],ae)=>(0,sn.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=Be[bt[ae]];D.current={nodeIdx:ae,fixedPage:lp.default.add(e.point,Z)}},onPointerMove:le=>{if(!D.current||D.current.nodeIdx!==ae)return;le.stopPropagation();let Z=k.getPagePoint([le.clientX,le.clientY]),W=D.current.fixedPage,Q=Math.min(Z[0],W[0]),re=Math.min(Z[1],W[1]),z=Math.max(Z[0],W[0]),Me=Math.max(Z[1],W[1]);k.patchState({document:{pages:{[k.currentPageId]:{shapes:{[e.id]:{point:[Q,re],size:[Math.max(1,z-Q),Math.max(1,Me-re)]}}}}}})},onPointerUp:le=>{if(!D.current)return;le.stopPropagation();let Z=k.getPagePoint([le.clientX,le.clientY]),W=D.current.fixedPage,Q=Math.min(Z[0],W[0]),re=Math.min(Z[1],W[1]),z=Math.max(Z[0],W[0]),Me=Math.max(Z[1],W[1]);D.current=null,k.updateShapes({id:e.id,point:[Q,re],size:[Math.max(1,z-Q),Math.max(1,Me-re)]})}},`cn-${ae}`)),Be.map((be,j)=>{let ae=Be[(j+1)%4],le=(be[0]+ae[0])/2,Z=(be[1]+ae[1])/2;return(0,sn.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}`)})]})},[E,m,V,M,e.id,e.point,k]),se=E?{overflow:"visible"}:void 0;return(0,sn.jsxs)(Zg,I(S({ref:h},d),{children:[(0,sn.jsx)(uo,{isEditing:t,onChange:C,onBlur:p,font:v,text:T,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,sn.jsxs)(Cs.SVGContainer,{id:e.id+"_svg",opacity:s?.3:y.opacity,style:se,children:[n&&(0,sn.jsx)(tp,{strokeWidth:y.strokeWidth,size:m}),(0,sn.jsx)(P,{id:g,style:f,size:m,isSelected:r,isDarkMode:l.isDarkMode}),X]})]}))}));c(this,"Indicator",ee.Indicator(({shape:e,meta:t})=>{var a,d;let{id:n,style:r,size:s}=e;return!((t==null?void 0:t.canvasMode)==="straight")&&r.dash==="draw"?(0,sn.jsx)("path",{d:xs(n,r,s)}):(0,sn.jsx)("rect",{x:0,y:0,rx:(a=r.borderRadius)!=null?a:0,ry:(d=r.borderRadius)!=null?d:0,width:Math.max(1,s[0]),height:Math.max(1,s[1])})}));c(this,"getBounds",e=>zt(e,this.boundsCache));c(this,"shouldRender",(e,t)=>t.size!==e.size||t.style!==e.style||t.label!==e.label);c(this,"transform",An);c(this,"transformSingle",Vn)}},Zg=R("div",{width:"100%",height:"100%"});var Bt=H(require("react")),Is=require("telva-core"),dp=require("telva-vec");var Wo=require("react/jsx-runtime"),ws=class extends ee{constructor(){super(...arguments);c(this,"type","sticky");c(this,"canBind",!0);c(this,"canEdit",!0);c(this,"canClone",!0);c(this,"hideResizeHandles",!0);c(this,"showCloneHandles",!0);c(this,"getShape",e=>Is.Utils.deepMerge({id:"id",type:"sticky",name:"Sticky",parentId:"page",childIndex:1,point:[0,0],size:[200,200],text:"",rotation:0,style:hr},e));c(this,"Component",ee.Component(({shape:e,meta:t,events:n,isGhost:r,isBinding:s,isEditing:l,onShapeBlur:a,onShapeChange:d},p)=>{let u=wc(e.style),{color:h,fill:g,stroke:m}=Na(e.style,t.isDarkMode),f=Bt.useRef(null),T=Bt.useRef(null),b=Bt.useRef(null),v=Bt.useRef(!1),y=Bt.useCallback(L=>{L.stopPropagation()},[]),x=Bt.useCallback(L=>{d==null||d({id:e.id,type:e.type,text:B.normalizeText(L)})},[e.id]),P=Bt.useCallback(L=>{x(L.currentTarget.value)},[d,x]),C=Bt.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),d==null||d(I(S({},e),{text:B.normalizeText(L.currentTarget.value)})))},[e,d]),E=Bt.useCallback(L=>{L.currentTarget.setSelectionRange(0,0),a==null||a()},[]),k=Bt.useCallback(L=>{!l||!v.current||L.currentTarget.select()},[l]);Bt.useEffect(()=>{if(l){v.current=!0;let L=T.current;L.focus(),L.select()}},[l]),Bt.useEffect(()=>{let L=b.current,{size:V}=e,{offsetHeight:X}=L,se=el-zn*2,G=V[1]-zn*2;if(X===G)return;if(X>se){d==null||d({id:e.id,size:[V[0],X+zn*2]});return}if(X<se&&V[1]>el){d==null||d({id:e.id,size:[V[0],el]});return}let ne=T.current;ne==null||ne.focus()},[e.text,e.size[1],e.style]);let D=e.style.textGradient,M=S({font:u,color:D?"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)"},D?{background:Bo(D),WebkitBackgroundClip:"text",backgroundClip:"text"}:{});return(0,Wo.jsx)(Is.HTMLContainer,I(S({ref:p},n),{children:(0,Wo.jsxs)(qg,{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)(Jg,{ref:b,isEditing:l,alignment:e.style.textAlign,children:[e.text,"\u200B"]}),l&&(0,Wo.jsx)(Qg,{ref:T,onPointerDown:y,value:e.text,onChange:P,onKeyDown:C,onFocus:k,onBlur:E,tabIndex:-1,autoComplete:"false",autoCapitalize:"false",autoCorrect:"false",autoSave:"false",autoFocus:!0,spellCheck:!0,alignment:e.style.textAlign,onContextMenu:ut,onCopy:ut,onPaste:ut,onCut:ut})]})}))}));c(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)})}));c(this,"getBounds",e=>zt(e,this.boundsCache));c(this,"shouldRender",(e,t)=>t.size!==e.size||t.style!==e.style||t.text!==e.text);c(this,"transform",(e,t,{scaleX:n,scaleY:r,transformOrigin:s})=>({point:dp.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])])}));c(this,"transformSingle",e=>e);c(this,"getSvgElement",(e,t)=>{var h,g;let n=this.getBounds(e),r=Na(e.style,t),s=Wa(e.style.size)*((h=e.style.scale)!=null?h:1),l=Mn(e.style.font,e.style.fontFamily).slice(1,-1),a=(g=e.style.textAlign)!=null?g:"start",d=lo(e.text,s,l,a,n.width-zn*2,!0);d.setAttribute("fill",r.color),d.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(d),p})}},zn=16,el=200,qg=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)"}}}}),cp={whiteSpace:"pre-wrap",overflowWrap:"break-word",letterSpacing:en},Jg=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"}}}},cp)),Qg=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"},cp),{variants:{alignment:{["start"]:{textAlign:"left"},["middle"]:{textAlign:"center"},["end"]:{textAlign:"right"},["justify"]:{textAlign:"justify"}}},"&:focus":{outline:"none",border:"none"}}));var Mt=H(require("react")),vr=require("telva-core"),Qn=require("telva-vec");var No=require("react/jsx-runtime"),Ps=class extends ee{constructor(){super(...arguments);c(this,"type","text");c(this,"isAspectRatioLocked",!1);c(this,"canEdit",!0);c(this,"canBind",!0);c(this,"canClone",!0);c(this,"bindingDistance",16/2);c(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));c(this,"texts",new Map);c(this,"Component",ee.Component(({shape:e,isBinding:t,isGhost:n,isEditing:r,onShapeBlur:s,onShapeChange:l,meta:a,events:d},p)=>{let{text:u,style:h}=e,g=te(h,a.isDarkMode),m=Et(e.style),f=Mt.useRef(null),T=Mt.useRef(!1),b=Mt.useRef(u);Mt.useLayoutEffect(()=>{if(u!==b.current){let k=[0,0];this.texts.set(e.id,u);let D=this.getBounds(e),M=this.getBounds(e);switch(e.style.textAlign){case"start":break;case"middle":{k=Qn.Vec.div([M.width-D.width,0],2);break}case"end":{k=[M.width-D.width,0];break}}b.current=u,l==null||l(I(S({},e),{id:e.id,point:Qn.Vec.sub(e.point,k),text:u}))}},[u]);let v=Mt.useCallback(k=>{let D=[0,0],M=B.normalizeText(k.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":{D=Qn.Vec.div([V.width-L.width,0],2);break}case"end":{D=[V.width-L.width,0];break}}b.current=M,l==null||l(I(S({},e),{id:e.id,point:Qn.Vec.sub(e.point,D),text:M}))},[e.id,e.point]),y=Mt.useCallback(k=>{if(k.key==="Escape"){k.preventDefault(),k.stopPropagation(),s==null||s();return}if(k.key==="Tab"&&e.text.length===0){k.preventDefault();return}if(k.key==="Enter"&&(k.metaKey||k.ctrlKey)){k.preventDefault(),k.stopPropagation(),f.current.blur();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),l==null||l(I(S({},e),{text:B.normalizeText(k.currentTarget.value)})))},[e,l]),x=Mt.useCallback(k=>{k.currentTarget.setSelectionRange(0,0),s==null||s()},[]),P=Mt.useCallback(k=>{!r||!T.current||document.activeElement===k.currentTarget&&k.currentTarget.select()},[r]),C=Mt.useCallback(k=>{r&&k.stopPropagation()},[r]),E=Mt.useRef(r);return Mt.useEffect(()=>{r?(E.current=!0,this.texts.set(e.id,u),requestAnimationFrame(()=>{T.current=!0;let k=f.current;k&&(k.focus(),k.select())})):E.current&&(E.current=!1,s==null||s())},[r]),(0,No.jsx)(vr.HTMLContainer,I(S({ref:p},d),{children:(0,No.jsx)(tf,{isGhost:n,isEditing:r,onPointerDown:C,style:{opacity:n?void 0:g.opacity},children:(0,No.jsxs)(nf,{style:S({font:m,color:h.textGradient&&!r?"transparent":g.stroke,textAlign:yc(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)(of,{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:v,onKeyDown:y,onBlur:x,onPointerDown:C,onContextMenu:ut,onCopy:ut,onPaste:ut,onCut:ut}):u,"\u200B"]})})}))}));c(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})}));c(this,"getBounds",e=>{let t=vr.Utils.getFromCache(this.boundsCache,e,()=>{var s;if(!Ct)return{minX:0,minY:0,maxX:10,maxY:10,width:10,height:10};Ct.parentNode||document.body.appendChild(Ct),Ct.style.font=Et(e.style),Ct.textContent=(s=this.texts.get(e.id))!=null?s:e.text,e.size?(Ct.style.whiteSpace="pre-wrap",Ct.style.wordBreak="break-word",Ct.style.overflowWrap="break-word",Ct.style.width=`${e.size[0]}px`):(Ct.style.whiteSpace="pre",Ct.style.wordBreak="normal",Ct.style.overflowWrap="normal",Ct.style.width="auto");let n=e.size?e.size[0]:Ct.offsetWidth||1,r=Ct.offsetHeight||1;return{minX:0,maxX:n,minY:0,maxY:r,width:n,height:r}});return vr.Utils.translateBounds(t,e.point)});c(this,"shouldRender",(e,t)=>t.text!==e.text||t.style.scale!==e.style.scale||t.style!==e.style||t.size!==e.size);c(this,"transform",(e,t,{initialShape:n,scaleX:r,scaleY:s})=>{let{rotation:l=0,style:{scale:a=1}}=n,d=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:d})}});c(this,"transformSingle",(e,t,{initialShape:n,scaleX:r,scaleY:s})=>({point:Qn.Vec.toFixed([t.minX,t.minY]),size:[t.width,t.height]}));c(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:Qn.Vec.toFixed(Qn.Vec.add(e.point,Qn.Vec.sub(t,n)))}});c(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=Mn(e.style.font).slice(1,-1),a=(u=e.style.textAlign)!=null?u:"middle",d=lo(e.text,s,l,a,e.size?e.size[0]:n.width,!!e.size);return d.setAttribute("fill",r.stroke),d})}},Ct;function ef(){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:en,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"&&(Ct=ef());var tf=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"}}}}),pp={whiteSpace:"pre-wrap",overflowWrap:"break-word"},nf=R("div",S({position:"absolute",width:"100%",height:"100%",padding:"4px",zIndex:1,minHeight:1,minWidth:1,lineHeight:1,letterSpacing:en,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"}}},pp)),of=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"},pp),{"&:focus":{outline:"none",border:"none"}}));var eo=H(require("react")),Sn=require("telva-core"),Tr=require("telva-intersect"),gt=H(require("telva-vec"));var gp=H(require("react")),nl=require("telva-core"),fp=H(require("telva-vec"));var Rs=H(require("perfect-freehand")),ui=require("telva-core"),fo=H(require("telva-vec"));function an(i,o=0,e=0){let[t,n]=i,r=[[t/2,0],[t,n],[0,n]];return o&&(r=kc(r,o)),e&&(r=r.map(s=>fo.default.rotWith(s,[t/2,n/2],e))),r}function tl(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 rf(i,o,e){let[t,n]=o,r=ui.Utils.rng(i),s=Array.from(Array(3)).map(()=>[r()*e*.75,r()*e*.75]),l=[fo.default.add([t/2,0],s[0]),fo.default.add([t,n],s[1]),fo.default.add([0,n],s[2])],a=Math.round(Math.abs(r()*2*3)),d=ui.Utils.rotateArray([fo.default.pointsBetween(l[0],l[1],32),fo.default.pointsBetween(l[1],l[2],32),fo.default.pointsBetween(l[2],l[0],32)],a);return{points:[...d.flat(),...d[0]]}}function up(i,o,e){let{strokeWidth:t}=te(e),{points:n}=rf(i,o,t);return{points:n,options:{size:t,thinning:.65,streamline:.3,smoothing:1,simulatePressure:!1,last:!0}}}function hp(i,o,e){let{points:t,options:n}=up(i,o,e),r=(0,Rs.default)(t,n);return ui.Utils.getSvgPathFromStroke(r)}function mp(i,o,e){let{points:t,options:n}=up(i,o,e);return ui.Utils.getSvgPathFromStrokePoints((0,Rs.getStrokePoints)(t,n))}var So=require("react/jsx-runtime"),Sp=gp.memo(function({id:o,size:e,style:t,isSelected:n,isDarkMode:r}){let{stroke:s,strokeWidth:l,fill:a}=te(t,r),{defs:d,gradFill:p}=xt(o,t),u=p!=null?p:a,h=1+l*1.618,g=an(e),f=nl.Utils.pointsToLineSegments(g,!0).map(([b,v],y)=>{let{strokeDasharray:x,strokeDashoffset:P}=nl.Utils.getPerfectDashProps(fp.default.dist(b,v),l*1.618,t.dash);return(0,So.jsx)("line",{x1:b[0],y1:b[1],x2:v[0],y2:v[1],stroke:s,strokeWidth:h,strokeLinecap:"round",strokeDasharray:x,strokeDashoffset:P},o+"_"+y)}),T=g.join();return(0,So.jsxs)(So.Fragment,{children:[d,(0,So.jsx)("polygon",{className:t.isFilled||n?"tv-fill-hitarea":"tv-stroke-hitarea",points:T}),t.isFilled&&(0,So.jsx)("polygon",{fill:u,points:T,pointerEvents:"none"}),(0,So.jsx)("g",{pointerEvents:"stroke",children:f})]})});var yp=H(require("react"));var Uo=require("react/jsx-runtime"),bp=yp.memo(function({id:o,size:e,style:t,isSelected:n,isDarkMode:r}){let{stroke:s,strokeWidth:l,fill:a}=te(t,r),{defs:d,gradFill:p}=xt(o,t),u=p!=null?p:a,h=hp(o,e,t),g=mp(o,e,t);return(0,Uo.jsxs)(Uo.Fragment,{children:[d,(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 sf=require("react/jsx-runtime");function vp({size:i}){let o=an(i).join();return(0,sf.jsx)("polygon",{className:"tv-binding-indicator",points:o,strokeWidth:16*2})}var Fn=require("react/jsx-runtime"),Ds=class extends ee{constructor(){super(...arguments);c(this,"type","triangle");c(this,"canBind",!0);c(this,"canClone",!0);c(this,"canEdit",!0);c(this,"getShape",e=>Sn.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));c(this,"Component",ee.Component(({shape:e,bounds:t,isBinding:n,isEditing:r,isSelected:s,isGhost:l,meta:a,events:d,onShapeChange:p,onShapeBlur:u},h)=>{var ne,pe;let{id:g,label:m="",size:f,style:T,labelPoint:b=pr}=e,v=Et(T),y=te(T,a.isDarkMode),P=!(a.canvasMode==="straight")&&T.dash==="draw"?bp:Sp,C=eo.useCallback(he=>p==null?void 0:p({id:g,label:he}),[p]),E=eo.useMemo(()=>{let he=gt.default.div(f,2);return(tl(f)[1]-he[1])*.72},[f]),k=a.nodeEditingId===e.id,D=_(),M=eo.useRef(null),[L,V]=eo.useState(null),X=(ne=D.zoom)!=null?ne:1,se=eo.useMemo(()=>{if(!k)return null;let[he,Be]=f,bt=[[0,0],[he,0],[he,Be],[0,Be]],rt=[2,3,0,1],et=5/X,be=1/X,j=an(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}`)}),bt.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:W=>{W.stopPropagation(),W.currentTarget.setPointerCapture(W.pointerId);let Q=bt[rt[Z]];M.current={nodeIdx:Z,fixedPage:gt.default.add(e.point,Q)}},onPointerMove:W=>{if(!M.current||M.current.nodeIdx!==Z)return;W.stopPropagation();let Q=D.getPagePoint([W.clientX,W.clientY]),re=M.current.fixedPage,z=Math.min(Q[0],re[0]),Me=Math.min(Q[1],re[1]),Nt=Math.max(Q[0],re[0]),qt=Math.max(Q[1],re[1]);D.patchState({document:{pages:{[D.currentPageId]:{shapes:{[e.id]:{point:[z,Me],size:[Math.max(1,Nt-z),Math.max(1,qt-Me)]}}}}}})},onPointerUp:W=>{if(!M.current)return;W.stopPropagation();let Q=D.getPagePoint([W.clientX,W.clientY]),re=M.current.fixedPage,z=Math.min(Q[0],re[0]),Me=Math.min(Q[1],re[1]),Nt=Math.max(Q[0],re[0]),qt=Math.max(Q[1],re[1]);M.current=null,D.updateShapes({id:e.id,point:[z,Me],size:[Math.max(1,Nt-z),Math.max(1,qt-Me)]})}},`cn-${Z}`))]})},[k,f,X,L,e.id,e.point,D]),G=k?{overflow:"visible"}:void 0;return(0,Fn.jsxs)(af,I(S({ref:h},d),{children:[(0,Fn.jsx)(uo,{font:v,text:m,color:(pe=T.labelColor)!=null?pe:y.stroke,background:T.labelBackground,textGradient:T.textGradient,offsetX:(b[0]-.5)*t.width,offsetY:E+(b[1]-.5)*t.height,width:Math.max(0,t.width*.5-16),isEditing:r,onChange:C,onBlur:u}),(0,Fn.jsxs)(Sn.SVGContainer,{id:e.id+"_svg",opacity:l?.3:y.opacity,style:G,children:[n&&(0,Fn.jsx)(vp,{size:f}),(0,Fn.jsx)(P,{id:g,style:T,size:f,isSelected:s,isDarkMode:a.isDarkMode}),se]})]}))}));c(this,"Indicator",ee.Indicator(({shape:e})=>{let{size:t}=e;return(0,Fn.jsx)("polygon",{points:an(t).join()})}));c(this,"shouldRender",(e,t)=>t.size!==e.size||t.style!==e.style||t.label!==e.label);c(this,"getBounds",e=>zt(e,this.boundsCache));c(this,"getExpandedBounds",e=>Sn.Utils.getBoundsFromPoints(an(e.size,this.bindingDistance).map(t=>gt.default.add(t,e.point))));c(this,"hitTestLineSegment",(e,t,n)=>(0,Tr.intersectLineSegmentPolyline)(t,n,this.getPoints(e)).didIntersect);c(this,"hitTestBounds",(e,t)=>Sn.Utils.boundsContained(this.getBounds(e),t)||(0,Tr.intersectBoundsPolygon)(t,this.getPoints(e)).length>0);c(this,"getBindingPoint",(e,t,n,r,s,l)=>{let a=this.getExpandedBounds(e);if(!Sn.Utils.pointInBounds(n,a))return;let d=an(e.size).map(y=>gt.default.add(y,e.point)),p=an(e.size,this.bindingDistance).map(y=>gt.default.add(y,e.point)),u=Sn.Utils.pointsToLineSegments(d,!0).map(([y,x])=>gt.default.distanceToLineSegment(y,x,n)).sort((y,x)=>y-x)[0];if(!(Sn.Utils.pointInPolygon(n,p)||u<this.bindingDistance))return;let h=Sn.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=gt.default.add(tl(e.size),e.point),m=h.sort((y,x)=>gt.default.dist(x,r)-gt.default.dist(y,r))[0],f=gt.default.med(n,m),T,b;l?(T=gt.default.dist(n,g)<16/2?g:n,b=0):(gt.default.distanceToLineSegment(n,f,g)<16/2?T=g:T=f,Sn.Utils.pointInPolygon(n,d)?b=this.bindingDistance:b=Math.max(this.bindingDistance,u));let v=gt.default.divV(gt.default.sub(T,[a.minX,a.minY]),[a.width,a.height]);return{point:gt.default.clampV(v,0,1),distance:b}});c(this,"transform",An);c(this,"transformSingle",Vn)}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=>gt.default.rotWith(a,this.getCenter(e),t))}},af=R("div",{width:"100%",height:"100%"});var ol=require("@stitches/react"),yn=H(require("react")),Bs=require("telva-core");var Ko=require("react/jsx-runtime"),Es=class extends ee{constructor(){super(...arguments);c(this,"type","video");c(this,"canBind",!0);c(this,"canEdit",!0);c(this,"canClone",!0);c(this,"isAspectRatioLocked",!0);c(this,"showCloneHandles",!1);c(this,"isStateful",!0);c(this,"getShape",e=>Bs.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));c(this,"Component",ee.Component(({shape:e,asset:t={src:""},isBinding:n,isEditing:r,isGhost:s,meta:l,events:a,onShapeChange:d},p)=>{let u=yn.useRef(null),h=yn.useRef(null),{currentTime:g=0,size:m,isPlaying:f,style:T}=e;yn.useLayoutEffect(()=>{let x=h.current;if(!x)return;let[P,C]=m;x.style.width=`${P}px`,x.style.height=`${C}px`},[m]),yn.useLayoutEffect(()=>{let x=u.current;!x||(f?x.play():x.pause())},[f]),yn.useLayoutEffect(()=>{let x=u.current;!x||g!==x.currentTime&&(x.currentTime=g)},[g]);let b=yn.useCallback(()=>{d==null||d({id:e.id,isPlaying:!0})},[]),v=yn.useCallback(()=>{d==null||d({id:e.id,isPlaying:!1})},[]),y=yn.useCallback(()=>{let x=u.current;!x||!r||d==null||d({id:e.id,currentTime:x.currentTime})},[r]);return(0,Ko.jsxs)(Bs.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)(lf,{ref:h,isDarkMode:l.isDarkMode,isGhost:s,isFilled:T.isFilled,children:(0,Ko.jsx)(df,{ref:u,id:e.id+"_video",muted:!0,loop:!0,playsInline:!0,disableRemotePlayback:!0,disablePictureInPicture:!0,controls:r,autoPlay:f,onPlay:b,onPause:v,onTimeUpdate:y,children:(0,Ko.jsx)("source",{src:t.src})})})]}))}));c(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)})}));c(this,"getBounds",e=>zt(e,this.boundsCache));c(this,"shouldRender",(e,t)=>t.size!==e.size||t.style!==e.style||t.isPlaying!==e.isPlaying);c(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});c(this,"transform",An);c(this,"transformSingle",Vn)}},lf=(0,ol.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)"}}]}),df=(0,ol.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 Ms=new ks,Ls=new Ds,As=new us,Vs=new ds,xr=new is,Tp=new Ps,xp=new hs,hi=new ws,kp=new gs,Cp=new Es,wp=new bs,Ip=new ys,bn={["rectangle"]:Ms,["triangle"]:Ls,["ellipse"]:As,["draw"]:Vs,["arrow"]:xr,["text"]:Tp,["group"]:xp,["sticky"]:hi,["image"]:kp,["video"]:Cp,["reactComponent"]:wp,["pen"]:Ip},rl=i=>typeof i=="string"?bn[i]:bn[i.type];var Pp=!0,U=class{static getShapeUtil(o){return rl(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 $t.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 $t.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($t.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($t.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 d(p){let u=p.parentId;u!==n.id&&(r.has(u)||(r.add(u),d(n.shapes[u])))}d(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,d=[...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(;d.length;){let u=d.pop();if(!(u&&p.size))break;a.has(u)||(a.add(u),p.forEach(h=>{var v,y;let{handles:{start:{bindingId:g},end:{bindingId:m}}}=h,f=g?s.bindings[g]:null,T=m?s.bindings[m]:null,b=!1;f&&f.toId===u?(t==="center"?b=!0:((v=h.decorations)==null?void 0:v.start)&&T?b=t==="left":b=t==="right",b&&(n&&l.add(h.id),l.add(u),T&&(l.add(T.toId),d.push(T.toId)))):T&&T.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),d.push(f.toId)))),(!f||l.has(f.toId))&&(!T||l.has(T.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(d=>d.parentId===n.id).sort((d,p)=>d.childIndex-p.childIndex);else{let d=n.shapes[r.parentId];if(!d.children)throw Error("No children in parent!");s=d.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((d,p)=>{let u=U.getShape(o,d,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 T=t(f,m);T&&(s[g]=U.getBeforeShape(f,T),l[g]=T)});let h=t(u,p);h&&(s[d]=U.getBeforeShape(u,h),l[d]=h)});let a=$t.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 d=n.shapes[a],p=[[d.id,d]];if(d.parentId!==t){let u=n.shapes[d.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 d=n.shapes[a],p=[[d.id,void 0]];if(d.parentId!==n.id){let u=n.shapes[d.parentId];if(!u.children)throw Error("No children in parent!");p.push([u.id,{children:u.children.filter(h=>h!==d.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,d,p,u;let t={start:ht(e.handles.start),end:ht(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],T=U.getShapeUtil(f),b=T.getBounds(f),v=T.getExpandedBounds(f),y=h?$t.Utils.expandBounds(b,m.distance):b,{minX:x,minY:P,width:C,height:E}=v,k=q.Vec.add([x,P],q.Vec.mulV([C,E],q.Vec.rotWith(m.point,[.5,.5],f.rotation||0)));n={isBound:!0,hasDecoration:h,binding:m,handle:g,point:k,util:T,target:f,bounds:b,expandedBounds:v,intersectBounds:y,center:T.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],T=U.getShapeUtil(f),b=T.getBounds(f),v=T.getExpandedBounds(f),y=h?$t.Utils.expandBounds(b,m.distance):b,{minX:x,minY:P,width:C,height:E}=v,k=q.Vec.add([x,P],q.Vec.mulV([C,E],q.Vec.rotWith(m.point,[.5,.5],f.rotation||0)));r={isBound:!0,hasDecoration:h,binding:m,handle:g,point:k,util:T,target:f,bounds:b,expandedBounds:v,intersectBounds:y,center:T.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 T=(0,yo.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,v)=>q.Vec.dist(b,m.point)-q.Vec.dist(v,m.point));T[0]!==void 0&&(t[h].point=q.Vec.toFixed(q.Vec.sub(T[0],e.point)));break}case"triangle":{let T=g.target.point,b=an(g.target.size,g.hasDecoration?16:0,g.target.rotation).map(y=>q.Vec.add(y,T)),v=$t.Utils.pointsToLineSegments(b,!0).map(([y,x])=>(0,yo.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));v[0]!==void 0&&(t[h].point=q.Vec.toFixed(q.Vec.sub(v[0],e.point)));break}default:{let T=(0,yo.intersectRayBounds)(m.point,f,g.intersectBounds,g.target.rotation).filter(v=>v.didIntersect).map(v=>v.points[0]).sort((v,y)=>q.Vec.dist(v,m.point)-q.Vec.dist(y,m.point));if(!T[0])continue;let b;if(m.isBound&&(b=(0,yo.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&&(T.length<2||b&&T[0]&&Math.ceil(q.Vec.dist(T[0],b))<16*2.5||$t.Utils.boundsContain(g.expandedBounds,m.expandedBounds)||$t.Utils.boundsCollide(g.expandedBounds,m.expandedBounds))){let v=q.Vec.uni(q.Vec.sub(m.point,g.point)),y=(0,yo.intersectRayBounds)(g.point,v,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(v,Math.min(q.Vec.dist(y[0],m.point),16*2.5*($t.Utils.boundsContain(m.bounds,g.intersectBounds)?-1:1)))))}else if(!m.isBound&&(T[0]&&q.Vec.dist(T[0],m.point)<16*2.5||$t.Utils.pointInBounds(m.point,g.intersectBounds))){let v=q.Vec.uni(q.Vec.sub(g.center,m.point));return(d=(a=U.getShapeUtil(e)).onHandleChange)==null?void 0:d.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(v,16*2.5)))})})}else T[0]&&(t[h].point=q.Vec.toFixed(q.Vec.sub(T[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 d,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=(d=this.getShapeUtil(o)).onHandleChange)==null?void 0:p.call(d,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=$t.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,d=-1;for(;d!==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)}),d=l.size-a,a=l.size;return Array.from(l.values())}static normalizeText(o){return o.replace(U.fixNewLines,`
10
+ `).split(`
11
+ `).map(e=>e||" ").join(`
12
+ `)}static assertShapeHasProperty(o,e){if(o[e]===void 0)throw new Error}static warn(o){Pp&&console.warn(o)}static error(o){Pp&&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"),T=u.width,b=u.height;m.width=T,m.height=b,f.drawImage(u,0,0,T,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;c(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)}}}),c(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))]}),c(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)],[])),c(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}),c(B,"fixNewLines",/\r?\n|\r/g);var Hs=require("react/jsx-runtime"),uo=ft.memo(function({font:o,text:e,color:t,background:n,textGradient:r,offsetX:s=0,offsetY:l=0,scale:a=1,isEditing:d=!1,width:p,onBlur:u,onChange:h}){let g=ft.useRef(null),m=ft.useRef(!1),f=ft.useCallback(C=>{h(B.normalizeText(C.currentTarget.value))},[h]),T=ft.useCallback(C=>{if(C.key==="Escape"){C.preventDefault(),C.stopPropagation(),u==null||u();return}if(C.key==="Tab"&&e.length===0){C.preventDefault();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),h==null||h(B.normalizeText(C.currentTarget.value)))},[h]),b=ft.useCallback(C=>{C.currentTarget.setSelectionRange(0,0),u==null||u()},[u]),v=ft.useCallback(C=>{!d||!m.current||document.activeElement===C.currentTarget&&C.currentTarget.select()},[d]),y=ft.useCallback(C=>{d&&C.stopPropagation()},[d]),x=ft.useRef(d);ft.useEffect(()=>{d?(x.current=!0,requestAnimationFrame(()=>{m.current=!0;let C=g.current;C&&(C.focus(),C.select())})):x.current&&(u==null||u(),x.current=!1)},[d,u]);let P=ft.useRef(null);return ft.useLayoutEffect(()=>{let C=P.current;if(!C)return;let E=ao(e,o,p);C.style.transform=`scale(${a}, ${a}) translate(${s}px, ${l}px)`,C.style.width=p?`${p}px`:E[0]+1+"px",C.style.height=E[1]+1+"px"},[e,o,l,s,a,p]),(0,Hs.jsx)(cf,{children:(0,Hs.jsxs)(pf,{ref:P,hasText:!!e,isEditing:d,style:S({font:o,color:r&&!d?"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&&!d?{background:Bo(r),WebkitBackgroundClip:"text",backgroundClip:"text"}:{}),children:[d?(0,Hs.jsx)(uf,{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:v,onChange:f,onKeyDown:T,onBlur:b,onPointerDown:y,onContextMenu:ut,onCopy:ut,onPaste:ut,onCut:ut}):e,"\u200B"]})})}),cf=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}}}}),Rp={whiteSpace:"pre-wrap",overflowWrap:"break-word",letterSpacing:en},pf=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"}}}},Rp)),uf=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"},Rp),{"&:focus":{outline:"none",border:"none"}}));var kr=H(require("telva-vec"));function An(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 il=H(require("telva-vec"));function Vn(i,o){return{size:il.default.toFixed([o.width,o.height]),point:il.default.toFixed([o.minX,o.minY])}}var Ke=H(require("react"));var fe=require("react/jsx-runtime");function mi(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),d=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=d,n=e,r=a;break;case 2:t=a,n=e,r=p;break;case 3:t=a,n=d,r=e;break;case 4:t=p,n=a,r=e;break;case 5:t=e,n=a,r=d;break}return[Math.round(t*255),Math.round(n*255),Math.round(r*255)]}function gi(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 fi(i,o,e){return"#"+[i,o,e].map(t=>t.toString(16).padStart(2,"0")).join("")}var Lp="telva_color_history";function Ap(){try{return JSON.parse(localStorage.getItem(Lp)||"[]").slice(0,16)}catch(i){return[]}}function wr(i){if(i==="transparent")return;let o=Ap().filter(e=>e!==i);o.unshift(i),localStorage.setItem(Lp,JSON.stringify(o.slice(0,16)))}var sl='url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAIElEQVQYV2P8////fwYkwMjIyIjCZmBgYEBlMDIiiwEAGiYFA/wQA1AAAAAASUVORK5CYII=")';var zs=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,d]=Ke.useState(()=>gi(...l));Ke.useEffect(()=>{if(!s){let y=Cr(o),x=gi(...y);d(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,C=y.height,[E,k,D]=mi(a[0],100,100);x.fillStyle=`rgb(${E},${k},${D})`,x.fillRect(0,0,P,C);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,C);let L=x.createLinearGradient(0,0,0,C);L.addColorStop(0,"rgba(0,0,0,0)"),L.addColorStop(1,"rgba(0,0,0,1)"),x.fillStyle=L,x.fillRect(0,0,P,C)},[a[0]]),Ke.useEffect(()=>{let y=u.current;if(!y)return;let x=y.getContext("2d"),P=y.width,C=x.createLinearGradient(0,0,P,0);for(let E=0;E<=6;E++){let[k,D,M]=mi(E/6*360,100,100);C.addColorStop(E/6,`rgb(${k},${D},${M})`)}x.fillStyle=C,x.fillRect(0,0,P,y.height)},[]);let h=Ke.useCallback((y,x,P,C)=>{let[E,k,D]=mi(y,x,P),M=fi(E,k,D);wr(M),t(M,C)},[t]),g=Ke.useCallback(y=>{y.preventDefault(),y.stopPropagation();let P=p.current.getBoundingClientRect(),C=D=>{let M=Math.max(0,Math.min(100,(D.clientX-P.left)/P.width*100)),L=Math.max(0,Math.min(100,(1-(D.clientY-P.top)/P.height)*100));d([a[0],M,L]),h(a[0],M,L,e)};C(y);let E=D=>C(D),k=()=>{document.removeEventListener("pointermove",E),document.removeEventListener("pointerup",k)};document.addEventListener("pointermove",E),document.addEventListener("pointerup",k)},[a,e,h]),m=Ke.useCallback(y=>{y.preventDefault(),y.stopPropagation();let P=u.current.getBoundingClientRect(),C=D=>{let M=Math.max(0,Math.min(360,(D.clientX-P.left)/P.width*360));d([M,a[1],a[2]]),h(M,a[1],a[2],e)};C(y);let E=D=>C(D),k=()=>{document.removeEventListener("pointermove",E),document.removeEventListener("pointerup",k)};document.addEventListener("pointermove",E),document.addEventListener("pointerup",k)},[a,e,h]),f=Ke.useRef(null),T=Ke.useCallback(y=>{y.preventDefault(),y.stopPropagation();let P=f.current.getBoundingClientRect(),C=D=>{let M=Math.max(0,Math.min(1,(D.clientX-P.left)/P.width));s?t("transparent",M):h(a[0],a[1],a[2],M)};C(y);let E=D=>C(D),k=()=>{document.removeEventListener("pointermove",E),document.removeEventListener("pointerup",k)};document.addEventListener("pointermove",E),document.addEventListener("pointerup",k)},[a,s,h,t]),b=s?"transparent":fi(...mi(a[0],a[1],a[2])),v=s?[255,255,255]:mi(a[0],a[1],a[2]);return(0,fe.jsxs)(hf,{onClick:y=>y.stopPropagation(),onPointerDown:y=>y.stopPropagation(),children:[(0,fe.jsxs)(mf,{children:[(0,fe.jsx)("canvas",{ref:p,width:200,height:130,onPointerDown:g,style:{width:"100%",height:"100%",cursor:"crosshair",borderRadius:4}}),!s&&(0,fe.jsx)(gf,{style:{left:`${a[1]}%`,top:`${100-a[2]}%`,borderColor:a[2]>50?"#000":"#fff"}})]}),(0,fe.jsxs)(Dp,{children:[(0,fe.jsx)("canvas",{ref:u,width:200,height:12,onPointerDown:m,style:{width:"100%",height:"100%",cursor:"pointer",borderRadius:6}}),!s&&(0,fe.jsx)(Ep,{style:{left:`${a[0]/360*100}%`}})]}),r&&(0,fe.jsxs)(Dp,{children:[(0,fe.jsx)(ff,{ref:f,onPointerDown:T,style:{background:`linear-gradient(to right, transparent, ${b==="transparent"?"#fff":b})`,cursor:"pointer"}}),(0,fe.jsx)(Ep,{style:{left:`${e*100}%`}})]}),(0,fe.jsxs)(Sf,{children:[(0,fe.jsx)(bf,{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);d(gi(...P)),t("#"+x,e),wr("#"+x)}},onKeyDown:y=>y.stopPropagation()}),[0,1,2].map(y=>(0,fe.jsx)(Bp,{value:v[y],type:"number",min:0,max:255,onChange:x=>{let P=Math.max(0,Math.min(255,Number(x.target.value))),C=[...v];C[y]=P,d(gi(...C));let E=fi(...C);t(E,e),wr(E)},onKeyDown:x=>x.stopPropagation()},y)),r&&(0,fe.jsx)(Bp,{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,fe.jsxs)(yf,{children:[(0,fe.jsx)("span",{style:{flex:2},children:"Hex"}),(0,fe.jsx)("span",{children:"R"}),(0,fe.jsx)("span",{children:"G"}),(0,fe.jsx)("span",{children:"B"}),r&&(0,fe.jsx)("span",{children:"A"})]}),(0,fe.jsxs)(vf,{children:[n&&(0,fe.jsx)(Mp,{title:"Transparent",$active:s,style:{backgroundImage:sl,backgroundSize:"6px 6px"},onClick:()=>t("transparent",e)}),Ap().map(y=>(0,fe.jsx)(Mp,{style:{backgroundColor:y},$active:b===y,onClick:()=>{let x=Cr(y);d(gi(...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),d=Ke.useRef(null),p=o==="transparent";return Ke.useEffect(()=>{let h=g=>{d.current&&!d.current.contains(g.target)&&a(!1)};return document.addEventListener("mousedown",h),()=>document.removeEventListener("mousedown",h)},[]),(0,fe.jsxs)(Tf,{ref:d,children:[(0,fe.jsxs)(xf,{children:[s&&(0,fe.jsx)(kf,{children:s}),(0,fe.jsx)(Cf,{onClick:()=>a(!l),style:{backgroundColor:p?"transparent":o,backgroundImage:p?sl:"none",backgroundSize:"6px 6px"}}),(0,fe.jsx)(wf,{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,fe.jsxs)(If,{children:[Math.round(e*100),"%"]})]}),l&&(0,fe.jsx)(Pf,{children:(0,fe.jsx)(zs,{color:o,opacity:e,onChange:(h,g)=>t(h,g),showTransparent:n,showOpacity:r})})]})}),hf=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}),mf=R("div",{position:"relative",width:"100%",height:130,borderRadius:4,overflow:"hidden"}),gf=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)"}),Dp=R("div",{position:"relative",width:"100%",height:12,borderRadius:6,overflow:"visible"}),Ep=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"}),ff=R("div",{width:"100%",height:"100%",borderRadius:6,backgroundImage:sl,backgroundSize:"8px 8px",position:"relative"}),Sf=R("div",{display:"flex",gap:3,alignItems:"center"}),yf=R("div",{display:"flex",gap:3,fontSize:"7px",color:"rgba(255,255,255,0.35)",padding:"0 1px","& > span":{flex:1,textAlign:"center"}}),bf=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"}}),Bp=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"}}),vf=R("div",{display:"flex",flexWrap:"wrap",gap:3,paddingTop:2}),Mp=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)"}}}}),Tf=R("div",{position:"relative",width:"100%"}),xf=R("div",{display:"flex",alignItems:"center",gap:4}),kf=R("label",{fontSize:"9px",color:"$textSecondary",fontWeight:500,width:36,flexShrink:0,textAlign:"right"}),Cf=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"}}),wf=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"}}),If=R("span",{fontSize:"9px",color:"$textSecondary",fontFamily:"$mono",width:32,textAlign:"initial",flexShrink:0}),Pf=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 Gt=H(require("react"));var Pr=require("react/jsx-runtime"),Je=Gt.memo(function({value:o,onChange:e,label:t,min:n=-1/0,max:r=1/0,step:s=1,suffix:l,style:a,labelWidth:d=18}){let[p,u]=Gt.useState(!1),[h,g]=Gt.useState(String(o)),m=Gt.useRef(null),f=Gt.useRef({active:!1,startX:0,startVal:0});Gt.useEffect(()=>{p||g(String(Math.round(o*100)/100))},[o,p]);let T=x=>Math.min(r,Math.max(n,x)),b=Gt.useCallback(x=>{x.preventDefault(),x.stopPropagation(),f.current={active:!0,startX:x.clientX,startVal:o};let P=x.currentTarget;P.setPointerCapture(x.pointerId);let C=k=>{if(!f.current.active)return;let D=k.clientX-f.current.startX,M=k.shiftKey?10:k.altKey?.1:1,L=Math.round(D*M*s);e(T(f.current.startVal+L))},E=()=>{f.current.active=!1,P.releasePointerCapture(x.pointerId),document.removeEventListener("pointermove",C),document.removeEventListener("pointerup",E)};document.addEventListener("pointermove",C),document.addEventListener("pointerup",E)},[o,e,n,r,s]),v=Gt.useCallback(x=>{x.preventDefault(),x.stopPropagation();let P=x.clientX,C=o,E=!1;f.current={active:!0,startX:P,startVal:C};let k=M=>{let L=M.clientX-P;if(Math.abs(L)>2&&(E=!0),!E)return;let V=M.shiftKey?10:M.altKey?.1:1,X=Math.round(L*V*s);e(T(C+X))},D=()=>{f.current.active=!1,document.removeEventListener("pointermove",k),document.removeEventListener("pointerup",D),E||(u(!0),setTimeout(()=>{var M;return(M=m.current)==null?void 0:M.select()},0))};document.addEventListener("pointermove",k),document.addEventListener("pointerup",D)},[o,e,n,r,s]),y=Gt.useCallback(()=>{u(!1);let x=parseFloat(h);isNaN(x)||e(T(x))},[h,e,n,r]);return(0,Pr.jsxs)(Rf,{style:a,children:[t&&(0,Pr.jsx)(Df,{style:{width:d,cursor:"ew-resize"},onPointerDown:b,children:t}),p?(0,Pr.jsx)(Ef,{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)(Bf,{onPointerDown:v,children:[Math.round(o*100)/100,l&&(0,Pr.jsx)(Mf,{children:l})]})]})}),Rf=R("div",{display:"flex",alignItems:"center",gap:"4px",minWidth:0}),Df=R("label",{fontSize:"9px",color:"$textSecondary",fontWeight:500,flexShrink:0,textAlign:"right",userSelect:"none",cursor:"ew-resize","&:active":{cursor:"ew-resize"}}),Ef=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"}}),Bf=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"}}),Mf=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 Lf={type:"linear",stops:[{color:"#0D99FF",position:0,opacity:1},{color:"#FF6B00",position:100,opacity:1}],angle:90,centerX:50,centerY:50},ll="telva_gradient_presets";function dl(){try{return JSON.parse(localStorage.getItem(ll)||"[]")}catch(i){return[]}}function Af(i){let o=dl();o.unshift(i),localStorage.setItem(ll,JSON.stringify(o.slice(0,12)))}function Vf(i){let o=dl();o.splice(i,1),localStorage.setItem(ll,JSON.stringify(o))}function Hf(){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 zf(){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 Ff(){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 Of(){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 $f={linear:(0,O.jsx)(Hf,{}),radial:(0,O.jsx)(zf,{}),conic:(0,O.jsx)(Ff,{}),diamond:(0,O.jsx)(Of,{})},Os=dt.memo(function({value:o,onChange:e}){let[t,n]=dt.useState(o||Lf),[r,s]=dt.useState(0),[l,a]=dt.useState(!1),d=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 C=P.stops.map((k,D)=>D===y?S(S({},k),x):k),E=I(S({},P),{stops:C});return e(E,_o(E)),E})},[e]),g=dt.useCallback(y=>{if(!d.current||y.target.dataset.thumb)return;let x=d.current.getBoundingClientRect(),P=Math.round((y.clientX-x.left)/x.width*100),C={color:"#888888",position:P,opacity:1};n(E=>{let k=[...E.stops,C],D=I(S({},E),{stops:k});return e(D,_o(D)),s(k.length-1),D})},[e]),m=dt.useCallback(y=>{t.stops.length<=2||n(x=>{let P=x.stops.filter((E,k)=>k!==y),C=I(S({},x),{stops:P});return e(C,_o(C)),s(Math.min(y,P.length-1)),C})},[t.stops.length,e]),f=dt.useCallback((y,x)=>{y.preventDefault(),y.stopPropagation(),s(x);let P=d.current.getBoundingClientRect(),C=k=>{let D=Math.max(0,Math.min(100,Math.round((k.clientX-P.left)/P.width*100)));h(x,{position:D})},E=()=>{document.removeEventListener("pointermove",C),document.removeEventListener("pointerup",E)};document.addEventListener("pointermove",C),document.addEventListener("pointerup",E)},[h]),T=_o(t),b=t.stops[r],v=dl();return(0,O.jsxs)(Gf,{ref:p,tabIndex:-1,onClick:y=>y.stopPropagation(),onPointerDown:y=>y.stopPropagation(),children:[(0,O.jsx)(jf,{children:["linear","radial","conic","diamond"].map(y=>(0,O.jsxs)(Wf,{$active:t.type===y,onClick:()=>u({type:y}),title:y.charAt(0).toUpperCase()+y.slice(1),children:[$f[y],(0,O.jsx)(Nf,{children:y.charAt(0).toUpperCase()+y.slice(1)})]},y))}),(0,O.jsx)(Uf,{style:{background:T}}),(0,O.jsxs)(Kf,{children:[(0,O.jsxs)(_f,{children:["Stops (",t.stops.length,")"]}),(0,O.jsxs)(Yf,{ref:d,onClick:g,children:[(0,O.jsx)(Xf,{style:{background:T}}),t.stops.map((y,x)=>(0,O.jsx)(Zf,{"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)(Vp,{children:"Click to add \xB7 Double-click to remove \xB7 Drag to move"})]}),b&&(0,O.jsxs)(qf,{children:[(0,O.jsxs)(Jf,{children:["Stop ",r+1]}),(0,O.jsx)(Fs,{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)(bo,{children:"%"})]}),b&&(0,O.jsx)(zs,{color:b.color,opacity:b.opacity,onChange:(y,x)=>{h(r,{color:y,opacity:x}),y!=="transparent"&&wr(y)},showTransparent:!1}),(0,O.jsxs)(Qf,{children:[(0,O.jsx)(eS,{children:"Geometry"}),(t.type==="linear"||t.type==="conic")&&(0,O.jsxs)(Hp,{children:[(0,O.jsx)(bo,{children:"Angle"}),(0,O.jsx)(tS,{style:{transform:`rotate(${t.angle}deg)`},onPointerDown:y=>{y.preventDefault(),y.stopPropagation();let x=y.currentTarget.getBoundingClientRect(),P=x.left+x.width/2,C=x.top+x.height/2,E=D=>{let M=Math.round(Math.atan2(D.clientY-C,D.clientX-P)*(180/Math.PI)+90);u({angle:(M%360+360)%360})},k=()=>{document.removeEventListener("pointermove",E),document.removeEventListener("pointerup",k)};document.addEventListener("pointermove",E),document.addEventListener("pointerup",k)},children:(0,O.jsx)(nS,{})}),(0,O.jsx)(Fs,{type:"number",value:t.angle,onChange:y=>u({angle:(Number(y.target.value)%360+360)%360}),onKeyDown:y=>y.stopPropagation()}),(0,O.jsx)(bo,{children:"\xB0"})]}),(t.type==="radial"||t.type==="conic"||t.type==="diamond")&&(0,O.jsxs)(Hp,{children:[(0,O.jsx)(bo,{children:"Center"}),(0,O.jsx)(bo,{children:"X"}),(0,O.jsx)(Fs,{type:"number",min:0,max:100,value:t.centerX,onChange:y=>u({centerX:Number(y.target.value)}),onKeyDown:y=>y.stopPropagation()}),(0,O.jsx)(bo,{children:"%"}),(0,O.jsx)(bo,{style:{marginLeft:4},children:"Y"}),(0,O.jsx)(Fs,{type:"number",min:0,max:100,value:t.centerY,onChange:y=>u({centerY:Number(y.target.value)}),onKeyDown:y=>y.stopPropagation()}),(0,O.jsx)(bo,{children:"%"})]})]}),(0,O.jsxs)(oS,{children:[(0,O.jsxs)(al,{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)(al,{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)(al,{onClick:()=>{Af(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||v.length>0)&&(0,O.jsxs)(rS,{children:[(0,O.jsxs)(iS,{onClick:()=>a(!l),children:["Presets (",v.length,")",(0,O.jsx)(sS,{children:l?"\u2212":"+"})]}),l&&(0,O.jsxs)(aS,{children:[v.map((y,x)=>(0,O.jsx)(lS,{style:{background:_o(y)},onClick:()=>{n(y),e(y,_o(y)),s(0)},onContextMenu:P=>{P.preventDefault(),Vf(x),a(!0)},title:"Click to apply \xB7 Right-click to remove"},x)),v.length===0&&(0,O.jsx)(Vp,{children:"No presets saved yet"})]})]})]})}),Gf=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"}),jf=R("div",{display:"flex",gap:2,background:"$inputBg",borderRadius:6,padding:2}),Wf=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"}}}}),Nf=R("span",{fontSize:"7px",fontWeight:500,letterSpacing:"0.02em"}),Uf=R("div",{width:"100%",height:40,borderRadius:6,border:"1px solid $separator"}),Kf=R("div",{display:"flex",flexDirection:"column",gap:4}),_f=R("span",{fontSize:"8px",color:"$textSecondary",fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em"}),Yf=R("div",{position:"relative",height:24,borderRadius:6,cursor:"crosshair",overflow:"visible"}),Xf=R("div",{width:"100%",height:"100%",borderRadius:6,border:"1px solid $separator"}),Zf=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}}}}),Vp=R("span",{fontSize:"7px",color:"$textSecondary",fontStyle:"italic",opacity:.6}),qf=R("div",{display:"flex",alignItems:"center",gap:4}),Jf=R("span",{fontSize:"8px",color:"$textSecondary",fontWeight:500,flex:1}),Qf=R("div",{display:"flex",flexDirection:"column",gap:6,borderTop:"1px solid $separator",paddingTop:8}),eS=R("span",{fontSize:"8px",color:"$textSecondary",fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em"}),Hp=R("div",{display:"flex",alignItems:"center",gap:4}),bo=R("span",{fontSize:"8px",color:"$textSecondary",fontWeight:500}),Fs=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"}}),tS=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}),nS=R("div",{width:2,height:"40%",background:"$accent",borderRadius:1,position:"absolute",top:3,left:"50%",transform:"translateX(-50%)"}),oS=R("div",{display:"flex",gap:3,borderTop:"1px solid $separator",paddingTop:8}),al=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"}}),rS=R("div",{borderTop:"1px solid $separator",paddingTop:6}),iS=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"}}),sS=R("span",{fontSize:"10px",color:"$textSecondary"}),aS=R("div",{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:4,marginTop:6}),lS=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 Gp(i,o){let[e,t,n]=Cr(i);return`rgba(${e},${t},${n},${o.toFixed(3)})`}function jp(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:fi(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 hS=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)}},mS=i=>i.settings.isDarkMode?"dark":"light",hl=Ve.memo(function(){let o=_(),{shapes:e}=o.useStore(hS),t=o.useStore(mS);if(e.length===0)return(0,w.jsx)(Np,{children:(0,w.jsxs)(ko,{children:[(0,w.jsx)(Co,{children:"Design"}),(0,w.jsx)(DS,{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",d=n.type==="rectangle"||n.type==="triangle"||n.type==="ellipse"||n.type==="draw"||n.type==="pen";return(0,w.jsxs)(Np,{children:[(0,w.jsx)(gS,{shape:n,multi:r,count:e.length}),(0,w.jsx)(vn,{}),!r&&(0,w.jsx)(fS,{shape:n,app:o}),r&&(0,w.jsx)(PS,{app:o}),(0,w.jsx)(vn,{}),!r&&(0,w.jsx)(SS,{shape:n,app:o}),!r&&(0,w.jsx)(vn,{}),(0,w.jsx)(yS,{shape:n,app:o,isRect:a}),(0,w.jsx)(vn,{}),(0,w.jsx)(bS,{style:n.style,theme:t,app:o}),(0,w.jsx)(vn,{}),(0,w.jsx)(Yo,{title:"Stroke",children:(0,w.jsx)(vS,{style:n.style,theme:t,app:o})}),(0,w.jsx)(vn,{}),(0,w.jsx)(Yo,{title:"Gradient",children:(0,w.jsx)(TS,{shape:n,app:o})}),(0,w.jsx)(vn,{}),s&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(Yo,{title:"Text Style",defaultOpen:!0,children:(0,w.jsx)(xS,{style:n.style,app:o,theme:t})}),(0,w.jsx)(vn,{})]}),(0,w.jsx)(Yo,{title:"Effects",children:(0,w.jsx)(CS,{shape:n,app:o})}),(0,w.jsx)(vn,{}),l&&!r&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(Yo,{title:"Arrow",defaultOpen:!0,children:(0,w.jsx)(wS,{shape:n,app:o})}),(0,w.jsx)(vn,{})]}),s&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(Yo,{title:"Typography",defaultOpen:!0,children:(0,w.jsx)(IS,{style:n.style,app:o})}),(0,w.jsx)(vn,{})]}),(0,w.jsx)(Yo,{title:"Export",children:(0,w.jsx)(RS,{shape:n,app:o})}),(0,w.jsx)("div",{style:{height:40}})]})});function gS({shape:i,multi:o,count:e}){let t=o?e+" Selected":i.type.charAt(0).toUpperCase()+i.type.slice(1);return(0,w.jsx)(ko,{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)(_p,{title:["Clip Mask","Component","Boolean","Flatten"][r],children:n},r))})]})})}function fS({shape:i,app:o}){let e=i.point||[0,0],t=Math.round((i.rotation||0)*(180/Math.PI)),n=Ve.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)(ko,{children:[(0,w.jsx)(Co,{children:"Position"}),(0,w.jsx)(Gs,{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)(St,{onClick:r,title:l,children:s},a))}),(0,w.jsxs)(Kp,{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)(St,{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)(St,{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 SS({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]=Ve.useState(!1),r=Ve.useCallback((s,l)=>{let a={id:i.id};if("size"in i)if(s==="w"){let d=t?l/e[0]*e[1]:e[1];a.size=[l,d]}else{let d=t?l/e[1]*e[0]:e[0];a.size=[d,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)(ko,{children:[(0,w.jsx)(Co,{children:"Layout"}),(0,w.jsxs)(BS,{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 yS({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)(ko,{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)(To,{style:{marginTop:4},children:[(0,w.jsx)(xo,{style:{width:36},children:"Dash"}),(0,w.jsx)(js,{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)(St,{isActive:i.style.dash===l,onClick:()=>o.style({dash:l}),children:a},l))})]})]})}function bS({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=Ve.useCallback((l,a)=>{l==="transparent"?e.style({isFilled:!1}):e.style({fillHex:l,isFilled:!0,opacity:a})},[e]);return(0,w.jsxs)(ko,{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 vS({style:i,theme:o,app:e}){var r,s;let t=i.strokeHex||((r=_n[o])==null?void 0:r[i.color])||_n.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 TS({shape:i,app:o}){let[e,t]=Ve.useState(!!i.style.gradient),n=i.style.gradient,r=Ve.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)(To,{children:[(0,w.jsx)(xo,{style:{width:36},children:"Enable"}),(0,w.jsx)(ml,{checked:e,onClick:r,children:(0,w.jsx)(gl,{checked:e})})]}),e&&(0,w.jsx)("div",{style:{marginTop:8},children:(0,w.jsx)(Os,{value:n,onChange:(s,l)=>{o.style({gradient:s})}})})]})}function xS({style:i,app:o,theme:e}){var h;let t=((h=_n[e])==null?void 0:h[i.color])||"#000000",{hex:n,opacity:r}=jp(i.labelColor,t),{hex:s,opacity:l}=jp(i.labelBackground,"transparent"),a=i.textGradient,[d,p]=Ve.useState(!!a),u=Ve.useCallback(()=>{if(d)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)}},[d,o]);return(0,w.jsxs)("div",{children:[(0,w.jsx)(Ir,{color:n,opacity:r,onChange:(g,m)=>{let f=g==="transparent"?"transparent":Gp(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":Gp(g,m);o.style({labelBackground:f})},showTransparent:!0,showOpacity:!0,label:"Text Bg"})}),(0,w.jsxs)("div",{style:{marginTop:8},children:[(0,w.jsxs)(To,{children:[(0,w.jsx)(xo,{style:{width:60},children:"Text Grad"}),(0,w.jsx)(ml,{checked:d,onClick:u,children:(0,w.jsx)(gl,{checked:d})})]}),d&&(0,w.jsx)("div",{style:{marginTop:8},children:(0,w.jsx)(Os,{value:a,onChange:g=>o.style({textGradient:g})})})]})]})}function kS(i){if(!i)return[];if(Array.isArray(i))return i;let o=[];i.dropShadow&&o.push({id:vi.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:vi.Utils.uniqueId(),type:t,enabled:!0,value:i[t]});return i.invert&&o.push({id:vi.Utils.uniqueId(),type:"invert",enabled:!0}),o}var Wp={dropShadow:"Drop Shadow",blur:"Blur",layerBlur:"Layer Blur",brightness:"Brightness",contrast:"Contrast",saturate:"Saturation",hueRotate:"Hue Rotate",grayscale:"Grayscale",sepia:"Sepia",invert:"Invert"};function CS({shape:i,app:o}){let e=kS(i.effects),t=Ve.useCallback(l=>o.updateShapes({id:i.id,effects:l}),[o,i.id]),n=(l,a)=>{t(e.map(d=>d.id===l?S(S({},d),a):d))},r=l=>{t(e.filter(a=>a.id!==l))},s=l=>{let a={id:vi.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,d,p,u,h,g,m,f,T;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)(ml,{checked:l.enabled,onClick:()=>n(l.id,{enabled:!l.enabled}),children:(0,w.jsx)(gl,{checked:l.enabled})}),(0,w.jsx)("span",{style:{fontSize:10,fontWeight:500,color:"var(--colors-text)"},children:Wp[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)(Kp,{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:(d=l.y)!=null?d: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)(To,{children:[(0,w.jsx)(xo,{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:(T=l.value)!=null?T: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(Wp).map(([l,a])=>(0,w.jsx)("option",{value:l,children:a},l))]})})]})}function wS({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)(To,{children:[(0,w.jsx)(xo,{style:{width:36},children:"Start"}),(0,w.jsxs)(js,{children:[(0,w.jsx)(St,{isActive:!t,onClick:()=>o.updateShapes({id:i.id,decorations:I(S({},e.decorations),{start:void 0})}),children:"None"}),(0,w.jsx)(St,{isActive:t,onClick:()=>o.updateShapes({id:i.id,decorations:I(S({},e.decorations),{start:"arrow"})}),children:"\u25C4"})]})]}),(0,w.jsxs)(To,{children:[(0,w.jsx)(xo,{style:{width:36},children:"End"}),(0,w.jsxs)(js,{children:[(0,w.jsx)(St,{isActive:!n,onClick:()=>o.updateShapes({id:i.id,decorations:I(S({},e.decorations),{end:void 0})}),children:"None"}),(0,w.jsx)(St,{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 IS({style:i,app:o}){var g;let[e,t]=Ve.useState(""),[n,r]=Ve.useState(!1),[s,l]=Ve.useState([]),a=Ve.useRef(null);Ve.useEffect(()=>{Promise.resolve().then(()=>(bi(),$s)).then(m=>{l(m.searchGoogleFonts(e))})},[e]);let d=Ve.useCallback(m=>{Promise.resolve().then(()=>(bi(),$s)).then(f=>{f.loadGoogleFont(m.family,m.variants);let T=m.category==="monospace"?"mono":m.category==="serif"?"serif":m.category==="handwriting"?"script":"sans";o.style({font:T,fontFamily:m.family}),t(""),r(!1)})},[o]);Ve.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)(To,{children:[(0,w.jsx)(xo,{style:{width:36},children:"Font"}),(0,w.jsxs)("div",{ref:a,style:{position:"relative",flex:1},children:[(0,w.jsx)(ES,{value:e||u,onChange:m=>{t(m.target.value),r(!0)},onFocus:()=>{r(!0),Promise.resolve().then(()=>(bi(),$s)).then(m=>m.fetchGoogleFonts())},placeholder:"Search fonts...",style:{fontSize:9}}),n&&s.length>0&&(0,w.jsx)(MS,{children:s.map(m=>(0,w.jsx)(LS,{onMouseDown:f=>{f.preventDefault(),d(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)(To,{style:{marginTop:4},children:[(0,w.jsx)(xo,{style:{width:36},children:"Align"}),(0,w.jsx)(js,{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)(St,{isActive:i.textAlign===m,onClick:()=>o.style({textAlign:m}),children:f},m))})]})]})}function PS({app:i}){return(0,w.jsxs)(ko,{children:[(0,w.jsx)(Co,{children:"Alignment"}),(0,w.jsx)(Gs,{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)(St,{onClick:o,title:t,children:e},n))}),(0,w.jsx)(Up,{style:{display:"block",marginTop:8,marginBottom:4},children:"Distribute"}),(0,w.jsxs)(Gs,{style:{gridTemplateColumns:"repeat(2, 1fr)"},children:[(0,w.jsx)(St,{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)(St,{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)(Up,{style:{display:"block",marginTop:8,marginBottom:4},children:"Stretch"}),(0,w.jsxs)(Gs,{style:{gridTemplateColumns:"repeat(2, 1fr)"},children:[(0,w.jsx)(St,{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)(St,{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 ul(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 RS({shape:i,app:o}){let[e,t]=Ve.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)(St,{style:{flex:1},onClick:()=>F(this,null,function*(){t("svg");try{let a=yield o.exportImage("svg",{ids:[i.id]});a&&ul(a,n+".svg")}catch(a){console.error("SVG export failed",a)}t(null)}),title:"Export as SVG",children:e==="svg"?"...":"SVG"}),(0,w.jsx)(St,{style:{flex:1},onClick:()=>F(this,null,function*(){t("png");try{let a=yield o.exportImage("png",{ids:[i.id]});a&&ul(a,n+".png")}catch(a){console.error("PNG export failed",a)}t(null)}),title:"Export as PNG",children:e==="png"?"...":"PNG"}),(0,w.jsx)(St,{style:{flex:1},onClick:()=>{let a=JSON.stringify(i,null,2);navigator.clipboard.writeText(a).catch(d=>{}),ul(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]=Ve.useState(e);return(0,w.jsxs)(ko,{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)(_p,{onClick:r=>{r.stopPropagation(),n(!t)},children:t?"\u2212":"+"})]}),t&&(0,w.jsx)("div",{style:{marginTop:8},children:o})]})}var Np=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"}}),ko=R("div",{padding:"8px 12px"}),Co=R("div",{fontSize:"10px",fontWeight:600,color:"$textSecondary",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:"8px"}),vn=R("div",{height:"1px",background:"$separator"}),DS=R("div",{fontSize:"10px",color:"$textSecondary",fontStyle:"italic"}),Kp=R("div",{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"4px"}),To=R("div",{display:"flex",alignItems:"center",gap:"6px",marginBottom:"4px"}),xo=R("label",{fontSize:"9px",color:"$textSecondary",fontWeight:500,width:"18px",flexShrink:0,textAlign:"right",cursor:"ew-resize",userSelect:"none"}),YI=R("span",{fontSize:"9px",color:"$textSecondary"}),ES=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"}}),Up=R("span",{fontSize:"9px",color:"$textSecondary",fontFamily:"$mono"}),Gs=R("div",{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:"3px"}),js=R("div",{display:"flex",gap:"2px",flex:1}),St=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"}}}}}),_p=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"}}),ml=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"}}}}),gl=R("div",{width:"12px",height:"12px",borderRadius:"50%",background:"white",transition:"transform 0.12s",variants:{checked:{true:{transform:"translateX(12px)"}}}}),BS=R("div",{display:"grid",gridTemplateColumns:"1fr auto 1fr",gap:"4px",alignItems:"center"}),XI=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"}}}}),MS=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"}}),LS=R("div",{padding:"4px 8px",fontSize:"10px",color:"$text",cursor:"pointer","&:hover":{background:"$hover"}});var Yp=require("react/jsx-runtime"),fl=Xp.memo(function(){return(0,Yp.jsx)(AS,{children:(0,Yp.jsx)(hl,{})})}),AS=R("div",{display:"flex",flexDirection:"column",width:"240px",height:"100%",background:"$panel",borderLeft:"1px solid $separator",zIndex:200,pointerEvents:"all",overflow:"hidden",flexShrink:0});bi();var vu=H(require("react")),Tu=require("react-intl");var su=H(require("@radix-ui/react-dropdown-menu")),au=require("@radix-ui/react-icons"),Re=H(require("react")),_e=require("react-intl");var qp=require("@radix-ui/react-dropdown-menu");var Zp=require("react/jsx-runtime");function ce(t){var n=t,{onSelect:i,id:o}=n,e=Le(n,["onSelect","id"]);return(0,Zp.jsx)(qp.Item,{dir:"ltr",asChild:!0,onSelect:i,id:o,children:(0,Zp.jsx)(st,S({},e))})}var Qp=require("@radix-ui/react-dropdown-menu");var Ce=i=>i.preventDefault();var Jp=require("react/jsx-runtime");function ln({checked:i,disabled:o=!1,variant:e,onCheckedChange:t,kbd:n,id:r,ariaLabel:s,children:l}){return(0,Jp.jsx)(Qp.CheckboxItem,{dir:"ltr",onSelect:Ce,onCheckedChange:t,checked:i,disabled:o,asChild:!0,id:r,"aria-label":s,children:(0,Jp.jsx)(st,{kbd:n,variant:e,hasIndicator:!0,children:l})})}var Ws=H(require("@radix-ui/react-dropdown-menu"));var Sl=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=un();return(0,Sl.jsx)(Ws.Portal,{container:a.current,dir:"ltr",children:(0,Sl.jsx)(Ws.Content,{align:t,alignOffset:o,sideOffset:i,onEscapeKeyDown:ut,asChild:!0,id:r,side:l,children:(0,Sl.jsx)(VS,{variant:n,overflow:s,children:e})})})}var VS=R(Un,{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 eu=require("@radix-ui/react-dropdown-menu");var vP=R(eu.Separator,{backgroundColor:"$hover",height:1,marginTop:"$2",marginRight:"-$2",marginBottom:"$2",marginLeft:"-$2"});var tu=require("@radix-ui/react-dropdown-menu");var Ti=R(tu.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)(Un,{size:o,overflow:e,children:[i,(0,Xo.jsx)(wo.Arrow,{offset:13})]})})]},r)}var ou=require("@radix-ui/react-dropdown-menu");var nu=require("react/jsx-runtime");function Ns(t){var n=t,{id:i,children:o}=n,e=Le(n,["id","children"]);return(0,nu.jsx)(ou.Trigger,{asChild:!0,id:i,children:(0,nu.jsx)(Pt,I(S({},e),{children:o}))})}var to=H(require("react")),Tn=require("react-intl");var Ge=require("react/jsx-runtime"),HS=i=>i.settings,zS=["bottom","left","right","top"];function iu(){let i=_(),o=(0,Tn.useIntl)(),e=i.useStore(HS),t=to.useCallback(()=>{i.setSetting("isDebugMode",u=>!u)},[i]),n=to.useCallback(()=>{i.setSetting("isDarkMode",u=>!u)},[i]),r=to.useCallback(()=>{i.setSetting("isFocusMode",u=>!u)},[i]),s=to.useCallback(()=>{i.setSetting("showGrid",u=>!u)},[i]),l=to.useCallback(()=>{i.setSetting("keepStyleMenuOpen",u=>!u)},[i]),a=to.useCallback(()=>{i.setSetting("isCadSelectMode",u=>!u)},[i]),d=to.useCallback(u=>{i.setSetting("dockPosition",u)},[i]),p=to.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)(ln,{checked:e.isDarkMode,onCheckedChange:n,kbd:"#\u21E7D",id:"TD-MenuItem-Preferences-Dark_Mode",ariaLabel:o.formatMessage({id:"preferences.dark.mode"}),children:(0,Ge.jsx)(Tn.FormattedMessage,{id:"preferences.dark.mode"})}),(0,Ge.jsx)(ln,{checked:e.isFocusMode,onCheckedChange:r,kbd:"#.",id:"TD-MenuItem-Preferences-Focus_Mode",ariaLabel:o.formatMessage({id:"preferences.focus.mode"}),children:(0,Ge.jsx)(Tn.FormattedMessage,{id:"preferences.focus.mode"})}),(0,Ge.jsx)(ln,{checked:e.isDebugMode,onCheckedChange:t,id:"TD-MenuItem-Preferences-Debug_Mode",ariaLabel:o.formatMessage({id:"preferences.debug.mode"}),children:(0,Ge.jsx)(Tn.FormattedMessage,{id:"preferences.debug.mode"})}),(0,Ge.jsx)(Te,{}),(0,Ge.jsx)(ln,{checked:e.showGrid,onCheckedChange:s,kbd:"#\u21E7G",id:"TD-MenuItem-Preferences-Grid",ariaLabel:o.formatMessage({id:"preferences.show.grid"}),children:(0,Ge.jsx)(Tn.FormattedMessage,{id:"preferences.show.grid"})}),(0,Ge.jsx)(ln,{checked:e.isCadSelectMode,onCheckedChange:a,id:"TD-MenuItem-Preferences-Cad_Selection",ariaLabel:o.formatMessage({id:"preferences.use.cad.selection"}),children:(0,Ge.jsx)(Tn.FormattedMessage,{id:"preferences.use.cad.selection"})}),(0,Ge.jsx)(ln,{checked:e.keepStyleMenuOpen,onCheckedChange:l,id:"TD-MenuItem-Preferences-Style_menu",ariaLabel:o.formatMessage({id:"preferences.keep.stylemenu.open"}),children:(0,Ge.jsx)(Tn.FormattedMessage,{id:"preferences.keep.stylemenu.open"})}),(0,Ge.jsx)($n,{label:o.formatMessage({id:"dock.position"}),children:zS.map(u=>(0,Ge.jsx)(ln,{checked:e.dockPosition===u,onCheckedChange:()=>d(u),id:`TD-MenuItem-DockPosition-${u}`,ariaLabel:`DockPosition-${u}`,children:(0,Ge.jsx)(ru,{children:(0,Ge.jsx)(Tn.FormattedMessage,{id:u})})},u))}),(0,Ge.jsx)($n,{label:o.formatMessage({id:"export.background"}),children:Object.values(rr).map(u=>(0,Ge.jsx)(ln,{checked:e.exportBackground===u,onCheckedChange:()=>p(u),id:`TD-MenuItem-ExportBackground-${u}`,ariaLabel:`ExportBackground-${u}`,children:(0,Ge.jsx)(ru,{children:(0,Ge.jsx)(Tn.FormattedMessage,{id:u})})},u))})]})}var ru=R("span",{textTransform:"capitalize"});var $=require("react/jsx-runtime"),FS=i=>i.document.pageStates[i.appState.currentPageId].selectedIds.length,OS=i=>i.appState.disableAssets,lu=Re.memo(function({readOnly:o}){let e=_(),t=(0,_e.useIntl)(),[n,r]=Re.useState(!1),s=e.useStore(FS),l=e.useStore(OS),[a,d]=Re.useState(0);Re.useEffect(()=>d(1),[]);let{onNewProject:p,onOpenProject:u,onSaveProject:h,onSaveProjectAs:g}=zi(),m=Re.useCallback(()=>{r(!0)},[]),f=Re.useCallback(()=>{e.delete()},[e]),T=Re.useCallback(()=>{e.copyImage("svg",{scale:1,quality:1,transparentBackground:!1})},[e]),b=Re.useCallback(()=>{e.copyImage("png",{scale:2,quality:1,transparentBackground:!0})},[e]),v=Re.useCallback(()=>F(this,null,function*(){e.exportImage("png",{scale:2,quality:1})}),[e]),y=Re.useCallback(()=>F(this,null,function*(){e.exportImage("jpeg",{scale:2,quality:1})}),[e]),x=Re.useCallback(()=>F(this,null,function*(){e.exportImage("webp",{scale:2,quality:1})}),[e]),P=Re.useCallback(()=>F(this,null,function*(){e.exportImage("svg",{scale:2,quality:1})}),[e]),C=Re.useCallback(()=>F(this,null,function*(){e.copyJson()}),[e]),E=Re.useCallback(()=>F(this,null,function*(){e.exportJson()}),[e]),k=Re.useCallback(()=>{e.cut()},[e]),D=Re.useCallback(()=>{e.copy()},[e]),M=Re.useCallback(()=>{e.paste()},[e]),L=Re.useCallback(()=>{e.selectAll()},[e]),V=Re.useCallback(()=>{e.selectNone()},[e]),X=Re.useCallback(()=>{e.openAsset()},[e]),se=Re.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)(su.Root,{dir:"ltr",children:[(0,$.jsx)(Ns,{id:"TD-MenuIcon",children:(0,$.jsx)(au.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:v,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:E,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:k,kbd:"#X",id:"TD-MenuItem-Edit-Cut",children:(0,$.jsx)(_e.FormattedMessage,{id:"cut"})}),(0,$.jsx)(ce,{onSelect:Ce,disabled:!ne,onClick:D,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:T,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:C,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)(iu,{})]})]}),(0,$.jsx)(Sc,{isOpen:n,onClose:()=>r(!1)})]})});var pu=H(require("@radix-ui/react-dropdown-menu")),Rr=require("@radix-ui/react-icons"),no=H(require("react")),xi=require("react-intl"),Us=require("telva-core");var du=require("react/jsx-runtime");function cu(){return(0,du.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,du.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"),$S=i=>i.room,uu=function(){let o=_(),e=o.useStore($S),[t,n]=no.useState(!1),r=no.useRef(0),s=no.useCallback(()=>{n(!0),B.copyStringToClipboard(window.location.href),clearTimeout(r.current),r.current=setTimeout(()=>n(!1),1200)},[]),l=no.useCallback(()=>{n(!0);let p=window.location.href.split("/");p[p.length-2]="v",p[p.length-1]=Us.Utils.lns(p[p.length-1]),B.copyStringToClipboard(p.join("/")),clearTimeout(r.current),r.current=setTimeout(()=>n(!1),1200)},[]),a=no.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())}),[]),d=no.useCallback(()=>F(this,null,function*(){var u;let p=Us.Utils.deepClone(o.document);o.setIsLoading(!0);try{if(o.callbacks.onAssetUpload)for(let g in p.assets){let m=p.assets[g];if(m.src.includes("base64")){let f=GS(m.src,((u=m.fileName)!=null?u:m.type==="video")?"image.png":"image.mp4"),T=yield o.callbacks.onAssetUpload(o,f,g);T?m.src=T:m.src=""}}let h=yield fetch("/api/create",{method:"POST",mode:"no-cors",headers:{"Access-Control-Allow-Origin":"*","Content-Type":"application/json"},body:JSON.stringify({roomId:Us.Utils.uniqueId(),pageId:o.currentPageId,document:p})}).then(g=>g.json());h!=null&&h.url?window.location.href=h.url:B.warn(h==null?void 0:h.message)}catch(h){B.warn(h.message)}o.setIsLoading(!1)}),[]);return(0,Ye.jsxs)(pu.Root,{dir:"ltr",children:[(0,Ye.jsx)(Ns,{id:"TD-MultiplayerMenuIcon",isActive:!!e,children:(0,Ye.jsx)(cu,{})}),(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)(xi.FormattedMessage,{id:"copy.invite.link"}),(0,Ye.jsx)(Ht,{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)(xi.FormattedMessage,{id:"copy.readonly.link"}),(0,Ye.jsx)(Ht,{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)(xi.FormattedMessage,{id:"create.multiplayer.project"})})}),(0,Ye.jsx)(ce,{id:"TD-Multiplayer-CopyToMultiplayerProject",onClick:d,children:(0,Ye.jsx)(xi.FormattedMessage,{id:"copy.multiplayer.project"})})]})]})};function GS(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 dn=H(require("@radix-ui/react-dropdown-menu")),_s=require("@radix-ui/react-icons"),wt=H(require("react")),ki=require("react-intl");var jt=H(require("@radix-ui/react-alert-dialog")),Ks=require("@radix-ui/react-icons"),yt=H(require("react")),Dr=require("react-intl");var hu=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"),jS=i=>Object.keys(i.document.pages).length>1;function gu({page:i,onOpen:o,onClose:e}){let t=_(),n=(0,Dr.useIntl)(),[r,s]=yt.useState(!1),[l,a]=yt.useState(i.name||"Page"),d=t.useStore(jS),p=yt.useRef(null),u=yt.useCallback(()=>{s(!1)},[]),h=yt.useCallback(()=>{t.duplicatePage(i.id)},[t]),g=yt.useCallback(()=>{window.confirm("Are you sure you want to delete this page?")&&t.deletePage(i.id)},[t]),m=yt.useCallback(C=>{if(s(C),C){o==null||o();return}},[t]);function f(C){C.stopPropagation()}let T=yt.useRef(i.name||"Page"),b=yt.useRef(T.current),v=yt.useCallback(C=>{let E=C.target.value.trimStart();b.current=E,a(E)},[]),y=yt.useCallback(C=>{switch(C.key){case"Enter":{b.current===T.current||(T.current=b.current,t.renamePage(i.id,b.current.trim())),s(!1);break}case"Escape":{if(b.current===T.current){s(!1);return}b.current=T.current,a(T.current),requestAnimationFrame(()=>{let E=p.current;E&&(E.focus(),E.setSelectionRange(0,E.value.length))});break}}},[]),x=yt.useRef(!1);yt.useEffect(()=>(r?(x.current=!0,T.current=i.name||"Page",b.current=T.current,requestAnimationFrame(()=>{let C=p.current;C&&(C.focus(),C.setSelectionRange(0,C.value.length))})):x.current&&(e==null||e()),()=>{b.current!==T.current&&(T.current=b.current,t.renamePage(i.id,b.current))}),[r]);let P=un();return(0,We.jsxs)(jt.Root,{open:r,onOpenChange:m,children:[(0,We.jsx)(jt.Trigger,{asChild:!0,"data-shy":"true",children:(0,We.jsx)(hu,{bp:pn,children:(0,We.jsx)(Ht,{children:(0,We.jsx)(Ks.MixerVerticalIcon,{})})})}),(0,We.jsxs)(jt.Portal,{container:P.current,children:[(0,We.jsx)(NS,{onPointerDown:u}),(0,We.jsxs)(WS,{dir:"ltr",onKeyDown:f,onKeyUp:f,children:[(0,We.jsx)(Zi,{ref:p,placeholder:n.formatMessage({id:"page.name"}),value:l,onChange:v,onKeyDown:y,icon:(0,We.jsx)(Ks.Pencil1Icon,{})}),(0,We.jsx)(Te,{}),(0,We.jsx)(mu,{onSelect:h,children:(0,We.jsx)(Dr.FormattedMessage,{id:"duplicate"})}),(0,We.jsx)(mu,{disabled:!d,onSelect:g,children:(0,We.jsx)(Dr.FormattedMessage,{id:"delete"})}),(0,We.jsx)(Te,{}),(0,We.jsx)(jt.Cancel,{asChild:!0,children:(0,We.jsx)(st,{children:(0,We.jsx)(Dr.FormattedMessage,{id:"cancel"})})})]})]})]})}var WS=R(jt.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"}}),NS=R(jt.Overlay,{backgroundColor:"rgba(0, 0, 0, .15)",position:"absolute",pointerEvents:"all",inset:0,zIndex:999998});function mu(e){var t=e,{onSelect:i}=t,o=Le(t,["onSelect"]);return(0,We.jsx)(jt.Action,{asChild:!0,onClick:i,onSelect:i,children:(0,We.jsx)(st,S({},o))})}var De=require("react/jsx-runtime"),US=i=>Object.values(i.document.pages).sort((o,e)=>(o.childIndex||0)-(e.childIndex||0)),KS=i=>i.document.pages[i.appState.currentPageId].name,_S=i=>i.document.pages[i.appState.currentPageId].id;function fu(){let i=_(),o=(0,ki.useIntl)(),e=wt.useRef(!1),[t,n]=wt.useState(!1);wt.useEffect(()=>{e.current!==t&&(e.current=t)},[t]);let r=wt.useCallback(()=>{n(!1)},[n]),s=wt.useCallback(a=>{e.current!==a&&n(a)},[n]),l=i.useStore(KS);return(0,De.jsxs)(dn.Root,{dir:"ltr",open:t,onOpenChange:s,children:[(0,De.jsx)(dn.Trigger,{dir:"ltr",asChild:!0,id:"TD-Page",children:(0,De.jsx)(Pt,{variant:"text",children:l||o.formatMessage({id:"page"})})}),(0,De.jsx)(On,{variant:"menu",align:"start",sideOffset:4,children:t&&(0,De.jsx)(YS,{onClose:r})})]})}function YS({onClose:i}){let o=_(),e=(0,ki.useIntl)(),t=o.useStore(US),n=o.useStore(_S),r=e.formatMessage({id:"page"}),s=wt.useCallback(()=>{let f=r+" "+(Object.keys(o.document.pages).length+1);o.createPage(void 0,f)},[o]),l=wt.useCallback(f=>{i(),o.changePage(f)},[o]),[a,d]=wt.useState(null),[p,u]=wt.useState(null),h=wt.useCallback(f=>{d(f.currentTarget.id),u(t.findIndex(T=>T.id===f.currentTarget.id)),f.dataTransfer.effectAllowed="move"},[]),g=wt.useCallback(f=>{f.preventDefault();let T=t.findIndex(y=>y.id===f.currentTarget.id),b=f.currentTarget.getBoundingClientRect();T=(f.clientY-b.top)/b.height<.5?T:T+1,u(T)},[a,t]),m=wt.useCallback(()=>{a!==null&&p!==null&&o.movePage(a,p),d(null),u(null)},[a,p]);return(0,De.jsxs)(De.Fragment,{children:[(0,De.jsx)(dn.RadioGroup,{dir:"ltr",value:n,onValueChange:l,children:t.map((f,T)=>(0,De.jsxs)(XS,{isDropAbove:T===p&&T===0,isDropBelow:p!==null&&T===p-1,children:[(0,De.jsx)(dn.RadioItem,{title:f.name||r,value:f.id,id:f.id,asChild:!0,onDragOver:g,onDragStart:h,onDrop:m,draggable:!0,children:(0,De.jsxs)(ZS,{children:[(0,De.jsx)("span",{id:f.id,children:f.name||r}),(0,De.jsx)(dn.ItemIndicator,{children:(0,De.jsx)(Ht,{children:(0,De.jsx)(_s.CheckIcon,{})})})]})},f.id),(0,De.jsx)(gu,{page:f,onClose:i})]},f.id))}),(0,De.jsx)(Te,{}),(0,De.jsx)(dn.Item,{onSelect:s,asChild:!0,children:(0,De.jsxs)(st,{children:[(0,De.jsx)("span",{children:(0,De.jsx)(ki.FormattedMessage,{id:"create.page"})}),(0,De.jsx)(Ht,{children:(0,De.jsx)(_s.PlusIcon,{})})]})})]})}var XS=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"}}}}}),ZS=R(st,{minWidth:128});var Io=H(require("@radix-ui/react-dropdown-menu")),Po=require("@radix-ui/react-icons"),It=H(require("react")),xn=require("react-intl");var J=require("react/jsx-runtime"),qS=i=>i.appState.currentStyle,JS=i=>i.document.pageStates[i.appState.currentPageId].selectedIds,QS=Object.keys(hr),Su={["draw"]:(0,J.jsx)(Xl,{}),["solid"]:(0,J.jsx)(ql,{}),["dashed"]:(0,J.jsx)(Ul,{}),["dotted"]:(0,J.jsx)(_l,{})},ey={["small"]:(0,J.jsx)(ed,{}),["medium"]:(0,J.jsx)(nd,{}),["large"]:(0,J.jsx)(rd,{})},ty={["start"]:(0,J.jsx)(Po.TextAlignLeftIcon,{}),["middle"]:(0,J.jsx)(Po.TextAlignCenterIcon,{}),["end"]:(0,J.jsx)(Po.TextAlignRightIcon,{}),["justify"]:(0,J.jsx)(Po.TextAlignJustifyIcon,{})},ny=i=>i.settings.isDarkMode?"dark":"light",oy=i=>i.settings.keepStyleMenuOpen,ry=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},yu=It.memo(function(){let o=_(),e=(0,xn.useIntl)(),t=o.useStore(ny),n=o.useStore(oy),r=o.useStore(ry),s=o.useStore(qS),l=o.useStore(JS),[a,d]=It.useState(s),p=It.useRef(s);It.useEffect(()=>{let{appState:{currentStyle:v},page:y,selectedIds:x}=o,P={};if(x.length<=0)P=v;else{let C=new Set([]);o.selectedIds.map(E=>y.shapes[E]).forEach(E=>{QS.forEach(k=>{if(!C.has(k))if(P[k]===void 0)P[k]=E.style[k];else{if(P[k]===E.style[k])return;P[k]=E.style[k],C.add(k)}})})}JSON.stringify(P)!==JSON.stringify(p.current)&&(p.current=P,d(P))},[s,l]);let u=It.useCallback(v=>{o.setSetting("keepStyleMenuOpen",v)},[]),h=It.useCallback(v=>{o.style({isFilled:v})},[]),g=It.useCallback(v=>{o.style({dash:v})},[]),m=It.useCallback(v=>{o.style({size:v})},[]),f=It.useCallback(v=>{o.style({font:v})},[]),T=It.useCallback(v=>{o.style({textAlign:v})},[]),b=It.useCallback(v=>{o.setMenuOpen(v)},[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)(Pt,{"aria-label":e.formatMessage({id:"styles"}),variant:"text",children:[(0,J.jsx)(xn.FormattedMessage,{id:"styles"}),(0,J.jsxs)(sy,{style:{color:_n[t][a.color]},children:[a.isFilled&&(0,J.jsx)(Ta,{size:16,stroke:"none",fill:Ao[t][a.color]}),Su[a.dash]]})]})}),(0,J.jsxs)(On,{id:"TD-StylesMenu",side:"bottom",align:"end",sideOffset:4,alignOffset:4,children:[(0,J.jsxs)(Ci,{variant:"tall",id:"TD-Styles-Color-Container",children:[(0,J.jsx)("span",{children:(0,J.jsx)(xn.FormattedMessage,{id:"style.menu.color"})}),(0,J.jsx)(iy,{children:Object.keys(_n.light).map(v=>(0,J.jsx)(Io.Item,{onSelect:Ce,asChild:!0,id:`TD-Styles-Color-Swatch-${v}`,children:(0,J.jsx)(Pt,{variant:"icon",isActive:a.color===v,onClick:()=>o.style({color:v}),"aria-label":e.formatMessage({id:v}),children:(0,J.jsx)(Ta,{size:18,strokeWidth:2.5,fill:a.isFilled?Ao[t][v]:"transparent",stroke:_n.light[v]})})},v))})]}),(0,J.jsx)(ln,{variant:"styleMenu",checked:!!a.isFilled,onCheckedChange:h,id:"TD-Styles-Fill",children:(0,J.jsx)(xn.FormattedMessage,{id:"style.menu.fill"})}),(0,J.jsxs)(Ci,{id:"TD-Styles-Dash-Container",children:[(0,J.jsx)(xn.FormattedMessage,{id:"style.menu.dash"}),(0,J.jsx)(Ys,{dir:"ltr",value:a.dash,onValueChange:g,children:Object.values(Jt).map(v=>(0,J.jsx)(Ti,{isActive:v===a.dash,value:v,onSelect:Ce,bp:pn,id:`TD-Styles-Dash-${v}`,"aria-label":e.formatMessage({id:v}),children:Su[v]},v))})]}),(0,J.jsxs)(Ci,{id:"TD-Styles-Size-Container",children:[(0,J.jsx)(xn.FormattedMessage,{id:"style.menu.size"}),(0,J.jsx)(Ys,{dir:"ltr",value:a.size,onValueChange:m,children:Object.values(ni).map(v=>(0,J.jsx)(Ti,{isActive:v===a.size,value:v,onSelect:Ce,bp:pn,id:`TD-Styles-Dash-${v}`,"aria-label":e.formatMessage({id:v}),children:ey[v]},v))})]}),(r==="text"||r==="label")&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(Te,{}),(0,J.jsxs)(Ci,{id:"TD-Styles-Font-Container",children:[(0,J.jsx)(xn.FormattedMessage,{id:"style.menu.font"}),(0,J.jsx)(Ys,{dir:"ltr",value:a.font,onValueChange:f,children:Object.values(Eo).map(v=>(0,J.jsx)(Ti,{isActive:v===a.font,value:v,onSelect:Ce,bp:pn,id:`TD-Styles-Font-${v}`,children:(0,J.jsx)(ay,{fontStyle:v,children:"Aa"})},v))})]}),r==="text"&&(0,J.jsxs)(Ci,{id:"TD-Styles-Align-Container",children:[(0,J.jsx)(xn.FormattedMessage,{id:"style.menu.align"}),(0,J.jsx)(Ys,{dir:"ltr",value:a.textAlign,onValueChange:T,children:Object.values(Vt).map(v=>(0,J.jsx)(Ti,{isActive:v===a.textAlign,value:v,onSelect:Ce,bp:pn,id:`TD-Styles-Align-${v}`,children:ty[v]},v))})]})]}),(0,J.jsx)(Te,{}),(0,J.jsx)(ln,{variant:"styleMenu",checked:n,onCheckedChange:u,id:"TD-Styles-Keep-Open",children:(0,J.jsx)(xn.FormattedMessage,{id:"style.menu.keep.open"})})]})]})}),iy=R("div",{display:"grid",gridTemplateColumns:"repeat(4, auto)",gap:0}),Ci=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"}}}}}),Ys=R(Io.DropdownMenuRadioGroup,{display:"flex",flexDirection:"row",gap:"$1"}),sy=R("div",{display:"grid","& > *":{gridColumn:1,gridRow:1}}),ay=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 Xs=H(require("@radix-ui/react-dropdown-menu")),Er=require("react-intl");var Lt=require("react/jsx-runtime"),ly=i=>i.document.pageStates[i.appState.currentPageId].camera.zoom,bu=function(){let o=_(),e=o.useStore(ly);return(0,Lt.jsxs)(Xs.Root,{dir:"ltr",children:[(0,Lt.jsx)(Xs.Trigger,{dir:"ltr",asChild:!0,id:"TD-Zoom",children:(0,Lt.jsxs)(dy,{onDoubleClick:o.resetZoom,variant:"text",children:[Math.round(e*100),"%"]})}),(0,Lt.jsxs)(On,{align:"end",children:[(0,Lt.jsx)(ce,{onSelect:Ce,onClick:o.zoomIn,kbd:"#+",id:"TD-Zoom-Zoom_In",children:(0,Lt.jsx)(Er.FormattedMessage,{id:"zoom.in"})}),(0,Lt.jsx)(ce,{onSelect:Ce,onClick:o.zoomOut,kbd:"#\u2212",id:"TD-Zoom-Zoom_Out",children:(0,Lt.jsx)(Er.FormattedMessage,{id:"zoom.out"})}),(0,Lt.jsxs)(ce,{onSelect:Ce,onClick:o.resetZoom,kbd:"\u21E70",id:"TD-Zoom-Zoom_To_100%",children:[(0,Lt.jsx)(Er.FormattedMessage,{id:"zoom.to"})," 100%"]}),(0,Lt.jsx)(ce,{onSelect:Ce,onClick:o.zoomToFit,kbd:"\u21E71",id:"TD-Zoom-To_Fit",children:(0,Lt.jsx)(Er.FormattedMessage,{id:"zoom.to.fit"})}),(0,Lt.jsx)(ce,{onSelect:Ce,onClick:o.zoomToSelection,kbd:"\u21E72",id:"TD-Zoom-To_Selection",children:(0,Lt.jsx)(Er.FormattedMessage,{id:"zoom.to.selection"})})]})]})},dy=R(Pt,{minWidth:56});var ct=require("react/jsx-runtime");function cy({readOnly:i,showPages:o,showMenu:e,showStyles:t,showZoom:n,showMultiplayerMenu:r}){let s=_(),l=(0,Tu.useIntl)();return(0,ct.jsxs)(py,{children:[(e||o)&&(0,ct.jsxs)(qr,{side:"left",id:"TD-MenuPanel",children:[e&&(0,ct.jsx)(lu,{readOnly:i}),r&&(0,ct.jsx)(uu,{}),o&&(0,ct.jsx)(fu,{})]}),(0,ct.jsx)(uy,{}),(t||n)&&(0,ct.jsxs)(qr,{side:"right",children:[s.readOnly?(0,ct.jsx)(hy,{children:"Read Only"}):(0,ct.jsxs)(ct.Fragment,{children:[(0,ct.jsx)(Pa,{kbd:"#Z",label:l.formatMessage({id:"undo"}),onClick:s.undo,id:"TD-TopPanel-Undo","aria-label":l.formatMessage({id:"undo"}),children:(0,ct.jsx)(xa,{})}),(0,ct.jsx)(Pa,{kbd:"#\u21E7Z",label:l.formatMessage({id:"redo"}),onClick:s.redo,id:"TD-TopPanel-Redo","aria-label":l.formatMessage({id:"redo"}),children:(0,ct.jsx)(xa,{flipHorizontal:!0})})]}),n&&(0,ct.jsx)(bu,{}),t&&!i&&(0,ct.jsx)(yu,{})]})]})}var py=R("div",{width:"100%",position:"absolute",top:0,left:0,right:0,display:"flex",flexDirection:"row",pointerEvents:"none","& > *":{pointerEvents:"all"}}),uy=R("div",{flexGrow:2,pointerEvents:"none"}),hy=R("div",{width:"100%",display:"flex",alignItems:"center",justifyContent:"center",fontFamily:"$ui",fontSize:"$1",paddingLeft:"$4",paddingRight:"$1",userSelect:"none",WebkitUserSelect:"none"}),xu=vu.memo(cy);var ku=H(require("react"));function Cu(i){ku.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 pt=require("telva-core"),ie=require("telva-vec");var wi=require("idb-keyval");var wu="telva_clipboard";function Iu(){return F(this,null,function*(){return(0,wi.get)(wu)})}function Pu(i){return F(this,null,function*(){return(0,wi.set)(wu,i)})}var Zo=H(require("idb-keyval")),Ru=require("telva-core"),Du=H(require("zustand")),Eu=H(require("zustand/vanilla"));var Zs=class{constructor(o,e,t,n){c(this,"_idbId");c(this,"initialState");c(this,"store");c(this,"pointer",-1);c(this,"_state");c(this,"_status","loading");c(this,"stack",[]);c(this,"_snapshot");c(this,"useStore");c(this,"ready");c(this,"isPaused",!1);c(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))});c(this,"applyPatch",(o,e)=>{let t=this._state,n=Ru.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});c(this,"migrate",o=>o);c(this,"cleanup",(o,e,t,n)=>o);c(this,"onStateWillChange");c(this,"onStateDidChange");c(this,"patchState",(o,e)=>(this.applyPatch(o,e),this.onPatch&&this.onPatch(this._state,o,e),this));c(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});c(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));c(this,"onReady");c(this,"onPatch");c(this,"onCommand");c(this,"onPersist");c(this,"onReplace");c(this,"onReset");c(this,"onResetHistory");c(this,"onUndo");c(this,"onRedo");c(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));c(this,"replaceHistory",(o,e=o.length-1)=>(this.stack=o,this.pointer=e,this.onReplace&&this.onReplace(this._state),this));c(this,"resetHistory",()=>(this.stack=[],this.pointer=-1,this.onResetHistory&&this.onResetHistory(this._state),this));c(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});c(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});c(this,"setSnapshot",()=>(this._snapshot=S({},this._state),this));c(this,"forceUpdate",()=>{this.store.setState(this._state,!0)});this._idbId=e,this._state=ht(o),this._snapshot=ht(o),this.initialState=ht(o),this.store=(0,Eu.default)(()=>this._state),this.useStore=(0,Du.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 d=this._state.appState.isEmptyCanvas;a=this.migrate(a),this._state=ht(a),this._snapshot=ht(a),this._state.appState.isEmptyCanvas=d,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 Bu=require("telva-core"),yl=require("telva-vec");function Mu(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=Bu.Utils.getCommonBounds(r.map(({bounds:h})=>h)),l=s.minX+s.width/2,a=s.minY+s.height/2,d=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=>d[h.id]?{point:d[h.id].next}:h,t,!1);return n.forEach(h=>{if(h.type==="group"){let g=yl.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:yl.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 Lu(i,o){return{id:"change_page",before:{appState:{currentPageId:i.currentPageId}},after:{appState:{currentPageId:o}}}}var Hu=require("telva-core");function Au(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 Vu(i,o,e){let t={shapes:{},bindings:{}},n={shapes:{},bindings:{}},r=[],s=new Set,l=new Set;o.filter(d=>!B.getShape(i,d,e).isLocked).forEach(d=>{s.add(d);let p=B.getShape(i,d,e);t.shapes[d]=p,n.shapes[d]=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(d=>{var p;o.includes(d.id)||(s.add(d.id),t.shapes[d.id]={children:d.children},n.shapes[d.id]={children:d.children.filter(u=>!o.includes(u))},((p=n.shapes[d.id])==null?void 0:p.children.length)===0&&(n.shapes[d.id]=void 0,t.shapes[d.id]=B.getShape(i,d.id,e)))});let a=B.getPage(i,e);return Object.values(a.bindings).filter(d=>s.has(d.fromId)||s.has(d.toId)).forEach(d=>{for(let p of[d.toId,d.fromId])if(n.shapes[p]===void 0){t.bindings[d.id]=d,n.bindings[d.id]=void 0;let u=a.shapes[p];u&&u.handles&&Object.values(u.handles).filter(h=>h.bindingId===d.id).forEach(h=>{var g,m,f,T,b,v;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:d.id})})}),s.has(p)||(n.shapes[p]=I(S({},n.shapes[p]),{handles:I(S({},(T=n.shapes[p])==null?void 0:T.handles),{[h.id]:I(S({},(v=(b=n.shapes[p])==null?void 0:b.handles)==null?void 0:v[h.id]),{bindingId:void 0})})}))})}}),Object.values(i.document.pages).flatMap(d=>Object.values(d.shapes)).forEach(d=>{"assetId"in d&&d.assetId&&!s.has(d.id)&&l.delete(d.assetId)}),{before:t,after:n,assetsToRemove:Array.from(l)}}function zu(i,o,e=Hu.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:Au(t,r.map(p=>{var u;return(u=p.name)!=null?u:""})),childIndex:l,shapes:{},bindings:{}},d={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]:d}}}}}function bl(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 Fu(i,o){let{currentPageId:e,document:{pages:t,pageStates:n}}=i,r=Object.values(t).sort((a,d)=>(a.childIndex||0)-(d.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 my=(i,o)=>{let e=S({},i);return o.forEach(t=>e[t]=void 0),e};function vl(i,o,e=i.currentPageId){let{pageState:t,selectedIds:n,document:{assets:r}}=i,{before:s,after:l,assetsToRemove:a}=Vu(i.state,o,e),d=my(r,a);return{id:"delete",before:{document:{assets:r,pages:{[e]:s},pageStates:{[e]:{selectedIds:[...i.selectedIds]}}}},after:{document:{assets:d,pages:{[e]:l},pageStates:{[e]:{selectedIds:n.filter(p=>!o.includes(p)),hoveredId:t.hoveredId&&o.includes(t.hoveredId)?void 0:t.hoveredId}}}}}}var Ou=require("telva-core"),Tl=H(require("telva-vec"));function $u(i,o,e){let{currentPageId:t}=i,n=o.map(a=>i.getShape(a)),r=Object.fromEntries(gy(n,e).map(a=>[a.id,a])),{before:s,after:l}=B.mutateShapes(i.state,o.filter(a=>r[a]!==void 0),a=>{var d;return{point:(d=r[a.id])==null?void 0:d.next}},t);return n.forEach(a=>{if(a.type==="group"){let d=Tl.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:Tl.default.add(u.point,d)}}),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 gy(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=Ou.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],d=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;d.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,d=(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+d})}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],d=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;d.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,d=(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+d})}break}}return r}var Br=require("telva-core");function Gu(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 d=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]:d},pageStates:{[r]:I(S({},n),{id:r,selectedIds:[],camera:S({},t),editingId:void 0,bindingId:void 0,hoveredId:void 0,pointedId:void 0})}}}}}var oo=require("telva-core"),qs=require("telva-vec");function ju(i,o,e){let{selectedIds:t,currentPageId:n,page:r,shapes:s}=i,l={shapes:{},bindings:{}},a={shapes:{},bindings:{}},d={},p=o.map(g=>i.getShape(g)).filter(g=>!o.includes(g.parentId));p.forEach(g=>{let m=oo.Utils.uniqueId();if(l.shapes[m]=void 0,a.shapes[m]=I(S({},oo.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]})}d[g.id]=m}),p.forEach(g=>{g.children&&g.children.forEach(m=>{var v,y;let f=i.getShape(m),T=oo.Utils.uniqueId(),b=d[g.id];l.shapes[T]=void 0,a.shapes[T]=I(S({},oo.Utils.deepClone(f)),{id:T,parentId:b,childIndex:B.getChildIndexAbove(i.state,f.id,n)}),d[m]=T,(y=(v=a.shapes[d[g.id]])==null?void 0:v.children)==null||y.push(T)})});let u=new Set(Object.keys(d));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=oo.Utils.uniqueId(),f=I(S({},oo.Utils.deepClone(g)),{id:m,fromId:d[g.fromId],toId:d[g.toId]});l.bindings[m]=void 0,a.bindings[m]=f;let T=a.shapes[f.fromId];Object.values(T.handles).forEach(b=>{b.bindingId===g.id&&(b.bindingId=m)})}else{let m=a.shapes[d[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=oo.Utils.getCommonBounds(h.map(f=>B.getBounds(f))),m=oo.Utils.getBoundsCenter(g);h.forEach(f=>{!f.point||(f.point=qs.Vec.sub(e,qs.Vec.sub(m,f.point)))})}else{let g=[16,16];h.forEach(m=>{!m.point||(m.point=qs.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=>d[g])}}}}}}var kn=require("telva-core");function xl(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=kn.Utils.getCommonBounds(s),{before:d,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=kn.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:kn.TLBoundsCorner.TopLeft,scaleX:1,scaleY:1,initialShape:u,transformOrigin:[.5,.5]})}let m=kn.Utils.getRelativeTransformedBoundingBox(a,a,h,!0,!1);return B.getShapeUtil(u).transform(u,m,{type:kn.TLBoundsCorner.TopLeft,scaleX:-1,scaleY:1,initialShape:u,transformOrigin:[.5,.5]})}case"vertical":{if(g&&!l){let f=B.getBounds(r[u.parentId]),b=kn.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:kn.TLBoundsCorner.TopLeft,scaleX:1,scaleY:1,initialShape:u,transformOrigin:[.5,.5]})}let m=kn.Utils.getRelativeTransformedBoundingBox(a,a,h,!1,!0);return B.getShapeUtil(u).transform(u,m,{type:kn.TLBoundsCorner.TopLeft,scaleX:1,scaleY:-1,initialShape:u,transformOrigin:[.5,.5]})}}},n,!0);return{id:"flip",before:{document:{pages:{[n]:{shapes:d}},pageStates:{[n]:{selectedIds:t}}}},after:{document:{pages:{[n]:{shapes:p}},pageStates:{[n]:{selectedIds:o}}}}}}var Wu=require("telva-core");function Nu(i,o,e,t){var x,P;if(o.length<2)return;let n={},r={},s={},l={},a=[...o],d=[],p=[],u=[];for(let C of o){let E=i.getShape(C);if(!E.isLocked)if(E.children===void 0)d.push(E);else{let k=E.children.filter(D=>!i.getShape(D).isLocked);u.push(E),a.push(...k),d.push(...k.map(D=>i.getShape(D)).filter(Boolean))}}if(d.every(C=>C.parentId===d[0].parentId)&&d[0].parentId!==t&&((x=i.getShape(d[0].parentId).children)==null?void 0:x.length)===a.length)return;let h=B.flattenPage(i.state,t),g=Object.fromEntries(d.map(C=>[C.id,h.indexOf(C)])),m=d.sort((C,E)=>g[C.id]-g[E.id]),f=t,T=(m.filter(C=>C.parentId===t)[0]||m[0]).childIndex,b=Wu.Utils.getCommonBounds(d.map(C=>B.getBounds(C)));for(n[e]=void 0,r[e]=B.getShapeUtil("group").create({id:e,childIndex:T,parentId:f,point:[b.minX,b.minY],size:[b.width,b.height],children:m.map(C=>C.id)}),m.forEach((C,E)=>{if(C.parentId!==t){let k=i.getShape(C.parentId);u.push(k)}n[C.id]=I(S({},n[C.id]),{parentId:C.parentId,childIndex:C.childIndex}),r[C.id]=I(S({},r[C.id]),{parentId:e,childIndex:E+1})});u.length>0;){let C=u.pop();if(!C)break;let E=(((P=n[C.id])==null?void 0:P.children)||C.children).filter(k=>k&&!(a.includes(k)||p.includes(k)));E.length===0?(n[C.id]=C,r[C.id]=void 0,C.parentId!==t&&(p.push(C.id),u.push(i.getShape(C.parentId)))):(n[C.id]=I(S({},n[C.id]),{children:C.children}),r[C.id]=I(S({},r[C.id]),{children:E}))}let{bindings:v}=i,y=new Set(p);return v.forEach(C=>{for(let E of[C.toId,C.fromId])if(y.has(E)){s[C.id]=C,l[C.id]=void 0;let k=i.getShape(E);k.handles&&Object.values(k.handles).filter(D=>D.bindingId===C.id).forEach(D=>{var M,L;n[E]=I(S({},n[E]),{handles:I(S({},(M=n[E])==null?void 0:M.handles),{[D.id]:{bindingId:C.id}})}),p.includes(E)||(r[E]=I(S({},r[E]),{handles:I(S({},(L=r[E])==null?void 0:L.handles),{[D.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 Uu=require("telva-core"),kl=require("telva-vec");function Ku(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,d=new Set;o.map(v=>i.getShape(v,t)).filter(v=>!v.isLocked).forEach(v=>{a.add(v.id),d.add(v),v.children!==void 0&&v.children.forEach(y=>{a.add(y),d.add(i.getShape(y,t))})});let p=B.getTopChildIndex(i.state,n),u=Array.from(d.values());u.forEach((v,y)=>{if(s.before.shapes[v.id]=v,s.after.shapes[v.id]=void 0,l.before.shapes[v.id]=void 0,l.after.shapes[v.id]=v,!a.has(v.parentId)&&(l.after.shapes[v.id]=I(S({},v),{parentId:n,childIndex:p+y}),v.parentId!==t)){let x=i.getShape(v.parentId,t);s.before.shapes[x.id]={children:x.children},s.after.shapes[x.id]={children:x.children.filter(P=>P!==v.id)}}}),Object.values(r.bindings).filter(v=>a.has(v.fromId)||a.has(v.toId)).forEach(v=>{s.before.bindings[v.id]=v,s.after.bindings[v.id]=void 0;let y=i.getShape(v.fromId,t);if(a.has(v.fromId)&&a.has(v.toId))l.before.bindings[v.id]=void 0,l.after.bindings[v.id]=v;else if(a.has(v.fromId)){let P=i.getShape(v.fromId,t),E=Object.values(y.handles).find(D=>D.bindingId===v.id).id,k=l.after.shapes[P.id];k.handles=I(S({},k.handles),{[E]:I(S({},k.handles[E]),{bindingId:void 0})})}else{let P=i.getShape(v.fromId,t),C=Object.values(y.handles).find(E=>E.bindingId===v.id);s.before.shapes[P.id]={handles:{[C.id]:{bindingId:v.id}}},s.after.shapes[P.id]={handles:{[C.id]:{bindingId:void 0}}}}});let h=i.state.document.pageStates[n],g=Uu.Utils.getCommonBounds(u.map(v=>B.getBounds(v))),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,T=(e.height-g.height*m)/2/m,b=kl.Vec.toFixed(kl.Vec.add([-g.minX,-g.minY],[f,T]));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 _u(i,o,e){let{pages:t}=i.document,n=t[o],r=Object.values(t).sort((a,d)=>{var p,u;return((p=a.childIndex)!=null?p:0)-((u=d.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,d)=>[a.id,{childIndex:d}]))}}}}function Ii(i,o,e){let{currentPageId:t,page:n}=i,r=new Set(o.map(p=>i.getShape(p).parentId)),s={before:{},after:{}},l,a,d;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,T)=>f.childIndex-T.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,d=a/(g.length+1),s=B.mutateShapes(i.state,g.map(m=>u[m].id).reverse(),(m,f)=>({childIndex:a-(f+1)*d}),t);break}case"toFront":{for(let m=h.length-1;m>=0;m--)if(!g.includes(m)){l=m;break}a=u[l].childIndex,d=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 T=f;T>=0;T--)if(!g.includes(T)){let b=u[T].childIndex,v,y;T===0?(v=b/2,y=b/2/(f-T+1)):(v=u[T-1].childIndex,y=(b-v)/(f-T+1),v+=y);for(let x=0;x<f-T;x++)m[u[T+x+1].id]=v+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 T=f;T<h.length;T++)if(!g.includes(T)){a=u[T].childIndex;let b=T===h.length-1?1:(u[T+1].childIndex-a)/(T-f+1);for(let v=0;v<T-f;v++)m[u[f+v].id]=a+b*(v+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 Yu(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 Cl(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 wl=require("telva-core");var fy=Math.PI*2;function Xu(i,o,e=-fy/4){let{currentPageId:t}=i,n={},r={},s=o.flatMap(a=>{let d=i.getShape(a);return d.children?d.children.map(p=>i.getShape(p)):d}).filter(a=>!a.isLocked),l=wl.Utils.getBoundsCenter(wl.Utils.getCommonBounds(s.map(a=>B.getBounds(a))));return s.forEach(a=>{let d=B.getRotatedShapeMutation(a,B.getCenter(a),l,e);!d||(n[a.id]=B.getBeforeShape(a,d),r[a.id]=d)}),{id:"rotate",before:{document:{pages:{[t]:{shapes:n}},pageStates:{[t]:{selectedIds:o}}}},after:{document:{pages:{[t]:{shapes:r}},pageStates:{[t]:{selectedIds:o}}}}}}var Pi=require("telva-core");function Zu(i,o,e){let{currentPageId:t,selectedIds:n}=i,r=o.map(u=>i.getShape(u)),s=r.map(u=>B.getBounds(u)),l=Pi.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:d,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:Pi.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:Pi.TLBoundsCorner.TopLeft,scaleX:1,scaleY:g.height/h.height,initialShape:u,transformOrigin:[.5,.5]})}}},t);return r.forEach(u=>{u.type==="group"&&(delete d[u.id],delete p[u.id])}),{id:"stretch",before:{document:{pages:{[t]:{shapes:d}},pageStates:{[t]:{selectedIds:n}}}},after:{document:{pages:{[t]:{shapes:p}},pageStates:{[t]:{selectedIds:o}}}}}}var Js=require("telva-vec");function qu(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(d=>[d,a.style[d]])))},l[a.id]={style:e},a.type==="text"&&(s[a.id].point=a.point,l[a.id].point=Js.Vec.toFixed(Js.Vec.add(a.point,Js.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 Ju(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 Qs(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 Il=require("telva-vec");function Qu(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:Il.Vec.toFixed(Il.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 eh(i,o,e,t){let{bindings:n}=i,r={},s={},l={},a={},d=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(v=>{p.push(v);let y=i.getShape(v,t);h.push(y)});let m=u.childIndex,T=(B.getChildIndexAbove(i.state,u.id,t)-m)/h.length;h.sort((v,y)=>v.childIndex-y.childIndex).forEach((v,y)=>{r[v.id]={parentId:v.parentId,childIndex:v.childIndex},s[v.id]={parentId:t,childIndex:m+T*y}}),n.filter(v=>v.toId===u.id||v.fromId===u.id).forEach(v=>{for(let y of[v.toId,v.fromId])if(s[y]===void 0){l[v.id]=v,a[v.id]=void 0;let x=i.getShape(y,t);x.handles&&Object.values(x.handles).filter(P=>P.bindingId===v.id).forEach(P=>{var C,E;r[y]=I(S({},r[y]),{handles:I(S({},(C=r[y])==null?void 0:C.handles),{[P.id]:{bindingId:v.id}})}),g.includes(y)||(s[y]=I(S({},s[y]),{handles:I(S({},(E=s[y])==null?void 0:E.handles),{[P.id]:{bindingId:void 0}})}))})}})}),{id:"ungroup",before:{document:{pages:{[t]:{shapes:r,bindings:l}},pageStates:{[t]:{selectedIds:d}}}},after:{document:{pages:{[t]:{shapes:s,bindings:l}},pageStates:{[t]:{selectedIds:p}}}}}}function Pl(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 th(i,o,e){let{currentPageId:t,selectedIds:n}=i,r=o.map(d=>i.getShape(d)).filter(d=>e.isLocked?!0:!d.isLocked),s={},l={},a=Object.keys(e);return r.forEach(d=>{s[d.id]=Object.fromEntries(a.map(p=>[p,d[p]])),l[d.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 Zt=require("telva-core"),qo=require("telva-vec");function nh(i,o,e={}){let{currentPageId:t}=i,{point:n,select:r,overwrite:s}=e,l=i.document.pages[t],a={shapes:{},bindings:{}},d={},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)d[h.id]=h}else{let h={},g=B.getTopChildIndex(i.state,t),m=o.shapes.sort((b,v)=>b.childIndex-v.childIndex).map(b=>{let v=Zt.Utils.uniqueId();return h[b.id]=v,I(S({},Zt.Utils.deepClone(b)),{id:v})}),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 v=p.shapes[b.parentId];if(!v){f.has(b.id)&&(b.parentId="currentPageId"),m.push(b);continue}v.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 v=Zt.Utils.uniqueId();h[b.id]=v;let y=h[b.toId],x=h[b.fromId];if(!y||!x){if(x){let k=p.shapes[x].handles;k&&Object.values(k).forEach(D=>{D.bindingId===b.id&&(D.bindingId=void 0)})}if(y){let k=p.shapes[y].handles;k&&Object.values(k).forEach(D=>{D.bindingId===b.id&&(D.bindingId=void 0)})}return}let P=p.shapes[x].handles;P&&Object.values(P).forEach(k=>{k.bindingId===b.id&&(k.bindingId=v)}),p.shapes[y].handles&&Object.values(p.shapes[y].handles).forEach(k=>{k.bindingId===b.id&&(k.bindingId=v)});let E=I(S({},Zt.Utils.deepClone(b)),{id:v,toId:y,fromId:x});a.bindings[E.id]=void 0,p.bindings[E.id]=E});let T=Object.values(p.shapes);if(T.length>0)if(n){let b=Zt.Utils.getCommonBounds(T.map(y=>B.getBounds(y))),v=Zt.Utils.getBoundsCenter(b);T.forEach(y=>{!y.point||(y.point=qo.Vec.sub(n,qo.Vec.sub(v,y.point)))})}else{let b=Zt.Utils.getCommonBounds(T.map(B.getBounds));if(!(Zt.Utils.boundsContain(i.viewport,b)||Zt.Utils.boundsCollide(i.viewport,b))){let v=qo.Vec.toFixed(i.getPagePoint(i.centerPoint)),y=Zt.Utils.centerBounds(b,v),x=qo.Vec.sub(Zt.Utils.getBoundsCenter(y),Zt.Utils.getBoundsCenter(b));T.forEach(P=>{P.point=qo.Vec.toFixed(qo.Vec.add(P.point,x))})}}if(o.assets)for(let b of o.assets)d[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:d,pageStates:{[t]:{selectedIds:r?Object.keys(p.shapes):[...i.selectedIds]}}}}}}var Mr={};va(Mr,{fileToBase64:()=>Bl,fileToText:()=>Ml,getImageSizeFromSrc:()=>Ll,getVideoSizeFromSrc:()=>Al,loadFileHandle:()=>Rl,migrate:()=>Gn,openAssetsFromFileSystem:()=>El,openFromFileSystem:()=>Dl,saveFileHandle:()=>ea,saveToFileSystem:()=>na,tldrawFileToTVDocument:()=>ih,tvDocumentToTldrawFile:()=>rh});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:d,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"&&d&&d.forEach(u=>{s.shapes[u]||(console.warn("Encountered a parent with a missing child!",l.id,u),d==null||d.splice(d.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,d])=>{typeof d=="string"&&(l.style[a]=d.toLowerCase())}),l.type==="arrow"&&l.decorations&&Object.entries(l.decorations).forEach(([a,d])=>{d==="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,d,p,u,h,g,m,f,T,b,v,y;if(l.type==="arrow"){let x=l;if(!x.handles||!x.handles.start||!x.handles.end||!x.handles.bend){let P=(p=(d=(a=x.handles)==null?void 0:a.start)==null?void 0:d.point)!=null?p:[0,0],C=(g=(h=(u=x.handles)==null?void 0:u.end)==null?void 0:h.point)!=null?g:[100,0],E=(T=(f=(m=x.handles)==null?void 0:m.bend)==null?void 0:f.point)!=null?T:[(P[0]+C[0])/2,(P[1]+C[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:E},(v=x.handles)==null?void 0:v.bend),end:S({id:"end",index:2,point:C,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"),ta=require("idb-keyval");var oh={mode:"readwrite"},yy=i=>F(void 0,null,function*(){return(yield i.queryPermission(oh))==="granted"||(yield i.requestPermission(oh))==="granted"});function Rl(){return F(this,null,function*(){if(typeof Window=="undefined"||!("_location"in Window))return;let i=yield(0,ta.get)(`Telva_file_handle_${window.location.origin}`);return i||null})}function ea(i){return F(this,null,function*(){return(0,ta.set)(`Telva_file_handle_${window.location.origin}`,i)})}var by={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 rh(i){var t,n,s,l,a,d;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 T of Object.keys(m)){let b=m[T],r=b,{point:v,rotation:y,style:x,type:P}=r,C=Le(r,["point","rotation","style","type"]);o.push({x:(s=v==null?void 0:v[0])!=null?s:0,y:(l=v==null?void 0:v[1])!=null?l:0,rotation:y!=null?y:0,isLocked:(a=b.isLocked)!=null?a:!1,opacity:(d=x==null?void 0:x.opacity)!=null?d:1,meta:{},id:`shape:${T}`,parentId:`page:${p}`,type:P,props:S(S({},C),x),index:`a${f+1}`,typeName:"shape"}),f++}e++}return{tldrawFileFormatVersion:1,schema:by,records:o}}function ih(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 T=`page:${h}`;if(f.parentId!==T&&f.parentId!==h)continue;let b=f.id.startsWith("shape:")?f.id.slice(6):f.id,{props:v={},x:y,y:x,rotation:P,type:C}=f,d=v,{opacity:E,start:k,end:D,bend:M,arrowheadStart:L,arrowheadEnd:V}=d,X=Le(d,["opacity","start","end","bend","arrowheadStart","arrowheadEnd"]),se=S({id:b,type:C,point:[y!=null?y:0,x!=null?x:0],rotation:P!=null?P:0,style:S({opacity:E!=null?E:1},X)},X);if(C==="arrow"){let G=(k==null?void 0:k.x)!==void 0?[k.x,k.y]:[0,0],ne=(D==null?void 0:D.x)!==void 0?[D.x,D.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:k!=null&&k.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:D!=null&&D.boundShapeId?D.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 na(i,o,e,t){return F(this,null,function*(){let n=t==="tld"?".tld":Oa,r,s;if(t==="tld"){let u=rh(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 yy(o)))return null;let a=i.name||"New Document",d=!Jo.supported&&(e==null?void 0:e.length)?e:a,p=yield(0,Jo.fileSave)(l,{fileName:`${d}${n}`,description:t==="tld"?"TLDraw File":"Telva File",extensions:[n]},o);return yield ea(p),p})}function Dl(){return F(this,null,function*(){var r,s;let i=yield(0,Jo.fileOpen)({description:"Telva / TLDraw File",extensions:[Oa,".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 ea(l),{fileHandle:l,document:ih(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 ea(n),{fileHandle:n,document:t.document}})}function El(){return F(this,null,function*(){return(0,Jo.fileOpen)({description:"Image or Video",extensions:[...qi,...Ji],multiple:!0})})}function Bl(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 Ml(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 Ll(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 Al(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})}Li(Mr,require("browser-fs-access"));var jn=require("telva-core"),Ie=require("telva-vec");var He=class{constructor(o){this.app=o}};var oa=class extends He{constructor(e,t,n,r=!1){var p,u,h;super(e);c(this,"type","arrow");c(this,"performanceMode");c(this,"status","translatingHandle");c(this,"newStartBindingId",jn.Utils.uniqueId());c(this,"draggedBindingId",jn.Utils.uniqueId());c(this,"didBind",!1);c(this,"initialShape");c(this,"handleId");c(this,"bindableShapeIds");c(this,"initialBinding");c(this,"startBindingShapeId");c(this,"isCreate");c(this,"start",()=>{});c(this,"update",()=>{var C,E,k;let{initialShape:e}=this,{currentPoint:t,shiftKey:n,altKey:r,metaKey:s,currentGrid:l,settings:{showGrid:a}}=this.app,d=this.app.getShape(e.id);if(d.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 D=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(D,L),X=Ie.Vec.rotWith(L,D,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=bn["arrow"],T=(C=f.onHandleChange)==null?void 0:C.call(f,e,m);if(!T)return;let b={shape:jn.Utils.deepMerge(d,T),bindings:{}},v,y=b.shape.handles[this.handleId],x=b.shape.handles[this.handleId==="start"?"end":"start"];if(this.startBindingShapeId){let D,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)),Be=this.app.getBinding(this.newStartBindingId)!==void 0;!s&&!L.hitTestPoint(M,Ie.Vec.add(b.shape.point,se.point))&&(D=this.findBindingPoint(d,M,"start",this.newStartBindingId,V,ne,he,pe)),D&&!Be?(this.didBind=!0,b.bindings[this.newStartBindingId]=D,b.shape=jn.Utils.deepMerge(b.shape,{handles:{start:{bindingId:D.id}}})):!D&&Be&&(this.didBind=!1,b.bindings[this.newStartBindingId]=void 0,b.shape=jn.Utils.deepMerge(e,{handles:{start:{bindingId:void 0}}}))}if(!s){let D=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,D)),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(v=this.findBindingPoint(d,G,this.handleId,this.draggedBindingId,M,D,L,r),v)break}if(v)this.didBind=!0,b.bindings[this.draggedBindingId]=v,b.shape=jn.Utils.deepMerge(b.shape,{handles:{[this.handleId]:{bindingId:this.draggedBindingId}}});else{this.didBind=this.didBind||!1;let D=d.handles[this.handleId].bindingId;D!==void 0&&(b.bindings[D]=void 0,b.shape=jn.Utils.deepMerge(b.shape,{handles:{[this.handleId]:{bindingId:void 0}}}))}let P=(k=(E=B.getShapeUtil(b.shape)).onHandleChange)==null?void 0:k.call(E,b.shape,b.shape.handles);return{document:{pages:{[this.app.currentPageId]:{shapes:{[d.id]:S(S({},b.shape),P!=null?P:{})},bindings:b.bindings}},pageStates:{[this.app.currentPageId]:{bindingId:b.shape.handles[u].bindingId}}}}});c(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}}}}});c(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,d=Ie.Vec.dist(l.handles.start.point,l.handles.end.point);if(!(a||t)&&d<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}}}}}});c(this,"findBindingPoint",(e,t,n,r,s,l,a,d)=>{let u=B.getShapeUtil(t.type).getBindingPoint(t,e,s,l,a,d);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=ht(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:d}=this.app;if(this.isCreate)this.startBindingShapeId=(h=this.bindableShapeIds.map(g=>l.shapes[g]).filter(g=>!g.isLocked&&jn.Utils.pointInBounds(d,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 Vl=require("telva-core");var ra=class extends He{constructor(e){super(e);c(this,"type","brush");c(this,"performanceMode");c(this,"status","brushing");c(this,"initialSelectedIds");c(this,"shapesToTest");c(this,"start",()=>{});c(this,"update",()=>{let{initialSelectedIds:e,shapesToTest:t,app:{metaKey:n,settings:r,originPoint:s,currentPoint:l}}=this,a=Vl.Utils.getBoundsFromPoints([s,l]),d=r.isCadSelectMode?!n&&s[0]<l[0]:n,p=new Set,u=new Set(e);t.forEach(({id:f,selectId:T})=>{let b=this.app.getShape(f);if(!p.has(T)){let v=this.app.getShapeUtil(b);(d?Vl.Utils.boundsContain(a,v.getBounds(b)):v.hitTestBounds(b,a))?(p.add(T),u.has(T)||u.add(T)):u.has(T)&&u.delete(T)}});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:d},document:{pageStates:{[this.app.currentPageId]:{brush:a,selectedIds:m}}}}:{appState:{selectByContain:d},document:{pageStates:{[this.app.currentPageId]:{brush:a}}}}});c(this,"cancel",()=>({appState:{selectByContain:!1},document:{pageStates:{[this.app.currentPageId]:{brush:null,selectedIds:Array.from(this.initialSelectedIds.values())}}}}));c(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 ia=class extends He{constructor(e,t){var d;super(e);c(this,"type","draw");c(this,"performanceMode");c(this,"status","creating");c(this,"topLeft");c(this,"points");c(this,"initialShape");c(this,"lastAdjustedPoint");c(this,"shiftedPoints",[]);c(this,"shapeId");c(this,"isLocked");c(this,"isExtending");c(this,"lockedDirection");c(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]}}}}});c(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 d=Ne.Vec.sub(t,n);Ne.Vec.len(d)>3/s&&(this.lockedDirection=Math.abs(d[0])>Math.abs(d[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]}}}}});c(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:[]}}}}});c(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:[]}}}}}});c(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(d=>Ne.Vec.toFixed(Ne.Vec.sub(d,l)).concat(d[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,(d=n[2])!=null?d:.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 sa=class extends He{constructor(e,t,n){super(e);c(this,"type","edit");c(this,"performanceMode");c(this,"initialShape");c(this,"initialSelectedIds");c(this,"currentPageId");c(this,"isCreating");c(this,"start",()=>{});c(this,"update",()=>{});c(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}}}}));c(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 aa=class extends He{constructor(e){super(e);c(this,"type","draw");c(this,"performanceMode");c(this,"status","creating");c(this,"isLocked");c(this,"lockedDirection");c(this,"erasedShapes",new Set);c(this,"erasedBindings",new Set);c(this,"initialSelectedShapes");c(this,"erasableShapes");c(this,"prevPoint");c(this,"prevEraseShapesSize",0);c(this,"interval");c(this,"timestamp1",0);c(this,"timestamp2",0);c(this,"prevErasePoint",[]);c(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)});c(this,"start",()=>{});c(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 d=Array.from(this.erasedShapes.values());if(this.prevPoint=l,d.length!==this.prevEraseShapesSize)return this.prevEraseShapesSize=d.length,{document:{pages:{[e.id]:{shapes:Object.fromEntries(d.map(p=>[p.id,{isGhost:!0}]))}}}}});c(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:[]}}});c(this,"complete",()=>{let{page:e}=this.app;cancelAnimationFrame(this.interval),this.erasedShapes.forEach(d=>{this.app.getShape(d.id)||(this.erasedShapes.delete(d),this.erasableShapes.delete(d))}),this.erasedBindings.forEach(d=>{this.app.getBinding(d.id)||this.erasedBindings.delete(d)});let t=Array.from(this.erasedShapes.values()),n=Array.from(this.erasedBindings.values()),r=t.map(d=>d.id),s=n.map(d=>d.id),l={shapes:Object.fromEntries(t.map(d=>[d.id,d])),bindings:Object.fromEntries(n.map(d=>[d.id,d]))},a={shapes:Object.fromEntries(t.map(d=>[d.id,void 0])),bindings:Object.fromEntries(n.map(d=>[d.id,void 0]))};return this.app.shapes.forEach(d=>{d.handles&&!a.shapes[d.id]&&Object.values(d.handles).forEach(p=>{var u,h;p.bindingId&&s.includes(p.bindingId)&&(l.shapes[d.id]=I(S({},l.shapes[d.id]),{handles:I(S({},(u=l.shapes[d.id])==null?void 0:u.handles),{[p.id]:p})}),r.includes(d.id)||(a.shapes[d.id]=I(S({},a.shapes[d.id]),{handles:I(S({},(h=a.shapes[d.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(d=>!!this.app.getShape(d.id)).map(d=>d.id)}}},appState:{eraseLine:[]}},after:{document:{pages:{[e.id]:a},pageStates:{[e.id]:{selectedIds:this.initialSelectedShapes.filter(d=>!!this.app.getShape(d.id)).filter(d=>!r.includes(d.id)).map(d=>d.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 Hl=require("telva-core"),zl=require("telva-vec");var la=class extends He{constructor(e,t){var n;super(e);c(this,"type","grid");c(this,"performanceMode");c(this,"status","translating");c(this,"shape");c(this,"bounds");c(this,"initialSelectedIds");c(this,"initialSiblings");c(this,"grid",{});c(this,"columns",1);c(this,"rows",1);c(this,"isCopying",!1);c(this,"start",()=>{});c(this,"update",()=>{let{currentPageId:e,altKey:t,shiftKey:n,currentPoint:r}=this.app,s={},l={},a=Hl.Utils.getBoundsCenter(this.bounds),d=zl.Vec.sub(r,a);n&&(Math.abs(d[0])<Math.abs(d[1])?d[0]=0:d[1]=0);let p=this.bounds.width+32,u=this.bounds.height+32,h=Math.ceil(d[0]/p),g=Math.ceil(d[1]/u),m=Math.min(h,0),f=Math.min(g,0),T=Math.max(h,1),b=Math.max(g,1),v=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<T;x++)for(let P=f;P<b;P++){let C=`${x}_${P}`;if(v.add(C),this.grid[C]||x===0&&P===0)continue;let E=this.getClone(zl.Vec.add(this.shape.point,[x*p,P*u]),y);s[E.id]=E,this.grid[C]=E.id}if(Object.entries(this.grid).forEach(([x,P])=>{v.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}}}});c(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]}}}}});c(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}}}}}});c(this,"getClone",(e,t)=>{let n=I(S({},this.shape),{id:Hl.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 da=require("telva-vec");var ca=class extends He{constructor(e,t,n,r="move_handle"){super(e);c(this,"type","handle");c(this,"performanceMode");c(this,"status","translatingHandle");c(this,"commandId");c(this,"topLeft");c(this,"shiftKey",!1);c(this,"initialShape");c(this,"handleId");c(this,"start",()=>{});c(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=da.Vec.sub(n,s[l].point),d={[l]:I(S({},s[l]),{point:da.Vec.sub(da.Vec.add(s[l].point,a),r.point)})},p=(h=(u=B.getShapeUtil(r)).onHandleChange)==null?void 0:h.call(u,r,d);if(!!p)return{document:{pages:{[t]:{shapes:{[r.id]:p}}}}}});c(this,"cancel",()=>{let{initialShape:e,app:{currentPageId:t}}=this;return{document:{pages:{[t]:{shapes:{[e.id]:e}}}}}});c(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 Ri=require("telva-core"),Fl=require("telva-vec");var pa=class extends He{constructor(e){super(e);c(this,"type","rotate");c(this,"status","transforming");c(this,"performanceMode");c(this,"delta",[0,0]);c(this,"commonBoundsCenter");c(this,"initialAngle");c(this,"initialShapes");c(this,"changes",{});c(this,"start",()=>{});c(this,"update",()=>{let{commonBoundsCenter:e,initialShapes:t,app:{currentPageId:n,currentPoint:r,shiftKey:s}}=this,l={},a=Fl.Vec.angle(e,r)-this.initialAngle;return s&&(a=Ri.Utils.snapAngleToSegments(a,24)),t.forEach(({center:d,shape:p})=>{let{rotation:u=0}=p,h=0;s&&(h=Ri.Utils.snapAngleToSegments(u,24)-u);let g=B.getRotatedShapeMutation(p,d,e,s?a+h:a);g&&(l[p.id]=g)}),this.changes=l,{document:{pages:{[n]:{shapes:l}}}}});c(this,"cancel",()=>{let{initialShapes:e,app:{currentPageId:t}}=this,n={};return e.forEach(({shape:r})=>n[r.id]=r),{document:{pages:{[t]:{shapes:n}}}}});c(this,"complete",()=>{let{initialShapes:e,app:{currentPageId:t}}=this,n={},r=this.changes;return e.forEach(({shape:{id:s,point:l,rotation:a,handles:d}})=>{n[s]={point:l,rotation:a,handles:d}}),{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=Ri.Utils.getBoundsCenter(Ri.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=Fl.Vec.angle(this.commonBoundsCenter,r)}};var ot=require("telva-core"),er=require("telva-vec");var ua=class extends He{constructor(e,t=ot.TLBoundsCorner.BottomRight,n=!1){super(e);this.transformType=t;this.isCreate=n;c(this,"type","transform");c(this,"performanceMode");c(this,"status","transforming");c(this,"scaleX",1);c(this,"scaleY",1);c(this,"initialShapes");c(this,"initialShapeIds");c(this,"initialSelectedIds");c(this,"shapeBounds");c(this,"hasUnlockedShapes");c(this,"isAllAspectRatioLocked");c(this,"initialCommonBounds");c(this,"snapInfo",{state:"empty"});c(this,"prevPoint",[0,0]);c(this,"speed",1);c(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)))}});c(this,"update",()=>{let{transformType:e,shapeBounds:t,initialCommonBounds:n,isAllAspectRatioLocked:r,app:{currentPageId:s,pageState:{camera:l},viewport:a,currentPoint:d,previousPoint:p,originPoint:u,shiftKey:h,altKey:g,metaKey:m,currentGrid:f,settings:{isSnapping:T,showGrid:b}}}=this,v={},y=g?er.Vec.mul(er.Vec.sub(d,u),2):er.Vec.sub(d,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 C=er.Vec.dist(d,p)-this.speed;this.speed=this.speed+C*(C>1?.5:.15);let E=[];if((T&&!m||!T&&m)&&this.speed*l.zoom<10&&this.snapInfo.state==="ready"){let k=ot.Utils.getSnapPoints(ot.Utils.getBoundsWithCenter(x),this.snapInfo.bounds.filter(D=>ot.Utils.boundsContain(a,D)||ot.Utils.boundsCollide(a,D)),5/l.zoom);k&&(E=k.snapLines,x=ot.Utils.getTransformedBoundingBox(n,e,er.Vec.sub(y,k.offset),0,h||r))}return this.scaleX=x.scaleX,this.scaleY=x.scaleY,t.forEach(({initialShape:k,initialShapeBounds:D,transformOrigin:M})=>{let L=ot.Utils.getRelativeTransformedBoundingBox(x,n,D,this.scaleX<0,this.scaleY<0);b&&(L=ot.Utils.snapBoundsToGrid(L,f));let V=B.transform(this.app.getShape(k.id),L,{type:this.transformType,initialShape:k,scaleX:this.scaleX,scaleY:this.scaleY,transformOrigin:M});v[k.id]=V}),{appState:{snapLines:E},document:{pages:{[s]:{shapes:v}}}}});c(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)}}}}});c(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,d;return e?(a=[],d=[],t.forEach(({initialShape:p})=>{s[p.id]=void 0,l[p.id]=this.app.getShape(p.id)})):(a=this.initialSelectedIds,d=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:d,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 d=r[a.id],p=ot.Utils.getBoundsCenter(d),u=(p[0]-l.minX)/l.width,h=(p[1]-l.minY)/l.height;return{initialShape:a,initialShapeBounds:d,transformOrigin:[u,h]}})}};var Cn=require("telva-core"),Ro=require("telva-vec");var ha=class extends He{constructor(e,t,n,r=!1){super(e);c(this,"type","transformSingle");c(this,"status","transforming");c(this,"performanceMode");c(this,"transformType");c(this,"scaleX",1);c(this,"scaleY",1);c(this,"isCreate");c(this,"initialShape");c(this,"initialShapeBounds");c(this,"initialCommonBounds");c(this,"snapInfo",{state:"empty"});c(this,"prevPoint",[0,0]);c(this,"speed",1);c(this,"start",()=>{this.snapInfo={state:"ready",bounds:this.app.shapes.filter(e=>e.id!==this.initialShape.id).map(e=>Cn.Utils.getBoundsWithCenter(B.getRotatedBounds(e)))}});c(this,"update",()=>{let{transformType:e,initialShape:t,initialShapeBounds:n,app:{settings:{isSnapping:r,showGrid:s},currentPageId:l,pageState:{camera:a},viewport:d,currentPoint:p,previousPoint:u,originPoint:h,currentGrid:g,shiftKey:m,altKey:f,metaKey:T}}=this;if(t.isLocked)return;let b={},v=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=Cn.Utils.getTransformedBoundingBox(n,e,v,y.rotation,m||y.isAspectRatioLocked||x.isAspectRatioLocked);f&&(P=S(S({},P),Cn.Utils.centerBounds(P,Cn.Utils.getBoundsCenter(n)))),s&&(P=S(S({},P),Cn.Utils.snapBoundsToGrid(P,g)));let E=Ro.Vec.dist(p,u)-this.speed;this.speed=this.speed+E*(E>1?.5:.15);let k=[];if((r&&!T||!r&&T)&&!t.rotation&&this.speed*a.zoom<10&&this.snapInfo.state==="ready"){let M=Cn.Utils.getSnapPoints(Cn.Utils.getBoundsWithCenter(P),this.snapInfo.bounds.filter(L=>Cn.Utils.boundsContain(d,L)||Cn.Utils.boundsCollide(d,L)),5/a.zoom);M&&(k=M.snapLines,P=Cn.Utils.getTransformedBoundingBox(n,e,Ro.Vec.sub(v,M.offset),y.rotation,m||y.isAspectRatioLocked||x.isAspectRatioLocked))}let D=B.getShapeUtil(y).transformSingle(y,P,{initialShape:t,type:this.transformType,scaleX:P.scaleX,scaleY:P.scaleY,transformOrigin:[.5,.5]});return D&&(b[y.id]=D),s&&D&&D.point&&(D.point=Ro.Vec.snap(D.point,g)),{appState:{snapLines:k},document:{pages:{[l]:{shapes:b}}}}});c(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]}}}}});c(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 Wt=require("telva-core"),ze=require("telva-vec");var ma=class extends He{constructor(e,t=!1,n=!1){super(e);c(this,"performanceMode");c(this,"type","translate");c(this,"status","translating");c(this,"delta",[0,0]);c(this,"prev",[0,0]);c(this,"prevPoint",[0,0]);c(this,"speed",1);c(this,"cloneInfo",{state:"empty"});c(this,"snapInfo",{state:"empty"});c(this,"snapLines",[]);c(this,"isCloning",!1);c(this,"isCreate");c(this,"link");c(this,"initialIds");c(this,"hasUnlockedShapes");c(this,"initialSelectedIds");c(this,"initialCommonBounds");c(this,"initialShapes");c(this,"initialParentChildren");c(this,"bindingsToDelete");c(this,"start",()=>{let{bindingsToDelete:e,initialIds:t,app:{currentPageId:n,page:r}}=this,s=[],l=[];if(Object.values(r.shapes).forEach(p=>{let u=Wt.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={},d={};return e.forEach(p=>{a[p.id]=void 0;let u=this.app.getShape(p.fromId);d[p.fromId]={handles:I(S({},u.handles),{[p.handleId]:I(S({},u.handles[p.handleId]),{bindingId:void 0})})}}),{document:{pages:{[n]:{bindings:a,shapes:d}}}}});c(this,"update",()=>{let{initialParentChildren:e,initialShapes:t,initialCommonBounds:n,bindingsToDelete:r,app:{pageState:{camera:s},settings:{isSnapping:l,showGrid:a},currentPageId:d,viewport:p,selectedIds:u,currentPoint:h,previousPoint:g,originPoint:m,altKey:f,shiftKey:T,metaKey:b,currentGrid:v}}=this,y={},x={},P={},C=ze.Vec.sub(h,m),E=!1;this.isCreate||(f&&!this.isCloning?(this.isCloning=!0,E=!0):!f&&this.isCloning&&(this.isCloning=!1,E=!0)),T&&(Math.abs(C[0])<Math.abs(C[1])?C[0]=0:C[1]=0);let D=ze.Vec.dist(h,g)-this.speed;if(this.speed=this.speed+D*(D>1?.5:.15),this.snapLines=[],(l&&!b||!l&&b)&&this.speed*s.zoom<10&&this.snapInfo.state==="ready"){let M=Wt.Utils.getSnapPoints(Wt.Utils.getBoundsWithCenter(a?Wt.Utils.snapBoundsToGrid(Wt.Utils.translateBounds(n,C),v):Wt.Utils.translateBounds(n,C)),(this.isCloning?this.snapInfo.bounds:this.snapInfo.others).filter(L=>Wt.Utils.boundsContain(p,L)||Wt.Utils.boundsCollide(p,L)),5/s.zoom);M&&(this.snapLines=M.snapLines,C=ze.Vec.sub(C,M.offset))}if(this.prev=C,this.isCloning)if(E){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!==d&&!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,C)),v):ze.Vec.toFixed(ze.Vec.add(V.point,C))})})}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,C)),v):ze.Vec.toFixed(ze.Vec.add(L.point,C))}})}else if(E){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!==d&&(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,C)),v):ze.Vec.toFixed(ze.Vec.add(V.point,C))}});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,C)),v):ze.Vec.toFixed(ze.Vec.add(M.point,C))}});return{appState:{snapLines:this.snapLines},document:{pages:{[d]:{shapes:x,bindings:y}},pageStates:{[d]:P}}}});c(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:d})=>l[d]=void 0),a.selectedIds=[]):(e.forEach(({id:d,point:p,handles:u})=>l[d]=u?I(S({},l[d]),{point:p,handles:u}):I(S({},l[d]),{point:p})),a.selectedIds=t,n.forEach(d=>{s[d.id]=d})),this.cloneInfo.state==="ready"){let{clones:d,clonedBindings:p}=this.cloneInfo;d.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}}}});c(this,"complete",()=>{let{initialShapes:e,initialParentChildren:t,bindingsToDelete:n,app:{currentPageId:r}}=this,s={},l={},a={},d={};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,d[h.id]=this.app.getShape(h.id),h.parentId!==r&&(l[h.parentId]=I(S({},l[h.parentId]),{children:t[h.parentId]}),d[h.parentId]=I(S({},d[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}),d[p.id]=S(S({},d[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})})}),d[p.fromId]=I(S({},d[p.fromId]),{id:p.fromId,handles:I(S({},d[p.fromId].handles),{[p.handleId]:I(S({},(f=(m=d[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:d,bindings:a}},pageStates:{[r]:{selectedIds:[...this.app.selectedIds]}}}}}});c(this,"createCloneInfo",()=>{let{initialShapes:e,initialParentChildren:t,app:{selectedIds:n,currentPageId:r,page:s}}=this,l={},a={},d=[],p=[];e.forEach(h=>{let g=Wt.Utils.uniqueId();t[g]=t[h.id],l[h.id]=g;let m=I(S({},Wt.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=Wt.Utils.uniqueId(),m=I(S({},Wt.Utils.deepClone(h)),{id:g,fromId:l[h.fromId]||h.fromId,toId:l[h.toId]||h.toId});a[h.id]=g,d.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:d}});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),d=new Set(a.map(p=>p.id));this.hasUnlockedShapes=a.length>0,this.initialShapes=Array.from(new Set(a.filter(p=>!d.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=Wt.Utils.getCommonBounds(this.initialShapes.map(B.getRotatedBounds)),this.app.rotationInfo.selectedIds=[...this.app.selectedIds]}};var vy={["arrow"]:oa,["brush"]:ra,["draw"]:ia,["erase"]:aa,["handle"]:ca,["rotate"]:pa,["transform"]:ua,["transformSingle"]:ha,["translate"]:ma,["grid"]:la,["edit"]:sa},sh=i=>vy[i];var lh=require("telva-core"),dh=H(require("telva-vec"));var ah=require("telva-core");var Fe=class extends Jr{constructor(e){super();this.app=e;c(this,"type","select");c(this,"previous");c(this,"status","idle");c(this,"setStatus",e=>{this.status=e,this.app.setStatus(this.status)});c(this,"onEnter",()=>{this.setStatus("idle")});c(this,"onExit",()=>{this.setStatus("idle")});c(this,"onCancel",()=>{this.status==="idle"?this.app.selectTool("select"):this.setStatus("idle"),this.app.cancelSession()});c(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});c(this,"onPinchStart",()=>{this.app.cancelSession(),this.setStatus("pinching")});c(this,"onPinchEnd",()=>{ah.Utils.isMobileSafari()&&this.app.undoSelect(),this.setStatus("idle")});c(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)))});c(this,"onKeyDown",e=>{if(e==="Escape"){this.onCancel();return}if(e==="Meta"||e==="Control"||e==="Alt"){this.app.updateSession();return}});c(this,"onKeyUp",e=>{if(e==="Meta"||e==="Control"||e==="Alt"){this.app.updateSession();return}});c(this,"onPointerMove",()=>{this.status==="creating"&&this.app.updateSession()});c(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);c(this,"type","arrow");c(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=lh.Utils.uniqueId(),d=xr.create({id:a,parentId:r,childIndex:l,point:n?dh.default.snap(e,t):e,style:S({},s)});this.app.patchCreate([d]),this.app.startSession("arrow",d.id,"end",!0),this.setStatus("creating")})}};var ch=require("telva-core");var Vr=class extends Fe{constructor(){super(...arguments);c(this,"type","draw");c(this,"lastShapeId");c(this,"onEnter",()=>{this.lastShapeId=void 0});c(this,"onCancel",()=>{switch(this.status){case"idle":{this.app.selectTool("select");break}default:{this.setStatus("idle");break}}this.app.cancelSession()});c(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=ch.Utils.uniqueId(),d=Vs.create({id:a,parentId:n,childIndex:l,point:t,style:S({},r)});this.lastShapeId=a,this.app.patchCreate([d]),this.app.startSession("draw",a),this.setStatus("creating")}});c(this,"onPointerMove",()=>{if(!this.app.readOnly)switch(this.status){case"extending":case"creating":this.app.updateSession()}});c(this,"onPointerUp",()=>{this.app.completeSession(),this.setStatus("idle")})}};var ga=require("telva-core"),ph=H(require("telva-vec"));var Hr=class extends Fe{constructor(){super(...arguments);c(this,"type","ellipse");c(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=ga.Utils.uniqueId(),d=As.create({id:a,parentId:r,childIndex:l,point:n?ph.default.snap(e,t):e,style:S({},s)});this.app.patchCreate([d]),this.app.startSession("transformSingle",d.id,ga.TLBoundsCorner.BottomRight,!0),this.setStatus("creating")})}};var uh=H(require("telva-vec"));var zr=class extends Fe{constructor(){super(...arguments);c(this,"type","erase");c(this,"status","idle");c(this,"onPointerDown",()=>{this.app.readOnly||this.status==="idle"&&this.setStatus("pointing")});c(this,"onPointerMove",e=>{if(!this.app.readOnly)switch(this.status){case"pointing":{uh.default.dist(e.origin,e.point)>3&&(this.app.startSession("erase"),this.app.updateSession(),this.setStatus("erasing"));break}case"erasing":this.app.updateSession()}});c(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")}});c(this,"onCancel",()=>{this.status==="idle"?this.previous?this.app.selectTool(this.previous):this.app.selectTool("select"):this.setStatus("idle"),this.app.cancelSession()})}};var hh=require("telva-core"),mh=H(require("telva-vec"));var Fr=class extends Fe{constructor(){super(...arguments);c(this,"type","line");c(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=hh.Utils.uniqueId(),d=xr.create({id:a,parentId:r,childIndex:l,point:n?mh.default.snap(e,t):e,decorations:{start:void 0,end:void 0},style:S({},s)});this.app.patchCreate([d]),this.app.startSession("arrow",d.id,"end",!0),this.setStatus("creating")})}};var gh=require("telva-core"),wn=H(require("telva-vec"));var Ty=4,Or=class extends Fe{constructor(){super(...arguments);c(this,"type","pen");c(this,"currentShapeId");c(this,"downPoint");c(this,"currentSegmentIdx",0);c(this,"onEnter",()=>{this.currentShapeId=void 0,this.setStatus("idle")});c(this,"onExit",()=>{this.currentShapeId&&this.finishShape(),this.currentShapeId=void 0,this.setStatus("idle")});c(this,"onCancel",()=>{this.currentShapeId&&(this.app.delete([this.currentShapeId]),this.currentShapeId=void 0),this.setStatus("idle")});c(this,"onPointerDown",e=>{if(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}=Ja(r.segments);this.app.updateShapes({id:r.id,point:wn.default.add(r.point,l),segments:s,isClosed:!0,isComplete:!0}),this.app.select(r.id),this.currentShapeId=void 0,this.setStatus("idle");return}}let n=this.toLocal(t);this.addSegment(n),this.setStatus("placing")}});c(this,"onPointerMove",e=>{if(!e.spaceKey&&this.status==="placing"&&this.downPoint){let t=this.app.getPagePoint(e.point);if(wn.default.dist(t,this.downPoint)>Ty){let r=this.getShape();if(!r||r.segments.length===0)return;let s=r.segments[r.segments.length-1].point,l=wn.default.sub(this.downPoint,r.point),a=wn.default.sub(wn.default.sub(t,r.point),l),d=wn.default.add(s,a),p=ci(s,d);this.updateLastSegmentHandles(p,d)}}});c(this,"onPointerUp",e=>{this.status==="placing"&&this.setStatus("drawing")});c(this,"onDoubleClickCanvas",()=>{if(this.currentShapeId){let e=this.getShape();if(e&&e.segments.length>1){let t=e.segments.slice(0,-1);this.app.patchState({document:{pages:{[this.app.currentPageId]:{shapes:{[e.id]:{segments:t}}}}}})}this.finishShape(),this.setStatus("idle")}});c(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:[]}startNewShape(e){let{appState:{currentPageId:t,currentStyle:n}}=this.app,r=gh.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};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.app.patchState({document:{pages:{[this.app.currentPageId]:{shapes:{[r.id]:{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!=null?e:s.cp1,cp2:t!=null?t:s.cp2}),this.app.patchState({document:{pages:{[this.app.currentPageId]:{shapes:{[n.id]:{segments:r}}}}}})}commitHandles(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!==void 0?e:s.cp1,cp2:t!==void 0?t:s.cp2}),this.app.patchState({document:{pages:{[this.app.currentPageId]:{shapes:{[n.id]:{segments:r}}}}}})}toLocal(e){let t=this.getShape();return t?wn.default.sub(e,t.point):e}isNearFirstNode(e){var r;let t=this.getShape();if(!t||t.segments.length<2)return!1;let n=wn.default.add(t.point,t.segments[0].point);return wn.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}=Ja(t.segments),s=wn.default.add(t.point,r);this.app.updateShapes({id:e,point:s,segments:n,isComplete:!0}),this.app.select(e),this.currentShapeId=void 0}};var fa=require("telva-core"),fh=H(require("telva-vec"));var $r=class extends Fe{constructor(){super(...arguments);c(this,"type","rectangle");c(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=fa.Utils.uniqueId(),d=Ms.create({id:a,parentId:r,childIndex:l,point:n?fh.default.snap(e,t):e,style:S({},s)});this.app.patchCreate([d]),this.app.startSession("transformSingle",d.id,fa.TLBoundsCorner.BottomRight,!0),this.setStatus("creating")})}};var Gr=require("telva-core"),Wn=H(require("telva-vec"));var jr=class extends Fe{constructor(){super(...arguments);c(this,"type","select");c(this,"pointedId");c(this,"selectedGroupId");c(this,"pointedHandleId");c(this,"pointedBoundsHandle");c(this,"pointedLinkHandleId");c(this,"onEnter",()=>{this.setStatus("idle")});c(this,"onExit",()=>{this.setStatus("idle")});c(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)});c(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 d=Gr.Utils.uniqueId(),p=I(S({},n),{id:d,point:a});return p.type==="sticky"&&(p.text=""),p}});c(this,"onCancel",()=>{this.app.session?this.app.cancelSession():this.selectNone(),this.setStatus("idle")});c(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())}}});c(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}});c(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}}});c(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")}});c(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()});c(this,"onDoubleClickCanvas",()=>{this.app.readOnly});c(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))}});c(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)});c(this,"onRightPointShape",e=>{this.app.isSelected(e.target)||this.app.select(e.target)});c(this,"onHoverShape",e=>{this.app.setHoveredId(e.target)});c(this,"onUnhoverShape",e=>{let{currentPageId:t}=this.app;requestAnimationFrame(()=>{t===this.app.currentPageId&&this.app.pageState.hoveredId===e.target&&this.app.setHoveredId(void 0)})});c(this,"onPointBounds",e=>{if(e.metaKey){e.shiftKey||this.selectNone(),this.app.startSession("brush"),this.setStatus("brushing");return}this.setStatus("pointingBounds")});c(this,"onRightPointBounds",(e,t)=>{t.stopPropagation()});c(this,"onReleaseBounds",()=>{(this.status==="translating"||this.status==="brushing")&&this.app.completeSession(),this.setStatus("idle")});c(this,"onPointBoundsHandle",e=>{this.pointedBoundsHandle=e.target,this.setStatus("pointingBoundsHandle")});c(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)}}});c(this,"onReleaseBoundsHandle",()=>{this.setStatus("idle")});c(this,"onPointHandle",e=>{this.pointedHandleId=e.target,this.setStatus("pointingHandle")});c(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)});c(this,"onReleaseHandle",()=>{this.setStatus("idle")});c(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 Sh=require("telva-core"),Ol=H(require("telva-vec"));var Wr=class extends Fe{constructor(){super(...arguments);c(this,"type","sticky");c(this,"shapeId");c(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=Sh.Utils.uniqueId();this.shapeId=a;let d=hi.create({id:a,parentId:r,childIndex:l,point:n?Ol.default.snap(e,t):e,style:S({},s)}),p=hi.getBounds(d);d.point=Ol.default.sub(d.point,[p.width/2,p.height/2]),this.app.patchCreate([d]),this.app.startSession("translate"),this.setStatus("creating")}}});c(this,"onPointerUp",()=>{this.app.readOnly||this.status==="creating"&&(this.setStatus("idle"),this.app.completeSession(),this.app.selectTool("select"),this.app.setEditingId(this.shapeId))})}};var yh=H(require("telva-vec"));var Nr=class extends Fe{constructor(){super(...arguments);c(this,"type","text");c(this,"stopEditingShape",()=>{this.setStatus("idle"),this.app.appState.isToolLocked||this.app.selectTool("select")});c(this,"onKeyUp",()=>{});c(this,"onKeyDown",()=>{});c(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?yh.default.snap(e,t):e,void 0,!0),this.setStatus("creating");return}});c(this,"onPointerUp",()=>{});c(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))});c(this,"onShapeBlur",()=>{this.app.readOnly||this.stopEditingShape()})}};var Sa=require("telva-core"),bh=H(require("telva-vec"));var Ur=class extends Fe{constructor(){super(...arguments);c(this,"type","triangle");c(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=Sa.Utils.uniqueId(),d=Ls.create({id:a,parentId:r,childIndex:l,point:n?bh.default.snap(e,t):e,style:S({},s)});this.app.patchCreate([d]),this.app.startSession("transformSingle",d.id,Sa.TLBoundsCorner.BottomRight,!0),this.setStatus("creating")})}};var $l=pt.Utils.uniqueId(),Qe=class extends Zs{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));c(this,"callbacks",{});c(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)});c(this,"currentTool",this.tools.select);c(this,"session");c(this,"readOnly",!1);c(this,"isDirty",!1);c(this,"isCreating",!1);c(this,"originPoint",[0,0]);c(this,"currentPoint",[0,0]);c(this,"previousPoint",[0,0]);c(this,"shiftKey",!1);c(this,"altKey",!1);c(this,"metaKey",!1);c(this,"ctrlKey",!1);c(this,"spaceKey",!1);c(this,"isPointing",!1);c(this,"isForcePanning",!1);c(this,"isErasingWithPen",!1);c(this,"isPastePrevented",!1);c(this,"editingStartTime",-1);c(this,"fileSystemHandle",null);c(this,"viewport",pt.Utils.getBoundsFromPoints([[0,0],[100,100]]));c(this,"rendererBounds",pt.Utils.getBoundsFromPoints([[0,0],[100,100]]));c(this,"selectHistory",{stack:[[]],pointer:0});c(this,"clipboard");c(this,"rotationInfo",{selectedIds:[],center:[0,0]});c(this,"migrate",e=>Gn(e,Qe.version));c(this,"onReady",()=>{var e,t;this.loadDocument(this.document),Rl().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)});c(this,"cleanup",(e,t)=>{var l;let n=S({},e);n.document!==t.document&&Object.entries(n.document.pages).forEach(([a,d])=>{if(d===void 0){delete n.document.pages[a],delete n.document.pageStates[a];return}let p=t.document.pages[a],u={};if(!p||d.shapes!==p.shapes||d.bindings!==p.bindings){d.shapes=S({},d.shapes),d.bindings=S({},d.bindings);let g=new Set;Object.entries(d.shapes).forEach(([T,b])=>{var y;let v;b?v=b.parentId:(v=(y=p==null?void 0:p.shapes[T])==null?void 0:y.parentId,delete d.shapes[T]),d.id===n.appState.currentPageId&&(p==null?void 0:p.shapes[T])!==b&&(u[T]=b),v&&v!==a&&d.shapes[v]!==void 0&&g.add(d.shapes[v])}),Object.keys(d.bindings).forEach(T=>{d.bindings[T]||delete d.bindings[T]}),n.document.pages[a]=d;let m=B.getRelatedBindings(n,Object.keys(u),a),f=new Set;m.forEach(T=>{if(!d.bindings[T.id])return;let b=d.shapes[T.toId],v=d.shapes[T.fromId];if(!(b&&v)){delete n.document.pages[a].bindings[T.id];return}if(f.has(v))return;let y=B.updateArrowBindings(d,v);if(f.add(v),y){let x=S(S({},v),y);d.shapes[v.id]=x}}),g.forEach(T=>{if(!T)throw Error("no group!");let b=T.children.filter(y=>d.shapes[y]!==void 0),v=pt.Utils.getCommonBounds(b.map(y=>d.shapes[y]).filter(Boolean).map(y=>B.getRotatedBounds(y)));d.shapes[T.id]=I(S({},T),{point:[v.minX,v.minY],size:[v.width,v.height],children:b})})}let h=S({},n.document.pageStates[a]);h.brush||delete h.brush,h.hoveredId&&!d.shapes[h.hoveredId]&&delete h.hoveredId,h.bindingId&&!d.bindings[h.bindingId]&&(B.warn(`Could not find the binding of ${a}`),delete h.bindingId),h.editingId&&!d.shapes[h.editingId]&&(B.warn("Could not find the editing shape!"),delete h.editingId),n.document.pageStates[a]=h}),Object.keys((l=n.document.assets)!=null?l:{}).forEach(a=>{var d,p;(d=n.document.assets)!=null&&d[a]||(p=n.document.assets)==null||delete p[a]});let r=n.appState.currentPageId,s=n.document.pageStates[r];if(n.room&&n.room!==t.room){let a=I(S({},n.room),{users:S({},n.room.users)});t.room&&Object.values(t.room.users).filter(Boolean).forEach(d=>{a.users[d.id]===void 0&&delete a.users[d.id]}),n.room=a}return n.room&&(n.room.users[n.room.userId]=I(S({},n.room.users[n.room.userId]),{point:this.currentPoint,selectedIds:s.selectedIds})),this.readOnly&&(n.document.pages=t.document.pages),n});c(this,"broadcastPatch",(e,t)=>{var p,u,h,g,m,f,T,b,v;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,d=(T=e==null?void 0:e.document)==null?void 0:T.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)}),d&&Object.keys(d).forEach(y=>{s[y]=this.document.assets[y]}),(v=(b=this.callbacks).onChangePage)==null||v.call(b,this,n,r,s,t)});c(this,"onPatch",(e,t,n)=>{var r,s,l,a,d,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=(d=this.callbacks).onPatch)==null||p.call(d,this,t,n)});c(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)});c(this,"onReplace",()=>{this.clearSelectHistory(),this.isDirty=!1});c(this,"onUndo",()=>{var e,t;this.rotationInfo.selectedIds=[...this.selectedIds],(t=(e=this.callbacks).onUndo)==null||t.call(e,this)});c(this,"onRedo",()=>{var e,t;this.rotationInfo.selectedIds=[...this.selectedIds],(t=(e=this.callbacks).onRedo)==null||t.call(e,this)});c(this,"onPersist",(e,t)=>{var n,r;(r=(n=this.callbacks).onPersist)==null||r.call(n,this),this.broadcastPatch(t,!0)});c(this,"prevSelectedIds",this.selectedIds);c(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)});c(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});c(this,"justSent",!1);c(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])),d=new Map(l.map(m=>[m.fromId,m])),p=[a,d],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(T=>T.get(f.id)).filter(Boolean).forEach(T=>{s[T.id]=T,u.push(T.toId,T.fromId)})}return{reservedShapes:r,reservedBindings:s,strongReservedShapeIds:h}});c(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:d,bindingId:p,selectedIds:u}=l.document.pageStates[r],h=[...u],g=d&&l.document.pages[this.currentPageId].shapes[d];g&&h.push(g.id);let{reservedShapes:m,reservedBindings:f,strongReservedShapeIds:T}=this.getReservedContent(h,this.currentPageId);Object.values(m).filter(k=>!("text"in k)).forEach(k=>{let D=e[k.id];if(!!D){if(!(k.type==="arrow"||T.has(k.id))){e[k.id]=D;return}"decorations"in D&&"decorations"in k&&(e[k.id]=I(S({},k),{decorations:D.decorations})),k.style=D.style}});let b=S(S({},e),m);g&&(b[g.id]=g);let v=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:v})},assets:y,pageStates:I(S({},l.document.pageStates),{[r]:I(S({},l.document.pageStates[r]),{selectedIds:u.filter(k=>b[k]!==void 0),hoveredId:a?b[a]===void 0?void 0:a:void 0,editingId:d,bindingId:p?v[p]===void 0?void 0:p:void 0})})})}),P=x.document.pages[r],C=B.getRelatedBindings(x,Object.keys(b),r),E=new Set;return C.forEach(k=>{if(!P.bindings[k.id])return;let D=P.shapes[k.fromId];if(E.has(D))return;let M=B.updateArrowBindings(P,D);if(E.add(D),M){let L=S(S({},D),M);P.shapes[D.id]=L}}),Object.values(b).forEach(k=>{if(k.type!=="group")return;let D=k.children.filter(L=>P.shapes[L]!==void 0),M=pt.Utils.getCommonBounds(D.map(L=>P.shapes[L]).filter(Boolean).map(L=>B.getRotatedBounds(L)));P.shapes[k.id]=I(S({},k),{point:[M.minX,M.minY],size:[M.width,M.height],children:D})}),this.state.document=x.document,x},!0),this});c(this,"updateBounds",e=>{this.rendererBounds=e;let{point:t,zoom:n}=this.camera;this.updateViewport(t,n),!this.readOnly&&this.session&&this.session.update()});c(this,"updateViewport",(e,t)=>{let{width:n,height:r}=this.rendererBounds,[s,l]=ie.Vec.sub(ie.Vec.div([0,0],t),e),[a,d]=ie.Vec.sub(ie.Vec.div([n,r],t),e);this.viewport={minX:s,minY:l,maxX:a,maxY:d,width:a-s,height:d-l}});c(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")}});c(this,"setHoveredId",e=>{this.patchState({document:{pageStates:{[this.currentPageId]:{hoveredId:e}}}},"set_hovered_id")});c(this,"setNodeEditingId",e=>{this.patchState({appState:{nodeEditingId:e}},"set_node_editing_id")});c(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});c(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});c(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});c(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});c(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});c(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});c(this,"setMenuOpen",e=>{let t={appState:{isMenuOpen:e}};return this.patchState(t,"ui:toggled_menu_opened"),this.persist(t),this});c(this,"setIsLoading",e=>{let t={appState:{isLoading:e}};return this.patchState(t,"ui:toggled_is_loading"),this.persist(t),this});c(this,"setDisableAssets",e=>(this.patchState({appState:{disableAssets:e}},"ui:toggled_disable_images"),this));c(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});c(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});c(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}`))});c(this,"toggleToolLock",()=>this.session?this:this.patchState({appState:{isToolLocked:!this.appState.isToolLocked}},"toggled_tool_lock"));c(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});c(this,"updateUsers",(e,t=!1)=>{this.patchState({room:{users:Object.fromEntries(e.map(n=>[n.id,n]))}},t?"room:self:update":"room:user:update")});c(this,"removeUser",e=>{this.patchState({room:{users:{[e]:void 0}}})});c(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")});c(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],d=["bindingId","editingId","hoveredId","pointedId"];for(let p of d)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}`)});c(this,"loadRoom",e=>(this.patchState({room:{id:e,userId:$l,users:{[$l]:{id:$l,color:$a[Math.floor(Math.random()*$a.length)],point:[100,100],selectedIds:[],activeShapes:[]}}}}),this));c(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});c(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({})});c(this,"newProject",()=>{!this.isLocal||(this.fileSystemHandle=null,this.resetDocument())});c(this,"saveProject",()=>F(this,null,function*(){if(this.readOnly)return;let e=yield na(Gn(this.state,Qe.version).document,this.fileSystemHandle);return this.fileSystemHandle=e,this.persist({}),this.isDirty=!1,this}));c(this,"saveProjectAs",(e,t)=>F(this,null,function*(){try{let n=yield na(this.document,null,e,t);this.fileSystemHandle=n,this.persist({}),this.isDirty=!1}catch(n){console.error(n.message)}return this}));c(this,"openProject",()=>F(this,null,function*(){if(!!this.isLocal)try{let e=yield Dl();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({})}}));c(this,"openAsset",()=>F(this,null,function*(){if(!this.disableAssets)try{let e=yield El();if(Array.isArray(e))this.addMediaFromFiles(e,this.centerPoint);else{if(!e)return;this.addMediaFromFiles([e])}}catch(e){console.error(e)}finally{this.persist({})}}));c(this,"signOut",()=>{});c(this,"getAppState",()=>this.appState);c(this,"getPage",(e=this.currentPageId)=>B.getPage(this.state,e||this.currentPageId));c(this,"getShapes",(e=this.currentPageId)=>B.getShapes(this.state,e||this.currentPageId));c(this,"getBindings",(e=this.currentPageId)=>B.getBindings(this.state,e||this.currentPageId));c(this,"getShape",(e,t=this.currentPageId)=>B.getShape(this.state,e,t));c(this,"getShapeBounds",(e,t=this.currentPageId)=>B.getBounds(this.getShape(e,t)));c(this,"getBinding",(e,t=this.currentPageId)=>B.getBinding(this.state,e,t));c(this,"getPageState",(e=this.currentPageId)=>B.getPageState(this.state,e||this.currentPageId));c(this,"getPagePoint",(e,t=this.currentPageId)=>{let{camera:n}=this.getPageState(t);return ie.Vec.sub(ie.Vec.div(e,n.zoom),n.point)});c(this,"createPage",(e,t)=>{if(this.readOnly)return this;let{width:n,height:r}=this.rendererBounds;return this.setState(zu(this,[-n/2,-r/2],e,t))});c(this,"changePage",e=>this.setState(Lu(this,e)));c(this,"movePage",(e,t)=>this.readOnly?this:this.setState(_u(this,e,t)));c(this,"renamePage",(e,t)=>this.readOnly?this:this.setState(Yu(this,e,t)));c(this,"duplicatePage",e=>this.readOnly?this:this.setState(Gu(this,e)));c(this,"deletePage",e=>this.readOnly?this:Object.values(this.document.pages).length<=1?this:this.setState(Fu(this,e||this.currentPageId)));c(this,"cut",(e=this.selectedIds,t)=>(t==null||t.preventDefault(),this.copy(e,t),this.readOnly||this.delete(e),this));c(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 Pu(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});c(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 T=new File([f],"image.svg");n.push(T)}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:pt.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})}))},d=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 T;let{type:m,kind:f}=g;switch(f){case"string":{let b=yield new Promise(v=>g.getAsString(v));switch(m){case"text/html":{if((T=b.match(/<telva>(.*)<\/telva>/))!=null&&T[1]){d(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 T=B.getBounds(m);f===0&&(g[0]-=T.width/2,g[1]-=T.height/2),m.point=[...g],g[0]+=T.width}),this.createShapes(...r),this}return this.clipboard?this.insertContent(this.clipboard):Iu().then(h=>{h&&d(h)}),this}));c(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(T=>T.json());l.textContent=`
14
+ @font-face {
15
+ font-family: 'Caveat Brush';
16
+ src: url(data:application/x-font-woff;charset=utf-8;base64,${f.caveat}) format('woff');
17
+ font-weight: 500;
18
+ font-style: normal;
19
+ }
20
+ @font-face {
21
+ font-family: 'Source Code Pro';
22
+ src: url(data:application/x-font-woff;charset=utf-8;base64,${f.source_code_pro}) format('woff');
23
+ font-weight: 500;
24
+ font-style: normal;
25
+ }
26
+ @font-face {
27
+ font-family: 'Source Sans Pro';
28
+ src: url(data:application/x-font-woff;charset=utf-8;base64,${f.source_sans_pro}) format('woff');
29
+ font-weight: 500;
30
+ font-style: normal;
31
+ }
32
+ @font-face {
33
+ font-family: 'Crimson Pro';
34
+ src: url(data:application/x-font-woff;charset=utf-8;base64,${f.crimson_pro}) format('woff');
35
+ font-weight: 500;
36
+ font-style: normal;
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,T)=>f.childIndex-T.childIndex),d=pt.Utils.getCommonBounds(a.map(B.getRotatedBounds)),p=f=>F(this,null,function*(){let T=B.getShapeUtil(f),b=T.getBounds(f),v=yield T.getSvgElement(f,this.settings.isDarkMode);if(!!v)return f.type==="image"?v.setAttribute("href",this.document.assets[f.assetId].src):f.type==="video"&&v.setAttribute("href",this.serializeVideo(f.id)),v.setAttribute("transform",`translate(${(16+f.point[0]-d.minX).toFixed(2)}, ${(16+f.point[1]-d.minY).toFixed(2)}) rotate(${((f.rotation||0)*180/Math.PI).toFixed(2)}, ${(b.width/2).toFixed(2)}, ${(b.height/2).toFixed(2)})`),v});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 v of f.children){let y=this.getShape(v,this.currentPageId),x=yield p(y);x&&b.append(x)}r.append(b);continue}let T=yield p(f);T&&r.append(T)}r.setAttribute("viewBox",[0,0,d.width+16*2,d.height+16*2].join(" ")),r.setAttribute("width",(d.width+16*2).toString()),r.setAttribute("height",(d.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}));c(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}));c(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 d;return[a,...((d=a.children)!=null?d:[]).map(p=>t.shapes[p])]}).map(ht),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(ht),l=[...new Set(n.map(a=>{if(!!a.assetId)return this.document.assets[a.assetId]}).filter(Boolean).map(ht))];return{shapes:n,bindings:s,assets:l}});c(this,"copyJson",(e=this.selectedIds)=>{let t=this.getContent(e);return t&&B.copyStringToClipboard(JSON.stringify(t)),this});c(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});c(this,"insertContent",(e,t={})=>this.setState(nh(this,e,t),"insert_content"));c(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}));c(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})])}));c(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 d=URL.createObjectURL(s),p=document.createElement("a");p.href=d,p.download=`${l}.${e}`,p.click()}}));c(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 d=a.getAttribute("href");if(!d)continue;let p=B.getShapeUtil("image").create({id:pt.Utils.uniqueId(),parentId:s.parentId,childIndex:s.childIndex,point:[...s.point],size:[...s.size],style:S({},s.style),assetId:"asset-"+pt.Utils.uniqueId()});this.patchState({document:{assets:{[`${p.assetId}`]:{id:p.assetId,type:"image",src:d,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)))}));c(this,"setCamera",(e,t,n)=>(this.updateViewport(e,t),this.patchState({document:{pageStates:{[this.currentPageId]:{camera:{point:e,zoom:t}}}}},n),this));c(this,"resetCamera",()=>this.setCamera(this.centerPoint,1,"reset_camera"));c(this,"pan",e=>{let{camera:t}=this.pageState;return this.setCamera(ie.Vec.toFixed(ie.Vec.sub(t.point,e)),t.zoom,"panned")});c(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),d=ie.Vec.sub(ie.Vec.div(e,l),s);return this.setCamera(ie.Vec.toFixed(ie.Vec.add(s,ie.Vec.sub(d,a))),l,"pinch_zoomed")});c(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")});c(this,"zoomIn",()=>{let e=Math.round(this.camera.zoom*100/25),t=B.getCameraZoom((e+1)*.25);return this.zoomTo(t)});c(this,"zoomOut",()=>{let e=Math.round(this.camera.zoom*100/25),t=B.getCameraZoom((e-1)*.25);return this.zoomTo(t)});c(this,"zoomToFit",()=>{let{shapes:e,pageState:{camera:t}}=this;if(e.length===0)return this;let{rendererBounds:n}=this,r=pt.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")});c(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")});c(this,"zoomToContent",()=>{let e=this.shapes,t=this.pageState;if(e.length===0)return this;let{rendererBounds:n}=this,{zoom:r}=t.camera,s=pt.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")});c(this,"resetZoom",()=>this.zoomTo(1));c(this,"zoomBy",pt.Utils.throttle((e,t)=>{let{zoom:n}=this.camera,r=B.getCameraZoom(n-e*n);return this.zoomTo(r,t)},16));c(this,"clearSelectHistory",()=>(this.selectHistory.pointer=0,this.selectHistory.stack=[this.selectedIds],this));c(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));c(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")});c(this,"undoSelect",()=>(this.selectHistory.pointer>0&&(this.selectHistory.pointer--,this.setSelectedIds(this.selectHistory.stack[this.selectHistory.pointer])),this));c(this,"redoSelect",()=>(this.selectHistory.pointer<this.selectHistory.stack.length-1&&(this.selectHistory.pointer++,this.setSelectedIds(this.selectHistory.stack[this.selectHistory.pointer])),this));c(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));c(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));c(this,"selectNone",()=>(this.setSelectedIds([]),this.addToSelectHistory(this.selectedIds),this));c(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=sh(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});c(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});c(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});c(this,"completeSession",()=>{var n,r,s,l,a,d,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=(d=t.document)==null?void 0:d.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});c(this,"createShapes",(...e)=>e.length===0?this:this.create(e.map(t=>B.getShapeUtil(t.type).create(S({parentId:this.currentPageId},t)))));c(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(Pl(this,n,this.currentPageId),"updated_shapes")});c(this,"create",(e=[],t=[])=>e.length===0?this:this.setState(bl(this,e,t)));c(this,"patchCreate",(e=[],t=[])=>e.length===0?this:this.patchState(bl(this,e,t).after));c(this,"delete",(e=this.selectedIds)=>{var n,r;if(e.length===0)return this;if(this.session)return this;let t=vl(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(d=>!!t.before.document.assets[d]),l=Object.keys(t.after.document.assets).filter(d=>!!t.after.document.assets[d]);s.filter(d=>!l.includes(d)).forEach(d=>this.callbacks.onAssetDelete(this,d))}return this.setState(t)});c(this,"deleteAll",()=>(this.selectAll(),this.delete(),this));c(this,"style",(e,t=this.selectedIds)=>this.setState(qu(this,t,e)));c(this,"align",(e,t=this.selectedIds)=>t.length<2?this:this.setState(Mu(this,t,e)));c(this,"distribute",(e,t=this.selectedIds)=>t.length<3?this:this.setState($u(this,t,e)));c(this,"stretch",(e,t=this.selectedIds)=>t.length<2?this:this.setState(Zu(this,t,e)));c(this,"flipHorizontal",(e=this.selectedIds)=>e.length===0?this:this.setState(xl(this,e,"horizontal")));c(this,"flipVertical",(e=this.selectedIds)=>e.length===0?this:this.setState(xl(this,e,"vertical")));c(this,"moveToPage",(e,t=this.currentPageId,n=this.selectedIds)=>{if(n.length===0)return this;let{rendererBounds:r}=this;return this.setState(Ku(this,n,r,t,e)),this});c(this,"moveToBack",(e=this.selectedIds)=>e.length===0?this:this.setState(Ii(this,e,"toBack")));c(this,"moveBackward",(e=this.selectedIds)=>e.length===0?this:this.setState(Ii(this,e,"backward")));c(this,"moveForward",(e=this.selectedIds)=>e.length===0?this:this.setState(Ii(this,e,"forward")));c(this,"moveToFront",(e=this.selectedIds)=>e.length===0?this:this.setState(Ii(this,e,"toFront")));c(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(Qu(this,n,ie.Vec.mul(e,r)))});c(this,"duplicate",(e=this.selectedIds,t)=>this.readOnly?this:e.length===0?this:this.setState(ju(this,e,t)));c(this,"resetBounds",(e=this.selectedIds)=>{let t=Cl(this,e,this.currentPageId);return this.setState(Cl(this,e,this.currentPageId),t.id)});c(this,"toggleHidden",(e=this.selectedIds)=>e.length===0?this:this.setState(Qs(this,e,"isHidden")));c(this,"toggleLocked",(e=this.selectedIds)=>e.length===0?this:this.setState(Qs(this,e,"isLocked")));c(this,"toggleAspectRatioLocked",(e=this.selectedIds)=>e.length===0?this:this.setState(Qs(this,e,"isAspectRatioLocked")));c(this,"toggleDecoration",(e,t=this.selectedIds)=>t.length===0||!(e==="start"||e==="end")?this:this.setState(Ju(this,t,e)));c(this,"setShapeProps",(e,t=this.selectedIds)=>this.setState(th(this,t,e)));c(this,"rotate",(e=Math.PI*-.5,t=this.selectedIds)=>{if(t.length===0)return this;let n=Xu(this,t,e);return n?this.setState(n):this});c(this,"group",(e=this.selectedIds,t=pt.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=Nu(this,e,t,n);return r?this.setState(r):this});c(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=eh(this,e,n,t);return r?this.setState(r):this});c(this,"cancel",()=>{var e,t;return(t=(e=this.currentTool).onCancel)==null||t.call(e),this});c(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 d=pt.Utils.uniqueId(),p=a.name.match(/\.[0-9a-z]+$/i);if(!p)throw Error("No extension");let u=qi.includes(p[0].toLowerCase()),h=Ji.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 T=yield this.callbacks.onAssetCreate(this,a,d);if(!T)throw Error("Asset creation callback returned false");f=T}else f=yield Bl(a);if(typeof f=="string"){let T=[0,0];if(u){if(p[0]==".svg"){let y,x=yield Ml(a),P=this.getViewboxFromSVG(x);P&&(y=P.split(" "),T[0]=parseFloat(y[2]),T[1]=parseFloat(y[3]))}ie.Vec.isEqual(T,[0,0])&&(T=yield Ll(f))}else T=yield Al(f);let b=Object.values(this.document.assets).find(y=>y.type===m&&y.src===f),v;if(b)v=b.id;else{v=d;let y={id:v,type:m,name:a.name,src:f,size:T};this.patchState({document:{assets:{[v]:y}}})}s.push(this.getImageOrVideoShapeAtPoint(d,g,t,T,v))}}catch(T){console.warn(T)}}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 d=pt.Utils.getCommonBounds(s.map(B.getBounds));this.createShapes(...s),pt.Utils.boundsContain(this.viewport,d)||(this.zoomToSelection(),this.zoom>1&&this.resetZoom())}return this.setIsLoading(!1),this}));c(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});c(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:d,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:d,spaceKey:u},{shiftKey:l,altKey:d,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});c(this,"onKeyUp",(e,t,n)=>{var r,s;if(!!t){switch(n.key){case"/":{let{currentPoint:l,shiftKey:a,metaKey:d,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:d,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)}});c(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})]);vc(),this.patchState({document:{pages:{[this.currentPageId]:{shapes:Object.fromEntries(e)}}}}),this.patchState({document:{pages:{[this.currentPageId]:{shapes:Object.fromEntries(t)}}}})});c(this,"onDragOver",e=>{e.preventDefault()});c(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)}));c(this,"onPinchStart",(e,t)=>{var n,r;(r=(n=this.currentTool).onPinchStart)==null||r.call(n,e,t)});c(this,"onPinchEnd",(e,t)=>{var n,r;return(r=(n=this.currentTool).onPinchEnd)==null?void 0:r.call(n,e,t)});c(this,"onPinch",(e,t)=>{var n,r;return(r=(n=this.currentTool).onPinch)==null?void 0:r.call(n,e,t)});c(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),bc&&this.isForcePanning&&this.preventPaste())});c(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)});c(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});c(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:d,userId:p}=this.state.room;(a=(l=this.callbacks).onChangePresence)==null||a.call(l,this,I(S({},d[p]),{point:this.getPagePoint(e.point),session:!!this.session}))}});c(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))});c(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)});c(this,"onPointCanvas",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onPointCanvas)==null||r.call(n,e,t)});c(this,"onDoubleClickCanvas",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onDoubleClickCanvas)==null||r.call(n,e,t)});c(this,"onRightPointCanvas",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onRightPointCanvas)==null||r.call(n,e,t)});c(this,"onDragCanvas",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onDragCanvas)==null||r.call(n,e,t)});c(this,"onReleaseCanvas",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onReleaseCanvas)==null||r.call(n,e,t)});c(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)});c(this,"onReleaseShape",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onReleaseShape)==null||r.call(n,e,t)});c(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)});c(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)});c(this,"onDragShape",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onDragShape)==null||r.call(n,e,t)});c(this,"onHoverShape",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onHoverShape)==null||r.call(n,e,t)});c(this,"onUnhoverShape",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onUnhoverShape)==null||r.call(n,e,t)});c(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)});c(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)});c(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)});c(this,"onDragBounds",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onDragBounds)==null||r.call(n,e,t)});c(this,"onHoverBounds",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onHoverBounds)==null||r.call(n,e,t)});c(this,"onUnhoverBounds",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onUnhoverBounds)==null||r.call(n,e,t)});c(this,"onReleaseBounds",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onReleaseBounds)==null||r.call(n,e,t)});c(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)});c(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),d=a.getCenter(n),p=a.getCenter(I(S({},n),{size:l.size})),u=ie.Vec.sub(p,d);this.updateShapes({id:n.id,point:ie.Vec.sub(n.point,u),size:l.size})}});c(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)});c(this,"onDragBoundsHandle",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onDragBoundsHandle)==null||r.call(n,e,t)});c(this,"onHoverBoundsHandle",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onHoverBoundsHandle)==null||r.call(n,e,t)});c(this,"onUnhoverBoundsHandle",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onUnhoverBoundsHandle)==null||r.call(n,e,t)});c(this,"onReleaseBoundsHandle",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onReleaseBoundsHandle)==null||r.call(n,e,t)});c(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)});c(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)});c(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)});c(this,"onDragHandle",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onDragHandle)==null||r.call(n,e,t)});c(this,"onHoverHandle",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onHoverHandle)==null||r.call(n,e,t)});c(this,"onUnhoverHandle",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onUnhoverHandle)==null||r.call(n,e,t)});c(this,"onReleaseHandle",(e,t)=>{var n,r;this.updateInputs(e,t),(r=(n=this.currentTool).onReleaseHandle)==null||r.call(n,e,t)});c(this,"onShapeChange",e=>{let t=this.document.pages[this.currentPageId].shapes,n=S(S({},t[e.id]),e),r=Pl(this,[n],this.currentPageId).after;return this.patchState(r,"patched_shapes")});c(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(vl(this,[e]).after,"delete_empty_text"):t||this.select(e))}(r=(n=this.currentTool).onShapeBlur)==null||r.call(n)});c(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)});c(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")});c(this,"onError",()=>{});c(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,d=bn["text"],p=d.create({id:t||pt.Utils.uniqueId(),parentId:s,childIndex:a,point:e,style:S({},l)}),u=d.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:d}}=this,p=l.length===0?1:l.filter(g=>g.parentId===a).sort((g,m)=>m.childIndex-g.childIndex)[0].childIndex+1,u=bn[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({},d),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}},In=Qe;c(In,"version",15.5),c(In,"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:{}}),c(In,"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}),c(In,"assetSrc","telva-assets.json");var n3={select:jr,erase:zr,["text"]:Nr,["draw"]:Vr,["ellipse"]:Hr,["rectangle"]:$r,["triangle"]:Ur,["line"]:Fr,["arrow"]:Lr,["sticky"]:Wr,["pen"]:Or};var Ee=require("react/jsx-runtime"),vh=Th.ErrorBoundary,xy=window.matchMedia?window.matchMedia("(prefers-color-scheme: dark)").matches:!1;function ky({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:d=!0,showUI:p=!0,readOnly:u=!1,disableAssets:h=!1,darkMode:g=xy,components:m,onMount:f,onChange:T,onChangePresence:b,onNewProject:v,onSaveProject:y,onSaveProjectAs:x,onOpenProject:P,onOpenMedia:C,onUndo:E,onRedo:k,onPersist:D,onPatch:M,onCommand:L,onChangePage:V,onAssetCreate:X,onAssetDelete:se,onAssetUpload:G,onSessionStart:ne,onSessionEnd:pe,onExport:he,hideCursors:Be,reactComponents:bt,googleFontsApiKey:rt}){let[et,be]=Se.useState(i);Se.useEffect(()=>{rt&&(cl(rt),pl())},[rt]);let[j,ae]=Se.useState(()=>new In(i,{onMount:f,onChange:T,onChangePresence:b,onNewProject:v,onSaveProject:y,onSaveProjectAs:x,onOpenProject:P,onOpenMedia:C,onUndo:E,onRedo:k,onPersist:D,onPatch:M,onCommand:L,onChangePage:V,onAssetDelete:se,onAssetCreate:X,onAssetUpload:G,onSessionStart:ne,onSessionEnd:pe})),[le,Z]=Se.useState(null),[W,Q]=Se.useState(null),[re,z]=Se.useState(null),[Me,Nt]=Se.useState(null),qt=Se.useCallback((ve,tt,it,ue)=>{Nt(()=>ve),Z(()=>ue),Q(()=>tt),z(()=>it)},[]);return Se.useLayoutEffect(()=>{if(i===et)return;let ve=new In(i,{onMount:f,onChange:T,onChangePresence:b,onNewProject:v,onSaveProject:y,onSaveProjectAs:x,onOpenProject:P,onOpenMedia:C,onUndo:E,onRedo:k,onPersist:D,onPatch:M,onCommand:L,onChangePage:V,onAssetDelete:se,onAssetCreate:X,onAssetUpload:G,onExport:he,onSessionStart:ne,onSessionEnd:pe});be(i),ae(ve)},[et,i]),Se.useEffect(()=>{!o||(o.id===j.document.id?j.updateDocument(o):j.loadDocument(o))},[o,j]),Se.useEffect(()=>{j.setDisableAssets(h)},[j,h]),Se.useEffect(()=>{!e||j.changePage(e)},[e,j]),Se.useEffect(()=>{j.readOnly=u,u||(j.selectNone(),j.cancelSession(),j.setEditingId())},[j,u]),Se.useEffect(()=>{g!==j.settings.isDarkMode&&j.toggleDarkMode()},[j,g]),Se.useEffect(()=>{j.callbacks={onMount:f,onChange:T,onChangePresence:b,onNewProject:v,onSaveProject:y,onSaveProjectAs:x,onOpenProject:P,onOpenMedia:C,onUndo:E,onRedo:k,onPersist:D,onPatch:M,onCommand:L,onChangePage:V,onAssetDelete:se,onAssetCreate:X,onAssetUpload:G,onExport:he,onSessionStart:ne,onSessionEnd:pe}},[f,T,b,v,y,x,P,C,E,k,D,M,L,V,se,X,G,he,ne,pe]),Se.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,Ee.jsx)(Ca.Provider,{value:j,children:(0,Ee.jsx)(Ia.Provider,{value:{onYes:W,onCancel:le,onNo:re,dialogState:Me,setDialogState:Nt,openDialog:qt},children:(0,Ee.jsx)(Aa.Provider,{value:bt||[],children:(0,Ee.jsx)(Cy,{id:et,autofocus:t,showPages:s,showMenu:n,showMultiplayerMenu:r,showStyles:d,showZoom:a,showTools:l,showUI:p,readOnly:u,components:m,hideCursors:Be,reactComponents:bt},et||"Telva")})})})}var Cy=Se.memo(function({id:o,autofocus:e,showPages:t,showMenu:n,showMultiplayerMenu:r,showZoom:s,showStyles:l,showTools:a,readOnly:d,showUI:p,components:u,hideCursors:h,reactComponents:g}){var j,ae,le;let m=_(),[f,T]=Se.useState(null),b=Se.useRef(null),v=Se.useRef(null),y=m.useStore(),{document:x,settings:P,appState:C,room:E}=y,k=y.appState.activeTool==="select",D=x.pages[C.currentPageId],M=x.pageStates[D.id],L=x.assets,{selectedIds:V}=M,X=V.length===1&&D.shapes[V[0]]&&B.getShapeUtil(D.shapes[V[0]].type).hideBounds,se=V.length===1&&D.shapes[V[0]]&&B.getShapeUtil(D.shapes[V[0]].type).hideResizeHandles,G=Se.useMemo(()=>({isDarkMode:P.isDarkMode,canvasMode:P.canvasMode||"freehand",nodeEditingId:C.nodeEditingId}),[P.isDarkMode,P.canvasMode,C.nodeEditingId]),ne=P.isCadSelectMode?!C.selectByContain:C.selectByContain,pe=Se.useMemo(()=>{let{selectByContain:Z}=C,{isDarkMode:W,isCadSelectMode:Q}=P;if(W){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,C.selectByContain]),he=m.session!==void 0,Be=he&&((j=m.session)==null?void 0:j.constructor.name)!=="BrushSession"||!k||X||!!M.editingId||!!C.nodeEditingId,bt=he||!k||!!C.nodeEditingId,rt=he&&y.appState.status!=="brushing"||!k||!!C.nodeEditingId,et=he||!k||M.camera.zoom<.2,be=Kd(P.language);return Se.useLayoutEffect(()=>{let Z=b.current;!Z||(P.isDarkMode?Z.classList.add(ka):Z.classList.remove(ka))},[P.isDarkMode]),Cu(b),(0,Ee.jsx)(wa.Provider,{value:b,children:(0,Ee.jsxs)(xh.IntlProvider,{locale:be.locale,messages:be.messages,children:[(0,Ee.jsx)(hc,{container:f}),(0,Ee.jsxs)(Iy,{ref:b,tabIndex:-0,children:[(0,Ee.jsx)(za,{}),(0,Ee.jsx)(wy,{focusableRef:b,autofocus:e}),p&&(0,Ee.jsxs)(Py,{ref:T,children:[(0,Ee.jsx)(Ry,{children:(0,Ee.jsx)(xu,{readOnly:d,showPages:t,showMenu:n,showMultiplayerMenu:r,showStyles:!1,showZoom:s})}),(0,Ee.jsxs)(Dy,{children:[a&&!d&&(0,Ee.jsx)(Ha,{}),(0,Ee.jsxs)(Ey,{ref:v,children:[(0,Ee.jsx)(Ma,{children:(0,Ee.jsx)(vh,{FallbackComponent:La,children:(0,Ee.jsx)(Gl.Renderer,{id:o,containerRef:v,shapeUtils:bn,page:D,pageState:M,assets:L,snapLines:C.snapLines,eraseLine:C.eraseLine,grid:8,users:E==null?void 0:E.users,userId:E==null?void 0:E.userId,theme:pe,meta:G,components:u,hideCursors:h,hideBounds:Be,hideHandles:bt,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&&!d&&(0,Ee.jsx)(qd,{})]}),(0,Ee.jsx)(fl,{})]})]}),!p&&(0,Ee.jsx)(Ma,{children:(0,Ee.jsx)(vh,{FallbackComponent:La,children:(0,Ee.jsx)(Gl.Renderer,{id:o,containerRef:b,shapeUtils:bn,page:D,pageState:M,assets:L,snapLines:C.snapLines,eraseLine:C.eraseLine,grid:8,users:E==null?void 0:E.users,userId:E==null?void 0:E.userId,theme:pe,meta:G,components:u,hideCursors:h,hideBounds:Be,hideHandles:bt,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})})})]})]})})}),wy=Se.memo(function({focusableRef:o,autofocus:e}){return hd(o),Se.useEffect(()=>{var t;e&&((t=o.current)==null||t.focus())},[e]),null}),Iy=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"}}),Py=R("div",{position:"absolute",top:0,left:0,height:"100%",width:"100%",display:"flex",flexDirection:"column",zIndex:2,pointerEvents:"none"}),Ry=R("div",{width:"100%",height:"40px",background:"$panel",borderBottom:"1px solid $separator",display:"flex",alignItems:"center",pointerEvents:"all",flexShrink:0,zIndex:300}),Dy=R("div",{display:"flex",flex:1,minHeight:0,position:"relative"}),Ey=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
+ //# sourceMappingURL=index.js.map