kritzel-stencil 0.0.172 → 0.1.1

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 (407) hide show
  1. package/dist/cjs/app-globals-V2Kpy_OQ.js +0 -3
  2. package/dist/cjs/{default-line-tool.config-JuTDR6PF.js → default-line-tool.config-SdMGkNhv.js} +1570 -207
  3. package/dist/cjs/index-BeKMS-Zt.js +3280 -0
  4. package/dist/cjs/index.cjs.js +10 -7
  5. package/dist/cjs/kritzel-brush-style.cjs.entry.js +3 -4
  6. package/dist/cjs/kritzel-color_22.cjs.entry.js +167 -110
  7. package/dist/cjs/loader.cjs.js +2 -3
  8. package/dist/cjs/stencil.cjs.js +3 -4
  9. package/dist/collection/classes/core/core.class.js +0 -1
  10. package/dist/collection/classes/core/reviver.class.js +0 -1
  11. package/dist/collection/classes/core/store.class.js +0 -1
  12. package/dist/collection/classes/core/viewport.class.js +0 -1
  13. package/dist/collection/classes/core/workspace.class.js +0 -1
  14. package/dist/collection/classes/handlers/base.handler.js +0 -1
  15. package/dist/collection/classes/handlers/context-menu.handler.js +0 -1
  16. package/dist/collection/classes/handlers/hover.handler.js +0 -1
  17. package/dist/collection/classes/handlers/key.handler.js +0 -1
  18. package/dist/collection/classes/handlers/line-handle.handler.js +0 -1
  19. package/dist/collection/classes/handlers/move.handler.js +6 -1
  20. package/dist/collection/classes/handlers/resize.handler.js +0 -1
  21. package/dist/collection/classes/handlers/rotation.handler.js +0 -1
  22. package/dist/collection/classes/handlers/selection.handler.js +0 -1
  23. package/dist/collection/classes/managers/anchor.manager.js +0 -1
  24. package/dist/collection/classes/managers/cursor.manager.js +0 -1
  25. package/dist/collection/classes/objects/base-object.class.js +0 -1
  26. package/dist/collection/classes/objects/custom-element.class.js +0 -1
  27. package/dist/collection/classes/objects/group.class.js +0 -1
  28. package/dist/collection/classes/objects/image.class.js +0 -1
  29. package/dist/collection/classes/objects/line.class.js +62 -16
  30. package/dist/collection/classes/objects/path.class.js +0 -1
  31. package/dist/collection/classes/objects/selection-box.class.js +0 -1
  32. package/dist/collection/classes/objects/selection-group.class.js +0 -1
  33. package/dist/collection/classes/objects/shape.class.js +0 -1
  34. package/dist/collection/classes/objects/text.class.js +0 -1
  35. package/dist/collection/classes/providers/broadcast-sync-provider.class.js +0 -1
  36. package/dist/collection/classes/providers/hocuspocus-sync-provider.class.js +0 -1
  37. package/dist/collection/classes/providers/indexeddb-sync-provider.class.js +0 -1
  38. package/dist/collection/classes/providers/websocket-sync-provider.class.js +0 -1
  39. package/dist/collection/classes/registries/icon-registry.class.js +0 -1
  40. package/dist/collection/classes/registries/tool.registry.js +0 -1
  41. package/dist/collection/classes/structures/app-state-map.structure.js +0 -1
  42. package/dist/collection/classes/structures/object-map.structure.js +0 -1
  43. package/dist/collection/classes/structures/quadtree.structure.js +0 -1
  44. package/dist/collection/classes/tools/base-tool.class.js +0 -1
  45. package/dist/collection/classes/tools/brush-tool.class.js +0 -1
  46. package/dist/collection/classes/tools/eraser-tool.class.js +0 -1
  47. package/dist/collection/classes/tools/image-tool.class.js +0 -1
  48. package/dist/collection/classes/tools/line-tool.class.js +0 -1
  49. package/dist/collection/classes/tools/selection-tool.class.js +0 -1
  50. package/dist/collection/classes/tools/shape-tool.class.js +0 -1
  51. package/dist/collection/classes/tools/text-tool.class.js +0 -1
  52. package/dist/collection/collection-manifest.json +2 -2
  53. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +0 -1
  54. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +1 -2
  55. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +3 -4
  56. package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js +0 -1
  57. package/dist/collection/components/shared/kritzel-color/kritzel-color.js +0 -1
  58. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +8 -3
  59. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.css +8 -20
  60. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js +1 -2
  61. package/dist/collection/components/shared/kritzel-font/kritzel-font.js +0 -1
  62. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js +0 -1
  63. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +8 -3
  64. package/dist/collection/components/shared/kritzel-icon/kritzel-icon.js +0 -1
  65. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +0 -1
  66. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js +0 -1
  67. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +0 -1
  68. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +0 -1
  69. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +0 -1
  70. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +0 -1
  71. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +0 -1
  72. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +0 -1
  73. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js +1 -2
  74. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.css +66 -0
  75. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +66 -45
  76. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +1 -2
  77. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js +0 -1
  78. package/dist/collection/configs/default-brush-tool.config.js +0 -1
  79. package/dist/collection/configs/default-engine-config.js +0 -1
  80. package/dist/collection/configs/default-line-tool.config.js +0 -1
  81. package/dist/collection/configs/default-shape-tool.config.js +0 -1
  82. package/dist/collection/configs/default-sync.config.js +0 -1
  83. package/dist/collection/configs/default-text-tool.config.js +0 -1
  84. package/dist/collection/constants/core.constants.js +0 -1
  85. package/dist/collection/constants/engine.constants.js +0 -1
  86. package/dist/collection/enums/event-button.enum.js +0 -1
  87. package/dist/collection/enums/handle-type.enum.js +0 -1
  88. package/dist/collection/enums/shape-type.enum.js +0 -1
  89. package/dist/collection/helpers/class.helper.js +0 -1
  90. package/dist/collection/helpers/cursor.helper.js +0 -1
  91. package/dist/collection/helpers/devices.helper.js +0 -1
  92. package/dist/collection/helpers/event.helper.js +0 -1
  93. package/dist/collection/helpers/geometry.helper.js +0 -1
  94. package/dist/collection/helpers/html.helper.js +0 -1
  95. package/dist/collection/helpers/keyboard.helper.js +0 -1
  96. package/dist/collection/helpers/math.helper.js +0 -1
  97. package/dist/collection/helpers/object.helper.js +0 -1
  98. package/dist/collection/index.js +0 -1
  99. package/dist/collection/interfaces/anchor.interface.js +0 -1
  100. package/dist/collection/interfaces/arrow-head.interface.js +0 -1
  101. package/dist/collection/interfaces/bounding-box.interface.js +0 -1
  102. package/dist/collection/interfaces/clonable.interface.js +0 -1
  103. package/dist/collection/interfaces/context-menu-item.interface.js +0 -1
  104. package/dist/collection/interfaces/debug-info.interface.js +0 -1
  105. package/dist/collection/interfaces/engine-state.interface.js +0 -1
  106. package/dist/collection/interfaces/line-options.interface.js +0 -1
  107. package/dist/collection/interfaces/menu-item.interface.js +0 -1
  108. package/dist/collection/interfaces/object.interface.js +0 -1
  109. package/dist/collection/interfaces/path-options.interface.js +0 -1
  110. package/dist/collection/interfaces/point.interface.js +0 -1
  111. package/dist/collection/interfaces/polygon.interface.js +0 -1
  112. package/dist/collection/interfaces/selection-state.interface.js +0 -1
  113. package/dist/collection/interfaces/serializable.interface.js +0 -1
  114. package/dist/collection/interfaces/shortcut.interface.js +0 -1
  115. package/dist/collection/interfaces/sync-config.interface.js +0 -1
  116. package/dist/collection/interfaces/sync-provider.interface.js +0 -1
  117. package/dist/collection/interfaces/tool.interface.js +0 -1
  118. package/dist/collection/interfaces/toolbar-control.interface.js +0 -1
  119. package/dist/collection/interfaces/undo-state.interface.js +0 -1
  120. package/dist/collection/types/deep-readonly.type.js +0 -1
  121. package/dist/collection/types/state.types.js +0 -1
  122. package/dist/components/index.d.ts +1 -0
  123. package/dist/components/index.js +1 -1477
  124. package/dist/components/kritzel-brush-style.js +1 -67
  125. package/dist/components/kritzel-color-palette.js +1 -9
  126. package/dist/components/kritzel-color.js +1 -9
  127. package/dist/components/kritzel-context-menu.js +1 -9
  128. package/dist/components/kritzel-control-brush-config.js +1 -9
  129. package/dist/components/kritzel-control-text-config.js +1 -9
  130. package/dist/components/kritzel-controls.js +1 -9
  131. package/dist/components/kritzel-cursor-trail.js +1 -9
  132. package/dist/components/kritzel-dropdown.js +1 -9
  133. package/dist/components/kritzel-editor.js +1 -605
  134. package/dist/components/kritzel-engine.js +1 -9
  135. package/dist/components/kritzel-font-family.js +1 -9
  136. package/dist/components/kritzel-font-size.js +1 -9
  137. package/dist/components/kritzel-font.js +1 -9
  138. package/dist/components/kritzel-icon.js +1 -9
  139. package/dist/components/kritzel-menu-item.js +1 -9
  140. package/dist/components/kritzel-menu.js +1 -9
  141. package/dist/components/kritzel-portal.js +1 -9
  142. package/dist/components/kritzel-split-button.js +1 -9
  143. package/dist/components/kritzel-stroke-size.js +1 -9
  144. package/dist/components/kritzel-tooltip.js +1 -9
  145. package/dist/components/kritzel-utility-panel.js +1 -9
  146. package/dist/components/kritzel-workspace-manager.js +1 -9
  147. package/dist/components/p-1z-ds26_.js +1 -0
  148. package/dist/components/p-4FEa4ADy.js +1 -0
  149. package/dist/components/p-B0kd2rUI.js +1 -16
  150. package/dist/components/p-BXaWhpO2.js +1 -0
  151. package/dist/components/p-Bj_Og27M.js +1 -0
  152. package/dist/components/p-BtuXeItZ.js +1 -0
  153. package/dist/components/p-C-d2IH4v.js +1 -0
  154. package/dist/components/p-C3UriJh7.js +1 -0
  155. package/dist/components/p-C4krHoUl.js +1 -0
  156. package/dist/components/p-C6qB08BS.js +1 -68
  157. package/dist/components/p-CF5L2Gdl.js +1 -0
  158. package/dist/components/p-CXzfYQ_u.js +1 -0
  159. package/dist/components/p-CeKT_dTd.js +1 -0
  160. package/dist/components/p-Cp15toXH.js +1 -0
  161. package/dist/components/p-Cy77SpWt.js +1 -0
  162. package/dist/components/p-D1tfzpy8.js +1 -0
  163. package/dist/components/p-D4n7UbGY.js +1 -0
  164. package/dist/components/p-D5ZsALCP.js +1 -0
  165. package/dist/components/p-D8W6LE-c.js +1 -11
  166. package/dist/components/p-DTezr6w9.js +1 -0
  167. package/dist/components/p-Du1vxHy8.js +1 -0
  168. package/dist/components/p-IAqZFssU.js +1 -0
  169. package/dist/components/p-XGgKC_Fe.js +1 -0
  170. package/dist/components/p-exWKDgI8.js +9 -0
  171. package/dist/components/p-g0N9j_uT.js +1 -0
  172. package/dist/components/p-l10It7Nm.js +1 -30
  173. package/dist/components/p-n789Y3S-.js +1 -45
  174. package/dist/esm/app-globals-DQuL1Twl.js +0 -3
  175. package/dist/esm/{default-line-tool.config-CuBm2vpW.js → default-line-tool.config-Cw8mdDpt.js} +1569 -206
  176. package/dist/esm/index-BqhmuUH2.js +3253 -0
  177. package/dist/esm/index.js +11 -8
  178. package/dist/esm/kritzel-brush-style.entry.js +3 -4
  179. package/dist/esm/kritzel-color_22.entry.js +167 -110
  180. package/dist/esm/loader.js +3 -4
  181. package/dist/esm/stencil.js +4 -5
  182. package/dist/stencil/index.esm.js +1 -2
  183. package/dist/stencil/p-09295079.entry.js +1 -0
  184. package/dist/stencil/p-BqhmuUH2.js +2 -0
  185. package/dist/stencil/p-Cw8mdDpt.js +1 -0
  186. package/dist/stencil/p-DQuL1Twl.js +1 -2
  187. package/dist/stencil/p-d21a009f.entry.js +9 -0
  188. package/dist/stencil/stencil.esm.js +1 -2
  189. package/dist/types/classes/managers/anchor.manager.d.ts +1 -1
  190. package/dist/types/classes/objects/line.class.d.ts +2 -0
  191. package/dist/types/components/shared/kritzel-color-palette/kritzel-color-palette.d.ts +1 -0
  192. package/dist/types/components/shared/kritzel-font-size/kritzel-font-size.d.ts +1 -0
  193. package/dist/types/components/ui/kritzel-controls/kritzel-controls.d.ts +6 -0
  194. package/dist/types/stencil-public-runtime.d.ts +57 -3
  195. package/package.json +6 -1
  196. package/dist/cjs/app-globals-V2Kpy_OQ.js.map +0 -1
  197. package/dist/cjs/default-line-tool.config-JuTDR6PF.js.map +0 -1
  198. package/dist/cjs/index-Cj__YTlG.js +0 -1650
  199. package/dist/cjs/index-Cj__YTlG.js.map +0 -1
  200. package/dist/cjs/index.cjs.js.map +0 -1
  201. package/dist/cjs/kritzel-brush-style.entry.cjs.js.map +0 -1
  202. package/dist/cjs/loader.cjs.js.map +0 -1
  203. package/dist/cjs/stencil.cjs.js.map +0 -1
  204. package/dist/collection/classes/core/core.class.js.map +0 -1
  205. package/dist/collection/classes/core/reviver.class.js.map +0 -1
  206. package/dist/collection/classes/core/store.class.js.map +0 -1
  207. package/dist/collection/classes/core/viewport.class.js.map +0 -1
  208. package/dist/collection/classes/core/workspace.class.js.map +0 -1
  209. package/dist/collection/classes/handlers/base.handler.js.map +0 -1
  210. package/dist/collection/classes/handlers/context-menu.handler.js.map +0 -1
  211. package/dist/collection/classes/handlers/hover.handler.js.map +0 -1
  212. package/dist/collection/classes/handlers/key.handler.js.map +0 -1
  213. package/dist/collection/classes/handlers/line-handle.handler.js.map +0 -1
  214. package/dist/collection/classes/handlers/move.handler.js.map +0 -1
  215. package/dist/collection/classes/handlers/resize.handler.js.map +0 -1
  216. package/dist/collection/classes/handlers/rotation.handler.js.map +0 -1
  217. package/dist/collection/classes/handlers/selection.handler.js.map +0 -1
  218. package/dist/collection/classes/managers/anchor.manager.js.map +0 -1
  219. package/dist/collection/classes/managers/cursor.manager.js.map +0 -1
  220. package/dist/collection/classes/objects/base-object.class.js.map +0 -1
  221. package/dist/collection/classes/objects/custom-element.class.js.map +0 -1
  222. package/dist/collection/classes/objects/group.class.js.map +0 -1
  223. package/dist/collection/classes/objects/image.class.js.map +0 -1
  224. package/dist/collection/classes/objects/line.class.js.map +0 -1
  225. package/dist/collection/classes/objects/path.class.js.map +0 -1
  226. package/dist/collection/classes/objects/selection-box.class.js.map +0 -1
  227. package/dist/collection/classes/objects/selection-group.class.js.map +0 -1
  228. package/dist/collection/classes/objects/shape.class.js.map +0 -1
  229. package/dist/collection/classes/objects/text.class.js.map +0 -1
  230. package/dist/collection/classes/providers/broadcast-sync-provider.class.js.map +0 -1
  231. package/dist/collection/classes/providers/hocuspocus-sync-provider.class.js.map +0 -1
  232. package/dist/collection/classes/providers/indexeddb-sync-provider.class.js.map +0 -1
  233. package/dist/collection/classes/providers/websocket-sync-provider.class.js.map +0 -1
  234. package/dist/collection/classes/registries/icon-registry.class.js.map +0 -1
  235. package/dist/collection/classes/registries/tool.registry.js.map +0 -1
  236. package/dist/collection/classes/structures/app-state-map.structure.js.map +0 -1
  237. package/dist/collection/classes/structures/object-map.structure.js.map +0 -1
  238. package/dist/collection/classes/structures/quadtree.structure.js.map +0 -1
  239. package/dist/collection/classes/tools/base-tool.class.js.map +0 -1
  240. package/dist/collection/classes/tools/brush-tool.class.js.map +0 -1
  241. package/dist/collection/classes/tools/eraser-tool.class.js.map +0 -1
  242. package/dist/collection/classes/tools/image-tool.class.js.map +0 -1
  243. package/dist/collection/classes/tools/line-tool.class.js.map +0 -1
  244. package/dist/collection/classes/tools/selection-tool.class.js.map +0 -1
  245. package/dist/collection/classes/tools/shape-tool.class.js.map +0 -1
  246. package/dist/collection/classes/tools/text-tool.class.js.map +0 -1
  247. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js.map +0 -1
  248. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +0 -1
  249. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +0 -1
  250. package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js.map +0 -1
  251. package/dist/collection/components/shared/kritzel-color/kritzel-color.js.map +0 -1
  252. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js.map +0 -1
  253. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js.map +0 -1
  254. package/dist/collection/components/shared/kritzel-font/kritzel-font.js.map +0 -1
  255. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js.map +0 -1
  256. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js.map +0 -1
  257. package/dist/collection/components/shared/kritzel-icon/kritzel-icon.js.map +0 -1
  258. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js.map +0 -1
  259. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js.map +0 -1
  260. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js.map +0 -1
  261. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js.map +0 -1
  262. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js.map +0 -1
  263. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js.map +0 -1
  264. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js.map +0 -1
  265. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js.map +0 -1
  266. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js.map +0 -1
  267. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js.map +0 -1
  268. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js.map +0 -1
  269. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js.map +0 -1
  270. package/dist/collection/configs/default-brush-tool.config.js.map +0 -1
  271. package/dist/collection/configs/default-engine-config.js.map +0 -1
  272. package/dist/collection/configs/default-line-tool.config.js.map +0 -1
  273. package/dist/collection/configs/default-shape-tool.config.js.map +0 -1
  274. package/dist/collection/configs/default-sync.config.js.map +0 -1
  275. package/dist/collection/configs/default-text-tool.config.js.map +0 -1
  276. package/dist/collection/constants/core.constants.js.map +0 -1
  277. package/dist/collection/constants/engine.constants.js.map +0 -1
  278. package/dist/collection/enums/event-button.enum.js.map +0 -1
  279. package/dist/collection/enums/handle-type.enum.js.map +0 -1
  280. package/dist/collection/enums/shape-type.enum.js.map +0 -1
  281. package/dist/collection/helpers/class.helper.js.map +0 -1
  282. package/dist/collection/helpers/cursor.helper.js.map +0 -1
  283. package/dist/collection/helpers/devices.helper.js.map +0 -1
  284. package/dist/collection/helpers/event.helper.js.map +0 -1
  285. package/dist/collection/helpers/geometry.helper.js.map +0 -1
  286. package/dist/collection/helpers/html.helper.js.map +0 -1
  287. package/dist/collection/helpers/keyboard.helper.js.map +0 -1
  288. package/dist/collection/helpers/math.helper.js.map +0 -1
  289. package/dist/collection/helpers/object.helper.js.map +0 -1
  290. package/dist/collection/index.js.map +0 -1
  291. package/dist/collection/interfaces/anchor.interface.js.map +0 -1
  292. package/dist/collection/interfaces/arrow-head.interface.js.map +0 -1
  293. package/dist/collection/interfaces/bounding-box.interface.js.map +0 -1
  294. package/dist/collection/interfaces/clonable.interface.js.map +0 -1
  295. package/dist/collection/interfaces/context-menu-item.interface.js.map +0 -1
  296. package/dist/collection/interfaces/debug-info.interface.js.map +0 -1
  297. package/dist/collection/interfaces/engine-state.interface.js.map +0 -1
  298. package/dist/collection/interfaces/line-options.interface.js.map +0 -1
  299. package/dist/collection/interfaces/menu-item.interface.js.map +0 -1
  300. package/dist/collection/interfaces/object.interface.js.map +0 -1
  301. package/dist/collection/interfaces/path-options.interface.js.map +0 -1
  302. package/dist/collection/interfaces/point.interface.js.map +0 -1
  303. package/dist/collection/interfaces/polygon.interface.js.map +0 -1
  304. package/dist/collection/interfaces/selection-state.interface.js.map +0 -1
  305. package/dist/collection/interfaces/serializable.interface.js.map +0 -1
  306. package/dist/collection/interfaces/shortcut.interface.js.map +0 -1
  307. package/dist/collection/interfaces/sync-config.interface.js.map +0 -1
  308. package/dist/collection/interfaces/sync-provider.interface.js.map +0 -1
  309. package/dist/collection/interfaces/tool.interface.js.map +0 -1
  310. package/dist/collection/interfaces/toolbar-control.interface.js.map +0 -1
  311. package/dist/collection/interfaces/undo-state.interface.js.map +0 -1
  312. package/dist/collection/types/deep-readonly.type.js.map +0 -1
  313. package/dist/collection/types/state.types.js.map +0 -1
  314. package/dist/components/index.js.map +0 -1
  315. package/dist/components/kritzel-brush-style.js.map +0 -1
  316. package/dist/components/kritzel-color-palette.js.map +0 -1
  317. package/dist/components/kritzel-color.js.map +0 -1
  318. package/dist/components/kritzel-context-menu.js.map +0 -1
  319. package/dist/components/kritzel-control-brush-config.js.map +0 -1
  320. package/dist/components/kritzel-control-text-config.js.map +0 -1
  321. package/dist/components/kritzel-controls.js.map +0 -1
  322. package/dist/components/kritzel-cursor-trail.js.map +0 -1
  323. package/dist/components/kritzel-dropdown.js.map +0 -1
  324. package/dist/components/kritzel-editor.js.map +0 -1
  325. package/dist/components/kritzel-engine.js.map +0 -1
  326. package/dist/components/kritzel-font-family.js.map +0 -1
  327. package/dist/components/kritzel-font-size.js.map +0 -1
  328. package/dist/components/kritzel-font.js.map +0 -1
  329. package/dist/components/kritzel-icon.js.map +0 -1
  330. package/dist/components/kritzel-menu-item.js.map +0 -1
  331. package/dist/components/kritzel-menu.js.map +0 -1
  332. package/dist/components/kritzel-portal.js.map +0 -1
  333. package/dist/components/kritzel-split-button.js.map +0 -1
  334. package/dist/components/kritzel-stroke-size.js.map +0 -1
  335. package/dist/components/kritzel-tooltip.js.map +0 -1
  336. package/dist/components/kritzel-utility-panel.js.map +0 -1
  337. package/dist/components/kritzel-workspace-manager.js.map +0 -1
  338. package/dist/components/p-B0kd2rUI.js.map +0 -1
  339. package/dist/components/p-B80ry-r4.js +0 -103
  340. package/dist/components/p-B80ry-r4.js.map +0 -1
  341. package/dist/components/p-BC5-_yPs.js +0 -75
  342. package/dist/components/p-BC5-_yPs.js.map +0 -1
  343. package/dist/components/p-BUsg2vtg.js +0 -14897
  344. package/dist/components/p-BUsg2vtg.js.map +0 -1
  345. package/dist/components/p-Bo-NQ68K.js +0 -132
  346. package/dist/components/p-Bo-NQ68K.js.map +0 -1
  347. package/dist/components/p-C6qB08BS.js.map +0 -1
  348. package/dist/components/p-C720oASC.js +0 -201
  349. package/dist/components/p-C720oASC.js.map +0 -1
  350. package/dist/components/p-C92UCXyc.js +0 -308
  351. package/dist/components/p-C92UCXyc.js.map +0 -1
  352. package/dist/components/p-CAxHKvww.js +0 -119
  353. package/dist/components/p-CAxHKvww.js.map +0 -1
  354. package/dist/components/p-CD9cCvhR.js +0 -272
  355. package/dist/components/p-CD9cCvhR.js.map +0 -1
  356. package/dist/components/p-CIlIrPRp.js +0 -83
  357. package/dist/components/p-CIlIrPRp.js.map +0 -1
  358. package/dist/components/p-CIts5Uma.js +0 -110
  359. package/dist/components/p-CIts5Uma.js.map +0 -1
  360. package/dist/components/p-Cdw55iW6.js +0 -281
  361. package/dist/components/p-Cdw55iW6.js.map +0 -1
  362. package/dist/components/p-CwkUrTy1.js +0 -1367
  363. package/dist/components/p-CwkUrTy1.js.map +0 -1
  364. package/dist/components/p-D8W6LE-c.js.map +0 -1
  365. package/dist/components/p-DI7JQMsC.js +0 -46
  366. package/dist/components/p-DI7JQMsC.js.map +0 -1
  367. package/dist/components/p-DmYjCy-z.js +0 -62
  368. package/dist/components/p-DmYjCy-z.js.map +0 -1
  369. package/dist/components/p-DoD6F7Y4.js +0 -157
  370. package/dist/components/p-DoD6F7Y4.js.map +0 -1
  371. package/dist/components/p-DyVWaSSc.js +0 -55
  372. package/dist/components/p-DyVWaSSc.js.map +0 -1
  373. package/dist/components/p-WLXyD_eY.js +0 -111
  374. package/dist/components/p-WLXyD_eY.js.map +0 -1
  375. package/dist/components/p-c7AGmG3p.js +0 -73
  376. package/dist/components/p-c7AGmG3p.js.map +0 -1
  377. package/dist/components/p-fm-bG_zL.js +0 -231
  378. package/dist/components/p-fm-bG_zL.js.map +0 -1
  379. package/dist/components/p-fqLbEfE0.js +0 -39586
  380. package/dist/components/p-fqLbEfE0.js.map +0 -1
  381. package/dist/components/p-l10It7Nm.js.map +0 -1
  382. package/dist/components/p-n789Y3S-.js.map +0 -1
  383. package/dist/components/p-qWf2T62p.js +0 -57
  384. package/dist/components/p-qWf2T62p.js.map +0 -1
  385. package/dist/components/p-vLN8eXFe.js +0 -106
  386. package/dist/components/p-vLN8eXFe.js.map +0 -1
  387. package/dist/esm/app-globals-DQuL1Twl.js.map +0 -1
  388. package/dist/esm/default-line-tool.config-CuBm2vpW.js.map +0 -1
  389. package/dist/esm/index-SGde3HXB.js +0 -1623
  390. package/dist/esm/index-SGde3HXB.js.map +0 -1
  391. package/dist/esm/index.js.map +0 -1
  392. package/dist/esm/kritzel-brush-style.entry.js.map +0 -1
  393. package/dist/esm/loader.js.map +0 -1
  394. package/dist/esm/stencil.js.map +0 -1
  395. package/dist/stencil/index.esm.js.map +0 -1
  396. package/dist/stencil/kritzel-brush-style.entry.esm.js.map +0 -1
  397. package/dist/stencil/loader.esm.js.map +0 -1
  398. package/dist/stencil/p-0a9b6696.entry.js +0 -2
  399. package/dist/stencil/p-0a9b6696.entry.js.map +0 -1
  400. package/dist/stencil/p-0fdce6ce.entry.js +0 -10
  401. package/dist/stencil/p-0fdce6ce.entry.js.map +0 -1
  402. package/dist/stencil/p-CuBm2vpW.js +0 -2
  403. package/dist/stencil/p-CuBm2vpW.js.map +0 -1
  404. package/dist/stencil/p-DQuL1Twl.js.map +0 -1
  405. package/dist/stencil/p-SGde3HXB.js +0 -3
  406. package/dist/stencil/p-SGde3HXB.js.map +0 -1
  407. package/dist/stencil/stencil.esm.js.map +0 -1
