kritzel-stencil 0.0.126 → 0.0.128

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 (451) hide show
  1. package/dist/cjs/app-globals-V2Kpy_OQ.js +8 -0
  2. package/dist/cjs/app-globals-V2Kpy_OQ.js.map +1 -0
  3. package/dist/cjs/index-C7Read21.js +2638 -0
  4. package/dist/cjs/index-C7Read21.js.map +1 -0
  5. package/dist/cjs/index-CUSIflVf.js +1597 -0
  6. package/dist/cjs/index-CUSIflVf.js.map +1 -0
  7. package/dist/cjs/index.cjs.js +17 -0
  8. package/dist/cjs/index.cjs.js.map +1 -0
  9. package/dist/cjs/kritzel-brush-style_22.cjs.entry.js +3133 -0
  10. package/dist/cjs/loader.cjs.js +14 -0
  11. package/dist/cjs/loader.cjs.js.map +1 -0
  12. package/dist/cjs/stencil.cjs.js +26 -0
  13. package/dist/cjs/stencil.cjs.js.map +1 -0
  14. package/dist/collection/classes/commands/add-object.command.js +17 -0
  15. package/dist/collection/classes/commands/add-object.command.js.map +1 -0
  16. package/dist/collection/classes/commands/add-selection-group.command.js +20 -0
  17. package/dist/collection/classes/commands/add-selection-group.command.js.map +1 -0
  18. package/dist/collection/classes/commands/base.command.js +15 -0
  19. package/dist/collection/classes/commands/base.command.js.map +1 -0
  20. package/dist/collection/classes/commands/batch.command.js +14 -0
  21. package/dist/collection/classes/commands/batch.command.js.map +1 -0
  22. package/dist/collection/classes/commands/move-selection-group.command.js +25 -0
  23. package/dist/collection/classes/commands/move-selection-group.command.js.map +1 -0
  24. package/dist/collection/classes/commands/remove-object.command.js +20 -0
  25. package/dist/collection/classes/commands/remove-object.command.js.map +1 -0
  26. package/dist/collection/classes/commands/remove-selection-group.command.js +18 -0
  27. package/dist/collection/classes/commands/remove-selection-group.command.js.map +1 -0
  28. package/dist/collection/classes/commands/resize-selection-group.command.js +18 -0
  29. package/dist/collection/classes/commands/resize-selection-group.command.js.map +1 -0
  30. package/dist/collection/classes/commands/rotate-selection-group.command.js +24 -0
  31. package/dist/collection/classes/commands/rotate-selection-group.command.js.map +1 -0
  32. package/dist/collection/classes/commands/update-object.command.js +32 -0
  33. package/dist/collection/classes/commands/update-object.command.js.map +1 -0
  34. package/dist/collection/classes/commands/update-viewport.command.js +23 -0
  35. package/dist/collection/classes/commands/update-viewport.command.js.map +1 -0
  36. package/dist/collection/classes/database.class.js +227 -0
  37. package/dist/collection/classes/database.class.js.map +1 -0
  38. package/dist/collection/classes/handlers/base.handler.js +7 -0
  39. package/dist/collection/classes/handlers/base.handler.js.map +1 -0
  40. package/dist/collection/classes/handlers/context-menu.handler.js +47 -0
  41. package/dist/collection/classes/handlers/context-menu.handler.js.map +1 -0
  42. package/dist/collection/classes/handlers/hover.handler.js +19 -0
  43. package/dist/collection/classes/handlers/hover.handler.js.map +1 -0
  44. package/dist/collection/classes/handlers/key.handler.js +80 -0
  45. package/dist/collection/classes/handlers/key.handler.js.map +1 -0
  46. package/dist/collection/classes/handlers/move.handler.js +100 -0
  47. package/dist/collection/classes/handlers/move.handler.js.map +1 -0
  48. package/dist/collection/classes/handlers/resize.handler.js +158 -0
  49. package/dist/collection/classes/handlers/resize.handler.js.map +1 -0
  50. package/dist/collection/classes/handlers/rotation.handler.js +118 -0
  51. package/dist/collection/classes/handlers/rotation.handler.js.map +1 -0
  52. package/dist/collection/classes/handlers/selection.handler.js +200 -0
  53. package/dist/collection/classes/handlers/selection.handler.js.map +1 -0
  54. package/dist/collection/classes/history.class.js +84 -0
  55. package/dist/collection/classes/history.class.js.map +1 -0
  56. package/dist/collection/classes/objects/base-object.class.js +205 -0
  57. package/dist/collection/classes/objects/base-object.class.js.map +1 -0
  58. package/dist/collection/classes/objects/custom-element.class.js +53 -0
  59. package/dist/collection/classes/objects/custom-element.class.js.map +1 -0
  60. package/dist/collection/classes/objects/image.class.js +54 -0
  61. package/dist/collection/classes/objects/image.class.js.map +1 -0
  62. package/dist/collection/classes/objects/path.class.js +269 -0
  63. package/dist/collection/classes/objects/path.class.js.map +1 -0
  64. package/dist/collection/classes/objects/selection-box.class.js +23 -0
  65. package/dist/collection/classes/objects/selection-box.class.js.map +1 -0
  66. package/dist/collection/classes/objects/selection-group.class.js +158 -0
  67. package/dist/collection/classes/objects/selection-group.class.js.map +1 -0
  68. package/dist/collection/classes/objects/text.class.js +144 -0
  69. package/dist/collection/classes/objects/text.class.js.map +1 -0
  70. package/dist/{stencil/icon-registry.class-Bw5YkOTi.js → collection/classes/registries/icon-registry.class.js} +7 -7
  71. package/dist/collection/classes/registries/icon-registry.class.js.map +1 -0
  72. package/dist/collection/classes/registries/tool.registry.js +18 -0
  73. package/dist/collection/classes/registries/tool.registry.js.map +1 -0
  74. package/dist/collection/classes/reviver.class.js +66 -0
  75. package/dist/collection/classes/reviver.class.js.map +1 -0
  76. package/dist/collection/classes/store.class.js +410 -0
  77. package/dist/collection/classes/store.class.js.map +1 -0
  78. package/dist/collection/classes/structures/circular-buffer.structure.js +46 -0
  79. package/dist/collection/classes/structures/circular-buffer.structure.js.map +1 -0
  80. package/dist/collection/classes/structures/octree.structure.js +115 -0
  81. package/dist/collection/classes/structures/octree.structure.js.map +1 -0
  82. package/dist/collection/classes/tools/base-tool.class.js +31 -0
  83. package/dist/collection/classes/tools/base-tool.class.js.map +1 -0
  84. package/dist/collection/classes/tools/brush-tool.class.js +116 -0
  85. package/dist/collection/classes/tools/brush-tool.class.js.map +1 -0
  86. package/dist/collection/classes/tools/eraser-tool.class.js +86 -0
  87. package/dist/collection/classes/tools/eraser-tool.class.js.map +1 -0
  88. package/dist/collection/classes/tools/image-tool.class.js +91 -0
  89. package/dist/collection/classes/tools/image-tool.class.js.map +1 -0
  90. package/dist/collection/classes/tools/selection-tool.class.js +156 -0
  91. package/dist/collection/classes/tools/selection-tool.class.js.map +1 -0
  92. package/dist/collection/classes/tools/text-tool.class.js +116 -0
  93. package/dist/collection/classes/tools/text-tool.class.js.map +1 -0
  94. package/dist/collection/classes/viewport.class.js +152 -0
  95. package/dist/collection/classes/viewport.class.js.map +1 -0
  96. package/dist/collection/classes/workspace.class.js +10 -0
  97. package/dist/collection/classes/workspace.class.js.map +1 -0
  98. package/dist/collection/collection-manifest.json +33 -0
  99. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.css +10 -0
  100. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +154 -0
  101. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js.map +1 -0
  102. package/dist/collection/components/core/kritzel-editor/kritzel-editor.css +29 -0
  103. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +670 -0
  104. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +1 -0
  105. package/dist/collection/components/core/kritzel-engine/kritzel-engine.css +60 -0
  106. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +1483 -0
  107. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +1 -0
  108. package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.css +44 -0
  109. package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js +100 -0
  110. package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js.map +1 -0
  111. package/dist/collection/components/shared/kritzel-color/kritzel-color.css +21 -0
  112. package/dist/collection/components/shared/kritzel-color/kritzel-color.js +108 -0
  113. package/dist/collection/components/shared/kritzel-color/kritzel-color.js.map +1 -0
  114. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.css +46 -0
  115. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +147 -0
  116. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js.map +1 -0
  117. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.css +53 -0
  118. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js +215 -0
  119. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js.map +1 -0
  120. package/dist/collection/components/shared/kritzel-font/kritzel-font.css +10 -0
  121. package/dist/collection/components/shared/kritzel-font/kritzel-font.js +92 -0
  122. package/dist/collection/components/shared/kritzel-font/kritzel-font.js.map +1 -0
  123. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.css +48 -0
  124. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js +115 -0
  125. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js.map +1 -0
  126. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.css +30 -0
  127. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +112 -0
  128. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js.map +1 -0
  129. package/dist/collection/components/shared/kritzel-icon/kritzel-icon.css +17 -0
  130. package/dist/collection/components/shared/kritzel-icon/kritzel-icon.js +94 -0
  131. package/dist/collection/components/shared/kritzel-icon/kritzel-icon.js.map +1 -0
  132. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.css +166 -0
  133. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +272 -0
  134. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js.map +1 -0
  135. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +218 -0
  136. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js.map +1 -0
  137. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.css +74 -0
  138. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +324 -0
  139. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js.map +1 -0
  140. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.css +28 -0
  141. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +91 -0
  142. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js.map +1 -0
  143. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.css +17 -0
  144. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +181 -0
  145. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js.map +1 -0
  146. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.css +55 -0
  147. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +141 -0
  148. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js.map +1 -0
  149. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.css +19 -0
  150. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +136 -0
  151. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js.map +1 -0
  152. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.css +19 -0
  153. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js +116 -0
  154. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js.map +1 -0
  155. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.css +124 -0
  156. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +280 -0
  157. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js.map +1 -0
  158. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.css +33 -0
  159. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +79 -0
  160. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js.map +1 -0
  161. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.css +5 -0
  162. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js +209 -0
  163. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js.map +1 -0
  164. package/dist/{stencil/default-text-tool.config-DvOZmpuR.js → collection/configs/default-brush-tool.config.js} +2 -38
  165. package/dist/collection/configs/default-brush-tool.config.js.map +1 -0
  166. package/dist/collection/configs/default-engine-state.js +61 -0
  167. package/dist/collection/configs/default-engine-state.js.map +1 -0
  168. package/dist/collection/configs/default-text-tool.config.js +32 -0
  169. package/dist/collection/configs/default-text-tool.config.js.map +1 -0
  170. package/dist/collection/constants/engine.constants.js +3 -0
  171. package/dist/collection/constants/engine.constants.js.map +1 -0
  172. package/dist/collection/enums/event-button.enum.js +7 -0
  173. package/dist/collection/enums/event-button.enum.js.map +1 -0
  174. package/dist/collection/enums/handle-type.enum.js +8 -0
  175. package/dist/collection/enums/handle-type.enum.js.map +1 -0
  176. package/dist/collection/helpers/class.helper.js +6 -0
  177. package/dist/collection/helpers/class.helper.js.map +1 -0
  178. package/dist/collection/helpers/devices.helper.js +6 -0
  179. package/dist/collection/helpers/devices.helper.js.map +1 -0
  180. package/dist/collection/helpers/event.helper.js +58 -0
  181. package/dist/collection/helpers/event.helper.js.map +1 -0
  182. package/dist/collection/helpers/geometry.helper.js +53 -0
  183. package/dist/collection/helpers/geometry.helper.js.map +1 -0
  184. package/dist/collection/helpers/html.helper.js +36 -0
  185. package/dist/collection/helpers/html.helper.js.map +1 -0
  186. package/dist/collection/helpers/keyboard.helper.js +31 -0
  187. package/dist/collection/helpers/keyboard.helper.js.map +1 -0
  188. package/dist/collection/helpers/math.helper.js +6 -0
  189. package/dist/collection/helpers/math.helper.js.map +1 -0
  190. package/dist/collection/helpers/object.helper.js +38 -0
  191. package/dist/collection/helpers/object.helper.js.map +1 -0
  192. package/dist/collection/index.js +21 -0
  193. package/dist/collection/index.js.map +1 -0
  194. package/dist/collection/interfaces/bounding-box.interface.js +2 -0
  195. package/dist/collection/interfaces/bounding-box.interface.js.map +1 -0
  196. package/dist/collection/interfaces/command.interface.js +2 -0
  197. package/dist/collection/interfaces/command.interface.js.map +1 -0
  198. package/dist/collection/interfaces/context-menu-item.interface.js +2 -0
  199. package/dist/collection/interfaces/context-menu-item.interface.js.map +1 -0
  200. package/dist/collection/interfaces/debug-info.interface.js +2 -0
  201. package/dist/collection/interfaces/debug-info.interface.js.map +1 -0
  202. package/dist/collection/interfaces/engine-state.interface.js +2 -0
  203. package/dist/collection/interfaces/engine-state.interface.js.map +1 -0
  204. package/dist/collection/interfaces/menu-item.interface.js +2 -0
  205. package/dist/collection/interfaces/menu-item.interface.js.map +1 -0
  206. package/dist/collection/interfaces/object.interface.js +2 -0
  207. package/dist/collection/interfaces/object.interface.js.map +1 -0
  208. package/dist/collection/interfaces/path-options.interface.js +2 -0
  209. package/dist/collection/interfaces/path-options.interface.js.map +1 -0
  210. package/dist/collection/interfaces/point.interface.js +2 -0
  211. package/dist/collection/interfaces/point.interface.js.map +1 -0
  212. package/dist/collection/interfaces/polygon.interface.js +2 -0
  213. package/dist/collection/interfaces/polygon.interface.js.map +1 -0
  214. package/dist/collection/interfaces/selection-state.interface.js +2 -0
  215. package/dist/collection/interfaces/selection-state.interface.js.map +1 -0
  216. package/dist/collection/interfaces/serializable.interface.js +2 -0
  217. package/dist/collection/interfaces/serializable.interface.js.map +1 -0
  218. package/dist/collection/interfaces/tool.interface.js +2 -0
  219. package/dist/collection/interfaces/tool.interface.js.map +1 -0
  220. package/dist/collection/interfaces/toolbar-control.interface.js +2 -0
  221. package/dist/collection/interfaces/toolbar-control.interface.js.map +1 -0
  222. package/dist/collection/types/state.types.js +2 -0
  223. package/dist/collection/types/state.types.js.map +1 -0
  224. package/dist/components/index.d.ts +8 -0
  225. package/dist/components/index.js +28 -0
  226. package/dist/components/index.js.map +1 -0
  227. package/dist/components/kritzel-brush-style.js +9 -0
  228. package/dist/components/kritzel-brush-style.js.map +1 -0
  229. package/dist/components/kritzel-color-palette.js +9 -0
  230. package/dist/components/kritzel-color-palette.js.map +1 -0
  231. package/dist/components/kritzel-color.js +9 -0
  232. package/dist/components/kritzel-color.js.map +1 -0
  233. package/dist/components/kritzel-context-menu.js +9 -0
  234. package/dist/components/kritzel-context-menu.js.map +1 -0
  235. package/dist/components/kritzel-control-brush-config.js +9 -0
  236. package/dist/components/kritzel-control-brush-config.js.map +1 -0
  237. package/dist/components/kritzel-control-text-config.js +9 -0
  238. package/dist/components/kritzel-control-text-config.js.map +1 -0
  239. package/dist/components/kritzel-controls.js +9 -0
  240. package/dist/components/kritzel-controls.js.map +1 -0
  241. package/dist/components/kritzel-cursor-trail.js +9 -0
  242. package/dist/components/kritzel-cursor-trail.js.map +1 -0
  243. package/dist/components/kritzel-dropdown.js +9 -0
  244. package/dist/components/kritzel-dropdown.js.map +1 -0
  245. package/dist/components/kritzel-editor.js +439 -0
  246. package/dist/components/kritzel-editor.js.map +1 -0
  247. package/dist/components/kritzel-engine.js +9 -0
  248. package/dist/components/kritzel-engine.js.map +1 -0
  249. package/dist/components/kritzel-font-family.js +9 -0
  250. package/dist/components/kritzel-font-family.js.map +1 -0
  251. package/dist/components/kritzel-font-size.js +9 -0
  252. package/dist/components/kritzel-font-size.js.map +1 -0
  253. package/dist/components/kritzel-font.js +9 -0
  254. package/dist/components/kritzel-font.js.map +1 -0
  255. package/dist/components/kritzel-icon.js +9 -0
  256. package/dist/components/kritzel-icon.js.map +1 -0
  257. package/dist/components/kritzel-menu.d.ts +11 -0
  258. package/dist/components/kritzel-menu.js +9 -0
  259. package/dist/components/kritzel-menu.js.map +1 -0
  260. package/dist/components/kritzel-portal.d.ts +11 -0
  261. package/dist/components/kritzel-portal.js +9 -0
  262. package/dist/components/kritzel-portal.js.map +1 -0
  263. package/dist/components/kritzel-split-button.d.ts +11 -0
  264. package/dist/components/kritzel-split-button.js +9 -0
  265. package/dist/components/kritzel-split-button.js.map +1 -0
  266. package/dist/components/kritzel-stroke-size.js +9 -0
  267. package/dist/components/kritzel-stroke-size.js.map +1 -0
  268. package/dist/components/kritzel-tooltip.js +9 -0
  269. package/dist/components/kritzel-tooltip.js.map +1 -0
  270. package/dist/components/kritzel-utility-panel.js +9 -0
  271. package/dist/components/kritzel-utility-panel.js.map +1 -0
  272. package/dist/components/kritzel-workspace-manager.d.ts +11 -0
  273. package/dist/components/kritzel-workspace-manager.js +9 -0
  274. package/dist/components/kritzel-workspace-manager.js.map +1 -0
  275. package/dist/{stencil/kritzel-color.entry.js → components/p-5CJxFNEE.js} +31 -11
  276. package/dist/components/p-5CJxFNEE.js.map +1 -0
  277. package/dist/{stencil/brush-tool.class-D1U3x9_Y.js → components/p-B7VrEdgP.js} +77 -110
  278. package/dist/components/p-B7VrEdgP.js.map +1 -0
  279. package/dist/{stencil/kritzel-color-palette.entry.js → components/p-BAPUTr3K.js} +40 -12
  280. package/dist/components/p-BAPUTr3K.js.map +1 -0
  281. package/dist/{stencil/kritzel-controls.entry.js → components/p-BB22cVkU.js} +135 -27
  282. package/dist/components/p-BB22cVkU.js.map +1 -0
  283. package/dist/components/p-BLmFBe2a.js +96 -0
  284. package/dist/components/p-BLmFBe2a.js.map +1 -0
  285. package/dist/components/p-BU2q3PRS.js +84 -0
  286. package/dist/components/p-BU2q3PRS.js.map +1 -0
  287. package/dist/components/p-BZ-j_4CK.js +46 -0
  288. package/dist/components/p-BZ-j_4CK.js.map +1 -0
  289. package/dist/components/p-BaKb8ZLg.js +104 -0
  290. package/dist/components/p-BaKb8ZLg.js.map +1 -0
  291. package/dist/components/p-Bb6od8He.js +42 -0
  292. package/dist/components/p-Bb6od8He.js.map +1 -0
  293. package/dist/components/p-BcQTDgzV.js +56 -0
  294. package/dist/components/p-BcQTDgzV.js.map +1 -0
  295. package/dist/components/p-BeVv4o5c.js +14 -0
  296. package/dist/components/p-BeVv4o5c.js.map +1 -0
  297. package/dist/components/p-BmJbJwkH.js +167 -0
  298. package/dist/components/p-BmJbJwkH.js.map +1 -0
  299. package/dist/components/p-BqrTPNyu.js +1330 -0
  300. package/dist/components/p-BqrTPNyu.js.map +1 -0
  301. package/dist/{stencil/kritzel-dropdown.entry.js → components/p-BvlGgLAQ.js} +39 -11
  302. package/dist/components/p-BvlGgLAQ.js.map +1 -0
  303. package/dist/components/p-BzSz74Ci.js +56 -0
  304. package/dist/components/p-BzSz74Ci.js.map +1 -0
  305. package/dist/components/p-D-zg05gA.js +3148 -0
  306. package/dist/components/p-D-zg05gA.js.map +1 -0
  307. package/dist/{stencil/event-button.enum-D8W6LE-c.js → components/p-D8W6LE-c.js} +2 -2
  308. package/dist/components/p-D8W6LE-c.js.map +1 -0
  309. package/dist/components/p-DV4ERZv5.js +112 -0
  310. package/dist/components/p-DV4ERZv5.js.map +1 -0
  311. package/dist/{stencil/kritzel-cursor-trail.entry.js → components/p-DtmZW6eP.js} +32 -11
  312. package/dist/components/p-DtmZW6eP.js.map +1 -0
  313. package/dist/components/p-V4ui5aWj.js +63 -0
  314. package/dist/components/p-V4ui5aWj.js.map +1 -0
  315. package/dist/{stencil/kritzel-font-family.entry.js → components/p-_ntxNi8v.js} +37 -11
  316. package/dist/components/p-_ntxNi8v.js.map +1 -0
  317. package/dist/components/p-a7KmQzo4.js +113 -0
  318. package/dist/components/p-a7KmQzo4.js.map +1 -0
  319. package/dist/components/p-hSuNJiIq.js +152 -0
  320. package/dist/components/p-hSuNJiIq.js.map +1 -0
  321. package/dist/{stencil/kritzel-tooltip.entry.js → components/p-jG1e48OE.js} +39 -14
  322. package/dist/components/p-jG1e48OE.js.map +1 -0
  323. package/dist/components/p-rQeWFfPG.js +54 -0
  324. package/dist/components/p-rQeWFfPG.js.map +1 -0
  325. package/dist/components/p-sQmW5NRu.js +156 -0
  326. package/dist/components/p-sQmW5NRu.js.map +1 -0
  327. package/dist/esm/app-globals-DQuL1Twl.js +6 -0
  328. package/dist/esm/app-globals-DQuL1Twl.js.map +1 -0
  329. package/dist/esm/index-J4NpPimy.js +2611 -0
  330. package/dist/esm/index-J4NpPimy.js.map +1 -0
  331. package/dist/esm/index-NiIEUDzj.js +1570 -0
  332. package/dist/esm/index-NiIEUDzj.js.map +1 -0
  333. package/dist/esm/index.js +2 -0
  334. package/dist/esm/index.js.map +1 -0
  335. package/dist/esm/kritzel-brush-style_22.entry.js +3110 -0
  336. package/dist/esm/loader.js +12 -0
  337. package/dist/esm/loader.js.map +1 -0
  338. package/dist/esm/stencil.js +22 -0
  339. package/dist/esm/stencil.js.map +1 -0
  340. package/dist/index.cjs.js +1 -0
  341. package/dist/index.js +1 -0
  342. package/dist/stencil/index.esm.js +1 -16
  343. package/dist/stencil/index.esm.js.map +1 -1
  344. package/dist/stencil/loader.esm.js.map +1 -1
  345. package/dist/stencil/p-4a0009e7.entry.js +2 -0
  346. package/dist/stencil/p-4a0009e7.entry.js.map +1 -0
  347. package/dist/stencil/p-DQuL1Twl.js +2 -0
  348. package/dist/stencil/p-DQuL1Twl.js.map +1 -0
  349. package/dist/stencil/p-J4NpPimy.js +2 -0
  350. package/dist/stencil/p-J4NpPimy.js.map +1 -0
  351. package/dist/stencil/p-NiIEUDzj.js +3 -0
  352. package/dist/stencil/p-NiIEUDzj.js.map +1 -0
  353. package/dist/stencil/stencil.esm.js +1 -49
  354. package/dist/stencil/stencil.esm.js.map +1 -1
  355. package/dist/types/classes/commands/add-object.command.d.ts +1 -1
  356. package/dist/types/classes/commands/add-selection-group.command.d.ts +1 -1
  357. package/dist/types/classes/commands/base.command.d.ts +2 -2
  358. package/dist/types/classes/commands/batch.command.d.ts +1 -1
  359. package/dist/types/classes/commands/move-selection-group.command.d.ts +1 -1
  360. package/dist/types/classes/commands/remove-object.command.d.ts +1 -1
  361. package/dist/types/classes/commands/remove-selection-group.command.d.ts +1 -1
  362. package/dist/types/classes/commands/resize-selection-group.command.d.ts +1 -1
  363. package/dist/types/classes/commands/rotate-selection-group.command.d.ts +1 -1
  364. package/dist/types/classes/commands/update-object.command.d.ts +1 -1
  365. package/dist/types/classes/commands/update-viewport.command.d.ts +1 -1
  366. package/dist/types/classes/database.class.d.ts +28 -0
  367. package/dist/types/classes/history.class.d.ts +1 -0
  368. package/dist/types/classes/objects/base-object.class.d.ts +2 -0
  369. package/dist/types/classes/objects/path.class.d.ts +1 -0
  370. package/dist/types/classes/objects/text.class.d.ts +1 -1
  371. package/dist/types/classes/store.class.d.ts +19 -2
  372. package/dist/types/classes/structures/octree.structure.d.ts +1 -0
  373. package/dist/types/classes/workspace.class.d.ts +16 -0
  374. package/dist/types/components/core/kritzel-editor/kritzel-editor.d.ts +6 -1
  375. package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +12 -2
  376. package/dist/types/components/shared/kritzel-menu/kritzel-menu.d.ts +24 -0
  377. package/dist/types/components/shared/kritzel-portal/kritzel-portal.d.ts +24 -0
  378. package/dist/types/components/shared/kritzel-split-button/kritzel-split-button.d.ts +24 -0
  379. package/dist/types/components/ui/kritzel-context-menu/kritzel-context-menu.d.ts +3 -4
  380. package/dist/types/components/ui/kritzel-controls/kritzel-controls.d.ts +2 -1
  381. package/dist/types/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.d.ts +25 -0
  382. package/dist/types/components.d.ts +250 -2
  383. package/dist/types/helpers/html.helper.d.ts +3 -1
  384. package/dist/types/interfaces/command.interface.d.ts +1 -1
  385. package/dist/types/interfaces/debug-info.interface.d.ts +1 -0
  386. package/dist/types/interfaces/engine-state.interface.d.ts +3 -0
  387. package/dist/types/interfaces/menu-item.interface.d.ts +9 -0
  388. package/dist/types/interfaces/object.interface.d.ts +2 -0
  389. package/dist/types/stencil-public-runtime.d.ts +21 -0
  390. package/package.json +63 -62
  391. package/dist/stencil/brush-tool.class-D1U3x9_Y.js.map +0 -1
  392. package/dist/stencil/default-text-tool.config-DvOZmpuR.js.map +0 -1
  393. package/dist/stencil/engine.constants-DsjjAmnl.js +0 -7
  394. package/dist/stencil/engine.constants-DsjjAmnl.js.map +0 -1
  395. package/dist/stencil/event-button.enum-D8W6LE-c.js.map +0 -1
  396. package/dist/stencil/icon-registry.class-Bw5YkOTi.js.map +0 -1
  397. package/dist/stencil/image-tool.class-uKAmXFSl.js +0 -1341
  398. package/dist/stencil/image-tool.class-uKAmXFSl.js.map +0 -1
  399. package/dist/stencil/index-Df69oUcb.js +0 -4334
  400. package/dist/stencil/index-Df69oUcb.js.map +0 -1
  401. package/dist/stencil/kritzel-brush-style.entry.esm.js.map +0 -1
  402. package/dist/stencil/kritzel-brush-style.entry.js +0 -31
  403. package/dist/stencil/kritzel-brush-style.entry.js.map +0 -1
  404. package/dist/stencil/kritzel-color-palette.entry.esm.js.map +0 -1
  405. package/dist/stencil/kritzel-color-palette.entry.js.map +0 -1
  406. package/dist/stencil/kritzel-color.entry.esm.js.map +0 -1
  407. package/dist/stencil/kritzel-color.entry.js.map +0 -1
  408. package/dist/stencil/kritzel-context-menu-B2p1_Ffh.js +0 -91
  409. package/dist/stencil/kritzel-context-menu-B2p1_Ffh.js.map +0 -1
  410. package/dist/stencil/kritzel-context-menu-DPHV6MRm.js +0 -91
  411. package/dist/stencil/kritzel-context-menu-DPHV6MRm.js.map +0 -1
  412. package/dist/stencil/kritzel-context-menu.entry.esm.js.map +0 -1
  413. package/dist/stencil/kritzel-context-menu.entry.js +0 -5
  414. package/dist/stencil/kritzel-context-menu.entry.js.map +0 -1
  415. package/dist/stencil/kritzel-control-brush-config.entry.esm.js.map +0 -1
  416. package/dist/stencil/kritzel-control-brush-config.entry.js +0 -54
  417. package/dist/stencil/kritzel-control-brush-config.entry.js.map +0 -1
  418. package/dist/stencil/kritzel-control-text-config.entry.esm.js.map +0 -1
  419. package/dist/stencil/kritzel-control-text-config.entry.js +0 -42
  420. package/dist/stencil/kritzel-control-text-config.entry.js.map +0 -1
  421. package/dist/stencil/kritzel-controls.entry.esm.js.map +0 -1
  422. package/dist/stencil/kritzel-controls.entry.js.map +0 -1
  423. package/dist/stencil/kritzel-cursor-trail.entry.esm.js.map +0 -1
  424. package/dist/stencil/kritzel-cursor-trail.entry.js.map +0 -1
  425. package/dist/stencil/kritzel-dropdown.entry.esm.js.map +0 -1
  426. package/dist/stencil/kritzel-dropdown.entry.js.map +0 -1
  427. package/dist/stencil/kritzel-editor.entry.esm.js.map +0 -1
  428. package/dist/stencil/kritzel-editor.entry.js +0 -180
  429. package/dist/stencil/kritzel-editor.entry.js.map +0 -1
  430. package/dist/stencil/kritzel-engine.entry.esm.js.map +0 -1
  431. package/dist/stencil/kritzel-engine.entry.js +0 -1318
  432. package/dist/stencil/kritzel-engine.entry.js.map +0 -1
  433. package/dist/stencil/kritzel-font-family.entry.esm.js.map +0 -1
  434. package/dist/stencil/kritzel-font-family.entry.js.map +0 -1
  435. package/dist/stencil/kritzel-font-size.entry.esm.js.map +0 -1
  436. package/dist/stencil/kritzel-font-size.entry.js +0 -29
  437. package/dist/stencil/kritzel-font-size.entry.js.map +0 -1
  438. package/dist/stencil/kritzel-font.entry.esm.js.map +0 -1
  439. package/dist/stencil/kritzel-font.entry.js +0 -25
  440. package/dist/stencil/kritzel-font.entry.js.map +0 -1
  441. package/dist/stencil/kritzel-icon.entry.esm.js.map +0 -1
  442. package/dist/stencil/kritzel-icon.entry.js +0 -29
  443. package/dist/stencil/kritzel-icon.entry.js.map +0 -1
  444. package/dist/stencil/kritzel-stroke-size.entry.esm.js.map +0 -1
  445. package/dist/stencil/kritzel-stroke-size.entry.js +0 -28
  446. package/dist/stencil/kritzel-stroke-size.entry.js.map +0 -1
  447. package/dist/stencil/kritzel-tooltip.entry.esm.js.map +0 -1
  448. package/dist/stencil/kritzel-tooltip.entry.js.map +0 -1
  449. package/dist/stencil/kritzel-utility-panel.entry.esm.js.map +0 -1
  450. package/dist/stencil/kritzel-utility-panel.entry.js +0 -33
  451. package/dist/stencil/kritzel-utility-panel.entry.js.map +0 -1
