kritzel-stencil 0.0.129 → 0.0.130

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 (149) hide show
  1. package/dist/cjs/index-CUSIflVf.js +2 -2
  2. package/dist/cjs/{index-C7Read21.js → index-CfXjPLHb.js} +46 -28
  3. package/dist/cjs/index-CfXjPLHb.js.map +1 -0
  4. package/dist/cjs/index.cjs.js +1 -1
  5. package/dist/cjs/{kritzel-brush-style_22.cjs.entry.js → kritzel-brush-style_23.cjs.entry.js} +500 -454
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/stencil.cjs.js +1 -1
  8. package/dist/collection/classes/commands/add-object.command.js +2 -2
  9. package/dist/collection/classes/commands/add-object.command.js.map +1 -1
  10. package/dist/collection/classes/commands/add-selection-group.command.js +3 -3
  11. package/dist/collection/classes/commands/add-selection-group.command.js.map +1 -1
  12. package/dist/collection/classes/commands/remove-object.command.js +4 -4
  13. package/dist/collection/classes/commands/remove-object.command.js.map +1 -1
  14. package/dist/collection/classes/commands/remove-selection-group.command.js +2 -2
  15. package/dist/collection/classes/commands/remove-selection-group.command.js.map +1 -1
  16. package/dist/collection/classes/commands/rotate-selection-group.command.js +2 -2
  17. package/dist/collection/classes/commands/rotate-selection-group.command.js.map +1 -1
  18. package/dist/collection/classes/handlers/selection.handler.js +5 -5
  19. package/dist/collection/classes/handlers/selection.handler.js.map +1 -1
  20. package/dist/collection/classes/objects/base-object.class.js +1 -1
  21. package/dist/collection/classes/objects/base-object.class.js.map +1 -1
  22. package/dist/collection/classes/objects/path.class.js +1 -1
  23. package/dist/collection/classes/objects/path.class.js.map +1 -1
  24. package/dist/collection/classes/objects/selection-group.class.js +6 -6
  25. package/dist/collection/classes/objects/selection-group.class.js.map +1 -1
  26. package/dist/collection/classes/store.class.js +9 -22
  27. package/dist/collection/classes/store.class.js.map +1 -1
  28. package/dist/collection/classes/structures/object-map.structure.js +42 -0
  29. package/dist/collection/classes/structures/object-map.structure.js.map +1 -0
  30. package/dist/collection/collection-manifest.json +1 -0
  31. package/dist/collection/components/core/kritzel-editor/kritzel-editor.css +7 -0
  32. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +12 -2
  33. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +1 -1
  34. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +17 -17
  35. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +1 -1
  36. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.css +15 -168
  37. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +167 -193
  38. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js.map +1 -1
  39. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.css +129 -0
  40. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js +261 -0
  41. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js.map +1 -0
  42. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +160 -43
  43. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js.map +1 -1
  44. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.css +83 -78
  45. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +139 -118
  46. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js.map +1 -1
  47. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +1 -1
  48. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +4 -4
  49. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +2 -2
  50. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js +2 -2
  51. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +3 -3
  52. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +1 -1
  53. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js +110 -91
  54. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js.map +1 -1
  55. package/dist/collection/configs/default-engine-state.js +1 -1
  56. package/dist/collection/configs/default-engine-state.js.map +1 -1
  57. package/dist/collection/helpers/keyboard.helper.js +18 -0
  58. package/dist/collection/helpers/keyboard.helper.js.map +1 -1
  59. package/dist/collection/index.js +1 -0
  60. package/dist/collection/index.js.map +1 -1
  61. package/dist/collection/interfaces/engine-state.interface.js.map +1 -1
  62. package/dist/collection/interfaces/menu-item.interface.js.map +1 -1
  63. package/dist/components/index.d.ts +2 -0
  64. package/dist/components/index.js +3 -2
  65. package/dist/components/index.js.map +1 -1
  66. package/dist/components/kritzel-control-brush-config.js +1 -1
  67. package/dist/components/kritzel-control-text-config.js +1 -1
  68. package/dist/components/kritzel-controls.js +1 -1
  69. package/dist/components/kritzel-editor.js +53 -39
  70. package/dist/components/kritzel-editor.js.map +1 -1
  71. package/dist/components/kritzel-engine.js +1 -1
  72. package/dist/components/kritzel-menu-item.d.ts +11 -0
  73. package/dist/components/kritzel-menu-item.js +9 -0
  74. package/dist/components/kritzel-menu-item.js.map +1 -0
  75. package/dist/components/kritzel-menu.js +1 -1
  76. package/dist/components/kritzel-portal.js +1 -1
  77. package/dist/components/kritzel-split-button.js +1 -1
  78. package/dist/components/kritzel-stroke-size.js +1 -1
  79. package/dist/components/kritzel-tooltip.js +1 -1
  80. package/dist/components/kritzel-utility-panel.js +1 -1
  81. package/dist/components/kritzel-workspace-manager.js +1 -1
  82. package/dist/components/{p-jG1e48OE.js → p-26poIWa_.js} +6 -6
  83. package/dist/components/{p-jG1e48OE.js.map → p-26poIWa_.js.map} +1 -1
  84. package/dist/components/{p-rQeWFfPG.js → p-BGccckxP.js} +3 -3
  85. package/dist/components/{p-rQeWFfPG.js.map → p-BGccckxP.js.map} +1 -1
  86. package/dist/components/p-BcQWRzsB.js +183 -0
  87. package/dist/components/p-BcQWRzsB.js.map +1 -0
  88. package/dist/components/p-C-DqsDXz.js +238 -0
  89. package/dist/components/p-C-DqsDXz.js.map +1 -0
  90. package/dist/components/{p-B7VrEdgP.js → p-C9-70hiF.js} +25 -7
  91. package/dist/components/p-C9-70hiF.js.map +1 -0
  92. package/dist/components/{p-Dozs0Zfn.js → p-CaPdvVd4.js} +62 -50
  93. package/dist/components/p-CaPdvVd4.js.map +1 -0
  94. package/dist/components/{p-a7KmQzo4.js → p-Cb1IUD_g.js} +5 -5
  95. package/dist/components/{p-a7KmQzo4.js.map → p-Cb1IUD_g.js.map} +1 -1
  96. package/dist/components/{p-BaKb8ZLg.js → p-Crni2OI4.js} +4 -4
  97. package/dist/components/{p-BaKb8ZLg.js.map → p-Crni2OI4.js.map} +1 -1
  98. package/dist/components/{p-yZFrTtMQ.js → p-D_Uh-xv_.js} +11 -11
  99. package/dist/components/{p-yZFrTtMQ.js.map → p-D_Uh-xv_.js.map} +1 -1
  100. package/dist/components/{p-BzSz74Ci.js → p-fyfT6A5K.js} +3 -3
  101. package/dist/components/{p-BzSz74Ci.js.map → p-fyfT6A5K.js.map} +1 -1
  102. package/dist/components/{p-D-zg05gA.js → p-jGaWxggY.js} +93 -179
  103. package/dist/components/p-jGaWxggY.js.map +1 -0
  104. package/dist/components/p-jpGLgpoq.js +237 -0
  105. package/dist/components/p-jpGLgpoq.js.map +1 -0
  106. package/dist/esm/{index-J4NpPimy.js → index-DqqxAoZI.js} +47 -29
  107. package/dist/esm/index-DqqxAoZI.js.map +1 -0
  108. package/dist/esm/index-NiIEUDzj.js +2 -2
  109. package/dist/esm/index.js +1 -1
  110. package/dist/esm/{kritzel-brush-style_22.entry.js → kritzel-brush-style_23.entry.js} +500 -455
  111. package/dist/esm/loader.js +1 -1
  112. package/dist/esm/stencil.js +1 -1
  113. package/dist/stencil/index.esm.js +1 -1
  114. package/dist/stencil/p-DqqxAoZI.js +2 -0
  115. package/dist/stencil/p-DqqxAoZI.js.map +1 -0
  116. package/dist/stencil/p-eebdbf65.entry.js +2 -0
  117. package/dist/stencil/p-eebdbf65.entry.js.map +1 -0
  118. package/dist/stencil/stencil.esm.js +1 -1
  119. package/dist/types/classes/structures/object-map.structure.d.ts +11 -0
  120. package/dist/types/components/core/kritzel-editor/kritzel-editor.d.ts +3 -0
  121. package/dist/types/components/shared/kritzel-menu/kritzel-menu.d.ts +18 -20
  122. package/dist/types/components/shared/kritzel-menu-item/kritzel-menu-item.d.ts +26 -0
  123. package/dist/types/components/shared/kritzel-portal/kritzel-portal.d.ts +15 -10
  124. package/dist/types/components/shared/kritzel-split-button/kritzel-split-button.d.ts +23 -15
  125. package/dist/types/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.d.ts +18 -14
  126. package/dist/types/components.d.ts +90 -61
  127. package/dist/types/helpers/keyboard.helper.d.ts +1 -0
  128. package/dist/types/index.d.ts +1 -0
  129. package/dist/types/interfaces/engine-state.interface.d.ts +2 -2
  130. package/dist/types/interfaces/menu-item.interface.d.ts +21 -7
  131. package/package.json +1 -1
  132. package/dist/cjs/index-C7Read21.js.map +0 -1
  133. package/dist/collection/classes/structures/octree.structure.js +0 -115
  134. package/dist/collection/classes/structures/octree.structure.js.map +0 -1
  135. package/dist/components/p-B7VrEdgP.js.map +0 -1
  136. package/dist/components/p-BmJbJwkH.js +0 -167
  137. package/dist/components/p-BmJbJwkH.js.map +0 -1
  138. package/dist/components/p-C6OxvITm.js +0 -168
  139. package/dist/components/p-C6OxvITm.js.map +0 -1
  140. package/dist/components/p-D-zg05gA.js.map +0 -1
  141. package/dist/components/p-Dozs0Zfn.js.map +0 -1
  142. package/dist/components/p-aaxf-h5S.js +0 -159
  143. package/dist/components/p-aaxf-h5S.js.map +0 -1
  144. package/dist/esm/index-J4NpPimy.js.map +0 -1
  145. package/dist/stencil/p-43202395.entry.js +0 -2
  146. package/dist/stencil/p-43202395.entry.js.map +0 -1
  147. package/dist/stencil/p-J4NpPimy.js +0 -2
  148. package/dist/stencil/p-J4NpPimy.js.map +0 -1
  149. package/dist/types/classes/structures/octree.structure.d.ts +0 -18
