kritzel-stencil 0.1.0 → 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 (176) hide show
  1. package/dist/cjs/{default-line-tool.config-7eJND6Jb.js → default-line-tool.config-MA02HCrH.js} +703 -133
  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} +1018 -897
  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/handlers/move.handler.js +6 -0
  11. package/dist/collection/classes/objects/line.class.js +63 -15
  12. package/dist/collection/classes/objects/path.class.js +1 -0
  13. package/dist/collection/classes/objects/shape.class.js +1 -0
  14. package/dist/collection/classes/objects/text.class.js +4 -3
  15. package/dist/collection/classes/providers/indexeddb-sync-provider.class.js +0 -1
  16. package/dist/collection/classes/tools/brush-tool.class.js +5 -0
  17. package/dist/collection/classes/tools/line-tool.class.js +31 -1
  18. package/dist/collection/classes/tools/selection-tool.class.js +193 -0
  19. package/dist/collection/classes/tools/shape-tool.class.js +2 -0
  20. package/dist/collection/classes/tools/text-tool.class.js +3 -0
  21. package/dist/collection/collection-manifest.json +5 -3
  22. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +3 -2
  23. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +37 -19
  24. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +108 -36
  25. package/dist/collection/components/shared/kritzel-color/kritzel-color.js +2 -2
  26. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.css +1 -1
  27. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +24 -2
  28. package/dist/collection/components/shared/kritzel-font/kritzel-font.js +1 -1
  29. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.css +1 -1
  30. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.css +1 -1
  31. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +1 -1
  32. package/dist/collection/components/shared/kritzel-line-endings/kritzel-line-endings.css +60 -0
  33. package/dist/collection/components/shared/kritzel-line-endings/kritzel-line-endings.js +187 -0
  34. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +15 -8
  35. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js +16 -9
  36. package/dist/collection/components/shared/kritzel-opacity-slider/kritzel-opacity-slider.css +85 -0
  37. package/dist/collection/components/shared/kritzel-opacity-slider/kritzel-opacity-slider.js +163 -0
  38. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +1 -1
  39. package/dist/collection/components/shared/kritzel-shape-fill/kritzel-shape-fill.css +47 -0
  40. package/dist/collection/components/shared/kritzel-shape-fill/kritzel-shape-fill.js +93 -0
  41. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +13 -7
  42. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.css +11 -2
  43. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +2 -2
  44. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.css +1 -1
  45. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +6 -4
  46. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +6 -3
  47. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.css +66 -0
  48. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +153 -50
  49. package/dist/collection/components/ui/kritzel-tool-config/kritzel-tool-config.css +38 -0
  50. package/dist/collection/components/ui/kritzel-tool-config/kritzel-tool-config.js +321 -0
  51. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +3 -2
  52. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js +6 -3
  53. package/dist/collection/configs/default-brush-tool.config.js +2 -52
  54. package/dist/collection/configs/default-line-tool.config.js +2 -26
  55. package/dist/collection/configs/default-shape-tool.config.js +2 -15
  56. package/dist/collection/configs/default-text-tool.config.js +2 -26
  57. package/dist/collection/constants/color-palette.constants.js +30 -0
  58. package/dist/collection/helpers/color.helper.js +31 -0
  59. package/dist/collection/helpers/tool-config.helper.js +65 -0
  60. package/dist/collection/interfaces/tool-config.interface.js +1 -0
  61. package/dist/components/index.d.ts +8 -4
  62. package/dist/components/index.js +1 -1
  63. package/dist/components/kritzel-brush-style.js +1 -1
  64. package/dist/components/kritzel-color-palette.js +1 -1
  65. package/dist/components/kritzel-color.js +1 -1
  66. package/dist/components/kritzel-context-menu.js +1 -1
  67. package/dist/components/kritzel-controls.js +1 -1
  68. package/dist/components/kritzel-cursor-trail.js +1 -1
  69. package/dist/components/kritzel-dropdown.js +1 -1
  70. package/dist/components/kritzel-editor.js +1 -1
  71. package/dist/components/kritzel-engine.js +1 -1
  72. package/dist/components/kritzel-font-family.js +1 -1
  73. package/dist/components/kritzel-font-size.js +1 -1
  74. package/dist/components/kritzel-font.js +1 -1
  75. package/dist/components/kritzel-icon.js +1 -1
  76. package/dist/components/kritzel-line-endings.d.ts +11 -0
  77. package/dist/components/kritzel-line-endings.js +1 -0
  78. package/dist/components/kritzel-menu-item.js +1 -1
  79. package/dist/components/kritzel-menu.js +1 -1
  80. package/dist/components/kritzel-opacity-slider.d.ts +11 -0
  81. package/dist/components/kritzel-opacity-slider.js +1 -0
  82. package/dist/components/kritzel-portal.js +1 -1
  83. package/dist/components/kritzel-shape-fill.d.ts +11 -0
  84. package/dist/components/kritzel-shape-fill.js +1 -0
  85. package/dist/components/kritzel-split-button.js +1 -1
  86. package/dist/components/kritzel-stroke-size.js +1 -1
  87. package/dist/components/kritzel-tool-config.d.ts +11 -0
  88. package/dist/components/kritzel-tool-config.js +1 -0
  89. package/dist/components/kritzel-tooltip.js +1 -1
  90. package/dist/components/kritzel-utility-panel.js +1 -1
  91. package/dist/components/kritzel-workspace-manager.js +1 -1
  92. package/dist/components/p-83YX0-FS.js +1 -0
  93. package/dist/components/p-8iEiCuEN.js +1 -0
  94. package/dist/components/p-9XZbc_qK.js +1 -0
  95. package/dist/components/p-B3P64-gH.js +9 -0
  96. package/dist/components/p-B8QjTqOY.js +1 -0
  97. package/dist/components/p-BF6MdW17.js +1 -0
  98. package/dist/components/p-BVIY50lR.js +1 -0
  99. package/dist/components/p-BbqT9o1F.js +1 -0
  100. package/dist/components/{p-CXzfYQ_u.js → p-BnidlyU0.js} +1 -1
  101. package/dist/components/{p-Bj_Og27M.js → p-BxS4Pdpz.js} +1 -1
  102. package/dist/components/{p-g0N9j_uT.js → p-CCj8nmQH.js} +1 -1
  103. package/dist/components/{p-1z-ds26_.js → p-CLOnpu42.js} +1 -1
  104. package/dist/components/{p-D1tfzpy8.js → p-CSGeDE4f.js} +1 -1
  105. package/dist/components/p-CbuHMNa9.js +1 -0
  106. package/dist/components/p-ClMFs3KI.js +1 -0
  107. package/dist/components/{p-IAqZFssU.js → p-Cnpk2hfo.js} +1 -1
  108. package/dist/components/{p-Cy77SpWt.js → p-Ctv4NAxk.js} +1 -1
  109. package/dist/components/p-CyHZWbkS.js +1 -0
  110. package/dist/components/{p-C4krHoUl.js → p-D8GeJNUv.js} +1 -1
  111. package/dist/components/{p-DB5s1NY4.js → p-DKgqzi2Y.js} +1 -1
  112. package/dist/components/p-DOF5fWDU.js +1 -0
  113. package/dist/components/{p-4FEa4ADy.js → p-DV_h5Jo2.js} +1 -1
  114. package/dist/components/{p-DTezr6w9.js → p-DgCGSL2Q.js} +1 -1
  115. package/dist/components/{p-D5ZsALCP.js → p-wRXL928z.js} +1 -1
  116. package/dist/esm/{default-line-tool.config-CD5sTKH-.js → default-line-tool.config-DLpNl6R9.js} +702 -125
  117. package/dist/esm/{index-BqhmuUH2.js → index-OLdaFN6W.js} +84 -7
  118. package/dist/esm/index.js +2 -2
  119. package/dist/esm/kritzel-brush-style.entry.js +1 -1
  120. package/dist/esm/{kritzel-color_22.entry.js → kritzel-color_24.entry.js} +1009 -890
  121. package/dist/esm/loader.js +3 -3
  122. package/dist/esm/stencil.js +4 -4
  123. package/dist/stencil/index.esm.js +1 -1
  124. package/dist/stencil/{p-09295079.entry.js → p-802bc7cf.entry.js} +1 -1
  125. package/dist/stencil/p-DLpNl6R9.js +1 -0
  126. package/dist/stencil/p-OLdaFN6W.js +2 -0
  127. package/dist/stencil/p-caf30edb.entry.js +9 -0
  128. package/dist/stencil/stencil.esm.js +1 -1
  129. package/dist/types/classes/core/viewport.class.d.ts +6 -0
  130. package/dist/types/classes/managers/anchor.manager.d.ts +1 -1
  131. package/dist/types/classes/objects/line.class.d.ts +2 -0
  132. package/dist/types/classes/objects/shape.class.d.ts +1 -0
  133. package/dist/types/classes/tools/brush-tool.class.d.ts +1 -0
  134. package/dist/types/classes/tools/line-tool.class.d.ts +2 -1
  135. package/dist/types/classes/tools/selection-tool.class.d.ts +22 -0
  136. package/dist/types/classes/tools/shape-tool.class.d.ts +1 -0
  137. package/dist/types/classes/tools/text-tool.class.d.ts +1 -0
  138. package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +2 -0
  139. package/dist/types/components/shared/kritzel-color-palette/kritzel-color-palette.d.ts +1 -0
  140. package/dist/types/components/shared/kritzel-line-endings/kritzel-line-endings.d.ts +23 -0
  141. package/dist/types/components/shared/kritzel-opacity-slider/kritzel-opacity-slider.d.ts +17 -0
  142. package/dist/types/components/shared/kritzel-shape-fill/kritzel-shape-fill.d.ts +10 -0
  143. package/dist/types/components/ui/kritzel-controls/kritzel-controls.d.ts +15 -0
  144. package/dist/types/components/ui/kritzel-tool-config/kritzel-tool-config.d.ts +25 -0
  145. package/dist/types/components.d.ts +235 -82
  146. package/dist/types/constants/color-palette.constants.d.ts +5 -0
  147. package/dist/types/helpers/color.helper.d.ts +9 -0
  148. package/dist/types/helpers/tool-config.helper.d.ts +4 -0
  149. package/dist/types/interfaces/line-options.interface.d.ts +1 -0
  150. package/dist/types/interfaces/path-options.interface.d.ts +1 -0
  151. package/dist/types/interfaces/tool-config.interface.d.ts +26 -0
  152. package/dist/types/stencil-public-runtime.d.ts +29 -0
  153. package/package.json +5 -3
  154. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.css +0 -19
  155. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +0 -134
  156. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.css +0 -19
  157. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js +0 -114
  158. package/dist/components/kritzel-control-brush-config.d.ts +0 -11
  159. package/dist/components/kritzel-control-brush-config.js +0 -1
  160. package/dist/components/kritzel-control-text-config.d.ts +0 -11
  161. package/dist/components/kritzel-control-text-config.js +0 -1
  162. package/dist/components/p-B7Fdo5QJ.js +0 -1
  163. package/dist/components/p-BXaWhpO2.js +0 -1
  164. package/dist/components/p-BtuXeItZ.js +0 -1
  165. package/dist/components/p-C-d2IH4v.js +0 -1
  166. package/dist/components/p-C3UriJh7.js +0 -1
  167. package/dist/components/p-CF5L2Gdl.js +0 -1
  168. package/dist/components/p-CeKT_dTd.js +0 -1
  169. package/dist/components/p-Cp15toXH.js +0 -1
  170. package/dist/components/p-D3LRBk2t.js +0 -9
  171. package/dist/components/p-Du1vxHy8.js +0 -1
  172. package/dist/stencil/p-381c0e9c.entry.js +0 -9
  173. package/dist/stencil/p-BqhmuUH2.js +0 -2
  174. package/dist/stencil/p-CD5sTKH-.js +0 -1
  175. package/dist/types/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.d.ts +0 -15
  176. package/dist/types/components/ui/kritzel-control-text-config/kritzel-control-text-config.d.ts +0 -12
