kritzel-stencil 0.0.172 → 0.1.0

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 (403) 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-7eJND6Jb.js} +1516 -206
  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 +103 -66
  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 +0 -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 +0 -1
  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.js +0 -1
  75. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +0 -1
  76. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js +0 -1
  77. package/dist/collection/configs/default-brush-tool.config.js +0 -1
  78. package/dist/collection/configs/default-engine-config.js +0 -1
  79. package/dist/collection/configs/default-line-tool.config.js +0 -1
  80. package/dist/collection/configs/default-shape-tool.config.js +0 -1
  81. package/dist/collection/configs/default-sync.config.js +0 -1
  82. package/dist/collection/configs/default-text-tool.config.js +0 -1
  83. package/dist/collection/constants/core.constants.js +0 -1
  84. package/dist/collection/constants/engine.constants.js +0 -1
  85. package/dist/collection/enums/event-button.enum.js +0 -1
  86. package/dist/collection/enums/handle-type.enum.js +0 -1
  87. package/dist/collection/enums/shape-type.enum.js +0 -1
  88. package/dist/collection/helpers/class.helper.js +0 -1
  89. package/dist/collection/helpers/cursor.helper.js +0 -1
  90. package/dist/collection/helpers/devices.helper.js +0 -1
  91. package/dist/collection/helpers/event.helper.js +0 -1
  92. package/dist/collection/helpers/geometry.helper.js +0 -1
  93. package/dist/collection/helpers/html.helper.js +0 -1
  94. package/dist/collection/helpers/keyboard.helper.js +0 -1
  95. package/dist/collection/helpers/math.helper.js +0 -1
  96. package/dist/collection/helpers/object.helper.js +0 -1
  97. package/dist/collection/index.js +0 -1
  98. package/dist/collection/interfaces/anchor.interface.js +0 -1
  99. package/dist/collection/interfaces/arrow-head.interface.js +0 -1
  100. package/dist/collection/interfaces/bounding-box.interface.js +0 -1
  101. package/dist/collection/interfaces/clonable.interface.js +0 -1
  102. package/dist/collection/interfaces/context-menu-item.interface.js +0 -1
  103. package/dist/collection/interfaces/debug-info.interface.js +0 -1
  104. package/dist/collection/interfaces/engine-state.interface.js +0 -1
  105. package/dist/collection/interfaces/line-options.interface.js +0 -1
  106. package/dist/collection/interfaces/menu-item.interface.js +0 -1
  107. package/dist/collection/interfaces/object.interface.js +0 -1
  108. package/dist/collection/interfaces/path-options.interface.js +0 -1
  109. package/dist/collection/interfaces/point.interface.js +0 -1
  110. package/dist/collection/interfaces/polygon.interface.js +0 -1
  111. package/dist/collection/interfaces/selection-state.interface.js +0 -1
  112. package/dist/collection/interfaces/serializable.interface.js +0 -1
  113. package/dist/collection/interfaces/shortcut.interface.js +0 -1
  114. package/dist/collection/interfaces/sync-config.interface.js +0 -1
  115. package/dist/collection/interfaces/sync-provider.interface.js +0 -1
  116. package/dist/collection/interfaces/tool.interface.js +0 -1
  117. package/dist/collection/interfaces/toolbar-control.interface.js +0 -1
  118. package/dist/collection/interfaces/undo-state.interface.js +0 -1
  119. package/dist/collection/types/deep-readonly.type.js +0 -1
  120. package/dist/collection/types/state.types.js +0 -1
  121. package/dist/components/index.d.ts +1 -0
  122. package/dist/components/index.js +1 -1477
  123. package/dist/components/kritzel-brush-style.js +1 -67
  124. package/dist/components/kritzel-color-palette.js +1 -9
  125. package/dist/components/kritzel-color.js +1 -9
  126. package/dist/components/kritzel-context-menu.js +1 -9
  127. package/dist/components/kritzel-control-brush-config.js +1 -9
  128. package/dist/components/kritzel-control-text-config.js +1 -9
  129. package/dist/components/kritzel-controls.js +1 -9
  130. package/dist/components/kritzel-cursor-trail.js +1 -9
  131. package/dist/components/kritzel-dropdown.js +1 -9
  132. package/dist/components/kritzel-editor.js +1 -605
  133. package/dist/components/kritzel-engine.js +1 -9
  134. package/dist/components/kritzel-font-family.js +1 -9
  135. package/dist/components/kritzel-font-size.js +1 -9
  136. package/dist/components/kritzel-font.js +1 -9
  137. package/dist/components/kritzel-icon.js +1 -9
  138. package/dist/components/kritzel-menu-item.js +1 -9
  139. package/dist/components/kritzel-menu.js +1 -9
  140. package/dist/components/kritzel-portal.js +1 -9
  141. package/dist/components/kritzel-split-button.js +1 -9
  142. package/dist/components/kritzel-stroke-size.js +1 -9
  143. package/dist/components/kritzel-tooltip.js +1 -9
  144. package/dist/components/kritzel-utility-panel.js +1 -9
  145. package/dist/components/kritzel-workspace-manager.js +1 -9
  146. package/dist/components/p-1z-ds26_.js +1 -0
  147. package/dist/components/p-4FEa4ADy.js +1 -0
  148. package/dist/components/p-B0kd2rUI.js +1 -16
  149. package/dist/components/p-B7Fdo5QJ.js +1 -0
  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-D3LRBk2t.js +9 -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-DB5s1NY4.js +1 -0
  167. package/dist/components/p-DTezr6w9.js +1 -0
  168. package/dist/components/p-Du1vxHy8.js +1 -0
  169. package/dist/components/p-IAqZFssU.js +1 -0
  170. package/dist/components/p-g0N9j_uT.js +1 -0
  171. package/dist/components/p-l10It7Nm.js +1 -30
  172. package/dist/components/p-n789Y3S-.js +1 -45
  173. package/dist/esm/app-globals-DQuL1Twl.js +0 -3
  174. package/dist/esm/{default-line-tool.config-CuBm2vpW.js → default-line-tool.config-CD5sTKH-.js} +1515 -205
  175. package/dist/esm/index-BqhmuUH2.js +3253 -0
  176. package/dist/esm/index.js +11 -8
  177. package/dist/esm/kritzel-brush-style.entry.js +3 -4
  178. package/dist/esm/kritzel-color_22.entry.js +103 -66
  179. package/dist/esm/loader.js +3 -4
  180. package/dist/esm/stencil.js +4 -5
  181. package/dist/stencil/index.esm.js +1 -2
  182. package/dist/stencil/p-09295079.entry.js +1 -0
  183. package/dist/stencil/p-381c0e9c.entry.js +9 -0
  184. package/dist/stencil/p-BqhmuUH2.js +2 -0
  185. package/dist/stencil/p-CD5sTKH-.js +1 -0
  186. package/dist/stencil/p-DQuL1Twl.js +1 -2
  187. package/dist/stencil/stencil.esm.js +1 -2
  188. package/dist/types/components/shared/kritzel-color-palette/kritzel-color-palette.d.ts +1 -0
  189. package/dist/types/components/shared/kritzel-font-size/kritzel-font-size.d.ts +1 -0
  190. package/dist/types/stencil-public-runtime.d.ts +57 -3
  191. package/package.json +6 -1
  192. package/dist/cjs/app-globals-V2Kpy_OQ.js.map +0 -1
  193. package/dist/cjs/default-line-tool.config-JuTDR6PF.js.map +0 -1
  194. package/dist/cjs/index-Cj__YTlG.js +0 -1650
  195. package/dist/cjs/index-Cj__YTlG.js.map +0 -1
  196. package/dist/cjs/index.cjs.js.map +0 -1
  197. package/dist/cjs/kritzel-brush-style.entry.cjs.js.map +0 -1
  198. package/dist/cjs/loader.cjs.js.map +0 -1
  199. package/dist/cjs/stencil.cjs.js.map +0 -1
  200. package/dist/collection/classes/core/core.class.js.map +0 -1
  201. package/dist/collection/classes/core/reviver.class.js.map +0 -1
  202. package/dist/collection/classes/core/store.class.js.map +0 -1
  203. package/dist/collection/classes/core/viewport.class.js.map +0 -1
  204. package/dist/collection/classes/core/workspace.class.js.map +0 -1
  205. package/dist/collection/classes/handlers/base.handler.js.map +0 -1
  206. package/dist/collection/classes/handlers/context-menu.handler.js.map +0 -1
  207. package/dist/collection/classes/handlers/hover.handler.js.map +0 -1
  208. package/dist/collection/classes/handlers/key.handler.js.map +0 -1
  209. package/dist/collection/classes/handlers/line-handle.handler.js.map +0 -1
  210. package/dist/collection/classes/handlers/move.handler.js.map +0 -1
  211. package/dist/collection/classes/handlers/resize.handler.js.map +0 -1
  212. package/dist/collection/classes/handlers/rotation.handler.js.map +0 -1
  213. package/dist/collection/classes/handlers/selection.handler.js.map +0 -1
  214. package/dist/collection/classes/managers/anchor.manager.js.map +0 -1
  215. package/dist/collection/classes/managers/cursor.manager.js.map +0 -1
  216. package/dist/collection/classes/objects/base-object.class.js.map +0 -1
  217. package/dist/collection/classes/objects/custom-element.class.js.map +0 -1
  218. package/dist/collection/classes/objects/group.class.js.map +0 -1
  219. package/dist/collection/classes/objects/image.class.js.map +0 -1
  220. package/dist/collection/classes/objects/line.class.js.map +0 -1
  221. package/dist/collection/classes/objects/path.class.js.map +0 -1
  222. package/dist/collection/classes/objects/selection-box.class.js.map +0 -1
  223. package/dist/collection/classes/objects/selection-group.class.js.map +0 -1
  224. package/dist/collection/classes/objects/shape.class.js.map +0 -1
  225. package/dist/collection/classes/objects/text.class.js.map +0 -1
  226. package/dist/collection/classes/providers/broadcast-sync-provider.class.js.map +0 -1
  227. package/dist/collection/classes/providers/hocuspocus-sync-provider.class.js.map +0 -1
  228. package/dist/collection/classes/providers/indexeddb-sync-provider.class.js.map +0 -1
  229. package/dist/collection/classes/providers/websocket-sync-provider.class.js.map +0 -1
  230. package/dist/collection/classes/registries/icon-registry.class.js.map +0 -1
  231. package/dist/collection/classes/registries/tool.registry.js.map +0 -1
  232. package/dist/collection/classes/structures/app-state-map.structure.js.map +0 -1
  233. package/dist/collection/classes/structures/object-map.structure.js.map +0 -1
  234. package/dist/collection/classes/structures/quadtree.structure.js.map +0 -1
  235. package/dist/collection/classes/tools/base-tool.class.js.map +0 -1
  236. package/dist/collection/classes/tools/brush-tool.class.js.map +0 -1
  237. package/dist/collection/classes/tools/eraser-tool.class.js.map +0 -1
  238. package/dist/collection/classes/tools/image-tool.class.js.map +0 -1
  239. package/dist/collection/classes/tools/line-tool.class.js.map +0 -1
  240. package/dist/collection/classes/tools/selection-tool.class.js.map +0 -1
  241. package/dist/collection/classes/tools/shape-tool.class.js.map +0 -1
  242. package/dist/collection/classes/tools/text-tool.class.js.map +0 -1
  243. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js.map +0 -1
  244. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +0 -1
  245. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +0 -1
  246. package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js.map +0 -1
  247. package/dist/collection/components/shared/kritzel-color/kritzel-color.js.map +0 -1
  248. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js.map +0 -1
  249. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js.map +0 -1
  250. package/dist/collection/components/shared/kritzel-font/kritzel-font.js.map +0 -1
  251. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js.map +0 -1
  252. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js.map +0 -1
  253. package/dist/collection/components/shared/kritzel-icon/kritzel-icon.js.map +0 -1
  254. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js.map +0 -1
  255. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js.map +0 -1
  256. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js.map +0 -1
  257. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js.map +0 -1
  258. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js.map +0 -1
  259. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js.map +0 -1
  260. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js.map +0 -1
  261. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js.map +0 -1
  262. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js.map +0 -1
  263. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js.map +0 -1
  264. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js.map +0 -1
  265. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js.map +0 -1
  266. package/dist/collection/configs/default-brush-tool.config.js.map +0 -1
  267. package/dist/collection/configs/default-engine-config.js.map +0 -1
  268. package/dist/collection/configs/default-line-tool.config.js.map +0 -1
  269. package/dist/collection/configs/default-shape-tool.config.js.map +0 -1
  270. package/dist/collection/configs/default-sync.config.js.map +0 -1
  271. package/dist/collection/configs/default-text-tool.config.js.map +0 -1
  272. package/dist/collection/constants/core.constants.js.map +0 -1
  273. package/dist/collection/constants/engine.constants.js.map +0 -1
  274. package/dist/collection/enums/event-button.enum.js.map +0 -1
  275. package/dist/collection/enums/handle-type.enum.js.map +0 -1
  276. package/dist/collection/enums/shape-type.enum.js.map +0 -1
  277. package/dist/collection/helpers/class.helper.js.map +0 -1
  278. package/dist/collection/helpers/cursor.helper.js.map +0 -1
  279. package/dist/collection/helpers/devices.helper.js.map +0 -1
  280. package/dist/collection/helpers/event.helper.js.map +0 -1
  281. package/dist/collection/helpers/geometry.helper.js.map +0 -1
  282. package/dist/collection/helpers/html.helper.js.map +0 -1
  283. package/dist/collection/helpers/keyboard.helper.js.map +0 -1
  284. package/dist/collection/helpers/math.helper.js.map +0 -1
  285. package/dist/collection/helpers/object.helper.js.map +0 -1
  286. package/dist/collection/index.js.map +0 -1
  287. package/dist/collection/interfaces/anchor.interface.js.map +0 -1
  288. package/dist/collection/interfaces/arrow-head.interface.js.map +0 -1
  289. package/dist/collection/interfaces/bounding-box.interface.js.map +0 -1
  290. package/dist/collection/interfaces/clonable.interface.js.map +0 -1
  291. package/dist/collection/interfaces/context-menu-item.interface.js.map +0 -1
  292. package/dist/collection/interfaces/debug-info.interface.js.map +0 -1
  293. package/dist/collection/interfaces/engine-state.interface.js.map +0 -1
  294. package/dist/collection/interfaces/line-options.interface.js.map +0 -1
  295. package/dist/collection/interfaces/menu-item.interface.js.map +0 -1
  296. package/dist/collection/interfaces/object.interface.js.map +0 -1
  297. package/dist/collection/interfaces/path-options.interface.js.map +0 -1
  298. package/dist/collection/interfaces/point.interface.js.map +0 -1
  299. package/dist/collection/interfaces/polygon.interface.js.map +0 -1
  300. package/dist/collection/interfaces/selection-state.interface.js.map +0 -1
  301. package/dist/collection/interfaces/serializable.interface.js.map +0 -1
  302. package/dist/collection/interfaces/shortcut.interface.js.map +0 -1
  303. package/dist/collection/interfaces/sync-config.interface.js.map +0 -1
  304. package/dist/collection/interfaces/sync-provider.interface.js.map +0 -1
  305. package/dist/collection/interfaces/tool.interface.js.map +0 -1
  306. package/dist/collection/interfaces/toolbar-control.interface.js.map +0 -1
  307. package/dist/collection/interfaces/undo-state.interface.js.map +0 -1
  308. package/dist/collection/types/deep-readonly.type.js.map +0 -1
  309. package/dist/collection/types/state.types.js.map +0 -1
  310. package/dist/components/index.js.map +0 -1
  311. package/dist/components/kritzel-brush-style.js.map +0 -1
  312. package/dist/components/kritzel-color-palette.js.map +0 -1
  313. package/dist/components/kritzel-color.js.map +0 -1
  314. package/dist/components/kritzel-context-menu.js.map +0 -1
  315. package/dist/components/kritzel-control-brush-config.js.map +0 -1
  316. package/dist/components/kritzel-control-text-config.js.map +0 -1
  317. package/dist/components/kritzel-controls.js.map +0 -1
  318. package/dist/components/kritzel-cursor-trail.js.map +0 -1
  319. package/dist/components/kritzel-dropdown.js.map +0 -1
  320. package/dist/components/kritzel-editor.js.map +0 -1
  321. package/dist/components/kritzel-engine.js.map +0 -1
  322. package/dist/components/kritzel-font-family.js.map +0 -1
  323. package/dist/components/kritzel-font-size.js.map +0 -1
  324. package/dist/components/kritzel-font.js.map +0 -1
  325. package/dist/components/kritzel-icon.js.map +0 -1
  326. package/dist/components/kritzel-menu-item.js.map +0 -1
  327. package/dist/components/kritzel-menu.js.map +0 -1
  328. package/dist/components/kritzel-portal.js.map +0 -1
  329. package/dist/components/kritzel-split-button.js.map +0 -1
  330. package/dist/components/kritzel-stroke-size.js.map +0 -1
  331. package/dist/components/kritzel-tooltip.js.map +0 -1
  332. package/dist/components/kritzel-utility-panel.js.map +0 -1
  333. package/dist/components/kritzel-workspace-manager.js.map +0 -1
  334. package/dist/components/p-B0kd2rUI.js.map +0 -1
  335. package/dist/components/p-B80ry-r4.js +0 -103
  336. package/dist/components/p-B80ry-r4.js.map +0 -1
  337. package/dist/components/p-BC5-_yPs.js +0 -75
  338. package/dist/components/p-BC5-_yPs.js.map +0 -1
  339. package/dist/components/p-BUsg2vtg.js +0 -14897
  340. package/dist/components/p-BUsg2vtg.js.map +0 -1
  341. package/dist/components/p-Bo-NQ68K.js +0 -132
  342. package/dist/components/p-Bo-NQ68K.js.map +0 -1
  343. package/dist/components/p-C6qB08BS.js.map +0 -1
  344. package/dist/components/p-C720oASC.js +0 -201
  345. package/dist/components/p-C720oASC.js.map +0 -1
  346. package/dist/components/p-C92UCXyc.js +0 -308
  347. package/dist/components/p-C92UCXyc.js.map +0 -1
  348. package/dist/components/p-CAxHKvww.js +0 -119
  349. package/dist/components/p-CAxHKvww.js.map +0 -1
  350. package/dist/components/p-CD9cCvhR.js +0 -272
  351. package/dist/components/p-CD9cCvhR.js.map +0 -1
  352. package/dist/components/p-CIlIrPRp.js +0 -83
  353. package/dist/components/p-CIlIrPRp.js.map +0 -1
  354. package/dist/components/p-CIts5Uma.js +0 -110
  355. package/dist/components/p-CIts5Uma.js.map +0 -1
  356. package/dist/components/p-Cdw55iW6.js +0 -281
  357. package/dist/components/p-Cdw55iW6.js.map +0 -1
  358. package/dist/components/p-CwkUrTy1.js +0 -1367
  359. package/dist/components/p-CwkUrTy1.js.map +0 -1
  360. package/dist/components/p-D8W6LE-c.js.map +0 -1
  361. package/dist/components/p-DI7JQMsC.js +0 -46
  362. package/dist/components/p-DI7JQMsC.js.map +0 -1
  363. package/dist/components/p-DmYjCy-z.js +0 -62
  364. package/dist/components/p-DmYjCy-z.js.map +0 -1
  365. package/dist/components/p-DoD6F7Y4.js +0 -157
  366. package/dist/components/p-DoD6F7Y4.js.map +0 -1
  367. package/dist/components/p-DyVWaSSc.js +0 -55
  368. package/dist/components/p-DyVWaSSc.js.map +0 -1
  369. package/dist/components/p-WLXyD_eY.js +0 -111
  370. package/dist/components/p-WLXyD_eY.js.map +0 -1
  371. package/dist/components/p-c7AGmG3p.js +0 -73
  372. package/dist/components/p-c7AGmG3p.js.map +0 -1
  373. package/dist/components/p-fm-bG_zL.js +0 -231
  374. package/dist/components/p-fm-bG_zL.js.map +0 -1
  375. package/dist/components/p-fqLbEfE0.js +0 -39586
  376. package/dist/components/p-fqLbEfE0.js.map +0 -1
  377. package/dist/components/p-l10It7Nm.js.map +0 -1
  378. package/dist/components/p-n789Y3S-.js.map +0 -1
  379. package/dist/components/p-qWf2T62p.js +0 -57
  380. package/dist/components/p-qWf2T62p.js.map +0 -1
  381. package/dist/components/p-vLN8eXFe.js +0 -106
  382. package/dist/components/p-vLN8eXFe.js.map +0 -1
  383. package/dist/esm/app-globals-DQuL1Twl.js.map +0 -1
  384. package/dist/esm/default-line-tool.config-CuBm2vpW.js.map +0 -1
  385. package/dist/esm/index-SGde3HXB.js +0 -1623
  386. package/dist/esm/index-SGde3HXB.js.map +0 -1
  387. package/dist/esm/index.js.map +0 -1
  388. package/dist/esm/kritzel-brush-style.entry.js.map +0 -1
  389. package/dist/esm/loader.js.map +0 -1
  390. package/dist/esm/stencil.js.map +0 -1
  391. package/dist/stencil/index.esm.js.map +0 -1
  392. package/dist/stencil/kritzel-brush-style.entry.esm.js.map +0 -1
  393. package/dist/stencil/loader.esm.js.map +0 -1
  394. package/dist/stencil/p-0a9b6696.entry.js +0 -2
  395. package/dist/stencil/p-0a9b6696.entry.js.map +0 -1
  396. package/dist/stencil/p-0fdce6ce.entry.js +0 -10
  397. package/dist/stencil/p-0fdce6ce.entry.js.map +0 -1
  398. package/dist/stencil/p-CuBm2vpW.js +0 -2
  399. package/dist/stencil/p-CuBm2vpW.js.map +0 -1
  400. package/dist/stencil/p-DQuL1Twl.js.map +0 -1
  401. package/dist/stencil/p-SGde3HXB.js +0 -3
  402. package/dist/stencil/p-SGde3HXB.js.map +0 -1
  403. package/dist/stencil/stencil.esm.js.map +0 -1
