kritzel-stencil 0.1.1 → 0.1.2

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 (172) hide show
  1. package/dist/cjs/{default-line-tool.config-SdMGkNhv.js → default-line-tool.config-MA02HCrH.js} +635 -118
  2. package/dist/cjs/{index-BeKMS-Zt.js → index-Bj0n7fQQ.js} +84 -7
  3. package/dist/cjs/index.cjs.js +1 -1
  4. package/dist/cjs/kritzel-brush-style.cjs.entry.js +1 -1
  5. package/dist/cjs/{kritzel-color_22.cjs.entry.js → kritzel-color_24.cjs.entry.js} +870 -769
  6. package/dist/cjs/loader.cjs.js +2 -2
  7. package/dist/cjs/stencil.cjs.js +3 -3
  8. package/dist/collection/classes/core/core.class.js +2 -0
  9. package/dist/collection/classes/core/viewport.class.js +43 -3
  10. package/dist/collection/classes/objects/line.class.js +1 -0
  11. package/dist/collection/classes/objects/path.class.js +1 -0
  12. package/dist/collection/classes/objects/shape.class.js +1 -0
  13. package/dist/collection/classes/objects/text.class.js +4 -3
  14. package/dist/collection/classes/providers/indexeddb-sync-provider.class.js +0 -1
  15. package/dist/collection/classes/tools/brush-tool.class.js +5 -0
  16. package/dist/collection/classes/tools/line-tool.class.js +31 -1
  17. package/dist/collection/classes/tools/selection-tool.class.js +193 -0
  18. package/dist/collection/classes/tools/shape-tool.class.js +2 -0
  19. package/dist/collection/classes/tools/text-tool.class.js +3 -0
  20. package/dist/collection/collection-manifest.json +5 -3
  21. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +3 -2
  22. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +37 -19
  23. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +108 -36
  24. package/dist/collection/components/shared/kritzel-color/kritzel-color.js +2 -2
  25. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.css +1 -1
  26. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +24 -2
  27. package/dist/collection/components/shared/kritzel-font/kritzel-font.js +1 -1
  28. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.css +1 -1
  29. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.css +1 -1
  30. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +1 -1
  31. package/dist/collection/components/shared/kritzel-line-endings/kritzel-line-endings.css +60 -0
  32. package/dist/collection/components/shared/kritzel-line-endings/kritzel-line-endings.js +187 -0
  33. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +15 -8
  34. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js +16 -9
  35. package/dist/collection/components/shared/kritzel-opacity-slider/kritzel-opacity-slider.css +85 -0
  36. package/dist/collection/components/shared/kritzel-opacity-slider/kritzel-opacity-slider.js +163 -0
  37. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +1 -1
  38. package/dist/collection/components/shared/kritzel-shape-fill/kritzel-shape-fill.css +47 -0
  39. package/dist/collection/components/shared/kritzel-shape-fill/kritzel-shape-fill.js +93 -0
  40. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +13 -7
  41. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.css +11 -2
  42. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +2 -2
  43. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.css +1 -1
  44. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +6 -4
  45. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +6 -3
  46. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +95 -14
  47. package/dist/collection/components/ui/kritzel-tool-config/kritzel-tool-config.css +38 -0
  48. package/dist/collection/components/ui/kritzel-tool-config/kritzel-tool-config.js +321 -0
  49. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +3 -2
  50. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js +6 -3
  51. package/dist/collection/configs/default-brush-tool.config.js +2 -52
  52. package/dist/collection/configs/default-line-tool.config.js +2 -26
  53. package/dist/collection/configs/default-shape-tool.config.js +2 -15
  54. package/dist/collection/configs/default-text-tool.config.js +2 -26
  55. package/dist/collection/constants/color-palette.constants.js +30 -0
  56. package/dist/collection/helpers/color.helper.js +31 -0
  57. package/dist/collection/helpers/tool-config.helper.js +65 -0
  58. package/dist/collection/interfaces/tool-config.interface.js +1 -0
  59. package/dist/components/index.d.ts +8 -4
  60. package/dist/components/index.js +1 -1
  61. package/dist/components/kritzel-brush-style.js +1 -1
  62. package/dist/components/kritzel-color-palette.js +1 -1
  63. package/dist/components/kritzel-color.js +1 -1
  64. package/dist/components/kritzel-context-menu.js +1 -1
  65. package/dist/components/kritzel-controls.js +1 -1
  66. package/dist/components/kritzel-cursor-trail.js +1 -1
  67. package/dist/components/kritzel-dropdown.js +1 -1
  68. package/dist/components/kritzel-editor.js +1 -1
  69. package/dist/components/kritzel-engine.js +1 -1
  70. package/dist/components/kritzel-font-family.js +1 -1
  71. package/dist/components/kritzel-font-size.js +1 -1
  72. package/dist/components/kritzel-font.js +1 -1
  73. package/dist/components/kritzel-icon.js +1 -1
  74. package/dist/components/kritzel-line-endings.d.ts +11 -0
  75. package/dist/components/kritzel-line-endings.js +1 -0
  76. package/dist/components/kritzel-menu-item.js +1 -1
  77. package/dist/components/kritzel-menu.js +1 -1
  78. package/dist/components/kritzel-opacity-slider.d.ts +11 -0
  79. package/dist/components/kritzel-opacity-slider.js +1 -0
  80. package/dist/components/kritzel-portal.js +1 -1
  81. package/dist/components/kritzel-shape-fill.d.ts +11 -0
  82. package/dist/components/kritzel-shape-fill.js +1 -0
  83. package/dist/components/kritzel-split-button.js +1 -1
  84. package/dist/components/kritzel-stroke-size.js +1 -1
  85. package/dist/components/kritzel-tool-config.d.ts +11 -0
  86. package/dist/components/kritzel-tool-config.js +1 -0
  87. package/dist/components/kritzel-tooltip.js +1 -1
  88. package/dist/components/kritzel-utility-panel.js +1 -1
  89. package/dist/components/kritzel-workspace-manager.js +1 -1
  90. package/dist/components/p-83YX0-FS.js +1 -0
  91. package/dist/components/p-8iEiCuEN.js +1 -0
  92. package/dist/components/p-9XZbc_qK.js +1 -0
  93. package/dist/components/p-B3P64-gH.js +9 -0
  94. package/dist/components/p-B8QjTqOY.js +1 -0
  95. package/dist/components/p-BF6MdW17.js +1 -0
  96. package/dist/components/p-BVIY50lR.js +1 -0
  97. package/dist/components/p-BbqT9o1F.js +1 -0
  98. package/dist/components/{p-CXzfYQ_u.js → p-BnidlyU0.js} +1 -1
  99. package/dist/components/{p-Bj_Og27M.js → p-BxS4Pdpz.js} +1 -1
  100. package/dist/components/{p-g0N9j_uT.js → p-CCj8nmQH.js} +1 -1
  101. package/dist/components/{p-1z-ds26_.js → p-CLOnpu42.js} +1 -1
  102. package/dist/components/{p-D1tfzpy8.js → p-CSGeDE4f.js} +1 -1
  103. package/dist/components/p-CbuHMNa9.js +1 -0
  104. package/dist/components/p-ClMFs3KI.js +1 -0
  105. package/dist/components/{p-IAqZFssU.js → p-Cnpk2hfo.js} +1 -1
  106. package/dist/components/{p-Cy77SpWt.js → p-Ctv4NAxk.js} +1 -1
  107. package/dist/components/p-CyHZWbkS.js +1 -0
  108. package/dist/components/{p-C4krHoUl.js → p-D8GeJNUv.js} +1 -1
  109. package/dist/components/{p-XGgKC_Fe.js → p-DKgqzi2Y.js} +1 -1
  110. package/dist/components/p-DOF5fWDU.js +1 -0
  111. package/dist/components/{p-4FEa4ADy.js → p-DV_h5Jo2.js} +1 -1
  112. package/dist/components/{p-DTezr6w9.js → p-DgCGSL2Q.js} +1 -1
  113. package/dist/components/{p-D5ZsALCP.js → p-wRXL928z.js} +1 -1
  114. package/dist/esm/{default-line-tool.config-Cw8mdDpt.js → default-line-tool.config-DLpNl6R9.js} +634 -110
  115. package/dist/esm/{index-BqhmuUH2.js → index-OLdaFN6W.js} +84 -7
  116. package/dist/esm/index.js +2 -2
  117. package/dist/esm/kritzel-brush-style.entry.js +1 -1
  118. package/dist/esm/{kritzel-color_22.entry.js → kritzel-color_24.entry.js} +859 -760
  119. package/dist/esm/loader.js +3 -3
  120. package/dist/esm/stencil.js +4 -4
  121. package/dist/stencil/index.esm.js +1 -1
  122. package/dist/stencil/{p-09295079.entry.js → p-802bc7cf.entry.js} +1 -1
  123. package/dist/stencil/p-DLpNl6R9.js +1 -0
  124. package/dist/stencil/p-OLdaFN6W.js +2 -0
  125. package/dist/stencil/p-caf30edb.entry.js +9 -0
  126. package/dist/stencil/stencil.esm.js +1 -1
  127. package/dist/types/classes/core/viewport.class.d.ts +6 -0
  128. package/dist/types/classes/objects/shape.class.d.ts +1 -0
  129. package/dist/types/classes/tools/brush-tool.class.d.ts +1 -0
  130. package/dist/types/classes/tools/line-tool.class.d.ts +2 -1
  131. package/dist/types/classes/tools/selection-tool.class.d.ts +22 -0
  132. package/dist/types/classes/tools/shape-tool.class.d.ts +1 -0
  133. package/dist/types/classes/tools/text-tool.class.d.ts +1 -0
  134. package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +2 -0
  135. package/dist/types/components/shared/kritzel-color-palette/kritzel-color-palette.d.ts +1 -0
  136. package/dist/types/components/shared/kritzel-line-endings/kritzel-line-endings.d.ts +23 -0
  137. package/dist/types/components/shared/kritzel-opacity-slider/kritzel-opacity-slider.d.ts +17 -0
  138. package/dist/types/components/shared/kritzel-shape-fill/kritzel-shape-fill.d.ts +10 -0
  139. package/dist/types/components/ui/kritzel-controls/kritzel-controls.d.ts +9 -0
  140. package/dist/types/components/ui/kritzel-tool-config/kritzel-tool-config.d.ts +25 -0
  141. package/dist/types/components.d.ts +235 -82
  142. package/dist/types/constants/color-palette.constants.d.ts +5 -0
  143. package/dist/types/helpers/color.helper.d.ts +9 -0
  144. package/dist/types/helpers/tool-config.helper.d.ts +4 -0
  145. package/dist/types/interfaces/line-options.interface.d.ts +1 -0
  146. package/dist/types/interfaces/path-options.interface.d.ts +1 -0
  147. package/dist/types/interfaces/tool-config.interface.d.ts +26 -0
  148. package/dist/types/stencil-public-runtime.d.ts +29 -0
  149. package/package.json +5 -3
  150. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.css +0 -19
  151. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +0 -134
  152. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.css +0 -19
  153. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js +0 -114
  154. package/dist/components/kritzel-control-brush-config.d.ts +0 -11
  155. package/dist/components/kritzel-control-brush-config.js +0 -1
  156. package/dist/components/kritzel-control-text-config.d.ts +0 -11
  157. package/dist/components/kritzel-control-text-config.js +0 -1
  158. package/dist/components/p-BXaWhpO2.js +0 -1
  159. package/dist/components/p-BtuXeItZ.js +0 -1
  160. package/dist/components/p-C-d2IH4v.js +0 -1
  161. package/dist/components/p-C3UriJh7.js +0 -1
  162. package/dist/components/p-CF5L2Gdl.js +0 -1
  163. package/dist/components/p-CeKT_dTd.js +0 -1
  164. package/dist/components/p-Cp15toXH.js +0 -1
  165. package/dist/components/p-D4n7UbGY.js +0 -1
  166. package/dist/components/p-Du1vxHy8.js +0 -1
  167. package/dist/components/p-exWKDgI8.js +0 -9
  168. package/dist/stencil/p-BqhmuUH2.js +0 -2
  169. package/dist/stencil/p-Cw8mdDpt.js +0 -1
  170. package/dist/stencil/p-d21a009f.entry.js +0 -9
  171. package/dist/types/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.d.ts +0 -15
  172. package/dist/types/components/ui/kritzel-control-text-config/kritzel-control-text-config.d.ts +0 -12
