kritzel-stencil 0.0.127 → 0.0.128

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. package/dist/cjs/{index-BacMQbNR.js → index-C7Read21.js} +165 -82
  2. package/dist/cjs/index-C7Read21.js.map +1 -0
  3. package/dist/cjs/{index-C05uAr89.js → index-CUSIflVf.js} +12 -6
  4. package/dist/cjs/index-CUSIflVf.js.map +1 -0
  5. package/dist/cjs/index.cjs.js +1 -3
  6. package/dist/cjs/{kritzel-brush-style_18.cjs.entry.js → kritzel-brush-style_22.cjs.entry.js} +979 -211
  7. package/dist/cjs/loader.cjs.js +2 -4
  8. package/dist/cjs/stencil.cjs.js +3 -5
  9. package/dist/cjs/stencil.cjs.js.map +1 -1
  10. package/dist/collection/classes/commands/add-object.command.js +5 -2
  11. package/dist/collection/classes/commands/add-object.command.js.map +1 -1
  12. package/dist/collection/classes/commands/add-selection-group.command.js +2 -2
  13. package/dist/collection/classes/commands/add-selection-group.command.js.map +1 -1
  14. package/dist/collection/classes/commands/base.command.js +2 -2
  15. package/dist/collection/classes/commands/base.command.js.map +1 -1
  16. package/dist/collection/classes/commands/batch.command.js +2 -2
  17. package/dist/collection/classes/commands/batch.command.js.map +1 -1
  18. package/dist/collection/classes/commands/move-selection-group.command.js +2 -2
  19. package/dist/collection/classes/commands/move-selection-group.command.js.map +1 -1
  20. package/dist/collection/classes/commands/remove-object.command.js +5 -2
  21. package/dist/collection/classes/commands/remove-object.command.js.map +1 -1
  22. package/dist/collection/classes/commands/remove-selection-group.command.js +2 -2
  23. package/dist/collection/classes/commands/remove-selection-group.command.js.map +1 -1
  24. package/dist/collection/classes/commands/resize-selection-group.command.js +2 -2
  25. package/dist/collection/classes/commands/resize-selection-group.command.js.map +1 -1
  26. package/dist/collection/classes/commands/rotate-selection-group.command.js +2 -2
  27. package/dist/collection/classes/commands/rotate-selection-group.command.js.map +1 -1
  28. package/dist/collection/classes/commands/update-object.command.js +5 -2
  29. package/dist/collection/classes/commands/update-object.command.js.map +1 -1
  30. package/dist/collection/classes/commands/update-viewport.command.js +2 -2
  31. package/dist/collection/classes/commands/update-viewport.command.js.map +1 -1
  32. package/dist/collection/classes/database.class.js +227 -0
  33. package/dist/collection/classes/database.class.js.map +1 -0
  34. package/dist/collection/classes/handlers/key.handler.js +0 -1
  35. package/dist/collection/classes/handlers/key.handler.js.map +1 -1
  36. package/dist/collection/classes/handlers/move.handler.js +18 -2
  37. package/dist/collection/classes/handlers/move.handler.js.map +1 -1
  38. package/dist/collection/classes/handlers/resize.handler.js +10 -2
  39. package/dist/collection/classes/handlers/resize.handler.js.map +1 -1
  40. package/dist/collection/classes/handlers/rotation.handler.js +18 -2
  41. package/dist/collection/classes/handlers/rotation.handler.js.map +1 -1
  42. package/dist/collection/classes/history.class.js +18 -5
  43. package/dist/collection/classes/history.class.js.map +1 -1
  44. package/dist/collection/classes/objects/base-object.class.js +1 -0
  45. package/dist/collection/classes/objects/base-object.class.js.map +1 -1
  46. package/dist/collection/classes/objects/custom-element.class.js +1 -0
  47. package/dist/collection/classes/objects/custom-element.class.js.map +1 -1
  48. package/dist/collection/classes/objects/image.class.js +1 -0
  49. package/dist/collection/classes/objects/image.class.js.map +1 -1
  50. package/dist/collection/classes/objects/path.class.js +1 -0
  51. package/dist/collection/classes/objects/path.class.js.map +1 -1
  52. package/dist/collection/classes/objects/selection-box.class.js +1 -0
  53. package/dist/collection/classes/objects/selection-box.class.js.map +1 -1
  54. package/dist/collection/classes/objects/selection-group.class.js +1 -0
  55. package/dist/collection/classes/objects/selection-group.class.js.map +1 -1
  56. package/dist/collection/classes/objects/text.class.js +7 -4
  57. package/dist/collection/classes/objects/text.class.js.map +1 -1
  58. package/dist/collection/classes/registries/icon-registry.class.js +5 -1
  59. package/dist/collection/classes/registries/icon-registry.class.js.map +1 -1
  60. package/dist/collection/classes/store.class.js +143 -20
  61. package/dist/collection/classes/store.class.js.map +1 -1
  62. package/dist/collection/classes/structures/octree.structure.js +4 -0
  63. package/dist/collection/classes/structures/octree.structure.js.map +1 -1
  64. package/dist/collection/classes/tools/image-tool.class.js +3 -0
  65. package/dist/collection/classes/tools/image-tool.class.js.map +1 -1
  66. package/dist/collection/classes/tools/text-tool.class.js +2 -2
  67. package/dist/collection/classes/tools/text-tool.class.js.map +1 -1
  68. package/dist/collection/classes/viewport.class.js +4 -0
  69. package/dist/collection/classes/viewport.class.js.map +1 -1
  70. package/dist/collection/classes/workspace.class.js +10 -0
  71. package/dist/collection/classes/workspace.class.js.map +1 -0
  72. package/dist/collection/collection-manifest.json +6 -2
  73. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +1 -1
  74. package/dist/collection/components/core/kritzel-editor/kritzel-editor.css +5 -0
  75. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +14 -16
  76. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +1 -1
  77. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +235 -39
  78. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +1 -1
  79. package/dist/collection/components/shared/kritzel-color/kritzel-color.js +2 -2
  80. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.css +1 -1
  81. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +1 -1
  82. package/dist/collection/components/shared/kritzel-font/kritzel-font.js +1 -1
  83. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js +1 -1
  84. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.css +1 -1
  85. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +1 -1
  86. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.css +166 -0
  87. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +272 -0
  88. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js.map +1 -0
  89. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +218 -0
  90. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js.map +1 -0
  91. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.css +74 -0
  92. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +324 -0
  93. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js.map +1 -0
  94. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.css +2 -2
  95. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +1 -1
  96. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +4 -4
  97. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.css +1 -1
  98. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +24 -61
  99. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js.map +1 -1
  100. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +2 -2
  101. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js +2 -2
  102. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.css +3 -3
  103. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +29 -17
  104. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js.map +1 -1
  105. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +1 -1
  106. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.css +5 -0
  107. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js +209 -0
  108. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js.map +1 -0
  109. package/dist/collection/configs/default-engine-state.js +5 -2
  110. package/dist/collection/configs/default-engine-state.js.map +1 -1
  111. package/dist/collection/helpers/class.helper.js +1 -1
  112. package/dist/collection/helpers/class.helper.js.map +1 -1
  113. package/dist/collection/helpers/html.helper.js +30 -1
  114. package/dist/collection/helpers/html.helper.js.map +1 -1
  115. package/dist/collection/helpers/object.helper.js +1 -1
  116. package/dist/collection/helpers/object.helper.js.map +1 -1
  117. package/dist/collection/interfaces/command.interface.js.map +1 -1
  118. package/dist/collection/interfaces/debug-info.interface.js.map +1 -1
  119. package/dist/collection/interfaces/engine-state.interface.js.map +1 -1
  120. package/dist/collection/interfaces/menu-item.interface.js +2 -0
  121. package/dist/collection/interfaces/menu-item.interface.js.map +1 -0
  122. package/dist/collection/interfaces/object.interface.js.map +1 -1
  123. package/dist/components/index.d.ts +8 -0
  124. package/dist/components/index.js +7 -3
  125. package/dist/components/index.js.map +1 -1
  126. package/dist/components/kritzel-brush-style.js +1 -1
  127. package/dist/components/kritzel-color-palette.js +1 -1
  128. package/dist/components/kritzel-color.js +1 -1
  129. package/dist/components/kritzel-context-menu.js +1 -1
  130. package/dist/components/kritzel-control-brush-config.js +1 -1
  131. package/dist/components/kritzel-control-text-config.js +1 -1
  132. package/dist/components/kritzel-controls.js +1 -1
  133. package/dist/components/kritzel-cursor-trail.js +1 -1
  134. package/dist/components/kritzel-dropdown.js +1 -1
  135. package/dist/components/kritzel-editor.js +79 -49
  136. package/dist/components/kritzel-editor.js.map +1 -1
  137. package/dist/components/kritzel-engine.js +1 -1
  138. package/dist/components/kritzel-font-family.js +1 -1
  139. package/dist/components/kritzel-font-size.js +1 -1
  140. package/dist/components/kritzel-font.js +1 -1
  141. package/dist/components/kritzel-icon.js +1 -1
  142. package/dist/components/kritzel-menu.d.ts +11 -0
  143. package/dist/components/kritzel-menu.js +9 -0
  144. package/dist/components/kritzel-menu.js.map +1 -0
  145. package/dist/components/kritzel-portal.d.ts +11 -0
  146. package/dist/components/kritzel-portal.js +9 -0
  147. package/dist/components/kritzel-portal.js.map +1 -0
  148. package/dist/components/kritzel-split-button.d.ts +11 -0
  149. package/dist/components/kritzel-split-button.js +9 -0
  150. package/dist/components/kritzel-split-button.js.map +1 -0
  151. package/dist/components/kritzel-stroke-size.js +1 -1
  152. package/dist/components/kritzel-tooltip.js +1 -1
  153. package/dist/components/kritzel-utility-panel.js +1 -1
  154. package/dist/components/kritzel-workspace-manager.d.ts +11 -0
  155. package/dist/components/kritzel-workspace-manager.js +9 -0
  156. package/dist/components/kritzel-workspace-manager.js.map +1 -0
  157. package/dist/components/{p-DfJEh7HZ.js → p-5CJxFNEE.js} +9 -7
  158. package/dist/components/p-5CJxFNEE.js.map +1 -0
  159. package/dist/components/{p-ljdIU3DL.js → p-B7VrEdgP.js} +63 -63
  160. package/dist/components/p-B7VrEdgP.js.map +1 -0
  161. package/dist/components/{p-DJc6_PyL.js → p-BAPUTr3K.js} +10 -8
  162. package/dist/components/p-BAPUTr3K.js.map +1 -0
  163. package/dist/components/{p-DSWoCkxm.js → p-BB22cVkU.js} +42 -34
  164. package/dist/components/p-BB22cVkU.js.map +1 -0
  165. package/dist/components/{p-CtiROna-.js → p-BLmFBe2a.js} +12 -6
  166. package/dist/components/p-BLmFBe2a.js.map +1 -0
  167. package/dist/components/p-BU2q3PRS.js +84 -0
  168. package/dist/components/p-BU2q3PRS.js.map +1 -0
  169. package/dist/components/{p-Dp8hrISj.js → p-BZ-j_4CK.js} +8 -6
  170. package/dist/components/p-BZ-j_4CK.js.map +1 -0
  171. package/dist/components/{p-BhC-Et5I.js → p-BaKb8ZLg.js} +16 -14
  172. package/dist/components/p-BaKb8ZLg.js.map +1 -0
  173. package/dist/components/p-Bb6od8He.js +42 -0
  174. package/dist/components/p-Bb6od8He.js.map +1 -0
  175. package/dist/components/{p-DcvujuV_.js → p-BcQTDgzV.js} +10 -8
  176. package/dist/components/p-BcQTDgzV.js.map +1 -0
  177. package/dist/components/p-BeVv4o5c.js +14 -0
  178. package/dist/components/p-BeVv4o5c.js.map +1 -0
  179. package/dist/components/p-BmJbJwkH.js +167 -0
  180. package/dist/components/p-BmJbJwkH.js.map +1 -0
  181. package/dist/components/{p-DJN0U8pI.js → p-BqrTPNyu.js} +10 -7
  182. package/dist/components/p-BqrTPNyu.js.map +1 -0
  183. package/dist/components/{p-NZJPrwJV.js → p-BvlGgLAQ.js} +7 -5
  184. package/dist/components/p-BvlGgLAQ.js.map +1 -0
  185. package/dist/components/{p-BOUCnklW.js → p-BzSz74Ci.js} +9 -7
  186. package/dist/components/p-BzSz74Ci.js.map +1 -0
  187. package/dist/components/{p-CudOuOAW.js → p-D-zg05gA.js} +558 -126
  188. package/dist/components/p-D-zg05gA.js.map +1 -0
  189. package/dist/components/p-D8W6LE-c.js.map +1 -1
  190. package/dist/components/p-DV4ERZv5.js +112 -0
  191. package/dist/components/p-DV4ERZv5.js.map +1 -0
  192. package/dist/components/{p-EQo4-DJT.js → p-DtmZW6eP.js} +8 -6
  193. package/dist/components/p-DtmZW6eP.js.map +1 -0
  194. package/dist/components/{p-C9usqwb5.js → p-V4ui5aWj.js} +9 -7
  195. package/dist/components/p-V4ui5aWj.js.map +1 -0
  196. package/dist/components/{p-BubFkS0u.js → p-_ntxNi8v.js} +9 -7
  197. package/dist/components/p-_ntxNi8v.js.map +1 -0
  198. package/dist/components/{p-BkFzf8vg.js → p-a7KmQzo4.js} +15 -13
  199. package/dist/components/p-a7KmQzo4.js.map +1 -0
  200. package/dist/components/p-hSuNJiIq.js +152 -0
  201. package/dist/components/p-hSuNJiIq.js.map +1 -0
  202. package/dist/components/{p-CmlcJ8Kw.js → p-jG1e48OE.js} +11 -9
  203. package/dist/components/p-jG1e48OE.js.map +1 -0
  204. package/dist/components/{p-D5a8vnRF.js → p-rQeWFfPG.js} +10 -8
  205. package/dist/components/p-rQeWFfPG.js.map +1 -0
  206. package/dist/components/p-sQmW5NRu.js +156 -0
  207. package/dist/components/p-sQmW5NRu.js.map +1 -0
  208. package/dist/esm/{index-D37FADaF.js → index-J4NpPimy.js} +163 -83
  209. package/dist/esm/index-J4NpPimy.js.map +1 -0
  210. package/dist/esm/{index-BGl8znzE.js → index-NiIEUDzj.js} +12 -6
  211. package/dist/esm/index-NiIEUDzj.js.map +1 -0
  212. package/dist/esm/index.js +1 -3
  213. package/dist/esm/{kritzel-brush-style_18.entry.js → kritzel-brush-style_22.entry.js} +969 -205
  214. package/dist/esm/loader.js +3 -5
  215. package/dist/esm/stencil.js +4 -6
  216. package/dist/esm/stencil.js.map +1 -1
  217. package/dist/stencil/index.esm.js +1 -1
  218. package/dist/stencil/p-4a0009e7.entry.js +2 -0
  219. package/dist/stencil/p-4a0009e7.entry.js.map +1 -0
  220. package/dist/stencil/p-J4NpPimy.js +2 -0
  221. package/dist/stencil/p-J4NpPimy.js.map +1 -0
  222. package/dist/stencil/{p-BGl8znzE.js → p-NiIEUDzj.js} +3 -3
  223. package/dist/stencil/p-NiIEUDzj.js.map +1 -0
  224. package/dist/stencil/stencil.esm.js +1 -1
  225. package/dist/stencil/stencil.esm.js.map +1 -1
  226. package/dist/types/classes/commands/add-object.command.d.ts +1 -1
  227. package/dist/types/classes/commands/add-selection-group.command.d.ts +1 -1
  228. package/dist/types/classes/commands/base.command.d.ts +2 -2
  229. package/dist/types/classes/commands/batch.command.d.ts +1 -1
  230. package/dist/types/classes/commands/move-selection-group.command.d.ts +1 -1
  231. package/dist/types/classes/commands/remove-object.command.d.ts +1 -1
  232. package/dist/types/classes/commands/remove-selection-group.command.d.ts +1 -1
  233. package/dist/types/classes/commands/resize-selection-group.command.d.ts +1 -1
  234. package/dist/types/classes/commands/rotate-selection-group.command.d.ts +1 -1
  235. package/dist/types/classes/commands/update-object.command.d.ts +1 -1
  236. package/dist/types/classes/commands/update-viewport.command.d.ts +1 -1
  237. package/dist/types/classes/database.class.d.ts +28 -0
  238. package/dist/types/classes/history.class.d.ts +1 -0
  239. package/dist/types/classes/objects/base-object.class.d.ts +1 -0
  240. package/dist/types/classes/objects/text.class.d.ts +1 -1
  241. package/dist/types/classes/store.class.d.ts +19 -2
  242. package/dist/types/classes/structures/octree.structure.d.ts +1 -0
  243. package/dist/types/classes/workspace.class.d.ts +16 -0
  244. package/dist/types/components/core/kritzel-editor/kritzel-editor.d.ts +6 -1
  245. package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +12 -2
  246. package/dist/types/components/shared/kritzel-menu/kritzel-menu.d.ts +24 -0
  247. package/dist/types/components/shared/kritzel-portal/kritzel-portal.d.ts +24 -0
  248. package/dist/types/components/shared/kritzel-split-button/kritzel-split-button.d.ts +24 -0
  249. package/dist/types/components/ui/kritzel-context-menu/kritzel-context-menu.d.ts +3 -4
  250. package/dist/types/components/ui/kritzel-controls/kritzel-controls.d.ts +2 -1
  251. package/dist/types/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.d.ts +25 -0
  252. package/dist/types/components.d.ts +250 -2
  253. package/dist/types/helpers/html.helper.d.ts +3 -1
  254. package/dist/types/interfaces/command.interface.d.ts +1 -1
  255. package/dist/types/interfaces/debug-info.interface.d.ts +1 -0
  256. package/dist/types/interfaces/engine-state.interface.d.ts +3 -0
  257. package/dist/types/interfaces/menu-item.interface.d.ts +9 -0
  258. package/dist/types/interfaces/object.interface.d.ts +1 -0
  259. package/dist/types/stencil-public-runtime.d.ts +21 -0
  260. package/package.json +2 -1
  261. package/dist/cjs/index-BacMQbNR.js.map +0 -1
  262. package/dist/cjs/index-C05uAr89.js.map +0 -1
  263. package/dist/cjs/kritzel-brush-style_18.cjs.entry.js.map +0 -1
  264. package/dist/components/p-2gNwfcSP.js +0 -119
  265. package/dist/components/p-2gNwfcSP.js.map +0 -1
  266. package/dist/components/p-BOUCnklW.js.map +0 -1
  267. package/dist/components/p-BhC-Et5I.js.map +0 -1
  268. package/dist/components/p-BkFzf8vg.js.map +0 -1
  269. package/dist/components/p-BubFkS0u.js.map +0 -1
  270. package/dist/components/p-C9usqwb5.js.map +0 -1
  271. package/dist/components/p-CmlcJ8Kw.js.map +0 -1
  272. package/dist/components/p-CtiROna-.js.map +0 -1
  273. package/dist/components/p-CudOuOAW.js.map +0 -1
  274. package/dist/components/p-D5a8vnRF.js.map +0 -1
  275. package/dist/components/p-DJN0U8pI.js.map +0 -1
  276. package/dist/components/p-DJc6_PyL.js.map +0 -1
  277. package/dist/components/p-DSWoCkxm.js.map +0 -1
  278. package/dist/components/p-DcvujuV_.js.map +0 -1
  279. package/dist/components/p-DfJEh7HZ.js.map +0 -1
  280. package/dist/components/p-Dp8hrISj.js.map +0 -1
  281. package/dist/components/p-EQo4-DJT.js.map +0 -1
  282. package/dist/components/p-NZJPrwJV.js.map +0 -1
  283. package/dist/components/p-ljdIU3DL.js.map +0 -1
  284. package/dist/esm/index-BGl8znzE.js.map +0 -1
  285. package/dist/esm/index-D37FADaF.js.map +0 -1
  286. package/dist/esm/kritzel-brush-style_18.entry.js.map +0 -1
  287. package/dist/stencil/p-BGl8znzE.js.map +0 -1
  288. package/dist/stencil/p-D37FADaF.js +0 -2
  289. package/dist/stencil/p-D37FADaF.js.map +0 -1
  290. package/dist/stencil/p-e6ac7fc6.entry.js +0 -2
  291. package/dist/stencil/p-e6ac7fc6.entry.js.map +0 -1