@@ -1,308 +0,0 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-CwkUrTy1.js';
2
- import { b as KritzelBrushTool, c as KritzelTextTool } from './p-BUsg2vtg.js';
3
- import { K as KritzelDevicesHelper } from './p-l10It7Nm.js';
4
- import { d as defineCustomElement$c } from './p-CIlIrPRp.js';
5
- import { d as defineCustomElement$b } from './p-c7AGmG3p.js';
6
- import { d as defineCustomElement$a } from './p-B80ry-r4.js';
7
- import { d as defineCustomElement$9 } from './p-vLN8eXFe.js';
8
- import { d as defineCustomElement$8 } from './p-Cdw55iW6.js';
9
- import { d as defineCustomElement$7 } from './p-DI7JQMsC.js';
10
- import { d as defineCustomElement$6 } from './p-BC5-_yPs.js';
11
- import { d as defineCustomElement$5 } from './p-qWf2T62p.js';
12
- import { d as defineCustomElement$4 } from './p-CIts5Uma.js';
13
- import { d as defineCustomElement$3 } from './p-DyVWaSSc.js';
14
- import { d as defineCustomElement$2 } from './p-WLXyD_eY.js';
15
- import { d as defineCustomElement$1 } from './p-DmYjCy-z.js';
16
-
17
- const kritzelControlsCss = ":host{display:flex;flex-direction:column;user-select:none}:host(.mobile){--kritzel-controls-control-hover-background-color:transparent;--kritzel-controls-control-active-background-color:transparent}.kritzel-controls{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:var(--kritzel-controls-gap, 8px);height:100%;padding:var(--kritzel-controls-padding, 8px);background-color:var(--kritzel-controls-background-color, #ffffff);border-radius:var(--kritzel-controls-border-radius, 16px);box-shadow:var(--kritzel-controls-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));border:var(--kritzel-controls-border, 1px solid #ebebeb);z-index:10000;position:relative}.kritzel-control{display:flex;justify-content:center;align-items:center;color:var(--kritzel-controls-control-color, #000000);border-radius:var(--kritzel-controls-control-border-radius, 12px);padding:var(--kritzel-controls-control-padding, 8px);border:none;background:none;cursor:var(--kritzel-pointer-cursor, pointer);-webkit-tap-highlight-color:transparent;font-weight:bold}.kritzel-control:focus,.kritzel-control:hover{background-color:var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.kritzel-control:active{background-color:var(--kritzel-controls-control-active-background-color, hsl(0, 0%, 0%, 8.6%))}.kritzel-control.selected,.kritzel-control.selected:hover,.kritzel-control.selected:active{background-color:var(--kritzel-controls-control-selected-background-color, #007AFF) !important;color:var(--kritzel-controls-control-selected-color, #ffffff) !important}.kritzel-control.selected:focus{background-color:var(--kritzel-controls-control-selected-background-color, #007bffe3) !important}.kritzel-control-split{position:relative;display:flex;align-items:center;border-radius:var(--kritzel-controls-control-border-radius, 12px);color:var(--kritzel-controls-control-color, #000000)}.kritzel-control-split .kritzel-control-main{display:flex;justify-content:center;align-items:center;padding:var(--kritzel-controls-control-padding, 8px);border:none;background:none;cursor:var(--kritzel-pointer-cursor, pointer);-webkit-tap-highlight-color:transparent;border-radius:var(--kritzel-controls-control-border-radius, 12px);color:inherit}.kritzel-control-split.selected .kritzel-control-main{border-radius:var(--kritzel-controls-control-border-radius, 12px) 0 0 var(--kritzel-controls-control-border-radius, 12px)}.kritzel-control-split .kritzel-control-dropdown{display:flex;justify-content:center;align-items:center;align-self:stretch;border:none;background:none;cursor:var(--kritzel-pointer-cursor, pointer);-webkit-tap-highlight-color:transparent;border-radius:0 var(--kritzel-controls-control-border-radius, 12px) var(--kritzel-controls-control-border-radius, 12px) 0;color:inherit;width:0;padding:0;opacity:0;overflow:hidden;pointer-events:none;transition:width 0.15s ease-out, padding 0.15s ease-out, opacity 0.15s ease-out}.kritzel-control-split .kritzel-control-dropdown.visible{width:auto;padding:0 6px;opacity:1;pointer-events:auto}.kritzel-control-split .kritzel-control-main:focus,.kritzel-control-split .kritzel-control-main:hover,.kritzel-control-split .kritzel-control-dropdown:focus,.kritzel-control-split .kritzel-control-dropdown:hover{background-color:var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.kritzel-control-split .kritzel-control-main:active,.kritzel-control-split .kritzel-control-dropdown:active{background-color:var(--kritzel-controls-control-active-background-color, hsl(0, 0%, 0%, 8.6%))}.kritzel-control-split.selected{background-color:var(--kritzel-controls-control-selected-background-color, #007AFF) !important;color:var(--kritzel-controls-control-selected-color, #ffffff) !important}.kritzel-control-split.selected .kritzel-control-main:hover,.kritzel-control-split.selected .kritzel-control-dropdown:hover{background-color:rgba(255, 255, 255, 0.15)}.kritzel-submenu-content{display:flex;flex-direction:column;gap:var(--kritzel-submenu-gap, 4px);min-width:140px}.kritzel-submenu-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:none;background:none;cursor:var(--kritzel-pointer-cursor, pointer);border-radius:8px;color:var(--kritzel-controls-control-color, #000000);font-size:14px;text-align:left;white-space:nowrap;-webkit-tap-highlight-color:transparent}.kritzel-submenu-item:hover{background-color:var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.kritzel-submenu-item.active{background-color:var(--kritzel-controls-control-selected-background-color, #007AFF);color:var(--kritzel-controls-control-selected-color, #ffffff)}.kritzel-submenu-item.active:hover{background-color:var(--kritzel-controls-control-selected-background-color, #007AFF)}.kritzel-config-container{position:relative;display:flex;justify-content:center;align-items:center;height:40px;box-sizing:border-box;-webkit-tap-highlight-color:transparent;width:0;opacity:0;overflow:hidden;pointer-events:none;margin-left:calc(-1 * var(--kritzel-controls-gap, 8px));transition:width 0.2s ease-out, opacity 0.2s ease-out, margin-left 0.2s ease-out}.kritzel-config-container.visible{width:40px;opacity:1;pointer-events:auto;margin-left:0}.kritzel-config{display:flex;justify-content:center;align-items:center;cursor:var(--kritzel-pointer-cursor, pointer);border-radius:50%}.color-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:var(--kritzel-pointer-cursor, pointer);border:2px solid transparent;box-sizing:border-box;background-color:var(--kritzel-color-palette-hover-background-color, #ebebeb)}.font-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:var(--kritzel-pointer-cursor, pointer);border:2px solid transparent;box-sizing:border-box;background-color:var(--kritzel-color-palette-hover-background-color, #ebebeb)}.no-config{height:24px;width:24px;border-radius:50%;border:1px dashed gray}kritzel-tooltip{z-index:10001}";
18
-
19
- const KritzelControls = /*@__PURE__*/ proxyCustomElement(class KritzelControls extends H {
20
- constructor(registerHost) {
21
- super();
22
- if (registerHost !== false) {
23
- this.__registerHost();
24
- }
25
- this.__attachShadow();
26
- this.isControlsReady = createEvent(this, "isControlsReady");
27
- }
28
- get host() { return this; }
29
- controls = [];
30
- activeControl = null;
31
- isUtilityPanelVisible = true;
32
- undoState = null;
33
- isControlsReady;
34
- firstConfig = null;
35
- isTooltipVisible = false;
36
- isTouchDevice = KritzelDevicesHelper.isTouchDevice();
37
- selectedSubOptions = new Map();
38
- openSubMenuControl = null;
39
- handleDocumentClick(event) {
40
- const element = event.target;
41
- if (!this.kritzelEngine || element.closest('.kritzel-tooltip')) {
42
- return;
43
- }
44
- this.isTooltipVisible = false;
45
- }
46
- handleKeyDown(event) {
47
- if (event.key === 'Escape') {
48
- event.preventDefault();
49
- this.closeTooltip();
50
- this.openSubMenuControl = null;
51
- this.kritzelEngine?.enable();
52
- }
53
- }
54
- async handleActiveToolChange(event) {
55
- this.activeControl = this.controls.find(control => control.tool === event.detail) || null;
56
- }
57
- async closeTooltip() {
58
- this.isTooltipVisible = false;
59
- }
60
- kritzelEngine = null;
61
- tooltipRef = null;
62
- get activeToolAsTextTool() {
63
- return this.activeControl?.tool;
64
- }
65
- get activeToolAsBrushTool() {
66
- return this.activeControl?.tool;
67
- }
68
- async componentWillLoad() {
69
- await this.initializeEngine();
70
- await this.initializeTools();
71
- this.isControlsReady.emit();
72
- }
73
- async initializeEngine() {
74
- await customElements.whenDefined('kritzel-engine');
75
- this.kritzelEngine = this.host.parentElement.querySelector('kritzel-engine');
76
- if (!this.kritzelEngine) {
77
- throw new Error('kritzel-engine not found in parent element.');
78
- }
79
- }
80
- async initializeTools() {
81
- for (const c of this.controls) {
82
- if (c.type === 'tool' && c.tool) {
83
- c.tool = await this.kritzelEngine.registerTool(c.name, c.tool, c.config);
84
- }
85
- if (c.type === 'tool' && c.isDefault && c.tool) {
86
- await this.kritzelEngine.changeActiveTool(c.tool);
87
- this.activeControl = c;
88
- }
89
- if (c.type === 'config') {
90
- if (this.firstConfig === null) {
91
- this.firstConfig = c;
92
- }
93
- else {
94
- console.warn('Only one config control is allowed. The first one will be used.');
95
- }
96
- }
97
- }
98
- }
99
- async handleControlClick(control) {
100
- this.activeControl = control;
101
- if (this.activeControl.type === 'tool') {
102
- await this.kritzelEngine.changeActiveTool(this.activeControl.tool);
103
- }
104
- }
105
- handleConfigClick(event) {
106
- event.stopPropagation();
107
- this.isTooltipVisible = !this.isTooltipVisible;
108
- if (this.isTooltipVisible) {
109
- this.kritzelEngine?.disable();
110
- }
111
- else {
112
- this.kritzelEngine?.enable();
113
- }
114
- setTimeout(() => {
115
- this.tooltipRef?.focusContent();
116
- }, 100);
117
- }
118
- async handleToolChange(event) {
119
- this.activeControl = { ...this.activeControl, tool: event.detail };
120
- await this.kritzelEngine.changeActiveTool(this.activeControl.tool);
121
- }
122
- handleTooltipClosed() {
123
- this.isTooltipVisible = false;
124
- this.kritzelEngine?.enable();
125
- }
126
- /**
127
- * Get the currently selected sub-option for a control.
128
- * Returns the first sub-option as default if none is selected.
129
- */
130
- getSelectedSubOption(control) {
131
- if (!control.subOptions?.length)
132
- return undefined;
133
- return this.selectedSubOptions.get(control.name) || control.subOptions[0];
134
- }
135
- /**
136
- * Toggle the submenu for a split-button control
137
- */
138
- toggleSubMenu(event, control) {
139
- event.stopPropagation();
140
- if (this.openSubMenuControl?.name === control.name) {
141
- this.openSubMenuControl = null;
142
- }
143
- else {
144
- this.openSubMenuControl = control;
145
- }
146
- }
147
- /**
148
- * Select a sub-option and update the tool property
149
- */
150
- async selectSubOption(control, option) {
151
- // Update the selected sub-options map (create new Map for reactivity)
152
- const newMap = new Map(this.selectedSubOptions);
153
- newMap.set(control.name, option);
154
- this.selectedSubOptions = newMap;
155
- // Update the tool property if the tool is instantiated
156
- if (control.tool && typeof control.tool !== 'function') {
157
- control.tool[option.toolProperty] = option.value;
158
- }
159
- // Close the submenu
160
- this.openSubMenuControl = null;
161
- // Activate this control
162
- await this.handleControlClick(control);
163
- }
164
- render() {
165
- const hasConfigUI = this.activeControl?.tool instanceof KritzelBrushTool ||
166
- this.activeControl?.tool instanceof KritzelTextTool;
167
- return (h(Host, { key: 'ed5816cbeb8fe8b91e14b23bf61df4753fb0da0f', class: {
168
- mobile: this.isTouchDevice,
169
- } }, this.isUtilityPanelVisible && (h("kritzel-utility-panel", { key: '7218fff9c89f525baf655eea46aec1698a28babd', style: {
170
- position: 'absolute',
171
- bottom: '56px',
172
- left: '12px',
173
- }, undoState: this.undoState, onUndo: () => this.kritzelEngine?.undo(), onRedo: () => this.kritzelEngine?.redo(), onDelete: () => this.kritzelEngine?.delete() })), h("div", { key: '1dc0fa7b02a953474aae9c7822c651d5006e89e5', class: "kritzel-controls" }, this.controls.map(control => {
174
- if (control.type === 'tool') {
175
- // Check if this control has sub-options (split-button)
176
- if (control.subOptions?.length) {
177
- const selectedSubOption = this.getSelectedSubOption(control);
178
- const isActive = this.activeControl?.name === control.name;
179
- const isSubMenuOpen = this.openSubMenuControl?.name === control.name;
180
- return (h("div", { class: {
181
- 'kritzel-control-split': true,
182
- 'selected': isActive,
183
- }, key: control.name, ref: el => {
184
- if (el)
185
- control._anchorRef = el;
186
- } }, h("button", { class: "kritzel-control-main", onClick: () => this.handleControlClick(control), title: selectedSubOption?.label }, h("kritzel-icon", { name: selectedSubOption?.icon || control.icon })), h("button", { class: {
187
- 'kritzel-control-dropdown': true,
188
- 'visible': isActive,
189
- }, onClick: (e) => this.toggleSubMenu(e, control), "aria-label": "Select shape type", "aria-expanded": isSubMenuOpen ? 'true' : 'false', tabIndex: isActive ? 0 : -1 }, h("kritzel-icon", { name: "chevron-down", size: 12 })), h("kritzel-tooltip", { isVisible: isSubMenuOpen, anchorElement: control._anchorRef, onTooltipClosed: () => { this.openSubMenuControl = null; } }, h("div", { class: "kritzel-submenu-content" }, control.subOptions.map(option => (h("button", { class: {
190
- 'kritzel-submenu-item': true,
191
- 'active': option.id === selectedSubOption?.id,
192
- }, key: option.id, onClick: () => this.selectSubOption(control, option) }, h("kritzel-icon", { name: option.icon, size: 20 }), h("span", null, option.label))))))));
193
- }
194
- // Regular tool control (no sub-options)
195
- return (h("button", { class: {
196
- 'kritzel-control': true,
197
- 'selected': this.activeControl?.name === control?.name,
198
- }, key: control.name, onClick: _event => this.handleControlClick?.(control) }, h("kritzel-icon", { name: control.icon })));
199
- }
200
- if (control.type === 'config' && control.name === this.firstConfig?.name && this.activeControl) {
201
- return (h("div", { class: {
202
- 'kritzel-config-container': true,
203
- 'visible': hasConfigUI,
204
- }, key: control.name }, h("kritzel-tooltip", { ref: el => (this.tooltipRef = el), isVisible: this.isTooltipVisible, anchorElement: this.host.shadowRoot?.querySelector('.kritzel-config-container'), onTooltipClosed: () => this.handleTooltipClosed() }, h("div", { style: { width: '294px', height: '100%' } }, this.activeControl.name === 'brush' && (h("kritzel-control-brush-config", { tool: this.activeToolAsBrushTool, onToolChange: event => this.handleToolChange?.(event) })), this.activeControl.name === 'text' && (h("kritzel-control-text-config", { tool: this.activeToolAsTextTool, onToolChange: event => this.handleToolChange?.(event) })))), h("div", { tabIndex: hasConfigUI ? 0 : -1, class: "kritzel-config", onClick: event => this.handleConfigClick?.(event), onKeyDown: event => {
205
- if (event.key === 'Enter') {
206
- this.handleConfigClick?.(event);
207
- }
208
- }, style: {
209
- cursor: 'pointer',
210
- } }, this.activeControl.tool instanceof KritzelBrushTool && (h("div", { class: "color-container" }, h("kritzel-color", { value: this.activeToolAsBrushTool?.color, size: this.activeToolAsBrushTool?.size, style: {
211
- borderRadius: '50%',
212
- border: 'none',
213
- } }))), this.activeControl.tool instanceof KritzelTextTool && (h("div", { class: "font-container" }, h("kritzel-font", { fontFamily: this.activeToolAsTextTool?.fontFamily, size: this.activeToolAsTextTool?.fontSize, color: this.activeToolAsTextTool?.fontColor }))))));
214
- }
215
- }))));
216
- }
217
- static get assetsDirs() { return ["../assets"]; }
218
- static get style() { return kritzelControlsCss; }
219
- }, [769, "kritzel-controls", {
220
- "controls": [16],
221
- "activeControl": [1040],
222
- "isUtilityPanelVisible": [4, "is-utility-panel-visible"],
223
- "undoState": [16],
224
- "firstConfig": [32],
225
- "isTooltipVisible": [32],
226
- "isTouchDevice": [32],
227
- "selectedSubOptions": [32],
228
- "openSubMenuControl": [32],
229
- "closeTooltip": [64]
230
- }, [[4, "click", "handleDocumentClick"], [8, "keydown", "handleKeyDown"], [4, "activeToolChange", "handleActiveToolChange"]]]);
231
- function defineCustomElement() {
232
- if (typeof customElements === "undefined") {
233
- return;
234
- }
235
- const components = ["kritzel-controls", "kritzel-color", "kritzel-color-palette", "kritzel-control-brush-config", "kritzel-control-text-config", "kritzel-dropdown", "kritzel-font", "kritzel-font-family", "kritzel-font-size", "kritzel-icon", "kritzel-stroke-size", "kritzel-tooltip", "kritzel-utility-panel"];
236
- components.forEach(tagName => { switch (tagName) {
237
- case "kritzel-controls":
238
- if (!customElements.get(tagName)) {
239
- customElements.define(tagName, KritzelControls);
240
- }
241
- break;
242
- case "kritzel-color":
243
- if (!customElements.get(tagName)) {
244
- defineCustomElement$c();
245
- }
246
- break;
247
- case "kritzel-color-palette":
248
- if (!customElements.get(tagName)) {
249
- defineCustomElement$b();
250
- }
251
- break;
252
- case "kritzel-control-brush-config":
253
- if (!customElements.get(tagName)) {
254
- defineCustomElement$a();
255
- }
256
- break;
257
- case "kritzel-control-text-config":
258
- if (!customElements.get(tagName)) {
259
- defineCustomElement$9();
260
- }
261
- break;
262
- case "kritzel-dropdown":
263
- if (!customElements.get(tagName)) {
264
- defineCustomElement$8();
265
- }
266
- break;
267
- case "kritzel-font":
268
- if (!customElements.get(tagName)) {
269
- defineCustomElement$7();
270
- }
271
- break;
272
- case "kritzel-font-family":
273
- if (!customElements.get(tagName)) {
274
- defineCustomElement$6();
275
- }
276
- break;
277
- case "kritzel-font-size":
278
- if (!customElements.get(tagName)) {
279
- defineCustomElement$5();
280
- }
281
- break;
282
- case "kritzel-icon":
283
- if (!customElements.get(tagName)) {
284
- defineCustomElement$4();
285
- }
286
- break;
287
- case "kritzel-stroke-size":
288
- if (!customElements.get(tagName)) {
289
- defineCustomElement$3();
290
- }
291
- break;
292
- case "kritzel-tooltip":
293
- if (!customElements.get(tagName)) {
294
- defineCustomElement$2();
295
- }
296
- break;
297
- case "kritzel-utility-panel":
298
- if (!customElements.get(tagName)) {
299
- defineCustomElement$1();
300
- }
301
- break;
302
- } });
303
- }
304
-
305
- export { KritzelControls as K, defineCustomElement as d };
306
- //# sourceMappingURL=p-C92UCXyc.js.map
307
-
308
- //# sourceMappingURL=p-C92UCXyc.js.map
@@ -1 +0,0 @@
1
- {"file":"p-C92UCXyc.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/ui/kritzel-controls/kritzel-controls.css?tag=kritzel-controls&encapsulation=shadow","src/components/ui/kritzel-controls/kritzel-controls.tsx"],"sourcesContent":[":host {\r\n display: flex;\r\n flex-direction: column;\r\n user-select: none;\r\n}\r\n\r\n:host(.mobile) {\r\n --kritzel-controls-control-hover-background-color: transparent;\r\n --kritzel-controls-control-active-background-color: transparent;\r\n}\r\n\r\n.kritzel-controls {\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: flex-start;\r\n gap: var(--kritzel-controls-gap, 8px);\r\n height: 100%;\r\n padding: var(--kritzel-controls-padding, 8px);\r\n background-color: var(--kritzel-controls-background-color, #ffffff);\r\n border-radius: var(--kritzel-controls-border-radius, 16px);\r\n box-shadow: var(--kritzel-controls-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));\r\n border: var(--kritzel-controls-border, 1px solid #ebebeb);\r\n z-index: 10000;\r\n position: relative;\r\n}\r\n\r\n.kritzel-control {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n color: var(--kritzel-controls-control-color, #000000);\r\n border-radius: var(--kritzel-controls-control-border-radius, 12px);\r\n padding: var(--kritzel-controls-control-padding, 8px);\r\n border: none;\r\n background: none;\r\n cursor: var(--kritzel-pointer-cursor, pointer);\r\n -webkit-tap-highlight-color: transparent;\r\n font-weight: bold;\r\n}\r\n\r\n.kritzel-control:focus,\r\n.kritzel-control:hover {\r\n background-color: var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%));\r\n}\r\n\r\n.kritzel-control:active {\r\n background-color: var(--kritzel-controls-control-active-background-color, hsl(0, 0%, 0%, 8.6%));\r\n}\r\n\r\n.kritzel-control.selected,\r\n.kritzel-control.selected:hover,\r\n.kritzel-control.selected:active {\r\n background-color: var(--kritzel-controls-control-selected-background-color, #007AFF) !important;\r\n color: var(--kritzel-controls-control-selected-color, #ffffff) !important;\r\n}\r\n\r\n.kritzel-control.selected:focus {\r\n background-color: var(--kritzel-controls-control-selected-background-color, #007bffe3) !important;\r\n\r\n}\r\n\r\n\r\n/* Split-button control styles */\r\n.kritzel-control-split {\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n border-radius: var(--kritzel-controls-control-border-radius, 12px);\r\n color: var(--kritzel-controls-control-color, #000000);\r\n}\r\n\r\n.kritzel-control-split .kritzel-control-main {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n padding: var(--kritzel-controls-control-padding, 8px);\r\n border: none;\r\n background: none;\r\n cursor: var(--kritzel-pointer-cursor, pointer);\r\n -webkit-tap-highlight-color: transparent;\r\n border-radius: var(--kritzel-controls-control-border-radius, 12px);\r\n color: inherit;\r\n}\r\n\r\n/* When selected, main button only has left-rounded corners (dropdown appears on right) */\r\n.kritzel-control-split.selected .kritzel-control-main {\r\n border-radius: var(--kritzel-controls-control-border-radius, 12px) 0 0 var(--kritzel-controls-control-border-radius, 12px);\r\n}\r\n\r\n.kritzel-control-split .kritzel-control-dropdown {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n align-self: stretch;\r\n border: none;\r\n background: none;\r\n cursor: var(--kritzel-pointer-cursor, pointer);\r\n -webkit-tap-highlight-color: transparent;\r\n border-radius: 0 var(--kritzel-controls-control-border-radius, 12px) var(--kritzel-controls-control-border-radius, 12px) 0;\r\n color: inherit;\r\n \r\n /* Hidden state - collapsed with no visibility */\r\n width: 0;\r\n padding: 0;\r\n opacity: 0;\r\n overflow: hidden;\r\n pointer-events: none;\r\n \r\n /* Smooth transition */\r\n transition: width 0.15s ease-out, padding 0.15s ease-out, opacity 0.15s ease-out;\r\n}\r\n\r\n.kritzel-control-split .kritzel-control-dropdown.visible {\r\n width: auto;\r\n padding: 0 6px;\r\n opacity: 1;\r\n pointer-events: auto;\r\n}\r\n\r\n.kritzel-control-split .kritzel-control-main:focus,\r\n.kritzel-control-split .kritzel-control-main:hover,\r\n.kritzel-control-split .kritzel-control-dropdown:focus,\r\n.kritzel-control-split .kritzel-control-dropdown:hover {\r\n background-color: var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%));\r\n}\r\n\r\n.kritzel-control-split .kritzel-control-main:active,\r\n.kritzel-control-split .kritzel-control-dropdown:active {\r\n background-color: var(--kritzel-controls-control-active-background-color, hsl(0, 0%, 0%, 8.6%));\r\n}\r\n\r\n.kritzel-control-split.selected {\r\n background-color: var(--kritzel-controls-control-selected-background-color, #007AFF) !important;\r\n color: var(--kritzel-controls-control-selected-color, #ffffff) !important;\r\n}\r\n\r\n.kritzel-control-split.selected .kritzel-control-main:hover,\r\n.kritzel-control-split.selected .kritzel-control-dropdown:hover {\r\n background-color: rgba(255, 255, 255, 0.15);\r\n}\r\n\r\n/* Submenu content styles (positioned by kritzel-tooltip) */\r\n.kritzel-submenu-content {\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--kritzel-submenu-gap, 4px);\r\n min-width: 140px;\r\n}\r\n\r\n.kritzel-submenu-item {\r\n display: flex;\r\n align-items: center;\r\n gap: 10px;\r\n padding: 10px 12px;\r\n border: none;\r\n background: none;\r\n cursor: var(--kritzel-pointer-cursor, pointer);\r\n border-radius: 8px;\r\n color: var(--kritzel-controls-control-color, #000000);\r\n font-size: 14px;\r\n text-align: left;\r\n white-space: nowrap;\r\n -webkit-tap-highlight-color: transparent;\r\n}\r\n\r\n.kritzel-submenu-item:hover {\r\n background-color: var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%));\r\n}\r\n\r\n.kritzel-submenu-item.active {\r\n background-color: var(--kritzel-controls-control-selected-background-color, #007AFF);\r\n color: var(--kritzel-controls-control-selected-color, #ffffff);\r\n}\r\n\r\n.kritzel-submenu-item.active:hover {\r\n background-color: var(--kritzel-controls-control-selected-background-color, #007AFF);\r\n}\r\n\r\n.kritzel-config-container {\r\n position: relative;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n height: 40px;\r\n box-sizing: border-box;\r\n -webkit-tap-highlight-color: transparent;\r\n \r\n /* Hidden state - collapsed */\r\n width: 0;\r\n opacity: 0;\r\n overflow: hidden;\r\n pointer-events: none;\r\n margin-left: calc(-1 * var(--kritzel-controls-gap, 8px));\r\n \r\n /* Smooth transition */\r\n transition: width 0.2s ease-out, opacity 0.2s ease-out, margin-left 0.2s ease-out;\r\n}\r\n\r\n.kritzel-config-container.visible {\r\n width: 40px;\r\n opacity: 1;\r\n pointer-events: auto;\r\n margin-left: 0;\r\n}\r\n\r\n.kritzel-config {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n cursor: var(--kritzel-pointer-cursor, pointer);\r\n border-radius: 50%;\r\n}\r\n\r\n.color-container {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 32px;\r\n height: 32px;\r\n border-radius: 50%;\r\n cursor: var(--kritzel-pointer-cursor, pointer);\r\n border: 2px solid transparent;\r\n box-sizing: border-box;\r\n background-color: var(--kritzel-color-palette-hover-background-color, #ebebeb);\r\n}\r\n\r\n.font-container {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 32px;\r\n height: 32px;\r\n border-radius: 50%;\r\n cursor: var(--kritzel-pointer-cursor, pointer);\r\n border: 2px solid transparent;\r\n box-sizing: border-box;\r\n background-color: var(--kritzel-color-palette-hover-background-color, #ebebeb);\r\n}\r\n\r\n.no-config {\r\n height: 24px;\r\n width: 24px;\r\n border-radius: 50%;\r\n border: 1px dashed gray;\r\n}\r\n\r\nkritzel-tooltip {\r\n z-index: 10001;\r\n}\r\n","import { Component, h, Prop, State, Element, Host, Listen, Event, EventEmitter, Method } from '@stencil/core';\r\nimport { KritzelBrushTool } from '../../../classes/tools/brush-tool.class';\r\nimport { KritzelTextTool } from '../../../classes/tools/text-tool.class';\r\nimport { KritzelToolbarControl, KritzelToolbarSubOption } from '../../../interfaces/toolbar-control.interface';\r\nimport { KritzelBaseTool } from '../../../classes/tools/base-tool.class';\r\nimport { KritzelDevicesHelper } from '../../../helpers/devices.helper';\r\nimport { KritzelUndoState } from '../../../interfaces/undo-state.interface';\r\n\r\ntype ToolConfig = Record<string, any>;\r\n\r\n@Component({\r\n tag: 'kritzel-controls',\r\n styleUrl: 'kritzel-controls.css',\r\n shadow: true,\r\n assetsDirs: ['../assets'],\r\n})\r\nexport class KritzelControls {\r\n @Element() host!: HTMLElement;\r\n\r\n @Prop() controls: KritzelToolbarControl[] = [];\r\n @Prop({ mutable: true }) activeControl: KritzelToolbarControl | null = null;\r\n @Prop() isUtilityPanelVisible: boolean = true;\r\n @Prop() undoState: KritzelUndoState = null;\r\n\r\n @Event() isControlsReady: EventEmitter<void>;\r\n\r\n @State() firstConfig: ToolConfig | null = null;\r\n @State() isTooltipVisible: boolean = false;\r\n @State() isTouchDevice: boolean = KritzelDevicesHelper.isTouchDevice();\r\n @State() selectedSubOptions: Map<string, KritzelToolbarSubOption> = new Map();\r\n @State() openSubMenuControl: KritzelToolbarControl | null = null;\r\n\r\n @Listen('click', { target: 'document' })\r\n handleDocumentClick(event: MouseEvent) {\r\n const element = event.target as HTMLElement;\r\n\r\n if (!this.kritzelEngine || element.closest('.kritzel-tooltip')) {\r\n return;\r\n }\r\n\r\n this.isTooltipVisible = false;\r\n }\r\n\r\n @Listen('keydown', { target: 'window' })\r\n handleKeyDown(event) {\r\n if (event.key === 'Escape') {\r\n event.preventDefault();\r\n this.closeTooltip();\r\n this.openSubMenuControl = null;\r\n this.kritzelEngine?.enable();\r\n }\r\n }\r\n\r\n @Listen('activeToolChange', { target: 'document' })\r\n async handleActiveToolChange(event: CustomEvent) {\r\n this.activeControl = this.controls.find(control => control.tool === event.detail) || null;\r\n }\r\n\r\n @Method()\r\n async closeTooltip() {\r\n this.isTooltipVisible = false;\r\n }\r\n\r\n kritzelEngine: HTMLKritzelEngineElement | null = null;\r\n tooltipRef: HTMLKritzelTooltipElement | null = null;\r\n\r\n get activeToolAsTextTool() {\r\n return this.activeControl?.tool as KritzelTextTool;\r\n }\r\n\r\n get activeToolAsBrushTool() {\r\n return this.activeControl?.tool as KritzelBrushTool;\r\n }\r\n\r\n async componentWillLoad() {\r\n await this.initializeEngine();\r\n await this.initializeTools();\r\n this.isControlsReady.emit();\r\n }\r\n\r\n private async initializeEngine() {\r\n await customElements.whenDefined('kritzel-engine');\r\n this.kritzelEngine = this.host.parentElement.querySelector('kritzel-engine');\r\n\r\n if (!this.kritzelEngine) {\r\n throw new Error('kritzel-engine not found in parent element.');\r\n }\r\n }\r\n\r\n private async initializeTools() {\r\n for (const c of this.controls) {\r\n if (c.type === 'tool' && c.tool) {\r\n c.tool = await this.kritzelEngine.registerTool(c.name, c.tool, c.config);\r\n }\r\n\r\n if (c.type === 'tool' && c.isDefault && c.tool) {\r\n await this.kritzelEngine.changeActiveTool(c.tool as KritzelBaseTool);\r\n this.activeControl = c;\r\n }\r\n\r\n if (c.type === 'config') {\r\n if (this.firstConfig === null) {\r\n this.firstConfig = c;\r\n } else {\r\n console.warn('Only one config control is allowed. The first one will be used.');\r\n }\r\n }\r\n }\r\n }\r\n\r\n private async handleControlClick(control: KritzelToolbarControl) {\r\n this.activeControl = control;\r\n\r\n if (this.activeControl.type === 'tool') {\r\n await this.kritzelEngine.changeActiveTool(this.activeControl.tool as KritzelBaseTool);\r\n }\r\n }\r\n\r\n private handleConfigClick(event: MouseEvent) {\r\n event.stopPropagation();\r\n this.isTooltipVisible = !this.isTooltipVisible;\r\n if(this.isTooltipVisible){\r\n this.kritzelEngine?.disable();\r\n } else {\r\n this.kritzelEngine?.enable();\r\n }\r\n\r\n setTimeout(() => {\r\n this.tooltipRef?.focusContent();\r\n }, 100);\r\n }\r\n\r\n private async handleToolChange(event: CustomEvent) {\r\n this.activeControl = { ...this.activeControl, tool: event.detail };\r\n await this.kritzelEngine.changeActiveTool((this.activeControl as any).tool);\r\n }\r\n\r\n private handleTooltipClosed() {\r\n this.isTooltipVisible = false;\r\n this.kritzelEngine?.enable();\r\n }\r\n\r\n /**\r\n * Get the currently selected sub-option for a control.\r\n * Returns the first sub-option as default if none is selected.\r\n */\r\n private getSelectedSubOption(control: KritzelToolbarControl): KritzelToolbarSubOption | undefined {\r\n if (!control.subOptions?.length) return undefined;\r\n return this.selectedSubOptions.get(control.name) || control.subOptions[0];\r\n }\r\n\r\n /**\r\n * Toggle the submenu for a split-button control\r\n */\r\n private toggleSubMenu(event: MouseEvent, control: KritzelToolbarControl) {\r\n event.stopPropagation();\r\n if (this.openSubMenuControl?.name === control.name) {\r\n this.openSubMenuControl = null;\r\n } else {\r\n this.openSubMenuControl = control;\r\n }\r\n }\r\n\r\n /**\r\n * Select a sub-option and update the tool property\r\n */\r\n private async selectSubOption(control: KritzelToolbarControl, option: KritzelToolbarSubOption) {\r\n // Update the selected sub-options map (create new Map for reactivity)\r\n const newMap = new Map(this.selectedSubOptions);\r\n newMap.set(control.name, option);\r\n this.selectedSubOptions = newMap;\r\n\r\n // Update the tool property if the tool is instantiated\r\n if (control.tool && typeof control.tool !== 'function') {\r\n (control.tool as any)[option.toolProperty] = option.value;\r\n }\r\n\r\n // Close the submenu\r\n this.openSubMenuControl = null;\r\n\r\n // Activate this control\r\n await this.handleControlClick(control);\r\n }\r\n\r\n render() {\r\n const hasConfigUI = this.activeControl?.tool instanceof KritzelBrushTool || \r\n this.activeControl?.tool instanceof KritzelTextTool;\r\n\r\n return (\r\n <Host\r\n class={{\r\n mobile: this.isTouchDevice,\r\n }}\r\n >\r\n {this.isUtilityPanelVisible && (\r\n <kritzel-utility-panel\r\n style={{\r\n position: 'absolute',\r\n bottom: '56px',\r\n left: '12px',\r\n }}\r\n undoState={this.undoState}\r\n onUndo={() => this.kritzelEngine?.undo()}\r\n onRedo={() => this.kritzelEngine?.redo()}\r\n onDelete={() => this.kritzelEngine?.delete()}\r\n ></kritzel-utility-panel>\r\n )}\r\n\r\n <div class=\"kritzel-controls\">\r\n {this.controls.map(control => {\r\n if (control.type === 'tool') {\r\n // Check if this control has sub-options (split-button)\r\n if (control.subOptions?.length) {\r\n const selectedSubOption = this.getSelectedSubOption(control);\r\n const isActive = this.activeControl?.name === control.name;\r\n const isSubMenuOpen = this.openSubMenuControl?.name === control.name;\r\n\r\n return (\r\n <div\r\n class={{\r\n 'kritzel-control-split': true,\r\n 'selected': isActive,\r\n }}\r\n key={control.name}\r\n ref={el => { if (el) (control as any)._anchorRef = el; }}\r\n >\r\n <button\r\n class=\"kritzel-control-main\"\r\n onClick={() => this.handleControlClick(control)}\r\n title={selectedSubOption?.label}\r\n >\r\n <kritzel-icon name={selectedSubOption?.icon || control.icon}></kritzel-icon>\r\n </button>\r\n <button\r\n class={{\r\n 'kritzel-control-dropdown': true,\r\n 'visible': isActive,\r\n }}\r\n onClick={(e) => this.toggleSubMenu(e, control)}\r\n aria-label=\"Select shape type\"\r\n aria-expanded={isSubMenuOpen ? 'true' : 'false'}\r\n tabIndex={isActive ? 0 : -1}\r\n >\r\n <kritzel-icon name=\"chevron-down\" size={12}></kritzel-icon>\r\n </button>\r\n\r\n <kritzel-tooltip\r\n isVisible={isSubMenuOpen}\r\n anchorElement={(control as any)._anchorRef}\r\n onTooltipClosed={() => { this.openSubMenuControl = null; }}\r\n >\r\n <div class=\"kritzel-submenu-content\">\r\n {control.subOptions.map(option => (\r\n <button\r\n class={{\r\n 'kritzel-submenu-item': true,\r\n 'active': option.id === selectedSubOption?.id,\r\n }}\r\n key={option.id}\r\n onClick={() => this.selectSubOption(control, option)}\r\n >\r\n <kritzel-icon name={option.icon} size={20}></kritzel-icon>\r\n <span>{option.label}</span>\r\n </button>\r\n ))}\r\n </div>\r\n </kritzel-tooltip>\r\n </div>\r\n );\r\n }\r\n\r\n // Regular tool control (no sub-options)\r\n return (\r\n <button\r\n class={{\r\n 'kritzel-control': true,\r\n 'selected': this.activeControl?.name === control?.name,\r\n }}\r\n key={control.name}\r\n onClick={_event => this.handleControlClick?.(control)}\r\n >\r\n <kritzel-icon name={control.icon}></kritzel-icon>\r\n </button>\r\n );\r\n }\r\n\r\n if (control.type === 'config' && control.name === this.firstConfig?.name && this.activeControl) {\r\n return (\r\n <div \r\n class={{\r\n 'kritzel-config-container': true,\r\n 'visible': hasConfigUI,\r\n }}\r\n key={control.name}\r\n >\r\n <kritzel-tooltip\r\n ref={el => (this.tooltipRef = el)}\r\n isVisible={this.isTooltipVisible}\r\n anchorElement={this.host.shadowRoot?.querySelector('.kritzel-config-container') as HTMLElement}\r\n onTooltipClosed={() => this.handleTooltipClosed()}\r\n >\r\n <div style={{ width: '294px', height: '100%' }}>\r\n {this.activeControl.name === 'brush' && (\r\n <kritzel-control-brush-config tool={this.activeToolAsBrushTool} onToolChange={event => this.handleToolChange?.(event)}></kritzel-control-brush-config>\r\n )}\r\n\r\n {this.activeControl.name === 'text' && (\r\n <kritzel-control-text-config tool={this.activeToolAsTextTool} onToolChange={event => this.handleToolChange?.(event)}></kritzel-control-text-config>\r\n )}\r\n </div>\r\n </kritzel-tooltip>\r\n\r\n <div\r\n tabIndex={hasConfigUI ? 0 : -1}\r\n class=\"kritzel-config\"\r\n onClick={event => this.handleConfigClick?.(event)}\r\n onKeyDown={event => {\r\n if (event.key === 'Enter') {\r\n this.handleConfigClick?.(event as any);\r\n }\r\n }}\r\n style={{\r\n cursor: 'pointer',\r\n }}\r\n >\r\n {this.activeControl.tool instanceof KritzelBrushTool && (\r\n <div class=\"color-container\">\r\n <kritzel-color\r\n value={this.activeToolAsBrushTool?.color}\r\n size={this.activeToolAsBrushTool?.size}\r\n style={{\r\n borderRadius: '50%',\r\n border: 'none',\r\n }}\r\n ></kritzel-color>\r\n </div>\r\n )}\r\n\r\n {this.activeControl.tool instanceof KritzelTextTool && (\r\n <div class=\"font-container\">\r\n <kritzel-font\r\n fontFamily={this.activeToolAsTextTool?.fontFamily}\r\n size={this.activeToolAsTextTool?.fontSize}\r\n color={this.activeToolAsTextTool?.fontColor}\r\n ></kritzel-font>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n }\r\n })}\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
@@ -1,119 +0,0 @@
1
- import { p as proxyCustomElement, H, h, d as Host } from './p-CwkUrTy1.js';
2
- import { K as KritzelMouseButton } from './p-D8W6LE-c.js';
3
-
4
- const kritzelCursorTrailCss = ":host{display:block;position:fixed;top:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:9000}";
5
-
6
- const KritzelCursorTrail = /*@__PURE__*/ proxyCustomElement(class KritzelCursorTrail extends H {
7
- constructor(registerHost) {
8
- super();
9
- if (registerHost !== false) {
10
- this.__registerHost();
11
- }
12
- this.__attachShadow();
13
- }
14
- core;
15
- cursorTrailPoints = [];
16
- isLeftButtonDown = false;
17
- handleMouseDown(ev) {
18
- if (ev.pointerType === 'mouse') {
19
- if (ev.button === KritzelMouseButton.Left) {
20
- this.isLeftButtonDown = true;
21
- this.cursorTrailPoints = [];
22
- }
23
- }
24
- if (ev.pointerType === 'touch') {
25
- if (this.core.store.state.pointers.size === 1) {
26
- this.isLeftButtonDown = true;
27
- this.cursorTrailPoints = [];
28
- }
29
- }
30
- }
31
- handlePointerMove(ev) {
32
- if (!this.isLeftButtonDown) {
33
- return;
34
- }
35
- const newPoint = { x: ev.clientX, y: ev.clientY, timestamp: Date.now() };
36
- const updatedTrail = [newPoint, ...this.cursorTrailPoints];
37
- if (updatedTrail.length > this.MAX_TRAIL_POINTS) {
38
- this.cursorTrailPoints = updatedTrail.slice(0, this.MAX_TRAIL_POINTS);
39
- }
40
- else {
41
- this.cursorTrailPoints = updatedTrail;
42
- }
43
- }
44
- handlePointerUp(ev) {
45
- if (ev.pointerType === 'mouse') {
46
- if (ev.button === KritzelMouseButton.Left) {
47
- this.isLeftButtonDown = false;
48
- this.cursorTrailPoints = [];
49
- }
50
- }
51
- if (ev.pointerType === 'touch') {
52
- if (this.core.store.state.pointers.size === 0) {
53
- this.isLeftButtonDown = false;
54
- this.cursorTrailPoints = [];
55
- }
56
- }
57
- }
58
- trailCleanupIntervalId;
59
- TRAIL_DURATION_MS = 100;
60
- MAX_TRAIL_POINTS = 50;
61
- componentDidLoad() {
62
- this.trailCleanupIntervalId = window.setInterval(() => {
63
- const now = Date.now();
64
- const newTrailPoints = this.cursorTrailPoints.filter(p => now - p.timestamp < this.TRAIL_DURATION_MS);
65
- if (newTrailPoints.length !== this.cursorTrailPoints.length) {
66
- this.cursorTrailPoints = newTrailPoints;
67
- }
68
- }, 50);
69
- }
70
- disconnectedCallback() {
71
- if (this.trailCleanupIntervalId) {
72
- window.clearInterval(this.trailCleanupIntervalId);
73
- }
74
- }
75
- render() {
76
- return (h(Host, { key: '556238ffd7eeda2d400039333a37853ebfcca1b6' }, this.cursorTrailPoints.length > 1 && (h("svg", { key: 'a3f451cc9f142f018d0025eb7a68c1bdff5fc0d9', class: "cursor-trail-svg", xmlns: "http://www.w3.org/2000/svg", style: {
77
- position: 'absolute',
78
- left: '0',
79
- top: '0',
80
- width: '100%',
81
- height: '100%',
82
- pointerEvents: 'none',
83
- opacity: 'var(--kritzel-cursor-trail-opacity, 0.6)',
84
- zIndex: '9000',
85
- } }, this.cursorTrailPoints.slice(1).map((point, index) => {
86
- const prevPoint = this.cursorTrailPoints[index];
87
- const now = Date.now();
88
- const age = now - point.timestamp;
89
- const progress = Math.max(0, Math.min(1, age / this.TRAIL_DURATION_MS));
90
- if (progress >= 1)
91
- return null;
92
- const baseStrokeWidth = Math.max(2, 15 * (1 - progress));
93
- return (h("line", { key: `trail-segment-${point.timestamp}`, x1: prevPoint.x.toString(), y1: prevPoint.y.toString(), x2: point.x.toString(), y2: point.y.toString(), stroke: "var(--kritzel-cursor-trail-color, rgb(228, 228, 228))", "stroke-width": baseStrokeWidth.toString(), "stroke-linecap": "round" }));
94
- })))));
95
- }
96
- static get style() { return kritzelCursorTrailCss; }
97
- }, [769, "kritzel-cursor-trail", {
98
- "core": [16],
99
- "cursorTrailPoints": [32],
100
- "isLeftButtonDown": [32]
101
- }, [[9, "pointerdown", "handleMouseDown"], [9, "pointermove", "handlePointerMove"], [9, "pointerup", "handlePointerUp"]]]);
102
- function defineCustomElement() {
103
- if (typeof customElements === "undefined") {
104
- return;
105
- }
106
- const components = ["kritzel-cursor-trail"];
107
- components.forEach(tagName => { switch (tagName) {
108
- case "kritzel-cursor-trail":
109
- if (!customElements.get(tagName)) {
110
- customElements.define(tagName, KritzelCursorTrail);
111
- }
112
- break;
113
- } });
114
- }
115
-
116
- export { KritzelCursorTrail as K, defineCustomElement as d };
117
- //# sourceMappingURL=p-CAxHKvww.js.map
118
-
119
- //# sourceMappingURL=p-CAxHKvww.js.map
@@ -1 +0,0 @@
1
- {"file":"p-CAxHKvww.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/core/kritzel-cursor-trail/kritzel-cursor-trail.css?tag=kritzel-cursor-trail&encapsulation=shadow","src/components/core/kritzel-cursor-trail/kritzel-cursor-trail.tsx"],"sourcesContent":[":host {\r\n display: block;\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100vw;\r\n height: 100vh;\r\n pointer-events: none;\r\n z-index: 9000;\r\n}\r\n","import { Component, Host, Listen, Prop, State, h } from '@stencil/core';\r\nimport { KritzelMouseButton } from '../../../enums/event-button.enum';\r\nimport { KritzelCore } from '../../../classes/core/core.class';\r\n\r\n@Component({\r\n tag: 'kritzel-cursor-trail',\r\n styleUrl: 'kritzel-cursor-trail.css',\r\n shadow: true,\r\n})\r\nexport class KritzelCursorTrail {\r\n @Prop() core: KritzelCore;\r\n\r\n @State() cursorTrailPoints: Array<{ x: number; y: number; timestamp: number }> = [];\r\n @State() isLeftButtonDown: boolean = false;\r\n\r\n @Listen('pointerdown', { target: 'window', passive: true })\r\n handleMouseDown(ev: PointerEvent) {\r\n if (ev.pointerType === 'mouse') {\r\n if (ev.button === KritzelMouseButton.Left) {\r\n this.isLeftButtonDown = true;\r\n this.cursorTrailPoints = [];\r\n }\r\n }\r\n\r\n if (ev.pointerType === 'touch') {\r\n if (this.core.store.state.pointers.size === 1) {\r\n this.isLeftButtonDown = true;\r\n this.cursorTrailPoints = [];\r\n }\r\n }\r\n }\r\n\r\n @Listen('pointermove', { target: 'window', passive: true })\r\n handlePointerMove(ev: PointerEvent) {\r\n if (!this.isLeftButtonDown) {\r\n return;\r\n }\r\n const newPoint = { x: ev.clientX, y: ev.clientY, timestamp: Date.now() };\r\n const updatedTrail = [newPoint, ...this.cursorTrailPoints];\r\n if (updatedTrail.length > this.MAX_TRAIL_POINTS) {\r\n this.cursorTrailPoints = updatedTrail.slice(0, this.MAX_TRAIL_POINTS);\r\n } else {\r\n this.cursorTrailPoints = updatedTrail;\r\n }\r\n }\r\n\r\n @Listen('pointerup', { target: 'window', passive: true })\r\n handlePointerUp(ev: PointerEvent) {\r\n if (ev.pointerType === 'mouse') {\r\n if (ev.button === KritzelMouseButton.Left) {\r\n this.isLeftButtonDown = false;\r\n this.cursorTrailPoints = [];\r\n }\r\n }\r\n\r\n if (ev.pointerType === 'touch') {\r\n if (this.core.store.state.pointers.size === 0) {\r\n this.isLeftButtonDown = false;\r\n this.cursorTrailPoints = [];\r\n }\r\n }\r\n }\r\n\r\n private trailCleanupIntervalId: number;\r\n\r\n private readonly TRAIL_DURATION_MS = 100;\r\n\r\n private readonly MAX_TRAIL_POINTS = 50;\r\n\r\n componentDidLoad() {\r\n this.trailCleanupIntervalId = window.setInterval(() => {\r\n const now = Date.now();\r\n const newTrailPoints = this.cursorTrailPoints.filter(p => now - p.timestamp < this.TRAIL_DURATION_MS);\r\n if (newTrailPoints.length !== this.cursorTrailPoints.length) {\r\n this.cursorTrailPoints = newTrailPoints;\r\n }\r\n }, 50);\r\n }\r\n\r\n disconnectedCallback() {\r\n if (this.trailCleanupIntervalId) {\r\n window.clearInterval(this.trailCleanupIntervalId);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <Host>\r\n {this.cursorTrailPoints.length > 1 && (\r\n <svg\r\n class=\"cursor-trail-svg\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n style={{\r\n position: 'absolute',\r\n left: '0',\r\n top: '0',\r\n width: '100%',\r\n height: '100%',\r\n pointerEvents: 'none',\r\n opacity: 'var(--kritzel-cursor-trail-opacity, 0.6)',\r\n zIndex: '9000',\r\n }}\r\n >\r\n {this.cursorTrailPoints.slice(1).map((point, index) => {\r\n const prevPoint = this.cursorTrailPoints[index];\r\n const now = Date.now();\r\n const age = now - point.timestamp;\r\n const progress = Math.max(0, Math.min(1, age / this.TRAIL_DURATION_MS));\r\n\r\n if (progress >= 1) return null;\r\n\r\n const baseStrokeWidth = Math.max(2, 15 * (1 - progress));\r\n\r\n return (\r\n <line\r\n key={`trail-segment-${point.timestamp}`}\r\n x1={prevPoint.x.toString()}\r\n y1={prevPoint.y.toString()}\r\n x2={point.x.toString()}\r\n y2={point.y.toString()}\r\n stroke=\"var(--kritzel-cursor-trail-color, rgb(228, 228, 228))\"\r\n stroke-width={baseStrokeWidth.toString()}\r\n stroke-linecap=\"round\"\r\n />\r\n );\r\n })}\r\n </svg>\r\n )}\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}