@@ -0,0 +1,163 @@
1
+ import { Host, h } from "@stencil/core";
2
+ export class KritzelOpacitySlider {
3
+ /** Current opacity value (0 to 1) */
4
+ value = 1;
5
+ /** Minimum opacity value */
6
+ min = 0;
7
+ /** Maximum opacity value */
8
+ max = 1;
9
+ /** Step increment */
10
+ step = 0.01;
11
+ /** Color to display in the preview (optional) */
12
+ previewColor = '#000000';
13
+ valueChange;
14
+ handleInput(event) {
15
+ const input = event.target;
16
+ const newValue = parseFloat(input.value);
17
+ this.value = newValue;
18
+ this.valueChange.emit(newValue);
19
+ }
20
+ getPercentage() {
21
+ return Math.round(this.value * 100);
22
+ }
23
+ render() {
24
+ const percentage = this.getPercentage();
25
+ return (h(Host, { key: 'e1409175b038e78d2659356452c48ccc7d79b8de' }, h("div", { key: '1de138f56f699fc54623ed8d7b8b5c6d3eda3c67', class: "opacity-container" }, h("div", { key: '1dd5d0d36c8d025ba46a0623a20f040990cc749a', class: "slider-wrapper" }, h("input", { key: '7b555aa0a4a9abfdcdadc86bffa5878c9336d1e4', type: "range", class: "opacity-slider", min: this.min, max: this.max, step: this.step, value: this.value, onInput: (e) => this.handleInput(e), style: {
26
+ '--slider-progress': `${percentage}%`,
27
+ } })))));
28
+ }
29
+ static get is() { return "kritzel-opacity-slider"; }
30
+ static get encapsulation() { return "shadow"; }
31
+ static get originalStyleUrls() {
32
+ return {
33
+ "$": ["kritzel-opacity-slider.css"]
34
+ };
35
+ }
36
+ static get styleUrls() {
37
+ return {
38
+ "$": ["kritzel-opacity-slider.css"]
39
+ };
40
+ }
41
+ static get properties() {
42
+ return {
43
+ "value": {
44
+ "type": "number",
45
+ "mutable": true,
46
+ "complexType": {
47
+ "original": "number",
48
+ "resolved": "number",
49
+ "references": {}
50
+ },
51
+ "required": false,
52
+ "optional": false,
53
+ "docs": {
54
+ "tags": [],
55
+ "text": "Current opacity value (0 to 1)"
56
+ },
57
+ "getter": false,
58
+ "setter": false,
59
+ "reflect": false,
60
+ "attribute": "value",
61
+ "defaultValue": "1"
62
+ },
63
+ "min": {
64
+ "type": "number",
65
+ "mutable": false,
66
+ "complexType": {
67
+ "original": "number",
68
+ "resolved": "number",
69
+ "references": {}
70
+ },
71
+ "required": false,
72
+ "optional": false,
73
+ "docs": {
74
+ "tags": [],
75
+ "text": "Minimum opacity value"
76
+ },
77
+ "getter": false,
78
+ "setter": false,
79
+ "reflect": false,
80
+ "attribute": "min",
81
+ "defaultValue": "0"
82
+ },
83
+ "max": {
84
+ "type": "number",
85
+ "mutable": false,
86
+ "complexType": {
87
+ "original": "number",
88
+ "resolved": "number",
89
+ "references": {}
90
+ },
91
+ "required": false,
92
+ "optional": false,
93
+ "docs": {
94
+ "tags": [],
95
+ "text": "Maximum opacity value"
96
+ },
97
+ "getter": false,
98
+ "setter": false,
99
+ "reflect": false,
100
+ "attribute": "max",
101
+ "defaultValue": "1"
102
+ },
103
+ "step": {
104
+ "type": "number",
105
+ "mutable": false,
106
+ "complexType": {
107
+ "original": "number",
108
+ "resolved": "number",
109
+ "references": {}
110
+ },
111
+ "required": false,
112
+ "optional": false,
113
+ "docs": {
114
+ "tags": [],
115
+ "text": "Step increment"
116
+ },
117
+ "getter": false,
118
+ "setter": false,
119
+ "reflect": false,
120
+ "attribute": "step",
121
+ "defaultValue": "0.01"
122
+ },
123
+ "previewColor": {
124
+ "type": "string",
125
+ "mutable": false,
126
+ "complexType": {
127
+ "original": "string",
128
+ "resolved": "string",
129
+ "references": {}
130
+ },
131
+ "required": false,
132
+ "optional": false,
133
+ "docs": {
134
+ "tags": [],
135
+ "text": "Color to display in the preview (optional)"
136
+ },
137
+ "getter": false,
138
+ "setter": false,
139
+ "reflect": false,
140
+ "attribute": "preview-color",
141
+ "defaultValue": "'#000000'"
142
+ }
143
+ };
144
+ }
145
+ static get events() {
146
+ return [{
147
+ "method": "valueChange",
148
+ "name": "valueChange",
149
+ "bubbles": true,
150
+ "cancelable": true,
151
+ "composed": true,
152
+ "docs": {
153
+ "tags": [],
154
+ "text": ""
155
+ },
156
+ "complexType": {
157
+ "original": "number",
158
+ "resolved": "number",
159
+ "references": {}
160
+ }
161
+ }];
162
+ }
163
+ }
@@ -189,7 +189,7 @@ export class KritzelPortal {
189
189
  this.portal.style.left = `${left}px`;
190
190
  }