@@ -1,2 +1,2 @@
1
- import{p as e,b as t}from"./p-NiIEUDzj.js";export{s as setNonce}from"./p-NiIEUDzj.js";import{g as o}from"./p-DQuL1Twl.js";var n=()=>{const t=import.meta.url;const o={};if(t!==""){o.resourcesUrl=new URL(".",t).href}return e(o)};n().then((async e=>{await o();return t([["p-43202395",[[256,"kritzel-editor",{scaleMax:[2,"scale-max"],scaleMin:[2,"scale-min"],controls:[16],globalContextMenuItems:[16,"global-context-menu-items"],objectContextMenuItems:[16,"object-context-menu-items"],customSvgIcons:[16,"custom-svg-icons"],isControlsVisible:[4,"is-controls-visible"],isUtilityPanelVisible:[4,"is-utility-panel-visible"],isEngineReady:[32],isControlsReady:[32],isWorkspaceManagerReady:[32],workspaces:[32],activeWorkspace:[32],getObjectById:[64],addObject:[64],updateObject:[64],removeObject:[64],getSelectedObjects:[64],selectObjects:[64],selectAllObjectsInViewport:[64],clearSelection:[64],centerObjectInViewport:[64]},[[0,"dblclick","handleTouchStart"]],{isEngineReady:["onIsEngineReady"],isControlsReady:["onIsControlsReady"]}],[257,"kritzel-controls",{controls:[16],activeControl:[1040,"active-control"],isUtilityPanelVisible:[4,"is-utility-panel-visible"],firstConfig:[32],isTooltipVisible:[32],isTouchDevice:[32],closeTooltip:[64]},[[4,"click","handleDocumentClick"],[8,"keydown","handleKeyDown"],[4,"activeToolChange","handleActiveToolChange"]]],[257,"kritzel-workspace-manager",{workspaces:[16],activeWorkspace:[1040,"active-workspace"],editingIndex:[32],newWorkspace:[32]}],[257,"kritzel-engine",{workspace:[16],activeTool:[16,"active-tool"],globalContextMenuItems:[16,"global-context-menu-items"],objectContextMenuItems:[16,"object-context-menu-items"],scaleMax:[1026,"scale-max"],scaleMin:[1026,"scale-min"],forceUpdate:[32],registerTool:[64],changeActiveTool:[64],setFocus:[64],disable:[64],enable:[64],delete:[64],copy:[64],paste:[64],bringForward:[64],sendBackward:[64],bringToFront:[64],sendToBack:[64],undo:[64],redo:[64],hideContextMenu:[64],getObjectById:[64],addObject:[64],updateObject:[64],removeObject:[64],getSelectedObjects:[64],selectObjects:[64],selectAllObjectsInViewport:[64],clearSelection:[64],centerObjectInViewport:[64],getCopiedObjects:[64],createWorkspace:[64],updateWorkspace:[64],deleteWorkspace:[64],getWorkspaces:[64]},[[0,"wheel","handleWheel"],[0,"pointerdown","handlePointerDown"],[0,"pointermove","handlePointerMove"],[0,"pointerup","handlePointerUp"],[0,"pointercancel","handlePointerCancel"],[0,"contextmenu","handleContextMenu"],[9,"resize","handleResize"],[8,"keydown","handleKeyDown"],[8,"keyup","handleKeyUp"],[9,"mousedown","updateFocus"],[0,"click","handleClick"]],{workspace:["onWorkspaceChange"],scaleMax:["validateScaleMax"],scaleMin:["validateScaleMin"]}],[257,"kritzel-control-text-config",{tool:[1040],isExpanded:[1028,"is-expanded"]}],[257,"kritzel-control-brush-config",{tool:[1040],isExpanded:[1028,"is-expanded"],palette:[32]},null,{tool:["handleToolChange"]}],[257,"kritzel-split-button",{buttonText:[1,"button-text"],buttonIcon:[1,"button-icon"],dropdownIcon:[1,"dropdown-icon"],options:[16],disabled:[4],activeItemIndex:[2,"active-item-index"],editingIndex:[2,"editing-index"],isMenuOpen:[32],isTouchDevice:[32],openMenu:[64],closeMenu:[64]}],[257,"kritzel-context-menu",{items:[16],objects:[16],processedItems:[32]},null,{items:["onItemsChanged"]}],[257,"kritzel-utility-panel"],[257,"kritzel-cursor-trail",{store:[16],cursorTrailPoints:[32],isLeftButtonDown:[32]},[[9,"pointerdown","handleMouseDown"],[9,"pointermove","handlePointerMove"],[9,"pointerup","handlePointerUp"]]],[257,"kritzel-tooltip",{isVisible:[4,"is-visible"],anchorElement:[16,"anchor-element"],arrowSize:[2,"arrow-size"],offsetY:[2,"offset-y"],positionX:[32],arrowOffset:[32],isMobileView:[32]},[[9,"resize","handleWindowResize"]]],[257,"kritzel-brush-style",{type:[1],brushOptions:[16,"brush-options"]}],[257,"kritzel-font-family",{fontOptions:[16,"font-options"],selectedFontFamily:[1025,"selected-font-family"]}],[257,"kritzel-font-size",{sizes:[16],selectedSize:[1026,"selected-size"],fontFamily:[1,"font-family"]}],[257,"kritzel-stroke-size",{sizes:[16],selectedSize:[1026,"selected-size"]}],[257,"kritzel-menu",{items:[16],parentIndex:[2,"parent-index"],parent:[16],activeItemIndex:[2,"active-item-index"],editingIndex:[2,"editing-index"],openChildMenuIndex:[32],isTouchDevice:[32]},[[9,"pointerup","handleWindowClick"],[8,"keydown","handleEscape"],[8,"keydown","handleEnter"]],{editingIndex:["onEditingIndexChange"]}],[257,"kritzel-color-palette",{colors:[16],selectedColor:[1025,"selected-color"],isExpanded:[4,"is-expanded"],isOpaque:[4,"is-opaque"]}],[257,"kritzel-font",{fontFamily:[1,"font-family"],size:[2],color:[1]}],[257,"kritzel-portal",{anchor:[16],offsetX:[2,"offset-x"],offsetY:[2,"offset-y"],autoFocus:[4,"auto-focus"]},[[11,"resize","handleResize"]],{anchor:["anchorChanged"]}],[257,"kritzel-color",{value:[1],size:[2]}],[257,"kritzel-dropdown",{options:[16],value:[1],width:[1],selectStyles:[8,"select-styles"],internalValue:[32],hasSuffixContent:[32],hasPrefixContent:[32]},null,{value:["externalValueChanged"],options:["optionsChanged"]}],[257,"kritzel-icon",{name:[1],label:[1],size:[2]}]]]],e)}));
1
+ import{p as e,b as t}from"./p-NiIEUDzj.js";export{s as setNonce}from"./p-NiIEUDzj.js";import{g as o}from"./p-DQuL1Twl.js";var n=()=>{const t=import.meta.url;const o={};if(t!==""){o.resourcesUrl=new URL(".",t).href}return e(o)};n().then((async e=>{await o();return t([["p-eebdbf65",[[256,"kritzel-editor",{scaleMax:[2,"scale-max"],scaleMin:[2,"scale-min"],controls:[16],globalContextMenuItems:[16,"global-context-menu-items"],objectContextMenuItems:[16,"object-context-menu-items"],customSvgIcons:[16,"custom-svg-icons"],isControlsVisible:[4,"is-controls-visible"],isUtilityPanelVisible:[4,"is-utility-panel-visible"],isEngineReady:[32],isControlsReady:[32],isWorkspaceManagerReady:[32],workspaces:[32],activeWorkspace:[32],isVirtualKeyboardOpen:[32],getObjectById:[64],addObject:[64],updateObject:[64],removeObject:[64],getSelectedObjects:[64],selectObjects:[64],selectAllObjectsInViewport:[64],clearSelection:[64],centerObjectInViewport:[64]},[[0,"dblclick","handleTouchStart"]],{isEngineReady:["onIsEngineReady"],isControlsReady:["onIsControlsReady"]}],[257,"kritzel-controls",{controls:[16],activeControl:[1040,"active-control"],isUtilityPanelVisible:[4,"is-utility-panel-visible"],firstConfig:[32],isTooltipVisible:[32],isTouchDevice:[32],closeTooltip:[64]},[[4,"click","handleDocumentClick"],[8,"keydown","handleKeyDown"],[4,"activeToolChange","handleActiveToolChange"]]],[257,"kritzel-workspace-manager",{activeWorkspace:[16,"active-workspace"],workspaces:[16],childMenuAnchor:[32],openChildMenuItem:[32],newWorkspace:[32],editingItemId:[32]}],[257,"kritzel-engine",{workspace:[16],activeTool:[16,"active-tool"],globalContextMenuItems:[16,"global-context-menu-items"],objectContextMenuItems:[16,"object-context-menu-items"],scaleMax:[1026,"scale-max"],scaleMin:[1026,"scale-min"],forceUpdate:[32],registerTool:[64],changeActiveTool:[64],setFocus:[64],disable:[64],enable:[64],delete:[64],copy:[64],paste:[64],bringForward:[64],sendBackward:[64],bringToFront:[64],sendToBack:[64],undo:[64],redo:[64],hideContextMenu:[64],getObjectById:[64],addObject:[64],updateObject:[64],removeObject:[64],getSelectedObjects:[64],selectObjects:[64],selectAllObjectsInViewport:[64],clearSelection:[64],centerObjectInViewport:[64],getCopiedObjects:[64],createWorkspace:[64],updateWorkspace:[64],deleteWorkspace:[64],getWorkspaces:[64]},[[0,"wheel","handleWheel"],[0,"pointerdown","handlePointerDown"],[0,"pointermove","handlePointerMove"],[0,"pointerup","handlePointerUp"],[0,"pointercancel","handlePointerCancel"],[0,"contextmenu","handleContextMenu"],[9,"resize","handleResize"],[8,"keydown","handleKeyDown"],[8,"keyup","handleKeyUp"],[9,"mousedown","updateFocus"],[0,"click","handleClick"]],{workspace:["onWorkspaceChange"],scaleMax:["validateScaleMax"],scaleMin:["validateScaleMin"]}],[257,"kritzel-control-text-config",{tool:[1040],isExpanded:[1028,"is-expanded"]}],[257,"kritzel-control-brush-config",{tool:[1040],isExpanded:[1028,"is-expanded"],palette:[32]},null,{tool:["handleToolChange"]}],[257,"kritzel-split-button",{buttonIcon:[1,"button-icon"],dropdownIcon:[1,"dropdown-icon"],items:[16],mainButtonDisabled:[4,"main-button-disabled"],menuButtonDisabled:[4,"menu-button-disabled"],isMenuOpen:[32],isTouchDevice:[32],anchorElement:[32],open:[64]}],[257,"kritzel-context-menu",{items:[16],objects:[16],processedItems:[32]},null,{items:["onItemsChanged"]}],[257,"kritzel-utility-panel"],[257,"kritzel-cursor-trail",{store:[16],cursorTrailPoints:[32],isLeftButtonDown:[32]},[[9,"pointerdown","handleMouseDown"],[9,"pointermove","handlePointerMove"],[9,"pointerup","handlePointerUp"]]],[257,"kritzel-tooltip",{isVisible:[4,"is-visible"],anchorElement:[16,"anchor-element"],arrowSize:[2,"arrow-size"],offsetY:[2,"offset-y"],positionX:[32],arrowOffset:[32],isMobileView:[32]},[[9,"resize","handleWindowResize"]]],[257,"kritzel-brush-style",{type:[1],brushOptions:[16,"brush-options"]}],[257,"kritzel-font-family",{fontOptions:[16,"font-options"],selectedFontFamily:[1025,"selected-font-family"]}],[257,"kritzel-font-size",{sizes:[16],selectedSize:[1026,"selected-size"],fontFamily:[1,"font-family"]}],[257,"kritzel-stroke-size",{sizes:[16],selectedSize:[1026,"selected-size"]}],[257,"kritzel-color-palette",{colors:[16],selectedColor:[1025,"selected-color"],isExpanded:[4,"is-expanded"],isOpaque:[4,"is-opaque"]}],[257,"kritzel-font",{fontFamily:[1,"font-family"],size:[2],color:[1]}],[257,"kritzel-menu",{items:[16],parent:[16],selectedIndex:[32],setFocus:[64]}],[257,"kritzel-menu-item",{item:[16],parent:[16],isDirty:[32]},null,{item:["onItemChange"]}],[257,"kritzel-portal",{anchor:[16],offsetX:[2,"offset-x"],offsetY:[2,"offset-y"],autoFocus:[4,"auto-focus"]},[[8,"click","handleOutsideClick"],[8,"keydown","handleKeyDown"],[11,"resize","handleResize"]],{anchor:["anchorChanged"]}],[257,"kritzel-color",{value:[1],size:[2]}],[257,"kritzel-dropdown",{options:[16],value:[1],width:[1],selectStyles:[8,"select-styles"],internalValue:[32],hasSuffixContent:[32],hasPrefixContent:[32]},null,{value:["externalValueChanged"],options:["optionsChanged"]}],[257,"kritzel-icon",{name:[1],label:[1],size:[2]}]]]],e)}));
2
2
  //# sourceMappingURL=stencil.esm.js.map