@@ -13,9 +13,12 @@ import { KritzelTextTool } from "./classes/tools/text-tool.class";
13
13
  import { KritzelBrushToolConfig, KritzelTextToolConfig, KritzelToolbarControl } from "./interfaces/toolbar-control.interface";
14
14
  import { KritzelStore } from "./classes/store.class";
15
15
  import { DropdownOption } from "./components/shared/kritzel-dropdown/kritzel-dropdown";
16
+ import { KritzelWorkspace } from "./classes/workspace.class";
16
17
  import { KritzelTool } from "./interfaces/tool.interface";
18
+ import { KritzelEngineState } from "./interfaces/engine-state.interface";
17
19
  import { KritzelBaseTool } from "./classes/tools/base-tool.class";
18
20
  import { FontOption } from "./components/shared/kritzel-font-family/kritzel-font-family";
21
+ import { KritzelMenuItem } from "./interfaces/menu-item.interface";
19
22
  export { BrushStyleOption } from "./components/shared/kritzel-brush-style/kritzel-brush-style";
20
23
  export { ContextMenuItem } from "./interfaces/context-menu-item.interface";
21
24
  export { KritzelBaseObject } from "./classes/objects/base-object.class";
@@ -24,9 +27,12 @@ export { KritzelTextTool } from "./classes/tools/text-tool.class";
24
27
  export { KritzelBrushToolConfig, KritzelTextToolConfig, KritzelToolbarControl } from "./interfaces/toolbar-control.interface";
