kritzel-stencil 0.0.113 → 0.0.114

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 (124) hide show
  1. package/dist/cjs/app-globals-V2Kpy_OQ.js +8 -0
  2. package/dist/cjs/app-globals-V2Kpy_OQ.js.map +1 -0
  3. package/dist/cjs/index-C2M4eyxF.js +652 -0
  4. package/dist/cjs/index-C2M4eyxF.js.map +1 -0
  5. package/dist/cjs/{index-D62tBCuq.js → index-CXT94beA.js} +111 -109
  6. package/dist/cjs/index-CXT94beA.js.map +1 -0
  7. package/dist/cjs/index.cjs.js +5 -0
  8. package/dist/cjs/index.cjs.js.map +1 -1
  9. package/dist/cjs/kritzel-brush-style_18.cjs.entry.js +120 -725
  10. package/dist/cjs/kritzel-brush-style_18.cjs.entry.js.map +1 -1
  11. package/dist/cjs/loader.cjs.js +4 -3
  12. package/dist/cjs/loader.cjs.js.map +1 -1
  13. package/dist/cjs/stencil.cjs.js +5 -4
  14. package/dist/cjs/stencil.cjs.js.map +1 -1
  15. package/dist/collection/classes/handlers/key.handler.js +4 -4
  16. package/dist/collection/classes/handlers/key.handler.js.map +1 -1
  17. package/dist/collection/classes/store.class.js +12 -8
  18. package/dist/collection/classes/store.class.js.map +1 -1
  19. package/dist/collection/collection-manifest.json +1 -1
  20. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +214 -1
  21. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +1 -1
  22. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +96 -20
  23. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +1 -1
  24. package/dist/collection/index.js +10 -1
  25. package/dist/collection/index.js.map +1 -1
  26. package/dist/components/index.js +2 -1
  27. package/dist/components/index.js.map +1 -1
  28. package/dist/components/kritzel-brush-style.js +1 -1
  29. package/dist/components/kritzel-color-palette.js +1 -1
  30. package/dist/components/kritzel-color.js +1 -1
  31. package/dist/components/kritzel-context-menu.js +1 -1
  32. package/dist/components/kritzel-control-brush-config.js +1 -1
  33. package/dist/components/kritzel-control-text-config.js +1 -1
  34. package/dist/components/kritzel-controls.js +1 -1
  35. package/dist/components/kritzel-cursor-trail.js +1 -1
  36. package/dist/components/kritzel-dropdown.js +1 -1
  37. package/dist/components/kritzel-editor.js +49 -21
  38. package/dist/components/kritzel-editor.js.map +1 -1
  39. package/dist/components/kritzel-engine.js +1 -1
  40. package/dist/components/kritzel-font-family.js +1 -1
  41. package/dist/components/kritzel-font-size.js +1 -1
  42. package/dist/components/kritzel-font.js +1 -1
  43. package/dist/components/kritzel-icon.js +1 -1
  44. package/dist/components/kritzel-stroke-size.js +1 -1
  45. package/dist/components/kritzel-tooltip.js +1 -1
  46. package/dist/components/kritzel-utility-panel.js +1 -1
  47. package/dist/components/{p-CmckGlXt.js → p-B57pFHwJ.js} +3 -3
  48. package/dist/components/{p-CmckGlXt.js.map → p-B57pFHwJ.js.map} +1 -1
  49. package/dist/components/{p-Ddfewfv9.js → p-B94Na1ee.js} +4 -4
  50. package/dist/components/{p-Ddfewfv9.js.map → p-B94Na1ee.js.map} +1 -1
  51. package/dist/components/{p-Ck2d5Wd1.js → p-BH1Tkwyh.js} +5 -5
  52. package/dist/components/{p-Ck2d5Wd1.js.map → p-BH1Tkwyh.js.map} +1 -1
  53. package/dist/components/{p-DqZOaMbq.js → p-BIlVkMTU.js} +378 -378
  54. package/dist/components/p-BIlVkMTU.js.map +1 -0
  55. package/dist/components/{p-BXJ8s30N.js → p-BtjtAfGW.js} +10 -10
  56. package/dist/components/{p-BXJ8s30N.js.map → p-BtjtAfGW.js.map} +1 -1
  57. package/dist/components/{p-DInF8Iby.js → p-C9FTWNZY.js} +3 -3
  58. package/dist/components/{p-DInF8Iby.js.map → p-C9FTWNZY.js.map} +1 -1
  59. package/dist/components/{p-B7P9QBiE.js → p-C9ZagG9K.js} +4 -4
  60. package/dist/components/{p-B7P9QBiE.js.map → p-C9ZagG9K.js.map} +1 -1
  61. package/dist/components/{p-BmAloSfd.js → p-CRiUM-tD.js} +4 -4
  62. package/dist/components/{p-BmAloSfd.js.map → p-CRiUM-tD.js.map} +1 -1
  63. package/dist/components/{p-BvPTbq7F.js → p-CSSrNLad.js} +3 -3
  64. package/dist/components/{p-BvPTbq7F.js.map → p-CSSrNLad.js.map} +1 -1
  65. package/dist/components/{p-DFhbw-Fr.js → p-CaQ7Iei7.js} +3 -3
  66. package/dist/components/{p-DFhbw-Fr.js.map → p-CaQ7Iei7.js.map} +1 -1
  67. package/dist/components/{p-CPjl7Inl.js → p-D04aTZsR.js} +4 -4
  68. package/dist/components/{p-CPjl7Inl.js.map → p-D04aTZsR.js.map} +1 -1
  69. package/dist/components/{p-maiDeBe9.js → p-DLV-5gE_.js} +9 -9
  70. package/dist/components/{p-maiDeBe9.js.map → p-DLV-5gE_.js.map} +1 -1
  71. package/dist/components/{p-DC8SDK2U.js → p-DoQOtXjT.js} +111 -107
  72. package/dist/components/p-DoQOtXjT.js.map +1 -0
  73. package/dist/components/{p-DieKGjdj.js → p-aZgXbW1r.js} +47 -35
  74. package/dist/components/{p-DieKGjdj.js.map → p-aZgXbW1r.js.map} +1 -1
  75. package/dist/components/{p-DfMdBA8L.js → p-fmNiA3Yr.js} +4 -4
  76. package/dist/components/{p-DfMdBA8L.js.map → p-fmNiA3Yr.js.map} +1 -1
  77. package/dist/components/{p-c6tIpE_t.js → p-h3bqYufZ.js} +3 -3
  78. package/dist/components/{p-c6tIpE_t.js.map → p-h3bqYufZ.js.map} +1 -1
  79. package/dist/components/{p-CZkSABuJ.js → p-ksTCzgsY.js} +3 -3
  80. package/dist/components/{p-CZkSABuJ.js.map → p-ksTCzgsY.js.map} +1 -1
  81. package/dist/components/{p-CFwf2KYj.js → p-mz1ayKXG.js} +17 -17
  82. package/dist/components/{p-CFwf2KYj.js.map → p-mz1ayKXG.js.map} +1 -1
  83. package/dist/components/{p-DHT5gK0E.js → p-yBnfPxIa.js} +4 -4
  84. package/dist/components/{p-DHT5gK0E.js.map → p-yBnfPxIa.js.map} +1 -1
  85. package/dist/esm/app-globals-DQuL1Twl.js +6 -0
  86. package/dist/esm/app-globals-DQuL1Twl.js.map +1 -0
  87. package/dist/esm/{index-BOJOOWaP.js → index-CGHvfMWF.js} +112 -109
  88. package/dist/esm/index-CGHvfMWF.js.map +1 -0
  89. package/dist/esm/index-rckCSz7Y.js +641 -0
  90. package/dist/esm/index-rckCSz7Y.js.map +1 -0
  91. package/dist/esm/index.js +1 -1
  92. package/dist/esm/kritzel-brush-style_18.entry.js +62 -667
  93. package/dist/esm/kritzel-brush-style_18.entry.js.map +1 -1
  94. package/dist/esm/loader.js +4 -3
  95. package/dist/esm/loader.js.map +1 -1
  96. package/dist/esm/stencil.js +5 -4
  97. package/dist/esm/stencil.js.map +1 -1
  98. package/dist/stencil/index.esm.js +1 -1
  99. package/dist/stencil/loader.esm.js.map +1 -1
  100. package/dist/stencil/p-9394d74e.entry.js +2 -0
  101. package/dist/stencil/p-9394d74e.entry.js.map +1 -0
  102. package/dist/stencil/p-CGHvfMWF.js +3 -0
  103. package/dist/stencil/p-CGHvfMWF.js.map +1 -0
  104. package/dist/stencil/p-DQuL1Twl.js +2 -0
  105. package/dist/stencil/p-DQuL1Twl.js.map +1 -0
  106. package/dist/stencil/p-rckCSz7Y.js +2 -0
  107. package/dist/stencil/p-rckCSz7Y.js.map +1 -0
  108. package/dist/stencil/stencil.esm.js +1 -1
  109. package/dist/stencil/stencil.esm.js.map +1 -1
  110. package/dist/types/classes/store.class.d.ts +4 -4
  111. package/dist/types/components/core/kritzel-editor/kritzel-editor.d.ts +10 -2
  112. package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +4 -2
  113. package/dist/types/components.d.ts +13 -4
  114. package/dist/types/index.d.ts +1 -0
  115. package/dist/types/stencil-public-runtime.d.ts +12 -5
  116. package/package.json +1 -1
  117. package/dist/cjs/index-D62tBCuq.js.map +0 -1
  118. package/dist/components/p-DC8SDK2U.js.map +0 -1
  119. package/dist/components/p-DqZOaMbq.js.map +0 -1
  120. package/dist/esm/index-BOJOOWaP.js.map +0 -1
  121. package/dist/stencil/p-BOJOOWaP.js +0 -3
  122. package/dist/stencil/p-BOJOOWaP.js.map +0 -1
  123. package/dist/stencil/p-dc26eb80.entry.js +0 -2
  124. package/dist/stencil/p-dc26eb80.entry.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"file":"p-BIlVkMTU.js","mappings":"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,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC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AC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,KAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CA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","names":["getStroke"],"sources":["src/classes/registries/tool.registry.ts","src/classes/tools/base-tool.class.ts","src/classes/commands/base.command.ts","src/classes/commands/add-object.command.ts","src/helpers/event.helper.ts","src/helpers/keyboard.helper.ts","src/classes/tools/text-tool.class.ts","src/helpers/object.helper.ts","src/classes/objects/base-object.class.ts","src/classes/objects/text.class.ts","../../node_modules/perfect-freehand/dist/cjs/index.js","src/helpers/math.helper.ts","src/classes/objects/path.class.ts","src/classes/tools/brush-tool.class.ts"],"sourcesContent":["import { KritzelStore } from \"../store.class\";\r\nimport { KritzelBaseTool } from \"../tools/base-tool.class\";\r\n\r\nexport class KritzelToolRegistry {\r\nprivate static registry: Record<string, KritzelBaseTool> = {};\r\n\r\n static registerTool(toolName: string, constructor: new (store: KritzelStore) => KritzelBaseTool, store: KritzelStore): KritzelBaseTool {\r\n const toolInstance = new constructor(store);\r\n toolInstance.name = toolName;\r\n this.registry[toolName] = toolInstance;\r\n return toolInstance;\r\n }\r\n\r\n static getTool(toolName: string): KritzelBaseTool | null {\r\n const toolInstance = this.registry[toolName];\r\n\r\n if (!toolInstance) {\r\n console.warn(`Unknown tool: ${toolName}`);\r\n return null;\r\n }\r\n\r\n return toolInstance;\r\n }\r\n}\r\n","import { KritzelTool } from '../../components';\r\nimport { KritzelSerializable } from '../../interfaces/serializable.interface';\r\nimport { KritzelStore } from '../store.class';\r\n\r\nexport class KritzelBaseTool implements KritzelTool, KritzelSerializable {\r\n __class__: string = this.constructor.name;\r\n\r\n name: string = 'base-tool';\r\n\r\n protected readonly _store: KritzelStore;\r\n\r\n constructor(store: KritzelStore) {\r\n this._store = store;\r\n void this._store; // Avoid unused variable warning\r\n }\r\n\r\n onActivate(): void {\r\n // default implementation\r\n }\r\n\r\n onDeactivate(): void {\r\n // default implementation\r\n }\r\n\r\n handlePointerDown(_event: PointerEvent): void {\r\n // default implementation\r\n }\r\n\r\n handlePointerMove(_event: PointerEvent): void {\r\n // default implementation\r\n }\r\n\r\n handlePointerUp(_event: PointerEvent): void {\r\n // default implementation\r\n }\r\n\r\n handleWheel(_event: WheelEvent): void {\r\n // default implementation\r\n }\r\n\r\n revive(object: any): KritzelSerializable {\r\n Object.assign(this, object);\r\n return this;\r\n }\r\n}\r\n","import { KritzelCommand } from '../../interfaces/command.interface';\r\nimport { KritzelStore } from '../store.class';\r\n\r\nexport class KritzelBaseCommand implements KritzelCommand {\r\n protected _store: KritzelStore;\r\n\r\n initiator: string;\r\n isUndoable;\r\n\r\n constructor(store: KritzelStore, initiator: any) {\r\n this._store = store;\r\n this.initiator = initiator?.constructor?.name ?? 'Unknown';\r\n this.isUndoable = true;\r\n }\r\n\r\n execute(): void {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n undo(): void {\r\n throw new Error('Method not implemented.');\r\n }\r\n}\r\n","import { KritzelStore } from '../store.class';\r\nimport { KritzelBaseObject } from '../objects/base-object.class';\r\nimport { KritzelBaseCommand } from './base.command';\r\n\r\nexport class AddObjectCommand extends KritzelBaseCommand {\r\n private object: KritzelBaseObject<any>;\r\n\r\n constructor(store: KritzelStore, initiator: any, object: KritzelBaseObject<any>) {\r\n super(store, initiator);\r\n this.object = object;\r\n }\r\n\r\n execute(): void {\r\n this._store.state.objectsOctree.insert(this.object);\r\n }\r\n\r\n undo(): void {\r\n this._store.state.objectsOctree.remove(object => object.id === this.object.id);\r\n }\r\n}\r\n","import { KritzelMouseButton } from '../enums/event-button.enum';\r\n\r\nexport class KritzelEventHelper {\r\n public static isRightClick(ev: MouseEvent): boolean {\r\n return ev.button === KritzelMouseButton.Right;\r\n }\r\n\r\n public static isLeftClick(ev: MouseEvent): boolean {\r\n return ev.button === KritzelMouseButton.Left;\r\n }\r\n\r\n public static isMainMouseWheel(event: WheelEvent): boolean {\r\n return Math.abs(event.deltaY) > 0 && Math.abs(event.deltaX) === 0 && Number.isInteger(event.deltaY);\r\n }\r\n\r\n public static isPointerEventOnContextMenu(event: PointerEvent): boolean {\r\n const path = event.composedPath() as HTMLElement[];\r\n const contextMenu = path.find(element => element.classList && element.classList.contains('context-menu'));\r\n return !!contextMenu;\r\n }\r\n\r\n public static onLongTouchPress(\r\n event: PointerEvent,\r\n onSuccess: (event: PointerEvent) => void,\r\n onCancel?: () => void\r\n ): () => void {\r\n if (event.pointerType !== 'touch') {\r\n onCancel?.();\r\n return () => {};\r\n }\r\n\r\n const longPressTimeout = 400;\r\n const moveThreshold = 10;\r\n\r\n const startX = event.clientX;\r\n const startY = event.clientY;\r\n const target = event.target as HTMLElement;\r\n\r\n const timer = setTimeout(() => {\r\n removeListeners();\r\n onSuccess(event);\r\n }, longPressTimeout);\r\n\r\n const cancel = () => {\r\n clearTimeout(timer);\r\n removeListeners();\r\n onCancel?.();\r\n };\r\n\r\n const onPointerMove = (e: PointerEvent) => {\r\n if (Math.abs(e.clientX - startX) > moveThreshold || Math.abs(e.clientY - startY) > moveThreshold) {\r\n cancel();\r\n }\r\n };\r\n\r\n const onPointerUp = () => {\r\n cancel();\r\n };\r\n\r\n const onPointerCancel = () => {\r\n cancel();\r\n };\r\n\r\n const removeListeners = () => {\r\n target.removeEventListener('pointermove', onPointerMove);\r\n target.removeEventListener('pointerup', onPointerUp);\r\n target.removeEventListener('pointercancel', onPointerCancel);\r\n };\r\n\r\n target.addEventListener('pointermove', onPointerMove, { passive: true });\r\n target.addEventListener('pointerup', onPointerUp, { once: true });\r\n target.addEventListener('pointercancel', onPointerCancel, { once: true });\r\n\r\n return cancel;\r\n }\r\n\r\n}\r\n","export class KritzelKeyboardHelper {\r\n static forceHideKeyboard(): void {\r\n if (document.activeElement instanceof HTMLElement) {\r\n document.activeElement.blur();\r\n }\r\n }\r\n\r\n static enableInteractiveWidget(): void {\r\n const meta = document.querySelector('meta[name=\"viewport\"][content*=\"interactive-widget=resizes-content\"]');\r\n if (meta) {\r\n let currentContent = meta.getAttribute('content');\r\n if (!currentContent.includes('interactive-widget=resizes-content')) {\r\n currentContent += ', interactive-widget=resizes-content';\r\n }\r\n meta.setAttribute('content', currentContent);\r\n }\r\n }\r\n\r\n static disableInteractiveWidget(): void {\r\n const meta = document.querySelector('meta[name=\"viewport\"][content*=\"interactive-widget=resizes-content\"]');\r\n if (meta) {\r\n let currentContent = meta.getAttribute('content');\r\n let newContent = currentContent.replace(/\\s*interactive-widget=resizes-content\\s*[,;]?/g, '');\r\n newContent = newContent\r\n .replace(/,(\\s*,)+/g, ',')\r\n .replace(/^,/, '')\r\n .replace(/,$/, '')\r\n .trim();\r\n meta.setAttribute('content', newContent);\r\n }\r\n }\r\n}\r\n","import { KritzelText } from '../objects/text.class';\r\nimport { KritzelStore } from '../store.class';\r\nimport { KritzelBaseTool } from './base-tool.class';\r\nimport { AddObjectCommand } from '../commands/add-object.command';\r\nimport { KritzelEventHelper } from '../../helpers/event.helper';\r\nimport { KritzelToolRegistry } from '../registries/tool.registry';\r\nimport { KritzelKeyboardHelper } from '../../helpers/keyboard.helper';\r\n\r\nexport class KritzelTextTool extends KritzelBaseTool {\r\n fontFamily: string = 'Arial';\r\n fontSize: number = 16;\r\n fontColor: string = '#000000';\r\n\r\n palette: string[] = [\r\n '#000000',\r\n '#FFFFFF',\r\n '#FF0000',\r\n '#00FF00',\r\n '#0000FF',\r\n '#FFFF00',\r\n '#FF00FF',\r\n '#00FFFF',\r\n '#808080',\r\n '#C0C0C0',\r\n '#800000',\r\n '#008000',\r\n '#000080',\r\n '#808000',\r\n '#800080',\r\n ];\r\n\r\n constructor(store: KritzelStore) {\r\n super(store);\r\n }\r\n\r\n handlePointerDown(event: PointerEvent): void {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n\r\n if (event.pointerType === 'mouse') {\r\n const path = event.composedPath().slice(1) as HTMLElement[];\r\n const objectElement = path.find(element => element.classList && element.classList.contains('object'));\r\n const object = this._store.findObjectById(objectElement?.id);\r\n\r\n if (this._store.state.activeText === null && object && object instanceof KritzelText) {\r\n this._store.state.activeText = object;\r\n object.focus();\r\n return;\r\n }\r\n\r\n if (this._store.state.activeText !== null && object instanceof KritzelText) {\r\n object.focus();\r\n return;\r\n }\r\n\r\n if (this._store.state.activeText !== null) {\r\n this._store.resetActiveText();\r\n this._store.setState('activeTool', KritzelToolRegistry.getTool('selection'));\r\n return;\r\n }\r\n\r\n if (KritzelEventHelper.isLeftClick(event) === false) {\r\n return;\r\n }\r\n\r\n const clientX = event.clientX - this._store.offsetX;\r\n const clientY = event.clientY - this._store.offsetY;\r\n const text = KritzelText.create(this._store, this.fontSize, this.fontFamily);\r\n\r\n text.fontColor = this.fontColor;\r\n text.translateX = (clientX - this._store.state.translateX) / this._store.state.scale;\r\n text.translateY = (clientY - this._store.state.translateY) / this._store.state.scale;\r\n text.zIndex = this._store.currentZIndex;\r\n\r\n this._store.state.activeText = text;\r\n\r\n this._store.history.executeCommand(new AddObjectCommand(this._store, this, text));\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n const activePointers = Array.from(this._store.state.pointers.values());\r\n\r\n const path = event.composedPath().slice(1) as HTMLElement[];\r\n const objectElement = path.find(element => element.classList && element.classList.contains('object'));\r\n const object = this._store.findObjectById(objectElement?.id);\r\n\r\n if (this._store.state.activeText === null && object && object instanceof KritzelText) {\r\n this._store.state.activeText = object;\r\n object.focus();\r\n return;\r\n }\r\n\r\n if (this._store.state.activeText !== null && object instanceof KritzelText) {\r\n object.focus();\r\n return;\r\n }\r\n\r\n if (this._store.state.activeText !== null) {\r\n this._store.resetActiveText();\r\n this._store.setState('activeTool', KritzelToolRegistry.getTool('selection'));\r\n return;\r\n }\r\n\r\n if (activePointers.length > 1) {\r\n return;\r\n }\r\n\r\n KritzelKeyboardHelper.disableInteractiveWidget();\r\n\r\n const clientX = Math.round(activePointers[0].clientX - this._store.offsetX);\r\n const clientY = Math.round(activePointers[0].clientY - this._store.offsetY);\r\n const text = KritzelText.create(this._store, this.fontSize, this.fontFamily);\r\n\r\n text.fontColor = this.fontColor;\r\n text.translateX = (clientX - this._store.state.translateX) / this._store.state.scale;\r\n text.translateY = (clientY - this._store.state.translateY) / this._store.state.scale;\r\n text.zIndex = this._store.currentZIndex;\r\n\r\n this._store.state.activeText = text;\r\n\r\n this._store.history.executeCommand(new AddObjectCommand(this._store, this, text));\r\n }\r\n }\r\n\r\n handlePointerUp(event: PointerEvent): void {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n\r\n if (event.pointerType === 'mouse') {\r\n this._store.state.activeText?.adjustTextareaSize();\r\n this._store.state.activeText?.focus();\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n this._store.state.activeText?.adjustTextareaSize();\r\n this._store.state.activeText?.focus();\r\n\r\n KritzelKeyboardHelper.enableInteractiveWidget();\r\n }\r\n }\r\n}\r\n","import { KritzelBaseObject } from '../classes/objects/base-object.class';\r\n\r\nexport class ObjectHelper {\r\n\r\n static generateUUID(): string {\r\n return Math.random().toString(36).substr(2, 9);\r\n }\r\n\r\n static clone(objOrObjs: KritzelBaseObject<any> | KritzelBaseObject<any>[]): any {\r\n const cloneObject = (obj: KritzelBaseObject<any>) => {\r\n const { _store, _elementRef, totalWidth, totalHeight, ...remainingProps } = obj;\r\n return structuredClone(remainingProps);\r\n };\r\n\r\n if (Array.isArray(objOrObjs)) {\r\n return objOrObjs.map(cloneObject);\r\n }\r\n\r\n return cloneObject(objOrObjs);\r\n }\r\n\r\n static isEmpty(obj: any): boolean {\r\n if (obj === null || obj === undefined) {\r\n return true;\r\n }\r\n return Object?.keys(obj).length === 0 && obj?.constructor === Object;\r\n }\r\n\r\n}\r\n","import { KritzelBoundingBox } from '../../interfaces/bounding-box.interface';\r\nimport { KritzelObject } from '../../interfaces/object.interface';\r\nimport { KritzelPolygon } from '../../interfaces/polygon.interface';\r\nimport { KritzelSerializable } from '../../interfaces/serializable.interface';\r\nimport { KritzelStore } from '../store.class';\r\nimport { ObjectHelper } from '../../helpers/object.helper';\r\n\r\nexport class KritzelBaseObject<T extends Element = HTMLElement> implements KritzelObject<T>, KritzelSerializable {\r\n __class__: string = 'KritzelBaseObject';\r\n id: string;\r\n visible: boolean = true;\r\n x: number;\r\n y: number;\r\n translateX: number;\r\n translateY: number;\r\n height: number;\r\n width: number;\r\n backgroundColor: string;\r\n borderColor: string;\r\n borderWidth: number = 0;\r\n opacity: number = 1;\r\n padding: number = 0;\r\n scale: number;\r\n selected: boolean = false;\r\n resizing: boolean = false;\r\n rotation: number = 0;\r\n markedForRemoval: boolean = false;\r\n isMounted: boolean = false;\r\n zIndex: number = 0;\r\n\r\n debugInfoVisible: boolean = false;\r\n\r\n _store: KritzelStore;\r\n _elementRef: T;\r\n\r\n get totalWidth(): number {\r\n return this.width + this.padding * 2;\r\n }\r\n\r\n get totalHeight(): number {\r\n return this.height + this.padding * 2;\r\n }\r\n\r\n set elementRef(element: T) {\r\n this._elementRef = element;\r\n }\r\n\r\n get elementRef(): T {\r\n return this._elementRef;\r\n }\r\n\r\n get boundingBox(): KritzelBoundingBox {\r\n return {\r\n x: this.translateX,\r\n y: this.translateY,\r\n z: this.scale,\r\n width: this.totalWidth / this.scale,\r\n height: this.totalHeight / this.scale,\r\n depth: 0,\r\n };\r\n }\r\n\r\n get rotatedBoundingBox(): KritzelBoundingBox {\r\n return {\r\n x: this.minXRotated,\r\n y: this.minYRotated,\r\n z: this.scale,\r\n width: this.maxXRotated - this.minXRotated,\r\n height: this.maxYRotated - this.minYRotated,\r\n depth: 0,\r\n };\r\n }\r\n\r\n get rotatedPolygon(): KritzelPolygon {\r\n const cx = (this.translateX + this.totalWidth / 2 / this.scale);\r\n const cy = (this.translateY + this.totalHeight / 2 / this.scale);\r\n const angle = this.rotation;\r\n\r\n const adjustedWidth = this.totalWidth / this.scale;\r\n const adjustedHeight = this.totalHeight / this.scale;\r\n\r\n const corners = {\r\n topLeft: { x: this.translateX, y: this.translateY },\r\n topRight: { x: this.translateX + adjustedWidth, y: this.translateY },\r\n bottomRight: { x: this.translateX + adjustedWidth, y: this.translateY + adjustedHeight },\r\n bottomLeft: { x: this.translateX, y: this.translateY + adjustedHeight },\r\n };\r\n\r\n const rotatedCorners = Object.keys(corners).reduce((acc, key) => {\r\n const corner = corners[key];\r\n const rotatedX = Math.cos(angle) * (corner.x - cx) - Math.sin(angle) * (corner.y - cy) + cx;\r\n const rotatedY = Math.sin(angle) * (corner.x - cx) + Math.cos(angle) * (corner.y - cy) + cy;\r\n acc[key] = { x: rotatedX, y: rotatedY };\r\n return acc;\r\n }, {});\r\n\r\n return rotatedCorners as KritzelPolygon;\r\n }\r\n \r\n\r\n get minXRotated(): number {\r\n const corners = [\r\n this.rotatedPolygon.topLeft.x,\r\n this.rotatedPolygon.topRight.x,\r\n this.rotatedPolygon.bottomRight.x,\r\n this.rotatedPolygon.bottomLeft.x,\r\n ];\r\n\r\n return Math.min(...corners);\r\n }\r\n\r\n get minYRotated(): number {\r\n const corners = [\r\n this.rotatedPolygon.topLeft.y,\r\n this.rotatedPolygon.topRight.y,\r\n this.rotatedPolygon.bottomRight.y,\r\n this.rotatedPolygon.bottomLeft.y,\r\n ];\r\n\r\n return Math.min(...corners);\r\n }\r\n\r\n get maxXRotated(): number {\r\n const corners = [\r\n this.rotatedPolygon.topLeft.x,\r\n this.rotatedPolygon.topRight.x,\r\n this.rotatedPolygon.bottomRight.x,\r\n this.rotatedPolygon.bottomLeft.x,\r\n ];\r\n\r\n return Math.max(...corners);\r\n }\r\n\r\n get maxYRotated(): number {\r\n const corners = [\r\n this.rotatedPolygon.topLeft.y,\r\n this.rotatedPolygon.topRight.y,\r\n this.rotatedPolygon.bottomRight.y,\r\n this.rotatedPolygon.bottomLeft.y,\r\n ];\r\n\r\n return Math.max(...corners);\r\n }\r\n\r\n get transformationMatrix(): string {\r\n const scale = 1 / this.scale;\r\n const translateX = this.translateX;\r\n const translateY = this.translateY;\r\n\r\n return `matrix(${scale}, 0, 0, ${scale}, ${translateX}, ${translateY})`;\r\n }\r\n\r\n get rotationDegrees(): number {\r\n return this.rotation * (180 / Math.PI);\r\n }\r\n\r\n get centerX(): number {\r\n return this.translateX + this.totalWidth / 2;\r\n }\r\n\r\n get centerY(): number {\r\n return this.translateY + this.totalHeight / 2;\r\n }\r\n\r\n constructor() {\r\n this.id = this.generateId();\r\n }\r\n\r\n static create(store: KritzelStore): KritzelBaseObject<Element> {\r\n const object = new KritzelBaseObject();\r\n \r\n object._store = store;\r\n object.zIndex = store.currentZIndex;\r\n \r\n return object;\r\n }\r\n\r\n mount(element: T): void {\r\n if (this.isMounted) {\r\n return;\r\n }\r\n\r\n this.elementRef = element;\r\n this.isMounted = true;\r\n }\r\n\r\n generateId(): string {\r\n return ObjectHelper.generateUUID();\r\n }\r\n\r\n isInViewport(): boolean {\r\n const viewportBounds: KritzelBoundingBox = {\r\n x: -this._store.state.translateX / this._store.state.scale,\r\n y: -this._store.state.translateY / this._store.state.scale,\r\n z: this._store.state.scale,\r\n width: this._store.state.viewportWidth / this._store.state.scale,\r\n height: this._store.state.viewportHeight / this._store.state.scale,\r\n depth: 100,\r\n };\r\n\r\n return this.boundingBox.x < viewportBounds.x + viewportBounds.width &&\r\n this.boundingBox.x + this.boundingBox.width > viewportBounds.x &&\r\n this.boundingBox.y < viewportBounds.y + viewportBounds.height &&\r\n this.boundingBox.y + this.boundingBox.height > viewportBounds.y;\r\n }\r\n\r\n centerInViewport(): void {\r\n const scale = this._store.state.scale;\r\n this.translateX = (this._store.state.viewportWidth / 2 - this.totalWidth / 2 - this._store.state.translateX) / scale;\r\n this.translateY = (this._store.state.viewportHeight / 2 - this.totalHeight / 2 - this._store.state.translateY) / scale;\r\n }\r\n\r\n move(startX: number, startY: number, endX: number, endY: number): void {\r\n const deltaX = (startX - endX) / this._store.state.scale;\r\n const deltaY = (startY - endY) / this._store.state.scale;\r\n\r\n this.translateX += deltaX;\r\n this.translateY += deltaY;\r\n }\r\n\r\n resize(x: number, y: number, width: number, height: number): void {\r\n if (width <= 1 || height <= 1) {\r\n return;\r\n }\r\n\r\n this.width = width;\r\n this.height = height;\r\n this.translateX = x;\r\n this.translateY = y;\r\n }\r\n\r\n rotate(value: number): void {\r\n this.rotation = value;\r\n }\r\n\r\n copy(): KritzelBaseObject<T> {\r\n const copiedObject: KritzelBaseObject<T> = Object.create(Object.getPrototypeOf(this));\r\n Object.assign(copiedObject, this);\r\n copiedObject.id = this.generateId();\r\n copiedObject.isMounted = false;\r\n return copiedObject;\r\n }\r\n\r\n onSelectedClick(): void {\r\n // This method can be overridden by subclasses to handle click events when the object is selected.\r\n }\r\n\r\n revive(object: any): KritzelBaseObject<T> {\r\n Object.assign(this, object);\r\n return this;\r\n }\r\n\r\n}\r\n","import { KritzelToolRegistry } from '../registries/tool.registry';\r\nimport { KritzelStore } from '../store.class';\r\nimport { KritzelTextTool } from '../tools/text-tool.class';\r\nimport { KritzelBaseObject } from './base-object.class';\r\n\r\nexport class KritzelText extends KritzelBaseObject<HTMLTextAreaElement> {\r\n override __class__: string = 'KritzelText';\r\n\r\n value: string = '';\r\n\r\n fontFamily: string = 'Arial';\r\n\r\n fontSize: number = 8;\r\n\r\n fontColor: string = '#000000';\r\n\r\n initialWidth: number = 3;\r\n\r\n isNew: boolean = true;\r\n\r\n override debugInfoVisible: boolean = true;\r\n\r\n readonly rows: number = 1;\r\n\r\n get isReadonly(): boolean {\r\n return !(this._store.state.activeTool instanceof KritzelTextTool);\r\n }\r\n\r\n constructor(config?: {\r\n value: string;\r\n translateX?: number;\r\n translateY?: number;\r\n fontSize?: number;\r\n fontFamily?: string;\r\n fontColor?: string;\r\n height?: number;\r\n width?: number;\r\n scale?: number;\r\n }) {\r\n super();\r\n\r\n if (config) {\r\n this.value = config.value || ' ';\r\n this.translateX = config.translateX || 0;\r\n this.translateY = config.translateY || 0;\r\n this.fontSize = config.fontSize || 8;\r\n this.fontFamily = config.fontFamily || 'Arial';\r\n this.fontColor = config.fontColor || '#000000';\r\n this.height = config.height || this.fontSize * 1.2;\r\n this.width = config.width || 0;\r\n this.scale = config.scale || 1;\r\n }\r\n }\r\n\r\n static override create(store: KritzelStore, fontSize?: number, fontFamily?: string): KritzelText {\r\n const object = new KritzelText();\r\n\r\n object._store = store;\r\n object.fontSize = fontSize;\r\n object.fontFamily = fontFamily;\r\n object.translateX = 0;\r\n object.translateY = 0;\r\n object.width = object.initialWidth / (object._store.state.scale < 0 ? object._store.state.scale : 1);\r\n object.height = (object.fontSize * 1.2) / (object._store.state.scale < 0 ? object._store.state.scale : 1);\r\n object.padding = 5;\r\n object.backgroundColor = 'transparent';\r\n object.scale = object._store.state.scale;\r\n object.value = ' ';\r\n object.zIndex = store.currentZIndex;\r\n\r\n return object;\r\n }\r\n\r\n override mount(element: HTMLTextAreaElement): void {\r\n if ((this.isMounted && this.elementRef === element) || this.isInViewport() === false) {\r\n return;\r\n }\r\n\r\n this.elementRef = element;\r\n this.isMounted = true;\r\n }\r\n\r\n override resize(x: number, y: number, width: number, height: number): void {\r\n if (width <= 1 || height <= 1) {\r\n return;\r\n }\r\n\r\n const scaleFactor = height / this.height;\r\n\r\n this.fontSize = this.fontSize * scaleFactor;\r\n this.width = this.width * scaleFactor;\r\n this.height = height;\r\n this.translateX = x;\r\n this.translateY = y;\r\n }\r\n\r\n handleKeyDown(event: KeyboardEvent): void {\r\n if (this.isReadonly) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n handleInput(event: InputEvent): void {\r\n const target = event.target as HTMLTextAreaElement;\r\n if (target.value === '') {\r\n this.value = ' ';\r\n target.value = ' ';\r\n target.selectionStart = target.selectionEnd = target.value.length;\r\n } else {\r\n this.value = target.value.trim();\r\n }\r\n\r\n this.adjustTextareaSize();\r\n }\r\n\r\n adjustTextareaSize() {\r\n if (this.elementRef) {\r\n const span = document.createElement('span');\r\n span.style.position = 'absolute';\r\n span.style.whiteSpace = 'pre-wrap';\r\n span.style.visibility = 'hidden';\r\n span.style.fontSize = window.getComputedStyle(this.elementRef).fontSize;\r\n span.style.fontFamily = window.getComputedStyle(this.elementRef).fontFamily;\r\n\r\n span.innerHTML = this.elementRef.value.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\\n/g, '<br>') + '<br>';\r\n\r\n document.body.appendChild(span);\r\n const textWidth = span.offsetWidth;\r\n const textHeight = span.offsetHeight;\r\n document.body.removeChild(span);\r\n\r\n this.width = textWidth;\r\n this.height = textHeight;\r\n\r\n this._store.rerender();\r\n }\r\n }\r\n\r\n focus(): void {\r\n if (this.elementRef) {\r\n this.elementRef.focus();\r\n }\r\n }\r\n\r\n selectAll(): void {\r\n if (this.elementRef) {\r\n this.elementRef.select();\r\n }\r\n }\r\n\r\n insertFromClipboard(): void {\r\n if (this.elementRef) {\r\n this.elementRef.focus();\r\n try {\r\n navigator.clipboard.readText().then(text => {\r\n const start = this.elementRef.selectionStart;\r\n const end = this.elementRef.selectionEnd;\r\n const value = this.elementRef.value;\r\n\r\n this.elementRef.value = value.substring(0, start) + text + value.substring(end);\r\n\r\n this.elementRef.selectionStart = this.elementRef.selectionEnd = start + text.length;\r\n this.value = this.elementRef.value;\r\n this.adjustTextareaSize();\r\n });\r\n } catch (err) {\r\n console.error('Failed to read clipboard contents:', err);\r\n }\r\n }\r\n }\r\n\r\n onSelectedClick(): void {\r\n this._store.setState('activeTool', KritzelToolRegistry.getTool('text'));\r\n this._store.state.selectionGroup = null;\r\n this._store.state.selectionBox = null;\r\n this._store.state.activeText = this;\r\n \r\n setTimeout(() => {\r\n this.focus();\r\n }, 300);\r\n }\r\n}\r\n","var pe=Object.defineProperty;var ge=e=>pe(e,\"__esModule\",{value:!0});var de=(e,t)=>{ge(e);for(var s in t)pe(e,s,{get:t[s],enumerable:!0})};de(exports,{default:()=>ve,getStroke:()=>ne,getStrokeOutlinePoints:()=>te,getStrokePoints:()=>re});function $(e,t,s,x=h=>h){return e*x(.5-t*(.5-s))}function ce(e){return[-e[0],-e[1]]}function l(e,t){return[e[0]+t[0],e[1]+t[1]]}function a(e,t){return[e[0]-t[0],e[1]-t[1]]}function b(e,t){return[e[0]*t,e[1]*t]}function xe(e,t){return[e[0]/t,e[1]/t]}function R(e){return[e[1],-e[0]]}function B(e,t){return e[0]*t[0]+e[1]*t[1]}function me(e,t){return e[0]===t[0]&&e[1]===t[1]}function Se(e){return Math.hypot(e[0],e[1])}function Pe(e){return e[0]*e[0]+e[1]*e[1]}function A(e,t){return Pe(a(e,t))}function G(e){return xe(e,Se(e))}function ae(e,t){return Math.hypot(e[1]-t[1],e[0]-t[0])}function L(e,t,s){let x=Math.sin(s),h=Math.cos(s),y=e[0]-t[0],n=e[1]-t[1],f=y*h-n*x,d=y*x+n*h;return[f+t[0],d+t[1]]}function K(e,t,s){return l(e,b(a(t,e),s))}function ee(e,t,s){return l(e,b(t,s))}var{min:C,PI:ke}=Math,le=.275,V=ke+1e-4;function te(e,t={}){let{size:s=16,smoothing:x=.5,thinning:h=.5,simulatePressure:y=!0,easing:n=r=>r,start:f={},end:d={},last:D=!1}=t,{cap:S=!0,easing:j=r=>r*(2-r)}=f,{cap:q=!0,easing:c=r=>--r*r*r+1}=d;if(e.length===0||s<=0)return[];let p=e[e.length-1].runningLength,g=f.taper===!1?0:f.taper===!0?Math.max(s,p):f.taper,T=d.taper===!1?0:d.taper===!0?Math.max(s,p):d.taper,oe=Math.pow(s*x,2),_=[],M=[],H=e.slice(0,10).reduce((r,i)=>{let o=i.pressure;if(y){let u=C(1,i.distance/s),W=C(1,1-u);o=C(1,r+(W-r)*(u*le))}return(r+o)/2},e[0].pressure),m=$(s,h,e[e.length-1].pressure,n),U,X=e[0].vector,z=e[0].point,F=z,O=z,E=F,J=!1;for(let r=0;r<e.length;r++){let{pressure:i}=e[r],{point:o,vector:u,distance:W,runningLength:I}=e[r];if(r<e.length-1&&p-I<3)continue;if(h){if(y){let v=C(1,W/s),Z=C(1,1-v);i=C(1,H+(Z-H)*(v*le))}m=$(s,h,i,n)}else m=s/2;U===void 0&&(U=m);let fe=I<g?j(I/g):1,be=p-I<T?c((p-I)/T):1;m=Math.max(.01,m*Math.min(fe,be));let se=(r<e.length-1?e[r+1]:e[r]).vector,Y=r<e.length-1?B(u,se):1,he=B(u,X)<0&&!J,ue=Y!==null&&Y<0;if(he||ue){let v=b(R(X),m);for(let Z=1/13,w=0;w<=1;w+=Z)O=L(a(o,v),o,V*w),_.push(O),E=L(l(o,v),o,V*-w),M.push(E);z=O,F=E,ue&&(J=!0);continue}if(J=!1,r===e.length-1){let v=b(R(u),m);_.push(a(o,v)),M.push(l(o,v));continue}let ie=b(R(K(se,u,Y)),m);O=a(o,ie),(r<=1||A(z,O)>oe)&&(_.push(O),z=O),E=l(o,ie),(r<=1||A(F,E)>oe)&&(M.push(E),F=E),H=i,X=u}let P=e[0].point.slice(0,2),k=e.length>1?e[e.length-1].point.slice(0,2):l(e[0].point,[1,1]),Q=[],N=[];if(e.length===1){if(!(g||T)||D){let r=ee(P,G(R(a(P,k))),-(U||m)),i=[];for(let o=1/13,u=o;u<=1;u+=o)i.push(L(r,P,V*2*u));return i}}else{if(!(g||T&&e.length===1))if(S)for(let i=1/13,o=i;o<=1;o+=i){let u=L(M[0],P,V*o);Q.push(u)}else{let i=a(_[0],M[0]),o=b(i,.5),u=b(i,.51);Q.push(a(P,o),a(P,u),l(P,u),l(P,o))}let r=R(ce(e[e.length-1].vector));if(T||g&&e.length===1)N.push(k);else if(q){let i=ee(k,r,m);for(let o=1/29,u=o;u<1;u+=o)N.push(L(i,k,V*3*u))}else N.push(l(k,b(r,m)),l(k,b(r,m*.99)),a(k,b(r,m*.99)),a(k,b(r,m)))}return _.concat(N,M.reverse(),Q)}function re(e,t={}){var q;let{streamline:s=.5,size:x=16,last:h=!1}=t;if(e.length===0)return[];let y=.15+(1-s)*.85,n=Array.isArray(e[0])?e:e.map(({x:c,y:p,pressure:g=.5})=>[c,p,g]);if(n.length===2){let c=n[1];n=n.slice(0,-1);for(let p=1;p<5;p++)n.push(K(n[0],c,p/4))}n.length===1&&(n=[...n,[...l(n[0],[1,1]),...n[0].slice(2)]]);let f=[{point:[n[0][0],n[0][1]],pressure:n[0][2]>=0?n[0][2]:.25,vector:[1,1],distance:0,runningLength:0}],d=!1,D=0,S=f[0],j=n.length-1;for(let c=1;c<n.length;c++){let p=h&&c===j?n[c].slice(0,2):K(S.point,n[c],y);if(me(S.point,p))continue;let g=ae(p,S.point);if(D+=g,c<j&&!d){if(D<x)continue;d=!0}S={point:p,pressure:n[c][2]>=0?n[c][2]:.5,vector:G(a(S.point,p)),distance:g,runningLength:D},f.push(S)}return f[0].vector=((q=f[1])==null?void 0:q.vector)||[0,0],f}function ne(e,t={}){return te(re(e,t),t)}var ve=ne;\n","export class KritzelMathHelper {\r\n public static average(a: number, b: number): number {\r\n return (a + b) / 2;\r\n }\r\n}\r\n","import { getStroke } from 'perfect-freehand';\r\nimport { KritzelMathHelper } from '../../helpers/math.helper';\r\nimport { KritzelPathOptions } from '../../interfaces/path-options.interface';\r\nimport { KritzelBaseObject } from './base-object.class';\r\nimport { KritzelStore } from '../store.class';\r\n\r\nexport class KritzelPath extends KritzelBaseObject<SVGElement> {\r\n override __class__: string = 'KritzelPath';\r\n\r\n points: number[][];\r\n d: string;\r\n stroke: string = 'none';\r\n strokeWidth: number;\r\n lineSlack: number = 0.5;\r\n fill: string;\r\n x: number = 0;\r\n y: number = 0;\r\n translateX: number;\r\n translateY: number;\r\n height: number = 0;\r\n width: number = 0;\r\n scale: number = 1;\r\n visible: boolean = true;\r\n options: KritzelPathOptions | undefined;\r\n\r\n debugInfoVisible: boolean = true;\r\n\r\n get viewBox(): string {\r\n return `${this.x} ${this.y} ${this.width} ${this.height}`;\r\n }\r\n\r\n static override create(store: KritzelStore, options?: KritzelPathOptions): KritzelPath {\r\n const object = new KritzelPath();\r\n\r\n object._store = store;\r\n object.id = object.generateId();\r\n object.options = options;\r\n object.points = options?.points ?? [];\r\n object.translateX = options?.translateX ?? 0;\r\n object.translateY = options?.translateY ?? 0;\r\n object.scale = options?.scale ?? 1;\r\n object.strokeWidth = options?.strokeWidth ?? 8;\r\n object.fill = options?.fill ?? '#000000';\r\n object.zIndex = store.currentZIndex;\r\n object.d = object.generateSvgPath();\r\n object.updateDimensions();\r\n\r\n return object;\r\n }\r\n\r\n resize(x: number | null, y: number | null, width: number, height: number): void {\r\n if (width <= 1 || height <= 1) {\r\n return;\r\n }\r\n\r\n const scaleX = width / this.width;\r\n const scaleY = height / this.height;\r\n\r\n this.width = width;\r\n this.height = height;\r\n\r\n this.points = this.points.map(([x, y]) => [x * scaleX, y * scaleY]);\r\n this.d = this.generateSvgPath();\r\n\r\n this.width = Math.max(...this.points.map(p => p[0])) - Math.min(...this.points.map(p => p[0])) + this.strokeWidth;\r\n this.height = Math.max(...this.points.map(p => p[1])) - Math.min(...this.points.map(p => p[1])) + this.strokeWidth;\r\n\r\n this.x = Math.min(...this.points.map(p => p[0])) - this.strokeWidth / 2;\r\n this.y = Math.min(...this.points.map(p => p[1])) - this.strokeWidth / 2;\r\n\r\n this.translateX = x;\r\n this.translateY = y;\r\n }\r\n\r\n override rotate(value: number): void {\r\n super.rotate(value);\r\n this.updateDimensions();\r\n }\r\n\r\n private updateDimensions(): void {\r\n const rotatedPoints = this.points.map(([x, y]) => {\r\n const rotatedX = x * Math.cos(this.rotation) - y * Math.sin(this.rotation);\r\n const rotatedY = x * Math.sin(this.rotation) + y * Math.cos(this.rotation);\r\n return [rotatedX, rotatedY];\r\n });\r\n\r\n const minX = Math.min(...rotatedPoints.map(p => p[0] - this.strokeWidth / 2));\r\n const minY = Math.min(...rotatedPoints.map(p => p[1] - this.strokeWidth / 2));\r\n\r\n const maxX = Math.max(...rotatedPoints.map(p => p[0] + this.strokeWidth / 2));\r\n const maxY = Math.max(...rotatedPoints.map(p => p[1] + this.strokeWidth / 2));\r\n\r\n this.width = maxX - minX + this.lineSlack; // Add 0.5 to avoid rounding issues\r\n this.height = maxY - minY + this.lineSlack; // Add 0.5 to avoid rounding issues\r\n\r\n this.x = minX;\r\n this.y = minY;\r\n\r\n this.translateX = (this.x + this.translateX) / this.scale;\r\n this.translateY = (this.y + this.translateY) / this.scale;\r\n }\r\n\r\n private generateSvgPath(): string {\r\n const stroke = this.getStrokeFromPoints(this.points, this.strokeWidth);\r\n return this.getSvgPathFromStroke(stroke);\r\n }\r\n\r\n private getStrokeFromPoints(points: number[][], strokeWidth: number): number[][] {\r\n return getStroke(points, {\r\n size: strokeWidth,\r\n thinning: 0.5,\r\n smoothing: 0.5,\r\n streamline: 0.5,\r\n easing: t => t,\r\n simulatePressure: true,\r\n last: true,\r\n start: {\r\n cap: true,\r\n taper: 0,\r\n easing: t => t,\r\n },\r\n end: {\r\n cap: true,\r\n taper: 0,\r\n easing: t => t,\r\n },\r\n });\r\n }\r\n\r\n private getSvgPathFromStroke(points: number[][], closed = true) {\r\n const len = points.length;\r\n\r\n if (len < 4) {\r\n return ``;\r\n }\r\n\r\n let a = points[0];\r\n let b = points[1];\r\n const c = points[2];\r\n\r\n let result = `M${a[0].toFixed(2)},${a[1].toFixed(2)} Q${b[0].toFixed(2)},${b[1].toFixed(2)} ${KritzelMathHelper.average(b[0], c[0]).toFixed(\r\n 2,\r\n )},${KritzelMathHelper.average(b[1], c[1]).toFixed(2)} T`;\r\n\r\n for (let i = 2, max = len - 1; i < max; i++) {\r\n a = points[i];\r\n b = points[i + 1];\r\n result += `${KritzelMathHelper.average(a[0], b[0]).toFixed(2)},${KritzelMathHelper.average(a[1], b[1]).toFixed(2)} `;\r\n }\r\n\r\n if (closed) {\r\n result += 'Z';\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","import { KritzelEventHelper } from '../../helpers/event.helper';\r\nimport { KritzelStore } from '../store.class';\r\nimport { AddObjectCommand } from '../commands/add-object.command';\r\nimport { KritzelPath } from '../objects/path.class';\r\nimport { KritzelBaseTool } from './base-tool.class';\r\n\r\nexport class KritzelBrushTool extends KritzelBaseTool {\r\n type: 'pen' | 'highlighter' = 'pen';\r\n\r\n color: string = '#000000';\r\n\r\n size: number = 6;\r\n\r\n palettes: {\r\n [brushType: string]: string[];\r\n } = {\r\n pen: ['#000000', '#FFFFFF', '#FF0000', '#00FF00', '#0000FF', '#FFFF00', '#FF00FF', '#00FFFF', '#808080', '#C0C0C0', '#800000', '#008000', '#000080', '#808000', '#800080'],\r\n highlighter: ['#ffff00', '#ffb347', '#b4ffb4'],\r\n };\r\n\r\n constructor(store: KritzelStore) {\r\n super(store);\r\n }\r\n\r\n handlePointerDown(event: PointerEvent): void {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n\r\n if (event.pointerType === 'mouse') {\r\n if (KritzelEventHelper.isLeftClick(event)) {\r\n this._store.state.isDrawing = true;\r\n const x = event.clientX - this._store.offsetX;\r\n const y = event.clientY - this._store.offsetY;\r\n\r\n this._store.state.currentPath = KritzelPath.create(this._store, {\r\n points: [[x, y]],\r\n translateX: -this._store.state.translateX,\r\n translateY: -this._store.state.translateY,\r\n scale: this._store.state.scale,\r\n fill: this.color,\r\n strokeWidth: this.size,\r\n });\r\n }\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n const activePointers = Array.from(this._store.state.pointers.values());\r\n\r\n if (activePointers.length === 1) {\r\n const x = Math.round(activePointers[0].clientX - this._store.offsetX);\r\n const y = Math.round(activePointers[0].clientY - this._store.offsetY);\r\n\r\n this._store.state.isDrawing = true;\r\n\r\n this._store.state.currentPath = KritzelPath.create(this._store, {\r\n points: [[x, y]],\r\n translateX: -this._store.state.translateX,\r\n translateY: -this._store.state.translateY,\r\n scale: this._store.state.scale,\r\n fill: this.color,\r\n strokeWidth: this.size,\r\n });\r\n\r\n this._store.rerender();\r\n }\r\n }\r\n }\r\n\r\n handlePointerMove(event: PointerEvent): void {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n\r\n if (event.pointerType === 'mouse') {\r\n if (this._store.state.isDrawing) {\r\n const x = event.clientX - this._store.offsetX;\r\n const y = event.clientY - this._store.offsetY;\r\n\r\n this._store.state.currentPath = KritzelPath.create(this._store, {\r\n points: [...this._store.state.currentPath.points, [x, y]],\r\n translateX: -this._store.state.translateX,\r\n translateY: -this._store.state.translateY,\r\n scale: this._store.state.scale,\r\n fill: this.color,\r\n strokeWidth: this.size,\r\n });\r\n\r\n this._store.rerender();\r\n }\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n const activePointers = Array.from(this._store.state.pointers.values());\r\n\r\n if (activePointers.length === 1) {\r\n const x = Math.round(activePointers[0].clientX - this._store.offsetX);\r\n const y = Math.round(activePointers[0].clientY - this._store.offsetY);\r\n\r\n this._store.state.currentPath = KritzelPath.create(this._store, {\r\n points: [...this._store.state.currentPath.points, [x, y]],\r\n translateX: -this._store.state.translateX,\r\n translateY: -this._store.state.translateY,\r\n scale: this._store.state.scale,\r\n fill: this.color,\r\n strokeWidth: this.size,\r\n });\r\n\r\n this._store.rerender();\r\n }\r\n }\r\n }\r\n\r\n handlePointerUp(event: PointerEvent): void {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n\r\n if (event.pointerType === 'mouse') {\r\n if (this._store.state.isDrawing) {\r\n this._store.state.isDrawing = false;\r\n\r\n if (this._store.state.currentPath) {\r\n this._store.state.currentPath.zIndex = this._store.currentZIndex;\r\n this._store.history.executeCommand(new AddObjectCommand(this._store, this, this._store.state.currentPath));\r\n }\r\n\r\n this._store.state.currentPath = undefined;\r\n }\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n if (this._store.state.isDrawing) {\r\n this._store.state.isDrawing = false;\r\n\r\n if (this._store.state.currentPath) {\r\n this._store.state.currentPath.zIndex = this._store.currentZIndex;\r\n this._store.history.executeCommand(new AddObjectCommand(this._store, this, this._store.state.currentPath));\r\n }\r\n\r\n this._store.state.currentPath = undefined;\r\n\r\n this._store.rerender();\r\n }\r\n }\r\n }\r\n}\r\n"],"version":3}
