kritzel-stencil 0.0.129 → 0.0.131

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 (310) hide show
  1. package/dist/cjs/{index-C7Read21.js → index-BwINBV6L.js} +259 -191
  2. package/dist/cjs/index-BwINBV6L.js.map +1 -0
  3. package/dist/cjs/{index-CUSIflVf.js → index-nzUNdMPh.js} +43 -17
  4. package/dist/cjs/index-nzUNdMPh.js.map +1 -0
  5. package/dist/cjs/index.cjs.js +2 -1
  6. package/dist/cjs/index.cjs.js.map +1 -1
  7. package/dist/cjs/{kritzel-brush-style_22.cjs.entry.js → kritzel-brush-style_23.cjs.entry.js} +930 -841
  8. package/dist/cjs/loader.cjs.js +2 -2
  9. package/dist/cjs/stencil.cjs.js +3 -3
  10. package/dist/cjs/stencil.cjs.js.map +1 -1
  11. package/dist/collection/classes/commands/add-object.command.js +3 -2
  12. package/dist/collection/classes/commands/add-object.command.js.map +1 -1
  13. package/dist/collection/classes/commands/add-selection-group.command.js +4 -3
  14. package/dist/collection/classes/commands/add-selection-group.command.js.map +1 -1
  15. package/dist/collection/classes/commands/base.command.js +4 -2
  16. package/dist/collection/classes/commands/base.command.js.map +1 -1
  17. package/dist/collection/classes/commands/batch.command.js +1 -0
  18. package/dist/collection/classes/commands/batch.command.js.map +1 -1
  19. package/dist/collection/classes/commands/move-selection-group.command.js +6 -0
  20. package/dist/collection/classes/commands/move-selection-group.command.js.map +1 -1
  21. package/dist/collection/classes/commands/remove-object.command.js +5 -4
  22. package/dist/collection/classes/commands/remove-object.command.js.map +1 -1
  23. package/dist/collection/classes/commands/remove-selection-group.command.js +3 -2
  24. package/dist/collection/classes/commands/remove-selection-group.command.js.map +1 -1
  25. package/dist/collection/classes/commands/resize-selection-group.command.js +3 -0
  26. package/dist/collection/classes/commands/resize-selection-group.command.js.map +1 -1
  27. package/dist/collection/classes/commands/rotate-selection-group.command.js +5 -2
  28. package/dist/collection/classes/commands/rotate-selection-group.command.js.map +1 -1
  29. package/dist/collection/classes/commands/update-object.command.js +3 -0
  30. package/dist/collection/classes/commands/update-object.command.js.map +1 -1
  31. package/dist/collection/classes/commands/update-viewport.command.js +2 -0
  32. package/dist/collection/classes/commands/update-viewport.command.js.map +1 -1
  33. package/dist/collection/classes/database.class.js +6 -5
  34. package/dist/collection/classes/database.class.js.map +1 -1
  35. package/dist/collection/classes/handlers/base.handler.js +1 -0
  36. package/dist/collection/classes/handlers/base.handler.js.map +1 -1
  37. package/dist/collection/classes/handlers/context-menu.handler.js +2 -2
  38. package/dist/collection/classes/handlers/context-menu.handler.js.map +1 -1
  39. package/dist/collection/classes/handlers/move.handler.js +8 -3
  40. package/dist/collection/classes/handlers/move.handler.js.map +1 -1
  41. package/dist/collection/classes/handlers/resize.handler.js +6 -6
  42. package/dist/collection/classes/handlers/resize.handler.js.map +1 -1
  43. package/dist/collection/classes/handlers/rotation.handler.js +2 -2
  44. package/dist/collection/classes/handlers/rotation.handler.js.map +1 -1
  45. package/dist/collection/classes/handlers/selection.handler.js +10 -8
  46. package/dist/collection/classes/handlers/selection.handler.js.map +1 -1
  47. package/dist/collection/classes/history.class.js +4 -0
  48. package/dist/collection/classes/history.class.js.map +1 -1
  49. package/dist/collection/classes/objects/base-object.class.js +29 -16
  50. package/dist/collection/classes/objects/base-object.class.js.map +1 -1
  51. package/dist/collection/classes/objects/custom-element.class.js +3 -2
  52. package/dist/collection/classes/objects/custom-element.class.js.map +1 -1
  53. package/dist/collection/classes/objects/image.class.js +12 -12
  54. package/dist/collection/classes/objects/image.class.js.map +1 -1
  55. package/dist/collection/classes/objects/path.class.js +30 -28
  56. package/dist/collection/classes/objects/path.class.js.map +1 -1
  57. package/dist/collection/classes/objects/selection-box.class.js +2 -5
  58. package/dist/collection/classes/objects/selection-box.class.js.map +1 -1
  59. package/dist/collection/classes/objects/selection-group.class.js +13 -12
  60. package/dist/collection/classes/objects/selection-group.class.js.map +1 -1
  61. package/dist/collection/classes/objects/text.class.js +11 -11
  62. package/dist/collection/classes/objects/text.class.js.map +1 -1
  63. package/dist/collection/classes/registries/icon-registry.class.js +1 -1
  64. package/dist/collection/classes/registries/icon-registry.class.js.map +1 -1
  65. package/dist/collection/classes/registries/tool.registry.js +1 -1
  66. package/dist/collection/classes/registries/tool.registry.js.map +1 -1
  67. package/dist/collection/classes/reviver.class.js +1 -0
  68. package/dist/collection/classes/reviver.class.js.map +1 -1
  69. package/dist/collection/classes/store.class.js +18 -30
  70. package/dist/collection/classes/store.class.js.map +1 -1
  71. package/dist/collection/classes/structures/circular-buffer.structure.js +5 -3
  72. package/dist/collection/classes/structures/circular-buffer.structure.js.map +1 -1
  73. package/dist/collection/classes/structures/object-map.structure.js +43 -0
  74. package/dist/collection/classes/structures/object-map.structure.js.map +1 -0
  75. package/dist/collection/classes/tools/base-tool.class.js +3 -2
  76. package/dist/collection/classes/tools/base-tool.class.js.map +1 -1
  77. package/dist/collection/classes/tools/brush-tool.class.js +7 -7
  78. package/dist/collection/classes/tools/brush-tool.class.js.map +1 -1
  79. package/dist/collection/classes/tools/eraser-tool.class.js +2 -3
  80. package/dist/collection/classes/tools/eraser-tool.class.js.map +1 -1
  81. package/dist/collection/classes/tools/image-tool.class.js +3 -4
  82. package/dist/collection/classes/tools/image-tool.class.js.map +1 -1
  83. package/dist/collection/classes/tools/selection-tool.class.js +12 -9
  84. package/dist/collection/classes/tools/selection-tool.class.js.map +1 -1
  85. package/dist/collection/classes/tools/text-tool.class.js +26 -27
  86. package/dist/collection/classes/tools/text-tool.class.js.map +1 -1
  87. package/dist/collection/classes/viewport.class.js +4 -3
  88. package/dist/collection/classes/viewport.class.js.map +1 -1
  89. package/dist/collection/classes/workspace.class.js +5 -0
  90. package/dist/collection/classes/workspace.class.js.map +1 -1
  91. package/dist/collection/collection-manifest.json +2 -1
  92. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +6 -6
  93. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js.map +1 -1
  94. package/dist/collection/components/core/kritzel-editor/kritzel-editor.css +7 -0
  95. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +102 -88
  96. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +1 -1
  97. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +137 -148
  98. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +1 -1
  99. package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js +6 -7
  100. package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js.map +1 -1
  101. package/dist/collection/components/shared/kritzel-color/kritzel-color.js +2 -3
  102. package/dist/collection/components/shared/kritzel-color/kritzel-color.js.map +1 -1
  103. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +5 -6
  104. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js.map +1 -1
  105. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js +44 -40
  106. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js.map +1 -1
  107. package/dist/collection/components/shared/kritzel-font/kritzel-font.js +3 -5
  108. package/dist/collection/components/shared/kritzel-font/kritzel-font.js.map +1 -1
  109. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js +17 -17
  110. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js.map +1 -1
  111. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +4 -5
  112. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js.map +1 -1
  113. package/dist/collection/components/shared/kritzel-icon/kritzel-icon.js +3 -3
  114. package/dist/collection/components/shared/kritzel-icon/kritzel-icon.js.map +1 -1
  115. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.css +16 -169
  116. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +176 -196
  117. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js.map +1 -1
  118. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.css +136 -0
  119. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js +267 -0
  120. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js.map +1 -0
  121. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +164 -48
  122. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js.map +1 -1
  123. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.css +83 -78
  124. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +160 -130
  125. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js.map +1 -1
  126. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +4 -5
  127. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js.map +1 -1
  128. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +13 -14
  129. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js.map +1 -1
  130. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +5 -3
  131. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js.map +1 -1
  132. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +6 -6
  133. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js.map +1 -1
  134. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js +5 -5
  135. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js.map +1 -1
  136. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +25 -32
  137. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js.map +1 -1
  138. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +4 -1
  139. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js.map +1 -1
  140. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js +116 -95
  141. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js.map +1 -1
  142. package/dist/collection/configs/default-engine-state.js +1 -1
  143. package/dist/collection/configs/default-engine-state.js.map +1 -1
  144. package/dist/collection/helpers/event.helper.js +2 -2
  145. package/dist/collection/helpers/event.helper.js.map +1 -1
  146. package/dist/collection/helpers/html.helper.js +1 -2
  147. package/dist/collection/helpers/html.helper.js.map +1 -1
  148. package/dist/collection/helpers/keyboard.helper.js +18 -0
  149. package/dist/collection/helpers/keyboard.helper.js.map +1 -1
  150. package/dist/collection/helpers/object.helper.js +2 -14
  151. package/dist/collection/helpers/object.helper.js.map +1 -1
  152. package/dist/collection/index.js +2 -0
  153. package/dist/collection/index.js.map +1 -1
  154. package/dist/collection/interfaces/engine-state.interface.js.map +1 -1
  155. package/dist/collection/interfaces/menu-item.interface.js.map +1 -1
  156. package/dist/components/index.d.ts +2 -0
  157. package/dist/components/index.js +5 -3
  158. package/dist/components/index.js.map +1 -1
  159. package/dist/components/kritzel-brush-style.js +1 -1
  160. package/dist/components/kritzel-color-palette.js +1 -1
  161. package/dist/components/kritzel-color.js +1 -1
  162. package/dist/components/kritzel-context-menu.js +1 -1
  163. package/dist/components/kritzel-control-brush-config.js +1 -1
  164. package/dist/components/kritzel-control-text-config.js +1 -1
  165. package/dist/components/kritzel-controls.js +1 -1
  166. package/dist/components/kritzel-cursor-trail.js +1 -1
  167. package/dist/components/kritzel-dropdown.js +1 -1
  168. package/dist/components/kritzel-editor.js +145 -126
  169. package/dist/components/kritzel-editor.js.map +1 -1
  170. package/dist/components/kritzel-engine.js +1 -1
  171. package/dist/components/kritzel-font-family.js +1 -1
  172. package/dist/components/kritzel-font-size.js +1 -1
  173. package/dist/components/kritzel-font.js +1 -1
  174. package/dist/components/kritzel-icon.js +1 -1
  175. package/dist/components/kritzel-menu-item.d.ts +11 -0
  176. package/dist/components/kritzel-menu-item.js +9 -0
  177. package/dist/components/kritzel-menu-item.js.map +1 -0
  178. package/dist/components/kritzel-menu.js +1 -1
  179. package/dist/components/kritzel-portal.js +1 -1
  180. package/dist/components/kritzel-split-button.js +1 -1
  181. package/dist/components/kritzel-stroke-size.js +1 -1
  182. package/dist/components/kritzel-tooltip.js +1 -1
  183. package/dist/components/kritzel-utility-panel.js +1 -1
  184. package/dist/components/kritzel-workspace-manager.js +1 -1
  185. package/dist/components/{p-BU2q3PRS.js → p-B1BLgWL1.js} +9 -6
  186. package/dist/components/p-B1BLgWL1.js.map +1 -0
  187. package/dist/components/{p-5CJxFNEE.js → p-BB0_-X42.js} +5 -4
  188. package/dist/components/p-BB0_-X42.js.map +1 -0
  189. package/dist/components/{p-yZFrTtMQ.js → p-BB5R2k1o.js} +42 -48
  190. package/dist/components/p-BB5R2k1o.js.map +1 -0
  191. package/dist/components/p-BPz_H-EG.js +137 -0
  192. package/dist/components/p-BPz_H-EG.js.map +1 -0
  193. package/dist/components/{p-BqrTPNyu.js → p-BYanlgdq.js} +41 -15
  194. package/dist/components/p-BYanlgdq.js.map +1 -0
  195. package/dist/components/{p-BeVv4o5c.js → p-B_lb1FGi.js} +7 -2
  196. package/dist/components/p-B_lb1FGi.js.map +1 -0
  197. package/dist/components/p-BeljsQ-8.js +252 -0
  198. package/dist/components/p-BeljsQ-8.js.map +1 -0
  199. package/dist/components/{p-_ntxNi8v.js → p-BexTdWaX.js} +21 -19
  200. package/dist/components/p-BexTdWaX.js.map +1 -0
  201. package/dist/components/{p-BzSz74Ci.js → p-BgmKrd5Z.js} +8 -5
  202. package/dist/components/p-BgmKrd5Z.js.map +1 -0
  203. package/dist/components/{p-BZ-j_4CK.js → p-BhiYvSBc.js} +6 -6
  204. package/dist/components/p-BhiYvSBc.js.map +1 -0
  205. package/dist/components/{p-jG1e48OE.js → p-BrBQUN0Q.js} +16 -16
  206. package/dist/components/p-BrBQUN0Q.js.map +1 -0
  207. package/dist/components/{p-DtmZW6eP.js → p-BubxwvMA.js} +9 -7
  208. package/dist/components/p-BubxwvMA.js.map +1 -0
  209. package/dist/components/{p-D-zg05gA.js → p-BuewJQNl.js} +332 -393
  210. package/dist/components/p-BuewJQNl.js.map +1 -0
  211. package/dist/components/p-CGmS8wnN.js +186 -0
  212. package/dist/components/p-CGmS8wnN.js.map +1 -0
  213. package/dist/components/{p-BaKb8ZLg.js → p-CHxPWeZd.js} +15 -13
  214. package/dist/components/p-CHxPWeZd.js.map +1 -0
  215. package/dist/components/{p-rQeWFfPG.js → p-CMJ3P0Vw.js} +8 -7
  216. package/dist/components/p-CMJ3P0Vw.js.map +1 -0
  217. package/dist/components/{p-B7VrEdgP.js → p-DHSEK3rF.js} +141 -102
  218. package/dist/components/p-DHSEK3rF.js.map +1 -0
  219. package/dist/components/{p-BAPUTr3K.js → p-DMrtdhBD.js} +9 -8
  220. package/dist/components/p-DMrtdhBD.js.map +1 -0
  221. package/dist/components/p-DnUKql15.js +30 -0
  222. package/dist/components/p-DnUKql15.js.map +1 -0
  223. package/dist/components/p-DxTu1aoJ.js +237 -0
  224. package/dist/components/p-DxTu1aoJ.js.map +1 -0
  225. package/dist/components/{p-BLmFBe2a.js → p-p1Jkec_q.js} +7 -5
  226. package/dist/components/p-p1Jkec_q.js.map +1 -0
  227. package/dist/components/{p-V4ui5aWj.js → p-rIRXQdie.js} +11 -10
  228. package/dist/components/p-rIRXQdie.js.map +1 -0
  229. package/dist/components/{p-a7KmQzo4.js → p-t4NIsuX9.js} +15 -13
  230. package/dist/components/p-t4NIsuX9.js.map +1 -0
  231. package/dist/components/{p-BvlGgLAQ.js → p-trncBp_6.js} +47 -41
  232. package/dist/components/p-trncBp_6.js.map +1 -0
  233. package/dist/components/{p-BcQTDgzV.js → p-yZ48g7-u.js} +8 -7
  234. package/dist/components/p-yZ48g7-u.js.map +1 -0
  235. package/dist/esm/{index-J4NpPimy.js → index-B-oSk-v8.js} +259 -192
  236. package/dist/esm/index-B-oSk-v8.js.map +1 -0
  237. package/dist/esm/{index-NiIEUDzj.js → index-oCOlsFCN.js} +43 -17
  238. package/dist/esm/index-oCOlsFCN.js.map +1 -0
  239. package/dist/esm/index.js +1 -1
  240. package/dist/esm/{kritzel-brush-style_22.entry.js → kritzel-brush-style_23.entry.js} +929 -841
  241. package/dist/esm/loader.js +3 -3
  242. package/dist/esm/stencil.js +4 -4
  243. package/dist/esm/stencil.js.map +1 -1
  244. package/dist/stencil/index.esm.js +1 -1
  245. package/dist/stencil/p-3bb80782.entry.js +2 -0
  246. package/dist/stencil/p-3bb80782.entry.js.map +1 -0
  247. package/dist/stencil/p-B-oSk-v8.js +2 -0
  248. package/dist/stencil/p-B-oSk-v8.js.map +1 -0
  249. package/dist/stencil/p-oCOlsFCN.js +3 -0
  250. package/dist/stencil/p-oCOlsFCN.js.map +1 -0
  251. package/dist/stencil/stencil.esm.js +1 -1
  252. package/dist/stencil/stencil.esm.js.map +1 -1
  253. package/dist/types/classes/objects/path.class.d.ts +0 -2
  254. package/dist/types/classes/structures/object-map.structure.d.ts +11 -0
  255. package/dist/types/components/core/kritzel-editor/kritzel-editor.d.ts +3 -0
  256. package/dist/types/components/shared/kritzel-menu/kritzel-menu.d.ts +18 -20
  257. package/dist/types/components/shared/kritzel-menu-item/kritzel-menu-item.d.ts +26 -0
  258. package/dist/types/components/shared/kritzel-portal/kritzel-portal.d.ts +15 -10
  259. package/dist/types/components/shared/kritzel-split-button/kritzel-split-button.d.ts +23 -15
  260. package/dist/types/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.d.ts +18 -14
  261. package/dist/types/components.d.ts +90 -61
  262. package/dist/types/helpers/keyboard.helper.d.ts +1 -0
  263. package/dist/types/index.d.ts +2 -0
  264. package/dist/types/interfaces/engine-state.interface.d.ts +2 -2
  265. package/dist/types/interfaces/menu-item.interface.d.ts +21 -7
  266. package/dist/types/stencil-public-runtime.d.ts +6 -4
  267. package/package.json +1 -1
  268. package/dist/cjs/index-C7Read21.js.map +0 -1
  269. package/dist/cjs/index-CUSIflVf.js.map +0 -1
  270. package/dist/collection/classes/structures/octree.structure.js +0 -115
  271. package/dist/collection/classes/structures/octree.structure.js.map +0 -1
  272. package/dist/components/p-5CJxFNEE.js.map +0 -1
  273. package/dist/components/p-B7VrEdgP.js.map +0 -1
  274. package/dist/components/p-BAPUTr3K.js.map +0 -1
  275. package/dist/components/p-BLmFBe2a.js.map +0 -1
  276. package/dist/components/p-BU2q3PRS.js.map +0 -1
  277. package/dist/components/p-BZ-j_4CK.js.map +0 -1
  278. package/dist/components/p-BaKb8ZLg.js.map +0 -1
  279. package/dist/components/p-Bb6od8He.js +0 -42
  280. package/dist/components/p-Bb6od8He.js.map +0 -1
  281. package/dist/components/p-BcQTDgzV.js.map +0 -1
  282. package/dist/components/p-BeVv4o5c.js.map +0 -1
  283. package/dist/components/p-BmJbJwkH.js +0 -167
  284. package/dist/components/p-BmJbJwkH.js.map +0 -1
  285. package/dist/components/p-BqrTPNyu.js.map +0 -1
  286. package/dist/components/p-BvlGgLAQ.js.map +0 -1
  287. package/dist/components/p-BzSz74Ci.js.map +0 -1
  288. package/dist/components/p-C6OxvITm.js +0 -168
  289. package/dist/components/p-C6OxvITm.js.map +0 -1
  290. package/dist/components/p-D-zg05gA.js.map +0 -1
  291. package/dist/components/p-Dozs0Zfn.js +0 -115
  292. package/dist/components/p-Dozs0Zfn.js.map +0 -1
  293. package/dist/components/p-DtmZW6eP.js.map +0 -1
  294. package/dist/components/p-V4ui5aWj.js.map +0 -1
  295. package/dist/components/p-_ntxNi8v.js.map +0 -1
  296. package/dist/components/p-a7KmQzo4.js.map +0 -1
  297. package/dist/components/p-aaxf-h5S.js +0 -159
  298. package/dist/components/p-aaxf-h5S.js.map +0 -1
  299. package/dist/components/p-jG1e48OE.js.map +0 -1
  300. package/dist/components/p-rQeWFfPG.js.map +0 -1
  301. package/dist/components/p-yZFrTtMQ.js.map +0 -1
  302. package/dist/esm/index-J4NpPimy.js.map +0 -1
  303. package/dist/esm/index-NiIEUDzj.js.map +0 -1
  304. package/dist/stencil/p-43202395.entry.js +0 -2
  305. package/dist/stencil/p-43202395.entry.js.map +0 -1
  306. package/dist/stencil/p-J4NpPimy.js +0 -2
  307. package/dist/stencil/p-J4NpPimy.js.map +0 -1
  308. package/dist/stencil/p-NiIEUDzj.js +0 -3
  309. package/dist/stencil/p-NiIEUDzj.js.map +0 -1
  310. package/dist/types/classes/structures/octree.structure.d.ts +0 -18