25
28
  export { KritzelStore } from "./classes/store.class";
26
29
  export { DropdownOption } from "./components/shared/kritzel-dropdown/kritzel-dropdown";
30
+ export { KritzelWorkspace } from "./classes/workspace.class";
27
31
  export { KritzelTool } from "./interfaces/tool.interface";
32
+ export { KritzelEngineState } from "./interfaces/engine-state.interface";
28
33
  export { KritzelBaseTool } from "./classes/tools/base-tool.class";
29
34
  export { FontOption } from "./components/shared/kritzel-font-family/kritzel-font-family";
35
+ export { KritzelMenuItem } from "./interfaces/menu-item.interface";
30
36
  export namespace Components {
31
37
  interface KritzelBrushStyle {
32
38
  /**
@@ -163,12 +169,15 @@ export namespace Components {
163
169
  "changeActiveTool": (tool: KritzelBaseTool) => Promise<void>;
164
170
  "clearSelection": () => Promise<void>;
165
171
  "copy": () => Promise<void>;
172
+ "createWorkspace": (workspace: KritzelWorkspace) => Promise<void>;
166
173
  "delete": () => Promise<void>;
174
+ "deleteWorkspace": (workspace: KritzelWorkspace) => Promise<void>;
167
175
  "disable": () => Promise<void>;
168
176
  "enable": () => Promise<void>;
169
177
  "getCopiedObjects": () => Promise<KritzelBaseObject[]>;
170
178
  "getObjectById": <T extends KritzelBaseObject>(id: string) => Promise<T | null>;
171
179
  "getSelectedObjects": () => Promise<KritzelBaseObject<any>[]>;
180
+ "getWorkspaces": () => Promise<KritzelWorkspace[]>;
172
181
  "globalContextMenuItems": ContextMenuItem[];
173
182
  "hideContextMenu": () => Promise<void>;
174
183
  "objectContextMenuItems": ContextMenuItem[];
@@ -191,6 +200,8 @@ export namespace Components {
191
200
  "setFocus": () => Promise<void>;
192
201
  "undo": () => Promise<void>;
193
202
  "updateObject": <T extends KritzelBaseObject>(object: T, updatedProperties: Partial<T>) => Promise<T | null>;
203
+ "updateWorkspace": (workspace: KritzelWorkspace) => Promise<void>;
204
+ "workspace"?: KritzelWorkspace;
194
205
  }
195
206
  interface KritzelFont {
196
207
  /**
@@ -235,6 +246,63 @@ export namespace Components {
235
246
  */
236
247
  "size": number;
237
248
  }
249
+ interface KritzelMenu {
250
+ /**
251
+ * @default null
252
+ */
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;
266
+ /**
267
+ * @default null
268
+ */
269
+ "parentIndex": number | null;
270
+ }
271
+ interface KritzelPortal {
272
+ "anchor": HTMLElement;
273
+ /**
274
+ * @default true
275
+ */
276
+ "autoFocus": boolean;
277
+ "offsetX": number;
278
+ "offsetY": number;
279
+ }
280
+ interface KritzelSplitButton {
281
+ /**
282
+ * @default null
283
+ */
284
+ "activeItemIndex": number | null;
285
+ "buttonIcon": string;
286
+ "buttonText": string;
287
+ "closeMenu": () => Promise<void>;
288
+ /**
289
+ * @default false
290
+ */
291
+ "disabled": boolean;
292
+ /**
293
+ * @default 'chevron-down'
294
+ */
295
+ "dropdownIcon": string;
296
+ /**
297
+ * @default null
298
+ */
299
+ "editingIndex": number | null;
300
+ "openMenu": () => Promise<void>;
301
+ /**
302
+ * @default []
303
+ */
304
+ "options": KritzelMenuItem[];
305
+ }
238
306
  interface KritzelStrokeSize {
239
307
  /**
240
308
  * @default null
@@ -262,6 +330,13 @@ export namespace Components {
262
330
  }
263
331
  interface KritzelUtilityPanel {
264
332
  }
333
+ interface KritzelWorkspaceManager {
334
+ "activeWorkspace": KritzelWorkspace;
335
+ /**
336
+ * @default []
337
+ */
338
+ "workspaces": KritzelWorkspace[];
339
+ }
265
340
  }
