kritzel-stencil 0.4.24 → 0.4.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/LICENSE.md +49 -49
- package/dist/cjs/{index-Dn19mGl-.js → index-Xav9JFHg.js} +13 -49
- package/dist/cjs/index.cjs.js +7 -1
- package/dist/cjs/{kritzel-active-users_47.cjs.entry.js → kritzel-active-users_46.cjs.entry.js} +112 -217
- package/dist/cjs/kritzel-brush-style.cjs.entry.js +2 -2
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{schema.constants-CY0WWJYd.js → schema.constants-CjN-B633.js} +20 -44
- package/dist/cjs/stencil.cjs.js +3 -3
- package/dist/collection/classes/providers/sync/hocuspocus-sync-provider.class.js +3 -0
- package/dist/collection/classes/providers/sync/websocket-sync-provider.class.js +3 -0
- package/dist/collection/collection-manifest.json +1 -2
- package/dist/collection/components/core/kritzel-awareness-cursors/kritzel-awareness-cursors.css +115 -115
- package/dist/collection/components/core/kritzel-awareness-cursors/kritzel-awareness-cursors.js +1 -1
- package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.css +10 -10
- package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +1 -1
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.css +160 -160
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +18 -20
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.css +80 -80
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +22 -124
- package/dist/collection/components/core/kritzel-watermark/kritzel-watermark.css +29 -29
- package/dist/collection/components/core/kritzel-watermark/kritzel-watermark.js +2 -2
- package/dist/collection/components/shared/kritzel-avatar/kritzel-avatar.css +58 -58
- package/dist/collection/components/shared/kritzel-avatar/kritzel-avatar.js +3 -3
- package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.css +42 -42
- package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js +3 -3
- package/dist/collection/components/shared/kritzel-button/kritzel-button.css +73 -73
- package/dist/collection/components/shared/kritzel-button/kritzel-button.js +2 -2
- package/dist/collection/components/shared/kritzel-color/kritzel-color.css +24 -24
- package/dist/collection/components/shared/kritzel-color/kritzel-color.js +2 -2
- package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.css +46 -46
- package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +1 -1
- package/dist/collection/components/shared/kritzel-dialog/kritzel-dialog.css +209 -209
- package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.css +190 -190
- package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js +2 -2
- package/dist/collection/components/shared/kritzel-font/kritzel-font.css +10 -10
- package/dist/collection/components/shared/kritzel-font/kritzel-font.js +1 -1
- package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.css +48 -48
- package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js +2 -2
- package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.css +30 -30
- package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +1 -1
- package/dist/collection/components/shared/kritzel-icon/kritzel-icon.css +18 -18
- package/dist/collection/components/shared/kritzel-input/kritzel-input.css +69 -69
- package/dist/collection/components/shared/kritzel-input/kritzel-input.js +1 -1
- package/dist/collection/components/shared/kritzel-line-endings/kritzel-line-endings.css +60 -60
- package/dist/collection/components/shared/kritzel-line-endings/kritzel-line-endings.js +3 -3
- package/dist/collection/components/shared/kritzel-master-detail/kritzel-master-detail.css +190 -190
- package/dist/collection/components/shared/kritzel-master-detail/kritzel-master-detail.js +3 -3
- package/dist/collection/components/shared/kritzel-menu/kritzel-menu.css +34 -34
- package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +1 -1
- package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.css +166 -166
- 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.css +102 -102
- 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.css +85 -85
- package/dist/collection/components/shared/kritzel-opacity-slider/kritzel-opacity-slider.js +1 -1
- package/dist/collection/components/shared/kritzel-pill-tabs/kritzel-pill-tabs.css +68 -68
- package/dist/collection/components/shared/kritzel-pill-tabs/kritzel-pill-tabs.js +2 -2
- package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +1 -1
- package/dist/collection/components/shared/kritzel-shape-fill/kritzel-shape-fill.css +47 -47
- package/dist/collection/components/shared/kritzel-shape-fill/kritzel-shape-fill.js +4 -4
- package/dist/collection/components/shared/kritzel-slide-toggle/kritzel-slide-toggle.css +48 -48
- 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.css +78 -78
- 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.css +37 -37
- package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +1 -1
- package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.css +18 -18
- package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +2 -2
- package/dist/collection/components/ui/kritzel-active-users/kritzel-active-users.css +65 -65
- package/dist/collection/components/ui/kritzel-back-to-content/kritzel-back-to-content.css +42 -42
- package/dist/collection/components/ui/kritzel-back-to-content/kritzel-back-to-content.js +1 -1
- package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.css +112 -112
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.css +331 -331
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +6 -6
- package/dist/collection/components/ui/kritzel-current-user/kritzel-current-user.css +11 -11
- package/dist/collection/components/ui/kritzel-current-user/kritzel-current-user.js +1 -1
- package/dist/collection/components/ui/kritzel-current-user-dialog/kritzel-current-user-dialog.css +39 -39
- package/dist/collection/components/ui/kritzel-current-user-dialog/kritzel-current-user-dialog.js +1 -1
- package/dist/collection/components/ui/kritzel-export/kritzel-export.css +89 -89
- 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 -50
- package/dist/collection/components/ui/kritzel-loading-overlay/kritzel-loading-overlay.js +1 -1
- package/dist/collection/components/ui/kritzel-login-dialog/kritzel-login-dialog.css +98 -98
- 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.css +58 -58
- package/dist/collection/components/ui/kritzel-more-menu/kritzel-more-menu.js +2 -2
- package/dist/collection/components/ui/kritzel-notification-card/kritzel-notification-card.css +101 -101
- package/dist/collection/components/ui/kritzel-settings/kritzel-settings.css +137 -137
- package/dist/collection/components/ui/kritzel-settings/kritzel-settings.js +1 -1
- package/dist/collection/components/ui/kritzel-share-dialog/kritzel-share-dialog.css +150 -150
- package/dist/collection/components/ui/kritzel-share-dialog/kritzel-share-dialog.js +2 -2
- package/dist/collection/components/ui/kritzel-tool-config/kritzel-tool-config.css +38 -38
- package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.css +45 -45
- package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +1 -1
- package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.css +16 -16
- package/dist/collection/components/ui/kritzel-zoom-panel/kritzel-zoom-panel.css +72 -72
- package/dist/collection/components/ui/kritzel-zoom-panel/kritzel-zoom-panel.js +1 -1
- package/dist/collection/constants/version.js +1 -1
- package/dist/collection/helpers/cursor.helper.js +6 -6
- package/dist/collection/helpers/svg-export.helper.js +41 -41
- package/dist/components/index.d.ts +0 -2
- package/dist/components/index.js +9 -4
- package/dist/components/kritzel-active-users.js +1 -1
- package/dist/components/kritzel-avatar.js +1 -1
- package/dist/components/kritzel-awareness-cursors.js +1 -1
- package/dist/components/kritzel-back-to-content.js +1 -1
- package/dist/components/kritzel-brush-style.js +4 -4
- 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-context-menu.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-cursor-trail.js +1 -1
- package/dist/components/kritzel-dialog.js +1 -1
- package/dist/components/kritzel-dropdown.js +1 -1
- package/dist/components/kritzel-editor.js +94 -102
- package/dist/components/kritzel-engine.js +1 -1
- package/dist/components/kritzel-export.js +1 -1
- package/dist/components/kritzel-font-family.js +1 -1
- package/dist/components/kritzel-font-size.js +1 -1
- package/dist/components/kritzel-font.js +1 -1
- package/dist/components/kritzel-icon.js +1 -1
- package/dist/components/kritzel-input.js +1 -1
- package/dist/components/kritzel-line-endings.js +1 -1
- package/dist/components/kritzel-loading-overlay.js +1 -1
- package/dist/components/kritzel-login-dialog.js +1 -1
- package/dist/components/kritzel-master-detail.js +1 -1
- package/dist/components/kritzel-menu-item.js +1 -1
- package/dist/components/kritzel-menu.js +1 -1
- package/dist/components/kritzel-more-menu.js +1 -1
- package/dist/components/kritzel-notification-card.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-pill-tabs.js +1 -1
- package/dist/components/kritzel-portal.js +1 -1
- package/dist/components/kritzel-settings.js +1 -1
- package/dist/components/kritzel-shape-fill.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-BFYT03fw.js → p-B38_9BJg.js} +3 -3
- package/dist/components/{p-C9_yBEoX.js → p-B43upypT.js} +10 -30
- package/dist/components/{p-Covorf4C.js → p-BFYtCsZu.js} +3 -3
- package/dist/components/{p-BppcoKoo.js → p-BPzdPKWE.js} +5 -5
- package/dist/components/{p-Cx-L_28S.js → p-Ba0c-tu2.js} +3 -3
- package/dist/components/{p-MhQxGUvY.js → p-BeSKOETx.js} +3 -3
- package/dist/components/{p-CLAz6RJc.js → p-BprEDRpA.js} +3 -3
- package/dist/components/{p-BXUx_C0N.js → p-BsLI_BWq.js} +2 -2
- package/dist/components/{p-CSKToqUl.js → p-C0FEC_gS.js} +4 -4
- package/dist/components/{p-D2VcPEtL.js → p-CAXR5-S9.js} +6 -6
- package/dist/components/{p-DYPA7jpg.js → p-CBrn5AIB.js} +2 -2
- package/dist/components/{p-D3BzgkIE.js → p-CSPYkLLH.js} +2 -2
- package/dist/components/{p-Ck-87E2G.js → p-CSuU8frA.js} +1 -1
- package/dist/components/{p-Di--2boB.js → p-CXpv9Rxe.js} +3 -3
- package/dist/components/{p-dAXnRkjA.js → p-Ce1j1-Hg.js} +5 -5
- package/dist/components/{p-BrA9NBEE.js → p-CeffYwAK.js} +21 -21
- package/dist/components/{p-DT_WBwsw.js → p-ChPs27Fd.js} +6 -6
- package/dist/components/{p-3tBE7SyG.js → p-Cm33td2O.js} +2 -2
- package/dist/components/{p-BkXQL5Dl.js → p-CoXN583u.js} +5 -5
- package/dist/components/{p-Ch-KG9To.js → p-CucCT7Qn.js} +3 -3
- package/dist/components/{p-DPsbNStn.js → p-Cva3jIIU.js} +2 -2
- package/dist/components/{p-D0Trc3IQ.js → p-D0Ed8epW.js} +5 -5
- package/dist/components/{p-DafP9PAA.js → p-DFMZEarE.js} +2 -2
- package/dist/components/{p-BShrnlam.js → p-DK0anxtL.js} +2 -2
- package/dist/components/{p-zG-WUBGF.js → p-DN9p3G9K.js} +4 -4
- package/dist/components/{p-DcUIO14-.js → p-DOTdJ3JQ.js} +4 -4
- package/dist/components/{p-CWAChRD5.js → p-DOl-95VY.js} +12 -12
- package/dist/components/{p-Dznwo6oc.js → p-DTB3ykgO.js} +2 -2
- package/dist/components/{p-BZZ3KRPk.js → p-DUmLsjKb.js} +3 -3
- package/dist/components/{p-DwEYMvIn.js → p-DUoQyGKc.js} +66 -178
- package/dist/components/{p-QSyeAy8R.js → p-DX2nriaq.js} +2 -2
- package/dist/components/{p-BrqSjRJN.js → p-D_cyY7Nd.js} +3 -3
- package/dist/components/{p-CHoOe3FD.js → p-Df3BwVGy.js} +3 -3
- package/dist/components/{p-CSWCmyzb.js → p-DhabvHJM.js} +5 -5
- package/dist/components/{p-o3NYKrVL.js → p-DkHYY72B.js} +3 -3
- package/dist/components/{p-vDCa_ZDm.js → p-DnmVD1Mz.js} +3 -3
- package/dist/components/{p-fSV6KVTC.js → p-DoxFuOy1.js} +3 -3
- package/dist/components/{p-b0J2ktAm.js → p-Dpm75DfV.js} +7 -7
- package/dist/components/{p-ME1sDz3f.js → p-Dvn6ad4a.js} +2 -2
- package/dist/components/{p-Qdo3E8dr.js → p-NOWtUeeQ.js} +2 -2
- package/dist/components/{p-Dp1CD4gK.js → p-OUl5CA4Y.js} +2 -2
- package/dist/components/{p-D6JycG-I.js → p-bAacqNHq.js} +3 -3
- package/dist/components/{p-DjXQxw9R.js → p-djJSnjAX.js} +3 -3
- package/dist/components/{p-1Q4VnThv.js → p-jIKskj3S.js} +3 -3
- package/dist/components/{p-DW1B118Q.js → p-m7SeNszM.js} +9 -9
- package/dist/esm/{index-2va1Pk9z.js → index-Dhio9uis.js} +13 -49
- package/dist/esm/index.js +8 -2
- package/dist/{stencil/p-ce6d432e.entry.js → esm/kritzel-active-users_46.entry.js} +113 -217
- package/dist/esm/kritzel-brush-style.entry.js +2 -2
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{schema.constants-DBvUmuDH.js → schema.constants-DfvqHmxc.js} +20 -44
- package/dist/esm/stencil.js +4 -4
- package/dist/stencil/index.esm.js +8 -2
- package/dist/{esm/kritzel-active-users_47.entry.js → stencil/p-5c045d3e.entry.js} +113 -217
- package/dist/stencil/{p-DBvUmuDH.js → p-DfvqHmxc.js} +20 -44
- package/dist/stencil/{p-2va1Pk9z.js → p-Dhio9uis.js} +11 -47
- package/dist/stencil/{p-df06ca3a.entry.js → p-fb32cd8f.entry.js} +2 -2
- package/dist/stencil/stencil.esm.js +4 -4
- package/dist/types/classes/providers/sync/hocuspocus-sync-provider.class.d.ts +1 -0
- package/dist/types/classes/providers/sync/websocket-sync-provider.class.d.ts +1 -0
- package/dist/types/components/core/kritzel-editor/kritzel-editor.d.ts +0 -1
- package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +0 -14
- package/dist/types/components.d.ts +0 -42
- package/dist/types/constants/version.d.ts +1 -1
- package/dist/types/interfaces/sync-provider.interface.d.ts +7 -0
- package/dist/types/stencil-public-runtime.d.ts +0 -12
- package/loader/index.d.ts +1 -1
- package/package.json +1 -1
- package/readme.md +10 -10
- package/dist/collection/components/shared/kritzel-sync-indicator/kritzel-sync-indicator.css +0 -50
- package/dist/collection/components/shared/kritzel-sync-indicator/kritzel-sync-indicator.js +0 -66
- package/dist/components/kritzel-sync-indicator.d.ts +0 -11
- package/dist/components/kritzel-sync-indicator.js +0 -6
- package/dist/components/p-Bxi-Bm49.js +0 -39
- package/dist/types/components/shared/kritzel-sync-indicator/kritzel-sync-indicator.d.ts +0 -7
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-
|
|
2
|
-
import { a as KritzelMouseButton, d as defineCustomElement$3 } from './p-
|
|
3
|
-
import { K as KritzelBaseObject, e as KritzelMathHelper, f as KritzelGeometryHelper, a as KritzelPath, b as KritzelLine, d as defineCustomElement$4 } from './p-
|
|
1
|
+
import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-B43upypT.js';
|
|
2
|
+
import { a as KritzelMouseButton, d as defineCustomElement$3 } from './p-Cm33td2O.js';
|
|
3
|
+
import { K as KritzelBaseObject, e as KritzelMathHelper, f as KritzelGeometryHelper, a as KritzelPath, b as KritzelLine, d as defineCustomElement$4 } from './p-bAacqNHq.js';
|
|
4
4
|
import { c as commonjsGlobal } from './p-BFTU3MAI.js';
|
|
5
5
|
import { a as KritzelColorHelper, D as DEFAULT_COLOR_PALETTE, K as KritzelThemeManager } from './p-7I4Uzjrw.js';
|
|
6
6
|
import { K as KritzelDevicesHelper } from './p-jGOpkGDl.js';
|
|
7
7
|
import { K as KritzelFontRegistry, r as resolveTextToolAvailableFonts } from './p-DJkKlUyZ.js';
|
|
8
|
-
import { A as ABSOLUTE_SCALE_MAX, a as ABSOLUTE_SCALE_MIN, d as defineCustomElement$1 } from './p-
|
|
8
|
+
import { A as ABSOLUTE_SCALE_MAX, a as ABSOLUTE_SCALE_MIN, d as defineCustomElement$1 } from './p-DK0anxtL.js';
|
|
9
9
|
import { K as KritzelWorkspace, W as WORKSPACE_EXPORT_VERSION } from './p-DAwPPDMS.js';
|
|
10
10
|
import { K as KritzelHTMLHelper } from './p-WUdQqYnu.js';
|
|
11
11
|
import { O as ObjectHelper } from './p-DPONTran.js';
|
|
12
12
|
import * as Y from 'yjs';
|
|
13
13
|
import { a as CURRENT_WORKSPACE_SCHEMA_VERSION, C as CURRENT_APP_STATE_SCHEMA_VERSION } from './p-CW-VyJgK.js';
|
|
14
|
-
import { K as KritzelIconRegistry, d as defineCustomElement$2 } from './p-
|
|
14
|
+
import { K as KritzelIconRegistry, d as defineCustomElement$2 } from './p-CSuU8frA.js';
|
|
15
15
|
|
|
16
16
|
class KritzelKeyboardHelper {
|
|
17
17
|
static forceHideKeyboard() {
|
|
@@ -5076,11 +5076,10 @@ class Fitter {
|
|
|
5076
5076
|
}
|
|
5077
5077
|
openMore() {
|
|
5078
5078
|
let { content, openStart, openEnd } = this.unplaced;
|
|
5079
|
-
|
|
5079
|
+
let inner = contentAt(content, openStart);
|
|
5080
|
+
if (!inner.childCount || inner.firstChild.isLeaf)
|
|
5080
5081
|
return false;
|
|
5081
|
-
|
|
5082
|
-
openEnd++;
|
|
5083
|
-
this.unplaced = new Slice(content, openStart + 1, openEnd);
|
|
5082
|
+
this.unplaced = new Slice(content, openStart + 1, Math.max(openEnd, inner.size + openStart >= content.size - openEnd ? openStart + 1 : 0));
|
|
5084
5083
|
return true;
|
|
5085
5084
|
}
|
|
5086
5085
|
dropNode() {
|
|
@@ -5250,14 +5249,6 @@ function invalidMarks(type, fragment, start) {
|
|
|
5250
5249
|
function definesContent(type) {
|
|
5251
5250
|
return type.spec.defining || type.spec.definingForContent;
|
|
5252
5251
|
}
|
|
5253
|
-
function maxOpen(frag, side) {
|
|
5254
|
-
for (let count = 0;; count++) {
|
|
5255
|
-
let ch = side < 0 ? frag.firstChild : frag.lastChild;
|
|
5256
|
-
if (!ch || ch.isAtom)
|
|
5257
|
-
return count;
|
|
5258
|
-
frag = ch.content;
|
|
5259
|
-
}
|
|
5260
|
-
}
|
|
5261
5252
|
function replaceRange(tr, from, to, slice) {
|
|
5262
5253
|
if (!slice.size)
|
|
5263
5254
|
return tr.deleteRange(from, to);
|
|
@@ -7962,8 +7953,7 @@ class WidgetViewDesc extends ViewDesc {
|
|
|
7962
7953
|
wrap.appendChild(dom);
|
|
7963
7954
|
dom = wrap;
|
|
7964
7955
|
}
|
|
7965
|
-
|
|
7966
|
-
dom.contentEditable = "false";
|
|
7956
|
+
dom.contentEditable = "false";
|
|
7967
7957
|
dom.classList.add("ProseMirror-widget");
|
|
7968
7958
|
}
|
|
7969
7959
|
super(parent, [], dom, null);
|
|
@@ -9811,14 +9801,8 @@ function maybeWrapTrusted(html) {
|
|
|
9811
9801
|
// With the require-trusted-types-for CSP, Chrome will block
|
|
9812
9802
|
// innerHTML, even on a detached document. This wraps the string in
|
|
9813
9803
|
// a way that makes the browser allow us to use its parser again.
|
|
9814
|
-
if (!_policy)
|
|
9815
|
-
|
|
9816
|
-
try {
|
|
9817
|
-
return _policy.createHTML(html);
|
|
9818
|
-
}
|
|
9819
|
-
catch (_a) { }
|
|
9820
|
-
_policy = trustedTypes.createPolicy("ProseMirrorClipboard", { createHTML: (s) => s });
|
|
9821
|
-
}
|
|
9804
|
+
if (!_policy)
|
|
9805
|
+
_policy = trustedTypes.defaultPolicy || trustedTypes.createPolicy("ProseMirrorClipboard", { createHTML: (s) => s });
|
|
9822
9806
|
return _policy.createHTML(html);
|
|
9823
9807
|
}
|
|
9824
9808
|
function readHTML(html) {
|
|
@@ -9875,12 +9859,6 @@ function addContext(slice, context) {
|
|
|
9875
9859
|
let type = schema.nodes[array[i]];
|
|
9876
9860
|
if (!type || type.hasRequiredAttrs())
|
|
9877
9861
|
break;
|
|
9878
|
-
try {
|
|
9879
|
-
type.checkAttrs(array[i + 1]);
|
|
9880
|
-
}
|
|
9881
|
-
catch (e) {
|
|
9882
|
-
break;
|
|
9883
|
-
}
|
|
9884
9862
|
content = Fragment.from(type.create(array[i + 1], content));
|
|
9885
9863
|
openStart++;
|
|
9886
9864
|
openEnd++;
|
|
@@ -13539,20 +13517,16 @@ a custom function to determine the type of the newly split off block.
|
|
|
13539
13517
|
*/
|
|
13540
13518
|
function splitBlockAs(splitNode) {
|
|
13541
13519
|
return (state, dispatch) => {
|
|
13520
|
+
let { $from} = state.selection;
|
|
13542
13521
|
if (state.selection instanceof NodeSelection && state.selection.node.isBlock) {
|
|
13543
|
-
let { $from } = state.selection;
|
|
13544
13522
|
if (!$from.parentOffset || !canSplit(state.doc, $from.pos))
|
|
13545
13523
|
return false;
|
|
13546
13524
|
if (dispatch)
|
|
13547
13525
|
dispatch(state.tr.split($from.pos).scrollIntoView());
|
|
13548
13526
|
return true;
|
|
13549
13527
|
}
|
|
13550
|
-
if (
|
|
13528
|
+
if (!$from.depth)
|
|
13551
13529
|
return false;
|
|
13552
|
-
let tr = state.tr;
|
|
13553
|
-
if (!state.selection.empty && (state.selection instanceof TextSelection || state.selection instanceof AllSelection))
|
|
13554
|
-
tr.deleteSelection();
|
|
13555
|
-
let { $from } = tr.selection, mapFrom = tr.steps.length;
|
|
13556
13530
|
let types = [];
|
|
13557
13531
|
let splitDepth, deflt, atEnd = false, atStart = false;
|
|
13558
13532
|
for (let d = $from.depth;; d--) {
|
|
@@ -13571,7 +13545,10 @@ function splitBlockAs(splitNode) {
|
|
|
13571
13545
|
types.unshift(null);
|
|
13572
13546
|
}
|
|
13573
13547
|
}
|
|
13574
|
-
let
|
|
13548
|
+
let tr = state.tr;
|
|
13549
|
+
if (state.selection instanceof TextSelection || state.selection instanceof AllSelection)
|
|
13550
|
+
tr.deleteSelection();
|
|
13551
|
+
let splitPos = tr.mapping.map($from.pos);
|
|
13575
13552
|
let can = canSplit(tr.doc, splitPos, types.length, types);
|
|
13576
13553
|
if (!can) {
|
|
13577
13554
|
types[0] = deflt ? { type: deflt } : null;
|
|
@@ -13581,10 +13558,9 @@ function splitBlockAs(splitNode) {
|
|
|
13581
13558
|
return false;
|
|
13582
13559
|
tr.split(splitPos, types.length, types);
|
|
13583
13560
|
if (!atEnd && atStart && $from.node(splitDepth).type != deflt) {
|
|
13584
|
-
let
|
|
13585
|
-
let first = mapping.map($from.before(splitDepth)), $first = tr.doc.resolve(first);
|
|
13561
|
+
let first = tr.mapping.map($from.before(splitDepth)), $first = tr.doc.resolve(first);
|
|
13586
13562
|
if (deflt && $from.node(splitDepth - 1).canReplaceWith($first.index(), $first.index() + 1, deflt))
|
|
13587
|
-
tr.setNodeMarkup(mapping.map($from.before(splitDepth)), deflt);
|
|
13563
|
+
tr.setNodeMarkup(tr.mapping.map($from.before(splitDepth)), deflt);
|
|
13588
13564
|
}
|
|
13589
13565
|
if (dispatch)
|
|
13590
13566
|
dispatch(tr.scrollIntoView());
|
|
@@ -19319,12 +19295,12 @@ class KritzelCursorHelper {
|
|
|
19319
19295
|
// We rotate around the center of the SVG canvas
|
|
19320
19296
|
const center = size / 2;
|
|
19321
19297
|
// We use a group to apply the rotation
|
|
19322
|
-
const svg = `
|
|
19323
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="${size}" height="${size}" viewBox="0 0 ${size} ${size}">
|
|
19324
|
-
<g transform="rotate(${rotation} ${center} ${center})">
|
|
19325
|
-
${content}
|
|
19326
|
-
</g>
|
|
19327
|
-
</svg>
|
|
19298
|
+
const svg = `
|
|
19299
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="${size}" height="${size}" viewBox="0 0 ${size} ${size}">
|
|
19300
|
+
<g transform="rotate(${rotation} ${center} ${center})">
|
|
19301
|
+
${content}
|
|
19302
|
+
</g>
|
|
19303
|
+
</svg>
|
|
19328
19304
|
`;
|
|
19329
19305
|
// Encode the SVG for use in a data URI
|
|
19330
19306
|
// We need to be careful with encoding to ensure it works across browsers
|
|
@@ -48109,8 +48085,8 @@ class KritzelSvgExportHelper {
|
|
|
48109
48085
|
.join('\n ');
|
|
48110
48086
|
const xmlDecl = includeXmlDeclaration ? '<?xml version="1.0" encoding="UTF-8"?>\n' : '';
|
|
48111
48087
|
const defsContent = defs.length > 0 ? `\n <defs>\n ${defs.join('\n ')}\n </defs>` : '';
|
|
48112
|
-
return `${xmlDecl}<svg xmlns="http://www.w3.org/2000/svg" viewBox="${viewBoxX} ${viewBoxY} ${viewBoxWidth} ${viewBoxHeight}" width="${viewBoxWidth}" height="${viewBoxHeight}">${defsContent}
|
|
48113
|
-
${elements}
|
|
48088
|
+
return `${xmlDecl}<svg xmlns="http://www.w3.org/2000/svg" viewBox="${viewBoxX} ${viewBoxY} ${viewBoxWidth} ${viewBoxHeight}" width="${viewBoxWidth}" height="${viewBoxHeight}">${defsContent}
|
|
48089
|
+
${elements}
|
|
48114
48090
|
</svg>`;
|
|
48115
48091
|
}
|
|
48116
48092
|
/**
|
|
@@ -48262,8 +48238,8 @@ class KritzelSvgExportHelper {
|
|
|
48262
48238
|
const orient = end === 'start' ? 'auto-start-reverse' : 'auto';
|
|
48263
48239
|
const refX = 0;
|
|
48264
48240
|
const refY = size / 2;
|
|
48265
|
-
return `<marker id="${markerId}" markerWidth="${size}" markerHeight="${size}" refX="${refX}" refY="${refY}" orient="${orient}" markerUnits="userSpaceOnUse">
|
|
48266
|
-
<path d="${path}" fill="${fill}" transform="scale(${size / 10})"/>
|
|
48241
|
+
return `<marker id="${markerId}" markerWidth="${size}" markerHeight="${size}" refX="${refX}" refY="${refY}" orient="${orient}" markerUnits="userSpaceOnUse">
|
|
48242
|
+
<path d="${path}" fill="${fill}" transform="scale(${size / 10})"/>
|
|
48267
48243
|
</marker>`;
|
|
48268
48244
|
}
|
|
48269
48245
|
/**
|
|
@@ -48310,10 +48286,10 @@ class KritzelSvgExportHelper {
|
|
|
48310
48286
|
const opacity = path.opacity !== 1 ? ` opacity="${path.opacity}"` : '';
|
|
48311
48287
|
const scale = this.getObjectScale(path);
|
|
48312
48288
|
// Path needs to be wrapped in a g with translation since path.d uses local coordinates
|
|
48313
|
-
return `<g transform="${transform}"${opacity}>
|
|
48314
|
-
<svg viewBox="${path.viewBox}" width="${path.totalWidth / scale}" height="${path.totalHeight / scale}" overflow="visible">
|
|
48315
|
-
<path d="${path.d}" fill="${fill || 'none'}" stroke="${stroke || 'none'}"${path.strokeWidth ? ` stroke-width="${path.strokeWidth}"` : ''}/>
|
|
48316
|
-
</svg>
|
|
48289
|
+
return `<g transform="${transform}"${opacity}>
|
|
48290
|
+
<svg viewBox="${path.viewBox}" width="${path.totalWidth / scale}" height="${path.totalHeight / scale}" overflow="visible">
|
|
48291
|
+
<path d="${path.d}" fill="${fill || 'none'}" stroke="${stroke || 'none'}"${path.strokeWidth ? ` stroke-width="${path.strokeWidth}"` : ''}/>
|
|
48292
|
+
</svg>
|
|
48317
48293
|
</g>`;
|
|
48318
48294
|
}
|
|
48319
48295
|
/**
|
|
@@ -48329,10 +48305,10 @@ class KritzelSvgExportHelper {
|
|
|
48329
48305
|
const scale = this.getObjectScale(line);
|
|
48330
48306
|
const markerStart = line.hasStartArrow ? ` marker-start="url(#${line.startMarkerId})"` : '';
|
|
48331
48307
|
const markerEnd = line.hasEndArrow ? ` marker-end="url(#${line.endMarkerId})"` : '';
|
|
48332
|
-
return `<g transform="${transform}"${opacity}>
|
|
48333
|
-
<svg viewBox="${line.viewBox}" width="${line.totalWidth / scale}" height="${line.totalHeight / scale}" overflow="visible">
|
|
48334
|
-
<path d="${line.d}" fill="none" stroke="${stroke}" stroke-width="${line.strokeWidth}" stroke-linecap="round"${markerStart}${markerEnd}/>
|
|
48335
|
-
</svg>
|
|
48308
|
+
return `<g transform="${transform}"${opacity}>
|
|
48309
|
+
<svg viewBox="${line.viewBox}" width="${line.totalWidth / scale}" height="${line.totalHeight / scale}" overflow="visible">
|
|
48310
|
+
<path d="${line.d}" fill="none" stroke="${stroke}" stroke-width="${line.strokeWidth}" stroke-linecap="round"${markerStart}${markerEnd}/>
|
|
48311
|
+
</svg>
|
|
48336
48312
|
</g>`;
|
|
48337
48313
|
}
|
|
48338
48314
|
/**
|
|
@@ -48356,18 +48332,18 @@ class KritzelSvgExportHelper {
|
|
|
48356
48332
|
const textHtml = this.prosemirrorToHtml(shape.content, shape, theme);
|
|
48357
48333
|
if (textHtml) {
|
|
48358
48334
|
const fontColor = KritzelColorHelper.resolveThemeColor(shape.fontColor, theme);
|
|
48359
|
-
textContent = `
|
|
48360
|
-
<foreignObject x="${shape.x}" y="${shape.y}" width="${shape.width}" height="${shape.height}">
|
|
48361
|
-
<div xmlns="http://www.w3.org/1999/xhtml" style="width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; text-align: center; font-family: ${shape.fontFamily}; font-size: ${shape.fontSize}px; color: ${fontColor}; overflow: hidden;">
|
|
48362
|
-
${textHtml}
|
|
48363
|
-
</div>
|
|
48335
|
+
textContent = `
|
|
48336
|
+
<foreignObject x="${shape.x}" y="${shape.y}" width="${shape.width}" height="${shape.height}">
|
|
48337
|
+
<div xmlns="http://www.w3.org/1999/xhtml" style="width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; text-align: center; font-family: ${shape.fontFamily}; font-size: ${shape.fontSize}px; color: ${fontColor}; overflow: hidden;">
|
|
48338
|
+
${textHtml}
|
|
48339
|
+
</div>
|
|
48364
48340
|
</foreignObject>`;
|
|
48365
48341
|
}
|
|
48366
48342
|
}
|
|
48367
|
-
return `<g transform="${transform}"${opacity}>
|
|
48368
|
-
<svg viewBox="${shape.viewBox}" width="${shape.totalWidth / scale}" height="${shape.totalHeight / scale}" overflow="visible" preserveAspectRatio="none">
|
|
48369
|
-
<path d="${pathD}" fill="${fill || 'transparent'}" stroke="${stroke}" stroke-width="${shape.strokeWidth}"/>${textContent}
|
|
48370
|
-
</svg>
|
|
48343
|
+
return `<g transform="${transform}"${opacity}>
|
|
48344
|
+
<svg viewBox="${shape.viewBox}" width="${shape.totalWidth / scale}" height="${shape.totalHeight / scale}" overflow="visible" preserveAspectRatio="none">
|
|
48345
|
+
<path d="${pathD}" fill="${fill || 'transparent'}" stroke="${stroke}" stroke-width="${shape.strokeWidth}"/>${textContent}
|
|
48346
|
+
</svg>
|
|
48371
48347
|
</g>`;
|
|
48372
48348
|
}
|
|
48373
48349
|
/**
|
|
@@ -48398,10 +48374,10 @@ class KritzelSvgExportHelper {
|
|
|
48398
48374
|
// adjusted font-size already accounts for it – keeping both would double-scale
|
|
48399
48375
|
// the content and overflow the foreignObject.
|
|
48400
48376
|
const svgFontSizePx = (text.fontSize * (4 / 3) * (text.scaleFactor || 1) / scale).toFixed(4);
|
|
48401
|
-
return `<g transform="${transform}"${opacity}>
|
|
48402
|
-
<foreignObject x="0" y="0" width="${width}" height="${height}" overflow="visible">
|
|
48403
|
-
<div xmlns="http://www.w3.org/1999/xhtml" style="font-family: ${text.fontFamily}; font-size: ${svgFontSizePx}px; color: ${fontColor}; background-color: ${bgColor || 'transparent'}; white-space: pre-wrap; word-wrap: break-word; width: 100%; margin: 0; padding: 0; box-sizing: border-box;">${htmlContent.trim()}</div>
|
|
48404
|
-
</foreignObject>
|
|
48377
|
+
return `<g transform="${transform}"${opacity}>
|
|
48378
|
+
<foreignObject x="0" y="0" width="${width}" height="${height}" overflow="visible">
|
|
48379
|
+
<div xmlns="http://www.w3.org/1999/xhtml" style="font-family: ${text.fontFamily}; font-size: ${svgFontSizePx}px; color: ${fontColor}; background-color: ${bgColor || 'transparent'}; white-space: pre-wrap; word-wrap: break-word; width: 100%; margin: 0; padding: 0; box-sizing: border-box;">${htmlContent.trim()}</div>
|
|
48380
|
+
</foreignObject>
|
|
48405
48381
|
</g>`;
|
|
48406
48382
|
}
|
|
48407
48383
|
/**
|
|
@@ -48435,9 +48411,9 @@ class KritzelSvgExportHelper {
|
|
|
48435
48411
|
return `<tspan x="0" y="${y}" xml:space="preserve">${this.escapeHtml(line)}</tspan>`;
|
|
48436
48412
|
})
|
|
48437
48413
|
.join('');
|
|
48438
|
-
return `<g transform="${transform}"${opacity}>
|
|
48439
|
-
${bgRect}
|
|
48440
|
-
<text font-family="${this.escapeHtml(text.fontFamily)}" font-size="${resolvedFontSizePx}" fill="${fontColor}">${tspans}</text>
|
|
48414
|
+
return `<g transform="${transform}"${opacity}>
|
|
48415
|
+
${bgRect}
|
|
48416
|
+
<text font-family="${this.escapeHtml(text.fontFamily)}" font-size="${resolvedFontSizePx}" fill="${fontColor}">${tspans}</text>
|
|
48441
48417
|
</g>`;
|
|
48442
48418
|
}
|
|
48443
48419
|
/**
|
|
@@ -48465,8 +48441,8 @@ class KritzelSvgExportHelper {
|
|
|
48465
48441
|
const width = image.totalWidth / scale;
|
|
48466
48442
|
const height = image.totalHeight / scale;
|
|
48467
48443
|
const href = imageDataUrls?.get(image.id) || image.resolvedSrc || image.src || '';
|
|
48468
|
-
return `<g transform="${transform}"${opacity}>
|
|
48469
|
-
<image href="${href}" x="0" y="0" width="${width}" height="${height}" preserveAspectRatio="xMidYMid meet"/>
|
|
48444
|
+
return `<g transform="${transform}"${opacity}>
|
|
48445
|
+
<image href="${href}" x="0" y="0" width="${width}" height="${height}" preserveAspectRatio="xMidYMid meet"/>
|
|
48470
48446
|
</g>`;
|
|
48471
48447
|
}
|
|
48472
48448
|
/**
|
|
@@ -48486,19 +48462,19 @@ class KritzelSvgExportHelper {
|
|
|
48486
48462
|
if (rasterSafeForCanvas) {
|
|
48487
48463
|
// PNG export: render placeholder rect (foreignObject doesn't rasterize to PNG well)
|
|
48488
48464
|
console.warn('[KritzelCustomElement SVG Export] Custom elements do not serialize well to PNG. Use SVG export or screenshot instead.');
|
|
48489
|
-
return `<g transform="${transform}"${opacity}>
|
|
48490
|
-
<rect x="0" y="0" width="${width}" height="${height}" fill="#f0f0f0" stroke="#999" stroke-width="1" />
|
|
48491
|
-
<text x="${width / 2}" y="${height / 2}" text-anchor="middle" dominant-baseline="middle" font-size="12" fill="#999">[Custom Element]</text>
|
|
48465
|
+
return `<g transform="${transform}"${opacity}>
|
|
48466
|
+
<rect x="0" y="0" width="${width}" height="${height}" fill="#f0f0f0" stroke="#999" stroke-width="1" />
|
|
48467
|
+
<text x="${width / 2}" y="${height / 2}" text-anchor="middle" dominant-baseline="middle" font-size="12" fill="#999">[Custom Element]</text>
|
|
48492
48468
|
</g>`;
|
|
48493
48469
|
}
|
|
48494
48470
|
// SVG export: use foreignObject to embed HTML
|
|
48495
48471
|
const html = obj.element?.outerHTML || '<div style="border:1px dashed #ccc">Empty</div>';
|
|
48496
|
-
return `<g transform="${transform}"${opacity}>
|
|
48497
|
-
<foreignObject x="0" y="0" width="${width}" height="${height}">
|
|
48498
|
-
<div xmlns="http://www.w3.org/1999/xhtml" style="width:100%;height:100%;overflow:hidden;">
|
|
48499
|
-
${html}
|
|
48500
|
-
</div>
|
|
48501
|
-
</foreignObject>
|
|
48472
|
+
return `<g transform="${transform}"${opacity}>
|
|
48473
|
+
<foreignObject x="0" y="0" width="${width}" height="${height}">
|
|
48474
|
+
<div xmlns="http://www.w3.org/1999/xhtml" style="width:100%;height:100%;overflow:hidden;">
|
|
48475
|
+
${html}
|
|
48476
|
+
</div>
|
|
48477
|
+
</foreignObject>
|
|
48502
48478
|
</g>`;
|
|
48503
48479
|
}
|
|
48504
48480
|
/**
|
|
@@ -48518,8 +48494,8 @@ class KritzelSvgExportHelper {
|
|
|
48518
48494
|
return '';
|
|
48519
48495
|
}
|
|
48520
48496
|
const opacity = group.opacity !== 1 ? ` opacity="${group.opacity}"` : '';
|
|
48521
|
-
return `<g${opacity}>
|
|
48522
|
-
${children}
|
|
48497
|
+
return `<g${opacity}>
|
|
48498
|
+
${children}
|
|
48523
48499
|
</g>`;
|
|
48524
48500
|
}
|
|
48525
48501
|
/**
|
|
@@ -48929,10 +48905,7 @@ const KritzelEngine = /*@__PURE__*/ proxyCustomElement(class KritzelEngine exten
|
|
|
48929
48905
|
contextMenuStateChange;
|
|
48930
48906
|
/** Emitted when the combined loading state (external `isLoading` prop or internal workspace loading) changes. */
|
|
48931
48907
|
loadingChange;
|
|
48932
|
-
/** Emitted when remote workspace synchronization is in progress. */
|
|
48933
|
-
syncingChange;
|
|
48934
48908
|
forceUpdate = 0;
|
|
48935
|
-
isSyncing = false;
|
|
48936
48909
|
/** Manually triggers the `objectsSelectionChange` event. */
|
|
48937
48910
|
async triggerSelectionChange() {
|
|
48938
48911
|
this.objectsSelectionChange.emit();
|
|
@@ -50510,12 +50483,6 @@ const KritzelEngine = /*@__PURE__*/ proxyCustomElement(class KritzelEngine exten
|
|
|
50510
50483
|
_syncConfigRevision = 0;
|
|
50511
50484
|
_assetStorageConfigRevision = 0;
|
|
50512
50485
|
_isWorkspaceLoading = false;
|
|
50513
|
-
_syncingRequestId = 0;
|
|
50514
|
-
_syncingShowTimeout = null;
|
|
50515
|
-
_syncingHideTimeout = null;
|
|
50516
|
-
_syncingVisibleSince = null;
|
|
50517
|
-
_syncingShowDelayMs = 300;
|
|
50518
|
-
_syncingMinimumVisibleMs = 500;
|
|
50519
50486
|
_hasLoggedUnlicensedWelcomeBanner = false;
|
|
50520
50487
|
_previousVisibleCustomElements = new Set();
|
|
50521
50488
|
_revealedImageKeys = new Set();
|
|
@@ -50538,66 +50505,6 @@ const KritzelEngine = /*@__PURE__*/ proxyCustomElement(class KritzelEngine exten
|
|
|
50538
50505
|
this.core.store.state.isLoading = this._isWorkspaceLoading || this.isLoading;
|
|
50539
50506
|
this.loadingChange.emit(this.core.store.state.isLoading);
|
|
50540
50507
|
}
|
|
50541
|
-
beginSyncingRequest() {
|
|
50542
|
-
this._syncingRequestId++;
|
|
50543
|
-
this.clearSyncingShowTimeout();
|
|
50544
|
-
this.clearSyncingHideTimeout();
|
|
50545
|
-
return this._syncingRequestId;
|
|
50546
|
-
}
|
|
50547
|
-
syncSyncingState(isSyncing, requestId) {
|
|
50548
|
-
if (requestId !== this._syncingRequestId) {
|
|
50549
|
-
return;
|
|
50550
|
-
}
|
|
50551
|
-
if (isSyncing) {
|
|
50552
|
-
this.clearSyncingHideTimeout();
|
|
50553
|
-
if (this.isSyncing || this._syncingShowTimeout !== null) {
|
|
50554
|
-
return;
|
|
50555
|
-
}
|
|
50556
|
-
this._syncingShowTimeout = setTimeout(() => {
|
|
50557
|
-
this._syncingShowTimeout = null;
|
|
50558
|
-
if (requestId !== this._syncingRequestId || this.isSyncing) {
|
|
50559
|
-
return;
|
|
50560
|
-
}
|
|
50561
|
-
this.isSyncing = true;
|
|
50562
|
-
this._syncingVisibleSince = Date.now();
|
|
50563
|
-
this.syncingChange.emit(true);
|
|
50564
|
-
}, this._syncingShowDelayMs);
|
|
50565
|
-
return;
|
|
50566
|
-
}
|
|
50567
|
-
this.clearSyncingShowTimeout();
|
|
50568
|
-
if (!this.isSyncing) {
|
|
50569
|
-
return;
|
|
50570
|
-
}
|
|
50571
|
-
this.clearSyncingHideTimeout();
|
|
50572
|
-
const elapsedMs = Date.now() - (this._syncingVisibleSince ?? Date.now());
|
|
50573
|
-
const remainingVisibleMs = Math.max(0, this._syncingMinimumVisibleMs - elapsedMs);
|
|
50574
|
-
if (remainingVisibleMs === 0) {
|
|
50575
|
-
this.finishSyncingState(requestId);
|
|
50576
|
-
return;
|
|
50577
|
-
}
|
|
50578
|
-
this._syncingHideTimeout = setTimeout(() => this.finishSyncingState(requestId), remainingVisibleMs);
|
|
50579
|
-
}
|
|
50580
|
-
finishSyncingState(requestId) {
|
|
50581
|
-
this._syncingHideTimeout = null;
|
|
50582
|
-
if (requestId !== this._syncingRequestId || !this.isSyncing) {
|
|
50583
|
-
return;
|
|
50584
|
-
}
|
|
50585
|
-
this.isSyncing = false;
|
|
50586
|
-
this._syncingVisibleSince = null;
|
|
50587
|
-
this.syncingChange.emit(false);
|
|
50588
|
-
}
|
|
50589
|
-
clearSyncingShowTimeout() {
|
|
50590
|
-
if (this._syncingShowTimeout !== null) {
|
|
50591
|
-
clearTimeout(this._syncingShowTimeout);
|
|
50592
|
-
this._syncingShowTimeout = null;
|
|
50593
|
-
}
|
|
50594
|
-
}
|
|
50595
|
-
clearSyncingHideTimeout() {
|
|
50596
|
-
if (this._syncingHideTimeout !== null) {
|
|
50597
|
-
clearTimeout(this._syncingHideTimeout);
|
|
50598
|
-
this._syncingHideTimeout = null;
|
|
50599
|
-
}
|
|
50600
|
-
}
|
|
50601
50508
|
isNetworkAvailable() {
|
|
50602
50509
|
return typeof navigator !== 'undefined' && navigator.onLine;
|
|
50603
50510
|
}
|
|
@@ -50707,13 +50614,11 @@ const KritzelEngine = /*@__PURE__*/ proxyCustomElement(class KritzelEngine exten
|
|
|
50707
50614
|
this.notificationsChange = createEvent(this, "notificationsChange");
|
|
50708
50615
|
this.contextMenuStateChange = createEvent(this, "contextMenuStateChange");
|
|
50709
50616
|
this.loadingChange = createEvent(this, "loadingChange");
|
|
50710
|
-
this.syncingChange = createEvent(this, "syncingChange");
|
|
50711
50617
|
this.core = new KritzelCore(this);
|
|
50712
50618
|
}
|
|
50713
50619
|
disconnectedCallback() {
|
|
50714
50620
|
this.throttledPointerMoveMulti.cancel();
|
|
50715
50621
|
this._revealedImageKeys.clear();
|
|
50716
|
-
this.beginSyncingRequest();
|
|
50717
50622
|
if (this._sceneBootstrapTransitionTimer !== null) {
|
|
50718
50623
|
clearTimeout(this._sceneBootstrapTransitionTimer);
|
|
50719
50624
|
this._sceneBootstrapTransitionTimer = null;
|
|
@@ -50963,27 +50868,11 @@ const KritzelEngine = /*@__PURE__*/ proxyCustomElement(class KritzelEngine exten
|
|
|
50963
50868
|
}
|
|
50964
50869
|
this._isWorkspaceLoading = true;
|
|
50965
50870
|
this.syncLoadingState();
|
|
50966
|
-
const syncingRequestId = this.beginSyncingRequest();
|
|
50967
50871
|
const initializationPromise = this.core.initializeWorkspace(workspace, options);
|
|
50968
50872
|
this._workspaceInitializationPromise = initializationPromise;
|
|
50969
50873
|
this._workspaceInitializationTargetKey = targetKey;
|
|
50970
50874
|
try {
|
|
50971
50875
|
await initializationPromise;
|
|
50972
|
-
// Track remote sync in the background without blocking the loading overlay.
|
|
50973
|
-
const initializedObjects = this.core.store.objects;
|
|
50974
|
-
const networkSyncPromise = initializedObjects?.whenNetworkSynced();
|
|
50975
|
-
if (networkSyncPromise && this.isNetworkAvailable()) {
|
|
50976
|
-
this.syncSyncingState(true, syncingRequestId);
|
|
50977
|
-
void networkSyncPromise.finally(() => {
|
|
50978
|
-
// Only clear syncing for the currently active object map.
|
|
50979
|
-
if (this.core.store.objects === initializedObjects) {
|
|
50980
|
-
this.syncSyncingState(false, syncingRequestId);
|
|
50981
|
-
}
|
|
50982
|
-
});
|
|
50983
|
-
}
|
|
50984
|
-
else {
|
|
50985
|
-
this.syncSyncingState(false, syncingRequestId);
|
|
50986
|
-
}
|
|
50987
50876
|
}
|
|
50988
50877
|
finally {
|
|
50989
50878
|
// Only the most recent init clears loading state to prevent race conditions
|
|
@@ -51735,7 +51624,6 @@ const KritzelEngine = /*@__PURE__*/ proxyCustomElement(class KritzelEngine exten
|
|
|
51735
51624
|
"isZoomingEnabled": [4, "is-zooming-enabled"],
|
|
51736
51625
|
"isLoading": [4, "is-loading"],
|
|
51737
51626
|
"forceUpdate": [32],
|
|
51738
|
-
"isSyncing": [32],
|
|
51739
51627
|
"triggerSelectionChange": [64],
|
|
51740
51628
|
"beginSceneBootstrap": [64],
|
|
51741
51629
|
"endSceneBootstrap": [64],
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-
|
|
1
|
+
import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-B43upypT.js';
|
|
2
2
|
import { K as KritzelHTMLHelper } from './p-WUdQqYnu.js';
|
|
3
3
|
|
|
4
|
-
const kritzelDialogCss = () => `:host{display:contents}.dialog-content{text-align:start;line-height:normal}.backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:10002;display:flex;align-items:center;justify-content:center;background-color:var(--kritzel-dialog-backdrop-color, rgba(0, 0, 0, 0.5));opacity:1;transition:opacity 150ms ease-out}.backdrop.is-animating{opacity:0}.dialog-content{position:relative;display:flex;flex-direction:column;background-color:var(--kritzel-dialog-background-color, #ffffff);border-radius:var(--kritzel-dialog-border-radius, 12px);box-shadow:var(--kritzel-dialog-box-shadow, 0 4px 20px rgba(0, 0, 0, 0.15));border:var(--kritzel-dialog-border, 1px solid #ebebeb);max-height:var(--kritzel-dialog-max-height, 90vh);max-width:var(--kritzel-dialog-max-width, 90vw);overflow:hidden;transform:scale(1);opacity:1;transition:transform 200ms ease-out,
|
|
4
|
+
const kritzelDialogCss = () => `:host{display:contents}.dialog-content{text-align:start;line-height:normal}.backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:10002;display:flex;align-items:center;justify-content:center;background-color:var(--kritzel-dialog-backdrop-color, rgba(0, 0, 0, 0.5));opacity:1;transition:opacity 150ms ease-out}.backdrop.is-animating{opacity:0}.dialog-content{position:relative;display:flex;flex-direction:column;background-color:var(--kritzel-dialog-background-color, #ffffff);border-radius:var(--kritzel-dialog-border-radius, 12px);box-shadow:var(--kritzel-dialog-box-shadow, 0 4px 20px rgba(0, 0, 0, 0.15));border:var(--kritzel-dialog-border, 1px solid #ebebeb);max-height:var(--kritzel-dialog-max-height, 90vh);max-width:var(--kritzel-dialog-max-width, 90vw);overflow:hidden;transform:scale(1);opacity:1;transition:transform 200ms ease-out, opacity 200ms ease-out;font-family:var(--kritzel-dialog-font-family, sans-serif)}.dialog-content.is-animating{transform:scale(0.95);opacity:0}.dialog-content.size-small{width:var(--kritzel-dialog-width-small, 320px);height:var(--kritzel-dialog-height-small, auto)}.dialog-content.size-medium{width:var(--kritzel-dialog-width-medium, 480px);height:var(--kritzel-dialog-height-medium, auto)}.dialog-content.size-large{width:var(--kritzel-dialog-width-large, 640px);height:var(--kritzel-dialog-height-large, auto)}.dialog-content.size-fullscreen{width:100vw;height:100vh;height:100dvh;max-width:100vw;max-height:100vh;max-height:100dvh;border-radius:0}.backdrop.contained-fullscreen{background-color:transparent}.dialog-content.contained-fullscreen{border-radius:0}.dialog-content.contained-fullscreen .dialog-body{display:flex;flex-direction:column}.dialog-content.contained-fullscreen .dialog-body ::slotted(*){flex:1;min-height:0}@media (max-width: 576px), (max-height: 576px) and (orientation: landscape){.backdrop:has(.fullscreen-on-mobile){background-color:transparent}.dialog-content.fullscreen-on-mobile{width:100vw;height:100vh;height:100dvh;max-width:100vw;max-height:100vh;max-height:100dvh;border-radius:0}.dialog-content.fullscreen-on-mobile .dialog-body{display:flex;flex-direction:column}.dialog-content.fullscreen-on-mobile .dialog-body ::slotted(*){flex:1;min-height:0}}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--kritzel-dialog-header-padding, 16px 20px);border-bottom:var(--kritzel-dialog-header-border, 1px solid #ebebeb);gap:12px}.dialog-title{margin:0;font-size:var(--kritzel-dialog-title-font-size, 18px);font-weight:var(--kritzel-dialog-title-font-weight, 600);color:var(--kritzel-dialog-title-color, #1a1a1a);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.close-button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:var(--kritzel-dialog-close-button-border-radius, 6px);background-color:var(--kritzel-dialog-close-button-background, transparent);color:var(--kritzel-dialog-close-button-color, #666666);cursor:var(--kritzel-global-pointer-cursor, pointer);transition:background-color 150ms ease, color 150ms ease;flex-shrink:0;-webkit-tap-highlight-color:transparent}.close-button:hover{background-color:var(--kritzel-dialog-close-button-hover-background, #f5f5f5);color:var(--kritzel-dialog-close-button-hover-color, #1a1a1a)}.close-button:active{background-color:var(--kritzel-dialog-close-button-active-background, #ebebeb)}.close-button:focus-visible{outline:revert;outline-offset:revert}.dialog-body{padding:var(--kritzel-dialog-body-padding, 20px);overflow-y:auto;flex:1;min-height:0;scrollbar-color:var(--kritzel-global-scrollbar-thumb-color, #ebebeb) transparent;scrollbar-width:thin}.dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--kritzel-dialog-footer-gap, 8px);padding:var(--kritzel-dialog-footer-padding, 16px 20px);border-top:var(--kritzel-dialog-footer-border, 1px solid #ebebeb)}::slotted([slot='header']){flex:1}::slotted([slot='footer']){display:contents}`;
|
|
5
5
|
|
|
6
6
|
const KritzelDialog = /*@__PURE__*/ proxyCustomElement(class KritzelDialog extends H {
|
|
7
7
|
constructor(registerHost) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-
|
|
2
|
-
import { d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-B43upypT.js';
|
|
2
|
+
import { d as defineCustomElement$1 } from './p-CSuU8frA.js';
|
|
3
3
|
|
|
4
4
|
const kritzelBackToContentCss = () => `:host{display:block;z-index:var(--kritzel-back-to-content-z-index, 1000)}.back-to-content-button{display:flex;align-items:center;justify-content:center;height:var(--kritzel-back-to-content-height, 50px);box-sizing:border-box;gap:var(--kritzel-back-to-content-gap, 6px);padding:var(--kritzel-back-to-content-padding, 0 16px);border:var(--kritzel-back-to-content-border, 1px solid #ebebeb);border-radius:var(--kritzel-back-to-content-border-radius, 12px);background-color:var(--kritzel-back-to-content-background-color, #ffffff);color:var(--kritzel-back-to-content-color, #000000);font-size:var(--kritzel-back-to-content-font-size, 14px);font-weight:var(--kritzel-back-to-content-font-weight, 500);cursor:var(--kritzel-global-pointer-cursor, pointer);box-shadow:var(--kritzel-back-to-content-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));opacity:0;pointer-events:none;transition:opacity 0.2s ease-out, transform 0.2s ease-out, background-color 0.15s ease-out;-webkit-tap-highlight-color:transparent;user-select:none}.back-to-content-button.visible{opacity:1;pointer-events:auto}@media (hover: hover){.back-to-content-button:hover{background-color:var(--kritzel-back-to-content-hover-background-color, hsl(0, 0%, 0%, 4.3%))}}.back-to-content-button:active{background-color:var(--kritzel-back-to-content-active-background-color, hsl(0, 0%, 0%, 8.6%))}`;
|
|
5
5
|
|
|
@@ -28,7 +28,7 @@ const KritzelBackToContent = /*@__PURE__*/ proxyCustomElement(class KritzelBackT
|
|
|
28
28
|
this.backToContent.emit();
|
|
29
29
|
};
|
|
30
30
|
render() {
|
|
31
|
-
return (h(Host, { key: '
|
|
31
|
+
return (h(Host, { key: '0a41ed93e39193416eebdaf786557bffd4653dd0' }, h("button", { key: '1f621de9699127a095e94d910d5c96328324b299', class: { 'back-to-content-button': true, visible: this.visible }, onClick: this.handleClick, "aria-label": this.text }, h("kritzel-icon", { key: '8ff49df055a0472edbbc57d84044a2de09b543c8', name: "chevrons-left" }))));
|
|
32
32
|
}
|
|
33
33
|
static get style() { return kritzelBackToContentCss(); }
|
|
34
34
|
}, [513, "kritzel-back-to-content", {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-
|
|
1
|
+
import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-B43upypT.js';
|
|
2
2
|
|
|
3
|
-
const kritzelDropdownCss = () => `:host{display:inline-flex;vertical-align:middle;width:100%;position:relative}.dropdown-wrapper{display:flex;align-items:center;border:1px solid var(--kritzel-dropdown-border-color, #ebebeb);border-radius:var(--kritzel-dropdown-border-radius, 6px);overflow:visible;height:38px;width:100%;position:relative}.dropdown-wrapper:hover:not(:focus-within){border-color:var(--kritzel-dropdown-hover-border-color, #cccccc)}.dropdown-container{flex:1;height:100%;min-width:0}.dropdown-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 8px;height:100%;width:100%;box-sizing:border-box;border-radius:var(--kritzel-dropdown-border-radius, 6px);border:none;background-color:var(--kritzel-dropdown-background, #ffffff);cursor:var(--kritzel-global-pointer-cursor, pointer);outline:none;font-size:inherit;font-family:inherit;color:var(--kritzel-dropdown-text-color, #333333);-webkit-tap-highlight-color:transparent;text-align:left}.dropdown-trigger:focus-visible{outline:revert}.dropdown-trigger.has-suffix-border{border-right:1px solid var(--kritzel-global-border-color, #ebebeb);border-top-right-radius:0;border-bottom-right-radius:0}.dropdown-trigger.has-prefix-border{border-left:1px solid var(--kritzel-global-border-color, #ebebeb);border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-trigger-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.dropdown-trigger-arrow{display:flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;transition:transform 0.2s ease}.dropdown-trigger-arrow svg{width:100%;height:100%}.dropdown-trigger.is-open .dropdown-trigger-arrow{transform:rotate(180deg)}.dropdown-trigger.is-open.open-up .dropdown-trigger-arrow{transform:rotate(0deg)}.dropdown-menu{position:absolute;left:0;right:0;margin:0;padding:4px 0;list-style:none;background-color:var(--kritzel-dropdown-background, #ffffff);border:1px solid var(--kritzel-global-border-color, #ebebeb);border-radius:var(--kritzel-dropdown-menu-border-radius, var(--kritzel-dropdown-border-radius, 6px));box-shadow:var(--kritzel-controls-box-shadow, 0 4px 12px rgba(0, 0, 0, 0.15));z-index:1000;max-height:240px;overflow-y:auto;opacity:0;visibility:hidden;transition:opacity 0.15s ease,
|
|
3
|
+
const kritzelDropdownCss = () => `:host{display:inline-flex;vertical-align:middle;width:100%;position:relative}.dropdown-wrapper{display:flex;align-items:center;border:1px solid var(--kritzel-dropdown-border-color, #ebebeb);border-radius:var(--kritzel-dropdown-border-radius, 6px);overflow:visible;height:38px;width:100%;position:relative}.dropdown-wrapper:hover:not(:focus-within){border-color:var(--kritzel-dropdown-hover-border-color, #cccccc)}.dropdown-container{flex:1;height:100%;min-width:0}.dropdown-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 8px;height:100%;width:100%;box-sizing:border-box;border-radius:var(--kritzel-dropdown-border-radius, 6px);border:none;background-color:var(--kritzel-dropdown-background, #ffffff);cursor:var(--kritzel-global-pointer-cursor, pointer);outline:none;font-size:inherit;font-family:inherit;color:var(--kritzel-dropdown-text-color, #333333);-webkit-tap-highlight-color:transparent;text-align:left}.dropdown-trigger:focus-visible{outline:revert}.dropdown-trigger.has-suffix-border{border-right:1px solid var(--kritzel-global-border-color, #ebebeb);border-top-right-radius:0;border-bottom-right-radius:0}.dropdown-trigger.has-prefix-border{border-left:1px solid var(--kritzel-global-border-color, #ebebeb);border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-trigger-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.dropdown-trigger-arrow{display:flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;transition:transform 0.2s ease}.dropdown-trigger-arrow svg{width:100%;height:100%}.dropdown-trigger.is-open .dropdown-trigger-arrow{transform:rotate(180deg)}.dropdown-trigger.is-open.open-up .dropdown-trigger-arrow{transform:rotate(0deg)}.dropdown-menu{position:absolute;left:0;right:0;margin:0;padding:4px 0;list-style:none;background-color:var(--kritzel-dropdown-background, #ffffff);border:1px solid var(--kritzel-global-border-color, #ebebeb);border-radius:var(--kritzel-dropdown-menu-border-radius, var(--kritzel-dropdown-border-radius, 6px));box-shadow:var(--kritzel-controls-box-shadow, 0 4px 12px rgba(0, 0, 0, 0.15));z-index:1000;max-height:240px;overflow-y:auto;opacity:0;visibility:hidden;transition:opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;outline:none}.dropdown-menu.open-down{top:calc(100% + 4px);bottom:auto;transform:translateY(-8px)}.dropdown-menu.open-up{bottom:calc(100% + 4px);top:auto;transform:translateY(8px)}.dropdown-menu.is-open{opacity:1;visibility:inherit;transform:translateY(0)}.dropdown-menu.open-up{box-shadow:var(--kritzel-controls-box-shadow, 0 -4px 12px rgba(0, 0, 0, 0.15))}.dropdown-option{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;cursor:var(--kritzel-global-pointer-cursor, pointer);color:var(--kritzel-dropdown-text-color, #333333);transition:background-color 0.1s ease;-webkit-tap-highlight-color:transparent}.dropdown-option.is-focused{background-color:var(--kritzel-dropdown-hover-background-color, #f0f0f0)}.dropdown-option.is-selected{font-weight:600;background-color:var(--kritzel-dropdown-selected-background-color, #007bff1a)}.dropdown-option-check{display:flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;color:var(--kritzel-dropdown-accent-color, #007bff)}.dropdown-option-check svg{width:100%;height:100%}.dropdown-menu{scrollbar-color:var(--kritzel-global-scrollbar-thumb-color, #ebebeb) transparent;scrollbar-width:thin}::slotted(*){height:100%;box-sizing:border-box}`;
|
|
4
4
|
|
|
5
5
|
const KritzelDropdown = /*@__PURE__*/ proxyCustomElement(class KritzelDropdown extends H {
|
|
6
6
|
constructor(registerHost) {
|
|
@@ -242,7 +242,7 @@ const KritzelDropdown = /*@__PURE__*/ proxyCustomElement(class KritzelDropdown e
|
|
|
242
242
|
'open-up': this.openDirection === 'up',
|
|
243
243
|
'open-down': this.openDirection === 'down',
|
|
244
244
|
};
|
|
245
|
-
return (h(Host, { key: '
|
|
245
|
+
return (h(Host, { key: 'c606b338e55dc66396105fa7b4fbdf372f3866e6' }, h("div", { key: 'aa32b73cac337fa4142ecc124cf039a59e3b3118', class: "dropdown-wrapper", ref: el => (this.wrapperElement = el) }, h("slot", { key: '2cd8e9ef246a24c49d58f76f227f36aed4786178', name: "prefix", ref: el => (this.prefixSlotElement = el), onSlotchange: this.evaluatePrefixContent }), h("div", { key: '80df8155e1907017d508e92f155bab5ae12dffab', class: "dropdown-container", style: { width: this.width } }, h("button", { key: 'd86463de7ec58248f1611d6b5d46f0eafc117f36', type: "button", class: triggerClasses, style: { ...this.selectStyles, ...this.getSelectedStyle() }, onClick: this.toggleMenu, onKeyDown: this.handleTriggerKeyDown, "aria-haspopup": "listbox", "aria-expanded": this.isOpen ? 'true' : 'false', ref: el => (this.triggerElement = el) }, h("span", { key: '4ef6a997f7a781fb409e97ed5bd6843d0eaff0bb', class: "dropdown-trigger-label" }, this.getSelectedLabel()), h("span", { key: '6601efcd69d84af1f022d14ede628bac743cc1f1', class: "dropdown-trigger-arrow", "aria-hidden": "true" }, h("svg", { key: '6cb2efe7b4ca890562c10b0e24eb1dfdad90ec24', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, h("polyline", { key: 'a340af5a61dccf5bc29c8a473726b58055c2e9db', points: "6 9 12 15 18 9" }))))), h("slot", { key: '5bd4e5ad4cc4642c7769ecac2106ba82bae626f2', name: "suffix", ref: el => (this.suffixSlotElement = el), onSlotchange: this.evaluateSuffixContent }), h("ul", { key: 'e7a2be8ac261bc5fa1450940e2a57090d6be3315', class: menuClasses, role: "listbox", tabindex: "-1", onKeyDown: this.handleMenuKeyDown, ref: el => (this.menuElement = el) }, this.options.map((option, index) => {
|
|
246
246
|
const isSelected = option.value === this.internalValue;
|
|
247
247
|
const isFocused = index === this.focusedIndex;
|
|
248
248
|
const optionClasses = {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-
|
|
2
|
-
import { d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-B43upypT.js';
|
|
2
|
+
import { d as defineCustomElement$1 } from './p-CSuU8frA.js';
|
|
3
3
|
|
|
4
4
|
const kritzelMasterDetailCss = () => `:host{display:block;width:100%;height:100%}.master-detail-container{display:flex;width:100%;height:100%;min-height:var(--kritzel-master-detail-min-height, 300px);gap:var(--kritzel-master-detail-gap, 0);background-color:var(--kritzel-master-detail-background-color, transparent)}.master-menu{display:flex;flex-direction:column;width:var(--kritzel-master-detail-menu-width, 200px);min-width:var(--kritzel-master-detail-menu-min-width, 160px);padding:var(--kritzel-master-detail-menu-padding, 8px);background-color:var(--kritzel-master-detail-menu-background-color, #ffffff);border-right:var(--kritzel-master-detail-menu-border-right, 1px solid #ebebeb);gap:var(--kritzel-master-detail-menu-gap, 4px);overflow-y:auto}.menu-item{display:flex;align-items:center;gap:var(--kritzel-master-detail-menu-item-gap, 10px);padding:var(--kritzel-master-detail-menu-item-padding, 10px 12px);border:none;border-radius:var(--kritzel-master-detail-menu-item-border-radius, 6px);background-color:var(--kritzel-master-detail-menu-item-background-color, transparent);color:var(--kritzel-master-detail-menu-item-color, #333333);font-family:inherit;font-size:var(--kritzel-master-detail-menu-item-font-size, 14px);font-weight:var(--kritzel-master-detail-menu-item-font-weight, 400);text-align:left;cursor:var(--kritzel-global-pointer-cursor, pointer);transition:background-color 150ms ease, color 150ms ease;-webkit-tap-highlight-color:transparent}.menu-item:hover:not(.is-disabled){background-color:var(--kritzel-master-detail-menu-item-hover-background-color, #ebebeb)}.menu-item:active:not(.is-disabled){background-color:var(--kritzel-master-detail-menu-item-active-background-color, #e0e0e0)}.menu-item.is-selected{background-color:var(--kritzel-master-detail-menu-item-selected-background-color, #0066cc);color:var(--kritzel-master-detail-menu-item-selected-color, #ffffff);font-weight:var(--kritzel-master-detail-menu-item-selected-font-weight, 500)}.menu-item.is-selected:hover{background-color:var(--kritzel-master-detail-menu-item-selected-hover-background-color, #0052a3)}.menu-item.is-disabled{color:var(--kritzel-master-detail-menu-item-disabled-color, #999999);cursor:not-allowed;opacity:0.6}.menu-item:focus-visible{outline:var(--kritzel-master-detail-menu-item-focus-outline, revert);outline-offset:var(--kritzel-master-detail-menu-item-focus-outline-offset, revert)}.menu-item-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.menu-item-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.detail-panel{flex:1;min-height:0;padding:var(--kritzel-master-detail-detail-padding, 16px);background-color:var(--kritzel-master-detail-detail-background-color, #ffffff);overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-color:var(--kritzel-global-scrollbar-thumb-color, #ebebeb) transparent;scrollbar-width:thin}.detail-panel:focus{outline:none}.detail-panel:focus-visible{outline:var(--kritzel-master-detail-detail-focus-outline, revert);outline-offset:var(--kritzel-master-detail-detail-focus-outline-offset, revert)}.mobile-back-button{display:none;align-items:center;gap:8px;background:none;border:none;padding:0 0 16px 0;cursor:pointer;-webkit-tap-highlight-color:transparent;color:var(--kritzel-master-detail-back-button-color, #333333);font-weight:500;font-size:14px;font-family:inherit}.mobile-back-icon{display:flex;align-items:center;flex-shrink:0}.menu-item-chevron{display:none;flex-shrink:0;margin-left:auto;color:var(--kritzel-master-detail-menu-item-chevron-color, #999999)}.menu-item-chevron svg{width:16px;height:16px;stroke:currentColor}@media (max-width: 768px){.master-menu{width:100%;border-right:none}.detail-panel{display:none;width:100%}.master-detail-container.is-mobile-detail-visible .master-menu{display:none}.master-detail-container.is-mobile-detail-visible .detail-panel{display:block}.mobile-back-button{display:flex}.menu-item.is-selected{background-color:transparent;color:var(--kritzel-master-detail-menu-item-color, #333333);font-weight:var(--kritzel-master-detail-menu-item-font-weight, 400)}.menu-item.is-selected:hover{background-color:var(--kritzel-master-detail-menu-item-hover-background-color, #ebebeb)}.menu-item-chevron{display:flex;align-items:center}}`;
|
|
5
5
|
|
|
@@ -102,15 +102,15 @@ const KritzelMasterDetail = /*@__PURE__*/ proxyCustomElement(class KritzelMaster
|
|
|
102
102
|
const selectedItem = this.items.find(item => item.id === this.selectedItemId);
|
|
103
103
|
const panelId = 'master-detail-panel';
|
|
104
104
|
const selectedTabId = selectedItem ? `tab-${selectedItem.id}` : undefined;
|
|
105
|
-
return (h(Host, { key: '
|
|
105
|
+
return (h(Host, { key: 'fc187266604f9d48210096a1574bf86482498a40' }, h("div", { key: '2886b386c6e96df671ff4902b2c9f7084f0c3191', class: {
|
|
106
106
|
'master-detail-container': true,
|
|
107
107
|
'is-mobile-detail-visible': this.showMobileDetail,
|
|
108
|
-
} }, h("nav", { key: '
|
|
108
|
+
} }, h("nav", { key: '94a35861b7c97d7f5f1505e4c25bc7f584c6351f', 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: {
|
|
109
109
|
'menu-item': true,
|
|
110
110
|
'is-selected': item.id === this.selectedItemId,
|
|
111
111
|
'is-disabled': !!item.disabled,
|
|
112
112
|
'is-focused': index === this.focusedIndex,
|
|
113
|
-
}, 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: '
|
|
113
|
+
}, 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: 'd55507c8e818314bd548506d1b568357062378db', id: panelId, class: "detail-panel", role: "tabpanel", "aria-labelledby": selectedTabId }, h("button", { key: 'f7bf50b2ecd7093110ee0fc91d49caf468ee9116', class: "mobile-back-button", onClick: this.handleBackClick, "aria-label": "Back to menu" }, h("kritzel-icon", { key: 'c809cea0d279439ced7a580ea2a4f44d5ec2b8b6', name: "chevron-left", size: 20, class: "mobile-back-icon" }), "Back"), h("slot", { key: '78babf63e193db45e26ea6602ab09dde045bf06e' })))));
|
|
114
114
|
}
|
|
115
115
|
static get watchers() { return {
|
|
116
116
|
"selectedItemId": [{
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-
|
|
1
|
+
import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-B43upypT.js';
|
|
2
2
|
import { K as KritzelHTMLHelper } from './p-WUdQqYnu.js';
|
|
3
3
|
|
|
4
4
|
const kritzelTooltipCss = () => `:host{width:auto}.tooltip-content{position:relative;padding:8px 12px;border-radius:4px;width:fit-content;background-color:var(--kritzel-tooltip-background-color, #ffffff);color:var(--kritzel-tooltip-color, #000000);padding:var(--kritzel-tooltip-padding, 12px);border:var(--kritzel-tooltip-border, 1px solid #ebebeb);border-radius:var(--kritzel-tooltip-border-radius, 16px);white-space:nowrap;box-shadow:var(--kritzel-tooltip-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.12))}`;
|
|
@@ -140,14 +140,14 @@ const KritzelTooltip = /*@__PURE__*/ proxyCustomElement(class KritzelTooltip ext
|
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
142
|
render() {
|
|
143
|
-
return (h(Host, { key: '
|
|
143
|
+
return (h(Host, { key: '407a2f458626f02808fc9d718046a635de71662b', style: {
|
|
144
144
|
position: 'fixed',
|
|
145
145
|
zIndex: '9999',
|
|
146
146
|
transition: 'opacity 0.3s ease-in-out, transform 0.3s ease-in-out',
|
|
147
147
|
visibility: this.isVisible ? 'visible' : 'hidden',
|
|
148
148
|
left: `${this.positionX}px`,
|
|
149
149
|
bottom: `${this.positionY}px`,
|
|
150
|
-
} }, h("div", { key: '
|
|
150
|
+
} }, h("div", { key: '13c00678bd485f1f5bc2676e2c89fd0019f5e089', class: "tooltip-content", onClick: event => event.stopPropagation(), onPointerDown: event => event.stopPropagation(), onMouseDown: event => event.stopPropagation() }, h("slot", { key: '67937f71c611f36a2c47ee2632a8657ced1d8cc7' }))));
|
|
151
151
|
}
|
|
152
152
|
static get watchers() { return {
|
|
153
153
|
"triggerElement": [{
|