@@ -1,231 +0,0 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-CwkUrTy1.js';
2
- import { O as ObjectHelper } from './p-B0kd2rUI.js';
3
- import { K as KritzelHTMLHelper } from './p-C6qB08BS.js';
4
-
5
- const KritzelPortal = /*@__PURE__*/ proxyCustomElement(class KritzelPortal extends H {
6
- constructor(registerHost) {
7
- super();
8
- if (registerHost !== false) {
9
- this.__registerHost();
10
- }
11
- this.__attachShadow();
12
- this.close = createEvent(this, "close");
13
- }
14
- get host() { return this; }
15
- anchor;
16
- anchorChanged(newValue) {
17
- if (newValue) {
18
- this.openPortal();
19
- this.calculatePosition();
20
- if (this.autoFocus) {
21
- this.focusFirstElement();
22
- }
23
- }
24
- else {
25
- this.closePortal();
26
- }
27
- }
28
- offsetX;
29
- offsetY;
30
- autoFocus = true;
31
- close;
32
- handleOutsideClick(event) {
33
- event.stopPropagation();
34
- const isLastPortal = this.lastAddedPortal === this.portal;
35
- if (!isLastPortal)
36
- return;
37
- const target = event.target;
38
- if (!this.host.contains(target)) {
39
- this.close.emit();
40
- this.closePortal();
41
- }
42
- }
43
- handleKeyDown(event) {
44
- event.stopPropagation();
45
- const isLastPortal = this.lastAddedPortal === this.portal;
46
- if (!isLastPortal)
47
- return;
48
- if (event.key === 'Escape') {
49
- this.anchor.focus();
50
- this.close.emit();
51
- this.closePortal();
52
- }
53
- if (event.key === 'Tab') {
54
- this.trapFocus(event);
55
- }
56
- if (event.key === 'Enter') {
57
- const activeElement = this.getDeepActiveElement();
58
- if (activeElement?.click) {
59
- event.preventDefault();
60
- activeElement.click();
61
- }
62
- }
63
- }
64
- handleResize() {
65
- this.calculatePosition();
66
- }
67
- handleWindowScroll() {
68
- const isInViewport = KritzelHTMLHelper.isElementInViewport(this.anchor);
69
- if (!isInViewport) {
70
- this.anchor?.blur();
71
- this.closePortal();
72
- return;
73
- }
74
- this.calculatePosition();
75
- }
76
- portal;
77
- id = `portal-${ObjectHelper.generateUUID()}`;
78
- defaultOffset = 0;
79
- minLeft = 0;
80
- focusFirstElement() {
81
- requestAnimationFrame(() => {
82
- this.firstFocusableElement?.focus?.();
83
- });
84
- }
85
- getDeepActiveElement() {
86
- let activeEl = document.activeElement;
87
- while (activeEl?.shadowRoot?.activeElement) {
88
- activeEl = activeEl.shadowRoot.activeElement;
89
- }
90
- return activeEl;
91
- }
92
- trapFocus(event) {
93
- const focusableElements = KritzelHTMLHelper.getFocusableElements(this.host);
94
- if (focusableElements.length === 0)
95
- return;
96
- const firstFocusable = focusableElements[0];
97
- const lastFocusable = focusableElements[focusableElements.length - 1];
98
- const activeElement = this.getDeepActiveElement();
99
- if (event.shiftKey) {
100
- /* shift + tab */
101
- if (activeElement === firstFocusable) {
102
- lastFocusable.focus();
103
- event.preventDefault();
104
- }
105
- }
106
- else {
107
- /* tab */
108
- if (activeElement === lastFocusable) {
109
- firstFocusable.focus();
110
- event.preventDefault();
111
- }
112
- }
113
- }
114
- get firstFocusableElement() {
115
- const slotEl = this.host.shadowRoot?.querySelector('slot');
116
- const firstAssigned = slotEl?.assignedElements({ flatten: true })[0];
117
- if (!firstAssigned)
118
- return null;
119
- const focusable = KritzelHTMLHelper.getFocusableElements(firstAssigned);
120
- return focusable[0] ?? firstAssigned;
121
- }
122
- get lastAddedPortal() {
123
- const portals = Array.from(document.querySelectorAll('[id^="portal-"]'));
124
- return portals.length ? portals[portals.length - 1] : null;
125
- }
126
- calculateLeft() {
127
- if (!this.anchor || !this.portal)
128
- return 0;
129
- const refRect = this.anchor.getBoundingClientRect();
130
- const portalRect = this.portal.getBoundingClientRect();
131
- const offset = this.offsetX ?? this.defaultOffset;
132
- let left = refRect.left + offset;
133
- const maxLeft = window.innerWidth - portalRect.width - this.minLeft;
134
- if (left < this.minLeft)
135
- left = this.minLeft;
136
- if (left > maxLeft)
137
- left = maxLeft;
138
- return Math.round(left + window.scrollX);
139
- }
140
- calculateTop() {
141
- if (!this.anchor || !this.portal)
142
- return 0;
143
- const refRect = this.anchor.getBoundingClientRect();
144
- const portalRect = this.portal.getBoundingClientRect();
145
- const offset = this.offsetY ?? this.defaultOffset;
146
- const padding = 8; // Minimum padding from viewport edges
147
- let top = refRect.bottom + offset;
148
- const spaceBelow = window.innerHeight - refRect.bottom - offset - padding;
149
- const spaceAbove = refRect.top - offset - padding;
150
- // Reset max-height CSS custom property
151
- this.host.style.removeProperty('--kritzel-portal-max-height');
152
- if (portalRect.height <= spaceBelow) {
153
- // Fits below the anchor
154
- top = refRect.bottom + offset;
155
- }
156
- else if (portalRect.height <= spaceAbove) {
157
- // Fits above the anchor
158
- top = refRect.top - portalRect.height - offset;
159
- }
160
- else {
161
- // Doesn't fit above or below - constrain the height
162
- if (spaceBelow >= spaceAbove) {
163
- // More space below, keep it below with constrained height
164
- top = refRect.bottom + offset;
165
- this.host.style.setProperty('--kritzel-portal-max-height', `${spaceBelow}px`);
166
- }
167
- else {
168
- // More space above, position above with constrained height
169
- top = padding;
170
- this.host.style.setProperty('--kritzel-portal-max-height', `${spaceAbove}px`);
171
- }
172
- }
173
- return Math.round(top + window.scrollY);
174
- }
175
- openPortal() {
176
- this.portal = document.createElement('div');
177
- this.portal.setAttribute('id', this.id);
178
- this.portal.style.zIndex = '1';
179
- this.portal.style.position = 'absolute';
180
- this.portal.style.top = '0px';
181
- this.portal.style.left = '0px';
182
- this.portal.appendChild(this.host);
183
- document.body.append(this.portal);
184
- }
185
- closePortal() {
186
- const portal = document.getElementById(this.id);
187
- if (!portal)
188
- return;
189
- document.body.removeChild(portal);
190
- this.host.remove();
191
- }
192
- calculatePosition() {
193
- if (!this.anchor || !this.portal)
194
- return;
195
- const top = this.calculateTop();
196
- const left = this.calculateLeft();
197
- this.portal.style.top = `${top}px`;
198
- this.portal.style.left = `${left}px`;
199
- }
200
- render() {
201
- return (h(Host, { key: '9706a815c6f49853983a0fdb68b097d62e65e90b', style: { display: this.anchor ? 'block' : 'none' } }, h("slot", { key: '1bd76deeb440cd25e3895dc8824f5200461e4ae0' })));
202
- }
203
- static get watchers() { return {
204
- "anchor": ["anchorChanged"]
205
- }; }
206
- }, [769, "kritzel-portal", {
207
- "anchor": [16],
208
- "offsetX": [2, "offset-x"],
209
- "offsetY": [2, "offset-y"],
210
- "autoFocus": [4, "auto-focus"]
211
- }, [[8, "click", "handleOutsideClick"], [8, "keydown", "handleKeyDown"], [11, "resize", "handleResize"], [11, "scroll", "handleWindowScroll"]], {
212
- "anchor": ["anchorChanged"]
213
- }]);
214
- function defineCustomElement() {
215
- if (typeof customElements === "undefined") {
216
- return;
217
- }
218
- const components = ["kritzel-portal"];
219
- components.forEach(tagName => { switch (tagName) {
220
- case "kritzel-portal":
221
- if (!customElements.get(tagName)) {
222
- customElements.define(tagName, KritzelPortal);
223
- }
224
- break;
225
- } });
226
- }
227
-
228
- export { KritzelPortal as K, defineCustomElement as d };
229
- //# sourceMappingURL=p-fm-bG_zL.js.map
230
-
231
- //# sourceMappingURL=p-fm-bG_zL.js.map
@@ -1 +0,0 @@
1
- {"file":"p-fm-bG_zL.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/shared/kritzel-portal/kritzel-portal.tsx"],"sourcesContent":["import { Component, Host, Listen, Prop, Watch, h, Event, EventEmitter, Element } from '@stencil/core';\r\nimport { ObjectHelper } from '../../../helpers/object.helper';\r\nimport { KritzelHTMLHelper } from '../../../helpers/html.helper';\r\n\r\n@Component({\r\n tag: 'kritzel-portal',\r\n shadow: true,\r\n})\r\nexport class KritzelPortal {\r\n @Element() host: HTMLElement;\r\n\r\n @Prop() anchor: HTMLElement;\r\n @Watch('anchor')\r\n anchorChanged(newValue: HTMLElement) {\r\n if (newValue) {\r\n this.openPortal();\r\n this.calculatePosition();\r\n if (this.autoFocus) {\r\n this.focusFirstElement();\r\n }\r\n } else {\r\n this.closePortal();\r\n }\r\n }\r\n\r\n @Prop() offsetX: number;\r\n @Prop() offsetY: number;\r\n @Prop() autoFocus: boolean = true;\r\n\r\n @Event() close: EventEmitter<void>;\r\n\r\n @Listen('click', { target: 'window' })\r\n handleOutsideClick(event: MouseEvent) {\r\n event.stopPropagation();\r\n\r\n const isLastPortal = this.lastAddedPortal === this.portal;\r\n if (!isLastPortal) return;\r\n\r\n const target = event.target as HTMLElement;\r\n if (!this.host.contains(target)) {\r\n this.close.emit();\r\n this.closePortal();\r\n }\r\n }\r\n\r\n @Listen('keydown', { target: 'window' })\r\n handleKeyDown(event: KeyboardEvent) {\r\n event.stopPropagation();\r\n\r\n const isLastPortal = this.lastAddedPortal === this.portal;\r\n if (!isLastPortal) return;\r\n\r\n if (event.key === 'Escape') {\r\n this.anchor.focus();\r\n this.close.emit();\r\n this.closePortal();\r\n }\r\n\r\n if (event.key === 'Tab') {\r\n this.trapFocus(event);\r\n }\r\n\r\n if (event.key === 'Enter') {\r\n const activeElement = this.getDeepActiveElement() as HTMLElement;\r\n if (activeElement?.click) {\r\n event.preventDefault();\r\n activeElement.click();\r\n }\r\n }\r\n }\r\n\r\n @Listen('resize', { target: 'window', capture: true })\r\n handleResize() {\r\n this.calculatePosition();\r\n }\r\n\r\n @Listen('scroll', { target: 'window', capture: true })\r\n handleWindowScroll() {\r\n const isInViewport = KritzelHTMLHelper.isElementInViewport(this.anchor);\r\n\r\n if (!isInViewport) {\r\n this.anchor?.blur();\r\n this.closePortal();\r\n return;\r\n }\r\n\r\n this.calculatePosition();\r\n }\r\n\r\n private portal: HTMLElement;\r\n private id: string = `portal-${ObjectHelper.generateUUID()}`;\r\n private defaultOffset = 0;\r\n private minLeft = 0;\r\n\r\n private focusFirstElement() {\r\n requestAnimationFrame(() => {\r\n this.firstFocusableElement?.focus?.();\r\n });\r\n }\r\n\r\n private getDeepActiveElement(): Element {\r\n let activeEl = document.activeElement;\r\n while (activeEl?.shadowRoot?.activeElement) {\r\n activeEl = activeEl.shadowRoot.activeElement;\r\n }\r\n return activeEl;\r\n }\r\n\r\n private trapFocus(event: KeyboardEvent) {\r\n const focusableElements = KritzelHTMLHelper.getFocusableElements(this.host);\r\n if (focusableElements.length === 0) return;\r\n\r\n const firstFocusable = focusableElements[0];\r\n const lastFocusable = focusableElements[focusableElements.length - 1];\r\n const activeElement = this.getDeepActiveElement();\r\n\r\n if (event.shiftKey) {\r\n /* shift + tab */\r\n if (activeElement === firstFocusable) {\r\n lastFocusable.focus();\r\n event.preventDefault();\r\n }\r\n } else {\r\n /* tab */\r\n if (activeElement === lastFocusable) {\r\n firstFocusable.focus();\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n private get firstFocusableElement(): HTMLElement | null {\r\n const slotEl = this.host.shadowRoot?.querySelector('slot') as HTMLSlotElement | null;\r\n const firstAssigned = slotEl?.assignedElements({ flatten: true })[0] as HTMLElement | undefined;\r\n if (!firstAssigned) return null;\r\n\r\n const focusable = KritzelHTMLHelper.getFocusableElements(firstAssigned);\r\n return focusable[0] ?? firstAssigned;\r\n }\r\n\r\n private get lastAddedPortal(): HTMLElement | null {\r\n const portals = Array.from(document.querySelectorAll<HTMLElement>('[id^=\"portal-\"]'));\r\n return portals.length ? portals[portals.length - 1] : null;\r\n }\r\n\r\n private calculateLeft() {\r\n if (!this.anchor || !this.portal) return 0;\r\n const refRect = this.anchor.getBoundingClientRect();\r\n const portalRect = this.portal.getBoundingClientRect();\r\n\r\n const offset = this.offsetX ?? this.defaultOffset;\r\n let left = refRect.left + offset;\r\n\r\n const maxLeft = window.innerWidth - portalRect.width - this.minLeft;\r\n if (left < this.minLeft) left = this.minLeft;\r\n if (left > maxLeft) left = maxLeft;\r\n\r\n return Math.round(left + window.scrollX);\r\n }\r\n\r\n private calculateTop() {\r\n if (!this.anchor || !this.portal) return 0;\r\n const refRect = this.anchor.getBoundingClientRect();\r\n const portalRect = this.portal.getBoundingClientRect();\r\n const offset = this.offsetY ?? this.defaultOffset;\r\n const padding = 8; // Minimum padding from viewport edges\r\n\r\n let top = refRect.bottom + offset;\r\n const spaceBelow = window.innerHeight - refRect.bottom - offset - padding;\r\n const spaceAbove = refRect.top - offset - padding;\r\n\r\n // Reset max-height CSS custom property \r\n this.host.style.removeProperty('--kritzel-portal-max-height');\r\n\r\n if (portalRect.height <= spaceBelow) {\r\n // Fits below the anchor\r\n top = refRect.bottom + offset;\r\n } else if (portalRect.height <= spaceAbove) {\r\n // Fits above the anchor\r\n top = refRect.top - portalRect.height - offset;\r\n } else {\r\n // Doesn't fit above or below - constrain the height\r\n if (spaceBelow >= spaceAbove) {\r\n // More space below, keep it below with constrained height\r\n top = refRect.bottom + offset;\r\n this.host.style.setProperty('--kritzel-portal-max-height', `${spaceBelow}px`);\r\n } else {\r\n // More space above, position above with constrained height\r\n top = padding;\r\n this.host.style.setProperty('--kritzel-portal-max-height', `${spaceAbove}px`);\r\n }\r\n }\r\n\r\n return Math.round(top + window.scrollY);\r\n }\r\n\r\n private openPortal() {\r\n this.portal = document.createElement('div');\r\n this.portal.setAttribute('id', this.id);\r\n this.portal.style.zIndex = '1';\r\n this.portal.style.position = 'absolute';\r\n this.portal.style.top = '0px';\r\n this.portal.style.left = '0px';\r\n this.portal.appendChild(this.host);\r\n document.body.append(this.portal);\r\n }\r\n\r\n private closePortal() {\r\n const portal = document.getElementById(this.id);\r\n if (!portal) return;\r\n document.body.removeChild(portal);\r\n this.host.remove();\r\n }\r\n\r\n private calculatePosition() {\r\n if (!this.anchor || !this.portal) return;\r\n const top = this.calculateTop();\r\n const left = this.calculateLeft();\r\n this.portal.style.top = `${top}px`;\r\n this.portal.style.left = `${left}px`;\r\n }\r\n\r\n render() {\r\n return (\r\n <Host style={{ display: this.anchor ? 'block' : 'none' }}>\r\n <slot />\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}