kritzel-stencil 0.1.70 → 0.1.71
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 +1 -1
- package/dist/cjs/kritzel-active-users_41.cjs.entry.js +49 -8
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/stencil.cjs.js +1 -1
- package/dist/cjs/{workspace.migrations-TqXdsW1s.js → workspace.migrations-Cma2Vh5E.js} +2 -1
- package/dist/collection/classes/registries/icon-registry.class.js +2 -1
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +36 -1
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +34 -0
- package/dist/collection/components/shared/kritzel-master-detail/kritzel-master-detail.css +1 -0
- package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +3 -1
- package/dist/collection/components/ui/kritzel-more-menu/kritzel-more-menu.css +5 -0
- package/dist/collection/components/ui/kritzel-more-menu/kritzel-more-menu.js +5 -2
- package/dist/collection/components/ui/kritzel-settings/kritzel-settings.js +21 -2
- package/dist/collection/constants/version.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/kritzel-back-to-content.js +1 -1
- package/dist/components/kritzel-brush-style.js +1 -1
- package/dist/components/kritzel-context-menu.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-export.js +1 -1
- package/dist/components/kritzel-icon.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-pill-tabs.js +1 -1
- package/dist/components/kritzel-settings.js +1 -1
- package/dist/components/kritzel-share-dialog.js +1 -1
- package/dist/components/kritzel-split-button.js +1 -1
- package/dist/components/kritzel-tool-config.js +1 -1
- package/dist/components/kritzel-utility-panel.js +1 -1
- package/dist/components/kritzel-workspace-manager.js +1 -1
- package/dist/components/{p-D6RNXsYR.js → p-B47JuZiD.js} +1 -1
- package/dist/components/{p-B_j7el2b.js → p-B5ouV8EQ.js} +1 -1
- package/dist/components/p-BB6jZPvJ.js +1 -0
- package/dist/components/{p-BsM1KXx1.js → p-BG1IxseV.js} +1 -1
- package/dist/components/p-BvToKcu1.js +1 -0
- package/dist/components/{p-A7HszzcA.js → p-C5KuV1pK.js} +1 -1
- package/dist/components/{p-BbUblXxe.js → p-CHmi1QWx.js} +1 -1
- package/dist/components/p-CHtn5xr6.js +1 -0
- package/dist/components/{p-CcR5avNh.js → p-CNro30tB.js} +1 -1
- package/dist/components/{p-C2Fpsb5N.js → p-CUkKKbnu.js} +1 -1
- package/dist/components/{p-QkQRIhFK.js → p-DEzfXrGX.js} +1 -1
- package/dist/components/{p-BiAXa6dM.js → p-D_Rh1g93.js} +1 -1
- package/dist/components/{p-B8t6bOJH.js → p-DiFVw6IQ.js} +1 -1
- package/dist/components/{p-CVvPMxWx.js → p-Do0Q5-iC.js} +1 -1
- package/dist/components/{p-CmZLak6y.js → p-DsIlDGDO.js} +1 -1
- package/dist/components/{p-BJKxjcTR.js → p-MrsvScCa.js} +2 -2
- package/dist/components/{p-D6uQVtzS.js → p-VHyNcODZ.js} +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/kritzel-active-users_41.entry.js +49 -8
- package/dist/esm/loader.js +1 -1
- package/dist/esm/stencil.js +1 -1
- package/dist/esm/{workspace.migrations-CkwNDiZG.js → workspace.migrations-BeeAeDP0.js} +2 -1
- package/dist/stencil/index.esm.js +1 -1
- package/dist/stencil/p-47cfd58a.entry.js +9 -0
- package/dist/stencil/{p-CkwNDiZG.js → p-BeeAeDP0.js} +1 -1
- package/dist/stencil/stencil.esm.js +1 -1
- package/dist/types/components/core/kritzel-editor/kritzel-editor.d.ts +2 -0
- package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +4 -0
- package/dist/types/components/ui/kritzel-more-menu/kritzel-more-menu.d.ts +1 -0
- package/dist/types/components/ui/kritzel-settings/kritzel-settings.d.ts +3 -0
- package/dist/types/components.d.ts +18 -0
- package/dist/types/constants/version.d.ts +1 -1
- package/dist/types/interfaces/settings.interface.d.ts +3 -0
- package/package.json +1 -1
- package/dist/components/p-BbAIcn3f.js +0 -1
- package/dist/components/p-C8HhteY6.js +0 -1
- package/dist/components/p-C_DXltJs.js +0 -1
- package/dist/stencil/p-95ce0e43.entry.js +0 -9
|
@@ -128,6 +128,13 @@ export class KritzelEngine {
|
|
|
128
128
|
onViewportBoundaryBottomChange(newValue) {
|
|
129
129
|
this.core.store.state.viewportBoundaryBottom = newValue ?? Infinity;
|
|
130
130
|
}
|
|
131
|
+
/** Debug info display options controlling which debug overlays are visible */
|
|
132
|
+
debugInfo;
|
|
133
|
+
onDebugInfoChange(newValue) {
|
|
134
|
+
if (newValue) {
|
|
135
|
+
this.core.store.state.debugInfo = newValue;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
131
138
|
/** When false, wheel events will not trigger viewport pan/zoom. The event still propagates to parent elements. */
|
|
132
139
|
wheelEnabled = true;
|
|
133
140
|
/** Emitted when the engine has fully initialized and is ready for interaction. */
|
|
@@ -2086,6 +2093,30 @@ export class KritzelEngine {
|
|
|
2086
2093
|
"attribute": "viewport-boundary-bottom",
|
|
2087
2094
|
"defaultValue": "Infinity"
|
|
2088
2095
|
},
|
|
2096
|
+
"debugInfo": {
|
|
2097
|
+
"type": "unknown",
|
|
2098
|
+
"mutable": false,
|
|
2099
|
+
"complexType": {
|
|
2100
|
+
"original": "KritzelDebugInfo",
|
|
2101
|
+
"resolved": "KritzelDebugInfo",
|
|
2102
|
+
"references": {
|
|
2103
|
+
"KritzelDebugInfo": {
|
|
2104
|
+
"location": "import",
|
|
2105
|
+
"path": "../../../interfaces/debug-info.interface",
|
|
2106
|
+
"id": "src/interfaces/debug-info.interface.ts::KritzelDebugInfo",
|
|
2107
|
+
"referenceLocation": "KritzelDebugInfo"
|
|
2108
|
+
}
|
|
2109
|
+
}
|
|
2110
|
+
},
|
|
2111
|
+
"required": false,
|
|
2112
|
+
"optional": false,
|
|
2113
|
+
"docs": {
|
|
2114
|
+
"tags": [],
|
|
2115
|
+
"text": "Debug info display options controlling which debug overlays are visible"
|
|
2116
|
+
},
|
|
2117
|
+
"getter": false,
|
|
2118
|
+
"setter": false
|
|
2119
|
+
},
|
|
2089
2120
|
"wheelEnabled": {
|
|
2090
2121
|
"type": "boolean",
|
|
2091
2122
|
"mutable": false,
|
|
@@ -4156,6 +4187,9 @@ export class KritzelEngine {
|
|
|
4156
4187
|
}, {
|
|
4157
4188
|
"propName": "viewportBoundaryBottom",
|
|
4158
4189
|
"methodName": "onViewportBoundaryBottomChange"
|
|
4190
|
+
}, {
|
|
4191
|
+
"propName": "debugInfo",
|
|
4192
|
+
"methodName": "onDebugInfoChange"
|
|
4159
4193
|
}];
|
|
4160
4194
|
}
|
|
4161
4195
|
static get listeners() {
|
|
@@ -24,6 +24,7 @@ export class KritzelSplitButton {
|
|
|
24
24
|
async open() {
|
|
25
25
|
if (this.isMenuOpen)
|
|
26
26
|
return;
|
|
27
|
+
window.dispatchEvent(new CustomEvent('kritzel-dismiss-menus'));
|
|
27
28
|
this.isMenuOpen = true;
|
|
28
29
|
this.anchorElement = this.host;
|
|
29
30
|
this.menuOpen.emit();
|
|
@@ -48,6 +49,7 @@ export class KritzelSplitButton {
|
|
|
48
49
|
};
|
|
49
50
|
openMenu = (event) => {
|
|
50
51
|
event.stopPropagation();
|
|
52
|
+
window.dispatchEvent(new CustomEvent('kritzel-dismiss-menus'));
|
|
51
53
|
this.isMenuOpen = true;
|
|
52
54
|
this.anchorElement = this.host;
|
|
53
55
|
this.menuOpen.emit();
|
|
@@ -80,7 +82,7 @@ export class KritzelSplitButton {
|
|
|
80
82
|
this.menuScrollTop = event.target.scrollTop;
|
|
81
83
|
};
|
|
82
84
|
render() {
|
|
83
|
-
return (h(Host, { key: '
|
|
85
|
+
return (h(Host, { key: '1e85f2b22cde41378d03710bd1332e2eb91ebe5a', class: { mobile: this.isTouchDevice } }, h("button", { key: '56573ad5655b2f61e1ebf3c4d85b489375beb62e', class: "split-main-button", tabIndex: 0, onClick: this.handleButtonClick, disabled: this.mainButtonDisabled }, this.buttonIcon && h("kritzel-icon", { key: '335c2f5418e305f3e48e3caabc4c48001ddd5ec3', name: this.buttonIcon })), h("div", { key: '733e48020f3b21b22de3774323e5a2d024686c2c', class: "split-divider" }), h("button", { key: '650cd557b856b5527910cbdeb6d14fe7a88bc0ab', ref: el => (this.splitMenuButtonRef = el), class: "split-menu-button", tabIndex: 0, onClick: this.toggleMenu, disabled: this.menuButtonDisabled }, h("kritzel-icon", { key: '3aaacbcdd66583e3884fe44777794209753fe594', name: this.dropdownIcon })), h("kritzel-portal", { key: 'd0ca70c21dfbf1684ab84650a31aae77df5cb52e', anchor: this.anchorElement, offsetY: 4, onClose: this.closeMenu }, h("kritzel-menu", { key: '9e38d4d6e1c82b6dca3c6d23fb5c0df12bfbefb4', ref: el => (this.menuRef = el), items: this.items, onItemSelect: this.handleItemSelect, onItemSave: this.handleItemSave, onItemCancel: this.handleItemCancel, onItemToggleChildMenu: this.handleItemToggleChildMenu, onItemCloseChildMenu: this.handleItemCloseChildMenu, onClose: this.closeMenu, onScroll: this.handleScroll }))));
|
|
84
86
|
}
|
|
85
87
|
static get is() { return "kritzel-split-button"; }
|
|
86
88
|
static get encapsulation() { return "shadow"; }
|
|
@@ -7,6 +7,11 @@
|
|
|
7
7
|
border: var(--kritzel-more-menu-border, 1px solid #ebebeb);
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
+
:host(.mobile) {
|
|
11
|
+
--kritzel-more-menu-button-hover-background-color: transparent;
|
|
12
|
+
--kritzel-more-menu-button-active-background-color: transparent;
|
|
13
|
+
}
|
|
14
|
+
|
|
10
15
|
.more-menu-button {
|
|
11
16
|
display: flex;
|
|
12
17
|
align-items: center;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Host, h } from "@stencil/core";
|
|
2
|
+
import { KritzelDevicesHelper } from "../../../helpers/devices.helper";
|
|
2
3
|
export class KritzelMoreMenu {
|
|
3
4
|
host;
|
|
4
5
|
/**
|
|
@@ -24,6 +25,7 @@ export class KritzelMoreMenu {
|
|
|
24
25
|
*/
|
|
25
26
|
itemSelect;
|
|
26
27
|
menuAnchor = null;
|
|
28
|
+
isTouchDevice = KritzelDevicesHelper.isTouchDevice();
|
|
27
29
|
toggleMenu = (event) => {
|
|
28
30
|
event.stopPropagation();
|
|
29
31
|
if (this.menuAnchor) {
|
|
@@ -49,7 +51,7 @@ export class KritzelMoreMenu {
|
|
|
49
51
|
this.closeMenu();
|
|
50
52
|
};
|
|
51
53
|
render() {
|
|
52
|
-
return (h(Host, { key: '
|
|
54
|
+
return (h(Host, { key: '02d18106b6a932cd4508bebc6ada3416f38eafc6', class: { mobile: this.isTouchDevice } }, h("button", { key: 'dff3f7bd69f8f1eafbff03b9ecc2f96c85784a85', class: "more-menu-button", onClick: this.toggleMenu }, h("kritzel-icon", { key: '28586ce5dd15be347cc59555608a2cbbf2978a2b', name: this.icon, size: this.iconSize })), h("kritzel-portal", { key: '3ca9260c3602a639687bc1341736c15a1b5c10a7', anchor: this.menuAnchor, offsetY: this.offsetY, onClose: this.closeMenu }, h("kritzel-menu", { key: 'e8e88cc9f827d93d9adcc86ad1041774cfc282af', items: this.visibleItems, onItemSelect: this.handleMenuItemSelect }))));
|
|
53
55
|
}
|
|
54
56
|
static get is() { return "kritzel-more-menu"; }
|
|
55
57
|
static get encapsulation() { return "shadow"; }
|
|
@@ -154,7 +156,8 @@ export class KritzelMoreMenu {
|
|
|
154
156
|
}
|
|
155
157
|
static get states() {
|
|
156
158
|
return {
|
|
157
|
-
"menuAnchor": {}
|
|
159
|
+
"menuAnchor": {},
|
|
160
|
+
"isTouchDevice": {}
|
|
158
161
|
};
|
|
159
162
|
}
|
|
160
163
|
static get events() {
|
|
@@ -9,10 +9,17 @@ const DEFAULT_VIEWPORT_BOUNDARY_LEFT = -Infinity;
|
|
|
9
9
|
const DEFAULT_VIEWPORT_BOUNDARY_RIGHT = Infinity;
|
|
10
10
|
const DEFAULT_VIEWPORT_BOUNDARY_TOP = -Infinity;
|
|
11
11
|
const DEFAULT_VIEWPORT_BOUNDARY_BOTTOM = Infinity;
|
|
12
|
+
const DEFAULT_DEBUG_INFO = {
|
|
13
|
+
showViewportInfo: false,
|
|
14
|
+
showObjectInfo: false,
|
|
15
|
+
showSyncProviderInfo: true,
|
|
16
|
+
showMigrationInfo: true,
|
|
17
|
+
};
|
|
12
18
|
const SETTINGS_CATEGORIES = [
|
|
13
19
|
{ id: 'general', label: 'General', icon: 'settings' },
|
|
14
20
|
{ id: 'viewport', label: 'Viewport', icon: 'viewport' },
|
|
15
21
|
{ id: 'shortcuts', label: 'Keyboard Shortcuts', icon: 'command' },
|
|
22
|
+
{ id: 'developer', label: 'Developer Options', icon: 'braces' },
|
|
16
23
|
{ id: 'about', label: 'About', icon: 'info' },
|
|
17
24
|
];
|
|
18
25
|
export class KritzelSettings {
|
|
@@ -31,6 +38,7 @@ export class KritzelSettings {
|
|
|
31
38
|
viewportBoundaryRight = DEFAULT_VIEWPORT_BOUNDARY_RIGHT;
|
|
32
39
|
viewportBoundaryTop = DEFAULT_VIEWPORT_BOUNDARY_TOP;
|
|
33
40
|
viewportBoundaryBottom = DEFAULT_VIEWPORT_BOUNDARY_BOTTOM;
|
|
41
|
+
debugInfo = { ...DEFAULT_DEBUG_INFO };
|
|
34
42
|
/** Emitted when settings change */
|
|
35
43
|
settingsChange;
|
|
36
44
|
componentWillLoad() {
|
|
@@ -68,6 +76,9 @@ export class KritzelSettings {
|
|
|
68
76
|
if (typeof parsed.viewportBoundaryBottom === 'number') {
|
|
69
77
|
this.viewportBoundaryBottom = parsed.viewportBoundaryBottom;
|
|
70
78
|
}
|
|
79
|
+
if (parsed.debugInfo) {
|
|
80
|
+
this.debugInfo = { ...DEFAULT_DEBUG_INFO, ...parsed.debugInfo };
|
|
81
|
+
}
|
|
71
82
|
}
|
|
72
83
|
catch {
|
|
73
84
|
// Invalid JSON, use defaults
|
|
@@ -84,6 +95,7 @@ export class KritzelSettings {
|
|
|
84
95
|
viewportBoundaryRight: this.viewportBoundaryRight,
|
|
85
96
|
viewportBoundaryTop: this.viewportBoundaryTop,
|
|
86
97
|
viewportBoundaryBottom: this.viewportBoundaryBottom,
|
|
98
|
+
debugInfo: this.debugInfo,
|
|
87
99
|
};
|
|
88
100
|
localStorage.setItem(this.storageKey, JSON.stringify(settings));
|
|
89
101
|
this.settingsChange.emit(settings);
|
|
@@ -120,6 +132,10 @@ export class KritzelSettings {
|
|
|
120
132
|
this.viewportBoundaryBottom = event.detail ?? DEFAULT_VIEWPORT_BOUNDARY_BOTTOM;
|
|
121
133
|
this.saveSettings();
|
|
122
134
|
};
|
|
135
|
+
handleDebugInfoChange = (key) => (event) => {
|
|
136
|
+
this.debugInfo = { ...this.debugInfo, [key]: event.detail };
|
|
137
|
+
this.saveSettings();
|
|
138
|
+
};
|
|
123
139
|
async open() {
|
|
124
140
|
this.isDialogOpen = true;
|
|
125
141
|
}
|
|
@@ -163,6 +179,8 @@ export class KritzelSettings {
|
|
|
163
179
|
return (h("div", { class: "settings-content" }, h("h3", null, "Viewport Settings"), h("div", { class: "settings-group" }, h("div", { class: "settings-item" }, h("label", { class: "settings-label" }, "Minimum Zoom Level"), h("p", { class: "settings-description" }, "Sets the minimum zoom level. Lower values allow zooming out further to see more of the canvas."), h("kritzel-numeric-input", { value: this.scaleMin, min: 0.0001, max: 1, step: 0.0001, onValueChange: this.handleScaleMinChange })), h("div", { class: "settings-item" }, h("label", { class: "settings-label" }, "Maximum Zoom Level"), h("p", { class: "settings-description" }, "Sets the maximum zoom level. Higher values allow zooming in closer for detailed work."), h("kritzel-numeric-input", { value: this.scaleMax, min: 1, max: 1000, step: 1, onValueChange: this.handleScaleMaxChange })), h("div", { class: "settings-item" }, h("label", { class: "settings-label" }, "Viewport Boundary Left"), h("p", { class: "settings-description" }, "Left boundary in world coordinates. Set to limit how far left the viewport can pan."), h("kritzel-numeric-input", { value: this.viewportBoundaryLeft, step: 100, placeholder: "Infinite", onValueChange: this.handleViewportBoundaryLeftChange })), h("div", { class: "settings-item" }, h("label", { class: "settings-label" }, "Viewport Boundary Right"), h("p", { class: "settings-description" }, "Right boundary in world coordinates. Set to limit how far right the viewport can pan."), h("kritzel-numeric-input", { value: this.viewportBoundaryRight, step: 100, placeholder: "Infinite", onValueChange: this.handleViewportBoundaryRightChange })), h("div", { class: "settings-item" }, h("label", { class: "settings-label" }, "Viewport Boundary Top"), h("p", { class: "settings-description" }, "Top boundary in world coordinates. Set to limit how far up the viewport can pan."), h("kritzel-numeric-input", { value: this.viewportBoundaryTop, step: 100, placeholder: "Infinite", onValueChange: this.handleViewportBoundaryTopChange })), h("div", { class: "settings-item" }, h("label", { class: "settings-label" }, "Viewport Boundary Bottom"), h("p", { class: "settings-description" }, "Bottom boundary in world coordinates. Set to limit how far down the viewport can pan."), h("kritzel-numeric-input", { value: this.viewportBoundaryBottom, step: 100, placeholder: "Infinite", onValueChange: this.handleViewportBoundaryBottomChange })))));
|
|
164
180
|
case 'shortcuts':
|
|
165
181
|
return (h("div", { class: "settings-content" }, h("h3", null, "Keyboard Shortcuts"), h("div", { class: "shortcuts-list" }, Array.from(this.groupShortcutsByCategory()).map(([category, shortcuts]) => (h("div", { class: "shortcuts-category", key: category }, h("h4", { class: "shortcuts-category-title" }, category), h("div", { class: "shortcuts-group" }, shortcuts.map(shortcut => (h("div", { class: "shortcut-item", key: shortcut.key + shortcut.label }, h("span", { class: "shortcut-label" }, shortcut.label), h("kbd", { class: "shortcut-key" }, this.formatKeyCombo(shortcut))))))))))));
|
|
182
|
+
case 'developer':
|
|
183
|
+
return (h("div", { class: "settings-content" }, h("h3", null, "Developer Options"), h("div", { class: "settings-group" }, h("div", { class: "settings-item" }, h("label", { class: "settings-label" }, "Show Viewport Info"), h("p", { class: "settings-description" }, "Display viewport debug information such as position, zoom level, and boundaries."), h("kritzel-slide-toggle", { checked: this.debugInfo.showViewportInfo, label: "Show Viewport Info", onCheckedChange: this.handleDebugInfoChange('showViewportInfo') })), h("div", { class: "settings-item" }, h("label", { class: "settings-label" }, "Show Object Info"), h("p", { class: "settings-description" }, "Display debug information about objects on the canvas."), h("kritzel-slide-toggle", { checked: this.debugInfo.showObjectInfo, label: "Show Object Info", onCheckedChange: this.handleDebugInfoChange('showObjectInfo') })), h("div", { class: "settings-item" }, h("label", { class: "settings-label" }, "Show Sync Provider Info"), h("p", { class: "settings-description" }, "Display debug information about the sync provider connection status."), h("kritzel-slide-toggle", { checked: this.debugInfo.showSyncProviderInfo, label: "Show Sync Provider Info", onCheckedChange: this.handleDebugInfoChange('showSyncProviderInfo') })), h("div", { class: "settings-item" }, h("label", { class: "settings-label" }, "Show Migration Info"), h("p", { class: "settings-description" }, "Display debug information about data migrations."), h("kritzel-slide-toggle", { checked: this.debugInfo.showMigrationInfo, label: "Show Migration Info", onCheckedChange: this.handleDebugInfoChange('showMigrationInfo') })))));
|
|
166
184
|
case 'about':
|
|
167
185
|
return (h("div", { class: "settings-content" }, h("h3", null, "About"), h("p", null, "Kritzel - A drawing application"), h("p", { class: "version-info" }, "Version ", KRITZEL_VERSION), h("p", { class: "version-info" }, "App-State Schema v", CURRENT_APP_STATE_SCHEMA_VERSION), h("p", { class: "version-info" }, "Workspace Schema v", CURRENT_WORKSPACE_SCHEMA_VERSION)));
|
|
168
186
|
default:
|
|
@@ -170,7 +188,7 @@ export class KritzelSettings {
|
|
|
170
188
|
}
|
|
171
189
|
}
|
|
172
190
|
render() {
|
|
173
|
-
return (h(Host, { key: '
|
|
191
|
+
return (h(Host, { key: 'fc940d4154b06378cf13f7cde5238f4a1ac1d2ba' }, h("kritzel-dialog", { key: '0c50f5cb3570eba67ce4c04f9f453361e0c9626a', isOpen: this.isDialogOpen, dialogTitle: "Settings", size: "large", onDialogClose: this.closeDialog }, h("kritzel-master-detail", { key: '974adda5868d1261784366b59e285a0c45d265ca', items: SETTINGS_CATEGORIES, selectedItemId: this.selectedCategoryId, onItemSelect: this.handleCategorySelect }, this.renderCategoryContent()))));
|
|
174
192
|
}
|
|
175
193
|
static get is() { return "kritzel-settings"; }
|
|
176
194
|
static get encapsulation() { return "shadow"; }
|
|
@@ -247,7 +265,8 @@ export class KritzelSettings {
|
|
|
247
265
|
"viewportBoundaryLeft": {},
|
|
248
266
|
"viewportBoundaryRight": {},
|
|
249
267
|
"viewportBoundaryTop": {},
|
|
250
|
-
"viewportBoundaryBottom": {}
|
|
268
|
+
"viewportBoundaryBottom": {},
|
|
269
|
+
"debugInfo": {}
|
|
251
270
|
};
|
|
252
271
|
}
|
|
253
272
|
static get events() {
|
package/dist/components/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{g as getAssetPath,r as render,s as setAssetPath,a as setNonce,b as setPlatformOptions}from"./p-pebXO4LU.js";export{f as KritzelBrushTool,d as KritzelGroup,b as KritzelImage,c as KritzelLine,g as KritzelLineTool,a as KritzelPath,j as KritzelSelectionTool,e as KritzelShape,i as KritzelShapeTool,K as KritzelText,h as KritzelTextTool,S as ShapeType}from"./p-hCORwbZh.js";export{A as APP_STATE_MIGRATIONS,I as IndexedDBSyncProvider,d as KritzelAlignment,c as KritzelAnchorManager,b as KritzelCursorHelper,K as KritzelEraserTool,a as KritzelImageTool,W as WORKSPACE_MIGRATIONS,r as runMigrations}from"./p-BJKxjcTR.js";import*as t from"yjs";import{WebsocketProvider as o}from"y-websocket";import{H as n,a as m}from"./kritzel-editor.js";export{D as DEFAULT_BRUSH_CONFIG,c as DEFAULT_LINE_TOOL_CONFIG,b as DEFAULT_TEXT_CONFIG,KritzelEditor,defineCustomElement as defineCustomElementKritzelEditor}from"./kritzel-editor.js";export{K as KritzelWorkspace,W as WORKSPACE_EXPORT_VERSION}from"./p-D5rvyCKa.js";export{K as KritzelThemeManager,d as darkTheme,l as lightTheme}from"./p-CjazGGq3.js";export{C as CURRENT_APP_STATE_SCHEMA_VERSION,a as CURRENT_WORKSPACE_SCHEMA_VERSION}from"./p-Duv3EM3w.js";export{KritzelActiveUsers,defineCustomElement as defineCustomElementKritzelActiveUsers}from"./kritzel-active-users.js";export{KritzelAvatar,defineCustomElement as defineCustomElementKritzelAvatar}from"./kritzel-avatar.js";export{KritzelBackToContent,defineCustomElement as defineCustomElementKritzelBackToContent}from"./kritzel-back-to-content.js";export{KritzelBrushStyle,defineCustomElement as defineCustomElementKritzelBrushStyle}from"./kritzel-brush-style.js";export{KritzelButton,defineCustomElement as defineCustomElementKritzelButton}from"./kritzel-button.js";export{KritzelColor,defineCustomElement as defineCustomElementKritzelColor}from"./kritzel-color.js";export{KritzelColorPalette,defineCustomElement as defineCustomElementKritzelColorPalette}from"./kritzel-color-palette.js";export{KritzelContextMenu,defineCustomElement as defineCustomElementKritzelContextMenu}from"./kritzel-context-menu.js";export{KritzelControls,defineCustomElement as defineCustomElementKritzelControls}from"./kritzel-controls.js";export{KritzelCurrentUser,defineCustomElement as defineCustomElementKritzelCurrentUser}from"./kritzel-current-user.js";export{KritzelCurrentUserDialog,defineCustomElement as defineCustomElementKritzelCurrentUserDialog}from"./kritzel-current-user-dialog.js";export{KritzelCursorTrail,defineCustomElement as defineCustomElementKritzelCursorTrail}from"./kritzel-cursor-trail.js";export{KritzelDialog,defineCustomElement as defineCustomElementKritzelDialog}from"./kritzel-dialog.js";export{KritzelDropdown,defineCustomElement as defineCustomElementKritzelDropdown}from"./kritzel-dropdown.js";export{KritzelEngine,defineCustomElement as defineCustomElementKritzelEngine}from"./kritzel-engine.js";export{KritzelExport,defineCustomElement as defineCustomElementKritzelExport}from"./kritzel-export.js";export{KritzelFont,defineCustomElement as defineCustomElementKritzelFont}from"./kritzel-font.js";export{KritzelFontFamily,defineCustomElement as defineCustomElementKritzelFontFamily}from"./kritzel-font-family.js";export{KritzelFontSize,defineCustomElement as defineCustomElementKritzelFontSize}from"./kritzel-font-size.js";export{KritzelIcon,defineCustomElement as defineCustomElementKritzelIcon}from"./kritzel-icon.js";export{KritzelInput,defineCustomElement as defineCustomElementKritzelInput}from"./kritzel-input.js";export{KritzelLineEndings,defineCustomElement as defineCustomElementKritzelLineEndings}from"./kritzel-line-endings.js";export{KritzelLoginDialog,defineCustomElement as defineCustomElementKritzelLoginDialog}from"./kritzel-login-dialog.js";export{KritzelMasterDetail,defineCustomElement as defineCustomElementKritzelMasterDetail}from"./kritzel-master-detail.js";export{KritzelMenu,defineCustomElement as defineCustomElementKritzelMenu}from"./kritzel-menu.js";export{KritzelMenuItem,defineCustomElement as defineCustomElementKritzelMenuItem}from"./kritzel-menu-item.js";export{KritzelMoreMenu,defineCustomElement as defineCustomElementKritzelMoreMenu}from"./kritzel-more-menu.js";export{KritzelNumericInput,defineCustomElement as defineCustomElementKritzelNumericInput}from"./kritzel-numeric-input.js";export{KritzelOpacitySlider,defineCustomElement as defineCustomElementKritzelOpacitySlider}from"./kritzel-opacity-slider.js";export{KritzelPillTabs,defineCustomElement as defineCustomElementKritzelPillTabs}from"./kritzel-pill-tabs.js";export{KritzelPortal,defineCustomElement as defineCustomElementKritzelPortal}from"./kritzel-portal.js";export{KritzelSettings,defineCustomElement as defineCustomElementKritzelSettings}from"./kritzel-settings.js";export{KritzelShapeFill,defineCustomElement as defineCustomElementKritzelShapeFill}from"./kritzel-shape-fill.js";export{KritzelShareDialog,defineCustomElement as defineCustomElementKritzelShareDialog}from"./kritzel-share-dialog.js";export{KritzelSlideToggle,defineCustomElement as defineCustomElementKritzelSlideToggle}from"./kritzel-slide-toggle.js";export{KritzelSplitButton,defineCustomElement as defineCustomElementKritzelSplitButton}from"./kritzel-split-button.js";export{KritzelStrokeSize,defineCustomElement as defineCustomElementKritzelStrokeSize}from"./kritzel-stroke-size.js";export{KritzelToolConfig,defineCustomElement as defineCustomElementKritzelToolConfig}from"./kritzel-tool-config.js";export{KritzelTooltip,defineCustomElement as defineCustomElementKritzelTooltip}from"./kritzel-tooltip.js";export{KritzelUtilityPanel,defineCustomElement as defineCustomElementKritzelUtilityPanel}from"./kritzel-utility-panel.js";export{KritzelWorkspaceManager,defineCustomElement as defineCustomElementKritzelWorkspaceManager}from"./kritzel-workspace-manager.js";const u=Math.floor,z=127,p=Number.MAX_SAFE_INTEGER;class E{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const k=()=>new E,x=e=>{const t=new Uint8Array((e=>{let t=e.cpos;for(let s=0;s<e.bufs.length;s++)t+=e.bufs[s].length;return t})(e));let s=0;for(let o=0;o<e.bufs.length;o++){const i=e.bufs[o];t.set(i,s),s+=i.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),s),t},T=(e,t)=>{const s=e.cbuf.length;e.cpos===s&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*s),e.cpos=0),e.cbuf[e.cpos++]=t},y=(e,t)=>{for(;t>z;)T(e,128|z&t),t=u(t/128);T(e,z&t)},w=(e,t)=>{y(e,t.byteLength),((e,t)=>{const s=e.cbuf.length,o=e.cpos,i=((e,t)=>e<t?e:t)(s-o,t.length),r=t.length-i;e.cbuf.set(t.subarray(0,i),o),e.cpos+=i,r>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(((e,t)=>e>t?e:t)(2*s,r)),e.cbuf.set(t.subarray(i)),e.cpos=r)})(e,t)},P=e=>Error(e),M=P("Unexpected end of array"),U=P("Integer out of Range");class v{constructor(e){this.arr=e,this.pos=0}}const _=e=>((e,t)=>{const s=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,s})(e,O(e)),O=e=>{let t=0,s=1;const o=e.arr.length;for(;e.pos<o;){const o=e.arr[e.pos++];if(t+=(o&z)*s,s*=128,o<128)return t;if(t>p)throw U}throw M};class R{doc;channel;_synced=!1;constructor(e,t,s){this.doc=t,this.channel=new BroadcastChannel(e),this.channel.onmessage=e=>{this.handleMessage(e.data)},this.doc.on("update",this.handleDocUpdate),this.broadcastSync(),setTimeout((()=>{this._synced=!0}),100),s?.quiet||console.info("BroadcastChannel Provider initialized: "+e)}handleDocUpdate=(e,t)=>{if(t!==this){const t=k();y(t,0),w(t,e),this.channel.postMessage(x(t))}};handleMessage(e){const s=(e=>new v(e))(new Uint8Array(e));switch(O(s)){case 0:const e=_(s);t.applyUpdate(this.doc,e,this);break;case 1:this.broadcastSync();break;case 2:const o=_(s),i=t.encodeStateAsUpdate(this.doc,o);if(i.length>0){const e=k();y(e,0),w(e,i),this.channel.postMessage(x(e))}}}broadcastSync(){const e=k();y(e,2),w(e,t.encodeStateVector(this.doc)),this.channel.postMessage(x(e))}async connect(){if(!this._synced)return new Promise((e=>{const t=()=>{this._synced?e():setTimeout(t,50)};t()}))}disconnect(){}destroy(){this.doc.off("update",this.handleDocUpdate),this.channel.close()}}class B{provider;isConnected=!1;_quiet=!1;get awareness(){return this.provider.awareness}constructor(e,t,s){const i=s?.url||"ws://localhost:1234",r=s?.roomName||e;this.provider=new o(i,r,t,{params:s?.params,protocols:s?.protocols,WebSocketPolyfill:s?.WebSocketPolyfill,awareness:s?.awareness,maxBackoffTime:s?.maxBackoffTime,disableBc:!0}),this._quiet=s?.quiet??!1,this.setupEventListeners(),this._quiet||console.info(`WebSocket Provider initialized: ${i}/${r}`)}static with(e){return{create:(t,s,o)=>{const i=o?{...e,...o}:e;return new B(t,s,i)}}}setupEventListeners(){this.provider.on("status",(({status:e})=>{"connected"===e?(this.isConnected=!0,this._quiet||console.info("WebSocket connected")):"disconnected"===e&&(this.isConnected=!1,this._quiet||console.info("WebSocket disconnected"))})),this.provider.on("sync",(e=>{e&&!this._quiet&&console.info("WebSocket synced")}))}async connect(){if(!this.isConnected)return new Promise(((e,t)=>{const s=setTimeout((()=>{t(Error("WebSocket connection timeout"))}),1e4),o=({status:t})=>{"connected"===t&&(clearTimeout(s),this.provider.off("status",o),this.isConnected=!0,e())};this.provider.on("status",o),this.provider.wsconnected&&(clearTimeout(s),this.provider.off("status",o),this.isConnected=!0,e())}))}disconnect(){this.provider&&this.provider.disconnect(),this.isConnected=!1}destroy(){this.provider&&this.provider.destroy(),this.isConnected=!1}}class F{provider;isConnected=!1;isSynced=!1;usesSharedSocket=!1;get awareness(){return this.provider.awareness}static sharedWebSocketProvider=null;constructor(e,t,s){const o=s?.name||e,i=s?.url||"ws://localhost:1234",r=s?.websocketProvider||F.sharedWebSocketProvider;if(r){this.usesSharedSocket=!0;const e={websocketProvider:r,name:o,document:t,token:s?.token||null,onConnect:()=>{this.isConnected||(this.isConnected=!0,s?.quiet||console.info("Hocuspocus connected: "+o),s?.onConnect&&s.onConnect())},onDisconnect:()=>{(this.isConnected||this.isSynced)&&(this.isConnected=!1,this.isSynced=!1,s?.quiet||console.info("Hocuspocus disconnected: "+o),s?.onDisconnect&&s.onDisconnect())},onSynced:()=>{this.isSynced||(this.isSynced=!0,s?.quiet||console.info("Hocuspocus synced: "+o),s?.onSynced&&s.onSynced())}};void 0!==s?.forceSyncInterval&&(e.forceSyncInterval=s.forceSyncInterval),s?.onAuthenticationFailed&&(e.onAuthenticationFailed=s.onAuthenticationFailed),s?.onStatus&&(e.onStatus=s.onStatus),this.provider=new n(e),this.provider.attach(),s?.quiet||console.info("Hocuspocus Provider initialized (multiplexed): "+o)}else{this.usesSharedSocket=!1;const e={url:i,name:o,document:t,token:s?.token||null,onConnect:()=>{this.isConnected||(this.isConnected=!0,s?.quiet||console.info("Hocuspocus connected: "+o),s?.onConnect&&s.onConnect())},onDisconnect:()=>{(this.isConnected||this.isSynced)&&(this.isConnected=!1,this.isSynced=!1,s?.quiet||console.info("Hocuspocus disconnected: "+o),s?.onDisconnect&&s.onDisconnect())},onSynced:()=>{this.isSynced||(this.isSynced=!0,s?.quiet||console.info("Hocuspocus synced: "+o),s?.onSynced&&s.onSynced())}};void 0!==s?.forceSyncInterval&&(e.forceSyncInterval=s.forceSyncInterval),s?.onAuthenticationFailed&&(e.onAuthenticationFailed=s.onAuthenticationFailed),s?.onStatus&&(e.onStatus=s.onStatus),s?.WebSocketPolyfill&&(e.WebSocketPolyfill=s.WebSocketPolyfill),this.provider=new n(e),s?.quiet||console.info(`Hocuspocus Provider initialized: ${i}/${o}`)}}static createSharedWebSocket(e){if(F.sharedWebSocketProvider)return console.warn("Shared WebSocket already exists. Returning existing instance."),F.sharedWebSocketProvider;const t={url:e.url};return e.WebSocketPolyfill&&(t.WebSocketPolyfill=e.WebSocketPolyfill),e.onConnect&&(t.onConnect=e.onConnect),e.onDisconnect&&(t.onDisconnect=e.onDisconnect),e.onStatus&&(t.onStatus=e.onStatus),F.sharedWebSocketProvider=new m(t),console.info("Shared Hocuspocus WebSocket created: "+e.url),F.sharedWebSocketProvider}static destroySharedWebSocket(){F.sharedWebSocketProvider&&(F.sharedWebSocketProvider.destroy(),F.sharedWebSocketProvider=null,console.info("Shared Hocuspocus WebSocket destroyed"))}static getSharedWebSocket(){return F.sharedWebSocketProvider}static with(e){return{create:(t,s,o)=>{const i=o?{...e,...o}:e;return new F(t,s,i)}}}async connect(){if(!this.isSynced)return new Promise(((e,t)=>{const s=setTimeout((()=>{t(Error("Hocuspocus connection timeout"))}),1e4),o=()=>{clearTimeout(s),this.provider.off("synced",o),e()};if(this.provider.on("synced",o),this.provider.isSynced)return clearTimeout(s),this.provider.off("synced",o),void e();this.isConnected||this.usesSharedSocket||this.provider.connect()}))}disconnect(){this.provider&&(this.usesSharedSocket?this.provider.detach():this.provider.disconnect()),this.isConnected=!1,this.isSynced=!1}destroy(){this.provider&&this.provider.destroy(),this.isConnected=!1,this.isSynced=!1}}export{R as BroadcastSyncProvider,F as HocuspocusSyncProvider,B as WebSocketSyncProvider}
|
|
1
|
+
export{g as getAssetPath,r as render,s as setAssetPath,a as setNonce,b as setPlatformOptions}from"./p-pebXO4LU.js";export{f as KritzelBrushTool,d as KritzelGroup,b as KritzelImage,c as KritzelLine,g as KritzelLineTool,a as KritzelPath,j as KritzelSelectionTool,e as KritzelShape,i as KritzelShapeTool,K as KritzelText,h as KritzelTextTool,S as ShapeType}from"./p-hCORwbZh.js";export{A as APP_STATE_MIGRATIONS,I as IndexedDBSyncProvider,d as KritzelAlignment,c as KritzelAnchorManager,b as KritzelCursorHelper,K as KritzelEraserTool,a as KritzelImageTool,W as WORKSPACE_MIGRATIONS,r as runMigrations}from"./p-MrsvScCa.js";import*as t from"yjs";import{WebsocketProvider as o}from"y-websocket";import{H as n,a as m}from"./kritzel-editor.js";export{D as DEFAULT_BRUSH_CONFIG,c as DEFAULT_LINE_TOOL_CONFIG,b as DEFAULT_TEXT_CONFIG,KritzelEditor,defineCustomElement as defineCustomElementKritzelEditor}from"./kritzel-editor.js";export{K as KritzelWorkspace,W as WORKSPACE_EXPORT_VERSION}from"./p-D5rvyCKa.js";export{K as KritzelThemeManager,d as darkTheme,l as lightTheme}from"./p-CjazGGq3.js";export{C as CURRENT_APP_STATE_SCHEMA_VERSION,a as CURRENT_WORKSPACE_SCHEMA_VERSION}from"./p-Duv3EM3w.js";export{KritzelActiveUsers,defineCustomElement as defineCustomElementKritzelActiveUsers}from"./kritzel-active-users.js";export{KritzelAvatar,defineCustomElement as defineCustomElementKritzelAvatar}from"./kritzel-avatar.js";export{KritzelBackToContent,defineCustomElement as defineCustomElementKritzelBackToContent}from"./kritzel-back-to-content.js";export{KritzelBrushStyle,defineCustomElement as defineCustomElementKritzelBrushStyle}from"./kritzel-brush-style.js";export{KritzelButton,defineCustomElement as defineCustomElementKritzelButton}from"./kritzel-button.js";export{KritzelColor,defineCustomElement as defineCustomElementKritzelColor}from"./kritzel-color.js";export{KritzelColorPalette,defineCustomElement as defineCustomElementKritzelColorPalette}from"./kritzel-color-palette.js";export{KritzelContextMenu,defineCustomElement as defineCustomElementKritzelContextMenu}from"./kritzel-context-menu.js";export{KritzelControls,defineCustomElement as defineCustomElementKritzelControls}from"./kritzel-controls.js";export{KritzelCurrentUser,defineCustomElement as defineCustomElementKritzelCurrentUser}from"./kritzel-current-user.js";export{KritzelCurrentUserDialog,defineCustomElement as defineCustomElementKritzelCurrentUserDialog}from"./kritzel-current-user-dialog.js";export{KritzelCursorTrail,defineCustomElement as defineCustomElementKritzelCursorTrail}from"./kritzel-cursor-trail.js";export{KritzelDialog,defineCustomElement as defineCustomElementKritzelDialog}from"./kritzel-dialog.js";export{KritzelDropdown,defineCustomElement as defineCustomElementKritzelDropdown}from"./kritzel-dropdown.js";export{KritzelEngine,defineCustomElement as defineCustomElementKritzelEngine}from"./kritzel-engine.js";export{KritzelExport,defineCustomElement as defineCustomElementKritzelExport}from"./kritzel-export.js";export{KritzelFont,defineCustomElement as defineCustomElementKritzelFont}from"./kritzel-font.js";export{KritzelFontFamily,defineCustomElement as defineCustomElementKritzelFontFamily}from"./kritzel-font-family.js";export{KritzelFontSize,defineCustomElement as defineCustomElementKritzelFontSize}from"./kritzel-font-size.js";export{KritzelIcon,defineCustomElement as defineCustomElementKritzelIcon}from"./kritzel-icon.js";export{KritzelInput,defineCustomElement as defineCustomElementKritzelInput}from"./kritzel-input.js";export{KritzelLineEndings,defineCustomElement as defineCustomElementKritzelLineEndings}from"./kritzel-line-endings.js";export{KritzelLoginDialog,defineCustomElement as defineCustomElementKritzelLoginDialog}from"./kritzel-login-dialog.js";export{KritzelMasterDetail,defineCustomElement as defineCustomElementKritzelMasterDetail}from"./kritzel-master-detail.js";export{KritzelMenu,defineCustomElement as defineCustomElementKritzelMenu}from"./kritzel-menu.js";export{KritzelMenuItem,defineCustomElement as defineCustomElementKritzelMenuItem}from"./kritzel-menu-item.js";export{KritzelMoreMenu,defineCustomElement as defineCustomElementKritzelMoreMenu}from"./kritzel-more-menu.js";export{KritzelNumericInput,defineCustomElement as defineCustomElementKritzelNumericInput}from"./kritzel-numeric-input.js";export{KritzelOpacitySlider,defineCustomElement as defineCustomElementKritzelOpacitySlider}from"./kritzel-opacity-slider.js";export{KritzelPillTabs,defineCustomElement as defineCustomElementKritzelPillTabs}from"./kritzel-pill-tabs.js";export{KritzelPortal,defineCustomElement as defineCustomElementKritzelPortal}from"./kritzel-portal.js";export{KritzelSettings,defineCustomElement as defineCustomElementKritzelSettings}from"./kritzel-settings.js";export{KritzelShapeFill,defineCustomElement as defineCustomElementKritzelShapeFill}from"./kritzel-shape-fill.js";export{KritzelShareDialog,defineCustomElement as defineCustomElementKritzelShareDialog}from"./kritzel-share-dialog.js";export{KritzelSlideToggle,defineCustomElement as defineCustomElementKritzelSlideToggle}from"./kritzel-slide-toggle.js";export{KritzelSplitButton,defineCustomElement as defineCustomElementKritzelSplitButton}from"./kritzel-split-button.js";export{KritzelStrokeSize,defineCustomElement as defineCustomElementKritzelStrokeSize}from"./kritzel-stroke-size.js";export{KritzelToolConfig,defineCustomElement as defineCustomElementKritzelToolConfig}from"./kritzel-tool-config.js";export{KritzelTooltip,defineCustomElement as defineCustomElementKritzelTooltip}from"./kritzel-tooltip.js";export{KritzelUtilityPanel,defineCustomElement as defineCustomElementKritzelUtilityPanel}from"./kritzel-utility-panel.js";export{KritzelWorkspaceManager,defineCustomElement as defineCustomElementKritzelWorkspaceManager}from"./kritzel-workspace-manager.js";const u=Math.floor,z=127,p=Number.MAX_SAFE_INTEGER;class E{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const k=()=>new E,x=e=>{const t=new Uint8Array((e=>{let t=e.cpos;for(let s=0;s<e.bufs.length;s++)t+=e.bufs[s].length;return t})(e));let s=0;for(let o=0;o<e.bufs.length;o++){const i=e.bufs[o];t.set(i,s),s+=i.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),s),t},T=(e,t)=>{const s=e.cbuf.length;e.cpos===s&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*s),e.cpos=0),e.cbuf[e.cpos++]=t},y=(e,t)=>{for(;t>z;)T(e,128|z&t),t=u(t/128);T(e,z&t)},w=(e,t)=>{y(e,t.byteLength),((e,t)=>{const s=e.cbuf.length,o=e.cpos,i=((e,t)=>e<t?e:t)(s-o,t.length),r=t.length-i;e.cbuf.set(t.subarray(0,i),o),e.cpos+=i,r>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(((e,t)=>e>t?e:t)(2*s,r)),e.cbuf.set(t.subarray(i)),e.cpos=r)})(e,t)},P=e=>Error(e),M=P("Unexpected end of array"),U=P("Integer out of Range");class v{constructor(e){this.arr=e,this.pos=0}}const _=e=>((e,t)=>{const s=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,s})(e,O(e)),O=e=>{let t=0,s=1;const o=e.arr.length;for(;e.pos<o;){const o=e.arr[e.pos++];if(t+=(o&z)*s,s*=128,o<128)return t;if(t>p)throw U}throw M};class R{doc;channel;_synced=!1;constructor(e,t,s){this.doc=t,this.channel=new BroadcastChannel(e),this.channel.onmessage=e=>{this.handleMessage(e.data)},this.doc.on("update",this.handleDocUpdate),this.broadcastSync(),setTimeout((()=>{this._synced=!0}),100),s?.quiet||console.info("BroadcastChannel Provider initialized: "+e)}handleDocUpdate=(e,t)=>{if(t!==this){const t=k();y(t,0),w(t,e),this.channel.postMessage(x(t))}};handleMessage(e){const s=(e=>new v(e))(new Uint8Array(e));switch(O(s)){case 0:const e=_(s);t.applyUpdate(this.doc,e,this);break;case 1:this.broadcastSync();break;case 2:const o=_(s),i=t.encodeStateAsUpdate(this.doc,o);if(i.length>0){const e=k();y(e,0),w(e,i),this.channel.postMessage(x(e))}}}broadcastSync(){const e=k();y(e,2),w(e,t.encodeStateVector(this.doc)),this.channel.postMessage(x(e))}async connect(){if(!this._synced)return new Promise((e=>{const t=()=>{this._synced?e():setTimeout(t,50)};t()}))}disconnect(){}destroy(){this.doc.off("update",this.handleDocUpdate),this.channel.close()}}class F{provider;isConnected=!1;_quiet=!1;get awareness(){return this.provider.awareness}constructor(e,t,s){const i=s?.url||"ws://localhost:1234",r=s?.roomName||e;this.provider=new o(i,r,t,{params:s?.params,protocols:s?.protocols,WebSocketPolyfill:s?.WebSocketPolyfill,awareness:s?.awareness,maxBackoffTime:s?.maxBackoffTime,disableBc:!0}),this._quiet=s?.quiet??!1,this.setupEventListeners(),this._quiet||console.info(`WebSocket Provider initialized: ${i}/${r}`)}static with(e){return{create:(t,s,o)=>{const i=o?{...e,...o}:e;return new F(t,s,i)}}}setupEventListeners(){this.provider.on("status",(({status:e})=>{"connected"===e?(this.isConnected=!0,this._quiet||console.info("WebSocket connected")):"disconnected"===e&&(this.isConnected=!1,this._quiet||console.info("WebSocket disconnected"))})),this.provider.on("sync",(e=>{e&&!this._quiet&&console.info("WebSocket synced")}))}async connect(){if(!this.isConnected)return new Promise(((e,t)=>{const s=setTimeout((()=>{t(Error("WebSocket connection timeout"))}),1e4),o=({status:t})=>{"connected"===t&&(clearTimeout(s),this.provider.off("status",o),this.isConnected=!0,e())};this.provider.on("status",o),this.provider.wsconnected&&(clearTimeout(s),this.provider.off("status",o),this.isConnected=!0,e())}))}disconnect(){this.provider&&this.provider.disconnect(),this.isConnected=!1}destroy(){this.provider&&this.provider.destroy(),this.isConnected=!1}}class H{provider;isConnected=!1;isSynced=!1;usesSharedSocket=!1;get awareness(){return this.provider.awareness}static sharedWebSocketProvider=null;constructor(e,t,s){const o=s?.name||e,i=s?.url||"ws://localhost:1234",r=s?.websocketProvider||H.sharedWebSocketProvider;if(r){this.usesSharedSocket=!0;const e={websocketProvider:r,name:o,document:t,token:s?.token||null,onConnect:()=>{this.isConnected||(this.isConnected=!0,s?.quiet||console.info("Hocuspocus connected: "+o),s?.onConnect&&s.onConnect())},onDisconnect:()=>{(this.isConnected||this.isSynced)&&(this.isConnected=!1,this.isSynced=!1,s?.quiet||console.info("Hocuspocus disconnected: "+o),s?.onDisconnect&&s.onDisconnect())},onSynced:()=>{this.isSynced||(this.isSynced=!0,s?.quiet||console.info("Hocuspocus synced: "+o),s?.onSynced&&s.onSynced())}};void 0!==s?.forceSyncInterval&&(e.forceSyncInterval=s.forceSyncInterval),s?.onAuthenticationFailed&&(e.onAuthenticationFailed=s.onAuthenticationFailed),s?.onStatus&&(e.onStatus=s.onStatus),this.provider=new n(e),this.provider.attach(),s?.quiet||console.info("Hocuspocus Provider initialized (multiplexed): "+o)}else{this.usesSharedSocket=!1;const e={url:i,name:o,document:t,token:s?.token||null,onConnect:()=>{this.isConnected||(this.isConnected=!0,s?.quiet||console.info("Hocuspocus connected: "+o),s?.onConnect&&s.onConnect())},onDisconnect:()=>{(this.isConnected||this.isSynced)&&(this.isConnected=!1,this.isSynced=!1,s?.quiet||console.info("Hocuspocus disconnected: "+o),s?.onDisconnect&&s.onDisconnect())},onSynced:()=>{this.isSynced||(this.isSynced=!0,s?.quiet||console.info("Hocuspocus synced: "+o),s?.onSynced&&s.onSynced())}};void 0!==s?.forceSyncInterval&&(e.forceSyncInterval=s.forceSyncInterval),s?.onAuthenticationFailed&&(e.onAuthenticationFailed=s.onAuthenticationFailed),s?.onStatus&&(e.onStatus=s.onStatus),s?.WebSocketPolyfill&&(e.WebSocketPolyfill=s.WebSocketPolyfill),this.provider=new n(e),s?.quiet||console.info(`Hocuspocus Provider initialized: ${i}/${o}`)}}static createSharedWebSocket(e){if(H.sharedWebSocketProvider)return console.warn("Shared WebSocket already exists. Returning existing instance."),H.sharedWebSocketProvider;const t={url:e.url};return e.WebSocketPolyfill&&(t.WebSocketPolyfill=e.WebSocketPolyfill),e.onConnect&&(t.onConnect=e.onConnect),e.onDisconnect&&(t.onDisconnect=e.onDisconnect),e.onStatus&&(t.onStatus=e.onStatus),H.sharedWebSocketProvider=new m(t),console.info("Shared Hocuspocus WebSocket created: "+e.url),H.sharedWebSocketProvider}static destroySharedWebSocket(){H.sharedWebSocketProvider&&(H.sharedWebSocketProvider.destroy(),H.sharedWebSocketProvider=null,console.info("Shared Hocuspocus WebSocket destroyed"))}static getSharedWebSocket(){return H.sharedWebSocketProvider}static with(e){return{create:(t,s,o)=>{const i=o?{...e,...o}:e;return new H(t,s,i)}}}async connect(){if(!this.isSynced)return new Promise(((e,t)=>{const s=setTimeout((()=>{t(Error("Hocuspocus connection timeout"))}),1e4),o=()=>{clearTimeout(s),this.provider.off("synced",o),e()};if(this.provider.on("synced",o),this.provider.isSynced)return clearTimeout(s),this.provider.off("synced",o),void e();this.isConnected||this.usesSharedSocket||this.provider.connect()}))}disconnect(){this.provider&&(this.usesSharedSocket?this.provider.detach():this.provider.disconnect()),this.isConnected=!1,this.isSynced=!1}destroy(){this.provider&&this.provider.destroy(),this.isConnected=!1,this.isSynced=!1}}export{R as BroadcastSyncProvider,H as HocuspocusSyncProvider,F as WebSocketSyncProvider}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{K as
|
|
1
|
+
import{K as o,d as p}from"./p-C5KuV1pK.js";const s=o,r=p;export{s as KritzelBackToContent,r as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as e,H as t,c as o,h as s,d as n,t as r}from"./p-pebXO4LU.js";import{d as l}from"./p-CnVzLD5e.js";import{d as a}from"./p-
|
|
1
|
+
import{p as e,H as t,c as o,h as s,d as n,t as r}from"./p-pebXO4LU.js";import{d as l}from"./p-CnVzLD5e.js";import{d as a}from"./p-CHmi1QWx.js";const i=e(class extends t{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.typeChange=o(this,"typeChange")}type="pen";brushOptions=[{value:"pen",label:"Pen"},{value:"highlighter",label:"Highlighter"}];typeChange;handleDropdownValueChange(e){this.typeChange.emit(e.detail)}render(){const e=this.brushOptions.map((e=>({value:e.value,label:e.label})));return s(n,{key:"51a7f84685032fd8fc967b22bee7c0711e811a54"},s("kritzel-dropdown",{key:"e49d7062c695458d345738d88a0adfc96b575e61",options:e,value:this.type,onValueChanged:e=>this.handleDropdownValueChange(e)},s("button",{key:"ebbbf1a55b89e91012ca44c5cf30acfb77332b50",class:"brush-style-button",slot:"prefix"},s("kritzel-icon",{key:"dae002c9ab5e3486c726202426eb076a8f33b109",name:this.type,size:16}))))}static get style(){return":host{display:flex;align-items:flex-start;gap:8px;padding:8px;box-sizing:border-box;width:100%}.brush-style-button{display:flex;justify-content:center;align-items:center;width:42px;height:32px;padding:0;border:none;outline:none;background:none;border-radius:0;color:var(--control-text-color);font-weight:bold;-webkit-tap-highlight-color:transparent}.font-style-button:not(:last-child){border-right:1px solid #333333}.font-style-button:hover{background-color:var(--control-hover-bg)}.font-style-button:active{background-color:var(--control-active-bg)}.font-style-button.selected,.font-style-button.selected:hover,.font-style-button.selected:active{background-color:var(--control-selected-bg);color:var(--control-selected-color)}"}},[513,"kritzel-brush-style",{type:[1],brushOptions:[16]}]),c=i,b=function(){"undefined"!=typeof customElements&&["kritzel-brush-style","kritzel-dropdown","kritzel-icon"].forEach((e=>{switch(e){case"kritzel-brush-style":customElements.get(r(e))||customElements.define(r(e),i);break;case"kritzel-dropdown":customElements.get(r(e))||l();break;case"kritzel-icon":customElements.get(r(e))||a()}}))};export{c as KritzelBrushStyle,b as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{K as o,d as
|
|
1
|
+
import{K as o,d as r}from"./p-DEzfXrGX.js";const s=o,p=r;export{s as KritzelContextMenu,p as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{K as s,d as o}from"./p-
|
|
1
|
+
import{K as s,d as o}from"./p-BG1IxseV.js";const p=s,r=o;export{p as KritzelControls,r as defineCustomElement}
|