kritzel-stencil 0.0.127 → 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 (291) hide show
  1. package/dist/cjs/{index-BacMQbNR.js → index-C7Read21.js} +165 -82
  2. package/dist/cjs/index-C7Read21.js.map +1 -0
  3. package/dist/cjs/{index-C05uAr89.js → index-CUSIflVf.js} +12 -6
  4. package/dist/cjs/index-CUSIflVf.js.map +1 -0
  5. package/dist/cjs/index.cjs.js +1 -3
  6. package/dist/cjs/{kritzel-brush-style_18.cjs.entry.js → kritzel-brush-style_22.cjs.entry.js} +979 -211
  7. package/dist/cjs/loader.cjs.js +2 -4
  8. package/dist/cjs/stencil.cjs.js +3 -5
  9. package/dist/cjs/stencil.cjs.js.map +1 -1
  10. package/dist/collection/classes/commands/add-object.command.js +5 -2
  11. package/dist/collection/classes/commands/add-object.command.js.map +1 -1
  12. package/dist/collection/classes/commands/add-selection-group.command.js +2 -2
  13. package/dist/collection/classes/commands/add-selection-group.command.js.map +1 -1
  14. package/dist/collection/classes/commands/base.command.js +2 -2
  15. package/dist/collection/classes/commands/base.command.js.map +1 -1
  16. package/dist/collection/classes/commands/batch.command.js +2 -2
  17. package/dist/collection/classes/commands/batch.command.js.map +1 -1
  18. package/dist/collection/classes/commands/move-selection-group.command.js +2 -2
  19. package/dist/collection/classes/commands/move-selection-group.command.js.map +1 -1
  20. package/dist/collection/classes/commands/remove-object.command.js +5 -2
  21. package/dist/collection/classes/commands/remove-object.command.js.map +1 -1
  22. package/dist/collection/classes/commands/remove-selection-group.command.js +2 -2
  23. package/dist/collection/classes/commands/remove-selection-group.command.js.map +1 -1
  24. package/dist/collection/classes/commands/resize-selection-group.command.js +2 -2
  25. package/dist/collection/classes/commands/resize-selection-group.command.js.map +1 -1
  26. package/dist/collection/classes/commands/rotate-selection-group.command.js +2 -2
  27. package/dist/collection/classes/commands/rotate-selection-group.command.js.map +1 -1
  28. package/dist/collection/classes/commands/update-object.command.js +5 -2
  29. package/dist/collection/classes/commands/update-object.command.js.map +1 -1
  30. package/dist/collection/classes/commands/update-viewport.command.js +2 -2
  31. package/dist/collection/classes/commands/update-viewport.command.js.map +1 -1
  32. package/dist/collection/classes/database.class.js +227 -0
  33. package/dist/collection/classes/database.class.js.map +1 -0
  34. package/dist/collection/classes/handlers/key.handler.js +0 -1
  35. package/dist/collection/classes/handlers/key.handler.js.map +1 -1
  36. package/dist/collection/classes/handlers/move.handler.js +18 -2
  37. package/dist/collection/classes/handlers/move.handler.js.map +1 -1
  38. package/dist/collection/classes/handlers/resize.handler.js +10 -2
  39. package/dist/collection/classes/handlers/resize.handler.js.map +1 -1
  40. package/dist/collection/classes/handlers/rotation.handler.js +18 -2
  41. package/dist/collection/classes/handlers/rotation.handler.js.map +1 -1
  42. package/dist/collection/classes/history.class.js +18 -5
  43. package/dist/collection/classes/history.class.js.map +1 -1
  44. package/dist/collection/classes/objects/base-object.class.js +1 -0
  45. package/dist/collection/classes/objects/base-object.class.js.map +1 -1
  46. package/dist/collection/classes/objects/custom-element.class.js +1 -0
  47. package/dist/collection/classes/objects/custom-element.class.js.map +1 -1
  48. package/dist/collection/classes/objects/image.class.js +1 -0
  49. package/dist/collection/classes/objects/image.class.js.map +1 -1
  50. package/dist/collection/classes/objects/path.class.js +1 -0
  51. package/dist/collection/classes/objects/path.class.js.map +1 -1
  52. package/dist/collection/classes/objects/selection-box.class.js +1 -0
  53. package/dist/collection/classes/objects/selection-box.class.js.map +1 -1
  54. package/dist/collection/classes/objects/selection-group.class.js +1 -0
  55. package/dist/collection/classes/objects/selection-group.class.js.map +1 -1
  56. package/dist/collection/classes/objects/text.class.js +7 -4
  57. package/dist/collection/classes/objects/text.class.js.map +1 -1
  58. package/dist/collection/classes/registries/icon-registry.class.js +5 -1
  59. package/dist/collection/classes/registries/icon-registry.class.js.map +1 -1
  60. package/dist/collection/classes/store.class.js +143 -20
  61. package/dist/collection/classes/store.class.js.map +1 -1
  62. package/dist/collection/classes/structures/octree.structure.js +4 -0
  63. package/dist/collection/classes/structures/octree.structure.js.map +1 -1
  64. package/dist/collection/classes/tools/image-tool.class.js +3 -0
  65. package/dist/collection/classes/tools/image-tool.class.js.map +1 -1
  66. package/dist/collection/classes/tools/text-tool.class.js +2 -2
  67. package/dist/collection/classes/tools/text-tool.class.js.map +1 -1
  68. package/dist/collection/classes/viewport.class.js +4 -0
  69. package/dist/collection/classes/viewport.class.js.map +1 -1
  70. package/dist/collection/classes/workspace.class.js +10 -0
  71. package/dist/collection/classes/workspace.class.js.map +1 -0
  72. package/dist/collection/collection-manifest.json +6 -2
  73. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +1 -1
  74. package/dist/collection/components/core/kritzel-editor/kritzel-editor.css +5 -0
  75. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +14 -16
  76. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +1 -1
  77. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +235 -39
  78. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +1 -1
  79. package/dist/collection/components/shared/kritzel-color/kritzel-color.js +2 -2
  80. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.css +1 -1
  81. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +1 -1
  82. package/dist/collection/components/shared/kritzel-font/kritzel-font.js +1 -1
  83. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js +1 -1
  84. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.css +1 -1
  85. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +1 -1
  86. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.css +166 -0
  87. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +272 -0
  88. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js.map +1 -0
  89. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +218 -0
  90. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js.map +1 -0
  91. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.css +74 -0
  92. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +324 -0
  93. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js.map +1 -0
  94. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.css +2 -2
  95. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +1 -1
  96. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +4 -4
  97. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.css +1 -1
  98. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +24 -61
  99. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js.map +1 -1
  100. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +2 -2
  101. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js +2 -2
  102. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.css +3 -3
  103. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +29 -17
  104. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js.map +1 -1
  105. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +1 -1
  106. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.css +5 -0
  107. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js +209 -0
  108. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js.map +1 -0
  109. package/dist/collection/configs/default-engine-state.js +5 -2
  110. package/dist/collection/configs/default-engine-state.js.map +1 -1
  111. package/dist/collection/helpers/class.helper.js +1 -1
  112. package/dist/collection/helpers/class.helper.js.map +1 -1
  113. package/dist/collection/helpers/html.helper.js +30 -1
  114. package/dist/collection/helpers/html.helper.js.map +1 -1
  115. package/dist/collection/helpers/object.helper.js +1 -1
  116. package/dist/collection/helpers/object.helper.js.map +1 -1
  117. package/dist/collection/interfaces/command.interface.js.map +1 -1
  118. package/dist/collection/interfaces/debug-info.interface.js.map +1 -1
  119. package/dist/collection/interfaces/engine-state.interface.js.map +1 -1
  120. package/dist/collection/interfaces/menu-item.interface.js +2 -0
  121. package/dist/collection/interfaces/menu-item.interface.js.map +1 -0
  122. package/dist/collection/interfaces/object.interface.js.map +1 -1
  123. package/dist/components/index.d.ts +8 -0
  124. package/dist/components/index.js +7 -3
  125. package/dist/components/index.js.map +1 -1
  126. package/dist/components/kritzel-brush-style.js +1 -1
  127. package/dist/components/kritzel-color-palette.js +1 -1
  128. package/dist/components/kritzel-color.js +1 -1
  129. package/dist/components/kritzel-context-menu.js +1 -1
  130. package/dist/components/kritzel-control-brush-config.js +1 -1
  131. package/dist/components/kritzel-control-text-config.js +1 -1
  132. package/dist/components/kritzel-controls.js +1 -1
  133. package/dist/components/kritzel-cursor-trail.js +1 -1
  134. package/dist/components/kritzel-dropdown.js +1 -1
  135. package/dist/components/kritzel-editor.js +79 -49
  136. package/dist/components/kritzel-editor.js.map +1 -1
  137. package/dist/components/kritzel-engine.js +1 -1
  138. package/dist/components/kritzel-font-family.js +1 -1
  139. package/dist/components/kritzel-font-size.js +1 -1
  140. package/dist/components/kritzel-font.js +1 -1
  141. package/dist/components/kritzel-icon.js +1 -1
  142. package/dist/components/kritzel-menu.d.ts +11 -0
  143. package/dist/components/kritzel-menu.js +9 -0
  144. package/dist/components/kritzel-menu.js.map +1 -0
  145. package/dist/components/kritzel-portal.d.ts +11 -0
  146. package/dist/components/kritzel-portal.js +9 -0
  147. package/dist/components/kritzel-portal.js.map +1 -0
  148. package/dist/components/kritzel-split-button.d.ts +11 -0
  149. package/dist/components/kritzel-split-button.js +9 -0
  150. package/dist/components/kritzel-split-button.js.map +1 -0
  151. package/dist/components/kritzel-stroke-size.js +1 -1
  152. package/dist/components/kritzel-tooltip.js +1 -1
  153. package/dist/components/kritzel-utility-panel.js +1 -1
  154. package/dist/components/kritzel-workspace-manager.d.ts +11 -0
  155. package/dist/components/kritzel-workspace-manager.js +9 -0
  156. package/dist/components/kritzel-workspace-manager.js.map +1 -0
  157. package/dist/components/{p-DfJEh7HZ.js → p-5CJxFNEE.js} +9 -7
  158. package/dist/components/p-5CJxFNEE.js.map +1 -0
  159. package/dist/components/{p-ljdIU3DL.js → p-B7VrEdgP.js} +63 -63
  160. package/dist/components/p-B7VrEdgP.js.map +1 -0
  161. package/dist/components/{p-DJc6_PyL.js → p-BAPUTr3K.js} +10 -8
  162. package/dist/components/p-BAPUTr3K.js.map +1 -0
  163. package/dist/components/{p-DSWoCkxm.js → p-BB22cVkU.js} +42 -34
  164. package/dist/components/p-BB22cVkU.js.map +1 -0
  165. package/dist/components/{p-CtiROna-.js → p-BLmFBe2a.js} +12 -6
  166. package/dist/components/p-BLmFBe2a.js.map +1 -0
  167. package/dist/components/p-BU2q3PRS.js +84 -0
  168. package/dist/components/p-BU2q3PRS.js.map +1 -0
  169. package/dist/components/{p-Dp8hrISj.js → p-BZ-j_4CK.js} +8 -6
  170. package/dist/components/p-BZ-j_4CK.js.map +1 -0
  171. package/dist/components/{p-BhC-Et5I.js → p-BaKb8ZLg.js} +16 -14
  172. package/dist/components/p-BaKb8ZLg.js.map +1 -0
  173. package/dist/components/p-Bb6od8He.js +42 -0
  174. package/dist/components/p-Bb6od8He.js.map +1 -0
  175. package/dist/components/{p-DcvujuV_.js → p-BcQTDgzV.js} +10 -8
  176. package/dist/components/p-BcQTDgzV.js.map +1 -0
  177. package/dist/components/p-BeVv4o5c.js +14 -0
  178. package/dist/components/p-BeVv4o5c.js.map +1 -0
  179. package/dist/components/p-BmJbJwkH.js +167 -0
  180. package/dist/components/p-BmJbJwkH.js.map +1 -0
  181. package/dist/components/{p-DJN0U8pI.js → p-BqrTPNyu.js} +10 -7
  182. package/dist/components/p-BqrTPNyu.js.map +1 -0
  183. package/dist/components/{p-NZJPrwJV.js → p-BvlGgLAQ.js} +7 -5
  184. package/dist/components/p-BvlGgLAQ.js.map +1 -0
  185. package/dist/components/{p-BOUCnklW.js → p-BzSz74Ci.js} +9 -7
  186. package/dist/components/p-BzSz74Ci.js.map +1 -0
  187. package/dist/components/{p-CudOuOAW.js → p-D-zg05gA.js} +558 -126
  188. package/dist/components/p-D-zg05gA.js.map +1 -0
  189. package/dist/components/p-D8W6LE-c.js.map +1 -1
  190. package/dist/components/p-DV4ERZv5.js +112 -0
  191. package/dist/components/p-DV4ERZv5.js.map +1 -0
  192. package/dist/components/{p-EQo4-DJT.js → p-DtmZW6eP.js} +8 -6
  193. package/dist/components/p-DtmZW6eP.js.map +1 -0
  194. package/dist/components/{p-C9usqwb5.js → p-V4ui5aWj.js} +9 -7
  195. package/dist/components/p-V4ui5aWj.js.map +1 -0
  196. package/dist/components/{p-BubFkS0u.js → p-_ntxNi8v.js} +9 -7
  197. package/dist/components/p-_ntxNi8v.js.map +1 -0
  198. package/dist/components/{p-BkFzf8vg.js → p-a7KmQzo4.js} +15 -13
  199. package/dist/components/p-a7KmQzo4.js.map +1 -0
  200. package/dist/components/p-hSuNJiIq.js +152 -0
  201. package/dist/components/p-hSuNJiIq.js.map +1 -0
  202. package/dist/components/{p-CmlcJ8Kw.js → p-jG1e48OE.js} +11 -9
  203. package/dist/components/p-jG1e48OE.js.map +1 -0
  204. package/dist/components/{p-D5a8vnRF.js → p-rQeWFfPG.js} +10 -8
  205. package/dist/components/p-rQeWFfPG.js.map +1 -0
  206. package/dist/components/p-sQmW5NRu.js +156 -0
  207. package/dist/components/p-sQmW5NRu.js.map +1 -0
  208. package/dist/esm/{index-D37FADaF.js → index-J4NpPimy.js} +163 -83
  209. package/dist/esm/index-J4NpPimy.js.map +1 -0
  210. package/dist/esm/{index-BGl8znzE.js → index-NiIEUDzj.js} +12 -6
  211. package/dist/esm/index-NiIEUDzj.js.map +1 -0
  212. package/dist/esm/index.js +1 -3
  213. package/dist/esm/{kritzel-brush-style_18.entry.js → kritzel-brush-style_22.entry.js} +969 -205
  214. package/dist/esm/loader.js +3 -5
  215. package/dist/esm/stencil.js +4 -6
  216. package/dist/esm/stencil.js.map +1 -1
  217. package/dist/stencil/index.esm.js +1 -1
  218. package/dist/stencil/p-4a0009e7.entry.js +2 -0
  219. package/dist/stencil/p-4a0009e7.entry.js.map +1 -0
  220. package/dist/stencil/p-J4NpPimy.js +2 -0
  221. package/dist/stencil/p-J4NpPimy.js.map +1 -0
  222. package/dist/stencil/{p-BGl8znzE.js → p-NiIEUDzj.js} +3 -3
  223. package/dist/stencil/p-NiIEUDzj.js.map +1 -0
  224. package/dist/stencil/stencil.esm.js +1 -1
  225. package/dist/stencil/stencil.esm.js.map +1 -1
  226. package/dist/types/classes/commands/add-object.command.d.ts +1 -1
  227. package/dist/types/classes/commands/add-selection-group.command.d.ts +1 -1
  228. package/dist/types/classes/commands/base.command.d.ts +2 -2
  229. package/dist/types/classes/commands/batch.command.d.ts +1 -1
  230. package/dist/types/classes/commands/move-selection-group.command.d.ts +1 -1
  231. package/dist/types/classes/commands/remove-object.command.d.ts +1 -1
  232. package/dist/types/classes/commands/remove-selection-group.command.d.ts +1 -1
  233. package/dist/types/classes/commands/resize-selection-group.command.d.ts +1 -1
  234. package/dist/types/classes/commands/rotate-selection-group.command.d.ts +1 -1
  235. package/dist/types/classes/commands/update-object.command.d.ts +1 -1
  236. package/dist/types/classes/commands/update-viewport.command.d.ts +1 -1
  237. package/dist/types/classes/database.class.d.ts +28 -0
  238. package/dist/types/classes/history.class.d.ts +1 -0
  239. package/dist/types/classes/objects/base-object.class.d.ts +1 -0
  240. package/dist/types/classes/objects/text.class.d.ts +1 -1
  241. package/dist/types/classes/store.class.d.ts +19 -2
  242. package/dist/types/classes/structures/octree.structure.d.ts +1 -0
  243. package/dist/types/classes/workspace.class.d.ts +16 -0
  244. package/dist/types/components/core/kritzel-editor/kritzel-editor.d.ts +6 -1
  245. package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +12 -2
  246. package/dist/types/components/shared/kritzel-menu/kritzel-menu.d.ts +24 -0
  247. package/dist/types/components/shared/kritzel-portal/kritzel-portal.d.ts +24 -0
  248. package/dist/types/components/shared/kritzel-split-button/kritzel-split-button.d.ts +24 -0
  249. package/dist/types/components/ui/kritzel-context-menu/kritzel-context-menu.d.ts +3 -4
  250. package/dist/types/components/ui/kritzel-controls/kritzel-controls.d.ts +2 -1
  251. package/dist/types/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.d.ts +25 -0
  252. package/dist/types/components.d.ts +250 -2
  253. package/dist/types/helpers/html.helper.d.ts +3 -1
  254. package/dist/types/interfaces/command.interface.d.ts +1 -1
  255. package/dist/types/interfaces/debug-info.interface.d.ts +1 -0
  256. package/dist/types/interfaces/engine-state.interface.d.ts +3 -0
  257. package/dist/types/interfaces/menu-item.interface.d.ts +9 -0
  258. package/dist/types/interfaces/object.interface.d.ts +1 -0
  259. package/dist/types/stencil-public-runtime.d.ts +21 -0
  260. package/package.json +2 -1
  261. package/dist/cjs/index-BacMQbNR.js.map +0 -1
  262. package/dist/cjs/index-C05uAr89.js.map +0 -1
  263. package/dist/cjs/kritzel-brush-style_18.cjs.entry.js.map +0 -1
  264. package/dist/components/p-2gNwfcSP.js +0 -119
  265. package/dist/components/p-2gNwfcSP.js.map +0 -1
  266. package/dist/components/p-BOUCnklW.js.map +0 -1
  267. package/dist/components/p-BhC-Et5I.js.map +0 -1
  268. package/dist/components/p-BkFzf8vg.js.map +0 -1
  269. package/dist/components/p-BubFkS0u.js.map +0 -1
  270. package/dist/components/p-C9usqwb5.js.map +0 -1
  271. package/dist/components/p-CmlcJ8Kw.js.map +0 -1
  272. package/dist/components/p-CtiROna-.js.map +0 -1
  273. package/dist/components/p-CudOuOAW.js.map +0 -1
  274. package/dist/components/p-D5a8vnRF.js.map +0 -1
  275. package/dist/components/p-DJN0U8pI.js.map +0 -1
  276. package/dist/components/p-DJc6_PyL.js.map +0 -1
  277. package/dist/components/p-DSWoCkxm.js.map +0 -1
  278. package/dist/components/p-DcvujuV_.js.map +0 -1
  279. package/dist/components/p-DfJEh7HZ.js.map +0 -1
  280. package/dist/components/p-Dp8hrISj.js.map +0 -1
  281. package/dist/components/p-EQo4-DJT.js.map +0 -1
  282. package/dist/components/p-NZJPrwJV.js.map +0 -1
  283. package/dist/components/p-ljdIU3DL.js.map +0 -1
  284. package/dist/esm/index-BGl8znzE.js.map +0 -1
  285. package/dist/esm/index-D37FADaF.js.map +0 -1
  286. package/dist/esm/kritzel-brush-style_18.entry.js.map +0 -1
  287. package/dist/stencil/p-BGl8znzE.js.map +0 -1
  288. package/dist/stencil/p-D37FADaF.js +0 -2
  289. package/dist/stencil/p-D37FADaF.js.map +0 -1
  290. package/dist/stencil/p-e6ac7fc6.entry.js +0 -2
  291. package/dist/stencil/p-e6ac7fc6.entry.js.map +0 -1
