kritzel-stencil 0.4.25 → 0.4.26
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/index-Xav9JFHg.js +2 -2
- package/dist/cjs/{kritzel-active-users_47.cjs.entry.js → kritzel-active-users_46.cjs.entry.js} +54 -154
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/stencil.cjs.js +1 -1
- package/dist/collection/classes/core/core.class.js +0 -4
- package/dist/collection/classes/structures/object-map.structure.js +0 -65
- package/dist/collection/collection-manifest.json +0 -1
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +10 -33
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +0 -20
- package/dist/collection/components/core/kritzel-watermark/kritzel-watermark.js +1 -1
- package/dist/collection/components/shared/kritzel-avatar/kritzel-avatar.js +3 -3
- package/dist/collection/components/shared/kritzel-button/kritzel-button.js +2 -2
- package/dist/collection/components/shared/kritzel-color/kritzel-color.js +2 -2
- package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +1 -1
- package/dist/collection/components/shared/kritzel-font/kritzel-font.js +1 -1
- package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +1 -1
- package/dist/collection/components/shared/kritzel-input/kritzel-input.js +1 -1
- package/dist/collection/components/shared/kritzel-master-detail/kritzel-master-detail.js +3 -3
- package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +1 -1
- package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js +2 -2
- package/dist/collection/components/shared/kritzel-numeric-input/kritzel-numeric-input.js +1 -1
- package/dist/collection/components/shared/kritzel-opacity-slider/kritzel-opacity-slider.js +1 -1
- package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +1 -1
- package/dist/collection/components/shared/kritzel-slide-toggle/kritzel-slide-toggle.js +1 -1
- package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +1 -1
- package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +1 -1
- package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +2 -2
- package/dist/collection/components/ui/kritzel-back-to-content/kritzel-back-to-content.js +1 -1
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +6 -6
- package/dist/collection/components/ui/kritzel-current-user/kritzel-current-user.js +1 -1
- package/dist/collection/components/ui/kritzel-current-user-dialog/kritzel-current-user-dialog.js +1 -1
- package/dist/collection/components/ui/kritzel-export/kritzel-export.js +1 -1
- package/dist/collection/components/ui/kritzel-loading-overlay/kritzel-loading-overlay.js +1 -1
- package/dist/collection/components/ui/kritzel-login-dialog/kritzel-login-dialog.js +1 -1
- package/dist/collection/components/ui/kritzel-more-menu/kritzel-more-menu.js +1 -1
- package/dist/collection/components/ui/kritzel-settings/kritzel-settings.js +1 -1
- package/dist/collection/components/ui/kritzel-share-dialog/kritzel-share-dialog.js +2 -2
- package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +1 -1
- package/dist/collection/components/ui/kritzel-zoom-panel/kritzel-zoom-panel.js +1 -1
- package/dist/collection/constants/version.js +1 -1
- package/dist/components/index.d.ts +0 -2
- package/dist/components/index.js +1 -2
- package/dist/components/kritzel-active-users.js +1 -1
- package/dist/components/kritzel-avatar.js +1 -1
- package/dist/components/kritzel-back-to-content.js +1 -1
- package/dist/components/kritzel-button.js +1 -1
- package/dist/components/kritzel-color-palette.js +1 -1
- package/dist/components/kritzel-color.js +1 -1
- package/dist/components/kritzel-controls.js +1 -1
- package/dist/components/kritzel-current-user-dialog.js +1 -1
- package/dist/components/kritzel-current-user.js +1 -1
- package/dist/components/kritzel-editor.js +92 -107
- package/dist/components/kritzel-engine.js +1 -1
- package/dist/components/kritzel-export.js +1 -1
- package/dist/components/kritzel-font-size.js +1 -1
- package/dist/components/kritzel-font.js +1 -1
- package/dist/components/kritzel-input.js +1 -1
- package/dist/components/kritzel-loading-overlay.js +1 -1
- package/dist/components/kritzel-login-dialog.js +1 -1
- package/dist/components/kritzel-master-detail.js +1 -1
- package/dist/components/kritzel-menu-item.js +1 -1
- package/dist/components/kritzel-menu.js +1 -1
- package/dist/components/kritzel-more-menu.js +1 -1
- package/dist/components/kritzel-numeric-input.js +1 -1
- package/dist/components/kritzel-opacity-slider.js +1 -1
- package/dist/components/kritzel-portal.js +1 -1
- package/dist/components/kritzel-settings.js +1 -1
- package/dist/components/kritzel-share-dialog.js +1 -1
- package/dist/components/kritzel-slide-toggle.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-tool-config.js +1 -1
- package/dist/components/kritzel-tooltip.js +1 -1
- package/dist/components/kritzel-utility-panel.js +1 -1
- package/dist/components/kritzel-watermark.js +1 -1
- package/dist/components/kritzel-workspace-manager.js +1 -1
- package/dist/components/kritzel-zoom-panel.js +1 -1
- package/dist/components/{p-fL9rl200.js → p-B38_9BJg.js} +1 -1
- package/dist/components/{p-eZXIu4yK.js → p-BPzdPKWE.js} +3 -3
- package/dist/components/{p-BoN700-O.js → p-Ba0c-tu2.js} +2 -2
- package/dist/components/{p-B-585egz.js → p-BeSKOETx.js} +2 -2
- package/dist/components/{p-2WiGyky4.js → p-BprEDRpA.js} +2 -2
- package/dist/components/{p-B5SWPDuq.js → p-C0FEC_gS.js} +1 -1
- package/dist/components/{p-BrNsOp2v.js → p-CAXR5-S9.js} +4 -4
- package/dist/components/{p-BPsKYMH6.js → p-CBrn5AIB.js} +1 -1
- package/dist/components/{p-C98Eb3_R.js → p-Ce1j1-Hg.js} +3 -3
- package/dist/components/{p-DDTMGbtA.js → p-CeffYwAK.js} +15 -15
- package/dist/components/{p-CwZ3KKFq.js → p-ChPs27Fd.js} +3 -3
- package/dist/components/{p-D1rjfWgJ.js → p-CoXN583u.js} +3 -3
- package/dist/components/{p-DwMqCX2P.js → p-CucCT7Qn.js} +2 -2
- package/dist/components/{p-DB58Oa5V.js → p-Cva3jIIU.js} +1 -1
- package/dist/components/{p-vqEUQ-4Q.js → p-D0Ed8epW.js} +3 -3
- package/dist/components/{p-DBqoPgev.js → p-DFMZEarE.js} +1 -1
- package/dist/components/{p-DtnMdWWB.js → p-DK0anxtL.js} +1 -1
- package/dist/components/{p-4SPnZZkH.js → p-DN9p3G9K.js} +3 -3
- package/dist/components/{p-Dt7-I2Xz.js → p-DOTdJ3JQ.js} +2 -2
- package/dist/components/{p-HoO86l1o.js → p-DOl-95VY.js} +6 -6
- package/dist/components/{p-DKGg-76-.js → p-DTB3ykgO.js} +1 -1
- package/dist/components/{p-CzW58DHM.js → p-DUmLsjKb.js} +1 -1
- package/dist/components/{p-gJcH-huF.js → p-DUoQyGKc.js} +1 -76
- package/dist/components/{p-Czhdc844.js → p-D_cyY7Nd.js} +1 -1
- package/dist/components/{p-CF8pLc07.js → p-DhabvHJM.js} +3 -3
- package/dist/components/{p-CaBbajU2.js → p-DkHYY72B.js} +2 -2
- package/dist/components/{p-CrHvaLRV.js → p-DnmVD1Mz.js} +1 -1
- package/dist/components/{p-GKmqCI8r.js → p-DoxFuOy1.js} +2 -2
- package/dist/components/{p-dsxHDlQ3.js → p-Dpm75DfV.js} +2 -2
- package/dist/components/{p-BozrueXV.js → p-Dvn6ad4a.js} +1 -1
- package/dist/components/{p-PjPPCHVL.js → p-NOWtUeeQ.js} +1 -1
- package/dist/components/{p-DVXTPI71.js → p-OUl5CA4Y.js} +1 -1
- package/dist/components/{p-0fhjWRmT.js → p-m7SeNszM.js} +5 -5
- package/dist/esm/index-Dhio9uis.js +2 -2
- package/dist/esm/{kritzel-active-users_47.entry.js → kritzel-active-users_46.entry.js} +55 -154
- package/dist/esm/loader.js +1 -1
- package/dist/esm/stencil.js +1 -1
- package/dist/stencil/{p-dc5783ee.entry.js → p-5c045d3e.entry.js} +55 -154
- package/dist/stencil/stencil.esm.js +1 -1
- package/dist/types/classes/structures/object-map.structure.d.ts +0 -14
- package/dist/types/components/core/kritzel-editor/kritzel-editor.d.ts +0 -3
- package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +0 -3
- package/dist/types/components.d.ts +0 -44
- package/dist/types/constants/version.d.ts +1 -1
- package/package.json +1 -1
- package/dist/collection/components/shared/kritzel-sync-indicator/kritzel-sync-indicator.css +0 -50
- package/dist/collection/components/shared/kritzel-sync-indicator/kritzel-sync-indicator.js +0 -66
- package/dist/components/kritzel-sync-indicator.d.ts +0 -11
- package/dist/components/kritzel-sync-indicator.js +0 -6
- package/dist/components/p-CAoN_STZ.js +0 -39
- package/dist/types/components/shared/kritzel-sync-indicator/kritzel-sync-indicator.d.ts +0 -7
package/dist/cjs/{kritzel-active-users_47.cjs.entry.js → kritzel-active-users_46.cjs.entry.js}
RENAMED
|
@@ -158,16 +158,16 @@ const KritzelAvatar = class {
|
|
|
158
158
|
height: `${this.size}px`,
|
|
159
159
|
fontSize: `${Math.round(this.size * 0.4)}px`,
|
|
160
160
|
};
|
|
161
|
-
return (index.h(index.Host, { key: '
|
|
161
|
+
return (index.h(index.Host, { key: 'f199b56955b749b868ad8e7940ef3114f1109c37', style: containerStyles, class: {
|
|
162
162
|
'has-image': !!showImage,
|
|
163
163
|
'has-initials': !!showInitials,
|
|
164
164
|
'has-default': !!showDefaultIcon,
|
|
165
|
-
}, role: "img", "aria-label": this.getDisplayName() || 'User avatar' }, showImage && (index.h("img", { key: '
|
|
165
|
+
}, role: "img", "aria-label": this.getDisplayName() || 'User avatar' }, showImage && (index.h("img", { key: '621a58cc965cf6d037f8515e1263bd5bf4098ab0', src: imageUrl, alt: "", class: "avatar-image", ref: (el) => {
|
|
166
166
|
if (el) {
|
|
167
167
|
el.referrerPolicy = 'no-referrer';
|
|
168
168
|
el.crossOrigin = 'anonymous';
|
|
169
169
|
}
|
|
170
|
-
}, onError: this.handleImageError })), showInitials && (index.h("span", { key: '
|
|
170
|
+
}, onError: this.handleImageError })), showInitials && (index.h("span", { key: '28ff2e8b191c2d476c0f40dd57a2c8ec330ba104', class: "avatar-initials", style: { backgroundColor: this.getBackgroundColor() } }, initials)), showDefaultIcon && (index.h("span", { key: 'd2ef56b2fca2a609b5b99bb8d7e8747308ab9699', class: "avatar-default" }, index.h("svg", { key: '1c1d6e6e306a9938f559016eeb77a67aae42f536', viewBox: "0 0 24 24", fill: "currentColor" }, index.h("path", { key: '2c6af53101c20e137756d1194a3bac04c931066d', d: "M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z" }))))));
|
|
171
171
|
}
|
|
172
172
|
static get watchers() { return {
|
|
173
173
|
"user": [{
|
|
@@ -492,7 +492,7 @@ const KritzelBackToContent = class {
|
|
|
492
492
|
this.backToContent.emit();
|
|
493
493
|
};
|
|
494
494
|
render() {
|
|
495
|
-
return (index.h(index.Host, { key: '
|
|
495
|
+
return (index.h(index.Host, { key: '0a41ed93e39193416eebdaf786557bffd4653dd0' }, index.h("button", { key: '1f621de9699127a095e94d910d5c96328324b299', class: { 'back-to-content-button': true, visible: this.visible }, onClick: this.handleClick, "aria-label": this.text }, index.h("kritzel-icon", { key: '8ff49df055a0472edbbc57d84044a2de09b543c8', name: "chevrons-left" }))));
|
|
496
496
|
}
|
|
497
497
|
};
|
|
498
498
|
KritzelBackToContent.style = kritzelBackToContentCss();
|
|
@@ -519,11 +519,11 @@ const KritzelButton = class {
|
|
|
519
519
|
this.buttonClick.emit();
|
|
520
520
|
};
|
|
521
521
|
render() {
|
|
522
|
-
return (index.h(index.Host, { key: '
|
|
522
|
+
return (index.h(index.Host, { key: 'b7d78dad25d41116ac6368c1ff2cd41ee28d9cdc' }, index.h("button", { key: '88cfd3674e63cd82ea5874205237415a540307b6', type: this.type, class: {
|
|
523
523
|
'kritzel-button': true,
|
|
524
524
|
[this.variant]: true,
|
|
525
525
|
'disabled': this.disabled,
|
|
526
|
-
}, disabled: this.disabled, onClick: this.handleClick }, index.h("slot", { key: '
|
|
526
|
+
}, disabled: this.disabled, onClick: this.handleClick }, index.h("slot", { key: 'a7f4fd923800f66bc7ea438f2cbcdfde81b11ae1' }))));
|
|
527
527
|
}
|
|
528
528
|
};
|
|
529
529
|
KritzelButton.style = kritzelButtonCss();
|
|
@@ -571,13 +571,13 @@ const KritzelColorComponent = class {
|
|
|
571
571
|
render() {
|
|
572
572
|
const resolvedColor = this.resolveColor();
|
|
573
573
|
const isColorVeryLight = this.isLightColor(resolvedColor);
|
|
574
|
-
return (index.h(index.Host, { key: '
|
|
574
|
+
return (index.h(index.Host, { key: '17b5c44e1defe8f3fb41632391be093a12bb899b' }, index.h("div", { key: '545f4c4fd62dea22a4a5f36108a51d30c57f2652', class: "checkerboard-bg", style: {
|
|
575
575
|
width: `${this.size}px`,
|
|
576
576
|
height: `${this.size}px`,
|
|
577
577
|
borderRadius: '50%',
|
|
578
578
|
display: 'inline-block',
|
|
579
579
|
position: 'relative',
|
|
580
|
-
} }, index.h("div", { key: '
|
|
580
|
+
} }, index.h("div", { key: 'bbcb68f6e5f00d9a33b316d52ac86e49911e463c', class: {
|
|
581
581
|
'color-circle': true,
|
|
582
582
|
'white': isColorVeryLight,
|
|
583
583
|
}, style: {
|
|
@@ -633,7 +633,7 @@ const KritzelColorPalette = class {
|
|
|
633
633
|
render() {
|
|
634
634
|
const displayedColors = this.isExpanded ? this.colors : this.colors.slice(0, 6);
|
|
635
635
|
const expandedHeight = this.isExpanded ? this.calculateHeight() : '32px';
|
|
636
|
-
return (index.h(index.Host, { key: '
|
|
636
|
+
return (index.h(index.Host, { key: '5f25a2ead76106ba2ef9762b4d212d5a9d7ac2a8' }, index.h("div", { key: '764cc6a55cc1865aaf1c501ee89a161f74fefa1c', class: {
|
|
637
637
|
'color-grid': true,
|
|
638
638
|
'expanded': this.isExpanded,
|
|
639
639
|
}, style: {
|
|
@@ -1202,13 +1202,13 @@ const KritzelControls = class {
|
|
|
1202
1202
|
// Separate tool controls from config control
|
|
1203
1203
|
const toolControls = this.internalControls.filter(c => c.type === 'tool' || c.type === 'separator');
|
|
1204
1204
|
const configControl = this.internalControls.find(c => c.type === 'config' && c.name === this.firstConfig?.name);
|
|
1205
|
-
return (index.h(index.Host, { key: '
|
|
1205
|
+
return (index.h(index.Host, { key: '42f84f104e4b008a7c53a5e1ea9290c17ba792d2', style: { display: this.visible ? '' : 'none' }, class: {
|
|
1206
1206
|
mobile: this.isTouchDevice,
|
|
1207
|
-
} }, this.isUtilityPanelVisible && (index.h("kritzel-utility-panel", { key: '
|
|
1207
|
+
} }, this.isUtilityPanelVisible && (index.h("kritzel-utility-panel", { key: '8f6b3df9db735dfd847da9683db3fbdcc65b08a4', style: {
|
|
1208
1208
|
position: 'absolute',
|
|
1209
1209
|
bottom: '56px',
|
|
1210
1210
|
left: '12px',
|
|
1211
|
-
}, undoState: this.undoState, terms: this.terms, onUndo: () => this.kritzelEngine?.undo(), onRedo: () => this.kritzelEngine?.redo(), onDelete: () => this.kritzelEngine?.delete() })), index.h("div", { key: '
|
|
1211
|
+
}, undoState: this.undoState, terms: this.terms, onUndo: () => this.kritzelEngine?.undo(), onRedo: () => this.kritzelEngine?.redo(), onDelete: () => this.kritzelEngine?.delete() })), index.h("div", { key: '7a314d779882e2b42a39fdb2a52f434ccacff112', class: "kritzel-controls" }, index.h("div", { key: '23458bc04c2f1a610cff9c5e617d7be2c657bf4f', class: { 'scroll-indicator-left': true, 'visible': this.canScrollLeft } }), index.h("div", { key: 'b17d817767c92ce7a6edf279759d3f1fb1097911', class: "kritzel-tools-scroll", ref: el => (this.toolsScrollRef = el), onScroll: this.handleToolsScroll }, toolControls.map(control => {
|
|
1212
1212
|
// Check if this control has sub-options (split-button)
|
|
1213
1213
|
if (control.subOptions?.length) {
|
|
1214
1214
|
const selectedSubOption = this.getSelectedSubOption(control);
|
|
@@ -1238,10 +1238,10 @@ const KritzelControls = class {
|
|
|
1238
1238
|
'kritzel-control': true,
|
|
1239
1239
|
'selected': this.activeControl?.name === control?.name,
|
|
1240
1240
|
}, key: control.name, "data-testid": `tool-${control.name}`, onClick: _event => this.handleControlClick?.(control), "aria-label": control.name.charAt(0).toUpperCase() + control.name.slice(1) }, index.h("kritzel-icon", { name: control.icon })));
|
|
1241
|
-
})), index.h("div", { key: '
|
|
1241
|
+
})), index.h("div", { key: '740b52666bf823b7dc504a1072f68b59f94a3773', class: { 'scroll-indicator-right': true, 'visible': this.canScrollRight && !(configControl && this.activeControl && hasConfigUI) } }), configControl && this.activeControl && (index.h("div", { class: {
|
|
1242
1242
|
'kritzel-config-container': true,
|
|
1243
1243
|
'visible': hasConfigUI,
|
|
1244
|
-
}, key: configControl.name }, index.h("div", { key: '
|
|
1244
|
+
}, key: configControl.name }, index.h("div", { key: '7c5697faa2d03931ba9449b58a32e9f06166528e', class: { 'config-gradient-left': true, 'visible': this.needsScrolling } }), index.h("kritzel-tooltip", { key: '6e9bc7e5cf77778ec1dd2bee1c415344295acc00', anchorElement: this.host.shadowRoot?.querySelector('.kritzel-config-container'), triggerElement: this.configTriggerRef }, index.h("kritzel-tool-config", { key: 'fbfb910dacd4178aaffca5aa02e4e4422ba1b308', tool: this.activeControl.tool, theme: this.theme, engine: this.kritzelEngine, terms: this.terms, onToolChange: event => this.handleToolChange?.(event), onDisplayValuesChange: this.handleDisplayValuesChange, style: { width: '100%', height: '100%' } })), index.h("div", { key: '59d11a83e8c9968ba8d50df4275a892b4b75958c', tabIndex: hasConfigUI ? 0 : -1, class: "kritzel-config", "data-testid": "tool-config", ref: el => {
|
|
1245
1245
|
if (el)
|
|
1246
1246
|
this.configTriggerRef = el;
|
|
1247
1247
|
}, onKeyDown: event => {
|
|
@@ -1250,7 +1250,7 @@ const KritzelControls = class {
|
|
|
1250
1250
|
}
|
|
1251
1251
|
}, style: {
|
|
1252
1252
|
cursor: 'pointer',
|
|
1253
|
-
} }, this.displayValues && (index.h("div", { key: '
|
|
1253
|
+
} }, this.displayValues && (index.h("div", { key: '0ce5a0d8f51773b6e31feeee785606d637e06b42', class: "color-container" }, index.h("kritzel-color", { key: '29cc12dd6677b695b14e76e8a1704da78f910698', value: this.displayValues.color, theme: this.theme, size: 18, style: {
|
|
1254
1254
|
borderRadius: '50%',
|
|
1255
1255
|
border: 'none',
|
|
1256
1256
|
} })))))))));
|
|
@@ -1284,7 +1284,7 @@ const KritzelCurrentUser = class {
|
|
|
1284
1284
|
/** Resolved localized strings keyed by term key, supplied by the editor. */
|
|
1285
1285
|
terms = {};
|
|
1286
1286
|
render() {
|
|
1287
|
-
return (index.h(index.Host, { key: '
|
|
1287
|
+
return (index.h(index.Host, { key: '30f2cedeefdef5817fcced6b84e74b53beba76ec' }, index.h("kritzel-avatar", { key: '41dc69bfbc13471fc686bb52e269dc98d2bfa3a8', user: this.user, size: this.avatarSize })));
|
|
1288
1288
|
}
|
|
1289
1289
|
};
|
|
1290
1290
|
KritzelCurrentUser.style = kritzelCurrentUserCss();
|
|
@@ -1325,7 +1325,7 @@ const KritzelCurrentUserDialog = class {
|
|
|
1325
1325
|
}
|
|
1326
1326
|
render() {
|
|
1327
1327
|
const displayName = this.getDisplayName();
|
|
1328
|
-
return (index.h(index.Host, { key: '
|
|
1328
|
+
return (index.h(index.Host, { key: '33baea01a828422f2bba5c2fba82dd82e5c5b32d' }, index.h("kritzel-dialog", { key: '5271e1eb5d36b74f8487c040e70424c26f7019f8', dialogTitle: this.terms['currentUser.dialogTitle'] ?? 'Account', isOpen: this.isDialogOpen, onDialogClose: this.closeDialog, size: "small", contained: true }, index.h("div", { key: '901697b9439eb8449f2f5c8e044c194f176633b1', class: "user-info" }, index.h("kritzel-avatar", { key: '76a17b9a2e4442b36b89747a5f5f168d2c59e7a1', user: this.user, size: 80 }), displayName && index.h("div", { key: '6aaedb1d2d8ea65de2460c15017d13b4e096223d', class: "user-name" }, displayName), this.user?.email && index.h("div", { key: '3cb78d0007087a18f798849f244399e5d6137e3b', class: "user-email" }, this.user.email), index.h("kritzel-button", { key: '67d416a1ac1be41cd6b658f79901cea29a287eb7', class: "logout-button", variant: "primary", onButtonClick: this.handleLogout }, this.terms['menu.logout'] ?? 'Logout')))));
|
|
1329
1329
|
}
|
|
1330
1330
|
};
|
|
1331
1331
|
KritzelCurrentUserDialog.style = kritzelCurrentUserDialogCss();
|
|
@@ -2168,7 +2168,6 @@ const KritzelEditor = class {
|
|
|
2168
2168
|
this.login = index.createEvent(this, "login");
|
|
2169
2169
|
this.isPublicChange = index.createEvent(this, "isPublicChange");
|
|
2170
2170
|
this.awarenessChange = index.createEvent(this, "awarenessChange");
|
|
2171
|
-
this.isSyncing = index.createEvent(this, "isSyncing");
|
|
2172
2171
|
}
|
|
2173
2172
|
get host() { return index.getElement(this); }
|
|
2174
2173
|
scaleMax = ABSOLUTE_SCALE_MAX;
|
|
@@ -2408,7 +2407,6 @@ const KritzelEditor = class {
|
|
|
2408
2407
|
login;
|
|
2409
2408
|
isPublicChange;
|
|
2410
2409
|
awarenessChange;
|
|
2411
|
-
isSyncing;
|
|
2412
2410
|
isEngineReady = false;
|
|
2413
2411
|
isControlsReady = false;
|
|
2414
2412
|
isWorkspaceManagerReady = false;
|
|
@@ -2431,7 +2429,6 @@ const KritzelEditor = class {
|
|
|
2431
2429
|
normalizedControls = [];
|
|
2432
2430
|
resolvedMoreMenuItems = [];
|
|
2433
2431
|
isLoadingOverlayVisible = false;
|
|
2434
|
-
isSyncingIndicatorVisible = false;
|
|
2435
2432
|
notificationDismissTimeout;
|
|
2436
2433
|
notificationDismissAnimationTimeout;
|
|
2437
2434
|
notificationDisplayDurationMs = 5000;
|
|
@@ -2914,11 +2911,6 @@ const KritzelEditor = class {
|
|
|
2914
2911
|
event.stopPropagation();
|
|
2915
2912
|
this.awarenessChange.emit(event.detail);
|
|
2916
2913
|
}
|
|
2917
|
-
handleIsSyncingChange(event) {
|
|
2918
|
-
event.stopPropagation();
|
|
2919
|
-
this.isSyncingIndicatorVisible = event.detail;
|
|
2920
|
-
this.isSyncing.emit(event.detail);
|
|
2921
|
-
}
|
|
2922
2914
|
handleNotificationsChange(event) {
|
|
2923
2915
|
event.stopPropagation();
|
|
2924
2916
|
this.clearNotificationDismissAnimationTimer();
|
|
@@ -3232,40 +3224,40 @@ const KritzelEditor = class {
|
|
|
3232
3224
|
const isLoggedIn = this.isLoggedIn;
|
|
3233
3225
|
const shouldShowCurrentUser = isLoggedIn;
|
|
3234
3226
|
const shouldShowLoginButton = this.isReady && !!this.loginConfig && !isLoggedIn;
|
|
3235
|
-
return (index.h(index.Host, { key: '
|
|
3227
|
+
return (index.h(index.Host, { key: '10d7810f2db00207f1f024727fb3957dce6496c5' }, index.h("div", { key: 'f1bced369a6e820d17c89b6e8cdd8f09fc7e084f', class: "editor-content", style: {
|
|
3236
3228
|
opacity: this.isEditorVisible ? '1' : '0',
|
|
3237
3229
|
visibility: this.isEditorVisible ? 'visible' : 'hidden',
|
|
3238
3230
|
transition: 'opacity 0.2s ease-in-out, visibility 0.2s ease-in-out',
|
|
3239
|
-
} }, index.h("div", { key: '
|
|
3231
|
+
} }, index.h("div", { key: '42d177987e4d14de10ebb45d673f750022c7d944', class: "top-left-buttons" }, index.h("kritzel-workspace-manager", { key: 'be583a237b378e0eeb14756fcb0bd9a733b51020', visible: this.isWorkspaceManagerVisible, workspaces: this.workspaces, activeWorkspace: this.activeWorkspace, terms: this.resolvedTerms, onWorkspaceChange: event => (this.activeWorkspace = event.detail), onIsWorkspaceManagerReady: () => (this.isWorkspaceManagerReady = true) }), index.h("kritzel-back-to-content", { key: '5713455fd09512085e5048ab3da35499d48c9bbc', visible: this.isBackToContentButtonVisible, text: this.resolvedTerms['backToContent.label'] ?? 'Back to content', onBackToContent: () => this.backToContent() })), this.activeNotification && (index.h("div", { key: '41c3fbd197ccca774bb87be7d003374bc548e46e', class: "top-center-notification-layer", role: "presentation" }, index.h("div", { key: '5634e4cfd0d6cb7accee59e7f239e3d758872202', class: { 'top-center-notification-container': true, 'is-dismissing': this.isNotificationDismissing }, role: "presentation" }, index.h("kritzel-notification-card", { key: 'b1b2a90199b16e874a54a6435ebb4f873cc8a403', notification: this.activeNotification, locale: this.locale, onDismiss: this.dismissNotification, onHoverChange: event => this.handleNotificationHoverChange(event) })))), this.contextMenuState && this.contextMenuState.items.length > 0 && (index.h("kritzel-context-menu", { key: '9b1d0f847171e177a2135454cab0c3761308c396', class: "context-menu", items: this.contextMenuState.items, objects: this.contextMenuState.objects, style: {
|
|
3240
3232
|
position: 'absolute',
|
|
3241
3233
|
left: `${this.contextMenuState.position.x}px`,
|
|
3242
3234
|
top: `${this.contextMenuState.position.y}px`,
|
|
3243
3235
|
zIndex: '10002',
|
|
3244
|
-
}, onActionSelected: event => this.handleContextMenuActionSelected(event), onClose: () => this.hideContextMenu() })), index.h("kritzel-
|
|
3236
|
+
}, onActionSelected: event => this.handleContextMenuActionSelected(event), onClose: () => this.hideContextMenu() })), index.h("kritzel-loading-overlay", { key: '693536ad11dbc5080203902f0553d87b628704e9', visible: this.isLoadingOverlayVisible, text: this.resolvedTerms['editor.loading'] ?? 'Loading...' }), index.h("kritzel-engine", { key: 'd4dacd1803e63417c2d7d9dcd008345e947f2806', ref: el => {
|
|
3245
3237
|
if (el) {
|
|
3246
3238
|
this.engineRef = el;
|
|
3247
3239
|
}
|
|
3248
|
-
}, workspace: this.activeWorkspace, activeWorkspaceId: this.activeWorkspaceId, editorId: this.editorId, syncConfig: this.syncConfig, assetStorageConfig: this.assetStorageConfig, user: this.user, scaleMax: this.scaleMax, lockDrawingScale: this.lockDrawingScale, isObjectDistanceFadingActive: this.isObjectDistanceFadingActive, scaleMin: this.scaleMin, cursorTarget: this.cursorTarget, isLoading: this.isLoading, viewportBoundaryLeft: this.viewportBoundaryLeft, viewportBoundaryRight: this.viewportBoundaryRight, viewportBoundaryTop: this.viewportBoundaryTop, viewportBoundaryBottom: this.viewportBoundaryBottom, isPanningEnabled: this.isPanningEnabled, isZoomingEnabled: this.isZoomingEnabled, theme: this.theme, themes: this.themes, licenseKey: this.licenseKey, locale: this.locale, locales: this.locales, fallbackLocale: this.fallbackLocale, debugInfo: this.debugInfo, globalContextMenuItems: this.globalContextMenuItems, objectContextMenuItems: this.objectContextMenuItems, onIsEngineReady: event => this.onEngineReady(event), onWorkspacesChange: event => this.handleWorkspacesChange(event), onActiveWorkspaceChange: event => this.handleActiveWorkspaceChange(event), onObjectsChange: event => this.handleObjectsChange(event), onObjectsAdded: event => this.handleObjectsAdded(event), onObjectsRemoved: event => this.handleObjectsRemoved(event), onObjectsUpdated: event => this.handleObjectsUpdated(event), onUndoStateChange: event => this.handleUndoStateChange(event), onObjectsInViewportChange: event => this.handleObjectsInViewportChange(event), onViewportChange: event => this.handleViewportChange(event), onAwarenessChange: event => this.handleAwarenessChange(event),
|
|
3240
|
+
}, workspace: this.activeWorkspace, activeWorkspaceId: this.activeWorkspaceId, editorId: this.editorId, syncConfig: this.syncConfig, assetStorageConfig: this.assetStorageConfig, user: this.user, scaleMax: this.scaleMax, lockDrawingScale: this.lockDrawingScale, isObjectDistanceFadingActive: this.isObjectDistanceFadingActive, scaleMin: this.scaleMin, cursorTarget: this.cursorTarget, isLoading: this.isLoading, viewportBoundaryLeft: this.viewportBoundaryLeft, viewportBoundaryRight: this.viewportBoundaryRight, viewportBoundaryTop: this.viewportBoundaryTop, viewportBoundaryBottom: this.viewportBoundaryBottom, isPanningEnabled: this.isPanningEnabled, isZoomingEnabled: this.isZoomingEnabled, theme: this.theme, themes: this.themes, licenseKey: this.licenseKey, locale: this.locale, locales: this.locales, fallbackLocale: this.fallbackLocale, debugInfo: this.debugInfo, globalContextMenuItems: this.globalContextMenuItems, objectContextMenuItems: this.objectContextMenuItems, onIsEngineReady: event => this.onEngineReady(event), onWorkspacesChange: event => this.handleWorkspacesChange(event), onActiveWorkspaceChange: event => this.handleActiveWorkspaceChange(event), onObjectsChange: event => this.handleObjectsChange(event), onObjectsAdded: event => this.handleObjectsAdded(event), onObjectsRemoved: event => this.handleObjectsRemoved(event), onObjectsUpdated: event => this.handleObjectsUpdated(event), onUndoStateChange: event => this.handleUndoStateChange(event), onObjectsInViewportChange: event => this.handleObjectsInViewportChange(event), onViewportChange: event => this.handleViewportChange(event), onAwarenessChange: event => this.handleAwarenessChange(event), onNotificationsChange: event => this.handleNotificationsChange(event), onContextMenuStateChange: event => this.handleContextMenuStateChange(event), onLoadingChange: event => (this.isLoadingOverlayVisible = event.detail) }), index.h("kritzel-controls", { key: 'f988a540cae6372b2259167956f81ecfae324bf1', visible: this.isControlsVisible, class: { 'keyboard-open': this.isVirtualKeyboardOpen }, ref: el => {
|
|
3249
3241
|
if (el) {
|
|
3250
3242
|
this.controlsRef = el;
|
|
3251
3243
|
}
|
|
3252
|
-
}, controls: this.normalizedControls, isUtilityPanelVisible: this.isUtilityPanelVisible, undoState: this.undoState ?? undefined, theme: this.theme, terms: this.resolvedTerms, onIsControlsReady: () => (this.isControlsReady = true) }), index.h("div", { key: '
|
|
3244
|
+
}, controls: this.normalizedControls, isUtilityPanelVisible: this.isUtilityPanelVisible, undoState: this.undoState ?? undefined, theme: this.theme, terms: this.resolvedTerms, onIsControlsReady: () => (this.isControlsReady = true) }), index.h("div", { key: 'c9eca767869cb0504b18b480f14abb4ae9515e6a', class: "bottom-left-buttons" }, index.h("kritzel-zoom-panel", { key: '9a02ece644a46b9eaa1ce92245df2183bfe7bb5a', visible: this.isZoomPanelVisible, disabled: !this.isZoomingEnabled, zoomPercent: this.currentZoomPercent, terms: this.resolvedTerms, onZoomIn: () => this.zoomIn(), onZoomOut: () => this.zoomOut() })), index.h("div", { key: 'a214d0c6039cfeeda9e4e015e83ca196e4b73b56', class: "top-right-buttons" }, index.h("kritzel-settings", { key: 'c20518083d832267e85384d14adca6342fa82299', ref: el => {
|
|
3253
3245
|
if (el) {
|
|
3254
3246
|
this.settingsRef = el;
|
|
3255
3247
|
}
|
|
3256
|
-
}, shortcuts: this.shortcuts, availableThemes: this.themes && this.themes.length > 0 ? this.themes.map(t => t.name) : ['light', 'dark'], availableLocales: this.availableLocaleOptions, settings: this.currentSettingsConfig, terms: this.resolvedTerms, onSettingsChange: event => this.handleSettingsChange(event) }), index.h("kritzel-export", { key: '
|
|
3248
|
+
}, shortcuts: this.shortcuts, availableThemes: this.themes && this.themes.length > 0 ? this.themes.map(t => t.name) : ['light', 'dark'], availableLocales: this.availableLocaleOptions, settings: this.currentSettingsConfig, terms: this.resolvedTerms, onSettingsChange: event => this.handleSettingsChange(event) }), index.h("kritzel-export", { key: '3306caba17bb638e5285c838539c7862e889dbbd', ref: el => {
|
|
3257
3249
|
if (el) {
|
|
3258
3250
|
this.exportRef = el;
|
|
3259
3251
|
}
|
|
3260
|
-
}, workspaceName: this.activeWorkspace?.name || 'workspace', terms: this.resolvedTerms, onExportPng: () => this.engineRef.exportViewportAsPng(), onExportSvg: () => this.engineRef.exportViewportAsSvg(), onExportJson: event => this.engineRef.downloadAsJson(event.detail) }), index.h("kritzel-active-users", { key: '
|
|
3252
|
+
}, workspaceName: this.activeWorkspace?.name || 'workspace', terms: this.resolvedTerms, onExportPng: () => this.engineRef.exportViewportAsPng(), onExportSvg: () => this.engineRef.exportViewportAsSvg(), onExportJson: event => this.engineRef.downloadAsJson(event.detail) }), index.h("kritzel-active-users", { key: '1aede3a116f502f017188153803c35e304592575', users: this.activeUsers }), shouldShowCurrentUser && index.h("kritzel-current-user", { key: '8eaa1d59ca018d1b1190aa01c9fa3d2bd587de4c', user: this.user, terms: this.resolvedTerms, onClick: () => this.currentUserDialogRef?.open() }), shouldShowCurrentUser && (index.h("kritzel-current-user-dialog", { key: 'c9a138c1411746654b3a2385c6c5c82b875cf88d', ref: el => {
|
|
3261
3253
|
if (el) {
|
|
3262
3254
|
this.currentUserDialogRef = el;
|
|
3263
3255
|
}
|
|
3264
|
-
}, user: this.user, terms: this.resolvedTerms, onLogoutRequest: this.handleCurrentUserLogout })), shouldShowLoginButton && index.h("kritzel-button", { key: '
|
|
3256
|
+
}, user: this.user, terms: this.resolvedTerms, onLogoutRequest: this.handleCurrentUserLogout })), shouldShowLoginButton && index.h("kritzel-button", { key: '9a2900deb52b4d70f1612fb75c5baa9302412ebf', onButtonClick: () => this.loginDialogRef?.open() }, this.resolvedTerms['login.dialogTitle'] ?? 'Sign in'), index.h("kritzel-more-menu", { key: '027d3c3d847bf975bc5c6f44e9ecf1b452c77bf9', items: this.resolvedMoreMenuItems, visible: this.isMoreMenuVisible, terms: this.resolvedTerms }), index.h("kritzel-share-dialog", { key: '461e239bd09abf63b85e6122b1b9f7425da23ec3', ref: el => {
|
|
3265
3257
|
if (el) {
|
|
3266
3258
|
this.shareDialogRef = el;
|
|
3267
3259
|
}
|
|
3268
|
-
}, isPublic: this.currentIsPublic, workspaceId: this.activeWorkspace?.id, terms: this.resolvedTerms, onToggleIsPublic: this.handleToggleIsPublic }), this.loginConfig && (index.h("kritzel-login-dialog", { key: '
|
|
3260
|
+
}, isPublic: this.currentIsPublic, workspaceId: this.activeWorkspace?.id, terms: this.resolvedTerms, onToggleIsPublic: this.handleToggleIsPublic }), this.loginConfig && (index.h("kritzel-login-dialog", { key: '1e324fb764ab33047dba85eb34ae51418d081f2c', ref: el => {
|
|
3269
3261
|
if (el) {
|
|
3270
3262
|
this.loginDialogRef = el;
|
|
3271
3263
|
}
|
|
@@ -22311,14 +22303,6 @@ class KritzelObjectMap {
|
|
|
22311
22303
|
_lastAwarenessEmitTime = 0;
|
|
22312
22304
|
_awarenessEmitTimeout = null;
|
|
22313
22305
|
AWARENESS_THROTTLE_INTERVAL = 100; // milliseconds
|
|
22314
|
-
// Identities of the raw network-provider instances (e.g. WebsocketProvider, HocuspocusProvider)
|
|
22315
|
-
// that Yjs tags as transaction origin for remote updates; local providers (IndexedDB,
|
|
22316
|
-
// BroadcastChannel) never appear here, so their transactions never toggle isSyncing.
|
|
22317
|
-
_networkTransactionOrigins = new Set();
|
|
22318
|
-
_isSyncing = false;
|
|
22319
|
-
_syncingChangeCallbacks = [];
|
|
22320
|
-
_beforeTransactionHandler = null;
|
|
22321
|
-
_afterAllTransactionsHandler = null;
|
|
22322
22306
|
/**
|
|
22323
22307
|
* When true, update() only modifies local state (quadtree + idMap)
|
|
22324
22308
|
* without writing to Yjs. Used during drag operations to avoid
|
|
@@ -22494,22 +22478,6 @@ class KritzelObjectMap {
|
|
|
22494
22478
|
this._objectsChangeCallbacks = this._objectsChangeCallbacks.filter(existingCallback => existingCallback !== callback);
|
|
22495
22479
|
};
|
|
22496
22480
|
}
|
|
22497
|
-
/**
|
|
22498
|
-
* Whether the local copy currently differs from data a remote peer is in the process of merging in.
|
|
22499
|
-
*/
|
|
22500
|
-
get isSyncing() {
|
|
22501
|
-
return this._isSyncing;
|
|
22502
|
-
}
|
|
22503
|
-
/**
|
|
22504
|
-
* Registers a callback invoked when a remote sync starts (`true`) or finishes (`false`).
|
|
22505
|
-
* "Starts" fires from `beforeTransaction`, before the incoming remote update is merged.
|
|
22506
|
-
*/
|
|
22507
|
-
onSyncingChange(callback) {
|
|
22508
|
-
this._syncingChangeCallbacks.push(callback);
|
|
22509
|
-
return () => {
|
|
22510
|
-
this._syncingChangeCallbacks = this._syncingChangeCallbacks.filter(existingCallback => existingCallback !== callback);
|
|
22511
|
-
};
|
|
22512
|
-
}
|
|
22513
22481
|
/**
|
|
22514
22482
|
* Returns the Yjs UndoManager instance for managing undo/redo operations.
|
|
22515
22483
|
* @returns The UndoManager instance, or `null` if not initialized
|
|
@@ -22603,36 +22571,6 @@ class KritzelObjectMap {
|
|
|
22603
22571
|
const providerList = this._providers.map(p => `${p.constructor.name} (${p.type})`).join(', ');
|
|
22604
22572
|
console.info(`[Kritzel] Workspace sync providers initialized for ${docName}: ${providerList || 'none'}`);
|
|
22605
22573
|
}
|
|
22606
|
-
// Only network providers (WebSocket, Hocuspocus) represent a genuine remote peer;
|
|
22607
|
-
// local providers (IndexedDB, BroadcastChannel) never appear as a transaction origin here,
|
|
22608
|
-
// so loading from IndexedDB or a same-device tab never toggles isSyncing.
|
|
22609
|
-
this._networkTransactionOrigins = new Set(this._providers
|
|
22610
|
-
.filter(p => p.type === 'network')
|
|
22611
|
-
.map(p => p.rawProvider)
|
|
22612
|
-
.filter((origin) => origin != null));
|
|
22613
|
-
// Fires before a remote-origin transaction integrates its update, so this always
|
|
22614
|
-
// precedes any local/remote reconciliation for that update.
|
|
22615
|
-
this._beforeTransactionHandler = transaction => {
|
|
22616
|
-
if (this._isSyncing || !this._networkTransactionOrigins.has(transaction.origin)) {
|
|
22617
|
-
return;
|
|
22618
|
-
}
|
|
22619
|
-
this._isSyncing = true;
|
|
22620
|
-
this._syncingChangeCallbacks.forEach(callback => callback(true));
|
|
22621
|
-
};
|
|
22622
|
-
// Fires once a batch of transactions (possibly several remote updates) has fully settled.
|
|
22623
|
-
this._afterAllTransactionsHandler = (_doc, transactions) => {
|
|
22624
|
-
if (!this._isSyncing) {
|
|
22625
|
-
return;
|
|
22626
|
-
}
|
|
22627
|
-
const hadRemoteTransaction = transactions.some(transaction => this._networkTransactionOrigins.has(transaction.origin));
|
|
22628
|
-
if (!hadRemoteTransaction) {
|
|
22629
|
-
return;
|
|
22630
|
-
}
|
|
22631
|
-
this._isSyncing = false;
|
|
22632
|
-
this._syncingChangeCallbacks.forEach(callback => callback(false));
|
|
22633
|
-
};
|
|
22634
|
-
this._ydoc.on('beforeTransaction', this._beforeTransactionHandler);
|
|
22635
|
-
this._ydoc.on('afterAllTransactions', this._afterAllTransactionsHandler);
|
|
22636
22574
|
// captureTimeout is effectively infinite — undo-step boundaries are
|
|
22637
22575
|
// marked explicitly via markUndoBoundary() in insert/remove/reset and
|
|
22638
22576
|
// at stroke/gesture boundaries in the tools. This prevents a single
|
|
@@ -23381,20 +23319,11 @@ class KritzelObjectMap {
|
|
|
23381
23319
|
p.destroy();
|
|
23382
23320
|
});
|
|
23383
23321
|
this._providers = [];
|
|
23384
|
-
this._networkTransactionOrigins = new Set();
|
|
23385
23322
|
// Clear object map references
|
|
23386
23323
|
this._objectsMap = null;
|
|
23387
23324
|
this._metadataMap = null;
|
|
23388
23325
|
// Destroy Y.Doc
|
|
23389
23326
|
if (this._ydoc) {
|
|
23390
|
-
if (this._beforeTransactionHandler) {
|
|
23391
|
-
this._ydoc.off('beforeTransaction', this._beforeTransactionHandler);
|
|
23392
|
-
this._beforeTransactionHandler = null;
|
|
23393
|
-
}
|
|
23394
|
-
if (this._afterAllTransactionsHandler) {
|
|
23395
|
-
this._ydoc.off('afterAllTransactions', this._afterAllTransactionsHandler);
|
|
23396
|
-
this._afterAllTransactionsHandler = null;
|
|
23397
|
-
}
|
|
23398
23327
|
this._ydoc.destroy();
|
|
23399
23328
|
this._ydoc = null;
|
|
23400
23329
|
}
|
|
@@ -23404,8 +23333,6 @@ class KritzelObjectMap {
|
|
|
23404
23333
|
this._workspaceId = null;
|
|
23405
23334
|
this._isReady = false;
|
|
23406
23335
|
this._temporaryItemsCount = 0;
|
|
23407
|
-
this._isSyncing = false;
|
|
23408
|
-
this._syncingChangeCallbacks = [];
|
|
23409
23336
|
}
|
|
23410
23337
|
}
|
|
23411
23338
|
|
|
@@ -25256,10 +25183,6 @@ class KritzelCore {
|
|
|
25256
25183
|
objectsMap.onAwarenessChange(states => {
|
|
25257
25184
|
this.engine.emitAwarenessChange(states);
|
|
25258
25185
|
});
|
|
25259
|
-
// Forward remote sync start/finish to the engine as events
|
|
25260
|
-
objectsMap.onSyncingChange(isSyncing => {
|
|
25261
|
-
this.engine.emitIsSyncing(isSyncing);
|
|
25262
|
-
});
|
|
25263
25186
|
// Rebuild anchor index after loading objects
|
|
25264
25187
|
this._anchorManager.rebuildIndex();
|
|
25265
25188
|
this.engine.emitObjectsChange();
|
|
@@ -27957,8 +27880,6 @@ const KritzelEngine = class {
|
|
|
27957
27880
|
viewportChange;
|
|
27958
27881
|
/** Emitted when the awareness state changes (remote user cursors, presence). */
|
|
27959
27882
|
awarenessChange;
|
|
27960
|
-
/** Emitted when a remote sync starts (`true`, data differs from the local copy) or finishes (`false`). */
|
|
27961
|
-
isSyncing;
|
|
27962
27883
|
/** Emitted when notifications change. */
|
|
27963
27884
|
notificationsChange;
|
|
27964
27885
|
/** Emitted when context-menu visibility, items, or position changes. */
|
|
@@ -29667,7 +29588,6 @@ const KritzelEngine = class {
|
|
|
29667
29588
|
this.objectsInViewportChange = index.createEvent(this, "objectsInViewportChange");
|
|
29668
29589
|
this.viewportChange = index.createEvent(this, "viewportChange");
|
|
29669
29590
|
this.awarenessChange = index.createEvent(this, "awarenessChange");
|
|
29670
|
-
this.isSyncing = index.createEvent(this, "isSyncing");
|
|
29671
29591
|
this.notificationsChange = index.createEvent(this, "notificationsChange");
|
|
29672
29592
|
this.contextMenuStateChange = index.createEvent(this, "contextMenuStateChange");
|
|
29673
29593
|
this.loadingChange = index.createEvent(this, "loadingChange");
|
|
@@ -29974,9 +29894,6 @@ const KritzelEngine = class {
|
|
|
29974
29894
|
emitAwarenessChange(states) {
|
|
29975
29895
|
this.awarenessChange.emit(states);
|
|
29976
29896
|
}
|
|
29977
|
-
emitIsSyncing(isSyncing) {
|
|
29978
|
-
this.isSyncing.emit(isSyncing);
|
|
29979
|
-
}
|
|
29980
29897
|
emitObjectsInViewportChange() {
|
|
29981
29898
|
const visibleObjects = this.core.store.objectsInViewport;
|
|
29982
29899
|
this.objectsInViewportChange.emit(visibleObjects);
|
|
@@ -30735,7 +30652,7 @@ const KritzelExport = class {
|
|
|
30735
30652
|
return (index.h("div", { class: "export-tab-content" }, index.h("kritzel-input", { label: this.terms['export.filename.label'] ?? 'Filename', value: this.exportFilename, placeholder: this.terms['export.filename.placeholder'] ?? 'Enter filename', suffix: ".json", onValueChange: this.handleFilenameChange })));
|
|
30736
30653
|
}
|
|
30737
30654
|
render() {
|
|
30738
|
-
return (index.h(index.Host, { key: '
|
|
30655
|
+
return (index.h(index.Host, { key: '61ce7589d0453a1bd9fde8f33a711e06225eacde' }, index.h("kritzel-dialog", { key: '48da046edabdb5659b6edefaca56adb7531f9862', isOpen: this.isDialogOpen, dialogTitle: this.terms['export.dialogTitle'] ?? 'Export', closable: true, contained: true, onDialogClose: this.closeDialog }, index.h("div", { key: 'b7afc64ad1f558a78aa68c07b4dec65e6ca21c67', class: "export-content" }, index.h("kritzel-pill-tabs", { key: '59f759ade5a590eda6ba87f89eb433ced62da0cd', tabs: this.tabs, value: this.activeTab, onValueChange: this.handleTabChange }), this.activeTab === 'viewport' && this.renderViewportExport(), this.activeTab === 'workspace' && this.renderWorkspaceExport()), index.h("div", { key: 'a38bf30c9c5256d417cd3b0baf743e245a8cf3e4', slot: "footer" }, index.h("button", { key: '3dc9c53416ff9c8ca47df003f41767a2143fa4ef', class: "export-primary-button", onClick: this.handleExport }, this.terms['export.exportButton'] ?? 'Export')))));
|
|
30739
30656
|
}
|
|
30740
30657
|
};
|
|
30741
30658
|
KritzelExport.style = kritzelExportCss();
|
|
@@ -30750,7 +30667,7 @@ const KritzelFont = class {
|
|
|
30750
30667
|
size = 24;
|
|
30751
30668
|
color = '#000000';
|
|
30752
30669
|
render() {
|
|
30753
|
-
return (index.h(index.Host, { key: '
|
|
30670
|
+
return (index.h(index.Host, { key: '08ef3f41967f34f17cbbc42982b0edbb59edb2e2' }, index.h("div", { key: 'dc7b64d53dbee634a2da068c618a352e6b43bea7', class: "font-preview", style: {
|
|
30754
30671
|
fontFamily: this.fontFamily,
|
|
30755
30672
|
fontSize: `${this.size}px`,
|
|
30756
30673
|
color: this.color
|
|
@@ -30834,7 +30751,7 @@ const KritzelFontSize = class {
|
|
|
30834
30751
|
render() {
|
|
30835
30752
|
const color = 'var(--kritzel-global-text-primary)';
|
|
30836
30753
|
const sizes = this.sizes ?? [];
|
|
30837
|
-
return (index.h(index.Host, { key: '
|
|
30754
|
+
return (index.h(index.Host, { key: 'c49be084faa8b5eb380ba9bc3382ba8404853e20' }, sizes.map(size => (index.h("div", { tabIndex: 0, class: {
|
|
30838
30755
|
'size-container': true,
|
|
30839
30756
|
'selected': this.selectedSize === size,
|
|
30840
30757
|
}, onClick: () => this.handleSizeClick(size), onKeyDown: event => this.handleKeyDown(event, size) }, index.h("kritzel-font", { fontFamily: this.fontFamily, size: size, color: color }))))));
|
|
@@ -30901,7 +30818,7 @@ const KritzelInput = class {
|
|
|
30901
30818
|
this.valueChange.emit(input.value);
|
|
30902
30819
|
};
|
|
30903
30820
|
render() {
|
|
30904
|
-
return (index.h(index.Host, { key: '
|
|
30821
|
+
return (index.h(index.Host, { key: '92393344834011156bda2f682e559e7806864d19' }, index.h("div", { key: '5d569b8746d9285701259979ec554dbb41df4490', class: "input-container" }, this.label && index.h("label", { key: 'a27844d3da23d353b0ea2dede3c664fdbcbb6aab', class: "input-label" }, this.label), index.h("div", { key: 'fab4f3f1bda07c78f39ea96ba87c42be5de08286', class: { 'input-wrapper': true, 'has-suffix': !!this.suffix } }, index.h("input", { key: '4294687bc9f6006b0b64427c111af08d82ad5ffd', type: this.type, class: "text-input", value: this.inputValue, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput }), this.suffix && index.h("span", { key: '83adbd2978c92e969fedd9ad75f2c89b017b31a5', class: "input-suffix" }, this.suffix)))));
|
|
30905
30822
|
}
|
|
30906
30823
|
static get watchers() { return {
|
|
30907
30824
|
"value": [{
|
|
@@ -31009,7 +30926,7 @@ const KritzelLoadingOverlay = class {
|
|
|
31009
30926
|
*/
|
|
31010
30927
|
text = 'Loading...';
|
|
31011
30928
|
render() {
|
|
31012
|
-
return (index.h(index.Host, { key: '
|
|
30929
|
+
return (index.h(index.Host, { key: '6795ffc47d57a27f0b58fb42715080bf47c836af' }, index.h("div", { key: '5359411fa326444a1bddf6f40a6e2bd0ccf1617d', class: { 'loading-overlay': true, visible: this.visible }, "aria-hidden": this.visible ? 'false' : 'true' }, index.h("span", { key: 'bd194c6fef9f2fbc4a4e38aee169d0a754e5dc96', class: "loading-spinner" }), this.text)));
|
|
31013
30930
|
}
|
|
31014
30931
|
};
|
|
31015
30932
|
KritzelLoadingOverlay.style = kritzelLoadingOverlayCss();
|
|
@@ -31061,7 +30978,7 @@ const KritzelLoginDialog = class {
|
|
|
31061
30978
|
this.dialogClosed.emit();
|
|
31062
30979
|
};
|
|
31063
30980
|
render() {
|
|
31064
|
-
return (index.h(index.Host, { key: '
|
|
30981
|
+
return (index.h(index.Host, { key: '17fe69ac34171a95bec92dcabc3196fe77549ede' }, index.h("kritzel-dialog", { key: '38ea1c3ed74675b21456cf8c1bfe1b97be029bf4', dialogTitle: this.dialogTitle, isOpen: this.isDialogOpen, onDialogClose: this.closeDialog, size: "small", contained: true }, index.h("div", { key: '63b04f629c2d09a1ce6aeab90118bcac50d59fbc', class: "login-content" }, this.subtitle && (index.h("p", { key: '641597f030c268f2ffc90c914e53fd00fc131c74', class: "login-subtitle" }, this.subtitle)), index.h("div", { key: 'f36dc7b791d1beada21d7786c108319dedb516b9', class: "login-providers" }, this.providers.map(provider => (index.h("button", { key: provider.name, class: {
|
|
31065
30982
|
'provider-button': true,
|
|
31066
30983
|
'is-loading': this.loadingProvider === provider.name,
|
|
31067
30984
|
'is-disabled': this.loadingProvider !== null && this.loadingProvider !== provider.name,
|
|
@@ -31167,15 +31084,15 @@ const KritzelMasterDetail = class {
|
|
|
31167
31084
|
const selectedItem = this.items.find(item => item.id === this.selectedItemId);
|
|
31168
31085
|
const panelId = 'master-detail-panel';
|
|
31169
31086
|
const selectedTabId = selectedItem ? `tab-${selectedItem.id}` : undefined;
|
|
31170
|
-
return (index.h(index.Host, { key: '
|
|
31087
|
+
return (index.h(index.Host, { key: 'fc187266604f9d48210096a1574bf86482498a40' }, index.h("div", { key: '2886b386c6e96df671ff4902b2c9f7084f0c3191', class: {
|
|
31171
31088
|
'master-detail-container': true,
|
|
31172
31089
|
'is-mobile-detail-visible': this.showMobileDetail,
|
|
31173
|
-
} }, index.h("nav", { key: '
|
|
31090
|
+
} }, index.h("nav", { key: '94a35861b7c97d7f5f1505e4c25bc7f584c6351f', class: "master-menu", role: "tablist", "aria-orientation": "vertical", "aria-label": "Settings categories" }, this.items.map((item, index$1) => (index.h("button", { key: item.id, id: `tab-${item.id}`, ref: el => this.setTabRef(el, index$1), class: {
|
|
31174
31091
|
'menu-item': true,
|
|
31175
31092
|
'is-selected': item.id === this.selectedItemId,
|
|
31176
31093
|
'is-disabled': !!item.disabled,
|
|
31177
31094
|
'is-focused': index$1 === this.focusedIndex,
|
|
31178
|
-
}, role: "tab", "aria-selected": item.id === this.selectedItemId ? 'true' : 'false', "aria-controls": panelId, "aria-disabled": item.disabled ? 'true' : undefined, tabIndex: this.getTabIndex(item, index$1), disabled: item.disabled, onClick: () => this.handleItemClick(item), onKeyDown: e => this.handleKeyDown(e, item, index$1), onFocus: () => this.handleFocus(index$1), onBlur: this.handleBlur }, item.icon && (index.h("kritzel-icon", { name: item.icon, size: 20, class: "menu-item-icon" })), index.h("span", { class: "menu-item-label" }, item.label), index.h("span", { class: "menu-item-chevron", "aria-hidden": "true" }, index.h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }, index.h("path", { d: "m9 18 6-6-6-6" }))))))), index.h("div", { key: '
|
|
31095
|
+
}, role: "tab", "aria-selected": item.id === this.selectedItemId ? 'true' : 'false', "aria-controls": panelId, "aria-disabled": item.disabled ? 'true' : undefined, tabIndex: this.getTabIndex(item, index$1), disabled: item.disabled, onClick: () => this.handleItemClick(item), onKeyDown: e => this.handleKeyDown(e, item, index$1), onFocus: () => this.handleFocus(index$1), onBlur: this.handleBlur }, item.icon && (index.h("kritzel-icon", { name: item.icon, size: 20, class: "menu-item-icon" })), index.h("span", { class: "menu-item-label" }, item.label), index.h("span", { class: "menu-item-chevron", "aria-hidden": "true" }, index.h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }, index.h("path", { d: "m9 18 6-6-6-6" }))))))), index.h("div", { key: 'd55507c8e818314bd548506d1b568357062378db', id: panelId, class: "detail-panel", role: "tabpanel", "aria-labelledby": selectedTabId }, index.h("button", { key: 'f7bf50b2ecd7093110ee0fc91d49caf468ee9116', class: "mobile-back-button", onClick: this.handleBackClick, "aria-label": "Back to menu" }, index.h("kritzel-icon", { key: 'c809cea0d279439ced7a580ea2a4f44d5ec2b8b6', name: "chevron-left", size: 20, class: "mobile-back-icon" }), "Back"), index.h("slot", { key: '78babf63e193db45e26ea6602ab09dde045bf06e' })))));
|
|
31179
31096
|
}
|
|
31180
31097
|
static get watchers() { return {
|
|
31181
31098
|
"selectedItemId": [{
|
|
@@ -31248,7 +31165,7 @@ const KritzelMenu = class {
|
|
|
31248
31165
|
this.itemCloseChildMenu.emit(event.detail);
|
|
31249
31166
|
};
|
|
31250
31167
|
render() {
|
|
31251
|
-
return (index.h(index.Host, { key: '
|
|
31168
|
+
return (index.h(index.Host, { key: '0876a6a7e6dbb0daa984d228bac4c8b5d5790580', tabIndex: 0, onClick: e => e.stopPropagation() }, this.openChildMenuItem && index.h("div", { key: '499dde6694d7b98eb85d9bac314ab7ba2dcf1e71', class: "has-open-child-overlay", onClick: this.onOverlayClick }), this.items.map(item => (index.h("kritzel-menu-item", { key: item.id, "data-testid": `menu-item-${item.id}`, item: item, parent: this.parent, style: { pointerEvents: this.editingMenuItem && !item.isEditing ? 'none' : 'auto' }, onItemSelect: this.handleItemSelect, onItemSave: this.handleSave, onItemCancel: this.handleCancel, onItemToggleChildMenu: this.handleToggleChildMenu, onItemCloseChildMenu: this.handleCloseChildMenu })))));
|
|
31252
31169
|
}
|
|
31253
31170
|
};
|
|
31254
31171
|
KritzelMenu.style = kritzelMenuCss();
|
|
@@ -31353,12 +31270,12 @@ const KritzelMenuItem = class {
|
|
|
31353
31270
|
];
|
|
31354
31271
|
}
|
|
31355
31272
|
render() {
|
|
31356
|
-
return (index.h(index.Host, { key: '
|
|
31273
|
+
return (index.h(index.Host, { key: '40bfb2f086d24080276f27d879216958dff0388a', tabIndex: this.item.isDisabled ? -1 : 0, class: {
|
|
31357
31274
|
'selected': this.item.isSelected,
|
|
31358
31275
|
'editing': this.item.isEditing,
|
|
31359
31276
|
'disabled': this.item.isDisabled,
|
|
31360
31277
|
'child-open': this.item.isChildMenuOpen,
|
|
31361
|
-
}, onClick: this.handleItemSelect }, index.h("div", { key: '
|
|
31278
|
+
}, onClick: this.handleItemSelect }, index.h("div", { key: '0aa55293dfc2cf1010c020f3f35ee3a3bd662c8a', class: "menu-item-overlay" }), this.item.isEditing ? this.renderEditMode() : this.renderViewMode()));
|
|
31362
31279
|
}
|
|
31363
31280
|
static get watchers() { return {
|
|
31364
31281
|
"item": [{
|
|
@@ -31510,7 +31427,7 @@ const KritzelMoreMenu = class {
|
|
|
31510
31427
|
this.closeMenu();
|
|
31511
31428
|
};
|
|
31512
31429
|
render() {
|
|
31513
|
-
return (index.h(index.Host, { key: '
|
|
31430
|
+
return (index.h(index.Host, { key: 'ac84e832614f37f51b00f351fe70cf679d53ef15', class: { mobile: this.isTouchDevice }, style: { display: this.visible ? '' : 'none' } }, index.h("div", { key: 'a9ead49428833b9bbaf6cfa9a1550e6df514e3d5', class: { 'more-menu-wrapper': true, visible: this.visible } }, index.h("button", { key: 'ddf026728d5b3170faeb1b5e291e3e61b13711d5', class: "more-menu-button", "data-testid": "more-menu-button", onClick: this.toggleMenu, "aria-label": this.terms['moreMenu.ariaLabel'] ?? 'More options' }, index.h("kritzel-icon", { key: 'de7e442b32c755c890579e7254d2cc6dad8bc21a', name: this.icon, size: this.iconSize })), index.h("kritzel-portal", { key: 'a426494a65dfe42a1d9a2040dcf5202d2daee559', anchor: this.menuAnchor, offsetY: this.offsetY, onClose: this.closeMenu }, index.h("kritzel-menu", { key: '4b0ba21f8da0d4149ae52e752c6dd1c6fb4ac0cc', items: this.resolveMenuLabels(this.visibleItems), onItemSelect: this.handleMenuItemSelect })))));
|
|
31514
31431
|
}
|
|
31515
31432
|
static get watchers() { return {
|
|
31516
31433
|
"items": [{
|
|
@@ -31682,7 +31599,7 @@ const KritzelNumericInput = class {
|
|
|
31682
31599
|
this.valueChange.emit(newValue);
|
|
31683
31600
|
};
|
|
31684
31601
|
render() {
|
|
31685
|
-
return (index.h(index.Host, { key: '
|
|
31602
|
+
return (index.h(index.Host, { key: '5ebdff964290d1d7f334d7e42e69f2fa09484a27' }, index.h("div", { key: '8d41fd9c5ba68fbeb927e262d5c2fe61436dee0a', class: "input-container" }, this.label && index.h("label", { key: 'f1172074424465be27ce5c3b6c3326457daf7fdc', class: "input-label" }, this.label), index.h("div", { key: 'ffdea4c84fe026c3bbd26bf288aab8a5da809d00', class: "input-wrapper" }, index.h("input", { key: '0705fa4415727e2689aa0dbfc56f17c9d72e3d18', type: "number", class: "numeric-input", title: "", min: this.min === Number.MIN_SAFE_INTEGER ? undefined : this.min, max: this.max === Number.MAX_SAFE_INTEGER ? undefined : this.max, step: this.step, value: this.inputValue, placeholder: this.placeholder, onInput: this.handleInput, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, onInvalid: this.handleInvalid }), index.h("div", { key: '8f46261cdb045ff20d171bd0a6c98541f65f079b', class: "spinner-buttons" }, index.h("button", { key: 'b61a5e60db34972c3242264b9aa872e295a09b38', type: "button", class: "spinner-button spinner-up", onClick: this.handleIncrement, tabIndex: -1, "aria-label": "Increase value" }, index.h("svg", { key: '6c5a2be0a96b18ad204196fe59001211deedd038', viewBox: "0 0 10 6", class: "spinner-icon" }, index.h("path", { key: '4905b8ffa669e0b00b050cee94fdb8aac3c477e4', d: "M1 5L5 1L9 5", stroke: "currentColor", "stroke-width": "1.5", fill: "none", "stroke-linecap": "round", "stroke-linejoin": "round" }))), index.h("button", { key: 'df2ca8633ca8dbf54ef80a3cffbbcba28534d1fd', type: "button", class: "spinner-button spinner-down", onClick: this.handleDecrement, tabIndex: -1, "aria-label": "Decrease value" }, index.h("svg", { key: 'd4e8bd93fda3e9b1bd4db79f25c503e1057086a3', viewBox: "0 0 10 6", class: "spinner-icon" }, index.h("path", { key: 'a6e343e373963ca86b703783c88efeb4516e87a9', d: "M1 1L5 5L9 1", stroke: "currentColor", "stroke-width": "1.5", fill: "none", "stroke-linecap": "round", "stroke-linejoin": "round" }))))))));
|
|
31686
31603
|
}
|
|
31687
31604
|
static get watchers() { return {
|
|
31688
31605
|
"value": [{
|
|
@@ -31721,7 +31638,7 @@ const KritzelOpacitySlider = class {
|
|
|
31721
31638
|
}
|
|
31722
31639
|
render() {
|
|
31723
31640
|
const percentage = this.getPercentage();
|
|
31724
|
-
return (index.h(index.Host, { key: '
|
|
31641
|
+
return (index.h(index.Host, { key: '51b1e93e982f29f181f9f542dcc2939fca08d7de' }, index.h("div", { key: '3376dac02effb137c04efc5aa9de96d4a5b36452', class: "opacity-container" }, index.h("div", { key: '3d1d2c0fe1b4b4185e37dcbf61a6c3a955fe1356', class: "slider-wrapper" }, index.h("input", { key: '6c43f519ff5d7bbc17ce7804909e52efc6e9533b', type: "range", class: "opacity-slider", min: this.min, max: this.max, step: this.step, value: this.value, onInput: (e) => this.handleInput(e), style: {
|
|
31725
31642
|
'--slider-progress': `${percentage}%`,
|
|
31726
31643
|
'--kritzel-opacity-slider-thumb-border-color': this.previewColor,
|
|
31727
31644
|
} })))));
|
|
@@ -32074,7 +31991,7 @@ const KritzelPortal = class {
|
|
|
32074
31991
|
this.portal.style.visibility = 'visible';
|
|
32075
31992
|
}
|
|
32076
31993
|
render() {
|
|
32077
|
-
return (index.h(index.Host, { key: '
|
|
31994
|
+
return (index.h(index.Host, { key: '51633f5b57002a821f73185811626439b0956479', style: { display: this.anchor ? 'block' : 'none' } }, index.h("slot", { key: 'f5cb7946de5775d1fd64d266f6ba5b952e9d89cb' })));
|
|
32078
31995
|
}
|
|
32079
31996
|
static get watchers() { return {
|
|
32080
31997
|
"anchor": [{
|
|
@@ -32088,7 +32005,7 @@ const KritzelPortal = class {
|
|
|
32088
32005
|
* This file is auto-generated by the version bump scripts.
|
|
32089
32006
|
* Do not modify manually.
|
|
32090
32007
|
*/
|
|
32091
|
-
const KRITZEL_VERSION = '0.4.
|
|
32008
|
+
const KRITZEL_VERSION = '0.4.26';
|
|
32092
32009
|
|
|
32093
32010
|
const kritzelSettingsCss = () => `:host{display:contents}kritzel-dialog{--kritzel-dialog-body-padding:0;--kritzel-dialog-width-large:800px;--kritzel-dialog-height-large:500px}.footer-button{padding:8px 16px;border-radius:6px;cursor:pointer;font-size:14px}.cancel-button{border:1px solid #ebebeb;background:#fff;color:inherit}.cancel-button:hover{background:#f5f5f5}.settings-tab-panel{display:none}.settings-tab-panel.is-active{display:block}.settings-content{padding:0}.settings-content h3{margin:0 0 16px 0;font-size:18px;font-weight:600;color:var(--kritzel-settings-content-heading-color, #333333)}.settings-content p{margin:0;font-size:14px;color:var(--kritzel-settings-content-text-color, #666666);line-height:1.5}.settings-group{display:flex;flex-direction:column;gap:24px}.settings-item{display:flex;flex-direction:column;gap:8px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.settings-label{font-size:14px;font-weight:600;color:var(--kritzel-settings-label-color, #333333);margin:0 0 4px 0}.settings-description{font-size:12px;color:var(--kritzel-settings-description-color, #888888);margin:0;line-height:1.4}.shortcuts-list{display:flex;flex-direction:column;gap:24px}.shortcuts-category{display:flex;flex-direction:column;gap:8px}.shortcuts-category-title{font-size:14px;font-weight:600;color:var(--kritzel-settings-label-color, #333333);margin:0 0 4px 0}.shortcuts-group{display:flex;flex-direction:column;gap:4px}.shortcut-item{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;border-radius:4px;background:var(--kritzel-settings-shortcut-item-bg, rgba(0, 0, 0, 0.02))}.shortcut-label{font-size:14px;color:var(--kritzel-settings-content-text-color, #666666)}.shortcut-key{font-family:monospace;font-size:12px;padding:2px 8px;border-radius:4px;background:var(--kritzel-settings-shortcut-key-bg, #f0f0f0);color:var(--kritzel-settings-shortcut-key-color, #333333);border:1px solid var(--kritzel-settings-shortcut-key-border, #ddd)}`;
|
|
32094
32011
|
|
|
@@ -32300,7 +32217,7 @@ const KritzelSettings = class {
|
|
|
32300
32217
|
return (index.h("div", { class: "settings-categories-wrapper" }, index.h("div", { class: { 'settings-tab-panel': true, 'is-active': this.selectedCategoryId === 'general' } }, index.h("div", { class: "settings-content" }, index.h("h3", null, this.t('settings.general.title', 'General Settings')), index.h("div", { class: "settings-group" }, index.h("div", { class: "settings-item" }, index.h("label", { class: "settings-label" }, this.t('settings.general.theme.label', 'Theme')), index.h("p", { class: "settings-description" }, this.t('settings.general.theme.description', 'Select a registered color theme for the editor interface.')), index.h("kritzel-dropdown", { options: this.availableThemes.map(t => ({ value: t, label: t })), value: this.theme, onValueChanged: this.handleThemeChange })), this.availableLocales.length > 0 && (index.h("div", { class: "settings-item" }, index.h("label", { class: "settings-label" }, this.t('settings.general.language.label', 'Language')), index.h("p", { class: "settings-description" }, this.t('settings.general.language.description', 'Select the display language for the editor interface.')), index.h("kritzel-dropdown", { options: this.availableLocales.map(l => ({ value: l.code, label: l.label })), value: this.locale, onValueChanged: this.handleLocaleChange }))), index.h("div", { class: "settings-item" }, index.h("label", { class: "settings-label" }, this.t('settings.general.lockDrawingScale.label', 'Lock Drawing Scale')), index.h("p", { class: "settings-description" }, this.t('settings.general.lockDrawingScale.description', 'When enabled, drawn objects maintain a fixed visual size regardless of the current zoom level.')), index.h("kritzel-slide-toggle", { checked: this.lockDrawingScale, label: this.t('settings.general.lockDrawingScale.label', 'Lock Drawing Scale'), onCheckedChange: this.handleLockDrawingScaleChange }))))), index.h("div", { class: { 'settings-tab-panel': true, 'is-active': this.selectedCategoryId === 'viewport' } }, index.h("div", { class: "settings-content" }, index.h("h3", null, this.t('settings.viewport.title', 'Viewport Settings')), index.h("div", { class: "settings-group" }, index.h("div", { class: "settings-item" }, index.h("label", { class: "settings-label" }, this.t('settings.viewport.minZoom.label', 'Minimum Zoom Level')), index.h("p", { class: "settings-description" }, this.t('settings.viewport.minZoom.description', 'Sets the minimum zoom level. Lower values allow zooming out further to see more of the canvas.')), index.h("kritzel-numeric-input", { value: this.scaleMin, min: 0.0001, max: 1, step: 0.0001, onValueChange: this.handleScaleMinChange })), index.h("div", { class: "settings-item" }, index.h("label", { class: "settings-label" }, this.t('settings.viewport.maxZoom.label', 'Maximum Zoom Level')), index.h("p", { class: "settings-description" }, this.t('settings.viewport.maxZoom.description', 'Sets the maximum zoom level. Higher values allow zooming in closer for detailed work.')), index.h("kritzel-numeric-input", { value: this.scaleMax, min: 1, max: 1000, step: 1, onValueChange: this.handleScaleMaxChange })), index.h("div", { class: "settings-item" }, index.h("label", { class: "settings-label" }, this.t('settings.viewport.boundaryLeft.label', 'Viewport Boundary Left')), index.h("p", { class: "settings-description" }, this.t('settings.viewport.boundaryLeft.description', 'Left boundary in world coordinates. Set to limit how far left the viewport can pan.')), index.h("kritzel-numeric-input", { value: this.viewportBoundaryLeft, step: 100, placeholder: this.t('settings.viewport.boundaryPlaceholder', 'Infinite'), onValueChange: this.handleViewportBoundaryLeftChange })), index.h("div", { class: "settings-item" }, index.h("label", { class: "settings-label" }, this.t('settings.viewport.boundaryRight.label', 'Viewport Boundary Right')), index.h("p", { class: "settings-description" }, this.t('settings.viewport.boundaryRight.description', 'Right boundary in world coordinates. Set to limit how far right the viewport can pan.')), index.h("kritzel-numeric-input", { value: this.viewportBoundaryRight, step: 100, placeholder: this.t('settings.viewport.boundaryPlaceholder', 'Infinite'), onValueChange: this.handleViewportBoundaryRightChange })), index.h("div", { class: "settings-item" }, index.h("label", { class: "settings-label" }, this.t('settings.viewport.boundaryTop.label', 'Viewport Boundary Top')), index.h("p", { class: "settings-description" }, this.t('settings.viewport.boundaryTop.description', 'Top boundary in world coordinates. Set to limit how far up the viewport can pan.')), index.h("kritzel-numeric-input", { value: this.viewportBoundaryTop, step: 100, placeholder: this.t('settings.viewport.boundaryPlaceholder', 'Infinite'), onValueChange: this.handleViewportBoundaryTopChange })), index.h("div", { class: "settings-item" }, index.h("label", { class: "settings-label" }, this.t('settings.viewport.boundaryBottom.label', 'Viewport Boundary Bottom')), index.h("p", { class: "settings-description" }, this.t('settings.viewport.boundaryBottom.description', 'Bottom boundary in world coordinates. Set to limit how far down the viewport can pan.')), index.h("kritzel-numeric-input", { value: this.viewportBoundaryBottom, step: 100, placeholder: this.t('settings.viewport.boundaryPlaceholder', 'Infinite'), onValueChange: this.handleViewportBoundaryBottomChange }))))), index.h("div", { class: { 'settings-tab-panel': true, 'is-active': this.selectedCategoryId === 'shortcuts' } }, index.h("div", { class: "settings-content" }, index.h("h3", null, this.t('settings.shortcuts.title', 'Keyboard Shortcuts')), index.h("div", { class: "shortcuts-list" }, Array.from(this.groupShortcutsByCategory()).map(([category, shortcuts]) => (index.h("div", { class: "shortcuts-category", key: category }, index.h("h4", { class: "shortcuts-category-title" }, category), index.h("div", { class: "shortcuts-group" }, shortcuts.map(shortcut => (index.h("div", { class: "shortcut-item", key: shortcut.key + shortcut.label }, index.h("span", { class: "shortcut-label" }, shortcut.label), index.h("kbd", { class: "shortcut-key" }, this.formatKeyCombo(shortcut)))))))))))), index.h("div", { class: { 'settings-tab-panel': true, 'is-active': this.selectedCategoryId === 'developer' } }, index.h("div", { class: "settings-content" }, index.h("h3", null, this.t('settings.developer.title', 'Developer Options')), index.h("div", { class: "settings-group" }, index.h("div", { class: "settings-item" }, index.h("label", { class: "settings-label" }, this.t('settings.developer.showViewportInfo.label', 'Show Viewport Info')), index.h("p", { class: "settings-description" }, this.t('settings.developer.showViewportInfo.description', 'Display viewport debug information such as position, zoom level, and boundaries.')), index.h("kritzel-slide-toggle", { checked: this.debugInfo.showViewportInfo, label: this.t('settings.developer.showViewportInfo.label', 'Show Viewport Info'), onCheckedChange: this.handleDebugInfoChange('showViewportInfo') })), index.h("div", { class: "settings-item" }, index.h("label", { class: "settings-label" }, this.t('settings.developer.showObjectInfo.label', 'Show Object Info')), index.h("p", { class: "settings-description" }, this.t('settings.developer.showObjectInfo.description', 'Display debug information about objects on the canvas.')), index.h("kritzel-slide-toggle", { checked: this.debugInfo.showObjectInfo, label: this.t('settings.developer.showObjectInfo.label', 'Show Object Info'), onCheckedChange: this.handleDebugInfoChange('showObjectInfo') })), index.h("div", { class: "settings-item" }, index.h("label", { class: "settings-label" }, this.t('settings.developer.showSyncProviderInfo.label', 'Show Sync Provider Info')), index.h("p", { class: "settings-description" }, this.t('settings.developer.showSyncProviderInfo.description', 'Display debug information about the sync provider connection status.')), index.h("kritzel-slide-toggle", { checked: this.debugInfo.showSyncProviderInfo, label: this.t('settings.developer.showSyncProviderInfo.label', 'Show Sync Provider Info'), onCheckedChange: this.handleDebugInfoChange('showSyncProviderInfo') })), index.h("div", { class: "settings-item" }, index.h("label", { class: "settings-label" }, this.t('settings.developer.showMigrationInfo.label', 'Show Migration Info')), index.h("p", { class: "settings-description" }, this.t('settings.developer.showMigrationInfo.description', 'Display debug information about data migrations.')), index.h("kritzel-slide-toggle", { checked: this.debugInfo.showMigrationInfo, label: this.t('settings.developer.showMigrationInfo.label', 'Show Migration Info'), onCheckedChange: this.handleDebugInfoChange('showMigrationInfo') }))))), index.h("div", { class: { 'settings-tab-panel': true, 'is-active': this.selectedCategoryId === 'about' } }, index.h("div", { class: "settings-content" }, index.h("h3", null, this.t('settings.about.title', 'About')), index.h("p", null, this.t('settings.about.description', 'Kritzel - A drawing application')), index.h("p", { class: "version-info" }, "Version ", KRITZEL_VERSION), index.h("p", { class: "version-info" }, "App-State Schema v", schema_constants.CURRENT_APP_STATE_SCHEMA_VERSION), index.h("p", { class: "version-info" }, "Workspace Schema v", schema_constants.CURRENT_WORKSPACE_SCHEMA_VERSION)))));
|
|
32301
32218
|
}
|
|
32302
32219
|
render() {
|
|
32303
|
-
return (index.h(index.Host, { key: '
|
|
32220
|
+
return (index.h(index.Host, { key: '96981b34953ffdda4cfdfa9e6acc832dedc0c64a' }, index.h("kritzel-dialog", { key: '792a68aa1fe66780a937a95db802e9c6a2135091', isOpen: this.isDialogOpen, dialogTitle: this.t('settings.dialogTitle', 'Settings'), size: "large", contained: true, onDialogClose: this.closeDialog }, index.h("kritzel-master-detail", { key: 'dc7d99c2b90ea4a86bc23527a39eaec70d95acc8', items: this.categories, selectedItemId: this.selectedCategoryId, onItemSelect: this.handleCategorySelect }, this.renderCategoryContent()))));
|
|
32304
32221
|
}
|
|
32305
32222
|
static get watchers() { return {
|
|
32306
32223
|
"settings": [{
|
|
@@ -35540,9 +35457,9 @@ const KritzelShareDialog = class {
|
|
|
35540
35457
|
this.dialogClosed.emit();
|
|
35541
35458
|
};
|
|
35542
35459
|
render() {
|
|
35543
|
-
return (index.h(index.Host, { key: '
|
|
35460
|
+
return (index.h(index.Host, { key: '13e718f70f46a0c71e70d7330e0bcf655ebb60a3' }, index.h("kritzel-dialog", { key: 'd96e31d7259cc5c5461d94395ceecfc7491f403f', dialogTitle: this.terms['share.dialogTitle'] ?? 'Share Workspace', size: "small", isOpen: this.isDialogOpen, onDialogClose: this.closeDialog, contained: true }, index.h("div", { key: '9a82641540675cb645e5520bfb1624e77b5eb382', class: "share-content" }, index.h("div", { key: '5eed405aaf5e39f71083e84d2db0c4177722915b', class: "share-section" }, index.h("div", { key: '2bb736f60448dcae354d2f7931c277fce9fe7964', class: "share-row" }, index.h("div", { key: 'f2b22b2ce9e3331b0bf142bcb280e3dae064f34d', class: "share-label-group" }, index.h("label", { key: '58daf90a8b4de173deaba2e93c31791d78c17214', class: "share-label" }, this.terms['share.linkSharing.label'] ?? 'Link sharing'), index.h("p", { key: 'ba5f9ee772ab44fd4cc9a3066894ee5da10c56d8', class: "share-description" }, this.internalIsPublic
|
|
35544
35461
|
? (this.terms['share.linkSharing.enabledDescription'] ?? 'Anyone with the link can access this workspace.')
|
|
35545
|
-
: (this.terms['share.linkSharing.disabledDescription'] ?? 'Link sharing is disabled. Only you can access this workspace.'))), index.h("kritzel-slide-toggle", { key: '
|
|
35462
|
+
: (this.terms['share.linkSharing.disabledDescription'] ?? 'Link sharing is disabled. Only you can access this workspace.'))), index.h("kritzel-slide-toggle", { key: '7f70df4db90f087d8d7a7efe98012f7bf897975d', checked: this.internalIsPublic, onCheckedChange: this.handleToggleChange, label: this.terms['share.linkSharing.toggleLabel'] ?? 'Enable link sharing' }))), this.internalIsPublic && (index.h("div", { key: '999fe3550e149b7e3f0ebf28f312fa5f676dd945', class: "share-section" }, index.h("div", { key: 'ff623a78f50b8a5e27a978e05e2ee2ba4ac1991b', class: "share-url-container" }, index.h("input", { key: '5c3b5c3e82366ebe4f4e7a73c6afa42dbbf39a20', type: "text", class: "share-url-input", value: this.getShareUrl(), readOnly: true, onClick: (e) => e.target.select() }), index.h("button", { key: '60ac0315841649722b32d098c787f2a0deeec979', class: { 'copy-button': true, 'copy-success': this.copySuccess }, onClick: this.handleCopyUrl, title: this.copySuccess ? (this.terms['share.copyLink.copied'] ?? 'Copied!') : (this.terms['share.copyLink.title'] ?? 'Copy link') }, index.h("kritzel-icon", { key: 'eacbd3b75c554d3c62a098ddd45b6723f59521b5', name: this.copySuccess ? 'check' : 'copy', size: 18 }))), this.qrCodeDataUrl && (index.h("div", { key: 'fc24d6a9673b5b16a35f905023e632a314cef4ce', class: "share-qr-container" }, index.h("img", { key: '3669f9138336cd4cf51d1e3de5caedaddac518e8', class: "share-qr-image", src: this.qrCodeDataUrl, alt: "QR code for share link" })))))))));
|
|
35546
35463
|
}
|
|
35547
35464
|
static get watchers() { return {
|
|
35548
35465
|
"isPublic": [{
|
|
@@ -35583,7 +35500,7 @@ const KritzelSlideToggle = class {
|
|
|
35583
35500
|
}
|
|
35584
35501
|
};
|
|
35585
35502
|
render() {
|
|
35586
|
-
return (index.h(index.Host, { key: '
|
|
35503
|
+
return (index.h(index.Host, { key: 'd8a9509138995da84fe798da448f0487d8c082b5', class: { checked: this.checked, disabled: this.disabled }, tabIndex: this.disabled ? -1 : 0, role: "switch", "aria-checked": this.checked ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.label, onClick: this.handleToggle, onKeyDown: this.handleKeyDown }, index.h("div", { key: '0966d487def99332139fe6f4a604fff310088d72', class: "toggle-track" }, index.h("div", { key: 'aeec11224dffa71178f38b0a96a7e15c35f67bcf', class: "toggle-thumb" }))));
|
|
35587
35504
|
}
|
|
35588
35505
|
};
|
|
35589
35506
|
KritzelSlideToggle.style = kritzelSlideToggleCss();
|
|
@@ -35683,7 +35600,7 @@ const KritzelSplitButton = class {
|
|
|
35683
35600
|
this.menuScrollTop = event.target.scrollTop;
|
|
35684
35601
|
};
|
|
35685
35602
|
render() {
|
|
35686
|
-
return (index.h(index.Host, { key: '
|
|
35603
|
+
return (index.h(index.Host, { key: '37185b37faa1e703f9457d4f4685c7d8ed40b342', class: { mobile: this.isTouchDevice } }, index.h("button", { key: 'b97d4df106fea68398116f1c44c6d5cd9f31997c', class: "split-main-button", tabIndex: 0, onClick: this.handleButtonClick, disabled: this.mainButtonDisabled, "aria-label": "Main action" }, this.buttonIcon && index.h("kritzel-icon", { key: '66dce735d160e23a16727c294f9ccb1bd3cda8c1', name: this.buttonIcon })), index.h("div", { key: '14ffaf9334090dc10df87d7b8744446be8bb2632', class: "split-divider" }), index.h("button", { key: '421e23ebb99e7b1ca656c0bc16f602a2a9812264', ref: el => (this.splitMenuButtonRef = el), class: "split-menu-button", tabIndex: 0, onClick: this.toggleMenu, disabled: this.menuButtonDisabled, "aria-label": "Open menu" }, index.h("kritzel-icon", { key: 'affc13ef766d21030137a7feb44305553845dbfc', name: this.dropdownIcon })), index.h("kritzel-portal", { key: '326cef4696ebf9986e6c42e18822b90c399b16c2', anchor: this.anchorElement, offsetY: 4, onClose: this.closeMenu }, index.h("kritzel-menu", { key: 'e0800efbdefc9dce3dc548523ec10e810f3f7f73', ref: el => (this.menuRef = el), items: this.items, onItemSelect: this.handleItemSelect, onItemSave: this.handleItemSave, onItemCancel: this.handleItemCancel, onItemToggleChildMenu: this.handleItemToggleChildMenu, onItemCloseChildMenu: this.handleItemCloseChildMenu, onClose: this.closeMenu, onScroll: this.handleScroll }))));
|
|
35687
35604
|
}
|
|
35688
35605
|
};
|
|
35689
35606
|
KritzelSplitButton.style = kritzelSplitButtonCss();
|
|
@@ -35704,7 +35621,7 @@ const KritzelStrokeSize = class {
|
|
|
35704
35621
|
}
|
|
35705
35622
|
render() {
|
|
35706
35623
|
const sizes = this.sizes ?? [];
|
|
35707
|
-
return (index.h(index.Host, { key: '
|
|
35624
|
+
return (index.h(index.Host, { key: '8b12f354a3395cd69c7199115ce998cf2eb26eb2' }, index.h("div", { key: '39008613327d50b75270dd78ea498113e5e9617b', class: "size-grid" }, sizes.map(size => (index.h("div", { tabIndex: 0, class: {
|
|
35708
35625
|
'size-container': true,
|
|
35709
35626
|
'selected': this.selectedSize === size,
|
|
35710
35627
|
}, onClick: () => this.handleSizeClick(size) }, index.h("kritzel-color", { value: 'var(--kritzel-global-text-primary)', size: size })))))));
|
|
@@ -35712,22 +35629,6 @@ const KritzelStrokeSize = class {
|
|
|
35712
35629
|
};
|
|
35713
35630
|
KritzelStrokeSize.style = kritzelStrokeSizeCss();
|
|
35714
35631
|
|
|
35715
|
-
const kritzelSyncIndicatorCss = () => `:host{display:contents}.indicator{position:absolute;top:12px;left:50%;transform:translateX(-50%);z-index:var(--kritzel-editor-sync-indicator-z-index, 10001);pointer-events:none;display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;background:var(--kritzel-editor-sync-indicator-background, rgba(255, 255, 255, 0.92));color:var(--kritzel-editor-sync-indicator-color, #334155);box-shadow:0 2px 10px rgba(0, 0, 0, 0.12);font-family:var(--kritzel-font-family, sans-serif);font-size:12px;line-height:1;font-weight:500;opacity:0;visibility:hidden}.indicator.visible{opacity:1;visibility:visible}.spinner{width:12px;height:12px;border-radius:50%;border:2px solid var(--kritzel-editor-sync-indicator-spinner-track, rgba(148, 163, 184, 0.35));border-top-color:var(--kritzel-editor-sync-indicator-spinner-color, #2563eb);animation:kritzel-sync-indicator-spin 0.8s linear infinite}@keyframes kritzel-sync-indicator-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}`;
|
|
35716
|
-
|
|
35717
|
-
const KritzelSyncIndicator = class {
|
|
35718
|
-
constructor(hostRef) {
|
|
35719
|
-
index.registerInstance(this, hostRef);
|
|
35720
|
-
}
|
|
35721
|
-
/** Whether the indicator is visible. */
|
|
35722
|
-
visible = false;
|
|
35723
|
-
/** The text displayed next to the spinner. */
|
|
35724
|
-
text = 'Syncing...';
|
|
35725
|
-
render() {
|
|
35726
|
-
return (index.h(index.Host, { key: '05e825ee1c08fe02008b8e1adfe9e09a7996f221' }, index.h("div", { key: 'ea1635896f643c16713d35d6efd3abf486b1fbe2', class: { indicator: true, visible: this.visible }, role: "status", "aria-live": "polite", "aria-label": "Synchronizing workspace" }, index.h("span", { key: '7b57ea67d6f2c40dc74e966c16ebe9d95c75394a', class: "spinner", "aria-hidden": "true" }), index.h("span", { key: 'fc16405b02d96213d0025239b6e863883192ada5' }, this.text))));
|
|
35727
|
-
}
|
|
35728
|
-
};
|
|
35729
|
-
KritzelSyncIndicator.style = kritzelSyncIndicatorCss();
|
|
35730
|
-
|
|
35731
35632
|
const kritzelToolConfigCss = () => `.expand-toggle{background:none;border:none;cursor:var(--kritzel-global-pointer-cursor, pointer);padding:0;margin:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;color:var(--kritzel-icon-color, currentColor);transition:transform 0.2s ease}.expand-toggle:hover{opacity:0.7}.expand-toggle:focus{outline:none}.expand-toggle:focus-visible{outline:2px solid var(--kritzel-focus-color, #007acc);outline-offset:2px}.expand-toggle:active{transform:scale(0.95)}.divider{height:1px;background-color:var(--kritzel-divider-color, #e0e0e0);margin:4px 0;width:100%}`;
|
|
35732
35633
|
|
|
35733
35634
|
const KritzelToolConfig = class {
|
|
@@ -36136,14 +36037,14 @@ const KritzelTooltip = class {
|
|
|
36136
36037
|
}
|
|
36137
36038
|
}
|
|
36138
36039
|
render() {
|
|
36139
|
-
return (index.h(index.Host, { key: '
|
|
36040
|
+
return (index.h(index.Host, { key: '407a2f458626f02808fc9d718046a635de71662b', style: {
|
|
36140
36041
|
position: 'fixed',
|
|
36141
36042
|
zIndex: '9999',
|
|
36142
36043
|
transition: 'opacity 0.3s ease-in-out, transform 0.3s ease-in-out',
|
|
36143
36044
|
visibility: this.isVisible ? 'visible' : 'hidden',
|
|
36144
36045
|
left: `${this.positionX}px`,
|
|
36145
36046
|
bottom: `${this.positionY}px`,
|
|
36146
|
-
} }, index.h("div", { key: '
|
|
36047
|
+
} }, index.h("div", { key: '13c00678bd485f1f5bc2676e2c89fd0019f5e089', class: "tooltip-content", onClick: event => event.stopPropagation(), onPointerDown: event => event.stopPropagation(), onMouseDown: event => event.stopPropagation() }, index.h("slot", { key: '67937f71c611f36a2c47ee2632a8657ced1d8cc7' }))));
|
|
36147
36048
|
}
|
|
36148
36049
|
static get watchers() { return {
|
|
36149
36050
|
"triggerElement": [{
|
|
@@ -36184,7 +36085,7 @@ const KritzelUtilityPanel = class {
|
|
|
36184
36085
|
this.redo.emit();
|
|
36185
36086
|
}
|
|
36186
36087
|
render() {
|
|
36187
|
-
return (index.h(index.Host, { key: '
|
|
36088
|
+
return (index.h(index.Host, { key: '3485f5cc7c4f1fd71fe24c2337d0a1f7145012c0' }, index.h("button", { key: '0a5eb536282df4fec1d7eead330574412640ae8b', class: "utility-button", "data-testid": "utility-undo", disabled: !this.undoState?.canUndo, onClick: event => this.handleUndo(event), "aria-label": this.terms['utility.undo'] ?? 'Undo' }, index.h("kritzel-icon", { key: '976805f2e645acf710b30a6dc089b93bf3d6efb3', name: "undo" })), index.h("button", { key: 'dd44f61e16f96e315d62c0e9278b0a09ec7169d7', class: "utility-button", "data-testid": "utility-redo", disabled: !this.undoState?.canRedo, onClick: event => this.handleRedo(event), "aria-label": this.terms['utility.redo'] ?? 'Redo' }, index.h("kritzel-icon", { key: '4f3fb33d6bc5cfa5c3b23a39c10998efefec51a8', name: "redo" })), index.h("div", { key: '60124754529de5ac00e6ec281a2402d4c85e1906', class: "utility-separator" }), index.h("button", { key: '0b3cbd654f5a8c2319547a3314887435dfc5b1f7', class: "utility-button", "data-testid": "utility-delete", onClick: () => this.delete.emit(), "aria-label": this.terms['utility.delete'] ?? 'Delete selected items' }, index.h("kritzel-icon", { key: '7fe136ecc1513895b14e479a5d47e13d398f52b4', name: "delete" }))));
|
|
36188
36089
|
}
|
|
36189
36090
|
};
|
|
36190
36091
|
KritzelUtilityPanel.style = kritzelUtilityPanelCss();
|
|
@@ -36205,7 +36106,7 @@ const KritzelWatermark = class {
|
|
|
36205
36106
|
label;
|
|
36206
36107
|
render() {
|
|
36207
36108
|
const label = this.label ?? this.core.localizationManager.translate('watermark.poweredBy');
|
|
36208
|
-
return (index.h(index.Host, { key: '
|
|
36109
|
+
return (index.h(index.Host, { key: '297a488f26fd8637da8d00b98af85cfeda5b0992' }, index.h("a", { key: '6e3be65773dfda06e9b7ae611cfbb5ff09ba1f91', class: "watermark-link", href: KRITZEL_WEBSITE_URL, target: "_blank", rel: "noopener noreferrer", part: "watermark", onPointerDown: (ev) => ev.stopPropagation(), onPointerUp: (ev) => ev.stopPropagation() }, label)));
|
|
36209
36110
|
}
|
|
36210
36111
|
};
|
|
36211
36112
|
KritzelWatermark.style = kritzelWatermarkCss();
|
|
@@ -36393,7 +36294,7 @@ const KritzelZoomPanel = class {
|
|
|
36393
36294
|
return Number.isFinite(this.zoomPercent) ? Math.max(1, Math.round(this.zoomPercent)) : 100;
|
|
36394
36295
|
}
|
|
36395
36296
|
render() {
|
|
36396
|
-
return (index.h(index.Host, { key: '
|
|
36297
|
+
return (index.h(index.Host, { key: '6f39f043da7b8607efcfb0e99d58cebc80d3c031' }, index.h("div", { key: 'f7c7600760ea8d3d9c6efe26e6b398ba20b12e23', class: { panel: true, visible: this.visible } }, index.h("button", { key: '18c6ddc87155a36395b296aded7c15c55500a2c8', class: "zoom-button", type: "button", "aria-label": this.terms['zoom.zoomOut'] ?? 'Zoom out', disabled: this.disabled, onClick: this.handleZoomOut }, index.h("kritzel-icon", { key: '54fea3408bb38c7e5f19877c84fb96a74028693a', name: "minus" })), index.h("span", { key: 'b2b354eb16a0e2102e9214864c438dfab79d8968', class: "zoom-level", "aria-live": "polite" }, this.normalizedZoomPercent, "%"), index.h("button", { key: 'ddc3822e478ccfec770dcc5ba900d0276531b1ad', class: "zoom-button", type: "button", "aria-label": this.terms['zoom.zoomIn'] ?? 'Zoom in', disabled: this.disabled, onClick: this.handleZoomIn }, index.h("kritzel-icon", { key: '2069bf5aba39c362d472f57941ca8ae4f0bedb8a', name: "plus" })))));
|
|
36397
36298
|
}
|
|
36398
36299
|
};
|
|
36399
36300
|
KritzelZoomPanel.style = kritzelZoomPanelCss();
|
|
@@ -36438,7 +36339,6 @@ exports.kritzel_share_dialog = KritzelShareDialog;
|
|
|
36438
36339
|
exports.kritzel_slide_toggle = KritzelSlideToggle;
|
|
36439
36340
|
exports.kritzel_split_button = KritzelSplitButton;
|
|
36440
36341
|
exports.kritzel_stroke_size = KritzelStrokeSize;
|
|
36441
|
-
exports.kritzel_sync_indicator = KritzelSyncIndicator;
|
|
36442
36342
|
exports.kritzel_tool_config = KritzelToolConfig;
|
|
36443
36343
|
exports.kritzel_tooltip = KritzelTooltip;
|
|
36444
36344
|
exports.kritzel_utility_panel = KritzelUtilityPanel;
|