kritzel-stencil 0.3.7 → 0.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs.js +39 -39
- package/dist/cjs/kritzel-active-users_42.cjs.entry.js +274 -223
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{workspace.migrations-BlC8KRoQ.js → schema.constants-rCfWpcBV.js} +43 -28
- package/dist/cjs/stencil.cjs.js +1 -1
- package/dist/collection/classes/tools/brush-tool.class.js +3 -0
- package/dist/collection/classes/tools/line-tool.class.js +3 -0
- package/dist/collection/classes/tools/selection-tool.class.js +2 -0
- package/dist/collection/classes/tools/shape-tool.class.js +3 -0
- package/dist/collection/classes/tools/text-tool.class.js +3 -0
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +30 -6
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +59 -10
- package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.css +1 -1
- package/dist/collection/components/ui/kritzel-tool-config/kritzel-tool-config.js +17 -2
- package/dist/collection/configs/default-brush-tool.config.js +4 -0
- package/dist/collection/configs/default-line-tool.config.js +2 -0
- package/dist/collection/configs/default-shape-tool.config.js +2 -0
- package/dist/collection/configs/default-text-tool.config.js +2 -0
- package/dist/collection/constants/stroke-size.constants.js +2 -0
- package/dist/collection/constants/version.js +1 -1
- package/dist/collection/helpers/tool-config.helper.js +4 -0
- package/dist/collection/index.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/kritzel-controls.js +1 -1
- package/dist/components/kritzel-editor.js +1 -1
- package/dist/components/kritzel-engine.js +1 -1
- package/dist/components/kritzel-settings.js +1 -1
- package/dist/components/kritzel-stroke-size.js +1 -1
- package/dist/components/kritzel-tool-config.js +1 -1
- package/dist/components/{p-D0ctIEh_.js → p-B8wX0-3H.js} +1 -1
- package/dist/components/p-CJjwjpMH.js +1 -0
- package/dist/components/{p-Ctd1w9-z.js → p-DdlK75Kx.js} +1 -1
- package/dist/components/p-DwHZN643.js +1 -0
- package/dist/components/p-W0nK9EQJ.js +9 -0
- package/dist/components/{p-DF8X_22i.js → p-ihbmwmHg.js} +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/kritzel-active-users_42.entry.js +68 -17
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{workspace.migrations-BLXBI--a.js → schema.constants-cuIrI5X8.js} +43 -29
- package/dist/esm/stencil.js +1 -1
- package/dist/stencil/index.esm.js +1 -1
- package/dist/stencil/p-9ce67a14.entry.js +9 -0
- package/dist/stencil/p-cuIrI5X8.js +1 -0
- package/dist/stencil/stencil.esm.js +1 -1
- package/dist/types/classes/tools/brush-tool.class.d.ts +2 -0
- package/dist/types/classes/tools/line-tool.class.d.ts +2 -0
- package/dist/types/classes/tools/shape-tool.class.d.ts +2 -0
- package/dist/types/classes/tools/text-tool.class.d.ts +2 -0
- package/dist/types/components/core/kritzel-editor/kritzel-editor.d.ts +1 -0
- package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +6 -0
- package/dist/types/components/ui/kritzel-tool-config/kritzel-tool-config.d.ts +2 -0
- package/dist/types/components.d.ts +6 -0
- package/dist/types/constants/stroke-size.constants.d.ts +2 -0
- package/dist/types/constants/version.d.ts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/interfaces/tool-config.interface.d.ts +1 -0
- package/dist/types/interfaces/toolbar-control.interface.d.ts +6 -0
- package/package.json +1 -1
- package/dist/components/p-8b9zAWnS.js +0 -1
- package/dist/components/p-CoJdbj3f.js +0 -1
- package/dist/components/p-P0p4WBpa.js +0 -9
- package/dist/stencil/p-3058e485.entry.js +0 -9
- package/dist/stencil/p-BLXBI--a.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as e,H as s,c as t,h as r,d as i,t as o}from"./p-BWj1eE2b.js";import{d as l}from"./p-CqAkznU_.js";const a=e(class extends s{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.sizeChange=t(this,"sizeChange")}sizes=[4,6,8,12,16,24];selectedSize=null;sizeChange;handleSizeClick(e){this.selectedSize=e,this.sizeChange.emit(e)}render(){return r(i,{key:"f964d37a6cbfa48898ac066859165df1492535a9"},r("div",{key:"fed8ec5ddbe07d64beb151b22211fecdc0a278d1",class:"size-grid"},this.sizes.map((e=>r("div",{tabIndex:0,class:{"size-container":!0,selected:this.selectedSize===e},onClick:()=>this.handleSizeClick(e)},r("kritzel-color",{value:"var(--kritzel-global-text-primary)",size:e}))))))}static get style(){return":host{display:flex;align-items:flex-start;gap:0;padding:0;width:100%;box-sizing:border-box}.size-grid{width:100%;display:grid;grid-template-columns:repeat(
|
|
1
|
+
import{p as e,H as s,c as t,h as r,d as i,t as o}from"./p-BWj1eE2b.js";import{d as l}from"./p-CqAkznU_.js";const a=e(class extends s{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.sizeChange=t(this,"sizeChange")}sizes=[4,6,8,12,16,24];selectedSize=null;sizeChange;handleSizeClick(e){this.selectedSize=e,this.sizeChange.emit(e)}render(){return r(i,{key:"f964d37a6cbfa48898ac066859165df1492535a9"},r("div",{key:"fed8ec5ddbe07d64beb151b22211fecdc0a278d1",class:"size-grid"},this.sizes.map((e=>r("div",{tabIndex:0,class:{"size-container":!0,selected:this.selectedSize===e},onClick:()=>this.handleSizeClick(e)},r("kritzel-color",{value:"var(--kritzel-global-text-primary)",size:e}))))))}static get style(){return":host{display:flex;align-items:flex-start;gap:0;padding:0;width:100%;box-sizing:border-box}.size-grid{width:100%;display:grid;grid-template-columns:repeat(auto-fill, 32px);gap:8px;justify-items:center}.size-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:var(--kritzel-global-pointer-cursor, pointer);border:2px solid transparent;box-sizing:border-box}.size-container:hover{background-color:var(--kritzel-stroke-size-hover-background-color, #ebebeb)}.size-container.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-stroke-size-selected-background-color, #ebebeb)}"}},[513,"kritzel-stroke-size",{sizes:[16],selectedSize:[1026,"selected-size"]}]);function c(){"undefined"!=typeof customElements&&["kritzel-stroke-size","kritzel-color"].forEach((e=>{switch(e){case"kritzel-stroke-size":customElements.get(o(e))||customElements.define(o(e),a);break;case"kritzel-color":customElements.get(o(e))||l()}}))}export{a as K,c as d}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { H as HocuspocusProvider, a as HocuspocusProviderWebsocket } from './
|
|
2
|
-
export {
|
|
1
|
+
import { H as HocuspocusProvider, a as HocuspocusProviderWebsocket } from './schema.constants-cuIrI5X8.js';
|
|
2
|
+
export { B as APP_STATE_MIGRATIONS, A as AssetNotFoundError, E as CURRENT_APP_STATE_SCHEMA_VERSION, F as CURRENT_WORKSPACE_SCHEMA_VERSION, v as DEFAULT_ASSET_STORAGE_CONFIG, D as DEFAULT_BRUSH_CONFIG, u as DEFAULT_LINE_TOOL_CONFIG, t as DEFAULT_TEXT_CONFIG, p as IndexedDBAssetProvider, I as IndexedDBSyncProvider, y as KritzelAlignment, r as KritzelAnchorManager, o as KritzelAssetResolver, g as KritzelBrushTool, m as KritzelCursorHelper, i as KritzelEraserTool, e as KritzelGroup, c as KritzelImage, j as KritzelImageTool, d as KritzelLine, h as KritzelLineTool, b as KritzelPath, n as KritzelSelectionTool, f as KritzelShape, l as KritzelShapeTool, K as KritzelText, k as KritzelTextTool, s as KritzelThemeManager, q as KritzelWorkspace, S as ShapeType, W as WORKSPACE_EXPORT_VERSION, C as WORKSPACE_MIGRATIONS, x as darkTheme, w as lightTheme, z as runMigrations } from './schema.constants-cuIrI5X8.js';
|
|
3
3
|
import * as Y from 'yjs';
|
|
4
4
|
import { WebsocketProvider } from 'y-websocket';
|
|
5
5
|
import 'y-indexeddb';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as registerInstance, h, H as Host, c as createEvent, g as getElement } from './index-D9HaikfQ.js';
|
|
2
|
-
import { b as KritzelPath, d as KritzelLine, G as KritzelColorHelper, n as KritzelSelectionTool, g as KritzelBrushTool, h as KritzelLineTool, l as KritzelShapeTool, k as KritzelTextTool, J as KritzelDevicesHelper, L as KritzelMouseButton, M as DEFAULT_COLOR_PALETTE, S as ShapeType, I as IndexedDBSyncProvider, D as DEFAULT_BRUSH_CONFIG, i as KritzelEraserTool, u as DEFAULT_LINE_TOOL_CONFIG, t as DEFAULT_TEXT_CONFIG, j as KritzelImageTool, y as KritzelAlignment, v as DEFAULT_ASSET_STORAGE_CONFIG,
|
|
2
|
+
import { b as KritzelPath, d as KritzelLine, G as KritzelColorHelper, n as KritzelSelectionTool, g as KritzelBrushTool, h as KritzelLineTool, l as KritzelShapeTool, k as KritzelTextTool, J as KritzelDevicesHelper, L as KritzelMouseButton, M as DEFAULT_STROKE_SIZES, N as DEFAULT_COLOR_PALETTE, S as ShapeType, I as IndexedDBSyncProvider, D as DEFAULT_BRUSH_CONFIG, i as KritzelEraserTool, u as DEFAULT_LINE_TOOL_CONFIG, t as DEFAULT_TEXT_CONFIG, j as KritzelImageTool, y as KritzelAlignment, v as DEFAULT_ASSET_STORAGE_CONFIG, O as KritzelSelectionGroup, P as KritzelSelectionBox, Q as KritzelIconRegistry, R as KritzelKeyboardHelper, T as KritzelBaseHandler, U as KritzelBaseObject, q as KritzelWorkspace, e as KritzelGroup, c as KritzelImage, f as KritzelShape, K as KritzelText, z as runMigrations, F as CURRENT_WORKSPACE_SCHEMA_VERSION, C as WORKSPACE_MIGRATIONS, E as CURRENT_APP_STATE_SCHEMA_VERSION, B as APP_STATE_MIGRATIONS, V as ObjectHelper, m as KritzelCursorHelper, r as KritzelAnchorManager, s as KritzelThemeManager, o as KritzelAssetResolver, X as KritzelClassHelper, Y as KritzelEventHelper, W as WORKSPACE_EXPORT_VERSION } from './schema.constants-cuIrI5X8.js';
|
|
3
3
|
import * as Y from 'yjs';
|
|
4
4
|
import 'y-indexeddb';
|
|
5
5
|
import 'y-websocket';
|
|
@@ -822,6 +822,7 @@ class KritzelToolConfigHelper {
|
|
|
822
822
|
sizeProperty: 'size',
|
|
823
823
|
opacityProperty: 'opacity',
|
|
824
824
|
paletteSource: 'palette',
|
|
825
|
+
sizesSource: 'sizes',
|
|
825
826
|
controls: [
|
|
826
827
|
{ type: 'stroke-size', propertyName: 'size' },
|
|
827
828
|
],
|
|
@@ -834,6 +835,7 @@ class KritzelToolConfigHelper {
|
|
|
834
835
|
sizeProperty: 'size',
|
|
835
836
|
opacityProperty: 'opacity',
|
|
836
837
|
paletteSource: 'palette',
|
|
838
|
+
sizesSource: 'sizes',
|
|
837
839
|
controls: [
|
|
838
840
|
{ type: 'stroke-size', propertyName: 'size' },
|
|
839
841
|
{ type: 'line-endings', propertyName: 'arrows', additionalProps: {} },
|
|
@@ -847,6 +849,7 @@ class KritzelToolConfigHelper {
|
|
|
847
849
|
sizeProperty: 'strokeWidth',
|
|
848
850
|
opacityProperty: 'opacity',
|
|
849
851
|
paletteSource: 'palette',
|
|
852
|
+
sizesSource: 'sizes',
|
|
850
853
|
controls: [
|
|
851
854
|
{ type: 'stroke-size', propertyName: 'strokeWidth' },
|
|
852
855
|
{ type: 'shape-fill', propertyName: 'fillColor', additionalProps: {} },
|
|
@@ -860,6 +863,7 @@ class KritzelToolConfigHelper {
|
|
|
860
863
|
sizeProperty: 'fontSize',
|
|
861
864
|
opacityProperty: 'opacity',
|
|
862
865
|
paletteSource: 'palette',
|
|
866
|
+
sizesSource: 'sizes',
|
|
863
867
|
controls: [
|
|
864
868
|
{ type: 'font-size', propertyName: 'fontSize', additionalProps: {} },
|
|
865
869
|
{ type: 'font-family', propertyName: 'fontFamily' },
|
|
@@ -2094,6 +2098,7 @@ const DEFAULT_SHAPE_CONFIG = {
|
|
|
2094
2098
|
fontSize: 16,
|
|
2095
2099
|
fontFamily: 'Arial',
|
|
2096
2100
|
palette: [...DEFAULT_COLOR_PALETTE],
|
|
2101
|
+
sizes: [...DEFAULT_STROKE_SIZES],
|
|
2097
2102
|
};
|
|
2098
2103
|
|
|
2099
2104
|
const ABSOLUTE_SCALE_MAX = 1000;
|
|
@@ -2473,6 +2478,9 @@ const KritzelEditor = class {
|
|
|
2473
2478
|
async changeActiveTool(tool) {
|
|
2474
2479
|
return this.engineRef.changeActiveTool(tool);
|
|
2475
2480
|
}
|
|
2481
|
+
async changeActiveToolByName(toolName) {
|
|
2482
|
+
return this.engineRef.changeActiveToolByName(toolName);
|
|
2483
|
+
}
|
|
2476
2484
|
async disable() {
|
|
2477
2485
|
return this.engineRef.disable();
|
|
2478
2486
|
}
|
|
@@ -2848,27 +2856,27 @@ const KritzelEditor = class {
|
|
|
2848
2856
|
const isLoggedIn = this.isLoggedIn;
|
|
2849
2857
|
const shouldShowCurrentUser = isLoggedIn;
|
|
2850
2858
|
const shouldShowLoginButton = !!this.loginConfig && !isLoggedIn;
|
|
2851
|
-
return (h(Host, { key: '
|
|
2859
|
+
return (h(Host, { key: '2856db9fa6a0926df078d5d6eedb19d2b4de98a5' }, h("div", { key: '7ffad0fd28904b740af43e20addfef701bbcead9', class: "top-left-buttons" }, h("kritzel-workspace-manager", { key: '0639e3d0f1a91935d42c10d5dfa793fd595cc234', visible: this.isWorkspaceManagerVisible, workspaces: this.workspaces, activeWorkspace: this.activeWorkspace, onWorkspaceChange: event => (this.activeWorkspace = event.detail), onIsWorkspaceManagerReady: () => (this.isWorkspaceManagerReady = true) }), h("kritzel-back-to-content", { key: '0039bc16615c26ab239ceeac418a7d47ff2ad40a', visible: this.isBackToContentButtonVisible, onBackToContent: () => this.backToContent() })), h("kritzel-engine", { key: '4815e1c4dfc6a04e68894b795c02dd678fec108d', ref: el => {
|
|
2852
2860
|
if (el) {
|
|
2853
2861
|
this.engineRef = el;
|
|
2854
2862
|
}
|
|
2855
|
-
}, workspace: this.activeWorkspace, activeWorkspaceId: this.activeWorkspaceId, editorId: this.editorId, syncConfig: this.syncConfig, assetStorageConfig: this.assetStorageConfig, user: this.user, scaleMax: this.scaleMax, lockDrawingScale: this.lockDrawingScale, scaleMin: this.scaleMin, cursorTarget: this.cursorTarget, isLoading: this.isLoading, viewportBoundaryLeft: this.viewportBoundaryLeft, viewportBoundaryRight: this.viewportBoundaryRight, viewportBoundaryTop: this.viewportBoundaryTop, viewportBoundaryBottom: this.viewportBoundaryBottom, wheelEnabled: this.wheelEnabled, theme: this.currentTheme, debugInfo: this.debugInfo, globalContextMenuItems: this.globalContextMenuItems, objectContextMenuItems: this.objectContextMenuItems, onIsEngineReady: event => this.onEngineReady(event), onWorkspacesChange: event => this.handleWorkspacesChange(event), onActiveWorkspaceChange: event => this.handleActiveWorkspaceChange(event), onObjectsChange: event => this.handleObjectsChange(event), onObjectsAdded: event => this.handleObjectsAdded(event), onObjectsRemoved: event => this.handleObjectsRemoved(event), onObjectsUpdated: event => this.handleObjectsUpdated(event), onUndoStateChange: event => this.handleUndoStateChange(event), onObjectsInViewportChange: event => this.handleObjectsInViewportChange(event), onViewportChange: event => this.handleViewportChange(event), onAwarenessChange: event => this.handleAwarenessChange(event) }), h("kritzel-controls", { key: '
|
|
2863
|
+
}, workspace: this.activeWorkspace, activeWorkspaceId: this.activeWorkspaceId, editorId: this.editorId, syncConfig: this.syncConfig, assetStorageConfig: this.assetStorageConfig, user: this.user, scaleMax: this.scaleMax, lockDrawingScale: this.lockDrawingScale, scaleMin: this.scaleMin, cursorTarget: this.cursorTarget, isLoading: this.isLoading, viewportBoundaryLeft: this.viewportBoundaryLeft, viewportBoundaryRight: this.viewportBoundaryRight, viewportBoundaryTop: this.viewportBoundaryTop, viewportBoundaryBottom: this.viewportBoundaryBottom, wheelEnabled: this.wheelEnabled, theme: this.currentTheme, debugInfo: this.debugInfo, globalContextMenuItems: this.globalContextMenuItems, objectContextMenuItems: this.objectContextMenuItems, onIsEngineReady: event => this.onEngineReady(event), onWorkspacesChange: event => this.handleWorkspacesChange(event), onActiveWorkspaceChange: event => this.handleActiveWorkspaceChange(event), onObjectsChange: event => this.handleObjectsChange(event), onObjectsAdded: event => this.handleObjectsAdded(event), onObjectsRemoved: event => this.handleObjectsRemoved(event), onObjectsUpdated: event => this.handleObjectsUpdated(event), onUndoStateChange: event => this.handleUndoStateChange(event), onObjectsInViewportChange: event => this.handleObjectsInViewportChange(event), onViewportChange: event => this.handleViewportChange(event), onAwarenessChange: event => this.handleAwarenessChange(event) }), h("kritzel-controls", { key: 'fc44c417ee17a98f2b5d8eecffac6a86e43fda2a', class: { 'keyboard-open': this.isVirtualKeyboardOpen }, style: { display: this.isControlsVisible ? 'flex' : 'none' }, ref: el => {
|
|
2856
2864
|
if (el) {
|
|
2857
2865
|
this.controlsRef = el;
|
|
2858
2866
|
}
|
|
2859
|
-
}, controls: this.controls, isUtilityPanelVisible: this.isUtilityPanelVisible, undoState: this.undoState ?? undefined, theme: this.currentTheme, onIsControlsReady: () => (this.isControlsReady = true) }), h("div", { key: '
|
|
2867
|
+
}, controls: this.controls, isUtilityPanelVisible: this.isUtilityPanelVisible, undoState: this.undoState ?? undefined, theme: this.currentTheme, onIsControlsReady: () => (this.isControlsReady = true) }), h("div", { key: 'f333d2b31d456d4e35dbd41c93492329939a7c4d', class: "top-right-buttons" }, h("kritzel-settings", { key: '7900c9b1c3fd35e07e0d2a2aa0b797f455f52e1d', ref: el => {
|
|
2860
2868
|
if (el) {
|
|
2861
2869
|
this.settingsRef = el;
|
|
2862
2870
|
}
|
|
2863
|
-
}, shortcuts: this.shortcuts, settings: this.currentSettingsConfig, onSettingsChange: event => this.handleSettingsChange(event) }), h("kritzel-export", { key: '
|
|
2871
|
+
}, shortcuts: this.shortcuts, settings: this.currentSettingsConfig, onSettingsChange: event => this.handleSettingsChange(event) }), h("kritzel-export", { key: 'c6ad8ae5255c9d90d854b7a26e81b65cfdc6236d', ref: el => {
|
|
2864
2872
|
if (el) {
|
|
2865
2873
|
this.exportRef = el;
|
|
2866
2874
|
}
|
|
2867
|
-
}, workspaceName: this.activeWorkspace?.name || 'workspace', onExportPng: () => this.engineRef.exportViewportAsPng(), onExportSvg: () => this.engineRef.exportViewportAsSvg(), onExportJson: event => this.engineRef.downloadAsJson(event.detail) }), h("kritzel-active-users", { key: '
|
|
2875
|
+
}, workspaceName: this.activeWorkspace?.name || 'workspace', onExportPng: () => this.engineRef.exportViewportAsPng(), onExportSvg: () => this.engineRef.exportViewportAsSvg(), onExportJson: event => this.engineRef.downloadAsJson(event.detail) }), h("kritzel-active-users", { key: '3d6d3c460e5954b4d477c6bcc9992e503f781a81', users: this.activeUsers }), shouldShowCurrentUser && h("kritzel-current-user", { key: '33a72ce69276082ca7cc2815a93ad14de8dcf5a0', user: this.user }), shouldShowLoginButton && h("kritzel-button", { key: '809dedeacbf89674e42ab3e5850e67aadfe1111c', onButtonClick: () => this.loginDialogRef?.open() }, "Sign in"), h("kritzel-more-menu", { key: '7521045a24e32e6aa69a5a8c41a4edea5d657d93', items: this.moreMenuItems, visible: this.isMoreMenuVisible }), h("kritzel-share-dialog", { key: 'a4e778dee23b3dba94109c141e3628f22b740355', ref: el => {
|
|
2868
2876
|
if (el) {
|
|
2869
2877
|
this.shareDialogRef = el;
|
|
2870
2878
|
}
|
|
2871
|
-
}, isPublic: this.currentIsPublic, workspaceId: this.activeWorkspace?.id, onToggleIsPublic: this.handleToggleIsPublic }), this.loginConfig && (h("kritzel-login-dialog", { key: '
|
|
2879
|
+
}, isPublic: this.currentIsPublic, workspaceId: this.activeWorkspace?.id, onToggleIsPublic: this.handleToggleIsPublic }), this.loginConfig && (h("kritzel-login-dialog", { key: '3394d489bdbc92c572208c8f65601bf91568f0c4', ref: el => {
|
|
2872
2880
|
if (el) {
|
|
2873
2881
|
this.loginDialogRef = el;
|
|
2874
2882
|
}
|
|
@@ -26589,17 +26597,13 @@ const KritzelEngine = class {
|
|
|
26589
26597
|
if (this.core.toolRegistry.hasTool(toolName)) {
|
|
26590
26598
|
const existingTool = this.core.toolRegistry.getTool(toolName);
|
|
26591
26599
|
if (toolConfig) {
|
|
26592
|
-
|
|
26593
|
-
existingTool[key] = value;
|
|
26594
|
-
});
|
|
26600
|
+
this.applyToolConfig(existingTool, toolConfig);
|
|
26595
26601
|
}
|
|
26596
26602
|
return existingTool;
|
|
26597
26603
|
}
|
|
26598
26604
|
const registeredTool = this.core.toolRegistry.registerTool(toolName, toolClass);
|
|
26599
26605
|
if (toolConfig) {
|
|
26600
|
-
|
|
26601
|
-
registeredTool[key] = value;
|
|
26602
|
-
});
|
|
26606
|
+
this.applyToolConfig(registeredTool, toolConfig);
|
|
26603
26607
|
}
|
|
26604
26608
|
return Promise.resolve(registeredTool);
|
|
26605
26609
|
}
|
|
@@ -26616,6 +26620,18 @@ const KritzelEngine = class {
|
|
|
26616
26620
|
this.core.deselectAllObjects();
|
|
26617
26621
|
tool?.onActivate();
|
|
26618
26622
|
}
|
|
26623
|
+
/**
|
|
26624
|
+
* Switches the active drawing tool by its registered name.
|
|
26625
|
+
* @param toolName - The name the tool was registered with (e.g., 'brush', 'eraser').
|
|
26626
|
+
*/
|
|
26627
|
+
async changeActiveToolByName(toolName) {
|
|
26628
|
+
const tool = this.core.toolRegistry.getTool(toolName);
|
|
26629
|
+
if (!tool) {
|
|
26630
|
+
console.warn(`[KritzelEngine] No tool registered with name: ${toolName}`);
|
|
26631
|
+
return;
|
|
26632
|
+
}
|
|
26633
|
+
await this.changeActiveTool(tool);
|
|
26634
|
+
}
|
|
26619
26635
|
/** Disables all user interaction with the engine (pointer, keyboard, etc.). */
|
|
26620
26636
|
async disable() {
|
|
26621
26637
|
this.core.store.state.isEnabled = false;
|
|
@@ -27516,6 +27532,27 @@ const KritzelEngine = class {
|
|
|
27516
27532
|
syncLoadingState() {
|
|
27517
27533
|
this.core.store.state.isLoading = this._isWorkspaceLoading || this.isLoading;
|
|
27518
27534
|
}
|
|
27535
|
+
applyToolConfig(tool, toolConfig) {
|
|
27536
|
+
Object.entries(toolConfig).forEach(([key, value]) => {
|
|
27537
|
+
tool[key] = value;
|
|
27538
|
+
});
|
|
27539
|
+
// Resolve palettes map into the flat palette array the UI reads
|
|
27540
|
+
if ('palettes' in toolConfig && 'type' in toolConfig) {
|
|
27541
|
+
const brushConfig = toolConfig;
|
|
27542
|
+
const resolvedPalette = brushConfig.palettes[brushConfig.type];
|
|
27543
|
+
if (resolvedPalette) {
|
|
27544
|
+
tool['palette'] = resolvedPalette;
|
|
27545
|
+
}
|
|
27546
|
+
}
|
|
27547
|
+
// Resolve sizes map into the flat sizes array the UI reads (brush tool uses a map keyed by type)
|
|
27548
|
+
if ('sizes' in toolConfig && toolConfig.sizes != null && 'type' in toolConfig) {
|
|
27549
|
+
const brushConfig = toolConfig;
|
|
27550
|
+
const resolvedSizes = brushConfig.sizes?.[brushConfig.type];
|
|
27551
|
+
if (resolvedSizes) {
|
|
27552
|
+
tool['sizes'] = resolvedSizes;
|
|
27553
|
+
}
|
|
27554
|
+
}
|
|
27555
|
+
}
|
|
27519
27556
|
get isSelecting() {
|
|
27520
27557
|
return this.core.store.state.activeTool instanceof KritzelSelectionTool && this.core.store.state.isSelecting;
|
|
27521
27558
|
}
|
|
@@ -29552,7 +29589,7 @@ const KritzelPortal = class {
|
|
|
29552
29589
|
* This file is auto-generated by the version bump scripts.
|
|
29553
29590
|
* Do not modify manually.
|
|
29554
29591
|
*/
|
|
29555
|
-
const KRITZEL_VERSION = '0.3.
|
|
29592
|
+
const KRITZEL_VERSION = '0.3.8';
|
|
29556
29593
|
|
|
29557
29594
|
const kritzelSettingsCss = () => `:host{display:contents}kritzel-dialog{--kritzel-dialog-body-padding:0;--kritzel-dialog-width-large:800px;--kritzel-dialog-height-large:500px}.footer-button{padding:8px 16px;border-radius:6px;cursor:pointer;font-size:14px}.cancel-button{border:1px solid #ebebeb;background:#fff;color:inherit}.cancel-button:hover{background:#f5f5f5}.settings-content{padding:0}.settings-content h3{margin:0 0 16px 0;font-size:18px;font-weight:600;color:var(--kritzel-settings-content-heading-color, #333333)}.settings-content p{margin:0;font-size:14px;color:var(--kritzel-settings-content-text-color, #666666);line-height:1.5}.settings-group{display:flex;flex-direction:column;gap:24px}.settings-item{display:flex;flex-direction:column;gap:8px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.settings-label{font-size:14px;font-weight:600;color:var(--kritzel-settings-label-color, #333333);margin:0 0 4px 0}.settings-description{font-size:12px;color:var(--kritzel-settings-description-color, #888888);margin:0;line-height:1.4}.shortcuts-list{display:flex;flex-direction:column;gap:24px}.shortcuts-category{display:flex;flex-direction:column;gap:8px}.shortcuts-category-title{font-size:14px;font-weight:600;color:var(--kritzel-settings-label-color, #333333);margin:0 0 4px 0}.shortcuts-group{display:flex;flex-direction:column;gap:4px}.shortcut-item{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;border-radius:4px;background:var(--kritzel-settings-shortcut-item-bg, rgba(0, 0, 0, 0.02))}.shortcut-label{font-size:14px;color:var(--kritzel-settings-content-text-color, #666666)}.shortcut-key{font-family:monospace;font-size:12px;padding:2px 8px;border-radius:4px;background:var(--kritzel-settings-shortcut-key-bg, #f0f0f0);color:var(--kritzel-settings-shortcut-key-color, #333333);border:1px solid var(--kritzel-settings-shortcut-key-border, #ddd)}`;
|
|
29558
29595
|
|
|
@@ -30016,7 +30053,7 @@ const KritzelSplitButton = class {
|
|
|
30016
30053
|
};
|
|
30017
30054
|
KritzelSplitButton.style = kritzelSplitButtonCss();
|
|
30018
30055
|
|
|
30019
|
-
const kritzelStrokeSizeCss = () => `:host{display:flex;align-items:flex-start;gap:0;padding:0;width:100%;box-sizing:border-box}.size-grid{width:100%;display:grid;grid-template-columns:repeat(
|
|
30056
|
+
const kritzelStrokeSizeCss = () => `:host{display:flex;align-items:flex-start;gap:0;padding:0;width:100%;box-sizing:border-box}.size-grid{width:100%;display:grid;grid-template-columns:repeat(auto-fill, 32px);gap:8px;justify-items:center}.size-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:var(--kritzel-global-pointer-cursor, pointer);border:2px solid transparent;box-sizing:border-box}.size-container:hover{background-color:var(--kritzel-stroke-size-hover-background-color, #ebebeb)}.size-container.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-stroke-size-selected-background-color, #ebebeb)}`;
|
|
30020
30057
|
|
|
30021
30058
|
const KritzelStrokeSize = class {
|
|
30022
30059
|
constructor(hostRef) {
|
|
@@ -30071,6 +30108,7 @@ const KritzelToolConfig = class {
|
|
|
30071
30108
|
this.config = newConfig;
|
|
30072
30109
|
if (this.config) {
|
|
30073
30110
|
this.updatePalette();
|
|
30111
|
+
this.updateSizes();
|
|
30074
30112
|
this.currentOpacity = newTool[this.config.opacityProperty] ?? 1;
|
|
30075
30113
|
// Emit the values since they might have been updated from the old tool
|
|
30076
30114
|
this.emitDisplayValues();
|
|
@@ -30095,6 +30133,7 @@ const KritzelToolConfig = class {
|
|
|
30095
30133
|
displayValuesChange;
|
|
30096
30134
|
config;
|
|
30097
30135
|
palette = [];
|
|
30136
|
+
sizes = [];
|
|
30098
30137
|
currentOpacity = 1;
|
|
30099
30138
|
updateTrigger = 0;
|
|
30100
30139
|
handleSelectionChange() {
|
|
@@ -30102,6 +30141,7 @@ const KritzelToolConfig = class {
|
|
|
30102
30141
|
this.config = KritzelToolConfigHelper.getToolConfig(this.tool);
|
|
30103
30142
|
if (this.config) {
|
|
30104
30143
|
this.updatePalette();
|
|
30144
|
+
this.updateSizes();
|
|
30105
30145
|
this.currentOpacity = this.tool[this.config.opacityProperty] ?? 1;
|
|
30106
30146
|
this.emitDisplayValues();
|
|
30107
30147
|
}
|
|
@@ -30116,6 +30156,7 @@ const KritzelToolConfig = class {
|
|
|
30116
30156
|
this.config = KritzelToolConfigHelper.getToolConfig(this.tool);
|
|
30117
30157
|
if (this.config) {
|
|
30118
30158
|
this.updatePalette();
|
|
30159
|
+
this.updateSizes();
|
|
30119
30160
|
this.currentOpacity = this.tool[this.config.opacityProperty] ?? 1;
|
|
30120
30161
|
this.emitDisplayValues();
|
|
30121
30162
|
}
|
|
@@ -30148,6 +30189,16 @@ const KritzelToolConfig = class {
|
|
|
30148
30189
|
this.palette = this.tool.palette || [];
|
|
30149
30190
|
}
|
|
30150
30191
|
}
|
|
30192
|
+
updateSizes() {
|
|
30193
|
+
if (!this.config)
|
|
30194
|
+
return;
|
|
30195
|
+
if (this.config.sizesSource === 'none') {
|
|
30196
|
+
this.sizes = [];
|
|
30197
|
+
}
|
|
30198
|
+
else {
|
|
30199
|
+
this.sizes = this.tool.sizes || [];
|
|
30200
|
+
}
|
|
30201
|
+
}
|
|
30151
30202
|
handleToggleExpand = () => {
|
|
30152
30203
|
this.isExpanded = !this.isExpanded;
|
|
30153
30204
|
};
|
|
@@ -30208,9 +30259,9 @@ const KritzelToolConfig = class {
|
|
|
30208
30259
|
const value = this.tool[control.propertyName];
|
|
30209
30260
|
switch (control.type) {
|
|
30210
30261
|
case 'stroke-size':
|
|
30211
|
-
return (h("kritzel-stroke-size", { key: control.type, selectedSize: value, onSizeChange: this.handleSizeChange }));
|
|
30262
|
+
return (h("kritzel-stroke-size", { key: control.type, sizes: this.sizes.length > 0 ? this.sizes : undefined, selectedSize: value, onSizeChange: this.handleSizeChange }));
|
|
30212
30263
|
case 'font-size':
|
|
30213
|
-
return (h("kritzel-font-size", { key: control.type, selectedSize: value, fontFamily: this.tool.fontFamily, onSizeChange: this.handleSizeChange }));
|
|
30264
|
+
return (h("kritzel-font-size", { key: control.type, sizes: this.sizes.length > 0 ? this.sizes : undefined, selectedSize: value, fontFamily: this.tool.fontFamily, onSizeChange: this.handleSizeChange }));
|
|
30214
30265
|
case 'line-endings':
|
|
30215
30266
|
return (h("kritzel-line-endings", { key: control.type, value: value, onValueChange: (event) => this.handlePropertyChange(control.propertyName, event.detail) }));
|
|
30216
30267
|
case 'shape-fill':
|
package/dist/esm/loader.js
CHANGED
|
@@ -5,7 +5,7 @@ import { g as globalScripts } from './app-globals-DQuL1Twl.js';
|
|
|
5
5
|
const defineCustomElements = async (win, options) => {
|
|
6
6
|
if (typeof window === 'undefined') return undefined;
|
|
7
7
|
await globalScripts();
|
|
8
|
-
return bootstrapLazy(JSON.parse("[[\"kritzel-active-users_42\",[[512,\"kritzel-editor\",{\"scaleMax\":[1026,\"scale-max\"],\"scaleMin\":[1026,\"scale-min\"],\"lockDrawingScale\":[1028,\"lock-drawing-scale\"],\"viewportBoundaryLeft\":[1026,\"viewport-boundary-left\"],\"viewportBoundaryRight\":[1026,\"viewport-boundary-right\"],\"viewportBoundaryTop\":[1026,\"viewport-boundary-top\"],\"viewportBoundaryBottom\":[1026,\"viewport-boundary-bottom\"],\"wheelEnabled\":[1028,\"wheel-enabled\"],\"debugInfo\":[1040],\"user\":[16],\"activeUsers\":[16],\"controls\":[16],\"globalContextMenuItems\":[16],\"objectContextMenuItems\":[16],\"customSvgIcons\":[16],\"isControlsVisible\":[4,\"is-controls-visible\"],\"isUtilityPanelVisible\":[4,\"is-utility-panel-visible\"],\"isWorkspaceManagerVisible\":[4,\"is-workspace-manager-visible\"],\"isMoreMenuVisible\":[4,\"is-more-menu-visible\"],\"syncConfig\":[16],\"assetStorageConfig\":[16],\"cursorTarget\":[16],\"loginConfig\":[16],\"isLoading\":[4,\"is-loading\"],\"editorId\":[1,\"editor-id\"],\"activeWorkspaceId\":[1,\"active-workspace-id\"],\"isEngineReady\":[32],\"isControlsReady\":[32],\"isWorkspaceManagerReady\":[32],\"workspaces\":[32],\"activeWorkspace\":[32],\"isVirtualKeyboardOpen\":[32],\"undoState\":[32],\"isBackToContentButtonVisible\":[32],\"currentTheme\":[32],\"shortcuts\":[32],\"currentIsPublic\":[32],\"getObjectById\":[64],\"addObject\":[64],\"updateObject\":[64],\"removeObject\":[64],\"getSelectedObjects\":[64],\"selectObjects\":[64],\"selectAllObjectsInViewport\":[64],\"clearSelection\":[64],\"centerObjectInViewport\":[64],\"backToContent\":[64],\"centerAllObjects\":[64],\"setViewport\":[64],\"panTo\":[64],\"zoomTo\":[64],\"getViewport\":[64],\"screenToWorld\":[64],\"worldToScreen\":[64],\"createWorkspace\":[64],\"updateWorkspace\":[64],\"deleteWorkspace\":[64],\"getWorkspaces\":[64],\"getActiveWorkspace\":[64],\"loadSharedWorkspace\":[64],\"reinitSync\":[64],\"registerTool\":[64],\"changeActiveTool\":[64],\"disable\":[64],\"enable\":[64],\"copy\":[64],\"cut\":[64],\"paste\":[64],\"delete\":[64],\"bringForward\":[64],\"sendBackward\":[64],\"bringToFront\":[64],\"sendToBack\":[64],\"alignObjects\":[64],\"group\":[64],\"ungroup\":[64],\"undo\":[64],\"redo\":[64],\"getScreenshot\":[64],\"exportViewportAsPng\":[64],\"exportViewportAsSvg\":[64],\"downloadAsJson\":[64],\"importFromFile\":[64],\"loadObjectsFromJson\":[64],\"getObjectsTotalCount\":[64],\"getAllObjects\":[64],\"findObjects\":[64],\"getCopiedObjects\":[64],\"getObjectsInViewport\":[64],\"hideContextMenu\":[64],\"triggerSelectionChange\":[64],\"getDisplayableShortcuts\":[64],\"openLoginDialog\":[64],\"setLoginLoading\":[64]},[[0,\"dblclick\",\"onTouchStart\"]],{\"isEngineReady\":[{\"onIsEngineReady\":0}],\"isControlsReady\":[{\"onIsControlsReady\":0}],\"workspaces\":[{\"onWorkspacesChange\":0}],\"activeWorkspace\":[{\"onActiveWorkspaceChange\":0}],\"activeWorkspaceId\":[{\"onActiveWorkspaceIdChange\":0}],\"currentTheme\":[{\"onCurrentThemeChange\":0}]}],[513,\"kritzel-controls\",{\"controls\":[16],\"activeControl\":[1040],\"isUtilityPanelVisible\":[4,\"is-utility-panel-visible\"],\"undoState\":[16],\"theme\":[1],\"firstConfig\":[32],\"isTouchDevice\":[32],\"selectedSubOptions\":[32],\"canScrollLeft\":[32],\"canScrollRight\":[32],\"needsScrolling\":[32],\"displayValues\":[32],\"internalControls\":[32],\"closeTooltip\":[64]},[[8,\"keydown\",\"handleKeyDown\"]],{\"controls\":[{\"onControlsChange\":0}],\"theme\":[{\"onThemeChange\":0}]}],[513,\"kritzel-export\",{\"workspaceName\":[1,\"workspace-name\"],\"isDialogOpen\":[32],\"previewUrl\":[32],\"isLoading\":[32],\"activeTab\":[32],\"exportFilename\":[32],\"viewportExportFormat\":[32],\"open\":[64]}],[513,\"kritzel-settings\",{\"shortcuts\":[16],\"settings\":[16],\"isDialogOpen\":[32],\"selectedCategoryId\":[32],\"scaleMin\":[32],\"scaleMax\":[32],\"lockDrawingScale\":[32],\"currentTheme\":[32],\"viewportBoundaryLeft\":[32],\"viewportBoundaryRight\":[32],\"viewportBoundaryTop\":[32],\"viewportBoundaryBottom\":[32],\"debugInfo\":[32],\"open\":[64]},null,{\"settings\":[{\"onSettingsPropChange\":0}]}],[513,\"kritzel-workspace-manager\",{\"visible\":[4],\"activeWorkspace\":[1040],\"workspaces\":[16],\"childMenuAnchor\":[32],\"openChildMenuItem\":[32],\"newWorkspace\":[32],\"editingItemId\":[32]},[[8,\"wheel\",\"handleWheel\"]]],[513,\"kritzel-engine\",{\"workspace\":[16],\"editorId\":[1,\"editor-id\"],\"activeWorkspaceId\":[1,\"active-workspace-id\"],\"syncConfig\":[16],\"assetStorageConfig\":[16],\"user\":[16],\"globalContextMenuItems\":[16],\"objectContextMenuItems\":[16],\"scaleMax\":[1026,\"scale-max\"],\"scaleMin\":[1026,\"scale-min\"],\"cursorTarget\":[16],\"lockDrawingScale\":[4,\"lock-drawing-scale\"],\"theme\":[1],\"viewportBoundaryLeft\":[2,\"viewport-boundary-left\"],\"viewportBoundaryRight\":[2,\"viewport-boundary-right\"],\"viewportBoundaryTop\":[2,\"viewport-boundary-top\"],\"viewportBoundaryBottom\":[2,\"viewport-boundary-bottom\"],\"debugInfo\":[16],\"wheelEnabled\":[4,\"wheel-enabled\"],\"isLoading\":[4,\"is-loading\"],\"forceUpdate\":[32],\"triggerSelectionChange\":[64],\"registerTool\":[64],\"changeActiveTool\":[64],\"disable\":[64],\"enable\":[64],\"delete\":[64],\"copy\":[64],\"cut\":[64],\"paste\":[64],\"bringForward\":[64],\"sendBackward\":[64],\"bringToFront\":[64],\"sendToBack\":[64],\"alignObjects\":[64],\"group\":[64],\"ungroup\":[64],\"undo\":[64],\"redo\":[64],\"hideContextMenu\":[64],\"getObjectById\":[64],\"getAllObjects\":[64],\"findObjects\":[64],\"getObjectsTotalCount\":[64],\"addObject\":[64],\"updateObject\":[64],\"removeObject\":[64],\"getSelectedObjects\":[64],\"getDisplayableShortcuts\":[64],\"selectObjects\":[64],\"selectAllObjectsInViewport\":[64],\"clearSelection\":[64],\"centerObjectInViewport\":[64],\"backToContent\":[64],\"centerAllObjects\":[64],\"setViewport\":[64],\"panTo\":[64],\"zoomTo\":[64],\"getViewport\":[64],\"screenToWorld\":[64],\"worldToScreen\":[64],\"getCopiedObjects\":[64],\"getObjectsInViewport\":[64],\"getScreenshot\":[64],\"exportViewportAsPng\":[64],\"exportViewportAsSvg\":[64],\"getSelectedObjectsAsSvgString\":[64],\"exportSelectedObjectsAsSvg\":[64],\"getSelectedObjectsAsPngDataUrl\":[64],\"exportSelectedObjectsAsPng\":[64],\"exportAsJson\":[64],\"importFromJson\":[64],\"loadObjectsFromJson\":[64],\"downloadAsJson\":[64],\"importFromFile\":[64],\"createWorkspace\":[64],\"updateWorkspace\":[64],\"deleteWorkspace\":[64],\"getWorkspaces\":[64],\"getActiveWorkspace\":[64],\"getIsPublic\":[64],\"loadSharedWorkspace\":[64],\"reinitSync\":[64],\"saveSettings\":[64],\"loadSettings\":[64]},[[1,\"wheel\",\"handleWheel\"],[0,\"pointerdown\",\"handlePointerDown\"],[0,\"pointermove\",\"handlePointerMove\"],[0,\"pointerup\",\"handlePointerUp\"],[0,\"pointercancel\",\"handlePointerCancel\"],[1,\"pointerleave\",\"handlePointerLeave\"],[1,\"longpress\",\"handleLongPress\"],[0,\"contextmenu\",\"handleContextMenu\"],[9,\"resize\",\"handleResize\"],[8,\"keydown\",\"handleKeyDown\"],[8,\"keyup\",\"handleKeyUp\"],[4,\"dblclick\",\"preventDoubleTapZoomOnTouchDevices\"]],{\"workspace\":[{\"onWorkspaceChange\":0}],\"activeWorkspaceId\":[{\"onActiveWorkspaceIdChange\":0}],\"syncConfig\":[{\"onSyncConfigChange\":0}],\"assetStorageConfig\":[{\"onAssetStorageConfigChange\":0}],\"user\":[{\"onUserChange\":0}],\"scaleMax\":[{\"validateScaleMax\":0}],\"scaleMin\":[{\"validateScaleMin\":0}],\"cursorTarget\":[{\"onCursorTargetChange\":0}],\"lockDrawingScale\":[{\"onLockDrawingScaleChange\":0}],\"theme\":[{\"onThemeChange\":0}],\"viewportBoundaryLeft\":[{\"onViewportBoundaryLeftChange\":0}],\"viewportBoundaryRight\":[{\"onViewportBoundaryRightChange\":0}],\"viewportBoundaryTop\":[{\"onViewportBoundaryTopChange\":0}],\"viewportBoundaryBottom\":[{\"onViewportBoundaryBottomChange\":0}],\"debugInfo\":[{\"onDebugInfoChange\":0}],\"isLoading\":[{\"onIsLoadingChange\":0}]}],[513,\"kritzel-more-menu\",{\"visible\":[4],\"items\":[16],\"icon\":[1],\"iconSize\":[2,\"icon-size\"],\"offsetY\":[2,\"offset-y\"],\"menuAnchor\":[32],\"isTouchDevice\":[32]}],[513,\"kritzel-current-user\",{\"user\":[16],\"avatarSize\":[2,\"avatar-size\"]}],[513,\"kritzel-share-dialog\",{\"isPublic\":[4,\"is-public\"],\"workspaceId\":[1,\"workspace-id\"],\"isDialogOpen\":[32],\"internalIsPublic\":[32],\"copySuccess\":[32],\"open\":[64],\"close\":[64]},null,{\"isPublic\":[{\"onIsPublicChange\":0}]}],[513,\"kritzel-login-dialog\",{\"providers\":[16],\"dialogTitle\":[1,\"dialog-title\"],\"subtitle\":[1],\"isDialogOpen\":[32],\"loadingProvider\":[32],\"open\":[64],\"close\":[64],\"setLoading\":[64]}],[513,\"kritzel-active-users\",{\"users\":[16],\"avatarSize\":[2,\"avatar-size\"],\"maxVisible\":[2,\"max-visible\"],\"overlap\":[2]}],[513,\"kritzel-back-to-content\",{\"visible\":[4],\"text\":[1]}],[769,\"kritzel-button\",{\"variant\":[1],\"disabled\":[4],\"type\":[1]}],[513,\"kritzel-tool-config\",{\"tool\":[1040],\"isExpanded\":[1028,\"is-expanded\"],\"theme\":[1],\"engine\":[16],\"config\":[32],\"palette\":[32],\"currentOpacity\":[32],\"updateTrigger\":[32]},null,{\"tool\":[{\"handleToolChange\":0}],\"theme\":[{\"onThemeChange\":0}],\"engine\":[{\"handleEngineChange\":0}]}],[513,\"kritzel-split-button\",{\"buttonIcon\":[1,\"button-icon\"],\"dropdownIcon\":[1,\"dropdown-icon\"],\"items\":[16],\"mainButtonDisabled\":[4,\"main-button-disabled\"],\"menuButtonDisabled\":[4,\"menu-button-disabled\"],\"isMenuOpen\":[32],\"isTouchDevice\":[32],\"anchorElement\":[32],\"menuScrollTop\":[32],\"open\":[64],\"focusMenu\":[64]}],[513,\"kritzel-current-user-dialog\",{\"user\":[16],\"isDialogOpen\":[32],\"open\":[64],\"close\":[64]}],[513,\"kritzel-context-menu\",{\"items\":[16],\"objects\":[16],\"processedItems\":[32],\"openSubmenuIndex\":[32],\"submenuPosition\":[32]},[[9,\"pointerdown\",\"handleOutsideClick\"]],{\"items\":[{\"onItemsChanged\":0}]}],[769,\"kritzel-master-detail\",{\"items\":[16],\"selectedItemId\":[1,\"selected-item-id\"],\"focusedIndex\":[32],\"showMobileDetail\":[32]},null,{\"selectedItemId\":[{\"watchSelectedItemId\":0}]}],[513,\"kritzel-pill-tabs\",{\"tabs\":[16],\"value\":[1025]}],[513,\"kritzel-utility-panel\",{\"undoState\":[16]}],[513,\"kritzel-awareness-cursors\",{\"core\":[16],\"showEdgeIndicators\":[4,\"show-edge-indicators\"],\"edgeIndicatorPadding\":[2,\"edge-indicator-padding\"],\"remoteCursors\":[32],\"objectVersion\":[32]}],[513,\"kritzel-cursor-trail\",{\"core\":[16],\"cursorTrailPoints\":[32],\"isLeftButtonDown\":[32]},[[9,\"pointerdown\",\"handleMouseDown\"],[9,\"pointermove\",\"handlePointerMove\"],[9,\"pointerup\",\"handlePointerUp\"]]],[513,\"kritzel-input\",{\"value\":[1025],\"label\":[1],\"placeholder\":[1],\"suffix\":[1],\"type\":[1],\"disabled\":[4],\"inputValue\":[32]},null,{\"value\":[{\"onValueChange\":0}]}],[513,\"kritzel-numeric-input\",{\"value\":[1026],\"min\":[2],\"max\":[2],\"step\":[2],\"label\":[1],\"placeholder\":[1],\"inputValue\":[32]},null,{\"value\":[{\"onValueChange\":0}]}],[769,\"kritzel-tooltip\",{\"isVisible\":[1028,\"is-visible\"],\"anchorElement\":[16],\"triggerElement\":[16],\"offsetY\":[2,\"offset-y\"],\"positionX\":[32],\"positionY\":[32],\"open\":[64],\"close\":[64],\"toggle\":[64],\"focusContent\":[64]},[[4,\"click\",\"handleOutsideClick\"],[6,\"pointerdown\",\"handleOutsidePointerDown\"],[4,\"kritzelTooltipCloseAll\",\"handleCloseAll\"],[9,\"resize\",\"handleWindowResize\"]],{\"triggerElement\":[{\"handleTriggerElementChange\":0}],\"isVisible\":[{\"handleVisibilityChange\":0}]}],[513,\"kritzel-color-palette\",{\"colors\":[16],\"selectedColor\":[1040],\"isExpanded\":[4,\"is-expanded\"],\"isOpaque\":[4,\"is-opaque\"],\"opacity\":[2],\"theme\":[1]}],[513,\"kritzel-font-family\",{\"fontOptions\":[16],\"selectedFontFamily\":[1025,\"selected-font-family\"]}],[513,\"kritzel-font-size\",{\"sizes\":[16],\"selectedSize\":[1026,\"selected-size\"],\"fontFamily\":[1,\"font-family\"]}],[513,\"kritzel-stroke-size\",{\"sizes\":[16],\"selectedSize\":[1026,\"selected-size\"]}],[513,\"kritzel-line-endings\",{\"styles\":[16],\"value\":[1040]}],[513,\"kritzel-opacity-slider\",{\"value\":[1026],\"min\":[2],\"max\":[2],\"step\":[2],\"previewColor\":[1,\"preview-color\"]}],[513,\"kritzel-shape-fill\",{\"value\":[1025]}],[513,\"kritzel-slide-toggle\",{\"checked\":[1028],\"disabled\":[4],\"label\":[1]}],[513,\"kritzel-avatar\",{\"user\":[16],\"name\":[1],\"size\":[2],\"color\":[1],\"imageError\":[32]},null,{\"user\":[{\"userChanged\":0}],\"profileImageUrl\":[{\"profileImageUrlChanged\":0}]}],[513,\"kritzel-font\",{\"fontFamily\":[1,\"font-family\"],\"size\":[2],\"color\":[1]}],[513,\"kritzel-color\",{\"value\":[1],\"theme\":[1],\"size\":[2]}],[513,\"kritzel-menu\",{\"items\":[16],\"parent\":[16],\"selectedIndex\":[32],\"setScrollTop\":[64],\"setFocus\":[64]}],[513,\"kritzel-menu-item\",{\"item\":[16],\"parent\":[16],\"isDirty\":[32]},null,{\"item\":[{\"onItemChange\":0}]}],[769,\"kritzel-dropdown\",{\"options\":[16],\"value\":[1],\"width\":[1],\"selectStyles\":[16],\"forceOpenDirection\":[1,\"force-open-direction\"],\"internalValue\":[32],\"hasSuffixContent\":[32],\"hasPrefixContent\":[32],\"isOpen\":[32],\"focusedIndex\":[32],\"openDirection\":[32]},[[4,\"click\",\"handleDocumentClick\"],[4,\"keydown\",\"handleDocumentKeydown\"]],{\"options\":[{\"optionsChanged\":0}],\"value\":[{\"externalValueChanged\":0}]}],[769,\"kritzel-portal\",{\"anchor\":[16],\"offsetX\":[2,\"offset-x\"],\"offsetY\":[2,\"offset-y\"],\"autoFocus\":[4,\"auto-focus\"]},[[8,\"kritzel-dismiss-menus\",\"handleDismissMenus\"],[8,\"click\",\"handleOutsideClick\"],[6,\"pointerdown\",\"handleOutsidePointerDown\"],[8,\"keydown\",\"handleKeyDown\"],[11,\"resize\",\"handleResize\"],[11,\"scroll\",\"handleWindowScroll\"]],{\"anchor\":[{\"anchorChanged\":0}]}],[769,\"kritzel-dialog\",{\"isOpen\":[516,\"is-open\"],\"dialogTitle\":[1,\"dialog-title\"],\"closable\":[4],\"closeOnBackdrop\":[4,\"close-on-backdrop\"],\"closeOnEscape\":[4,\"close-on-escape\"],\"autoFocus\":[4,\"auto-focus\"],\"trapFocus\":[4,\"trap-focus\"],\"size\":[1],\"fullscreenOnMobile\":[4,\"fullscreen-on-mobile\"],\"contained\":[516],\"isAnimating\":[32],\"mobileLockedHeight\":[32],\"containerRect\":[32],\"containerBorderRadius\":[32],\"open\":[64],\"close\":[64],\"focusFirstElement\":[64]},[[8,\"keydown\",\"handleKeyDown\"],[9,\"resize\",\"handleWindowResize\"],[8,\"orientationchange\",\"handleOrientationChange\"]],{\"isOpen\":[{\"handleIsOpenChange\":0}]}],[513,\"kritzel-icon\",{\"name\":[1],\"label\":[1],\"size\":[2]}]]],[\"kritzel-brush-style\",[[513,\"kritzel-brush-style\",{\"type\":[1],\"brushOptions\":[16]}]]]]"), options);
|
|
8
|
+
return bootstrapLazy(JSON.parse("[[\"kritzel-active-users_42\",[[512,\"kritzel-editor\",{\"scaleMax\":[1026,\"scale-max\"],\"scaleMin\":[1026,\"scale-min\"],\"lockDrawingScale\":[1028,\"lock-drawing-scale\"],\"viewportBoundaryLeft\":[1026,\"viewport-boundary-left\"],\"viewportBoundaryRight\":[1026,\"viewport-boundary-right\"],\"viewportBoundaryTop\":[1026,\"viewport-boundary-top\"],\"viewportBoundaryBottom\":[1026,\"viewport-boundary-bottom\"],\"wheelEnabled\":[1028,\"wheel-enabled\"],\"debugInfo\":[1040],\"user\":[16],\"activeUsers\":[16],\"controls\":[16],\"globalContextMenuItems\":[16],\"objectContextMenuItems\":[16],\"customSvgIcons\":[16],\"isControlsVisible\":[4,\"is-controls-visible\"],\"isUtilityPanelVisible\":[4,\"is-utility-panel-visible\"],\"isWorkspaceManagerVisible\":[4,\"is-workspace-manager-visible\"],\"isMoreMenuVisible\":[4,\"is-more-menu-visible\"],\"syncConfig\":[16],\"assetStorageConfig\":[16],\"cursorTarget\":[16],\"loginConfig\":[16],\"isLoading\":[4,\"is-loading\"],\"editorId\":[1,\"editor-id\"],\"activeWorkspaceId\":[1,\"active-workspace-id\"],\"isEngineReady\":[32],\"isControlsReady\":[32],\"isWorkspaceManagerReady\":[32],\"workspaces\":[32],\"activeWorkspace\":[32],\"isVirtualKeyboardOpen\":[32],\"undoState\":[32],\"isBackToContentButtonVisible\":[32],\"currentTheme\":[32],\"shortcuts\":[32],\"currentIsPublic\":[32],\"getObjectById\":[64],\"addObject\":[64],\"updateObject\":[64],\"removeObject\":[64],\"getSelectedObjects\":[64],\"selectObjects\":[64],\"selectAllObjectsInViewport\":[64],\"clearSelection\":[64],\"centerObjectInViewport\":[64],\"backToContent\":[64],\"centerAllObjects\":[64],\"setViewport\":[64],\"panTo\":[64],\"zoomTo\":[64],\"getViewport\":[64],\"screenToWorld\":[64],\"worldToScreen\":[64],\"createWorkspace\":[64],\"updateWorkspace\":[64],\"deleteWorkspace\":[64],\"getWorkspaces\":[64],\"getActiveWorkspace\":[64],\"loadSharedWorkspace\":[64],\"reinitSync\":[64],\"registerTool\":[64],\"changeActiveTool\":[64],\"changeActiveToolByName\":[64],\"disable\":[64],\"enable\":[64],\"copy\":[64],\"cut\":[64],\"paste\":[64],\"delete\":[64],\"bringForward\":[64],\"sendBackward\":[64],\"bringToFront\":[64],\"sendToBack\":[64],\"alignObjects\":[64],\"group\":[64],\"ungroup\":[64],\"undo\":[64],\"redo\":[64],\"getScreenshot\":[64],\"exportViewportAsPng\":[64],\"exportViewportAsSvg\":[64],\"downloadAsJson\":[64],\"importFromFile\":[64],\"loadObjectsFromJson\":[64],\"getObjectsTotalCount\":[64],\"getAllObjects\":[64],\"findObjects\":[64],\"getCopiedObjects\":[64],\"getObjectsInViewport\":[64],\"hideContextMenu\":[64],\"triggerSelectionChange\":[64],\"getDisplayableShortcuts\":[64],\"openLoginDialog\":[64],\"setLoginLoading\":[64]},[[0,\"dblclick\",\"onTouchStart\"]],{\"isEngineReady\":[{\"onIsEngineReady\":0}],\"isControlsReady\":[{\"onIsControlsReady\":0}],\"workspaces\":[{\"onWorkspacesChange\":0}],\"activeWorkspace\":[{\"onActiveWorkspaceChange\":0}],\"activeWorkspaceId\":[{\"onActiveWorkspaceIdChange\":0}],\"currentTheme\":[{\"onCurrentThemeChange\":0}]}],[513,\"kritzel-controls\",{\"controls\":[16],\"activeControl\":[1040],\"isUtilityPanelVisible\":[4,\"is-utility-panel-visible\"],\"undoState\":[16],\"theme\":[1],\"firstConfig\":[32],\"isTouchDevice\":[32],\"selectedSubOptions\":[32],\"canScrollLeft\":[32],\"canScrollRight\":[32],\"needsScrolling\":[32],\"displayValues\":[32],\"internalControls\":[32],\"closeTooltip\":[64]},[[8,\"keydown\",\"handleKeyDown\"]],{\"controls\":[{\"onControlsChange\":0}],\"theme\":[{\"onThemeChange\":0}]}],[513,\"kritzel-export\",{\"workspaceName\":[1,\"workspace-name\"],\"isDialogOpen\":[32],\"previewUrl\":[32],\"isLoading\":[32],\"activeTab\":[32],\"exportFilename\":[32],\"viewportExportFormat\":[32],\"open\":[64]}],[513,\"kritzel-settings\",{\"shortcuts\":[16],\"settings\":[16],\"isDialogOpen\":[32],\"selectedCategoryId\":[32],\"scaleMin\":[32],\"scaleMax\":[32],\"lockDrawingScale\":[32],\"currentTheme\":[32],\"viewportBoundaryLeft\":[32],\"viewportBoundaryRight\":[32],\"viewportBoundaryTop\":[32],\"viewportBoundaryBottom\":[32],\"debugInfo\":[32],\"open\":[64]},null,{\"settings\":[{\"onSettingsPropChange\":0}]}],[513,\"kritzel-workspace-manager\",{\"visible\":[4],\"activeWorkspace\":[1040],\"workspaces\":[16],\"childMenuAnchor\":[32],\"openChildMenuItem\":[32],\"newWorkspace\":[32],\"editingItemId\":[32]},[[8,\"wheel\",\"handleWheel\"]]],[513,\"kritzel-engine\",{\"workspace\":[16],\"editorId\":[1,\"editor-id\"],\"activeWorkspaceId\":[1,\"active-workspace-id\"],\"syncConfig\":[16],\"assetStorageConfig\":[16],\"user\":[16],\"globalContextMenuItems\":[16],\"objectContextMenuItems\":[16],\"scaleMax\":[1026,\"scale-max\"],\"scaleMin\":[1026,\"scale-min\"],\"cursorTarget\":[16],\"lockDrawingScale\":[4,\"lock-drawing-scale\"],\"theme\":[1],\"viewportBoundaryLeft\":[2,\"viewport-boundary-left\"],\"viewportBoundaryRight\":[2,\"viewport-boundary-right\"],\"viewportBoundaryTop\":[2,\"viewport-boundary-top\"],\"viewportBoundaryBottom\":[2,\"viewport-boundary-bottom\"],\"debugInfo\":[16],\"wheelEnabled\":[4,\"wheel-enabled\"],\"isLoading\":[4,\"is-loading\"],\"forceUpdate\":[32],\"triggerSelectionChange\":[64],\"registerTool\":[64],\"changeActiveTool\":[64],\"changeActiveToolByName\":[64],\"disable\":[64],\"enable\":[64],\"delete\":[64],\"copy\":[64],\"cut\":[64],\"paste\":[64],\"bringForward\":[64],\"sendBackward\":[64],\"bringToFront\":[64],\"sendToBack\":[64],\"alignObjects\":[64],\"group\":[64],\"ungroup\":[64],\"undo\":[64],\"redo\":[64],\"hideContextMenu\":[64],\"getObjectById\":[64],\"getAllObjects\":[64],\"findObjects\":[64],\"getObjectsTotalCount\":[64],\"addObject\":[64],\"updateObject\":[64],\"removeObject\":[64],\"getSelectedObjects\":[64],\"getDisplayableShortcuts\":[64],\"selectObjects\":[64],\"selectAllObjectsInViewport\":[64],\"clearSelection\":[64],\"centerObjectInViewport\":[64],\"backToContent\":[64],\"centerAllObjects\":[64],\"setViewport\":[64],\"panTo\":[64],\"zoomTo\":[64],\"getViewport\":[64],\"screenToWorld\":[64],\"worldToScreen\":[64],\"getCopiedObjects\":[64],\"getObjectsInViewport\":[64],\"getScreenshot\":[64],\"exportViewportAsPng\":[64],\"exportViewportAsSvg\":[64],\"getSelectedObjectsAsSvgString\":[64],\"exportSelectedObjectsAsSvg\":[64],\"getSelectedObjectsAsPngDataUrl\":[64],\"exportSelectedObjectsAsPng\":[64],\"exportAsJson\":[64],\"importFromJson\":[64],\"loadObjectsFromJson\":[64],\"downloadAsJson\":[64],\"importFromFile\":[64],\"createWorkspace\":[64],\"updateWorkspace\":[64],\"deleteWorkspace\":[64],\"getWorkspaces\":[64],\"getActiveWorkspace\":[64],\"getIsPublic\":[64],\"loadSharedWorkspace\":[64],\"reinitSync\":[64],\"saveSettings\":[64],\"loadSettings\":[64]},[[1,\"wheel\",\"handleWheel\"],[0,\"pointerdown\",\"handlePointerDown\"],[0,\"pointermove\",\"handlePointerMove\"],[0,\"pointerup\",\"handlePointerUp\"],[0,\"pointercancel\",\"handlePointerCancel\"],[1,\"pointerleave\",\"handlePointerLeave\"],[1,\"longpress\",\"handleLongPress\"],[0,\"contextmenu\",\"handleContextMenu\"],[9,\"resize\",\"handleResize\"],[8,\"keydown\",\"handleKeyDown\"],[8,\"keyup\",\"handleKeyUp\"],[4,\"dblclick\",\"preventDoubleTapZoomOnTouchDevices\"]],{\"workspace\":[{\"onWorkspaceChange\":0}],\"activeWorkspaceId\":[{\"onActiveWorkspaceIdChange\":0}],\"syncConfig\":[{\"onSyncConfigChange\":0}],\"assetStorageConfig\":[{\"onAssetStorageConfigChange\":0}],\"user\":[{\"onUserChange\":0}],\"scaleMax\":[{\"validateScaleMax\":0}],\"scaleMin\":[{\"validateScaleMin\":0}],\"cursorTarget\":[{\"onCursorTargetChange\":0}],\"lockDrawingScale\":[{\"onLockDrawingScaleChange\":0}],\"theme\":[{\"onThemeChange\":0}],\"viewportBoundaryLeft\":[{\"onViewportBoundaryLeftChange\":0}],\"viewportBoundaryRight\":[{\"onViewportBoundaryRightChange\":0}],\"viewportBoundaryTop\":[{\"onViewportBoundaryTopChange\":0}],\"viewportBoundaryBottom\":[{\"onViewportBoundaryBottomChange\":0}],\"debugInfo\":[{\"onDebugInfoChange\":0}],\"isLoading\":[{\"onIsLoadingChange\":0}]}],[513,\"kritzel-more-menu\",{\"visible\":[4],\"items\":[16],\"icon\":[1],\"iconSize\":[2,\"icon-size\"],\"offsetY\":[2,\"offset-y\"],\"menuAnchor\":[32],\"isTouchDevice\":[32]}],[513,\"kritzel-current-user\",{\"user\":[16],\"avatarSize\":[2,\"avatar-size\"]}],[513,\"kritzel-share-dialog\",{\"isPublic\":[4,\"is-public\"],\"workspaceId\":[1,\"workspace-id\"],\"isDialogOpen\":[32],\"internalIsPublic\":[32],\"copySuccess\":[32],\"open\":[64],\"close\":[64]},null,{\"isPublic\":[{\"onIsPublicChange\":0}]}],[513,\"kritzel-login-dialog\",{\"providers\":[16],\"dialogTitle\":[1,\"dialog-title\"],\"subtitle\":[1],\"isDialogOpen\":[32],\"loadingProvider\":[32],\"open\":[64],\"close\":[64],\"setLoading\":[64]}],[513,\"kritzel-active-users\",{\"users\":[16],\"avatarSize\":[2,\"avatar-size\"],\"maxVisible\":[2,\"max-visible\"],\"overlap\":[2]}],[513,\"kritzel-back-to-content\",{\"visible\":[4],\"text\":[1]}],[769,\"kritzel-button\",{\"variant\":[1],\"disabled\":[4],\"type\":[1]}],[513,\"kritzel-tool-config\",{\"tool\":[1040],\"isExpanded\":[1028,\"is-expanded\"],\"theme\":[1],\"engine\":[16],\"config\":[32],\"palette\":[32],\"sizes\":[32],\"currentOpacity\":[32],\"updateTrigger\":[32]},null,{\"tool\":[{\"handleToolChange\":0}],\"theme\":[{\"onThemeChange\":0}],\"engine\":[{\"handleEngineChange\":0}]}],[513,\"kritzel-split-button\",{\"buttonIcon\":[1,\"button-icon\"],\"dropdownIcon\":[1,\"dropdown-icon\"],\"items\":[16],\"mainButtonDisabled\":[4,\"main-button-disabled\"],\"menuButtonDisabled\":[4,\"menu-button-disabled\"],\"isMenuOpen\":[32],\"isTouchDevice\":[32],\"anchorElement\":[32],\"menuScrollTop\":[32],\"open\":[64],\"focusMenu\":[64]}],[513,\"kritzel-current-user-dialog\",{\"user\":[16],\"isDialogOpen\":[32],\"open\":[64],\"close\":[64]}],[513,\"kritzel-context-menu\",{\"items\":[16],\"objects\":[16],\"processedItems\":[32],\"openSubmenuIndex\":[32],\"submenuPosition\":[32]},[[9,\"pointerdown\",\"handleOutsideClick\"]],{\"items\":[{\"onItemsChanged\":0}]}],[769,\"kritzel-master-detail\",{\"items\":[16],\"selectedItemId\":[1,\"selected-item-id\"],\"focusedIndex\":[32],\"showMobileDetail\":[32]},null,{\"selectedItemId\":[{\"watchSelectedItemId\":0}]}],[513,\"kritzel-pill-tabs\",{\"tabs\":[16],\"value\":[1025]}],[513,\"kritzel-utility-panel\",{\"undoState\":[16]}],[513,\"kritzel-awareness-cursors\",{\"core\":[16],\"showEdgeIndicators\":[4,\"show-edge-indicators\"],\"edgeIndicatorPadding\":[2,\"edge-indicator-padding\"],\"remoteCursors\":[32],\"objectVersion\":[32]}],[513,\"kritzel-cursor-trail\",{\"core\":[16],\"cursorTrailPoints\":[32],\"isLeftButtonDown\":[32]},[[9,\"pointerdown\",\"handleMouseDown\"],[9,\"pointermove\",\"handlePointerMove\"],[9,\"pointerup\",\"handlePointerUp\"]]],[513,\"kritzel-input\",{\"value\":[1025],\"label\":[1],\"placeholder\":[1],\"suffix\":[1],\"type\":[1],\"disabled\":[4],\"inputValue\":[32]},null,{\"value\":[{\"onValueChange\":0}]}],[513,\"kritzel-numeric-input\",{\"value\":[1026],\"min\":[2],\"max\":[2],\"step\":[2],\"label\":[1],\"placeholder\":[1],\"inputValue\":[32]},null,{\"value\":[{\"onValueChange\":0}]}],[769,\"kritzel-tooltip\",{\"isVisible\":[1028,\"is-visible\"],\"anchorElement\":[16],\"triggerElement\":[16],\"offsetY\":[2,\"offset-y\"],\"positionX\":[32],\"positionY\":[32],\"open\":[64],\"close\":[64],\"toggle\":[64],\"focusContent\":[64]},[[4,\"click\",\"handleOutsideClick\"],[6,\"pointerdown\",\"handleOutsidePointerDown\"],[4,\"kritzelTooltipCloseAll\",\"handleCloseAll\"],[9,\"resize\",\"handleWindowResize\"]],{\"triggerElement\":[{\"handleTriggerElementChange\":0}],\"isVisible\":[{\"handleVisibilityChange\":0}]}],[513,\"kritzel-color-palette\",{\"colors\":[16],\"selectedColor\":[1040],\"isExpanded\":[4,\"is-expanded\"],\"isOpaque\":[4,\"is-opaque\"],\"opacity\":[2],\"theme\":[1]}],[513,\"kritzel-font-family\",{\"fontOptions\":[16],\"selectedFontFamily\":[1025,\"selected-font-family\"]}],[513,\"kritzel-font-size\",{\"sizes\":[16],\"selectedSize\":[1026,\"selected-size\"],\"fontFamily\":[1,\"font-family\"]}],[513,\"kritzel-stroke-size\",{\"sizes\":[16],\"selectedSize\":[1026,\"selected-size\"]}],[513,\"kritzel-line-endings\",{\"styles\":[16],\"value\":[1040]}],[513,\"kritzel-opacity-slider\",{\"value\":[1026],\"min\":[2],\"max\":[2],\"step\":[2],\"previewColor\":[1,\"preview-color\"]}],[513,\"kritzel-shape-fill\",{\"value\":[1025]}],[513,\"kritzel-slide-toggle\",{\"checked\":[1028],\"disabled\":[4],\"label\":[1]}],[513,\"kritzel-avatar\",{\"user\":[16],\"name\":[1],\"size\":[2],\"color\":[1],\"imageError\":[32]},null,{\"user\":[{\"userChanged\":0}],\"profileImageUrl\":[{\"profileImageUrlChanged\":0}]}],[513,\"kritzel-font\",{\"fontFamily\":[1,\"font-family\"],\"size\":[2],\"color\":[1]}],[513,\"kritzel-color\",{\"value\":[1],\"theme\":[1],\"size\":[2]}],[513,\"kritzel-menu\",{\"items\":[16],\"parent\":[16],\"selectedIndex\":[32],\"setScrollTop\":[64],\"setFocus\":[64]}],[513,\"kritzel-menu-item\",{\"item\":[16],\"parent\":[16],\"isDirty\":[32]},null,{\"item\":[{\"onItemChange\":0}]}],[769,\"kritzel-dropdown\",{\"options\":[16],\"value\":[1],\"width\":[1],\"selectStyles\":[16],\"forceOpenDirection\":[1,\"force-open-direction\"],\"internalValue\":[32],\"hasSuffixContent\":[32],\"hasPrefixContent\":[32],\"isOpen\":[32],\"focusedIndex\":[32],\"openDirection\":[32]},[[4,\"click\",\"handleDocumentClick\"],[4,\"keydown\",\"handleDocumentKeydown\"]],{\"options\":[{\"optionsChanged\":0}],\"value\":[{\"externalValueChanged\":0}]}],[769,\"kritzel-portal\",{\"anchor\":[16],\"offsetX\":[2,\"offset-x\"],\"offsetY\":[2,\"offset-y\"],\"autoFocus\":[4,\"auto-focus\"]},[[8,\"kritzel-dismiss-menus\",\"handleDismissMenus\"],[8,\"click\",\"handleOutsideClick\"],[6,\"pointerdown\",\"handleOutsidePointerDown\"],[8,\"keydown\",\"handleKeyDown\"],[11,\"resize\",\"handleResize\"],[11,\"scroll\",\"handleWindowScroll\"]],{\"anchor\":[{\"anchorChanged\":0}]}],[769,\"kritzel-dialog\",{\"isOpen\":[516,\"is-open\"],\"dialogTitle\":[1,\"dialog-title\"],\"closable\":[4],\"closeOnBackdrop\":[4,\"close-on-backdrop\"],\"closeOnEscape\":[4,\"close-on-escape\"],\"autoFocus\":[4,\"auto-focus\"],\"trapFocus\":[4,\"trap-focus\"],\"size\":[1],\"fullscreenOnMobile\":[4,\"fullscreen-on-mobile\"],\"contained\":[516],\"isAnimating\":[32],\"mobileLockedHeight\":[32],\"containerRect\":[32],\"containerBorderRadius\":[32],\"open\":[64],\"close\":[64],\"focusFirstElement\":[64]},[[8,\"keydown\",\"handleKeyDown\"],[9,\"resize\",\"handleWindowResize\"],[8,\"orientationchange\",\"handleOrientationChange\"]],{\"isOpen\":[{\"handleIsOpenChange\":0}]}],[513,\"kritzel-icon\",{\"name\":[1],\"label\":[1],\"size\":[2]}]]],[\"kritzel-brush-style\",[[513,\"kritzel-brush-style\",{\"type\":[1],\"brushOptions\":[16]}]]]]"), options);
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
export { defineCustomElements };
|
|
@@ -1140,7 +1140,7 @@ class Fragment {
|
|
|
1140
1140
|
return Fragment.empty;
|
|
1141
1141
|
if (!Array.isArray(value))
|
|
1142
1142
|
throw new RangeError("Invalid input for Fragment.fromJSON");
|
|
1143
|
-
return
|
|
1143
|
+
return Fragment.fromArray(value.map(schema.nodeFromJSON));
|
|
1144
1144
|
}
|
|
1145
1145
|
/**
|
|
1146
1146
|
Build a fragment from an array of nodes. Ensures that adjacent
|
|
@@ -1374,17 +1374,6 @@ given an invalid replacement.
|
|
|
1374
1374
|
*/
|
|
1375
1375
|
class ReplaceError extends Error {
|
|
1376
1376
|
}
|
|
1377
|
-
/*
|
|
1378
|
-
ReplaceError = function(this: any, message: string) {
|
|
1379
|
-
let err = Error.call(this, message)
|
|
1380
|
-
;(err as any).__proto__ = ReplaceError.prototype
|
|
1381
|
-
return err
|
|
1382
|
-
} as any
|
|
1383
|
-
|
|
1384
|
-
ReplaceError.prototype = Object.create(Error.prototype)
|
|
1385
|
-
ReplaceError.prototype.constructor = ReplaceError
|
|
1386
|
-
ReplaceError.prototype.name = "ReplaceError"
|
|
1387
|
-
*/
|
|
1388
1377
|
/**
|
|
1389
1378
|
A slice represents a piece cut out of a larger document. It
|
|
1390
1379
|
stores not only a fragment, but also the depth up to which nodes on
|
|
@@ -1430,7 +1419,7 @@ class Slice {
|
|
|
1430
1419
|
@internal
|
|
1431
1420
|
*/
|
|
1432
1421
|
insertAt(pos, fragment) {
|
|
1433
|
-
let content = insertInto(this.content, pos + this.openStart, fragment);
|
|
1422
|
+
let content = insertInto(this.content, pos + this.openStart, fragment, this.openStart + 1, this.openEnd + 1);
|
|
1434
1423
|
return content && new Slice(content, this.openStart, this.openEnd);
|
|
1435
1424
|
}
|
|
1436
1425
|
/**
|
|
@@ -1504,14 +1493,14 @@ function removeRange(content, from, to) {
|
|
|
1504
1493
|
throw new RangeError("Removing non-flat range");
|
|
1505
1494
|
return content.replaceChild(index, child.copy(removeRange(child.content, from - offset - 1, to - offset - 1)));
|
|
1506
1495
|
}
|
|
1507
|
-
function insertInto(content, dist, insert, parent) {
|
|
1496
|
+
function insertInto(content, dist, insert, openStart, openEnd, parent) {
|
|
1508
1497
|
let { index, offset } = content.findIndex(dist), child = content.maybeChild(index);
|
|
1509
1498
|
if (offset == dist || child.isText) {
|
|
1510
|
-
if (parent && !parent.canReplace(index, index, insert))
|
|
1499
|
+
if (parent && openStart <= 0 && openEnd <= 0 && !parent.canReplace(index, index, insert))
|
|
1511
1500
|
return null;
|
|
1512
1501
|
return content.cut(0, dist).append(insert).append(content.cut(dist));
|
|
1513
1502
|
}
|
|
1514
|
-
let inner = insertInto(child.content, dist - offset - 1, insert, child);
|
|
1503
|
+
let inner = insertInto(child.content, dist - offset - 1, insert, index == 0 ? openStart - 1 : 0, index == content.childCount - 1 ? openEnd - 1 : 0, child);
|
|
1515
1504
|
return inner && content.replaceChild(index, child.copy(inner));
|
|
1516
1505
|
}
|
|
1517
1506
|
function replace($from, $to, slice) {
|
|
@@ -2041,10 +2030,11 @@ class Node {
|
|
|
2041
2030
|
*/
|
|
2042
2031
|
forEach(f) { this.content.forEach(f); }
|
|
2043
2032
|
/**
|
|
2044
|
-
Invoke a callback for all descendant nodes recursively
|
|
2033
|
+
Invoke a callback for all descendant nodes recursively overlapping
|
|
2045
2034
|
the given two positions that are relative to start of this
|
|
2046
|
-
node's content.
|
|
2047
|
-
|
|
2035
|
+
node's content. This includes all ancestors of the nodes
|
|
2036
|
+
containing the two positions. The callback is invoked with the
|
|
2037
|
+
node, its position relative to the original node (method receiver),
|
|
2048
2038
|
its parent node, and its child index. When the callback returns
|
|
2049
2039
|
false for a given node, that node's children will not be
|
|
2050
2040
|
recursed over. The last parameter can be used to specify a
|
|
@@ -4132,6 +4122,8 @@ class DOMSerializer {
|
|
|
4132
4122
|
@internal
|
|
4133
4123
|
*/
|
|
4134
4124
|
serializeNodeInner(node, options) {
|
|
4125
|
+
if (node.isText)
|
|
4126
|
+
return doc$1(options).createTextNode(node.text);
|
|
4135
4127
|
let { dom, contentDOM } = renderSpec(doc$1(options), this.nodes[node.type.name](node), null, node.attrs);
|
|
4136
4128
|
if (contentDOM) {
|
|
4137
4129
|
if (node.isLeaf)
|
|
@@ -4166,6 +4158,9 @@ class DOMSerializer {
|
|
|
4166
4158
|
return toDOM && renderSpec(doc$1(options), toDOM(mark, inline), null, mark.attrs);
|
|
4167
4159
|
}
|
|
4168
4160
|
static renderSpec(doc, structure, xmlNS = null, blockArraysIn) {
|
|
4161
|
+
// Kludge for backwards-compatibility with accidental original behavious
|
|
4162
|
+
if (typeof structure == "string")
|
|
4163
|
+
return { dom: doc.createTextNode(structure) };
|
|
4169
4164
|
return renderSpec(doc, structure, xmlNS, blockArraysIn);
|
|
4170
4165
|
}
|
|
4171
4166
|
/**
|
|
@@ -4237,11 +4232,9 @@ function suspiciousAttributesInner(attrs) {
|
|
|
4237
4232
|
return result;
|
|
4238
4233
|
}
|
|
4239
4234
|
function renderSpec(doc, structure, xmlNS, blockArraysIn) {
|
|
4240
|
-
if (
|
|
4241
|
-
return { dom: doc.createTextNode(structure) };
|
|
4242
|
-
if (structure.nodeType != null)
|
|
4235
|
+
if (structure.nodeType == 1)
|
|
4243
4236
|
return { dom: structure };
|
|
4244
|
-
if (structure.dom && structure.dom.nodeType
|
|
4237
|
+
if (structure.dom && structure.dom.nodeType == 1)
|
|
4245
4238
|
return structure;
|
|
4246
4239
|
let tagName = structure[0], suspicious;
|
|
4247
4240
|
if (typeof tagName != "string")
|
|
@@ -4277,6 +4270,9 @@ function renderSpec(doc, structure, xmlNS, blockArraysIn) {
|
|
|
4277
4270
|
throw new RangeError("Content hole must be the only child of its parent node");
|
|
4278
4271
|
return { dom, contentDOM: dom };
|
|
4279
4272
|
}
|
|
4273
|
+
else if (typeof child == "string") {
|
|
4274
|
+
dom.appendChild(doc.createTextNode(child));
|
|
4275
|
+
}
|
|
4280
4276
|
else {
|
|
4281
4277
|
let { dom: inner, contentDOM: innerContent } = renderSpec(doc, child, xmlNS, blockArraysIn);
|
|
4282
4278
|
dom.appendChild(inner);
|
|
@@ -19444,6 +19440,9 @@ class KritzelBaseTool {
|
|
|
19444
19440
|
}
|
|
19445
19441
|
}
|
|
19446
19442
|
|
|
19443
|
+
const DEFAULT_STROKE_SIZES = [4, 6, 8, 12, 16, 24];
|
|
19444
|
+
const DEFAULT_FONT_SIZES = [8, 10, 12, 16, 20, 24];
|
|
19445
|
+
|
|
19447
19446
|
/**
|
|
19448
19447
|
* Brush tool for free-hand drawing on the canvas.
|
|
19449
19448
|
* Creates smooth paths by tracking pointer movement and rendering stroke paths.
|
|
@@ -19458,6 +19457,8 @@ class KritzelBrushTool extends KritzelBaseTool {
|
|
|
19458
19457
|
opacity = 1;
|
|
19459
19458
|
/** Available color palette for the brush tool */
|
|
19460
19459
|
palette = [...DEFAULT_COLOR_PALETTE];
|
|
19460
|
+
/** Available stroke size presets for the brush tool */
|
|
19461
|
+
sizes = [...DEFAULT_STROKE_SIZES];
|
|
19461
19462
|
/**
|
|
19462
19463
|
* Minimum distance in screen pixels between two consecutive stored points.
|
|
19463
19464
|
* Pointer-move samples closer than this to the previously stored point are
|
|
@@ -20316,6 +20317,8 @@ class KritzelLineTool extends KritzelBaseTool {
|
|
|
20316
20317
|
opacity = 1;
|
|
20317
20318
|
/** Available color palette for the line tool */
|
|
20318
20319
|
palette = [...DEFAULT_COLOR_PALETTE];
|
|
20320
|
+
/** Available stroke size presets for the line tool */
|
|
20321
|
+
sizes = [...DEFAULT_STROKE_SIZES];
|
|
20319
20322
|
/** Arrow head configuration for lines created with this tool */
|
|
20320
20323
|
arrows;
|
|
20321
20324
|
/** X coordinate of the line's starting point */
|
|
@@ -20922,6 +20925,8 @@ class KritzelTextTool extends KritzelBaseTool {
|
|
|
20922
20925
|
}
|
|
20923
20926
|
/** Available color palette for the text tool */
|
|
20924
20927
|
palette = [...DEFAULT_COLOR_PALETTE];
|
|
20928
|
+
/** Available font size presets for the text tool */
|
|
20929
|
+
sizes = [...DEFAULT_FONT_SIZES];
|
|
20925
20930
|
/**
|
|
20926
20931
|
* Creates a new instance of KritzelTextTool.
|
|
20927
20932
|
* @param core - The KritzelCore instance that provides access to application state and functionality
|
|
@@ -21066,6 +21071,8 @@ class KritzelShapeTool extends KritzelBaseTool {
|
|
|
21066
21071
|
fontColor = DEFAULT_COLOR_PALETTE[0];
|
|
21067
21072
|
/** Available color palette for the shape tool */
|
|
21068
21073
|
palette = [...DEFAULT_COLOR_PALETTE];
|
|
21074
|
+
/** Available stroke size presets for the shape tool */
|
|
21075
|
+
sizes = [...DEFAULT_STROKE_SIZES];
|
|
21069
21076
|
/** X coordinate where the shape drawing started */
|
|
21070
21077
|
startX = 0;
|
|
21071
21078
|
/** Y coordinate where the shape drawing started */
|
|
@@ -23538,6 +23545,7 @@ class KritzelSelectionTool extends KritzelBaseTool {
|
|
|
23538
23545
|
sizeProperty: 'size',
|
|
23539
23546
|
opacityProperty: 'opacity',
|
|
23540
23547
|
paletteSource: 'none',
|
|
23548
|
+
sizesSource: 'none',
|
|
23541
23549
|
controls: [],
|
|
23542
23550
|
};
|
|
23543
23551
|
}
|
|
@@ -23566,6 +23574,7 @@ class KritzelSelectionTool extends KritzelBaseTool {
|
|
|
23566
23574
|
sizeProperty: 'size',
|
|
23567
23575
|
opacityProperty: 'opacity',
|
|
23568
23576
|
paletteSource: 'palette',
|
|
23577
|
+
sizesSource: 'none',
|
|
23569
23578
|
controls,
|
|
23570
23579
|
};
|
|
23571
23580
|
}
|
|
@@ -28182,6 +28191,9 @@ const DEFAULT_BRUSH_CONFIG = {
|
|
|
28182
28191
|
palettes: {
|
|
28183
28192
|
pen: [...DEFAULT_COLOR_PALETTE],
|
|
28184
28193
|
},
|
|
28194
|
+
sizes: {
|
|
28195
|
+
pen: [...DEFAULT_STROKE_SIZES],
|
|
28196
|
+
},
|
|
28185
28197
|
};
|
|
28186
28198
|
|
|
28187
28199
|
const DEFAULT_TEXT_CONFIG = {
|
|
@@ -28189,12 +28201,14 @@ const DEFAULT_TEXT_CONFIG = {
|
|
|
28189
28201
|
size: 8,
|
|
28190
28202
|
fontFamily: 'Arial',
|
|
28191
28203
|
palette: [...DEFAULT_COLOR_PALETTE],
|
|
28204
|
+
sizes: [...DEFAULT_FONT_SIZES],
|
|
28192
28205
|
};
|
|
28193
28206
|
|
|
28194
28207
|
const DEFAULT_LINE_TOOL_CONFIG = {
|
|
28195
28208
|
color: DEFAULT_COLOR_PALETTE[0],
|
|
28196
28209
|
size: 4,
|
|
28197
28210
|
palette: [...DEFAULT_COLOR_PALETTE],
|
|
28211
|
+
sizes: [...DEFAULT_STROKE_SIZES],
|
|
28198
28212
|
arrows: {
|
|
28199
28213
|
end: { enabled: true, style: 'triangle' },
|
|
28200
28214
|
},
|
|
@@ -28220,11 +28234,6 @@ var KritzelAlignment;
|
|
|
28220
28234
|
KritzelAlignment["EndVertical"] = "end-vertical";
|
|
28221
28235
|
})(KritzelAlignment || (KritzelAlignment = {}));
|
|
28222
28236
|
|
|
28223
|
-
/** Current schema version for the app-state Y.Doc (workspace list & settings). */
|
|
28224
|
-
const CURRENT_APP_STATE_SCHEMA_VERSION = 2;
|
|
28225
|
-
/** Current schema version for workspace Y.Docs (drawable objects). */
|
|
28226
|
-
const CURRENT_WORKSPACE_SCHEMA_VERSION = 2;
|
|
28227
|
-
|
|
28228
28237
|
/**
|
|
28229
28238
|
* Runs pending schema migrations on a Y.Doc.
|
|
28230
28239
|
*
|
|
@@ -28339,4 +28348,9 @@ const WORKSPACE_MIGRATIONS = [
|
|
|
28339
28348
|
},
|
|
28340
28349
|
];
|
|
28341
28350
|
|
|
28342
|
-
|
|
28351
|
+
/** Current schema version for the app-state Y.Doc (workspace list & settings). */
|
|
28352
|
+
const CURRENT_APP_STATE_SCHEMA_VERSION = 2;
|
|
28353
|
+
/** Current schema version for workspace Y.Docs (drawable objects). */
|
|
28354
|
+
const CURRENT_WORKSPACE_SCHEMA_VERSION = 2;
|
|
28355
|
+
|
|
28356
|
+
export { AssetNotFoundError as A, APP_STATE_MIGRATIONS as B, WORKSPACE_MIGRATIONS as C, DEFAULT_BRUSH_CONFIG as D, CURRENT_APP_STATE_SCHEMA_VERSION as E, CURRENT_WORKSPACE_SCHEMA_VERSION as F, KritzelColorHelper as G, HocuspocusProvider as H, IndexedDBSyncProvider as I, KritzelDevicesHelper as J, KritzelText as K, KritzelMouseButton as L, DEFAULT_STROKE_SIZES as M, DEFAULT_COLOR_PALETTE as N, KritzelSelectionGroup as O, KritzelSelectionBox as P, KritzelIconRegistry as Q, KritzelKeyboardHelper as R, ShapeType as S, KritzelBaseHandler as T, KritzelBaseObject as U, ObjectHelper as V, WORKSPACE_EXPORT_VERSION as W, KritzelClassHelper as X, KritzelEventHelper as Y, HocuspocusProviderWebsocket as a, KritzelPath as b, KritzelImage as c, KritzelLine as d, KritzelGroup as e, KritzelShape as f, KritzelBrushTool as g, KritzelLineTool as h, KritzelEraserTool as i, KritzelImageTool as j, KritzelTextTool as k, KritzelShapeTool as l, KritzelCursorHelper as m, KritzelSelectionTool as n, KritzelAssetResolver as o, IndexedDBAssetProvider as p, KritzelWorkspace as q, KritzelAnchorManager as r, KritzelThemeManager as s, DEFAULT_TEXT_CONFIG as t, DEFAULT_LINE_TOOL_CONFIG as u, DEFAULT_ASSET_STORAGE_CONFIG as v, lightTheme as w, darkTheme as x, KritzelAlignment as y, runMigrations as z };
|