@@ -0,0 +1,324 @@
1
+ import { h, Host } from "@stencil/core";
2
+ export class KritzelSplitButton {
3
+ constructor() {
4
+ this.dropdownIcon = 'chevron-down';
5
+ this.options = [];
6
+ this.disabled = false;
7
+ this.activeItemIndex = null;
8
+ this.editingIndex = null;
9
+ this.isMenuOpen = false;
10
+ this.handleDocumentClick = (event) => {
11
+ const path = (event.composedPath && event.composedPath()) || [];
12
+ const clickedInside = path.some(node => (node === null || node === void 0 ? void 0 : node.tagName) === 'KRITZEL-SPLIT-BUTTON' || (node === null || node === void 0 ? void 0 : node.tagName) === 'KRITZEL-MENU');
13
+ if (!clickedInside) {
14
+ this.closeMenu();
15
+ }
16
+ else if (this.isMenuOpen) {
17
+ document.addEventListener('click', this.handleDocumentClick, { once: true });
18
+ }
19
+ };
20
+ this.toggleMenu = () => {
21
+ if (this.isMenuOpen) {
22
+ this.closeMenu();
23
+ }
24
+ else {
25
+ this.openMenu();
26
+ }
27
+ };
28
+ this.handleButtonClick = () => {
29
+ if (!this.disabled) {
30
+ this.buttonClick.emit();
31
+ }
32
+ };
33
+ }
34
+ async openMenu() {
35
+ if (this.disabled || this.isMenuOpen)
36
+ return;
37
+ this.isMenuOpen = true;
38
+ this.menuOpened.emit();
39
+ document.addEventListener('click', this.handleDocumentClick, { once: true });
40
+ }
41
+ async closeMenu() {
42
+ if (this.disabled || !this.isMenuOpen)
43
+ return;
44
+ this.isMenuOpen = false;
45
+ this.menuClosed.emit();
46
+ this.host.focus();
47
+ }
48
+ render() {
49
+ return (h(Host, { key: 'cf133b2867dffe6b9d70259c7d44b86342411d38', tabIndex: 0 }, h("button", { key: '3044cd9cbe02dde919a276b9f1d8f1f24b8514e9', class: "split-main-button", tabIndex: 0, onClick: this.handleButtonClick, disabled: this.disabled }, this.buttonIcon && h("kritzel-icon", { key: '4ed314f7288df567bb35a909c4919cf353788dd2', name: this.buttonIcon }), this.buttonText && (h("span", { key: '68b2148200e4698468aae137d16a4b5f17764f9f' }, this.buttonText, " (", this.options.length, ")"))), h("div", { key: '5047a2aea1d31e80fba8f6350e4b64572198c87d', class: "split-divider" }), h("button", { key: 'd7b33d9c717553d7cff3c3d2fafe90ce9dce1e67', ref: el => (this.splitMenuButton = el), class: "split-menu-button", tabIndex: 0, onClick: this.toggleMenu, disabled: this.disabled }, h("kritzel-icon", { key: 'a3d485aee5e9843c2d07d367a0d5743bfc8f3d5c', name: this.dropdownIcon })), h("kritzel-portal", { key: '2bb8f5c58884e6c73d3d7025a8e6efce770ab039', anchor: this.host, offsetY: 4 }, this.isMenuOpen && (h("kritzel-menu", { key: '3f2bb51a43ec78ff8664d5f625afa21cf9ecfb8c', style: { maxHeight: '300px', width: '180px' }, items: this.options, activeItemIndex: this.activeItemIndex, editingIndex: this.editingIndex, onClose: () => this.closeMenu() })))));
50
+ }
51
+ static get is() { return "kritzel-split-button"; }
52
+ static get encapsulation() { return "shadow"; }
53
+ static get originalStyleUrls() {
54
+ return {
55
+ "$": ["kritzel-split-button.css"]
56
+ };
57
+ }
58
+ static get styleUrls() {
59
+ return {
60
+ "$": ["kritzel-split-button.css"]
61
+ };
62
+ }
63
+ static get properties() {
64
+ return {
65
+ "buttonText": {
66
+ "type": "string",
67
+ "attribute": "button-text",
68
+ "mutable": false,
69
+ "complexType": {
70
+ "original": "string",
71
+ "resolved": "string",
72
+ "references": {}
73
+ },
74
+ "required": false,
75
+ "optional": false,
76
+ "docs": {
77
+ "tags": [],
78
+ "text": ""
79
+ },
80
+ "getter": false,
81
+ "setter": false,
82
+ "reflect": false
83
+ },
84
+ "buttonIcon": {
85
+ "type": "string",
86
+ "attribute": "button-icon",
87
+ "mutable": false,
88
+ "complexType": {
89
+ "original": "string",
90
+ "resolved": "string",
91
+ "references": {}
92
+ },
93
+ "required": false,
94
+ "optional": false,
95
+ "docs": {
96
+ "tags": [],
97
+ "text": ""
98
+ },
99
+ "getter": false,
100
+ "setter": false,
101
+ "reflect": false
102
+ },
103
+ "dropdownIcon": {
104
+ "type": "string",
105
+ "attribute": "dropdown-icon",
106
+ "mutable": false,
107
+ "complexType": {
108
+ "original": "string",
109
+ "resolved": "string",
110
+ "references": {}
111
+ },
112
+ "required": false,
113
+ "optional": false,
114
+ "docs": {
115
+ "tags": [],
116
+ "text": ""
117
+ },
118
+ "getter": false,
119
+ "setter": false,
120
+ "reflect": false,
121
+ "defaultValue": "'chevron-down'"
122
+ },
123
+ "options": {
124
+ "type": "unknown",
125
+ "attribute": "options",
126
+ "mutable": false,
127
+ "complexType": {
128
+ "original": "KritzelMenuItem[]",
129
+ "resolved": "KritzelMenuItem<any>[]",
130
+ "references": {
131
+ "KritzelMenuItem": {
132
+ "location": "import",
133
+ "path": "../../../interfaces/menu-item.interface",
134
+ "id": "src/interfaces/menu-item.interface.ts::KritzelMenuItem"
135
+ }
136
+ }
137
+ },
138
+ "required": false,
139
+ "optional": false,
140
+ "docs": {
141
+ "tags": [],
142
+ "text": ""
143
+ },
144
+ "getter": false,
145
+ "setter": false,
146
+ "defaultValue": "[]"
147
+ },
148
+ "disabled": {
149
+ "type": "boolean",
150
+ "attribute": "disabled",
151
+ "mutable": false,
152
+ "complexType": {
153
+ "original": "boolean",
154
+ "resolved": "boolean",
155
+ "references": {}
156
+ },
157
+ "required": false,
158
+ "optional": false,
159
+ "docs": {
160
+ "tags": [],
161
+ "text": ""
162
+ },
163
+ "getter": false,
164
+ "setter": false,
165
+ "reflect": false,
166
+ "defaultValue": "false"
167
+ },
168
+ "activeItemIndex": {
169
+ "type": "number",
170
+ "attribute": "active-item-index",
171
+ "mutable": false,
172
+ "complexType": {
173
+ "original": "number | null",
174
+ "resolved": "number",
175
+ "references": {}
176
+ },
177
+ "required": false,
178
+ "optional": false,
179
+ "docs": {
180
+ "tags": [],
181
+ "text": ""
182
+ },
183
+ "getter": false,
184
+ "setter": false,
185
+ "reflect": false,
186
+ "defaultValue": "null"
187
+ },
188
+ "editingIndex": {
189
+ "type": "number",
190
+ "attribute": "editing-index",
191
+ "mutable": false,
192
+ "complexType": {
193
+ "original": "number | null",
194
+ "resolved": "number",
195
+ "references": {}
196
+ },
197
+ "required": false,
198
+ "optional": false,
199
+ "docs": {
200
+ "tags": [],
201
+ "text": ""
202
+ },
203
+ "getter": false,
204
+ "setter": false,
205
+ "reflect": false,
206
+ "defaultValue": "null"
207
+ }
208
+ };
209
+ }
210
+ static get states() {
211
+ return {
212
+ "isMenuOpen": {}
213
+ };
214
+ }
215
+ static get events() {
216
+ return [{
217
+ "method": "buttonClick",
218
+ "name": "buttonClick",
219
+ "bubbles": true,
220
+ "cancelable": true,
221
+ "composed": true,
222
+ "docs": {
223
+ "tags": [],
224
+ "text": ""
225
+ },
226
+ "complexType": {
227
+ "original": "void",
228
+ "resolved": "void",
229
+ "references": {}
230
+ }
231
+ }, {
232
+ "method": "optionSelect",
233
+ "name": "optionSelect",
234
+ "bubbles": true,
235
+ "cancelable": true,
236
+ "composed": true,
237
+ "docs": {
238
+ "tags": [],
239
+ "text": ""
240
+ },
241
+ "complexType": {
242
+ "original": "KritzelMenuItem",
243
+ "resolved": "KritzelMenuItem<any>",
244
+ "references": {
245
+ "KritzelMenuItem": {
246
+ "location": "import",
247
+ "path": "../../../interfaces/menu-item.interface",
248
+ "id": "src/interfaces/menu-item.interface.ts::KritzelMenuItem"
249
+ }
250
+ }
251
+ }
252
+ }, {
253
+ "method": "menuOpened",
254
+ "name": "menuOpened",
255
+ "bubbles": true,
256
+ "cancelable": true,
257
+ "composed": true,
258
+ "docs": {
259
+ "tags": [],
260
+ "text": ""
261
+ },
262
+ "complexType": {
263
+ "original": "void",
264
+ "resolved": "void",
265
+ "references": {}
266
+ }
267
+ }, {
268
+ "method": "menuClosed",
269
+ "name": "menuClosed",
270
+ "bubbles": true,
271
+ "cancelable": true,
272
+ "composed": true,
273
+ "docs": {
274
+ "tags": [],
275
+ "text": ""
276
+ },
277
+ "complexType": {
278
+ "original": "void",
279
+ "resolved": "void",
280
+ "references": {}
281
+ }
282
+ }];
283
+ }
284
+ static get methods() {
285
+ return {
286
+ "openMenu": {
287
+ "complexType": {
288
+ "signature": "() => Promise<void>",
289
+ "parameters": [],
290
+ "references": {
291
+ "Promise": {
292
+ "location": "global",
293
+ "id": "global::Promise"
294
+ }
295
+ },
296
+ "return": "Promise<void>"
297
+ },
298
+ "docs": {
299
+ "text": "",
300
+ "tags": []
301
+ }
302
+ },
303
+ "closeMenu": {
304
+ "complexType": {
305
+ "signature": "() => Promise<void>",
306
+ "parameters": [],
307
+ "references": {
308
+ "Promise": {
309
+ "location": "global",
310
+ "id": "global::Promise"
311
+ }
312
+ },
313
+ "return": "Promise<void>"
314
+ },
315
+ "docs": {
316
+ "text": "",
317
+ "tags": []
318
+ }
319
+ }
320
+ };
321
+ }
322
+ static get elementRef() { return "host"; }
323
+ }
324
+ //# sourceMappingURL=kritzel-split-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kritzel-split-button.js","sourceRoot":"","sources":["../../../../src/components/shared/kritzel-split-button/kritzel-split-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Prop, State, Event, EventEmitter, Host, Element, Method } from '@stencil/core';\r\nimport { KritzelMenuItem } from '../../../interfaces/menu-item.interface';\r\n\r\n@Component({\r\n tag: 'kritzel-split-button',\r\n styleUrl: 'kritzel-split-button.css',\r\n shadow: true,\r\n})\r\nexport class KritzelSplitButton {\r\n @Prop()\r\n buttonText: string;\r\n\r\n @Prop()\r\n buttonIcon: string;\r\n\r\n @Prop()\r\n dropdownIcon = 'chevron-down';\r\n\r\n @Prop()\r\n options: KritzelMenuItem[] = [];\r\n\r\n @Prop()\r\n disabled = false;\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 @State()\r\n isMenuOpen = false;\r\n\r\n @Event()\r\n buttonClick: EventEmitter<void>;\r\n\r\n @Event()\r\n optionSelect: EventEmitter<KritzelMenuItem>;\r\n\r\n @Event()\r\n menuOpened: EventEmitter<void>;\r\n\r\n @Event()\r\n menuClosed: EventEmitter<void>;\r\n\r\n @Element()\r\n host!: HTMLElement;\r\n\r\n splitMenuButton: HTMLButtonElement;\r\n\r\n @Method()\r\n async openMenu() {\r\n if (this.disabled || this.isMenuOpen) return;\r\n\r\n this.isMenuOpen = true;\r\n this.menuOpened.emit();\r\n document.addEventListener('click', this.handleDocumentClick, { once: true });\r\n }\r\n\r\n @Method()\r\n async closeMenu() {\r\n if (this.disabled || !this.isMenuOpen) return;\r\n\r\n this.isMenuOpen = false;\r\n this.menuClosed.emit();\r\n\r\n this.host.focus();\r\n }\r\n\r\n private handleDocumentClick = (event: MouseEvent) => {\r\n const path = (event.composedPath && event.composedPath()) || [];\r\n const clickedInside = path.some(node => (node as HTMLElement)?.tagName === 'KRITZEL-SPLIT-BUTTON' || (node as HTMLElement)?.tagName === 'KRITZEL-MENU');\r\n\r\n if (!clickedInside) {\r\n this.closeMenu();\r\n } else if (this.isMenuOpen) {\r\n document.addEventListener('click', this.handleDocumentClick, { once: true });\r\n }\r\n };\r\n\r\n private toggleMenu = () => {\r\n if (this.isMenuOpen) {\r\n this.closeMenu();\r\n } else {\r\n this.openMenu();\r\n }\r\n };\r\n\r\n private handleButtonClick = () => {\r\n if (!this.disabled) {\r\n this.buttonClick.emit();\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n <Host tabIndex={0}>\r\n <button class=\"split-main-button\" tabIndex={0} onClick={this.handleButtonClick} disabled={this.disabled}>\r\n {this.buttonIcon && <kritzel-icon name={this.buttonIcon}></kritzel-icon>}\r\n {this.buttonText && (\r\n <span>\r\n {this.buttonText} ({this.options.length})\r\n </span>\r\n )}\r\n </button>\r\n\r\n <div class=\"split-divider\"></div>\r\n\r\n <button ref={el => (this.splitMenuButton = el)} class=\"split-menu-button\" tabIndex={0} onClick={this.toggleMenu} disabled={this.disabled}>\r\n <kritzel-icon name={this.dropdownIcon}></kritzel-icon>\r\n </button>\r\n\r\n <kritzel-portal anchor={this.host} offsetY={4}>\r\n {this.isMenuOpen && (\r\n <kritzel-menu\r\n style={{ maxHeight: '300px', width: '180px' }}\r\n items={this.options}\r\n activeItemIndex={this.activeItemIndex}\r\n editingIndex={this.editingIndex}\r\n onClose={() => this.closeMenu()}\r\n ></kritzel-menu>\r\n )}\r\n </kritzel-portal>\r\n </Host>\r\n );\r\n }\r\n}\r\n"]}
@@ -19,10 +19,10 @@
19
19
  }