@@ -1,110 +1,53 @@
1
- import { h, Host } from "@stencil/core";
2
- import { KritzelDevicesHelper } from "../../../helpers/devices.helper";
1
+ import { Host, h } from "@stencil/core";
3
2
  export class KritzelMenu {
4
- constructor() {
5
- this.items = [];
6
- this.parentIndex = null;
7
- this.parent = null;
8
- this.activeItemIndex = null;
9
- this.editingIndex = null;
10
- this.openChildMenuIndex = null;
11
- this.isTouchDevice = KritzelDevicesHelper.isTouchDevice();
12
- this.childMenuAnchor = null;
13
- this.childMenu = null;
14
- this.cancelButton = null;
15
- this.saveButton = null;
16
- }
17
- onEditingIndexChange(newValue) {
18
- if (newValue === null) {
19
- this.openChildMenuIndex = null;
20
- this.editInput = undefined;
21
- return;
22
- }
23
- }
24
- handleWindowClick(event) {
25
- requestAnimationFrame(() => {
26
- if (this.childMenu === null) {
27
- return;
28
- }
29
- const target = event.target;
30
- if (!target.contains(this.childMenu)) {
31
- this.openChildMenuIndex = null;
32
- }
33
- });
34
- }
35
- handleEscape(event) {
36
- var _a;
37
- if (event.key === 'Escape') {
38
- if (this.openChildMenuIndex !== null) {
39
- return;
40
- }
41
- if (this.editingIndex !== null) {
42
- (_a = this.cancelButton) === null || _a === void 0 ? void 0 : _a.click();
43
- return;
44
- }
45
- this.close.emit();
46
- }
47
- }
48
- handleEnter(event) {
49
- var _a;
50
- if (event.key === 'Enter') {
51
- if (this.editingIndex !== null) {
52
- (_a = this.saveButton) === null || _a === void 0 ? void 0 : _a.click();
53
- return;
54
- }
3
+ host;
4
+ items;
5
+ parent = null;
6
+ itemSelect;
7
+ itemSave;
8
+ itemCancel;
9
+ itemToggleChildMenu;
10
+ itemCloseChildMenu;
11
+ close;
12
+ selectedIndex = null;
13
+ async setFocus() {
14
+ const firstItem = this.host.querySelector('kritzel-menu-item');
15
+ if (firstItem) {
16
+ firstItem.focus();
55
17
  }
56
18
  }
57
- componentDidLoad() {
58
- requestAnimationFrame(() => {
59
- this.host.focus();
60
- });
19
+ get openChildMenuItem() {
20
+ return this.items.find(item => item.isChildMenuOpen);
61
21
  }
62
- isViewMode(index) {
63
- return this.editingIndex !== index;
64
- }
65
- handleSelect(item) {
66
- var _a;
67
- if (item.disabled || this.editingIndex !== null || this.openChildMenuIndex !== null) {
68
- return;
69
- }
70
- (_a = item.select) === null || _a === void 0 ? void 0 : _a.call(item, item);
22
+ get editingMenuItem() {
23
+ return this.items.find(item => item.isEditing);
71
24
  }
25
+ onOverlayClick = (event) => {
26
+ event.stopPropagation();
27
+ this.itemCloseChildMenu.emit(this.openChildMenuItem);
28
+ };
29
+ handleItemSelect = (event) => {
30
+ event.stopPropagation();
31
+ this.itemSelect.emit(event.detail);
32
+ };
33
+ handleSave = (event) => {
34
+ event.stopPropagation();
35
+ this.itemSave.emit(event.detail);
36
+ };
37
+ handleCancel = (event) => {
38
+ event.stopPropagation();
39
+ this.itemCancel.emit(event.detail);
40
+ };
41
+ handleToggleChildMenu = (event) => {
42
+ event.stopPropagation();
43
+ this.itemToggleChildMenu.emit(event.detail);
44
+ };
45
+ handleCloseChildMenu = (event) => {
46
+ event.stopPropagation();
47
+ this.itemCloseChildMenu.emit(event.detail);
48
+ };
72
49
  render() {
73
- return (h(Host, { key: 'b5321fa13564d847a9432eb26e777d33f4b8412c', tabIndex: 0, class: { mobile: this.isTouchDevice } }, this.items.map((item, index) => (h("button", { tabIndex: 0, class: {
74
- 'menu-item': true,
75
- 'disabled': item.disabled,
76
- 'inactive': this.openChildMenuIndex !== null && this.openChildMenuIndex !== index,
77
- 'child-open': this.openChildMenuIndex === index,
78
- 'edit-mode': this.editingIndex === index,
79
- 'active': this.activeItemIndex === index,
80
- }, style: {
81
- pointerEvents: (this.editingIndex !== null && this.editingIndex !== index) || (this.openChildMenuIndex !== null && this.openChildMenuIndex !== index) ? 'none' : 'auto',
82
- }, 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 => {
83
- if (this.editingIndex !== null)
84
- return;
85
- event.stopPropagation();
86
- this.childMenuAnchor = this.openChildMenuIndex === index ? null : event.currentTarget;
87
- this.openChildMenuIndex = this.openChildMenuIndex === index ? null : index;
88
- } }, 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", { ref: el => {
89
- this.childMenu = el;
90
- }, style: { minWidth: '100px' }, items: item.children, parentIndex: index, parent: item, onClose: () => {
91
- var _a;
92
- this.openChildMenuIndex = null;
93
- (_a = this.childMenuAnchor) === null || _a === void 0 ? void 0 : _a.focus();
94
- } })))))), this.isViewMode(index) === false && (h("div", { class: "edit-container" }, h("input", { tabIndex: 0, ref: el => {
95
- this.editInput = el;
96
- requestAnimationFrame(() => {
97
- var _a, _b;
98
- (_a = this.editInput) === null || _a === void 0 ? void 0 : _a.focus();
99
- (_b = this.editInput) === null || _b === void 0 ? void 0 : _b.select();
100
- });
101
- }, type: "text", name: 'menu-item-' + index, value: item.label, onInput: e => (item.label = e.target.value) }), h("div", { style: { display: 'flex', gap: '8px' } }, h("div", { class: "menu-item-button", ref: el => (this.cancelButton = el), tabIndex: 0, onClick: () => {
102
- var _a;
103
- (_a = item.cancel) === null || _a === void 0 ? void 0 : _a.call(item, item);
104
- } }, h("kritzel-icon", { name: "x", size: 16 })), h("div", { class: "menu-item-button", ref: el => (this.saveButton = el), tabIndex: 0, onClick: () => {
105
- var _a;
106
- (_a = item.save) === null || _a === void 0 ? void 0 : _a.call(item, item);
107
- } }, h("kritzel-icon", { name: "check", size: 16 }))))))))));
50
+ return (h(Host, { key: 'c82bde4dc70fdc79df7471bb10396394f6c3870a', onClick: e => e.stopPropagation() }, this.openChildMenuItem && h("div", { key: '5fe0323aaa0da44abe736c6ef5e0516113c7820d', class: "has-open-child-overlay", onClick: this.onOverlayClick }), this.items.map((item) => (h("kritzel-menu-item", { key: item.id, item: item, parent: this.parent, style: { pointerEvents: this.editingMenuItem && !item.isEditing ? 'none' : 'auto' }, onItemSelect: this.handleItemSelect, onItemSave: this.handleSave, onItemCancel: this.handleCancel, onItemToggleChildMenu: this.handleToggleChildMenu, onItemCloseChildMenu: this.handleCloseChildMenu })))));
108
51
  }
