kritzel-stencil 0.0.152 → 0.0.154
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.
- package/dist/cjs/{default-text-tool.config-BX6sjin6.js → default-text-tool.config-BySzvIox.js} +69 -40
- package/dist/cjs/default-text-tool.config-BySzvIox.js.map +1 -0
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/kritzel-color_22.cjs.entry.js +129 -78
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/stencil.cjs.js +1 -1
- package/dist/collection/classes/core/core.class.js +16 -14
- package/dist/collection/classes/core/core.class.js.map +1 -1
- package/dist/collection/classes/core/store.class.js +8 -8
- package/dist/collection/classes/core/store.class.js.map +1 -1
- package/dist/collection/classes/core/viewport.class.js +11 -10
- package/dist/collection/classes/core/viewport.class.js.map +1 -1
- package/dist/collection/classes/handlers/context-menu.handler.js +1 -1
- package/dist/collection/classes/handlers/context-menu.handler.js.map +1 -1
- package/dist/collection/classes/handlers/move.handler.js +2 -0
- package/dist/collection/classes/handlers/move.handler.js.map +1 -1
- package/dist/collection/classes/handlers/resize.handler.js +2 -0
- package/dist/collection/classes/handlers/resize.handler.js.map +1 -1
- package/dist/collection/classes/handlers/rotation.handler.js +2 -0
- package/dist/collection/classes/handlers/rotation.handler.js.map +1 -1
- package/dist/collection/classes/handlers/selection.handler.js +7 -5
- package/dist/collection/classes/handlers/selection.handler.js.map +1 -1
- package/dist/collection/classes/objects/base-object.class.js +11 -5
- package/dist/collection/classes/objects/base-object.class.js.map +1 -1
- package/dist/collection/classes/objects/custom-element.class.js +1 -1
- package/dist/collection/classes/objects/custom-element.class.js.map +1 -1
- package/dist/collection/classes/objects/image.class.js +1 -1
- package/dist/collection/classes/objects/image.class.js.map +1 -1
- package/dist/collection/classes/objects/path.class.js +14 -5
- package/dist/collection/classes/objects/path.class.js.map +1 -1
- package/dist/collection/classes/objects/selection-group.class.js +10 -10
- package/dist/collection/classes/objects/selection-group.class.js.map +1 -1
- package/dist/collection/classes/objects/text.class.js +5 -4
- package/dist/collection/classes/objects/text.class.js.map +1 -1
- package/dist/collection/classes/structures/object-map.structure.js +10 -0
- package/dist/collection/classes/structures/object-map.structure.js.map +1 -1
- package/dist/collection/classes/tools/brush-tool.class.js +8 -6
- package/dist/collection/classes/tools/brush-tool.class.js.map +1 -1
- package/dist/collection/classes/tools/eraser-tool.class.js +2 -0
- package/dist/collection/classes/tools/eraser-tool.class.js.map +1 -1
- package/dist/collection/classes/tools/image-tool.class.js +1 -0
- package/dist/collection/classes/tools/image-tool.class.js.map +1 -1
- package/dist/collection/classes/tools/text-tool.class.js +2 -2
- package/dist/collection/classes/tools/text-tool.class.js.map +1 -1
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +60 -4
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +1 -1
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +89 -27
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +1 -1
- package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.css +0 -5
- package/dist/collection/components/shared/kritzel-menu/kritzel-menu.css +0 -3
- package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.css +0 -2
- package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.css +0 -1
- package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.css +0 -4
- package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.css +0 -4
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.css +0 -5
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +28 -3
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js.map +1 -1
- package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.css +8 -2
- package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +30 -1
- package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js.map +1 -1
- package/dist/collection/configs/default-engine-config.js +1 -2
- package/dist/collection/configs/default-engine-config.js.map +1 -1
- package/dist/collection/interfaces/engine-state.interface.js.map +1 -1
- package/dist/collection/interfaces/undo-state.interface.js +2 -0
- package/dist/collection/interfaces/undo-state.interface.js.map +1 -0
- package/dist/components/index.js +3 -3
- package/dist/components/kritzel-color-palette.js +1 -1
- package/dist/components/kritzel-control-brush-config.js +1 -1
- package/dist/components/kritzel-control-text-config.js +1 -1
- package/dist/components/kritzel-controls.js +1 -1
- package/dist/components/kritzel-editor.js +30 -14
- package/dist/components/kritzel-editor.js.map +1 -1
- package/dist/components/kritzel-engine.js +1 -1
- package/dist/components/kritzel-menu-item.js +1 -1
- package/dist/components/kritzel-menu.js +1 -1
- package/dist/components/kritzel-split-button.js +1 -1
- package/dist/components/kritzel-stroke-size.js +1 -1
- package/dist/components/kritzel-utility-panel.js +1 -1
- package/dist/components/kritzel-workspace-manager.js +1 -1
- package/dist/components/{p-BP71Fape.js → p-1lIHoOlH.js} +14 -12
- package/dist/components/p-1lIHoOlH.js.map +1 -0
- package/dist/components/{p-BDHz9TkP.js → p-B4kxkVe-.js} +3 -3
- package/dist/components/p-B4kxkVe-.js.map +1 -0
- package/dist/components/{p-G8Xyn7XV.js → p-BQg4YML7.js} +3 -3
- package/dist/components/{p-G8Xyn7XV.js.map → p-BQg4YML7.js.map} +1 -1
- package/dist/components/{p-DIp1AvzL.js → p-BfaEHdtM.js} +127 -82
- package/dist/components/p-BfaEHdtM.js.map +1 -0
- package/dist/components/{p-G2HGJcNm.js → p-CBYBurdY.js} +42 -24
- package/dist/components/p-CBYBurdY.js.map +1 -0
- package/dist/components/{p-DnOeM6VQ.js → p-CK6no3mi.js} +4 -4
- package/dist/components/{p-DnOeM6VQ.js.map → p-CK6no3mi.js.map} +1 -1
- package/dist/components/{p-DKVBZiTy.js → p-CsA9M6me.js} +4 -4
- package/dist/components/p-CsA9M6me.js.map +1 -0
- package/dist/components/{p-CJzBIV7n.js → p-D1uj4A4F.js} +3 -3
- package/dist/components/p-D1uj4A4F.js.map +1 -0
- package/dist/components/{p-Cqpp9wKT.js → p-DAfkuR8U.js} +8 -5
- package/dist/components/p-DAfkuR8U.js.map +1 -0
- package/dist/components/{p-CRB1YGoc.js → p-Ddh40W3x.js} +5 -5
- package/dist/components/p-Ddh40W3x.js.map +1 -0
- package/dist/components/{p-DhDRFCsP.js → p-TdCTkEu0.js} +4 -4
- package/dist/components/p-TdCTkEu0.js.map +1 -0
- package/dist/esm/{default-text-tool.config-Bcel-KfG.js → default-text-tool.config-2YFQA3SF.js} +69 -40
- package/dist/esm/default-text-tool.config-2YFQA3SF.js.map +1 -0
- package/dist/esm/index.js +2 -2
- package/dist/esm/kritzel-color_22.entry.js +129 -78
- package/dist/esm/loader.js +1 -1
- package/dist/esm/stencil.js +1 -1
- package/dist/stencil/index.esm.js +1 -1
- package/dist/stencil/p-2YFQA3SF.js +2 -0
- package/dist/stencil/p-2YFQA3SF.js.map +1 -0
- package/dist/stencil/p-bb5b2f78.entry.js +10 -0
- package/dist/stencil/p-bb5b2f78.entry.js.map +1 -0
- package/dist/stencil/stencil.esm.js +1 -1
- package/dist/types/classes/core/store.class.d.ts +4 -3
- package/dist/types/classes/core/viewport.class.d.ts +1 -0
- package/dist/types/classes/objects/path.class.d.ts +1 -0
- package/dist/types/classes/structures/object-map.structure.d.ts +2 -0
- package/dist/types/components/core/kritzel-editor/kritzel-editor.d.ts +8 -1
- package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +5 -0
- package/dist/types/components/ui/kritzel-controls/kritzel-controls.d.ts +2 -0
- package/dist/types/components/ui/kritzel-utility-panel/kritzel-utility-panel.d.ts +2 -0
- package/dist/types/components.d.ts +28 -0
- package/dist/types/interfaces/engine-state.interface.d.ts +1 -2
- package/dist/types/interfaces/undo-state.interface.d.ts +6 -0
- package/package.json +1 -1
- package/dist/cjs/default-text-tool.config-BX6sjin6.js.map +0 -1
- package/dist/components/p-BDHz9TkP.js.map +0 -1
- package/dist/components/p-BP71Fape.js.map +0 -1
- package/dist/components/p-CJzBIV7n.js.map +0 -1
- package/dist/components/p-CRB1YGoc.js.map +0 -1
- package/dist/components/p-Cqpp9wKT.js.map +0 -1
- package/dist/components/p-DIp1AvzL.js.map +0 -1
- package/dist/components/p-DKVBZiTy.js.map +0 -1
- package/dist/components/p-DhDRFCsP.js.map +0 -1
- package/dist/components/p-G2HGJcNm.js.map +0 -1
- package/dist/esm/default-text-tool.config-Bcel-KfG.js.map +0 -1
- package/dist/stencil/p-76adbc98.entry.js +0 -10
- package/dist/stencil/p-76adbc98.entry.js.map +0 -1
- package/dist/stencil/p-Bcel-KfG.js +0 -2
- package/dist/stencil/p-Bcel-KfG.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as registerInstance, h, H as Host, c as createEvent, g as getElement } from './index-SGde3HXB.js';
|
|
2
|
-
import { T as KritzelDevicesHelper, G as KritzelBrushTool, L as KritzelTextTool, U as KritzelMouseButton, M as KritzelSelectionTool, R as DEFAULT_BRUSH_CONFIG, I as KritzelEraserTool, S as DEFAULT_TEXT_CONFIG, J as KritzelImageTool, Q as KritzelWorkspace, V as KritzelKeyboardHelper, W as KritzelBaseHandler, X as KritzelToolRegistry, Y as KritzelSelectionBox, Z as KritzelSelectionGroup, _ as KritzelBaseObject, F as KritzelImage, K as KritzelText, E as KritzelPath, $ as Doc, a0 as DEFAULT_SYNC_CONFIG, a1 as UndoManager, P as KritzelAppStateMap, a2 as ObjectHelper, a3 as KritzelEventHelper, a4 as KritzelBaseTool } from './default-text-tool.config-
|
|
2
|
+
import { T as KritzelDevicesHelper, G as KritzelBrushTool, L as KritzelTextTool, U as KritzelMouseButton, M as KritzelSelectionTool, R as DEFAULT_BRUSH_CONFIG, I as KritzelEraserTool, S as DEFAULT_TEXT_CONFIG, J as KritzelImageTool, Q as KritzelWorkspace, V as KritzelKeyboardHelper, W as KritzelBaseHandler, X as KritzelToolRegistry, Y as KritzelSelectionBox, Z as KritzelSelectionGroup, _ as KritzelBaseObject, F as KritzelImage, K as KritzelText, E as KritzelPath, $ as Doc, a0 as DEFAULT_SYNC_CONFIG, a1 as UndoManager, P as KritzelAppStateMap, a2 as ObjectHelper, a3 as KritzelEventHelper, a4 as KritzelBaseTool } from './default-text-tool.config-2YFQA3SF.js';
|
|
3
3
|
|
|
4
4
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
5
5
|
|
|
@@ -60,7 +60,7 @@ const KritzelColor = class {
|
|
|
60
60
|
};
|
|
61
61
|
KritzelColor.style = kritzelColorCss;
|
|
62
62
|
|
|
63
|
-
const kritzelColorPaletteCss = ":host{display:flex;align-items:flex-start;gap:8px;padding:8px;width:100%;box-sizing:border-box}.color-grid{width:100%;display:grid;grid-template-columns:repeat(6, 32px);gap:8px;justify-items:center;overflow:hidden;height:40px;transition:height 0.1s ease-in-out}.color-grid.expanded{height:500px}.color-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}.color-container:
|
|
63
|
+
const kritzelColorPaletteCss = ":host{display:flex;align-items:flex-start;gap:8px;padding:8px;width:100%;box-sizing:border-box}.color-grid{width:100%;display:grid;grid-template-columns:repeat(6, 32px);gap:8px;justify-items:center;overflow:hidden;height:40px;transition:height 0.1s ease-in-out}.color-grid.expanded{height:500px}.color-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}.color-container:hover{background-color:var(--kritzel-color-palette-hover-background-color, #ebebeb)}.color-container.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-color-palette-selected-background-color)}";
|
|
64
64
|
|
|
65
65
|
const KritzelColorPalette = class {
|
|
66
66
|
constructor(hostRef) {
|
|
@@ -159,7 +159,7 @@ const KritzelContextMenu = class {
|
|
|
159
159
|
};
|
|
160
160
|
KritzelContextMenu.style = kritzelContextMenuCss;
|
|
161
161
|
|
|
162
|
-
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:
|
|
162
|
+
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)}";
|
|
163
163
|
|
|
164
164
|
const KritzelControlBrushConfig = class {
|
|
165
165
|
constructor(hostRef) {
|
|
@@ -247,7 +247,7 @@ const KritzelControlTextConfig = class {
|
|
|
247
247
|
};
|
|
248
248
|
KritzelControlTextConfig.style = kritzelControlTextConfigCss;
|
|
249
249
|
|
|
250
|
-
const kritzelControlsCss = ":host{display:flex;flex-direction:column;user-select:none}:host(.mobile){--kritzel-controls-control-hover-background-color:transparent;--kritzel-controls-control-active-background-color:transparent}.kritzel-controls{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:var(--kritzel-controls-gap, 8px);height:100%;padding:var(--kritzel-controls-padding, 8px);background-color:var(--kritzel-controls-background-color, #ffffff);border-radius:var(--kritzel-controls-border-radius, 16px);box-shadow:var(--kritzel-controls-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));border:var(--kritzel-controls-border, 1px solid #ebebeb);z-index:10000;position:relative}.kritzel-control{display:flex;justify-content:center;align-items:center;color:var(--kritzel-controls-control-color, #000000);border-radius:var(--kritzel-controls-control-border-radius, 12px);padding:var(--kritzel-controls-control-padding, 8px);border:none;
|
|
250
|
+
const kritzelControlsCss = ":host{display:flex;flex-direction:column;user-select:none}:host(.mobile){--kritzel-controls-control-hover-background-color:transparent;--kritzel-controls-control-active-background-color:transparent}.kritzel-controls{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:var(--kritzel-controls-gap, 8px);height:100%;padding:var(--kritzel-controls-padding, 8px);background-color:var(--kritzel-controls-background-color, #ffffff);border-radius:var(--kritzel-controls-border-radius, 16px);box-shadow:var(--kritzel-controls-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));border:var(--kritzel-controls-border, 1px solid #ebebeb);z-index:10000;position:relative}.kritzel-control{display:flex;justify-content:center;align-items:center;color:var(--kritzel-controls-control-color, #000000);border-radius:var(--kritzel-controls-control-border-radius, 12px);padding:var(--kritzel-controls-control-padding, 8px);border:none;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent;font-weight:bold}.kritzel-control:focus,.kritzel-control:hover{background-color:var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.kritzel-control:active{background-color:var(--kritzel-controls-control-active-background-color, hsl(0, 0%, 0%, 8.6%))}.kritzel-control.selected,.kritzel-control.selected:hover,.kritzel-control.selected:active{background-color:var(--kritzel-controls-control-selected-background-color, #007AFF) !important;color:var(--kritzel-controls-control-selected-color, #ffffff) !important}.kritzel-control.selected:focus{background-color:var(--kritzel-controls-control-selected-background-color, #007bffe3) !important}.kritzel-divider{width:var(--kritzel-controls-divider-width, 1px);height:var(--kritzel-controls-divider-height, 24px);background-color:var(--kritzel-controls-divider-background-color, hsl(0, 0%, 0%, 4.3%))}.kritzel-config-container{position:relative;display:flex;justify-content:center;align-items:center;width:40px;height:40px;box-sizing:border-box;-webkit-tap-highlight-color:transparent}.kritzel-config{display:flex;justify-content:center;align-items:center;cursor:pointer;border-radius:50%}.color-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;background-color:var(--kritzel-color-palette-hover-background-color, #ebebeb)}.font-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:pointer;border:2px solid transparent;box-sizing:border-box;background-color:var(--kritzel-color-palette-hover-background-color, #ebebeb)}.no-config{height:24px;width:24px;border-radius:50%;border:1px dashed gray}kritzel-tooltip{position:fixed;bottom:56px;left:50%;transform:translateX(-50%);z-index:10001}";
|
|
251
251
|
|
|
252
252
|
const KritzelControls = class {
|
|
253
253
|
constructor(hostRef) {
|
|
@@ -258,6 +258,7 @@ const KritzelControls = class {
|
|
|
258
258
|
controls = [];
|
|
259
259
|
activeControl = null;
|
|
260
260
|
isUtilityPanelVisible = true;
|
|
261
|
+
undoState = null;
|
|
261
262
|
isControlsReady;
|
|
262
263
|
firstConfig = null;
|
|
263
264
|
isTooltipVisible = false;
|
|
@@ -350,13 +351,13 @@ const KritzelControls = class {
|
|
|
350
351
|
}
|
|
351
352
|
render() {
|
|
352
353
|
const hasNoConfig = this.activeControl?.config === undefined || this.activeControl?.config === null;
|
|
353
|
-
return (h(Host, { key: '
|
|
354
|
+
return (h(Host, { key: '6ea9de8d541e3fc02c5ceeebf4c2c5fb4d8ad926', class: {
|
|
354
355
|
mobile: this.isTouchDevice,
|
|
355
|
-
} }, this.isUtilityPanelVisible && (h("kritzel-utility-panel", { key: '
|
|
356
|
+
} }, this.isUtilityPanelVisible && (h("kritzel-utility-panel", { key: '7506b42f05c3f49aa5c936d267c5de44b3ebb9cd', style: {
|
|
356
357
|
position: 'absolute',
|
|
357
358
|
bottom: '56px',
|
|
358
359
|
left: '12px',
|
|
359
|
-
}, onUndo: () => this.kritzelEngine?.undo(), onRedo: () => this.kritzelEngine?.redo(), onDelete: () => this.kritzelEngine?.delete() })), h("div", { key: '
|
|
360
|
+
}, undoState: this.undoState, onUndo: () => this.kritzelEngine?.undo(), onRedo: () => this.kritzelEngine?.redo(), onDelete: () => this.kritzelEngine?.delete() })), h("div", { key: '1299fce4adea3f9a529bbaf73d35e2676b6850e4', class: "kritzel-controls" }, this.controls.map(control => {
|
|
360
361
|
if (control.type === 'tool') {
|
|
361
362
|
return (h("button", { class: {
|
|
362
363
|
'kritzel-control': true,
|
|
@@ -628,6 +629,8 @@ const KritzelEditor = class {
|
|
|
628
629
|
constructor(hostRef) {
|
|
629
630
|
registerInstance(this, hostRef);
|
|
630
631
|
this.isReady = createEvent(this, "isReady");
|
|
632
|
+
this.objectsChange = createEvent(this, "objectsChange");
|
|
633
|
+
this.undoStateChange = createEvent(this, "undoStateChange");
|
|
631
634
|
}
|
|
632
635
|
get host() { return getElement(this); }
|
|
633
636
|
scaleMax = ABSOLUTE_SCALE_MAX;
|
|
@@ -701,12 +704,15 @@ const KritzelEditor = class {
|
|
|
701
704
|
isUtilityPanelVisible = true;
|
|
702
705
|
syncConfig;
|
|
703
706
|
isReady;
|
|
707
|
+
objectsChange;
|
|
708
|
+
undoStateChange;
|
|
704
709
|
isEngineReady = false;
|
|
705
710
|
isControlsReady = false;
|
|
706
711
|
isWorkspaceManagerReady = false;
|
|
707
712
|
workspaces = [];
|
|
708
713
|
activeWorkspace;
|
|
709
714
|
isVirtualKeyboardOpen = false;
|
|
715
|
+
undoState = null;
|
|
710
716
|
onIsEngineReady(newValue) {
|
|
711
717
|
if (newValue && this.isControlsReady) {
|
|
712
718
|
this.checkIsReady();
|
|
@@ -725,7 +731,7 @@ const KritzelEditor = class {
|
|
|
725
731
|
}
|
|
726
732
|
}
|
|
727
733
|
}
|
|
728
|
-
|
|
734
|
+
onTouchStart(event) {
|
|
729
735
|
if (event.cancelable) {
|
|
730
736
|
event.preventDefault();
|
|
731
737
|
}
|
|
@@ -796,6 +802,16 @@ const KritzelEditor = class {
|
|
|
796
802
|
this.activeWorkspace = event.detail.activeWorkspace;
|
|
797
803
|
this.workspaces = event.detail.workspaces;
|
|
798
804
|
}
|
|
805
|
+
handleWorkspacesChange(event) {
|
|
806
|
+
this.workspaces = event.detail;
|
|
807
|
+
}
|
|
808
|
+
handleObjectsChange(event) {
|
|
809
|
+
this.objectsChange.emit(event.detail);
|
|
810
|
+
}
|
|
811
|
+
handleUndoStateChange(event) {
|
|
812
|
+
this.undoStateChange.emit(event.detail);
|
|
813
|
+
this.undoState = event.detail;
|
|
814
|
+
}
|
|
799
815
|
registerCustomSvgIcons() {
|
|
800
816
|
for (const [name, svg] of Object.entries(this.customSvgIcons)) {
|
|
801
817
|
KritzelIconRegistry.register(name, svg);
|
|
@@ -833,7 +849,7 @@ const KritzelEditor = class {
|
|
|
833
849
|
}
|
|
834
850
|
}
|
|
835
851
|
render() {
|
|
836
|
-
return (h(Host, { key: '
|
|
852
|
+
return (h(Host, { key: '87983fe2d4fcdbf226851190e7529f12e7b5fdbf' }, h("kritzel-workspace-manager", { key: 'a1e0f522a7075ef4e2b5eab47dab5dc77098b402', workspaces: this.workspaces, activeWorkspace: this.activeWorkspace, onWorkspaceChange: event => (this.activeWorkspace = event.detail), onIsWorkspaceManagerReady: () => (this.isWorkspaceManagerReady = true) }), h("kritzel-engine", { key: '18e78080712e53ead39ff07e43b7035e43a096f2', 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: '5ffaebbbeecbeebab050b3f990d027c6653a1940', 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) })));
|
|
837
853
|
}
|
|
838
854
|
static get watchers() { return {
|
|
839
855
|
"isEngineReady": ["onIsEngineReady"],
|
|
@@ -18057,6 +18073,7 @@ var lodashExports = requireLodash();
|
|
|
18057
18073
|
class KritzelViewport {
|
|
18058
18074
|
_core;
|
|
18059
18075
|
_debounceUpdate;
|
|
18076
|
+
_debounceEndScaling;
|
|
18060
18077
|
initialTouchDistance = 0;
|
|
18061
18078
|
startX = 0;
|
|
18062
18079
|
startY = 0;
|
|
@@ -18072,6 +18089,10 @@ class KritzelViewport {
|
|
|
18072
18089
|
this._debounceUpdate = lodashExports.debounce(() => {
|
|
18073
18090
|
this._core.updateWorkspaceViewport(this._core.store.state.translateX, this._core.store.state.translateY, this._core.store.state.scale);
|
|
18074
18091
|
}, 300);
|
|
18092
|
+
this._debounceEndScaling = lodashExports.debounce(() => {
|
|
18093
|
+
this._core.store.state.isScaling = false;
|
|
18094
|
+
this._core.rerender();
|
|
18095
|
+
}, 100);
|
|
18075
18096
|
}
|
|
18076
18097
|
handleResize() {
|
|
18077
18098
|
this._core.store.state.viewportWidth = this._core.store.state.host.clientWidth;
|
|
@@ -18094,7 +18115,7 @@ class KritzelViewport {
|
|
|
18094
18115
|
if (activePointers.length === 2) {
|
|
18095
18116
|
const currentPath = this._core.store.currentPath;
|
|
18096
18117
|
if (currentPath) {
|
|
18097
|
-
this._core.store.state.
|
|
18118
|
+
this._core.store.state.objects.remove(obj => obj.id === currentPath.id);
|
|
18098
18119
|
}
|
|
18099
18120
|
this._core.store.state.isScaling = true;
|
|
18100
18121
|
const firstTouchX = activePointers[0].clientX - this._core.store.offsetX;
|
|
@@ -18174,10 +18195,7 @@ class KritzelViewport {
|
|
|
18174
18195
|
}
|
|
18175
18196
|
if (event.pointerType === 'touch') {
|
|
18176
18197
|
if (this._core.store.state.pointers.size === 0) {
|
|
18177
|
-
|
|
18178
|
-
this._core.store.state.isScaling = false;
|
|
18179
|
-
this._core.rerender();
|
|
18180
|
-
}, 300);
|
|
18198
|
+
this._debounceEndScaling();
|
|
18181
18199
|
}
|
|
18182
18200
|
}
|
|
18183
18201
|
}
|
|
@@ -18216,8 +18234,9 @@ class KritzelViewport {
|
|
|
18216
18234
|
const yRelativeToHost = event.clientY - rect.top;
|
|
18217
18235
|
this._core.store.state.pointerX = (xRelativeToHost - this._core.store.state.translateX) / this._core.store.state.scale;
|
|
18218
18236
|
this._core.store.state.pointerY = (yRelativeToHost - this._core.store.state.translateY) / this._core.store.state.scale;
|
|
18219
|
-
const
|
|
18220
|
-
const
|
|
18237
|
+
const rawScaleFactor = 1 + (event.deltaY * -0.012);
|
|
18238
|
+
const scaleFactor = Math.max(0.8, Math.min(1.2, rawScaleFactor));
|
|
18239
|
+
const newScale = Math.min(this._core.store.state.scaleMax, Math.max(this._core.store.state.scaleMin, this._core.store.state.scale * scaleFactor));
|
|
18221
18240
|
const scaleRatio = newScale / this._core.store.state.scale;
|
|
18222
18241
|
const translateXAdjustment = (xRelativeToHost - this._core.store.state.translateX) * (scaleRatio - 1);
|
|
18223
18242
|
const translateYAdjustment = (yRelativeToHost - this._core.store.state.translateY) * (scaleRatio - 1);
|
|
@@ -18227,9 +18246,7 @@ class KritzelViewport {
|
|
|
18227
18246
|
this._core.store.state.hasViewportChanged = true;
|
|
18228
18247
|
this._core.rerender();
|
|
18229
18248
|
this._debounceUpdate();
|
|
18230
|
-
|
|
18231
|
-
this._core.store.state.isScaling = false;
|
|
18232
|
-
}, 300);
|
|
18249
|
+
this._debounceEndScaling();
|
|
18233
18250
|
}
|
|
18234
18251
|
handlePan(event) {
|
|
18235
18252
|
const panSpeed = 0.8;
|
|
@@ -18316,7 +18333,7 @@ class KritzelContextMenuHandler extends KritzelBaseHandler {
|
|
|
18316
18333
|
const selectionTool = this._core.store.state.activeTool;
|
|
18317
18334
|
selectionTool?.moveHandler?.cancelPendingDrag();
|
|
18318
18335
|
if (this._core.store.selectionBox) {
|
|
18319
|
-
this._core.store.state.
|
|
18336
|
+
this._core.store.state.objects.remove(object => object instanceof KritzelSelectionBox);
|
|
18320
18337
|
this._core.store.state.isSelecting = false;
|
|
18321
18338
|
}
|
|
18322
18339
|
const selectedObject = this._core.getObjectFromPointerEvent(event, '.object');
|
|
@@ -18365,7 +18382,7 @@ const DEFAULT_ENGINE_CONFIG = {
|
|
|
18365
18382
|
activeWorkspace: null,
|
|
18366
18383
|
activeTool: null,
|
|
18367
18384
|
copiedObjects: null,
|
|
18368
|
-
|
|
18385
|
+
objects: null,
|
|
18369
18386
|
resizeHandleType: null,
|
|
18370
18387
|
hasViewportChanged: false,
|
|
18371
18388
|
hasObjectsChanged: false,
|
|
@@ -18398,7 +18415,6 @@ const DEFAULT_ENGINE_CONFIG = {
|
|
|
18398
18415
|
scale: 1,
|
|
18399
18416
|
scaleMax: 1,
|
|
18400
18417
|
scaleMin: 1,
|
|
18401
|
-
scaleStep: 0.075,
|
|
18402
18418
|
startX: 0,
|
|
18403
18419
|
startY: 0,
|
|
18404
18420
|
translateX: 0,
|
|
@@ -18464,7 +18480,7 @@ class KritzelCustomElement extends KritzelBaseObject {
|
|
|
18464
18480
|
this.element.style.height = `${height}px`;
|
|
18465
18481
|
}
|
|
18466
18482
|
// Update to sync changes to y.js and propagate to other tabs
|
|
18467
|
-
this._core.store.state.
|
|
18483
|
+
this._core.store.state.objects.update(this);
|
|
18468
18484
|
}
|
|
18469
18485
|
copy() {
|
|
18470
18486
|
const copiedObject = Object.create(Object.getPrototypeOf(this));
|
|
@@ -18556,6 +18572,14 @@ class KritzelObjectMap {
|
|
|
18556
18572
|
get workspaceId() {
|
|
18557
18573
|
return this._workspaceId;
|
|
18558
18574
|
}
|
|
18575
|
+
get undoState() {
|
|
18576
|
+
return {
|
|
18577
|
+
canUndo: this._undoManager ? this._undoManager.canUndo() : false,
|
|
18578
|
+
canRedo: this._undoManager ? this._undoManager.canRedo() : false,
|
|
18579
|
+
undoStackSize: this._undoManager ? this._undoManager.undoStack.length : 0,
|
|
18580
|
+
redoStackSize: this._undoManager ? this._undoManager.redoStack.length : 0,
|
|
18581
|
+
};
|
|
18582
|
+
}
|
|
18559
18583
|
constructor() {
|
|
18560
18584
|
this.map = new Map();
|
|
18561
18585
|
}
|
|
@@ -18739,11 +18763,13 @@ class KritzelObjectMap {
|
|
|
18739
18763
|
undo() {
|
|
18740
18764
|
if (this._undoManager && this._undoManager.canUndo()) {
|
|
18741
18765
|
this._undoManager.undo();
|
|
18766
|
+
this._core.engine.emitObjectsChange();
|
|
18742
18767
|
}
|
|
18743
18768
|
}
|
|
18744
18769
|
redo() {
|
|
18745
18770
|
if (this._undoManager && this._undoManager.canRedo()) {
|
|
18746
18771
|
this._undoManager.redo();
|
|
18772
|
+
this._core.engine.emitObjectsChange();
|
|
18747
18773
|
}
|
|
18748
18774
|
}
|
|
18749
18775
|
canUndo() {
|
|
@@ -18831,31 +18857,31 @@ class KritzelStore {
|
|
|
18831
18857
|
return this._state;
|
|
18832
18858
|
}
|
|
18833
18859
|
get currentZIndex() {
|
|
18834
|
-
return Math.max(0, ...this._state.
|
|
18860
|
+
return Math.max(0, ...this._state.objects.filter(o => !(o instanceof KritzelSelectionGroup) && !(o instanceof KritzelSelectionBox)).map(o => o.zIndex)) + 1;
|
|
18835
18861
|
}
|
|
18836
18862
|
get allObjects() {
|
|
18837
|
-
return this._state.
|
|
18863
|
+
return this._state.objects.allObjects();
|
|
18838
18864
|
}
|
|
18839
18865
|
get allNonSelectionObjects() {
|
|
18840
|
-
return this._state.
|
|
18866
|
+
return this._state.objects.allObjects().filter(o => !(o instanceof KritzelSelectionGroup) && !(o instanceof KritzelSelectionBox));
|
|
18841
18867
|
}
|
|
18842
18868
|
get selectedObjects() {
|
|
18843
18869
|
return this.allObjects.filter(o => !(o instanceof KritzelSelectionGroup)).filter(o => o.isSelected);
|
|
18844
18870
|
}
|
|
18845
18871
|
get selectionBox() {
|
|
18846
|
-
const selectionBoxes = this._state.
|
|
18872
|
+
const selectionBoxes = this._state.objects.filter(o => o instanceof KritzelSelectionBox);
|
|
18847
18873
|
return selectionBoxes.length > 0 ? selectionBoxes[0] : null;
|
|
18848
18874
|
}
|
|
18849
18875
|
get selectionGroup() {
|
|
18850
|
-
const selectionGroups = this._state.
|
|
18876
|
+
const selectionGroups = this._state.objects.filter(o => o instanceof KritzelSelectionGroup);
|
|
18851
18877
|
return selectionGroups.length > 0 ? selectionGroups[0] : null;
|
|
18852
18878
|
}
|
|
18853
18879
|
get activeText() {
|
|
18854
|
-
const activeTexts = this._state.
|
|
18880
|
+
const activeTexts = this._state.objects.filter(o => o instanceof KritzelText && o.isEditing);
|
|
18855
18881
|
return activeTexts.length > 0 ? activeTexts[0] : null;
|
|
18856
18882
|
}
|
|
18857
18883
|
get currentPath() {
|
|
18858
|
-
const drawingPaths = this._state.
|
|
18884
|
+
const drawingPaths = this._state.objects.filter(o => o instanceof KritzelPath && o.isCompleted === false);
|
|
18859
18885
|
return drawingPaths.length > 0 ? drawingPaths[0] : null;
|
|
18860
18886
|
}
|
|
18861
18887
|
get offsetX() {
|
|
@@ -18869,7 +18895,7 @@ class KritzelStore {
|
|
|
18869
18895
|
}
|
|
18870
18896
|
constructor(state) {
|
|
18871
18897
|
this._state = state;
|
|
18872
|
-
this._state.
|
|
18898
|
+
this._state.objects = new KritzelObjectMap();
|
|
18873
18899
|
}
|
|
18874
18900
|
onStateChange(property, listener) {
|
|
18875
18901
|
if (!this._listeners.has(property)) {
|
|
@@ -18966,8 +18992,8 @@ class KritzelCore {
|
|
|
18966
18992
|
this.saveWorkspaceToAppState(activeWorkspace);
|
|
18967
18993
|
}
|
|
18968
18994
|
// Destroy old ObjectMap if switching workspaces
|
|
18969
|
-
if (this._store.state.
|
|
18970
|
-
this._store.state.
|
|
18995
|
+
if (this._store.state.objects && this._store.state.objects.isReady) {
|
|
18996
|
+
this._store.state.objects.destroy();
|
|
18971
18997
|
}
|
|
18972
18998
|
// Set active workspace
|
|
18973
18999
|
this._store.state.activeWorkspace = activeWorkspace;
|
|
@@ -18980,7 +19006,8 @@ class KritzelCore {
|
|
|
18980
19006
|
// Create new ObjectMap with its own Y.Doc for this workspace
|
|
18981
19007
|
const objectsMap = new KritzelObjectMap();
|
|
18982
19008
|
await objectsMap.initialize(this, activeWorkspace.id, this._syncConfig);
|
|
18983
|
-
this._store.state.
|
|
19009
|
+
this._store.state.objects = objectsMap;
|
|
19010
|
+
this.engine.emitObjectsChange();
|
|
18984
19011
|
this.rerender();
|
|
18985
19012
|
}
|
|
18986
19013
|
rerender() {
|
|
@@ -19019,7 +19046,7 @@ class KritzelCore {
|
|
|
19019
19046
|
deleteWorkspace(workspace) {
|
|
19020
19047
|
// If deleting the active workspace, need to handle ObjectMap cleanup
|
|
19021
19048
|
if (this._store.state.activeWorkspace?.id === workspace.id) {
|
|
19022
|
-
this._store.state.
|
|
19049
|
+
this._store.state.objects?.destroy();
|
|
19023
19050
|
}
|
|
19024
19051
|
this.deleteWorkspaceFromAppState(workspace.id);
|
|
19025
19052
|
this._store.state.workspaces = this.loadWorkspacesFromAppState();
|
|
@@ -19037,11 +19064,11 @@ class KritzelCore {
|
|
|
19037
19064
|
this.saveWorkspaceToAppState(activeWorkspace);
|
|
19038
19065
|
}
|
|
19039
19066
|
addObject(object) {
|
|
19040
|
-
this._store.state.
|
|
19067
|
+
this._store.state.objects.insert(object);
|
|
19041
19068
|
}
|
|
19042
19069
|
removeObject(object) {
|
|
19043
19070
|
object.isMounted = false;
|
|
19044
|
-
this._store.state.
|
|
19071
|
+
this._store.state.objects.remove(o => o.id === object.id);
|
|
19045
19072
|
}
|
|
19046
19073
|
updateObject(object, updatedProperties) {
|
|
19047
19074
|
for (const key in updatedProperties) {
|
|
@@ -19049,23 +19076,23 @@ class KritzelCore {
|
|
|
19049
19076
|
object[key] = updatedProperties[key];
|
|
19050
19077
|
}
|
|
19051
19078
|
}
|
|
19052
|
-
this._store.state.
|
|
19079
|
+
this._store.state.objects.update(object);
|
|
19053
19080
|
}
|
|
19054
19081
|
addSelectionGroup(selectionGroup) {
|
|
19055
19082
|
this.removeSelectionGroup();
|
|
19056
19083
|
this.removeSelectionBox();
|
|
19057
|
-
this._store.state.
|
|
19084
|
+
this._store.state.objects.insert(selectionGroup);
|
|
19058
19085
|
}
|
|
19059
19086
|
removeSelectionGroup() {
|
|
19060
19087
|
const selectionGroup = this._store.selectionGroup;
|
|
19061
19088
|
if (selectionGroup) {
|
|
19062
|
-
this._store.state.
|
|
19089
|
+
this._store.state.objects.remove(object => object.id === selectionGroup.id);
|
|
19063
19090
|
}
|
|
19064
19091
|
}
|
|
19065
19092
|
removeSelectionBox() {
|
|
19066
19093
|
const selectionBox = this._store.selectionBox;
|
|
19067
19094
|
if (selectionBox) {
|
|
19068
|
-
this._store.state.
|
|
19095
|
+
this._store.state.objects.remove(object => object.id === selectionBox.id);
|
|
19069
19096
|
}
|
|
19070
19097
|
}
|
|
19071
19098
|
deselectAllObjects() {
|
|
@@ -19082,10 +19109,10 @@ class KritzelCore {
|
|
|
19082
19109
|
this.rerender();
|
|
19083
19110
|
}
|
|
19084
19111
|
undo() {
|
|
19085
|
-
this._store.state.
|
|
19112
|
+
this._store.state.objects?.undo();
|
|
19086
19113
|
}
|
|
19087
19114
|
redo() {
|
|
19088
|
-
this._store.state.
|
|
19115
|
+
this._store.state.objects?.redo();
|
|
19089
19116
|
}
|
|
19090
19117
|
deleteObject(id) {
|
|
19091
19118
|
const object = this.findObjectById(id);
|
|
@@ -19181,6 +19208,7 @@ class KritzelCore {
|
|
|
19181
19208
|
this._store.state.copiedObjects = newSelectionGroup.objects.sort((a, b) => a.zIndex - b.zIndex).map(obj => obj.copy());
|
|
19182
19209
|
}
|
|
19183
19210
|
this._store.setState('activeTool', KritzelToolRegistry.getTool('selection'));
|
|
19211
|
+
this.engine.emitObjectsChange();
|
|
19184
19212
|
this.rerender();
|
|
19185
19213
|
}
|
|
19186
19214
|
bringForward(object) {
|
|
@@ -19244,7 +19272,7 @@ class KritzelCore {
|
|
|
19244
19272
|
this.rerender();
|
|
19245
19273
|
}
|
|
19246
19274
|
selectAllObjectsInViewport() {
|
|
19247
|
-
const objectsInViewport = this._store.state.
|
|
19275
|
+
const objectsInViewport = this._store.state.objects
|
|
19248
19276
|
.filter(o => o.isInViewport())
|
|
19249
19277
|
.filter(o => !(o instanceof KritzelSelectionGroup) && !(o instanceof KritzelSelectionBox) && !(o instanceof KritzelContextMenu));
|
|
19250
19278
|
if (objectsInViewport.length > 0) {
|
|
@@ -19265,7 +19293,7 @@ class KritzelCore {
|
|
|
19265
19293
|
}
|
|
19266
19294
|
clearSelection() {
|
|
19267
19295
|
this.removeSelectionGroup();
|
|
19268
|
-
this._store.state.
|
|
19296
|
+
this._store.state.objects.remove(o => o instanceof KritzelSelectionBox || o instanceof KritzelSelectionGroup);
|
|
19269
19297
|
this._store.state.isSelecting = false;
|
|
19270
19298
|
this._store.state.isResizeHandleSelected = false;
|
|
19271
19299
|
this._store.state.isRotationHandleSelected = false;
|
|
@@ -19383,7 +19411,13 @@ const KritzelEngine = class {
|
|
|
19383
19411
|
activeToolChange;
|
|
19384
19412
|
workspacesChange;
|
|
19385
19413
|
longpress;
|
|
19414
|
+
objectsChange;
|
|
19415
|
+
undoStateChange;
|
|
19386
19416
|
forceUpdate = 0;
|
|
19417
|
+
throttledWheel = lodashExports.throttle((ev) => {
|
|
19418
|
+
this.viewport.handleWheel(ev);
|
|
19419
|
+
this.core.store.state?.activeTool?.handleWheel(ev);
|
|
19420
|
+
}, 16);
|
|
19387
19421
|
handleWheel(ev) {
|
|
19388
19422
|
if (this.core.store.isDisabled) {
|
|
19389
19423
|
return;
|
|
@@ -19391,8 +19425,7 @@ const KritzelEngine = class {
|
|
|
19391
19425
|
if (this.core.store.state.isContextMenuVisible) {
|
|
19392
19426
|
this.hideContextMenu();
|
|
19393
19427
|
}
|
|
19394
|
-
this.
|
|
19395
|
-
this.core.store.state?.activeTool?.handleWheel(ev);
|
|
19428
|
+
this.throttledWheel(ev);
|
|
19396
19429
|
}
|
|
19397
19430
|
handlePointerDown(ev) {
|
|
19398
19431
|
if (this.core.store.isDisabled) {
|
|
@@ -19527,7 +19560,7 @@ const KritzelEngine = class {
|
|
|
19527
19560
|
async hideContextMenu() {
|
|
19528
19561
|
this.core.store.state.pointers.clear();
|
|
19529
19562
|
this.core.store.state.isContextMenuVisible = false;
|
|
19530
|
-
this.core.store.state.
|
|
19563
|
+
this.core.store.state.objects.remove(o => o instanceof KritzelSelectionBox);
|
|
19531
19564
|
this.core.store.state.isSelecting = false;
|
|
19532
19565
|
this.core.store.state.isEnabled = true;
|
|
19533
19566
|
this.core.rerender();
|
|
@@ -19554,7 +19587,7 @@ const KritzelEngine = class {
|
|
|
19554
19587
|
}
|
|
19555
19588
|
async removeObject(object) {
|
|
19556
19589
|
this.core.deselectAllObjects();
|
|
19557
|
-
this.core.
|
|
19590
|
+
this.core.store.state.objects.remove(o => o.id === object.id);
|
|
19558
19591
|
this.core.rerender();
|
|
19559
19592
|
return object;
|
|
19560
19593
|
}
|
|
@@ -19622,9 +19655,12 @@ const KritzelEngine = class {
|
|
|
19622
19655
|
this.activeToolChange = createEvent(this, "activeToolChange");
|
|
19623
19656
|
this.workspacesChange = createEvent(this, "workspacesChange");
|
|
19624
19657
|
this.longpress = createEvent(this, "longpress");
|
|
19658
|
+
this.objectsChange = createEvent(this, "objectsChange");
|
|
19659
|
+
this.undoStateChange = createEvent(this, "undoStateChange");
|
|
19625
19660
|
this.core = new KritzelCore(this);
|
|
19626
19661
|
}
|
|
19627
19662
|
disconnectedCallback() {
|
|
19663
|
+
this.throttledWheel.cancel();
|
|
19628
19664
|
this.throttledPointerMoveMulti.cancel();
|
|
19629
19665
|
}
|
|
19630
19666
|
componentWillLoad() {
|
|
@@ -19653,13 +19689,19 @@ const KritzelEngine = class {
|
|
|
19653
19689
|
this.isEngineReady.emit(this.core.store.state);
|
|
19654
19690
|
}
|
|
19655
19691
|
}
|
|
19692
|
+
emitObjectsChange() {
|
|
19693
|
+
const objects = this.core.store.allObjects;
|
|
19694
|
+
const undoState = this.core.store.state.objects.undoState;
|
|
19695
|
+
this.objectsChange.emit(objects);
|
|
19696
|
+
this.undoStateChange.emit(undoState);
|
|
19697
|
+
}
|
|
19656
19698
|
_registerStateChangeListeners() {
|
|
19657
19699
|
this.core.store.onStateChange('activeTool', this._handleActiveToolChange.bind(this));
|
|
19658
19700
|
}
|
|
19659
19701
|
_handleActiveToolChange(activeTool) {
|
|
19660
19702
|
if (!(activeTool instanceof KritzelSelectionTool)) {
|
|
19661
19703
|
this.core.clearSelection();
|
|
19662
|
-
this.core.store.state.
|
|
19704
|
+
this.core.store.state.objects.remove(o => o instanceof KritzelSelectionBox);
|
|
19663
19705
|
this.core.store.state.isSelecting = false;
|
|
19664
19706
|
this.core.store.state.isResizeHandleSelected = false;
|
|
19665
19707
|
this.core.store.state.isRotationHandleSelected = false;
|
|
@@ -19677,11 +19719,12 @@ const KritzelEngine = class {
|
|
|
19677
19719
|
const baseHandleTouchSize = baseHandleSize * 2 < 14 ? 14 : baseHandleSize;
|
|
19678
19720
|
const viewportCenterX = this.core.store.state.viewportWidth / 2 + this.core.store.state.translateX;
|
|
19679
19721
|
const viewportCenterY = this.core.store.state.viewportHeight / 2 + this.core.store.state.translateY;
|
|
19680
|
-
|
|
19722
|
+
// Performance optimization: skip viewport filtering during scaling/panning
|
|
19723
|
+
const visibleObjects = this.core.store.state.objects.allObjects().filter(obj => obj.isInViewport());
|
|
19724
|
+
return (h(Host, { key: '27fe100b91431ac60e92bf760037cc447a63e38a' }, h("div", { key: '7e114372f5fa323a859157f3755d3fa5d4b08d47', class: "debug-panel", style: { display: this.core.store.state.debugInfo.showViewportInfo ? 'block' : 'none' } }, h("div", { key: '1863b8445ddd28130a54e02bb89d9ed274f8260c' }, "ActiveWorkspaceId: ", this.core.store.state?.activeWorkspace?.id), h("div", { key: '1640063aec9f5afd6ac967d7f65d99b36795bc3a' }, "ActiveWorkspaceName: ", this.core.store.state?.activeWorkspace?.name), h("div", { key: '199c6d4f705f5ae11b36e1d1331a580248ae0084' }, "TranslateX: ", this.core.store.state?.translateX), h("div", { key: '274033ad94cf606bc23200964ed9243f62150b86' }, "TranslateY: ", this.core.store.state?.translateY), h("div", { key: 'cc8779f3a09206db0bbad9703a85c824439a7937' }, "ViewportWidth: ", this.core.store.state?.viewportWidth), h("div", { key: '043c6e466232f30d352c059090a577555ed77408' }, "ViewportHeight: ", this.core.store.state?.viewportHeight), h("div", { key: 'ccc766354a394c94ae72152b56b3b3be127fb81f' }, "PointerCount: ", this.core.store.state.pointers.size), h("div", { key: '02ad8120fb92b4f03b658c64370dedf263c1379c' }, "Scale: ", this.core.store.state?.scale), h("div", { key: '5ae8ad9b57519bb6a37878a9c2705e516f3938c8' }, "ActiveTool: ", this.core.store.state?.activeTool?.name), h("div", { key: '2087eeeba5781392f25fc68b055c58304533a4ac' }, "HasViewportChanged: ", this.core.store.state?.hasViewportChanged ? 'true' : 'false'), h("div", { key: 'e144771bcf53633acc0f9c5dd67cd47a39e9fdc4' }, "IsEnabled: ", this.core.store.state?.isEnabled ? 'true' : 'false'), h("div", { key: 'ca6ab6ec3fe102fef9439d345784a6d665f5830d' }, "IsScaling: ", this.core.store.state?.isScaling ? 'true' : 'false'), h("div", { key: '39771b31899d1d8a03866327b003f6a136465ef6' }, "IsPanning: ", this.core.store.state?.isPanning ? 'true' : 'false'), h("div", { key: 'a018739b027928ea79199c87236f539031c75665' }, "IsSelecting: ", this.isSelecting ? 'true' : 'false'), h("div", { key: '9a726c78db50c847990a0da94d47944ab67a4032' }, "IsSelectionActive: ", this.isSelectionActive ? 'true' : 'false'), h("div", { key: '4a071e003c6829fd77e24feff0505179e4ddb6e5' }, "IsResizeHandleSelected: ", this.core.store.state.isResizeHandleSelected ? 'true' : 'false'), h("div", { key: '5de9101a5f8adc50d0205d1dc2c9c6ecfaee775b' }, "IsRotationHandleSelected: ", this.core.store.state.isRotationHandleSelected ? 'true' : 'false'), h("div", { key: 'b7cc40f141d38f1c44504537cb17d3715c463ef6' }, "IsDrawing: ", this.core.store.state.isDrawing ? 'true' : 'false'), h("div", { key: 'ec70a94cedaa20185c736619aeed903d47873a26' }, "IsWriting: ", this.core.store.state.isWriting ? 'true' : 'false'), h("div", { key: '004ba71d21b338ea4ccea9c2bd7a7e910d5fad5f' }, "PointerX: ", this.core.store.state?.pointerX), h("div", { key: '8e0b4ce18754f469a1cb86fc411090333e12f59f' }, "PointerY: ", this.core.store.state?.pointerY), h("div", { key: 'bb439deff145d1b362580945fedfa294c85e3a4d' }, "SelectedObjects: ", this.core.store.selectionGroup?.objects.length || 0), h("div", { key: 'ffdaa445890c5e86eb38a746d4ac6d35cd9e132a' }, "ViewportCenter: (", viewportCenterX.toFixed(2), ", ", viewportCenterY.toFixed(2), ")")), h("div", { key: '7770448d56a980d9c68cf95cc3deb81c00c0eb6f', id: "origin", class: "origin", style: {
|
|
19681
19725
|
transform: `matrix(${this.core.store.state?.scale}, 0, 0, ${this.core.store.state?.scale}, ${this.core.store.state?.translateX}, ${this.core.store.state?.translateY})`,
|
|
19682
|
-
} },
|
|
19726
|
+
} }, visibleObjects?.map(object => {
|
|
19683
19727
|
return (h("div", { key: object.id, style: {
|
|
19684
|
-
display: object.isInViewport() ? 'block' : 'none',
|
|
19685
19728
|
transform: object?.transformationMatrix,
|
|
19686
19729
|
transformOrigin: 'top left',
|
|
19687
19730
|
zIndex: object.zIndex.toString(),
|
|
@@ -19711,7 +19754,7 @@ const KritzelEngine = class {
|
|
|
19711
19754
|
width: object?.width.toString(),
|
|
19712
19755
|
position: 'absolute',
|
|
19713
19756
|
overflow: 'visible',
|
|
19714
|
-
}, viewBox: object?.viewBox }, h("path", { d: object?.d, fill: object.fill, stroke: object?.stroke, "shape-rendering":
|
|
19757
|
+
}, viewBox: object?.viewBox }, h("path", { d: object?.d, fill: object.fill, stroke: object?.stroke, "shape-rendering": object.isLowRes() ? 'optimizeSpeed' : 'auto' }))), KritzelClassHelper.isInstanceOf(object, 'KritzelImage') && (h("img", { ref: el => object.mount(el), src: object.src, style: {
|
|
19715
19758
|
width: '100%',
|
|
19716
19759
|
height: '100%',
|
|
19717
19760
|
userSelect: 'none',
|
|
@@ -19744,48 +19787,55 @@ const KritzelEngine = class {
|
|
|
19744
19787
|
borderWidth: KritzelDevicesHelper.isFirefox() ? object.borderWidth + 'px' : '0',
|
|
19745
19788
|
borderStyle: KritzelDevicesHelper.isFirefox() ? 'solid' : 'none',
|
|
19746
19789
|
borderColor: KritzelDevicesHelper.isFirefox() ? object.borderColor : 'transparent',
|
|
19747
|
-
} }))
|
|
19790
|
+
} })), object.isSelected && (h("svg", { style: {
|
|
19791
|
+
height: object?.height.toString(),
|
|
19792
|
+
width: object?.width.toString(),
|
|
19793
|
+
position: 'absolute',
|
|
19794
|
+
overflow: 'visible',
|
|
19795
|
+
top: '0',
|
|
19796
|
+
left: '0',
|
|
19797
|
+
} }, h("g", { class: "selection-borders" }, h("line", { x1: "0", y1: "0", x2: object.totalWidth, y2: "0", style: {
|
|
19748
19798
|
stroke: 'var(--kritzel-selection-border-color, #007AFF)',
|
|
19749
19799
|
strokeWidth: `calc(var(--kritzel-selection-border-width, 2px) * ${object.scale} / ${this.core.store.state?.scale})`,
|
|
19750
19800
|
strokeLinecap: 'square',
|
|
19751
|
-
}
|
|
19801
|
+
} }), h("line", { x1: "0", y1: "0", x2: "0", y2: object.totalHeight, style: {
|
|
19752
19802
|
stroke: 'var(--kritzel-selection-border-color, #007AFF)',
|
|
19753
19803
|
strokeWidth: `calc(var(--kritzel-selection-border-width, 2px) * ${object.scale} / ${this.core.store.state?.scale})`,
|
|
19754
19804
|
strokeLinecap: 'square',
|
|
19755
|
-
}
|
|
19805
|
+
} }), h("line", { x1: "0", y1: object.totalHeight, x2: object.totalWidth, y2: object.totalHeight, style: {
|
|
19756
19806
|
stroke: 'var(--kritzel-selection-border-color, #007AFF)',
|
|
19757
19807
|
strokeWidth: `calc(var(--kritzel-selection-border-width, 2px) * ${object.scale} / ${this.core.store.state?.scale})`,
|
|
19758
19808
|
strokeLinecap: 'square',
|
|
19759
|
-
}
|
|
19809
|
+
} }), h("line", { x1: object.totalWidth, y1: "0", x2: object.totalWidth, y2: object.totalHeight, style: {
|
|
19760
19810
|
stroke: 'var(--kritzel-selection-border-color, #007AFF)',
|
|
19761
19811
|
strokeWidth: `calc(var(--kritzel-selection-border-width, 2px) * ${object.scale} / ${this.core.store.state?.scale})`,
|
|
19762
19812
|
strokeLinecap: 'square',
|
|
19763
|
-
},
|
|
19813
|
+
} }))))), object.isSelected && !this.isSelecting && (h("g", { class: "selection-handles" }, h("circle", { class: "resize-handle top-left", cx: "0", cy: "0", r: `${(baseHandleSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
19764
19814
|
fill: 'var(--kritzel-selection-handle-color, #000000)',
|
|
19765
|
-
}
|
|
19815
|
+
} }), h("circle", { class: "resize-handle-overlay top-left", cx: "0", cy: "0", r: `${(baseHandleTouchSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
19766
19816
|
fill: 'transparent',
|
|
19767
|
-
}
|
|
19817
|
+
} }), h("circle", { class: "resize-handle top-right", cx: object.totalWidth, cy: "0", r: `${(baseHandleSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
19768
19818
|
fill: 'var(--kritzel-selection-handle-color, #000000)',
|
|
19769
|
-
}
|
|
19819
|
+
} }), h("circle", { class: "resize-handle-overlay top-right", cx: object.totalWidth, cy: "0", r: `${(baseHandleTouchSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
19770
19820
|
fill: 'transparent',
|
|
19771
|
-
}
|
|
19821
|
+
} }), h("circle", { class: "resize-handle bottom-left", cx: "0", cy: object.totalHeight, r: `${(baseHandleSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
19772
19822
|
fill: 'var(--kritzel-selection-handle-color, #000000)',
|
|
19773
|
-
}
|
|
19823
|
+
} }), h("circle", { class: "resize-handle-overlay bottom-left", cx: "0", cy: object.totalHeight, r: `${(baseHandleTouchSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
19774
19824
|
fill: 'transparent',
|
|
19775
|
-
}
|
|
19825
|
+
} }), h("circle", { class: "resize-handle bottom-right", cx: object.totalWidth, cy: object.totalHeight, r: `${(baseHandleSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
19776
19826
|
fill: 'var(--kritzel-selection-handle-color, #000000)',
|
|
19777
|
-
}
|
|
19827
|
+
} }), h("circle", { class: "resize-handle-overlay bottom-right", cx: object.totalWidth, cy: object.totalHeight, r: `${(baseHandleTouchSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
19778
19828
|
fill: 'transparent',
|
|
19779
|
-
}
|
|
19829
|
+
} }), h("line", { x1: object.totalWidth / 2, y1: "0", x2: object.totalWidth / 2, y2: -((15 * object.scale) / this.core.store.state?.scale), style: {
|
|
19780
19830
|
stroke: 'var(--kritzel-selection-border-color, #007AFF)',
|
|
19781
19831
|
strokeWidth: `calc(var(--kritzel-selection-border-width, 2px) * ${object.scale} / ${this.core.store.state?.scale})`,
|
|
19782
|
-
}
|
|
19832
|
+
} }), h("circle", { class: "rotation-handle", cx: object.totalWidth / 2, cy: -((15 * object.scale) / this.core.store.state?.scale), r: `${(baseHandleSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
19783
19833
|
fill: 'var(--kritzel-selection-handle-color, #000000)',
|
|
19784
|
-
}
|
|
19834
|
+
} }), h("circle", { class: "rotation-handle-overlay", cx: object.totalWidth / 2, cy: -((15 * object.scale) / this.core.store.state?.scale), r: `${(baseHandleTouchSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
19785
19835
|
fill: 'transparent',
|
|
19786
19836
|
cursor: 'grab',
|
|
19787
|
-
},
|
|
19788
|
-
})), this.core.store.state.isContextMenuVisible && (h("kritzel-context-menu", { key: '
|
|
19837
|
+
} }))), this.core.store.state.debugInfo.showObjectInfo && object.isDebugInfoVisible && (h("g", { style: { pointerEvents: 'none' } }, h("foreignObject", { x: object.totalWidth.toString(), y: "0", width: "400px", height: "160px", style: { minHeight: '0', minWidth: '0' } }, h("div", { style: { width: '100%', height: '100%' } }, h("div", { style: { whiteSpace: 'nowrap' } }, "Id: ", object.id), h("div", { style: { whiteSpace: 'nowrap' } }, "width: ", object.width), h("div", { style: { whiteSpace: 'nowrap' } }, "height: ", object.height), h("div", { style: { whiteSpace: 'nowrap' } }, "translateX: ", object.translateX), h("div", { style: { whiteSpace: 'nowrap' } }, "translateY: ", object.translateY))))))));
|
|
19838
|
+
})), this.core.store.state.isContextMenuVisible && (h("kritzel-context-menu", { key: '282fac28f1351ef700ed01edd5e22644c53f2d0e', class: "context-menu", ref: el => (this.contextMenuElement = el), items: this.core.store.state.contextMenuItems, objects: this.core.store.selectionGroup?.objects || [], style: {
|
|
19789
19839
|
position: 'fixed',
|
|
19790
19840
|
left: `${this.core.store.state.contextMenuX}px`,
|
|
19791
19841
|
top: `${this.core.store.state.contextMenuY}px`,
|
|
@@ -19796,7 +19846,7 @@ const KritzelEngine = class {
|
|
|
19796
19846
|
y: (-this.core.store.state.translateY + this.core.store.state.contextMenuY) / this.core.store.state.scale,
|
|
19797
19847
|
}, this.core.store.selectionGroup?.objects);
|
|
19798
19848
|
this.hideContextMenu();
|
|
19799
|
-
}, onClose: () => this.hideContextMenu() })), this.core.store.state?.activeTool instanceof KritzelEraserTool && !this.core.store.state.isScaling && h("kritzel-cursor-trail", { key: '
|
|
19849
|
+
}, onClose: () => this.hideContextMenu() })), this.core.store.state?.activeTool instanceof KritzelEraserTool && !this.core.store.state.isScaling && h("kritzel-cursor-trail", { key: '9adc32d16e9c1f28596a029edf8b0f759cfa9f05', core: this.core })));
|
|
19800
19850
|
}
|
|
19801
19851
|
static get watchers() { return {
|
|
19802
19852
|
"workspace": ["onWorkspaceChange"],
|
|
@@ -19916,7 +19966,7 @@ const KritzelIcon = class {
|
|
|
19916
19966
|
};
|
|
19917
19967
|
KritzelIcon.style = kritzelIconCss;
|
|
19918
19968
|
|
|
19919
|
-
const kritzelMenuCss = ":host{position:relative;display:flex;flex-direction:column;background-color:var(--kritzel-menu-background-color, #ffffff);width:var(--kritzel-menu-width, 200px);padding:var(--kritzel-menu-padding, 8px);border-radius:var(--kritzel-menu-border-radius, 12px);box-shadow:var(--kritzel-menu-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));border:var(--kritzel-menu-border, 1px solid #ebebeb);z-index:2;gap:var(--kritzel-menu-gap, 4px);overflow-y:auto;scrollbar-color:#ebebeb transparent;scrollbar-width:thin;max-height:300px}
|
|
19969
|
+
const kritzelMenuCss = ":host{position:relative;display:flex;flex-direction:column;background-color:var(--kritzel-menu-background-color, #ffffff);width:var(--kritzel-menu-width, 200px);padding:var(--kritzel-menu-padding, 8px);border-radius:var(--kritzel-menu-border-radius, 12px);box-shadow:var(--kritzel-menu-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));border:var(--kritzel-menu-border, 1px solid #ebebeb);z-index:2;gap:var(--kritzel-menu-gap, 4px);overflow-y:auto;scrollbar-color:#ebebeb transparent;scrollbar-width:thin;max-height:300px}.has-open-child-overlay{position:absolute;top:0;left:0;right:0;bottom:0;z-index:3}";
|
|
19920
19970
|
|
|
19921
19971
|
const KritzelMenu = class {
|
|
19922
19972
|
constructor(hostRef) {
|
|
@@ -19984,7 +20034,7 @@ const KritzelMenu = class {
|
|
|
19984
20034
|
};
|
|
19985
20035
|
KritzelMenu.style = kritzelMenuCss;
|
|
19986
20036
|
|
|
19987
|
-
const kritzelMenuItemCss = ":host{position:relative;display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--kritzel-menu-item-padding, 8px);box-sizing:border-box;gap:16px;height:var(--kritzel-menu-item-height, 40px);min-height:var(--kritzel-menu-item-min-height, 40px);font-family:sans-serif;font-size:var(--kritzel-menu-item-font-size, 14px);color:var(--kritzel-menu-item-color, #333333);border-radius:var(--kritzel-menu-item-border-radius, 12px);
|
|
20037
|
+
const kritzelMenuItemCss = ":host{position:relative;display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--kritzel-menu-item-padding, 8px);box-sizing:border-box;gap:16px;height:var(--kritzel-menu-item-height, 40px);min-height:var(--kritzel-menu-item-min-height, 40px);font-family:sans-serif;font-size:var(--kritzel-menu-item-font-size, 14px);color:var(--kritzel-menu-item-color, #333333);border-radius:var(--kritzel-menu-item-border-radius, 12px);cursor:default}:host(:hover) .menu-item-overlay,:host(:focus-within) .menu-item-overlay{background-color:var(--kritzel-menu-item-overlay-background-color, hsl(0, 0%, 0%, 4.3%))}:host(.selected){background-color:var(--kritzel-menu-item-selected-bg, #007aff);color:var(--kritzel-menu-item-selected-color, #ffffff)}:host(.selected) .action-button{color:var(--kritzel-menu-item-selected-color, #ffffff)}:host(.selected.editing){background-color:var(--kritzel-menu-item-selected-bg, #007aff)}:host(.selected) .edit-input{color:var(--kritzel-menu-item-selected-color, #ffffff)}:host(.selected) .action-button kritzel-icon{--kritzel-icon-color:var(--kritzel-menu-item-selected-color, #ffffff)}kritzel-icon{--kritzel-icon-color:var(--kritzel-menu-item-color, #333333)}:host(.selected) .edit-input::selection{background-color:var(--kritzel-menu-item-input-selection-color, rgba(255, 255, 255, 0.16))}:host(.editing){background-color:var(--kritzel-menu-item-editing-background-color, hsl(0, 0%, 0%, 4.3%))}:host(.disabled){opacity:0.5;pointer-events:none !important}:host(.child-open){background-color:var(--kritzel-menu-item-child-open-background-color, hsl(0, 0%, 0%, 4.3%))}:host(.child-open.selected){background-color:var(--kritzel-menu-item-selected-bg, #007aff)}.menu-item-overlay{position:absolute;inset:0;background-color:transparent;z-index:0;pointer-events:none;border-radius:var(--kritzel-menu-item-border-radius, 12px)}.menu-item-content{display:flex;align-items:center;gap:8px;position:relative;z-index:1;height:100%}.left{justify-content:flex-start;flex:1;min-width:0}.left>div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.right{justify-content:flex-end}.edit-input{flex:1;height:var(--kritzel-menu-item-input-height, 24px);padding:0;background-color:transparent;border-radius:0;border:none;border-bottom:1px solid var(--kritzel-menu-item-input-border, #ccc);font-size:var(--kritzel-context-menu-item-font-size, 14px);width:100%;min-width:0;box-sizing:border-box;outline:none}.edit-input::selection{background-color:var(--kritzel-menu-item-input-selection-color, #007bff);color:var(--kritzel-menu-item-input-selection-text-color, #ffffff)}.action-button{padding:4px;border-radius:8px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;background-color:transparent;background:transparent;-webkit-tap-highlight-color:transparent}.action-button:hover,.action-button:focus{background-color:var(--kritzel-menu-item-button-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.action-button.disabled{pointer-events:none;opacity:0.5}";
|
|
19988
20038
|
|
|
19989
20039
|
const KritzelMenuItem = class {
|
|
19990
20040
|
constructor(hostRef) {
|
|
@@ -20333,7 +20383,7 @@ const KritzelPortal = class {
|
|
|
20333
20383
|
}; }
|
|
20334
20384
|
};
|
|
20335
20385
|
|
|
20336
|
-
const kritzelSplitButtonCss = ":host{position:relative;display:flex;align-items:center;font-family:sans-serif;z-index:1;padding:var(--kritzel-split-button-padding, 4px);background-color:var(--kritzel-split-button-background-color, #ffffff);border-radius:var(--kritzel-split-button-border-radius, 12px);box-shadow:var(--kritzel-split-button-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));border:var(--kritzel-split-button-border, 1px solid #ebebeb);gap:var(--kritzel-split-button-gap, 4px)}:host(.mobile){--kritzel-split-button-hover-background-color:transparent}button{border:none;background-color:transparent;padding:0;margin:0;font-family:inherit;font-size:inherit;color:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;text-align:center;display:flex;align-items:center;justify-content:center;pointer-events:all;-webkit-tap-highlight-color:transparent}.split-main-button,.split-menu-button{height:auto;display:flex;align-items:center;padding:var(--kritzel-split-button-padding, 8px);background-color:var(--kritzel-split-button-background-color, #ffffff);border-radius:var(--kritzel-split-button-border-radius, 12px);font-size:var(--kritzel-split-button-font-size, 14px)}.split-main-button:hover,.split-menu-button:hover{background-color:var(--kritzel-split-button-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.split-main-button:focus,.split-menu-button:focus{
|
|
20386
|
+
const kritzelSplitButtonCss = ":host{position:relative;display:flex;align-items:center;font-family:sans-serif;z-index:1;padding:var(--kritzel-split-button-padding, 4px);background-color:var(--kritzel-split-button-background-color, #ffffff);border-radius:var(--kritzel-split-button-border-radius, 12px);box-shadow:var(--kritzel-split-button-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));border:var(--kritzel-split-button-border, 1px solid #ebebeb);gap:var(--kritzel-split-button-gap, 4px)}:host(.mobile){--kritzel-split-button-hover-background-color:transparent}button{border:none;background-color:transparent;padding:0;margin:0;font-family:inherit;font-size:inherit;color:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;text-align:center;display:flex;align-items:center;justify-content:center;pointer-events:all;-webkit-tap-highlight-color:transparent}.split-main-button,.split-menu-button{height:auto;display:flex;align-items:center;padding:var(--kritzel-split-button-padding, 8px);background-color:var(--kritzel-split-button-background-color, #ffffff);border-radius:var(--kritzel-split-button-border-radius, 12px);font-size:var(--kritzel-split-button-font-size, 14px)}.split-main-button:hover,.split-menu-button:hover{background-color:var(--kritzel-split-button-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.split-main-button:focus,.split-menu-button:focus{background-color:var(--kritzel-split-button-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.split-main-button{gap:var(--kritzel-split-button-gap, 4px)}.split-menu-button{border-left:none;justify-content:center}.split-divider{width:var(--kritzel-split-button-divider-width, 1px);height:24px;background-color:var(--kritzel-split-button-divider-background-color, hsl(0, 0%, 0%, 4.3%))}:disabled{pointer-events:none;opacity:0.5}";
|
|
20337
20387
|
|
|
20338
20388
|
const KritzelSplitButton = class {
|
|
20339
20389
|
constructor(hostRef) {
|
|
@@ -20431,7 +20481,7 @@ const KritzelSplitButton = class {
|
|
|
20431
20481
|
};
|
|
20432
20482
|
KritzelSplitButton.style = kritzelSplitButtonCss;
|
|
20433
20483
|
|
|
20434
|
-
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:
|
|
20484
|
+
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, #ebebeb)}.size-container.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-stroke-size-selected-background-color, #ebebeb)}";
|
|
20435
20485
|
|
|
20436
20486
|
const KritzelStrokeSize = class {
|
|
20437
20487
|
constructor(hostRef) {
|
|
@@ -20550,7 +20600,7 @@ const KritzelTooltip = class {
|
|
|
20550
20600
|
};
|
|
20551
20601
|
KritzelTooltip.style = kritzelTooltipCss;
|
|
20552
20602
|
|
|
20553
|
-
const kritzelUtilityPanelCss = ":host{display:flex;flex-direction:row;align-items:center;padding:4px;gap:8px;border-top-left-radius:12px;border-top-right-radius:12px;background-color:rgb(226, 226, 226);width:fit-content;user-select:none}.utility-button{display:flex;justify-content:center;align-items:center;width:28px;height:28px;padding:8px 4px;border:none;
|
|
20603
|
+
const kritzelUtilityPanelCss = ":host{display:flex;flex-direction:row;align-items:center;padding:4px;gap:8px;border-top-left-radius:12px;border-top-right-radius:12px;background-color:rgb(226, 226, 226);width:fit-content;user-select:none}.utility-button{display:flex;justify-content:center;align-items:center;width:28px;height:28px;padding:8px 4px;border:none;background:none;cursor:pointer;color:#333333;-webkit-tap-highlight-color:transparent;border-radius:var(--kritzel-utility-panel-button-border-radius, 8px)}.utility-button:hover,.utility-button:focus-visible{background-color:var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.utility-button:disabled{opacity:0.4;cursor:not-allowed;pointer-events:none}.utility-separator{width:1px;height:16px;background-color:hsl(0, 0%, 0%, 4.3%)}";
|
|
20554
20604
|
|
|
20555
20605
|
const KritzelUtilityPanel = class {
|
|
20556
20606
|
constructor(hostRef) {
|
|
@@ -20559,6 +20609,7 @@ const KritzelUtilityPanel = class {
|
|
|
20559
20609
|
this.redo = createEvent(this, "redo");
|
|
20560
20610
|
this.delete = createEvent(this, "delete");
|
|
20561
20611
|
}
|
|
20612
|
+
undoState = null;
|
|
20562
20613
|
undo;
|
|
20563
20614
|
redo;
|
|
20564
20615
|
delete;
|
|
@@ -20575,7 +20626,7 @@ const KritzelUtilityPanel = class {
|
|
|
20575
20626
|
this.redo.emit();
|
|
20576
20627
|
}
|
|
20577
20628
|
render() {
|
|
20578
|
-
return (h(Host, { key: '
|
|
20629
|
+
return (h(Host, { key: '47e35a4c61d2807d220888eb90e325e24b9baf90' }, h("button", { key: '4e6ec69fc83242a9c1340a31351da1cccd90b1ba', class: "utility-button", disabled: !this.undoState?.canUndo, onClick: event => this.handleUndo(event) }, h("kritzel-icon", { key: '57bf4920ff9f0b2de8b0c1625dd844bba0c7f66d', name: "undo" })), h("button", { key: '759b9d13a679455fccd00e3d8c84e51b184659df', class: "utility-button", disabled: !this.undoState?.canRedo, onClick: event => this.handleRedo(event) }, h("kritzel-icon", { key: 'f3650d9dcf0c09086ec707443deb6055f7a709ec', name: "redo" })), h("div", { key: 'f414bc1d4be24a1f48d77911db4b9064c898ed8d', class: "utility-separator" }), h("button", { key: 'f542539422b6040bc7b90ceccad075e8f7150a4e', class: "utility-button" }, h("kritzel-icon", { key: 'da8e3cfe848384c3bb984b34d7ad9a6c9c1feba8', name: "delete", onClick: () => this.delete.emit() }))));
|
|
20579
20630
|
}
|
|
20580
20631
|
};
|
|
20581
20632
|
KritzelUtilityPanel.style = kritzelUtilityPanelCss;
|