191
191
  render() {
192
- return (h(Host, { key: '9706a815c6f49853983a0fdb68b097d62e65e90b', style: { display: this.anchor ? 'block' : 'none' } }, h("slot", { key: '1bd76deeb440cd25e3895dc8824f5200461e4ae0' })));
192
+ return (h(Host, { key: 'c70a1f7c4b2801346fc7a711b44e951337f42f77', style: { display: this.anchor ? 'block' : 'none' } }, h("slot", { key: '654bd6dd3ec83d77984a500d505ed1f3c04a0c26' })));
193
193
  }
194
194
  static get is() { return "kritzel-portal"; }
195
195
  static get encapsulation() { return "shadow"; }
@@ -0,0 +1,47 @@
1
+ :host {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 12px;
5
+ padding: 0;
6
+ box-sizing: border-box;
7
+ }
8
+
9
+ .fill-row {
10
+ display: flex;
11
+ align-items: center;
12
+ gap: 4px;
13
+ }
14
+
15
+ .fill-option {
16
+ display: flex;
17
+ justify-content: center;
18
+ align-items: center;
19
+ width: 48px;
20
+ height: 32px;
21
+ border-radius: 6px;
22
+ cursor: var(--kritzel-pointer-cursor, pointer);
23
+ border: 2px solid transparent;
24
+ box-sizing: border-box;
25
+ background: var(--kritzel-shape-fill-option-background, #ffffff);
26
+ padding: 4px;
27
+ transition: background-color 0.15s ease, border-color 0.15s ease;
28
+ }
29
+
30
+ .fill-option:hover {
31
+ background-color: var(--kritzel-shape-fill-hover-background-color, #ebebeb);
32
+ }
33
+
34
+ .fill-option.selected {
35
+ border-color: var(--kritzel-selection-border-color, #007AFF);
36
+ background-color: var(--kritzel-shape-fill-selected-background-color, #ebebeb);
37
+ }
38
+
39
+ .fill-option:focus {
40
+ outline: none;
41
+ box-shadow: 0 0 0 2px var(--kritzel-focus-ring-color, rgba(0, 122, 255, 0.3));
42
+ }
43
+
44
+ .fill-icon {
45
+ width: 100%;
46
+ height: 100%;
47
+ }
@@ -0,0 +1,93 @@
1
+ import { Host, h } from "@stencil/core";
2
+ export class KritzelShapeFill {
3
+ /** Current fill type */
4
+ value = 'transparent';
5
+ valueChange;
6
+ handleFillChange(type) {
7
+ this.value = type;
8
+ this.valueChange.emit(type);
9
+ }
10
+ renderFillIcon(type) {
11
+ const strokeColor = '#000000';
12
+ if (type === 'transparent') {
13
+ return (h("svg", { viewBox: "0 0 24 24", class: "fill-icon" }, h("rect", { x: "4", y: "4", width: "16", height: "16", rx: "2", fill: "none", stroke: strokeColor, "stroke-width": "2" })));
14
+ }
15
+ // Filled
16
+ return (h("svg", { viewBox: "0 0 24 24", class: "fill-icon" }, h("rect", { x: "4", y: "4", width: "16", height: "16", rx: "2", fill: strokeColor, stroke: strokeColor, "stroke-width": "2" })));
17
+ }
18
+ render() {
19
+ return (h(Host, { key: '7935296eb495557672cc96ab838ff4996953b220' }, h("div", { key: '69011629ff2dbdd38c7fb03b873fe5411b712de3', class: "fill-row" }, h("button", { key: '8a16a43b1ed8f316bc698a304d76667397a83015', class: {
20
+ 'fill-option': true,
21
+ 'selected': this.value === 'transparent',
22
+ }, onClick: () => this.handleFillChange('transparent'), title: "Transparent background" }, this.renderFillIcon('transparent')), h("button", { key: 'f51854da5ece9f18242b4b91ac9645e13efc41b3', class: {
23
+ 'fill-option': true,
24
+ 'selected': this.value === 'filled',
25
+ }, onClick: () => this.handleFillChange('filled'), title: "Filled background" }, this.renderFillIcon('filled')))));
26
+ }
27
+ static get is() { return "kritzel-shape-fill"; }
28
+ static get encapsulation() { return "shadow"; }
29
+ static get originalStyleUrls() {
30
+ return {
31
+ "$": ["kritzel-shape-fill.css"]
32
+ };
33
+ }
34
+ static get styleUrls() {
35
+ return {
36
+ "$": ["kritzel-shape-fill.css"]
37
+ };
38
+ }
39
+ static get properties() {
40
+ return {
41
+ "value": {
42
+ "type": "string",
43
+ "mutable": true,
44
+ "complexType": {
45
+ "original": "ShapeFillType",
46
+ "resolved": "\"filled\" | \"transparent\"",
47
+ "references": {
48
+ "ShapeFillType": {
49
+ "location": "local",
50
+ "path": "C:/Projects/kritzel/libs/kritzel-stencil/src/components/shared/kritzel-shape-fill/kritzel-shape-fill.tsx",
51
+ "id": "src/components/shared/kritzel-shape-fill/kritzel-shape-fill.tsx::ShapeFillType"
52
+ }
53
+ }
54
+ },
55
+ "required": false,
56
+ "optional": false,
57
+ "docs": {
58
+ "tags": [],
59
+ "text": "Current fill type"
60
+ },
61
+ "getter": false,
62
+ "setter": false,
63
+ "reflect": false,
64
+ "attribute": "value",
65
+ "defaultValue": "'transparent'"
66
+ }
67
+ };
68
+ }
69
+ static get events() {
70
+ return [{
71
+ "method": "valueChange",
72
+ "name": "valueChange",
73
+ "bubbles": true,
74
+ "cancelable": true,
75
+ "composed": true,
76
+ "docs": {
77
+ "tags": [],
78
+ "text": ""
79
+ },
80
+ "complexType": {
81
+ "original": "ShapeFillType",
82
+ "resolved": "\"filled\" | \"transparent\"",
83
+ "references": {
84
+ "ShapeFillType": {
85
+ "location": "local",
86
+ "path": "C:/Projects/kritzel/libs/kritzel-stencil/src/components/shared/kritzel-shape-fill/kritzel-shape-fill.tsx",
87
+ "id": "src/components/shared/kritzel-shape-fill/kritzel-shape-fill.tsx::ShapeFillType"
88
+ }
89
+ }
90
+ }
91
+ }];
92
+ }
93
+ }
@@ -80,7 +80,7 @@ export class KritzelSplitButton {
80
80
  this.menuScrollTop = event.target.scrollTop;
81
81
  };
82
82
  render() {
83
- return (h(Host, { key: 'a5587085e47c4e33148f9d0817731bfa3aa804b6', class: { mobile: this.isTouchDevice } }, h("button", { key: 'd3815785bb0919e2385bc7b9b0812466ed2b45a3', class: "split-main-button", tabIndex: 0, onClick: this.handleButtonClick, disabled: this.mainButtonDisabled }, this.buttonIcon && h("kritzel-icon", { key: 'b3225e1966bd21e8d37590cb39c0922e46afdaa9', name: this.buttonIcon })), h("div", { key: '526a88ef833cae7d2c7749f2a4bd96bcd2210a56', class: "split-divider" }), h("button", { key: '2c3ee46806bc64edc1f89a97c5e76ec493822065', ref: el => (this.splitMenuButtonRef = el), class: "split-menu-button", tabIndex: 0, onClick: this.toggleMenu, disabled: this.menuButtonDisabled }, h("kritzel-icon", { key: 'c6204d8b14d8cefe9d6eff33af95b2a7ea9a6b7c', name: this.dropdownIcon })), h("kritzel-portal", { key: '07a5e9793484f79d9b4b1f9ae09503f762cb2580', anchor: this.anchorElement, offsetY: 4, onClose: this.closeMenu }, h("kritzel-menu", { key: '0cf7601fd43b846a69152f0fc6ab950ac108ebff', ref: el => (this.menuRef = el), items: this.items, onItemSelect: this.handleItemSelect, onItemSave: this.handleItemSave, onItemCancel: this.handleItemCancel, onItemToggleChildMenu: this.handleItemToggleChildMenu, onItemCloseChildMenu: this.handleItemCloseChildMenu, onClose: this.closeMenu, onScroll: this.handleScroll }))));
83
+ return (h(Host, { key: 'cdfb795efe513061f464c76650aa226cd7d5ac81', class: { mobile: this.isTouchDevice } }, h("button", { key: '5c38c82b57f35c2e39b0dbba71b3ccfd99ebcc5c', class: "split-main-button", tabIndex: 0, onClick: this.handleButtonClick, disabled: this.mainButtonDisabled }, this.buttonIcon && h("kritzel-icon", { key: '862d96cca7ec5aef55284ac6a65ce16b07a03dda', name: this.buttonIcon })), h("div", { key: '41849e36e756af257d10baf82d2cb0c9cd1e441f', class: "split-divider" }), h("button", { key: '0c54c40c84dcf5cf1b94b024353334e4be0e3404', ref: el => (this.splitMenuButtonRef = el), class: "split-menu-button", tabIndex: 0, onClick: this.toggleMenu, disabled: this.menuButtonDisabled }, h("kritzel-icon", { key: '15b0d07c9afa584105180fb5f0701c15974f11aa', name: this.dropdownIcon })), h("kritzel-portal", { key: '23014ad95c3ee688b9348f480cc33cdb1c970244', anchor: this.anchorElement, offsetY: 4, onClose: this.closeMenu }, h("kritzel-menu", { key: '90f4f29429a80f5700d16b1e99f3dd6315464bbb', ref: el => (this.menuRef = el), items: this.items, onItemSelect: this.handleItemSelect, onItemSave: this.handleItemSave, onItemCancel: this.handleItemCancel, onItemToggleChildMenu: this.handleItemToggleChildMenu, onItemCloseChildMenu: this.handleItemCloseChildMenu, onClose: this.closeMenu, onScroll: this.handleScroll }))));
84
84
  }
85
85
  static get is() { return "kritzel-split-button"; }
86
86
  static get encapsulation() { return "shadow"; }
@@ -146,7 +146,8 @@ export class KritzelSplitButton {
146
146
  "IKritzelMenuItem": {
147
147
  "location": "import",
148
148
  "path": "../../../interfaces/menu-item.interface",
149
- "id": "src/interfaces/menu-item.interface.ts::IKritzelMenuItem"
149
+ "id": "src/interfaces/menu-item.interface.ts::IKritzelMenuItem",
150
+ "referenceLocation": "IKritzelMenuItem"
150
151
  }
151
152
  }
152
153
  },
@@ -243,7 +244,8 @@ export class KritzelSplitButton {
243
244
  "IKritzelMenuItemSelectEvent": {
244
245
  "location": "import",
245
246
  "path": "../../../interfaces/menu-item.interface",
246
- "id": "src/interfaces/menu-item.interface.ts::IKritzelMenuItemSelectEvent"
247
+ "id": "src/interfaces/menu-item.interface.ts::IKritzelMenuItemSelectEvent",
248
+ "referenceLocation": "IKritzelMenuItemSelectEvent"
247
249
  }
248
250
  }
249
251
  }
@@ -264,7 +266,8 @@ export class KritzelSplitButton {
264
266
  "IKritzelMenuItem": {
265
267
  "location": "import",
266
268
  "path": "../../../interfaces/menu-item.interface",
267
- "id": "src/interfaces/menu-item.interface.ts::IKritzelMenuItem"
269
+ "id": "src/interfaces/menu-item.interface.ts::IKritzelMenuItem",
270
+ "referenceLocation": "IKritzelMenuItem"
268
271
  }
269
272
  }
270
273
  }
@@ -285,7 +288,8 @@ export class KritzelSplitButton {
285
288
  "IKritzelMenuItem": {
286
289
  "location": "import",
287
290
  "path": "../../../interfaces/menu-item.interface",
288
- "id": "src/interfaces/menu-item.interface.ts::IKritzelMenuItem"
291
+ "id": "src/interfaces/menu-item.interface.ts::IKritzelMenuItem",
292
+ "referenceLocation": "IKritzelMenuItem"
289
293
  }
290
294
  }
291
295
  }