@@ -0,0 +1,152 @@
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-BqrTPNyu.js';
2
+ import { d as defineCustomElement$2 } from './p-BLmFBe2a.js';
3
+ import { d as defineCustomElement$1 } from './p-BmJbJwkH.js';
4
+
5
+ const kritzelMenuCss = ":host{display:flex;flex-direction:column;min-width:180px;padding:var(--kritzel-controls-padding, 8px);background-color:var(--kritzel-controls-background-color, #ffffff);border-radius:var(--kritzel-controls-border-radius, 12px);box-shadow:var(--kritzel-controls-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));border:var(--kritzel-controls-border, 1px solid #ebebeb);z-index:2;gap:var(--kritzel-menu-item-gap, 4px);overflow-y:auto;scrollbar-color:#ebebeb transparent;scrollbar-width:thin}button{all:unset;background:transparent;border:0;padding:0;margin:0;font:inherit;color:inherit;line-height:inherit;text-align:inherit;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;border-radius:0;-webkit-tap-highlight-color:transparent}button:focus{outline:none}:host(:focus){outline:none}.menu-item{display:flex;align-items:center;justify-content:space-between;padding:var(--kritzel-context-menu-item-padding, 8px);border-radius:var(--kritzel-context-menu-item-border-radius, 12px);cursor:pointer;font-family:sans-serif;font-size:var(--kritzel-context-menu-item-font-size, 14px);color:var(--kritzel-context-menu-item-color, #333333);gap:var(--kritzel-context-menu-item-gap, 12px)}.menu-item:focus,.menu-item:focus-within{outline:none;background-color:var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.menu-item-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-item:not(.disabled):not(.inactive):not(.active):hover{background-color:var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.menu-item:not(.disabled):not(.inactive):not(.active):active{background-color:var(--kritzel-context-menu-item-active-background-color, hsl(0, 0%, 0%, 8.6%))}.menu-item.active{color:var(--kritzel-controls-background-color, #ffffff);background-color:var(--kritzel-controls-control-selected-background-color, #007aff)}.menu-item.active kritzel-icon{filter:brightness(0) invert(1)}.menu-item.active:hover{background-color:var(--kritzel-controls-control-selected-hover-background-color, #0075f1)}.menu-item.disabled{color:var(--kritzel-context-menu-item-disabled-color, #aaaaaa);background-color:transparent;cursor:default}.menu-item.child-open{background-color:var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%)) !important}.menu-item.active.menu-item.child-open{background-color:var(--kritzel-controls-control-selected-active-background-color, #0075f1) !important}.menu-item kritzel-icon{opacity:0.8;flex-shrink:0}.menu-item.disabled kritzel-icon{opacity:0.4}.menu-item.edit-mode input{background:transparent;border:none;outline:none;font-size:inherit;font-family:inherit;color:inherit;padding:0;width:100%;padding:2px 0px;border-bottom:1px solid var(--kritzel-context-menu-item-color, #333333)}.menu-item.active.edit-mode input{border-bottom:1px solid var(--kritzel-controls-background-color, #ffffff)}.menu-item.edit-mode input::selection{background-color:var(--kritzel-controls-control-selected-background-color, #007aff);border-radius:4px;color:var(--kritzel-controls-background-color, #ffffff)}.menu-item.active.edit-mode input::selection{background-color:var(--kritzel-menu-item-selected-input-background-color, #ffffff34)}.menu-item-button{background:transparent;border:none;outline:none;cursor:pointer;padding:4px;border-radius:8px;display:flex;align-items:center;justify-content:center}.menu-item-button:hover{background-color:var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.menu-item-button:focus{background-color:var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.edit-container,.view-container{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--kritzel-context-menu-item-gap, 4px)}";
6
+
7
+ const KritzelMenu = /*@__PURE__*/ proxyCustomElement(class KritzelMenu extends H {
8
+ constructor(registerHost) {
9
+ super();
10
+ if (registerHost !== false) {
11
+ this.__registerHost();
12
+ }
13
+ this.__attachShadow();
14
+ this.close = createEvent(this, "close");
15
+ this.items = [];
16
+ this.parentIndex = null;
17
+ this.parent = null;
18
+ this.activeItemIndex = null;
19
+ this.editingIndex = null;
20
+ this.openChildMenuIndex = null;
21
+ this.childMenuAnchor = null;
22
+ this.cancelButton = null;
23
+ this.saveButton = null;
24
+ }
25
+ onEditingIndexChange(newValue) {
26
+ if (newValue === null) {
27
+ this.openChildMenuIndex = null;
28
+ this.editInput = undefined;
29
+ return;
30
+ }
31
+ }
32
+ handleWindowClick(event) {
33
+ if (this.openChildMenuIndex === null) {
34
+ return;
35
+ }
36
+ const target = event.target;
37
+ if (!this.host.contains(target)) {
38
+ this.openChildMenuIndex = null;
39
+ }
40
+ }
41
+ handleEscape(event) {
42
+ var _a;
43
+ if (event.key === 'Escape') {
44
+ if (this.openChildMenuIndex !== null) {
45
+ return;
46
+ }
47
+ if (this.editingIndex !== null) {
48
+ (_a = this.cancelButton) === null || _a === void 0 ? void 0 : _a.click();
49
+ return;
50
+ }
51
+ this.close.emit();
52
+ }
53
+ }
54
+ handleEnter(event) {
55
+ var _a;
56
+ if (event.key === 'Enter') {
57
+ if (this.editingIndex !== null) {
58
+ (_a = this.saveButton) === null || _a === void 0 ? void 0 : _a.click();
59
+ return;
60
+ }
61
+ }
62
+ }
63
+ componentDidLoad() {
64
+ requestAnimationFrame(() => {
65
+ this.host.focus();
66
+ });
67
+ }
68
+ isViewMode(index) {
69
+ return this.editingIndex !== index;
70
+ }
71
+ handleSelect(item) {
72
+ var _a;
73
+ if (item.disabled || this.editingIndex !== null || this.openChildMenuIndex !== null) {
74
+ return;
75
+ }
76
+ (_a = item.select) === null || _a === void 0 ? void 0 : _a.call(item, item);
77
+ }
78
+ render() {
79
+ return (h(Host, { key: '6d98c1d40c1af36b7b36c45ddc96fb89ab6ebdca', tabIndex: 0 }, this.items.map((item, index) => (h("button", { tabIndex: 0, class: {
80
+ 'menu-item': true,
81
+ 'disabled': item.disabled,
82
+ 'inactive': this.openChildMenuIndex !== null && this.openChildMenuIndex !== index,
83
+ 'child-open': this.openChildMenuIndex === index,
84
+ 'edit-mode': this.editingIndex === index,
85
+ 'active': this.activeItemIndex === index,
86
+ }, onClick: () => this.handleSelect(item) }, this.isViewMode(index) === true && (h("div", { class: "view-container" }, h("span", { class: "menu-item-label" }, item.label), h("div", null, item.children && item.children.length > 0 && (h("button", { class: "menu-item-button", tabIndex: 0, onClick: event => {
87
+ if (this.editingIndex !== null)
88
+ return;
89
+ event.stopPropagation();
90
+ this.childMenuAnchor = this.openChildMenuIndex === index ? null : event.currentTarget;
91
+ this.openChildMenuIndex = this.openChildMenuIndex === index ? null : index;
92
+ } }, h("kritzel-icon", { name: "ellipsis-vertical", size: 16 }))), this.openChildMenuIndex === index && (h("kritzel-portal", { anchor: this.childMenuAnchor, offsetY: 4, onClose: () => this.openChildMenuIndex = null }, h("kritzel-menu", { style: { minWidth: '100px' }, items: item.children, parentIndex: index, parent: item, onClose: () => {
93
+ var _a;
94
+ this.openChildMenuIndex = null;
95
+ (_a = this.childMenuAnchor) === null || _a === void 0 ? void 0 : _a.focus();
96
+ } })))))), this.isViewMode(index) === false && (h("div", { class: "edit-container" }, h("input", { tabIndex: 0, ref: el => {
97
+ this.editInput = el;
98
+ requestAnimationFrame(() => {
99
+ var _a, _b;
100
+ (_a = this.editInput) === null || _a === void 0 ? void 0 : _a.focus();
101
+ (_b = this.editInput) === null || _b === void 0 ? void 0 : _b.select();
102
+ });
103
+ }, type: "text", name: 'menu-item-' + index, value: item.label, onInput: e => (item.label = e.target.value) }), h("div", { style: { display: 'flex', gap: '8px' } }, h("button", { ref: el => (this.cancelButton = el), class: "menu-item-button", tabIndex: 0, onClick: () => { var _a; return (_a = item.cancel) === null || _a === void 0 ? void 0 : _a.call(item, item); } }, h("kritzel-icon", { name: "x", size: 16 })), h("button", { ref: el => (this.saveButton = el), class: "menu-item-button", tabIndex: 0, onClick: () => { var _a; return (_a = item.save) === null || _a === void 0 ? void 0 : _a.call(item, item); } }, h("kritzel-icon", { name: "check", size: 16 }))))))))));
104
+ }
105
+ get host() { return this; }
106
+ static get watchers() { return {
107
+ "editingIndex": ["onEditingIndexChange"]
108
+ }; }
109
+ static get style() { return kritzelMenuCss; }
110
+ }, [257, "kritzel-menu", {
111
+ "items": [16],
112
+ "parentIndex": [2, "parent-index"],
113
+ "parent": [16],
114
+ "activeItemIndex": [2, "active-item-index"],
115
+ "editingIndex": [2, "editing-index"],
116
+ "openChildMenuIndex": [32]
117
+ }, [[8, "click", "handleWindowClick"], [8, "keydown", "handleEscape"], [8, "keydown", "handleEnter"]], {
118
+ "editingIndex": ["onEditingIndexChange"]
119
+ }]);
120
+ function defineCustomElement() {
121
+ if (typeof customElements === "undefined") {
122
+ return;
123
+ }
124
+ const components = ["kritzel-menu", "kritzel-icon", "kritzel-menu", "kritzel-portal"];
125
+ components.forEach(tagName => { switch (tagName) {
126
+ case "kritzel-menu":
127
+ if (!customElements.get(tagName)) {
128
+ customElements.define(tagName, KritzelMenu);
129
+ }
130
+ break;
131
+ case "kritzel-icon":
132
+ if (!customElements.get(tagName)) {
133
+ defineCustomElement$2();
134
+ }
135
+ break;
136
+ case "kritzel-menu":
137
+ if (!customElements.get(tagName)) {
138
+ defineCustomElement();
139
+ }
140
+ break;
141
+ case "kritzel-portal":
142
+ if (!customElements.get(tagName)) {
143
+ defineCustomElement$1();
144
+ }
145
+ break;
146
+ } });
147
+ }
148
+
149
+ export { KritzelMenu as K, defineCustomElement as d };
150
+ //# sourceMappingURL=p-hSuNJiIq.js.map
151
+
152
+ //# sourceMappingURL=p-hSuNJiIq.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-hSuNJiIq.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/shared/kritzel-menu/kritzel-menu.css?tag=kritzel-menu&encapsulation=shadow","src/components/shared/kritzel-menu/kritzel-menu.tsx"],"sourcesContent":[":host {\r\n display: flex;\r\n flex-direction: column;\r\n min-width: 180px;\r\n padding: var(--kritzel-controls-padding, 8px);\r\n background-color: var(--kritzel-controls-background-color, #ffffff);\r\n border-radius: var(--kritzel-controls-border-radius, 12px);\r\n box-shadow: var(--kritzel-controls-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));\r\n border: var(--kritzel-controls-border, 1px solid #ebebeb);\r\n z-index: 2;\r\n gap: var(--kritzel-menu-item-gap, 4px);\r\n overflow-y: auto;\r\n scrollbar-color: #ebebeb transparent;\r\n scrollbar-width: thin;\r\n}\r\n\r\nbutton {\r\n all: unset;\r\n background: transparent;\r\n border: 0;\r\n padding: 0;\r\n margin: 0;\r\n font: inherit;\r\n color: inherit;\r\n line-height: inherit;\r\n text-align: inherit;\r\n cursor: pointer;\r\n appearance: none;\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n border-radius: 0;\r\n -webkit-tap-highlight-color: transparent;\r\n}\r\n\r\nbutton:focus {\r\n outline: none;\r\n}\r\n\r\n:host(:focus) {\r\n outline: none;\r\n}\r\n\r\n.menu-item {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n padding: var(--kritzel-context-menu-item-padding, 8px);\r\n border-radius: var(--kritzel-context-menu-item-border-radius, 12px);\r\n cursor: pointer;\r\n font-family: sans-serif;\r\n font-size: var(--kritzel-context-menu-item-font-size, 14px);\r\n color: var(--kritzel-context-menu-item-color, #333333);\r\n gap: var(--kritzel-context-menu-item-gap, 12px);\r\n}\r\n\r\n.menu-item:focus,\r\n.menu-item:focus-within {\r\n outline: none;\r\n background-color: var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%));\r\n}\r\n\r\n.menu-item-label {\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n}\r\n\r\n.menu-item:not(.disabled):not(.inactive):not(.active):hover {\r\n background-color: var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%));\r\n}\r\n\r\n.menu-item:not(.disabled):not(.inactive):not(.active):active {\r\n background-color: var(--kritzel-context-menu-item-active-background-color, hsl(0, 0%, 0%, 8.6%));\r\n}\r\n\r\n.menu-item.active {\r\n color: var(--kritzel-controls-background-color, #ffffff);\r\n background-color: var(--kritzel-controls-control-selected-background-color, #007aff);\r\n}\r\n\r\n.menu-item.active kritzel-icon {\r\n filter: brightness(0) invert(1);\r\n}\r\n\r\n.menu-item.active:hover {\r\n background-color: var(--kritzel-controls-control-selected-hover-background-color, #0075f1);\r\n}\r\n\r\n.menu-item.disabled {\r\n color: var(--kritzel-context-menu-item-disabled-color, #aaaaaa);\r\n background-color: transparent;\r\n cursor: default;\r\n}\r\n\r\n.menu-item.child-open {\r\n background-color: var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%)) !important;\r\n}\r\n\r\n.menu-item.active.menu-item.child-open {\r\n background-color: var(--kritzel-controls-control-selected-active-background-color, #0075f1) !important;\r\n}\r\n\r\n.menu-item kritzel-icon {\r\n opacity: 0.8;\r\n flex-shrink: 0;\r\n}\r\n\r\n.menu-item.disabled kritzel-icon {\r\n opacity: 0.4;\r\n}\r\n\r\n.menu-item.edit-mode input {\r\n background: transparent;\r\n border: none;\r\n outline: none;\r\n font-size: inherit;\r\n font-family: inherit;\r\n color: inherit;\r\n padding: 0;\r\n width: 100%;\r\n padding: 2px 0px;\r\n border-bottom: 1px solid var(--kritzel-context-menu-item-color, #333333);\r\n}\r\n\r\n.menu-item.active.edit-mode input {\r\n border-bottom: 1px solid var(--kritzel-controls-background-color, #ffffff);\r\n}\r\n\r\n.menu-item.edit-mode input::selection {\r\n background-color: var(--kritzel-controls-control-selected-background-color, #007aff);\r\n border-radius: 4px;\r\n color: var(--kritzel-controls-background-color, #ffffff);\r\n}\r\n\r\n.menu-item.active.edit-mode input::selection {\r\n background-color: var(--kritzel-menu-item-selected-input-background-color, #ffffff34);\r\n}\r\n\r\n.menu-item-button {\r\n background: transparent;\r\n border: none;\r\n outline: none;\r\n cursor: pointer;\r\n padding: 4px;\r\n border-radius: 8px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.menu-item-button:hover {\r\n background-color: var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%));\r\n}\r\n\r\n.menu-item-button:focus {\r\n background-color: var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%));\r\n}\r\n\r\n.edit-container,\r\n.view-container {\r\n width: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: var(--kritzel-context-menu-item-gap, 4px);\r\n}\r\n","import { Component, h, Prop, Host, State, Listen, Element, Watch, Event, EventEmitter } from '@stencil/core';\r\nimport { KritzelMenuItem } from '../../../interfaces/menu-item.interface';\r\n\r\n\r\n@Component({\r\n tag: 'kritzel-menu',\r\n styleUrl: 'kritzel-menu.css',\r\n shadow: true,\r\n})\r\nexport class KritzelMenu {\r\n @Element()\r\n host: HTMLElement;\r\n\r\n @Prop()\r\n items: KritzelMenuItem[] = [];\r\n\r\n @Prop()\r\n parentIndex: number | null = null;\r\n\r\n @Prop()\r\n parent: KritzelMenuItem = null;\r\n\r\n @Prop()\r\n activeItemIndex: number | null = null;\r\n\r\n @Prop()\r\n editingIndex: number | null = null;\r\n\r\n @Event()\r\n close: EventEmitter<void>;\r\n\r\n @State()\r\n openChildMenuIndex: number | null = null;\r\n\r\n private editInput?: HTMLInputElement;\r\n\r\n private childMenuAnchor?: HTMLElement = null;\r\n\r\n private cancelButton?: HTMLElement = null;\r\n\r\n private saveButton?: HTMLElement = null;\r\n\r\n @Watch('editingIndex')\r\n onEditingIndexChange(newValue: number | null) {\r\n if (newValue === null) {\r\n this.openChildMenuIndex = null;\r\n this.editInput = undefined;\r\n return;\r\n }\r\n }\r\n\r\n @Listen('click', { target: 'window' })\r\n handleWindowClick(event: MouseEvent) {\r\n if (this.openChildMenuIndex === null) {\r\n return;\r\n }\r\n\r\n const target = event.target as HTMLElement;\r\n if (!this.host.contains(target)) {\r\n this.openChildMenuIndex = null;\r\n }\r\n }\r\n\r\n @Listen('keydown', { target: 'window' })\r\n handleEscape(event: KeyboardEvent) {\r\n if (event.key === 'Escape') {\r\n if (this.openChildMenuIndex !== null) {\r\n return;\r\n }\r\n\r\n if (this.editingIndex !== null) {\r\n this.cancelButton?.click();\r\n return;\r\n }\r\n\r\n this.close.emit();\r\n }\r\n }\r\n\r\n @Listen('keydown', { target: 'window' })\r\n handleEnter(event: KeyboardEvent) {\r\n if (event.key === 'Enter') {\r\n if (this.editingIndex !== null) {\r\n this.saveButton?.click();\r\n return;\r\n }\r\n }\r\n }\r\n\r\n componentDidLoad() {\r\n requestAnimationFrame(() => {\r\n this.host.focus();\r\n });\r\n }\r\n\r\n isViewMode(index: number): boolean {\r\n return this.editingIndex !== index;\r\n }\r\n\r\n handleSelect(item: KritzelMenuItem) {\r\n if (item.disabled || this.editingIndex !== null || this.openChildMenuIndex !== null) {\r\n return;\r\n }\r\n item.select?.(item);\r\n }\r\n\r\n render() {\r\n return (\r\n <Host tabIndex={0}>\r\n {this.items.map((item, index) => (\r\n <button\r\n tabIndex={0}\r\n class={{\r\n 'menu-item': true,\r\n 'disabled': item.disabled,\r\n 'inactive': this.openChildMenuIndex !== null && this.openChildMenuIndex !== index,\r\n 'child-open': this.openChildMenuIndex === index,\r\n 'edit-mode': this.editingIndex === index,\r\n 'active': this.activeItemIndex === index,\r\n }}\r\n onClick={() => this.handleSelect(item)}\r\n >\r\n {this.isViewMode(index) === true && (\r\n <div class=\"view-container\">\r\n <span class=\"menu-item-label\">{item.label}</span>\r\n\r\n <div>\r\n {item.children && item.children.length > 0 && (\r\n <button\r\n class=\"menu-item-button\"\r\n tabIndex={0}\r\n onClick={event => {\r\n if (this.editingIndex !== null) return;\r\n event.stopPropagation();\r\n this.childMenuAnchor = this.openChildMenuIndex === index ? null : (event.currentTarget as HTMLElement);\r\n this.openChildMenuIndex = this.openChildMenuIndex === index ? null : index;\r\n }}\r\n >\r\n <kritzel-icon name=\"ellipsis-vertical\" size={16}></kritzel-icon>\r\n </button>\r\n )}\r\n\r\n {this.openChildMenuIndex === index && (\r\n <kritzel-portal\r\n anchor={this.childMenuAnchor}\r\n offsetY={4}\r\n onClose={() => this.openChildMenuIndex = null}\r\n >\r\n <kritzel-menu\r\n style={{ minWidth: '100px' }}\r\n items={item.children}\r\n parentIndex={index}\r\n parent={item}\r\n onClose={() => {\r\n this.openChildMenuIndex = null;\r\n this.childMenuAnchor?.focus();\r\n }}\r\n ></kritzel-menu>\r\n </kritzel-portal>\r\n )}\r\n </div>\r\n </div>\r\n )}\r\n\r\n {this.isViewMode(index) === false && (\r\n <div class=\"edit-container\">\r\n <input\r\n tabIndex={0}\r\n ref={el => {\r\n this.editInput = el as HTMLInputElement;\r\n requestAnimationFrame(() => {\r\n this.editInput?.focus();\r\n this.editInput?.select();\r\n });\r\n }}\r\n type=\"text\"\r\n name={'menu-item-' + index}\r\n value={item.label}\r\n onInput={e => (item.label = (e.target as HTMLInputElement).value)}\r\n />\r\n\r\n <div style={{ display: 'flex', gap: '8px' }}>\r\n <button ref={el => (this.cancelButton = el)} class=\"menu-item-button\" tabIndex={0} onClick={() => item.cancel?.(item)}>\r\n <kritzel-icon name=\"x\" size={16}></kritzel-icon>\r\n </button>\r\n\r\n <button ref={el => (this.saveButton = el)} class=\"menu-item-button\" tabIndex={0} onClick={() => item.save?.(item)}>\r\n <kritzel-icon name=\"check\" size={16}></kritzel-icon>\r\n </button>\r\n </div>\r\n </div>\r\n )}\r\n </button>\r\n ))}\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
@@ -1,11 +1,15 @@
1
- import { r as registerInstance, h, d as Host, e as getElement } from './index-Df69oUcb.js';
1
+ import { p as proxyCustomElement, H, h, d as Host } from './p-BqrTPNyu.js';
2
2
 