109
52
  static get is() { return "kritzel-menu"; }
110
53
  static get encapsulation() { return "shadow"; }
@@ -125,13 +68,13 @@ export class KritzelMenu {
125
68
  "attribute": "items",
126
69
  "mutable": false,
127
70
  "complexType": {
128
- "original": "KritzelMenuItem[]",
129
- "resolved": "KritzelMenuItem<any>[]",
71
+ "original": "IKritzelMenuItem[]",
72
+ "resolved": "IKritzelMenuItem<any>[]",
130
73
  "references": {
131
- "KritzelMenuItem": {
74
+ "IKritzelMenuItem": {
132
75
  "location": "import",
133
76
  "path": "../../../interfaces/menu-item.interface",
134
- "id": "src/interfaces/menu-item.interface.ts::KritzelMenuItem"
77
+ "id": "src/interfaces/menu-item.interface.ts::IKritzelMenuItem"
135
78
  }
136
79
  }
137
80
  },
@@ -142,17 +85,22 @@ export class KritzelMenu {
142
85
  "text": ""
143
86
  },
144
87
  "getter": false,
145
- "setter": false,
146
- "defaultValue": "[]"
88
+ "setter": false
147
89
  },
148
- "parentIndex": {
149
- "type": "number",
150
- "attribute": "parent-index",
90
+ "parent": {
91
+ "type": "unknown",
92
+ "attribute": "parent",
151
93
  "mutable": false,
152
94
  "complexType": {
153
- "original": "number | null",
154
- "resolved": "number",
155
- "references": {}
95
+ "original": "IKritzelMenuItem",
96
+ "resolved": "IKritzelMenuItem<any>",
97
+ "references": {
98
+ "IKritzelMenuItem": {
99
+ "location": "import",
100
+ "path": "../../../interfaces/menu-item.interface",
101
+ "id": "src/interfaces/menu-item.interface.ts::IKritzelMenuItem"
102
+ }
103
+ }
156
104
  },
157
105
  "required": false,
158
106
  "optional": false,
@@ -162,84 +110,122 @@ export class KritzelMenu {
162
110
  },
163
111
  "getter": false,
164
112
  "setter": false,
165
- "reflect": false,
166
113
  "defaultValue": "null"
167
- },
168
- "parent": {
169
- "type": "unknown",
170
- "attribute": "parent",
171
- "mutable": false,
114
+ }
115
+ };
116
+ }
117
+ static get states() {
118
+ return {
119
+ "selectedIndex": {}
120
+ };
121
+ }
122
+ static get events() {
123
+ return [{
124
+ "method": "itemSelect",
125
+ "name": "itemSelect",
126
+ "bubbles": true,
127
+ "cancelable": true,
128
+ "composed": true,
129
+ "docs": {
130
+ "tags": [],
131
+ "text": ""
132
+ },
172
133
  "complexType": {
173
- "original": "KritzelMenuItem",
174
- "resolved": "KritzelMenuItem<any>",
134
+ "original": "IKritzelMenuItemSelectEvent",
135
+ "resolved": "IKritzelMenuItemSelectEvent",
175
136
  "references": {
176
- "KritzelMenuItem": {
137
+ "IKritzelMenuItemSelectEvent": {
177
138
  "location": "import",
178
139
  "path": "../../../interfaces/menu-item.interface",
179
- "id": "src/interfaces/menu-item.interface.ts::KritzelMenuItem"
140
+ "id": "src/interfaces/menu-item.interface.ts::IKritzelMenuItemSelectEvent"
180
141
  }
181
142
  }
182
- },
183
- "required": false,
184
- "optional": false,
143
+ }
144
+ }, {
145
+ "method": "itemSave",
146
+ "name": "itemSave",
147
+ "bubbles": true,
148
+ "cancelable": true,
149
+ "composed": true,
185
150
  "docs": {
186
151
  "tags": [],
187
152
  "text": ""
188
153
  },
189
- "getter": false,
190
- "setter": false,
191
- "defaultValue": "null"
192
- },
193
- "activeItemIndex": {
194
- "type": "number",
195
- "attribute": "active-item-index",
196
- "mutable": false,
197
154
  "complexType": {
198
- "original": "number | null",
199
- "resolved": "number",
200
- "references": {}
201
- },
202
- "required": false,
203
- "optional": false,
155
+ "original": "IKritzelMenuItem",
156
+ "resolved": "IKritzelMenuItem<any>",
157
+ "references": {
158
+ "IKritzelMenuItem": {
159
+ "location": "import",
160
+ "path": "../../../interfaces/menu-item.interface",
161
+ "id": "src/interfaces/menu-item.interface.ts::IKritzelMenuItem"
162
+ }
163
+ }
164
+ }
165
+ }, {
166
+ "method": "itemCancel",
167
+ "name": "itemCancel",
168
+ "bubbles": true,
169
+ "cancelable": true,
170
+ "composed": true,
204
171
  "docs": {
205
172
  "tags": [],
206
173
  "text": ""
207
174
  },
208
- "getter": false,
209
- "setter": false,
210
- "reflect": false,
211
- "defaultValue": "null"
212
- },
213
- "editingIndex": {
214
- "type": "number",
215
- "attribute": "editing-index",
216
- "mutable": false,
217
175
  "complexType": {
218
- "original": "number | null",
219
- "resolved": "number",
220
- "references": {}
176
+ "original": "IKritzelMenuItem",
177
+ "resolved": "IKritzelMenuItem<any>",
178
+ "references": {
179
+ "IKritzelMenuItem": {
180
+ "location": "import",
181
+ "path": "../../../interfaces/menu-item.interface",
182
+ "id": "src/interfaces/menu-item.interface.ts::IKritzelMenuItem"
183
+ }
184
+ }
185
+ }
186
+ }, {
187
+ "method": "itemToggleChildMenu",
188
+ "name": "itemToggleChildMenu",
189
+ "bubbles": true,
190
+ "cancelable": true,
191
+ "composed": true,
192
+ "docs": {
193
+ "tags": [],
194
+ "text": ""
221
195
  },
222
- "required": false,
223
- "optional": false,
196
+ "complexType": {
197
+ "original": "IKritzelMenuItemToggleChildMenuEvent",
198
+ "resolved": "IKritzelMenuItemToggleChildMenuEvent",
199
+ "references": {
200
+ "IKritzelMenuItemToggleChildMenuEvent": {
201
+ "location": "import",
202
+ "path": "../../../interfaces/menu-item.interface",
203
+ "id": "src/interfaces/menu-item.interface.ts::IKritzelMenuItemToggleChildMenuEvent"
204
+ }
205
+ }
206
+ }
207
+ }, {
208
+ "method": "itemCloseChildMenu",
209
+ "name": "itemCloseChildMenu",
210
+ "bubbles": true,
211
+ "cancelable": true,
212
+ "composed": true,
224
213
  "docs": {
225
214
  "tags": [],
226
215
  "text": ""
227
216
  },
228
- "getter": false,
229
- "setter": false,
230
- "reflect": false,
231
- "defaultValue": "null"
232
- }
233
- };
234
- }
235
- static get states() {
236
- return {
237
- "openChildMenuIndex": {},
238
- "isTouchDevice": {}
239
- };
240
- }
241
- static get events() {
242
- return [{
217
+ "complexType": {
218
+ "original": "IKritzelMenuItem",
219
+ "resolved": "IKritzelMenuItem<any>",
220
+ "references": {
221
+ "IKritzelMenuItem": {
222
+ "location": "import",
223
+ "path": "../../../interfaces/menu-item.interface",
224
+ "id": "src/interfaces/menu-item.interface.ts::IKritzelMenuItem"
225
+ }
226
+ }
227
+ }
228
+ }, {
243
229
  "method": "close",
244
230
  "name": "close",
245
231
  "bubbles": true,
@@ -256,33 +242,27 @@ export class KritzelMenu {
256
242
  }
257
243
  }];
258
244
  }