266
341
  export interface KritzelBrushStyleCustomEvent<T> extends CustomEvent<T> {
267
342
  detail: T;
@@ -307,6 +382,18 @@ export interface KritzelFontSizeCustomEvent<T> extends CustomEvent<T> {
307
382
  detail: T;
308
383
  target: HTMLKritzelFontSizeElement;
309
384
  }
385
+ export interface KritzelMenuCustomEvent<T> extends CustomEvent<T> {
386
+ detail: T;
387
+ target: HTMLKritzelMenuElement;
388
+ }
389
+ export interface KritzelPortalCustomEvent<T> extends CustomEvent<T> {
390
+ detail: T;
391
+ target: HTMLKritzelPortalElement;
392
+ }
393
+ export interface KritzelSplitButtonCustomEvent<T> extends CustomEvent<T> {
394
+ detail: T;
395
+ target: HTMLKritzelSplitButtonElement;
396
+ }
310
397
  export interface KritzelStrokeSizeCustomEvent<T> extends CustomEvent<T> {
311
398
  detail: T;
312
399
  target: HTMLKritzelStrokeSizeElement;
@@ -315,6 +402,10 @@ export interface KritzelUtilityPanelCustomEvent<T> extends CustomEvent<T> {
315
402
  detail: T;
316
403
  target: HTMLKritzelUtilityPanelElement;
317
404
  }
405
+ export interface KritzelWorkspaceManagerCustomEvent<T> extends CustomEvent<T> {
406
+ detail: T;
407
+ target: HTMLKritzelWorkspaceManagerElement;
408
+ }
318
409
  declare global {
319
410
  interface HTMLKritzelBrushStyleElementEventMap {
320
411
  "typeChange": 'pen' | 'highlighter';
@@ -465,8 +556,9 @@ declare global {
465
556
  new (): HTMLKritzelEditorElement;
466
557
  };
467
558
  interface HTMLKritzelEngineElementEventMap {
468
- "isEngineReady": void;
559
+ "isEngineReady": KritzelEngineState;
469
560
  "activeToolChange": KritzelBaseTool;
561
+ "workspacesChange": KritzelWorkspace[];
470
562
  }
471
563
  interface HTMLKritzelEngineElement extends Components.KritzelEngine, HTMLStencilElement {
472
564
  addEventListener<K extends keyof HTMLKritzelEngineElementEventMap>(type: K, listener: (this: HTMLKritzelEngineElement, ev: KritzelEngineCustomEvent<HTMLKritzelEngineElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
@@ -528,6 +620,60 @@ declare global {
528
620
  prototype: HTMLKritzelIconElement;
529
621
  new (): HTMLKritzelIconElement;
530
622
  };
623
+ interface HTMLKritzelMenuElementEventMap {
624
+ "close": void;
625
+ }
626
+ interface HTMLKritzelMenuElement extends Components.KritzelMenu, HTMLStencilElement {
627
+ addEventListener<K extends keyof HTMLKritzelMenuElementEventMap>(type: K, listener: (this: HTMLKritzelMenuElement, ev: KritzelMenuCustomEvent<HTMLKritzelMenuElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
628
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
629
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
630
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
631
+ removeEventListener<K extends keyof HTMLKritzelMenuElementEventMap>(type: K, listener: (this: HTMLKritzelMenuElement, ev: KritzelMenuCustomEvent<HTMLKritzelMenuElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
632
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
633
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
634
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
635
+ }
636
+ var HTMLKritzelMenuElement: {
637
+ prototype: HTMLKritzelMenuElement;
638
+ new (): HTMLKritzelMenuElement;
639
+ };
640
+ interface HTMLKritzelPortalElementEventMap {
641
+ "close": void;
642
+ }
643
+ interface HTMLKritzelPortalElement extends Components.KritzelPortal, HTMLStencilElement {
644
+ addEventListener<K extends keyof HTMLKritzelPortalElementEventMap>(type: K, listener: (this: HTMLKritzelPortalElement, ev: KritzelPortalCustomEvent<HTMLKritzelPortalElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
645
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
646
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
647
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
648
+ removeEventListener<K extends keyof HTMLKritzelPortalElementEventMap>(type: K, listener: (this: HTMLKritzelPortalElement, ev: KritzelPortalCustomEvent<HTMLKritzelPortalElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
649
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
650
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
651
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
652
+ }
653
+ var HTMLKritzelPortalElement: {
654
+ prototype: HTMLKritzelPortalElement;
655
+ new (): HTMLKritzelPortalElement;
656
+ };
657
+ interface HTMLKritzelSplitButtonElementEventMap {
658
+ "buttonClick": void;
659
+ "optionSelect": KritzelMenuItem;
660
+ "menuOpened": void;
661
+ "menuClosed": void;
662
+ }
663
+ interface HTMLKritzelSplitButtonElement extends Components.KritzelSplitButton, HTMLStencilElement {
664
+ addEventListener<K extends keyof HTMLKritzelSplitButtonElementEventMap>(type: K, listener: (this: HTMLKritzelSplitButtonElement, ev: KritzelSplitButtonCustomEvent<HTMLKritzelSplitButtonElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
665
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
666
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
667
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
668
+ removeEventListener<K extends keyof HTMLKritzelSplitButtonElementEventMap>(type: K, listener: (this: HTMLKritzelSplitButtonElement, ev: KritzelSplitButtonCustomEvent<HTMLKritzelSplitButtonElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
669
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
670
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
671
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
672
+ }
673
+ var HTMLKritzelSplitButtonElement: {
674
+ prototype: HTMLKritzelSplitButtonElement;
675
+ new (): HTMLKritzelSplitButtonElement;
676
+ };
531
677
  interface HTMLKritzelStrokeSizeElementEventMap {
532
678
  "sizeChange": number;
533
679
  }
@@ -570,6 +716,24 @@ declare global {
570
716
  prototype: HTMLKritzelUtilityPanelElement;
571
717
  new (): HTMLKritzelUtilityPanelElement;
572
718
  };
719
+ interface HTMLKritzelWorkspaceManagerElementEventMap {
720
+ "isWorkspaceManagerReady": void;
721
+ "workspaceChange": KritzelWorkspace;
722
+ }
723
+ interface HTMLKritzelWorkspaceManagerElement extends Components.KritzelWorkspaceManager, HTMLStencilElement {
724
+ addEventListener<K extends keyof HTMLKritzelWorkspaceManagerElementEventMap>(type: K, listener: (this: HTMLKritzelWorkspaceManagerElement, ev: KritzelWorkspaceManagerCustomEvent<HTMLKritzelWorkspaceManagerElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
725
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
726
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
727
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
728
+ removeEventListener<K extends keyof HTMLKritzelWorkspaceManagerElementEventMap>(type: K, listener: (this: HTMLKritzelWorkspaceManagerElement, ev: KritzelWorkspaceManagerCustomEvent<HTMLKritzelWorkspaceManagerElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
729
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
730
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
731
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
732
+ }
733
+ var HTMLKritzelWorkspaceManagerElement: {
734
+ prototype: HTMLKritzelWorkspaceManagerElement;
735
+ new (): HTMLKritzelWorkspaceManagerElement;
736
+ };
573
737
  interface HTMLElementTagNameMap {
574
738
  "kritzel-brush-style": HTMLKritzelBrushStyleElement;
575
739
  "kritzel-color": HTMLKritzelColorElement;
@@ -586,9 +750,13 @@ declare global {
586
750
  "kritzel-font-family": HTMLKritzelFontFamilyElement;
587
751
  "kritzel-font-size": HTMLKritzelFontSizeElement;
588
752
  "kritzel-icon": HTMLKritzelIconElement;
753
+ "kritzel-menu": HTMLKritzelMenuElement;
754
+ "kritzel-portal": HTMLKritzelPortalElement;
755
+ "kritzel-split-button": HTMLKritzelSplitButtonElement;
589
756
  "kritzel-stroke-size": HTMLKritzelStrokeSizeElement;
590
757
  "kritzel-tooltip": HTMLKritzelTooltipElement;
591
758
  "kritzel-utility-panel": HTMLKritzelUtilityPanelElement;
759
+ "kritzel-workspace-manager": HTMLKritzelWorkspaceManagerElement;
592
760
  }
593
761
  }
594
762
  declare namespace LocalJSX {
@@ -721,7 +889,8 @@ declare namespace LocalJSX {
721
889
  "globalContextMenuItems"?: ContextMenuItem[];
722
890
  "objectContextMenuItems"?: ContextMenuItem[];
723
891
  "onActiveToolChange"?: (event: KritzelEngineCustomEvent<KritzelBaseTool>) => void;
724
- "onIsEngineReady"?: (event: KritzelEngineCustomEvent<void>) => void;
892
+ "onIsEngineReady"?: (event: KritzelEngineCustomEvent<KritzelEngineState>) => void;
893
+ "onWorkspacesChange"?: (event: KritzelEngineCustomEvent<KritzelWorkspace[]>) => void;
725
894
  /**
726
895
  * @default ABSOLUTE_SCALE_MAX
727
896
  */
@@ -730,6 +899,7 @@ declare namespace LocalJSX {
730
899
  * @default ABSOLUTE_SCALE_MIN
731
900
  */
732
901
  "scaleMin"?: number;
902
+ "workspace"?: KritzelWorkspace;
733
903
  }
734
904
  interface KritzelFont {
735
905
  /**
@@ -776,6 +946,67 @@ declare namespace LocalJSX {
776
946
  */
777
947
  "size"?: number;
778
948
  }
949
+ 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[];
962
+ "onClose"?: (event: KritzelMenuCustomEvent<void>) => void;
963
+ /**
964
+ * @default null
965
+ */
966
+ "parent"?: KritzelMenuItem;
967
+ /**
968
+ * @default null
969
+ */
970
+ "parentIndex"?: number | null;
971
+ }
972
+ interface KritzelPortal {
973
+ "anchor"?: HTMLElement;
974
+ /**
975
+ * @default true
976
+ */
977
+ "autoFocus"?: boolean;
978
+ "offsetX"?: number;
979
+ "offsetY"?: number;
980
+ "onClose"?: (event: KritzelPortalCustomEvent<void>) => void;
981
+ }
982
+ interface KritzelSplitButton {
983
+ /**
984
+ * @default null
985
+ */
986
+ "activeItemIndex"?: number | null;
987
+ "buttonIcon"?: string;
988
+ "buttonText"?: string;
989
+ /**
990
+ * @default false
991
+ */
992
+ "disabled"?: boolean;
993
+ /**
994
+ * @default 'chevron-down'
995
+ */
996
+ "dropdownIcon"?: string;
997
+ /**
998
+ * @default null
999
+ */
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;
1005
+ /**
1006
+ * @default []
1007
+ */
1008
+ "options"?: KritzelMenuItem[];
1009
+ }
779
1010
  interface KritzelStrokeSize {
780
1011
  "onSizeChange"?: (event: KritzelStrokeSizeCustomEvent<number>) => void;
781
1012
  /**
@@ -807,6 +1038,15 @@ declare namespace LocalJSX {
807
1038
  "onRedo"?: (event: KritzelUtilityPanelCustomEvent<void>) => void;
808
1039
  "onUndo"?: (event: KritzelUtilityPanelCustomEvent<void>) => void;
809
1040
  }
1041
+ interface KritzelWorkspaceManager {
1042
+ "activeWorkspace"?: KritzelWorkspace;
1043
+ "onIsWorkspaceManagerReady"?: (event: KritzelWorkspaceManagerCustomEvent<void>) => void;
1044
+ "onWorkspaceChange"?: (event: KritzelWorkspaceManagerCustomEvent<KritzelWorkspace>) => void;
1045
+ /**
1046
+ * @default []
1047
+ */
1048
+ "workspaces"?: KritzelWorkspace[];
1049
+ }
810
1050
  interface IntrinsicElements {
811
1051
  "kritzel-brush-style": KritzelBrushStyle;
812
1052
  "kritzel-color": KritzelColor;
@@ -823,9 +1063,13 @@ declare namespace LocalJSX {
823
1063
  "kritzel-font-family": KritzelFontFamily;
824
1064
  "kritzel-font-size": KritzelFontSize;
825
1065
  "kritzel-icon": KritzelIcon;
1066
+ "kritzel-menu": KritzelMenu;
1067
+ "kritzel-portal": KritzelPortal;
1068
+ "kritzel-split-button": KritzelSplitButton;
826
1069
  "kritzel-stroke-size": KritzelStrokeSize;
827
1070
  "kritzel-tooltip": KritzelTooltip;
828
1071
  "kritzel-utility-panel": KritzelUtilityPanel;
1072
+ "kritzel-workspace-manager": KritzelWorkspaceManager;
829
1073
  }
830
1074
  }
831
1075
  export { LocalJSX as JSX };
@@ -847,9 +1091,13 @@ declare module "@stencil/core" {
847
1091
  "kritzel-font-family": LocalJSX.KritzelFontFamily & JSXBase.HTMLAttributes<HTMLKritzelFontFamilyElement>;
848
1092
  "kritzel-font-size": LocalJSX.KritzelFontSize & JSXBase.HTMLAttributes<HTMLKritzelFontSizeElement>;
849
1093
  "kritzel-icon": LocalJSX.KritzelIcon & JSXBase.HTMLAttributes<HTMLKritzelIconElement>;
1094
+ "kritzel-menu": LocalJSX.KritzelMenu & JSXBase.HTMLAttributes<HTMLKritzelMenuElement>;
1095
+ "kritzel-portal": LocalJSX.KritzelPortal & JSXBase.HTMLAttributes<HTMLKritzelPortalElement>;
1096
+ "kritzel-split-button": LocalJSX.KritzelSplitButton & JSXBase.HTMLAttributes<HTMLKritzelSplitButtonElement>;
850
1097
  "kritzel-stroke-size": LocalJSX.KritzelStrokeSize & JSXBase.HTMLAttributes<HTMLKritzelStrokeSizeElement>;
851
1098
  "kritzel-tooltip": LocalJSX.KritzelTooltip & JSXBase.HTMLAttributes<HTMLKritzelTooltipElement>;
852
1099
  "kritzel-utility-panel": LocalJSX.KritzelUtilityPanel & JSXBase.HTMLAttributes<HTMLKritzelUtilityPanelElement>;
1100
+ "kritzel-workspace-manager": LocalJSX.KritzelWorkspaceManager & JSXBase.HTMLAttributes<HTMLKritzelWorkspaceManagerElement>;
853
1101
  }
854
1102
  }
855
1103
  }
@@ -1,3 +1,5 @@
1
- export declare class KritzelKeyboardHelper {
1
+ export declare class KritzelHTMLHelper {
2
2
  static getNumericValueFromStyle(element: HTMLElement, property: string): number;
3
+ static getScrollableParent(element: HTMLElement): HTMLElement | Window;
4
+ static isElementInViewport(element: HTMLElement): boolean;
3
5
  }
@@ -1,6 +1,6 @@
1
1
  export interface KritzelCommand {
2
2
  initiator: string;
3
- isUndoable: boolean;
3
+ skipHistory: boolean;
4
4
  execute(): void;
5
5
  undo?(): void;
6
6
  }
@@ -2,4 +2,5 @@ export interface KritzelDebugInfo {
2
2
  showViewportInfo: boolean;
3
3
  showObjectInfo: boolean;
4
4
  logCommands: boolean;
5
+ logDatabase: boolean;
5
6
  }
@@ -5,10 +5,12 @@ import { KritzelSelectionGroup } from "../classes/objects/selection-group.class"
5
5
  import { KritzelText } from "../classes/objects/text.class";
6
6
  import { KritzelOctree } from "../classes/structures/octree.structure";
7
7
  import { KritzelBaseTool } from "../classes/tools/base-tool.class";
8
+ import { KritzelWorkspace } from "../classes/workspace.class";
8
9
  import { KritzelHandleType } from "../enums/handle-type.enum";
9
10
  import { ContextMenuItem } from "./context-menu-item.interface";
10
11
  import { KritzelDebugInfo } from "./debug-info.interface";
11
12
  export interface KritzelEngineState {
13
+ activeWorkspace: KritzelWorkspace;
12
14
  activeTool: KritzelBaseTool;
13
15
  activeText: KritzelText;
14
16
  currentPath?: KritzelPath;
@@ -60,4 +62,5 @@ export interface KritzelEngineState {
60
62
  longTouchTimeout: number;
61
63
  longTouchDelay: number;
62
64
  pointers: Map<number, PointerEvent>;
65
+ workspaces: KritzelWorkspace[];
63
66
  }
@@ -0,0 +1,9 @@
1
+ export interface KritzelMenuItem<T = any> {
2
+ value: T;
3
+ label: string;
4
+ select?: (item: KritzelMenuItem) => void;
5
+ save?: (item: KritzelMenuItem) => void;
6
+ cancel?: (item: KritzelMenuItem) => void;
7
+ disabled?: boolean;
8
+ children?: KritzelMenuItem[];
9
+ }
@@ -4,6 +4,7 @@ import { KritzelPolygon } from './polygon.interface';
4
4
  export interface KritzelObject<T = Element> {
5
5
  _elementRef: T;
6
6
  id: string;
7
+ workspaceId: string;
7
8
  x: number;
8
9
  y: number;
9
10
  translateX: number;
@@ -1,4 +1,6 @@
1
1
  declare type CustomMethodDecorator<T> = (target: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T> | void;
2
+ type UnionToIntersection<U> = (U extends any ? (x: U) => void : never) extends (x: infer I) => void ? I : never;
3
+ type MixinFactory = <TBase extends abstract new (...args: any[]) => any>(base: TBase) => abstract new (...args: ConstructorParameters<TBase>) => any;
2
4
  export interface ComponentDecorator {
3
5
  (opts?: ComponentOptions): ClassDecorator;
4
6
  }
@@ -349,6 +351,25 @@ export declare function readTask(task: RafCallback): void;
349
351
  * Unhandled exception raised while rendering, during event handling, or lifecycles will trigger the custom event handler.
350
352
  */
351
353
  export declare const setErrorHandler: (handler: ErrorHandler) => void;
354
+ /**
355
+ * Compose multiple mixin classes into a single constructor.
356
+ * The resulting class has the combined instance types of all mixed-in classes.
357
+ *
358
+ * Example:
359
+ * ```
360
+ * const AWrap = (Base) => {class A extends Base { propA = A }; return A;}
361
+ * const BWrap = (Base) => {class B extends Base { propB = B }; return B;}
362
+ * const CWrap = (Base) => {class C extends Base { propC = C }; return C;}
363
+ *
364
+ * class X extends Mixin(AWrap, BWrap, CWrap) {
365
+ * render() { return <div>{this.propA} {this.propB} {this.propC}</div>; }
366
+ * }
367
+ * ```
368
+ *
369
+ * @param mixinFactories mixin factory functions that return a class which extends from the provided class.
370
+ * @returns a class that that is composed from extending each of the provided classes in the order they were provided.
371
+ */
372
+ export declare function Mixin<TMixins extends readonly MixinFactory[]>(...mixinFactories: TMixins): abstract new (...args: any[]) => UnionToIntersection<InstanceType<ReturnType<TMixins[number]>>>;
352
373
  /**
353
374
  * This file gets copied to all distributions of stencil component collections.
354
375
  * - no imports
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kritzel-stencil",
3
- "version": "0.0.127",
3
+ "version": "0.0.128",
4
4
  "description": "Stencil Component Starter",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -50,6 +50,7 @@
50
50
  "@stencil/vue-output-target": "0.11.8",
51
51
  "@types/jest": "^29.5.14",
52
52
  "@types/node": "^22.14.1",
53
+ "fake-indexeddb": "^6.2.2",
53
54
  "jest": "^29.7.0",
54
55
  "jest-cli": "^29.7.0",
55
56
  "puppeteer": "^24.6.1"