kritzel-stencil 0.4.19 → 0.4.21
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} +11 -47
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/kritzel-active-users_47.cjs.entry.js +151 -119
- package/dist/cjs/kritzel-brush-style.cjs.entry.js +2 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{schema.constants-CY0WWJYd.js → schema.constants-CjN-B633.js} +20 -44
- package/dist/cjs/stencil.cjs.js +2 -2
- package/dist/collection/classes/structures/app-state-map.structure.js +16 -6
- package/dist/collection/collection-manifest.json +1 -1
- 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 -18
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.css +80 -80
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +43 -21
- 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-sync-indicator/kritzel-sync-indicator.css +50 -50
- package/dist/collection/components/shared/kritzel-sync-indicator/kritzel-sync-indicator.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.js +3 -3
- 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 +56 -56
- 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-sync-indicator.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-CLAz6RJc.js → p-2WiGyky4.js} +3 -3
- package/dist/components/{p-zG-WUBGF.js → p-4SPnZZkH.js} +4 -4
- package/dist/components/{p-MhQxGUvY.js → p-B-585egz.js} +3 -3
- package/dist/components/{p-C9_yBEoX.js → p-B43upypT.js} +10 -30
- package/dist/components/{p-CSKToqUl.js → p-B5SWPDuq.js} +4 -4
- package/dist/components/{p-Covorf4C.js → p-BFYtCsZu.js} +3 -3
- package/dist/components/{p-DYPA7jpg.js → p-BPsKYMH6.js} +2 -2
- package/dist/components/{p-BL0aCu3R.js → p-BdCrcQ0_.js} +9 -9
- package/dist/components/{p-Cx-L_28S.js → p-BoN700-O.js} +3 -3
- package/dist/components/{p-ME1sDz3f.js → p-BozrueXV.js} +2 -2
- package/dist/components/{p-D2VcPEtL.js → p-BrNsOp2v.js} +6 -6
- package/dist/components/{p-BXUx_C0N.js → p-BsLI_BWq.js} +2 -2
- package/dist/components/{p-dAXnRkjA.js → p-C98Eb3_R.js} +5 -5
- package/dist/components/{p-Bxi-Bm49.js → p-CAoN_STZ.js} +2 -2
- package/dist/components/{p-CSWCmyzb.js → p-CF8pLc07.js} +5 -5
- 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-Csxx9TbU.js → p-C_f_QElb.js} +104 -96
- package/dist/components/{p-o3NYKrVL.js → p-CaBbajU2.js} +3 -3
- package/dist/components/{p-3tBE7SyG.js → p-Cm33td2O.js} +2 -2
- package/dist/components/{p-vDCa_ZDm.js → p-CrHvaLRV.js} +3 -3
- package/dist/components/{p-DT_WBwsw.js → p-CwZ3KKFq.js} +6 -6
- package/dist/components/{p-BZZ3KRPk.js → p-CzW58DHM.js} +3 -3
- package/dist/components/{p-BrqSjRJN.js → p-Czhdc844.js} +3 -3
- package/dist/components/{p-BkXQL5Dl.js → p-D1rjfWgJ.js} +5 -5
- package/dist/components/{p-DPsbNStn.js → p-DB58Oa5V.js} +2 -2
- package/dist/components/{p-DafP9PAA.js → p-DBqoPgev.js} +2 -2
- package/dist/components/{p-BrA9NBEE.js → p-DDTMGbtA.js} +21 -21
- package/dist/components/{p-Dznwo6oc.js → p-DKGg-76-.js} +2 -2
- package/dist/components/{p-Dp1CD4gK.js → p-DVXTPI71.js} +2 -2
- package/dist/components/{p-QSyeAy8R.js → p-DX2nriaq.js} +2 -2
- package/dist/components/{p-CHoOe3FD.js → p-Df3BwVGy.js} +3 -3
- package/dist/components/{p-DcUIO14-.js → p-Dt7-I2Xz.js} +4 -4
- package/dist/components/{p-BShrnlam.js → p-DtnMdWWB.js} +2 -2
- package/dist/components/{p-Ch-KG9To.js → p-DwMqCX2P.js} +3 -3
- package/dist/components/{p-fSV6KVTC.js → p-GKmqCI8r.js} +3 -3
- package/dist/components/{p-CWAChRD5.js → p-HoO86l1o.js} +12 -12
- package/dist/components/{p-Qdo3E8dr.js → p-PjPPCHVL.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-b0J2ktAm.js → p-dsxHDlQ3.js} +7 -7
- package/dist/components/{p-BppcoKoo.js → p-eZXIu4yK.js} +5 -5
- package/dist/components/{p-BFYT03fw.js → p-fL9rl200.js} +3 -3
- package/dist/components/{p-1Q4VnThv.js → p-jIKskj3S.js} +3 -3
- package/dist/components/{p-D0Trc3IQ.js → p-vqEUQ-4Q.js} +5 -5
- package/dist/esm/{index-2va1Pk9z.js → index-Dhio9uis.js} +11 -47
- package/dist/esm/index.js +2 -2
- package/dist/esm/kritzel-active-users_47.entry.js +151 -119
- package/dist/esm/kritzel-brush-style.entry.js +2 -2
- package/dist/esm/loader.js +2 -2
- package/dist/esm/{schema.constants-DBvUmuDH.js → schema.constants-DfvqHmxc.js} +20 -44
- package/dist/esm/stencil.js +3 -3
- package/dist/stencil/index.esm.js +2 -2
- package/dist/stencil/{p-0250005e.entry.js → p-832b80e9.entry.js} +151 -119
- 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/structures/app-state-map.structure.d.ts +6 -0
- package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +5 -0
- package/dist/types/constants/version.d.ts +1 -1
- 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
|
@@ -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-DtnMdWWB.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
|
|
@@ -44726,6 +44702,7 @@ class KritzelAppStateMap {
|
|
|
44726
44702
|
_isReady = false;
|
|
44727
44703
|
_onRemoteChangeCallback = null;
|
|
44728
44704
|
_workspacesObserver = null;
|
|
44705
|
+
_networkSyncPromise = null;
|
|
44729
44706
|
/**
|
|
44730
44707
|
* Indicates whether the app state map has been initialized and is ready for use.
|
|
44731
44708
|
* @returns True if initialized and all providers are connected, false otherwise.
|
|
@@ -44733,6 +44710,13 @@ class KritzelAppStateMap {
|
|
|
44733
44710
|
get isReady() {
|
|
44734
44711
|
return this._isReady;
|
|
44735
44712
|
}
|
|
44713
|
+
/**
|
|
44714
|
+
* Settles when network providers finish their initial sync (or fail/time out).
|
|
44715
|
+
* Resolves immediately when no network providers are configured.
|
|
44716
|
+
*/
|
|
44717
|
+
whenNetworkSynced() {
|
|
44718
|
+
return this._networkSyncPromise ?? Promise.resolve();
|
|
44719
|
+
}
|
|
44736
44720
|
/**
|
|
44737
44721
|
* Indicates whether any configured sync provider replicates over the network.
|
|
44738
44722
|
* Used by the engine to warn when a matching remote asset storage
|
|
@@ -44817,12 +44801,13 @@ class KritzelAppStateMap {
|
|
|
44817
44801
|
if (showSyncProviderInfo && networkProviders.length > 0) {
|
|
44818
44802
|
console.info(`[Kritzel] App-state network providers connecting in background: ${networkProviders.length}`);
|
|
44819
44803
|
}
|
|
44820
|
-
|
|
44821
|
-
|
|
44822
|
-
|
|
44823
|
-
|
|
44824
|
-
|
|
44825
|
-
|
|
44804
|
+
const networkConnectPromises = networkProviders.map(provider => provider.connect().catch(err => {
|
|
44805
|
+
if (showSyncProviderInfo) {
|
|
44806
|
+
console.error(`[Kritzel] Network sync provider "${provider.constructor.name}" failed to connect:`, err);
|
|
44807
|
+
}
|
|
44808
|
+
}));
|
|
44809
|
+
if (networkConnectPromises.length > 0) {
|
|
44810
|
+
this._networkSyncPromise = Promise.allSettled(networkConnectPromises).then(() => undefined);
|
|
44826
44811
|
}
|
|
44827
44812
|
this._isReady = true;
|
|
44828
44813
|
// Run any pending schema migrations before loading data
|
|
@@ -45147,6 +45132,7 @@ class KritzelAppStateMap {
|
|
|
45147
45132
|
// Clear remaining references
|
|
45148
45133
|
this._core = null;
|
|
45149
45134
|
this._onRemoteChangeCallback = null;
|
|
45135
|
+
this._networkSyncPromise = null;
|
|
45150
45136
|
this._isReady = false;
|
|
45151
45137
|
}
|
|
45152
45138
|
}
|
|
@@ -48099,8 +48085,8 @@ class KritzelSvgExportHelper {
|
|
|
48099
48085
|
.join('\n ');
|
|
48100
48086
|
const xmlDecl = includeXmlDeclaration ? '<?xml version="1.0" encoding="UTF-8"?>\n' : '';
|
|
48101
48087
|
const defsContent = defs.length > 0 ? `\n <defs>\n ${defs.join('\n ')}\n </defs>` : '';
|
|
48102
|
-
return `${xmlDecl}<svg xmlns="http://www.w3.org/2000/svg" viewBox="${viewBoxX} ${viewBoxY} ${viewBoxWidth} ${viewBoxHeight}" width="${viewBoxWidth}" height="${viewBoxHeight}">${defsContent}
|
|
48103
|
-
${elements}
|
|
48088
|
+
return `${xmlDecl}<svg xmlns="http://www.w3.org/2000/svg" viewBox="${viewBoxX} ${viewBoxY} ${viewBoxWidth} ${viewBoxHeight}" width="${viewBoxWidth}" height="${viewBoxHeight}">${defsContent}
|
|
48089
|
+
${elements}
|
|
48104
48090
|
</svg>`;
|
|
48105
48091
|
}
|
|
48106
48092
|
/**
|
|
@@ -48252,8 +48238,8 @@ class KritzelSvgExportHelper {
|
|
|
48252
48238
|
const orient = end === 'start' ? 'auto-start-reverse' : 'auto';
|
|
48253
48239
|
const refX = 0;
|
|
48254
48240
|
const refY = size / 2;
|
|
48255
|
-
return `<marker id="${markerId}" markerWidth="${size}" markerHeight="${size}" refX="${refX}" refY="${refY}" orient="${orient}" markerUnits="userSpaceOnUse">
|
|
48256
|
-
<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})"/>
|
|
48257
48243
|
</marker>`;
|
|
48258
48244
|
}
|
|
48259
48245
|
/**
|
|
@@ -48300,10 +48286,10 @@ class KritzelSvgExportHelper {
|
|
|
48300
48286
|
const opacity = path.opacity !== 1 ? ` opacity="${path.opacity}"` : '';
|
|
48301
48287
|
const scale = this.getObjectScale(path);
|
|
48302
48288
|
// Path needs to be wrapped in a g with translation since path.d uses local coordinates
|
|
48303
|
-
return `<g transform="${transform}"${opacity}>
|
|
48304
|
-
<svg viewBox="${path.viewBox}" width="${path.totalWidth / scale}" height="${path.totalHeight / scale}" overflow="visible">
|
|
48305
|
-
<path d="${path.d}" fill="${fill || 'none'}" stroke="${stroke || 'none'}"${path.strokeWidth ? ` stroke-width="${path.strokeWidth}"` : ''}/>
|
|
48306
|
-
</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>
|
|
48307
48293
|
</g>`;
|
|
48308
48294
|
}
|
|
48309
48295
|
/**
|
|
@@ -48319,10 +48305,10 @@ class KritzelSvgExportHelper {
|
|
|
48319
48305
|
const scale = this.getObjectScale(line);
|
|
48320
48306
|
const markerStart = line.hasStartArrow ? ` marker-start="url(#${line.startMarkerId})"` : '';
|
|
48321
48307
|
const markerEnd = line.hasEndArrow ? ` marker-end="url(#${line.endMarkerId})"` : '';
|
|
48322
|
-
return `<g transform="${transform}"${opacity}>
|
|
48323
|
-
<svg viewBox="${line.viewBox}" width="${line.totalWidth / scale}" height="${line.totalHeight / scale}" overflow="visible">
|
|
48324
|
-
<path d="${line.d}" fill="none" stroke="${stroke}" stroke-width="${line.strokeWidth}" stroke-linecap="round"${markerStart}${markerEnd}/>
|
|
48325
|
-
</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>
|
|
48326
48312
|
</g>`;
|
|
48327
48313
|
}
|
|
48328
48314
|
/**
|
|
@@ -48346,18 +48332,18 @@ class KritzelSvgExportHelper {
|
|
|
48346
48332
|
const textHtml = this.prosemirrorToHtml(shape.content, shape, theme);
|
|
48347
48333
|
if (textHtml) {
|
|
48348
48334
|
const fontColor = KritzelColorHelper.resolveThemeColor(shape.fontColor, theme);
|
|
48349
|
-
textContent = `
|
|
48350
|
-
<foreignObject x="${shape.x}" y="${shape.y}" width="${shape.width}" height="${shape.height}">
|
|
48351
|
-
<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;">
|
|
48352
|
-
${textHtml}
|
|
48353
|
-
</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>
|
|
48354
48340
|
</foreignObject>`;
|
|
48355
48341
|
}
|
|
48356
48342
|
}
|
|
48357
|
-
return `<g transform="${transform}"${opacity}>
|
|
48358
|
-
<svg viewBox="${shape.viewBox}" width="${shape.totalWidth / scale}" height="${shape.totalHeight / scale}" overflow="visible" preserveAspectRatio="none">
|
|
48359
|
-
<path d="${pathD}" fill="${fill || 'transparent'}" stroke="${stroke}" stroke-width="${shape.strokeWidth}"/>${textContent}
|
|
48360
|
-
</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>
|
|
48361
48347
|
</g>`;
|
|
48362
48348
|
}
|
|
48363
48349
|
/**
|
|
@@ -48388,10 +48374,10 @@ class KritzelSvgExportHelper {
|
|
|
48388
48374
|
// adjusted font-size already accounts for it – keeping both would double-scale
|
|
48389
48375
|
// the content and overflow the foreignObject.
|
|
48390
48376
|
const svgFontSizePx = (text.fontSize * (4 / 3) * (text.scaleFactor || 1) / scale).toFixed(4);
|
|
48391
|
-
return `<g transform="${transform}"${opacity}>
|
|
48392
|
-
<foreignObject x="0" y="0" width="${width}" height="${height}" overflow="visible">
|
|
48393
|
-
<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>
|
|
48394
|
-
</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>
|
|
48395
48381
|
</g>`;
|
|
48396
48382
|
}
|
|
48397
48383
|
/**
|
|
@@ -48425,9 +48411,9 @@ class KritzelSvgExportHelper {
|
|
|
48425
48411
|
return `<tspan x="0" y="${y}" xml:space="preserve">${this.escapeHtml(line)}</tspan>`;
|
|
48426
48412
|
})
|
|
48427
48413
|
.join('');
|
|
48428
|
-
return `<g transform="${transform}"${opacity}>
|
|
48429
|
-
${bgRect}
|
|
48430
|
-
<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>
|
|
48431
48417
|
</g>`;
|
|
48432
48418
|
}
|
|
48433
48419
|
/**
|
|
@@ -48455,8 +48441,8 @@ class KritzelSvgExportHelper {
|
|
|
48455
48441
|
const width = image.totalWidth / scale;
|
|
48456
48442
|
const height = image.totalHeight / scale;
|
|
48457
48443
|
const href = imageDataUrls?.get(image.id) || image.resolvedSrc || image.src || '';
|
|
48458
|
-
return `<g transform="${transform}"${opacity}>
|
|
48459
|
-
<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"/>
|
|
48460
48446
|
</g>`;
|
|
48461
48447
|
}
|
|
48462
48448
|
/**
|
|
@@ -48476,19 +48462,19 @@ class KritzelSvgExportHelper {
|
|
|
48476
48462
|
if (rasterSafeForCanvas) {
|
|
48477
48463
|
// PNG export: render placeholder rect (foreignObject doesn't rasterize to PNG well)
|
|
48478
48464
|
console.warn('[KritzelCustomElement SVG Export] Custom elements do not serialize well to PNG. Use SVG export or screenshot instead.');
|
|
48479
|
-
return `<g transform="${transform}"${opacity}>
|
|
48480
|
-
<rect x="0" y="0" width="${width}" height="${height}" fill="#f0f0f0" stroke="#999" stroke-width="1" />
|
|
48481
|
-
<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>
|
|
48482
48468
|
</g>`;
|
|
48483
48469
|
}
|
|
48484
48470
|
// SVG export: use foreignObject to embed HTML
|
|
48485
48471
|
const html = obj.element?.outerHTML || '<div style="border:1px dashed #ccc">Empty</div>';
|
|
48486
|
-
return `<g transform="${transform}"${opacity}>
|
|
48487
|
-
<foreignObject x="0" y="0" width="${width}" height="${height}">
|
|
48488
|
-
<div xmlns="http://www.w3.org/1999/xhtml" style="width:100%;height:100%;overflow:hidden;">
|
|
48489
|
-
${html}
|
|
48490
|
-
</div>
|
|
48491
|
-
</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>
|
|
48492
48478
|
</g>`;
|
|
48493
48479
|
}
|
|
48494
48480
|
/**
|
|
@@ -48508,8 +48494,8 @@ class KritzelSvgExportHelper {
|
|
|
48508
48494
|
return '';
|
|
48509
48495
|
}
|
|
48510
48496
|
const opacity = group.opacity !== 1 ? ` opacity="${group.opacity}"` : '';
|
|
48511
|
-
return `<g${opacity}>
|
|
48512
|
-
${children}
|
|
48497
|
+
return `<g${opacity}>
|
|
48498
|
+
${children}
|
|
48513
48499
|
</g>`;
|
|
48514
48500
|
}
|
|
48515
48501
|
/**
|
|
@@ -50787,6 +50773,7 @@ const KritzelEngine = /*@__PURE__*/ proxyCustomElement(class KritzelEngine exten
|
|
|
50787
50773
|
if (!this._isAssetStorageInitialized && this.assetStorageConfig) {
|
|
50788
50774
|
await this.initializeAssetStorage();
|
|
50789
50775
|
}
|
|
50776
|
+
await this.waitForRemoteAppStateIfEmpty();
|
|
50790
50777
|
if (this.activeWorkspaceId) {
|
|
50791
50778
|
const startupWorkspace = this.core.getWorkspaces().find(ws => ws.id === this.activeWorkspaceId);
|
|
50792
50779
|
if (startupWorkspace) {
|
|
@@ -50819,6 +50806,27 @@ const KritzelEngine = /*@__PURE__*/ proxyCustomElement(class KritzelEngine exten
|
|
|
50819
50806
|
}
|
|
50820
50807
|
this.tryResolveActiveWorkspaceFromId();
|
|
50821
50808
|
}
|
|
50809
|
+
/**
|
|
50810
|
+
* On a cold start the remote workspace list may still be in flight; creating a
|
|
50811
|
+
* fallback workspace before it arrives would pollute the synced app state.
|
|
50812
|
+
*/
|
|
50813
|
+
async waitForRemoteAppStateIfEmpty() {
|
|
50814
|
+
if (this.core.getWorkspaces().length > 0) {
|
|
50815
|
+
return;
|
|
50816
|
+
}
|
|
50817
|
+
if (!this.core.appStateMap.hasNetworkSyncProvider || !this.isNetworkAvailable()) {
|
|
50818
|
+
return;
|
|
50819
|
+
}
|
|
50820
|
+
this._isWorkspaceLoading = true;
|
|
50821
|
+
this.syncLoadingState();
|
|
50822
|
+
try {
|
|
50823
|
+
await this.core.appStateMap.whenNetworkSynced();
|
|
50824
|
+
}
|
|
50825
|
+
finally {
|
|
50826
|
+
this._isWorkspaceLoading = false;
|
|
50827
|
+
this.syncLoadingState();
|
|
50828
|
+
}
|
|
50829
|
+
}
|
|
50822
50830
|
resolveStartupWorkspace() {
|
|
50823
50831
|
if (this.activeWorkspaceId) {
|
|
50824
50832
|
const workspaceById = this.core.getWorkspaces().find(ws => ws.id === this.activeWorkspaceId);
|
|
@@ -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: '93486d37c5dcaaf9a3d0d1c53d6308ddd5712560', 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: '4b5cf451f75d09459145b874eb3c7faffafa87e0', class: "tooltip-content", onClick: event => event.stopPropagation(), onPointerDown: event => event.stopPropagation(), onMouseDown: event => event.stopPropagation() }, h("slot", { key: '6c7fda100473a7d4fc533edc52d67bf6909bdc0e' }))));
|
|
151
151
|
}
|
|
152
152
|
static get watchers() { return {
|
|
153
153
|
"triggerElement": [{
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, h, d as Host, t as transformTag } from './p-
|
|
1
|
+
import { p as proxyCustomElement, H, h, d as Host, t as transformTag } from './p-B43upypT.js';
|
|
2
2
|
|
|
3
3
|
var KritzelMouseButton;
|
|
4
4
|
(function (KritzelMouseButton) {
|
|
@@ -79,7 +79,7 @@ const KritzelCursorTrail = /*@__PURE__*/ proxyCustomElement(class KritzelCursorT
|
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
render() {
|
|
82
|
-
return (h(Host, { key: '
|
|
82
|
+
return (h(Host, { key: 'b427550b19a3e172cb25d05e34635121b82a61c5' }, this.cursorTrailPoints.length > 1 && (h("svg", { key: '9685b563497e110f36c0feffbfde04ebeb38024b', class: "cursor-trail-svg", xmlns: "http://www.w3.org/2000/svg", style: {
|
|
83
83
|
position: 'absolute',
|
|
84
84
|
left: '0',
|
|
85
85
|
top: '0',
|
|
@@ -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 kritzelOpacitySliderCss = () => `:host{display:flex;flex-direction:column;padding:0;box-sizing:border-box}.opacity-container{display:flex;align-items:center;width:232px}.slider-wrapper{flex:1;display:flex;align-items:center}.opacity-slider{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:linear-gradient(
|
|
3
|
+
const kritzelOpacitySliderCss = () => `:host{display:flex;flex-direction:column;padding:0;box-sizing:border-box}.opacity-container{display:flex;align-items:center;width:232px}.slider-wrapper{flex:1;display:flex;align-items:center}.opacity-slider{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:linear-gradient( to right, var(--kritzel-opacity-slider-active-color, #007AFF) 0%, var(--kritzel-opacity-slider-active-color, #007AFF) var(--slider-progress, 100%), var(--kritzel-opacity-slider-track-color, #e0e0e0) var(--slider-progress, 100%), var(--kritzel-opacity-slider-track-color, #e0e0e0) 100% );outline:none;cursor:var(--kritzel-global-pointer-cursor, pointer)}.opacity-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--kritzel-opacity-slider-thumb-color, #ffffff);border:2px solid var(--kritzel-opacity-slider-thumb-border-color, #007AFF);cursor:var(--kritzel-global-pointer-cursor, pointer);box-shadow:0 1px 3px rgba(0, 0, 0, 0.2);transition:transform 0.1s ease}.opacity-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.opacity-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--kritzel-opacity-slider-thumb-color, #ffffff);border:2px solid var(--kritzel-opacity-slider-thumb-border-color, #007AFF);cursor:var(--kritzel-global-pointer-cursor, pointer);box-shadow:0 1px 3px rgba(0, 0, 0, 0.2);transition:transform 0.1s ease}.opacity-slider::-moz-range-thumb:hover{transform:scale(1.1)}.opacity-slider::-moz-range-track{height:6px;border-radius:3px;background:transparent}.opacity-slider:focus{outline:none}.opacity-slider:focus::-webkit-slider-thumb{box-shadow:0 0 0 2px var(--kritzel-global-focus-ring-color, rgba(0, 122, 255, 0.3))}.opacity-slider:focus::-moz-range-thumb{box-shadow:0 0 0 2px var(--kritzel-global-focus-ring-color, rgba(0, 122, 255, 0.3))}`;
|
|
4
4
|
|
|
5
5
|
const KritzelOpacitySlider = /*@__PURE__*/ proxyCustomElement(class KritzelOpacitySlider extends H {
|
|
6
6
|
constructor(registerHost) {
|
|
@@ -33,7 +33,7 @@ const KritzelOpacitySlider = /*@__PURE__*/ proxyCustomElement(class KritzelOpaci
|
|
|
33
33
|
}
|
|
34
34
|
render() {
|
|
35
35
|
const percentage = this.getPercentage();
|
|
36
|
-
return (h(Host, { key: '
|
|
36
|
+
return (h(Host, { key: '895ae10ad71e846a1bc62b794751332816650727' }, h("div", { key: '22ea167ce0d6eb17c733d789cde10477c48a2a0e', class: "opacity-container" }, h("div", { key: '2be4fbf8c1f8ddb1fde8f9da727ed0947d21646c', class: "slider-wrapper" }, h("input", { key: 'ed3621baf0adc54aa513a0296ede2f413378a06f', type: "range", class: "opacity-slider", min: this.min, max: this.max, step: this.step, value: this.value, onInput: (e) => this.handleInput(e), style: {
|
|
37
37
|
'--slider-progress': `${percentage}%`,
|
|
38
38
|
'--kritzel-opacity-slider-thumb-border-color': this.previewColor,
|
|
39
39
|
} })))));
|
|
@@ -1,8 +1,8 @@
|
|
|
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 { g as getDefaultExportFromCjs } from './p-BFTU3MAI.js';
|
|
3
|
-
import { d as defineCustomElement$3 } from './p-
|
|
4
|
-
import { d as defineCustomElement$2 } from './p-
|
|
5
|
-
import { d as defineCustomElement$1 } from './p-
|
|
3
|
+
import { d as defineCustomElement$3 } from './p-DX2nriaq.js';
|
|
4
|
+
import { d as defineCustomElement$2 } from './p-CSuU8frA.js';
|
|
5
|
+
import { d as defineCustomElement$1 } from './p-BozrueXV.js';
|
|
6
6
|
|
|
7
7
|
var browser = {};
|
|
8
8
|
|
|
@@ -3204,9 +3204,9 @@ const KritzelShareDialog = /*@__PURE__*/ proxyCustomElement(class KritzelShareDi
|
|
|
3204
3204
|
this.dialogClosed.emit();
|
|
3205
3205
|
};
|
|
3206
3206
|
render() {
|
|
3207
|
-
return (h(Host, { key: '
|
|
3207
|
+
return (h(Host, { key: 'f6028ad618f04e3be65c816f4b53c4ccaa93fc71' }, h("kritzel-dialog", { key: '7dabab65955f287650de4ba484e37f4ccdd7c57e', dialogTitle: this.terms['share.dialogTitle'] ?? 'Share Workspace', size: "small", isOpen: this.isDialogOpen, onDialogClose: this.closeDialog, contained: true }, h("div", { key: '321e2b17048dea20528c0f34f39a462548c64689', class: "share-content" }, h("div", { key: 'b31bbe2f686f5fe2fdc03189ffb98082683fff63', class: "share-section" }, h("div", { key: '2c864e00aa4c2da0a7f8ee6c83f149e6e93610a5', class: "share-row" }, h("div", { key: 'cbee03ac7ec9ee82f22c77d3681d4a540a0780a3', class: "share-label-group" }, h("label", { key: '3be7c8dc2ac2f7dbfe6458a902b14a887895fdc3', class: "share-label" }, this.terms['share.linkSharing.label'] ?? 'Link sharing'), h("p", { key: 'c7401bc76fdccbafc6c7c4e37380fc75f35b3a99', class: "share-description" }, this.internalIsPublic
|
|
3208
3208
|
? (this.terms['share.linkSharing.enabledDescription'] ?? 'Anyone with the link can access this workspace.')
|
|
3209
|
-
: (this.terms['share.linkSharing.disabledDescription'] ?? 'Link sharing is disabled. Only you can access this workspace.'))), h("kritzel-slide-toggle", { key: '
|
|
3209
|
+
: (this.terms['share.linkSharing.disabledDescription'] ?? 'Link sharing is disabled. Only you can access this workspace.'))), h("kritzel-slide-toggle", { key: '52ae14da0d79797e9ad73f1ffbac003fd1395f47', checked: this.internalIsPublic, onCheckedChange: this.handleToggleChange, label: this.terms['share.linkSharing.toggleLabel'] ?? 'Enable link sharing' }))), this.internalIsPublic && (h("div", { key: 'bd44618680db14d7d95f0c1bbc4441a103e9f15a', class: "share-section" }, h("div", { key: '659cd6b2e2e719d76f692a8dc5a8c0855e5d246d', class: "share-url-container" }, h("input", { key: '76be432ecaad753cb7043aad912d8aa1770afb61', type: "text", class: "share-url-input", value: this.getShareUrl(), readOnly: true, onClick: (e) => e.target.select() }), h("button", { key: 'ef75a04964fb481fae2f6e924497eb2adedc100d', 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: '06bbdc32d4348ca6d75dbbe11ba74d94e1c86882', name: this.copySuccess ? 'check' : 'copy', size: 18 }))), this.qrCodeDataUrl && (h("div", { key: '9246e86b26a9794738a29e6a6bfe6c4812339449', class: "share-qr-container" }, h("img", { key: '90e18eee230c23e0bfd773c9b8a6967803ae10dc', class: "share-qr-image", src: this.qrCodeDataUrl, alt: "QR code for share link" })))))))));
|
|
3210
3210
|
}
|
|
3211
3211
|
static get watchers() { return {
|
|
3212
3212
|
"isPublic": [{
|
|
@@ -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 kritzelUtilityPanelCss = () => `:host{display:flex;flex-direction:row;align-items:center;padding:4px;gap:8px;border-top-left-radius:12px;border-top-right-radius:12px;background-color:var(--kritzel-utility-panel-background-color, #e2e2e2);width:fit-content;user-select:none;z-index:1}.utility-button{display:flex;justify-content:center;align-items:center;width:28px;height:28px;padding:8px 4px;border:none;background:none;cursor:var(--kritzel-global-pointer-cursor, pointer);color:var(--kritzel-utility-panel-button-color, #333333);--kritzel-icon-color:var(--kritzel-utility-panel-button-color, #333333);-webkit-tap-highlight-color:transparent;border-radius:var(--kritzel-utility-panel-button-border-radius, 8px)}.utility-button:hover,.utility-button:focus-visible{background-color:var(--kritzel-utility-panel-button-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.utility-button:disabled{opacity:0.4;cursor:not-allowed;pointer-events:none}.utility-separator{width:1px;height:16px;background-color:var(--kritzel-utility-panel-separator-color, hsl(0, 0%, 0%, 8%))}`;
|
|
5
5
|
|
|
@@ -33,7 +33,7 @@ const KritzelUtilityPanel = /*@__PURE__*/ proxyCustomElement(class KritzelUtilit
|
|
|
33
33
|
this.redo.emit();
|
|
34
34
|
}
|
|
35
35
|
render() {
|
|
36
|
-
return (h(Host, { key: '
|
|
36
|
+
return (h(Host, { key: '57c1a6746e4d5b319bb368c9d0bfc52a31d8c8de' }, h("button", { key: '5fb00d62b68de41feda9fafb3eec46cc0b85ba0e', 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: '5ed2c36405ac7113ac697de9102aaf7067127e2a', name: "undo" })), h("button", { key: '0d58c8cbbb8e9547b9416dbf81a2c8011208dc6c', 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: '70264118cbe0f54335a02941fdc868f63476cd1c', name: "redo" })), h("div", { key: '6eed6a603b8bc62e55b1f6fe82e7d035d1f5833c', class: "utility-separator" }), h("button", { key: 'd11195da7a86496afcca26105a6a0f066b1b2340', class: "utility-button", "data-testid": "utility-delete", onClick: () => this.delete.emit(), "aria-label": this.terms['utility.delete'] ?? 'Delete selected items' }, h("kritzel-icon", { key: '5e4c731f90863b4db917c67ac7e87c2945c7bcaa', name: "delete" }))));
|
|
37
37
|
}
|
|
38
38
|
static get style() { return kritzelUtilityPanelCss(); }
|
|
39
39
|
}, [513, "kritzel-utility-panel", {
|
|
@@ -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: '2576489b9f97c77d1931e7c8496bae968d998f9d' }, h("button", { key: 'da891543ce8a9b5ccd2f4a461bdcdc7f3f9ad266', class: { 'back-to-content-button': true, visible: this.visible }, onClick: this.handleClick, "aria-label": this.text }, h("kritzel-icon", { key: '4559cc932918707d5961c6237f3c5e23c9e4cc9d', name: "chevrons-left" }))));
|
|
32
32
|
}
|
|
33
33
|
static get style() { return kritzelBackToContentCss(); }
|
|
34
34
|
}, [513, "kritzel-back-to-content", {
|
|
@@ -1,10 +1,10 @@
|
|
|
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 KritzelWorkspace } from './p-DAwPPDMS.js';
|
|
3
3
|
import { O as ObjectHelper } from './p-DPONTran.js';
|
|
4
|
-
import { d as defineCustomElement$5 } from './p-
|
|
5
|
-
import { d as defineCustomElement$3, a as defineCustomElement$4 } from './p-
|
|
6
|
-
import { d as defineCustomElement$2 } from './p-
|
|
7
|
-
import { d as defineCustomElement$1 } from './p-
|
|
4
|
+
import { d as defineCustomElement$5 } from './p-CSuU8frA.js';
|
|
5
|
+
import { d as defineCustomElement$3, a as defineCustomElement$4 } from './p-BrNsOp2v.js';
|
|
6
|
+
import { d as defineCustomElement$2 } from './p-BPsKYMH6.js';
|
|
7
|
+
import { d as defineCustomElement$1 } from './p-C98Eb3_R.js';
|
|
8
8
|
|
|
9
9
|
const kritzelWorkspaceManagerCss = () => `:host{display:flex;flex-direction:column;z-index:1}.manager{opacity:0;pointer-events:none;transition:opacity 0.2s ease-out}.manager.visible{opacity:1;pointer-events:auto}`;
|
|
10
10
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, h, d as Host, t as transformTag } from './p-
|
|
1
|
+
import { p as proxyCustomElement, H, h, d as Host, t as transformTag } from './p-B43upypT.js';
|
|
2
2
|
|
|
3
3
|
const kritzelLoadingOverlayCss = () => `:host{display:contents}.loading-overlay{position:absolute;inset:0;z-index:var(--kritzel-editor-loading-overlay-z-index, 9999);display:flex;align-items:center;justify-content:center;gap:10px;background-color:var(--kritzel-editor-loading-overlay-background, rgba(255, 255, 255, 0.6));color:var(--kritzel-editor-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-editor-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-editor-loading-overlay-spinner-color, #cccccc);border-top-color:var(--kritzel-editor-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}}`;
|
|
4
4
|
|
|
@@ -19,7 +19,7 @@ const KritzelLoadingOverlay = /*@__PURE__*/ proxyCustomElement(class KritzelLoad
|
|
|
19
19
|
*/
|
|
20
20
|
text = 'Loading...';
|
|
21
21
|
render() {
|
|
22
|
-
return (h(Host, { key: '
|
|
22
|
+
return (h(Host, { key: '6fc1886217516966fa3599473989748151d93efd' }, h("div", { key: 'c6f2aa1c7f81bbab65411292934d185b4bf69e5a', class: { 'loading-overlay': true, visible: this.visible }, "aria-hidden": this.visible ? 'false' : 'true' }, h("span", { key: '21bae0b6f9b9a08f814aec7e6635a904018ab839', class: "loading-spinner" }), this.text)));
|
|
23
23
|
}
|
|
24
24
|
static get style() { return kritzelLoadingOverlayCss(); }
|
|
25
25
|
}, [513, "kritzel-loading-overlay", {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { p as proxyCustomElement, t as transformTag, H, h, d as Host } from './p-
|
|
2
|
-
import { d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { p as proxyCustomElement, t as transformTag, H, h, d as Host } from './p-B43upypT.js';
|
|
2
|
+
import { d as defineCustomElement$1 } from './p-4SPnZZkH.js';
|
|
3
3
|
|
|
4
4
|
const kritzelActiveUsersCss = () => `:host{display:inline-flex;align-items:center}.avatars{display:flex;align-items:center}.avatar-wrapper{position:relative;transition:margin-left 200ms ease}.avatar-wrapper kritzel-avatar{border-radius:50%;box-shadow:0 0 0 2px var(--kritzel-active-users-avatar-border-color, #ffffff)}.avatars:hover .avatar-wrapper{margin-left:-6px !important}.avatar-tooltip{position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:12px;padding:4px 8px;background-color:var(--kritzel-active-users-tooltip-background, #333333);color:var(--kritzel-active-users-tooltip-color, #ffffff);font-family:sans-serif;font-size:12px;font-weight:500;border-radius:4px;white-space:nowrap;width:max-content;pointer-events:none;opacity:0;transition:opacity 150ms ease}.avatar-wrapper:hover .avatar-tooltip,.overflow-count:hover .avatar-tooltip{opacity:1}.overflow-count{position:relative;margin-left:8px;font-family:sans-serif;font-size:var(--kritzel-active-users-overflow-font-size, 14px);font-weight:500;color:var(--kritzel-active-users-overflow-color, #666666);white-space:nowrap;cursor:default}.overflow-count .avatar-tooltip{white-space:nowrap;text-align:left;margin-top:20px}`;
|
|
5
5
|
|