kritzel-react 0.1.30 → 0.1.32
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/kritzel-react/lib/components/stencil-generated/components.js +122 -0
- package/dist/kritzel-react/lib/index.js +2 -0
- package/dist/kritzel-stencil/src/classes/core/core.class.js +797 -0
- package/dist/kritzel-stencil/src/classes/core/reviver.class.js +97 -0
- package/dist/kritzel-stencil/src/classes/core/store.class.js +153 -0
- package/dist/kritzel-stencil/src/classes/core/viewport.class.js +311 -0
- package/dist/kritzel-stencil/src/classes/core/workspace.class.js +34 -0
- package/dist/kritzel-stencil/src/classes/handlers/base.handler.js +6 -0
- package/dist/kritzel-stencil/src/classes/handlers/context-menu.handler.js +63 -0
- package/dist/kritzel-stencil/src/classes/handlers/hover.handler.js +18 -0
- package/dist/kritzel-stencil/src/classes/handlers/key.handler.js +76 -0
- package/dist/kritzel-stencil/src/classes/handlers/line-handle.handler.js +382 -0
- package/dist/kritzel-stencil/src/classes/handlers/move.handler.js +213 -0
- package/dist/kritzel-stencil/src/classes/handlers/resize.handler.js +205 -0
- package/dist/kritzel-stencil/src/classes/handlers/rotation.handler.js +117 -0
- package/dist/kritzel-stencil/src/classes/handlers/selection.handler.js +313 -0
- package/dist/kritzel-stencil/src/classes/managers/anchor.manager.js +1056 -0
- package/dist/kritzel-stencil/src/classes/managers/cursor.manager.js +117 -0
- package/dist/kritzel-stencil/src/classes/managers/theme.manager.js +103 -0
- package/dist/kritzel-stencil/src/classes/objects/base-object.class.js +249 -0
- package/dist/kritzel-stencil/src/classes/objects/custom-element.class.js +60 -0
- package/dist/kritzel-stencil/src/classes/objects/group.class.js +407 -0
- package/dist/kritzel-stencil/src/classes/objects/image.class.js +55 -0
- package/dist/kritzel-stencil/src/classes/objects/line.class.js +608 -0
- package/dist/kritzel-stencil/src/classes/objects/path.class.js +401 -0
- package/dist/kritzel-stencil/src/classes/objects/selection-box.class.js +21 -0
- package/dist/kritzel-stencil/src/classes/objects/selection-group.class.js +409 -0
- package/dist/kritzel-stencil/src/classes/objects/shape.class.js +412 -0
- package/dist/kritzel-stencil/src/classes/objects/text.class.js +292 -0
- package/dist/kritzel-stencil/src/classes/providers/broadcast-sync-provider.class.js +101 -0
- package/dist/kritzel-stencil/src/classes/providers/hocuspocus-sync-provider.class.js +241 -0
- package/dist/kritzel-stencil/src/classes/providers/indexeddb-sync-provider.class.js +43 -0
- package/dist/kritzel-stencil/src/classes/providers/websocket-sync-provider.class.js +98 -0
- package/dist/kritzel-stencil/src/classes/registries/icon-registry.class.js +66 -0
- package/dist/kritzel-stencil/src/classes/registries/tool.registry.js +21 -0
- package/dist/kritzel-stencil/src/classes/structures/app-state-map.structure.js +212 -0
- package/dist/kritzel-stencil/src/classes/structures/object-map.structure.js +414 -0
- package/dist/kritzel-stencil/src/classes/structures/quadtree.structure.js +151 -0
- package/dist/kritzel-stencil/src/classes/tools/base-tool.class.js +36 -0
- package/dist/kritzel-stencil/src/classes/tools/brush-tool.class.js +161 -0
- package/dist/kritzel-stencil/src/classes/tools/eraser-tool.class.js +85 -0
- package/dist/kritzel-stencil/src/classes/tools/image-tool.class.js +83 -0
- package/dist/kritzel-stencil/src/classes/tools/line-tool.class.js +187 -0
- package/dist/kritzel-stencil/src/classes/tools/selection-tool.class.js +429 -0
- package/dist/kritzel-stencil/src/classes/tools/shape-tool.class.js +196 -0
- package/dist/kritzel-stencil/src/classes/tools/text-tool.class.js +100 -0
- package/dist/kritzel-stencil/src/components/core/kritzel-engine/kritzel-engine.js +1343 -0
- package/dist/kritzel-stencil/src/components/shared/kritzel-brush-style/kritzel-brush-style.js +46 -0
- package/dist/kritzel-stencil/src/components/shared/kritzel-dropdown/kritzel-dropdown.js +312 -0
- package/dist/kritzel-stencil/src/components/shared/kritzel-font-family/kritzel-font-family.js +60 -0
- package/dist/kritzel-stencil/src/components/shared/kritzel-line-endings/kritzel-line-endings.js +105 -0
- package/dist/kritzel-stencil/src/components/shared/kritzel-shape-fill/kritzel-shape-fill.js +53 -0
- package/dist/kritzel-stencil/src/components/ui/kritzel-context-menu/kritzel-context-menu.js +137 -0
- package/dist/kritzel-stencil/src/configs/default-brush-tool.config.js +9 -0
- package/dist/kritzel-stencil/src/configs/default-engine-config.js +63 -0
- package/dist/kritzel-stencil/src/configs/default-line-tool.config.js +9 -0
- package/dist/kritzel-stencil/src/configs/default-sync.config.js +9 -0
- package/dist/kritzel-stencil/src/configs/default-text-tool.config.js +7 -0
- package/dist/kritzel-stencil/src/constants/color-palette.constants.js +37 -0
- package/dist/kritzel-stencil/src/constants/engine.constants.js +2 -0
- package/dist/kritzel-stencil/src/enums/event-button.enum.js +6 -0
- package/dist/kritzel-stencil/src/enums/handle-type.enum.js +7 -0
- package/dist/kritzel-stencil/src/enums/shape-type.enum.js +6 -0
- package/dist/kritzel-stencil/src/helpers/class.helper.js +5 -0
- package/dist/kritzel-stencil/src/helpers/color.helper.js +106 -0
- package/dist/kritzel-stencil/src/helpers/cursor.helper.js +57 -0
- package/dist/kritzel-stencil/src/helpers/devices.helper.js +28 -0
- package/dist/kritzel-stencil/src/helpers/event.helper.js +58 -0
- package/dist/kritzel-stencil/src/helpers/geometry.helper.js +149 -0
- package/dist/kritzel-stencil/src/helpers/keyboard.helper.js +51 -0
- package/dist/kritzel-stencil/src/helpers/math.helper.js +5 -0
- package/dist/kritzel-stencil/src/helpers/object.helper.js +11 -0
- package/dist/kritzel-stencil/src/helpers/theme.helper.js +69 -0
- package/dist/kritzel-stencil/src/index.js +41 -0
- package/dist/kritzel-stencil/src/interfaces/anchor.interface.js +1 -0
- package/dist/kritzel-stencil/src/interfaces/arrow-head.interface.js +1 -0
- package/dist/kritzel-stencil/src/interfaces/bounding-box.interface.js +1 -0
- package/dist/kritzel-stencil/src/interfaces/clonable.interface.js +1 -0
- package/dist/kritzel-stencil/src/interfaces/context-menu-item.interface.js +1 -0
- package/dist/kritzel-stencil/src/interfaces/debug-info.interface.js +1 -0
- package/dist/kritzel-stencil/src/interfaces/dialog.interface.js +1 -0
- package/dist/kritzel-stencil/src/interfaces/displayable-shortcut.interface.js +1 -0
- package/dist/kritzel-stencil/src/interfaces/engine-state.interface.js +1 -0
- package/dist/kritzel-stencil/src/interfaces/line-options.interface.js +1 -0
- package/dist/kritzel-stencil/src/interfaces/master-detail.interface.js +1 -0
- package/dist/kritzel-stencil/src/interfaces/menu-item.interface.js +1 -0
- package/dist/kritzel-stencil/src/interfaces/object.interface.js +1 -0
- package/dist/kritzel-stencil/src/interfaces/path-options.interface.js +1 -0
- package/dist/kritzel-stencil/src/interfaces/point.interface.js +1 -0
- package/dist/kritzel-stencil/src/interfaces/polygon.interface.js +1 -0
- package/dist/kritzel-stencil/src/interfaces/serializable.interface.js +1 -0
- package/dist/kritzel-stencil/src/interfaces/settings.interface.js +1 -0
- package/dist/kritzel-stencil/src/interfaces/shortcut.interface.js +1 -0
- package/dist/kritzel-stencil/src/interfaces/sync-config.interface.js +1 -0
- package/dist/kritzel-stencil/src/interfaces/sync-provider.interface.js +1 -0
- package/dist/kritzel-stencil/src/interfaces/theme.interface.js +1 -0
- package/dist/kritzel-stencil/src/interfaces/tool-config.interface.js +1 -0
- package/dist/kritzel-stencil/src/interfaces/tool.interface.js +1 -0
- package/dist/kritzel-stencil/src/interfaces/toolbar-control.interface.js +1 -0
- package/dist/kritzel-stencil/src/interfaces/undo-state.interface.js +1 -0
- package/dist/kritzel-stencil/src/themes/dark-theme.js +198 -0
- package/dist/kritzel-stencil/src/themes/light-theme.js +199 -0
- package/dist/kritzel-stencil/src/types/shortcut.type.js +1 -0
- package/dist/kritzel-stencil/src/types/state.types.js +1 -0
- package/dist/types/kritzel-react/lib/components/stencil-generated/components.d.ts +74 -0
- package/dist/types/kritzel-react/lib/index.d.ts +2 -0
- package/dist/types/kritzel-stencil/src/classes/core/core.class.d.ts +101 -0
- package/dist/types/kritzel-stencil/src/classes/core/reviver.class.d.ts +6 -0
- package/dist/types/kritzel-stencil/src/classes/core/store.class.d.ts +53 -0
- package/dist/types/kritzel-stencil/src/classes/core/viewport.class.d.ts +48 -0
- package/dist/types/kritzel-stencil/src/classes/core/workspace.class.d.ts +24 -0
- package/dist/types/kritzel-stencil/src/classes/handlers/base.handler.d.ts +5 -0
- package/dist/types/kritzel-stencil/src/classes/handlers/context-menu.handler.d.ts +8 -0
- package/dist/types/kritzel-stencil/src/classes/handlers/hover.handler.d.ts +6 -0
- package/dist/types/kritzel-stencil/src/classes/handlers/key.handler.d.ts +11 -0
- package/dist/types/kritzel-stencil/src/classes/handlers/line-handle.handler.d.ts +34 -0
- package/dist/types/kritzel-stencil/src/classes/handlers/move.handler.d.ts +29 -0
- package/dist/types/kritzel-stencil/src/classes/handlers/resize.handler.d.ts +24 -0
- package/dist/types/kritzel-stencil/src/classes/handlers/rotation.handler.d.ts +12 -0
- package/dist/types/kritzel-stencil/src/classes/handlers/selection.handler.d.ts +27 -0
- package/dist/types/kritzel-stencil/src/classes/managers/anchor.manager.d.ts +180 -0
- package/dist/types/kritzel-stencil/src/classes/managers/cursor.manager.d.ts +43 -0
- package/dist/types/kritzel-stencil/src/classes/managers/theme.manager.d.ts +56 -0
- package/dist/types/kritzel-stencil/src/classes/objects/base-object.class.d.ts +76 -0
- package/dist/types/kritzel-stencil/src/classes/objects/custom-element.class.d.ts +26 -0
- package/dist/types/kritzel-stencil/src/classes/objects/group.class.d.ts +97 -0
- package/dist/types/kritzel-stencil/src/classes/objects/image.class.d.ts +17 -0
- package/dist/types/kritzel-stencil/src/classes/objects/line.class.d.ts +101 -0
- package/dist/types/kritzel-stencil/src/classes/objects/path.class.d.ts +62 -0
- package/dist/types/kritzel-stencil/src/classes/objects/selection-box.class.d.ts +6 -0
- package/dist/types/kritzel-stencil/src/classes/objects/selection-group.class.d.ts +67 -0
- package/dist/types/kritzel-stencil/src/classes/objects/shape.class.d.ts +124 -0
- package/dist/types/kritzel-stencil/src/classes/objects/text.class.d.ts +56 -0
- package/dist/types/kritzel-stencil/src/classes/providers/broadcast-sync-provider.class.d.ts +18 -0
- package/dist/types/kritzel-stencil/src/classes/providers/hocuspocus-sync-provider.class.d.ts +120 -0
- package/dist/types/kritzel-stencil/src/classes/providers/indexeddb-sync-provider.class.d.ts +22 -0
- package/dist/types/kritzel-stencil/src/classes/providers/websocket-sync-provider.class.d.ts +52 -0
- package/dist/types/kritzel-stencil/src/classes/registries/icon-registry.class.d.ts +9 -0
- package/dist/types/kritzel-stencil/src/classes/registries/tool.registry.d.ts +8 -0
- package/dist/types/kritzel-stencil/src/classes/structures/app-state-map.structure.d.ts +31 -0
- package/dist/types/kritzel-stencil/src/classes/structures/object-map.structure.d.ts +63 -0
- package/dist/types/kritzel-stencil/src/classes/structures/quadtree.structure.d.ts +36 -0
- package/dist/types/kritzel-stencil/src/classes/tools/base-tool.class.d.ts +20 -0
- package/dist/types/kritzel-stencil/src/classes/tools/brush-tool.class.d.ts +14 -0
- package/dist/types/kritzel-stencil/src/classes/tools/eraser-tool.class.d.ts +9 -0
- package/dist/types/kritzel-stencil/src/classes/tools/image-tool.class.d.ts +15 -0
- package/dist/types/kritzel-stencil/src/classes/tools/line-tool.class.d.ts +19 -0
- package/dist/types/kritzel-stencil/src/classes/tools/selection-tool.class.d.ts +54 -0
- package/dist/types/kritzel-stencil/src/classes/tools/shape-tool.class.d.ts +39 -0
- package/dist/types/kritzel-stencil/src/classes/tools/text-tool.class.d.ts +13 -0
- package/dist/types/kritzel-stencil/src/components/core/kritzel-engine/kritzel-engine.d.ts +111 -0
- package/dist/types/kritzel-stencil/src/components/shared/kritzel-brush-style/kritzel-brush-style.d.ts +11 -0
- package/dist/types/kritzel-stencil/src/components/shared/kritzel-dropdown/kritzel-dropdown.d.ts +46 -0
- package/dist/types/kritzel-stencil/src/components/shared/kritzel-font-family/kritzel-font-family.d.ts +13 -0
- package/dist/types/kritzel-stencil/src/components/shared/kritzel-line-endings/kritzel-line-endings.d.ts +21 -0
- package/dist/types/kritzel-stencil/src/components/shared/kritzel-shape-fill/kritzel-shape-fill.d.ts +10 -0
- package/dist/types/kritzel-stencil/src/components/ui/kritzel-context-menu/kritzel-context-menu.d.ts +21 -0
- package/dist/types/kritzel-stencil/src/configs/default-brush-tool.config.d.ts +2 -0
- package/dist/types/kritzel-stencil/src/configs/default-engine-config.d.ts +2 -0
- package/dist/types/kritzel-stencil/src/configs/default-line-tool.config.d.ts +2 -0
- package/dist/types/kritzel-stencil/src/configs/default-sync.config.d.ts +5 -0
- package/dist/types/kritzel-stencil/src/configs/default-text-tool.config.d.ts +2 -0
- package/dist/types/kritzel-stencil/src/constants/color-palette.constants.d.ts +29 -0
- package/dist/types/kritzel-stencil/src/constants/engine.constants.d.ts +2 -0
- package/dist/types/kritzel-stencil/src/enums/event-button.enum.d.ts +5 -0
- package/dist/types/kritzel-stencil/src/enums/handle-type.enum.d.ts +6 -0
- package/dist/types/kritzel-stencil/src/enums/shape-type.enum.d.ts +5 -0
- package/dist/types/kritzel-stencil/src/helpers/class.helper.d.ts +3 -0
- package/dist/types/kritzel-stencil/src/helpers/color.helper.d.ts +33 -0
- package/dist/types/kritzel-stencil/src/helpers/cursor.helper.d.ts +22 -0
- package/dist/types/kritzel-stencil/src/helpers/devices.helper.d.ts +8 -0
- package/dist/types/kritzel-stencil/src/helpers/event.helper.d.ts +6 -0
- package/dist/types/kritzel-stencil/src/helpers/geometry.helper.d.ts +38 -0
- package/dist/types/kritzel-stencil/src/helpers/keyboard.helper.d.ts +6 -0
- package/dist/types/kritzel-stencil/src/helpers/math.helper.d.ts +3 -0
- package/dist/types/kritzel-stencil/src/helpers/object.helper.d.ts +4 -0
- package/dist/types/kritzel-stencil/src/helpers/theme.helper.d.ts +41 -0
- package/dist/types/kritzel-stencil/src/index.d.ts +42 -0
- package/dist/types/kritzel-stencil/src/interfaces/anchor.interface.d.ts +137 -0
- package/dist/types/kritzel-stencil/src/interfaces/arrow-head.interface.d.ts +27 -0
- package/dist/types/kritzel-stencil/src/interfaces/bounding-box.interface.d.ts +8 -0
- package/dist/types/kritzel-stencil/src/interfaces/clonable.interface.d.ts +3 -0
- package/dist/types/kritzel-stencil/src/interfaces/context-menu-item.interface.d.ts +17 -0
- package/dist/types/kritzel-stencil/src/interfaces/debug-info.interface.d.ts +4 -0
- package/dist/types/kritzel-stencil/src/interfaces/dialog.interface.d.ts +4 -0
- package/dist/types/kritzel-stencil/src/interfaces/displayable-shortcut.interface.d.ts +5 -0
- package/dist/types/kritzel-stencil/src/interfaces/engine-state.interface.d.ts +73 -0
- package/dist/types/kritzel-stencil/src/interfaces/line-options.interface.d.ts +23 -0
- package/dist/types/kritzel-stencil/src/interfaces/master-detail.interface.d.ts +14 -0
- package/dist/types/kritzel-stencil/src/interfaces/menu-item.interface.d.ts +24 -0
- package/dist/types/kritzel-stencil/src/interfaces/object.interface.d.ts +53 -0
- package/dist/types/kritzel-stencil/src/interfaces/path-options.interface.d.ts +11 -0
- package/dist/types/kritzel-stencil/src/interfaces/point.interface.d.ts +4 -0
- package/dist/types/kritzel-stencil/src/interfaces/polygon.interface.d.ts +7 -0
- package/dist/types/kritzel-stencil/src/interfaces/serializable.interface.d.ts +5 -0
- package/dist/types/kritzel-stencil/src/interfaces/settings.interface.d.ts +11 -0
- package/dist/types/kritzel-stencil/src/interfaces/shortcut.interface.d.ts +10 -0
- package/dist/types/kritzel-stencil/src/interfaces/sync-config.interface.d.ts +22 -0
- package/dist/types/kritzel-stencil/src/interfaces/sync-provider.interface.d.ts +29 -0
- package/dist/types/kritzel-stencil/src/interfaces/theme.interface.d.ts +330 -0
- package/dist/types/kritzel-stencil/src/interfaces/tool-config.interface.d.ts +26 -0
- package/dist/types/kritzel-stencil/src/interfaces/tool.interface.d.ts +7 -0
- package/dist/types/kritzel-stencil/src/interfaces/toolbar-control.interface.d.ts +58 -0
- package/dist/types/kritzel-stencil/src/interfaces/undo-state.interface.d.ts +6 -0
- package/dist/types/kritzel-stencil/src/themes/dark-theme.d.ts +5 -0
- package/dist/types/kritzel-stencil/src/themes/light-theme.d.ts +5 -0
- package/dist/types/kritzel-stencil/src/types/shortcut.type.d.ts +1 -0
- package/dist/types/kritzel-stencil/src/types/state.types.d.ts +3 -0
- package/package.json +2 -2
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Light theme preset - the default theme
|
|
3
|
+
*/
|
|
4
|
+
export const lightTheme = {
|
|
5
|
+
name: 'light',
|
|
6
|
+
global: {
|
|
7
|
+
borderColor: '#ebebeb',
|
|
8
|
+
dividerColor: '#e0e0e0',
|
|
9
|
+
focusColor: '#333333',
|
|
10
|
+
focusRingColor: '#333333',
|
|
11
|
+
hoverBackground: 'hsl(0, 0%, 0%, 4.3%)',
|
|
12
|
+
iconColor: 'currentColor',
|
|
13
|
+
scrollbarThumbColor: '#ebebeb',
|
|
14
|
+
textPrimary: '#000000',
|
|
15
|
+
textSecondary: '#333333',
|
|
16
|
+
},
|
|
17
|
+
selection: {
|
|
18
|
+
borderColor: '#007AFF',
|
|
19
|
+
handleColor: '#ffffff',
|
|
20
|
+
},
|
|
21
|
+
checkerboard: {
|
|
22
|
+
colorDark: '#cccccc',
|
|
23
|
+
colorLight: '#ffffff',
|
|
24
|
+
},
|
|
25
|
+
backToContent: {
|
|
26
|
+
activeBackgroundColor: 'hsl(0, 0%, 0%, 8.6%)',
|
|
27
|
+
backgroundColor: '#ffffff',
|
|
28
|
+
border: '1px solid #ebebeb',
|
|
29
|
+
boxShadow: '0 0 3px rgba(0, 0, 0, 0.08)',
|
|
30
|
+
color: '#000000',
|
|
31
|
+
hoverBackgroundColor: 'hsl(0, 0%, 0%, 4.3%)',
|
|
32
|
+
},
|
|
33
|
+
colorPalette: {
|
|
34
|
+
circleBorderColor: '#dddcdc',
|
|
35
|
+
hoverBackgroundColor: '#ebebeb',
|
|
36
|
+
selectedBackgroundColor: '#ebebeb',
|
|
37
|
+
},
|
|
38
|
+
contextMenu: {
|
|
39
|
+
backgroundColor: '#ffffff',
|
|
40
|
+
border: '1px solid #ebebeb',
|
|
41
|
+
boxShadow: '0 1px 6px rgba(0, 0, 0, 0.12)',
|
|
42
|
+
itemActiveBackgroundColor: 'hsl(0, 0%, 0%, 8.6%)',
|
|
43
|
+
itemColor: '#333333',
|
|
44
|
+
itemDisabledColor: '#aaaaaa',
|
|
45
|
+
itemHoverBackgroundColor: 'hsl(0, 0%, 0%, 4.3%)',
|
|
46
|
+
},
|
|
47
|
+
controls: {
|
|
48
|
+
backgroundColor: '#ffffff',
|
|
49
|
+
border: '1px solid #ebebeb',
|
|
50
|
+
boxShadow: '0 0 3px rgba(0, 0, 0, 0.08)',
|
|
51
|
+
controlActiveBackgroundColor: 'hsl(0, 0%, 0%, 8.6%)',
|
|
52
|
+
controlColor: '#000000',
|
|
53
|
+
controlHoverBackgroundColor: 'hsl(0, 0%, 0%, 4.3%)',
|
|
54
|
+
controlSelectedBackgroundColor: '#007AFF',
|
|
55
|
+
controlSelectedColor: '#ffffff',
|
|
56
|
+
},
|
|
57
|
+
dialog: {
|
|
58
|
+
backdropColor: 'rgba(0, 0, 0, 0.4)',
|
|
59
|
+
backgroundColor: '#ffffff',
|
|
60
|
+
border: '1px solid #ebebeb',
|
|
61
|
+
boxShadow: '0 4px 24px rgba(0, 0, 0, 0.15)',
|
|
62
|
+
closeButtonActiveBackground: 'hsl(0, 0%, 0%, 8.6%)',
|
|
63
|
+
closeButtonBackground: 'transparent',
|
|
64
|
+
closeButtonColor: '#333333',
|
|
65
|
+
closeButtonHoverBackground: 'hsl(0, 0%, 0%, 4.3%)',
|
|
66
|
+
closeButtonHoverColor: '#000000',
|
|
67
|
+
fontFamily: 'inherit',
|
|
68
|
+
footerBorder: '1px solid #ebebeb',
|
|
69
|
+
headerBorder: '1px solid #ebebeb',
|
|
70
|
+
titleColor: '#000000',
|
|
71
|
+
},
|
|
72
|
+
dropdown: {
|
|
73
|
+
accentColor: '#007bff',
|
|
74
|
+
hoverBackgroundColor: '#f0f0f0',
|
|
75
|
+
selectedBackgroundColor: '#007bff1a',
|
|
76
|
+
textColor: '#333333',
|
|
77
|
+
},
|
|
78
|
+
engine: {
|
|
79
|
+
backgroundColor: '#ffffff',
|
|
80
|
+
},
|
|
81
|
+
fontSize: {
|
|
82
|
+
hoverBackgroundColor: '#ebebeb',
|
|
83
|
+
selectedBackgroundColor: '#ebebeb',
|
|
84
|
+
textColor: '#333333',
|
|
85
|
+
},
|
|
86
|
+
lineEndings: {
|
|
87
|
+
hoverBackgroundColor: '#ebebeb',
|
|
88
|
+
labelColor: '#666666',
|
|
89
|
+
optionBackground: '#ffffff',
|
|
90
|
+
selectedBackgroundColor: '#ebebeb',
|
|
91
|
+
},
|
|
92
|
+
masterDetail: {
|
|
93
|
+
backButtonColor: '#333333',
|
|
94
|
+
backgroundColor: '#ffffff',
|
|
95
|
+
detailBackgroundColor: '#ffffff',
|
|
96
|
+
detailFocusOutline: '2px solid #333333',
|
|
97
|
+
menuBackgroundColor: '#ffffff',
|
|
98
|
+
menuBorderRight: '1px solid #ebebeb',
|
|
99
|
+
menuItemActiveBackgroundColor: 'hsl(0, 0%, 0%, 8.6%)',
|
|
100
|
+
menuItemBackgroundColor: 'transparent',
|
|
101
|
+
menuItemChevronColor: '#aaaaaa',
|
|
102
|
+
menuItemColor: '#333333',
|
|
103
|
+
menuItemDisabledColor: '#aaaaaa',
|
|
104
|
+
menuItemFocusOutline: '2px solid #333333',
|
|
105
|
+
menuItemHoverBackgroundColor: 'hsl(0, 0%, 0%, 4.3%)',
|
|
106
|
+
menuItemSelectedBackgroundColor: '#007AFF',
|
|
107
|
+
menuItemSelectedColor: '#ffffff',
|
|
108
|
+
menuItemSelectedHoverBackgroundColor: '#007AFF',
|
|
109
|
+
},
|
|
110
|
+
menu: {
|
|
111
|
+
backgroundColor: '#ffffff',
|
|
112
|
+
border: '1px solid #ebebeb',
|
|
113
|
+
boxShadow: '0 0 3px rgba(0, 0, 0, 0.08)',
|
|
114
|
+
itemButtonHoverBackgroundColor: 'hsl(0, 0%, 0%, 4.3%)',
|
|
115
|
+
itemChildOpenBackgroundColor: 'hsl(0, 0%, 0%, 3%)',
|
|
116
|
+
itemColor: '#333333',
|
|
117
|
+
itemEditingBackgroundColor: '#f0f0f0',
|
|
118
|
+
itemInputBorder: '1px solid #333333',
|
|
119
|
+
itemInputBorderColorOnSelected: '#ffffff',
|
|
120
|
+
itemInputCaretColor: '#333333',
|
|
121
|
+
itemInputCaretColorOnSelected: '#ffffff',
|
|
122
|
+
itemInputSelectionColor: '#007aff',
|
|
123
|
+
itemInputSelectionColorOnSelected: 'rgba(255, 255, 255, 0.55)',
|
|
124
|
+
itemInputSelectionTextColor: '#ffffff',
|
|
125
|
+
itemInputSelectionTextColorOnSelected: '#ffffff',
|
|
126
|
+
itemOverlayBackgroundColor: 'hsl(0, 0%, 0%, 4.3%)',
|
|
127
|
+
itemSelectedBackgroundColor: '#007aff',
|
|
128
|
+
itemSelectedColor: '#ffffff',
|
|
129
|
+
},
|
|
130
|
+
moreMenu: {
|
|
131
|
+
backgroundColor: '#ffffff',
|
|
132
|
+
border: '1px solid #ebebeb',
|
|
133
|
+
borderRadius: '12px',
|
|
134
|
+
boxShadow: '0 0 3px rgba(0, 0, 0, 0.08)',
|
|
135
|
+
buttonActiveBackgroundColor: 'hsl(0, 0%, 0%, 8.6%)',
|
|
136
|
+
buttonColor: '#000000',
|
|
137
|
+
buttonHoverBackgroundColor: 'hsl(0, 0%, 0%, 4.3%)',
|
|
138
|
+
innerBorderRadius: '12px',
|
|
139
|
+
},
|
|
140
|
+
numericInput: {
|
|
141
|
+
borderColor: '#ebebeb',
|
|
142
|
+
focusBorderColor: '#333333',
|
|
143
|
+
hoverBorderColor: '#ccc',
|
|
144
|
+
inputBackground: '#ffffff',
|
|
145
|
+
labelColor: '#666666',
|
|
146
|
+
spinnerActiveBackground: 'hsl(0, 0%, 0%, 8.6%)',
|
|
147
|
+
spinnerBackground: 'transparent',
|
|
148
|
+
spinnerColor: '#333333',
|
|
149
|
+
spinnerHoverBackground: 'hsl(0, 0%, 0%, 4.3%)',
|
|
150
|
+
textColor: '#333333',
|
|
151
|
+
},
|
|
152
|
+
opacitySlider: {
|
|
153
|
+
activeColor: '#007AFF',
|
|
154
|
+
thumbBorderColor: '#007AFF',
|
|
155
|
+
thumbColor: '#ffffff',
|
|
156
|
+
trackColor: '#e0e0e0',
|
|
157
|
+
},
|
|
158
|
+
settings: {
|
|
159
|
+
contentHeadingColor: '#000000',
|
|
160
|
+
contentTextColor: '#333333',
|
|
161
|
+
descriptionColor: '#666666',
|
|
162
|
+
labelColor: '#333333',
|
|
163
|
+
},
|
|
164
|
+
shapeFill: {
|
|
165
|
+
hoverBackgroundColor: '#ebebeb',
|
|
166
|
+
optionBackground: '#ffffff',
|
|
167
|
+
selectedBackgroundColor: '#ebebeb',
|
|
168
|
+
},
|
|
169
|
+
slideToggle: {
|
|
170
|
+
thumbColor: '#fff',
|
|
171
|
+
thumbSize: '18px',
|
|
172
|
+
trackCheckedColor: '#007AFF',
|
|
173
|
+
trackColor: '#ccc',
|
|
174
|
+
},
|
|
175
|
+
splitButton: {
|
|
176
|
+
backgroundColor: '#ffffff',
|
|
177
|
+
border: '1px solid #ebebeb',
|
|
178
|
+
boxShadow: '0 0 3px rgba(0, 0, 0, 0.08)',
|
|
179
|
+
color: '#000000',
|
|
180
|
+
dividerBackgroundColor: '#ebebeb',
|
|
181
|
+
hoverBackgroundColor: 'hsl(0, 0%, 0%, 4.3%)',
|
|
182
|
+
},
|
|
183
|
+
strokeSize: {
|
|
184
|
+
hoverBackgroundColor: '#ebebeb',
|
|
185
|
+
selectedBackgroundColor: '#ebebeb',
|
|
186
|
+
},
|
|
187
|
+
tooltip: {
|
|
188
|
+
backgroundColor: '#ffffff',
|
|
189
|
+
border: '1px solid #ebebeb',
|
|
190
|
+
boxShadow: '0 1px 6px rgba(0, 0, 0, 0.12)',
|
|
191
|
+
color: '#000000',
|
|
192
|
+
},
|
|
193
|
+
utilityPanel: {
|
|
194
|
+
backgroundColor: '#e2e2e2',
|
|
195
|
+
buttonColor: '#333333',
|
|
196
|
+
buttonHoverBackgroundColor: 'hsl(0, 0%, 0%, 4.3%)',
|
|
197
|
+
separatorColor: 'hsl(0, 0%, 0%, 8%)',
|
|
198
|
+
},
|
|
199
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file was automatically generated by the Stencil React Output Target.
|
|
3
|
+
* Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.
|
|
4
|
+
*/
|
|
5
|
+
import type { EventName, StencilReactComponent } from '@stencil/react-output-target/runtime';
|
|
6
|
+
import { type IKritzelDialogCloseEvent, type IKritzelMasterDetailSelectEvent, type IKritzelMenuItem, type KritzelBackToContentCustomEvent, type KritzelBaseObject, type KritzelDialogCustomEvent, type KritzelEditorCustomEvent, type KritzelExportCustomEvent, type KritzelLineEndingsCustomEvent, type KritzelMasterDetailCustomEvent, type KritzelMoreMenuCustomEvent, type KritzelNumericInputCustomEvent, type KritzelOpacitySliderCustomEvent, type KritzelSettingsConfig, type KritzelSettingsCustomEvent, type KritzelShapeFillCustomEvent, type KritzelSlideToggleCustomEvent, type KritzelUndoState, type LineArrowConfig, type ShapeFillType, type ThemeName } from "../../../../kritzel-stencil";
|
|
7
|
+
import { KritzelBackToContent as KritzelBackToContentElement } from "../../../../kritzel-stencil/dist/components/kritzel-back-to-content.js";
|
|
8
|
+
import { KritzelDialog as KritzelDialogElement } from "../../../../kritzel-stencil/dist/components/kritzel-dialog.js";
|
|
9
|
+
import { KritzelEditor as KritzelEditorElement } from "../../../../kritzel-stencil/dist/components/kritzel-editor.js";
|
|
10
|
+
import { KritzelExport as KritzelExportElement } from "../../../../kritzel-stencil/dist/components/kritzel-export.js";
|
|
11
|
+
import { KritzelLineEndings as KritzelLineEndingsElement } from "../../../../kritzel-stencil/dist/components/kritzel-line-endings.js";
|
|
12
|
+
import { KritzelMasterDetail as KritzelMasterDetailElement } from "../../../../kritzel-stencil/dist/components/kritzel-master-detail.js";
|
|
13
|
+
import { KritzelMoreMenu as KritzelMoreMenuElement } from "../../../../kritzel-stencil/dist/components/kritzel-more-menu.js";
|
|
14
|
+
import { KritzelNumericInput as KritzelNumericInputElement } from "../../../../kritzel-stencil/dist/components/kritzel-numeric-input.js";
|
|
15
|
+
import { KritzelOpacitySlider as KritzelOpacitySliderElement } from "../../../../kritzel-stencil/dist/components/kritzel-opacity-slider.js";
|
|
16
|
+
import { KritzelSettings as KritzelSettingsElement } from "../../../../kritzel-stencil/dist/components/kritzel-settings.js";
|
|
17
|
+
import { KritzelShapeFill as KritzelShapeFillElement } from "../../../../kritzel-stencil/dist/components/kritzel-shape-fill.js";
|
|
18
|
+
import { KritzelSlideToggle as KritzelSlideToggleElement } from "../../../../kritzel-stencil/dist/components/kritzel-slide-toggle.js";
|
|
19
|
+
export type KritzelBackToContentEvents = {
|
|
20
|
+
onBackToContent: EventName<KritzelBackToContentCustomEvent<void>>;
|
|
21
|
+
};
|
|
22
|
+
export declare const KritzelBackToContent: StencilReactComponent<KritzelBackToContentElement, KritzelBackToContentEvents>;
|
|
23
|
+
export type KritzelDialogEvents = {
|
|
24
|
+
onDialogOpen: EventName<KritzelDialogCustomEvent<void>>;
|
|
25
|
+
onDialogClose: EventName<KritzelDialogCustomEvent<IKritzelDialogCloseEvent>>;
|
|
26
|
+
};
|
|
27
|
+
export declare const KritzelDialog: StencilReactComponent<KritzelDialogElement, KritzelDialogEvents>;
|
|
28
|
+
export type KritzelEditorEvents = {
|
|
29
|
+
onIsReady: EventName<KritzelEditorCustomEvent<HTMLElement>>;
|
|
30
|
+
onObjectsChange: EventName<KritzelEditorCustomEvent<KritzelBaseObject[]>>;
|
|
31
|
+
onUndoStateChange: EventName<KritzelEditorCustomEvent<KritzelUndoState>>;
|
|
32
|
+
onThemeChange: EventName<KritzelEditorCustomEvent<ThemeName>>;
|
|
33
|
+
};
|
|
34
|
+
export declare const KritzelEditor: StencilReactComponent<KritzelEditorElement, KritzelEditorEvents>;
|
|
35
|
+
export type KritzelExportEvents = {
|
|
36
|
+
onExportPng: EventName<KritzelExportCustomEvent<void>>;
|
|
37
|
+
onExportSvg: EventName<KritzelExportCustomEvent<void>>;
|
|
38
|
+
};
|
|
39
|
+
export declare const KritzelExport: StencilReactComponent<KritzelExportElement, KritzelExportEvents>;
|
|
40
|
+
export type KritzelLineEndingsEvents = {
|
|
41
|
+
onValueChange: EventName<KritzelLineEndingsCustomEvent<LineArrowConfig>>;
|
|
42
|
+
};
|
|
43
|
+
export declare const KritzelLineEndings: StencilReactComponent<KritzelLineEndingsElement, KritzelLineEndingsEvents>;
|
|
44
|
+
export type KritzelMasterDetailEvents = {
|
|
45
|
+
onItemSelect: EventName<KritzelMasterDetailCustomEvent<IKritzelMasterDetailSelectEvent>>;
|
|
46
|
+
};
|
|
47
|
+
export declare const KritzelMasterDetail: StencilReactComponent<KritzelMasterDetailElement, KritzelMasterDetailEvents>;
|
|
48
|
+
export type KritzelMoreMenuEvents = {
|
|
49
|
+
onItemSelect: EventName<KritzelMoreMenuCustomEvent<{
|
|
50
|
+
item: IKritzelMenuItem;
|
|
51
|
+
parent: IKritzelMenuItem;
|
|
52
|
+
}>>;
|
|
53
|
+
};
|
|
54
|
+
export declare const KritzelMoreMenu: StencilReactComponent<KritzelMoreMenuElement, KritzelMoreMenuEvents>;
|
|
55
|
+
export type KritzelNumericInputEvents = {
|
|
56
|
+
onValueChange: EventName<KritzelNumericInputCustomEvent<number>>;
|
|
57
|
+
};
|
|
58
|
+
export declare const KritzelNumericInput: StencilReactComponent<KritzelNumericInputElement, KritzelNumericInputEvents>;
|
|
59
|
+
export type KritzelOpacitySliderEvents = {
|
|
60
|
+
onValueChange: EventName<KritzelOpacitySliderCustomEvent<number>>;
|
|
61
|
+
};
|
|
62
|
+
export declare const KritzelOpacitySlider: StencilReactComponent<KritzelOpacitySliderElement, KritzelOpacitySliderEvents>;
|
|
63
|
+
export type KritzelSettingsEvents = {
|
|
64
|
+
onSettingsChange: EventName<KritzelSettingsCustomEvent<KritzelSettingsConfig>>;
|
|
65
|
+
};
|
|
66
|
+
export declare const KritzelSettings: StencilReactComponent<KritzelSettingsElement, KritzelSettingsEvents>;
|
|
67
|
+
export type KritzelShapeFillEvents = {
|
|
68
|
+
onValueChange: EventName<KritzelShapeFillCustomEvent<ShapeFillType>>;
|
|
69
|
+
};
|
|
70
|
+
export declare const KritzelShapeFill: StencilReactComponent<KritzelShapeFillElement, KritzelShapeFillEvents>;
|
|
71
|
+
export type KritzelSlideToggleEvents = {
|
|
72
|
+
onCheckedChange: EventName<KritzelSlideToggleCustomEvent<boolean>>;
|
|
73
|
+
};
|
|
74
|
+
export declare const KritzelSlideToggle: StencilReactComponent<KritzelSlideToggleElement, KritzelSlideToggleEvents>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './components/stencil-generated/components';
|
|
2
|
+
export { KritzelText, KritzelPath, KritzelImage, KritzelBrushTool, KritzelTextTool, KritzelEraserTool, KritzelSelectionTool, KritzelImageTool, KritzelToolbarControl, DEFAULT_BRUSH_CONFIG, DEFAULT_TEXT_CONFIG, } from 'kritzel-stencil';
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { KritzelEngine } from '../../components/core/kritzel-engine/kritzel-engine';
|
|
2
|
+
import { KritzelBaseObject } from '../objects/base-object.class';
|
|
3
|
+
import { KritzelSelectionGroup } from '../objects/selection-group.class';
|
|
4
|
+
import { KritzelStore } from './store.class';
|
|
5
|
+
import { KritzelWorkspace } from './workspace.class';
|
|
6
|
+
import { KritzelSyncConfig } from '../../interfaces/sync-config.interface';
|
|
7
|
+
import { KritzelAppStateMap } from '../structures/app-state-map.structure';
|
|
8
|
+
import { KritzelAnchorManager } from '../managers/anchor.manager';
|
|
9
|
+
import { KritzelCursorManager } from '../managers/cursor.manager';
|
|
10
|
+
import { KritzelThemeManager } from '../managers/theme.manager';
|
|
11
|
+
export declare class KritzelCore {
|
|
12
|
+
private readonly _kritzelEngine;
|
|
13
|
+
private readonly _store;
|
|
14
|
+
private _syncConfig?;
|
|
15
|
+
private readonly _appStateMap;
|
|
16
|
+
private readonly _anchorManager;
|
|
17
|
+
private readonly _cursorManager;
|
|
18
|
+
private readonly _themeManager;
|
|
19
|
+
get engine(): KritzelEngine;
|
|
20
|
+
get store(): KritzelStore;
|
|
21
|
+
get appStateMap(): KritzelAppStateMap;
|
|
22
|
+
get anchorManager(): KritzelAnchorManager;
|
|
23
|
+
get cursorManager(): KritzelCursorManager;
|
|
24
|
+
get themeManager(): KritzelThemeManager;
|
|
25
|
+
constructor(kritzelEngine: KritzelEngine);
|
|
26
|
+
setSyncConfig(config?: KritzelSyncConfig): void;
|
|
27
|
+
initializeYjs(): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Load all workspaces from app state map
|
|
30
|
+
*/
|
|
31
|
+
private loadWorkspacesFromAppState;
|
|
32
|
+
/**
|
|
33
|
+
* Save a workspace to app state map
|
|
34
|
+
*/
|
|
35
|
+
private saveWorkspaceToAppState;
|
|
36
|
+
/**
|
|
37
|
+
* Delete a workspace from app state map
|
|
38
|
+
*/
|
|
39
|
+
private deleteWorkspaceFromAppState;
|
|
40
|
+
initializeWorkspace(workspace?: KritzelWorkspace): Promise<void>;
|
|
41
|
+
getObjectsInViewport(): KritzelBaseObject<any>[];
|
|
42
|
+
rerender(): void;
|
|
43
|
+
findObjectById(id: string): KritzelBaseObject<any> | null;
|
|
44
|
+
getWorkspaces(): KritzelWorkspace[];
|
|
45
|
+
createWorkspace(workspace: KritzelWorkspace): void;
|
|
46
|
+
updateWorkspace(workspace: KritzelWorkspace): void;
|
|
47
|
+
deleteWorkspace(workspace: KritzelWorkspace): void;
|
|
48
|
+
updateWorkspaceViewport(translateX: number, translateY: number, scale: number): void;
|
|
49
|
+
addObject(object: KritzelBaseObject<any>): void;
|
|
50
|
+
removeObject(object: KritzelBaseObject<any>, preserveChildren?: boolean): void;
|
|
51
|
+
updateObject<T extends KritzelBaseObject<any>>(object: T, updatedProperties: Partial<T>): void;
|
|
52
|
+
addSelectionGroup(selectionGroup: KritzelSelectionGroup): void;
|
|
53
|
+
removeSelectionGroup(): void;
|
|
54
|
+
removeSelectionBox(): void;
|
|
55
|
+
deselectAllObjects(): void;
|
|
56
|
+
delete(): void;
|
|
57
|
+
undo(): void;
|
|
58
|
+
redo(): void;
|
|
59
|
+
deleteObject(id: string): void;
|
|
60
|
+
copy(): void;
|
|
61
|
+
paste(x?: number, y?: number): void;
|
|
62
|
+
bringForward(object?: KritzelBaseObject<any>): void;
|
|
63
|
+
sendBackward(object?: KritzelBaseObject<any>): void;
|
|
64
|
+
bringToFront(object?: KritzelBaseObject<any>): void;
|
|
65
|
+
sendToBack(object?: KritzelBaseObject<any>): void;
|
|
66
|
+
/**
|
|
67
|
+
* Groups the currently selected objects into a KritzelGroup.
|
|
68
|
+
* Requires at least 2 objects to be selected.
|
|
69
|
+
*/
|
|
70
|
+
group(): void;
|
|
71
|
+
/**
|
|
72
|
+
* Ungroups any KritzelGroup objects in the current selection.
|
|
73
|
+
* Children are extracted and become top-level objects.
|
|
74
|
+
*/
|
|
75
|
+
ungroup(): void;
|
|
76
|
+
selectObjects(objects: KritzelBaseObject<any>[]): void;
|
|
77
|
+
selectAllObjects(): void;
|
|
78
|
+
selectAllObjectsInViewport(): void;
|
|
79
|
+
clearSelection(): void;
|
|
80
|
+
resetActiveText(): void;
|
|
81
|
+
resetActiveShape(): void;
|
|
82
|
+
getObjectFromPointerEvent(event: PointerEvent, selector?: string): KritzelBaseObject<any> | null;
|
|
83
|
+
getObjectsFromPointerEvent(event: PointerEvent, selector?: string): KritzelBaseObject<any>[];
|
|
84
|
+
/**
|
|
85
|
+
* Get all elements at a pointer position that match a given selector.
|
|
86
|
+
* Uses elementsFromPoint to find overlapped elements.
|
|
87
|
+
*/
|
|
88
|
+
getElementsAtPoint(event: PointerEvent, selector: string): Element[];
|
|
89
|
+
/**
|
|
90
|
+
* Check if any element at the pointer position matches the given selector.
|
|
91
|
+
* Useful for detecting hover states on overlapped elements.
|
|
92
|
+
*/
|
|
93
|
+
isPointerOverElement(event: PointerEvent, selector: string): boolean;
|
|
94
|
+
getCanvasPoint(event: PointerEvent): {
|
|
95
|
+
x: number;
|
|
96
|
+
y: number;
|
|
97
|
+
};
|
|
98
|
+
beforeWorkspaceChange(): void;
|
|
99
|
+
displaySelectionGroupUI(object: KritzelBaseObject<any>): boolean;
|
|
100
|
+
displaySelectionLineUI(object: KritzelBaseObject<any>): boolean;
|
|
101
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { KritzelSelectionGroup } from '../objects/selection-group.class';
|
|
2
|
+
import { KritzelEngineState } from '../../interfaces/engine-state.interface';
|
|
3
|
+
import { KritzelSelectionBox } from '../objects/selection-box.class';
|
|
4
|
+
import { KritzelText } from '../objects/text.class';
|
|
5
|
+
import { KritzelShape } from '../objects/shape.class';
|
|
6
|
+
import { KritzelPath } from '../objects/path.class';
|
|
7
|
+
import { KritzelLine } from '../objects/line.class';
|
|
8
|
+
import { StateChangeListener, StatePropertyKey } from '../../types/state.types';
|
|
9
|
+
import { KritzelBaseObject } from '../..';
|
|
10
|
+
export declare class KritzelStore {
|
|
11
|
+
private readonly _state;
|
|
12
|
+
private readonly _listeners;
|
|
13
|
+
private _cachedSelectionBox;
|
|
14
|
+
private _cachedSelectionGroup;
|
|
15
|
+
private _selectionBoxCacheValid;
|
|
16
|
+
private _selectionGroupCacheValid;
|
|
17
|
+
get state(): KritzelEngineState;
|
|
18
|
+
get currentZIndex(): number;
|
|
19
|
+
get totalObjectCount(): number;
|
|
20
|
+
get allObjects(): KritzelBaseObject<Element>[];
|
|
21
|
+
get objectsInViewport(): KritzelBaseObject<Element>[];
|
|
22
|
+
get objectsToRender(): KritzelBaseObject<Element>[];
|
|
23
|
+
get allNonSelectionObjects(): KritzelBaseObject<Element>[];
|
|
24
|
+
get selectedObjects(): KritzelBaseObject<Element>[];
|
|
25
|
+
get selectionBox(): KritzelSelectionBox | null;
|
|
26
|
+
get selectionGroup(): KritzelSelectionGroup | null;
|
|
27
|
+
/**
|
|
28
|
+
* Invalidate cached selection objects. Call this when selection objects are inserted or removed.
|
|
29
|
+
*/
|
|
30
|
+
invalidateSelectionCache(): void;
|
|
31
|
+
/**
|
|
32
|
+
* Directly set the cached selection box reference for O(1) access.
|
|
33
|
+
* Use this when creating the selection box to avoid a filter lookup.
|
|
34
|
+
*/
|
|
35
|
+
setSelectionBox(box: KritzelSelectionBox | null): void;
|
|
36
|
+
/**
|
|
37
|
+
* Directly set the cached selection group reference for O(1) access.
|
|
38
|
+
* Use this when creating the selection group to avoid a filter lookup.
|
|
39
|
+
*/
|
|
40
|
+
setSelectionGroup(group: KritzelSelectionGroup | null): void;
|
|
41
|
+
get activeText(): KritzelText | null;
|
|
42
|
+
get activeShape(): KritzelShape | null;
|
|
43
|
+
get currentPath(): KritzelPath | null;
|
|
44
|
+
get currentLine(): KritzelLine | null;
|
|
45
|
+
get offsetX(): number;
|
|
46
|
+
get offsetY(): number;
|
|
47
|
+
get isDisabled(): boolean;
|
|
48
|
+
get isPointerDown(): boolean;
|
|
49
|
+
constructor(state: KritzelEngineState);
|
|
50
|
+
onStateChange<K extends StatePropertyKey>(property: K, listener: StateChangeListener<KritzelEngineState[K]>): void;
|
|
51
|
+
getState<K extends StatePropertyKey>(property: K): Readonly<KritzelEngineState[K]>;
|
|
52
|
+
setState<K extends StatePropertyKey>(property: K, value: KritzelEngineState[K]): void;
|
|
53
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { KritzelBaseObject } from '../..';
|
|
2
|
+
import { KritzelCore } from './core.class';
|
|
3
|
+
export declare class KritzelViewport {
|
|
4
|
+
private readonly _core;
|
|
5
|
+
private readonly _debounceUpdate;
|
|
6
|
+
private readonly _debounceEndScaling;
|
|
7
|
+
private _animationFrameId;
|
|
8
|
+
initialTouchDistance: number;
|
|
9
|
+
startX: number;
|
|
10
|
+
startY: number;
|
|
11
|
+
constructor(core: KritzelCore, host: HTMLElement);
|
|
12
|
+
/**
|
|
13
|
+
* Cancels any pending debounced viewport updates.
|
|
14
|
+
* Should be called before switching workspaces to prevent the old workspace's
|
|
15
|
+
* viewport state from being saved to the new workspace.
|
|
16
|
+
*/
|
|
17
|
+
cancelPendingUpdates(): void;
|
|
18
|
+
handleResize(): void;
|
|
19
|
+
handlePointerDown(event: PointerEvent): void;
|
|
20
|
+
handlePointerMove(event: PointerEvent): void;
|
|
21
|
+
handlePointerUp(event: PointerEvent): void;
|
|
22
|
+
handleWheel(event: WheelEvent): void;
|
|
23
|
+
centerInViewport(object: KritzelBaseObject): void;
|
|
24
|
+
centerFitInViewport(object: KritzelBaseObject): void;
|
|
25
|
+
private handleZoom;
|
|
26
|
+
private handlePan;
|
|
27
|
+
/**
|
|
28
|
+
* Cancels any ongoing viewport animation.
|
|
29
|
+
* Called when user interacts with the canvas during animation.
|
|
30
|
+
*/
|
|
31
|
+
cancelViewportAnimation(): void;
|
|
32
|
+
/**
|
|
33
|
+
* Animates the viewport to the specified position and scale.
|
|
34
|
+
* @param targetTranslateX - Target X translation
|
|
35
|
+
* @param targetTranslateY - Target Y translation
|
|
36
|
+
* @param targetScale - Target scale
|
|
37
|
+
* @param duration - Animation duration in milliseconds (default 150)
|
|
38
|
+
*/
|
|
39
|
+
animateViewportTo(targetTranslateX: number, targetTranslateY: number, targetScale: number, duration?: number): void;
|
|
40
|
+
/**
|
|
41
|
+
* Centers and fits the nearest content objects in the viewport.
|
|
42
|
+
* Finds up to maxObjects closest objects to the current viewport center
|
|
43
|
+
* and animates the viewport to show them.
|
|
44
|
+
* @param maxObjects - Maximum number of objects to consider (default 20)
|
|
45
|
+
* @returns true if content was found and viewport is animating, false if no content exists
|
|
46
|
+
*/
|
|
47
|
+
centerFitNearestContent(maxObjects?: number): boolean;
|
|
48
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { KritzelCore } from "../..";
|
|
2
|
+
import { KritzelSerializable } from "../../interfaces/serializable.interface";
|
|
3
|
+
export declare class KritzelWorkspace implements KritzelSerializable {
|
|
4
|
+
__class__: string;
|
|
5
|
+
id: string;
|
|
6
|
+
name: string;
|
|
7
|
+
createdAt: Date;
|
|
8
|
+
updatedAt: Date;
|
|
9
|
+
viewport: {
|
|
10
|
+
translateX: number;
|
|
11
|
+
translateY: number;
|
|
12
|
+
scale: number;
|
|
13
|
+
};
|
|
14
|
+
_core: KritzelCore;
|
|
15
|
+
constructor(id: string, name: string, viewport?: {
|
|
16
|
+
translateX: number;
|
|
17
|
+
translateY: number;
|
|
18
|
+
scale: number;
|
|
19
|
+
});
|
|
20
|
+
static create(core: KritzelCore, obj: any): KritzelWorkspace;
|
|
21
|
+
addObject(obj: any): void;
|
|
22
|
+
serialize(): any;
|
|
23
|
+
deserialize(object: any): KritzelSerializable;
|
|
24
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { KritzelBaseHandler } from './base.handler';
|
|
2
|
+
import { KritzelCore } from '../core/core.class';
|
|
3
|
+
export declare class KritzelContextMenuHandler extends KritzelBaseHandler {
|
|
4
|
+
globalContextMenuItems: never[];
|
|
5
|
+
objectContextMenuItems: never[];
|
|
6
|
+
constructor(core: KritzelCore, globalContextMenuItems: any[], objectContextMenuItems: any[]);
|
|
7
|
+
handleContextMenu(event: PointerEvent): void;
|
|
8
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { KritzelBaseHandler } from './base.handler';
|
|
2
|
+
import { KritzelCore } from '../core/core.class';
|
|
3
|
+
import { KritzelShortcut } from '../../interfaces/shortcut.interface';
|
|
4
|
+
export declare class KritzelKeyHandler extends KritzelBaseHandler {
|
|
5
|
+
private shortcuts;
|
|
6
|
+
constructor(core: KritzelCore);
|
|
7
|
+
private switchToolByIndex;
|
|
8
|
+
handleKeyDown(event: KeyboardEvent): void;
|
|
9
|
+
handleKeyUp(event: KeyboardEvent): void;
|
|
10
|
+
getDisplayableShortcuts(): Omit<KritzelShortcut, 'action' | 'condition'>[];
|
|
11
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { KritzelCore } from '../core/core.class';
|
|
2
|
+
import { KritzelBaseHandler } from './base.handler';
|
|
3
|
+
export type LineHandleType = 'start' | 'end' | 'center';
|
|
4
|
+
export declare class KritzelLineHandleHandler extends KritzelBaseHandler {
|
|
5
|
+
initialMouseX: number;
|
|
6
|
+
initialMouseY: number;
|
|
7
|
+
initialStartX: number;
|
|
8
|
+
initialStartY: number;
|
|
9
|
+
initialEndX: number;
|
|
10
|
+
initialEndY: number;
|
|
11
|
+
initialControlX: number | undefined;
|
|
12
|
+
initialControlY: number | undefined;
|
|
13
|
+
initialTranslateX: number;
|
|
14
|
+
initialTranslateY: number;
|
|
15
|
+
hasMoved: boolean;
|
|
16
|
+
/** Current snap target during drag, if any */
|
|
17
|
+
private currentSnapTarget;
|
|
18
|
+
constructor(core: KritzelCore);
|
|
19
|
+
private reset;
|
|
20
|
+
handlePointerDown(event: PointerEvent): void;
|
|
21
|
+
private startHandleDrag;
|
|
22
|
+
handlePointerMove(event: PointerEvent): void;
|
|
23
|
+
/**
|
|
24
|
+
* Converts world coordinates to a line's local coordinate system.
|
|
25
|
+
*/
|
|
26
|
+
private worldToLineLocal;
|
|
27
|
+
/**
|
|
28
|
+
* Converts a line's local coordinate system to world coordinates.
|
|
29
|
+
*/
|
|
30
|
+
private lineLocalToWorld;
|
|
31
|
+
private updateLineEndpoint;
|
|
32
|
+
handlePointerUp(_event: PointerEvent): void;
|
|
33
|
+
private getSelectedLine;
|
|
34
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { KritzelBaseHandler } from './base.handler';
|
|
2
|
+
import { KritzelCore } from '../core/core.class';
|
|
3
|
+
export declare class KritzelMoveHandler extends KritzelBaseHandler {
|
|
4
|
+
dragStartX: number;
|
|
5
|
+
dragStartY: number;
|
|
6
|
+
startX: number;
|
|
7
|
+
startY: number;
|
|
8
|
+
endX: number;
|
|
9
|
+
endY: number;
|
|
10
|
+
/** Initial position when drag started (for calculating total accumulated distance) */
|
|
11
|
+
private initialDragX;
|
|
12
|
+
private initialDragY;
|
|
13
|
+
/** Set of line IDs that have been disconnected from anchors during this drag */
|
|
14
|
+
private disconnectedLineIds;
|
|
15
|
+
hasMoved: boolean;
|
|
16
|
+
private trackedPointerId;
|
|
17
|
+
constructor(core: KritzelCore);
|
|
18
|
+
private reset;
|
|
19
|
+
cancelPendingDrag(): void;
|
|
20
|
+
handlePointerDown(event: PointerEvent): void;
|
|
21
|
+
handlePointerMove(event: PointerEvent): void;
|
|
22
|
+
handlePointerUp(event: PointerEvent): void;
|
|
23
|
+
/**
|
|
24
|
+
* Checks if the total accumulated drag distance exceeds the anchor disconnect threshold.
|
|
25
|
+
* If so, disconnects all anchors from any KritzelLine objects in the selection group.
|
|
26
|
+
* This allows anchored lines to be freely moved after dragging beyond the threshold.
|
|
27
|
+
*/
|
|
28
|
+
private checkAndDisconnectAnchors;
|
|
29
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { KritzelCore } from '../core/core.class';
|
|
2
|
+
import { KritzelBaseHandler } from './base.handler';
|
|
3
|
+
export declare class KritzelResizeHandler extends KritzelBaseHandler {
|
|
4
|
+
initialMouseX: number;
|
|
5
|
+
initialMouseY: number;
|
|
6
|
+
initialSize: {
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
width: number;
|
|
10
|
+
height: number;
|
|
11
|
+
};
|
|
12
|
+
newSize: {
|
|
13
|
+
x: number;
|
|
14
|
+
y: number;
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
};
|
|
18
|
+
hasResized: boolean;
|
|
19
|
+
constructor(core: KritzelCore);
|
|
20
|
+
private reset;
|
|
21
|
+
handlePointerDown(event: PointerEvent): void;
|
|
22
|
+
handlePointerMove(event: PointerEvent): void;
|
|
23
|
+
handlePointerUp(event: PointerEvent): void;
|
|
24
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { KritzelBaseHandler } from './base.handler';
|
|
2
|
+
import { KritzelCore } from '../core/core.class';
|
|
3
|
+
export declare class KritzelRotationHandler extends KritzelBaseHandler {
|
|
4
|
+
initialRotation: number;
|
|
5
|
+
rotation: number;
|
|
6
|
+
initialSelectionGroupRotation: number;
|
|
7
|
+
constructor(core: KritzelCore);
|
|
8
|
+
private reset;
|
|
9
|
+
handlePointerDown(event: PointerEvent): void;
|
|
10
|
+
handlePointerMove(event: PointerEvent): void;
|
|
11
|
+
handlePointerUp(event: PointerEvent): void;
|
|
12
|
+
}
|