259
- static get elementRef() { return "host"; }
260
- static get watchers() {
261
- return [{
262
- "propName": "editingIndex",
263
- "methodName": "onEditingIndexChange"
264
- }];
265
- }
266
- static get listeners() {
267
- return [{
268
- "name": "pointerup",
269
- "method": "handleWindowClick",
270
- "target": "window",
271
- "capture": false,
272
- "passive": true
273
- }, {
274
- "name": "keydown",
275
- "method": "handleEscape",
276
- "target": "window",
277
- "capture": false,
278
- "passive": false
279
- }, {
280
- "name": "keydown",
281
- "method": "handleEnter",
282
- "target": "window",
283
- "capture": false,
284
- "passive": false
285
- }];
245
+ static get methods() {
246
+ return {
247
+ "setFocus": {
248
+ "complexType": {
249
+ "signature": "() => Promise<void>",
250
+ "parameters": [],
251
+ "references": {
252
+ "Promise": {
253
+ "location": "global",
254
+ "id": "global::Promise"
255
+ }
256
+ },
257
+ "return": "Promise<void>"
258
+ },
259
+ "docs": {
260
+ "text": "",
261
+ "tags": []
262
+ }
263
+ }
264
+ };
286
265
  }
266
+ static get elementRef() { return "host"; }
287
267
  }