3
3
  const kritzelTooltipCss = ":host{width:auto}.tooltip-content{position:relative;padding:8px 12px;border-radius:4px;width:fit-content;background-color:var(--kritzel-controls-tooltip-background-color, #ffffff);color:var(--kritzel-controls-tooltip-color, #000000);padding:var(--kritzel-controls-tooltip-padding, 8px);border-radius:var(--kritzel-controls-tooltip-border-radius, 16px);white-space:nowrap;box-shadow:var(--kritzel-controls-tooltip-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.12))}";
4
4
 
5
5
  const MOBILE_BREAKPOINT = 768;
6
- const KritzelTooltip = class {
7
- constructor(hostRef) {
8
- registerInstance(this, hostRef);
6
+ const KritzelTooltip = /*@__PURE__*/ proxyCustomElement(class KritzelTooltip extends H {
7
+ constructor(registerHost) {
8
+ super();
9
+ if (registerHost !== false) {
10
+ this.__registerHost();
11
+ }
12
+ this.__attachShadow();
9
13
  this.isVisible = false;
10
14
  this.arrowSize = 8;
11
15
  this.offsetY = 24;
@@ -41,23 +45,23 @@ const KritzelTooltip = class {
41
45
  }
42
46
  }
43
47
  render() {
44
- return (h(Host, { key: 'c746aaec0d9d29225e3a050a00ef878e0c682c2a', style: {
48
+ return (h(Host, { key: '7610e8185e037813cc363daa3212a4164a20daaf', style: {
45
49
  position: 'fixed',
46
50
  zIndex: '9999',
47
51
  transition: 'opacity 0.3s ease-in-out, transform 0.3s ease-in-out',
48
52
  visibility: this.isVisible ? 'visible' : 'hidden',
49
53
  left: !this.isMobileView ? `${this.positionX}px` : '50%',
50
54
  marginBottom: `${this.offsetY + this.arrowSize}px`,
51
- } }, h("div", { key: '55c6fd7d07a767bcdacef455664c31b114a72b53', class: "tooltip-content", onClick: event => event.stopPropagation() }, h("slot", { key: '914c250449dacdbe207a21bc3c454ef33e79d0ae' }), h("div", { key: '1b508f8a8c1c9be401c170cf5d4f384e236aa582', class: "tooltip-arrow-wrapper", style: {
55
+ } }, h("div", { key: 'bd5c1f0f7ff3afddfcf2469277189d026e79b453', class: "tooltip-content", onClick: event => event.stopPropagation() }, h("slot", { key: '547e5a8fcb8131225461881a1ad0125fa4b0d55b' }), h("div", { key: 'de1d30c31667a81a36873d32bec20fcc911ec89f', class: "tooltip-arrow-wrapper", style: {
52
56
  position: 'fixed',
53
57
  left: this.arrowOffset,
54
58
  bottom: `-${this.arrowSize * 2}px`,
55
- } }, h("div", { key: '254cb36260dd0993e556766745d8de095650910f', class: "tooltip-arrow", style: {
59
+ } }, h("div", { key: 'ebbf83bd4d35e252b0258a7c81ebcef48ac10004', class: "tooltip-arrow", style: {
56
60
  borderLeft: `${this.arrowSize}px solid transparent`,
57
61
  borderRight: `${this.arrowSize}px solid transparent`,
58
62
  borderTop: `${this.arrowSize}px solid var(--kritzel-controls-tooltip-background-color, #ffffff)`,
59
63
  filter: 'drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2))',
60
- } }), h("div", { key: '78602a790ec58cafec58864a5db5ecf3e5507faa', class: "tooltip-arrow-rect", style: {
64
+ } }), h("div", { key: '918ca46c438657dc4f72ccc73f81d58076d637c5', class: "tooltip-arrow-rect", style: {
61
65
  position: 'relative',
62
66
  width: `${this.arrowSize * 2}px`,
63
67
  height: `${this.arrowSize}px`,
@@ -65,11 +69,32 @@ const KritzelTooltip = class {
65
69
  bottom: `${this.arrowSize * 2}px`,
66
70
  } })))));
67
71
  }
68
- get el() { return getElement(this); }
69
- };
70
- KritzelTooltip.style = kritzelTooltipCss;
72
+ get el() { return this; }
73
+ static get style() { return kritzelTooltipCss; }
74
+ }, [257, "kritzel-tooltip", {
75
+ "isVisible": [4, "is-visible"],
76
+ "anchorElement": [16, "anchor-element"],
77
+ "arrowSize": [2, "arrow-size"],
78
+ "offsetY": [2, "offset-y"],
79
+ "positionX": [32],
80
+ "arrowOffset": [32],
81
+ "isMobileView": [32]
82
+ }, [[9, "resize", "handleWindowResize"]]]);
83
+ function defineCustomElement() {
84
+ if (typeof customElements === "undefined") {
85
+ return;
86
+ }
87
+ const components = ["kritzel-tooltip"];
88
+ components.forEach(tagName => { switch (tagName) {
89
+ case "kritzel-tooltip":
90
+ if (!customElements.get(tagName)) {
91
+ customElements.define(tagName, KritzelTooltip);
92
+ }
93
+ break;
94
+ } });
95
+ }
71
96
 
72
- export { KritzelTooltip as kritzel_tooltip };
73
- //# sourceMappingURL=kritzel-tooltip.entry.esm.js.map
97
+ export { KritzelTooltip as K, defineCustomElement as d };
98
+ //# sourceMappingURL=p-jG1e48OE.js.map
74
99
 
75
- //# sourceMappingURL=kritzel-tooltip.entry.js.map
100
+ //# sourceMappingURL=p-jG1e48OE.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-jG1e48OE.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/shared/kritzel-tooltip/kritzel-tooltip.css?tag=kritzel-tooltip&encapsulation=shadow","src/components/shared/kritzel-tooltip/kritzel-tooltip.tsx"],"sourcesContent":[":host {\r\n width: auto;\r\n}\r\n\r\n.tooltip-content {\r\n position: relative;\r\n padding: 8px 12px;\r\n border-radius: 4px;\r\n width: fit-content;\r\n background-color: var(--kritzel-controls-tooltip-background-color, #ffffff);\r\n color: var(--kritzel-controls-tooltip-color, #000000);\r\n padding: var(--kritzel-controls-tooltip-padding, 8px);\r\n border-radius: var(--kritzel-controls-tooltip-border-radius, 16px);\r\n white-space: nowrap;\r\n box-shadow: var(--kritzel-controls-tooltip-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.12));\r\n}\r\n\r\n","import { Component, Host, Prop, h, Element, State, Listen } from '@stencil/core';\r\n\r\nconst MOBILE_BREAKPOINT = 768;\r\n\r\n@Component({\r\n tag: 'kritzel-tooltip',\r\n styleUrl: 'kritzel-tooltip.css',\r\n shadow: true,\r\n})\r\nexport class KritzelTooltip {\r\n @Prop()\r\n isVisible: boolean = false;\r\n\r\n @Prop()\r\n anchorElement: HTMLElement;\r\n\r\n @Prop()\r\n arrowSize: number = 8;\r\n\r\n @Prop()\r\n offsetY: number = 24;\r\n\r\n @Element()\r\n el: HTMLElement;\r\n\r\n @State()\r\n positionX: number = 0;\r\n\r\n @State()\r\n arrowOffset: string = '0px';\r\n\r\n @State()\r\n private isMobileView: boolean = window.innerWidth < MOBILE_BREAKPOINT;\r\n\r\n @Listen('resize', { target: 'window' })\r\n handleWindowResize() {\r\n this.isMobileView = window.innerWidth < MOBILE_BREAKPOINT;\r\n this.calculateAdjustedPosition();\r\n }\r\n\r\n componentWillLoad() {\r\n this.isMobileView = window.innerWidth < MOBILE_BREAKPOINT;\r\n this.calculateAdjustedPosition();\r\n }\r\n\r\n componentWillUpdate() {\r\n this.calculateAdjustedPosition();\r\n }\r\n\r\n private calculateAdjustedPosition() {\r\n if (this.isVisible && this.anchorElement) {\r\n const anchorRect = this.anchorElement.getBoundingClientRect();\r\n const tooltipContent = this.el.shadowRoot?.querySelector('.tooltip-content') as HTMLElement;\r\n\r\n if (!this.isMobileView) {\r\n this.positionX = anchorRect.left + anchorRect.width / 2;\r\n this.arrowOffset = `calc(${50}% - ${this.arrowSize}px)`; \r\n } else {\r\n const tooltipRect = tooltipContent.getBoundingClientRect();\r\n this.positionX = anchorRect.left + anchorRect.width / 2 - tooltipRect.width / 2;\r\n this.arrowOffset = `${anchorRect.left + anchorRect.width / 2 - tooltipRect.left - this.arrowSize}px`;\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <Host\r\n style={{\r\n position: 'fixed',\r\n zIndex: '9999',\r\n transition: 'opacity 0.3s ease-in-out, transform 0.3s ease-in-out',\r\n visibility: this.isVisible ? 'visible' : 'hidden',\r\n left: !this.isMobileView ? `${this.positionX}px` : '50%',\r\n marginBottom: `${this.offsetY + this.arrowSize}px`,\r\n }}\r\n >\r\n <div class=\"tooltip-content\" onClick={event => event.stopPropagation()}>\r\n <slot></slot>\r\n <div\r\n class=\"tooltip-arrow-wrapper\"\r\n style={{\r\n position: 'fixed',\r\n left: this.arrowOffset,\r\n bottom: `-${this.arrowSize * 2}px`,\r\n }}\r\n >\r\n <div\r\n class=\"tooltip-arrow\"\r\n style={{\r\n borderLeft: `${this.arrowSize}px solid transparent`,\r\n borderRight: `${this.arrowSize}px solid transparent`,\r\n borderTop: `${this.arrowSize}px solid var(--kritzel-controls-tooltip-background-color, #ffffff)`,\r\n filter: 'drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2))',\r\n }}\r\n ></div>\r\n <div\r\n class=\"tooltip-arrow-rect\"\r\n style={{\r\n position: 'relative',\r\n width: `${this.arrowSize * 2}px`,\r\n height: `${this.arrowSize}px`,\r\n backgroundColor: 'var(--kritzel-controls-tooltip-background-color, #ffffff)',\r\n bottom: `${this.arrowSize * 2}px`,\r\n }}\r\n ></div>\r\n </div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
@@ -0,0 +1,54 @@
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-BqrTPNyu.js';
2
+ import { d as defineCustomElement$1 } from './p-5CJxFNEE.js';
3
+
4
+ const kritzelStrokeSizeCss = ":host{display:flex;align-items:flex-start;gap:8px;padding:8px;box-sizing:border-box}.size-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:pointer;border:2px solid transparent;box-sizing:border-box}.size-container:hover{background-color:var(--kritzel-stroke-size-hover-background-color, #ebebeb)}.size-container.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-stroke-size-selected-background-color, #ebebeb)}";
5
+
6
+ const KritzelStrokeSize = /*@__PURE__*/ proxyCustomElement(class KritzelStrokeSize extends H {
7
+ constructor(registerHost) {
8
+ super();
9
+ if (registerHost !== false) {
10
+ this.__registerHost();
11
+ }
12
+ this.__attachShadow();
13
+ this.sizeChange = createEvent(this, "sizeChange");
14
+ this.sizes = [4, 6, 8, 12, 16, 24];
15
+ this.selectedSize = null;
16
+ }
17
+ handleSizeClick(size) {
18
+ this.selectedSize = size;
19
+ this.sizeChange.emit(size);
20
+ }
21
+ render() {
22
+ return (h(Host, { key: '0185d3243c35c49169324c98f87df6a286fc3d31' }, this.sizes.map(size => (h("div", { class: {
23
+ 'size-container': true,
24
+ 'selected': this.selectedSize === size,
25
+ }, onClick: () => this.handleSizeClick(size) }, h("kritzel-color", { value: '#000000', size: size }))))));
26
+ }
27
+ static get style() { return kritzelStrokeSizeCss; }
28
+ }, [257, "kritzel-stroke-size", {
29
+ "sizes": [16],
30
+ "selectedSize": [1026, "selected-size"]
31
+ }]);
32
+ function defineCustomElement() {
33
+ if (typeof customElements === "undefined") {
34
+ return;
35
+ }
36
+ const components = ["kritzel-stroke-size", "kritzel-color"];
37
+ components.forEach(tagName => { switch (tagName) {
38
+ case "kritzel-stroke-size":
39
+ if (!customElements.get(tagName)) {
40
+ customElements.define(tagName, KritzelStrokeSize);
41
+ }
42
+ break;
43
+ case "kritzel-color":
44
+ if (!customElements.get(tagName)) {
45
+ defineCustomElement$1();
46
+ }
47
+ break;
48
+ } });
49
+ }
50
+
51
+ export { KritzelStrokeSize as K, defineCustomElement as d };
52
+ //# sourceMappingURL=p-rQeWFfPG.js.map
53
+
54
+ //# sourceMappingURL=p-rQeWFfPG.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-rQeWFfPG.js","mappings":";;;AAAA,MAAM,oBAAoB,GAAG,8gBAA8gB;;MCO9hB,iBAAiB,iBAAAA,kBAAA,CAAA,MAAA,iBAAA,SAAAC,CAAA,CAAA;AAL9B,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;;AAOE,QAAA,IAAA,CAAA,KAAK,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAGvC,QAAA,IAAY,CAAA,YAAA,GAAkB,IAAI;AA2BnC;AAtBS,IAAA,eAAe,CAAC,IAAY,EAAA;AAClC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;;IAG5B,MAAM,GAAA;AACJ,QAAA,QACE,CAAC,CAAA,IAAI,EACF,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAClB,CAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAE;AACL,gBAAA,gBAAgB,EAAE,IAAI;AACtB,gBAAA,UAAU,EAAE,IAAI,CAAC,YAAY,KAAK,IAAI;AACvC,aAAA,EACD,OAAO,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAA,EAEzC,CAAA,CAAA,eAAA,EAAA,EAAe,KAAK,EAAC,SAAS,EAAC,IAAI,EAAE,IAAI,EAAA,CAAkB,CACvD,CACP,CAAC,CACG;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/shared/kritzel-stroke-size/kritzel-stroke-size.css?tag=kritzel-stroke-size&encapsulation=shadow","src/components/shared/kritzel-stroke-size/kritzel-stroke-size.tsx"],"sourcesContent":[":host {\r\n display: flex;\r\n align-items: flex-start;\r\n gap: 8px;\r\n padding: 8px;\r\n box-sizing: border-box;\r\n}\r\n\r\n.size-container {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 32px;\r\n height: 32px;\r\n border-radius: 50%;\r\n cursor: pointer;\r\n border: 2px solid transparent;\r\n box-sizing: border-box;\r\n}\r\n\r\n.size-container:hover {\r\n background-color: var(--kritzel-stroke-size-hover-background-color, #ebebeb);\r\n}\r\n\r\n.size-container.selected {\r\n border-color: var(--kritzel-selection-border-color, #007AFF);\r\n background-color: var(--kritzel-stroke-size-selected-background-color, #ebebeb);\r\n}\r\n","import { Component, Host, h, Prop, Event, EventEmitter } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'kritzel-stroke-size',\r\n styleUrl: 'kritzel-stroke-size.css',\r\n shadow: true,\r\n})\r\nexport class KritzelStrokeSize {\r\n @Prop() \r\n sizes: number[] = [4, 6, 8, 12, 16, 24];\r\n\r\n @Prop({ mutable: true }) \r\n selectedSize: number | null = null;\r\n\r\n @Event() \r\n sizeChange: EventEmitter<number>;\r\n\r\n private handleSizeClick(size: number) {\r\n this.selectedSize = size;\r\n this.sizeChange.emit(size);\r\n }\r\n\r\n render() {\r\n return (\r\n <Host>\r\n {this.sizes.map(size => (\r\n <div\r\n class={{\r\n 'size-container': true,\r\n 'selected': this.selectedSize === size,\r\n }}\r\n onClick={() => this.handleSizeClick(size)}\r\n >\r\n <kritzel-color value='#000000' size={size}></kritzel-color>\r\n </div>\r\n ))}\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
@@ -0,0 +1,156 @@
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-BqrTPNyu.js';
2
+ import { K as KritzelWorkspace } from './p-BeVv4o5c.js';
3
+ import { O as ObjectHelper } from './p-Bb6od8He.js';
4
+ import { d as defineCustomElement$4 } from './p-BLmFBe2a.js';
5
+ import { d as defineCustomElement$3 } from './p-hSuNJiIq.js';
6
+ import { d as defineCustomElement$2 } from './p-BmJbJwkH.js';
7
+ import { d as defineCustomElement$1 } from './p-DV4ERZv5.js';
8
+
9
+ const kritzelWorkspaceManagerCss = ":host{display:flex;flex-direction:column;z-index:1}";
10
+
11
+ const KritzelWorkspaceManager = /*@__PURE__*/ proxyCustomElement(class KritzelWorkspaceManager extends H {
12
+ constructor(registerHost) {
13
+ super();
14
+ if (registerHost !== false) {
15
+ this.__registerHost();
16
+ }
17
+ this.__attachShadow();
18
+ this.isWorkspaceManagerReady = createEvent(this, "isWorkspaceManagerReady");
19
+ this.workspaceChange = createEvent(this, "workspaceChange");
20
+ this.workspaces = [];
21
+ this.editingIndex = null;
22
+ this.newWorkspace = null;
23
+ this.kritzelEngine = null;
24
+ this.handleNewWorkspace = async () => {
25
+ var _a;
26
+ await ((_a = this.splitButtonRef) === null || _a === void 0 ? void 0 : _a.openMenu());
27
+ requestAnimationFrame(() => {
28
+ this.newWorkspace = new KritzelWorkspace(ObjectHelper.generateUUID(), 'New Workspace');
29
+ this.editingIndex = 0;
30
+ });
31
+ };
32
+ this.handleMenuClosed = () => {
33
+ this.editingIndex = null;
34
+ this.newWorkspace = null;
35
+ };
36
+ this.handleSave = async (item) => {
37
+ const workspace = item.value;
38
+ const updatedWorkspace = Object.assign(Object.assign({}, workspace), { name: item.label });
39
+ if (this.newWorkspace) {
40
+ await this.kritzelEngine.createWorkspace(updatedWorkspace);
41
+ this.selectWorkspace(updatedWorkspace);
42
+ }
43
+ else {
44
+ await this.kritzelEngine.updateWorkspace(updatedWorkspace);
45
+ }
46
+ this.editingIndex = null;
47
+ this.newWorkspace = null;
48
+ };
49
+ this.handleRename = (index) => {
50
+ this.editingIndex = index;
51
+ };
52
+ this.handleDelete = async (workspaceToDelete) => {
53
+ var _a;
54
+ await this.kritzelEngine.deleteWorkspace(workspaceToDelete);
55
+ if (((_a = this.activeWorkspace) === null || _a === void 0 ? void 0 : _a.id) === workspaceToDelete.id) {
56
+ const newActiveWorkspace = this.sortedWorkspaces.find(w => w.id !== workspaceToDelete.id) || null;
57
+ this.selectWorkspace(newActiveWorkspace);
58
+ }
59
+ };
60
+ }
61
+ get sortedWorkspaces() {
62
+ const uniqueWorkspaces = [...new Map(this.workspaces.map(workspace => [workspace.id, workspace])).values()];
63
+ return [this.newWorkspace, ...uniqueWorkspaces].filter(ws => ws !== null).sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime());
64
+ }
65
+ get activeItemIndex() {
66
+ return this.sortedWorkspaces.findIndex(ws => { var _a; return ws.id === ((_a = this.activeWorkspace) === null || _a === void 0 ? void 0 : _a.id); });
67
+ }
68
+ async componentWillLoad() {
69
+ await this.initializeEngine();
70
+ this.isWorkspaceManagerReady.emit();
71
+ }
72
+ async initializeEngine() {
73
+ await customElements.whenDefined('kritzel-engine');
74
+ this.kritzelEngine = this.host.parentElement.querySelector('kritzel-engine');
75
+ if (!this.kritzelEngine) {
76
+ throw new Error('kritzel-engine not found in parent element.');
77
+ }
78
+ }
79
+ handleSelect(workspace) {
80
+ this.selectWorkspace(workspace);
81
+ }
82
+ selectWorkspace(workspace) {
83
+ if (this.editingIndex !== null)
84
+ return;
85
+ this.activeWorkspace = this.sortedWorkspaces.find(ws => ws.id === workspace.id);
86
+ this.workspaceChange.emit(workspace);
87
+ }
88
+ render() {
89
+ const workspaceSelectionOptions = this.sortedWorkspaces.map((ws, index) => ({
90
+ label: ws.name,
91
+ value: ws,
92
+ select: () => this.handleSelect(ws),
93
+ cancel: this.handleMenuClosed,
94
+ save: this.handleSave,
95
+ children: [
96
+ {
97
+ label: 'Rename',
98
+ value: 'rename',
99
+ select: () => this.handleRename(index),
100
+ },
101
+ {
102
+ label: 'Delete',
103
+ value: 'delete',
104
+ disabled: this.sortedWorkspaces.length <= 1,
105
+ select: () => this.handleDelete(ws),
106
+ },
107
+ ],
108
+ }));
109
+ return (h(Host, { key: '1703451717d5583d6520edfbcdbe38a5b8f6840f' }, h("kritzel-split-button", { key: 'efd5d9b714ee72b23fd28c9b20ea6985957fe9b9', ref: el => (this.splitButtonRef = el), buttonIcon: "plus", options: workspaceSelectionOptions, activeItemIndex: this.activeItemIndex, editingIndex: this.editingIndex, onButtonClick: this.handleNewWorkspace, onMenuClosed: this.handleMenuClosed })));
110
+ }
111
+ get host() { return this; }
112
+ static get style() { return kritzelWorkspaceManagerCss; }
113
+ }, [257, "kritzel-workspace-manager", {
114
+ "workspaces": [16],
115
+ "activeWorkspace": [1040, "active-workspace"],
116
+ "editingIndex": [32],
117
+ "newWorkspace": [32]
118
+ }]);
119
+ function defineCustomElement() {
120
+ if (typeof customElements === "undefined") {
121
+ return;
122
+ }
123
+ const components = ["kritzel-workspace-manager", "kritzel-icon", "kritzel-menu", "kritzel-portal", "kritzel-split-button"];
124
+ components.forEach(tagName => { switch (tagName) {
125
+ case "kritzel-workspace-manager":
126
+ if (!customElements.get(tagName)) {
127
+ customElements.define(tagName, KritzelWorkspaceManager);
128
+ }
129
+ break;
130
+ case "kritzel-icon":
131
+ if (!customElements.get(tagName)) {
132
+ defineCustomElement$4();
133
+ }
134
+ break;
135
+ case "kritzel-menu":
136
+ if (!customElements.get(tagName)) {
137
+ defineCustomElement$3();
138
+ }
139
+ break;
140
+ case "kritzel-portal":
141
+ if (!customElements.get(tagName)) {
142
+ defineCustomElement$2();
143
+ }
144
+ break;
145
+ case "kritzel-split-button":
146
+ if (!customElements.get(tagName)) {
147
+ defineCustomElement$1();
148
+ }
149
+ break;
150
+ } });
151
+ }
152
+
153
+ export { KritzelWorkspaceManager as K, defineCustomElement as d };
154
+ //# sourceMappingURL=p-sQmW5NRu.js.map
155
+
156
+ //# sourceMappingURL=p-sQmW5NRu.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-sQmW5NRu.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.css?tag=kritzel-workspace-manager&encapsulation=shadow","src/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.tsx"],"sourcesContent":[":host {\r\n display: flex;\r\n flex-direction: column;\r\n z-index: 1;\r\n}\r\n","import { Component, Element, Event, EventEmitter, Host, Prop, State, h } from '@stencil/core';\r\nimport { KritzelWorkspace } from '../../../classes/workspace.class';\r\nimport { ObjectHelper } from '../../../helpers/object.helper';\r\nimport { KritzelMenuItem } from '../../../interfaces/menu-item.interface';\r\n\r\n@Component({\r\n tag: 'kritzel-workspace-manager',\r\n styleUrl: 'kritzel-workspace-manager.css',\r\n shadow: true,\r\n})\r\nexport class KritzelWorkspaceManager {\r\n @Prop()\r\n workspaces: KritzelWorkspace[] = [];\r\n\r\n @Prop({ mutable: true })\r\n activeWorkspace: KritzelWorkspace;\r\n\r\n @State()\r\n editingIndex: number | null = null;\r\n\r\n @State()\r\n newWorkspace: KritzelWorkspace | null = null;\r\n\r\n @Event()\r\n isWorkspaceManagerReady: EventEmitter<void>;\r\n\r\n @Event()\r\n workspaceChange: EventEmitter<KritzelWorkspace>;\r\n\r\n @Element()\r\n host!: HTMLElement;\r\n\r\n kritzelEngine: HTMLKritzelEngineElement | null = null;\r\n\r\n splitButtonRef!: HTMLKritzelSplitButtonElement;\r\n\r\n get sortedWorkspaces() {\r\n const uniqueWorkspaces = [...new Map(this.workspaces.map(workspace => [workspace.id, workspace])).values()];\r\n return [this.newWorkspace, ...uniqueWorkspaces].filter(ws => ws !== null).sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime());\r\n }\r\n\r\n get activeItemIndex() {\r\n return this.sortedWorkspaces.findIndex(ws => ws.id === this.activeWorkspace?.id);\r\n }\r\n\r\n async componentWillLoad() {\r\n await this.initializeEngine();\r\n this.isWorkspaceManagerReady.emit();\r\n }\r\n\r\n private async initializeEngine() {\r\n await customElements.whenDefined('kritzel-engine');\r\n this.kritzelEngine = this.host.parentElement.querySelector('kritzel-engine');\r\n\r\n if (!this.kritzelEngine) {\r\n throw new Error('kritzel-engine not found in parent element.');\r\n }\r\n }\r\n\r\n private handleSelect(workspace: KritzelWorkspace) {\r\n this.selectWorkspace(workspace);\r\n }\r\n\r\n private handleNewWorkspace = async () => {\r\n await this.splitButtonRef?.openMenu();\r\n\r\n requestAnimationFrame(() => {\r\n this.newWorkspace = new KritzelWorkspace(ObjectHelper.generateUUID(), 'New Workspace');\r\n this.editingIndex = 0;\r\n });\r\n };\r\n\r\n private handleMenuClosed = () => {\r\n this.editingIndex = null;\r\n this.newWorkspace = null;\r\n };\r\n\r\n private handleSave = async (item: KritzelMenuItem<KritzelWorkspace>) => {\r\n const workspace = item.value;\r\n const updatedWorkspace = { ...workspace, name: item.label };\r\n\r\n if (this.newWorkspace) {\r\n await this.kritzelEngine.createWorkspace(updatedWorkspace);\r\n this.selectWorkspace(updatedWorkspace);\r\n } else {\r\n await this.kritzelEngine.updateWorkspace(updatedWorkspace);\r\n }\r\n this.editingIndex = null;\r\n this.newWorkspace = null;\r\n };\r\n\r\n private handleRename = (index: number) => {\r\n this.editingIndex = index;\r\n };\r\n\r\n private handleDelete = async (workspaceToDelete: KritzelWorkspace) => {\r\n await this.kritzelEngine.deleteWorkspace(workspaceToDelete);\r\n\r\n if (this.activeWorkspace?.id === workspaceToDelete.id) {\r\n const newActiveWorkspace = this.sortedWorkspaces.find(w => w.id !== workspaceToDelete.id) || null;\r\n this.selectWorkspace(newActiveWorkspace);\r\n }\r\n };\r\n\r\n private selectWorkspace(workspace: KritzelWorkspace) {\r\n if (this.editingIndex !== null) return;\r\n this.activeWorkspace = this.sortedWorkspaces.find(ws => ws.id === workspace.id);\r\n this.workspaceChange.emit(workspace);\r\n }\r\n\r\n render() {\r\n const workspaceSelectionOptions: KritzelMenuItem<KritzelWorkspace>[] = this.sortedWorkspaces.map((ws, index) => ({\r\n label: ws.name,\r\n value: ws,\r\n select: () => this.handleSelect(ws),\r\n cancel: this.handleMenuClosed,\r\n save: this.handleSave,\r\n children: [\r\n {\r\n label: 'Rename',\r\n value: 'rename',\r\n select: () => this.handleRename(index),\r\n },\r\n {\r\n label: 'Delete',\r\n value: 'delete',\r\n disabled: this.sortedWorkspaces.length <= 1,\r\n select: () => this.handleDelete(ws),\r\n },\r\n ],\r\n }));\r\n\r\n return (\r\n <Host>\r\n <kritzel-split-button\r\n ref={el => (this.splitButtonRef = el)}\r\n buttonIcon=\"plus\"\r\n options={workspaceSelectionOptions}\r\n activeItemIndex={this.activeItemIndex}\r\n editingIndex={this.editingIndex}\r\n onButtonClick={this.handleNewWorkspace}\r\n onMenuClosed={this.handleMenuClosed}\r\n ></kritzel-split-button>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
@@ -0,0 +1,6 @@
1
+ const globalScripts = () => {};
2
+
3
+ export { globalScripts as g };
4
+ //# sourceMappingURL=app-globals-DQuL1Twl.js.map
5
+
6
+ //# sourceMappingURL=app-globals-DQuL1Twl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-globals-DQuL1Twl.js","sources":["@stencil/core/internal/app-globals"],"sourcesContent":["export const globalScripts = () => {};\nexport const globalStyles = \"\";\n"],"names":[],"mappings":"AAAY,MAAC,aAAa,GAAG,MAAM;;;;"}