@@ -4,9 +4,15 @@ import { KritzelResizeHandler } from "../handlers/resize.handler";
4
4
  import { KritzelRotationHandler } from "../handlers/rotation.handler";
5
5
  import { KritzelSelectionHandler } from "../handlers/selection.handler";
6
6
  import { KritzelSelectionGroup } from "../objects/selection-group.class";
7
+ import { KritzelGroup } from "../objects/group.class";
7
8
  import { KritzelBaseTool } from "./base-tool.class";
8
9
  import { KritzelHoverHandler } from "../handlers/hover.handler";
9
10
  import { KritzelLineHandleHandler } from "../handlers/line-handle.handler";
11
+ import { KritzelPath } from "../objects/path.class";
12
+ import { KritzelLine } from "../objects/line.class";
13
+ import { KritzelShape } from "../objects/shape.class";
14
+ import { KritzelText } from "../objects/text.class";
15
+ import { DEFAULT_COLOR_PALETTE } from "../../constants/color-palette.constants";
10
16
  export class KritzelSelectionTool extends KritzelBaseTool {
11
17
  selectionHandler;
12
18
  moveHandler;
@@ -14,6 +20,193 @@ export class KritzelSelectionTool extends KritzelBaseTool {
14
20
  resizeHandler;
15
21
  rotationHandler;
16
22
  lineHandleHandler;
23
+ palette = [...DEFAULT_COLOR_PALETTE];
24
+ /** Returns true if there are objects in the selection group */
25
+ hasSelection() {
26
+ return !!this._core.store.selectionGroup && this._core.store.selectionGroup.objects.length > 0;
27
+ }
28
+ /** Returns the selected objects or empty array */
29
+ getSelectedObjects() {
30
+ return this._core.store.selectionGroup?.objects ?? [];
31
+ }
32
+ flattenObjects(objects) {
33
+ let result = [];
34
+ for (const obj of objects) {
35
+ if (obj instanceof KritzelGroup) {
36
+ result = result.concat(this.flattenObjects(obj.children));
37
+ }
38
+ else {
39
+ result.push(obj);
40
+ }
41
+ }
42
+ return result;
43
+ }
44
+ get color() {
45
+ const objects = this.flattenObjects(this.getSelectedObjects());
46
+ if (objects.length === 0)
47
+ return '#000000';
48
+ for (const obj of objects) {
49
+ if (obj instanceof KritzelPath)
50
+ return obj.fill;
51
+ if (obj instanceof KritzelLine)
52
+ return obj.stroke;
53
+ if (obj instanceof KritzelText)
54
+ return obj.fontColor;
55
+ if (obj instanceof KritzelShape)
56
+ return obj.strokeColor;
57
+ }
58
+ return '#000000';
59
+ }
60
+ set color(value) {
61
+ const objects = this.flattenObjects(this.getSelectedObjects());
62
+ objects.forEach(obj => {
63
+ if (obj instanceof KritzelPath)
64
+ this._core.updateObject(obj, { fill: value });
65
+ if (obj instanceof KritzelLine)
66
+ this._core.updateObject(obj, { stroke: value });
67
+ if (obj instanceof KritzelText)
68
+ this._core.updateObject(obj, { fontColor: value });
69
+ if (obj instanceof KritzelShape)
70
+ this._core.updateObject(obj, { strokeColor: value });
71
+ });
72
+ this._core.rerender();
73
+ }
74
+ get opacity() {
75
+ const objects = this.flattenObjects(this.getSelectedObjects());
76
+ if (objects.length === 0)
77
+ return 1;
78
+ return objects[0].opacity;
79
+ }
80
+ set opacity(value) {
81
+ const objects = this.flattenObjects(this.getSelectedObjects());
82
+ objects.forEach(obj => this._core.updateObject(obj, { opacity: value }));
83
+ this._core.rerender();
84
+ }
85
+ get size() {
86
+ const objects = this.flattenObjects(this.getSelectedObjects());
87
+ if (objects.length === 0)
88
+ return 1;
89
+ for (const obj of objects) {
90
+ if (obj instanceof KritzelPath)
91
+ return obj.strokeWidth;
92
+ if (obj instanceof KritzelLine)
93
+ return obj.strokeWidth;
94
+ if (obj instanceof KritzelText)
95
+ return obj.fontSize;
96
+ if (obj instanceof KritzelShape)
97
+ return obj.strokeWidth;
98
+ }
99
+ return 1;
100
+ }
101
+ set size(value) {
102
+ const objects = this.flattenObjects(this.getSelectedObjects());
103
+ objects.forEach(obj => {
104
+ if (obj instanceof KritzelPath)
105
+ this._core.updateObject(obj, { strokeWidth: value });
106
+ if (obj instanceof KritzelLine)
107
+ this._core.updateObject(obj, { strokeWidth: value });
108
+ if (obj instanceof KritzelText)
109
+ this._core.updateObject(obj, { fontSize: value });
110
+ if (obj instanceof KritzelShape)
111
+ this._core.updateObject(obj, { strokeWidth: value });
112
+ });
113
+ this._core.rerender();
114
+ }
115
+ get fillColor() {
116
+ const objects = this.flattenObjects(this.getSelectedObjects());
117
+ for (const obj of objects) {
118
+ if (obj instanceof KritzelShape)
119
+ return obj.fillColor;
120
+ }
121
+ return 'transparent';
122
+ }
123
+ set fillColor(value) {
124
+ const objects = this.flattenObjects(this.getSelectedObjects());
125
+ objects.forEach(obj => {
126
+ if (obj instanceof KritzelShape) {
127
+ this._core.updateObject(obj, { fillColor: value });
128
+ // When switching to fill mode, also update stroke color to match
129
+ if (value !== 'transparent') {
130
+ this._core.updateObject(obj, { strokeColor: value });
131
+ }
132
+ }
133
+ });
134
+ this._core.rerender();
135
+ }
136
+ get fontFamily() {
137
+ const objects = this.flattenObjects(this.getSelectedObjects());
138
+ for (const obj of objects) {
139
+ if (obj instanceof KritzelText)
140
+ return obj.fontFamily;
141
+ if (obj instanceof KritzelShape)
142
+ return obj.fontFamily;
143
+ }
144
+ return 'Arial';
145
+ }
146
+ set fontFamily(value) {
147
+ const objects = this.flattenObjects(this.getSelectedObjects());
148
+ objects.forEach(obj => {
149
+ if (obj instanceof KritzelText)
150
+ this._core.updateObject(obj, { fontFamily: value });
151
+ if (obj instanceof KritzelShape)
152
+ this._core.updateObject(obj, { fontFamily: value });
153
+ });
154
+ this._core.rerender();
155
+ }
156
+ get arrows() {
157
+ const objects = this.flattenObjects(this.getSelectedObjects());
158
+ for (const obj of objects) {
159
+ if (obj instanceof KritzelLine)
160
+ return obj.arrows;
161
+ }
162
+ return { start: { enabled: false }, end: { enabled: false } };
163
+ }
164
+ set arrows(value) {
165
+ const objects = this.flattenObjects(this.getSelectedObjects());
166
+ objects.forEach(obj => {
167
+ if (obj instanceof KritzelLine)
168
+ this._core.updateObject(obj, { arrows: value });
169
+ });
170
+ this._core.rerender();
171
+ }
172
+ /** Returns the tool config for selected objects, or null if no selection */
173
+ getToolConfig() {
174
+ if (!this.hasSelection())
175
+ return null;
176
+ const objects = this.flattenObjects(this.getSelectedObjects());
177
+ const controls = [];
178
+ const hasShape = objects.some(o => o instanceof KritzelShape);
179
+ const hasText = objects.some(o => o instanceof KritzelText);
180
+ const hasLine = objects.some(o => o instanceof KritzelLine);
181
+ const hasStroke = objects.some(o => o instanceof KritzelPath || o instanceof KritzelLine || o instanceof KritzelShape);
182
+ if (hasText && !hasStroke) {
183
+ controls.push({ type: 'font-size', propertyName: 'size' });
184
+ controls.push({ type: 'font-family', propertyName: 'fontFamily' });
185
+ }
186
+ else if (hasStroke && !hasText) {
187
+ controls.push({ type: 'stroke-size', propertyName: 'size' });
188
+ }
189
+ else {
190
+ if (hasStroke)
191
+ controls.push({ type: 'stroke-size', propertyName: 'size' });
192
+ if (hasText)
193
+ controls.push({ type: 'font-family', propertyName: 'fontFamily' });
194
+ }
195
+ if (hasLine) {
196
+ controls.push({ type: 'line-endings', propertyName: 'arrows' });
197
+ }
198
+ if (hasShape) {
199
+ controls.push({ type: 'shape-fill', propertyName: 'fillColor' });
200
+ }
201
+ return {
202
+ type: 'selection',
203
+ colorProperty: 'color',
204
+ sizeProperty: 'size',
205
+ opacityProperty: 'opacity',
206
+ paletteSource: 'palette',
207
+ controls,
208
+ };
209
+ }
17
210
  constructor(core) {
18
211
  super(core);
19
212
  this.selectionHandler = new KritzelSelectionHandler(this._core);
@@ -8,6 +8,7 @@ export class KritzelShapeTool extends KritzelBaseTool {
8
8
  fillColor = 'transparent';
9
9
  strokeColor = '#000000';
10
10
  strokeWidth = 4;
11
+ opacity = 1;
11
12
  fontFamily = 'Arial';
12
13
  fontSize = 16;
13
14
  fontColor = '#000000';
@@ -143,6 +144,7 @@ export class KritzelShapeTool extends KritzelBaseTool {
143
144
  fillColor: this.fillColor,
144
145
  strokeColor: this.strokeColor,
145
146
  strokeWidth: this.strokeWidth,
147
+ opacity: this.opacity,
146
148
  fontSize: this.fontSize,
147
149
  fontFamily: this.fontFamily,
148
150
  fontColor: this.fontColor,
@@ -6,6 +6,7 @@ export class KritzelTextTool extends KritzelBaseTool {
6
6
  fontFamily = 'Arial';
7
7
  fontSize = 16;
8
8
  fontColor = '#000000';
9
+ opacity = 1;
9
10
  palette = [
10
11
  '#000000',
11
12
  '#FFFFFF',
@@ -56,6 +57,7 @@ export class KritzelTextTool extends KritzelBaseTool {
56
57
  const clientY = event.clientY - this._core.store.offsetY;
57
58
  const text = KritzelText.create(this._core, this.fontSize, this.fontFamily);
58
59
  text.fontColor = this.fontColor;
60
+ text.opacity = this.opacity;
59
61
  text.translateX = (clientX - this._core.store.state.translateX) / this._core.store.state.scale;
60
62
  text.translateY = (clientY - this._core.store.state.translateY) / this._core.store.state.scale;
61
63
  text.zIndex = this._core.store.currentZIndex;
@@ -90,6 +92,7 @@ export class KritzelTextTool extends KritzelBaseTool {
90
92
  const clientY = Math.round(activePointers[0].clientY - this._core.store.offsetY);
91
93
  const text = KritzelText.create(this._core, this.fontSize, this.fontFamily);
92
94
  text.fontColor = this.fontColor;
95
+ text.opacity = this.opacity;
93
96
  text.translateX = (clientX - this._core.store.state.translateX) / this._core.store.state.scale;
94
97
  text.translateY = (clientY - this._core.store.state.translateY) / this._core.store.state.scale;
95
98
  text.zIndex = this._core.store.currentZIndex;
@@ -5,6 +5,7 @@
5
5
  "components/core/kritzel-engine/kritzel-engine.js",
6
6
  "components/ui/kritzel-context-menu/kritzel-context-menu.js",
7
7
  "components/shared/kritzel-font-family/kritzel-font-family.js",
8
+ "components/shared/kritzel-shape-fill/kritzel-shape-fill.js",
8
9
  "components/core/kritzel-cursor-trail/kritzel-cursor-trail.js",
9
10
  "components/core/kritzel-editor/kritzel-editor.js",
10
11
  "components/shared/kritzel-color/kritzel-color.js",
@@ -12,21 +13,22 @@
12
13
  "components/shared/kritzel-font/kritzel-font.js",
13
14
  "components/shared/kritzel-font-size/kritzel-font-size.js",
14
15
  "components/shared/kritzel-icon/kritzel-icon.js",
16
+ "components/shared/kritzel-line-endings/kritzel-line-endings.js",
15
17
  "components/shared/kritzel-menu/kritzel-menu.js",
16
18
  "components/shared/kritzel-menu-item/kritzel-menu-item.js",
19
+ "components/shared/kritzel-opacity-slider/kritzel-opacity-slider.js",
17
20
  "components/shared/kritzel-portal/kritzel-portal.js",
18
21
  "components/shared/kritzel-split-button/kritzel-split-button.js",
19
22
  "components/shared/kritzel-stroke-size/kritzel-stroke-size.js",
20
23
  "components/shared/kritzel-tooltip/kritzel-tooltip.js",
21
- "components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js",
22
- "components/ui/kritzel-control-text-config/kritzel-control-text-config.js",
23
24
  "components/ui/kritzel-controls/kritzel-controls.js",
25
+ "components/ui/kritzel-tool-config/kritzel-tool-config.js",
24
26
  "components/ui/kritzel-utility-panel/kritzel-utility-panel.js",
25
27
  "components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js"
26
28
  ],
27
29
  "compiler": {
28
30
  "name": "@stencil/core",
29
- "version": "4.40.1",
31
+ "version": "4.41.0",
30
32
  "typescriptVersion": "5.8.3"
31
33
  },
32
34
  "collections": [],
@@ -63,7 +63,7 @@ export class KritzelCursorTrail {
63
63
  }
64
64
  }
65
65
  render() {
66
- return (h(Host, { key: '556238ffd7eeda2d400039333a37853ebfcca1b6' }, this.cursorTrailPoints.length > 1 && (h("svg", { key: 'a3f451cc9f142f018d0025eb7a68c1bdff5fc0d9', class: "cursor-trail-svg", xmlns: "http://www.w3.org/2000/svg", style: {
66
+ return (h(Host, { key: '65563f09091c0014046b65d424b4cecf89d4a407' }, this.cursorTrailPoints.length > 1 && (h("svg", { key: '9634426566a9cd69cbc63f419726af16826e45f9', class: "cursor-trail-svg", xmlns: "http://www.w3.org/2000/svg", style: {
67
67
  position: 'absolute',
68
68
  left: '0',
69
69
  top: '0',
@@ -107,7 +107,8 @@ export class KritzelCursorTrail {
107
107
  "KritzelCore": {
108
108
  "location": "import",
109
109
  "path": "../../../classes/core/core.class",
110
- "id": "src/classes/core/core.class.ts::KritzelCore"
110
+ "id": "src/classes/core/core.class.ts::KritzelCore",
111
+ "referenceLocation": "KritzelCore"
111
112
  }
112
113
  }
113
114
  },
@@ -264,7 +264,7 @@ export class KritzelEditor {
264
264
  }
265
265
  }
266
266
  render() {
267
- return (h(Host, { key: 'dd67bea86f807f0ccd5905183e73713a015d6bee' }, h("kritzel-workspace-manager", { key: '557edc7e3a131d338be6df91698ba6923e7bc50e', workspaces: this.workspaces, activeWorkspace: this.activeWorkspace, onWorkspaceChange: event => (this.activeWorkspace = event.detail), onIsWorkspaceManagerReady: () => (this.isWorkspaceManagerReady = true) }), h("kritzel-engine", { key: '98969d0f2bb5a9a365885fb4765e0c04c1394caa', ref: el => (this.engineRef = el), workspace: this.activeWorkspace, syncConfig: this.syncConfig, scaleMax: this.scaleMax, scaleMin: this.scaleMin, globalContextMenuItems: this.globalContextMenuItems, objectContextMenuItems: this.objectContextMenuItems, onIsEngineReady: event => this.onEngineReady(event), onWorkspacesChange: event => this.handleWorkspacesChange(event), onObjectsChange: event => this.handleObjectsChange(event), onUndoStateChange: event => this.handleUndoStateChange(event) }), h("kritzel-controls", { key: '6092f393562af07643622c07d432f6100497aaf0', class: { 'keyboard-open': this.isVirtualKeyboardOpen }, style: { display: this.isControlsVisible ? 'flex' : 'none' }, ref: el => (this.controlsRef = el), controls: this.controls, isUtilityPanelVisible: this.isUtilityPanelVisible, undoState: this.undoState, onIsControlsReady: () => (this.isControlsReady = true) })));
267
+ return (h(Host, { key: '46500c70e4c5321532eddc7f6aa96210c0fe73c8' }, h("kritzel-workspace-manager", { key: '70f780b4d42281c6c37b3fd16acab1541cc84ee1', workspaces: this.workspaces, activeWorkspace: this.activeWorkspace, onWorkspaceChange: event => (this.activeWorkspace = event.detail), onIsWorkspaceManagerReady: () => (this.isWorkspaceManagerReady = true) }), h("kritzel-engine", { key: 'a4906f8ac2d42126a4e55ad7c16697aca25763fb', ref: el => (this.engineRef = el), workspace: this.activeWorkspace, syncConfig: this.syncConfig, scaleMax: this.scaleMax, scaleMin: this.scaleMin, globalContextMenuItems: this.globalContextMenuItems, objectContextMenuItems: this.objectContextMenuItems, onIsEngineReady: event => this.onEngineReady(event), onWorkspacesChange: event => this.handleWorkspacesChange(event), onObjectsChange: event => this.handleObjectsChange(event), onUndoStateChange: event => this.handleUndoStateChange(event) }), h("kritzel-controls", { key: '4d08c06fa2c6e4f5c3c75c5e5a60bddb61083b98', class: { 'keyboard-open': this.isVirtualKeyboardOpen }, style: { display: this.isControlsVisible ? 'flex' : 'none' }, ref: el => (this.controlsRef = el), controls: this.controls, isUtilityPanelVisible: this.isUtilityPanelVisible, undoState: this.undoState, onIsControlsReady: () => (this.isControlsReady = true) })));
268
268
  }
269
269
  static get is() { return "kritzel-editor"; }
270
270
  static get originalStyleUrls() {
@@ -329,7 +329,8 @@ export class KritzelEditor {
329
329
  "KritzelToolbarControl": {
330
330
  "location": "import",
331
331
  "path": "../../../interfaces/toolbar-control.interface",
332
- "id": "src/interfaces/toolbar-control.interface.ts::KritzelToolbarControl"
332
+ "id": "src/interfaces/toolbar-control.interface.ts::KritzelToolbarControl",
333
+ "referenceLocation": "KritzelToolbarControl"
333
334
  }
334
335
  }
335
336
  },
@@ -353,7 +354,8 @@ export class KritzelEditor {
353
354
  "ContextMenuItem": {
354
355
  "location": "import",
355
356
  "path": "../../../interfaces/context-menu-item.interface",
356
- "id": "src/interfaces/context-menu-item.interface.ts::ContextMenuItem"
357
+ "id": "src/interfaces/context-menu-item.interface.ts::ContextMenuItem",
358
+ "referenceLocation": "ContextMenuItem"
357
359
  }
358
360
  }
359
361
  },
@@ -377,7 +379,8 @@ export class KritzelEditor {
377
379
  "ContextMenuItem": {
378
380
  "location": "import",
379
381
  "path": "../../../interfaces/context-menu-item.interface",
380
- "id": "src/interfaces/context-menu-item.interface.ts::ContextMenuItem"
382
+ "id": "src/interfaces/context-menu-item.interface.ts::ContextMenuItem",
383
+ "referenceLocation": "ContextMenuItem"
381
384
  }
382
385
  }
383
386
  },
@@ -464,7 +467,8 @@ export class KritzelEditor {
464
467
  "KritzelSyncConfig": {
465
468
  "location": "import",
466
469
  "path": "../../../interfaces/sync-config.interface",
467
- "id": "src/interfaces/sync-config.interface.ts::KritzelSyncConfig"
470
+ "id": "src/interfaces/sync-config.interface.ts::KritzelSyncConfig",
471
+ "referenceLocation": "KritzelSyncConfig"
468
472
  }
469
473
  }
470
474
  },
@@ -528,7 +532,8 @@ export class KritzelEditor {
528
532
  "KritzelBaseObject": {
529
533
  "location": "import",
530
534
  "path": "../../../classes/objects/base-object.class",
531
- "id": "src/classes/objects/base-object.class.ts::KritzelBaseObject"
535
+ "id": "src/classes/objects/base-object.class.ts::KritzelBaseObject",
536
+ "referenceLocation": "KritzelBaseObject"
532
537
  }
533
538
  }
534
539
  }
@@ -549,7 +554,8 @@ export class KritzelEditor {
549
554
  "KritzelUndoState": {
550
555
  "location": "import",
551
556
  "path": "../../..",
552
- "id": "src/index.ts::KritzelUndoState"
557
+ "id": "src/index.ts::KritzelUndoState",
558
+ "referenceLocation": "KritzelUndoState"
553
559
  }
554
560
  }
555
561
  }
@@ -577,7 +583,8 @@ export class KritzelEditor {
577
583
  "KritzelBaseObject": {
578
584
  "location": "import",
579
585
  "path": "../../../classes/objects/base-object.class",
580
- "id": "src/classes/objects/base-object.class.ts::KritzelBaseObject"
586
+ "id": "src/classes/objects/base-object.class.ts::KritzelBaseObject",
587
+ "referenceLocation": "KritzelBaseObject"
581
588
  }
582
589
  },
583
590
  "return": "Promise<T>"
@@ -607,7 +614,8 @@ export class KritzelEditor {
607
614
  "KritzelBaseObject": {
608
615
  "location": "import",
609
616
  "path": "../../../classes/objects/base-object.class",
610
- "id": "src/classes/objects/base-object.class.ts::KritzelBaseObject"
617
+ "id": "src/classes/objects/base-object.class.ts::KritzelBaseObject",
618
+ "referenceLocation": "KritzelBaseObject"
611
619
  }
612
620
  },
613
621
  "return": "Promise<T>"
@@ -641,7 +649,8 @@ export class KritzelEditor {
641
649
  "KritzelBaseObject": {
642
650
  "location": "import",
643
651
  "path": "../../../classes/objects/base-object.class",
644
- "id": "src/classes/objects/base-object.class.ts::KritzelBaseObject"
652
+ "id": "src/classes/objects/base-object.class.ts::KritzelBaseObject",
653
+ "referenceLocation": "KritzelBaseObject"
645
654
  },
646
655
  "Partial": {
647
656
  "location": "global",
@@ -675,7 +684,8 @@ export class KritzelEditor {
675
684
  "KritzelBaseObject": {
676
685
  "location": "import",
677
686
  "path": "../../../classes/objects/base-object.class",
678
- "id": "src/classes/objects/base-object.class.ts::KritzelBaseObject"
687
+ "id": "src/classes/objects/base-object.class.ts::KritzelBaseObject",
688
+ "referenceLocation": "KritzelBaseObject"
679
689
  }
680
690
  },
681
691
  "return": "Promise<T>"
@@ -697,7 +707,8 @@ export class KritzelEditor {
697
707
  "KritzelBaseObject": {
698
708
  "location": "import",
699
709
  "path": "../../../classes/objects/base-object.class",
700
- "id": "src/classes/objects/base-object.class.ts::KritzelBaseObject"
710
+ "id": "src/classes/objects/base-object.class.ts::KritzelBaseObject",
711
+ "referenceLocation": "KritzelBaseObject"
701
712
  },
702
713
  "HTMLElement": {
703
714
  "location": "global",
@@ -731,7 +742,8 @@ export class KritzelEditor {
731
742
  "KritzelBaseObject": {
732
743
  "location": "import",
733
744
  "path": "../../../classes/objects/base-object.class",
734
- "id": "src/classes/objects/base-object.class.ts::KritzelBaseObject"
745
+ "id": "src/classes/objects/base-object.class.ts::KritzelBaseObject",
746
+ "referenceLocation": "KritzelBaseObject"
735
747
  }
736
748
  },
737
749
  "return": "Promise<void>"
@@ -791,7 +803,8 @@ export class KritzelEditor {
791
803
  "KritzelBaseObject": {
792
804
  "location": "import",
793
805
  "path": "../../../classes/objects/base-object.class",
794
- "id": "src/classes/objects/base-object.class.ts::KritzelBaseObject"
806
+ "id": "src/classes/objects/base-object.class.ts::KritzelBaseObject",
807
+ "referenceLocation": "KritzelBaseObject"
795
808
  },
796
809
  "HTMLElement": {
797
810
  "location": "global",
@@ -829,7 +842,8 @@ export class KritzelEditor {
829
842
  "KritzelWorkspace": {
830
843
  "location": "import",
831
844
  "path": "../../../classes/core/workspace.class",
832
- "id": "src/classes/core/workspace.class.ts::KritzelWorkspace"
845
+ "id": "src/classes/core/workspace.class.ts::KritzelWorkspace",
846
+ "referenceLocation": "KritzelWorkspace"
833
847
  }
834
848
  },
835
849
  "return": "Promise<KritzelWorkspace>"
@@ -855,7 +869,8 @@ export class KritzelEditor {
855
869
  "KritzelWorkspace": {
856
870
  "location": "import",
857
871
  "path": "../../../classes/core/workspace.class",
858
- "id": "src/classes/core/workspace.class.ts::KritzelWorkspace"
872
+ "id": "src/classes/core/workspace.class.ts::KritzelWorkspace",
873
+ "referenceLocation": "KritzelWorkspace"
859
874
  }
860
875
  },
861
876
  "return": "Promise<void>"
@@ -881,7 +896,8 @@ export class KritzelEditor {
881
896
  "KritzelWorkspace": {
882
897
  "location": "import",
883
898
  "path": "../../../classes/core/workspace.class",
884
- "id": "src/classes/core/workspace.class.ts::KritzelWorkspace"
899
+ "id": "src/classes/core/workspace.class.ts::KritzelWorkspace",
900
+ "referenceLocation": "KritzelWorkspace"
885
901
  }
886
902
  },
887
903
  "return": "Promise<void>"
@@ -903,7 +919,8 @@ export class KritzelEditor {
903
919
  "KritzelWorkspace": {
904
920
  "location": "import",
905
921
  "path": "../../../classes/core/workspace.class",
906
- "id": "src/classes/core/workspace.class.ts::KritzelWorkspace"
922
+ "id": "src/classes/core/workspace.class.ts::KritzelWorkspace",
923
+ "referenceLocation": "KritzelWorkspace"
907
924
  }
908
925
  },
909
926
  "return": "Promise<KritzelWorkspace[]>"
@@ -925,7 +942,8 @@ export class KritzelEditor {
925
942
  "KritzelWorkspace": {
926
943
  "location": "import",
927
944
  "path": "../../../classes/core/workspace.class",
928
- "id": "src/classes/core/workspace.class.ts::KritzelWorkspace"
945
+ "id": "src/classes/core/workspace.class.ts::KritzelWorkspace",
946
+ "referenceLocation": "KritzelWorkspace"
929
947
  }
930
948
  },
931
949
  "return": "Promise<KritzelWorkspace>"