@@ -306,7 +310,8 @@ export class KritzelSplitButton {
306
310
  "IKritzelMenuItemToggleChildMenuEvent": {
307
311
  "location": "import",
308
312
  "path": "../../../interfaces/menu-item.interface",
309
- "id": "src/interfaces/menu-item.interface.ts::IKritzelMenuItemToggleChildMenuEvent"
313
+ "id": "src/interfaces/menu-item.interface.ts::IKritzelMenuItemToggleChildMenuEvent",
314
+ "referenceLocation": "IKritzelMenuItemToggleChildMenuEvent"
310
315
  }
311
316
  }
312
317
  }
@@ -327,7 +332,8 @@ export class KritzelSplitButton {
327
332
  "IKritzelMenuItem": {
328
333
  "location": "import",
329
334
  "path": "../../../interfaces/menu-item.interface",
330
- "id": "src/interfaces/menu-item.interface.ts::IKritzelMenuItem"
335
+ "id": "src/interfaces/menu-item.interface.ts::IKritzelMenuItem",
336
+ "referenceLocation": "IKritzelMenuItem"
331
337
  }
332
338
  }
333
339
  }
@@ -1,11 +1,20 @@
1
1
  :host {
2
2
  display: flex;
3
3
  align-items: flex-start;
4
- gap: 8px;
5
- padding: 8px;
4
+ gap: 0;
5
+ padding: 0;
6
+ width: 100%;
6
7
  box-sizing: border-box;
7
8
  }