@@ -1,11 +1,11 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-DC8SDK2U.js';
2
- import { d as defineCustomElement$7 } from './p-DFhbw-Fr.js';
3
- import { d as defineCustomElement$6 } from './p-DHT5gK0E.js';
4
- import { d as defineCustomElement$5 } from './p-c6tIpE_t.js';
5
- import { d as defineCustomElement$4 } from './p-CmckGlXt.js';
6
- import { d as defineCustomElement$3 } from './p-B7P9QBiE.js';
7
- import { d as defineCustomElement$2 } from './p-DfMdBA8L.js';
8
- import { d as defineCustomElement$1 } from './p-CZkSABuJ.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-DoQOtXjT.js';
2
+ import { d as defineCustomElement$7 } from './p-CaQ7Iei7.js';
3
+ import { d as defineCustomElement$6 } from './p-yBnfPxIa.js';
4
+ import { d as defineCustomElement$5 } from './p-h3bqYufZ.js';
5
+ import { d as defineCustomElement$4 } from './p-B57pFHwJ.js';
6
+ import { d as defineCustomElement$3 } from './p-C9ZagG9K.js';
7
+ import { d as defineCustomElement$2 } from './p-fmNiA3Yr.js';
8
+ import { d as defineCustomElement$1 } from './p-ksTCzgsY.js';
9
9
 