@@ -0,0 +1,11 @@
1
+ import { KritzelBaseObject } from '../objects/base-object.class';
2
+ export declare class KritzelObjectMap<T extends KritzelBaseObject<any>> {
3
+ private map;
4
+ constructor();
5
+ reset(): void;
6
+ insert(object: T): boolean;
7
+ update(object: T): boolean;
8
+ remove(predicate: (object: T) => boolean): void;
9
+ filter(predicate: (object: T) => boolean): T[];
10
+ allObjects(): T[];
11
+ }
@@ -20,6 +20,7 @@ export declare class KritzelEditor {
20
20
  isWorkspaceManagerReady: boolean;
21
21
  workspaces: KritzelWorkspace[];
22
22
  activeWorkspace: KritzelWorkspace;
23
+ isVirtualKeyboardOpen: boolean;
23
24
  onIsEngineReady(newValue: boolean): void;
24
25
  onIsControlsReady(newValue: boolean): void;
25
26
  getObjectById<T extends KritzelBaseObject>(id: string): Promise<T | null>;
@@ -34,9 +35,11 @@ export declare class KritzelEditor {
34
35
  handleTouchStart(event: MouseEvent): void;
35
36
  engineRef: HTMLKritzelEngineElement;
36
37
  controlsRef: HTMLKritzelControlsElement;
38
+ splitButtonRef: HTMLKritzelSplitButtonElement;
37
39
  componentDidLoad(): void;
38
40
  checkIsReady(): Promise<void>;
39
41
  onEngineReady(event: CustomEvent<KritzelEngineState>): void;
40
42
  private registerCustomSvgIcons;
43
+ private listenForMobileKeyboard;
41
44
  render(): any;
42
45
  }
@@ -1,26 +1,24 @@
1
1
  import { EventEmitter } from '../../../stencil-public-runtime';
2
- import { KritzelMenuItem } from '../../../interfaces/menu-item.interface';
2
+ import { IKritzelMenuItem, IKritzelMenuItemSelectEvent, IKritzelMenuItemToggleChildMenuEvent } from '../../../interfaces/menu-item.interface';
3
3
  export declare class KritzelMenu {
4
4
  host: HTMLElement;
5
- items: KritzelMenuItem[];
6
- parentIndex: number | null;
7
- parent: KritzelMenuItem;
8
- activeItemIndex: number | null;
9
- editingIndex: number | null;
5
+ items: IKritzelMenuItem[];
6
+ parent: IKritzelMenuItem;
7
+ itemSelect: EventEmitter<IKritzelMenuItemSelectEvent>;
8
+ itemSave: EventEmitter<IKritzelMenuItem>;
9
+ itemCancel: EventEmitter<IKritzelMenuItem>;
10
+ itemToggleChildMenu: EventEmitter<IKritzelMenuItemToggleChildMenuEvent>;
11
+ itemCloseChildMenu: EventEmitter<IKritzelMenuItem>;
10
12
  close: EventEmitter<void>;
11
- openChildMenuIndex: number | null;
12
- isTouchDevice: boolean;
13
- private editInput?;
14
- private childMenuAnchor?;
15
- private childMenu?;
16
- private cancelButton?;
17
- private saveButton?;
18
- onEditingIndexChange(newValue: number | null): void;
19
- handleWindowClick(event: PointerEvent): void;
20
- handleEscape(event: KeyboardEvent): void;
21
- handleEnter(event: KeyboardEvent): void;
22
- componentDidLoad(): void;
23
- isViewMode(index: number): boolean;
24
- handleSelect(item: KritzelMenuItem): void;
13
+ selectedIndex: number | null;
14
+ setFocus(): Promise<void>;
15
+ get openChildMenuItem(): IKritzelMenuItem<any>;
16
+ get editingMenuItem(): IKritzelMenuItem<any>;
17
+ private onOverlayClick;
18
+ private handleItemSelect;
19
+ private handleSave;
20
+ private handleCancel;
21
+ private handleToggleChildMenu;
22
+ private handleCloseChildMenu;
25
23
  render(): any;
26
24
  }
@@ -0,0 +1,26 @@
1
+ import { EventEmitter } from '../../../stencil-public-runtime';
2
+ import { IKritzelMenuItem, IKritzelMenuItemSelectEvent, IKritzelMenuItemToggleChildMenuEvent } from '../../../interfaces/menu-item.interface';
3
+ export declare class KritzelMenuItem {
4
+ host: HTMLElement;
5
+ item: IKritzelMenuItem;
6
+ onItemChange(newValue: IKritzelMenuItem, oldValue: IKritzelMenuItem): void;
7
+ parent: IKritzelMenuItem;
8
+ itemSelect: EventEmitter<IKritzelMenuItemSelectEvent>;
9
+ itemSave: EventEmitter<IKritzelMenuItem>;
10
+ itemCancel: EventEmitter<IKritzelMenuItem>;
11
+ itemToggleChildMenu: EventEmitter<IKritzelMenuItemToggleChildMenuEvent>;
12
+ itemCloseChildMenu: EventEmitter<IKritzelMenuItem>;
13
+ isDirty: boolean;
14
+ private inputRef;
15
+ componentDidLoad(): void;
16
+ componentDidUpdate(): void;
17
+ private handleItemSelect;
18
+ private handleInputChange;
19
+ private handleSave;
20
+ private handleCancel;
21
+ private handleMenuToggle;
22
+ private handleMenuClose;
23
+ private renderViewMode;
24
+ private renderEditMode;
25
+ render(): any;
26
+ }
@@ -1,24 +1,29 @@
1
1
  import { EventEmitter } from '../../../stencil-public-runtime';
2
2
  export declare class KritzelPortal {
3
+ host: HTMLElement;
3
4
  anchor: HTMLElement;
4
5
  anchorChanged(newValue: HTMLElement): void;
5
6
  offsetX: number;
6
7
  offsetY: number;
7
8
  autoFocus: boolean;
8
9
  close: EventEmitter<void>;
9
- private portal;
10
- private element;
11
- private moved;
12
- private scrollableParent;
10
+ handleOutsideClick(event: MouseEvent): void;
11
+ handleKeyDown(event: KeyboardEvent): void;
13
12
  handleResize(): void;
14
- private handleScroll;
13
+ private portal;
14
+ private id;
15
+ private defaultOffset;
16
+ private minLeft;
17
+ private focusFirstElement;
18
+ private getDeepActiveElement;
19
+ private trapFocus;
20
+ private getFocusableElements;
21
+ private get firstFocusableElement();
22
+ private get lastAddedPortal();
15
23
  private calculateLeft;
16
24
  private calculateTop;
17
- private createPortal;
18
- private moveElementToPortal;
25
+ private openPortal;
26
+ private closePortal;
19
27
  private calculatePosition;
20
- componentWillLoad(): void;
21
- componentDidLoad(): void;
22
- disconnectedCallback(): void;
23
28
  render(): any;
24
29
  }
@@ -1,25 +1,33 @@
1
1
  import { EventEmitter } from '../../../stencil-public-runtime';
2
- import { KritzelMenuItem } from '../../../interfaces/menu-item.interface';
2
+ import { IKritzelMenuItem, IKritzelMenuItemSelectEvent, IKritzelMenuItemToggleChildMenuEvent } from '../../../interfaces/menu-item.interface';
3
3
  export declare class KritzelSplitButton {
4
- buttonText: string;
4
+ host: HTMLElement;
5
5
  buttonIcon: string;
6
6
  dropdownIcon: string;
7
- options: KritzelMenuItem[];
8
- disabled: boolean;
9
- activeItemIndex: number | null;
10
- editingIndex: number | null;
7
+ items: IKritzelMenuItem[];
8
+ mainButtonDisabled: boolean;
9
+ menuButtonDisabled: boolean;
11
10
  buttonClick: EventEmitter<void>;
12
- optionSelect: EventEmitter<KritzelMenuItem>;
13
- menuOpened: EventEmitter<void>;
14
- menuClosed: EventEmitter<void>;
15
- host: HTMLElement;
11
+ itemSelect: EventEmitter<IKritzelMenuItemSelectEvent>;
12
+ itemSave: EventEmitter<IKritzelMenuItem>;
13
+ itemCancel: EventEmitter<IKritzelMenuItem>;
14
+ itemToggleChildMenu: EventEmitter<IKritzelMenuItemToggleChildMenuEvent>;
15
+ itemCloseChildMenu: EventEmitter<IKritzelMenuItem>;
16
+ close: EventEmitter<void>;
16
17
  isMenuOpen: boolean;
17
18
  isTouchDevice: boolean;
18
- splitMenuButton: HTMLButtonElement;
19
- openMenu(): Promise<void>;
20
- closeMenu(): Promise<void>;
21
- private handleDocumentClick;
22
- private toggleMenu;
19
+ anchorElement: HTMLElement;
20
+ splitMenuButtonRef: HTMLButtonElement;
21
+ menuRef: HTMLKritzelMenuElement;
22
+ open(): Promise<void>;
23
23
  private handleButtonClick;
24
+ private toggleMenu;
25
+ private openMenu;
26
+ private closeMenu;
27
+ private handleItemSelect;
28
+ private handleItemSave;
29
+ private handleItemCancel;
30
+ private handleItemToggleChildMenu;
31
+ private handleItemCloseChildMenu;
24
32
  render(): any;
25
33
  }
@@ -1,25 +1,29 @@
1
- import { EventEmitter } from '../../../stencil-public-runtime';
2
1
  import { KritzelWorkspace } from '../../../classes/workspace.class';
2
+ import { IKritzelMenuItem } from '../../../interfaces/menu-item.interface';
3
+ import { EventEmitter } from '../../../stencil-public-runtime';
3
4
  export declare class KritzelWorkspaceManager {
4
- workspaces: KritzelWorkspace[];
5
+ host: HTMLElement;
5
6
  activeWorkspace: KritzelWorkspace;
6
- editingIndex: number | null;
7
- newWorkspace: KritzelWorkspace | null;
7
+ workspaces: KritzelWorkspace[];
8
8
  isWorkspaceManagerReady: EventEmitter<void>;
9
9
  workspaceChange: EventEmitter<KritzelWorkspace>;
10
- host: HTMLElement;
11
- kritzelEngine: HTMLKritzelEngineElement | null;
10
+ childMenuAnchor: HTMLElement;
11
+ openChildMenuItem: IKritzelMenuItem;
12
+ newWorkspace: KritzelWorkspace | null;
13
+ editingItemId: string | null;
14
+ kritzelEngineRef: HTMLKritzelEngineElement | null;
12
15
  splitButtonRef: HTMLKritzelSplitButtonElement;
13
16
  get sortedWorkspaces(): KritzelWorkspace[];
14
- get activeItemIndex(): number;
15
17
  componentWillLoad(): Promise<void>;
16
18
  private initializeEngine;
17
- private handleSelect;
18
- private handleNewWorkspace;
19
- private handleMenuClosed;
20
- private handleSave;
21
- private handleRename;
22
- private handleDelete;
23
- private selectWorkspace;
19
+ private select;
20
+ private add;
21
+ private edit;
22
+ private save;
23
+ private cancel;
24
+ private delete;
25
+ private toggleChildMenu;
26
+ private closeChildMenu;
27
+ private closeMenu;
24
28
  render(): any;
25
29
  }
@@ -18,7 +18,7 @@ import { KritzelTool } from "./interfaces/tool.interface";
18
18
  import { KritzelEngineState } from "./interfaces/engine-state.interface";
19
19
  import { KritzelBaseTool } from "./classes/tools/base-tool.class";
20
20
  import { FontOption } from "./components/shared/kritzel-font-family/kritzel-font-family";
21
- import { KritzelMenuItem } from "./interfaces/menu-item.interface";
21
+ import { IKritzelMenuItem, IKritzelMenuItemSelectEvent, IKritzelMenuItemToggleChildMenuEvent } from "./interfaces/menu-item.interface";
22
22
  export { BrushStyleOption } from "./components/shared/kritzel-brush-style/kritzel-brush-style";
23
23
  export { ContextMenuItem } from "./interfaces/context-menu-item.interface";
24
24
  export { KritzelBaseObject } from "./classes/objects/base-object.class";
@@ -32,7 +32,7 @@ export { KritzelTool } from "./interfaces/tool.interface";
32
32
  export { KritzelEngineState } from "./interfaces/engine-state.interface";
33
33
  export { KritzelBaseTool } from "./classes/tools/base-tool.class";
34
34
  export { FontOption } from "./components/shared/kritzel-font-family/kritzel-font-family";
35
- export { KritzelMenuItem } from "./interfaces/menu-item.interface";
35
+ export { IKritzelMenuItem, IKritzelMenuItemSelectEvent, IKritzelMenuItemToggleChildMenuEvent } from "./interfaces/menu-item.interface";
36
36
  export namespace Components {
37
37
  interface KritzelBrushStyle {
38
38
  /**
@@ -247,26 +247,19 @@ export namespace Components {
247
247
  "size": number;
248
248
  }
249
249
  interface KritzelMenu {
250
+ "items": IKritzelMenuItem[];
250
251
  /**
251
252
  * @default null
252
253
  */
253
- "activeItemIndex": number | null;
254
- /**
255
- * @default null
256
- */
257
- "editingIndex": number | null;
258
- /**
259
- * @default []
260
- */
261
- "items": KritzelMenuItem[];
262
- /**
263
- * @default null
264
- */
265
- "parent": KritzelMenuItem;
254
+ "parent": IKritzelMenuItem;
255
+ "setFocus": () => Promise<void>;
256
+ }
257
+ interface KritzelMenuItem {
258
+ "item": IKritzelMenuItem;
266
259
  /**
267
260
  * @default null
268
261
  */
269
- "parentIndex": number | null;
262
+ "parent": IKritzelMenuItem;
270
263
  }
271
264
  interface KritzelPortal {
272
265
  "anchor": HTMLElement;
@@ -279,29 +272,26 @@ export namespace Components {
279
272
  }
280
273
  interface KritzelSplitButton {
281
274
  /**
282
- * @default null
275
+ * @default 'plus'
283
276
  */
284
- "activeItemIndex": number | null;
285
277
  "buttonIcon": string;
286
- "buttonText": string;
287
- "closeMenu": () => Promise<void>;
288
- /**
289
- * @default false
290
- */
291
- "disabled": boolean;
292
278
  /**
293
279
  * @default 'chevron-down'
294
280
  */
295
281
  "dropdownIcon": string;
296
282
  /**
297
- * @default null
283
+ * @default []
298
284
  */
299
- "editingIndex": number | null;
300
- "openMenu": () => Promise<void>;
285
+ "items": IKritzelMenuItem[];
301
286
  /**
302
- * @default []
287
+ * @default false
288
+ */
289
+ "mainButtonDisabled": boolean;
290
+ /**
291
+ * @default false
303
292
  */
304
- "options": KritzelMenuItem[];
293
+ "menuButtonDisabled": boolean;
294
+ "open": () => Promise<void>;
305
295
  }
306
296
  interface KritzelStrokeSize {
307
297
  /**
@@ -386,6 +376,10 @@ export interface KritzelMenuCustomEvent<T> extends CustomEvent<T> {
386
376
  detail: T;
387
377
  target: HTMLKritzelMenuElement;
388
378
  }
379
+ export interface KritzelMenuItemCustomEvent<T> extends CustomEvent<T> {
380
+ detail: T;
381
+ target: HTMLKritzelMenuItemElement;
382
+ }
389
383
  export interface KritzelPortalCustomEvent<T> extends CustomEvent<T> {
390
384
  detail: T;
391
385
  target: HTMLKritzelPortalElement;
@@ -621,6 +615,11 @@ declare global {
621
615
  new (): HTMLKritzelIconElement;
622
616
  };
623
617
  interface HTMLKritzelMenuElementEventMap {
618
+ "itemSelect": IKritzelMenuItemSelectEvent;
619
+ "itemSave": IKritzelMenuItem;
620
+ "itemCancel": IKritzelMenuItem;
621
+ "itemToggleChildMenu": IKritzelMenuItemToggleChildMenuEvent;
622
+ "itemCloseChildMenu": IKritzelMenuItem;
624
623
  "close": void;
625
624
  }
626
625
  interface HTMLKritzelMenuElement extends Components.KritzelMenu, HTMLStencilElement {
@@ -637,6 +636,27 @@ declare global {
637
636
  prototype: HTMLKritzelMenuElement;
638
637
  new (): HTMLKritzelMenuElement;
639
638
  };
639
+ interface HTMLKritzelMenuItemElementEventMap {
640
+ "itemSelect": IKritzelMenuItemSelectEvent;
641
+ "itemSave": IKritzelMenuItem;
642
+ "itemCancel": IKritzelMenuItem;
643
+ "itemToggleChildMenu": IKritzelMenuItemToggleChildMenuEvent;
644
+ "itemCloseChildMenu": IKritzelMenuItem;
645
+ }
646
+ interface HTMLKritzelMenuItemElement extends Components.KritzelMenuItem, HTMLStencilElement {
647
+ addEventListener<K extends keyof HTMLKritzelMenuItemElementEventMap>(type: K, listener: (this: HTMLKritzelMenuItemElement, ev: KritzelMenuItemCustomEvent<HTMLKritzelMenuItemElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
648
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
649
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
650
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
651
+ removeEventListener<K extends keyof HTMLKritzelMenuItemElementEventMap>(type: K, listener: (this: HTMLKritzelMenuItemElement, ev: KritzelMenuItemCustomEvent<HTMLKritzelMenuItemElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
652
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
653
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
654
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
655
+ }
656
+ var HTMLKritzelMenuItemElement: {
657
+ prototype: HTMLKritzelMenuItemElement;
658
+ new (): HTMLKritzelMenuItemElement;
659
+ };
640
660
  interface HTMLKritzelPortalElementEventMap {
641
661
  "close": void;
642
662
  }
@@ -656,9 +676,12 @@ declare global {
656
676
  };
657
677
  interface HTMLKritzelSplitButtonElementEventMap {
658
678
  "buttonClick": void;
659
- "optionSelect": KritzelMenuItem;
660
- "menuOpened": void;
661
- "menuClosed": void;
679
+ "itemSelect": IKritzelMenuItemSelectEvent;
680
+ "itemSave": IKritzelMenuItem;
681
+ "itemCancel": IKritzelMenuItem;
682
+ "itemToggleChildMenu": IKritzelMenuItemToggleChildMenuEvent;
683
+ "itemCloseChildMenu": IKritzelMenuItem;
684
+ "close": void;
662
685
  }
663
686
  interface HTMLKritzelSplitButtonElement extends Components.KritzelSplitButton, HTMLStencilElement {
664
687
  addEventListener<K extends keyof HTMLKritzelSplitButtonElementEventMap>(type: K, listener: (this: HTMLKritzelSplitButtonElement, ev: KritzelSplitButtonCustomEvent<HTMLKritzelSplitButtonElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
@@ -751,6 +774,7 @@ declare global {
751
774
  "kritzel-font-size": HTMLKritzelFontSizeElement;
752
775
  "kritzel-icon": HTMLKritzelIconElement;
753
776
  "kritzel-menu": HTMLKritzelMenuElement;
777
+ "kritzel-menu-item": HTMLKritzelMenuItemElement;
754
778
  "kritzel-portal": HTMLKritzelPortalElement;
755
779
  "kritzel-split-button": HTMLKritzelSplitButtonElement;
756
780
  "kritzel-stroke-size": HTMLKritzelStrokeSizeElement;
@@ -947,27 +971,29 @@ declare namespace LocalJSX {
947
971
  "size"?: number;
948
972
  }
949
973
  interface KritzelMenu {
950
- /**
951
- * @default null
952
- */
953
- "activeItemIndex"?: number | null;
954
- /**
955
- * @default null
956
- */
957
- "editingIndex"?: number | null;
958
- /**
959
- * @default []
960
- */
961
- "items"?: KritzelMenuItem[];
974
+ "items"?: IKritzelMenuItem[];
962
975
  "onClose"?: (event: KritzelMenuCustomEvent<void>) => void;
976
+ "onItemCancel"?: (event: KritzelMenuCustomEvent<IKritzelMenuItem>) => void;
977
+ "onItemCloseChildMenu"?: (event: KritzelMenuCustomEvent<IKritzelMenuItem>) => void;
978
+ "onItemSave"?: (event: KritzelMenuCustomEvent<IKritzelMenuItem>) => void;
979
+ "onItemSelect"?: (event: KritzelMenuCustomEvent<IKritzelMenuItemSelectEvent>) => void;
980
+ "onItemToggleChildMenu"?: (event: KritzelMenuCustomEvent<IKritzelMenuItemToggleChildMenuEvent>) => void;
963
981
  /**
964
982
  * @default null
965
983
  */
966
- "parent"?: KritzelMenuItem;
984
+ "parent"?: IKritzelMenuItem;
985
+ }
986
+ interface KritzelMenuItem {
987
+ "item"?: IKritzelMenuItem;
988
+ "onItemCancel"?: (event: KritzelMenuItemCustomEvent<IKritzelMenuItem>) => void;
989
+ "onItemCloseChildMenu"?: (event: KritzelMenuItemCustomEvent<IKritzelMenuItem>) => void;
990
+ "onItemSave"?: (event: KritzelMenuItemCustomEvent<IKritzelMenuItem>) => void;
991
+ "onItemSelect"?: (event: KritzelMenuItemCustomEvent<IKritzelMenuItemSelectEvent>) => void;
992
+ "onItemToggleChildMenu"?: (event: KritzelMenuItemCustomEvent<IKritzelMenuItemToggleChildMenuEvent>) => void;
967
993
  /**
968
994
  * @default null
969
995
  */
970
- "parentIndex"?: number | null;
996
+ "parent"?: IKritzelMenuItem;
971
997
  }
972
998
  interface KritzelPortal {
973
999
  "anchor"?: HTMLElement;
@@ -981,31 +1007,32 @@ declare namespace LocalJSX {
981
1007
  }
982
1008
  interface KritzelSplitButton {
983
1009
  /**
984
- * @default null
1010
+ * @default 'plus'
985
1011
  */
986
- "activeItemIndex"?: number | null;
987
1012
  "buttonIcon"?: string;
988
- "buttonText"?: string;
989
- /**
990
- * @default false
991
- */
992
- "disabled"?: boolean;
993
1013
  /**
994
1014
  * @default 'chevron-down'
995
1015
  */
996
1016
  "dropdownIcon"?: string;
997
1017
  /**
998
- * @default null
1018
+ * @default []
999
1019
  */
1000
- "editingIndex"?: number | null;
1001
- "onButtonClick"?: (event: KritzelSplitButtonCustomEvent<void>) => void;
1002
- "onMenuClosed"?: (event: KritzelSplitButtonCustomEvent<void>) => void;
1003
- "onMenuOpened"?: (event: KritzelSplitButtonCustomEvent<void>) => void;
1004
- "onOptionSelect"?: (event: KritzelSplitButtonCustomEvent<KritzelMenuItem>) => void;
1020
+ "items"?: IKritzelMenuItem[];
1005
1021
  /**
1006
- * @default []
1022
+ * @default false
1007
1023
  */
1008
- "options"?: KritzelMenuItem[];
1024
+ "mainButtonDisabled"?: boolean;
1025
+ /**
1026
+ * @default false
1027
+ */
1028
+ "menuButtonDisabled"?: boolean;
1029
+ "onButtonClick"?: (event: KritzelSplitButtonCustomEvent<void>) => void;
1030
+ "onClose"?: (event: KritzelSplitButtonCustomEvent<void>) => void;
1031
+ "onItemCancel"?: (event: KritzelSplitButtonCustomEvent<IKritzelMenuItem>) => void;
1032
+ "onItemCloseChildMenu"?: (event: KritzelSplitButtonCustomEvent<IKritzelMenuItem>) => void;
1033
+ "onItemSave"?: (event: KritzelSplitButtonCustomEvent<IKritzelMenuItem>) => void;
1034
+ "onItemSelect"?: (event: KritzelSplitButtonCustomEvent<IKritzelMenuItemSelectEvent>) => void;
1035
+ "onItemToggleChildMenu"?: (event: KritzelSplitButtonCustomEvent<IKritzelMenuItemToggleChildMenuEvent>) => void;
1009
1036
  }
1010
1037
  interface KritzelStrokeSize {
1011
1038
  "onSizeChange"?: (event: KritzelStrokeSizeCustomEvent<number>) => void;
@@ -1064,6 +1091,7 @@ declare namespace LocalJSX {
1064
1091
  "kritzel-font-size": KritzelFontSize;
1065
1092
  "kritzel-icon": KritzelIcon;
1066
1093
  "kritzel-menu": KritzelMenu;
1094
+ "kritzel-menu-item": KritzelMenuItem;
1067
1095
  "kritzel-portal": KritzelPortal;
1068
1096
  "kritzel-split-button": KritzelSplitButton;
1069
1097
  "kritzel-stroke-size": KritzelStrokeSize;
@@ -1092,6 +1120,7 @@ declare module "@stencil/core" {
1092
1120
  "kritzel-font-size": LocalJSX.KritzelFontSize & JSXBase.HTMLAttributes<HTMLKritzelFontSizeElement>;
1093
1121
  "kritzel-icon": LocalJSX.KritzelIcon & JSXBase.HTMLAttributes<HTMLKritzelIconElement>;
1094
1122
  "kritzel-menu": LocalJSX.KritzelMenu & JSXBase.HTMLAttributes<HTMLKritzelMenuElement>;
1123
+ "kritzel-menu-item": LocalJSX.KritzelMenuItem & JSXBase.HTMLAttributes<HTMLKritzelMenuItemElement>;
1095
1124
  "kritzel-portal": LocalJSX.KritzelPortal & JSXBase.HTMLAttributes<HTMLKritzelPortalElement>;
1096
1125
  "kritzel-split-button": LocalJSX.KritzelSplitButton & JSXBase.HTMLAttributes<HTMLKritzelSplitButtonElement>;
1097
1126
  "kritzel-stroke-size": LocalJSX.KritzelStrokeSize & JSXBase.HTMLAttributes<HTMLKritzelStrokeSizeElement>;
@@ -2,4 +2,5 @@ export declare class KritzelKeyboardHelper {
2
2
  static forceHideKeyboard(): void;
3
3
  static enableInteractiveWidget(): void;
4
4
  static disableInteractiveWidget(): void;
5
+ static onKeyboardVisibleChanged(callback: (isOpen: boolean) => void): () => void;
5
6
  }
@@ -17,5 +17,6 @@ export * from './classes/tools/image-tool.class';
17
17
  export * from './classes/tools/text-tool.class';
18
18
  export * from './classes/tools/selection-tool.class';
19
19
  export * from './interfaces/toolbar-control.interface';
20
+ export * from './interfaces/menu-item.interface';
20
21
  export * from './configs/default-brush-tool.config';
21
22
  export * from './configs/default-text-tool.config';
@@ -3,7 +3,7 @@ import { KritzelPath } from "../classes/objects/path.class";
3
3
  import { KrtizelSelectionBox } from "../classes/objects/selection-box.class";
4
4
  import { KritzelSelectionGroup } from "../classes/objects/selection-group.class";
5
5
  import { KritzelText } from "../classes/objects/text.class";
6
- import { KritzelOctree } from "../classes/structures/octree.structure";
6
+ import { KritzelObjectMap } from "../classes/structures/object-map.structure";
7
7
  import { KritzelBaseTool } from "../classes/tools/base-tool.class";
8
8
  import { KritzelWorkspace } from "../classes/workspace.class";
9
9
  import { KritzelHandleType } from "../enums/handle-type.enum";
@@ -15,7 +15,7 @@ export interface KritzelEngineState {
15
15
  activeText: KritzelText;
16
16
  currentPath?: KritzelPath;
17
17
  copiedObjects?: KritzelSelectionGroup;
18
- objectsOctree: KritzelOctree<KritzelBaseObject<Element>>;
18
+ objectsMap: KritzelObjectMap<KritzelBaseObject<Element>>;
19
19
  selectionBox?: KrtizelSelectionBox;
20
20
  selectionGroup?: KritzelSelectionGroup;
21
21
  resizeHandleType: KritzelHandleType;
@@ -1,9 +1,23 @@
1
- export interface KritzelMenuItem<T = any> {
2
- value: T;
1
+ export interface IKritzelMenuItem<T = any> {
2
+ id: string;
3
3
  label: string;
4
- select?: (item: KritzelMenuItem) => void;
5
- save?: (item: KritzelMenuItem) => void;
6
- cancel?: (item: KritzelMenuItem) => void;
7
- disabled?: boolean;
8
- children?: KritzelMenuItem[];
4
+ value?: T;
5
+ children?: IKritzelMenuItem[];
6
+ isSelectable?: boolean;
7
+ isSelected?: boolean;
8
+ isEditing?: boolean;
9
+ isDisabled?: boolean;
10
+ isChildMenuOpen?: boolean;
11
+ isNewItem?: boolean;
12
+ childMenuAnchor?: HTMLElement;
13
+ unchangedState?: Partial<IKritzelMenuItem>;
14
+ action?: (item: IKritzelMenuItem, parent: IKritzelMenuItem) => void;
15
+ }
16
+ export interface IKritzelMenuItemSelectEvent {
17
+ item: IKritzelMenuItem;
18
+ parent: IKritzelMenuItem;
19
+ }
20
+ export interface IKritzelMenuItemToggleChildMenuEvent {
21
+ item: IKritzelMenuItem;
22
+ childMenuAnchor: HTMLElement;
9
23
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kritzel-stencil",
3
- "version": "0.0.129",
3
+ "version": "0.0.130",
4
4
  "description": "Stencil Component Starter",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",