8
9
 
10
+ .size-grid {
11
+ width: 100%;
12
+ display: grid;
13
+ grid-template-columns: repeat(6, 32px);
14
+ gap: 8px;
15
+ justify-items: center;
16
+ }
17
+
9
18
  .size-container {
10
19
  display: flex;
11
20
  justify-content: center;
@@ -8,10 +8,10 @@ export class KritzelStrokeSize {
8
8
  this.sizeChange.emit(size);
9
9
  }
10
10
  render() {
11
- return (h(Host, { key: 'd204d14384367ca8847ad30cab9801788c8d8fac' }, this.sizes.map(size => (h("div", { tabIndex: 0, class: {
11
+ return (h(Host, { key: '891f899a41844bba03305e3dd7cbf428d4471ff9' }, h("div", { key: '773a756d54d0632c9ea6b3aebb743abad2274244', class: "size-grid" }, this.sizes.map(size => (h("div", { tabIndex: 0, class: {
12
12
  'size-container': true,
13
13
  'selected': this.selectedSize === size,
14
- }, onClick: () => this.handleSizeClick(size) }, h("kritzel-color", { value: '#000000', size: size }))))));
14
+ }, onClick: () => this.handleSizeClick(size) }, h("kritzel-color", { value: '#000000', size: size })))))));
15
15
  }
16
16
  static get is() { return "kritzel-stroke-size"; }
17
17
  static get encapsulation() { return "shadow"; }
@@ -9,7 +9,7 @@
9
9
  width: fit-content;
10
10
  background-color: var(--kritzel-controls-tooltip-background-color, #ffffff);
11
11
  color: var(--kritzel-controls-tooltip-color, #000000);
12
- padding: var(--kritzel-controls-tooltip-padding, 8px);
12
+ padding: var(--kritzel-controls-tooltip-padding, 12px);
13
13
  border-radius: var(--kritzel-controls-tooltip-border-radius, 16px);
14
14
  white-space: nowrap;
15
15
  box-shadow: var(--kritzel-controls-tooltip-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.12));
@@ -11,8 +11,10 @@ export class KritzelTooltip {
11
11
  handleOutsideClick(event) {
12
12
  if (!this.isVisible)
13
13
  return;
14
- const target = event.target;
15
- if (!this.host.contains(target)) {
14
+ // Check if click is inside the tooltip host or any of its shadow DOM content
15
+ const path = event.composedPath();
16
+ const isInsideTooltip = path.some(el => el === this.host);
17
+ if (!isInsideTooltip) {
16
18
  this.tooltipClosed.emit();
17
19
  }
18
20
  }
@@ -62,14 +64,14 @@ export class KritzelTooltip {
62
64
  }
63
65
  }
64
66
  render() {
65
- return (h(Host, { key: 'c257f254b8ba6b95f251eac3136f5be282d23e30', style: {
67
+ return (h(Host, { key: '104ad4a160e4f47454955696e5f0e7a28873c3f5', style: {
66
68
  position: 'fixed',
67
69
  zIndex: '9999',
68
70
  transition: 'opacity 0.3s ease-in-out, transform 0.3s ease-in-out',
69
71
  visibility: this.isVisible ? 'visible' : 'hidden',
70
72
  left: `${this.positionX}px`,
71
73
  bottom: `${this.positionY}px`,
72
- } }, h("div", { key: '14f31dc995236a2309e2371ecef278a0e6374139', class: "tooltip-content", onClick: event => event.stopPropagation() }, h("slot", { key: '6dace4d6ed82878333f8771cf4670d53cea36873' }))));
74
+ } }, h("div", { key: '283eec8d84ea29caefdb1f0c4f129c57d30bc133', class: "tooltip-content", onClick: event => event.stopPropagation(), onPointerDown: event => event.stopPropagation(), onMouseDown: event => event.stopPropagation() }, h("slot", { key: '1c6e2d9bcb69f8deec08b6c10384b4c7593babd3' }))));
73
75
  }
74
76
  static get is() { return "kritzel-tooltip"; }
75
77
  static get encapsulation() { return "shadow"; }
@@ -107,7 +107,8 @@ export class KritzelContextMenu {
107
107
  "ContextMenuItem": {
108
108
  "location": "import",
109
109
  "path": "../../../interfaces/context-menu-item.interface",
110
- "id": "src/interfaces/context-menu-item.interface.ts::ContextMenuItem"
110
+ "id": "src/interfaces/context-menu-item.interface.ts::ContextMenuItem",
111
+ "referenceLocation": "ContextMenuItem"
111
112
  }
112
113
  }
113
114
  },
@@ -130,7 +131,8 @@ export class KritzelContextMenu {
130
131
  "KritzelBaseObject": {
131
132
  "location": "import",
132
133
  "path": "../../../classes/objects/base-object.class",
133
- "id": "src/classes/objects/base-object.class.ts::KritzelBaseObject"
134
+ "id": "src/classes/objects/base-object.class.ts::KritzelBaseObject",
135
+ "referenceLocation": "KritzelBaseObject"
134
136
  }
135
137
  }
136
138
  },
@@ -168,7 +170,8 @@ export class KritzelContextMenu {
168
170
  "ContextMenuItem": {
169
171
  "location": "import",
170
172
  "path": "../../../interfaces/context-menu-item.interface",
171
- "id": "src/interfaces/context-menu-item.interface.ts::ContextMenuItem"
173
+ "id": "src/interfaces/context-menu-item.interface.ts::ContextMenuItem",
174
+ "referenceLocation": "ContextMenuItem"
172
175
  }
173
176
  }
174
177
  }