20
20
 
21
21
  .size-container:hover {
22
- background-color: var(--kritzel-stroke-size-hover-background-color, #f0f0f0);
22
+ background-color: var(--kritzel-stroke-size-hover-background-color, #ebebeb);
23
23
  }
24
24
 
25
25
  .size-container.selected {
26
26
  border-color: var(--kritzel-selection-border-color, #007AFF);
27
- background-color: var(--kritzel-stroke-size-selected-background-color, #f0f0f0);
27
+ background-color: var(--kritzel-stroke-size-selected-background-color, #ebebeb);
28
28
  }
@@ -9,7 +9,7 @@ export class KritzelStrokeSize {
9
9
  this.sizeChange.emit(size);
10
10
  }
11
11
  render() {
12
- return (h(Host, { key: 'b481b62184551bc776042f58d2f27beba837f61d' }, this.sizes.map(size => (h("div", { class: {
12
+ return (h(Host, { key: '0185d3243c35c49169324c98f87df6a286fc3d31' }, this.sizes.map(size => (h("div", { class: {
13
13
  'size-container': true,
14
14
  'selected': this.selectedSize === size,
15
15
  }, onClick: () => this.handleSizeClick(size) }, h("kritzel-color", { value: '#000000', size: size }))))));
@@ -37,23 +37,23 @@ export class KritzelTooltip {
37
37
  }
38
38
  }
39
39
  render() {
40
- return (h(Host, { key: 'aed123eda0750df66229f0dd40eeafea39360901', style: {
40
+ return (h(Host, { key: '7610e8185e037813cc363daa3212a4164a20daaf', style: {
41
41
  position: 'fixed',
42
42
  zIndex: '9999',
43
43
  transition: 'opacity 0.3s ease-in-out, transform 0.3s ease-in-out',
44
44
  visibility: this.isVisible ? 'visible' : 'hidden',
45
45
  left: !this.isMobileView ? `${this.positionX}px` : '50%',
46
46
  marginBottom: `${this.offsetY + this.arrowSize}px`,
47
- } }, h("div", { key: 'ebd77cc44aea3a3ff193717f2dae7eedb55023fd', class: "tooltip-content", onClick: event => event.stopPropagation() }, h("slot", { key: '70966228bbe59b894eb472704f08b340c32bbad9' }), h("div", { key: '0d82c0f5b1531b39e48b9e80045771e3dda53964', class: "tooltip-arrow-wrapper", style: {
47
+ } }, h("div", { key: 'bd5c1f0f7ff3afddfcf2469277189d026e79b453', class: "tooltip-content", onClick: event => event.stopPropagation() }, h("slot", { key: '547e5a8fcb8131225461881a1ad0125fa4b0d55b' }), h("div", { key: 'de1d30c31667a81a36873d32bec20fcc911ec89f', class: "tooltip-arrow-wrapper", style: {
48
48
  position: 'fixed',
49
49
  left: this.arrowOffset,
50
50
  bottom: `-${this.arrowSize * 2}px`,
51
- } }, h("div", { key: '24b911e6fe5b5b9a1009d28c797c4c3d00f6f7c7', class: "tooltip-arrow", style: {
51
+ } }, h("div", { key: 'ebbf83bd4d35e252b0258a7c81ebcef48ac10004', class: "tooltip-arrow", style: {
52
52
  borderLeft: `${this.arrowSize}px solid transparent`,
53
53
  borderRight: `${this.arrowSize}px solid transparent`,
54
54
  borderTop: `${this.arrowSize}px solid var(--kritzel-controls-tooltip-background-color, #ffffff)`,
55
55
  filter: 'drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2))',
56
- } }), h("div", { key: '2a15c5e8614e57a763aa3d8d4f8d4138146ac0a7', class: "tooltip-arrow-rect", style: {
56
+ } }), h("div", { key: '918ca46c438657dc4f72ccc73f81d58076d637c5', class: "tooltip-arrow-rect", style: {
57
57
  position: 'relative',
58
58
  width: `${this.arrowSize * 2}px`,
59
59
  height: `${this.arrowSize}px`,
@@ -8,7 +8,7 @@
8
8
  background-color: var(--kritzel-context-menu-background-color, #ffffff);
9
9
  border-radius: var(--kritzel-context-menu-border-radius, 12px);
10
10
  box-shadow: var(--kritzel-context-menu-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.12));
11
- border: var(--kritzel-context-menu-border, 1px solid #f0f0f0);
11
+ border: var(--kritzel-context-menu-border, 1px solid #ebebeb);
12
12
  padding: var(--kritzel-context-menu-padding,4px);
13
13
  }
14
14
 
@@ -1,77 +1,41 @@
1
1
  import { Host, h } from "@stencil/core";
2
2
  export class KritzelContextMenu {
3
3
  constructor() {
4
- this.disabledStates = new Map();
5
- this.visibleItems = [];
4
+ this.processedItems = [];
6
5
  }
7
6
  componentWillLoad() {
8
- this.resolveVisibleItems();
9
- this.resolveDisabledStates();
7
+ this.updateMenuItems();
10
8
  }
11
9
  onItemsChanged() {
12
- this.resolveVisibleItems();
13
- this.resolveDisabledStates();
10
+ this.updateMenuItems();
14
11
  }
15
- handleItemClick(item, index) {
16
- if (!this.disabledStates.get(index)) {
12
+ handleItemClick(item, isDisabled) {
13
+ if (!isDisabled) {
17
14
  this.actionSelected.emit(item);
18
15
  }
19
16
  }
20
- async resolveVisibleItems() {
21
- const visibleItems = [];
22
- const visibilityPromises = this.items.map(async (item, index) => {
23
- let isVisible = true;
24
- if (item.visible !== undefined) {
25
- if (typeof item.visible === 'boolean') {
26
- isVisible = item.visible;
27
- }
28
- else if (typeof item.visible === 'function') {
29
- const result = item.visible(null, this.objects);
30
- if (result instanceof Promise) {
31
- isVisible = await result;
32
- }
33
- else {
34
- isVisible = result;
35
- }
36
- }
37
- }
38
- return { item, index, isVisible };
39
- });
40
- const visibilityResults = await Promise.all(visibilityPromises);
41
- visibilityResults.forEach(({ item, isVisible }) => {
42
- if (isVisible) {
43
- visibleItems.push(item);
44
- }
45
- });
46
- this.visibleItems = visibleItems;
17
+ async evaluateProperty(value, defaultValue) {
18
+ if (typeof value === 'boolean') {
19
+ return value;
20
+ }
21
+ if (typeof value === 'function') {
22
+ return await Promise.resolve(value(null, this.objects));
23
+ }
24
+ return defaultValue;
47
25
  }
48
- async resolveDisabledStates() {
49
- const newStates = new Map();
50
- const disabledPromises = this.visibleItems.map(async (item, index) => {
51
- let isDisabled = false;
52
- if (typeof item.disabled === 'boolean') {
53
- isDisabled = item.disabled;
54
- }
55
- else if (typeof item.disabled === 'function') {
56
- const result = item.disabled(null, this.objects);
57
- if (result instanceof Promise) {
58
- isDisabled = await result;
59
- }
60
- else {
61
- isDisabled = result;
62
- }
26
+ async updateMenuItems() {
27
+ const processed = [];
28
+ for (const item of this.items) {
29
+ const isVisible = await this.evaluateProperty(item.visible, true);
30
+ if (isVisible) {
31
+ const isDisabled = await this.evaluateProperty(item.disabled, false);
32
+ processed.push({ item, isDisabled });
63
33
  }
64
- newStates.set(index, isDisabled);
65
- });
66
- await Promise.all(disabledPromises);
67
- this.disabledStates = new Map(newStates);
34
+ }
35
+ this.processedItems = processed;
68
36
  }
69
37
  render() {
70
- return (h(Host, { key: 'cc1a338a7bf0d32764c2737f4f32774ccb22370a' }, h("div", { key: '4a83b9366332e42b506c3c876c00d77498a2b8b5', class: "menu-container" }, this.visibleItems.map((item, index) => {
71
- var _a;
72
- const isDisabled = (_a = this.disabledStates.get(index)) !== null && _a !== void 0 ? _a : false;
73
- return (h("button", { key: `${item.label}-${index}`, class: { 'menu-item': true, 'disabled': isDisabled }, onClick: () => this.handleItemClick(item, index), onTouchStart: () => this.handleItemClick(item, index), disabled: isDisabled }, item.icon && h("kritzel-icon", { name: item.icon, size: 16 }), h("span", { class: "label" }, item.label)));
74
- }))));
38
+ return (h(Host, { key: '96569454f806a6d17380315b4d0200236fe22550' }, h("div", { key: '0e5899a2901e1e9ab9d657824e105121ce785bdc', class: "menu-container" }, this.processedItems.map(({ item, isDisabled }, index) => (h("button", { key: `${item.label}-${index}`, class: { 'menu-item': true, disabled: isDisabled }, onClick: () => this.handleItemClick(item, isDisabled), onTouchStart: () => this.handleItemClick(item, isDisabled), disabled: isDisabled }, item.icon && h("kritzel-icon", { name: item.icon, size: 16 }), h("span", { class: "label" }, item.label)))))));
75
39
  }
76
40
  static get is() { return "kritzel-context-menu"; }
77
41
  static get encapsulation() { return "shadow"; }
@@ -139,8 +103,7 @@ export class KritzelContextMenu {
139
103
  }
140
104
  static get states() {
141
105
  return {
142
- "disabledStates": {},
143
- "visibleItems": {}
106
+ "processedItems": {}
144
107
  };
145
108
  }
146
109
  static get events() {
@@ -1 +1 @@
1
- {"version":3,"file":"kritzel-context-menu.js","sourceRoot":"","sources":["../../../../src/components/ui/kritzel-context-menu/kritzel-context-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Prop, Event, EventEmitter, Element, State, Watch } from '@stencil/core';\r\nimport { ContextMenuItem } from '../../../interfaces/context-menu-item.interface';\r\nimport { KritzelBaseObject } from '../../../classes/objects/base-object.class';\r\n\r\n@Component({\r\n tag: 'kritzel-context-menu',\r\n styleUrl: 'kritzel-context-menu.css',\r\n shadow: true,\r\n})\r\nexport class KritzelContextMenu {\r\n @Prop()\r\n items: ContextMenuItem[];\r\n\r\n @Prop()\r\n objects: KritzelBaseObject[];\r\n\r\n @Event()\r\n actionSelected: EventEmitter<ContextMenuItem>;\r\n\r\n @Element()\r\n hostElement: HTMLElement;\r\n\r\n @State()\r\n private disabledStates: Map<number, boolean> = new Map();\r\n\r\n @State()\r\n private visibleItems: ContextMenuItem[] = [];\r\n\r\n componentWillLoad() {\r\n this.resolveVisibleItems();\r\n this.resolveDisabledStates();\r\n }\r\n\r\n\r\n @Watch('items')\r\n onItemsChanged() {\r\n this.resolveVisibleItems();\r\n this.resolveDisabledStates();\r\n }\r\n\r\n private handleItemClick(item: ContextMenuItem, index: number) {\r\n if (!this.disabledStates.get(index)) {\r\n this.actionSelected.emit(item);\r\n }\r\n }\r\n\r\n private async resolveVisibleItems() {\r\n const visibleItems: ContextMenuItem[] = [];\r\n const visibilityPromises = this.items.map(async (item, index) => {\r\n let isVisible = true;\r\n if (item.visible !== undefined) {\r\n if (typeof item.visible === 'boolean') {\r\n isVisible = item.visible;\r\n } else if (typeof item.visible === 'function') {\r\n const result = item.visible(null, this.objects);\r\n if (result instanceof Promise) {\r\n isVisible = await result;\r\n } else {\r\n isVisible = result;\r\n }\r\n }\r\n }\r\n return { item, index, isVisible };\r\n });\r\n\r\n const visibilityResults = await Promise.all(visibilityPromises);\r\n visibilityResults.forEach(({ item, isVisible }) => {\r\n if (isVisible) {\r\n visibleItems.push(item);\r\n }\r\n });\r\n\r\n this.visibleItems = visibleItems;\r\n }\r\n\r\n private async resolveDisabledStates() {\r\n const newStates = new Map<number, boolean>();\r\n const disabledPromises = this.visibleItems.map(async (item, index) => {\r\n let isDisabled = false;\r\n if (typeof item.disabled === 'boolean') {\r\n isDisabled = item.disabled;\r\n } else if (typeof item.disabled === 'function') {\r\n const result = item.disabled(null, this.objects);\r\n if (result instanceof Promise) {\r\n isDisabled = await result;\r\n } else {\r\n isDisabled = result;\r\n }\r\n }\r\n newStates.set(index, isDisabled);\r\n });\r\n\r\n await Promise.all(disabledPromises);\r\n this.disabledStates = new Map(newStates);\r\n }\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <div class=\"menu-container\">\r\n {this.visibleItems.map((item, index) => {\r\n const isDisabled = this.disabledStates.get(index) ?? false;\r\n return (\r\n <button\r\n key={`${item.label}-${index}`}\r\n class={{ 'menu-item': true, 'disabled': isDisabled }}\r\n onClick={() => this.handleItemClick(item, index)}\r\n onTouchStart={() => this.handleItemClick(item, index)}\r\n disabled={isDisabled}\r\n >\r\n {item.icon && <kritzel-icon name={item.icon} size={16}></kritzel-icon>}\r\n <span class=\"label\">{item.label}</span>\r\n </button>\r\n );\r\n })}\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"kritzel-context-menu.js","sourceRoot":"","sources":["../../../../src/components/ui/kritzel-context-menu/kritzel-context-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAgB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAcrG,MAAM,OAAO,kBAAkB;IAL/B;QAmBU,mBAAc,GAAwB,EAAE,CAAC;KAgElD;IA9DC,iBAAiB;QACf,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAGD,cAAc;QACZ,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAEO,eAAe,CAAC,IAAqB,EAAE,UAAmB;QAChE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,KAAoG,EACpG,YAAqB;QAErB,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;YAChC,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,MAAM,SAAS,GAAwB,EAAE,CAAC;QAE1C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAClE,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACrE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;IAClC,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAC,gBAAgB,IACxB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CACxD,cACE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE,EAC7B,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAClD,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,EACrD,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,EAC1D,QAAQ,EAAE,UAAU;gBAEnB,IAAI,CAAC,IAAI,IAAI,oBAAc,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,GAAiB;gBACtE,YAAM,KAAK,EAAC,OAAO,IAAE,IAAI,CAAC,KAAK,CAAQ,CAChC,CACV,CAAC,CACE,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, h, Prop, Event, EventEmitter, Element, State, Watch } from '@stencil/core';\r\nimport { ContextMenuItem } from '../../../interfaces/context-menu-item.interface';\r\nimport { KritzelBaseObject } from '../../../classes/objects/base-object.class';\r\n\r\ninterface ProcessedMenuItem {\r\n item: ContextMenuItem;\r\n isDisabled: boolean;\r\n}\r\n\r\n@Component({\r\n tag: 'kritzel-context-menu',\r\n styleUrl: 'kritzel-context-menu.css',\r\n shadow: true,\r\n})\r\nexport class KritzelContextMenu {\r\n @Prop()\r\n items: ContextMenuItem[];\r\n\r\n @Prop()\r\n objects: KritzelBaseObject[];\r\n\r\n @Event()\r\n actionSelected: EventEmitter<ContextMenuItem>;\r\n\r\n @Element()\r\n hostElement: HTMLElement;\r\n\r\n @State()\r\n private processedItems: ProcessedMenuItem[] = [];\r\n\r\n componentWillLoad() {\r\n this.updateMenuItems();\r\n }\r\n\r\n @Watch('items')\r\n onItemsChanged() {\r\n this.updateMenuItems();\r\n }\r\n\r\n private handleItemClick(item: ContextMenuItem, isDisabled: boolean) {\r\n if (!isDisabled) {\r\n this.actionSelected.emit(item);\r\n }\r\n }\r\n\r\n private async evaluateProperty(\r\n value: boolean | ((obj: KritzelBaseObject, objs: KritzelBaseObject[]) => boolean | Promise<boolean>),\r\n defaultValue: boolean,\r\n ): Promise<boolean> {\r\n if (typeof value === 'boolean') {\r\n return value;\r\n }\r\n if (typeof value === 'function') {\r\n return await Promise.resolve(value(null, this.objects));\r\n }\r\n return defaultValue;\r\n }\r\n\r\n private async updateMenuItems() {\r\n const processed: ProcessedMenuItem[] = [];\r\n\r\n for (const item of this.items) {\r\n const isVisible = await this.evaluateProperty(item.visible, true);\r\n if (isVisible) {\r\n const isDisabled = await this.evaluateProperty(item.disabled, false);\r\n processed.push({ item, isDisabled });\r\n }\r\n }\r\n\r\n this.processedItems = processed;\r\n }\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <div class=\"menu-container\">\r\n {this.processedItems.map(({ item, isDisabled }, index) => (\r\n <button\r\n key={`${item.label}-${index}`} \r\n class={{ 'menu-item': true, disabled: isDisabled }}\r\n onClick={() => this.handleItemClick(item, isDisabled)}\r\n onTouchStart={() => this.handleItemClick(item, isDisabled)}\r\n disabled={isDisabled}\r\n >\r\n {item.icon && <kritzel-icon name={item.icon} size={16}></kritzel-icon>}\r\n <span class=\"label\">{item.label}</span>\r\n </button>\r\n ))}\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"]}
@@ -28,14 +28,14 @@ export class KritzelControlBrushConfig {
28
28
  this.toolChange.emit(this.tool);
29
29
  }
30
30
  render() {
31
- return (h(Host, { key: 'c200146a90a3dd72241e098eff555312fd3125a9' }, h("div", { key: '886492ec4c5e15954166c4a7569ba832d0e6eff8', style: {
31
+ return (h(Host, { key: 'd099d1c6722678fdfb06c34eb0860e8819dd17ca' }, h("div", { key: '0856f0150666415ee452a0fcec5c76b6d25b82c4', style: {
32
32
  display: 'flex',
33
33
  flexDirection: 'row',
34
34
  alignItems: 'center',
35
35
  justifyContent: 'flex-start',
36
36
  width: '100%',
37
37
  gap: '8px',
38
- } }, h("kritzel-brush-style", { key: '64e205189fbd740c01d4fd94c5098edae574d69b', type: this.tool.type, onTypeChange: event => this.handleTypeChange(event) }), h("button", { key: '4b2d0fbf4d485350223dbc27601e78ab37be8df5', class: "expand-toggle", onClick: () => this.handleToggleExpand(), title: this.isExpanded ? 'Collapse' : 'Expand', style: this.palette.length > 6 ? { visibillity: 'visible' } : { visibility: 'hidden' } }, h("kritzel-icon", { key: '35262e8456901d10c84437e578317287282cf690', name: this.isExpanded ? 'chevron-up' : 'chevron-down' }))), h("kritzel-color-palette", { key: '4f519179f419a3e3567d2db39d0d8f9f30d5a6a1', colors: this.palette, selectedColor: this.tool.color, isExpanded: this.isExpanded, isOpaque: true, onColorChange: color => this.handleColorChange(color) }), h("kritzel-stroke-size", { key: '05f05946c3ebd2707f1c41c236a2efca47cedbec', selectedSize: this.tool.size, onSizeChange: event => this.handleSizeChange(event) })));
38
+ } }, h("kritzel-brush-style", { key: '364e6026d1b280a02c3618c7ded11f40c7e3cba4', type: this.tool.type, onTypeChange: event => this.handleTypeChange(event) }), h("button", { key: 'fc58c9ceb9e92ef8c79836e686b9a64653f91210', class: "expand-toggle", onClick: () => this.handleToggleExpand(), title: this.isExpanded ? 'Collapse' : 'Expand', style: this.palette.length > 6 ? { visibillity: 'visible' } : { visibility: 'hidden' } }, h("kritzel-icon", { key: 'ab219c72a9ace56853c725ba75767be2079a3c10', name: this.isExpanded ? 'chevron-up' : 'chevron-down' }))), h("kritzel-color-palette", { key: '8757c754217a3de88dad2c465ff748571716ae64', colors: this.palette, selectedColor: this.tool.color, isExpanded: this.isExpanded, isOpaque: true, onColorChange: color => this.handleColorChange(color) }), h("kritzel-stroke-size", { key: '056b227dd9a92b06588816739b55a80f5ce80835', selectedSize: this.tool.size, onSizeChange: event => this.handleSizeChange(event) })));
39
39
  }
40
40
  static get is() { return "kritzel-control-brush-config"; }
41
41
  static get encapsulation() { return "shadow"; }
@@ -19,14 +19,14 @@ export class KritzelControlTextConfig {
19
19
  this.toolChange.emit(this.tool);
20
20
  }
21
21
  render() {
22
- return (h(Host, { key: '1c8463a1f6b7bcf81f3b58fc0064330c50d6ada9' }, h("div", { key: '69825e6c9be473dda3597c86d51dffff9a6418fd', style: {
22
+ return (h(Host, { key: 'f0d35cc43f1fe58a5a26f21dad99f1a733b66cce' }, h("div", { key: 'efc7d31c11460015a41185b4215e9ff45970abdd', style: {
23
23
  display: 'flex',
24
24
  flexDirection: 'row',
25
25
  alignItems: 'center',
26
26
  justifyContent: 'flex-start',
27
27
  width: '100%',
28
28
  gap: '8px',
29
- } }, h("kritzel-font-family", { key: '56c947950e32989782512a2b00e3be0aaa12d77b', selectedFontFamily: this.tool.fontFamily, onFontFamilyChange: event => this.handleFamilyChange(event) }), h("button", { key: '83fdb5908340adc032a7abae9b4b678697e0cff8', class: "expand-toggle", onClick: () => this.handleToggleExpand(), title: this.isExpanded ? 'Collapse' : 'Expand' }, h("kritzel-icon", { key: '739c175fbc3c0c5c342f2983d0e47323bc5b56f4', name: this.isExpanded ? 'chevron-up' : 'chevron-down' }))), h("kritzel-color-palette", { key: '98251da71574b3487bf6ee46f7e4e95d133e1eea', colors: this.tool.palette, selectedColor: this.tool.fontColor, isExpanded: this.isExpanded, onColorChange: event => this.handleColorChange(event) }), h("kritzel-font-size", { key: '95c88611a6631a4db5d200aac57e7eeef2c195b8', selectedSize: this.tool.fontSize, fontFamily: this.tool.fontFamily, onSizeChange: event => this.handleSizeChange(event) })));
29
+ } }, h("kritzel-font-family", { key: '7f7d3ccb061d4b0e5e0f181ba4224f3de430a88c', selectedFontFamily: this.tool.fontFamily, onFontFamilyChange: event => this.handleFamilyChange(event) }), h("button", { key: '6676fcfa245874d54fa9933888c242c6f611c58c', class: "expand-toggle", onClick: () => this.handleToggleExpand(), title: this.isExpanded ? 'Collapse' : 'Expand' }, h("kritzel-icon", { key: '0734f636889c77f9087a2de2899a28ebd8df30a2', name: this.isExpanded ? 'chevron-up' : 'chevron-down' }))), h("kritzel-color-palette", { key: '68373ef79578d6a73028da681f1e3b0e8e3e5874', colors: this.tool.palette, selectedColor: this.tool.fontColor, isExpanded: this.isExpanded, onColorChange: event => this.handleColorChange(event) }), h("kritzel-font-size", { key: '56e6828f6ceaac3d37910b7d092a30bacbd84519', selectedSize: this.tool.fontSize, fontFamily: this.tool.fontFamily, onSizeChange: event => this.handleSizeChange(event) })));
30
30
  }
31
31
  static get is() { return "kritzel-control-text-config"; }
32
32
  static get encapsulation() { return "shadow"; }
@@ -15,7 +15,7 @@
15
15
  background-color: var(--kritzel-controls-background-color, #ffffff);
16
16
  border-radius: var(--kritzel-controls-border-radius, 16px);
17
17
  box-shadow: var(--kritzel-controls-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));
18
- border: var(--kritzel-controls-border, 1px solid #f0f0f0);
18
+ border: var(--kritzel-controls-border, 1px solid #ebebeb);
19
19
  z-index: 10000;
20
20
  position: relative;
21
21
  }
@@ -92,7 +92,7 @@
92
92
  cursor: pointer;
93
93
  border: 2px solid transparent;
94
94
  box-sizing: border-box;
95
- background-color: var(--kritzel-color-palette-hover-background-color, #f0f0f0);
95
+ background-color: var(--kritzel-color-palette-hover-background-color, #ebebeb);
96
96
  }
97
97
 
98
98
  .font-container {
@@ -105,7 +105,7 @@
105
105
  cursor: pointer;
106
106
  border: 2px solid transparent;
107
107
  box-sizing: border-box;
108
- background-color: var(--kritzel-color-palette-hover-background-color, #f0f0f0);
108
+ background-color: var(--kritzel-color-palette-hover-background-color, #ebebeb);
109
109
  }
110
110
 
111
111
  .no-config {