288
268
  //# sourceMappingURL=kritzel-menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kritzel-menu.js","sourceRoot":"","sources":["../../../../src/components/shared/kritzel-menu/kritzel-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Prop, Host, State, Listen, Element, Watch, Event, EventEmitter } from '@stencil/core';\r\nimport { KritzelMenuItem } from '../../../interfaces/menu-item.interface';\r\nimport { KritzelDevicesHelper } from '../../../helpers/devices.helper';\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 @State()\r\n isTouchDevice: boolean = KritzelDevicesHelper.isTouchDevice();\r\n\r\n private editInput?: HTMLInputElement;\r\n\r\n private childMenuAnchor?: HTMLElement = null;\r\n\r\n private childMenu?: HTMLKritzelMenuElement = 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('pointerup', { target: 'window' })\r\n handleWindowClick(event: PointerEvent) {\r\n requestAnimationFrame(() => {\r\n if (this.childMenu === null) {\r\n return;\r\n }\r\n\r\n const target = event.target as HTMLElement;\r\n\r\n if (!target.contains(this.childMenu)) {\r\n this.openChildMenuIndex = null;\r\n }\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} class={{ mobile: this.isTouchDevice }}>\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 style={{\r\n pointerEvents:\r\n (this.editingIndex !== null && this.editingIndex !== index) || (this.openChildMenuIndex !== null && this.openChildMenuIndex !== index) ? 'none' : 'auto',\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 anchor={this.childMenuAnchor} offsetY={4} onClose={() => (this.openChildMenuIndex = null)}>\r\n <kritzel-menu\r\n ref={el => {\r\n this.childMenu = el;\r\n }}\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 <div\r\n class=\"menu-item-button\"\r\n ref={el => (this.cancelButton = el)}\r\n tabIndex={0}\r\n onClick={() => {\r\n item.cancel?.(item);\r\n }}\r\n >\r\n <kritzel-icon name=\"x\" size={16}></kritzel-icon>\r\n </div>\r\n\r\n <div\r\n class=\"menu-item-button\"\r\n ref={el => (this.saveButton = el)}\r\n tabIndex={0}\r\n onClick={() => {\r\n item.save?.(item);\r\n }}\r\n >\r\n <kritzel-icon name=\"check\" size={16}></kritzel-icon>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </button>\r\n ))}\r\n </Host>\r\n );\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"kritzel-menu.js","sourceRoot":"","sources":["../../../../src/components/shared/kritzel-menu/kritzel-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, Prop, h, State, Event, EventEmitter, Element, Method } from '@stencil/core';\r\nimport { IKritzelMenuItem, IKritzelMenuItemSelectEvent, IKritzelMenuItemToggleChildMenuEvent } from '../../../interfaces/menu-item.interface';\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() host: HTMLElement;\r\n\r\n @Prop() items: IKritzelMenuItem[];\r\n @Prop() parent: IKritzelMenuItem = null;\r\n\r\n @Event() itemSelect: EventEmitter<IKritzelMenuItemSelectEvent>;\r\n @Event() itemSave: EventEmitter<IKritzelMenuItem>;\r\n @Event() itemCancel: EventEmitter<IKritzelMenuItem>;\r\n @Event() itemToggleChildMenu: EventEmitter<IKritzelMenuItemToggleChildMenuEvent>;\r\n @Event() itemCloseChildMenu: EventEmitter<IKritzelMenuItem>;\r\n @Event() close: EventEmitter<void>;\r\n\r\n @State() selectedIndex: number | null = null;\r\n\r\n @Method()\r\n async setFocus() {\r\n const firstItem = this.host.querySelector('kritzel-menu-item');\r\n if (firstItem) {\r\n firstItem.focus();\r\n }\r\n }\r\n\r\n get openChildMenuItem() {\r\n return this.items.find(item => item.isChildMenuOpen);\r\n }\r\n\r\n get editingMenuItem() {\r\n return this.items.find(item => item.isEditing);\r\n }\r\n\r\n private onOverlayClick = (event: MouseEvent) => {\r\n event.stopPropagation();\r\n this.itemCloseChildMenu.emit(this.openChildMenuItem);\r\n };\r\n\r\n private handleItemSelect = (event: CustomEvent<{ item: IKritzelMenuItem; parent: IKritzelMenuItem }>) => {\r\n event.stopPropagation();\r\n this.itemSelect.emit(event.detail);\r\n }\r\n\r\n private handleSave = (event: CustomEvent<IKritzelMenuItem>) => {\r\n event.stopPropagation();\r\n this.itemSave.emit(event.detail);\r\n }\r\n\r\n private handleCancel = (event: CustomEvent<IKritzelMenuItem>) => {\r\n event.stopPropagation();\r\n this.itemCancel.emit(event.detail);\r\n }\r\n\r\n private handleToggleChildMenu = (event: CustomEvent<{ item: IKritzelMenuItem; childMenuAnchor: HTMLElement }>) => {\r\n event.stopPropagation();\r\n this.itemToggleChildMenu.emit(event.detail);\r\n }\r\n\r\n private handleCloseChildMenu = (event: CustomEvent<IKritzelMenuItem>) => {\r\n event.stopPropagation();\r\n this.itemCloseChildMenu.emit(event.detail);\r\n }\r\n\r\n render() {\r\n return (\r\n <Host onClick={e => e.stopPropagation()}>\r\n {this.openChildMenuItem && <div class=\"has-open-child-overlay\" onClick={this.onOverlayClick}></div>}\r\n {this.items.map((item) => (\r\n <kritzel-menu-item\r\n key={item.id}\r\n item={item}\r\n parent={this.parent}\r\n style={{ pointerEvents: this.editingMenuItem && !item.isEditing ? 'none' : 'auto' }}\r\n onItemSelect={this.handleItemSelect}\r\n onItemSave={this.handleSave}\r\n onItemCancel={this.handleCancel}\r\n onItemToggleChildMenu={this.handleToggleChildMenu}\r\n onItemCloseChildMenu={this.handleCloseChildMenu}\r\n ></kritzel-menu-item>\r\n ))}\r\n </Host>\r\n );\r\n }\r\n}\r\n"]}