10
10
  const kritzelControlTextConfigCss = ":host{display:block;flex-direction:column;width:100%}.expand-toggle{background:none;border:none;cursor:pointer;font-size:14px;line-height:1;padding:8px;color:var(--kritzel-color-palette-expand-toggle-color, #666666)}.expand-toggle:hover{color:var(--kritzel-color-palette-expand-toggle-hover-color, #333333)}";
11
11
 
@@ -97,6 +97,6 @@ function defineCustomElement() {
97
97
  }
98
98
 
99
99
  export { KritzelControlTextConfig as K, defineCustomElement as d };
100
- //# sourceMappingURL=p-BXJ8s30N.js.map
100
+ //# sourceMappingURL=p-BtjtAfGW.js.map
101
101
 
102
- //# sourceMappingURL=p-BXJ8s30N.js.map
102
+ //# sourceMappingURL=p-BtjtAfGW.js.map
@@ -1 +1 @@
1
- {"file":"p-BXJ8s30N.js","mappings":";;;;;;;;;AAAA,MAAM,2BAA2B,GAAG,qTAAqT;;MCQ5U,wBAAwB,iBAAAA,kBAAA,CAAA,MAAA,wBAAA,SAAAC,CAAA,CAAA;AALrC,IAAA,WAAA,GAAA;;;;;AAUE,QAAA,IAAU,CAAA,UAAA,GAAY,KAAK;AAuD5B;IAlDC,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU;;AAGpC,IAAA,kBAAkB,CAAC,KAA0B,EAAA;QAC3C,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM;QACnC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;;AAGjC,IAAA,iBAAiB,CAAC,KAA0B,EAAA;QAC1C,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM;QAClC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;;AAGjC,IAAA,gBAAgB,CAAC,KAA0B,EAAA;QACzC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM;QACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;;IAGjC,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE;AACL,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,aAAa,EAAE,KAAK;AACpB,gBAAA,UAAU,EAAE,QAAQ;AACpB,gBAAA,cAAc,EAAE,YAAY;AAC5B,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,GAAG,EAAE,KAAK;AACX,aAAA,EAAA,EAED,CAAqB,CAAA,qBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,EAAE,KAAK,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAwB,CAAA,EAElJ,CAAQ,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,eAAe,EAAC,OAAO,EAAE,MAAM,IAAI,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,GAAG,UAAU,GAAG,QAAQ,EAAA,EACpH,CAAA,CAAA,cAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAc,IAAI,EAAE,IAAI,CAAC,UAAU,GAAG,YAAY,GAAG,cAAc,EAAA,CAAiB,CAC7E,CACL,EAEN,CAAA,CAAA,uBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EACzB,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAClC,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,aAAa,EAAE,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAC9B,CAAA,EAEzB,CAAA,CAAA,mBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAmB,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAsB,CAAA,CAC3J;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/ui/kritzel-control-text-config/kritzel-control-text-config.css?tag=kritzel-control-text-config&encapsulation=shadow","src/components/ui/kritzel-control-text-config/kritzel-control-text-config.tsx"],"sourcesContent":[":host {\r\n display: block;\r\n flex-direction: column;\r\n width: 100%;\r\n}\r\n\r\n.expand-toggle {\r\n background: none;\r\n border: none;\r\n cursor: pointer;\r\n font-size: 14px;\r\n line-height: 1;\r\n padding: 8px;\r\n color: var(--kritzel-color-palette-expand-toggle-color, #666666);\r\n}\r\n\r\n.expand-toggle:hover {\r\n color: var(--kritzel-color-palette-expand-toggle-hover-color, #333333);\r\n}\r\n","import { Component, Host, Prop, h, Event, EventEmitter } from '@stencil/core';\r\nimport { KritzelTextTool } from '../../../classes/tools/text-tool.class';\r\n\r\n@Component({\r\n tag: 'kritzel-control-text-config',\r\n styleUrl: 'kritzel-control-text-config.css',\r\n shadow: true,\r\n})\r\nexport class KritzelControlTextConfig {\r\n @Prop({ mutable: true })\r\n tool: KritzelTextTool;\r\n\r\n @Prop({ mutable: true })\r\n isExpanded: boolean = false;\r\n\r\n @Event()\r\n toolChange: EventEmitter<KritzelTextTool>;\r\n\r\n handleToggleExpand() {\r\n this.isExpanded = !this.isExpanded;\r\n }\r\n\r\n handleFamilyChange(event: CustomEvent<string>) {\r\n this.tool.fontFamily = event.detail;\r\n this.toolChange.emit(this.tool);\r\n }\r\n\r\n handleColorChange(event: CustomEvent<string>) {\r\n this.tool.fontColor = event.detail;\r\n this.toolChange.emit(this.tool);\r\n }\r\n\r\n handleSizeChange(event: CustomEvent<number>) {\r\n this.tool.fontSize = event.detail;\r\n this.toolChange.emit(this.tool);\r\n }\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <div\r\n style={{\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\r\n width: '100%',\r\n gap: '8px',\r\n }}\r\n >\r\n <kritzel-font-family selectedFontFamily={this.tool.fontFamily} onFontFamilyChange={event => this.handleFamilyChange(event)}></kritzel-font-family>\r\n\r\n <button class=\"expand-toggle\" onClick={() => this.handleToggleExpand()} title={this.isExpanded ? 'Collapse' : 'Expand'}>\r\n <kritzel-icon name={this.isExpanded ? 'chevron-up' : 'chevron-down'}></kritzel-icon>\r\n </button>\r\n </div>\r\n\r\n <kritzel-color-palette\r\n colors={this.tool.palette}\r\n selectedColor={this.tool.fontColor}\r\n isExpanded={this.isExpanded}\r\n onColorChange={event => this.handleColorChange(event)}\r\n ></kritzel-color-palette>\r\n\r\n <kritzel-font-size selectedSize={this.tool.fontSize} fontFamily={this.tool.fontFamily} onSizeChange={event => this.handleSizeChange(event)}></kritzel-font-size>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
1
+ {"file":"p-BtjtAfGW.js","mappings":";;;;;;;;;AAAA,MAAM,2BAA2B,GAAG,qTAAqT;;MCQ5U,wBAAwB,iBAAAA,kBAAA,CAAA,MAAA,wBAAA,SAAAC,CAAA,CAAA;AALrC,IAAA,WAAA,GAAA;;;;;AAUE,QAAA,IAAU,CAAA,UAAA,GAAY,KAAK;AAuD5B;IAlDC,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU;;AAGpC,IAAA,kBAAkB,CAAC,KAA0B,EAAA;QAC3C,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM;QACnC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;;AAGjC,IAAA,iBAAiB,CAAC,KAA0B,EAAA;QAC1C,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM;QAClC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;;AAGjC,IAAA,gBAAgB,CAAC,KAA0B,EAAA;QACzC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM;QACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;;IAGjC,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE;AACL,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,aAAa,EAAE,KAAK;AACpB,gBAAA,UAAU,EAAE,QAAQ;AACpB,gBAAA,cAAc,EAAE,YAAY;AAC5B,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,GAAG,EAAE,KAAK;AACX,aAAA,EAAA,EAED,CAAqB,CAAA,qBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,EAAE,KAAK,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAwB,CAAA,EAElJ,CAAQ,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,eAAe,EAAC,OAAO,EAAE,MAAM,IAAI,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,GAAG,UAAU,GAAG,QAAQ,EAAA,EACpH,CAAA,CAAA,cAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAc,IAAI,EAAE,IAAI,CAAC,UAAU,GAAG,YAAY,GAAG,cAAc,EAAA,CAAiB,CAC7E,CACL,EAEN,CAAA,CAAA,uBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EACzB,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAClC,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,aAAa,EAAE,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAC9B,CAAA,EAEzB,CAAA,CAAA,mBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAmB,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAsB,CAAA,CAC3J;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/ui/kritzel-control-text-config/kritzel-control-text-config.css?tag=kritzel-control-text-config&encapsulation=shadow","src/components/ui/kritzel-control-text-config/kritzel-control-text-config.tsx"],"sourcesContent":[":host {\r\n display: block;\r\n flex-direction: column;\r\n width: 100%;\r\n}\r\n\r\n.expand-toggle {\r\n background: none;\r\n border: none;\r\n cursor: pointer;\r\n font-size: 14px;\r\n line-height: 1;\r\n padding: 8px;\r\n color: var(--kritzel-color-palette-expand-toggle-color, #666666);\r\n}\r\n\r\n.expand-toggle:hover {\r\n color: var(--kritzel-color-palette-expand-toggle-hover-color, #333333);\r\n}\r\n","import { Component, Host, Prop, h, Event, EventEmitter } from '@stencil/core';\r\nimport { KritzelTextTool } from '../../../classes/tools/text-tool.class';\r\n\r\n@Component({\r\n tag: 'kritzel-control-text-config',\r\n styleUrl: 'kritzel-control-text-config.css',\r\n shadow: true,\r\n})\r\nexport class KritzelControlTextConfig {\r\n @Prop({ mutable: true })\r\n tool: KritzelTextTool;\r\n\r\n @Prop({ mutable: true })\r\n isExpanded: boolean = false;\r\n\r\n @Event()\r\n toolChange: EventEmitter<KritzelTextTool>;\r\n\r\n handleToggleExpand() {\r\n this.isExpanded = !this.isExpanded;\r\n }\r\n\r\n handleFamilyChange(event: CustomEvent<string>) {\r\n this.tool.fontFamily = event.detail;\r\n this.toolChange.emit(this.tool);\r\n }\r\n\r\n handleColorChange(event: CustomEvent<string>) {\r\n this.tool.fontColor = event.detail;\r\n this.toolChange.emit(this.tool);\r\n }\r\n\r\n handleSizeChange(event: CustomEvent<number>) {\r\n this.tool.fontSize = event.detail;\r\n this.toolChange.emit(this.tool);\r\n }\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <div\r\n style={{\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\r\n width: '100%',\r\n gap: '8px',\r\n }}\r\n >\r\n <kritzel-font-family selectedFontFamily={this.tool.fontFamily} onFontFamilyChange={event => this.handleFamilyChange(event)}></kritzel-font-family>\r\n\r\n <button class=\"expand-toggle\" onClick={() => this.handleToggleExpand()} title={this.isExpanded ? 'Collapse' : 'Expand'}>\r\n <kritzel-icon name={this.isExpanded ? 'chevron-up' : 'chevron-down'}></kritzel-icon>\r\n </button>\r\n </div>\r\n\r\n <kritzel-color-palette\r\n colors={this.tool.palette}\r\n selectedColor={this.tool.fontColor}\r\n isExpanded={this.isExpanded}\r\n onColorChange={event => this.handleColorChange(event)}\r\n ></kritzel-color-palette>\r\n\r\n <kritzel-font-size selectedSize={this.tool.fontSize} fontFamily={this.tool.fontFamily} onSizeChange={event => this.handleSizeChange(event)}></kritzel-font-size>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, h, d as Host } from './p-DC8SDK2U.js';
1
+ import { p as proxyCustomElement, H, h, d as Host } from './p-DoQOtXjT.js';
2
2
 
3
3
  const kritzelTooltipCss = ":host{width:auto}.tooltip-content{position:relative;padding:8px 12px;border-radius:4px;width:fit-content;background-color:var(--kritzel-controls-tooltip-background-color, #ffffff);color:var(--kritzel-controls-tooltip-color, #000000);padding:var(--kritzel-controls-tooltip-padding, 8px);border-radius:var(--kritzel-controls-tooltip-border-radius, 8px);white-space:nowrap;box-shadow:var(--kritzel-controls-tooltip-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.12))}";
4
4
 
@@ -93,6 +93,6 @@ function defineCustomElement() {
93
93
  }
94
94
 
95
95
  export { KritzelTooltip as K, defineCustomElement as d };
96
- //# sourceMappingURL=p-DInF8Iby.js.map
96
+ //# sourceMappingURL=p-C9FTWNZY.js.map
97
97
 
98
- //# sourceMappingURL=p-DInF8Iby.js.map
98
+ //# sourceMappingURL=p-C9FTWNZY.js.map
@@ -1 +1 @@
1
- {"file":"p-DInF8Iby.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/shared/kritzel-tooltip/kritzel-tooltip.css?tag=kritzel-tooltip&encapsulation=shadow","src/components/shared/kritzel-tooltip/kritzel-tooltip.tsx"],"sourcesContent":[":host {\r\n width: auto;\r\n}\r\n\r\n.tooltip-content {\r\n position: relative;\r\n padding: 8px 12px;\r\n border-radius: 4px;\r\n width: fit-content;\r\n background-color: var(--kritzel-controls-tooltip-background-color, #ffffff);\r\n color: var(--kritzel-controls-tooltip-color, #000000);\r\n padding: var(--kritzel-controls-tooltip-padding, 8px);\r\n border-radius: var(--kritzel-controls-tooltip-border-radius, 8px);\r\n white-space: nowrap;\r\n box-shadow: var(--kritzel-controls-tooltip-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.12));\r\n}\r\n\r\n","import { Component, Host, Prop, h, Element, State, Listen } from '@stencil/core';\r\n\r\nconst MOBILE_BREAKPOINT = 768;\r\n\r\n@Component({\r\n tag: 'kritzel-tooltip',\r\n styleUrl: 'kritzel-tooltip.css',\r\n shadow: true,\r\n})\r\nexport class KritzelTooltip {\r\n @Prop()\r\n isVisible: boolean = false;\r\n\r\n @Prop()\r\n anchorElement: HTMLElement;\r\n\r\n @Prop()\r\n arrowSize: number = 8;\r\n\r\n @Prop()\r\n offsetY: number = 24;\r\n\r\n @Element()\r\n el: HTMLElement;\r\n\r\n @State()\r\n positionX: number = 0;\r\n\r\n @State()\r\n arrowOffset: string = '0px';\r\n\r\n @State()\r\n private isMobileView: boolean = window.innerWidth < MOBILE_BREAKPOINT;\r\n\r\n @Listen('resize', { target: 'window' })\r\n handleWindowResize() {\r\n this.isMobileView = window.innerWidth < MOBILE_BREAKPOINT;\r\n this.calculateAdjustedPosition();\r\n }\r\n\r\n componentWillLoad() {\r\n this.isMobileView = window.innerWidth < MOBILE_BREAKPOINT;\r\n this.calculateAdjustedPosition();\r\n }\r\n\r\n componentWillUpdate() {\r\n this.calculateAdjustedPosition();\r\n }\r\n\r\n private calculateAdjustedPosition() {\r\n if (this.isVisible && this.anchorElement) {\r\n const anchorRect = this.anchorElement.getBoundingClientRect();\r\n const tooltipContent = this.el.shadowRoot?.querySelector('.tooltip-content') as HTMLElement;\r\n\r\n if (!this.isMobileView) {\r\n this.positionX = anchorRect.left + anchorRect.width / 2;\r\n this.arrowOffset = `calc(${50}% - ${this.arrowSize}px)`; \r\n } else {\r\n const tooltipRect = tooltipContent.getBoundingClientRect();\r\n this.positionX = anchorRect.left + anchorRect.width / 2 - tooltipRect.width / 2;\r\n this.arrowOffset = `${anchorRect.left + anchorRect.width / 2 - tooltipRect.left - this.arrowSize}px`;\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <Host\r\n style={{\r\n position: 'fixed',\r\n zIndex: '9999',\r\n transition: 'opacity 0.3s ease-in-out, transform 0.3s ease-in-out',\r\n visibility: this.isVisible ? 'visible' : 'hidden',\r\n left: !this.isMobileView ? `${this.positionX}px` : '50%',\r\n marginBottom: `${this.offsetY + this.arrowSize}px`,\r\n }}\r\n >\r\n <div class=\"tooltip-content\" onClick={event => event.stopPropagation()}>\r\n <slot></slot>\r\n <div\r\n class=\"tooltip-arrow-wrapper\"\r\n style={{\r\n position: 'fixed',\r\n left: this.arrowOffset,\r\n bottom: `-${this.arrowSize * 2}px`,\r\n }}\r\n >\r\n <div\r\n class=\"tooltip-arrow\"\r\n style={{\r\n borderLeft: `${this.arrowSize}px solid transparent`,\r\n borderRight: `${this.arrowSize}px solid transparent`,\r\n borderTop: `${this.arrowSize}px solid var(--kritzel-controls-tooltip-background-color, #ffffff)`,\r\n filter: 'drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2))',\r\n }}\r\n ></div>\r\n <div\r\n class=\"tooltip-arrow-rect\"\r\n style={{\r\n position: 'relative',\r\n width: `${this.arrowSize * 2}px`,\r\n height: `${this.arrowSize}px`,\r\n backgroundColor: 'var(--kritzel-controls-tooltip-background-color, #ffffff)',\r\n bottom: `${this.arrowSize * 2}px`,\r\n }}\r\n ></div>\r\n </div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
1
+ {"file":"p-C9FTWNZY.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/shared/kritzel-tooltip/kritzel-tooltip.css?tag=kritzel-tooltip&encapsulation=shadow","src/components/shared/kritzel-tooltip/kritzel-tooltip.tsx"],"sourcesContent":[":host {\r\n width: auto;\r\n}\r\n\r\n.tooltip-content {\r\n position: relative;\r\n padding: 8px 12px;\r\n border-radius: 4px;\r\n width: fit-content;\r\n background-color: var(--kritzel-controls-tooltip-background-color, #ffffff);\r\n color: var(--kritzel-controls-tooltip-color, #000000);\r\n padding: var(--kritzel-controls-tooltip-padding, 8px);\r\n border-radius: var(--kritzel-controls-tooltip-border-radius, 8px);\r\n white-space: nowrap;\r\n box-shadow: var(--kritzel-controls-tooltip-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.12));\r\n}\r\n\r\n","import { Component, Host, Prop, h, Element, State, Listen } from '@stencil/core';\r\n\r\nconst MOBILE_BREAKPOINT = 768;\r\n\r\n@Component({\r\n tag: 'kritzel-tooltip',\r\n styleUrl: 'kritzel-tooltip.css',\r\n shadow: true,\r\n})\r\nexport class KritzelTooltip {\r\n @Prop()\r\n isVisible: boolean = false;\r\n\r\n @Prop()\r\n anchorElement: HTMLElement;\r\n\r\n @Prop()\r\n arrowSize: number = 8;\r\n\r\n @Prop()\r\n offsetY: number = 24;\r\n\r\n @Element()\r\n el: HTMLElement;\r\n\r\n @State()\r\n positionX: number = 0;\r\n\r\n @State()\r\n arrowOffset: string = '0px';\r\n\r\n @State()\r\n private isMobileView: boolean = window.innerWidth < MOBILE_BREAKPOINT;\r\n\r\n @Listen('resize', { target: 'window' })\r\n handleWindowResize() {\r\n this.isMobileView = window.innerWidth < MOBILE_BREAKPOINT;\r\n this.calculateAdjustedPosition();\r\n }\r\n\r\n componentWillLoad() {\r\n this.isMobileView = window.innerWidth < MOBILE_BREAKPOINT;\r\n this.calculateAdjustedPosition();\r\n }\r\n\r\n componentWillUpdate() {\r\n this.calculateAdjustedPosition();\r\n }\r\n\r\n private calculateAdjustedPosition() {\r\n if (this.isVisible && this.anchorElement) {\r\n const anchorRect = this.anchorElement.getBoundingClientRect();\r\n const tooltipContent = this.el.shadowRoot?.querySelector('.tooltip-content') as HTMLElement;\r\n\r\n if (!this.isMobileView) {\r\n this.positionX = anchorRect.left + anchorRect.width / 2;\r\n this.arrowOffset = `calc(${50}% - ${this.arrowSize}px)`; \r\n } else {\r\n const tooltipRect = tooltipContent.getBoundingClientRect();\r\n this.positionX = anchorRect.left + anchorRect.width / 2 - tooltipRect.width / 2;\r\n this.arrowOffset = `${anchorRect.left + anchorRect.width / 2 - tooltipRect.left - this.arrowSize}px`;\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <Host\r\n style={{\r\n position: 'fixed',\r\n zIndex: '9999',\r\n transition: 'opacity 0.3s ease-in-out, transform 0.3s ease-in-out',\r\n visibility: this.isVisible ? 'visible' : 'hidden',\r\n left: !this.isMobileView ? `${this.positionX}px` : '50%',\r\n marginBottom: `${this.offsetY + this.arrowSize}px`,\r\n }}\r\n >\r\n <div class=\"tooltip-content\" onClick={event => event.stopPropagation()}>\r\n <slot></slot>\r\n <div\r\n class=\"tooltip-arrow-wrapper\"\r\n style={{\r\n position: 'fixed',\r\n left: this.arrowOffset,\r\n bottom: `-${this.arrowSize * 2}px`,\r\n }}\r\n >\r\n <div\r\n class=\"tooltip-arrow\"\r\n style={{\r\n borderLeft: `${this.arrowSize}px solid transparent`,\r\n borderRight: `${this.arrowSize}px solid transparent`,\r\n borderTop: `${this.arrowSize}px solid var(--kritzel-controls-tooltip-background-color, #ffffff)`,\r\n filter: 'drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2))',\r\n }}\r\n ></div>\r\n <div\r\n class=\"tooltip-arrow-rect\"\r\n style={{\r\n position: 'relative',\r\n width: `${this.arrowSize * 2}px`,\r\n height: `${this.arrowSize}px`,\r\n backgroundColor: 'var(--kritzel-controls-tooltip-background-color, #ffffff)',\r\n bottom: `${this.arrowSize * 2}px`,\r\n }}\r\n ></div>\r\n </div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
@@ -1,5 +1,5 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-DC8SDK2U.js';
2
- import { d as defineCustomElement$1 } from './p-c6tIpE_t.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-DoQOtXjT.js';
2
+ import { d as defineCustomElement$1 } from './p-h3bqYufZ.js';
3
3
 
4
4
  const kritzelFontFamilyCss = ":host{display:flex;align-items:flex-start;gap:8px;padding:8px;box-sizing:border-box;width:100%}.font-style-button{display:flex;justify-content:center;align-items:center;width:42px;height:32px;padding:0;border:none;outline:none;background:none;cursor:pointer;border-radius:0;color:var(--control-text-color);font-weight:bold;-webkit-tap-highlight-color:transparent}.font-style-button:not(:last-child){border-right:1px solid #333333}.font-style-button:hover{background-color:var(--control-hover-bg)}.font-style-button:active{background-color:var(--control-active-bg)}.font-style-button.selected,.font-style-button.selected:hover,.font-style-button.selected:active{background-color:var(--control-selected-bg);color:var(--control-selected-color)}.font-style-button.italic-text{font-style:italic}";
5
5
 
@@ -66,6 +66,6 @@ function defineCustomElement() {
66
66
  }
67
67
 
68
68
  export { KritzelFontFamily as K, defineCustomElement as d };
69
- //# sourceMappingURL=p-B7P9QBiE.js.map
69
+ //# sourceMappingURL=p-C9ZagG9K.js.map
70
70
 
71
- //# sourceMappingURL=p-B7P9QBiE.js.map
71
+ //# sourceMappingURL=p-C9ZagG9K.js.map
@@ -1 +1 @@
1
- {"file":"p-B7P9QBiE.js","mappings":";;;AAAA,MAAM,oBAAoB,GAAG,wxBAAwxB;;MCYxyB,iBAAiB,iBAAAA,kBAAA,CAAA,MAAA,iBAAA,SAAAC,CAAA,CAAA;AAL9B,IAAA,WAAA,GAAA;;;;;QAOE,IAAA,CAAA,WAAW,GAAiB;AAC1B,YAAA,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;AAClC,YAAA,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;AACtC,YAAA,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;AAC1C,YAAA,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;AACpC,YAAA,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;AAChD,YAAA,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE;AACtD,YAAA,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;AACtC,YAAA,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;AACxC,YAAA,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;AAC9C,YAAA,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE;SACvD;AAiBO,QAAA,IAAA,CAAA,yBAAyB,GAAG,CAAC,KAA0B,KAAI;YACjE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAC1C,SAAC;AAuBF;IAlCC,iBAAiB,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACnD,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,kBAAkB,CAAC;YAC9F,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,kBAAkB,EAAE;gBACnD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK;;;;IASzD,MAAM,GAAA;AACJ,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,KAAK;YACtD,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;AACnB,YAAA,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,EAAE;AACpC,SAAA,CAAC,CAAC;AAEH,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CACE,CAAA,kBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAC9B,cAAc,EAAE,IAAI,CAAC,yBAAyB,EAC9C,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,kBAAkB,EAAE,EAAA,EAErD,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAQ,KAAK,EAAC,mBAAmB,EAAC,IAAI,EAAC,QAAQ,EAAW,EAAA,GAAA,CAAA,EAC1D,CAAQ,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,+BAA+B,EAAC,IAAI,EAAC,QAAQ,EAAW,EAAA,GAAA,CAAA,CACrD,CACd;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/shared/kritzel-font-family/kritzel-font-family.css?tag=kritzel-font-family&encapsulation=shadow","src/components/shared/kritzel-font-family/kritzel-font-family.tsx"],"sourcesContent":[":host {\r\n display: flex; \r\n align-items: flex-start; \r\n gap: 8px; \r\n padding: 8px; \r\n box-sizing: border-box; \r\n width: 100%;\r\n}\r\n\r\n.font-style-button {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 42px;\r\n height: 32px;\r\n padding: 0;\r\n border: none;\r\n outline: none;\r\n background: none;\r\n cursor: pointer;\r\n border-radius: 0; \r\n color: var(--control-text-color);\r\n font-weight: bold;\r\n -webkit-tap-highlight-color: transparent;\r\n}\r\n\r\n.font-style-button:not(:last-child) {\r\n border-right: 1px solid #333333; \r\n}\r\n\r\n.font-style-button:hover {\r\n background-color: var(--control-hover-bg);\r\n}\r\n\r\n.font-style-button:active {\r\n background-color: var(--control-active-bg);\r\n}\r\n\r\n.font-style-button.selected,\r\n.font-style-button.selected:hover,\r\n.font-style-button.selected:active {\r\n background-color: var(--control-selected-bg);\r\n color: var(--control-selected-color);\r\n}\r\n\r\n.font-style-button.italic-text {\r\n font-style: italic;\r\n}\r\n","import { Component, Host, h, Prop, Event, EventEmitter } from '@stencil/core';\r\n\r\nexport interface FontOption {\r\n value: string;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n tag: 'kritzel-font-family',\r\n styleUrl: 'kritzel-font-family.css',\r\n shadow: true,\r\n})\r\nexport class KritzelFontFamily {\r\n @Prop() \r\n fontOptions: FontOption[] = [\r\n { value: 'arial', label: 'Arial' },\r\n { value: 'verdana', label: 'Verdana' },\r\n { value: 'helvetica', label: 'Helvetica' },\r\n { value: 'tahoma', label: 'Tahoma' },\r\n { value: 'trebuchet ms', label: 'Trebuchet MS' },\r\n { value: 'times new roman', label: 'Times New Roman' },\r\n { value: 'georgia', label: 'Georgia' },\r\n { value: 'garamond', label: 'Garamond' },\r\n { value: 'courier new', label: 'Courier New' },\r\n { value: 'brush script mt', label: 'Brush Script MT' },\r\n ];\r\n\r\n @Prop({ mutable: true }) \r\n selectedFontFamily: string;\r\n\r\n @Event()\r\n fontFamilyChange: EventEmitter<string>;\r\n\r\n componentWillLoad() {\r\n if (this.fontOptions && this.fontOptions.length > 0) {\r\n const isValidCurrentFont = this.fontOptions.some(opt => opt.value === this.selectedFontFamily);\r\n if (!this.selectedFontFamily || !isValidCurrentFont) {\r\n this.selectedFontFamily = this.fontOptions[0].value;\r\n }\r\n }\r\n }\r\n\r\n private handleDropdownValueChange = (event: CustomEvent<string>) => {\r\n this.fontFamilyChange.emit(event.detail);\r\n };\r\n\r\n render() {\r\n const dropdownOptions = this.fontOptions.map(option => ({\r\n value: option.value,\r\n label: option.label,\r\n style: { fontFamily: option.value },\r\n }));\r\n\r\n return (\r\n <Host>\r\n <kritzel-dropdown\r\n options={dropdownOptions}\r\n value={this.selectedFontFamily}\r\n onValueChanged={this.handleDropdownValueChange}\r\n selectStyles={{ fontFamily: this.selectedFontFamily }}\r\n >\r\n <button class=\"font-style-button\" slot=\"suffix\">B</button>\r\n <button class=\"font-style-button italic-text\" slot=\"suffix\">I</button>\r\n </kritzel-dropdown>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
1
+ {"file":"p-C9ZagG9K.js","mappings":";;;AAAA,MAAM,oBAAoB,GAAG,wxBAAwxB;;MCYxyB,iBAAiB,iBAAAA,kBAAA,CAAA,MAAA,iBAAA,SAAAC,CAAA,CAAA;AAL9B,IAAA,WAAA,GAAA;;;;;QAOE,IAAA,CAAA,WAAW,GAAiB;AAC1B,YAAA,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;AAClC,YAAA,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;AACtC,YAAA,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;AAC1C,YAAA,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;AACpC,YAAA,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;AAChD,YAAA,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE;AACtD,YAAA,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;AACtC,YAAA,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;AACxC,YAAA,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;AAC9C,YAAA,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE;SACvD;AAiBO,QAAA,IAAA,CAAA,yBAAyB,GAAG,CAAC,KAA0B,KAAI;YACjE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAC1C,SAAC;AAuBF;IAlCC,iBAAiB,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACnD,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,kBAAkB,CAAC;YAC9F,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,kBAAkB,EAAE;gBACnD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK;;;;IASzD,MAAM,GAAA;AACJ,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,KAAK;YACtD,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;AACnB,YAAA,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,EAAE;AACpC,SAAA,CAAC,CAAC;AAEH,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CACE,CAAA,kBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAC9B,cAAc,EAAE,IAAI,CAAC,yBAAyB,EAC9C,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,kBAAkB,EAAE,EAAA,EAErD,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAQ,KAAK,EAAC,mBAAmB,EAAC,IAAI,EAAC,QAAQ,EAAW,EAAA,GAAA,CAAA,EAC1D,CAAQ,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,+BAA+B,EAAC,IAAI,EAAC,QAAQ,EAAW,EAAA,GAAA,CAAA,CACrD,CACd;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/shared/kritzel-font-family/kritzel-font-family.css?tag=kritzel-font-family&encapsulation=shadow","src/components/shared/kritzel-font-family/kritzel-font-family.tsx"],"sourcesContent":[":host {\r\n display: flex; \r\n align-items: flex-start; \r\n gap: 8px; \r\n padding: 8px; \r\n box-sizing: border-box; \r\n width: 100%;\r\n}\r\n\r\n.font-style-button {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 42px;\r\n height: 32px;\r\n padding: 0;\r\n border: none;\r\n outline: none;\r\n background: none;\r\n cursor: pointer;\r\n border-radius: 0; \r\n color: var(--control-text-color);\r\n font-weight: bold;\r\n -webkit-tap-highlight-color: transparent;\r\n}\r\n\r\n.font-style-button:not(:last-child) {\r\n border-right: 1px solid #333333; \r\n}\r\n\r\n.font-style-button:hover {\r\n background-color: var(--control-hover-bg);\r\n}\r\n\r\n.font-style-button:active {\r\n background-color: var(--control-active-bg);\r\n}\r\n\r\n.font-style-button.selected,\r\n.font-style-button.selected:hover,\r\n.font-style-button.selected:active {\r\n background-color: var(--control-selected-bg);\r\n color: var(--control-selected-color);\r\n}\r\n\r\n.font-style-button.italic-text {\r\n font-style: italic;\r\n}\r\n","import { Component, Host, h, Prop, Event, EventEmitter } from '@stencil/core';\r\n\r\nexport interface FontOption {\r\n value: string;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n tag: 'kritzel-font-family',\r\n styleUrl: 'kritzel-font-family.css',\r\n shadow: true,\r\n})\r\nexport class KritzelFontFamily {\r\n @Prop() \r\n fontOptions: FontOption[] = [\r\n { value: 'arial', label: 'Arial' },\r\n { value: 'verdana', label: 'Verdana' },\r\n { value: 'helvetica', label: 'Helvetica' },\r\n { value: 'tahoma', label: 'Tahoma' },\r\n { value: 'trebuchet ms', label: 'Trebuchet MS' },\r\n { value: 'times new roman', label: 'Times New Roman' },\r\n { value: 'georgia', label: 'Georgia' },\r\n { value: 'garamond', label: 'Garamond' },\r\n { value: 'courier new', label: 'Courier New' },\r\n { value: 'brush script mt', label: 'Brush Script MT' },\r\n ];\r\n\r\n @Prop({ mutable: true }) \r\n selectedFontFamily: string;\r\n\r\n @Event()\r\n fontFamilyChange: EventEmitter<string>;\r\n\r\n componentWillLoad() {\r\n if (this.fontOptions && this.fontOptions.length > 0) {\r\n const isValidCurrentFont = this.fontOptions.some(opt => opt.value === this.selectedFontFamily);\r\n if (!this.selectedFontFamily || !isValidCurrentFont) {\r\n this.selectedFontFamily = this.fontOptions[0].value;\r\n }\r\n }\r\n }\r\n\r\n private handleDropdownValueChange = (event: CustomEvent<string>) => {\r\n this.fontFamilyChange.emit(event.detail);\r\n };\r\n\r\n render() {\r\n const dropdownOptions = this.fontOptions.map(option => ({\r\n value: option.value,\r\n label: option.label,\r\n style: { fontFamily: option.value },\r\n }));\r\n\r\n return (\r\n <Host>\r\n <kritzel-dropdown\r\n options={dropdownOptions}\r\n value={this.selectedFontFamily}\r\n onValueChanged={this.handleDropdownValueChange}\r\n selectStyles={{ fontFamily: this.selectedFontFamily }}\r\n >\r\n <button class=\"font-style-button\" slot=\"suffix\">B</button>\r\n <button class=\"font-style-button italic-text\" slot=\"suffix\">I</button>\r\n </kritzel-dropdown>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
@@ -1,5 +1,5 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-DC8SDK2U.js';
2
- import { d as defineCustomElement$1 } from './p-CZkSABuJ.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-DoQOtXjT.js';
2
+ import { d as defineCustomElement$1 } from './p-ksTCzgsY.js';
3
3
 
4
4
  const kritzelContextMenuCss = ":host{display:block}.menu-container{display:flex;flex-direction:column;background-color:var(--kritzel-context-menu-background-color, #ffffff);border-radius:var(--kritzel-context-menu-border-radius, 8px);box-shadow:var(--kritzel-context-menu-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.12));border:var(--kritzel-context-menu-border, 1px solid hsl(0, 0%, 0%, 4.3%));padding:var(--kritzel-context-menu-padding,4px)}.menu-item{display:flex;align-items:center;gap:var(--kritzel-context-menu-item-gap, 8px);background:none;border:none;text-align:left;padding:var(--kritzel-context-menu-item-padding, 8px);border-radius:var(--kritzel-context-menu-item-border-radius, 8px);cursor:pointer;font-size:var(--kritzel-context-menu-item-font-size, 14px);color:var(--kritzel-context-menu-item-color, #333333);white-space:nowrap;-webkit-tap-highlight-color:transparent}.menu-item:not(.disabled):hover{background-color:var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.menu-item:not(.disabled):active{background-color:var(--kritzel-context-menu-item-active-background-color, hsl(0, 0%, 0%, 8.6%))}.menu-item.disabled{color:var(--kritzel-context-menu-item-disabled-color, #aaaaaa);cursor:default}.menu-item kritzel-icon{opacity:0.8;flex-shrink:0}.menu-item.disabled kritzel-icon{opacity:0.4}.label{flex-grow:1}";
5
5
 
@@ -44,6 +44,6 @@ function defineCustomElement() {
44
44
  }
45
45
 
46
46
  export { KritzelContextMenu as K, defineCustomElement as d };
47
- //# sourceMappingURL=p-BmAloSfd.js.map
47
+ //# sourceMappingURL=p-CRiUM-tD.js.map
48
48
 
49
- //# sourceMappingURL=p-BmAloSfd.js.map
49
+ //# sourceMappingURL=p-CRiUM-tD.js.map
@@ -1 +1 @@
1
- {"file":"p-BmAloSfd.js","mappings":";;;AAAA,MAAM,qBAAqB,GAAG,oyCAAoyC;;MCQrzC,kBAAkB,iBAAAA,kBAAA,CAAA,MAAA,kBAAA,SAAAC,CAAA,CAAA;;;;;;;AAUrB,IAAA,eAAe,CAAC,IAAqB,EAAA;QAE3C,MAAM,UAAU,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ;QAExF,IAAI,CAAC,UAAU,EAAE;AACf,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;;;IAIlC,MAAM,GAAA;AACJ,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,gBAAgB,EAAA,EACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAClB,CAAA,CAAA,QAAA,EAAA,EACE,GAAG,EAAE,CAAG,EAAA,IAAI,CAAC,KAAK,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAChD,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,IAAI,CAAC,QAAQ,KAAK,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,EAC/G,OAAO,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EACzC,YAAY,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAC9C,QAAQ,EAAE,OAAO,IAAI,CAAC,QAAQ,KAAK,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAA,EAE9E,IAAI,CAAC,IAAI,IAAI,CAAA,CAAA,cAAA,EAAA,EAAc,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAiB,CAAA,EACtE,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,OAAO,EAAA,EAAE,IAAI,CAAC,KAAK,CAAQ,CAChC,CACV,CAAC,CACE,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/ui/kritzel-context-menu/kritzel-context-menu.css?tag=kritzel-context-menu&encapsulation=shadow","src/components/ui/kritzel-context-menu/kritzel-context-menu.tsx"],"sourcesContent":[":host {\r\n display: block; \r\n}\r\n\r\n.menu-container {\r\n display: flex;\r\n flex-direction: column;\r\n background-color: var(--kritzel-context-menu-background-color, #ffffff);\r\n border-radius: var(--kritzel-context-menu-border-radius, 8px);\r\n box-shadow: var(--kritzel-context-menu-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.12));\r\n border: var(--kritzel-context-menu-border, 1px solid hsl(0, 0%, 0%, 4.3%));\r\n padding: var(--kritzel-context-menu-padding,4px);\r\n}\r\n\r\n.menu-item {\r\n display: flex;\r\n align-items: center;\r\n gap: var(--kritzel-context-menu-item-gap, 8px);\r\n background: none;\r\n border: none;\r\n text-align: left;\r\n padding: var(--kritzel-context-menu-item-padding, 8px);\r\n border-radius: var(--kritzel-context-menu-item-border-radius, 8px);\r\n cursor: pointer;\r\n font-size: var(--kritzel-context-menu-item-font-size, 14px);\r\n color: var(--kritzel-context-menu-item-color, #333333);\r\n white-space: nowrap;\r\n -webkit-tap-highlight-color: transparent;\r\n}\r\n\r\n.menu-item:not(.disabled):hover {\r\n background-color: var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%));\r\n}\r\n\r\n.menu-item:not(.disabled):active {\r\n background-color: var(--kritzel-context-menu-item-active-background-color, hsl(0, 0%, 0%, 8.6%));\r\n}\r\n\r\n.menu-item.disabled {\r\n color: var(--kritzel-context-menu-item-disabled-color, #aaaaaa);\r\n cursor: default;\r\n}\r\n\r\n.menu-item kritzel-icon {\r\n opacity: 0.8;\r\n flex-shrink: 0;\r\n}\r\n\r\n.menu-item.disabled kritzel-icon {\r\n opacity: 0.4;\r\n}\r\n\r\n.label {\r\n flex-grow: 1;\r\n}\r\n","import { Component, Host, h, Prop, Event, EventEmitter, Element } from '@stencil/core';\r\nimport { ContextMenuItem } from '../../../interfaces/context-menu-item.interface';\r\n\r\n@Component({\r\n tag: 'kritzel-context-menu',\r\n styleUrl: 'kritzel-context-menu.css',\r\n shadow: true,\r\n})\r\nexport class KritzelContextMenu {\r\n @Prop()\r\n items: ContextMenuItem[];\r\n\r\n @Event()\r\n actionSelected: EventEmitter<ContextMenuItem>;\r\n\r\n @Element()\r\n hostElement: HTMLElement;\r\n\r\n private handleItemClick(item: ContextMenuItem) {\r\n \r\n const isDisabled = typeof item.disabled === 'function' ? item.disabled() : item.disabled;\r\n\r\n if (!isDisabled) {\r\n this.actionSelected.emit(item);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <div class=\"menu-container\">\r\n {this.items.map(item => (\r\n <button\r\n key={`${item.label}-${this.items.indexOf(item)}`}\r\n class={{ 'menu-item': true, 'disabled': typeof item.disabled === 'function' ? item.disabled() : item.disabled }}\r\n onClick={() => this.handleItemClick(item)}\r\n onTouchStart={() => this.handleItemClick(item)}\r\n disabled={typeof item.disabled === 'function' ? item.disabled() : item.disabled}\r\n >\r\n {item.icon && <kritzel-icon name={item.icon} size={16}></kritzel-icon>}\r\n <span class=\"label\">{item.label}</span>\r\n </button>\r\n ))}\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
1
+ {"file":"p-CRiUM-tD.js","mappings":";;;AAAA,MAAM,qBAAqB,GAAG,oyCAAoyC;;MCQrzC,kBAAkB,iBAAAA,kBAAA,CAAA,MAAA,kBAAA,SAAAC,CAAA,CAAA;;;;;;;AAUrB,IAAA,eAAe,CAAC,IAAqB,EAAA;QAE3C,MAAM,UAAU,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ;QAExF,IAAI,CAAC,UAAU,EAAE;AACf,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;;;IAIlC,MAAM,GAAA;AACJ,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,gBAAgB,EAAA,EACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAClB,CAAA,CAAA,QAAA,EAAA,EACE,GAAG,EAAE,CAAG,EAAA,IAAI,CAAC,KAAK,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAChD,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,IAAI,CAAC,QAAQ,KAAK,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,EAC/G,OAAO,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EACzC,YAAY,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAC9C,QAAQ,EAAE,OAAO,IAAI,CAAC,QAAQ,KAAK,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAA,EAE9E,IAAI,CAAC,IAAI,IAAI,CAAA,CAAA,cAAA,EAAA,EAAc,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAiB,CAAA,EACtE,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,OAAO,EAAA,EAAE,IAAI,CAAC,KAAK,CAAQ,CAChC,CACV,CAAC,CACE,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/ui/kritzel-context-menu/kritzel-context-menu.css?tag=kritzel-context-menu&encapsulation=shadow","src/components/ui/kritzel-context-menu/kritzel-context-menu.tsx"],"sourcesContent":[":host {\r\n display: block; \r\n}\r\n\r\n.menu-container {\r\n display: flex;\r\n flex-direction: column;\r\n background-color: var(--kritzel-context-menu-background-color, #ffffff);\r\n border-radius: var(--kritzel-context-menu-border-radius, 8px);\r\n box-shadow: var(--kritzel-context-menu-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.12));\r\n border: var(--kritzel-context-menu-border, 1px solid hsl(0, 0%, 0%, 4.3%));\r\n padding: var(--kritzel-context-menu-padding,4px);\r\n}\r\n\r\n.menu-item {\r\n display: flex;\r\n align-items: center;\r\n gap: var(--kritzel-context-menu-item-gap, 8px);\r\n background: none;\r\n border: none;\r\n text-align: left;\r\n padding: var(--kritzel-context-menu-item-padding, 8px);\r\n border-radius: var(--kritzel-context-menu-item-border-radius, 8px);\r\n cursor: pointer;\r\n font-size: var(--kritzel-context-menu-item-font-size, 14px);\r\n color: var(--kritzel-context-menu-item-color, #333333);\r\n white-space: nowrap;\r\n -webkit-tap-highlight-color: transparent;\r\n}\r\n\r\n.menu-item:not(.disabled):hover {\r\n background-color: var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%));\r\n}\r\n\r\n.menu-item:not(.disabled):active {\r\n background-color: var(--kritzel-context-menu-item-active-background-color, hsl(0, 0%, 0%, 8.6%));\r\n}\r\n\r\n.menu-item.disabled {\r\n color: var(--kritzel-context-menu-item-disabled-color, #aaaaaa);\r\n cursor: default;\r\n}\r\n\r\n.menu-item kritzel-icon {\r\n opacity: 0.8;\r\n flex-shrink: 0;\r\n}\r\n\r\n.menu-item.disabled kritzel-icon {\r\n opacity: 0.4;\r\n}\r\n\r\n.label {\r\n flex-grow: 1;\r\n}\r\n","import { Component, Host, h, Prop, Event, EventEmitter, Element } from '@stencil/core';\r\nimport { ContextMenuItem } from '../../../interfaces/context-menu-item.interface';\r\n\r\n@Component({\r\n tag: 'kritzel-context-menu',\r\n styleUrl: 'kritzel-context-menu.css',\r\n shadow: true,\r\n})\r\nexport class KritzelContextMenu {\r\n @Prop()\r\n items: ContextMenuItem[];\r\n\r\n @Event()\r\n actionSelected: EventEmitter<ContextMenuItem>;\r\n\r\n @Element()\r\n hostElement: HTMLElement;\r\n\r\n private handleItemClick(item: ContextMenuItem) {\r\n \r\n const isDisabled = typeof item.disabled === 'function' ? item.disabled() : item.disabled;\r\n\r\n if (!isDisabled) {\r\n this.actionSelected.emit(item);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <div class=\"menu-container\">\r\n {this.items.map(item => (\r\n <button\r\n key={`${item.label}-${this.items.indexOf(item)}`}\r\n class={{ 'menu-item': true, 'disabled': typeof item.disabled === 'function' ? item.disabled() : item.disabled }}\r\n onClick={() => this.handleItemClick(item)}\r\n onTouchStart={() => this.handleItemClick(item)}\r\n disabled={typeof item.disabled === 'function' ? item.disabled() : item.disabled}\r\n >\r\n {item.icon && <kritzel-icon name={item.icon} size={16}></kritzel-icon>}\r\n <span class=\"label\">{item.label}</span>\r\n </button>\r\n ))}\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, h, d as Host } from './p-DC8SDK2U.js';
1
+ import { p as proxyCustomElement, H, h, d as Host } from './p-DoQOtXjT.js';
2
2
  import { K as KritzelMouseButton } from './p-D8W6LE-c.js';
3
3
 
4
4
  const kritzelCursorTrailCss = ":host{display:block;position:fixed;top:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:9000}";
@@ -110,6 +110,6 @@ function defineCustomElement() {
110
110
  }
111
111
 
112
112
  export { KritzelCursorTrail as K, defineCustomElement as d };
113
- //# sourceMappingURL=p-BvPTbq7F.js.map
113
+ //# sourceMappingURL=p-CSSrNLad.js.map
114
114
 
115
- //# sourceMappingURL=p-BvPTbq7F.js.map
115
+ //# sourceMappingURL=p-CSSrNLad.js.map
@@ -1 +1 @@
1
- {"file":"p-BvPTbq7F.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 { KritzelStore } from '../../../classes/store.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()\r\n store: KritzelStore;\r\n\r\n @State()\r\n cursorTrailPoints: Array<{ x: number; y: number; timestamp: number }> = [];\r\n\r\n @State()\r\n isLeftButtonDown: boolean = false;\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 @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.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.store.state.pointers.size === 0){\r\n this.isLeftButtonDown = false;\r\n this.cursorTrailPoints = [];\r\n }\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}
1
+ {"file":"p-CSSrNLad.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 { KritzelStore } from '../../../classes/store.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()\r\n store: KritzelStore;\r\n\r\n @State()\r\n cursorTrailPoints: Array<{ x: number; y: number; timestamp: number }> = [];\r\n\r\n @State()\r\n isLeftButtonDown: boolean = false;\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 @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.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.store.state.pointers.size === 0){\r\n this.isLeftButtonDown = false;\r\n this.cursorTrailPoints = [];\r\n }\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}
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, h, d as Host } from './p-DC8SDK2U.js';
1
+ import { p as proxyCustomElement, H, h, d as Host } from './p-DoQOtXjT.js';
2
2
 
3
3
  const kritzelColorCss = ":host{display:flex}.checkerboard-bg{background:repeating-conic-gradient(#ccc 0% 25%, #fff 0% 50%) 50% / 8px 8px;position:relative;overflow:hidden}.color-circle{width:24px;height:24px;border-radius:50%;box-sizing:border-box;display:block}.color-circle.white{border:1px solid var(--kritzel-color-palette-circle-border-color, #dddcdc)}";
4
4
 
@@ -75,6 +75,6 @@ function defineCustomElement() {
75
75
  }
76
76
 
77
77
  export { KritzelColor as K, defineCustomElement as d };
78
- //# sourceMappingURL=p-DFhbw-Fr.js.map
78
+ //# sourceMappingURL=p-CaQ7Iei7.js.map
79
79
 
80
- //# sourceMappingURL=p-DFhbw-Fr.js.map
80
+ //# sourceMappingURL=p-CaQ7Iei7.js.map
@@ -1 +1 @@
1
- {"file":"p-DFhbw-Fr.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/shared/kritzel-color/kritzel-color.css?tag=kritzel-color&encapsulation=shadow","src/components/shared/kritzel-color/kritzel-color.tsx"],"sourcesContent":[":host {\r\n display: flex;\r\n}\r\n\r\n.checkerboard-bg {\r\n background: repeating-conic-gradient(#ccc 0% 25%, #fff 0% 50%) 50% / 8px 8px;\r\n position: relative;\r\n overflow: hidden;\r\n}\r\n\r\n.color-circle {\r\n width: 24px;\r\n height: 24px;\r\n border-radius: 50%;\r\n box-sizing: border-box;\r\n display: block;\r\n}\r\n\r\n.color-circle.white {\r\n border: 1px solid var(--kritzel-color-palette-circle-border-color, #dddcdc);\r\n}","import { Component, Host, Prop, h } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'kritzel-color',\r\n styleUrl: 'kritzel-color.css',\r\n shadow: true,\r\n})\r\nexport class KritzelColor {\r\n @Prop()\r\n value: string;\r\n\r\n @Prop()\r\n size: number = 24;\r\n\r\n private isLightColor(hexColor: string): boolean {\r\n if (!hexColor) return false;\r\n\r\n let r = 0,\r\n g = 0,\r\n b = 0;\r\n\r\n let sanitizedHex = hexColor.startsWith('#') ? hexColor.slice(1) : hexColor;\r\n\r\n if (sanitizedHex.length === 3) {\r\n r = parseInt(sanitizedHex[0] + sanitizedHex[0], 16);\r\n g = parseInt(sanitizedHex[1] + sanitizedHex[1], 16);\r\n b = parseInt(sanitizedHex[2] + sanitizedHex[2], 16);\r\n } else if (sanitizedHex.length === 6) {\r\n r = parseInt(sanitizedHex.substring(0, 2), 16);\r\n g = parseInt(sanitizedHex.substring(2, 4), 16);\r\n b = parseInt(sanitizedHex.substring(4, 6), 16);\r\n } else {\r\n return false;\r\n }\r\n\r\n if (isNaN(r) || isNaN(g) || isNaN(b)) {\r\n return false;\r\n }\r\n\r\n const luminance = 0.299 * r + 0.587 * g + 0.114 * b;\r\n\r\n return luminance > 220;\r\n }\r\n\r\n render() {\r\n const isColorVeryLight = this.isLightColor(this.value);\r\n return (\r\n <Host>\r\n <div\r\n class=\"checkerboard-bg\"\r\n style={{\r\n width: `${this.size}px`,\r\n height: `${this.size}px`,\r\n borderRadius: '50%',\r\n display: 'inline-block',\r\n position: 'relative',\r\n }}\r\n >\r\n <div\r\n class={{\r\n 'color-circle': true,\r\n 'white': isColorVeryLight,\r\n }}\r\n style={{\r\n backgroundColor: this.value,\r\n width: `${this.size}px`,\r\n height: `${this.size}px`,\r\n borderRadius: '50%',\r\n position: 'absolute',\r\n top: '0',\r\n left: '0',\r\n display: 'inline-block',\r\n }}\r\n ></div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
1
+ {"file":"p-CaQ7Iei7.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/shared/kritzel-color/kritzel-color.css?tag=kritzel-color&encapsulation=shadow","src/components/shared/kritzel-color/kritzel-color.tsx"],"sourcesContent":[":host {\r\n display: flex;\r\n}\r\n\r\n.checkerboard-bg {\r\n background: repeating-conic-gradient(#ccc 0% 25%, #fff 0% 50%) 50% / 8px 8px;\r\n position: relative;\r\n overflow: hidden;\r\n}\r\n\r\n.color-circle {\r\n width: 24px;\r\n height: 24px;\r\n border-radius: 50%;\r\n box-sizing: border-box;\r\n display: block;\r\n}\r\n\r\n.color-circle.white {\r\n border: 1px solid var(--kritzel-color-palette-circle-border-color, #dddcdc);\r\n}","import { Component, Host, Prop, h } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'kritzel-color',\r\n styleUrl: 'kritzel-color.css',\r\n shadow: true,\r\n})\r\nexport class KritzelColor {\r\n @Prop()\r\n value: string;\r\n\r\n @Prop()\r\n size: number = 24;\r\n\r\n private isLightColor(hexColor: string): boolean {\r\n if (!hexColor) return false;\r\n\r\n let r = 0,\r\n g = 0,\r\n b = 0;\r\n\r\n let sanitizedHex = hexColor.startsWith('#') ? hexColor.slice(1) : hexColor;\r\n\r\n if (sanitizedHex.length === 3) {\r\n r = parseInt(sanitizedHex[0] + sanitizedHex[0], 16);\r\n g = parseInt(sanitizedHex[1] + sanitizedHex[1], 16);\r\n b = parseInt(sanitizedHex[2] + sanitizedHex[2], 16);\r\n } else if (sanitizedHex.length === 6) {\r\n r = parseInt(sanitizedHex.substring(0, 2), 16);\r\n g = parseInt(sanitizedHex.substring(2, 4), 16);\r\n b = parseInt(sanitizedHex.substring(4, 6), 16);\r\n } else {\r\n return false;\r\n }\r\n\r\n if (isNaN(r) || isNaN(g) || isNaN(b)) {\r\n return false;\r\n }\r\n\r\n const luminance = 0.299 * r + 0.587 * g + 0.114 * b;\r\n\r\n return luminance > 220;\r\n }\r\n\r\n render() {\r\n const isColorVeryLight = this.isLightColor(this.value);\r\n return (\r\n <Host>\r\n <div\r\n class=\"checkerboard-bg\"\r\n style={{\r\n width: `${this.size}px`,\r\n height: `${this.size}px`,\r\n borderRadius: '50%',\r\n display: 'inline-block',\r\n position: 'relative',\r\n }}\r\n >\r\n <div\r\n class={{\r\n 'color-circle': true,\r\n 'white': isColorVeryLight,\r\n }}\r\n style={{\r\n backgroundColor: this.value,\r\n width: `${this.size}px`,\r\n height: `${this.size}px`,\r\n borderRadius: '50%',\r\n position: 'absolute',\r\n top: '0',\r\n left: '0',\r\n display: 'inline-block',\r\n }}\r\n ></div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
@@ -1,5 +1,5 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-DC8SDK2U.js';
2
- import { d as defineCustomElement$1 } from './p-DFhbw-Fr.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-DoQOtXjT.js';
2
+ import { d as defineCustomElement$1 } from './p-CaQ7Iei7.js';
3
3
 
4
4
  const kritzelStrokeSizeCss = ":host{display:flex;align-items:flex-start;gap:8px;padding:8px;box-sizing:border-box}.size-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:pointer;border:2px solid transparent;box-sizing:border-box}.size-container:hover{background-color:var(--kritzel-stroke-size-hover-background-color, #f0f0f0)}.size-container.selected{border-color:var(--kritzel-selection-border-color, #0E1111);background-color:var(--kritzel-stroke-size-selected-background-color, #f0f0f0)}";
5
5
 
@@ -47,6 +47,6 @@ function defineCustomElement() {
47
47
  }
48
48
 
49
49
  export { KritzelStrokeSize as K, defineCustomElement as d };
50
- //# sourceMappingURL=p-CPjl7Inl.js.map
50
+ //# sourceMappingURL=p-D04aTZsR.js.map
51
51
 
52
- //# sourceMappingURL=p-CPjl7Inl.js.map
52
+ //# sourceMappingURL=p-D04aTZsR.js.map
@@ -1 +1 @@
1
- {"file":"p-CPjl7Inl.js","mappings":";;;AAAA,MAAM,oBAAoB,GAAG,8gBAA8gB;;MCO9hB,iBAAiB,iBAAAA,kBAAA,CAAA,MAAA,iBAAA,SAAAC,CAAA,CAAA;AAL9B,IAAA,WAAA,GAAA;;;;;AAOE,QAAA,IAAA,CAAA,KAAK,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAGvC,QAAA,IAAY,CAAA,YAAA,GAAkB,IAAI;AA2BnC;AAtBS,IAAA,eAAe,CAAC,IAAY,EAAA;AAClC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;;IAG5B,MAAM,GAAA;AACJ,QAAA,QACE,CAAC,CAAA,IAAI,EACF,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAClB,CAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAE;AACL,gBAAA,gBAAgB,EAAE,IAAI;AACtB,gBAAA,UAAU,EAAE,IAAI,CAAC,YAAY,KAAK,IAAI;AACvC,aAAA,EACD,OAAO,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAA,EAEzC,CAAA,CAAA,eAAA,EAAA,EAAe,KAAK,EAAC,SAAS,EAAC,IAAI,EAAE,IAAI,EAAA,CAAkB,CACvD,CACP,CAAC,CACG;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/shared/kritzel-stroke-size/kritzel-stroke-size.css?tag=kritzel-stroke-size&encapsulation=shadow","src/components/shared/kritzel-stroke-size/kritzel-stroke-size.tsx"],"sourcesContent":[":host {\r\n display: flex;\r\n align-items: flex-start;\r\n gap: 8px;\r\n padding: 8px;\r\n box-sizing: border-box;\r\n}\r\n\r\n.size-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: pointer;\r\n border: 2px solid transparent;\r\n box-sizing: border-box;\r\n}\r\n\r\n.size-container:hover {\r\n background-color: var(--kritzel-stroke-size-hover-background-color, #f0f0f0);\r\n}\r\n\r\n.size-container.selected {\r\n border-color: var(--kritzel-selection-border-color, #0E1111);\r\n background-color: var(--kritzel-stroke-size-selected-background-color, #f0f0f0);\r\n}\r\n","import { Component, Host, h, Prop, Event, EventEmitter } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'kritzel-stroke-size',\r\n styleUrl: 'kritzel-stroke-size.css',\r\n shadow: true,\r\n})\r\nexport class KritzelStrokeSize {\r\n @Prop() \r\n sizes: number[] = [4, 6, 8, 12, 16, 24];\r\n\r\n @Prop({ mutable: true }) \r\n selectedSize: number | null = null;\r\n\r\n @Event() \r\n sizeChange: EventEmitter<number>;\r\n\r\n private handleSizeClick(size: number) {\r\n this.selectedSize = size;\r\n this.sizeChange.emit(size);\r\n }\r\n\r\n render() {\r\n return (\r\n <Host>\r\n {this.sizes.map(size => (\r\n <div\r\n class={{\r\n 'size-container': true,\r\n 'selected': this.selectedSize === size,\r\n }}\r\n onClick={() => this.handleSizeClick(size)}\r\n >\r\n <kritzel-color value='#000000' size={size}></kritzel-color>\r\n </div>\r\n ))}\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
1
+ {"file":"p-D04aTZsR.js","mappings":";;;AAAA,MAAM,oBAAoB,GAAG,8gBAA8gB;;MCO9hB,iBAAiB,iBAAAA,kBAAA,CAAA,MAAA,iBAAA,SAAAC,CAAA,CAAA;AAL9B,IAAA,WAAA,GAAA;;;;;AAOE,QAAA,IAAA,CAAA,KAAK,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAGvC,QAAA,IAAY,CAAA,YAAA,GAAkB,IAAI;AA2BnC;AAtBS,IAAA,eAAe,CAAC,IAAY,EAAA;AAClC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;;IAG5B,MAAM,GAAA;AACJ,QAAA,QACE,CAAC,CAAA,IAAI,EACF,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAClB,CAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAE;AACL,gBAAA,gBAAgB,EAAE,IAAI;AACtB,gBAAA,UAAU,EAAE,IAAI,CAAC,YAAY,KAAK,IAAI;AACvC,aAAA,EACD,OAAO,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAA,EAEzC,CAAA,CAAA,eAAA,EAAA,EAAe,KAAK,EAAC,SAAS,EAAC,IAAI,EAAE,IAAI,EAAA,CAAkB,CACvD,CACP,CAAC,CACG;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/shared/kritzel-stroke-size/kritzel-stroke-size.css?tag=kritzel-stroke-size&encapsulation=shadow","src/components/shared/kritzel-stroke-size/kritzel-stroke-size.tsx"],"sourcesContent":[":host {\r\n display: flex;\r\n align-items: flex-start;\r\n gap: 8px;\r\n padding: 8px;\r\n box-sizing: border-box;\r\n}\r\n\r\n.size-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: pointer;\r\n border: 2px solid transparent;\r\n box-sizing: border-box;\r\n}\r\n\r\n.size-container:hover {\r\n background-color: var(--kritzel-stroke-size-hover-background-color, #f0f0f0);\r\n}\r\n\r\n.size-container.selected {\r\n border-color: var(--kritzel-selection-border-color, #0E1111);\r\n background-color: var(--kritzel-stroke-size-selected-background-color, #f0f0f0);\r\n}\r\n","import { Component, Host, h, Prop, Event, EventEmitter } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'kritzel-stroke-size',\r\n styleUrl: 'kritzel-stroke-size.css',\r\n shadow: true,\r\n})\r\nexport class KritzelStrokeSize {\r\n @Prop() \r\n sizes: number[] = [4, 6, 8, 12, 16, 24];\r\n\r\n @Prop({ mutable: true }) \r\n selectedSize: number | null = null;\r\n\r\n @Event() \r\n sizeChange: EventEmitter<number>;\r\n\r\n private handleSizeClick(size: number) {\r\n this.selectedSize = size;\r\n this.sizeChange.emit(size);\r\n }\r\n\r\n render() {\r\n return (\r\n <Host>\r\n {this.sizes.map(size => (\r\n <div\r\n class={{\r\n 'size-container': true,\r\n 'selected': this.selectedSize === size,\r\n }}\r\n onClick={() => this.handleSizeClick(size)}\r\n >\r\n <kritzel-color value='#000000' size={size}></kritzel-color>\r\n </div>\r\n ))}\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
@@ -1,10 +1,10 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-DC8SDK2U.js';
2
- import { d as defineCustomElement$6 } from './p-Ck2d5Wd1.js';
3
- import { d as defineCustomElement$5 } from './p-DFhbw-Fr.js';
4
- import { d as defineCustomElement$4 } from './p-DHT5gK0E.js';
5
- import { d as defineCustomElement$3 } from './p-c6tIpE_t.js';
6
- import { d as defineCustomElement$2 } from './p-CZkSABuJ.js';
7
- import { d as defineCustomElement$1 } from './p-CPjl7Inl.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-DoQOtXjT.js';
2
+ import { d as defineCustomElement$6 } from './p-BH1Tkwyh.js';
3
+ import { d as defineCustomElement$5 } from './p-CaQ7Iei7.js';
4
+ import { d as defineCustomElement$4 } from './p-yBnfPxIa.js';
5
+ import { d as defineCustomElement$3 } from './p-h3bqYufZ.js';
6
+ import { d as defineCustomElement$2 } from './p-ksTCzgsY.js';
7
+ import { d as defineCustomElement$1 } from './p-D04aTZsR.js';
8
8
 
9
9
  const kritzelControlBrushConfigCss = ":host{display:flex;flex-direction:column;width:100%}.expand-toggle{background:none;border:none;cursor:pointer;font-size:14px;line-height:1;padding:8px;color:var(--kritzel-color-palette-expand-toggle-color, #666666)}.expand-toggle:hover{color:var(--kritzel-color-palette-expand-toggle-hover-color, #333333)}";
10
10
 
@@ -106,6 +106,6 @@ function defineCustomElement() {
106
106
  }
107
107
 
108
108
  export { KritzelControlBrushConfig as K, defineCustomElement as d };
109
- //# sourceMappingURL=p-maiDeBe9.js.map
109
+ //# sourceMappingURL=p-DLV-5gE_.js.map
110
110
 
111
- //# sourceMappingURL=p-maiDeBe9.js.map
111
+ //# sourceMappingURL=p-DLV-5gE_.js.map