kritzel-stencil 0.3.34 → 0.3.36
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/index.cjs.js +1 -1
- package/dist/cjs/{kritzel-active-users_45.cjs.entry.js → kritzel-active-users_46.cjs.entry.js} +128 -83
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{schema.constants-D7Z8ELAd.js → schema.constants-Di56GD6q.js} +14 -3
- package/dist/cjs/stencil.cjs.js +1 -1
- package/dist/collection/classes/objects/shape.class.js +14 -3
- package/dist/collection/classes/structures/object-map.structure.js +15 -7
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.css +5 -0
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +26 -18
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.css +0 -41
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +26 -4
- 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.css +1 -0
- 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 -8
- package/dist/collection/components/ui/kritzel-current-user-dialog/kritzel-current-user-dialog.css +10 -0
- package/dist/collection/components/ui/kritzel-current-user-dialog/kritzel-current-user-dialog.js +25 -1
- package/dist/collection/components/ui/kritzel-export/kritzel-export.js +1 -1
- package/dist/collection/components/ui/kritzel-loading-overlay/kritzel-loading-overlay.css +50 -0
- package/dist/collection/components/ui/kritzel-loading-overlay/kritzel-loading-overlay.js +70 -0
- 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 +2 -0
- package/dist/components/index.js +1 -1
- 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 +1 -1
- 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.d.ts +11 -0
- package/dist/components/kritzel-loading-overlay.js +1 -0
- 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-wl9BhN6s.js → p-1nG2hxfJ.js} +1 -1
- package/dist/components/{p-Cb5YwXbC.js → p-8xkoVMfO.js} +1 -1
- package/dist/components/{p-BeHVCJ7n.js → p-BH4AasB1.js} +1 -1
- package/dist/components/{p-BVu03tNB.js → p-BJlf4iHH.js} +1 -1
- package/dist/components/{p-BntMEYss.js → p-BKOsmXB5.js} +1 -1
- package/dist/components/{p-DSd5xTAH.js → p-BLOPBDUF.js} +1 -1
- package/dist/components/p-B_6RNask.js +1 -0
- package/dist/components/p-BcAIRHf1.js +9 -0
- package/dist/components/{p-8p1DKytO.js → p-Bd_yPNfg.js} +1 -1
- package/dist/components/{p-BUc0GFPj.js → p-BlozPPKi.js} +1 -1
- package/dist/components/{p-7ZnANv7C.js → p-Bm_BWQa4.js} +1 -1
- package/dist/components/{p-BixEMVtW.js → p-BulDbBWB.js} +1 -1
- package/dist/components/{p-D0RYktBV.js → p-BzJEwFtn.js} +1 -1
- package/dist/components/{p-CdkNxxut.js → p-BzrxIesp.js} +1 -1
- package/dist/components/{p-CfS-5J9k.js → p-CMphprF1.js} +1 -1
- package/dist/components/{p-D0v9WP5w.js → p-CVhcOiEA.js} +1 -1
- package/dist/components/{p-CC0J_kEP.js → p-CwuGA058.js} +1 -1
- package/dist/components/p-D52oKO_e.js +1 -0
- package/dist/components/{p-M9m9-OEY.js → p-D8TOEhPY.js} +1 -1
- package/dist/components/{p-DJVRW9So.js → p-DEqpY4K2.js} +1 -1
- package/dist/components/{p-BrAeYciD.js → p-DIMNEOTW.js} +1 -1
- package/dist/components/{p-DeqALrzV.js → p-DMAScsJF.js} +1 -1
- package/dist/components/{p-DYLBjStF.js → p-DPpPd5GI.js} +1 -1
- package/dist/components/{p-Bg0xIZiR.js → p-DSOc0eIT.js} +1 -1
- package/dist/components/{p-W1ZwImdd.js → p-DXcjIb_a.js} +1 -1
- package/dist/components/{p-DPlEzPKO.js → p-DZcwchEg.js} +1 -1
- package/dist/components/{p-BX-nQAyH.js → p-DgnK50xO.js} +1 -1
- package/dist/components/p-Di5dpXrF.js +1 -0
- package/dist/components/{p-CZQz_mul.js → p-Ds-P2bYH.js} +1 -1
- package/dist/components/{p-meY80XnF.js → p-jzuGPW5o.js} +1 -1
- package/dist/components/{p-DZ8yfhhf.js → p-nxfv7vyD.js} +1 -1
- package/dist/components/p-oGAPPwAL.js +1 -0
- package/dist/components/{p-DEpnJBA3.js → p-yD_3Z3K1.js} +1 -1
- package/dist/components/{p-BcB97x3U.js → p-zd7zXld8.js} +1 -1
- package/dist/esm/index-Dhio9uis.js +2 -2
- package/dist/esm/index.js +2 -2
- package/dist/esm/{kritzel-active-users_45.entry.js → kritzel-active-users_46.entry.js} +128 -84
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{schema.constants-CDQonV1J.js → schema.constants-Cphx5M7a.js} +14 -3
- package/dist/esm/stencil.js +1 -1
- package/dist/stencil/index.esm.js +1 -1
- package/dist/stencil/{p-CDQonV1J.js → p-Cphx5M7a.js} +1 -1
- package/dist/stencil/p-e6d0699a.entry.js +9 -0
- package/dist/stencil/stencil.esm.js +1 -1
- package/dist/types/classes/structures/object-map.structure.d.ts +6 -0
- package/dist/types/components/core/kritzel-editor/kritzel-editor.d.ts +5 -0
- package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +2 -0
- package/dist/types/components/ui/kritzel-current-user/kritzel-current-user.d.ts +0 -3
- package/dist/types/components/ui/kritzel-current-user-dialog/kritzel-current-user-dialog.d.ts +4 -0
- package/dist/types/components/ui/kritzel-loading-overlay/kritzel-loading-overlay.d.ts +11 -0
- package/dist/types/components.d.ts +61 -0
- package/dist/types/constants/version.d.ts +1 -1
- package/dist/types/interfaces/theme.interface.d.ts +7 -0
- package/package.json +1 -1
- package/dist/components/p-COdwK_mi.js +0 -1
- package/dist/components/p-XDNjFYRB.js +0 -1
- package/dist/components/p-X_pyPCe8.js +0 -1
- package/dist/components/p-vLVZEJXX.js +0 -9
- package/dist/stencil/p-3289cc4e.entry.js +0 -9
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as registerInstance, h, H as Host, c as createEvent, g as getElement } from './index-Dhio9uis.js';
|
|
2
|
-
import { c as KritzelPath, e as KritzelLine, R as KritzelColorHelper, T as KritzelDevicesHelper, q as KritzelSelectionTool, n as KritzelTextTool, U as KritzelMouseButton, V as KritzelHTMLHelper, X as DEFAULT_STROKE_SIZES, Y as DEFAULT_COLOR_PALETTE, S as ShapeType, D as DEFAULT_BRUSH_CONFIG, j as KritzelBrushTool, l as KritzelEraserTool, z as DEFAULT_LINE_TOOL_CONFIG, k as KritzelLineTool, o as KritzelShapeTool, y as DEFAULT_TEXT_CONFIG, m as KritzelImageTool, L as KritzelAlignment, B as DEFAULT_ASSET_STORAGE_CONFIG, Z as ObjectHelper, _ as ThemeHelper, E as darkTheme, C as lightTheme, $ as KritzelSelectionGroup, a0 as KritzelSelectionBox, a1 as KritzelIconRegistry, a2 as KritzelKeyboardHelper, a3 as KritzelBaseHandler, s as KritzelWorkspace, f as KritzelGroup, h as KritzelCustomElement, d as KritzelImage, g as KritzelShape, b as KritzelText, M as runMigrations, Q as CURRENT_WORKSPACE_SCHEMA_VERSION, O as WORKSPACE_MIGRATIONS, a4 as KritzelClassHelper, P as CURRENT_APP_STATE_SCHEMA_VERSION, N as APP_STATE_MIGRATIONS, p as KritzelCursorHelper, a5 as imageCompression, t as KritzelAnchorManager, u as KritzelThemeManager, v as KritzelLocalizationManager, w as KritzelLicenseManager, r as KritzelAssetResolver, a6 as KritzelEventHelper, W as WORKSPACE_EXPORT_VERSION } from './schema.constants-
|
|
2
|
+
import { c as KritzelPath, e as KritzelLine, R as KritzelColorHelper, T as KritzelDevicesHelper, q as KritzelSelectionTool, n as KritzelTextTool, U as KritzelMouseButton, V as KritzelHTMLHelper, X as DEFAULT_STROKE_SIZES, Y as DEFAULT_COLOR_PALETTE, S as ShapeType, D as DEFAULT_BRUSH_CONFIG, j as KritzelBrushTool, l as KritzelEraserTool, z as DEFAULT_LINE_TOOL_CONFIG, k as KritzelLineTool, o as KritzelShapeTool, y as DEFAULT_TEXT_CONFIG, m as KritzelImageTool, L as KritzelAlignment, B as DEFAULT_ASSET_STORAGE_CONFIG, Z as ObjectHelper, _ as ThemeHelper, E as darkTheme, C as lightTheme, $ as KritzelSelectionGroup, a0 as KritzelSelectionBox, a1 as KritzelIconRegistry, a2 as KritzelKeyboardHelper, a3 as KritzelBaseHandler, s as KritzelWorkspace, f as KritzelGroup, h as KritzelCustomElement, d as KritzelImage, g as KritzelShape, b as KritzelText, M as runMigrations, Q as CURRENT_WORKSPACE_SCHEMA_VERSION, O as WORKSPACE_MIGRATIONS, a4 as KritzelClassHelper, P as CURRENT_APP_STATE_SCHEMA_VERSION, N as APP_STATE_MIGRATIONS, p as KritzelCursorHelper, a5 as imageCompression, t as KritzelAnchorManager, u as KritzelThemeManager, v as KritzelLocalizationManager, w as KritzelLicenseManager, r as KritzelAssetResolver, a6 as KritzelEventHelper, W as WORKSPACE_EXPORT_VERSION } from './schema.constants-Cphx5M7a.js';
|
|
3
3
|
import * as Y from 'yjs';
|
|
4
4
|
import 'y-indexeddb';
|
|
5
5
|
import 'y-websocket';
|
|
@@ -136,16 +136,16 @@ const KritzelAvatar = class {
|
|
|
136
136
|
height: `${this.size}px`,
|
|
137
137
|
fontSize: `${Math.round(this.size * 0.4)}px`,
|
|
138
138
|
};
|
|
139
|
-
return (h(Host, { key: '
|
|
139
|
+
return (h(Host, { key: '116725d55e4443e80216b3b3251e957d2009b43e', style: containerStyles, class: {
|
|
140
140
|
'has-image': !!showImage,
|
|
141
141
|
'has-initials': !!showInitials,
|
|
142
142
|
'has-default': !!showDefaultIcon,
|
|
143
|
-
}, role: "img", "aria-label": this.getDisplayName() || 'User avatar' }, showImage && (h("img", { key: '
|
|
143
|
+
}, role: "img", "aria-label": this.getDisplayName() || 'User avatar' }, showImage && (h("img", { key: 'd70ad4eb484404b18c13e066e8c10b3c86918ee5', src: imageUrl, alt: "", class: "avatar-image", ref: (el) => {
|
|
144
144
|
if (el) {
|
|
145
145
|
el.referrerPolicy = 'no-referrer';
|
|
146
146
|
el.crossOrigin = 'anonymous';
|
|
147
147
|
}
|
|
148
|
-
}, onError: this.handleImageError })), showInitials && (h("span", { key: '
|
|
148
|
+
}, onError: this.handleImageError })), showInitials && (h("span", { key: '21a9022cffdb69e0c3626e513cb3c036a9d3a16d', class: "avatar-initials", style: { backgroundColor: this.getBackgroundColor() } }, initials)), showDefaultIcon && (h("span", { key: '43e676af007bf254b1921f3efcbc7fff4e204359', class: "avatar-default" }, h("svg", { key: 'a7378795539a902e28ca644a80f1ca00cc9f818a', viewBox: "0 0 24 24", fill: "currentColor" }, h("path", { key: '31548a495a86f033325c98cfcc0ae398b6bb8281', 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" }))))));
|
|
149
149
|
}
|
|
150
150
|
static get watchers() { return {
|
|
151
151
|
"user": [{
|
|
@@ -455,12 +455,12 @@ const KritzelBackToContent = class {
|
|
|
455
455
|
this.backToContent.emit();
|
|
456
456
|
};
|
|
457
457
|
render() {
|
|
458
|
-
return (h(Host, { key: '
|
|
458
|
+
return (h(Host, { key: 'ab9e9297f5f26bcf79ec32e51ee0ff2524ad421f' }, h("button", { key: 'c32536edc9943bc9ad66f4fa727338bb01e148a6', class: { 'back-to-content-button': true, visible: this.visible }, onClick: this.handleClick, "aria-label": this.text }, h("kritzel-icon", { key: 'bd3aa6ffe524ad9093d1e0693574dc2d63c311bd', name: "chevrons-left" }))));
|
|
459
459
|
}
|
|
460
460
|
};
|
|
461
461
|
KritzelBackToContent.style = kritzelBackToContentCss();
|
|
462
462
|
|
|
463
|
-
const kritzelButtonCss = () => `:host{display:inline-block;font-family:sans-serif}button{border:none;background-color:transparent;padding:0;margin:0;font-family:inherit;font-size:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:var(--kritzel-global-pointer-cursor, pointer);display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:var(--kritzel-button-border-radius, 8px);padding:var(--kritzel-button-padding, 12px 20px);font-size:var(--kritzel-button-font-size, 14px);font-weight:var(--kritzel-button-font-weight, 500);transition:background-color 0.15s ease, opacity 0.15s ease;-webkit-tap-highlight-color:transparent}button.primary{background-color:var(--kritzel-button-primary-background-color, #007AFF);color:var(--kritzel-button-primary-color, #ffffff)}button.primary:hover{background-color:var(--kritzel-button-primary-hover-background-color, #006ae6)}button.primary:active{background-color:var(--kritzel-button-primary-active-background-color, #005bbf)}button.secondary{background-color:var(--kritzel-button-secondary-background-color, #f0f0f0);color:var(--kritzel-button-secondary-color, #333333)}button.secondary:hover{background-color:var(--kritzel-button-secondary-hover-background-color, #e0e0e0)}button.secondary:active{background-color:var(--kritzel-button-secondary-active-background-color, #d0d0d0)}button.text{background-color:transparent;color:var(--kritzel-button-text-color, #007AFF)}button.text:hover{background-color:var(--kritzel-button-text-hover-background-color, rgba(0, 122, 255, 0.08))}button.text:active{background-color:var(--kritzel-button-text-active-background-color, rgba(0, 122, 255, 0.15))}button.disabled{opacity:0.4;cursor:not-allowed;pointer-events:none}`;
|
|
463
|
+
const kritzelButtonCss = () => `:host{display:inline-block;font-family:sans-serif}button{border:none;background-color:transparent;padding:0;margin:0;font-family:inherit;font-size:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:var(--kritzel-global-pointer-cursor, pointer);display:inline-flex;width:var(--kritzel-button-width, auto);align-items:center;justify-content:center;gap:6px;border-radius:var(--kritzel-button-border-radius, 8px);padding:var(--kritzel-button-padding, 12px 20px);font-size:var(--kritzel-button-font-size, 14px);font-weight:var(--kritzel-button-font-weight, 500);transition:background-color 0.15s ease, opacity 0.15s ease;-webkit-tap-highlight-color:transparent}button.primary{background-color:var(--kritzel-button-primary-background-color, #007AFF);color:var(--kritzel-button-primary-color, #ffffff)}button.primary:hover{background-color:var(--kritzel-button-primary-hover-background-color, #006ae6)}button.primary:active{background-color:var(--kritzel-button-primary-active-background-color, #005bbf)}button.secondary{background-color:var(--kritzel-button-secondary-background-color, #f0f0f0);color:var(--kritzel-button-secondary-color, #333333)}button.secondary:hover{background-color:var(--kritzel-button-secondary-hover-background-color, #e0e0e0)}button.secondary:active{background-color:var(--kritzel-button-secondary-active-background-color, #d0d0d0)}button.text{background-color:transparent;color:var(--kritzel-button-text-color, #007AFF)}button.text:hover{background-color:var(--kritzel-button-text-hover-background-color, rgba(0, 122, 255, 0.08))}button.text:active{background-color:var(--kritzel-button-text-active-background-color, rgba(0, 122, 255, 0.15))}button.disabled{opacity:0.4;cursor:not-allowed;pointer-events:none}`;
|
|
464
464
|
|
|
465
465
|
const KritzelButton = class {
|
|
466
466
|
constructor(hostRef) {
|
|
@@ -482,11 +482,11 @@ const KritzelButton = class {
|
|
|
482
482
|
this.buttonClick.emit();
|
|
483
483
|
};
|
|
484
484
|
render() {
|
|
485
|
-
return (h(Host, { key: '
|
|
485
|
+
return (h(Host, { key: 'b9de2a1261ca0cb491f6980db6a596c48fa45b3a' }, h("button", { key: 'a9507ea0f6a1d9fcb19a7df16bea54cc0ead24f9', type: this.type, class: {
|
|
486
486
|
'kritzel-button': true,
|
|
487
487
|
[this.variant]: true,
|
|
488
488
|
'disabled': this.disabled,
|
|
489
|
-
}, disabled: this.disabled, onClick: this.handleClick }, h("slot", { key: '
|
|
489
|
+
}, disabled: this.disabled, onClick: this.handleClick }, h("slot", { key: '8449a26d4f9fe0226c6150a6639c522486b59780' }))));
|
|
490
490
|
}
|
|
491
491
|
};
|
|
492
492
|
KritzelButton.style = kritzelButtonCss();
|
|
@@ -534,13 +534,13 @@ const KritzelColorComponent = class {
|
|
|
534
534
|
render() {
|
|
535
535
|
const resolvedColor = this.resolveColor();
|
|
536
536
|
const isColorVeryLight = this.isLightColor(resolvedColor);
|
|
537
|
-
return (h(Host, { key: '
|
|
537
|
+
return (h(Host, { key: 'e39c77c55942b9c615e404efabf4939b2cf05a34' }, h("div", { key: 'ac343295592ea80ca7d3da61ca1244dd1aaa50db', class: "checkerboard-bg", style: {
|
|
538
538
|
width: `${this.size}px`,
|
|
539
539
|
height: `${this.size}px`,
|
|
540
540
|
borderRadius: '50%',
|
|
541
541
|
display: 'inline-block',
|
|
542
542
|
position: 'relative',
|
|
543
|
-
} }, h("div", { key: '
|
|
543
|
+
} }, h("div", { key: '4c87934b3febd4c41874cd290d86a9a9a557e3e5', class: {
|
|
544
544
|
'color-circle': true,
|
|
545
545
|
'white': isColorVeryLight,
|
|
546
546
|
}, style: {
|
|
@@ -596,7 +596,7 @@ const KritzelColorPalette = class {
|
|
|
596
596
|
render() {
|
|
597
597
|
const displayedColors = this.isExpanded ? this.colors : this.colors.slice(0, 6);
|
|
598
598
|
const expandedHeight = this.isExpanded ? this.calculateHeight() : '32px';
|
|
599
|
-
return (h(Host, { key: '
|
|
599
|
+
return (h(Host, { key: '16aa405a43b3943473e577c5a6ab86adf4ae1ba9' }, h("div", { key: 'f65bb286889700dc1f0e8d84ff59721071b7b73a', class: {
|
|
600
600
|
'color-grid': true,
|
|
601
601
|
'expanded': this.isExpanded,
|
|
602
602
|
}, style: {
|
|
@@ -1164,13 +1164,13 @@ const KritzelControls = class {
|
|
|
1164
1164
|
// Separate tool controls from config control
|
|
1165
1165
|
const toolControls = this.internalControls.filter(c => c.type === 'tool' || c.type === 'separator');
|
|
1166
1166
|
const configControl = this.internalControls.find(c => c.type === 'config' && c.name === this.firstConfig?.name);
|
|
1167
|
-
return (h(Host, { key: '
|
|
1167
|
+
return (h(Host, { key: 'f66fd3057bd88d31d7d585f2c286feb7e33c3611', style: { display: this.visible ? '' : 'none' }, class: {
|
|
1168
1168
|
mobile: this.isTouchDevice,
|
|
1169
|
-
} }, this.isUtilityPanelVisible && (h("kritzel-utility-panel", { key: '
|
|
1169
|
+
} }, this.isUtilityPanelVisible && (h("kritzel-utility-panel", { key: '4841cd070407422f0081dd528566d3943d2db7cd', style: {
|
|
1170
1170
|
position: 'absolute',
|
|
1171
1171
|
bottom: '56px',
|
|
1172
1172
|
left: '12px',
|
|
1173
|
-
}, undoState: this.undoState, terms: this.terms, onUndo: () => this.kritzelEngine?.undo(), onRedo: () => this.kritzelEngine?.redo(), onDelete: () => this.kritzelEngine?.delete() })), h("div", { key: '
|
|
1173
|
+
}, undoState: this.undoState, terms: this.terms, onUndo: () => this.kritzelEngine?.undo(), onRedo: () => this.kritzelEngine?.redo(), onDelete: () => this.kritzelEngine?.delete() })), h("div", { key: '54fb1da3f8b070c4c75e27930c95ca06f46f48f1', class: "kritzel-controls" }, h("div", { key: '9ce27b621a8fb668716f1eb15f3b01302e476d86', class: { 'scroll-indicator-left': true, 'visible': this.canScrollLeft } }), h("div", { key: 'eb9f499b5139c481b5748b09ecf21cd414918a11', class: "kritzel-tools-scroll", ref: el => (this.toolsScrollRef = el), onScroll: this.handleToolsScroll }, toolControls.map(control => {
|
|
1174
1174
|
// Check if this control has sub-options (split-button)
|
|
1175
1175
|
if (control.subOptions?.length) {
|
|
1176
1176
|
const selectedSubOption = this.getSelectedSubOption(control);
|
|
@@ -1200,10 +1200,10 @@ const KritzelControls = class {
|
|
|
1200
1200
|
'kritzel-control': true,
|
|
1201
1201
|
'selected': this.activeControl?.name === control?.name,
|
|
1202
1202
|
}, key: control.name, "data-testid": `tool-${control.name}`, onClick: _event => this.handleControlClick?.(control), "aria-label": control.name.charAt(0).toUpperCase() + control.name.slice(1) }, h("kritzel-icon", { name: control.icon })));
|
|
1203
|
-
})), h("div", { key: '
|
|
1203
|
+
})), h("div", { key: 'c990abf4ff2970e6519c605135f3fbded691e91a', class: { 'scroll-indicator-right': true, 'visible': this.canScrollRight && !(configControl && this.activeControl && hasConfigUI) } }), configControl && this.activeControl && (h("div", { class: {
|
|
1204
1204
|
'kritzel-config-container': true,
|
|
1205
1205
|
'visible': hasConfigUI,
|
|
1206
|
-
}, key: configControl.name }, h("div", { key: '
|
|
1206
|
+
}, key: configControl.name }, h("div", { key: '1c163b818eed3a76bda9e802b083d2bfe8431c87', class: { 'config-gradient-left': true, 'visible': this.needsScrolling } }), h("kritzel-tooltip", { key: 'f7252d9aa17bdde580ca31cd558ba93d99822937', anchorElement: this.host.shadowRoot?.querySelector('.kritzel-config-container'), triggerElement: this.configTriggerRef }, h("kritzel-tool-config", { key: 'a15a873d8740d5c45a657bb4677a514fe9e183de', 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%' } })), h("div", { key: 'ffbf1e35387ee732c6877f8425dbe07234d8233f', tabIndex: hasConfigUI ? 0 : -1, class: "kritzel-config", "data-testid": "tool-config", ref: el => {
|
|
1207
1207
|
if (el)
|
|
1208
1208
|
this.configTriggerRef = el;
|
|
1209
1209
|
}, onKeyDown: event => {
|
|
@@ -1212,7 +1212,7 @@ const KritzelControls = class {
|
|
|
1212
1212
|
}
|
|
1213
1213
|
}, style: {
|
|
1214
1214
|
cursor: 'pointer',
|
|
1215
|
-
} }, this.displayValues && (h("div", { key: '
|
|
1215
|
+
} }, this.displayValues && (h("div", { key: 'eb272119da9354eb069231c3d29a196c5b0e4aa2', class: "color-container" }, h("kritzel-color", { key: '465b3af943d740b83bd260ee493840edd235a9af', value: this.displayValues.color, theme: this.theme, size: 18, style: {
|
|
1216
1216
|
borderRadius: '50%',
|
|
1217
1217
|
border: 'none',
|
|
1218
1218
|
} })))))))));
|
|
@@ -1235,7 +1235,6 @@ const KritzelCurrentUser = class {
|
|
|
1235
1235
|
constructor(hostRef) {
|
|
1236
1236
|
registerInstance(this, hostRef);
|
|
1237
1237
|
}
|
|
1238
|
-
get host() { return getElement(this); }
|
|
1239
1238
|
/**
|
|
1240
1239
|
* The current user to display
|
|
1241
1240
|
*/
|
|
@@ -1246,28 +1245,26 @@ const KritzelCurrentUser = class {
|
|
|
1246
1245
|
avatarSize = 40;
|
|
1247
1246
|
/** Resolved localized strings keyed by term key, supplied by the editor. */
|
|
1248
1247
|
terms = {};
|
|
1249
|
-
dialogRef;
|
|
1250
|
-
handleAvatarClick = (event) => {
|
|
1251
|
-
event.stopPropagation();
|
|
1252
|
-
this.dialogRef?.open();
|
|
1253
|
-
};
|
|
1254
1248
|
render() {
|
|
1255
|
-
return (h(Host, { key: '
|
|
1249
|
+
return (h(Host, { key: 'e9746bbb98dbdae8f73ac7129bc1eb772746c576' }, h("kritzel-avatar", { key: '04f493ba649484cd95607c54b77e27134baa3122', user: this.user, size: this.avatarSize })));
|
|
1256
1250
|
}
|
|
1257
1251
|
};
|
|
1258
1252
|
KritzelCurrentUser.style = kritzelCurrentUserCss();
|
|
1259
1253
|
|
|
1260
|
-
const kritzelCurrentUserDialogCss = () => `:host{display:contents}kritzel-dialog{--kritzel-dialog-width-small:380px}.user-info{display:flex;flex-direction:column;align-items:center;gap:8px;padding:8px 0}.user-name{font-size:18px;font-weight:600;color:var(--kritzel-current-user-dialog-name-color, #333333);text-align:center;margin-top:8px}.user-email{font-size:14px;color:var(--kritzel-current-user-dialog-email-color, #666666);text-align:center}`;
|
|
1254
|
+
const kritzelCurrentUserDialogCss = () => `:host{display:contents}kritzel-dialog{--kritzel-dialog-width-small:380px}.user-info{display:flex;flex-direction:column;align-items:center;gap:8px;padding:8px 0}.user-name{font-size:18px;font-weight:600;color:var(--kritzel-current-user-dialog-name-color, #333333);text-align:center;margin-top:8px}.user-email{font-size:14px;color:var(--kritzel-current-user-dialog-email-color, #666666);text-align:center}.logout-button{margin-top:16px;width:100%;--kritzel-button-width:100%;--kritzel-button-primary-background-color:var(--kritzel-current-user-dialog-logout-button-background-color, #007AFF);--kritzel-button-primary-hover-background-color:var(--kritzel-current-user-dialog-logout-button-hover-background-color, #006ae6);--kritzel-button-primary-active-background-color:var(--kritzel-current-user-dialog-logout-button-active-background-color, #005bbf);--kritzel-button-primary-color:var(--kritzel-current-user-dialog-logout-button-color, #ffffff)}`;
|
|
1261
1255
|
|
|
1262
1256
|
const KritzelCurrentUserDialog = class {
|
|
1263
1257
|
constructor(hostRef) {
|
|
1264
1258
|
registerInstance(this, hostRef);
|
|
1259
|
+
this.logoutRequest = createEvent(this, "logoutRequest");
|
|
1265
1260
|
}
|
|
1266
1261
|
get host() { return getElement(this); }
|
|
1267
1262
|
user;
|
|
1268
1263
|
/** Resolved localized strings keyed by term key, supplied by the editor. */
|
|
1269
1264
|
terms = {};
|
|
1270
1265
|
isDialogOpen = false;
|
|
1266
|
+
/** Emitted when the user clicks the logout action. */
|
|
1267
|
+
logoutRequest;
|
|
1271
1268
|
async open() {
|
|
1272
1269
|
this.isDialogOpen = true;
|
|
1273
1270
|
}
|
|
@@ -1277,6 +1274,10 @@ const KritzelCurrentUserDialog = class {
|
|
|
1277
1274
|
closeDialog = () => {
|
|
1278
1275
|
this.isDialogOpen = false;
|
|
1279
1276
|
};
|
|
1277
|
+
handleLogout = () => {
|
|
1278
|
+
this.logoutRequest.emit();
|
|
1279
|
+
this.closeDialog();
|
|
1280
|
+
};
|
|
1280
1281
|
getDisplayName() {
|
|
1281
1282
|
if (!this.user)
|
|
1282
1283
|
return undefined;
|
|
@@ -1286,7 +1287,7 @@ const KritzelCurrentUserDialog = class {
|
|
|
1286
1287
|
}
|
|
1287
1288
|
render() {
|
|
1288
1289
|
const displayName = this.getDisplayName();
|
|
1289
|
-
return (h(Host, { key: '
|
|
1290
|
+
return (h(Host, { key: '6eb573d072c5c0b47de4a88538a507adf49bd9b4' }, h("kritzel-dialog", { key: '9e85ed790f146ac408023759b1fe87e60bc80282', dialogTitle: this.terms['currentUser.dialogTitle'] ?? 'Account', isOpen: this.isDialogOpen, onDialogClose: this.closeDialog, size: "small", contained: true }, h("div", { key: '33a55e6023ad6f63514085d57b7278d4733bd411', class: "user-info" }, h("kritzel-avatar", { key: '4580f83fc6c5bcf8a1ffcd0d635da233817233d3', user: this.user, size: 80 }), displayName && h("div", { key: '5e2b98005e9b4ab7cc3db2dc81f4180e8ba3abea', class: "user-name" }, displayName), this.user?.email && h("div", { key: '1041266c4a4525d2f08c60d59bec5a518de2184b', class: "user-email" }, this.user.email), h("kritzel-button", { key: 'b695c05d24ab9d4d252a45ec496d75d79583ed4d', class: "logout-button", variant: "primary", onButtonClick: this.handleLogout }, this.terms['menu.logout'] ?? 'Logout')))));
|
|
1290
1291
|
}
|
|
1291
1292
|
};
|
|
1292
1293
|
KritzelCurrentUserDialog.style = kritzelCurrentUserDialogCss();
|
|
@@ -2110,7 +2111,7 @@ const DEFAULT_SYNC_CONFIG = {
|
|
|
2110
2111
|
providers: [],
|
|
2111
2112
|
};
|
|
2112
2113
|
|
|
2113
|
-
const kritzelEditorCss = () => `kritzel-editor{display:flex;margin:0;position:relative;container-type:inline-size;overflow:hidden;width:100%;height:100%;align-items:center;justify-content:center;touch-action:manipulation;user-select:none;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:start;line-height:normal}kritzel-controls{position:absolute;left:0;right:0;margin-inline:auto;width:max-content;max-width:calc(100% - 16px);bottom:var(--kritzel-editor-controls-bottom, 14px);transition:transform var(--kritzel-editor-controls-transition-duration, 0.1s) var(--kritzel-editor-controls-transition, ease-in-out)}kritzel-controls.keyboard-open{transform:var(--kritzel-editor-controls-transform, translateY(300%))}.top-left-buttons{position:absolute;top:var(--kritzel-editor-top-left-buttons-top, 14px);left:var(--kritzel-editor-top-left-buttons-left, 14px);display:flex;align-items:flex-start;gap:8px}.top-center-notification-layer{position:absolute;top:var(--kritzel-editor-top-center-notification-top, 14px);left:0;right:0;z-index:var(--kritzel-editor-top-center-notification-z-index, 10001);display:flex;justify-content:center;pointer-events:none}.top-center-notification-container{width:min(90vw, 420px);pointer-events:auto;animation:kritzel-notification-slide-in var(--kritzel-editor-notification-animation-duration, 220ms) var(--kritzel-editor-notification-animation-easing, cubic-bezier(0.22, 1, 0.36, 1))}.top-center-notification-container.is-dismissing{animation:kritzel-notification-fade-out var(--kritzel-editor-notification-dismiss-animation-duration, 180ms) var(--kritzel-editor-notification-dismiss-animation-easing, ease-in) forwards}@keyframes kritzel-notification-slide-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes kritzel-notification-fade-out{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}@media (prefers-reduced-motion: reduce){.top-center-notification-container{animation:none}}.top-right-buttons{position:absolute;top:var(--kritzel-editor-top-right-buttons-top, 14px);right:var(--kritzel-editor-top-right-buttons-right, 14px);display:flex;align-items:center;gap:8px}.bottom-left-buttons{position:absolute;left:var(--kritzel-editor-top-left-buttons-left, 14px);bottom:var(--kritzel-editor-controls-bottom, 14px);display:flex;align-items:flex-end}@container (max-width: 767px){.bottom-left-buttons{display:none}}.top-right-button{display:flex;align-items:center;justify-content:center;width:50px;height:50px;padding:0;border:var(--kritzel-split-button-border, 1px solid #ebebeb);border-radius:var(--kritzel-split-button-border-radius, 12px);background-color:var(--kritzel-split-button-background-color, #ffffff);cursor:var(--kritzel-global-pointer-cursor, pointer);box-shadow:var(--kritzel-split-button-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));transition:background-color 150ms ease;-webkit-tap-highlight-color:transparent}.top-right-button:hover{background-color:#f5f5f5}.top-right-button:active{background-color:#ebebeb}`;
|
|
2114
|
+
const kritzelEditorCss = () => `kritzel-editor{display:flex;margin:0;position:relative;container-type:inline-size;overflow:hidden;width:100%;height:100%;align-items:center;justify-content:center;touch-action:manipulation;user-select:none;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:start;line-height:normal}.editor-content{position:absolute;inset:0}kritzel-controls{position:absolute;left:0;right:0;margin-inline:auto;width:max-content;max-width:calc(100% - 16px);bottom:var(--kritzel-editor-controls-bottom, 14px);transition:transform var(--kritzel-editor-controls-transition-duration, 0.1s) var(--kritzel-editor-controls-transition, ease-in-out)}kritzel-controls.keyboard-open{transform:var(--kritzel-editor-controls-transform, translateY(300%))}.top-left-buttons{position:absolute;top:var(--kritzel-editor-top-left-buttons-top, 14px);left:var(--kritzel-editor-top-left-buttons-left, 14px);display:flex;align-items:flex-start;gap:8px}.top-center-notification-layer{position:absolute;top:var(--kritzel-editor-top-center-notification-top, 14px);left:0;right:0;z-index:var(--kritzel-editor-top-center-notification-z-index, 10001);display:flex;justify-content:center;pointer-events:none}.top-center-notification-container{width:min(90vw, 420px);pointer-events:auto;animation:kritzel-notification-slide-in var(--kritzel-editor-notification-animation-duration, 220ms) var(--kritzel-editor-notification-animation-easing, cubic-bezier(0.22, 1, 0.36, 1))}.top-center-notification-container.is-dismissing{animation:kritzel-notification-fade-out var(--kritzel-editor-notification-dismiss-animation-duration, 180ms) var(--kritzel-editor-notification-dismiss-animation-easing, ease-in) forwards}@keyframes kritzel-notification-slide-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes kritzel-notification-fade-out{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}@media (prefers-reduced-motion: reduce){.top-center-notification-container{animation:none}}.top-right-buttons{position:absolute;top:var(--kritzel-editor-top-right-buttons-top, 14px);right:var(--kritzel-editor-top-right-buttons-right, 14px);display:flex;align-items:center;gap:8px}.bottom-left-buttons{position:absolute;left:var(--kritzel-editor-top-left-buttons-left, 14px);bottom:var(--kritzel-editor-controls-bottom, 14px);display:flex;align-items:flex-end}@container (max-width: 767px){.bottom-left-buttons{display:none}}.top-right-button{display:flex;align-items:center;justify-content:center;width:50px;height:50px;padding:0;border:var(--kritzel-split-button-border, 1px solid #ebebeb);border-radius:var(--kritzel-split-button-border-radius, 12px);background-color:var(--kritzel-split-button-background-color, #ffffff);cursor:var(--kritzel-global-pointer-cursor, pointer);box-shadow:var(--kritzel-split-button-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));transition:background-color 150ms ease;-webkit-tap-highlight-color:transparent}.top-right-button:hover{background-color:#f5f5f5}.top-right-button:active{background-color:#ebebeb}`;
|
|
2114
2115
|
|
|
2115
2116
|
const KritzelEditor = class {
|
|
2116
2117
|
constructor(hostRef) {
|
|
@@ -2341,6 +2342,8 @@ const KritzelEditor = class {
|
|
|
2341
2342
|
isEditorVisible = false;
|
|
2342
2343
|
activeNotification;
|
|
2343
2344
|
isNotificationDismissing = false;
|
|
2345
|
+
/** Combined loading state reported by the engine (external `isLoading` prop or internal workspace loading). Starts true so the overlay is shown until the engine reports otherwise. */
|
|
2346
|
+
isEngineLoading = true;
|
|
2344
2347
|
notificationDismissTimeout;
|
|
2345
2348
|
notificationDismissAnimationTimeout;
|
|
2346
2349
|
notificationDisplayDurationMs = 5000;
|
|
@@ -2646,6 +2649,7 @@ const KritzelEditor = class {
|
|
|
2646
2649
|
splitButtonRef;
|
|
2647
2650
|
shareDialogRef;
|
|
2648
2651
|
loginDialogRef;
|
|
2652
|
+
currentUserDialogRef;
|
|
2649
2653
|
componentWillLoad() {
|
|
2650
2654
|
this.loadSettingsFromStorage();
|
|
2651
2655
|
this.applyTheme();
|
|
@@ -2766,6 +2770,10 @@ const KritzelEditor = class {
|
|
|
2766
2770
|
event.stopPropagation();
|
|
2767
2771
|
this.awarenessChange.emit(event.detail);
|
|
2768
2772
|
}
|
|
2773
|
+
handleLoadingChange(event) {
|
|
2774
|
+
event.stopPropagation();
|
|
2775
|
+
this.isEngineLoading = event.detail;
|
|
2776
|
+
}
|
|
2769
2777
|
handleNotificationsChange(event) {
|
|
2770
2778
|
event.stopPropagation();
|
|
2771
2779
|
this.clearNotificationDismissAnimationTimer();
|
|
@@ -2870,15 +2878,7 @@ const KritzelEditor = class {
|
|
|
2870
2878
|
label: this.resolvedTerms['menu.settings'] ?? 'Settings',
|
|
2871
2879
|
icon: 'settings',
|
|
2872
2880
|
action: () => this.settingsRef.open(),
|
|
2873
|
-
}
|
|
2874
|
-
{
|
|
2875
|
-
id: 'logout',
|
|
2876
|
-
label: this.resolvedTerms['menu.logout'] ?? 'Logout',
|
|
2877
|
-
icon: 'log-out',
|
|
2878
|
-
color: '#ff3b30',
|
|
2879
|
-
isVisible: this.isLoggedIn,
|
|
2880
|
-
action: () => this.logout.emit(),
|
|
2881
|
-
},
|
|
2881
|
+
}
|
|
2882
2882
|
];
|
|
2883
2883
|
}
|
|
2884
2884
|
handleToggleIsPublic = async (event) => {
|
|
@@ -2904,6 +2904,9 @@ const KritzelEditor = class {
|
|
|
2904
2904
|
handleProviderLogin = (event) => {
|
|
2905
2905
|
this.login.emit(event.detail);
|
|
2906
2906
|
};
|
|
2907
|
+
handleCurrentUserLogout = () => {
|
|
2908
|
+
this.logout.emit();
|
|
2909
|
+
};
|
|
2907
2910
|
get isLoggedIn() {
|
|
2908
2911
|
return !!this.user && !this.user.isGuest;
|
|
2909
2912
|
}
|
|
@@ -3055,35 +3058,40 @@ const KritzelEditor = class {
|
|
|
3055
3058
|
const isLoggedIn = this.isLoggedIn;
|
|
3056
3059
|
const shouldShowCurrentUser = isLoggedIn;
|
|
3057
3060
|
const shouldShowLoginButton = this.isReady && !!this.loginConfig && !isLoggedIn;
|
|
3058
|
-
return (h(Host, { key: '
|
|
3061
|
+
return (h(Host, { key: 'a397bb3a5ab632193a0d6af07054d9235c8af7ba' }, h("kritzel-loading-overlay", { key: '8ac3ec51ec15a7ce3dfac4e1afb7e2d272d6fee2', visible: this.isLoading || !this.isEditorVisible || this.isEngineLoading, text: this.resolvedTerms['engine.loading'] ?? 'Loading...' }), h("div", { key: '0ac709cf7d3e9889f99675f20c1f2ac5bcca55da', class: "editor-content", style: {
|
|
3059
3062
|
opacity: this.isEditorVisible ? '1' : '0',
|
|
3060
3063
|
visibility: this.isEditorVisible ? 'visible' : 'hidden',
|
|
3061
3064
|
transition: 'opacity 0.2s ease-in-out, visibility 0.2s ease-in-out',
|
|
3062
|
-
} }, h("div", { key: '
|
|
3065
|
+
} }, h("div", { key: '019cbb191155260c635cb13a4d94eebbb5913045', class: "top-left-buttons" }, h("kritzel-workspace-manager", { key: 'b9a60281c57f90dedebd2a01ccc27a689a8f2a09', visible: this.isWorkspaceManagerVisible, workspaces: this.workspaces, activeWorkspace: this.activeWorkspace, terms: this.resolvedTerms, onWorkspaceChange: event => (this.activeWorkspace = event.detail), onIsWorkspaceManagerReady: () => (this.isWorkspaceManagerReady = true) }), h("kritzel-back-to-content", { key: 'b0b625e1cd07f29d9622b03e49cf75c9324b2d38', visible: this.isBackToContentButtonVisible, text: this.resolvedTerms['backToContent.label'] ?? 'Back to content', onBackToContent: () => this.backToContent() })), this.activeNotification && (h("div", { key: '80868e85dc8a0810750ff5dd04c59057d81fb823', class: "top-center-notification-layer", role: "presentation" }, h("div", { key: '8cfe3895cb8dcd137950daff0e677d397c20817b', class: { 'top-center-notification-container': true, 'is-dismissing': this.isNotificationDismissing }, role: "presentation" }, h("kritzel-notification-card", { key: 'f50a8ff5fba9ee8df8bb0fa5c2b3198ad30fd8cd', notification: this.activeNotification, locale: this.locale, onDismiss: this.dismissNotification, onHoverChange: event => this.handleNotificationHoverChange(event) })))), h("kritzel-engine", { key: '7b31643384b19dfd84b6093a4ccb719dd04b7669', ref: el => {
|
|
3063
3066
|
if (el) {
|
|
3064
3067
|
this.engineRef = el;
|
|
3065
3068
|
}
|
|
3066
|
-
}, 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) }), h("kritzel-controls", { key: '
|
|
3069
|
+
}, 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), onLoadingChange: event => this.handleLoadingChange(event) }), h("kritzel-controls", { key: '14ee52a07381785c4b8ce1f2e1b7304d44e0e128', visible: this.isControlsVisible, class: { 'keyboard-open': this.isVirtualKeyboardOpen }, ref: el => {
|
|
3067
3070
|
if (el) {
|
|
3068
3071
|
this.controlsRef = el;
|
|
3069
3072
|
}
|
|
3070
|
-
}, controls: this.controls, isUtilityPanelVisible: this.isUtilityPanelVisible, undoState: this.undoState ?? undefined, theme: this.theme, terms: this.resolvedTerms, onIsControlsReady: () => (this.isControlsReady = true) }), h("div", { key: '
|
|
3073
|
+
}, controls: this.controls, isUtilityPanelVisible: this.isUtilityPanelVisible, undoState: this.undoState ?? undefined, theme: this.theme, terms: this.resolvedTerms, onIsControlsReady: () => (this.isControlsReady = true) }), h("div", { key: 'c9ddf5fe7d74f32aff8182ce9dd70931f35a7274', class: "bottom-left-buttons" }, h("kritzel-zoom-panel", { key: '3ede1bacaa3ff6876429347c8edc20939b1ec59e', visible: this.isZoomPanelVisible, disabled: !this.isZoomingEnabled, zoomPercent: this.currentZoomPercent, terms: this.resolvedTerms, onZoomIn: () => this.zoomIn(), onZoomOut: () => this.zoomOut() })), h("div", { key: 'af1f5f33065d5693e1c363f6e0d49d43cf839f88', class: "top-right-buttons" }, h("kritzel-settings", { key: 'f281c4b2c47d0fa15e947c2bd9e6e34f6ab064cf', ref: el => {
|
|
3071
3074
|
if (el) {
|
|
3072
3075
|
this.settingsRef = el;
|
|
3073
3076
|
}
|
|
3074
|
-
}, 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) }), h("kritzel-export", { key: '
|
|
3077
|
+
}, 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) }), h("kritzel-export", { key: 'aa9f4d755cd429e287bd9dc513f059006e47c037', ref: el => {
|
|
3075
3078
|
if (el) {
|
|
3076
3079
|
this.exportRef = el;
|
|
3077
3080
|
}
|
|
3078
|
-
}, workspaceName: this.activeWorkspace?.name || 'workspace', terms: this.resolvedTerms, onExportPng: () => this.engineRef.exportViewportAsPng(), onExportSvg: () => this.engineRef.exportViewportAsSvg(), onExportJson: event => this.engineRef.downloadAsJson(event.detail) }), h("kritzel-active-users", { key: '
|
|
3081
|
+
}, workspaceName: this.activeWorkspace?.name || 'workspace', terms: this.resolvedTerms, onExportPng: () => this.engineRef.exportViewportAsPng(), onExportSvg: () => this.engineRef.exportViewportAsSvg(), onExportJson: event => this.engineRef.downloadAsJson(event.detail) }), h("kritzel-active-users", { key: 'e7f019162bf7fa84c591e78c9255ed54d49d624f', users: this.activeUsers }), shouldShowCurrentUser && h("kritzel-current-user", { key: '5b51e312ca1d94717c8eae781435a1c253dfecc3', user: this.user, terms: this.resolvedTerms, onClick: () => this.currentUserDialogRef?.open() }), shouldShowCurrentUser && (h("kritzel-current-user-dialog", { key: '328297225ea30570baa1aeec8dffda3e5fb90f6e', ref: el => {
|
|
3082
|
+
if (el) {
|
|
3083
|
+
this.currentUserDialogRef = el;
|
|
3084
|
+
this.currentUserDialogRef.addEventListener('logoutRequest', this.handleCurrentUserLogout);
|
|
3085
|
+
}
|
|
3086
|
+
}, user: this.user, terms: this.resolvedTerms })), shouldShowLoginButton && (h("kritzel-button", { key: '719da0f8c343b0e3be80b37318bb27e102ea0f1e', onButtonClick: () => this.loginDialogRef?.open() }, this.resolvedTerms['login.dialogTitle'] ?? 'Sign in')), h("kritzel-more-menu", { key: 'c3d0f82f8e21b53b966fcc99c598051b6e294b6a', items: this.moreMenuItems, visible: this.isMoreMenuVisible, terms: this.resolvedTerms }), h("kritzel-share-dialog", { key: '49a929e16684131fe4e0c7cc9d5f5ad769b6785c', ref: el => {
|
|
3079
3087
|
if (el) {
|
|
3080
3088
|
this.shareDialogRef = el;
|
|
3081
3089
|
}
|
|
3082
|
-
}, isPublic: this.currentIsPublic, workspaceId: this.activeWorkspace?.id, terms: this.resolvedTerms, onToggleIsPublic: this.handleToggleIsPublic }), this.loginConfig && (h("kritzel-login-dialog", { key: '
|
|
3090
|
+
}, isPublic: this.currentIsPublic, workspaceId: this.activeWorkspace?.id, terms: this.resolvedTerms, onToggleIsPublic: this.handleToggleIsPublic }), this.loginConfig && (h("kritzel-login-dialog", { key: '113bd2574096d3e64ff36b2b8d152b28ff4ba8f7', ref: el => {
|
|
3083
3091
|
if (el) {
|
|
3084
3092
|
this.loginDialogRef = el;
|
|
3085
3093
|
}
|
|
3086
|
-
}, providers: this.loginConfig.providers, dialogTitle: this.loginConfig.title ?? this.resolvedTerms['login.dialogTitle'] ?? 'Sign in', subtitle: this.loginConfig.subtitle, onProviderLogin: this.handleProviderLogin })))));
|
|
3094
|
+
}, providers: this.loginConfig.providers, dialogTitle: this.loginConfig.title ?? this.resolvedTerms['login.dialogTitle'] ?? 'Sign in', subtitle: this.loginConfig.subtitle, onProviderLogin: this.handleProviderLogin }))))));
|
|
3087
3095
|
}
|
|
3088
3096
|
static get watchers() { return {
|
|
3089
3097
|
"isEngineReady": [{
|
|
@@ -22083,6 +22091,7 @@ class KritzelObjectMap {
|
|
|
22083
22091
|
_temporaryItemsCount = 0;
|
|
22084
22092
|
_idMap = new Map();
|
|
22085
22093
|
_awareness = null;
|
|
22094
|
+
_networkSyncPromise = null;
|
|
22086
22095
|
// Store observer/listener references for cleanup
|
|
22087
22096
|
_objectsObserver = null;
|
|
22088
22097
|
_stackItemAddedHandler = null;
|
|
@@ -22112,6 +22121,13 @@ class KritzelObjectMap {
|
|
|
22112
22121
|
get isReady() {
|
|
22113
22122
|
return this._isReady;
|
|
22114
22123
|
}
|
|
22124
|
+
/**
|
|
22125
|
+
* Promise that settles when network providers finish connecting.
|
|
22126
|
+
* Resolves immediately if no network providers. Awaited by the loading overlay.
|
|
22127
|
+
*/
|
|
22128
|
+
whenNetworkSynced() {
|
|
22129
|
+
return this._networkSyncPromise ?? Promise.resolve();
|
|
22130
|
+
}
|
|
22115
22131
|
/**
|
|
22116
22132
|
* Returns the Yjs Awareness instance, if a network provider is available.
|
|
22117
22133
|
*/
|
|
@@ -22401,13 +22417,13 @@ class KritzelObjectMap {
|
|
|
22401
22417
|
if (showSyncProviderInfo && networkProviders.length > 0) {
|
|
22402
22418
|
console.info(`[Kritzel] Workspace network providers connecting in background: ${networkProviders.length}`);
|
|
22403
22419
|
}
|
|
22404
|
-
|
|
22405
|
-
|
|
22406
|
-
|
|
22407
|
-
|
|
22408
|
-
|
|
22409
|
-
|
|
22410
|
-
|
|
22420
|
+
const networkConnectPromises = networkProviders.map(provider => provider.connect().catch(err => {
|
|
22421
|
+
if (showSyncProviderInfo) {
|
|
22422
|
+
console.error(`[Kritzel] Network sync provider "${provider.constructor.name}" failed to connect:`, err);
|
|
22423
|
+
}
|
|
22424
|
+
}));
|
|
22425
|
+
// Network sync awaited by loading overlay to show remote workspace hydration
|
|
22426
|
+
this._networkSyncPromise = networkConnectPromises.length > 0 ? Promise.allSettled(networkConnectPromises).then(() => undefined) : null;
|
|
22411
22427
|
this._isReady = true;
|
|
22412
22428
|
// Find the first provider that exposes awareness (network providers)
|
|
22413
22429
|
// Awareness is available immediately after provider construction, before connect() resolves
|
|
@@ -27401,7 +27417,7 @@ class KritzelWheelHelper {
|
|
|
27401
27417
|
}
|
|
27402
27418
|
}
|
|
27403
27419
|
|
|
27404
|
-
const kritzelEngineCss = () => `:host{display:block;position:relative;height:100%;width:100%;overflow:hidden;background-color:var(--kritzel-engine-background-color, #ffffff)}:host,:host *{touch-action:none;user-select:none}.ProseMirror{outline:none}p,h1,h2,h3,h4,h5,h6,blockquote,pre{margin:0;padding:0}.
|
|
27420
|
+
const kritzelEngineCss = () => `:host{display:block;position:relative;height:100%;width:100%;overflow:hidden;background-color:var(--kritzel-engine-background-color, #ffffff)}:host,:host *{touch-action:none;user-select:none}.ProseMirror{outline:none}p,h1,h2,h3,h4,h5,h6,blockquote,pre{margin:0;padding:0}.debug-panel{position:absolute;pointer-events:none;top:0;right:0}.origin{position:relative;top:0;left:0;height:0;width:0;pointer-events:none;-webkit-transform-origin:top left;-moz-transform-origin:top left;transform-origin:top left;overflow:visible}.object{overflow:visible}.PlaygroundEditorTheme__quote{margin:0;margin-left:20px;margin-bottom:10px;font-size:15px;color:rgb(101, 103, 107);border-left-color:rgb(206, 208, 212);border-left-width:4px;border-left-style:solid;padding-left:16px}`;
|
|
27405
27421
|
|
|
27406
27422
|
const KritzelEngine = class {
|
|
27407
27423
|
get host() { return getElement(this); }
|
|
@@ -27631,6 +27647,8 @@ const KritzelEngine = class {
|
|
|
27631
27647
|
awarenessChange;
|
|
27632
27648
|
/** Emitted when notifications change. */
|
|
27633
27649
|
notificationsChange;
|
|
27650
|
+
/** Emitted when the combined loading state (external `isLoading` prop or internal workspace loading) changes. */
|
|
27651
|
+
loadingChange;
|
|
27634
27652
|
forceUpdate = 0;
|
|
27635
27653
|
/** Manually triggers the `objectsSelectionChange` event. */
|
|
27636
27654
|
async triggerSelectionChange() {
|
|
@@ -29089,6 +29107,7 @@ const KritzelEngine = class {
|
|
|
29089
29107
|
_objectDistanceFadeCloseMinOpacity = 0;
|
|
29090
29108
|
syncLoadingState() {
|
|
29091
29109
|
this.core.store.state.isLoading = this._isWorkspaceLoading || this.isLoading;
|
|
29110
|
+
this.loadingChange.emit(this.core.store.state.isLoading);
|
|
29092
29111
|
}
|
|
29093
29112
|
applyToolConfig(tool, toolConfig) {
|
|
29094
29113
|
Object.entries(toolConfig).forEach(([key, value]) => {
|
|
@@ -29134,6 +29153,7 @@ const KritzelEngine = class {
|
|
|
29134
29153
|
this.viewportChange = createEvent(this, "viewportChange");
|
|
29135
29154
|
this.awarenessChange = createEvent(this, "awarenessChange");
|
|
29136
29155
|
this.notificationsChange = createEvent(this, "notificationsChange");
|
|
29156
|
+
this.loadingChange = createEvent(this, "loadingChange");
|
|
29137
29157
|
this.core = new KritzelCore(this);
|
|
29138
29158
|
}
|
|
29139
29159
|
disconnectedCallback() {
|
|
@@ -29362,14 +29382,18 @@ const KritzelEngine = class {
|
|
|
29362
29382
|
this._workspaceInitializationTargetKey = targetKey;
|
|
29363
29383
|
try {
|
|
29364
29384
|
await initializationPromise;
|
|
29385
|
+
// Wait for network providers to sync so overlay stays visible until remote data arrives
|
|
29386
|
+
const initializedObjects = this.core.store.objects;
|
|
29387
|
+
await initializedObjects?.whenNetworkSynced();
|
|
29365
29388
|
}
|
|
29366
29389
|
finally {
|
|
29390
|
+
// Only the most recent init clears loading state to prevent race conditions
|
|
29367
29391
|
if (this._workspaceInitializationPromise === initializationPromise) {
|
|
29368
29392
|
this._workspaceInitializationPromise = null;
|
|
29369
29393
|
this._workspaceInitializationTargetKey = null;
|
|
29394
|
+
this._isWorkspaceLoading = false;
|
|
29395
|
+
this.syncLoadingState();
|
|
29370
29396
|
}
|
|
29371
|
-
this._isWorkspaceLoading = false;
|
|
29372
|
-
this.syncLoadingState();
|
|
29373
29397
|
}
|
|
29374
29398
|
}
|
|
29375
29399
|
emitObjectsChange() {
|
|
@@ -29488,7 +29512,7 @@ const KritzelEngine = class {
|
|
|
29488
29512
|
}
|
|
29489
29513
|
render() {
|
|
29490
29514
|
if (!this.viewport) {
|
|
29491
|
-
return
|
|
29515
|
+
return h(Host, null);
|
|
29492
29516
|
}
|
|
29493
29517
|
const currentTheme = this.core.themeManager.getStoredTheme();
|
|
29494
29518
|
const computedStyle = window.getComputedStyle(this.host);
|
|
@@ -29545,7 +29569,7 @@ const KritzelEngine = class {
|
|
|
29545
29569
|
this.emitObjectsInViewportChange();
|
|
29546
29570
|
}
|
|
29547
29571
|
}
|
|
29548
|
-
return (h(Host, null, this.core.store.state.
|
|
29572
|
+
return (h(Host, null, this.core.store.state.debugInfo.showViewportInfo && (h("div", { class: "debug-panel" }, h("div", null, "ActiveWorkspaceId: ", this.core.store.state?.activeWorkspace?.id), h("div", null, "ActiveWorkspaceName: ", this.core.store.state?.activeWorkspace?.name), h("div", null, "TranslateX: ", this.core.store.state?.translateX), h("div", null, "TranslateY: ", this.core.store.state?.translateY), h("div", null, "ViewportWidth: ", this.core.store.state?.viewportWidth), h("div", null, "ViewportHeight: ", this.core.store.state?.viewportHeight), h("div", null, "PointerCount: ", this.core.store.state.pointers.size), h("div", null, "Scale: ", this.core.store.state?.scale), h("div", null, "ActiveTool: ", this.core.store.state?.activeTool?.name), h("div", null, "HasViewportChanged: ", this.core.store.state?.hasViewportChanged ? 'true' : 'false'), h("div", null, "IsEnabled: ", this.core.store.state?.isEnabled ? 'true' : 'false'), h("div", null, "IsScaling: ", this.core.store.state?.isScaling ? 'true' : 'false'), h("div", null, "IsPanning: ", this.core.store.state?.isPanning ? 'true' : 'false'), h("div", null, "IsSelecting: ", this.isSelecting ? 'true' : 'false'), h("div", null, "IsSelectionActive: ", this.isSelectionActive ? 'true' : 'false'), h("div", null, "IsResizeHandleSelected: ", this.core.store.state.isResizeHandleSelected ? 'true' : 'false'), h("div", null, "IsRotationHandleSelected: ", this.core.store.state.isRotationHandleSelected ? 'true' : 'false'), h("div", null, "IsRotationHandleHovered: ", this.core.store.state.isRotationHandleHovered ? 'true' : 'false'), h("div", null, "IsDrawing: ", this.core.store.state.isDrawing ? 'true' : 'false'), h("div", null, "IsWriting: ", this.core.store.state.isWriting ? 'true' : 'false'), h("div", null, "IsPointerDown: ", this.core.store.isPointerDown ? 'true' : 'false'), h("div", null, "PointerX: ", this.core.store.state?.pointerX), h("div", null, "PointerY: ", this.core.store.state?.pointerY), h("div", null, "TotalObjects: ", this.core.store.totalObjectCount), h("div", null, "ObjectsInViewport: ", this.core.store.objectsInViewport.length), h("div", null, "SelectedObjects: ", this.core.store.selectionGroup?.objects.length || 0), h("div", null, "ViewportCenter: (", viewportCenterX.toFixed(2), ", ", viewportCenterY.toFixed(2), ")"))), h("div", { id: "origin", class: "origin", style: {
|
|
29549
29573
|
transform: `matrix(${this.core.store.state?.scale}, 0, 0, ${this.core.store.state?.scale}, ${this.core.store.state?.translateX}, ${this.core.store.state?.translateY})`,
|
|
29550
29574
|
} }, visibleObjects?.map(object => {
|
|
29551
29575
|
const { multiplied: effectiveOpacity, overridden: effectiveOpacityString } = this.getObjectEffectiveOpacity(object, viewportScale);
|
|
@@ -30143,7 +30167,7 @@ const KritzelExport = class {
|
|
|
30143
30167
|
return (h("div", { class: "export-tab-content" }, 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 })));
|
|
30144
30168
|
}
|
|
30145
30169
|
render() {
|
|
30146
|
-
return (h(Host, { key: '
|
|
30170
|
+
return (h(Host, { key: '5706e0f8688777826452ca0cf81e2581f6e2d14a' }, h("kritzel-dialog", { key: '8d0d26a672604aec2b899a7ea05ab40031ac9c43', isOpen: this.isDialogOpen, dialogTitle: this.terms['export.dialogTitle'] ?? 'Export', closable: true, contained: true, onDialogClose: this.closeDialog }, h("div", { key: 'a4c3f5a2961aca9dd5cba4045b8bd53635681ab0', class: "export-content" }, h("kritzel-pill-tabs", { key: '51a40a8596e492130cc8fa4c977cde916d7d8392', tabs: this.tabs, value: this.activeTab, onValueChange: this.handleTabChange }), this.activeTab === 'viewport' && this.renderViewportExport(), this.activeTab === 'workspace' && this.renderWorkspaceExport(), h("button", { key: 'a4b8e1503a0a8e682d10623bc334fcc70b5ea243', class: "export-primary-button", onClick: this.handleExport }, this.terms['export.exportButton'] ?? 'Export')))));
|
|
30147
30171
|
}
|
|
30148
30172
|
};
|
|
30149
30173
|
KritzelExport.style = kritzelExportCss();
|
|
@@ -30158,7 +30182,7 @@ const KritzelFont = class {
|
|
|
30158
30182
|
size = 24;
|
|
30159
30183
|
color = '#000000';
|
|
30160
30184
|
render() {
|
|
30161
|
-
return (h(Host, { key: '
|
|
30185
|
+
return (h(Host, { key: '054371cac30a2433611139a670406b0a1e3b99ff' }, h("div", { key: 'b4f2142b3cb31d067f39952a38b6f665f28f63bf', class: "font-preview", style: {
|
|
30162
30186
|
fontFamily: this.fontFamily,
|
|
30163
30187
|
fontSize: `${this.size}px`,
|
|
30164
30188
|
color: this.color
|
|
@@ -30234,7 +30258,7 @@ const KritzelFontSize = class {
|
|
|
30234
30258
|
render() {
|
|
30235
30259
|
const color = 'var(--kritzel-global-text-primary)';
|
|
30236
30260
|
const sizes = this.sizes ?? [];
|
|
30237
|
-
return (h(Host, { key: '
|
|
30261
|
+
return (h(Host, { key: '56eb19367abe312bac3b626cfcae3b1ff6e90d21' }, sizes.map(size => (h("div", { tabIndex: 0, class: {
|
|
30238
30262
|
'size-container': true,
|
|
30239
30263
|
'selected': this.selectedSize === size,
|
|
30240
30264
|
}, onClick: () => this.handleSizeClick(size), onKeyDown: event => this.handleKeyDown(event, size) }, h("kritzel-font", { fontFamily: this.fontFamily, size: size, color: color }))))));
|
|
@@ -30301,7 +30325,7 @@ const KritzelInput = class {
|
|
|
30301
30325
|
this.valueChange.emit(input.value);
|
|
30302
30326
|
};
|
|
30303
30327
|
render() {
|
|
30304
|
-
return (h(Host, { key: '
|
|
30328
|
+
return (h(Host, { key: '46a0a48902a06ad85edcbaad3679ce3fe9ba850c' }, h("div", { key: 'a6beaf920614aa959d2fbd68b7268afba8637358', class: "input-container" }, this.label && h("label", { key: 'ca6d3fb3c22f1540795dbb0695ddd9b87cc05eee', class: "input-label" }, this.label), h("div", { key: '78d116e82531a9cca996d594792245449bcaf9c8', class: { 'input-wrapper': true, 'has-suffix': !!this.suffix } }, h("input", { key: '0d10d6356dea3a11338172bbe8c3c878eefcc708', type: this.type, class: "text-input", value: this.inputValue, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput }), this.suffix && h("span", { key: '0e6166ba8728efc1035302d7fb048306efbe5a68', class: "input-suffix" }, this.suffix)))));
|
|
30305
30329
|
}
|
|
30306
30330
|
static get watchers() { return {
|
|
30307
30331
|
"value": [{
|
|
@@ -30394,6 +30418,26 @@ const KritzelLineEndings = class {
|
|
|
30394
30418
|
};
|
|
30395
30419
|
KritzelLineEndings.style = kritzelLineEndingsCss();
|
|
30396
30420
|
|
|
30421
|
+
const kritzelLoadingOverlayCss = () => `:host{display:contents}.loading-overlay{position:absolute;inset:0;z-index:var(--kritzel-loading-overlay-z-index, 9999);display:flex;align-items:center;justify-content:center;gap:10px;background-color:var(--kritzel-loading-overlay-background, rgba(255, 255, 255, 0.6));color:var(--kritzel-loading-overlay-color, #333);font-family:var(--kritzel-font-family, sans-serif);font-size:1.25rem;opacity:0;pointer-events:none;visibility:hidden}.loading-overlay.visible{pointer-events:all;visibility:visible;animation:kritzel-loading-fade-in 200ms ease-out var(--kritzel-loading-overlay-delay, 300ms) forwards}.loading-spinner{width:20px;height:20px;box-sizing:border-box;display:block;flex-shrink:0;border:2px solid var(--kritzel-loading-overlay-spinner-color, #cccccc);border-top-color:var(--kritzel-loading-overlay-spinner-active-color, #333333);border-radius:50%;animation:kritzel-loading-spin 0.6s linear infinite}@keyframes kritzel-loading-spin{to{transform:rotate(360deg)}}@keyframes kritzel-loading-fade-in{to{opacity:1}}`;
|
|
30422
|
+
|
|
30423
|
+
const KritzelLoadingOverlay = class {
|
|
30424
|
+
constructor(hostRef) {
|
|
30425
|
+
registerInstance(this, hostRef);
|
|
30426
|
+
}
|
|
30427
|
+
/**
|
|
30428
|
+
* Whether the overlay is visible
|
|
30429
|
+
*/
|
|
30430
|
+
visible = false;
|
|
30431
|
+
/**
|
|
30432
|
+
* The text to display next to the spinner
|
|
30433
|
+
*/
|
|
30434
|
+
text = 'Loading...';
|
|
30435
|
+
render() {
|
|
30436
|
+
return (h(Host, { key: 'b8c4784803ca5a0e6bf3f25c1d39139307bb6d50' }, h("div", { key: '5a8a2c44f1800c0275d1a94aa0eb5c2854be63b5', class: { 'loading-overlay': true, visible: this.visible }, "aria-hidden": this.visible ? 'false' : 'true' }, h("span", { key: '04e33166e054d7a600a83dacd48e3fb50ab69d22', class: "loading-spinner" }), this.text)));
|
|
30437
|
+
}
|
|
30438
|
+
};
|
|
30439
|
+
KritzelLoadingOverlay.style = kritzelLoadingOverlayCss();
|
|
30440
|
+
|
|
30397
30441
|
const kritzelLoginDialogCss = () => `:host{display:contents}kritzel-dialog{--kritzel-dialog-width-small:380px}.login-content{display:flex;flex-direction:column;gap:20px}.login-subtitle{font-size:13px;color:var(--kritzel-login-dialog-subtitle-color, #666666);margin:0;line-height:1.5;text-align:center}.login-providers{display:flex;flex-direction:column;gap:10px}.provider-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:12px 16px;border:1px solid var(--kritzel-login-dialog-button-border-color, #e0e0e0);border-radius:8px;background:var(--kritzel-login-dialog-button-background, #ffffff);color:var(--kritzel-login-dialog-button-text-color, #333333);font-size:14px;font-weight:500;font-family:inherit;cursor:var(--kritzel-global-pointer-cursor, pointer);transition:background-color 0.15s ease, border-color 0.15s ease, opacity 0.15s ease;-webkit-tap-highlight-color:transparent}.provider-button:hover:not(:disabled){background:var(--kritzel-login-dialog-button-hover-background, #f5f5f5);border-color:var(--kritzel-login-dialog-button-hover-border-color, #cccccc)}.provider-button:active:not(:disabled){background:var(--kritzel-login-dialog-button-active-background, #ebebeb)}.provider-button:focus-visible{outline:revert;outline-offset:revert}.provider-button.is-disabled{opacity:0.5;cursor:default;pointer-events:none}.provider-button.is-loading{cursor:default}.provider-label{flex-shrink:0}.provider-button.is-loading .provider-label{opacity:0.7}@keyframes kritzel-login-spin{to{transform:rotate(360deg)}}.spinner{width:20px;height:20px;box-sizing:border-box;display:block;flex-shrink:0;border:2px solid var(--kritzel-login-dialog-spinner-color, #cccccc);border-top-color:var(--kritzel-login-dialog-spinner-active-color, #333333);border-radius:50%;animation:kritzel-login-spin 0.6s linear infinite}`;
|
|
30398
30442
|
|
|
30399
30443
|
const KritzelLoginDialog = class {
|
|
@@ -30441,7 +30485,7 @@ const KritzelLoginDialog = class {
|
|
|
30441
30485
|
this.dialogClosed.emit();
|
|
30442
30486
|
};
|
|
30443
30487
|
render() {
|
|
30444
|
-
return (h(Host, { key: '
|
|
30488
|
+
return (h(Host, { key: '5cedcb4fa0a9026338e930cfbbdbfa1df9853530' }, h("kritzel-dialog", { key: '1502a2dc67630b0a1399ef6e8d1a2fdcd4d50913', dialogTitle: this.dialogTitle, isOpen: this.isDialogOpen, onDialogClose: this.closeDialog, size: "small", contained: true }, h("div", { key: 'f84a888ccc0b1cb2052e30af56a08910da8d85b5', class: "login-content" }, this.subtitle && (h("p", { key: '971040609c43efea30a7bfd0c1a3de2113f77a2b', class: "login-subtitle" }, this.subtitle)), h("div", { key: 'ecb0c648ce0d9a8ca8b10e6a520273d817c7a0fe', class: "login-providers" }, this.providers.map(provider => (h("button", { key: provider.name, class: {
|
|
30445
30489
|
'provider-button': true,
|
|
30446
30490
|
'is-loading': this.loadingProvider === provider.name,
|
|
30447
30491
|
'is-disabled': this.loadingProvider !== null && this.loadingProvider !== provider.name,
|
|
@@ -30547,15 +30591,15 @@ const KritzelMasterDetail = class {
|
|
|
30547
30591
|
const selectedItem = this.items.find(item => item.id === this.selectedItemId);
|
|
30548
30592
|
const panelId = 'master-detail-panel';
|
|
30549
30593
|
const selectedTabId = selectedItem ? `tab-${selectedItem.id}` : undefined;
|
|
30550
|
-
return (h(Host, { key: '
|
|
30594
|
+
return (h(Host, { key: '0edf50b0b853633b88bf481f97f22aceba9e163e' }, h("div", { key: '21a0a3f81e5a60889ccd152c905cb41f52c3e037', class: {
|
|
30551
30595
|
'master-detail-container': true,
|
|
30552
30596
|
'is-mobile-detail-visible': this.showMobileDetail,
|
|
30553
|
-
} }, h("nav", { key: '
|
|
30597
|
+
} }, h("nav", { key: '41f88248cc372c8cae4cb50a19edf462a01e43f2', class: "master-menu", role: "tablist", "aria-orientation": "vertical", "aria-label": "Settings categories" }, this.items.map((item, index) => (h("button", { key: item.id, id: `tab-${item.id}`, ref: el => this.setTabRef(el, index), class: {
|
|
30554
30598
|
'menu-item': true,
|
|
30555
30599
|
'is-selected': item.id === this.selectedItemId,
|
|
30556
30600
|
'is-disabled': !!item.disabled,
|
|
30557
30601
|
'is-focused': index === this.focusedIndex,
|
|
30558
|
-
}, role: "tab", "aria-selected": item.id === this.selectedItemId ? 'true' : 'false', "aria-controls": panelId, "aria-disabled": item.disabled ? 'true' : undefined, tabIndex: this.getTabIndex(item, index), disabled: item.disabled, onClick: () => this.handleItemClick(item), onKeyDown: e => this.handleKeyDown(e, item, index), onFocus: () => this.handleFocus(index), onBlur: this.handleBlur }, item.icon && (h("kritzel-icon", { name: item.icon, size: 20, class: "menu-item-icon" })), h("span", { class: "menu-item-label" }, item.label), h("span", { class: "menu-item-chevron", "aria-hidden": "true" }, h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }, h("path", { d: "m9 18 6-6-6-6" }))))))), h("div", { key: '
|
|
30602
|
+
}, role: "tab", "aria-selected": item.id === this.selectedItemId ? 'true' : 'false', "aria-controls": panelId, "aria-disabled": item.disabled ? 'true' : undefined, tabIndex: this.getTabIndex(item, index), disabled: item.disabled, onClick: () => this.handleItemClick(item), onKeyDown: e => this.handleKeyDown(e, item, index), onFocus: () => this.handleFocus(index), onBlur: this.handleBlur }, item.icon && (h("kritzel-icon", { name: item.icon, size: 20, class: "menu-item-icon" })), h("span", { class: "menu-item-label" }, item.label), h("span", { class: "menu-item-chevron", "aria-hidden": "true" }, h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }, h("path", { d: "m9 18 6-6-6-6" }))))))), h("div", { key: 'f8447facf3dfdbd7772823654847e1b90b03f73e', id: panelId, class: "detail-panel", role: "tabpanel", "aria-labelledby": selectedTabId }, h("button", { key: '3edc9784267613e6b3a706739bbb537161e4c747', class: "mobile-back-button", onClick: this.handleBackClick, "aria-label": "Back to menu" }, h("kritzel-icon", { key: 'ec0b4691735578525e5863842271366e04b13fb7', name: "chevron-left", size: 20, class: "mobile-back-icon" }), "Back"), h("slot", { key: 'c21fbaff78f98859b9756427125b60504d4bb630' })))));
|
|
30559
30603
|
}
|
|
30560
30604
|
static get watchers() { return {
|
|
30561
30605
|
"selectedItemId": [{
|
|
@@ -30628,7 +30672,7 @@ const KritzelMenu = class {
|
|
|
30628
30672
|
this.itemCloseChildMenu.emit(event.detail);
|
|
30629
30673
|
};
|
|
30630
30674
|
render() {
|
|
30631
|
-
return (h(Host, { key: '
|
|
30675
|
+
return (h(Host, { key: '27a90a3a8549517a2d6e341a5da13496bf714970', tabIndex: 0, onClick: e => e.stopPropagation() }, this.openChildMenuItem && h("div", { key: 'c0c2351fac389f6676b38481eaacee553ca6867a', class: "has-open-child-overlay", onClick: this.onOverlayClick }), this.items.map(item => (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 })))));
|
|
30632
30676
|
}
|
|
30633
30677
|
};
|
|
30634
30678
|
KritzelMenu.style = kritzelMenuCss();
|
|
@@ -30733,12 +30777,12 @@ const KritzelMenuItem = class {
|
|
|
30733
30777
|
];
|
|
30734
30778
|
}
|
|
30735
30779
|
render() {
|
|
30736
|
-
return (h(Host, { key: '
|
|
30780
|
+
return (h(Host, { key: '9d6653a630da5a3da38291d89d6d7d59d6994e02', tabIndex: this.item.isDisabled ? -1 : 0, class: {
|
|
30737
30781
|
'selected': this.item.isSelected,
|
|
30738
30782
|
'editing': this.item.isEditing,
|
|
30739
30783
|
'disabled': this.item.isDisabled,
|
|
30740
30784
|
'child-open': this.item.isChildMenuOpen,
|
|
30741
|
-
}, onClick: this.handleItemSelect }, h("div", { key: '
|
|
30785
|
+
}, onClick: this.handleItemSelect }, h("div", { key: '48a1678296e672c6c03fb3e1473c42d3a246d481', class: "menu-item-overlay" }), this.item.isEditing ? this.renderEditMode() : this.renderViewMode()));
|
|
30742
30786
|
}
|
|
30743
30787
|
static get watchers() { return {
|
|
30744
30788
|
"item": [{
|
|
@@ -30811,7 +30855,7 @@ const KritzelMoreMenu = class {
|
|
|
30811
30855
|
this.closeMenu();
|
|
30812
30856
|
};
|
|
30813
30857
|
render() {
|
|
30814
|
-
return (h(Host, { key: '
|
|
30858
|
+
return (h(Host, { key: 'b7736b67210f2d2f6b54296dd680104548d61641', class: { mobile: this.isTouchDevice }, style: { display: this.visible ? '' : 'none' } }, h("div", { key: '076ecc02a1469bd87cb27f63f1d41183bedb11d4', class: { 'more-menu-wrapper': true, visible: this.visible } }, h("button", { key: 'cefe02e440391eb079af7b8accc367a291e93d6a', class: "more-menu-button", "data-testid": "more-menu-button", onClick: this.toggleMenu, "aria-label": this.terms['moreMenu.ariaLabel'] ?? 'More options' }, h("kritzel-icon", { key: 'cb6f4dd0f37ac0fbf1e1c28a0dc06e097e38ee00', name: this.icon, size: this.iconSize })), h("kritzel-portal", { key: '29099deb5b56b1a1388caa81a3c7104a05ad66a7', anchor: this.menuAnchor, offsetY: this.offsetY, onClose: this.closeMenu }, h("kritzel-menu", { key: 'b77286ec05add0a20bbc46f99ac7210395d0d33d', items: this.visibleItems, onItemSelect: this.handleMenuItemSelect })))));
|
|
30815
30859
|
}
|
|
30816
30860
|
};
|
|
30817
30861
|
KritzelMoreMenu.style = kritzelMoreMenuCss();
|
|
@@ -30978,7 +31022,7 @@ const KritzelNumericInput = class {
|
|
|
30978
31022
|
this.valueChange.emit(newValue);
|
|
30979
31023
|
};
|
|
30980
31024
|
render() {
|
|
30981
|
-
return (h(Host, { key: '
|
|
31025
|
+
return (h(Host, { key: '8901e0b56ccbc344420483a4a56663f7cd74d9e8' }, h("div", { key: '5f3d6b5c56007e11383aa69f60f22031b0e8f332', class: "input-container" }, this.label && h("label", { key: '2cb102a5b6c16d068f4f304fbcc6241f79fc0ce8', class: "input-label" }, this.label), h("div", { key: '96441095acc3d9a8e77b6d2bac2ceda683c9c976', class: "input-wrapper" }, h("input", { key: '523a5485111077e20faded235df6362e5ea9cfd4', 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 }), h("div", { key: '2071e98125a8d014513e93052bd8c1fee17932a5', class: "spinner-buttons" }, h("button", { key: '12422e5285dfb532dbbb6eb1a36dbcb3de50f2bc', type: "button", class: "spinner-button spinner-up", onClick: this.handleIncrement, tabIndex: -1, "aria-label": "Increase value" }, h("svg", { key: '49ad5625c80fae6706ba4ab91f47bd550481ef74', viewBox: "0 0 10 6", class: "spinner-icon" }, h("path", { key: 'ff7d19b61baeb5ba58bb60f2cc629bcec6eb4411', d: "M1 5L5 1L9 5", stroke: "currentColor", "stroke-width": "1.5", fill: "none", "stroke-linecap": "round", "stroke-linejoin": "round" }))), h("button", { key: 'e4fec28e4fc997e007127f2b30b00cc752433221', type: "button", class: "spinner-button spinner-down", onClick: this.handleDecrement, tabIndex: -1, "aria-label": "Decrease value" }, h("svg", { key: '27bf06cde8de11f4a97090911afd6b8993463112', viewBox: "0 0 10 6", class: "spinner-icon" }, h("path", { key: 'ed7071dd79bfe509ebb319ce43ecb3e982dd4157', d: "M1 1L5 5L9 1", stroke: "currentColor", "stroke-width": "1.5", fill: "none", "stroke-linecap": "round", "stroke-linejoin": "round" }))))))));
|
|
30982
31026
|
}
|
|
30983
31027
|
static get watchers() { return {
|
|
30984
31028
|
"value": [{
|
|
@@ -31017,7 +31061,7 @@ const KritzelOpacitySlider = class {
|
|
|
31017
31061
|
}
|
|
31018
31062
|
render() {
|
|
31019
31063
|
const percentage = this.getPercentage();
|
|
31020
|
-
return (h(Host, { key: '
|
|
31064
|
+
return (h(Host, { key: '2dadd8a7c4d1af748e91a6005433288ab231f2e8' }, h("div", { key: '65ae90d95bffff244d97329754cf0cb8f73331fa', class: "opacity-container" }, h("div", { key: '90e95347f7015882112f0653a25347e715233227', class: "slider-wrapper" }, h("input", { key: '15836bc089c1725062016677d3b95384d1958431', type: "range", class: "opacity-slider", min: this.min, max: this.max, step: this.step, value: this.value, onInput: (e) => this.handleInput(e), style: {
|
|
31021
31065
|
'--slider-progress': `${percentage}%`,
|
|
31022
31066
|
'--kritzel-opacity-slider-thumb-border-color': this.previewColor,
|
|
31023
31067
|
} })))));
|
|
@@ -31370,7 +31414,7 @@ const KritzelPortal = class {
|
|
|
31370
31414
|
this.portal.style.visibility = 'visible';
|
|
31371
31415
|
}
|
|
31372
31416
|
render() {
|
|
31373
|
-
return (h(Host, { key: '
|
|
31417
|
+
return (h(Host, { key: '72273b4c7811473072ee27668836a5ddddcfd618', style: { display: this.anchor ? 'block' : 'none' } }, h("slot", { key: 'b4f37ca27c47ab950a4639162fa31a3c2362d6f7' })));
|
|
31374
31418
|
}
|
|
31375
31419
|
static get watchers() { return {
|
|
31376
31420
|
"anchor": [{
|
|
@@ -31384,7 +31428,7 @@ const KritzelPortal = class {
|
|
|
31384
31428
|
* This file is auto-generated by the version bump scripts.
|
|
31385
31429
|
* Do not modify manually.
|
|
31386
31430
|
*/
|
|
31387
|
-
const KRITZEL_VERSION = '0.3.
|
|
31431
|
+
const KRITZEL_VERSION = '0.3.36';
|
|
31388
31432
|
|
|
31389
31433
|
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-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)}`;
|
|
31390
31434
|
|
|
@@ -31609,7 +31653,7 @@ const KritzelSettings = class {
|
|
|
31609
31653
|
}
|
|
31610
31654
|
}
|
|
31611
31655
|
render() {
|
|
31612
|
-
return (h(Host, { key: '
|
|
31656
|
+
return (h(Host, { key: '7e65885051a30635291bb98fb87addf0bdbca8e8' }, h("kritzel-dialog", { key: 'c795bad227882904d8dda96768e8ccdd7c48df71', isOpen: this.isDialogOpen, dialogTitle: this.t('settings.dialogTitle', 'Settings'), size: "large", contained: true, onDialogClose: this.closeDialog }, h("kritzel-master-detail", { key: 'eff1486d14d4b55441b9a52b293da7459771331d', items: this.categories, selectedItemId: this.selectedCategoryId, onItemSelect: this.handleCategorySelect }, this.renderCategoryContent()))));
|
|
31613
31657
|
}
|
|
31614
31658
|
static get watchers() { return {
|
|
31615
31659
|
"settings": [{
|
|
@@ -34849,9 +34893,9 @@ const KritzelShareDialog = class {
|
|
|
34849
34893
|
this.dialogClosed.emit();
|
|
34850
34894
|
};
|
|
34851
34895
|
render() {
|
|
34852
|
-
return (h(Host, { key: '
|
|
34896
|
+
return (h(Host, { key: 'b96c4cc6a9e4778715f496574f307a540285f70c' }, h("kritzel-dialog", { key: '9a9cead56cc50042f59f677c0a846fc9fff01a8b', dialogTitle: this.terms['share.dialogTitle'] ?? 'Share Workspace', size: "small", isOpen: this.isDialogOpen, onDialogClose: this.closeDialog, contained: true }, h("div", { key: 'f1ffe37126343d84f9cb70f85530596d594c6e04', class: "share-content" }, h("div", { key: 'e1b20fccdb127eb30d240a2812742977b6512113', class: "share-section" }, h("div", { key: 'fb0d4226d638309fd5696dace0cc0c73d82150fc', class: "share-row" }, h("div", { key: '301a27b975bb63610d94e1140aef39aa0594dda6', class: "share-label-group" }, h("label", { key: 'acf694843423d42414951ae88ec7eee541dd8f7f', class: "share-label" }, this.terms['share.linkSharing.label'] ?? 'Link sharing'), h("p", { key: '4c29b6448a27c69fceadb4166bc878216010475f', class: "share-description" }, this.internalIsPublic
|
|
34853
34897
|
? (this.terms['share.linkSharing.enabledDescription'] ?? 'Anyone with the link can access this workspace.')
|
|
34854
|
-
: (this.terms['share.linkSharing.disabledDescription'] ?? 'Link sharing is disabled. Only you can access this workspace.'))), h("kritzel-slide-toggle", { key: '
|
|
34898
|
+
: (this.terms['share.linkSharing.disabledDescription'] ?? 'Link sharing is disabled. Only you can access this workspace.'))), h("kritzel-slide-toggle", { key: 'c813213e7cf53125993de209e15c921779c019b6', checked: this.internalIsPublic, onCheckedChange: this.handleToggleChange, label: this.terms['share.linkSharing.toggleLabel'] ?? 'Enable link sharing' }))), this.internalIsPublic && (h("div", { key: 'af32cbadc775ce4ca3c79bdc0f8b4351c8723b28', class: "share-section" }, h("div", { key: 'd5c4e2b8a77306a141cc73c37dc6c57b1dc9daa5', class: "share-url-container" }, h("input", { key: 'f2f364c3fabd7f693247f5ad05594bd089a194ea', type: "text", class: "share-url-input", value: this.getShareUrl(), readOnly: true, onClick: (e) => e.target.select() }), h("button", { key: 'd27a6f00e6b14bff3f4c8d1694cc8a38eebc5ec0', 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') }, h("kritzel-icon", { key: '60c72ee8d789dc14baa4c169f70c78837b0cbd0c', name: this.copySuccess ? 'check' : 'copy', size: 18 }))), this.qrCodeDataUrl && (h("div", { key: 'f5d361b7ed145ab5f4f7b89f9c63046ce831220b', class: "share-qr-container" }, h("img", { key: '5f2d4650dffab907f5a53dfb2fd4c337da3e51ee', class: "share-qr-image", src: this.qrCodeDataUrl, alt: "QR code for share link" })))))))));
|
|
34855
34899
|
}
|
|
34856
34900
|
static get watchers() { return {
|
|
34857
34901
|
"isPublic": [{
|
|
@@ -34892,7 +34936,7 @@ const KritzelSlideToggle = class {
|
|
|
34892
34936
|
}
|
|
34893
34937
|
};
|
|
34894
34938
|
render() {
|
|
34895
|
-
return (h(Host, { key: '
|
|
34939
|
+
return (h(Host, { key: '00160c9cfdafa0d53f3acfb1fb235b29abf2622a', 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 }, h("div", { key: '385008948ffbdc0f26249d2d833aae8f04eeb6a0', class: "toggle-track" }, h("div", { key: '43929e94335589feb24ee45f1c34a270653dd412', class: "toggle-thumb" }))));
|
|
34896
34940
|
}
|
|
34897
34941
|
};
|
|
34898
34942
|
KritzelSlideToggle.style = kritzelSlideToggleCss();
|
|
@@ -34992,7 +35036,7 @@ const KritzelSplitButton = class {
|
|
|
34992
35036
|
this.menuScrollTop = event.target.scrollTop;
|
|
34993
35037
|
};
|
|
34994
35038
|
render() {
|
|
34995
|
-
return (h(Host, { key: '
|
|
35039
|
+
return (h(Host, { key: 'fa22dc1185ef07d8127d9ee9f6dbe482d126f934', class: { mobile: this.isTouchDevice } }, h("button", { key: 'a48aba702b70e9b24ad5486dde61fa9f9c8f7cdc', class: "split-main-button", tabIndex: 0, onClick: this.handleButtonClick, disabled: this.mainButtonDisabled, "aria-label": "Main action" }, this.buttonIcon && h("kritzel-icon", { key: '0d1c9a3e9f744541dd6ebe491105f6ee65233543', name: this.buttonIcon })), h("div", { key: 'c9db29f0b9c9cf1974d78f4f60be9e1b0e26c5d2', class: "split-divider" }), h("button", { key: '57addfd5228b7c7668be902c53683d12c976b89b', ref: el => (this.splitMenuButtonRef = el), class: "split-menu-button", tabIndex: 0, onClick: this.toggleMenu, disabled: this.menuButtonDisabled, "aria-label": "Open menu" }, h("kritzel-icon", { key: 'd860cc503043425860b1234b5d34693bfdd1d5ab', name: this.dropdownIcon })), h("kritzel-portal", { key: 'cd6dda8869aea4205d922fc639073019bbd2b102', anchor: this.anchorElement, offsetY: 4, onClose: this.closeMenu }, h("kritzel-menu", { key: '1ef1c2b319662e7a2af15b46362addcc75bceb68', 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 }))));
|
|
34996
35040
|
}
|
|
34997
35041
|
};
|
|
34998
35042
|
KritzelSplitButton.style = kritzelSplitButtonCss();
|
|
@@ -35013,7 +35057,7 @@ const KritzelStrokeSize = class {
|
|
|
35013
35057
|
}
|
|
35014
35058
|
render() {
|
|
35015
35059
|
const sizes = this.sizes ?? [];
|
|
35016
|
-
return (h(Host, { key: '
|
|
35060
|
+
return (h(Host, { key: 'ba181d798d2bf7b60308746635d2077ce1353b83' }, h("div", { key: '048fc8934190359b9337747567844ca88925a6ce', class: "size-grid" }, sizes.map(size => (h("div", { tabIndex: 0, class: {
|
|
35017
35061
|
'size-container': true,
|
|
35018
35062
|
'selected': this.selectedSize === size,
|
|
35019
35063
|
}, onClick: () => this.handleSizeClick(size) }, h("kritzel-color", { value: 'var(--kritzel-global-text-primary)', size: size })))))));
|
|
@@ -35394,14 +35438,14 @@ const KritzelTooltip = class {
|
|
|
35394
35438
|
}
|
|
35395
35439
|
}
|
|
35396
35440
|
render() {
|
|
35397
|
-
return (h(Host, { key: '
|
|
35441
|
+
return (h(Host, { key: '1e318ff48b72ae5e0853a92c61fd4174d6e45271', style: {
|
|
35398
35442
|
position: 'fixed',
|
|
35399
35443
|
zIndex: '9999',
|
|
35400
35444
|
transition: 'opacity 0.3s ease-in-out, transform 0.3s ease-in-out',
|
|
35401
35445
|
visibility: this.isVisible ? 'visible' : 'hidden',
|
|
35402
35446
|
left: `${this.positionX}px`,
|
|
35403
35447
|
bottom: `${this.positionY}px`,
|
|
35404
|
-
} }, h("div", { key: '
|
|
35448
|
+
} }, h("div", { key: 'c66c9978787c59de6ca29944f666354fed2ab4c3', class: "tooltip-content", onClick: event => event.stopPropagation(), onPointerDown: event => event.stopPropagation(), onMouseDown: event => event.stopPropagation() }, h("slot", { key: '664e78076bb988b0829b805aad4393c443db2dc7' }))));
|
|
35405
35449
|
}
|
|
35406
35450
|
static get watchers() { return {
|
|
35407
35451
|
"triggerElement": [{
|
|
@@ -35442,7 +35486,7 @@ const KritzelUtilityPanel = class {
|
|
|
35442
35486
|
this.redo.emit();
|
|
35443
35487
|
}
|
|
35444
35488
|
render() {
|
|
35445
|
-
return (h(Host, { key: '
|
|
35489
|
+
return (h(Host, { key: '90b96b2f4693016650394e085c1ccf5c61759713' }, h("button", { key: '325e3a869061ce7fda2d86e74250f4ea7414da8e', class: "utility-button", "data-testid": "utility-undo", disabled: !this.undoState?.canUndo, onClick: event => this.handleUndo(event), "aria-label": this.terms['utility.undo'] ?? 'Undo' }, h("kritzel-icon", { key: '70335427bc3a9a54a994ad22935bde4010d8f96b', name: "undo" })), h("button", { key: 'cf3000675d594ffe64f947b57e5aabe084be32a7', class: "utility-button", "data-testid": "utility-redo", disabled: !this.undoState?.canRedo, onClick: event => this.handleRedo(event), "aria-label": this.terms['utility.redo'] ?? 'Redo' }, h("kritzel-icon", { key: 'b33336374abb36a7cdb685fb970805ec1f4073e2', name: "redo" })), h("div", { key: '34323fd33574ba65c825687fec5b772facbd2c62', class: "utility-separator" }), h("button", { key: 'aff157ab166ed15b8f9172b5b63f62996ed51c6e', class: "utility-button", "data-testid": "utility-delete", onClick: () => this.delete.emit(), "aria-label": this.terms['utility.delete'] ?? 'Delete selected items' }, h("kritzel-icon", { key: '413104d9d493fc47ad5ae8e61af514dfd530f6ee', name: "delete" }))));
|
|
35446
35490
|
}
|
|
35447
35491
|
};
|
|
35448
35492
|
KritzelUtilityPanel.style = kritzelUtilityPanelCss();
|
|
@@ -35463,7 +35507,7 @@ const KritzelWatermark = class {
|
|
|
35463
35507
|
label;
|
|
35464
35508
|
render() {
|
|
35465
35509
|
const label = this.label ?? this.core.localizationManager.translate('watermark.poweredBy');
|
|
35466
|
-
return (h(Host, { key: '
|
|
35510
|
+
return (h(Host, { key: '0eccc75e51c7ac199e23d8f3a871593f1fb65a17' }, h("a", { key: '2029f8b56ba8609ca621447eac0df9d30ebfbbbe', class: "watermark-link", href: KRITZEL_WEBSITE_URL, target: "_blank", rel: "noopener noreferrer", part: "watermark", onPointerDown: (ev) => ev.stopPropagation(), onPointerUp: (ev) => ev.stopPropagation() }, label)));
|
|
35467
35511
|
}
|
|
35468
35512
|
};
|
|
35469
35513
|
KritzelWatermark.style = kritzelWatermarkCss();
|
|
@@ -35651,9 +35695,9 @@ const KritzelZoomPanel = class {
|
|
|
35651
35695
|
return Number.isFinite(this.zoomPercent) ? Math.max(1, Math.round(this.zoomPercent)) : 100;
|
|
35652
35696
|
}
|
|
35653
35697
|
render() {
|
|
35654
|
-
return (h(Host, { key: '
|
|
35698
|
+
return (h(Host, { key: '56b65a376d4bd94553416e07f2621192c4457bc2' }, h("div", { key: 'bdbfea3b3ee7e37eeb5c5f03388eb92ed8af9962', class: { panel: true, visible: this.visible } }, h("button", { key: 'de5ad152aaf7965f731bee95170b67e62af94ea2', class: "zoom-button", type: "button", "aria-label": this.terms['zoom.zoomOut'] ?? 'Zoom out', disabled: this.disabled, onClick: this.handleZoomOut }, h("kritzel-icon", { key: '104eb632666c55c032a40e6df2097aaa643fd23b', name: "minus" })), h("span", { key: 'd601b324e26a6c2737138b8f151b13dcdb2d20ab', class: "zoom-level", "aria-live": "polite" }, this.normalizedZoomPercent, "%"), h("button", { key: 'c976d03c69978f2d5cedf2a94b38419ed81088f6', class: "zoom-button", type: "button", "aria-label": this.terms['zoom.zoomIn'] ?? 'Zoom in', disabled: this.disabled, onClick: this.handleZoomIn }, h("kritzel-icon", { key: '844105bd53f3307425789aa6baf0ac3c25407414', name: "plus" })))));
|
|
35655
35699
|
}
|
|
35656
35700
|
};
|
|
35657
35701
|
KritzelZoomPanel.style = kritzelZoomPanelCss();
|
|
35658
35702
|
|
|
35659
|
-
export { KritzelActiveUsers as kritzel_active_users, KritzelAvatar as kritzel_avatar, KritzelAwarenessCursors as kritzel_awareness_cursors, KritzelBackToContent as kritzel_back_to_content, KritzelButton as kritzel_button, KritzelColorComponent as kritzel_color, KritzelColorPalette as kritzel_color_palette, KritzelContextMenu as kritzel_context_menu, KritzelControls as kritzel_controls, KritzelCurrentUser as kritzel_current_user, KritzelCurrentUserDialog as kritzel_current_user_dialog, KritzelCursorTrail as kritzel_cursor_trail, KritzelDialog as kritzel_dialog, KritzelDropdown as kritzel_dropdown, KritzelEditor as kritzel_editor, KritzelEngine as kritzel_engine, KritzelExport as kritzel_export, KritzelFont as kritzel_font, KritzelFontFamily as kritzel_font_family, KritzelFontSize as kritzel_font_size, KritzelIcon as kritzel_icon, KritzelInput as kritzel_input, KritzelLineEndings as kritzel_line_endings, KritzelLoginDialog as kritzel_login_dialog, KritzelMasterDetail as kritzel_master_detail, KritzelMenu as kritzel_menu, KritzelMenuItem as kritzel_menu_item, KritzelMoreMenu as kritzel_more_menu, KritzelNotificationCard as kritzel_notification_card, KritzelNumericInput as kritzel_numeric_input, KritzelOpacitySlider as kritzel_opacity_slider, KritzelPillTabs as kritzel_pill_tabs, KritzelPortal as kritzel_portal, KritzelSettings as kritzel_settings, KritzelShapeFill as kritzel_shape_fill, KritzelShareDialog as kritzel_share_dialog, KritzelSlideToggle as kritzel_slide_toggle, KritzelSplitButton as kritzel_split_button, KritzelStrokeSize as kritzel_stroke_size, KritzelToolConfig as kritzel_tool_config, KritzelTooltip as kritzel_tooltip, KritzelUtilityPanel as kritzel_utility_panel, KritzelWatermark as kritzel_watermark, KritzelWorkspaceManager as kritzel_workspace_manager, KritzelZoomPanel as kritzel_zoom_panel };
|
|
35703
|
+
export { KritzelActiveUsers as kritzel_active_users, KritzelAvatar as kritzel_avatar, KritzelAwarenessCursors as kritzel_awareness_cursors, KritzelBackToContent as kritzel_back_to_content, KritzelButton as kritzel_button, KritzelColorComponent as kritzel_color, KritzelColorPalette as kritzel_color_palette, KritzelContextMenu as kritzel_context_menu, KritzelControls as kritzel_controls, KritzelCurrentUser as kritzel_current_user, KritzelCurrentUserDialog as kritzel_current_user_dialog, KritzelCursorTrail as kritzel_cursor_trail, KritzelDialog as kritzel_dialog, KritzelDropdown as kritzel_dropdown, KritzelEditor as kritzel_editor, KritzelEngine as kritzel_engine, KritzelExport as kritzel_export, KritzelFont as kritzel_font, KritzelFontFamily as kritzel_font_family, KritzelFontSize as kritzel_font_size, KritzelIcon as kritzel_icon, KritzelInput as kritzel_input, KritzelLineEndings as kritzel_line_endings, KritzelLoadingOverlay as kritzel_loading_overlay, KritzelLoginDialog as kritzel_login_dialog, KritzelMasterDetail as kritzel_master_detail, KritzelMenu as kritzel_menu, KritzelMenuItem as kritzel_menu_item, KritzelMoreMenu as kritzel_more_menu, KritzelNotificationCard as kritzel_notification_card, KritzelNumericInput as kritzel_numeric_input, KritzelOpacitySlider as kritzel_opacity_slider, KritzelPillTabs as kritzel_pill_tabs, KritzelPortal as kritzel_portal, KritzelSettings as kritzel_settings, KritzelShapeFill as kritzel_shape_fill, KritzelShareDialog as kritzel_share_dialog, KritzelSlideToggle as kritzel_slide_toggle, KritzelSplitButton as kritzel_split_button, KritzelStrokeSize as kritzel_stroke_size, KritzelToolConfig as kritzel_tool_config, KritzelTooltip as kritzel_tooltip, KritzelUtilityPanel as kritzel_utility_panel, KritzelWatermark as kritzel_watermark, KritzelWorkspaceManager as kritzel_workspace_manager, KritzelZoomPanel as kritzel_zoom_panel };
|