@@ -0,0 +1,136 @@
1
+ :host {
2
+ position: relative;
3
+ display: flex;
4
+ align-items: center;
5
+ justify-content: space-between;
6
+ width: 100%;
7
+ padding: var(--kritzel-menu-item-padding, 8px);
8
+ box-sizing: border-box;
9
+ gap: 16px;
10
+ height: var(--kritzel-menu-item-height, 40px);
11
+ min-height: var(--kritzel-menu-item-min-height, 40px);
12
+ font-family: sans-serif;
13
+ font-size: var(--kritzel-menu-item-font-size, 14px);
14
+ border-radius: var(--kritzel-menu-item-border-radius, 12px);
15
+ outline: none;
16
+ cursor: default;
17
+ }
18
+
19
+ :host(:hover) .menu-item-overlay, :host(:focus-within) .menu-item-overlay {
20
+ background-color: var(--kritzel-menu-item-button-hover-background-color, hsl(0, 0%, 0%, 4.3%))
21
+ }
22
+
23
+ :host(.selected) {
24
+ background-color: var(--kritzel-menu-item-selected-bg, #007aff);
25
+ color: var(--kritzel-menu-item-selected-color, #ffffff);
26
+ }
27
+
28
+ :host(.selected) .action-button {
29
+ color: var(--kritzel-menu-item-selected-color, #ffffff);
30
+ }
31
+
32
+ :host(.selected.editing) {
33
+ background-color: var(--kritzel-menu-item-selected-bg, #007aff);
34
+ }
35
+
36
+ :host(.selected) .edit-input {
37
+ color: var(--kritzel-menu-item-selected-color, #ffffff);
38
+ }
39
+
40
+ :host(.selected) .edit-input::selection {
41
+ background-color: var(--kritzel-menu-item-input-selection-color, rgba(255, 255, 255, 0.16));
42
+ }
43
+
44
+ :host(.editing) {
45
+ background-color: var(--kritzel-menu-item-button-hover-background-color, hsl(0, 0%, 0%, 4.3%));
46
+ }
47
+
48
+ :host(.disabled) {
49
+ opacity: 0.5;
50
+ pointer-events: none;
51
+ }
52
+
53
+ :host(.child-open) {
54
+ background-color: var(--kritzel-menu-item-button-hover-background-color, hsl(0, 0%, 0%, 4.3%));
55
+ }
56
+
57
+ :host(.child-open.selected) {
58
+ background-color: var(--kritzel-menu-item-selected-bg, #007aff);
59
+ }
60
+
61
+ .menu-item-overlay {
62
+ position: absolute;
63
+ inset: 0;
64
+ background-color: transparent;
65
+ z-index: 0;
66
+ pointer-events: none;
67
+ border-radius: var(--kritzel-menu-item-border-radius, 12px);
68
+ }
69
+
70
+ .menu-item-content {
71
+ display: flex;
72
+ align-items: center;
73
+ gap: 8px;
74
+ position: relative;
75
+ z-index: 1;
76
+ height: 100%;
77
+ }
78
+
79
+ .left {
80
+ justify-content: flex-start;
81
+ flex: 1;
82
+ min-width: 0;
83
+ }
84
+
85
+ .left > div {
86
+ white-space: nowrap;
87
+ overflow: hidden;
88
+ text-overflow: ellipsis;
89
+ }
90
+
91
+ .right {
92
+ justify-content: flex-end;
93
+ }
94
+
95
+ .edit-input {
96
+ flex: 1;
97
+ height: var(--kritzel-menu-item-input-height, 24px);
98
+ padding: 0;
99
+ background-color: transparent;
100
+ border-radius: 0;
101
+ border: none;
102
+ border-bottom: 1px solid var(--kritzel-menu-item-input-border, #ccc);
103
+ font-size: var(--kritzel-context-menu-item-font-size, 14px);
104
+ width: 100%;
105
+ min-width: 0;
106
+ box-sizing: border-box;
107
+ outline: none;
108
+ }
109
+
110
+ .edit-input::selection {
111
+ background-color: var(--kritzel-menu-item-input-selection-color, #007bff);
112
+ color: var(--kritzel-menu-item-input-selection-text-color, #ffffff);
113
+ }
114
+
115
+ .action-button {
116
+ padding: 4px;
117
+ border-radius: 8px;
118
+ border: none;
119
+ cursor: pointer;
120
+ display: flex;
121
+ align-items: center;
122
+ justify-content: center;
123
+ background-color: transparent;
124
+ background: transparent;
125
+ outline: none;
126
+ -webkit-tap-highlight-color: transparent;
127
+ }
128
+
129
+ .action-button:hover, .action-button:focus {
130
+ background-color: var(--kritzel-menu-item-button-hover-background-color, hsl(0, 0%, 0%, 4.3%));
131
+ }
132
+
133
+ .action-button.disabled {
134
+ pointer-events: none;
135
+ opacity: 0.5;
136
+ }